2025-03-01から1ヶ月間の記事一覧
自分の作業用のメモ: 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…
CPUのベンチマーク・スイートであるSPEC2017をコンパイル・実行できる環境を用意したい。色々調べながらやっていくことにする: Docker環境の用意 環境を独立させるために専用のDocker環境を用意する:Dockerfileは以下の通りだ。ベースとしてはUbuntu22.04…
サイクル精度シミュレータのメモリ依存関係のアルゴリズムについてちょっとまとめておこう。 メモリ依存関係というのは、例えば、 ST A -> LD A のような、メモリアドレスの依存関係を記録してサイクル計算に活用するものだ。 github.com void MemoryDepende…
developer.arm.com msyksphinz.hatenablog.com Cache Stashing (続き) DataPullメカニズム DataPull メカニズムは、Snoop レスポンスを通して Read リクエストを暗示する方法である。 DataPull は、他のスヌープには適用されず、Snoop Requestを隠すことにの…
developer.arm.com msyksphinz.hatenablog.com Cache Stashing (続き) データを書き込むトランザクション Requester は、新しいデータの書き込みを行い、ターゲットがそのデータをStashする必要がある場合、WriteUniqueStash Transactionを発行する。書き込…
developer.arm.com msyksphinz.hatenablog.com Cache Stashing Cache Stashingは、システム内の特定のキャッシュ内にデータをインストールするメカニズムである。 CHI-Bはシステム・パフォーマンスを向上させるためにこの機能を導入した。 Cache Stashingメ…
developer.arm.com msyksphinz.hatenablog.com DVMオペレーション ACEと同様に、CHIはDVM(Distributed Virtual Memory)オペレーションをサポートする。 DVM Requestは、仮想メモリシステムのメンテナンスをサポートするためのオペレーションを渡すものである…
developer.arm.com msyksphinz.hatenablog.com エンドポイント・オーダとリクエスト・オーダー CHIのトランザクションは、エンドポイント・オーダ と リクエスト・オーダ によって順序づけられる: エンドポイント・オーダは、1つの Requester から1つの Sub…
developer.arm.com msyksphinz.hatenablog.com 完了応答 (Completion Acknowledgement) CHI は以下の以下のトランザクションの順序を維持するために完了確認応答を使用する: Fully Coherent Request Node (RN-F)が発行するトランザクション これらのRN-Fト…
developer.arm.com msyksphinz.hatenablog.com トランザクションの流れ WriteNoSnp トランザクションのフロー このセクションでは、Request Node 0から Completer Node 5までの WriteNoSnp トランザクションの流れを説明する。 Requester node 0は、図に示す…
developer.arm.com msyksphinz.hatenablog.com トランザクションの流れ トランザクションとは、あるノードによるリクエスト(Request)を完了するためにシステ ムが必要とするメッセージのセットのことである。 RequesterとCompleterの間の書き込みリクエスト…
developer.arm.com msyksphinz.hatenablog.com トランザクションの流れ トランザクションとは、あるノードによるリクエスト(Request)を完了するためにシステ ムが必要とするメッセージのセットのことである。 RequesterとCompleterの間の書き込みリクエスト…
developer.arm.com msyksphinz.hatenablog.com フリット すべてのプロトコル・メッセージはフリットという形式で送信される。 フリットは、プロトコル・メッセージを伝達する制御フィールドと識別子のパケット化された集まりである。 オペコード・メモリ属性…
developer.arm.com msyksphinz.hatenablog.com システムアドレスマップ システム内のすべてのコンポーネントには、固有のノードIDが割り当てられる。CHIはシステム・アドレス・マップ(SAM)を使用して、物理アドレスをターゲット・ノードIDに変換する。 送信…
developer.arm.com msyksphinz.hatenablog.com Coherent Hub Interface(CHI)は、ACE(AXI Coherency Extensions)プロトコルを進化させたものである。 CHIプロトコルの基礎: まずはノードの種類と通信手段についてまとめる。 その次に、プロトコル・メッセー…
developer.arm.com Coherent Hub Interface(CHI)は、ACE(AXI Coherency Extensions)プロトコルを進化させたものである。 このガイドでは、CHIプロトコルの最初の3つの問題を紹介し、CHIの一般的な概要を提供し、いくつかの機能について詳しく説明します。 In…
前回の続き。msyksphinz.hatenablog.com developer.arm.com 次はアンアラインなアクセスについて。AXIのアンアラインの開始アドレスを持つことができる。 ここでいうアンアラインなアクセスとは、アドレスの開始アドレスがトランザクションのデータ幅に合っ…
まず、RERIというのは “RAS Error-record Register Interface" というものだ。 github.com 2.4 エラー記録レジスタ 2.4.1. 制御レジスタ(control_i) エラー・バンクの対応するエラー・レコードによるエラー報告を制御するために使用される。 error-logging…
前回の続き。msyksphinz.hatenablog.com developer.arm.com 次は読み込みのトランザクションの順番について。 Rチャネル上のトランザクションは、IDが異なっている場合その順番に制限はない。 -下記の図はそれを示している。トランザクションBのデータが、ト…
ちょっと気になることがあって、AXIのオーダリングについての記事を読んでいる。 developer.arm.com 上記の記事では、トランザクションのタイムラインを用いて説明している: 書き込みのためにA(A0-AL)までが転送され、B(B0, BL)が転送される。それぞれ、最…