AMBA 3.0に追加された高性能バス用のAXI仕様 ―― チャネル方式を導入し従来のAMBAバスから大きく変更
システム中に複数のマスタが存在する場合,各マスタが独自に発行するIDのユニーク性が問題となります.この場合はマスタとスレーブを接続するインターコネクトがマスタごとにユニークな番号を決定し,その番号をトランザクションIDの上位に連結してユニーク性を保ちます.
2)遅いデバイスを待たずにすむアウトオブオーダ完了
転送されるデータにトランザクションごとにユニークなIDを付加することで,トランザクションの発行の順番にデータが到着する必要がなくなります(ただし,同じIDを持つデータ間の順番は発行順と同じでなければならない).マスタは,順番ではなくトランザクションIDによってデータを識別するからです.これにより,トランザクションの発行の順とは関係なくトランザクションを完了できます(アウトオブオーダ完了).
アウトオブオーダ完了はシステムの性能を向上させます.例えば,DRAMのように最初のデータが出力されるまでに時間のかかるメモリの後に高速なメモリをアクセスする場合を考えてみます.アウトオブオーダ完了が不可能な場合,高速なメモリをアクセスしたにもかかわらず,遅いDRAMの動作を待たなければなりません(図12(a)).
アウトオブオーダ完了が可能な場合,後でアクセスした高速なメモリの転送を先に完了させて,その後DRAMからの転送を完了させることができます.図12(b)では,レイテンシの大きいA11のトランザクションの完了を待つことなくA21,A31のトランザクションが先に完了しています.さらに,複数のトランザクションのデータ転送を図12(c)のようにインターリーブする(はさむ)ことも可能です.
〔図12〕アウトオブオーダとデータ・インターリーブの効果
アウトオブオーダ完了が不可能な場合,先にアクセスしたメモリの転送が終わるまで,ほかのメモリにはアクセスできない.アウトオブオーダ完了が可能な場合,後でアクセスしたメモリの転送を先に完了させることができる.さらに,複数のトランザクションのデータ転送をインターリーブすることも可能.
●バスをロックしない排他アクセス
複雑なシステムでは,複数のバス・マスタの間の同期や排他処理を実現するための手段として,セマフォなどが必要となります.したがって複雑なシステム向けのバスは,セマフォを実現するための排他処理をサポートする機能を持つ必要があります.
セマフォの実体は,複数のマスタ間で共有する特定のメモリ位置です.同一のメモリの内容をマスタ間で参照/更新し合うことで動作を制御します.セマフォが正しく動作するためには,あるマスタがメモリを読み出して(read),変更し(modify),書き込む(write)間,ほかのマスタによって干渉されない(排他)ことを保障するメカニズムが必要になります.
AHBではそのためにロック信号を定義しています.あるマスタがバスをロックしている場合,ほかのマスタがバスを獲得できなくすることで排他処理を実現していました.この方式の問題点は,あるマスタがバスをロックしてしまうと,ほかのマスタはバスを獲得できず,ロックが解除されるまで待たされることです.
AXI仕様ではバスをロックせずに排他アクセスを行うことができます(なお,AHBと同様のロック・アクセスも実行できる).このアクセスではスレーブ側にモニタ機構が必要になります.また,バースト転送長は1に制限されます.
以下に,排他アクセスの一連の流れ(読み出し,変更,書き込み)を示します(図13).
〔図13〕排他アクセス動作
排他アクセスの一連の流れを示す.