AMBA 3.0に追加された高性能バス用のAXI仕様 ―― チャネル方式を導入し従来のAMBAバスから大きく変更
●オンチップ・バスの性能がシステムLSIに大きく影響
携帯電話やディジタル家電製品の機能の向上に伴って,これらに組み込まれているシステムLSIに対する要求性能は非常に高くなっています.そのため,システムLSIを構成するマイクロプロセッサなどのIPコアは,さまざまな技法を用いることで処理性能を向上させています.しかし,システムLSI全体の性能を上げるためには,IPコア単体の性能が向上するだけでは不十分です.システムLSIはその名まえが示すように一種のシステムなので,接続されたIPコア群が全体として高速に動作することによって,システムとしての性能が発揮されます.したがって,IPコア間を接続するバスの性能が,システムの性能に大きく影響します.
また,近年の通信速度の向上や動画データ処理機能の追加などにより,マイクロプロセッサ(CPU)以外にも大量のストリーミング・データがシステムLSI内部を流れるようになってきました.このため,それまでのシステムLSIに比べてバスに対する負荷が増加し,バスの性能がシステム性能に大きく影響するようになりました.
これらの要求に応えるため,AHB仕様の高性能版として開発されたのがAXI仕様です.AXI仕様には,バスの利用効率を上げるための機能(例えばバースト転送の先頭アドレスのみを送信するなど)が数多く用意されています.ただし,インターフェース回路の規模がAHB仕様に比べて増えます.システムの経済性や要求性能を考慮して,AHB仕様とAXI仕様のどちらか最適なほうを選択する必要があります(両バスの混在実装についてはコラム「AHB仕様とAXI仕様を接続する」を参照).
1.AXI仕様
AHB仕様の持つ信号とタイミングは,一般的なCPUのバス・インターフェースとよく似ています.それに対してAXI仕様は,性能を引き上げるため,従来とはかなり異なった構造になっています.
●AXIで導入された「チャネル」という概念
AXIとAHBのいちばん大きな違いは「チャネル」という概念の導入です.チャネルは,それまでの一般的なバスの構造にはなかった概念です.AXIが従来のものとどのように異なっているかを知るためには,AHBのような従来の「バス」注1がどういうものであるかを知る必要があります.
注1;バスという概念自体も厳密な定義があるわけではない.CPUの外部信号群全体を一つのバスと称することもあるし,複数の線で構成された多種の情報を載せる信号だけのことをバスと呼ぶ場合もある.
AHBは,一般的にCPUなどのバス(外部デバイスと接続するための信号群)に使われます.このAHBは,以下のような複数のバスとそのほかの信号で構成されます(図3).
・アドレス・バス(HADDR)
・読み出しデータ・バス(HRDATA)
・書き込みデータ・バス(HWDATA)
・制御信号
・応答信号
〔図3〕AHB仕様のバス構造
AHBのバスはそれぞれの情報を載せるという役割しかなく,バス間の動作タイミングは厳密に定義されている.一つの転送を行うために各バスが協調して動作しなければならず,独立して動作することはできない.