(57)【要約】  埋め込みシステムなどにおける最新のプロセッサシステムは、特に１０ギガバイト近傍のスループットレートによりリアルタイム条件の下でデータを処理することはできない。従って、１０Ｇｂｐｓのデータスループットのリアルタイム条件の下でＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、Ｉｎｆｉｎｉｂａｎｄ又は１０Ｇ−Ｅｔｈｅｒｎｅｔ（登録商標）などのインタフェースを使用する際、特別なデータパスが高スループットレートデータを処理する必要がある。しかしながら、接続管理又は時間の重要性の低い制御メッサージ処理などのタスクは、プロセッサによってより良好に管理可能である。本発明によると、ＰＣＩ  Ｅｘｐｒｅｓｓベースのアーキテクチャについて制御パスアクセスとデータパスアクセスとに分離することが必要とされるあるタイプのマルチプレクサアーキテクチャが提案される。
2010503095.tif 000002
【特許請求の範囲】
【請求項１】
１つの入力においてデータソースから受信し、第１ＦＩＦＯメモリにバッファリングされるデータワードのストリームを処理する装置であって、定義されたフォーマットのデータパケットにおいて前記データワードを出力するインタフェースと、前記インタフェースを制御し又は前記インタフェースを介し外部装置を制御するためのリクエストパケットを生成するプロセッサとを有し、前記リクエストパケットは第２ＦＩＦＯメモリにバッファリングされ、前記データパケットとリクエストパケットは同一のデータラインを介し前記インタフェースに伝送される装置であって、
前記インタフェースへのデータ送信のための所定のデータパケット長が順守されるように、優先度方式に従ってデータパケットとリクエストパケットとを混合するマルチプレクサユニットを有する装置。
【請求項２】
前記第１ＦＩＦＯメモリは、収集したデータワードの個数が前記所定のデータパケット長に対応する閾値に達した場合、第１パケット指示信号を前記マルチプレクサユニットに提供するよう構成される、請求項１記載の装置。
【請求項３】
前記第２ＦＩＦＯメモリは、収集したデータワードの個数が所定のリクエストパケット長に対応する閾値に達した場合、第２パケット指示信号を前記マルチプレクサユニットに提供するよう構成される、請求項１又は２記載の装置。
【請求項４】
前記インタフェースは、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースであり、
前記マルチプレクサユニットは、前記インタフェースに送信されるデータパケットのＰＣＩ  Ｅｘｐｒｅｓｓコンプリーションヘッダを生成するコンプリーションヘッダ生成手段を有する、請求項１乃至３何れか一項記載の装置。
【請求項５】
前記マルチプレクサユニットには、ＰＣＩ  Ｅｘｐｒｅｓｓコンプリーションヘッダ生成手段と、データパケット・リクエストパケットマルチプレクサとが備えられる、請求項４記載の装置。
【請求項６】
前記マルチプレクサユニットには、ルールに従って動作するよう構成される有限状態マシーンが備えられ、
前記ルールでは、前記第２指示信号が検出された場合、前記マルチプレクサが前記第２ＦＩＦＯメモリからのリクエストパケットを伝送開始する前に、前記第１ＦＩＦＯメモリのパケットからの最後のデータワードが前記マルチプレクサにおいて処理されたという指示を前記状態マシーンが待機する、請求項１乃至５何れか一項記載の装置。
【請求項７】
前記マルチプレクサユニットは、リクエストパケットレスポンスからデータパケットを送信するリクエストを分離し、一方で対応するコンプリーションパケットと、他方で前記プロセッサに対するリクエストパケットレスポンスとを構成するため、前記データパケットを送信するリクエストを有限状態マシーンに送信する分離ユニットを有する、請求項４乃至６何れか一項記載の装置。
【請求項８】
前記分離ユニットは、２つの対応して構成されるアドレス・伝送タイプデコーダを有する、請求項７記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本提案は、高速インタフェース処理の分野に関し、特に映画及び放送スタジオ環境におけるビデオ制作のためのものである。
【背景技術】
【０００２】
埋め込みシステムなどにおける最新のプロセッサシステムは、特に１０ギガバイト近傍のスループットレートによりリアルタイム条件の下でデータを処理することはできず、また見越したものでない。従って、１０Ｇｂｐｓのデータスループットのリアルタイム条件の下でＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、Ｉｎｆｉｎｉｂａｎｄ又は１０Ｇ−Ｅｔｈｅｒｎｅｔ（登録商標）などのインタフェースを使用する際、特別なデータパスが高スループットレートデータを処理する必要がある。しかしながら、接続管理又は時間の重要性の低い制御メッサージ処理などのタスクは、プロセッサによってより良好に管理可能である。
【０００３】
リアルタイムデータ伝送及びバス管理のためのデータパケット及び／又は他の制御メッセージがＰＣＩｅバス上で混ざり合うという問題がある。リアルタイムデータ伝送のための終了が生成される必要があるとき、その他のメッセージは十分速くインタフェースを通過しないという問題が発生する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記問題を解決するため、本発明は、高帯域幅インタフェースアーキテクチャのための制御パスアクセスとデータパスアクセスとに分離するあるタイプのマルチプレクサアーキテクチャを提案する。
【課題を解決するための手段】
【０００５】
接続管理のため、ＰＣＩｅコアなどの高帯域幅インタフェースコアにアクセスするためのパケット指向制御方式が、インテリジェントマルチプレクサ／ＦＩＦＯ制御アーキテクチャによって、パケット指向データ処理方式と分離される。このマルチプレクサは、プライオリティ方式と、例えば、切り替え中のＰＣＩｅ配列パケット長（ａｌｉｇｎｅｄ  ｐａｃｋｅｔ  ｌｅｎｇｔｈ）とをサポートする。
【発明の効果】
【０００６】
本発明の効果は、高帯域幅インタフェースベースのアーキテクチャにおいてデータパスと制御パスとを区別することによって、プロセッサのパフォーマンスを確保することである。
【０００７】
本発明は、最大データスループットを提供する。
【図面の簡単な説明】
【０００８】
本発明の各実施例が図面に示され、以下の説明においてより詳細に説明される。
【図１】図１は、フィルムスキャナからストレージサーバへのデータの伝送のためのＩｎｆｉｎｉｂａｎｄバスシステムの利用を示す。
【図２】図２は、本発明を実現するプラットフォームを示す。
【図３】図３は、本発明によるマルチプレクサのブロック図を含むＰＣＩｅインタフェースを備えたデータ処理システムの基本アーキテクチャを示す。
【図４】図４は、詳細なアーキテクチャをブロック図形式で示す。
【図５】図５は、ＰＬＢバスとインタフェースをとるためのアーキテクチャ内の特殊設計されたメモリインタフェースブロックを示す。
【図６】図６は、本発明によるマルチプレクサ／デマルチプレクサの詳細なブロック図を示す。
【図７】図７は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰコアを駆動するのに使用されるルートポートコントローラモジュールの詳細なブロック図を示す。
【図８】図８は、ＰＣＩｅバス上の信号のタイミング図である。
【発明を実施するための形態】
【０００９】
図１は、Ｉｎｆｉｎｉｂａｎｄネットワークを介し業務用ストレージサーバ３００に接続される業務用フィルムスキャナ２００を示す。
【００１０】
Ｉｎｆｉｎｉｂａｎｄネットワーク接続について、ＰＣＩ  Ｅｘｐｒｅｓｓベースのハードウェア手段はすでに販売されている。ＰＣＩ  Ｅｘｐｒｅｓｓベースハードウェアの利用は、Ｉｎｆｉｎｉｂａｎｄの代わりに１０ギガビットイーサネット（登録商標）の将来的な利用について未定である。
【００１１】
図２は、フィルムスキャナの一部であるデジタルイメージプロセッサ８０を示す。ＦＰＧＡ１００は、フィルムスキャナ２００とＩｎｆｉｎｉｂａｎｄＨＣＡカード９０との間のインタフェースである。
【００１２】
フィルムスキャナ２００はデータソースであり、ストレージサーバ３００はデータシンクである。フィルムスキャナは、いわゆる、４８ビットのカラー色深度により４０９６×３１１２ピクセルの解像度によりセルロイドフィルムをサンプリングする４ｋフィルムスキャナである。これは、デジタル映画撮影技術の標準的な解像度に対応している。フィルムスキャナは、毎秒７．５ピクチャのレートにより動作する。これは、４．６Ｇｂｉｔ／ｓのデータレートをもたらす。
【００１３】
図３は、プロセッサ＋オペレーティングシステム（ＯＳ）＋ＲＡＭ１０と、リクエストエンコーダ２０と、制御ＦＩＦＯ（Ｃｔｒｌ−ＦＩＦＯ）３０と、コンプリーションマルチプレクサ（ｃｏｍｐｌｅｔｉｏｎ  ｍｕｌｔｉｐｌｅｘｅｒ（Ｃｍｐｌｔｎ−ＭＵＸ））４０と、データＦＩＦＯ（Ｄａｔａ−ＦＩＦＯ）５０と、ＰＣＩ−Ｅｘｐｒｅｓｓコア６０とを有するシステムを示す。ＰＣＩ  Ｅｘｐｒｅｓｓは、各種ハードウェアとソフトウェアコンポーネントが市場において利用可能な既知のバス規格である。このバス規格は、以下においてＰＣＩｅと省略される。すべてのコンポーネントは、メモリアクセスを介しＰＣＩｅバスにアクセスすることに関して、プロセッサ１０のＯＳについて透過である。低データレートの制御パスは（ａ）により示され、高データレートのパスは（ｂ）により示され、リアルタイムデータパスは（ＲＴ−ｄａｔａ）により示される。
【００１４】
プロセッサ１０のＯＳのメモリアクセスは、リクエストエンコーダ２０によりリクエストパケットに符号化され、Ｃｔｒｌ−ＦＩＦＯ３０に格納される。ここで、Ｃｔｒｌ−ＦＩＦＯ３０からリクエストパケットをフェッチし、それらをＰＣＩｅ向けのメモリアクセスに復号化するＰＣＩｅコア６０に分配するのは、Ｃｍｐｌｔｎ−ＭＵＸ４０の責任である。ヘッダとデータは、Ｃｍｐｌｔｎ−ＭＵＸ４０において別々に処理されてもよい。同時に、所望のアドレスエリアを介しＣｍｐｌｔｎ−ＭＵＸ４０の有限状態マシーン（ＦＳＭ）ユニットにわたされる５１２バイトのデータリクエストがＰＣＩｅバス上にある可能性がある。これらのデータリクエストは、データＦＩＦＯ５０からの複数の１２８バイトのコンプリーションによってアクノリッジされる。従って、長さ、アドレス及び一意的なタグＩＤ（リクエストとこれに係るコンプリーションとを特定する）に関する情報を少なくとも含むコンプリーションヘッダが生成される。ＰＣＩｅ仕様に規定されるリクエスト／コンプリーション長レシオは複数ある。例えば、５１２バイトのリクエストは、４×１２８バイトのコンプリーションにより応答可能である。この具体例が、図３に示される。ＰＣＩｅコア６０は、マルチプレクサ４０により５１２バイトのデータリクエストを実行する。応答では、マルチプレクサ４０は、データＦＩＦＯ５０から４個の１２８バイトブロックをフェッチする。ＰＣＩｅコンプリーションヘッダが、各１２８バイトブロックに追加される。必要に応じて、すなわち、任意的に、フッタがまた追加可能である。この新しいパケットは、各ケースにおいてＰＣＩｅコアに伝送される。
【００１５】
本発明の要点は、Ｃｍｐｌｔｎ−ＭＵＸ４０の動作である。すなわち、
１．ＦＳＭ４１が、データＦＩＦＯと制御ＦＩＦＯのＦＩＦＯ閾値を処理する。
２．ＦＳＭ４１は、制御ＦＩＦＯのＦＩＦＯ閾値とデータＦＩＦＯのＦＩＦＯ閾値に関する処理優先度を有する。そのルールは、制御ＦＩＦＯ上でＦＩＦＯ閾値が検出された場合、データＦＩＦＯ５０から現在伝送可能な１２８バイトパケットの最終バイトを待機する。その後、制御ＦＩＦＯ３０から優先度に従ってパケットを転送する。
３．ＦＳＭ４１はまた、リードイネーブル信号ｒｄ＿ｅｎａを介し制御ＦＩＦＯとデータＦＩＦＯから読み出しを行う。
４．ＦＳＭ４１はまた、ネゴシエートされたＰＣＩｅデータコンプリーション長によるサイズのデータユニットをデータＦＩＦＯ５０から読み込む。このため、ＦＳＭ４１の内部にデータカウンタが実装される。
５．ＦＳＭ４１はさらに、ｓｅｌ＿ｂ信号を介しパス（ａ）とパス（ｂ）との間の切替を行うようヘッダ・データマルチプレクサ４３を駆動する前に、コンプリートリクエストパケットと１２８バイトのデータユニットを処理する。
６．Ｃｍｐｌｔｎヘッダ生成手段４２は、ＰＣＩｅに従うコンプリーションヘッダ及びフッタ構造をすべての１２８バイトデータユニットに追加する。
【００１６】
Ｘｉｌｉｎｘ  Ｖｉｒｔｅｘ−４アーキテクチャに基づくハードウェア設計のアーキテクチャを示す図４において、本発明のさらなる詳細な実施例が示される。一部のモジュールの周辺のグレイの陰影によって、異なるクロックドメインがハードウェア設計に設けられる範囲が示される。アーキテクチャ全体は、２つのエリアに分割することができる。パワーＰＣ１０とＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰコア６０との間の上側エリアは、リアルタイムデータストリームがマージされる必要があるＰＬＢ−ｔｏ−ＰＣＩ  Ｅｘｐｒｅｓｓブリッジである。アーキテクチャの下側エリアは、ブリッジにデジタルイメージプロセッサ８０を付属させるためのものであり、レジスタファイル７１を介しパワーＰＣ１０とデータイメージプロセッサ８０との間の通信とインタラプトを可能にする。ＰＬＢは、高速メモリとパワーＰＣとの間の高速かつハイパフォーマンスのバス伝送を可能にするよう設計されたプロセッサローカルバス（Ｐｒｏｃｅｓｓｏｒ  Ｌｏｃａｌ  Ｂｕｓ）と呼ばれるＩＢＭにより開発されたバスプロトコルである。
【００１７】
Ｖｉｒｔｅｘ−４アーキテクチャでは、ＩＢＭからのパワーＰＣ４０５はハードウェアブロックとして含まれる。それは、ＰＬＢバスを介しＦＰＧＡファブリックに接続される。また、Ｌｉｎｕｘオペレーティングシステムに対するワーキングメモリとして機能するＤＤＲ−ＲＡＭブロック１１がＰＬＢに接続される。
【００１８】
モジュールＰＬＢ２ＲＣ２０は、送信ＦＩＦＯメモリ３０と受信ＦＩＦＯメモリ３１を利用して、ＰＬＢに対するリード／ライトコマンドを変換するＰＬＢマスタ／スレーブモジュールである。このため、ＦＩＦＯメモリ以外に追加的な制御ラインを設計する必要がないように、シンプルな専用プロトコルが利用される。さらに、ＦＩＦＯメモリ３０，３１は、２つの異なるクロックドメインの間の正しいデータ伝送を保証する。異なるモジュールの間の全二重データフローを可能にするため、２つのＦＩＦＯメモリが設けられる。
【００１９】
ルートコンプレックスデータマルチプレクサ４３からのメインタスクは、デジタルイメージプロセッサ８０からのリアルタイムデータを、ブリッジを介しわたされ、ＰＬＢ又はＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰコアにより発信されたデータストリームに挿入することである。
【００２０】
ＰＣＩ  Ｅｘｐｒｅｓｓ  ＩＰコア６０は、４つのレーンとバーチャルチャネルとを有するルートポートとして構成される。それは、２つの独立したデータポートを有し、１つは送信方向で、もう１つは受信方向のものである、コアを駆動するため、一方でトランザクションレイヤパケットＴＬＰを復号化し、他方においてルートコンプレックスデータマルチプレクサ４３とやりとりするタスクを有するルートポートコントローラ４４が必要とされる。
【００２１】
デジタルイメージプロセッサ８０は、ＤＰＸ（Ｄｉｇｉｔａｌ  Ｍｏｖｉｎｇ−Ｐｉｃｔｕｒｅ  Ｅｘｃｈａｎｇｅ）ファイルフォーマットによりスキャンされたピクチャを即座に格納するフレームバッファを有する。当該バッファのデータへのアクセスは、シンプルなハンドシェイキングバスプロトコルにより制御される１２８ビットの幅を有するデータバスを介し行われる。フレームバッファからルートコンプレックスデータマルチプレクサ４３にデータをルーティングするため、２つのモジュールが必要とされる。一方は、バッファとして機能し、２つのクロックドメインの間のデータ同期のためのＤＰＸ  ＦＩＦＯメモリ５０であり、他方は、フレームバッファからＦＩＦＯメモリ５０へのデータフローを制御するＤＩＰコントローラ５１である。データイメージプロセッサ８０はさらに、レジスタファイル７１に対する制御パスとデータパスとを有する。当該レジスタファイル７１は、例えば、ピクチャサイズと解像度に関する情報などを有し、ＤＣＲ＿ＲＦ＿Ｓｌａｖｅユニット７０を介しパワーＰＣ  ＤＣＲバスに接続される。ＤＣＲバスはまた、ＩＢＭ製品である。
【００２２】
以下において、図４に示されるモジュールのいくつかがより詳細に説明される。図５は、ＰＬＢ２ＲＣモジュール２０のブロック図を示す。このモジュールは、Ｉｎｆｉｎｉｂａｎｄカード９０が自らＤＤＲ−ＲＡＭ１１へのエントリを実行可能であるため、スレーブ機能に加えてＰＬＢマスタ機能を有する必要がある。このため、当該設計では、２つの有限状態マシーンが想定されている。１つはスレーブ有限状態マシーン２１であり、他方はマスタ有限状態マシーン２２である。両者は、リクエスト／アクノリッジのやりとりによって、ＰＬＢバスインタフェース２３と通信する。エンディアンコーデックが必要とされる。パワーＰＣ１０はビッグエンディアンフォーマットによりデータを処理し、インタフェースの全体設計とＰＣＩｅコア６０は、リトルエンディアンフォーマットを利用する。エンディアンフォーマットの変換は、ビッグ／リトルエンディアンコンバータ２４ａにおいて実行される。
［スレーブ方式］
３つの異なるタイプのＰＣＩｅアクセスタイプが分離される必要がある。このため、ＰＬＢスレーブ方式は、ＰＬＢバスインタフェース２３に知られている３つの異なるメモリエリアを利用する。ＰＬＢバスからのリクエストがある場合、インタフェース２３は、３つのメモリエリアの１つにリクエストを割当て、３ビットベクトルＢｕｓ２ＩＰ＿ＡｒＣＳによりそれが何れのタイプであるか示す。スレーブＦＳＭ２１は、信号を評価し、このタイプの対応するエントリをＰＬＢ２ＰＣＩｅヘッダに行う。
【００２３】
１つのデータワードによりライトリクエストを通知するため、ＰＬＢバスインタフェース２３は、１に設定することによりＢｕｓ２ＩＰ＿ＷｒＲｅｑ信号を生成する。スレーブＦＳＭ２１はまた、何れのメモリエリアに関するかと共に、タイプ及びデータ長をヘッダにエントリする。
【００２４】
ＰＬＢ仕様は、いわゆる、１２８バイトの最大長を有するバースト伝送を定義している。しかしながら、リクエスト段階中は、その長さはわかっていない。これは、送信ｓＦＩＦＯバッファ２６ａに書き込まれると、受信したデータワードをカウントするカウンタデータＤＷｏｒｄｓ  Ｕｐ／Ｄｏｗｎカウンタ２４の実装を導く。データワードの取得は、ＩＰ２Ｂｕｓ＿ＷｒＡｃｋ信号を“１”に設定することにより行われる。その後、カウンタ値はバースト伝送のヘッダに入力される。
【００２５】
４：１マルチプレクサ２７は、ＲＣデータマルチプレクサ４３にパケットを伝送するのに供する。マルチプレクサはまず、アドレスＢｕｓ２ＩＰ＿Ａｄｄｒとその後の送信ｓＦＩＦＯ２６ａのコンテンツに続くＰＬＢ２ＰＣＩｅヘッダをバスにスイッチする。
【００２６】
リードアクセスＢｕｓ２ＩＰ＿ＲｄＲｅｑに対して、リクエストは、ＰＣＩｅコンプリーションメッセージにより応答するＰＣＩｅルートポートコントローラ４４に送信される。データパケットは、コンプリーション受信バッファ２８ａにバッファリングされる。スレーブＦＳＭ２１は、ＡｒＤａｔａマルチプレクサ２７ｂを利用して、データを出力ＩＰ２Ｂｕｓ＿ＡｒＤａｔａにスイッチし、ＩＰ２Ｂｕｓ＿ＲｄＡｃｋによる信号によってトランザクションを終了する。また、ＰＬＢ２ＲＣモジュール２０には、ＴＬＰ分離ユニット２９は設けられる。モジュール２９を有する必要性は、後述のマスタモジュールが説明されるときに説明される。
【００２７】
バーストモードによるデータの読み込みについて、データ長に関する問題がある。長さの情報は、ＰＬＢバスインタフェース２３では利用可能でない。ＰＬＢバーストモードでは、データワードは個々には読み取りできず、またＰＣＩｅコアにおいてシングルデータワードによりリクエストすることもできない。このため、ＰＬＢバースト長は、パワーＰＣコア１０により読み込まれる必要がある。その後、データはＰＬＢバスインタフェース２３に転送される。この処理は、ＩＰバスインタフェース２３がＢｕｓ２ＩＰ＿ＲｄＲｅｑラインを再び低ポテンシャルに低下させるまで続けられる。この場合、必ずしも１２８バイトのすべてがリクエストされていないとき、残りのデータはコンプリーション受信バッファ２８ａにおいて削除される。
［マスタモード］
マスタモードを実現するため、第２の有限状態マシーン２２が必要とされる。リクエスト及びインタラプトを制御するのは、マスタＦＳＭ２２の判断による。他方のリクエストバッファ２８ｂがパケットを受信した場合、対応して必要とされるアドレスＩＰＢｕｓ＿Ａｄｄｒ及びＩＰ２ＩＰ＿Ａｄｄｒと、バイトイネーブル信号ＩＰ２Ｂｕｓ＿ＭｓｔＢＥと、伝送サイズ信号ＩＰ２Ｂｕｓ＿ＭｓｔＮｕｍが書き込まれる。ＩＰ２Ｂｕｓ＿ＭｓｔＲｄ／ＷｒＲｅｑラインの設定によって、バス伝送リクエストがバスインタフェース２３に送信される。ＰＬＢアービタがマスタ書き込みアクセスのためのバスへのアクセスを提供した直後に、当該データはローカルアドレスＩＰ２ＩＰ＿Ａｄｄｒから読み込まれ、アドレスＩＰ２Ｂｕｓ＿Ａｄｄｒに書き込まれる。スレーブ側では、ＩＰ２Ｂｕｓ＿ＡｒＤａｔａ出力がＡｒＤａｔａマルチプレクサ２７ｂにより他方のリクエストバッファ２８ｂに切り替えられるという違いはあるが、リードリクエストはスレーブモードと同じ条件の下でスタートされる。トランザクションのエンドは、Ｂｕｓ２ＩＰ＿ＭｓｔＲｄＡｃｋラインを設定することによって、マスタＦＳＭ２２により通知される。マスタリードリクエストは、同様にして作用する。ＰＬＢバスインタフェース２３は、アドレスＩＰ２Ｂｕｓ＿Ａｄｄｒからデータを読み込み、ローカルアドレスＩＰ２ＩＰ＿Ａｄｄｒに書き込む。タイプ符号化とは別に、マスタリードアクセスはスレーブモードに従う。リクエストは、この場合にはＰＣＩｅルートポートにより開始されており、コンプリーションタイプがまた入力される必要がある。
【００２８】
受信ＦＩＦＯメモリ３１から受信したすべてのコンプリーションパケットをフィルタリングし、それらをコンプリーション受信バッファ２８ａに書き込むことは、ＴＬＰ分離ユニット２９のタスクである。残りのパケットタイプのすべて（メモリリード／ライト、メッセージ）は、他方のリクエスト受信バッファ２８ｂに記憶される。このタイプのパケットソーティングは、デッドロックを回避するよう実現されている。
【００２９】
図６は、ＲＣデータマルチプレクサ４３のブロック図を示す。ブロックは２つのロジックを有し、１つは送信パスのため、もう１つは受信パスのためのものである。送信パスでは、受信したすべてのパケットは復号化され、アドレスと共にヘッダがルートポートコントローラ４４にパラレルにわたされる。図面において、対応する伝送ライン（ｈｅａｄｅｒ＿ｉｎｆｏｓ＿ｔｘ）、（ｍｅｍＩＯａｄｄｒｅｓｓ＿ｔｘ）及び（ｈｅａｄｅｒ＿ｉｎｆｏｓ＿ｔｘ＿ｖａｌｉｄ）が特定される。ヘッダ有効信号のラインは、送信ＦＩＦＯ３０のすべてのデータワードがさらなるＦＩＦＯ  ＲＰＣ  ＦＩＦＯ  ＴＸ４４５ａに伝送された後、アクティブ状態に設定される。信号ＴＬＰ＿ｅｎｃ＿ｂｕｓｙ＝０は、ルートポートコントローラ４４がアイドル状態にあり、新たなデータの受信を待機していることを示す。しばらくしもデータが受信されない場合、当該状態は変更される。その後、送信ＦＳＭ４３１は、ルートポートコントローラ４４にデータを伝送しない待機状態に変更される。
【００３０】
データフローがＰＬＢバスインタフェース２３の方向にある点を除いて、同様のＲＸパスが存在する。ｈｅａｄｅｒ＿ｉｎｆｏｓ＿ｒｘ＿ｖａｌｉｄ信号を設定すると、ＲＸ  ＦＳＭモジュール４３２は、ヘッダ、アドレス及びデータを次々にＲＸ  ＦＩＦＯバッファ３１に伝送する。２つのデータカウンタ４３３ａと４３３ｂは、ＦＩＦＯバッファ３１に伝送メモリが複数のパケットを有し、パケットエンドポイントを決定するためエンプティ信号に依拠できない可能性が理論的にあるため、適切な大きさのデータワードが転送されることを保証する。ルートコンプレックスデータマルチプレクサ４３の主要な目的は、フィルムスキャナデータストリームがわたされるＤＰＸ  ＦＩＦＯメモリ５０を追加することである。ＰＬＢ２ＲＣモジュール２０からのデータがＴＸパスに又はスキャナからわたされるか否かの判定は、トランザクションタイプ・アドレスデコーダ４３５により行われる。このＴＴＡＤブロック４３５は、以下の各条件が充足される場合、ルートポートコントローラ４４によりわたされるリクエストをチェックする。
１．ｈｅａｄｅｒ＿ｉｎｆｏｓ＿ｒｘ：パケットは、メモリリードタイプからのものである可能性が高い。
２．ｍｅｍＩＯａｄｄｒｅｓｓ＿ｒｘ：リードアドレスは、規定された領域のみからのものであるべきである。
【００３１】
この判定を行うための問題は、Ｉｎｆｉｎｉｂａｎｄカードがピクチャデータを予想するアドレス領域である。通常、このアドレス領域はＤＤＲ−ＲＡＭ１１の内部のソフトウェアにより割り当てられる。しかしながら、スキャナからのピクチャデータは、ＤＤＲ−ＲＡＭ１１には行かない。このため、アドレス領域は、全体としてＤＰＸ  ＦＩＦＯメモリ５０に割り当てられ、ルートコンプレックスデータマルチプレクサ４３は、メモリ領域の境界を知っている必要がある。アドレス領域の境界は、アプリケーションプログラムによりレジスタにプログラムされる。ＰＣＩｅコア６０と通信するため、ルートポートコントローラ４４が必要とされる。このブロック図は図７に示される。ＰＣＩｅコア６０は、２つの異なるポートを有し、１つは送信パスＴＸのため、もう１つは受信パスＲＸのためのものである。両方のポートは、記述子（１２８ビットＴＬＰヘッダ）とデータフェーズにより駆動される。シングルフェーズを制御するため、４つの有限状態マシーン４４１ａ，４４１ｂ、４４１ｃ、４４１ｄが設けられる。いくつかの待機サイクルを含むデータ伝送処理を示すタイミング図が、図８に示される。
【００３２】
トランザクションレイヤパケットを伝送するため、ヘッダ信号が、ｔｘ＿ｒｅｑ０信号によってコア６０に印加される必要がある。コアは、ｔｘ＿ａｃｋ０信号によってデータの引き継ぎをアクノリッジする。ヘッダデータは、ラインｔｘ＿ｄｅｓｃ０を介して伝送される。データワードをＰＣＩｅコア６０に伝送するため、ｔｘ＿ｄｆｒ０ラインとｔｘ＿ｒｅｑ０ラインが、同一クロックサイクルにおいてアクティブレベルに設定される。データが有効となるときを示すデータ有効信号ｔｘ＿ｄｖ０が存在する。ｔｘ＿ｄｆｒ０信号は、データ送信のエンドを示すため、非アクティブレベルに設定を戻される必要がある。ＰＣＩ  Ｅｘｐｒｅｓｓコア６０がビジーである場合、ラインｔｘ＿ｗｓ０上の信号によって、ビジー状態を通知する。これは、しばらくデータ伝送を一時停止する。図８に示されるようなタイミング図はまた、反対方向の信号フローを説明する。
【００３３】
ＴＬＰエンコーダ４４２は、ＴＬＰヘッダを符号化するものであり、ＴＬＰデコーダ４４３は、ＴＬＰヘッダを復号化するタスクを有する。両方のブロックは、ルートコンプレックスデータマルチプレクサ４３からのｈｅａｄｅｒ＿ｉｎｆｏｓ及びｍｅｍＩＯａｄｄｒｅｓｓ信号により必要な情報をやりとりする。ＲＰＣ  ＦＩＦＯ  ＴＸメモリ４４５ａは、転送されるべきすべてのデータワードを含む。ライティングポートは、パケットからのすべてのデータワードがＦＩＦＯメモリ４４５ａに書き込まれた後、ｈｅａｄｅｒ＿ｉｎｆｏｓ＿ｔｘ＿ｖａｌｉｄ信号を１に設定するルートコンプレックスデータマルチプレクサ４３により駆動される。当該書き込みが終了すると、ＴＬＰ＿ｅｎｃ＿ｂｕｓｙ信号が設定され、適切な大きさのデータワードが、データＤＷｏｒｄカウンタ４４６によりルートポートコア６０に書き込まれる。
【００３４】
ＰＣＩ  Ｅｘｐｒｅｓｓの仕様によると、そのうちの１つがリクエストされたデータの一部しか返さない複数のコンプリーションパケットによって、規定されたサイズのリードリクエストに応答することが可能とされる。例えば、１２８バイトのメモリリードリクエストは、それぞれが６４データバイトを含む２つのコンプリーションパケットにより応答可能である。また、両方のコンプリーションパケットがデータストリームにおいて次々には続いていないことが可能とされる。すなわち、それらの間にいくつかの中間パケットが存在してもよい。この場合、要求元が適切なコンプリーションを正しいメモリ領域に割り当てることが問題となる。このため、メモリリードＴＬＰリクエストパケットから取得され、コンプリーションヘッダに挿入されるタグＩＤが利用される。また、ヘッダは、以下の意味を有するさらなる２つのフィールドを有する。
Ｌｏｗａｄｄｒｅｓｓ：このフィールドは、第１コンプリーションパケットにのみ設定される必要がある。そのアドレスは、５つの最下位アドレスビットと、バイトイネーブル値から求められる２ビットとの組み合わせから得られる。残りのコンプリーションパケットについて、ＭＳＢが０と１との間で切り替えられる点を除いて、すべてのビットが０に設定される。
Ｂｙｔｅｃｏｕｎｔ：この値は、リードリクエストを終了させるため、残りバイトが必要とされるか示す。複数のコンプリーションにおける分離は、ＬｏｗａｄｄｒｅｓｓとＢｙｔｅｃｏｕｎｔの各値を計算するＴＬＰエンコーダ４４２により実行される。計算について、それは、アドレス・長さバッファ４４４にバッファリングされるアドレス、長さ及びバイトイネーブル値を必要とする。複数のリードリクエストが同時にレスポンスを待機し、これらすべてがそれらのタグＩＤにより区別可能であるため、タグＩＤはアドレス・長さバッファ４４４をアドレッシングするため直接取得される。
【００３５】
ＤＩＰコントローラモジュール５１は、データイメージプロセッサ８０からＤＰＸ  ＦＩＦＯメモリ５０へのピクチャデータフローを規定する。ＤＰＸ  ＦＩＦＯメモリ５０は、１２８ビットのブロードライティングポートからデータを取得する。ＤＩＰコントローラ５１からの第２のタスクは、フィルムスキャナデータの伝送開始をパワーＰＣコア１０に示すインタラプトの生成である。パワーＰＣコア１０上で実行されるインタラプトサービスルーチンは、Ｉｎｆｉｎｉｂａｎｄ通信を準備するプログラムをスタートする。
【００３６】
開示された実施例による範囲に相当する特定の特徴が上述された。これらの特徴は読者に本発明がとりうる特定の形態の要約を提供するためだけに与えられたものであり、これらの特徴は本発明の範囲を限定するものでないことが理解されるべきである。実際、本発明は、上述されていない各種特徴を含むかもしれない。
【図１】
2010503095.tif 000003
【図２】
2010503095.tif 000004
【図３】
2010503095.tif 000005
【図４】
2010503095.tif 000006
【図５】
2010503095.tif 000007
【図６】
2010503095.tif 000008
【図７】
2010503095.tif 000009
【図８】
2010503095.tif 000010
【国際調査報告】
2010503095.tif 000011
2010503095.tif 000012