眼鏡止水

FPGA、ネットワーク機器、料理、そしてメガネ女子。

【CCR2116】なぜclear-dfでRouterOSのIPv4 over IPv6通信が高速化するのか

筆者も自宅のメインルータとして運用しているMikroTik CCR2116では、OSとしてRouterOSが動作しています。 一方で、v6プラス固定IP環境上のIPv4 (over IPv6) 通信をRouterOS機器で高速に捌くために、日本中の逸般の誤家庭で研究が進められています。 RouterOS…

【マルチコア】色々なMESIプロトコル

色々なMESIのイラスト。 導入 コンピュータアーキテクチャの教科書は数あれど、マルチコア、特にキャッシュコヒーレンス・プロトコルについて詳細に述べているものは多くありません。 ことMESIプロトコルについては、「MSIプロトコルにExclusive状態を導入す…

【SMP】作ろう、マルチコアCPU ~(1) 背景と課題~

あなたの自作CPU、マルチコア化しませんか CPUの実装にフォーカスした日本語の入門書が増えたことで、自作CPUの敷居が下がっています*1*2*3。 また、自作CPUに関するウェブサイトやOSSも多く、多くの人の理解を助けていると思えます。 特に、Linuxを起動でき…

【RISC-V】命令の書き換えとライトバックキャッシュとFENCE.I

命令の書き換え 近年の一般的なプロセッサが採用するノイマン型アーキテクチャでは、あるプログラムがメインメモリ内の自分自身 (または他のプログラム) の命令を書き換えるシチュエーションがあります。 典型的な例として、JITコンパイルを用いる自己書き換…

【RISC-V】ISAシミュレータSpikeの構成を調査する

概要 自作CPUの動作検証において、「正しい」モデルとの比較が有効です。 本記事では、RISC-VのISAシミュレータであるSpikeの構成を調査します。 これにより、将来的にVerilatorのテストベンチと統合する方法を模索します。 本編 (注) 本記事では、Spikeのco…

【CMake】Verilatorによるシミュレーションモデルの生成をCMake+Ninja+Clang+Ccache+moldで行う

概要 Verilatorは便利で高速なVerilog/SystemVerilogシミュレータですが、パラメタなどを変えた複数の実行ファイルを生成する場合はターゲットとソースの管理が煩雑になりえます。 本記事では、CMakeを用いて効率的にターゲットとソースを管理することを試み…

【openXC7】オープンソースのツールチェーンでKintex-7のFPGAボードを使ってみる

概要 先日、AliExpressでKintex-7 Base CというFPGAボードを購入しました。 My new gear... pic.twitter.com/V63Z9qo7Kj— Y.M.D オフライン (@YMD_Glasses) February 11, 2025 このボードに搭載されているFPGAはKintex-7 325Tであり、Vivadoで使用するには有…