AMBA 3.0に追加された高性能バス用のAXI仕様 ―― チャネル方式を導入し従来のAMBAバスから大きく変更
●○● Column ●○●
AHB仕様とAXI仕様を接続する
高性能なシステムを低コストで実現するためには,最適なバスを選択することが重要です.したがって,必要な部分にはAXI仕様を用いて高性能を実現し,性能がそれほど必要でない部分にはAHB仕様やAPB仕様を用いるといった使い分けを検討する必要があります.ただし,AHBとAXIは信号タイミングや信号の種類などに違いがあり,AHB仕様のデバイスとAXI仕様のデバイスを直接接続することはできません.AXIとAHB,APBの間を接続するブリッジ回路が必要です.
また,AHB仕様に準拠した回路をすでに持っており,それを直接AXI仕様に接続したい場合にはAHB-AXI変換ラッパ(アダプタ回路)が必要です.逆に,AXI仕様に準拠した回路をAHB仕様に接続するにはAXI-AHB変換ラッパが必要です.これらを利用すれば,両バスの同時混在実装やバス間での移行が可能です.
筆者ら(ARM社)は,このようなブリッジ回路や変換ラッパをADK(AMBA Design Kit)の部品として順次提供していく予定です.ADKとは,AMBAベースのシステムを設計する際に必要となる部品(例えばアービタ,デコーダ,マルチプレクサ,マスタ・デバイスやスレーブ・デバイスのサンプルなど)を提供するツール・キットのことです.
●○● Column ●○●
AXIバスの構成と信号
AXIバスの信号は,大きく以下の6種類に分けられます(表A).
・グローバル
・アドレス・チャネル
・読み出しチャネル
・書き込みチャネル
・書き込み応答チャネル
・低電力インターフェース
グローバルはリセット信号とクロック信号で構成されます.AXIバスの動作は,この唯一のクロックの立ち上がりエッジに同期しています.
アドレス・チャネルはマスタが送出します.転送開始アドレスと転送に関する制御情報を載せます.また,同時にトランザクションIDも送出します.
読み出しチャネルはスレーブが送出します.マスタから受け取ったアドレス情報に対応したデータを,このチャネルでマスタに対して送出します.その際,アドレス情報に付加されていたトランザクションIDをデータに付加します.
書き込みチャネルはマスタが送出します.アドレス・チャネルで送出したアドレスに対応したデータを,このチャネルでスレーブに対して送出します.その際,アドレス情報に付加したトランザクションIDをデータに付加します.
書き込み応答チャネルはスレーブが送出します.マスタから送出された書き込みデータを受け取ったことを通知するために,マスタに対して送出します.その際,アドレス情報に付加されていたトランザクションIDをデータに付加します.
低電力インターフェースは,周辺回路のクロックを停止するためのインターフェース信号で構成されます.この信号は,システム・クロック・コントローラと周辺回路の間で使用されます.
グループ | 信号名 | ソース | 説 明 |
グローバル | ACLK | クロック源 | グローバル・クロック信号 |
ARESETn | リセット源 | グローバル・リセット信号.アクティブ"L"信号 | |
アドレス・チャネル | AVALID | マスタ | アドレス有効.アドレスと制御情報が有効なことを示す |
ADDR[31:0] | マスタ | アドレス | |
AWRITE | マスタ | バーストの方向 | |
ALEN[3:0] | マスタ | バーストの長さ | |
ASIZE[2:0] | マスタ | バーストのサイズ | |
ABURST[1:0] | マスタ | バーストのタイプ | |
ALOCK[1:0] | マスタ | ロック・タイプ | |
ACACHE[3:0] | マスタ | キャッシュのタイプ | |
APROT[2:0] | マスタ | 保護レベル | |
AID[3:0] | マスタ | アドレスID | |
AREADY | スレーブ | アドレス・レディ. スレーブがアドレスを受信できることを示す | |
読み出しチャネル | RVALID | スレーブ | 読み出し有効.読み出しデータが有効なことを示す |
RLAST | スレーブ | 最終読み出し.読み出しバーストの最後の転送であることを示す | |
RDATA[31:0] | スレーブ | 読み出しデータ | |
RRESP[1:0] | スレーブ | 読み出し応答 | |
RID[3:0] | スレーブ | 読み出しIDタグ | |
RREADY | マスタ | 読み出しレディ.マスタがデータを受信できることを示す | |
チャネル | WVALID | マスタ | 書き込み有効.書き込みデータが有効なことを示す |
WLAST | マスタ | 最終書き込み.最終書きバーストの最後のレーンを示す | |
WDATA[31:0] | マスタ | 書き込みデータ | |
WSTRB[3:0] | マスタ | 書き込みストローブ.更新されるバイト・レーンを示す | |
WID[3:0] | マスタ | 書き込みIDタグ | |
WREADY | スレーブ | 書き込みレディ.スレーブがデータを受信できることを示す | |
BVALID | スレーブ | 書き込み応答有効.書き込み応答が有効なことを示す | |
書き込み応答チャネル | BRESP[1:0] | スレーブ | 書き込み応答 |
BID[3:0] | スレーブ | 応答ID | |
BREADY | マスタ | 答レディ.マスタが応答を受信できることを示す | |
低電力インターフェース | CACTIVE | 周辺装置 | クロック・アクティブ.周辺装置がクロックを必要としていることを示す |
CSYSREQ | クロック・コントローラ | 低電力要求 | |
CSYSACK | 周辺装置 | 低電力要求のアクノリッジ |
〔表A〕AXIバス信号表
●○● Column ●○●
DSPとCPUの間のインターフェースを規定するDSP Interface Specification
最近のディジタル機器では,画像や音声のストリーミングに代表されるように,大量のデータを処理する機能が必須になってきています.このような大量のデータの処理とアプリケーション・ソフトウェア,OSの実行を一つのプロセッサでこなすのは,高性能のプロセッサをもってしてもかなりの負担になります.そこで「もちはもち屋」のことばどおり,信号処理を専門とするDSP(digital signal processor)を搭載してCPUと並列に動作させるシステム・アーキテクチャがよく採られます.
DSPとARMのようなCPUは異種のプロセッサなので,アーキテクチャの分類で言えば,ヘテロジニアス(非対称な)マルチプロセッサになります.ヘテロジニアスだからといってそれぞれのプロセッサが何の連絡もなしに勝手に独立して動作するわけではありません.それぞれのプロセッサが協調して動作するためには,プロセッサ間で何らかの通信手段が必要になります.
プロセッサ間で通信するには,メッセージの転送とメッセージの送受信を知らせる割り込みが必要になりますが,これを実現するものとしてメールボックスという機能があります.これは送信元のプロセッサからあるレジスタにデータを書き込むと,それが送信先のプロセッサに伝わり,送信先のプロセッサに割り込みを発生させます.これによってプロセッサ間で情報を転送します.
メールボックスには特に標準規格というものがなく,システムを設計する設計者が独自に仕様を作成して,自分のシステム用に実装してきました.しかし,システムが複雑化する一方で短期間で市場に製品を投入するには,なるべく回路やソフトウェアを再利用するか,標準にのっとった部品を組み合わせることによって工数を減らさなければなりません.そこでARM社では,DSPを使ったマルチプロセッサ・システムにおける通信方式の仕様を2003年9月に「DSP Interface Specification」として策定しました.
この仕様では,メールボックスのみならず,共有する割り込みの分配方式,共有するメモリや周辺のアクセス,マルチプロセッサ・コアにおけるデバッグの協調方式なども記述しています.この仕様ではAMBAバスを用いることが前提条件となっています.この仕様は「http://www.arm.com/armtech/DSPSpec/」からダウンロード可能です.