2024-08-01から1ヶ月間の記事一覧
RISC-VのAdvanced Platform Interrupt Controller (APLIC) について勉強してみようと思う。 まずは以下のブログを読んで概観を掴もう。 blog.stephenmarz.com 今回はレジスタの構成についてまとめてみた。必要なのはだいたいこんな感じかなと思う。 Name Add…
RISC-VのAdvanced Platform Interrupt Controller (APLIC) について勉強してみようと思う。 まずは以下のブログを読んで概観を掴もう。 blog.stephenmarz.com APLICの概観 APLICはSiFiveのPLICを発展させたもので、PLICとの違いはメッセージによる割り込みの…
LLVM18のRISC-V Targetでのビルド方法が分からなくてずっと悩んでいたのだが、とりあえず以下の方法ならば行けるということが分かってきた。 msyksphinz.hatenablog.com msyksphinz.hatenablog.com LLVM18でC++のコンパイルを簡単なコードで確認しておく: m…
LLVM18のRISC-V Targetでのビルド方法が分からなくてずっと悩んでいたのだが、とりあえず以下の方法ならば行けるということが分かってきた。 msyksphinz.hatenablog.com $ cd build $ cmake -G Ninja \ ../llvm \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABL…
msyksphinz.hatenablog.com msyksphinz.hatenablog.com もうちょっとなんとかSpinal HDLのわけわからん記述が読めるようになりたい: とりあえずRVC Alignerの部分で何とか理解できる部分はないだろうか。 Aligner Pluginをもうちょっと腰を据えて解析してみ…
msyksphinz.hatenablog.com msyksphinz.hatenablog.com ちょっとRVC付きのNaxRiscvについてRTLシミュレーションの流し方をまとめておく。 ビルド対象について、withRvcを有効化しておく。 diff --git a/src/main/scala/naxriscv/Gen.scala b/src/main/scala/…
LinkedInの記事をめぐっているうちに見つけた、マイクロアーキテクチャに関する面白い事例。 CPUのマイクロアーキテクチャのさらに奥深くまで理解が必要な問題を解決するために、どのようなツールをつかってどのように解決したかの話。 netflixtechblog.com …
msyksphinz.hatenablog.com msyksphinz.hatenablog.com もうちょっとなんとかSpinal HDLのわけわからん記述が読めるようになりたい: とりあえずRVC Alignerの部分で何とか理解できる部分はないだろうか。 class AlignerPlugin(var decodeCount : Int, var i…
前回の続き: キャッシュとメモリ・アクセス P870はアドレス生成用に3本のパイプを持っている。 2本のパイプはロードまたはストアを処理し、3本目のパイプはロードのみを処理する。 Cortex X2、A710、Zen 4で見られるものと似ている。 データ・キャッシュ・…
SiFive の P870-Dコアが発表されたが、個人的には、これはつまりSiFiveがメインコアの開発を実質的に止めている、ということを示していると思う。 https://www.sifive.com/cores/performance-p870d より引用 このグラフは、縦軸が性能を意味するものと思われ…
GhostWrite アタックについて説明されているファジングの論文、RISCVuzzの論文を読んでいこうと思う。 ghostwriteattack.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com もう一つの脆弱性、CPUを完全に停止させてしま…
GhostWrite アタックについて説明されているファジングの論文、RISCVuzzの論文を読んでいこうと思う。 ghostwriteattack.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com GhostWriteの攻撃に関して、以下の3ステップを踏むようになっている: マイ…
GhostWrite アタックについて説明されているファジングの論文、RISCVuzzの論文を読んでいこうと思う。 ghostwriteattack.com RISCVuzzのフレームワークについて。 テストを制御するサーバ & クライアント (RISC-V CPU) クライアントはネットワーク経由で命令…
GhostWrite アタックについて説明されているファジングの論文、RISCVuzzの論文を読んでいこうと思う。 ghostwriteattack.com ソースコードやエミュレータを必要としないハードウェアCPUの脆弱性を検出するフレームワーク「RISCVuzz」を開発した。 基本的な考…
msyksphinz.hatenablog.com msyksphinz.hatenablog.com NaxRiscvのVerilogコードだが、やっぱり何が書いてあるのかさっぱりわからない。 とりあえず、FetchPCプラグインのモジュールを切り出して、何が起きているのかを確認したい。 多分FetchPCをモジュール…
msyksphinz.hatenablog.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com NaxRiscvのデザインをシミュレーションし、FST波形を出力してみようと思う。 $ sbt "runMain naxriscv.Gen64" $ cd $NAXRISCV/src/test/cpp/naxriscv $ make compile TRACE=…
msyksphinz.hatenablog.com msyksphinz.hatenablog.com NaxRiscvのVerilogコードだが、やっぱり何が書いてあるのかさっぱりわからない。 とりあえずSpinalHDLのチュートリアルを読んで、基本的なところを確認していこうと思う。以下のページがよさそうだ。 s…
msyksphinz.hatenablog.com NaxRiscvのVerilogコードだが、やっぱり何が書いてあるのかさっぱりわからない。 大まかなシステム階層は以下のようになっているのだが、これだけだと分からないよね。 module NaxRiscv ( TranslatorWithRollback integer_RfTrans…
NaxRiscvはオープンソースのアウトオブオーダCPUコアだ。 非常に参考になるデザインだと思うのだが、SpinalHDLというScalaをベースとした謎の言語で書かれている。 spinalhdl.github.io レジスタ・リネームによるアウトオブオーダー実行 スーパースカラ(例…
X-HEEPというRISC-VをベースとしたSoCプラットフォームを教えてもらった。 x-heep.readthedocs.io SystemVerilogで記述されたRISC-Vマイクロコントローラを使ってカスタマイズ可能なSoCを構成することができる。 CPU・一般的なペリフェラル・メモリなどをカ…
直接参加することはないのだけれども、日本のイベントに比べて圧倒的に量と品質が高そうなのでメモっておく。 riscv-summit-china.com 时间 时长 题目 演讲者 8:30 30 签到 - 9:00 30 领导致辞、院士致辞、主席致辞 - 9:30 20 RVI keynote Calista Redmond 9…
OpenMPを使った並列プログラムを試していて,いろいろ疑問に思ったことなのだが,場合によっては全然性能が上がらないことがある. msyksphinz.hatenablog.com std::vectorとかでもちゃんと動作するのか確かめた. Time : 1.52998 // Thread-1 Time : 1.1734…
DSimをコマンドラインから立ち上げる方法について確認する。 環境は、WSL2 の Ubuntu 22.04 LTS を使用している。 DSimコマンドライン環境の有効化 前回までの環境を構築している状態で、 $ cd /home/msyksphinz/metrics-ca/dsim/20240422.9.0 $ source shel…
前回、DSimのインストールとライセンスを有効化したので、次にサンプルデザインを開いてみたいと思う。 msyksphinz.hatenablog.com 以下のチュートリアルを参考に進めていく。 help.metrics.ca 以下のサンプルデザインをダウンロードして解凍しておく: http…
もう周回遅れもいいところだが、デスクトップ版ならフリーで使えるというRTLシミュレータDSimに入門してみる。 Verilatorは今のところ非常に便利に使っているが、DSimも使い物になるようなら、こちらに本格的に移行することも考えてみたい。 基本的には以下…