見かけることの多くなってきたAMBA5(Advanced Microcontroller Bus Architecture)のAXI(Advanced eXtensible Interface)仕様について、長い仕様書を後から見に行かなくても良い程度のメモ書き。
対象の仕様書はこちらのAMBA5 「AMBA AXI プロトコル仕様」です。
機会があり次第更新しますが、まだ理解できていないことも多く間違いが多々あるので正確な仕様はAMBA仕様書で確認ください。
arm仕様書にならって意識的に「slave / master」のことを「Subordinate / Manager」と記述していきます。
基本的な信号
AXIの基本的な端子まとめ
AWSIZEとAWLENの対応
AxLEN[7:0] | 転送長 (0~255) |
---|---|
WRAP BURST | 2, 4, 8, 16 |
FIXED BURST | 最大16 |
INCR BURST | 1~256 |
- Source : Manager
- Length = AxLEN + 1
- 転送クロックサイクル数(長さ)
- 4KBアドレス境界を越えない(=0x1000サイズのアドレス境界を越えない)
- トランザクションの早期終了不可
AxSIZE[2:0] | 転送サイズ (0~7) |
---|---|
3'b000 | 1 byte |
3'b001 | 2 byte |
3'b010 | 4 byte |
3'b011 | 8 byte |
3'b100 | 16 byte |
3'b101 | 32 byte |
3'b110 | 64 byte |
3'b111 | 128 byte |
- Source : Manager
- 1転送あたりのサイズ(Data byte幅)
AxBURST[1:0] | 転送タイプ (0~3) |
---|---|
2'b00 : FIXED | アドレス固定 |
2'b01 : INCR | アドレスインクリメント |
2'b10 : WRAP | Wrap around (アドレスインクリメント、境界(Size * Length)に達すると最初のアドレスに戻る) |
2'b11 | Reserved |
- Source : Manager
- BURST転送タイプ
WSTRB (DATA_WIDTH/8) | 有効Write data byte |
---|
- Source : Manager
- 有効な書き込みbitを示す信号
BRESP (0,2,3) | Writeレスポンス (0~7) |
---|---|
3'b000 | OKAY |
3'b001 | EXOKAY |
3'b010 | SLVERR |
3'b011 | DECERR |
3'b100 | DEFER |
3'b101 | TRANSFAULT |
3'b110 | Reserved |
3'b111 | UNSUPPORTED(トランザクションタイプがターゲットでサポートされていない) |
- Source : Subordinate
- Writeが成功したかの返答
RRESP (0,2,3) | Readレスポンス (0~7) |
---|---|
3'b000 | OKAY |
3'b001 | EXOKAY |
3'b010 | SLVERR |
3'b011 | DECERR |
3'b100 | PREFETCHED |
3'b101 | TRANSFAULT |
3'b110 | OKAYDIRTY |
3'b111 | Reserved |
- Source : Subordinate
- Readが成功したかの返答
xLAST | 転送ラスト |
---|
- Source : Subordinate
- 転送の最後を示す信号
その他インターフェース信号
トランザクション信号
xID (0..32) | トランザクションの識別子 |
---|
- Source : Manager (AWID, ARID)
- Source : Subordinate (BID, RID)
- Default:All zeros
- トランザクションの順序付け識別子
- アウトスタンディング数が2以上のとき必要
- 書き込み要求が順序通りに発行される場合は必要ない
- ManagerがOutStanding転送をサポートしない場合、Subordinate側はAxID入力をLow固定
- SubordinateにIDが無い場合、ID信号を持つManagerに接続できない
- → AWIDやARIDに対して、BIDやRIDを返せないため
AxREGION[3:0] | リージョン識別子 |
---|
- Source : Manager (AWREGION, ARREGION)
- Default : 4'h0
- 0~15の領域を識別
- 用途:メモリリージョン(領域)の識別
- 単一のインターフェース内に複数のアドレス領域をサポート
- 用途:仮想マシンごとに異なるメモリリージョン割り当て
- 用途:アクセス権限の判断
- システムのセキュリティとパフォーマンスに影響を及ぼす
- Subordinateがどのメモリリージョンを対象とするか判断する
- 制約:4KBのアドレス空間内で一定の識別子
- サポートされない領域に対しての動作はSubordinate側で保証する(エラー応答など)
AxLOCK | 排他アクセスインジケータ |
---|---|
1'b0 | 複数のMasterによって自由にアクセス可能 |
1'b1 | ロック状態(排他アクセス)単一のManagerのみアクセス |
- Source : Manager(AWLOCK, ARLOCK)
- Default : 1'b0
- 特定のManagerに接続を専用化せず、セマフォタイプの処理を実現可能になる
- メモリなど共有リソースアクセスの際、競合を防ぐためのアクセス制御を行う
- ロック状態の管理によってはデッドロック状態が発生する可能性あり
AWCACHE[3:0] | メモリ属性 |
---|---|
[0] | Bufferable |
1'b0 | トランザクションがバッファリングされない |
1'b1 | トランザクションがバッファリングされる |
[1] | Modifiable |
1'b0 | トランザクションが変更可能ではない |
1'b1 | トランザクションが変更可能 |
[2] | Other Allocate |
1'b0 | アロケートされない |
1'b1 | アロケートされる |
[3] | Allocate |
1'b0 | Writeトランザクションでキャッシュミスしてもアロケートされない |
1'b1 | Writeトランザクションでキャッシュミスするとアロケートされる |
ARCACHE[3:0] | メモリ属性 |
---|---|
[0] | Bufferable |
1'b0 | トランザクションがバッファリングされない |
1'b1 | トランザクションがバッファリングされる |
[1] | Modifiable |
1'b0 | トランザクションが変更可能ではない |
1'b1 | トランザクションが変更可能 |
[2] | Allocate |
1'b0 | Readトランザクションでキャッシュミスしてもアロケートされない |
1'b1 | Readトランザクションでキャッシュミスするとアロケートされる |
[3] | Other Allocate |
1'b0 | アロケートされない |
1'b1 | アロケートされる |
ARCACHE[3:0] | AWCACHE[3:0] | メモリタイプ |
---|---|---|
4'b0000 | 4'b0000 | Device Non-bufferable |
4'b0001 | 4'b0001 | Device Bufferable |
4'b0010 | 4'b0010 | Normal Non-cacheable Non-bufferable |
4'b0011 | 4'b0011 | Normal Non-cacheable Bufferable |
4'b1010 | 4'b0110 | Write-Through No-Allocate |
4'b1110(0110) | 4'b0110 | Write-Through Read-Allocate |
4'b1010 | 4'b1110(1010) | Write-Through Write-Allocate |
4'b1110 | 4'b1110 | Write-Through Read and Write-Allocate |
4'b1011 | 4'b0111 | Write-Back No-Allocate |
4'b1111(0111) | 4'b0111 | Write-Back Read-Allocate |
4'b1011 | 4'b1111(1011) | Write-Back Write-Allocate |
4'b1111 | 4'b1111 | Write-Back Read and Write-Allocate |
- Source : Manager (AWCACHE, ARCACHE)
- 用途:キャッシュ効率とパフォーマンス制御
- Bufferable
- デアサート:データが最終目的地へ到達を示す
- アサート:データをバッファから送信できることを示す
- バッファにデータを一時的に保持し、その後ターゲットメモリへ書き込む
- バスの利用効率向上が見込める
- Modifiable
- デアサート:複数のトランザクションへ分割したり、他トランザクションとマージしたりしない
- アサート:トランサクションの変更を許可
- 基本的にアドレス(AxADDR,AxREGION),サイズ(AxSIZE),長さ(AxLEN),バーストタイプ(AxBURST),保護属性(AxPROT,AxNSE)は変更されないことを保証する
- ※ただし特定条件下での例外あり
- Other Allocate
- アサートされたとき
- キャッシュラインの検索が必要(以前割り当てられた可能性がある)
- キャッシュへの割り当ては非推奨(再度アクセスされることが予測されない)
- Allocate
- アサートされたとき
- キャッシュラインの検索が必要(以前割り当てられた可能性がある)
- キャッシュへの割り当て推奨(将来的にデータが使用されることが予測される)
- 「Other Allocate」と「Allocate」両方デアサートの場合、キャッシュを検索する必要はない
- メインメモリからキャッシュラインへデータをコピー(アロケーション)
- キャッシュラインからデータを空にする(エビクション)
AxPROT[2:0] | 予期せぬトランザクションからのメモリ保護 |
---|---|
[0] | 特権レベル |
1'b0 | Unprivileged |
1'b1 | Privileged |
[1] | セキュリティ属性 |
1'b0 | Secure |
1'b1 | Non-secure |
[2] | 命令/データ |
1'b0 | Data access |
1'b1 | Instruction access |
- Source : Manager (AWPROT, ARPROT)
- 保護属性(protection attribute)を使用しないSubordinateは信号入力を省略可能
- RME(Realm Management Extension)
- Unprivilleged / privileged
- 特権アクセス/非特権アクセスのふるまいはSubordinateにゆだねられる
- Security attribute
- トランザクションがどのセキュリティ状態で実行されるか
- Instruction / data
- データと命令が混在するトランザクションの区別のために用いられる
AxNSE | AxPROT[1] | Security attribute |
---|---|---|
0 | 0 | Secure |
0 | 1 | Non-secure |
1 | 0 | Root |
1 | 1 | Realm |
AxNSE | 予期せぬトランザクションからのメモリ保護 |
---|
- Source : Manager
- Non-secure extension bit for RME
- メモリ保護のための拡張信号
- Realm Management Extension (RME)がサポートされている場合にのみ存在
- セキュリティ機能
- Armv4のTrustZone
- Armv7のVirtualization
- Armv8のSecure EL2 Virtualization
- Armv9のCCA(Confidential Compute Architecture)
- CCAにRealm(レルム)が含まれる
- 参考:https://news.mynavi.jp/techplus/article/20210623-1909198/
AxQOS[3:0] | トランザクションの処理優先度付け |
---|
- Source : Manager (AWQOS, ARQOS)
- Quality of Service
- Write/Readリクエストの優先度を示す
- 一般的は値が大きいほうが優先度が高く優先的に処理を行う
- ManagerがQoSをサポートしない場合、生成するトランザクションの相対的な優先度を示すQoS値を使用する
xUSER (0..128 or 0..DATA_WIDTH/2) | 拡張信号 |
---|
- Source : Manager (AWUSER, WUSER, ARUSER)
- Source : Subordinate (BUSER, RUSER)
- ユーザー定義の拡張信号(カスタマイズ可能)
- トランザクションに追加情報を提供する
AxDOMAIN[1:0] | 転送サイズ (0~7) |
---|---|
2'b00 | Non-shareable domain(NSH) |
2'b01 | Shareable domain(SH) |
2'b10 | Shareable domain(SH[推奨]) |
2'b11 | System domain(SYS) |
- Source : Manager (AWDOMAIN, ARDOMAIN)
- リクエストがシステムのシェアラビリティドメイン(共有領域)に属するか指定
- キャッシュ動作を決定するのに使用される
- ドメイン(System, Non-shareable or Shareable)
- System Domain
- システムドメインリクエストはキャッシュ不可
- ローカルキャッシュに保存されない
- 一貫性の確保は簡単だが、パフォーマンスは高くない
- Non-shareable Domain
- ハードウェアコヒーレンシメカニズムのトリガは不要
- 非共有データをManeger間で共有する場合はキャッシュ・メンテナンス・オペレーション(CMO)トランザクションを発行して、データRead前にローカルキャッシュからデータをクリーニングし、無効する。
- ソフトウェアの正しさに競合バグの発生が依存する
- Shareable Domain
- メモリアドレスの一貫性と効率的なキャッシュ管理
- I/Oデバイスとプロセッサ間でデータの整合性を保つ(キャッシュの一貫性を保つ)
- シェアラブル属性を持つリクエストはローカルキャッシュをスヌープ(確認)し、他のマネージャーがキャッシュにシェアラブルデータが含まれるか確認する
AWSNOOP (0,4,5) | AWDOMAIN | Opcode | 説明 |
---|---|---|---|
5'b00000 | NSH, SYS | WriteNoSnoop | NSHまたはSYSへ書き込み |
SH | WriteUniquePtl | SHへ書き込み | |
NSH, SH, SYS | Atomic | Atomicトランザクション(AWATOP信号が非ゼロの場合) | |
5'b00001 | NSH | WriteNoSnoopFull | NSHへのキャッシュラインサイズ書き込み |
SH | WriteUniqueFull | SHへのキャッシュラインサイズ書き込み | |
5'b00010 | - | Reserved | - |
5'b00011 | SH | WriteBackFull | SHへのキャッシュラインサイズ書き込み。コヒーレントキャッシュに保持されていたラインで、Dirty状態 |
5'b00100 | - | Reserved | - |
5'b00101 | SH | WriteEvictFull | SHへのキャッシュラインサイズ書き込み。コヒーレントキャッシュに保持されていたラインで、Clean状態 |
5'b00110 | NSH, SH | CMO | データレスリクエスト、キャッシュメンテナンス作業が必要なことを示す。操作はAWCMO信号でエンコードされる。 |
5'b00111 | NSH, SH, SYS | WriteZero | キャッシュラインサイズの書き込み。すべてのバイト値がゼロ |
5'b01000 | SH | WriteUniquePtlStash | キャッシュへのアロケーションが示されるSHへの書き込み。キャッシュラインサイズまたはそれ以下 |
5'b01001 | SH | WriteUniqueFullStash | キャッシュラインサイズの書き込み。キャッシュへのアロケーションが示されるSH |
5'b01010 | NSH, SH | WritePtlCMO | AWCMO信号に従って、キャッシュされた行のコピーを消去もしくは無効化。キャッシュラインサイズまたはそれ以下の書き込み。 |
5'b01011 | NSH, SH | WriteFullCMO | AWCMO信号に従ってキャッシュされた行のコピーを消去または無効化 |
5'b01100 | NSH, SH | StashOnceShared | キャッシュラインをキャッシュに取り込むべきであることを示すデータなしリクエスト。そのラインの他のコピーを無効にする必要はない。キャッシュラインサイズ操作 |
5'b01101 | NSH, SH | StashOnceUnique | キャッシュラインをキャッシュにフェッチする必要があることを示すデータなしのリクエスト。他のすべてのコピーを無効にすることを推奨。キャッシュラインサイズ操作 |
5'b01110 | NSH, SH, SYS | StashTranslation | 変更をMMUへキャッシュすべきであることを示すデータなしリクエスト |
5'b01111 | NSH, SH | Prefetch | Manegerがアドレス指定されたキャッシュラインを後で読み取る可能性のあることを示すデータなし要求 |
5'b10000 | SYS | WriteDeferrable | SubordinateがDEFER or UNSUPPORTEDを返すことのできる64byteのAtomic書き込み |
5'b10001 | NSH, SH, SYS | UnstashTranslation | 変更が再び使用されることの低いことを示すデータなし要求 |
5'b10010 | NSH, SH | InvalidateHint | キャッシュラインが不要になり、無効にできることを示すデータなし要求。ライトバックは許可されるが必須ではない。キャッシュラインサイズ操作 |
5'b10011 to 5'b11111 | - | Reserved | - |
- Source : Manager
ARSNOOP (0,4) | ARDOMAIN | Opcode | 説明 |
---|---|---|---|
4'b0000 | NSH, SYS | ReadNoSnoop | NSHまたはSYSから読み込み |
SH | ReadOnce | ManagerがキャッシュしないSHから読み込み | |
4'b0001 | SH | ReadShared | Managerがキャッシュする可能性のあるSHからキャッシュラインサイズ読み込み、Dirty状態の可能性 |
4'b0010 | SH | ReadClean | Managerがキャッシュする可能性のあるSHからキャッシュラインサイズ読み込み、Dirty状態でない |
4'b0011 | - | Reserved | - |
4'b0100 | SH | ReadOnceCleanInvalid | ManagerがキャッシュしないSHから読み込み、キャッシュコピーは消去して無効化推奨、キャッシュラインサイズ or それ以下 |
4'b0101 | SH | ReadOnceMakeInvalid | ManagerがキャッシュしないSHから読み込み、キャッシュコピーは書き戻しなしで無効化推奨、キャッシュラインサイズ or それ以下 |
4'b0110 | - | Reseved | - |
4'b0111 | - | Reseved | - |
4'b1000 | NSH,SH | CleanShared | キャッシュラインの全てのコピーを消去、キャッシュラインサイズ or Regular |
4'b1001 | NSH,SH | CleanShared | キャッシュラインの全てのコピーを消去し無効化、キャッシュラインサイズ or Regular |
4'b1010 | NSH, SH | CleanSharedPersist | キャッシュラインの全てのコピーを消去、削除されたデータはPoint of Persistence or Point of Deep PersistenceをPass |
4'b1011 | - | Reserved | - |
4'b1100 | - | Reserved | - |
4'b1101 | NSH, SH | MakeInvalid | Aキャッシュラインのコピーを消去し無効化、Dirty Dataをメモリに書き込む必要なし、キャッシュラインサイズ or Regular |
4'b1110 | SH | DVM Complete | DVM同期メッセージの完了を示す |
4'b1111 | - | Reserved | - |
- Source : Manager
- 異なるキャッシュ間でデータの一貫性を保つ
- Point of Persistence(PoP)
- システム階層内でデータが永続的であるとみなされるポイント
- 電源が切れた場合でもデータは失われず保存される
- 書き込みがキャッシュを超えてメインメモリに到達したらPoPに達する
- Point of Deep Persistence(PoDP)
- データ永続性に関するより強い保証を提供するポイント
- バックアップバッテリーが失われた場合にもデータが保存される
- フラッシュメモリや他の不揮発性ストレージに書き込まれた時点でPoDPに達する
AWSTASHNID[10:0] | ノード識別子 |
---|
- Source : Manager
- スタッシュ操作のターゲットノード識別子
- Chache Stashing:キャッシュメモリの一部を外部(アクセラレータなど)からアクセスできるようにする
- 参考:https://eetimes.itmedia.co.jp/ee/articles/1803/23/news070.html
- 参考:https://www.4gamer.net/games/143/G014356/20170619064/
AWSTASHNIDEN | AWSTASHNIDのEnable信号 |
---|
- Source : Manager
- AWSTASHID信号が有効であることを示す
AWSTASHLPID[4:0] | 論理プロセッサの識別子 |
---|
- Source : Manager
- スタッシュ操作のターゲット内論理プロセッサの識別子
- non-stash transactionではLowにする
AWSTASHLPIDEN | AWSTASHLPIDのEnable信号 |
---|
- Source : Manager
- AWSTASHLPIDEN信号が有効であることを示す
xTRACE | システム全体のトランザクション追跡 |
---|
- Source : Manager (AWTRACE,WTRACE,ARTRACE, CRTRACE)
- Source : Subordinate (BTRACE,RTRACE, ACTRACE)
- 各チャネルに関連付けられる
- システムのデバック、トレース、パフォーマンス測定をサポート
- トレース信号の動作は実装定義(IMPLEMENTATION DEFINED)
- トレース信号がアサートされたリクエストに対するレスポンスは、トレース信号がアサートされることを推奨
xLOOP (0..8) | ループバック信号 |
---|
- Source : Manager (AWLOOP, ARLOOP)
- Source : Subordinate (BLOOP, RLOOP)
- リクエストからレスポンスに反映される必要のあるユーザー定義信号
- トランザクションに関する情報をインデックス付きテーブルに保存することを許可する
- レスポンスはトランザクションIDを使用した検索の代わりに、高速なテーブルインデックスを使用して必要な情報を取得できる
AxMMUVALID | MMUによるアドレス変換有効化 |
---|
- Source : Manager
- MMU(Memory Management Unit)
- Deassert:アドレスは物理アドレス、変換の必要なし
- Assert:アドレスが仮想アドレス、変換が必要(AxTAGOPは2'b00(無効))
AxMMUSECSID (0, 1, 2) | Label | Meaning |
---|---|---|
2'b00 | Non-secure | Non-secure address space |
2'b01 | Secure | Secure address space |
2'b10 | Realm | Realm address space |
2'b11 | Reserved | - |
- Source : Manager
- リクエストの仮想アドレス空間を示す
AxMMUSID (0..32) | Stream ID |
---|
- Source : Manager
- MMU(メモリ管理ユニット)内でリクエストを適切な変換コンテキストにマッピングするために用いられる
- アドレス空間の管理
AWMMUSSIDV | AWMMUSIDのValid信号 |
---|
- Source : Manager
- AWMMUSIDが有効であること示す
AWMMUSSID (0..20) | SubstreamID |
---|
- Source : Manager
- 同じStreamIDを持つリクエストに対し、異なるアプリケーションアドレスの変換を論理ブロックへ関連付ける
- メモリ管理とリソース割り当てに用いる
AxMMUATST | フロー |
---|---|
deassert (Low) | Stall flow |
assert (High) | ATST flow |
- Source : Manager (AWMMUATST, ARMMUATST)
- ATS(Address Translation Services)
- Version 1の仕様ではStall flowとATST flowをサポート
- Stall flow
- 変換フォールト時にトランザクションを待たせ、ソフトウェアがフォールトを処理するまで待つ(長い遅延やデッドロックの恐れ)
- ATST flow
- トランザクションがすでにATSによって変換されていることを示し、変換フォールト時にはSLVERRレスポンスを返す
AxMMUFLOW[1:0] | SMMU flow type |
---|---|
2'b00 | stall |
2'b01 | ATST |
2'b10 | NoStall |
2'b11 | PRI |
- Source : Manager (AWMMUFLOW, ARMMUFLOW)
- SMMU(System Memory Management Unit)
- 変換フォールトに遭遇した際にどのフローを使用するか指定する
- Version 2の仕様でサポート
- Stall flow
- SMMUが変換フォールトに遭遇した場合、要求を一時停止し処理を中断せずに続行
- ATST flow
- 特定のアドレスタイプの処理をサポートする
- NoStall flow
- SMMUが変換フォールトに遭遇した場合、要求を停止せずに処理を続行
- PRI flow
- PRI(Page Request Interface)
- 変換フォールトが発生したページの情報を提供し、ページリクエストを再執行する
AxPBHA[3:0] | ページベースのハードウェア属性 |
---|
- Source : Manager (AWPBHA, ARPBHA)
- Page-based Hardware Attributes (PBHA)
- 変換テーブルエントリの情報をトランザクションに注釈(ディスクリプタ)として追加し、システム全体で伝搬させる
- トランザクション要求のディスクリプタ、使用方法は実装定義
AxNSAID[3:0] | Non-secure Access ID |
---|
- Source : Manager (AWNSAID, ARNSAID)
- Default : 4'h0
- 非セキュアアクセス識別子(NSAID)
- NSAIDをチェックしてメモリ位置へのアクセスを許可、拒否を行う
- アクセス権限の管理は実装依存、通常メモリ保護ユニット(MPU)を使用して実装される
AxSUBSYSID (0..8) | Subsystem ID |
---|
- Source : Manager (AWSUBSYSID, ARSUBSYSID)
- トランザクションがどのサブシステムからの要求であるか示す
- システム内のメモリやデバイスを共有する部分でのトランザクションアドレスの識別や分離
- 具体的な使用方法は実装依存
- 共有メモリやデバイスの分離、セキュリティや安全性の向上、パフォーマンスモニタリングなどに利用される
AWATOP[5:0] | Atomic transaction opcode | 説明 |
---|---|---|
6'b000000 | Non-atomic operation | 通常のメモリ操作として扱う |
6'b01exxx | AtomicStore | e bit(=エンディアン),下位ビット(操作) |
6'b10exxx | AtomicLoad | e bit(=エンディアン),下位ビット(操作) |
6'b110000 | AtomicSwap | メモリ位置とレジスタ値を交換 |
6'b110001 | AtomicCompare | メモリ位置の値とレジスタ値を比較、一致すれば新しい値に更新 |
- e bit(AWATOP[3])
- deassert : little-endian
- assert : big0endian
AWATOP[2:0] | Operation | 説明 |
---|---|---|
3'b000 | ADD | Add |
3'b001 | CLR | Bit clear |
3'b010 | EOR | Exclusive OR |
3'b011 | SET | Bit set |
3'b100 | SMAX | Signed maximum |
3'b101 | SMIN | Signed minimum |
3'b110 | UMAX | Unsigned maximum |
3'b111 | UMIN | Unsigned minimum |
- Source : Manager
- Atomicトランザクションサポート信号
- AWATOP[3]:
- アサート時(1):ビッグエンディアン
- デアサート(0):リトルエンディアン
AxMPAM(0,11,12,14,15) | 説明 | マッピング |
---|---|---|
PARTID幅 9, PMG幅 1 | RME_Support is False | |
MPAM_NS | セキュリティ指標 | AxMPAM[0] |
PARTID | パーティション識別子 | AxMPAM[9:1] |
PMG | パフォーマンスモニタグループ | AxMPAM[10] |
PARTID幅 9, PMG幅 1 | RME_Support is True | |
MPAM_SP | 物理アドレス空間指標 | AxMPAM[1:0] |
PARTID | パーティション識別子 | AxMPAM[10:2] |
PMG | パフォーマンスモニタグループ | AxMPAM[11] |
PARTID幅 12, PMG幅 1 | RME_Support is False | |
MPAM_NS | セキュリティ指標 | AxMPAM[0] |
PARTID | パーティション識別子 | AxMPAM[12:1] |
PMG | パフォーマンスモニタグループ | AxMPAM[13] |
PARTID幅 12, PMG幅 1 | RME_Support is True | |
MPAM_NS | 物理アドレス空間指標 | AxMPAM[1:0] |
PARTID | パーティション識別子 | AxMPAM[13:2] |
PMG | パフォーマンスモニタグループ | AxMPAM[14] |
- Source : Manager (AWMPAM, ARMPAM)
- Memory System Resource Partitioning and Monitoring (MPAM)
- 物理および仮想マシンのためのメモリリソースのパーティショニング監視
- 用途:メモリコンポーネントでリソース割り当て
- メモリ使用量の監視(性能チューニング、コストの計算)
xIDUNQ | Unique ID indicator |
---|
- Source : Manager (AWIDUNQ,ARIDUNQ)
- Source : Subordinate (BIDUNQ,RIDUNQ)
- システム内のトランザクションの一意性と順序付けを管理
- 効率的なメモリ操作をサポート
- アサート:転送のIDがユニークであることを示す
- AxIDUNQ:Managerから同じAxIDを持つoutstandingトランザクションが存在してはいけない
- AxIDUNQがデアサートされたとき、xIDUNQも応答完了部分でデアサートされる必要がある
- AxIDUNQがアサートされたとき、xIDUNQも応答完了部分でアサートされる必要がある
AWCMO (0,2,3) | Label | 説明 |
---|---|---|
3'b000 | CleanInvalid | Clean and invalidate |
3'b001 | CleanShared | Clean only |
3'b010 | CleanSharedPersist | Clean to the Point of Persistence |
3'b011 | CleanSharedDeepPersist | Clean to the Point of Deep Persistence |
3'b100 | CleanInvalidPOPA | Clean and invalidate to the Point of Physical Aliasing |
3'b101 to 3'b111 | Reserved | - |
- Source : Manager
- Cache maintenance operations (CMO)
- 効率的なメモリ操作とキャッシュ管理
AWTAGOP[1:0] | Operation | Meaning |
---|---|---|
2'b00 | Invalid |
|
2'b01 | Transfer |
|
2'b10 | Update |
|
2'b11 | Match | 書き込みSTRBがアサートされているタグがメモリから取得した割り当てタグと一致するかチェックする必要がある。 一致していない場合でもデータをメモリに更新する WTAGUPDATE:非アサート WTAG:WSTRBによって有効化されているbyteレーンに対し有効 |
- Source : Manager
- MTE(Memory Tagging Extension)タグ操作を制御
- メモリ安全性の違反を検出する
ARTAGOP[1:0] | Operation | Meaning |
---|---|---|
2'b00 | Invalid | データとタグは一緒に返されない。RTAGは無効(0) |
2'b01 | Transfer | 各データの転送には有効なタグが含まれる。16byte granuleごとにタグが送信される(アドレスが16byteアラインメントでなくても良い) |
2'b10 | Reserved | - |
2'b11 | Fetch | データは無効、タグのみが送信される。Managerはデータを使用してはならず、トランザクションはキャッシュラインサイズ。16byte granuleごとにタグが送信される(アドレスが16byteアラインメントでなくても良い) |
- Source : Manager
- データと一緒に割り当てタグを返すことを要求する信号
- ARTAGOPがInvalidでない場合、タグがデータとともに送信される
AxMECID (0..16) | RMEメモリ暗号化コンテキスト識別子 |
---|
- Source : Manager
- Memory Encryption Contexts(MEC)
- Arm Realm Management Extension (RME)の拡張機能
- メモリアクセスごとに割り当てられ、暗号化エンジンによって暗号化コンテキストのインデックスとして使用される
AxNSE | AxPROT[1] | 物理アドレス空間 | MECID |
---|---|---|---|
1'b0 | 1'b0 | Secure | Must be 0 |
1'b0 | 1'b1 | Non-secure | Must be 0 |
1'b1 | 1'b0 | Root | Must be 0 |
1'b1 | 1'b1 | Realm | Any value |
xTAG (ceil(DATA_WIDTH/128)*4) | Memory Tag |
---|
- Source : Manager (WTAG)
- Source : Subordinate (RTAG)
- タグ情報を転送
- データに関連付けられるメモリタグ
- 役割:キャッシュ/メモリ管理の効率化
- 128bitデータごとに4bitのタグ
- Has the same validity rules as the associated data
- 無効なタグは0推奨
WTAGUPDATE (ceil(DATA_WIDTH/128)) | Memory Tag update |
---|
- Source : Manager
- AWTAGOP(2'b10:Update)のときメモリに書き込むべきタグを示す
- タグの4bitごとに1bit
xPOISON (ceil(DATA_WIDTH/64)) | データの破損を示す |
---|
- Source : Manager(WPOISON)
- Source : Subordinate(RPOISON)
- データ破損の可能性を他のコンポーネントへ通知する
- データ64bitごとに1bitの粒度でサポート(8byteアラインメント)
- AxSIZE<64bitの場合、各データ転送でPOISON bitが異なることがある
BCOMP | トランザクションの完了応答 |
---|
- Source : Subordinate
- Default : 1'b1
- Persistenceのためのキャッシュメンテナンスが必要な場合 or
- メモリタグ付けが必要な場合に存在する
- Persistenceのためのキャッシュ操作(CMOs for Persistence)
- データが揮発性メモリから永続的なメモリに移動されることを保証する操作
- メモリのタグ付け(MTE)
- メモリの安全性違反(バッファオーバーフロー、メモリリークなど)の検出メカニズム
- 特定用途向けにメモリ領域が割り当てられるとAllocation Tag値が与えられる
- メモリがアクセスされると、物理アドレスに対応するPhysical Tag値が与えられる
- Allocation TagとPhysical Tagが一致しない場合警告を生成
BPERSIST | Persist応答 |
---|
- Source : Subordinate
- Default : 1'b0
- Persistence Cache Maintenance Operation (PCMO)の応答
- データがPeristence Point(PoP)または、Deep Peristence Point(PoDP)に到達を示す
- ManagerでBPERSISTアサート数をカウントして、outstanding persistent operationsが無いことを判断
- システムメモリ整合性とデータ永続性を確保
BTAGMATCH[1:0] | Operation | 説明 |
---|---|---|
2'b00 | None | 比較結果が存在しない(not a match transaction) |
2'b01 | Separate | 比較結果が別の応答信号に含まれる |
2'b10 | Fail | タグ不一致 |
2'b11 | Pass | タグ一致 |
- Source : Subordinate
- Memory Tagging Extension (MTE)において、Writeに対するタグ比較結果を示す
- BCOMPとセットで使用される
BTAGMATCH[1:0] | BCOMP | 説明 |
---|---|---|
2'b00 | 1'b0 | tag Matchのレスポンスとして不適切 |
2'b00 | 1'b1 | tag Matchのレスポンスとして不適切 |
2'b01 | 1'b0 | 不適切 |
2'b01 | 1'b1 | 完了応答、二部構成応答の一方 |
2'b10 | 1'b0 | タグ不一致、二部構成応答の一方 |
2'b10 | 1'b1 | タグ不一致 or MTE Match 非サポート |
2'b11 | 1'b0 | タグ一致、二部構成応答の一方 |
2'b11 | 1'b1 | タグ一致 |
xBUSY[1:0] | Meaning | Manager behavior |
---|---|---|
2'b00 | Not busy | 投機的リクエストの増加 |
2'b01 | Optimally busy | 変更なし |
2'b10 | Quite busy | 投機的リクエストを減少させる |
2'b11 | Very busy | 投機的リクエストを大幅に減少させる |
- Source : Subordinate (BBUSY, RBUSY)
- Default : 2'b00
- Subordinateが現在の活動レベルを表すのに使用
- Managerが発行レートや投機的リクエストの数を制御するのに用いる
- 投機的リクエスト(speculative requests):システムやプロセッサが将来のデータや命令の必要性を予測し、リクエストを発行する
ARCHUNKEN | データ転送の効率向上 |
---|
- Source : Manager
- Default : 1'b0
- assert : Subordinateは128bit chunkで読み取りデータを送信可能
- Assert条件
- サイズが128bit以上
- サイズがデータチャネル幅と等しいか、転送長が1
- アドレスが16byteに整列
- バーストがINCR または WRAP
- OpcodeがReadNoSnoop, ReadOnce, ReadOnceCleanInvalid, または ReadOnceMakeInvalid
RCHUNKV | Read Data Chunk VALID |
---|
- Source : Subordinate
- Default : 1'b0
- RCHUNKNUMとRCHUNKSTRBが有効であることを示す
RCHUNKNUM (0,1,5,6,7,8) | 転送されるチャンク番号 |
---|
- Source : Subordinate
- チャンクはトランザクションのデータ幅とベースアドレスに従って、0から番号が付けられる
- 0 or 1 if DATA_WIDTH < 128
- 8 if DATA_WIDTH == 128
- 7 if DATA_WIDTH == 256
- 6 if DATA_WIDTH == 512
- 5 if DATA_WIDTH == 1024
RCHUNKSTRB | 転送に有効なデータチャンクを示す |
---|
- Source : Subordinate
- 各bitは128bitのデータに対応
- 0 or 1 if DATA_WIDTH < 256
- 2 if DATA_WIDTH == 256
- 4 if DATA_WIDTH == 512
- 8 if DATA_WIDTH == 1024
Snoop channel:
DVMメッセージ転送に使用される
ACADDR(1..64) | DVMメッセージのペイロード |
---|
- Source : Subordinate
- ペイロード:ヘッダー情報を除いたデータ本体
- メッセージフィールド
- 仕様書 (Table A15.20: Field mappings for TLB Invalidate messages)参照
ACVMIDEXT[3:0] | VMID extension for DVM messages |
---|
- Source : Subordinate
- DVMメッセージで16bit VMIDをサポートするための拡張機能
AWAKEUP | Read Write Channelに関連付けられたwake up信号 |
---|
- Source : Manager
- インターフェースに関連する情報があることを示すためのオプション信号
- 電源、クロック制御を行うコンポーネント(例:クロックコントローラーなど)にルーティングされ、接続されたコンポーネントに対して電源とクロックを有効にするために使用
- Managerからのリクエストが準備できていることを示す
- ARVALID,AWVALID,WVALIDなどの1サイクル前にアサートされることを推奨
- SubordinateのREADYがアサートされるまでアサートされたままである必要がある
ACWAKEUP | DVMメッセージトランザクションの開始 |
---|
- Source : Subordinate
- サブオーディネイトインターフェース(通常はインターコネクト上)からの出力信号
- DVM(Distributed Virtual Memory)メッセージトランザクションの開始を示す
- ACVALIDの少なくとも1サイクル前にアサート推奨
- ACVALID/ACREADYハンドシェイクが完了するまでアサートされたままでなければならない
VAxQOSACCEPT[3:0] | QOS値 |
---|
- Source : Subordinate (VAWQOSACCEPT, VARQOSACCEPT)
- Default : 4'h0
- Axチャンネルからのリクエストを受け入れるためのQoS値を示す
- リクエストの効率的な利用を確保し、システムの性能を維持するためリクエストを優先付ける
SYSCOREQ | DVMメッセージの受信を管理 |
---|
- Source : Manager
- DVM : Distributed Virtual Memory
- システムのコヒーレンシ接続を制御
- 受信リクエスト : HIGH
- インターコネクトはDVMメッセージの受信が有効であることをSYSCOACKをHIGHに設定して示す
- 停止リクエスト : LOW
- インターコネクトはDVMメッセージの受信が無効であることをSYSCOACKをLOWにして示す
SYSCOACK | DVMメッセージの有効/無効 |
---|
- Source : Subordinate
- インターコネクトから送信される
- DVMメッセージが有効 : HIGH
- DVMメッセージ無効 : LOW
State | SYSCOREQ | SYSCOACK | Rules |
---|---|---|---|
Disabled | 1'b0 | 1'b0 | Manager :
|
Connect | 1'b1 | 1'b0 |
Manager :
|
Enabled | 1'b1 | 1'b1 |
Manager :
|
Disconnect | 1'b0 | 1'b1 |
Manager :
|
Interface control signals
インターフェースの動作を制御するために使用するManager IFへの入力BROADCASTATOMIC | Atomic transaction制御 Input |
---|
- Source : Tie-off
- Default : 1'b1
- deassert : Managerはアトミックトランザクションを発行しない
BROADCASTSHAREABLE | Shareable transactions制御 Input |
---|
- Source : Tie-off
- Default : 1'b1
- deassert : すべてのトランザクションは送信前にNon-shareableに変換される
BROADCASTCACHEMAINT | cache maintenance operations制御 Input |
---|
- Source : Tie-off
- Default : 1'b1
- インターフェースからのCMOの発行制御
- deassert : CleanShared, CleanInvalid, MakeInvalid リクエストは発行されない
BROADCASTCMOPOPA | CleanInvalidPoPA CMO制御 Input |
---|
- Source : Tie-off
- リセット時にCleanInvalidPoPAの伝搬を制御
- deassert : CleanInvalidPoPAはCleanInvalidに変換される
BROADCASTPERSIST | CleanSharedPersist and CleanSharedDeepPersist制御 Input |
---|
- Source : Tie-off
- CleanSharedPersistおよびCleanSharedDeepPersist CMOの発行を制御
- deassert : CleanSharedPersistおよびCleanSharedDeepPersistはCleanSharedに変換される
- standalone CMOとwrite CMOに適用される
プロトコルごとの信号有無
Manager / Subordinate
〇:必須
△:オプション
×:なし
Signal | AXI5 | ACE5-Lite | ACE5- LiteDVM | ACE5- LiteACP | AXI5-Lite |
---|---|---|---|---|---|
ACLK | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
ARESETn | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
AWVALID | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
AWREADY | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
AWID | △/〇 | △/〇 | △/〇 | △/〇 | △/〇 |
AWADDR | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
AWREGION | △/△ | △/△ | △/△ | ×/× | ×/× |
AWLEN | △/〇 | △/〇 | △/〇 | △/〇 | ×/× |
AWSIZE | △/〇 | △/〇 | △/〇 | ×/× | △/△ |
AWBURST | △/〇 | △/〇 | △/〇 | ×/× | ×/× |
AWLOCK | △/△ | △/△ | △/△ | ×/× | ×/× |
AWCACHE | △/△ | △/△ | △/△ | △/△ | ×/× |
AWPROT | 〇/△ | 〇/△ | 〇/△ | 〇/△ | 〇/△ |
AWNSE | △/△ | △/△ | △/△ | ×/× | ×/× |
AWQOS | △/△ | △/△ | △/△ | ×/× | ×/× |
AWUSER | △/△ | △/△ | △/△ | △/△ | △/△ |
AWDOMAIN | △/△ | 〇/〇 | 〇/〇 | 〇/〇 | ×/× |
AWSNOOP | △/△ | △/〇 | △/〇 | △/〇 | ×/× |
AWSTASHNID | △/△ | △/△ | △/△ | △/△ | ×/× |
AWSTASHNIDEN | △/△ | △/△ | △/△ | △/△ | ×/× |
AWSTASHLPID | △/△ | △/△ | △/△ | △/△ | ×/× |
AWSTASHLPIDEN | △/△ | △/△ | △/△ | △/△ | ×/× |
AWTRACE | △/△ | △/△ | △/△ | △/△ | △/△ |
AWLOOP | △/△ | △/△ | △/△ | ×/× | ×/× |
AWMMUVALID | △/△ | △/△ | ×/× | ×/× | ×/× |
AWMMUSECSID | △/△ | △/△ | ×/× | ×/× | ×/× |
AWMMUSID | △/△ | △/△ | ×/× | ×/× | ×/× |
AWMMUSSIDV | △/△ | △/△ | ×/× | ×/× | ×/× |
AWMMUSSID | △/△ | △/△ | ×/× | ×/× | ×/× |
AWMMUATST | △/△ | △/△ | ×/× | ×/× | ×/× |
AWMMUFLOW | △/△ | △/△ | ×/× | ×/× | ×/× |
AWPBHA | △/△ | △/△ | △/△ | ×/× | ×/× |
AWMECID | △/△ | △/△ | △/△ | ×/× | ×/× |
AWNSAID | △/△ | △/△ | △/△ | ×/× | ×/× |
AWSUBSYSID | △/△ | △/△ | △/△ | ×/× | △/△ |
AWATOP | △/△ | △/△ | △/△ | ×/× | ×/× |
AWMPAM | △/△ | △/△ | △/△ | △/△ | ×/× |
AWIDUNQ | △/△ | △/△ | △/△ | △/△ | △/△ |
AWCMO | △/△ | △/△ | △/△ | ×/× | ×/× |
AWTAGOP | △/△ | △/△ | △/△ | ×/× | ×/× |
WVALID | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
WREADY | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
WDATA | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
WSTRB | △/〇 | △/〇 | △/〇 | △/〇 | △/〇 |
WTAG | △/△ | △/△ | △/△ | ×/× | ×/× |
WTAGUPDATE | △/△ | △/△ | △/△ | ×/× | ×/× |
WLAST | 〇/△ | 〇/△ | 〇/△ | 〇/△ | ×/× |
WUSER | △/△ | △/△ | △/△ | △/△ | △/△ |
WPOISON | △/△ | △/△ | △/△ | △/△ | △/△ |
WTRACE | △/△ | △/△ | △/△ | △/△ | △/△ |
BVALID | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
BREADY | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
BID | △/〇 | △/〇 | △/〇 | △/〇 | △/〇 |
BIDUNQ | △/△ | △/△ | △/△ | △/△ | △/△ |
BRESP | △/△ | △/△ | △/△ | △/△ | △/△ |
BCOMP | △/△ | △/△ | △/△ | ×/× | ×/× |
BPERSIST | △/△ | △/△ | △/△ | ×/× | ×/× |
BTAGMATCH | △/△ | △/△ | ×/× | ×/× | ×/× |
BUSER | △/△ | △/△ | △/△ | △/△ | △/△ |
BTRACE | △/△ | △/△ | △/△ | △/△ | △/△ |
BLOOP | △/△ | △/△ | △/△ | ×/× | ×/× |
BBUSY | △/△ | △/△ | △/△ | ×/× | ×/× |
ARVALID | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
ARREADY | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
ARID | △/〇 | △/〇 | △/〇 | △/〇 | △/〇 |
ARADDR | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
ARREGION | △/△ | △/△ | △/△ | ×/× | ×/× |
ARLEN | △/〇 | △/〇 | △/〇 | △/〇 | ×/× |
ARSIZE | △/〇 | △/〇 | △/〇 | ×/× | △/△ |
ARBURST | △/〇 | △/〇 | △/〇 | ×/× | ×/× |
ARLOCK | △/△ | △/△ | △/△ | ×/× | ×/× |
ARCACHE | △/△ | △/△ | △/△ | △/△ | ×/× |
ARPROT | 〇/△ | 〇/△ | 〇/△ | 〇/△ | 〇/△ |
ARNSE | △/△ | △/△ | △/△ | ×/× | ×/× |
ARQOS | △/△ | △/△ | △/△ | ×/× | ×/× |
ARUSER | △/△ | △/△ | △/△ | △/△ | △/△ |
ARDOMAIN | △/△ | 〇/〇 | 〇/〇 | 〇/〇 | ×/× |
ARSNOOP | △/△ | △/〇 | △/〇 | △/△ | ×/× |
ARTRACE | △/△ | △/△ | △/△ | △/△ | △/△ |
ARLOOP | △/△ | △/△ | △/△ | ×/× | ×/× |
ARMMUVALID | △/△ | △/△ | ×/× | ×/× | ×/× |
ARMMUSECSID | △/△ | △/△ | ×/× | ×/× | ×/× |
ARMMUSSID | △/△ | △/△ | ×/× | ×/× | ×/× |
ARMMUATST | △/△ | △/△ | ×/× | ×/× | ×/× |
ARMMUFLOW | △/△ | △/△ | ×/× | ×/× | ×/× |
ARPBHA | △/△ | △/△ | △/△ | ×/× | ×/× |
ARMECID | △/△ | △/△ | △/△ | ×/× | ×/× |
ARNSAID | △/△ | △/△ | △/△ | ×/× | ×/× |
ARSUBSYSID | △/△ | △/△ | △/△ | ×/× | △/△ |
ARMPAM | △/△ | △/△ | △/△ | △/△ | ×/× |
ARCHUNKED | △/△ | △/△ | △/△ | △/△ | ×/× |
ARIDUNQ | △/△ | △/△ | △/△ | △/△ | △/△ |
ARTAGOP | △/△ | △/△ | △/△ | ×/× | ×/× |
RVALID | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
RREADY | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
RID | △/〇 | △/〇 | △/〇 | △/〇 | △/〇 |
RIDUNQ | △/△ | △/△ | △/△ | △/△ | △/△ |
RDATA | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 | 〇/〇 |
RTAG | △/△ | △/△ | △/△ | ×/× | ×/× |
RRESP | △/△ | △/△ | △/△ | △/△ | △/△ |
RLAST | △/〇 | △/〇 | △/〇 | △/〇 | ×/× |
RUSER | △/△ | △/△ | △/△ | △/△ | △/△ |
RPOISON | △/△ | △/△ | △/△ | △/△ | △/△ |
RTRACE | △/△ | △/△ | △/△ | △/△ | △/△ |
RLOOP | △/△ | △/△ | △/△ | ×/× | ×/× |
RCHUNKV | △/△ | △/△ | △/△ | △/△ | ×/× |
RCHUNKNUM | △/△ | △/△ | △/△ | △/△ | ×/× |
RCHUNKSTRB | △/△ | △/△ | △/△ | △/△ | ×/× |
RBUSY | △/△ | △/△ | △/△ | ×/× | ×/× |
ACVALID | △/△ | ×/× | 〇/〇 | ×/× | ×/× |
ACREADY | △/△ | ×/× | 〇/〇 | ×/× | ×/× |
ACADDR | △/△ | ×/× | 〇/〇 | ×/× | ×/× |
ACVMIDEXT | △/△ | ×/× | △/△ | ×/× | ×/× |
ACTRACE | △/△ | ×/× | △/△ | ×/× | ×/× |
CRVALID | △/△ | ×/× | 〇/〇 | ×/× | ×/× |
CRREADY | △/△ | ×/× | 〇/〇 | ×/× | ×/× |
CRTRACE | △/△ | ×/× | △/△ | ×/× | ×/× |
AWAKEUP | △/△ | △/△ | △/△ | △/△ | △/△ |
ACWAKEUP | △/△ | ×/× | △/△ | ×/× | ×/× |
VARQOSACCEPT | △/△ | △/△ | △/△ | ×/× | ×/× |
VAWQOSACCEPT | △/△ | △/△ | △/△ | ×/× | ×/× |
SYSCOREQ | △/△ | ×/× | △/△ | ×/× | ×/× |
SYSCOACK | △/△ | ×/× | △/△ | ×/× | ×/× |
BROADCASTATOMIC | △/× | △/× | △/× | ×/× | ×/× |
BROADCASTSHAREABLE | △/× | △/× | △/× | △/× | ×/× |
BROADCASTCACHEMAINT | △/× | △/× | △/× | ×/× | ×/× |
BROADCASTCMOPOPA | △/× | △/× | △/× | ×/× | ×/× |
BROADCASTPERSIST | △/× | △/× | △/× | ×/× | ×/× |