RTL設計:シストリックアレイ
符号付きMAC演算、入力のスキュー、処理要素からパラメータ化した行列乗算アレイを構築し、タイリング、フロー制御、エッジごとの厳密な動作を検証します。
このコースで学ぶこと
- 行列の添字と内積を処理要素に割り当てる
- 符号付きの積、アキュムレータ、固定小数点出力のビット幅を選択する
- 入力をずらして出力固定の2×2およびN×Nアレイをスケジュールする
- 厳密なエッジの契約でvalid、タグ、ストール、リセットを定義する
- スコアボードでタイル境界、帯域幅、総合課題を検証する
はじめる前に
ブラウザー演習は教育用モデルで、HDLのコンパイルや実行は行いません。配布ソースを別途実行する場合は、OSに合ったDigital Design Studioの手順に従い、必要な操作ではログインしてください。
インストールと初回起動 ↗ · ダウンロード ↗カリキュラム
- 行列と算術の契約
- 内積を処理要素に割り当てる概念
行、列、縮約の添字を区別し、小さな参照行列を計算します。
- 符号付きの積とアキュムレータのビット幅概念
最悪のオペランド範囲からアキュムレータの幅を導きます。
- 固定小数点出力の方針概念
入力スケール、負数の丸め、飽和、折り返しを区別します。
- 算術の契約を確認する理解度チェック
縮約全体の長さからアキュムレータの幅を選びます。
- 処理要素と有効トークン
- 1つの立ち上がりエッジでの契約概念
エッジ番号、レジスタによる転送、累積、初期化の優先順位を確定します。
- 実習:符号付きMAC処理要素実習
独立したモデルで有効なオペランド、ストール、クリアを検査します。
- Validフラグ、タグ、フラッシュ概念
数値のゼロ、バブル、別ジョブのトークンを区別します。
- 処理要素の制御を確認する理解度チェック
停止中に保持すべき状態を特定します。
- アレイと入力スケジュール
- 出力固定とその他のデータフロー概念
PEに何が留まるかを特定して、記憶と転送を比較します。
- 実習:入力をずらした2×2アレイ実習
1エッジの転送遅延をモデル化し、すべての中間アキュムレータを検査します。
- N×Nへ拡張し、完了エッジを数える概念
空間サイズNと縮約長Kを別々にパラメータ化します。
- スケジュールと完了を確認する理解度チェック
最終投入と最終結果が利用可能になる時点を区別します。
- タイリング、帯域幅、フロー制御
- タイリングと境界パディング概念
大きな行列を小さな格子へ割り当て、ゼロパディングと出力マスクを扱います。
- 帯域幅と有用な利用率概念
ピークMAC能力を、充填、排出、パディング、メモリのコストと区別します。
- 実習:バックプレッシャーとリセット実習
全体停止、結果保持、中断ジョブのリセットを実行します。
- パディングと帯域幅を確認する理解度チェック
オペランドの有効性と結果アドレスの有効性を区別します。
- 検証と総合課題
- スコアボードと不変条件概念
最終行列に加えて、項、タグ、エッジ、出力転送を検査します。
- 符号付きと境界のテストを設計する概念
正常例1つを超え、算術、形状、制御の境界を組み合わせます。
- 総合課題:タイル化N×N検証モデル実習
任意のNとKにパディングと停止を組み合わせ、独立した参照モデルと比較します。
- RTL統合レビューと拡張概念
学習モデルをRTLインターフェースと検証証拠につなげます。