AXIのデータ転送は、基本的にバースト転送です。従来の「アドレスが来てから、データを出す」の「〜バス」(アドレスバス、データバスなど)で定義されるのではなく、独立した「〜チャネル」(読み出しアドレスチャネル、読み出しデータチャネルなど)で定義されます。各チャネルは独立して情報を転送します。転送は、マスターインタフェースがアドレスとコントロール信号(VALIDやREADY信号など)を転送することから始まります。スレーブインタフェースは、アドレスとコントロール信号に従って、データをバースト転送します。
簡単に言うと「マスター側がデータ転送のリクエストを出すと、スレーブ側がリクエストの内容に従ってデータをバースト転送する。転送が終わったら、完了信号を返す動作」です。
読み出しでは、次の2つのチャネルが定義されます。
書き込みは、次の3つのチャネルが定義されます。図2に書き込みチャネルの例を示します。
このように、読み出しと書き込みを合わせると、5つのチャネルが定義されます.
書き込みチャネルの場合、読み出しチャネルと同じようにマスターインタフェースから、スレーブインタフェース側にアドレスとコントロール信号を送ります。その後、マスターインタフェース側から、データを次々と送り出します。スレーブインタフェース側は、これらのデータを受け取り、受け取りが完了した時点で書き込み応答を返します。
AXIは、命令フェッチとデータ読み出しのように、機能的に相関関係が無い場合は、混在して使うことができます。
図3にイメージを示します。命令もデータも同じAXIに乗せて、命令フェッチとデータ読み出しを行うことができます。
AXIの仕様について詳しく知りたい方はArmのWebサイトを参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.