Avalon® インターフェイスの仕様書

ID 683091
日付 9/26/2022
Public
ドキュメント目次

6.2.2. 標準的なデータ転送

このセクションでは、ソース・インターフェイスからシンク・インターフェイスへのデータの転送を定義します。いずれの場合も、データソースとデータシンクは仕様に準拠している必要があります。ソース・プロトコル・エラーの検出は、データシンクが担うものではありません。

次の図は、 Avalon® Streaming クレジット・インターフェイスで通常使用される信号を示しています。
図 33. 標準的な Avalon® Streaming クレジット信号
この図が示すように、標準的な Avalon® Streaming クレジット・ソース・インターフェイスは、validdataerrorchannel 信号をシンクへ駆動します。シンクは、update および credit 信号を駆動します。
図 34. 標準的なクレジットとデータの転送

上の図は、ソースとシンク間の標準的なクレジットとデータの転送を示しています。シンクで update がアサートされてからソースで update を受信するまでには、遅延が発生する場合があります。同様に、ソースでデータの valid がアサートされてからシンクでデータを受信するまでに、遅延が発生する場合があります。シンクからソースへのクレジットパスとソースからシンクへのデータパスの遅延は、等しくなる必要はありません。これらの遅延は、0 サイクルになることもあります。すなわち、シンクで update をアサートした際に、ソースは同じサイクルでそれを認識します。また、ソースで valid をアサートした際に、シンクは同じサイクルでそれを認識します。ソースにクレジットがない場合は、valid をアサートすることができません。転送されたクレジットは累積されます。シンクが maxCredit プロパティーに等しいクレジットをすでに転送しており、データを受信していない場合、シンクでは、少なくとも 1 つのデータを受信する、もしくは return_credit パルスをソースから受信するまで、update をアサートすることができません。

シンクがソースにクレジットを提供している場合、シンクでは、ソースからのデータをバックプレッシャーすることができません。つまり、未処理のクレジットがある場合、シンクはソースからのデータを受け入れる必要があります。ソースでは、クレジットを受信していない、もしくは受信したクレジットが尽きている (つまり、受信したクレジットに代わってすでにデータを送信している) 場合は、valid をアサートすることができません。

ソースにクレジットがない場合、ソースでは、クレジットを受信したサイクルと同じサイクルでデータの転送を開始することができません。同様に、シンクが maxCredit プロパティーに等しいクレジットをすでに転送しており、データを受信している場合、シンクでは、データを受信したサイクルと同じサイクルで update を送信することができません。これらの制約は、実装での複合ループを回避するために設定されています。