FPGA開発日記

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

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

Kriste Asanovic教授のVector Phd Paper輪読メモ (9. T0-Vector Microprocessor)

people.eecs.berkeley.edu 3.3 T0マイクロアーキテクチャー 3.3.2 TSIP TSIPはデバッグ用のJTAGスキャンチェーンを拡張したポート 3.3.3 命令フェッチとデコード 図3.2はT0のパイプライン構造を示している。 フェッチとデコードステージは全命令で共通 外部…

Kriste Asanovic教授のVector Phd Paper輪読メモ (8. T0-Vector Microprocessor)

people.eecs.berkeley.edu 3.3 T0マイクロアーキテクチャー 図 3.1 に T0 の全体ブロック図を示す。 整数スカラユニット MIPS-II 32ビット命令セット ハードウェア整数乗算器・除算器 命令キャッシュ (1kB) ベクトルユニット 8本の並列パイプラインを持って…

Kriste Asanovic教授のVector Phd Paper輪読メモ (7. T0-Vector Microprocessor)

people.eecs.berkeley.edu Chapter.3 T0: A Vector Microprocessor T0(Torrent-0)は、最初の完全なシングルチップベクトルマイクロプロセッサである。 市販のR3000, R4000コアにベクトルコプロセッサを実装することは、システム全体の設計を複雑にする。 特…

Replay Queueのための"Replay: Unknown Features of the NetBurst Core"を読む

IntelのNetBurstアーキテクチャに使われているReplay Queueについて調査している。 以下のドキュメントをざっと眺めている。 en.thethirdmedia.com このドキュメントは、NetBurstアーキテクチャにおけるパイプラインの動作について説明している。 スケジュー…

BOOMの論理合成結果と自作CPUの論理合成結果比較 (5. LDQ/STQのアドレス情報管理の改善)

BOOMと自作CPUの合成結果を比較して、ボトルネックになっている部分を調査したい。まずは面積から。 LDQ/STQのアドレス情報の管理は、物理アドレスと仮想アドレスを別々に管理していた。 これを統一し、アドレス情報を仮想アドレスと物理アドレスで一体管理…

BOOMの論理合成結果と自作CPUの論理合成結果比較 (4. STQの面積の解析)

BOOMと自作CPUの合成結果を比較して、ボトルネックになっている部分を調査したい。まずは面積から。 STQのサイズを減らすと、LSUパイプラインの関係上LDQ側も調整しないといけなくなった。 全体的なSTQ/LDQのエントリの情報を調整して、LSUのパイプラインを…

BOOMの論理合成結果と自作CPUの論理合成結果比較 (3. STQの面積の解析)

BOOMと自作CPUの合成結果を比較して、ボトルネックになっている部分を調査したい。まずは面積から。 引き続きSTQの面積について調査している。LUTの量は以下まで小さくなった。Snoopを消したこと自体の効果がある。 ag -A2 LUT stq_entry3.sv | grep -v LUT …

BOOMの論理合成結果と自作CPUの論理合成結果比較 (3. STQの面積の解析)

BOOMと自作CPUの合成結果を比較して、ボトルネックになっている部分を調査したい。まずは面積から。 引き続きSTQの面積について調査している。FFの量は以下まで小さくなった。FDCxセルの量は273個まで減っている。 4 \FSM_sequential_r_entry_reg[state][] 5…

自作CPUにMatrix Schedulerを導入した場合の変更量について考える

まあいつかの段階で自作CPUのスケジューラを変更しようと思っているのだが、これをどのようにしようかいろいろ思いを巡らせている。 の、続き。もうちょっと詳細をイメージしてみたいと思う。 現在の実装 Issue Unitが各モジュール (ALU / LSU / FPUなど)に…

BOOMの論理合成結果と自作CPUの論理合成結果比較 (2. STQの面積の解析)

BOOMと自作CPUの合成結果を比較して、ボトルネックになっている部分を調査したい。まずは面積から。 まず気になったのは、LDQとSTQのサイズが異常にでかい。LDQに比べてSTQの大きさが異常に大きいのも気になるので、余計なFFが入っている可能性を調査する。 …

BOOMの論理合成結果と自作CPUの論理合成結果比較

BOOMと自作CPUの合成結果を比較して、ボトルネックになっている部分を調査したい。まずは面積から。 正直、機能的に正しく動くことを重視しすぎていて、面積とかはほとんどチェックしていなかったのだが、まずは単純にVivadoの論理合成結果から確認したい。 …

Kriste Asanovic教授のVector Phd Paper輪読メモ (6. 電力効率)

people.eecs.berkeley.edu 2. 背景と動機 (続き) エネルギー効率 エネルギー消費の指標 ETR : Energy to Throughput Ratio (ETR) 低電力プロセッサのエネルギー効率に対する適切な尺度 (Lower is better?) エネルギー効率を上げる方法 並列度を上げる。N個の…

Kriste Asanovic教授のVector Phd Paper輪読メモ (5. メモリ性能)

people.eecs.berkeley.edu 2. 背景と動機 (続き) 2.5 メモリシステム 演算スループットと十分なメモリシステムの帯域のバランスを取ることが重要 2.5.1 STREAMベンチマークにより、スーパスカラマイクロプロセッサはメモリ帯域幅を非効率に使用していること…

