OCP(Open Core Protocol)技術解説 ―― CPUに依存しないオンチップ・バス・プロトコルがマルチコアを効率良く動作させる
システムLSIの複雑化は指数関数的に進んでいますが,開発期間は逆に短縮させなければなりません.そのためには,新しいシステムLSIを開発する際に,既存の設計資産を再利用していく必要があります.しかし,従来のような特定のCPUに依存したバス・プロトコルでは,CPU以外のマスタIPコアに合わせて性能を最適化することができない(そもそもCPUを変更すると,それ以外のIPコアのインターフェース回路をすべて変更しなければならない)という問題があります.これでは再利用が容易とは言えません.
現状のシステムLSIの困難な要求を満足するためには,特定のCPUやバスのプロトコルに依存しない,システムLSIのオンチップ・バス(IPコア間のインターフェース)に特化した標準プロトコルが必要となります.そのような状況の中で,最近注目を集めているのがOCP(Open Core Protocol)です.
1.OCP(Open Core Protocol)
OCP(Open Core Protocol)とは,コアを中心に考案された(コア・セントリックな),特定のバス・インターフェースに依存しない(バス・インデペンデントの)インターフェース仕様のことです.OCP規格の仕様書は,OCP-IP(OCP International Partnership;OCP仕様を標準化している非営利の普及推進組織.詳しくはコラム「OCP-IPのメンバと活動」を参照)のWebサイトからダウンロードでき,だれでも自由に使えます.
OCPインターフェースに準拠したIPコアを設計する際に,バスの構造やシステムLSIの構成を気にする必要はありません.またシステムLSIの設計者も,IPコアの種類を気にせず,OCPインターフェースに準拠した切り口を用意するだけで,OCP規格準拠のIPコアどうしを接続できます.つまり,IPコアとバス・システムの境界を明確に定義でき,IPコアを再利用しやすくなります(図2).従来は,まずIPコアの仕様が決まらなければシステムLSI全体を設計・検証することができませんでした.このようなインターフェースを採用することで,IPコアの開発とシステムLSI全体の開発を同時に進めることができます.
また,仕様が公開されている標準のインターフェース仕様をシステムLSIのオンチップ・バスとして採用すれば,市場に流通しているサード・パーティ製のIPコアを利用しやすくなります.これにより,システムLSIの開発期間を短縮することを期待できます.
〔図2〕 OCPインターフェースがIPコアとバスを接続する
IPコアがOCPインターフェースに準拠してさえいれば,それをOCPインターフェースに準拠したオンチップ・バスと接続できる(IPコアはそれぞれオンチップ・バスと接続しているようなかっこうになる).IPコアから見ると,マスタとなるIPコアとスレーブとなるIPコアが,つねに1対1で接続しているように見える.