FPGA開発日記

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

AMBA CHIプロトコルの勉強 (3. CHIのReqインタフェースについて)

AMBA CHIについて今更勉強している。

TXのReqインタフェースについて。マニュアルを読んで必要な信号線をチェックする。

B2.2.1 Transaction request fields

リクエストに使用するフィールド:

  • QoS : サービス品質優先度(Quality of Service priority)。トランザクションに可能な16の優先レベルの1つを指定し、QoSの値が高いほど優先レベルが高いことを示す。
  • TgtID: ターゲット識別子。パケットのターゲットとなるコンポーネント上のポートのノード識別子。
    • これはターゲットの識別子をあらかじめリクエスト発信元が知っていなければならないという意味なんだろうか?
  • SrcID: 送信元識別子。パケットを送信したコンポーネント上のポートのノード識別子。
  • TxnID: トランザクション識別子。トランザクションは送信元ノードごとに一意のトランザクション識別子を持つ。
    • トランザクションリクエストは、与えられたRequesterからのトランザクションを識別するために使用されるTxnIDを含んでいる。
    • TxnIDは、PrefetchTgtを除き、与えられたRequesterで一意でなければならな い。
    • RequesterはSrcIDによって識別される。これにより、返される読み取りデータまたは応答情報が、 正しいトランザクションと関連付けられることが保証される。
    • TxnIDには12ビットのフィールドが定義され、未処理のトランザクション数は1024に制限される。Requesterは、以下のいずれかを受け取った後、TxnID値を再利用することが許される。
  • ReturnNID: リターンノード識別子。Data レスポンス、Persist レスポンス、または TagMatch レスポンスの受信ノード識別子。
  • StashNID: Stashノード識別子。Stashターゲットのノード識別子。
    • Stashというのは、キャッシュの特定の領域にデータを配置する操作のことを言うらしい。
  • DataTarget: データターゲット。リクエスタからインターコネクト内のキャッシュに配置と使用のヒントを転送する。
    • Requesterがインターコネクト内のキャッシュに配置と使用のヒン トを提供することは許可されているが、必須ではない。
    • 通常、Requesterはキャッシュラインの有用性に関する最良の知識を持っている。
    • この知識を知らされているシステムレベルキャッシュ(SLC)は、自身のキャッシュレベルの配置および置換アルゴリズムにバイアスをかけるために、この知識を使用することができる。
  • StashNIDValid: StashNIDが有効であることを示す。
  • Endian: エンディアン。Atomicトランザクションのデータパケット内のデータのエンディアンを示す。
  • Deep: 深いPersistence。Persist応答が、それ以前のすべての書き込みが最終宛先に書き込まれるまで送信されてはならないことを示す。
    • Deepフィールドがアサート (有効化) されているとき:
      • 「すべての以前の書き込み操作が最終的な保存先に書き込まれるまでレスポンスを返さない」という条件を意味する。
      • これにより、データが最終的に指定された永続性レベル(例えば、電源を切った際にも保持される不揮発性メモリなど)に完全に保存されることを保証する。
  • PrefetchTgtHint: PrefetchTgtヒント。元のリクエストが関連するPrefetchTgtリクエストを持っていたことを示す。Chip-to-Chipリンクのレシーバーは、オリジナルのPrefetchTgtがChip-to-Chipリンクのトランスミッターでドロップされたことが分かっていれば、PrefetchTgtリクエストを再作成するためにこのフィールドを使用できる。
  • ReturnTxnID:リターントランザクション識別子。下位からのデータ応答のTxnIDの値を伝える一意のトランザクション識別子。
  • StashLPIDValid: Stash論理プロセッサ識別子が有効であることを示す。StashLPIDフィールド値がStash対象であることを示す。
  • StashLPID: Stash 論理プロセッサ識別子。Stashターゲットの論理プロセッサ(LP)の識別子。
  • Opcode: リクエストオペコード。トランザクションタイプを指定し、トランザクショ ン構造を決定する主要フィールドである。
  • Size: データサイズ。トランザクションに関連付けられたデータのサイズを指定し、トランザクショ ン内のデータパケット数を決定する。
  • Addr: アドレス。ReadおよびWriteリクエストでアクセスされるメモリ位置のアドレス。
  • NS: Non-secure(非セキュア)。NSE と組み合わせて、アクセスの物理アドレス空間(PAS)を確立する。
  • NSE: 非セキュア拡張。NS と組み合わせてアクセスの PAS を確立する。
  • LikelyShared: 共有の可能性が高い。下流キャッシュへの割り当てヒントを提供する。B2.7.5 Likely Shared」参照。
  • AllowRetry: 再試行を許可する。ターゲットが Retry 応答を許可されるかどうかを決定する。
  • Order: オーダー要求(Order requirement)。同じエージェントからの他のリクエストに対するリクエストの順番付けの要 件を決定する。
  • PCrdType: プロトコルクレジットタイプ: プロトコルクレジットタイプ(Protocol Credit Type)。
  • MemAttr: メモリ属性。トランザクションに関連付けられたメモリ属性を決定する。
  • SnpAttr: スヌープ属性: Snoop 属性。トランザクションに関連するスヌープ属性を指定する。