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


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のマイクロ・アーキテクチャを示している。プリフェッチ・コントローラおよびプロアクティブキャっっしゅとして使用できるL1キャッシュが必要である。
  • ノーマルモードとプリフェッチ・メードを持っている。プリフェッチ・モードではベクトルエンジンからのデータリクエストプリフェッチを生成する。データはプロアクティブキャッシュとして活用する。
  • Precise Preetcherはベクトル・メモリ・キューにアクセスしVector Load Instructionをデコードし、ベースアドレス・ストライド・インデックスなどの基本的な情報を抽出し、あらかじめメモリ・リクエストを発行しておく。
  • プロアクティブ・キャッシュを導入し、ベクトルエンジンは同時にアクセスする。ChameSCのベクトル・メモリ・アクセスはプロアクティブ・キャッシュから見つけ出すことができる。

B. プリフェッチ・コントローラの設計

  • プリフェッチ・コントローラはVMQから情報を抽出し、メモリ・リクエストを発生させる。
    • アドレス変換のためにロード・キューに入れるというのはどういうことだ。
  • Address Packing Unitによって、スカラ・ベクトル・レジスタの値を読み込んでベクトルメモリ・アクセスを読み込む。
  • ベクトル・プリフェッチのビットがLQについている場合は、通常のリクエストよりも優先度が低く対応される。

C. プロアクティブ・キャッシュの設計

  • ChameSCはL1キャッシュをプロアクティブ・キャッシュとして使用する。ベクトル・メモリ・ユニットはL1キャッシュとプロアクティブ・キャッシュの両方にアクセスする。
    • これはL1キャッシュとプロアクティブ・キャッシュを綿密に連携させないと実装が難しいのでは?
  • プロアクティブ・キャッシュ内のMSHRがLSUとベクトル・プリフェッチの関係性を制御する。

D. ベクトル・メモリ・キュー

  • ベクトル命令は、VAQもしくはVMQに発行される。ストライド・ロード命令の場合は命令とスカラ・レジスタの情報をベクトル・エンジンに渡す。
  • プリフェッチ・コントローラはベクトル命令をVMQ内でプローブすることから始まる。プローブウィンドウサイズが1の場合はコントローラはプリフェッチ実行後もその場所を維持し、新しい命令を待つ。
  • プリフェッチ・コントローラはベクトル命令をVMQに返し、プリフェッチに使用する。

E. ノーマル・プリフェッチ・モード

F. ハードウェア・コスト

  • プリフェッチ・コントローラは2つのスカラレジスタおよび512ビットベクトルレジスタを導入する。
  • トータルでChameSCの導入コストは最小である。
    • プロアクティブ・キャッシュは?



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

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