インテルのみ表示可能 — GUID: hfl1481130238527
Ixiasoft
インテルのみ表示可能 — GUID: hfl1481130238527
Ixiasoft
17.6.1. 送信データFIFOバッファーと受信データFIFOバッファー
各EMACコンポーネントには、関連付けられている送信データおよび受信データのFIFOバッファーがあり、アプリケーション・システム・メモリーとEMAC間でフレームを調整します。RXおよびTX FIFOバッファーはそれぞれ、16KBのデュアル・ポート・メモリーです。バッファーはどちらも、ジャンボフレームをサポートするように設計されています。FIFOバッファーワードは次のように構成されています。
- データ: 32ビット
- サイドバンド
- バイト・イネーブル: 2ビット
- EOF (End of frame): 1ビット
- 誤り訂正コード (ECC): 7ビット
FIFO RAMはそれぞれ、シングルビット・エラーの検出と訂正、およびダブルビット・エラーの検出を行うECCコントローラーによってサポートされています。ECCコントローラーには、メモリーデータの初期化専用のハードウェア・ブロックがあります。また、エラーイベントをログに記録し、シングルエラーおよびダブルエラーのイベントが発生した際に割り込みを生成することができます。ECC RAMの機能の詳細に関しては、ECC (エラー検出訂正) コントローラーの内容を参照してください。
TX FIFO
- カットスルー・モード: TX FIFOのバイト数がコンフィグレーションされているしきい値レベルを超えると (もしくは、しきい値を超える前にフレームの終わりが書き込まれると)、データがTX FIFOからポップされます。しきい値レベルは、レジスター0 (Bus Mode Register) のTTCビットを使用してコンフィグレーションされます。
注: 96バイト (1000Mbpsモードの場合は548バイト) を超えるバイトがEMACにポップされると、TX FIFOコントローラーはそのスペースを解放し、DMAがそのスペースを使用できるようにします。再試行はできません。
- ストアアンドフォワード・モード: 次の条件に1つ以上当てはまる場合に、データはTX FIFOからポップされます。
- 完全なフレームがFIFOに格納されている
- TX FIFOがほぼフルの状態である
アプリケーションは、レジスター6 (Operation Mode Register) のビット20 (FTF) を設定することで、TX FIFOのすべてのコンテンツをフラッシュすることができます。このビットはセルフクリアであり、FIFOポインターをデフォルト状態に初期化します。EMACへのフレーム転送中にFTFビットが設定されると、FIFOは空とみなされるため、それ以降の転送は停止します。この停止により、アンダーフロー・イベントが発生してラントフレームが送信され、対応するステータスワードがDMAに転送されます。
半二重モードの動作において、フレームの終わりの前に衝突が発生した場合、フレームの終わりが転送される前に再試行が送信されます。再送信が通知されると、MACはFIFOから再度フレームをポップします。
RX FIFO
- カットスルー・モード (デフォルト): 64バイトまたはデータの完全なパケットをFIFOが受信すると、データはFIFOからポップされ、完全なパケットが転送されるまでDMAに送信されます。EOFの転送が完了すると、ステータスワードがポップされ、DMAに送信されます。
- ストアアンドフォワード・モード: フレームは、RX FIFOに完全に書き込まれた後にのみ読み出されます。このモードは、レジスター6 (Operation Mode Register) のRSFビットを設定することでコンフィグレーションされます。