AMBA 3.0に追加された高性能バス用のAXI仕様 ―― チャネル方式を導入し従来のAMBAバスから大きく変更
2003年6月に公開されたAMBA 3.0では,高性能なシステムのメイン・バスに使われるAXI(Advanced eXtensible Interface)仕様が追加された.ふつうのCPUのバス・インターフェースに近かった従来のAMBAバス仕様と異なり,AXI仕様は,チャネル構造やバースト転送を効率的に行うためのしくみを取り込んだ.本稿では,このAXI仕様について解説する. (編集部)
AMBA(Advanced Microcontroller Bus Architecture)は,筆者ら(英国ARM社)が策定しているシステムLSI向けのオンチップ・バス規格です.
オンチップ・バスは,システムLSI内部の各IPコア(回路ブロック)を接続してデータの転送を行います.理想としては,システムLSIを構成する任意の開発元のIPコアを簡単に接続できることが望ましいのですが,バスの仕様が統一されていないとなかなかこれを実現することはできません.そこで筆者らはオンチップ・バスの仕様を策定し,これを無償公開することで,IPコアのインターフェースの標準化を促進しています.
最初のバージョンのAMBA 1.0は,1995年に公開されました(図1).この仕様では,ASB(Advanced System Bus)とAPB(Advanced Peripheral Bus)という二つのバス仕様が定義されています.ASBはプロセッサとメモリ,および高性能デバイスを接続するためのバスです.一方,APBはI/Oなどの周辺デバイスを接続するためのバスです.
プロセッサ-メモリ間などを接続するためのバス規格として,1995年にASB(Advanced System Bus)仕様が定義された.1999年にはより高性能なAHB(Advanced High-performance Bus)仕様がとって代わり,また2003年にはさらに高性能なシステムLSI向けのAXI(Advanced eXtensible Interface)仕様が追加された.
次のバージョンであるAMBA 2.0は,1999年に公開されました.この仕様では,新たにAHB(Advanced High-performance Bus)仕様が定義されました.AHBはシステムLSI向けにASBをより洗練させた仕様になっています.具体的には,論理合成を行いやすいように,立ち上がりエッジのみのタイミングを利用するようにしたり,3ステートを使わない設計に変更されています.
最新のバージョンのAMBA 3.0は,2003年6月に公開されました.この仕様ではAMBA 2.0のAHBとAPBに加えて,AXI(Advanced eXtensible Interface)という新しいバスが追加されました.AXIは,より高性能になってきているシステムLSIの要求に応えるため,AHB仕様よりも高い性能が必要なシステムのメイン・バスを想定して策定されたインターフェースの仕様です(図2).本稿では,このAXI仕様について解説します.