IT系メモ

興味のあったことや、勉強したことなどをメモしていきます。

LSIバスデザイン

LSIでのバスデザインは大きくわけて2つの要素で決まる。

  1. トポロジー
  2. プロトコル

トポロジーとはバスの本数やバスに何が接続されているかといったバスの構成のことを指す。プロトコルとはアービターの制御方法、バス幅、バスクロック周期、バッファサイズ、DMA、バーストサイズなど、通信をやりとりするためのルールを指す。

バスデザインが何によって決まるかというと、LSIの上で動くアプリケーションで求められる性能によってきまる。ただしバスには色々なものが接続されており、接続されるものにより性能の上限も変わってくる。LSIの外部と通信を行う場合、たとえばDRAMとやりとりをする場合ではやり取りに時間がかかる。

バスの制約条件としては、パフォーマンス、消費電力、面積、信頼性が挙げられる。例えばH.264のようなストリーミングデータを扱う場合、一定のフレームレートを保証しなければならない。さらにモバイル端末だった場合は消費電力にも気を使う必要がある。消費電力を下げるためにはチップ面積も小さくする必要があり難易度は高くなる。

実際どのようにバス性能見積もりを行うかというとESL(Electronic System Level)を使用する。ESLについてはまだ勉強不足なので追々書いていきたい。

初期のバスデザインとしては周期的に発生するPEs(Processing Elements)というタスクを決められた時間内に伝送するために、通信ディレイを手で計算して、遅くなりそうなバス経路を取り除くか、新しいバスを作る方法が取られた。

他にもリアルタイム性を求めるために、共有バスとP2Pを複合したトポロジーで、CANやI2Cといったプロトコルを利用した構成も出て来た。

AMBAでは一つのマスターからしかアクセスされないスレーブをバスマトリックスから除いてマルチプレクサでマスターに接続する方法もある。これによってファンアウトが減少するので消費電力が下がる。
他にもレイテンシの大きなスレーブを別のレイヤーに移動させる方法もある。これによりコンフリクトを抑制し、早いマスターが待たさせるのを防ぐ。
マスターをグルーピングし別のレイヤーにすることでアービトレーションのコンフリクトを抑制する方法もある。