(57)【要約】【課題】複数の論理データストリームに関するデータをシリアルデータインターフェースを介して送信あるいは受信する方法及び装置を提供する。【解決手段】論理データストリームのいくつかについてのデータをステージングし、そのデータが準備完了したかを判断し、データを搬送するメッセージのヘッダが関連する論理データストリームを識別するよう複数のメッセージを生成し、ｉ）各論理データストリームについてステージングされたデータの準備の完了と、ｉｉ）論理データストリームの優先方式とを使用する際に、アクティブな論理データストリームのうちの1つを定期的に指定するように、該ｉ）及びｉｉ）を使用し、シリアルデータインターフェースを介して複数の論理データストリームのうちのアクティブな１つに対応するメッセージを送信し、他のものに対応するメッセージを送信しない、データの送信／受信方法。【選択図】図３
2009303208.tif 000002
【特許請求の範囲】
【請求項１】
シリアルデータインターフェースを介して複数の論理データストリームのそれぞれに対応するデータを送信する方法（２００）であって、
前記論理データストリームの少なくともいくつかについてのデータをステージングすること（２０２）、
各論理データストリームについてステージングされた前記データのデータ準備完了を判断すること（２０４）、
複数のメッセージを生成すること（２０６）であって、該メッセージのそれぞれはヘッダを有し、該メッセージの少なくともいくつかは、前記データのいくつかを搬送し、データを搬送する前記メッセージの前記ヘッダは、それらのメッセージのデータが関連する前記論理データストリームを識別する、複数のメッセージを生成すること（２０６）、
ｉ）各論理データストリームについてステージングされた前記データの前記データ準備完了、及びｉｉ）前記論理データストリームの優先方式を使用すること（２０８）であって、前記論理データストリームのうちのアクティブな1つを定期的に指定する、ｉ）及びｉｉ）を使用すること（２０８）、並びに
前記シリアルデータインターフェースを介して、前記複数の論理データストリームのうちの前記アクティブな１つに対応するメッセージを送信し、該複数の論理データストリームのうちの他のものに対応するメッセージを送信しないこと（２１０）、
を含む、方法。
【請求項２】
方法（２００）であって、
前記シリアルデータインターフェースを介してフロー制御情報を受信することであって、該フロー制御情報は、リモート受信機がデータを受信する準備が完了していることを示す、フロー制御情報を受信すること、及び
また、前記フロー制御情報を使用することであって、前記論理データストリームのうちの前記アクティブな1つを定期的に指定する、前記フロー制御情報を使用すること、
をさらに含む、請求項１に記載の方法。
【請求項３】
方法（２００）であって、
前記シリアルデータインターフェースを介してメッセージを受信すること、及び
前記受信されたメッセージのヘッダを処理することであって、前記フロー制御情報を抽出する、前記受信されたメッセージのヘッダを処理すること、
をさらに含む、請求項２に記載の方法。
【請求項４】
装置（３００）であって、
シリアルデータインターフェース（３０６）を介して、複数の論理データストリーム（３０８、３１０、３１２）のうちのアクティブな１つに対応するメッセージ（３０４）を送信するが、前記複数の論理データストリームのうちの他のものに対応するメッセージを送信しないように構成されるシリアルデータ送信機（３０２）、
を備え、該シリアルデータ送信機は、
前記論理データストリームの少なくともいくつかについてのデータをステージングすると共に、該論理データストリームのそれぞれについてステージングされた前記データのデータ準備完了インジケータ（３２２）をセットするデータステージングメカニズム（３１４）と、
複数のメッセージを生成するメッセージ生成メカニズム（３１６）であって、該メッセージのそれぞれはヘッダを有し、該メッセージの少なくともいくつかは、前記データのいくつかを搬送し、データを搬送する前記メッセージの前記ヘッダは、それらのメッセージのデータが関連する前記論理データストリームを識別する、メッセージ生成メカニズム（３１６）と、
ｉ）前記論理データストリームの前記データ準備完了インジケータ、及びｉｉ）該論理データストリームの優先方式（３２０）を使用して、該論理データストリームのうちの前記アクティブな１つを定期的に指定するアービトレーションメカニズム（３１８）と、
を有する、装置。
【請求項５】
装置（３００）であって、
前記シリアルデータインターフェース（３０６）を介してフロー制御情報（３２６）を受信するように構成されるシリアルデータ受信機（３２４）であって、前記フロー制御情報は、リモート受信機がデータを受信する準備が完了していることを示す、シリアルデータ受信機（３２４）をさらに備え、
前記アービトレーションメカニズム（３１８）は、前記フロー制御情報をさらに使用して、前記論理データストリームのうちの前記アクティブな1つを定期的に指定する、請求項４に記載の装置。
【請求項６】
装置（７００）であって、
前記シリアルデータインターフェース（３０６）を介してメッセージ（７０４）を受信するように構成されるシリアルデータ受信機（７０２）をさらに備え、該シリアルデータ受信機（７０２）は、
第２の複数の論理データストリーム（７１２、７１４、７１６）について受信されたデータをバッファリングする複数のデータバッファ（７０６）と、
ｉ）前記シリアルデータインターフェースを介して受信された前記メッセージのヘッダを処理して、もしあれば、前記メッセージが関連する前記第２の複数の論理データストリームの１つ又は複数を識別し、ｉｉ）前記メッセージに含まれるデータを、前記第２の論理データストリームの前記識別された１つ又は複数に対応する前記データバッファの１つ又は複数へルーティングする、メッセージルータ（７０８）と、
前記データバッファのそれぞれを監視し、前記シリアルデータ受信機が前記第２の論理データストリームのそれぞれについて追加のデータを受信する準備が完了していることを示すフロー制御情報（７１８）を生成するメカニズム（７１０）と、
を有し、
前記シリアルデータ送信機（７２０）は、前記メッセージの前記ヘッダの１つ又は複数で前記フロー制御情報をリモート受信機へ送信するようにさらに構成される、請求項４に記載の装置。
【請求項７】
装置（７００）であって、前記シリアルデータ送信機（７２０）は、前記シリアルデータインターフェース（３０６）を介して、ヘッダのみを有するメッセージを送信するようにさらに構成され、該ヘッダのみのメッセージは、前記フロー制御情報（７１８）の少なくともいくつかを搬送するが、前記ステージングされたデータのいずれも搬送しない、請求項６に記載の装置。
【請求項８】
装置（７００）であって、
シリアルデータインターフェース（３０６）を介してメッセージ（７０４）を受信するように構成されるシリアルデータ受信機（７０２）であって、
複数の論理データストリーム（７１２、７１４、７１６）について受信されたデータをバッファリングする複数のデータバッファ（７０６）と、
ｉ）前記シリアルデータインターフェースを介して受信された前記メッセージのヘッダを処理して、もしあれば、前記メッセージが関連する複数の論理データストリームの１つ又は複数を識別し、ｉｉ）前記メッセージに含まれるデータを、前記論理データストリームの前記識別された１つ又は複数に対応する前記データバッファの１つ又は複数へルーティングする、メッセージルータ（７０８）と、
前記データバッファのそれぞれを監視し、前記シリアルデータ受信機が追加のデータを受信する準備が完了していることを示すフロー制御情報（７１８）を生成するメカニズム（７１０）と、
を有する、シリアルデータ受信機（７０２）、及び
前記フロー制御情報をリモート受信機へ送信するように構成されるシリアルデータ送信機（７２０）、
を備える、装置。
【請求項９】
装置（７００）であって、前記フロー制御情報（７１８）は、各論理データストリーム（７１２、７１４、７１６）の追加のデータを受信する準備が完了していることを示す、請求項８に記載の装置。
【請求項１０】
装置（７００）であって、
前記データバッファ（７０６）の少なくとも１つは、対応するウォーターマークレベルに関連付けられ、
前記データバッファのそれぞれを監視する前記メカニズム（７１０）は、そのウォーターマークレベルを超えるデータを保持する前記データバッファの１つに部分的に基づいて、前記フロー制御情報（７１８）を生成する、請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを送信／受信する技術に関する。
【背景技術】
【０００２】
複数のデータストリームのそれぞれに対応するデータをデータインターフェースを介して送信する方法には、２つの一般的な方法がある。一方の方法は、パラレルアドレス／データバスを使用し、データストリームのそれぞれは、別個のアドレス範囲に書き込まれる（と共に別個のアドレス範囲から読み出される）ものである。他方の方法は、シリアルバス及び予め定義されたインターリーブ方式を使用するものである。
【０００３】
一例示のパラレルアドレス／データバスは、ＴｉｇｅｒＳＨＡＲＣ（登録商標）プロセッサ（米国マサチューセッツ州ノーウッドのAnalog Devices社によって提供されている）のクラスタバスである。このようなバスを使用することの不利な点は、このようなバスが多数の入出力（Ｉ／Ｏ）ピンを消費するということである。さらに、同じラインは、通常、データの送信及び受信に使用され、どの所与の時点においても、バスは一方向にされている（すなわち、バスは半二重である）。また、多数のＩ／Ｏパスを実装することによるオーバーヘッドにより、複数のデバイス（例えば、「クラスタ」内の複数のプロセッサ）によるバスの共有が助長される傾向もある。
【０００４】
予め定義されたインターリーブ方式は、シリアルデータインターフェースを使用して実施することができ、双方向（すなわち、同時送信／受信）リンクの実施の実現可能性をより高くするので、パラレルアドレス／データバスを上回る有利な点を有する。しかしながら、予め定義されたインターリーブ方式の不利な点は、各データストリームのデータ転送レート間の関係が固定されているということである。すなわち、データストリームの予め定義されたインターリーブによって、任意の特定のデータストリームのデータ転送レートを個別に変更することが非常に困難（且つ実際には不可能）になる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明により、複数の論理データストリームに関するデータをシリアルデータインターフェースを介して送信あるいは受信する方法及び装置を提供することができる。
【課題を解決するための手段】
【０００６】
本発明によるシリアルデータインターフェースを介して複数の論理データストリームのそれぞれに対応するデータを送信する方法は、論理データストリームの少なくともいくつかについてのデータをステージングすることと、各論理データストリームについてステージングされたデータのデータ準備完了を判断することと、複数のメッセージを生成することであって、該メッセージのそれぞれはヘッダを有し、該メッセージの少なくともいくつかは、データのいくつかを搬送し、データを搬送するメッセージのヘッダは、それらのメッセージのデータが関連する論理データストリームを識別する、複数のメッセージを生成することと、ｉ）各論理データストリームについてステージングされたデータのデータ準備完了、及びｉｉ）論理データストリームの優先方式を使用することであって、論理データストリームのうちのアクティブな1つを定期的に指定する、ｉ）及びｉｉ）を使用することと、シリアルデータインターフェースを介して、複数の論理データストリームのうちのアクティブな１つに対応するメッセージを送信し、該複数の論理データストリームのうちの他のものに対応するメッセージを送信しないことと、を含む。
【図面の簡単な説明】
【０００７】
【図１】シリアルデータリンクによってデータを送信するための一例示の新しいシステムを示すブロック図である。
【図２】シリアルデータインターフェースを介して複数の論理データストリームのそれぞれに対応するデータを送信するための一例示の方法を示すフローチャートである。
【図３】図２に示す方法等の方法を実施するための一例示の装置を示すブロック図である。
【図４】図３に示すシリアルデータ送信機を実施する第１の例示の方法を示すブロック図である。
【図５】図３に示すシリアルデータ送信機又は図７に示すシリアルデータ受信機を実施する第２の例示の方法を示すブロック図である。
【図６】シリアルデータインターフェースを介して複数の論理データストリームのそれぞれに対応するデータを受信するための一例示の方法を示すフローチャートである。
【図７】図６に示す方法等の方法を実施するための一例示の装置を示すブロック図である。
【図８】図７に示すシリアルデータ受信機を実施する一例示の方法を示すブロック図である。
【図９】図１に示すシステムを介して送信／受信されるメッセージの一例示のメッセージ構造を示す図である。
【図１０】図９に示すメッセージ構造の一例示のヘッダを示す図である。
【発明を実施するための形態】
【０００８】
本発明の例示の実施形態は、本出願に添付の図面に示される。
【０００９】
図１は、シリアルデータリンク１０２によってデータを送信するための一例示の新しいシステム１００を示している。このシステム１００は、シリアルデータリンク１０２の１つ又は複数のシリアルデータチャネル１０８、１１０によって接続されている第１のデバイス１０４及び第２のデバイス１０６を備える。例として、デバイス１０４、１０６のそれぞれは、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理デバイス（ＰＬＤ）、又は特定用途向け集積回路（ＡＳＩＣ）とすることができる。
【００１０】
図示するように、シリアルデータリンク１０２は、第１のデバイス１０４から第２のデバイス１０６へシリアルデータを送信するための第１のチャネル１０８、及び第２のデバイス１０６から第１のデバイス１０４へシリアルデータを送信するための第２のチャネル１１０を備えることができる。いくつかの場合には、チャネル１０８、１１０の一方のみを提供することができる。これらの場合には、データ送信は、単一の方向に限定することができる。すなわち、デバイス１０４、１０６のうちの一つは、シリアルデータリンク１０２のアービタ（arbiter）として働くことができる。
【００１１】
図１に示すように、第１のデバイス１０４及び第２のデバイス１０６のそれぞれには、これらのデバイス１０４、１０６のそれぞれをシリアルデータリンク１０２に連結するストリームインターフェース１１２、１１４が設けられる。次に、各ストリームインターフェース１１２、１１４は、シリアルデータ送信機１１６、１２０及びシリアルデータ受信機１１８、１２２を備えることができる。ただし、いくつかの場合には、ストリームインターフェース１１２、１１４は、シリアルデータ送信機のみ又はシリアルデータ受信機のみを備えることができる。シリアルデータ送信機１１６、１２０のそれぞれは、デバイス１０４、１０６の他方のものの対応するシリアルデータ受信機１１８、１２２と対にされる（例えば、第１のデバイス１０４のシリアルデータ送信機１１６は、第２のデバイス１０６のシリアルデータ受信機１１８と対にされる）。第１の送信機／受信機対１１６／１１８は、第１のシリアルデータチャネル１０８を介したデータの送信を容易にし、もし設けられた場合には、第２の送信機／受信機対１２０／１２２は、第２のシリアルデータチャネル１１０を介したデータの送信を容易にする。
【００１２】
図１にさらに示すように、送信機／受信機対１１６／１１８、１２０／１２２のそれぞれは、その各シリアルデータチャネル１０８、１１０を使用して、複数の論理データストリーム１２４／１２６／１２８、１３０／１３２／１３４のそれぞれに対応するデータを送信する。本明細書でより詳細に論述するように、システム１００の利点は、異なる論理データストリーム１２４／１２６／１２８、１３０／１３２／１３４に対応するデータを、論理データストリーム１２４／１２６／１２８、１３０／１３２／１３４の優先方式に一致した、大部分独立して異なるデータ転送レートで送信することができるということである。このように、予め定義されたインターリーブ方式の構造の一部を回避する方法ではあるが、複数の論理データストリーム１２４／１２６／１２８、１３０／１３２／１３４に対応するデータをシリアルデータリンク１０２を介して送信することができる。
【００１３】
次に図２を参照して、複数の論理データストリームのそれぞれに対応するデータを送信する方法２００が示されている。いくつかの実施形態では、方法２００は、図１に示すデバイス１０４、１０６のうちの１つのストリームインターフェース（１１２又は１１４）によって実施することができる。
【００１４】
方法２００は、論理データストリームの少なくともいくつかについてのデータをステージングする（staging：実際の使用環境に近い状況に準備する）ステップ２０２を含む。例として、データのステージングは、この説明において後により詳細に論述するように、複数の先入れ先出し（ＦＩＦＯ）バッファ又はピンポンバッファを使用して成し遂げることができる。
【００１５】
ステップ２０４において、各論理ストリームデータについてステージングされたデータの「データ準備完了（data readiness）」を判断する。すなわち、データ準備の完了を、ストリーム単位で判断する。
【００１６】
ステップ２０６において、複数のメッセージを組み立てる。メッセージのそれぞれには、ヘッダが設けられ、メッセージの少なくともいくつかは、論理データストリームについてステージングされたデータのいくつかを搬送する。データを搬送するメッセージの場合、それらのメッセージのヘッダは、それらのメッセージのデータが関連する論理データストリーム（あるいは複数の論理データストリーム）を識別する。
【００１７】
通常、メッセージは、１つの特定の論理データストリームに関連するデータのみを搬送することが想定される。しかしながら、ブロードキャストメッセージも考慮され、ブロードキャストメッセージでは、メッセージのヘッダは、データが論理データストリームのうちの複数の１つへブロードキャストされることを示す。
【００１８】
留意すべきは、データを搬送するメッセージは、特定の論理データストリームについてステージングされたデータのいくつかを搬送することさえすればよいということである（ただし、論理データストリームのデータの量が十分少なく、そのストリームのデータのすべてを単一のメッセージで搬送することができる場合が存在し得る）。
【００１９】
ステップ２０８において、ｉ）各論理データストリームについてステージングされたデータのデータ準備完了、及びｉｉ）論理データストリームの優先方式、の双方を使用して、論理データストリームのうちのアクティブな１つが定期的に指定される。次に、ステップ２１０において、複数の論理データストリームのうちのアクティブな１つに対応するメッセージを、シリアルデータインターフェースを介して送信する一方、複数の論理データストリームのうちの他のものに対応するメッセージは送信しない。
【００２０】
状況に応じて、シリアルデータインターフェースを介してフロー制御情報を受信することができる。このフロー制御情報は、リモート受信機がデータを受信する準備が完了していることを示し、論理データストリームのうちのアクティブな１つを指定するための追加の基準として使用することができる。このように、特定の論理データストリームのフロー制御は、シリアルデータリンクの送信端及び受信端の双方によって規制することができる。
【００２１】
方法２００のステップは、特定のフローを有するように示されているが、このフローは重要ではなく、さまざまなフローが考慮されることに留意されたい。実際には、ほとんどの場合、この方法のステップのすべては、並列に実行される。
【００２２】
図３は、方法２００等の方法を実施するための一例示の装置３００を示している。図示するように、装置３００は、シリアルデータ送信機３０２を備える。このシリアルデータ送信機３０２は、シリアルデータインターフェース３０６を介してメッセージ３０４を送信するように構成される。詳細には、シリアルデータ送信機３０２は、１）複数の論理データストリーム３０８、３１０、３１２のうちのアクティブな１つに対応するメッセージ３０４を送信し、２）複数の論理データストリーム３０８、３１０、３１２のうちの他のものに対応するメッセージ３０４を送信しないように構成されている。複数の論理データストリームのうちの「アクティブな１つ」が意味するものは、まもなく明らかになる。
【００２３】
シリアルデータ送信機３０２をより詳細に見ると、シリアルデータ送信機３０２は、データステージングメカニズム３１４、メッセージ生成メカニズム３１６、及びアービトレーションメカニズム（arbitration mechanism）３１８を備える。いくつかの実施形態では、これらの構造は、個別に実装することができる。他の実施形態では、これらの構造の機能は、１つ又は複数の多目的構造によって提供することができる。
【００２４】
データステージングメカニズム３１４は、論理データストリーム３０８、３１０、３１２の少なくともいくつかについてのデータをステージングし、各論理データストリーム３０８、３１０、３１２についてステージングされたデータのデータ準備完了インジケータをセットする。データ準備完了インジケータ３２２は、例えば、ステージングメカニズム３１４が、特定の論理データストリーム３０８、３１０、３１２について所定のデータ量よりも多くステージングされた時、又はエンドオブフレーム（ＥＯＦ）インジケータが、特定の論理データストリーム３０８、３１０、３１２について受信された時を示す。
【００２５】
メッセージ生成メカニズム３１６は、複数のメッセージ３０４を組み立てる（例えば、パケット化する）。メッセージ３０４のそれぞれは、ヘッダと共に組み立てられ、メッセージの少なくともいくつかは、データステージングメカニズム３１４によってステージングされたデータのいくつかを搬送する。データを搬送するメッセージの場合、それらのメッセージのヘッダは、それらのメッセージのデータが関連する論理データストリームを識別する。
【００２６】
これもまた図３に示すように、論理データストリーム３０８、３１０、３１２は、優先方式３２０を有する。すなわち、ストリーム３０８、３１０、３１２のそれぞれは、最も高い優先度、次に高い優先度等を有するものとして指定される。アービトレーションメカニズム３１８は、ｉ）論理データストリーム３０８、３１０、３１２のデータ準備完了インジケータ３２２、及びｉｉ）論理データストリーム３０８、３１０、３１２の優先方式３２０、を使用して、論理データストリーム３０８、３１０、３１２のうちのアクティブな１つを定期的に指定する。例えば、アービトレーションメカニズム３１８は、論理データストリーム３０８、３１０、３１２のいずれがデータを送信する準備が完了しているのかを判断し且つ最も高い優先度を有する「準備完了」のストリームを「アクティブ」なストリームとして指定することによって、論理データストリーム３０８、３１０、３１２のいずれがアクティブであるのかを判断することができる。いずれのストリームがアクティブであるのかを定期的な基準で指定することによって、より高い優先度のデータストリームがデータを送信する準備が完了しているとき、より低い優先度のデータストリームは、シリアルデータインターフェース３０６を独占することができない。このように、より高い優先度のストリームについてより低いレイテンシ（latency：待ち時間）を維持することができる。本明細書で定義する場合、特定の論理データストリームの最大レイテンシは、他の論理データストリームの最大メッセージサイズに等しい。論理データストリームのレイテンシは、従って、論理データストリームの他のものについて生成されたメッセージの長さを制限することによって調整することができる。
【００２７】
いくつかの実施形態では、図３に示す装置３００は、シリアルデータ受信機３２４をさらに備えることができる。このシリアルデータ受信機３２４は、シリアルデータインターフェース３０６を介してフロー制御情報３２６を受信するように構成することができる。このフロー制御情報３２６は、リモート受信機がデータを受信する準備が完了していることを示す。いくつかの場合には、フロー制御情報３２６は、リモート受信機が、論理データストリーム３０８、３１０、３１２のそれぞれの１つに対応するデータを受信する準備が完了していることを示すことができる。他の場合には、フロー制御情報３２６は、リモート受信機が「全体として」データを受信する準備が完了していることを示すことができる。いずれにしても、フロー制御情報３２６は、アービトレーションメカニズム３１８によって、論理データストリーム３０８、３１０、３１２のうちのアクティブな１つを指定するための追加の基準として使用することができる。このように、シリアルデータ送信機３０２又はリモート受信機のいずれも、シリアルデータインターフェース３０６を介して論理ストリームのデータフローを制御することができる。
【００２８】
いくつかの実施形態では、シリアルデータ受信機３２４は、メッセージ（例えば、シリアルデータ送信機３０２によって送信されたメッセージと形態が類似したメッセージ）を受信する。これらの実施形態では、受信されたメッセージのヘッダを処理して、フロー制御情報３２６を抽出することができる。
【００２９】
図４は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ４００）を使用してシリアルデータ送信機３０２（図３）を実施する一例示の方法を示している。図示するように、シリアルデータ送信機３０２には、論理データストリーム３０８、３１０、３１２毎に送信（ＴＸ）ストリームオブジェクト４０２、４０４、４０６（すなわち、ＦＰＧＡハードウェアブロック）を設けることができる。次に、ＴＸストリームオブジェクト４０２、４０４、４０６のそれぞれには、ストリームプロデューサ４１０に対する論理データストリームインターフェース４０８、ストリームオブジェクトパラメータの構成を可能にする制御インターフェース４１２、及びストリームオブジェクトとシリアルデータインターフェース３０６との間のメッセージ／状態インターフェース４１４が設けられる。
【００３０】
ＴＸストリームオブジェクト４０２、４０４、４０６のそれぞれは、自身の内部ストリームインターフェース４０８から受信されたデータをバッファリング（又はステージング）するＦＩＦＯバッファ４１６を含む。データのバッファリング又はステージングは、シリアルデータインターフェース３０６が他のストリームについてのデータを自由に送信することができる状態にしておくのに必要とされる。
【００３１】
各ＴＸストリームオブジェクト４０２、４０４、４０６は、メッセージを組み立てるときに、メッセージデータにメッセージヘッダをプリペンド（prepend：先頭に追加する）する。これは、ヘッダブロック４１８によって行われる。いくつかの実施形態では、メッセージのデータ部は、可変幅を有することができ、メッセージの終了は、「最大データサイズ」レジスタ４２０又はＥＯＦインジケータでマーキングされたデータワードによって決定される。この「最大データサイズ」レジスタ４２０は、ＦＩＦＯバッファ４１６のしきい値を設定するのにも使用することができる。すなわち、ＦＩＦＯバッファ４１６にステージングされたデータの量が最大データサイズを超えると、ＦＩＦＯバッファ４１６にステージングされたデータは、シリアルデータインターフェース３０６を介した送信のために、メッセージに組み立てることができる。しかしながら、いくつかの場合には、データは、ＦＩＦＯバッファ４１６に十分高速に蓄積する場合があるので、ＦＩＦＯバッファ４１６にステージングされたデータから複数のメッセージを形成することができることに留意されたい。これは、データフレーミングが行われない場合に、同相／直交（Ｉ／Ｑ）サンプルデータ等のデータを一貫してストリーミングするのに特に有用である。
【００３２】
ストリームプロデューサ４１０は、論理データストリームインターフェース４０８を介して、特定の１つのデータの終了をマーキングするＥＯＦインジケータをアサートすることができる。いくつかの実施形態では、ＥＯＦインジケータは、メッセージが、（通常、最大データサイズに対して早い）ＥＯＦインジケータで終了することを示す。
【００３３】
いくつかの場合には、ＦＩＦＯバッファ４１６は、複数のＥＯＦインジケータを含むことができ、それらの複数のＥＯＦインジケータのそれぞれは、異なる１つのデータの終了をマーキングする。他の場合には、次のＥＯＦインジケータに達する前に複数のメッセージを組み立てて送信することもできるし、又はＥＯＦインジケータ間に含まれるデータを、単一のメッセージによって搬送することができるものよりも少なくすることもできる。ＥＯＦインジケータの使用によって、プロセス間通信（ＩＰＣ）データ又はコプロセッサデータ等のフレームにされたデータをシリアルデータインターフェース３０６を介して送信することが可能になる。定期的に挿入されたＥＯＦインジケータは、Ｉ／Ｑサンプルデータ等のストリーミングデータを「バンプ（bump）」（同期）して、シリアルデータ送信機３０２とリモート受信機との間のアラインメントを確実にするのに使用することもできる。
【００３４】
データ可用性（ＤＡＶ：Data Available）信号及びデータ準備完了（ＲＦＤ：Ready for Data）信号は、ストリームプロデューサ４１０からストリームオブジェクト４０２へデータをいつ転送するのかを制御する。ＤＡＶ及びＲＦＤの双方がアサートされた場合、データは、ＴＸストリームオブジェクト４０２へ転送される。
【００３５】
制御インターフェース４１２を制御／状態論理４２２及び最大データサイズレジスタ４２０と組み合わせることによって、ストリームオブジェクトパラメータの読み出し及び構成（書き込み）が可能になる。読み出し可能且つ構成可能なストリームオブジェクトパラメータには、例えば、最大データサイズ、ＦＩＦＯエンプティインジケータ、ＦＩＦＯフルインジケータ、ＦＩＦＯデータカウント、ＦＩＦＯバッファ及びメッセージ生成プロセスをフラッシュ／リセットするオプション、ＴＸストリームオブジェクトイネーブル、及びＦＩＦＯエンプティインジケータマスクが含まれ得る。ＦＩＦＯエンプティ状態は、ＦＩＦＯデータカウントが非ゼロからゼロに遷移した時に発生する。ＦＩＦＯフルインジケータは、アサートされたとき、ストリームプロデューサ４１０からストリームオブジェクト４０２へのデータの転送をストール（stall）する。ＦＩＦＯデータカウントは、ＦＩＦＯバッファ４１６に現在記憶されているデータエントリーのカウントを反映する。ＦＩＦＯエンプティインジケータマスクは、ＦＩＦＯエンプティインジケータのアサートを抑制するのに使用され、論理データストリームを使用してＩＰＣデータ又はコプロセッサデータ等のバーストデータを送信する時に重要となる可能性がある。
【００３６】
いくつかの実施形態では、ストリームオブジェクト４０２、４０４、４０６によって供給される論理データストリームの優先方式は、「ハード」優先方式とすることができる。例えば、各ストリームオブジェクト４０２、４０４、４０６は、優先番号（例えば、０、１、２．．．Ｎ）に関連付けることができ、低い番号が付けられたオブジェクトほど、それよりも高い番号が付けられたオブジェクトよりも高い優先度を有する。代替的に、優先度方式は、制御インターフェース４１２を介して静的又は動的に構成することもできる。
【００３７】
シリアルデータ送信機３０２（図４）では、データステージングメカニズムが、複数のＦＩＦＯバッファ４１６によって部分的に提供され、メッセージ生成メカニズムが、ヘッダ生成論理４１８及びシリアルデータインターフェース３０６によって部分的に提供され、アービトレーションメカニズムが、制御インターフェース４１２及びシリアルデータインターフェース３０６によって部分的に提供される。
【００３８】
図５は、デジタル信号プロセッサ（ＤＳＰ５００）を使用してシリアルデータ送信機３０２（図３）を実施する一例示の方法を示している。シリアルデータ送信機３０２には、ＴＸ  ＤＭＡコントローラ５０２、ＴＸ  ＤＭＡ割り込みサービスルーチン（ＩＳＲ）５０４、及び論理データストリーム毎のダイレクトメモリアクセス（ＤＭＡ）構造５０６（又は５０８又は５１０）の１つ又は複数のリンクリストが設けられる。ＤＭＡ構造５１２のそれぞれには、別個のＤＭＡディスクリプタ、及び論理ストリーミングに必要な他の任意の情報（セマフォを送信するための「ｓｅｍ」フィールド等）を設けることができ、それによって、ＤＭＡ構造５１２のそれぞれをリンクリストから別個に読み出すことが可能になる。一般に、ＤＭＡ構造５１２が小さいほど、シリアルデータインターフェース３０６を介してより小さなメッセージの送信が容易になり、これによって、複数の論理データストリームがシリアルデータインターフェース３０６を介してデータを送信する必要がある時の瞬時レイテンシの削減に役立てることができる。
【００３９】
いくつかの場合には、ピンポンバッファ手法５１６、５１８を使用して、データの送信部（source）又は受信部（sink）とすることができる。これらの場合には、バッファ５１６、５１８のそれぞれは、ＤＭＡ構造のリンクリストに関連付けることができる。これによって、中央処理装置（ＣＰＵ）は、１つのバッファにデータをステージングすることが可能になる一方、他方のバッファにステージングされたデータは、シリアルデータインターフェース３０６を介して送信される。
【００４０】
図５は、一例示のシリアルデータ受信機７０２も示している。このシリアルデータ受信機７０２は、この説明において後により詳細に説明される。しかしながら、シリアルデータ送信機３０２を十分に説明する目的で、シリアルデータ受信機７０２は、シリアルデータインターフェース３０６を介してフロー制御情報を受信することができることに留意されたい。フロー制御情報は、リモート受信機がデータを受信する準備が完了していることを示し、好ましくは、リモート受信機が、複数の論理データストリームのそれぞれに対応するデータを受信する準備が完了していることを示す。いくつかの実施形態では、フロー制御情報は、受信されたメッセージのヘッダから抽出される。
【００４１】
シリアルデータ受信機７０２によって受信されたフロー制御情報は、受信（ＲＸ）インターフェースＩＳＲ５２０によって取り込まれ、ＴＸストリーム状態レジスタ５２２に記憶される。フロー制御情報が更新されると、ＲＸインターフェースＩＳＲ５２０は、ＴＸ  ＤＭＡ  ＩＳＲ５０４に通知し、次に、ＴＸ  ＤＭＡ  ＩＳＲ５０４は、ＴＸストリーム状態レジスタ５２２を読み出す。
【００４２】
ＴＸ  ＤＭＡ  ＩＳＲ５０４は、シリアルデータインターフェース３０６へのアクセスをアービトレート（arbitrate）する。この点で、ＴＸ  ＤＭＡ  ＩＳＲは、ｉ）送信機３０２によって供給される論理データストリームのそれぞれについてのデータ準備完了インジケータ、ｉｉ）論理データストリームの優先方式、及びｉｉｉ）リモート受信機から受信されたフロー制御情報、を使用して、論理データストリームのうちの「アクティブ」な１つを定期的に指定する。また、ＴＸ  ＤＭＡ  ＩＳＲ５０４は、メッセージヘッダを組み立て、必要に応じて、ＤＭＡ構造５０６、５０８、５１０のリンクリストからデータを読み出すようにＴＸ  ＤＭＡコントローラ５０２に命令する。
【００４３】
いくつかの実施形態では、ＴＸ  ＤＭＡ  ＩＳＲ５０４は、１）現在のＴＸ  ＤＭＡ転送が完了した時、２）フロー制御情報が受信された時、又は３）論理データストリームの１つについてのデータ準備完了インジケータが更新された時のいずれかで呼び出される。ＴＸ  ＤＭＡ  ＩＳＲ５０４を呼び出すこれらの異なる状況のため、ＴＸ  ＤＭＡ  ＩＳＲ５０４は、ＴＸ  ＤＭＡコントローラ５０２を自由に使用することができると想定することができない（そして新たな動作を行うようにＴＸ  ＤＭＡコントローラ５０２に命令する前にチェックしなければならない）。
【００４４】
ＴＸ  ＤＭＡ  ＩＳＲ５０４は、ストリームセマフォも提供することができる。例えば、ＴＸ  ＤＭＡ転送の完了時に、ＤＭＡディスクリプタの「ｓｅｍ」フィールドが非ゼロである場合、データが送信されたことをストリームオーナタスクに通知するストリームセマフォを与えることができる。
【００４５】
シリアルデータインターフェース３０６を介してデータを送信するための一例示の方法２００（図２）（及び同内容を行うための一例示の装置３００、図３参照）を説明してきたが、次に、シリアルデータインターフェースを介してデータを受信するための一例示の方法６００（図６）を説明する。いくつかの実施形態では、データを受信する方法６００は、データを送信する方法２００と組み合わせることができ、この組み合わせられた方法は、例えば、図１に示すデバイス１０４、１０６のうち単一のデバイスによって実行される。
【００４６】
方法６００のステップ６０２において、メッセージを、シリアルデータインターフェースを介して受信する。ステップ６０４において、複数のデータバッファを使用して、複数の論理データストリームについて受信されたデータをバッファリングする。ステップ６０６において、受信されたメッセージのヘッダを処理して、ｉ）もしあれば、メッセージが関連する複数の論理データストリームの１つ又は複数が識別され、ｉｉ）メッセージに含まれるデータを、複数の論理データストリームの識別された１つ又は複数に対応するデータバッファの１つ又は複数へルーティングする。状況に応じて、ステップ６１２において、受信されたメッセージのヘッダを処理して、フロー制御情報を抽出することもできる。このフロー制御情報は、対応するデータ送信方法（例えば、図２の方法２００）によって使用することができる。
【００４７】
方法６００のステップ６０８において、データバッファのそれぞれを監視し、フロー制御情報を生成する。このフロー制御情報は、データバッファの１つ又は複数が論理データストリームの追加のデータを受信する準備が完了していることを示す。ステップ６１０において、フロー制御情報を、リモート受信機へ送信する。いくつかの実施形態では、フロー制御情報を、１つ又は複数のメッセージヘッダでリモート受信機へ送信する。それらのヘッダは、方法６００のステップ６０６において処理されたヘッダと類似したもの（又は同じもの）とすることができる。
【００４８】
方法６００のステップは、特定のフローを有するように示されているが、このフローは重要ではなく、さまざまなフローが考慮されることに留意されたい。実際には、ほとんどの場合、この方法のステップのすべては、並列に実行される。また、この方法のステップは、図２に示す方法のステップと並列に実行することもできる。
【００４９】
図７は、方法６００等の方法を実施するための一例示の装置７００を示している。図示するように、装置７００は、シリアルデータインターフェース３０６を介してメッセージ７０４を受信するように構成されるシリアルデータ受信機７０２を備える。このシリアルデータ受信機７０２は、複数のデータバッファ７０６、メッセージルータ７０８、及びデータバッファ７０６のそれぞれを監視するメカニズム７１０を備える。いくつかの実施形態では、これらの構造は、個別に実装することができる。他の実施形態では、これらの構造の機能は、１つ又は複数の多目的構造によって提供することができる。
【００５０】
複数のデータバッファ７０６は、複数の論理データストリーム７１２、７１４、７１６について受信されたデータをバッファリングする。メッセージルータ７０８は、ｉ）シリアルデータインターフェースを介して受信されたメッセージのヘッダを処理して、メッセージが関連する複数の論理データストリーム７１２、７１４、７１６の１つ又は複数を識別し、ｉｉ）メッセージに含まれるデータを、論理データストリーム７１２、７１４、７１６の識別された１つ又は複数に対応するデータバッファ７０６の１つ又は複数へルーティングする。データバッファ７０６のそれぞれを監視するメカニズム７１０は、データバッファ７０６を監視するだけでなく、シリアルデータ受信機７０２が追加のデータを受信する準備が完了していることを示すフロー制御情報７１８も生成する。好ましくは、フロー制御情報７１８は、各論理データストリーム７１２、７１４、７１６の追加のデータを受信する準備が完了していることを示す。
【００５１】
いくつかの実施形態では、図７に示す装置７００は、シリアルデータ送信機７２０をさらに備えることができる。このシリアルデータ送信機は、メカニズム７１０によって生成されるフロー制御情報７１８をリモート受信機へ送信するように構成することができる。いくつかの実施形態では、シリアルデータ送信機７２０は、１つ又は複数のメッセージヘッダで（又はその一部として）フロー制御情報７１８を送信することができる。シリアルデータ送信機７２０が、第２の複数の論理データストリーム（図３に示す論理データストリーム３０８、３１０、３１２等）に対応するデータを搬送するメッセージを送信するのに使用されるとき、フロー制御情報７１８は、これらのメッセージの１つ又は複数のヘッダで送信することができる。代替的に、すなわち、第２の論理データストリーム３０８、３１０、３１２のいずれもが送信用のデータを有しないとき、フロー制御情報７１８は、１つ又は複数のヘッダのみのメッセージ（すなわち、第２の複数の論理データストリーム３０８、３１０、３１２についてステージングされたデータのいずれも搬送しないメッセージ）を介して送信することができる。
【００５２】
図８は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ８００）を使用してシリアルデータ受信機７０２（図７）を実施する一例示の方法を示している。シリアルデータ受信機７０２には、論理データストリーム毎に受信（ＲＸ）ストリームオブジェクト８０２、８０４、８０６（すなわち、ＦＰＧＡハードウェアブロック）が設けられる。ＲＸストリームオブジェクト８０２、８０４、８０６のそれぞれには、ストリームコンシューマ８１０に対する論理データストリームインターフェース８０８、ストリームオブジェクトパラメータの構成を可能にする制御インターフェース８１２、及びストリームオブジェクトとシリアルデータインターフェース３０６との間のメッセージ／状態インターフェース８１４が設けられる。
【００５３】
メッセージが受信されると、シリアルデータインターフェース３０６は、各メッセージヘッダを読み出して廃棄してから、メッセージに含まれるデータをメッセージが関連する論理データストリーム（又はＲＸ受信オブジェクト８０２、８０４、８０６）へルーティングする。シリアルデータインターフェース３０６は、メッセージヘッダのいくつか又はすべてからフロー制御情報を抽出することもできる。このフロー制御情報は、対応するシリアルデータ送信機３０２のアービトレーションメカニズム３１８（図３）へ転送することができる。
【００５４】
ＲＸストリームオブジェクト８０２、８０４、８０６のそれぞれは、自身がシリアルデータインターフェース３０６から受信するデータをバッファリングするＦＩＦＯバッファ８１６を含む。データのバッファリングは、シリアルデータインターフェース３０６が他のストリームについてのデータを自由に受信することができる状態にしておくのに必要とされる。
【００５５】
データ可用性（ＤＡＶ）信号及びデータ準備完了（ＲＦＤ）信号は、ストリームオブジェクト８０２からストリームコンシューマ８１０へデータをいつ転送するのかを制御する。ＤＡＶ及びＲＦＤの双方がアサートされた場合、データは、ＲＸストリームオブジェクト８０２から転送される。ストリームオブジェクト８０２は、スタートオブフレーム（ＳＯＦ）信号及びエンドオブフレーム（ＥＯＦ）信号をサポートすることもできる。これらの信号は、受信されたメッセージがＳＯＦインジケータ及びＥＯＦインジケータでマーキングされていることに応じて生成することができる。
【００５６】
制御インターフェース８１２を制御／状態論理８１８及びＦＩＦＯウォーターマークレジスタ８２０と組み合わせることによって、ストリームオブジェクトパラメータの読み出し及び構成（書き込み）が可能になる。読み出し可能且つ構成可能なストリームオブジェクトパラメータには、例えば、ＦＩＦＯウォーターマークレベル、ＦＩＦＯエンプティインジケータ、ＦＩＦＯオーバーフローインジケータ、ＦＩＦＯデータカウント、ＦＩＦＯバッファをフラッシュ／リセットするオプション、ＲＸストリームオブジェクトイネーブル、及びＦＩＦＯエンプティインジケータマスクを含めることができる。ＦＩＦＯエンプティ状態は、ＦＩＦＯデータカウントが非ゼロからゼロに遷移した時に発生する。ＦＩＦＯオーバーフロー状態は、ＦＩＦＯがフルである間にＦＩＦＯバッファへの書き込みが試みられた時に発生する。ＦＩＦＯデータカウントは、ＦＩＦＯバッファに現在記憶されているデータエントリーのカウントを反映する。ＦＩＦＯエンプティインジケータマスクは、ＦＩＦＯエンプティインジケータを抑制するのに使用され、論理データストリームを使用してＩＰＣデータやコプロセッサデータ等の不連続なデータ又はまばらなデータを受信する時に重要となる可能性がある。
【００５７】
ストリームオブジェクト８０２のフロー制御情報は、ストリームオブジェクトのＦＩＦＯデータカウントをストリームオブジェクトのＦＩＦＯウォーターマークレベルと比較することによって生成することができる。ＦＩＦＯデータカウントがＦＩＦＯウォーターマークレベルを超えている（すなわち、ＦＩＦＯバッファ８１６がそのウォーターマークレベルを超えるデータを保持する）場合、ストリームオブジェクトの準備完了状態を「準備完了」から「準備未完了」へ変更することができる。シリアルデータ受信機７０２がシリアルデータ送信機に連結されている場合、シリアルデータ送信機は、シリアルデータ受信機のフロー制御情報をリモート受信機へ送信することができ、それによって、１つ又は複数の論理データストリームに対応するデータの送信の停止又は低速化を送信機に行わせることができる。いくつかの実施形態では、シリアルデータ受信機のフロー制御情報は、１）ＦＩＦＯデータカウントがＦＩＦＯウォーターマークレベルの上から下へ遷移した時、２）メッセージの最後の１つのデータがＲＸストリームオブジェクトに書き込まれ、オブジェクトのＦＩＦＯデータカウントがウォーターマークレベル未満のままである時、３）ＦＩＦＯオーバーフロー状態が発生した時、又は４）ＦＩＦＯエンプティ状態が発生し、ＦＩＦＯエンプティインジケータマスクがセットされていない時等、の所定のイベントの発生時にのみリモート受信機へ送信（公開）される。他の実施形態では、フロー制御情報は、他のイベントの発生時又は定期的に送信することができる。好ましくは、フロー制御情報は、送信されるメッセージのヘッダに組み込まれ、可能であれば、フロー制御情報は、論理データストリームのデータを搬送するメッセージのヘッダに組み込まれる。しかしながら、論理データストリームが、送信するデータを有しないときは、前述したように、フロー制御情報は、いくつかの実施形態では、ヘッダのみのメッセージに組み込むことができる。
【００５８】
シリアルデータ受信機７０２（図７）では、複数のデータバッファが、複数のＦＩＦＯバッファ８１６によって部分的に提供され、メッセージルータが、シリアルデータインターフェース３０６によって部分的に提供され、データバッファのそれぞれを監視するメカニズムが、制御インターフェース８１２及びシリアルデータインターフェース３０６によって部分的に提供される。
【００５９】
図５は、ＤＳＰ５００を使用してシリアルデータ受信機７０２を実施する一例示の方法を示している。シリアルデータ受信機７０２には、ＲＸ  ＤＭＡコントローラ５２４、ＲＸインターフェースＩＳＲ５２０、ＲＸ  ＤＭＡ  ＩＳＲ５２６、及び論理データストリーム毎のダイレクトメモリアクセス（ＤＭＡ）構造５２８、５３０、５３２の１つ又は複数のリンクリストが設けられる。ＤＭＡ構造５３４のそれぞれには、別個のＤＭＡディスクリプタ、及び論理ストリーミングに必要な他の任意の情報（セマフォを送信するための「ｓｅｍ」フィールド等）を設けることができ、それによって、ＤＭＡ構造５３４のそれぞれを別個に書き込むことが可能になる。
【００６０】
いくつかの場合には、ピンポンバッファ手法５３８、５４０を使用して、データの送信部（source）又は受信部（sink）とすることができる。これらの場合には、バッファ５３８、５４０のそれぞれは、ＤＭＡ構造のリンクリストに関連付けることができる。これによって、中央処理装置（ＣＰＵ）は、一方のバッファからデータを読み出すことが可能になる一方、シリアルデータインターフェースを介して受信されたデータは、他方のバッファに書き込まれる。
【００６１】
ＲＸインターフェースＩＳＲ５２０は、各着信メッセージからヘッダを剥ぎ取り、ＤＭＡ構造５２８、５３０、５３２のリンクリストのＲＸ  ＤＭＡディスクリプタに基づいて、メッセージのデータコンテンツをどこにＤＭＡするのかを判断する。好ましくは、メッセージヘッダ自体は、ＤＭＡ構造５３４に書き込まれず、それによって、連続したデータレコードの記憶が可能になる。メッセージのデータコンテンツの書き込みが完了すると、セマフォをＲＸ  ＤＭＡ  ＩＳＲ５２６によって提供することができる。例えば、ＲＸ  ＤＭＡ転送の完了時に、ＤＭＡディスクリプタの「ｓｅｍ」フィールドが非ゼロである場合、データレコードが完全に取り込まれたことをストリームオーナタスクに通知するストリームセマフォを与えることができる。
【００６２】
図５は、先に論述したような一例示のシリアルデータ送信機３０２も示している。シリアルデータ受信機７０２が、シリアルデータインターフェース３０６を介してフロー制御情報を受信した場合、このフロー制御情報を、前述したように処理するために、ＲＸインターフェースＩＳＲ５２０が取り込むことができ、ＴＸ  ＤＭＡ  ＩＳＲ５０４へ転送することができる。
【００６３】
前述したように、システム１００（図１）を、本明細書で開示したさまざまな送信機及び受信機と組み合わせることによって、単一のシリアルデータリンク上での複数の論理データストリームに対応するデータの送信が可能になる。加えて、システム１００によって、各論理データストリームのデータを、（論理データストリームの優先方式を条件として）他の論理データストリームと共に行われているものから大部分独立した方法で送信することが可能になる。さらに、システム１００のストリームインターフェース１１２、１１４のそれぞれが、フロー制御情報を送信及び受信するように構成されているとき、特定のデータストリームに対応するデータの送信は、システム１００の送信端及び受信端の双方によって規制することができる。
【００６４】
図１に示すシリアルデータリンクは、さまざまなシリアルデータリンクプロトコルを使用して実施することができる。このさまざまなシリアルデータリンクプロトコルには、ＴｉｇｅｒＳＨＡＲＣ（登録商標）プロセッサのリンク−ポート（Link-Port）プロトコル、（米国カリフォルニア州サンノゼのXilinx社によって開発された）オーロラシリアル接続プロトコル、及びさまざまな低電圧差動シグナリング（ＬＶＤＳ）プロトコルが含まれる。リンク−ポート環境では、シリアルデータリンクによって送信される各メッセージは、単一のクォドワード（quad word）ヘッダ及びその後に続く生データの［０…ｎ］のクォドワードのブロックを含む一群の連続したクォドワードを含む。一例示のリンク−ポートメッセージ構造については図９を参照されたい（ただし、このメッセージ構造は、他のシリアルデータリンクプロトコルにも使用することができる）。データブロック数がゼロに等しい場合、メッセージは、ヘッダのみを含む（すなわち、メッセージは、ヘッダのみのメッセージである）。
【００６５】
留意すべきは、リンク−ポートプロトコルのメッセージ構造は、１２８ビットのクォドワードを予想している。しかしながら、本明細書で開示した送信機及び受信機は、異なる幅（例えば、３２ビット幅、６４ビット幅、又は１２８ビット幅）のデータを各リンク−ポートクォドワードにパック（pack）するように構成することができる。さらに、生のデータブロックの終了が、クォドワードの境界に位置しない場合、送信される最後のクォドワードには、所定のフィルパターンを詰める（pad）ことができる。
【００６６】
リンク−ポート環境では、図１に示す第１のデバイスは、図５に示すシリアルデータ送信機及びシリアルデータ受信機を実施するように構成されるＴｉｇｅｒＳＨＡＲＣ（登録商標）プロセッサとすることができる。図１に示す第２のデバイスは、図４及び図８に示すシリアルデータ送信機及びシリアルデータ受信機を実施するように構成されるＦＰＧＡとすることができる。
【００６７】
図１０は、メッセージヘッダの一例示の構成を示している。このヘッダは、さまざまなシリアルデータリンクプロトコルによって使用することができ、特に、リンク−ポートプロトコルによって使用することができる。ヘッダは、ヘッダ識別子部（HEAD_ID）、現メッセージ識別子部（CURR_MSG）、送信ストリーム状態部（TX_STR_OBJ_STAT）、及び受信ストリーム状態部（RX_STR_OBJ_STAT）を含む。
【００６８】
ヘッダ識別子は、受信機に対するヘッダの開始を識別する一意のビット列である。しかしながら、リンク−ポート環境では、ヘッダのHEAD_ID部は、ＦＰＧＡが、エラー状態を報告するのに使用することもできるし、又はＴｉｇｅｒＳＨＡＲＣ（登録商標）がエラー状態をクリアするのに使用することもできる。
【００６９】
現メッセージ識別子は、メッセージが関連する論理データストリームを識別する。一実施形態では、複数の論理データストリームのそれぞれについて１ビットを設けることができ、これらのビットの１つを、１つのメッセージが関連する論理データストリームを識別するようにセットすることができる。代替的に、これらのビットの複数のものを、論理データストリームの複数にメッセージを「マルチキャスト」(multicast:同報送信)するようにセットすることができる。メッセージがヘッダから構成されているにすぎない場合、すべてのビットをクリアすることができる。
【００７０】
リンク−ポート環境では、ヘッダの送信ストリーム状態部は、１）（ＦＰＧＡ→ＴｉｇｅｒＳＨＡＲＣ送信における）論理データストリーム毎のシリアルデータ送信機エラー、又は２）（ＴｉｇｅｒＳＨＡＲＣ→ＦＰＧＡ送信における）論理データストリーム毎にストリームエラーをクリアすべきか否かを示すことができる。
【００７１】
また、リンク−ポート環境では、ヘッダの受信ストリーム状態部は、シリアルデータ受信機が、各論理データストリームに対応するデータを受信する準備が完了していることを示すこともできる。加えて、ヘッダの受信ストリーム状態部は、１）（ＦＰＧＡ→ＴｉｇｅｒＳＨＡＲＣ送信における）論理データストリーム毎のシリアルデータ受信機エラー、又は２）（ＴｉｇｅｒＳＨＡＲＣ→ＦＰＧＡ送信における）論理データストリーム毎にストリームエラーをクリアすべきか否かを示すこともできる。
【符号の説明】
【００７２】
３０４ メッセージ
３０６ シリアルデータインターフェース
３０８ 論理データストリーム
３１４ データステージングメカニズム
３１６ メッセージ生成メカニズム
３１８ アービトレーションメカニズム
３２０ ストリーム優先方式
３２２ データ準備完了インジケータ（ストリーム毎）
３２４ シリアルデータ受信機
３２６ フロー制御情報
７０４ メッセージ
７０６ データバッファ
７０８ ルーティングメカニズム
７１０ データバッファを監視するメカニズム
７１２ 論理データストリーム
７１８ フロー制御情報
７２０ シリアルデータ送信機
【図１】
2009303208.tif 000003
【図２】
2009303208.tif 000004
【図３】
2009303208.tif 000005
【図４】
2009303208.tif 000006
【図５】
2009303208.tif 000007
【図６】
2009303208.tif 000008
【図７】
2009303208.tif 000009
【図８】
2009303208.tif 000010
【図９】
2009303208.tif 000011
【図１０】
2009303208.tif 000012
【外国語明細書】
2009303208000001.pdf