2025-01-01から1年間の記事一覧
色々なMESIのイラスト。 導入 コンピュータアーキテクチャの教科書は数あれど、マルチコア、特にキャッシュコヒーレンス・プロトコルについて詳細に述べているものは多くありません。 ことMESIプロトコルについては、「MSIプロトコルにExclusive状態を導入す…
あなたの自作CPU、マルチコア化しませんか CPUの実装にフォーカスした日本語の入門書が増えたことで、自作CPUの敷居が下がっています*1*2*3。 また、自作CPUに関するウェブサイトやOSSも多く、多くの人の理解を助けていると思えます。 特に、Linuxを起動でき…
命令の書き換え 近年の一般的なプロセッサが採用するノイマン型アーキテクチャでは、あるプログラムがメインメモリ内の自分自身 (または他のプログラム) の命令を書き換えるシチュエーションがあります。 典型的な例として、JITコンパイルを用いる自己書き換…
概要 自作CPUの動作検証において、「正しい」モデルとの比較が有効です。 本記事では、RISC-VのISAシミュレータであるSpikeの構成を調査します。 これにより、将来的にVerilatorのテストベンチと統合する方法を模索します。 本編 (注) 本記事では、Spikeのco…
概要 Verilatorは便利で高速なVerilog/SystemVerilogシミュレータですが、パラメタなどを変えた複数の実行ファイルを生成する場合はターゲットとソースの管理が煩雑になりえます。 本記事では、CMakeを用いて効率的にターゲットとソースを管理することを試み…
概要 先日、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で使用するには有…
Verilogなどで実装したプロセッサのデバッグをしているとき、プログラムカウンタと各パイプラインステージで処理中の命令の波形をGTKWaveに表示することがしばしばあります。 しかしながら、命令のフォーマットを覚えてないと、今目の前でバグを引き起こして…