高速シリアル通信プロトコルSerialLite ――オープン・ソースでコンパクトなプロトコル
ここではまず帯域が重要になります.即座に画面を切り替えるということは,0.1秒以内に新しい画像を表示することを意味します.50MバイトのRAWファイルを扱うためには,50Mバイト×8=400Mビットを0.1秒で送る必要があります.すなわち,4Gbpsの帯域が必要です.
また,画面切り替え指示が来たときにすでに送信中のパケットをどのように処理するかという問題が残ります.割り込みをかけて転送中のパケットを破棄することが考えられます.あるいは表示ボードのバッファにデータをいったん取り込み,表示することなしに破棄する方法があります.しかしここでは,処理を単純化するために,画面切り替えはパケット転送後に起こるものとしました.パケットの転送を始めてから0.1秒で二つの完全なパケットを転送し終えるとすると,2倍の帯域幅である8Gbpsの実効データ・レートが必要になります.1チャネル当たりの最大実効データ・レートは,プライオリティ・パケットのネスティングやクロック補償を考慮すると2.5Gbpsになるので,この帯域を満たすためには4レーン必要になります.これは最低限ですが,帯域幅に影響を与えず,プライオリティ・ポートのトラフィックのためのマージンを含めることができます.
このシステムの設計では,SerialLiteリンクをプロトコル仕様から設計するよりも,すでに利用可能なSerialLiteコア(http://www.seriallite.org/)を使用するとよいでしょう.このアプリケーションでSerialLiteの使用に必要なすべてを生成し,Atlanticインターフェースに必要な信号を選択し,SerialLiteコアのオプションを選びます.コアの設定は簡単です.Altera社のSerialLite
MegaCoreを使う場合,MegaWizardによってオプションを選択すると,自動的に回路が生成されます.
この設計におけるオプションは以下のとおりです.
- 4レーン
- データ・ポートとプライオリティ・ポート
- パケット・モード
- チャネルの多重化
- エラー・リトライ
CRCの生成も簡単ですが,データ受信側である表示ボードがそれを必要としていないため,今回は選択しませんでした.表示ボードにはデータの受信を中止する方法がありません.フロー制御も必要としません.