Kriste Asanovic教授のVector Phd Paper輪読メモ (4. スカラプロセッサの性能)

people.eecs.berkeley.edu 2. 背景と動機 (続き) 2.4 スカラ性能 マイクロプロセッサの整数性能は、10年間では100倍以上増加した。 つまり、1年あたり60%程度向上した。 しかし、マイクロアーキテクチャ要因の性能向上はわずかでしかない。 表2.1 SGIのQED …

DIGITAL ELECTRONICS NOTESをやってみる (11. 順序回路)

以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site Q: 10110を認識するステートマシンを作ってください。 A: 上記で正解なのだが、考え方としては、 ステートA:初期状態 ステートB:1が受理された状態 ステートC:10が受理され…

Kriste Asanovic教授のVector Phd Paper輪読メモ (3. 背景と動機)

people.eecs.berkeley.edu 2. 背景と動機 (続き) ベクトルISAの利点 命令帯域幅の削減 N個の演算が独立しているゆえのシンプルさ レーンとしてそれぞれをの要素を扱うことができる レジスタオペランド毎の依存チェックに縮退できる。 メモリアクセス ユニッ…

Kriste Asanovic教授のVector Phd Paper輪読メモ (2. 背景と動機)

people.eecs.berkeley.edu 2. 背景と動機 何でベクトルプロセッサが廃れたのか? マイクロプロセッサの性能向上が以外とすごかった。 スーパスカラ・アウトオブオーダ実行の効果が大きい。単一の命令ストリームから命令レベル並列性を引き出す。ベクトル化可…

Kriste Asanovic教授のVector Phd Paper輪読メモ

people.eecs.berkeley.edu スパコン向けからマイクロプロセッサ向けのベクトル命令の研究 T0(Torrent-0)というマイクロプロセッサを実装した。1つのベクトル命令を発行しながら、サイクル毎に24を超える操作を実行できる。 将来のベクトルマイクロプロセッサ…

DIGITAL ELECTRONICS NOTESをやってみる (10. 順序回路)

以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site Q: 同期カウンタと非同期カウンタの違いは何ですか? A: カウンタとは、カウントアップまたはカウントダウンを繰り返す順序回路です。カウンターは、複数のフリップフロップと…

DIGITAL ELECTRONICS NOTESをやってみる (9. 順序回路)

以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site Q: 同期回路と非同期回路の違いは何ですか? A: 同期順序回路は、クロック信号の立ち上がり(0から1への遷移)または立ち下がり(1から0への遷移)で指定された時間の離散的な…

DIGITAL ELECTRONICS NOTESをやってみる (8. 組み合わせ回路)

以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site Q: 2進加算を利用して、BCDの9の補数を計算してください。 A: この計算自体は、$9-d$で計算される。$-d$は2の補数で計算されるので、それに対して9を加算すればよい。$-d$の計…

DIGITAL ELECTRONICS NOTESをやってみる (7. 組み合わせ回路)

以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site Q: エンコーダとマルチプレクサの違いは何ですか A: エンコーダはマルチプレクサと似ているが、マルチプレクサはN個の入力に対して1ビットの出力を生成する。一方でエンコーダ…

Chipyard 1.8.1のインストール方法がかなり変わっていた

久しぶりにChipyardでChiselのデザインを生成しようとしたら、Version 1.8.1から随分と環境が変わっていた。 chipyard.readthedocs.io Dockerfileも動かなくなっていてびっくりしたのだが、どうやらパッケージマネージャについては、Condaというものをインス…

Chipyardにおけるコンフィグレーション毎のPLICのインタフェースの違い

PLICの実装をいろいろチェックしたくて、Chipyardで生成される構成をチェックしている。 RocketChipのシングルコア構成。割込み挿入インタフェース auto_int_in_0は1ビットのみ。出力はauto_int_out_1_0 / auto_int_out_0_0の2ビット。 module TLPLIC( input…

DIGITAL ELECTRONICS NOTESをやってみる (6. 組み合わせ回路)

以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site Q: 組合せ回路と順序回路の違いは何ですか? A: 任意の瞬間の出力が、その瞬間の入力にのみ依存する回路を組合せ回路と呼ぶ。したがって、これらの回路には記憶素子がない。半…

DIGITAL ELECTRONICS NOTESをやってみる (5. ゲート)

以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site A B R 0 0 0 0 1 1 1 0 1 1 1 0 Q: データ通信におけるXORゲートの典型的な役割は何か? A: XORゲートにより、パリティの検出やCRC、ECCなどに使われる。また、疑似乱数生成に…

RISC-VのPLICのためのテストケースを作って、Spikeとの一致検証環境を構築する

msyksphinz.hatenablog.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com PLICの実装で、一致比較環境が完成したのでテストを作って修正している。 まずはレジスタアクセスの部分から。とりあえず波形を見ながら修正して…

DIGITAL ELECTRONICS NOTESをやってみる (4. AND / OR 論理)

msyksphinz.hatenablog.com msyksphinz.hatenablog.com msyksphinz.hatenablog.com 以下のデジタル回路の問題をやってみる。続き。 lancamentomerlo.my.canva.site Q: 次のゲートのうち、ユニバーサルゲートと呼ばれるものはどれか、またその理由は? AND / …