AMBA 3.0に追加された高性能バス用のAXI仕様 ―― チャネル方式を導入し従来のAMBAバスから大きく変更
1)読み出し動作
マスタはスレーブを読み出す際,排他アクセスを使用します.つまりALOCK信号を排他アクセスにして通知します.スレーブではモニタ機構が排他アクセスを検出し,そのアドレスとトランザクションIDを記憶して,RESP信号をEXOKAYステータスで応答します.スレーブが排他アクセスに対応できない場合は,OKAYステータスで応答します.この場合,マスタは排他アクセスが失敗したと判断し,アトミック・トランザクションを打ち切ります.
2)変更動作
EXOKAYステータスを返されたマスタは排他処理を継続して,読み出したデータに対して変更処理を行います.スレーブではこの間,記憶したアドレスに対して,ほかのマスタからの書き込みや,ほかのアドレスに関する排他アクセスのための読み出し動作が発生しない限り,監視を続けます.
3)書き込み動作
マスタは変更したデータを書き込むことで排他処理を終了しようとします.スレーブでモニタ機構が当該アドレスに対して監視を続けていれば,変更動作中の排他性が保障されているので,スレーブは書き込みを行い,BRESP信号にEXOKAYを返して排他処理の成功を通知します.
当該アドレスに対する監視が続いていなければ,変更動作中の排他性が保障されないので,スレーブは書き込みを行わず,OKAYを返して排他処理の失敗を通知します.排他処理が失敗するとマスタはリトライすることになりますが,リトライしなければならなかったとしても,バスをロックするよりもシステム全体の性能低下を防げます.
参考・引用*文献
(1)ARM,AMBA Specification Rev 2.0,1999.
(2)ARM,AMBA AXI Protocol Specification Rev r0p0,2003.
さおとめ・てつお
アーム(株)
◆筆者プロフィール◆
五月女 哲夫.計測器メーカを経て,現在アームでデザイン・エンジニアリングを担当.「組み込み製品が人生を豊かにする」の信念のもと,ARMアーキテクチャのエバンジェリストとして日々しごとに明け暮れる.