以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/02/25/040000より取得しました。


RISC-V RERIアーキテクチャについて読み解く (3. エラー・レポート)

まず、RERIというのは “RAS Error-record Register Interface" というものだ。

github.com


2. エラー・レポート

エラー検出をサポートするシステム内のRISC-V HARTまたはメモリコントローラなどのコンポーネントは、エラー・レコードに複数のバンクを実装することができる。各エラー・バンクは、1つまたは複数のエラー・レコードを実装することができる。各エラー・レコードは、コンポーネントの1つまたは複数のハードウェア・ユニットに対応し、それらのハードウェア・ユニットによって検出されたエラーを報告する。

各エラー・バンクは、8バイトに整列された物理アドレスからメモリ・マップされ、最大63個のエラー・レコードを含むことができる。

実装では、エラー・バンクの開始アドレスに、より粗いアライメントを使用することができる。例えば、いくつかの実装では、エラー・バンクを各エラー・バンクの物理アドレス空間の自然にアライメントされた4KiB領域(1ページ)内に配置することができる。

アドレスがアクセスサイズにアライメントされていないレジスタ・アクセス、複数のレジスタにまたがるアクセス、またはアクセスサイズが4バイトまたは8バイトでない場合の動作はUNSPECIFIEDである。

RERIレジスタは、High HalfとLow Halfに対して2つの個別の4バイト・アクセスを実行できるように、またはハードウェアが8バイト・アクセスの結果として2つの独立した4バイト・トランザクションを実行できるように定義されている。

RERIレジスタのバイトオーダーはリトルエンディアンである(すべてのHARTがビッグエンディアンのみのシステムであったとしても)。

ビッグエンディアンのHARTは、Zbb拡張で定義されたREV8バイト反転命令を実装することができる。REV8が実装されていない場合は、一連の命令を使ってエンディアン変換を実装することができる。

エラー・バンクおよび/またはエラー・レコードが、メモリマップドアクセスに対して利用できない(例えば、パワーダウンしている)場合、実装固有の応答が発生する。

それ以外のメモリ・マップド・アクセスで利用可能なエラー・バンクは、読み出し時にすべてゼロ・データで応答しなければならず、ページ内の未実装レジスタへの書き込みは無視しなければならない。

2.1. レジスタのレイアウト

エラー・バンク・レジスタは、エラー・バンクに関する情報を提供する64バイトのヘッダと、それに続く64バイトのエラー・レコードの配列で構成される。

オフセット 名前 サイズ 説明
0 vendor_n_imp_id 8 ベンダーと実装ID。
8 bank_info 8 エラーバンク情報。
16 valid_summary 8 有効なエラー記録の概要。
24 予約 32 将来の標準的な使用のために予約されている。
56 カスタム 8 カスタム。
64 + 64 * i control_i 8 エラーレコードiの制御レジスタ。
72 + 64 * i status_i 8 エラーレコード i のステータスレジスタ。
80 + 64 * i addr_info_i 8 エラーレコード i のアドレスまたは情報レジスタ。
88 + 64 * i info_i 8 エラー記録の情報登録 i
96 + 64 * i suppl_info_i 8 エラー記録の補足情報レジスタ i
104 + 64 * i timestamp_i 8 エラーレコードiのタイムスタンプレジスタ
112 + 64 *i 予約 16 将来の標準的な使用のために予約されている

この仕様で定義されているすべてのレジスタとレジスタ・フィールドは、特に断りのない限り、WARLである。




以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/02/25/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14