ARMベース・システムLSI開発の事例研究 ――CPUの選択,バス構成,グラフィックス処理やビデオ表示制御の取り扱い
● バス内のマスタの優先順位は固定
ところで表4を見ると,レディ信号として,HREADYとHREADYOUTの2本があることがわかります.スレーブ側でそのデータ処理が間に合わないとき,バスのデータ・フェーズを延ばすために出力するのがHREADYOUTです.一方,HREADYはスレーブへの入力信号になっています.これはスレーブが前サイクルで選択されていたほかのスレーブへのアクセスが終了するタイミングを知り,次の自分の転送データの準備を行うために使います.各スレーブからのHREADYOUTはマルチプレクサでまとめられ,グローバルHREADYとして全マスタに伝えられるとともに,全スレーブへのHREADY入力になります.多くのケースでは,スレーブがデータ・フェーズを延ばすためのHREADYOUTだけを用いるようです.本LSIでもHREADYOUTしか使っていません.
本LSIのマルチレイヤAHBには,図1に示したように,CPUの命令ポートとデータ・ポートを含めてマスタが6個接続されています.各マスタは勝手にアクセスを発生させるので,同じスレーブに対するアクセスが競合する場合は,このバス内で優先順位の調停が必要です.マルチレイヤAHB上のマスタの優先順位は,「ラウンドロビン方式」と「固定方式」を設計時に選択します.本LSIでは,VDCによるグラフィックス表示のためのフレーム・メモリのアクセスが最優先なので,以下のように固定にしました.
VDC > HDMAC > GDP > AAD(DMA機能) > ARM926データ > ARM926命令
さて,本LSIの設計において,このバスで苦労した点があります.本LSIはグラフィックス処理チップなので,フレーム・メモリが置かれるSDRAMをアクセスするバス帯域がシステム性能を左右します.このため,CPUの動作周波数とマルチレイヤAHBの動作周波数を同一かつ最大にしたいと考えました.テレビ表示を考えているので,選択できる周波数はビデオ・クロック27MHzの整数倍(81MHz,108MHz,135MHz,...)に限定されます.本LSIが採用する0.18μmプロセスでは,ARM926コアは余裕で108MHz動作しますが,一般のARMのシステムLSIでは,AHBバスの動作周波数はCPUの半分にするケースが多いようで,バスはタイミング的に108MHzで動かせる特性を持っていませんでした.かなり苦労しましたが,各モジュールの論理段数の削減やレイアウトのくふうにより,バスも108MHzで動作させるようにしました.