OCP(Open Core Protocol)技術解説 ―― CPUに依存しないオンチップ・バス・プロトコルがマルチコアを効率良く動作させる

鈴木一可

tag: 半導体

技術解説 2007年5月10日

 また,各スレッドごとにデータが受領可能かどうかを示すスレッド・ビジー信号(SThreadBusy,MThreadBusy)があります.この信号を用いることにより,ビジーなスレッドがビジーでないスレッドの転送を止めてしまうことを防げます.さらに,スレッドとは別に,転送元の情報(種類)を転送先に伝えるコネクション信号(MConnID)も用意されています.

 サイドバンド信号としては,ユーザが自由に定義できるフラグ信号(MFlag,SFlag)や,ソフトウェアからの読み出し/書き込みを想定したコントロール信号(Control)とステータス信号(Status)などがあります.

 OCP 1.0ではこのように,データフロー信号だけでなくサイドバンド信号,テスト信号なども定義されており,IPコアのインターフェースとして十分な機能を備えています.また,必須の信号を最小限に抑え,多くの信号をオプションとして定義しているので,IPコアのインターフェースの特徴に合わせてオプション信号を選択でき,IPコアに合わせてインターフェース仕様を柔軟に決定できます.

●機能を拡張し柔軟性を増したOCP 2.0

 OCP 2.0は,OCP 1.0を強化したバージョンです.ここでは,OCP 2.0で新たに盛り込まれた仕様について説明します.大きなところでは以下のようなオプション信号が追加され,またベーシック信号でも未使用のものは除去できるようになりました.

1)バースト機能の拡張

 バースト転送注3については,OCP 1.0でもバースト長を付加するオプション信号(MBurst)がありました.しかし,これはバースト・サイズを参考値として示すだけのものでした.

 OCP 2.0では,バースト転送(読み出し)に関して,現在アクセスしたい番地(クリティカル・ワード)からアクセスを開始するクリティカル・ワード・ファースト・バースト注4,バースト・ワード数を正確に宣言するイグザクト・レングス・バースト,一つのコマンドで複数のワードをバースト転送する単一リクエスト複数ワード・バースト,2次元的なアクセスができる2次元アドレス・バースト注5の機能が追加されました.

注3;複数の転送を一つのかたまりとして扱い,効率良く転送することをバースト転送という.
注4;クリティカル・ワード・ファースト・バーストは,プロセッサのキャッシュ・メモリを埋める(キャッシュ・フィル)ときなどに有効な転送方式である.
注5;2次元アドレス・バーストは,単一リクエスト複数ワード・バーストの応用である.単一リクエスト複数ワード・バーストではMBurstSeqをINCR(インクリメンタル)としていたが,これをXORとするとアドレスが飛び飛びで増えていき,2次元的なアクセスができるようになる.

2)レスポンスを要求する書き込み転送(Non-posted Write)

 書き込み転送については,OCP 1.0ではレスポンスを必要としない書き込み転送(Posted Write)だけでした.OCP 2.0では,レスポンスを要求する書き込み転送(Non-posted Write)が追加されました(図6)

zu06_01.gif
〔図6〕レスポンスを要求する書き込み転送
図4に示すOCP 1.0の書き込み転送では,レスポンス・フェーズは存在しなかった.OCP 2.0では,レスポンス・フェーズ付きの書き込み転送が追加された.

3)エンディアン情報

 基本的にOCP規格ではエンディアンを意識する必要はありません.しかし,OCP 2.0では,必要に応じてOCPインターフェースに対してビッグ・エンディアンかリトル・エンディアンかの情報を付加できるようになりました.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日