インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

17.6.2.6.2. 受信フレームの処理

MACは、フレームがアドレスフィルターを通過し、フレームサイズがMTLの受信FIFOバッファーに設定されているコンフィグレーション可能なしきい値バイト以上である場合、もしくは、完全なフレームがFIFOバッファーにストアアンドフォワード・モードで書き込まれた場合にのみ、受信したフレームをホストメモリーに転送します。†

フレームがアドレス・フィルタリングを通過しなかった場合は、MACブロック自体でドロップされます (レジスター1 (MAC Frame Filter) のビット31 (Receive All) が設定されていない限り)。衝突または早期終了が原因でフレームが64バイトより短い場合は、MTLの受信FIFOバッファーから削除することができます。†

64バイト (コンフィグレーション可能なしきい値) を受信すると、MTLブロックは、DMAブロックに対して、現在の記述子で指定されている受信バッファーにフレームデータの転送を開始するように要求します。DMAホスト・インターフェイスでデータの転送を受信する準備が整うと (DMAがホストから送信データをフェッチしていない場合)、DMAは、First Descriptor (RDES0[9]) を設定してフレームを区切ります。記述子は、データバッファーがフルになった際、もしくはフレームの最後のセグメントが受信バッファーに転送された際に、Own (RDES[31]) ビットがクリアされると解放されます。フレームが単一の記述子に含まれている場合は、Last Descriptor (RDES0[8]) とFirst Descriptor (RDES0[9]) の両方が設定されます。

DMAは次の記述子をフェッチし、Last Descriptor (RDES[8]) ビットを設定して、前のフレームの記述子のRDES0ステータスビットを解放します。DMAはその後、レジスター5 (Status Register) のビット6 (Receive Interrupt) を設定します。ホストが所有しているとフラグが付けられた記述子をDMAが検出しない限り、同じプロセスが繰り返されます。ホストが所有しているとフラグが付けられた記述子をDMAが検出すると、レジスター5 (Status Register) のビット7 (Receive Buffer Unavailable) が設定され、受信プロセスがSuspend状態になります。受信リスト内の位置は維持されます。†