FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2025-03-01から1ヶ月間の記事一覧

qemu-riscv64 バイナリの作り方

自分の作業用のメモ: SPEC2017の実行に必要な qemu-riscv64 の作り方をまとめておく。 git clone https://github.com/qemu/qemu cd qemu git co v9.2.3 mkdir build cd build ../configure --target-list=riscv64-softmmu,riscv64-linux-user --prefix=${HO…

SPEC2017をビルド・実行できる環境を作ろう (1. ビルド環境の構築)

CPUのベンチマーク・スイートであるSPEC2017をコンパイル・実行できる環境を用意したい。色々調べながらやっていくことにする: Docker環境の用意 環境を独立させるために専用のDocker環境を用意する:Dockerfileは以下の通りだ。ベースとしてはUbuntu22.04…

サイクル精度シミュレータのメモリ依存解析アルゴリズム

サイクル精度シミュレータのメモリ依存関係のアルゴリズムについてちょっとまとめておこう。 メモリ依存関係というのは、例えば、 ST A -> LD A のような、メモリアドレスの依存関係を記録してサイクル計算に活用するものだ。 github.com void MemoryDepende…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (15. キャッシュ・スタッシングについて3)

developer.arm.com msyksphinz.hatenablog.com Cache Stashing (続き) DataPullメカニズム DataPull メカニズムは、Snoop レスポンスを通して Read リクエストを暗示する方法である。 DataPull は、他のスヌープには適用されず、Snoop Requestを隠すことにの…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (14. キャッシュ・スタッシングについて)

developer.arm.com msyksphinz.hatenablog.com Cache Stashing (続き) データを書き込むトランザクション Requester は、新しいデータの書き込みを行い、ターゲットがそのデータをStashする必要がある場合、WriteUniqueStash Transactionを発行する。書き込…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (13. キャッシュ・スタッシングについて)

developer.arm.com msyksphinz.hatenablog.com Cache Stashing Cache Stashingは、システム内の特定のキャッシュ内にデータをインストールするメカニズムである。 CHI-Bはシステム・パフォーマンスを向上させるためにこの機能を導入した。 Cache Stashingメ…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (12. DVMオペレーションについて)

developer.arm.com msyksphinz.hatenablog.com DVMオペレーション ACEと同様に、CHIはDVM(Distributed Virtual Memory)オペレーションをサポートする。 DVM Requestは、仮想メモリシステムのメンテナンスをサポートするためのオペレーションを渡すものである…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (11. トランザクション例)

developer.arm.com msyksphinz.hatenablog.com エンドポイント・オーダとリクエスト・オーダー CHIのトランザクションは、エンドポイント・オーダ と リクエスト・オーダ によって順序づけられる: エンドポイント・オーダは、1つの Requester から1つの Sub…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (10. トランザクション例)

developer.arm.com msyksphinz.hatenablog.com 完了応答 (Completion Acknowledgement) CHI は以下の以下のトランザクションの順序を維持するために完了確認応答を使用する: Fully Coherent Request Node (RN-F)が発行するトランザクション これらのRN-Fト…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (10. トランザクション例)

developer.arm.com msyksphinz.hatenablog.com トランザクションの流れ WriteNoSnp トランザクションのフロー このセクションでは、Request Node 0から Completer Node 5までの WriteNoSnp トランザクションの流れを説明する。 Requester node 0は、図に示す…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (9. トランザクション例)

developer.arm.com msyksphinz.hatenablog.com トランザクションの流れ トランザクションとは、あるノードによるリクエスト(Request)を完了するためにシステ ムが必要とするメッセージのセットのことである。 RequesterとCompleterの間の書き込みリクエスト…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (9. トランザクション例)

developer.arm.com msyksphinz.hatenablog.com トランザクションの流れ トランザクションとは、あるノードによるリクエスト(Request)を完了するためにシステ ムが必要とするメッセージのセットのことである。 RequesterとCompleterの間の書き込みリクエスト…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (8. フリットについて)

developer.arm.com msyksphinz.hatenablog.com フリット すべてのプロトコル・メッセージはフリットという形式で送信される。 フリットは、プロトコル・メッセージを伝達する制御フィールドと識別子のパケット化された集まりである。 オペコード・メモリ属性…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (7. システム・アドレス・マップ)

developer.arm.com msyksphinz.hatenablog.com システムアドレスマップ システム内のすべてのコンポーネントには、固有のノードIDが割り当てられる。CHIはシステム・アドレス・マップ(SAM)を使用して、物理アドレスをターゲット・ノードIDに変換する。 送信…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (6. CHIのノードについて)

developer.arm.com msyksphinz.hatenablog.com Coherent Hub Interface(CHI)は、ACE(AXI Coherency Extensions)プロトコルを進化させたものである。 CHIプロトコルの基礎: まずはノードの種類と通信手段についてまとめる。 その次に、プロトコル・メッセー…

キャッシュコヒーレンスを管理するバスプロトコルの勉強 (5. CHIについて勉強する)

developer.arm.com Coherent Hub Interface(CHI)は、ACE(AXI Coherency Extensions)プロトコルを進化させたものである。 このガイドでは、CHIプロトコルの最初の3つの問題を紹介し、CHIの一般的な概要を提供し、いくつかの機能について詳しく説明します。 In…

AXIのオーダリングについての勉強 (3. アンアライン・エンディアン)

前回の続き。msyksphinz.hatenablog.com developer.arm.com 次はアンアラインなアクセスについて。AXIのアンアラインの開始アドレスを持つことができる。 ここでいうアンアラインなアクセスとは、アドレスの開始アドレスがトランザクションのデータ幅に合っ…

RISC-V RERIアーキテクチャについて読み解く (5. エラー制御レジスタ)

まず、RERIというのは “RAS Error-record Register Interface" というものだ。 github.com 2.4 エラー記録レジスタ 2.4.1. 制御レジスタ(control_i) エラー・バンクの対応するエラー・レコードによるエラー報告を制御するために使用される。 error-logging…

AXIのオーダリングについての勉強 (2. 読み込み・書き込みの入り混じったトランザクション)

前回の続き。msyksphinz.hatenablog.com developer.arm.com 次は読み込みのトランザクションの順番について。 Rチャネル上のトランザクションは、IDが異なっている場合その順番に制限はない。 -下記の図はそれを示している。トランザクションBのデータが、ト…

AXIのオーダリングについての勉強 (1. トランザクションの順番)

ちょっと気になることがあって、AXIのオーダリングについての記事を読んでいる。 developer.arm.com 上記の記事では、トランザクションのタイムラインを用いて説明している: 書き込みのためにA(A0-AL)までが転送され、B(B0, BL)が転送される。それぞれ、最…