AXI転送

AXI転送の制限

AXI転送を行う際には、次に示す制限があります。

  • ●バーストは、最大32バイト
  • ●バースト長さは、最大4転送
  • ●Strongly-orderedメモリまたはDeviceメモリの書き込みバーストの最大長は2転送です
  • ●Strongly-orderedメモリまたはDeviceメモリの読み出しは、常に1転送です
  • ●メモリの32バイト境界を越えるトランザクションはありません。プロセッサは、キャッシュラインの境界である32バイト境界にまたがるアドレスにアクセスするとき、AXIバーストを分割します。1つまたは2つの32バイト境界にまたがってメモリにアクセスする命令は、それぞれ2つまたは3つのAXIバーストを生成します
  • ●固定バーストは使用されません
  • ●書き込みアドレスチャネルは常にインクリメントタイプバーストで、決してラッピング(アドレスがメモリの末尾に達すると、メモリの先頭に戻ってアクセスを続ける)または固定ではありません
  • ●ラッピングタイプメモリは、
    • ーキャッシュ可能なNormalメモリのラインフィル(読み出し)に使用されます
    • ー常に64ビットサイズで4転送です
    • ー常に64ビット境界のスタートアドレスです
    • (参考)Normalのキャッシュ可能メモリからのロードおよび命令フェッチがキャッシュにヒットして、対応するキャッシュが動作している場合、キャッシュのラインフィルが発生します。キャッシュのラインフィルについて、ARADDRM、ARBURSTM、ARSIZEM、ARLENMの値を、下表に示します
アドレス[4:0](*) ARADDRM ARBURSTM ARSIZEM ARLENM
0x00~0x07 0x00 ラッピング 64ビット 4つのデータ転送
0x08~0x0F 0x08 ラッピング 64ビット 4つのデータ転送
0x10~0x17 0x10 ラッピング 64ビット 4つのデータ転送
0x18~0x1F 0x18 ラッピング 64ビット 4つのデータ転送
(*)これらは、ラインフィルを引き起こしたアクセスのアドレスの下位5ビットです。
  • ●8ビット16ビットサイズの転送の場合は、バースト長は常に1転送です
  • ●64ビットAXIなので、転送サイズは64ビットよりも大きくなりません
  • ●命令フェッチは、常に64ビットの転送サイズです、そして、決してロックされないか、排他的ではありません
  • ●DeviceメモリとStrongly-orderedメモリへのトランザクションは、常に、転送サイズに整列されたアドレスに対して行われます。DeviceメモリまたはStrongly-orderedメモリとの間でのロード/ストア命令では、命令によって指定されるものと同じサイズのAXIトランザクションが生成されます。DeviceメモリまたはStrongly-orderedメモリに対して、LDM、STM、LDRD、STRD命令を使用して行われるアクセスは、すべて32ビットの転送として実行されます
  • ●排他的なアクセスは、常に、転送サイズに応じて揃えられたアドレスに対して行われます
  • ●共有メモリ(shared memory)への排他的アクセスだけが、結果的に、AXIMの上で排他的なアクセスになります

データキャッシュ

データキャッシュが有る場合のAXIトランザクション

データキャッシュが有る場合に、AXIトランザクションが生成できるのは以下のケースです。

Normal、キャッシュ対応メモリ

  • ●ラッピング4(WRAP4)64ビット読み出し、ロードとライトバックと書き込み割り当てのラインフィルへのストアと命令ラインフィル用
  • ●インクリメント4(INCR4)64ビット書き込み、エビクション用
  • ●インクリメントN(INCR N)(1-4)64ビット書き込み転送、連携した個別ライトスルーまたはライトバック、またはライトアロケートなしのストア用
  • ●インクリメントN(INCR N)(1-4)64ビット読み出し転送、データキャッシュが無効の場合のロード用、または命令キャッシュが無効の場合の命令フェッチ用

Normal、キャッシュ非対応メモリ

  • ●インクリメントN(INCR N)(1-4)64ビット書き込み転送、個別ストアと複数ストア用
  • ●インクリメントN(INCR N)(1-4)64ビット読み出し転送、個別ロードと複数ロード用
  • ●インクリメントN(INCR N)(1-4)64ビット読み出し転送、命令フェッチ用
  • ●インクリメント1(INCR 1)8ビットと16ビットと32ビット、排他的読出しと書き込み、共有された排他的なもの用

Strongly OrderedメモリまたはDevice

  • ●インクリメント1(INCR 1)8ビットと16ビットと32ビット、読出しと書き込み、個別ロードとストア用
  • ●インクリメント1(INCR 1)32ビット、読出し転送、複数ロード用
  • ●インクリメントN(INCR N)(1-2)32ビット、書き込み転送、複数ストア用
  • ●インクリメント1(INCR 1)8ビットと16ビットと32ビット、排他的読み出しと書き込み、共有された排他的なもの用

固定バーストは使用されない

Normalメモリへの書き込みバーストは、次の最適化を使用することができます

  • ●ストローブセット無しのビート全体
  • ●1ビートあたりの非連続的なストローブ
  • これらは、AHBブリッジがインプリメントされているAXI上で許可されます

データキャッシュが無い場合のAXIトランザクション

データキャッシュが無い場合に、AXIトランザクションが生成できるのは以下のケースです。

Normalメモリ

  • ●ラッピング4(WRAP4)64ビット読出し、命令キャッシュを含む命令ラインフィル
  • ●インクリメントN(INCR N)(1-4)64ビット読出し転送、個別ロードと複数ロード用
  • ●インクリメントN(INCR N)(1-4)64ビット書き込み転送、個別ストアと複数ストア用
  • ●インクリメントN(INCR N)(1-4)64ビット読出し転送用、 キャッシュ不可の命令フェッチ用、または命令キャッシュが無い場合のすべての命令フェッチ用
  • ●インクリメント1(INCR 1)8ビットと16ビットと32ビット、排他的読出しと書き込み、共有された排他的なもの用

Strongly Orderedメモリ

  • ●インクリメントN(INCR N)(1-2)32ビット書き込み転送、個別ストアと複数ストア用
  • ●インクリメントN(INCR N)(1-2)32ビット読出し転送、個別ロードと複数ロード用
  • ●インクリメント1(INCR 1)8ビット/16ビット/32ビット、排他的読出しと書き込み、共有された排他的なもの用

固定バーストは使用されない

Normalメモリへの書き込みバーストは、次の最適化を使用することができます

  • ●ストローブセット無しのビート全体
  • ●1ビートあたりの非連続的なストローブ
  • これらは、AHBブリッジがインプリメントされているAXI上で許可されます

ID

以下のID読み出し/書き込みが、AXI上で可能です。

読み出しID

  • ●ID0 – シングルNormalキャッシュ不可メモリとDeviceとStrongly Orderedメモリ読み出し
  • ●ID1 – ラインフィルバッファ0からのデータキャッシュラインフィル
  • ●ID2 – ラインフィルバッファ1からのデータキャッシュラインフィル
  • ●ID3 – 命令フェッチ

書き込みID

  • ●ID0 – Normalキャッシュ不可メモリと排他的ストア転送
  • ●ID1 – Normalキャッシュ可能なライトスルー、ライトバック、ライトアロケート無しのメモリへの書き込み
  • ●ID2 – DeviceまたはStrongly-orderedメモリへの書き込み
  • ●ID3 – Normalキャッシュ可能なライトバックメモリへのエビクション