FPGA開発日記

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

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

RISC-V RERIアーキテクチャについて読み解く (4. エラーバンク・ヘッダレジスタ)

まず、RERIというのは “RAS Error-record Register Interface" というものだ。 github.com 2.2. リセット動作 RERIレジスタのリセット値は UNSPECIFIEDである。 エラー・バンクのレジスタは、ある種のリセットに渡ってその値を保持することがある。 2.3. エ…

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

まず、RERIというのは “RAS Error-record Register Interface" というものだ。 github.com 2. エラー・レポート エラー検出をサポートするシステム内のRISC-V HARTまたはメモリコントローラなどのコンポーネントは、エラー・レコードに複数のバンクを実装す…

Pythonを使ったDUTテスト環境 cocotb のファースト・インプレッション

cocotbを少し真面目に触ってみたので、ちょっと記録として残しておきたい。 cocotbというのはPythonをベースとしてVerilogのテスト環境構築フレームワークで、最大の特徴はPythonというソフトウェア言語を使ってテストが記述できる点だ。 www.cocotb.org 特…

RISC-V RERIアーキテクチャについて読み解く (2. 用語集)

まず、RERIというのは “RAS Error-record Register Interface) というものだ。 github.com 1.6. 用語集 用語 定義 AER Advanced Error Reporting. 高度なエラー制御と報告をサポートするPCIe機能。 BMC Baseboard Management Controller. CE 訂正済みエラー …

RISC-V RERIアーキテクチャについて読み解く (1. 概要)

まず、RERIというのは “RAS Error-record Register Interface) というものだ。 github.com RISC-V SoC ハードウェアのRAS機能を拡張するためのものだ。RISC-V SoC内で発生したエラーをロギングするためのインタフェースである。メモリマップ上に定義されたレ…

ChameSC: Virtualizing Superscalar Core of a SIMD Architecture for Vector Memory Accessの論文を読む (3. 評価)

ベクトル・メモリ・アクセスの関係で、以下の論文が気になったので読んでみることにした: https://ieeexplore.ieee.org/document/10818118 前回の投稿はこちら:msyksphinz.hatenablog.com 4. 評価環境 (1) シミュレーション環境 gem5のアウトオブオーダー…

ChameSC: Virtualizing Superscalar Core of a SIMD Architecture for Vector Memory Accessの論文を読む (2. マイクロアーキテクチャ)

ベクトル・メモリ・アクセスの関係で、以下の論文が気になったので読んでみることにした: https://ieeexplore.ieee.org/document/10818118 前回の投稿はこちら:msyksphinz.hatenablog.com 3. ChameSCアーキテクチャ A. マイクロアーキテクチャの概要 図7に…

ChameSC: Virtualizing Superscalar Core of a SIMD Architecture for Vector Memory Accessの論文を読む (1. 概要)

ベクトル・メモリ・アクセスの関係で、以下の論文が気になったので読んでみることにした: https://ieeexplore.ieee.org/document/10818118 概要 SIMD命令は幅広くデータ・アプリケーションで使用されているが、インダイレクト・アクセスやストライド・アク…

Sniperを使った各種分岐予測器の動作確認 (5. Gshare分岐予測器のモデルを調査)

SniperのGshareモデルを探すと既に存在していた。 github.com PHTを参照するためのインデックスの作り方は、こんな感じになっている。 GsharePredictor::DualSaturatingPredictor GsharePredictor::getPHTEntry(IntPtr ip) { return this->pht[(this->bhr & …

Sniperを使った各種分岐予測器の動作確認 (5. Gshare分岐予測器のモデルを調査)

SniperのGshareモデルを探すと既に存在していた。 github.com PHTを参照するためのインデックスの作り方は、こんな感じになっている。 GsharePredictor::DualSaturatingPredictor GsharePredictor::getPHTEntry(IntPtr ip) { return this->pht[(this->bhr & …

Sniperを使った各種分岐予測器の動作確認 (4. Gshare分岐予測器のモデルを調査)

SniperのGshareモデルを探すと既に存在していた。 github.com PHTを参照するためのインデックスの作り方は、こんな感じになっている。 GsharePredictor::DualSaturatingPredictor GsharePredictor::getPHTEntry(IntPtr ip) { return this->pht[(this->bhr & …

”Digital Design with Chisel"の改版が出ていた

余りウォッチしていなかったのだが、Chiselの入門書 "Digital Design with Chisel" の第6版が出版されたらしい。基本的にPDF版は無料でダウンロードできる。 github.com 改めて読み返してみると、面白そうな項目が追加されていることに気が付いた。 Introduc…

riscv-isa-simのベクトルコンフィグレーション指定方法が変更されていた

今さらなのだけれども、RISC-Vのシミュレータであるriscv-isa-sim (spike) を久しぶりにアップデートすると、オプションが様々変わっていた。 spike -varch="vlen:512,elen=64" このようなコンフィグレーションの指定方法が動かなくなっている。 これは要す…

Sniperを使った各種分岐予測器の動作確認 (3. 分岐予測器のモデルを調査)

サイクル精度シミュレータを使って、各種分岐予測の実装でCoremarkの性能がどのように変化するかちょっと興味があって計ってみることにした。 サイクル精度シミュレータとしてはSniperを使用する。Sniperにはフロントエンドの分岐予測器の実装があって、これ…