OCP(Open Core Protocol)技術解説 ―― CPUに依存しないオンチップ・バス・プロトコルがマルチコアを効率良く動作させる
2.OCP vs. AMBA
システムLSIのオンチップ・バスとしてすでに広く使われているプロトコルとしては,AMBA(Advanced Micro-controller Bus Architecture)があります.これはもともと英国ARM社が提唱していたオンチップ・バス・プロトコルです.AMBA(AMBA 2.0)には,メインのバスとして使われるAHB(Advanced High-performance Bus)と,AHBに接続して周辺バスとして使われるAPB(Advanced Peripheral Bus)があります.
AMBAは,システムLSIにおけるARMプロセッサ・コアの普及に伴って,広く使われるようになりました.AMBAのインターフェースを持つIPコアが多くのIPベンダから提供されています.現在広く普及しているAMBA AHBの特徴を表2に示します2).また,OCP 1.0とAHBの比較を表3に示します.
バースト転送 | 複数の転送を一つのかたまりとして扱い,バースト転送 個別に転送するよりも効率良く転送することが可能 |
分割トランザクション | バースト転送中でも,その転送を区切ってほかの転送を行うことが可能 |
シングル・サイクル・バス・マスタ・ハンドオーバ | 最小1サイクルでバス・マスタを切り替えることが可能 |
シングル・クロック・エッジ動作 | すべての信号は,一つの転送クロックの立ち上がりエッジ同期で動作する |
非3ステート実行 | すべての信号は,3ステートのない単方向の信号である |
広幅データ・バス構成 | 64ビット,128ビットなどのデータ・バス幅にも対応可能 |
〔表2〕AHBの特徴
OCP 1.0 | AHB | |
すでに提供されているIPコアの種類 | ○ | ◎ |
バースト転送 | ○ | ○ |
スプリット・リクエスト/レスポンス | ○ | △ |
マルチスレッド | ○ | × |
信号選択の自由度 | ◎ | △ |
特 徴 | 特定のコア・プロトコルに依存しない. IPコアのインターフェースに特化 | 従来型のコンピュータ・バス・プロトコル |
〔表3〕OCP 1.0とAHBの比較
AHBは従来より広く使われているので,供給されているIPコアの種類が多いという点で大きくリードしています.また,バースト転送や分割トランザクション注8など,パイプライン処理に適した基本的なプロトコルをサポートしています.ただし,基本的にあるサイクルでマスタがコマンド/アドレスを出すと,次のサイクルでスレーブがレスポンス(データ)を返すというプロトコルであるため,スレーブがそのサイクルでレスポンスを返せない場合にはバスにウェイトがかかります(図8).ウェイトがかかる分だけ,バスの利用効率が低下してしまいます.
〔図8〕AHBのタイミング図
AHBでは,スレーブがコマンド(A0)の次のサイクルでレスポンスを返せないとウェイト・サイクルに入ってしまい,次のコマンド(A1)の発行でもウェイトが入ってしまう.
注8;AMBA(ARMの仕様書)で言う「Sprit Transaction(分割トランザクション)」は,あるマスタがバースト転送しているときに,その途中でほかのマスタの転送をはさむことができる(分割して転送できる)という意味.さきほど定義した「スプリット・トランザクション」とは内容が異なる.本稿では,ARMのほうを分割トランザクションと表記した.
これに対してOCP規格では,先ほど説明したとおり,コマンド/アドレスとレスポンス(データ)をまったく独立のタイミングでやり取りできます(図5).また,マルチスレッドをサポートしているので,コマンドの発行順とは異なる順番でレスポンスを返すことが可能です.したがって,遅いレスポンスに待たされることなく,早いレスポンスを先に返すことができ,バスの利用効率を引き上げることができます.
言わば,AHBは従来型のコンピュータ・バス・プロトコルを踏襲した仕様であり,OCP 1.0はIPコアのインターフェースに配慮した仕様であると言えます.
●オンチップ・バス仕様は収束の方向へ
このような状況を踏まえて,2003年6月にARM社はAMBA 3.0(AXI仕様)を発表しています.筆者はAXIの詳細な仕様に触れる機会をまだ得ていませんので詳しくコメントできませんが,IPコアのインターフェースとして性能を発揮できるような大きな仕様変更が行われているようです.OCPで実現されているかなりの仕様がAXIに盛り込まれているようです(ただし,AXIの仕様とAHBの仕様とはかなり異なっているので,AXIとAHBの互換性が気になるところだ).
OCP,AMBAに限らず,現在多く存在しているオンチップ・バス仕様が,将来的にはIPコアのインターフェースとして最適な仕様に収束していくだろうと筆者は期待しています.
参考・引用*文献
(1)「1000万ゲート世代を目前に生まれ変わるチップ内バス」,『日経エレクトロニクス』,2003年8月18日号.
(2)英国ARM社,『AMBA仕様書 Rev 2.0』,1999年.
すずき・かずよし
イノテック(株) デザインシステム部
◆筆者プロフィール◆
鈴木一可.イノテック(株)デザインシステム部 SSグループ グループリーダ,主任技師.SOC開発のための技術コンサルティングに従事.