インテルのみ表示可能 — GUID: wey1585594682711
Ixiasoft
6.2.2. 標準的なデータ転送
このセクションでは、ソース・インターフェイスからシンク・インターフェイスへのデータの転送を定義します。いずれの場合も、データソースとデータシンクは仕様に準拠している必要があります。ソース・プロトコル・エラーの検出は、データシンクが担うものではありません。
上の図は、ソースとシンク間の標準的なクレジットとデータの転送を示しています。シンクで update がアサートされてからソースで update を受信するまでには、遅延が発生する場合があります。同様に、ソースでデータの valid がアサートされてからシンクでデータを受信するまでに、遅延が発生する場合があります。シンクからソースへのクレジットパスとソースからシンクへのデータパスの遅延は、等しくなる必要はありません。これらの遅延は、0 サイクルになることもあります。すなわち、シンクで update をアサートした際に、ソースは同じサイクルでそれを認識します。また、ソースで valid をアサートした際に、シンクは同じサイクルでそれを認識します。ソースにクレジットがない場合は、valid をアサートすることができません。転送されたクレジットは累積されます。シンクが maxCredit プロパティーに等しいクレジットをすでに転送しており、データを受信していない場合、シンクでは、少なくとも 1 つのデータを受信する、もしくは return_credit パルスをソースから受信するまで、update をアサートすることができません。
シンクがソースにクレジットを提供している場合、シンクでは、ソースからのデータをバックプレッシャーすることができません。つまり、未処理のクレジットがある場合、シンクはソースからのデータを受け入れる必要があります。ソースでは、クレジットを受信していない、もしくは受信したクレジットが尽きている (つまり、受信したクレジットに代わってすでにデータを送信している) 場合は、valid をアサートすることができません。
ソースにクレジットがない場合、ソースでは、クレジットを受信したサイクルと同じサイクルでデータの転送を開始することができません。同様に、シンクが maxCredit プロパティーに等しいクレジットをすでに転送しており、データを受信している場合、シンクでは、データを受信したサイクルと同じサイクルで update を送信することができません。これらの制約は、実装での複合ループを回避するために設定されています。