(57)【特許請求の範囲】
【請求項１】
データパケット転送機器を自律モードで動作させるための方法であって、
自律ブートモード選択信号をデータパケット転送機器に導き、
データパケット転送機器の自律動作用のデータパケット転送機器に関連するレジスタを構築し、
前記データパケット転送機器を自律モードで動作させるための少なくとも１つのプログラム制御リストにデータを転送するように、データパケット転送機器に関連する直接メモリアクセスを可能とする、ステップを含む、前記方法。
【請求項２】
データパケット転送機器を自律モードで動作させるための自律ブート回路であって、
自律ブートモード選択信号をデータパケット転送機器に導くための導入回路と、
データパケット転送機器の自律動作用のデータパケット転送機器に関連するレジスタを構築する命令とを含み、
前記導入回路が更に、前記データパケット転送機器を自律モードで動作させるための少なくとも１つのプログラム制御リストにデータを転送するためのデータパケット転送機器に関連している、前記自律ブート回路。
【発明の詳細な説明】
【０００１】
【関連する特許明細書】
本明細書は、ここでも参照されている米国特許明細書連続番号第（ＴＩ−２２６９１）号、暫定特許明細書として１９９６年４月２６日に登録された、”受信データパケットにチャンネル番号を割り付けるための方法、装置ならびにシステム”、現米国特許第    号の続きである。
【０００２】
【発明の属する技術分野】
本発明は一般的には電子機器の分野に関し、更に詳細には改善されたプラットフォーム指定通信インタフェース装置に関し、また更に詳細にはパケット化されたデータ通信インタフェース機器のＰＣＩバスインタフェース機器回路を自律的に動作させるための方法、装置およびシステムに関する。
【０００３】
【従来の技術】
多くのマルチメディアアプリケーションに関して処理装置速度だけが重要なのではなくて、入出力帯域幅もまたパーソナルコンピュータ上でのアプリケーションを制限する重大な要因である。この制限を解消するために、ＩＥＥＥ１３９４標準では高性能マルチメディア接続を、キャムコーダ（camcorder ）、テレビ、ステレオ、ＣＤ交換機、セットトップボックス（set-top boxes ）、ミキシングコンソールならびにミュージックキーボード、同様に従来からのパーソナルコンピュータ機器との間で可能にしている。”ファイヤワイヤ（FireWire）”標準として知られているＩＥＥＥ１３９４は携帯型ならびにデスクトップコンピュータ環境でのバスインタフェース標準を提供している。このＩＥＥＥ１３９４標準は消費者とコンピュータ市場とを繋ぐ重要なリンク技術として機能しており、高度通信プロトコルで駆動されるシリアルバスを記述している。ＩＥＥＥ１３９４シリアルバスは廉価なシステムコストで、一方高性能周辺機器バスに必要なデータ転送速度を提供するように設計されている。
【０００４】
電気電子技術者協会（ＩＥＥＥ）ならびにその会員コンピュータ会社によって策定されたＩＥＥＥ１３９４標準はシリアルバスインタフェースであって、低価格、高速ディジタルデータ転送ならびに通信を可能とする。装置間の転送速度は最大４００メガビット毎秒（ｍｂｐｓ）にまで達し、非同期および等時間間隔データ転送モードの両方を介して実現できる。ＩＥＥＥ１３９４標準インタフェースはそれ自体ビデオアプリケーションに適しているが、それは等時間間隔時分割システムで動作しているからである。例えば、仮にシステムが１フレームを１／１５秒毎に出力するように構成されていたとすると、少なくとも１フレームが出力される全てのパケットの中に存在するはずである。この結果ビデオが滑らかに見えることになる。この理由によりＩＥＥＥ１３９４標準インタフェースは、これもまた等時間間隔モードで動作する非同期転送モード（ＡＴＭ: asynchronous transfer mode）の様な技術と高い互換性を有する。
【０００５】
ＩＥＥＥ１３９４標準の利点はデータの実時間転送にあり、これはマルチメディアアプリケーションの相互接続として理想的な利点を提供する。小型で耐久性がありしかもフレキシブルなケーブルおよびケーブル接続器を使用することにより、ＩＥＥＥ１３９４標準は価格の節約を実現しある種のケーブル仕様に対する要求を不要とする。ＩＥＥＥ１３９４標準は汎用入出力相互接続を提供し、これは入出力ポートを統合する一方でプリント回路基板のスペースを合併整理する。更に、ＩＥＥＥ１３９４標準はピア・ツウ・ピア通信構造を提供し、これは周辺機器がホスト装置に負荷を課することなく互いに直接通信することを可能とする。
【０００６】
ＩＥＥＥ１３９４標準は高速シリアルバスを提供し、これはヘッダを含むパケット化されたデータを使用する。ヘッダはルーティング情報を含む。更に、パケット化されたデータはペイロードデータを含む。媒体の物理特性は長距離伝送用に設計される必要はない。ＩＥＥＥ１３９４標準は、机上バスで動作するローカルエリアネットワークの様な短距離用に設計されている。その距離はしばしば単なる机上というよりは長くなるが、ＩＥＥＥ１３９４標準はローカルエリアネットワーク動作で使用されることは意図していない。従って、基本的にＩＥＥＥ１３９４標準は、ワークステーション、家庭用コンピュータ、テレビ、ＶＣＲ、キャムコーダの様な装置に、オーディオ、ビデオ、文字の様な種々の媒体型式がアクセスするためのシリアルバスおよびパラレルバスを置き換えるための高速相互接続を提供する。
【０００７】
既存のＰＣＩインタフェースは、ＰＣＩインタフェース機器をフレキシブルなモードで動作させるための柔軟さに欠けるという問題点を含んでいる。例えば、ＰＣＩインタフェース機器の機能を処理するために、動作は単独独立または自律モードであることが種々のアプリケーションに対応するためには望ましい。しかしながらこれは既存のＰＣＩインタフェース機器では不可能である。
【０００８】
【発明が解決しようとする課題】
ＩＥＥＥ１３９４標準に準拠する様なＰＣＩインタフェース機器内で自律的なＤＭＡ動作を可能とする方法およびシステムが必要である。
【０００９】
ＩＥＥＥ１３９４標準に準拠する様なＰＣＩインタフェース機器内のＤＭＡ機械へのアクセスを制御し、自律的ＤＭＡ動作機能に対する命令セットを提供するための方法およびシステムが必要である。
【００１０】
更に、ＩＥＥＥ１３９４標準に準拠する様なＰＣＩインタフェース機器がＰＣＩマスタとしてＰＣＩ命令を実行出来るようにするための方法およびシステムが必要である。
【００１１】
また更に、自律的に電源投入を行い外部からの介入無しに命令を実行する環境を再構築することの出来る方法およびシステムが必要である。
【００１２】
本発明に基づけば、自律的に直接メモリアクセス回路を動作させるための方法およびシステムが提供されており、これは従来開発されたＩＥＥＥ１３９４標準または同様の通信回路内でＤＭＡ回路を動作させるための方法およびシステムに関連する欠点および問題点を基本的に取り除くかまたは軽減するものである。
【００１３】
本発明の１つの特徴として、例えばＩＥＥＥ１３９４標準に準拠したＰＣＩインタフェースを自律モードで動作させるための方法およびシステムが提供されている。この方法およびシステムはＰＣＩインタフェース機器に対して自律ブートモード選択信号を導入することを含む。この方法およびシステムは、ＰＣＩインタフェース機器を自律的に動作させるためのレジスタを形成する。本発明は、ＰＣＩインタフェース機器の自律モードでの動作を制御するための少なくとも１つのパケット制御リストを形成する。これはＰＣＩインタフェース機器に関連するＤＭＡ機器が、パケット制御リストに従ってＰＣＩインタフェースバスに関連するデータの転送を行えるようにする。本発明はまたＤＭＡチャンネル０を使用する最初のプログラム制御リストのアドレスを取り込む手順も含む。更に、本発明はＤＭＡマスタが外部ＲＰＬ読み取り専用メモリ（ＲＯＭ）およびＰＣＩインタフェース機器に関連した内部メモリレジスタの両方にアクセスする事を可能としている。
【００１４】
本発明の技術的特長は、ＩＥＥＥ１３９４標準に準拠したＰＣＩインタフェース機器の様なデータパケット転送装置が、外部プロセッサを必要とすることなく単独独立モードで動作するための方法を提供することである。本発明はＤＭＡエンジンが単独独立動作をするように再構築出来るようなアクセスを提供する。
【００１５】
本発明の別の技術的特長は、ＤＭＡエンジンに関連する外部オプションピン経由で”自律”モードの動作を選択する方法を提供することである。
【００１６】
本発明の更に別の技術的特長は、ＲＰＬ  ＲＯＭメモリおよびＳＲＡＭ基本アドレスレジスタを初期化し、直接メモリアクセスエンジンが電源投入動作後に単独独立モードで読み取りおよび書き込みアクセスが出来るようにするための方法を提供することである。
【００１７】
本発明及びその特長は添付図面を参照して行う以下の説明より更に完全な理解が得られるであろう。添付図面に於いて同一の参照番号は同一の事象を示す。
【００１８】
【発明の実施の形態】
本発明の提出された実施例は添付図面に図示されており、ここで同一番号は種々の図面に渡って同一の対応する部品を参照する。
【００１９】
図１はパーソナルコンピュータ環境１０を概念的に図示しており、これは点線の箱１２で示されるパーソナルコンピュータ１２と点線の箱１４で示される関連の周辺機器とを含む。パーソナルコンピュータ１２の内部には種々のバス及びノードが存在しパーソナルコンピュータの動作を制御する。例えば、インタフェースバス１６は３ポート物理層インタフェース１８と本発明によるインタフェース機器２０との間の通信を支援する。シリアルＥＰＲＯＭ２２はＰＣＩインタフェース機器２０の動作を支援する。ＰＣＩインタフェース機器２０は更にＰＣＩバス２４と補助ポートローカルバス２６とのインタフェースを行う。またＰＣＩバス２４を経由してローカルバス２８ならびにＰＣＩ取り扱い機器３０，３２も通信を行っている。ＰＣＩホストブリッジ３４はローカルバス２８とＰＣＩバス２４との間のホストブリッジ機能を実行する。補助ポートローカルバス２６はフラッシュＰＲＯＭ（またはＲＰＬ  ＲＯＭ）３６、直接メモリアクセス（ＤＭＡ）チャンネル制御静的ＲＡＭ（ＳＲＡＭ）３８、使用者定義機能（ＡＵＸ）４０、およびビデオ入出力用ズームビデオ（ＺＶ）ポート４２と通信を行う。ホストローカルバス２８はホストＣＰＵ４４およびローカルメモリ４６と通信を行う。
【００２０】
物理層インタフェース１８と通信を行う周辺機器１４には、ＣＤ  ＲＯＭ装置４８、レーザプリンタ５０、デスクトップカメラ５２、そしてビデオケーブルセットトップボックス５６とのインタフェースを行うディジタルビデオカセットレコーダ（ＶＣＲ）５４が考えられる。
【００２１】
図１に於いて、ＰＣＩインタフェースＡＳＩＣ２０は、ＰＣＩバス２４をサポートする環境で動作する機器と例えばＩＥＥＥ１３９４−１９９５標準環境が確立する高速入出力周辺機器環境で動作する機器との間の、データパケット送信制御の基本機能を実行する。本実施例のＰＣＩインタフェースＡＳＩＣ２０はＩＥＥＥ標準１３９４−１９９５ならびにＰＣＩ仕様版２．０に適合する。更にＰＣＩインタフェースＡＳＩＣ２０はサイクルマスタの機能を、特にＩＥＥＥ１３９４−１９９５環境に於いて実行し、喪失されたサイクル開始メッセージ検出能力を有する。ＰＣＩインタフェースＡＳＩＣ２０は３２ビット周期的冗長検査（ＣＲＣ）信号をＩＥＥＥ１３９４標準パケット送信用に生成し、同様に３２ビットＣＲＣ検査をＩＥＥＥ１３９４パケット受信時に実行する。ＰＣＩインタフェースＡＳＩＣ２０はＰＣＩインタフェースＡＳＩＣ２０と物理層インタフェース１８との間の等時間間隔バリアをサポートする。更に、ＰＣＩインタフェースＡＳＩＣ２０はＩＥＥＥ１３９４標準送信速度１００、２００および４００ｍｂｐｓをサポートし、同様に３サイズのプログラム可能ＦＩＦＯ（例えば、非同期送信、等時間間隔送信、そして一般受信）をサポートする。
【００２２】
以下に説明するように、ＰＣＩインタフェースＡＳＩＣ２０はプログラム可能チャンネルアドレス比較器ロジックを受信した入力データパケットに対して実施し、それらに対してＤＭＡチャンネルを割り当てる。本発明は、少なくとも１つの実施例に於いて５つのスキャッタ・ギャザ（scatter-gather）ＤＭＡチャンネルを提供し、ここで各々のチャンネルのデータパケット操作が、（１）非同期パケット送信、（２）等時間間隔パケット送信、（３）非同期パケット受信、そして（４）等時間間隔パケット受信機能をサポートするようにプログラムされる。
【００２３】
ＰＣＩインタフェースＡＳＩＣ２０はまた、ＤＭＡ操作をサポートするためのＰＣＩマスタバス機能と、また同様に内部レジスタへの読み取りおよび書き込みアクセスを行うためのＰＣＩスレーブ機能をも提供する。３２ビットＰＣＩアドレスデータ経路を実現するために、ＰＣＩインタフェースＡＳＩＣ２０はＰＣＩアドレスデータパリティ検査のみならず、割り込み事象へのソフトウェア制御も提供する。ＰＣＩインタフェースＡＳＩＣ２０は、外部ロジックへの専用経路を実現するためのプログラム可能外部ローカルバスを提供する。更に加えて、ＰＣＩインタフェースＡＳＩＣ２０は８ビットまたは１６ビットインタフェースを、ズームビデオ（ＺＶ）ポートに提供し、ビデオデータを直接外部モーションビデオメモリ搬送機に転送する。
【００２４】
図２はブロック図５８を提示し、これは本発明のＰＣＩインタフェースＡＳＩＣ２０の機能分割を示す。ＰＣＩインタフェースＡＳＩＣ２０内のロジックはＰＣＩバスロジック６０を含み、これはシリアルＥＰＲＯＭ２２との通信を行うためのシリアルＥＰＲＯＭインタフェース６２を含む。ＰＣＩマスタロジック６４およびＰＣＩスレーブロジック６６、同様にＰＣＩ構成制御ならびに状態レジスタ６８はＰＣＩバス２４との通信に必要なロジックを提供する。ローカルバスインタフェースロジック７０は補助ポートローカルバス２６とのインタフェースに必要な制御ロジックを提供する。
【００２５】
ＰＣＩインタフェースＡＳＩＣ２０内のＤＭＡロジック７２は、ＤＭＡエンジン７４およびＤＭＡ制御ならびに状態レジスタ７６を含み、ＰＣＩバスロジック６０とＦＩＦＯロジック７８との間の動作と通信とを制御する。ＦＩＦＯロジック７８は汎用受信ＦＩＦＯ８０、非同期送信ＦＩＦＯ８２、等時間間隔送信ＦＩＦＯ８４、ポインタアドレス写像ロジック８６、およびＦＩＦＯ制御ならびに状態レジスタ８８を含む。
【００２６】
リンク層制御ロジック９０は制御ならびに状態レジスタ９２を含み、これはリンク層制御ロジック９０内の全ての機能の制御を行いかつ状態のレポートを行う。パケット送信制御ロジック９８およびパケット受信制御ロジック１０２はロジック、サイクルタイマ９４およびサイクルモニタ９６と共に働く。物理リンクインタフェースロジック１０４はパラレル／シリアル変換ならびにシリアル／パラレル変換機能を含む。
【００２７】
図２に於いて、ＰＣＩバスロジック６０はＰＣＩインタフェースＡＳＩＣ２０とＰＣＩバス２４とのインタフェースロジックを実行する。ＰＣＩスレーブロジック６６は外部ＰＣＩ取り扱い機器に対してスレーブインタフェース制御ロジックへの読み取りおよび書き込み機能を提供して、ＰＣＩインタフェース２０制御ならびに状態レジスタ６８、７６、８８、９２を評価できるようにしているが、これらはアプリケーションソフトウェアがＰＣＩインタフェースＡＳＩＣ２０を制御しその動作状況を監視する際に要求されるものである。ＰＣＩマスタロジック６４はＤＭＡロジック７２に対してマスタ機器としてＰＣＩバス２４上でのデータ送信を開始する機能を提供する。ＰＣＩ構成制御ならびに状態レジスタ６８は、ＰＣＩインタフェースＡＳＩＣ２０の構成およびプログラミングを行うためのパーソナルコンピュータシステム１２アプリケーションソフトウェアで使用可能である。これはＰＣＩが要求する制御および基本レジスタを含み、同様にＰＣＩインタフェースＡＳＩＣ２０用の割り込み制御および状態信号ならびにその他の制御ならびに状態レジスタをも含む。ローカルバスインタフェースロジック７０はＲＡＭ，ＲＯＭ、補助機能、ズームビデオポート、および４つのＧＰＩＯインタフェースとインタフェースしかつ制御するための補助ポートを含む。更に、シリアルＥＰＲＯＭインタフェース６２は、ＰＣＩが必要とするある種の構成データと一定のシステム制御レジスタ情報とを電源投入後に提供する。
【００２８】
シリアルＥＰＲＯＭインタフェース６２はＰＣＩインタフェースＡＳＩＣ２０とシリアルＥＰＲＯＭ２２（図１）との間の通信を提供する。電源投入時、シリアルＥＰＲＯＭインタフェース６２はＰＣＩ構成レジスタ６８の僅かな部分をシリアルＥＰＲＯＭ２２から初期化する。シリアルＥＰＲＯＭ状態機械がシリアルＥＰＲＯＭ２２にアクセスしている間、全てのＰＣＩスレーブアクセス入力は再試行状態で終了される。
【００２９】
シリアルＥＰＲＯＭ２２はまたＰＣＩ構成制御ならびに状態レジスタ６８用の構成データをも含む。この情報はホストＣＰＵ４４で読み取りおよび書き込みが行われるが、これはシリアルＥＰＲＯＭ２２用制御レジスタを通して２線式シリアルバスプロトコルをエミュレートしている。この２線式シリアルバスはホストＣＰＵ４４から、シリアルＥＰＲＯＭ２２出力可能化ビットを”１”の値に設定するように操作され、続いて２線式シリアルバスプロトコルをエミュレートするためにデータおよびクロックビットにアクセスする。ＰＣＩ構成制御ならびに状態レジスタ６８はタイマビットを含み、これは２線式シリアルバスプロトコル事象のタイミングを取るための時間基準を提供する。
【００３０】
ＰＣＩマスタロジック６４はＰＣＩインタフェースＡＳＩＣ２０がＰＣＩバス２４をマスタ機器として操作するために必要な制御を実行する。このロジックはメモリ読み取り、メモリ書き込み、メモリ読み取り線、メモリ書き込み線、および書き込み無効命令操作を可能とする。メモリ読み取り機能に関して、ＰＣＩインタフェースＡＳＩＣ２０のＤＭＡ読み取り操作の結果、ＰＣＩバス上にメモリ読み取り線命令によるメモリ読み取りが行われる。メモリ書き込み操作に関して、ＰＣＩインタフェースＡＳＩＣ２０ＤＭＡ書き込み操作の結果ＰＣＩメモリ書き込みが行われるか、ＰＣＩバス上にメモリ書き込み線命令またはメモリ書き込み無効命令が出される。
【００３１】
ＰＣＩスレーブロジック６６はＰＣＩインタフェースＡＳＩＣ２０がＰＣＩバスをスレーブ機器として操作するために必要な制御ロジックを実行する。可能化されるとＰＣＩスレーブ機能６６は６８に含まれる基本アドレスレジスタで指定されるＰＣＩメモリアドレス範囲での、メモリ読み取りまたは書き込み命令に応答する。ＰＣＩスレーブロジック６６は、その他の制御レジスタ内のスレーブバーストビットで可能化された際に、スレーブバースト転送を実行する。ＰＣＩスレーブロジック６６はその他の制御レジスタ内の制御ビットで可能化された際に、宛先指定書き込み操作を実行する。
【００３２】
ＰＣＩ構成制御ならびに状態レジスタ６８はシステムおよびアプリケーションソフトウェアに対して、ＰＣＩインタフェースＡＳＩＣ２０のＰＣＩ演算構成を実行する機能を提供する。
【００３３】
ローカルバスインタフェースロジック７０は、共通ロジックを共有する特殊入出力ポートグループを提供する。これらのポートはＰＣＩバス２４またはＤＭＡエンジン７４のいずれからもアクセス可能である。これらのポート上の外部機器はマスタ機器として機能することは出来ない。これらのポートはＰＣＩインタフェースＡＳＩＣ２０を外部機器またはインタフェースに接続し、この様な機器との間に自動データ転送を行うことを可能としている。ズームビデオバスインタフェースを除く全てのローカルバスインタフェースは、ローカルクロックに同期しており、これはＰＣＩクロックから提供されるものである。ＺＶポートクロックはＰＣＩクロック、ＩＥＥＥ１３９４クロック、または外部クロックに基づいてプログラムされている。
【００３４】
ローカルバスインタフェースロジック７０は共有ローカルアドレスバスを提供し、これは本発明では１６ビットアドレスバス、共有８ビットまたは１６ビット読み取りまたは書き込みデータバスであり、プログラム可能待ち状態および準備完了条件を具備したものである。ローカルバスアドレスおよびデータバスはＲＯＭ，ＲＡＭ，ＡＵＸ，およびズームポート機能の中で共有されている。ＺＶ出力ポートは水平同期、垂直同期データ有効、およびＺＶ−ＰＩＸＥＬ．ＣＬＲ．を提供する。ローカルバスインタフェースロジック７０用のその他の入出力は４つの汎用Ｉ／Ｏ（ＧＰＩＯ）ピンを含み、これはプログラム可能方向および極性機能を実現する。ローカルバスインタフェースロジック７０の本実施例に於けるその他の信号としては、ローカルバスクロック出力、リセット出力、割り込み入力、そして外部準備完了入力が含まれる。ＰＣＩ構成制御ならびに状態レジスタ６８はローカルバスインタフェースロジック７０の動作を構成する上で必要な制御命令ならびに情報を提供する。
【００３５】
ＰＣＩインタフェースＡＳＩＣ２０はリモートプログラムロード（ＲＰＬ）読み取り専用メモリ（ＲＯＭ）を含み、これはパーソナルコンピュータ１２に対して付属のＲＰＬ  ＲＯＭからブートコードを読み取る機能を提供する。これによりたとえシステムが特定のＩＥＥＥ１３９４ブートコードを電源リセット時に喪失していたとしても、システムをＩＥＥＥ１３９４機器からブートすることが可能となる。更に、ＲＯＭインタフェースを汎用化してＲＰＬ  ＲＯＭにアクセスするだけではないその他の機能を提供するようにも出来る。ローカルバスインタフェースロジック７０はＰＣＩスレーブおよび内部ＤＭＡが、フラッシュＰＲＯＭ３６、ＳＲＡＭ３８ならびにその他の図１に示されるＲＡＭ相当機器の様な機器へ読み取り／書き込みアクセスすることをサポートする。ＲＯＭへのアクセスはＰＣＩ構成制御ならびに状態レジスタ６８で制御され、ＲＯＭ基本アドレスレジスタの最下位ビットに１を書き込むことにより可能化される。ＲＯＭインタフェースは８ビットまたは１６ビット幅データのいずれかで、指定された数の待ち状態または同様機能として構成できる。ＲＯＭオプションは電源リセット時にシリアルＥＰＲＯＭ２２経由で構成されＰＣＩスレーブアクセス経由で入力される。
【００３６】
ＲＡＭインタフェースはＰＣＩ構成制御ならびに状態レジスタ６８内の第二ＰＣＩメモリに基づくレジスタを通してアクセスされる。このメモリはＤＭＡ制御構造またはデータバッファまたは、ディジタル信号処理装置の様なその他の機能への共有メモリインタフェースとして使用できる。ＲＡＭインタフェースは８ビットまたは１６ビット幅データのいずれかで、指定された数の待ち状態または外部準備完了調歩として構成できる。
【００３７】
補助インタフェースは汎用入出力ポートであって、これはＰＣＩ構成制御ならびに状態レジスタ６８内の第三ＰＣＩメモリベースアドレスレジスタを通してアクセスされる。このポートは圧縮／伸長（decompression ）ロジックまたはビデオプロセッサ／フレームバッファの様な外部専用資源への高速データ経路を実現するために使用される。もしもＺＶポートが可能化されていると、ＡＵＸアドレス空間の１つのポートがそのＺＶポートに写像される。それ以外の場合は、この空間は提出された実施例の補助アドレスベースの一部として利用可能である。本実施例に於いて補助インタフェースは８ビットまたは１６ビット幅データのいずれかで、指定された数の待ち状態または外部準備完了調歩として構成できる。
【００３８】
ＦＩＦＯロジックは提出された実施例では単一の２５６ｘ３３でクロックを掛けられた二重ポートＲＡＭの回りに設計されており、３つの論理ＦＩＦＯに分割されている。各々のＦＩＦＯは０から２５６ワードのサイズでプログラムされている。与えられたＦＩＦＯサイズの組み合わせに対して、３つのＦＩＦＯサイズの合計は２５６ワード以下でなければならない。
【００３９】
汎用受信ＦＩＦＯ（ＧＲＦ）８０は読み取りおよび書き込みポインタ対を含み、ＦＩＦＯ二重ポートＲＡＭへアクセスする際に使用される。各々のポインタは０からそのfifo＿size＿value 引く１の範囲で計数する。各々のポインタに対するＦＩＦＯ  ＲＡＭアドレス指定範囲は、オフセット値を生成するロジックによって設定される。そのオフセットをポインタの値に加算して、ＲＡＭアドレスの唯一無二の範囲に写像されるようにする。動作中のＤＭＡチャンネルは読み取りポインタを使用して、ＲＡＭのＰＣＩ側から非同期または等時間間隔パケットを読み取り、それらをホストメモリの中に書き込む。書き込みポインタはＩＥＥＥ１３９４受信機で使用され、ＩＥＥＥ１３９４バス上に受信された、非同期または等時間間隔パケットをＦＩＦＯ  ＲＡＭのリンク側に書き込む。２つのポインタはＦＩＦＯ  ＲＡＭの両側で同期化ロジックを通して通信されるが、これはＦＩＦＯ二重ポートＲＡＭの両側が異なるクロック領域に存在するからである。
【００４０】
非同期送信ＦＩＦＯ８２はＦＩＦＯ二重ポートＲＡＭへアクセスするための読み取りおよび書き込みポインタ対を含む。各々のポインタは０からそのfifo＿size＿value 引く１の範囲で計数する。各々のポインタに対するＦＩＦＯ  ＲＡＭアドレス指定範囲は、オフセット値を生成するロジックによって設定される。そのオフセットをポインタの値に加算して、アドレスの唯一無二の範囲に写像されるようにする。動作中のＤＭＡチャンネルは書き込みポインタを使用して、ホストメモリから非同期パケットを読み取り、それをＲＡＭのＰＣＩ側の中に書き込む。読み取りポインタはＩＥＥＥ１３９４送信機で使用され、これは読み取りポインタを用いて非同期パケットをＦＩＦＯ  ＲＡＭのリンク側から読み取り、それをＩＥＥＥ１３９４バス上に送信する。二つのポインタはＦＩＦＯ  ＲＡＭの両側で同期化ロジックを通して通信されるが、これはＦＩＦＯ二重ポートＲＡＭの両側が異なるクロック領域に存在するからである。
【００４１】
等時間間隔送信ＦＩＦＯ８４はＦＩＦＯ二重ポートＲＡＭへアクセスするための読み取りおよび書き込みポインタ対を含む。各々のポインタは０からそのfifo＿size＿value 引く１の範囲で計数する。各々のポインタに対するＦＩＦＯ  ＲＡＭアドレス指定範囲は、オフセット値を生成するロジックによって設定される。そのオフセットをポインタの値に加算して、アドレスの唯一無二の範囲に写像されるようにする。動作中のＤＭＡチャンネルは書き込みポインタを使用して、ホストメモリから等時間間隔パケットを読み取り、それをＦＩＦＯ  ＲＡＭのＰＣＩ側の中に書き込む。ＩＥＥＥ１３９４送信機は読み取りポインタを用いて等時間間隔パケットをＦＩＦＯ  ＲＡＭのリンク側から読み取り、それをＩＥＥＥ１３９４バス上に送信する。読み取りおよび書き込みポインタはＦＩＦＯ  ＲＡＭの両側で同期化ロジックを通して通信されるが、これはＦＩＦＯ二重ポートＲＡＭの両側が異なるクロック領域に存在するからである。
【００４２】
ポインタ二重ポートアドレス写像ロジック８６はＦＩＦＯサイズレジスタから３つのサイズ値を使用して、各々のＦＩＦＯ読み取り書き込みポインタ対をＦＩＦＯ二重ポートＲＡＭ内の唯一無二のアドレス範囲に写像する。ポインタアドレス写像機能は下記の表に示される式に基づいて生成される：
【表１】
0003967792.tif 000002
【００４３】
ＦＩＦＯ制御ならびに状態レジスタ８８はＦＩＦＯロジック７８の制御ならびに状態レジスタセットを実行する。ＦＩＦＯ制御ならびに状態レジスタ８８は各々の論理ＦＩＦＯのサイズを設定するためのＦＩＦＯサイズレジスタを含む。このレジスタは３つのサイズのパラメータを具備し、等時間間隔送信ＦＩＦＯ８４、非同期送信ＦＩＦＯ８２および汎用受信ＦＩＦＯ８０のサイズをプログラムする。このレジスタはＰＣＩスレーブ６６読み取りまたは書き込み操作を介してアクセスされる。ＰＣＩ側ＦＩＦＯポインタ書き込み読み取りポートはソフトウェア用のＰＣＩスレーブ６６書き込み読み取りポートを具備し、これはＰＣＩ側ポインタの現在値を取り込んだりまたはそこに値を書き込むためのものである。リンク側ＦＩＦＯポインタ書き込み読み取りポートはソフトウェア用のＰＣＩスレーブ読み取りポートを具備し、これはリンク側ポインタの現在値を取り込んだりまたはそこに値を書き込むためのものである。汎用受信ＦＩＦＯポップ・プッシュポートは３２ビットスレーブ書き込みを受信し、ＧＲＦ８０の先頭にプッシュされるデータクウォドレット（data quadlet）とする。このポートからの３２ビットスレーブ読み取りは、ＧＲＦ８０の先頭からデータクウォドレットをポップオフさせる。非同期送信ＦＩＦＯポップ・プッシュポートはこのポートへの３２ビットスレーブ書き込みを受信し、非同期送信ＦＩＦＯの先頭へプッシュされるデータクウォドレットとする。このポートからの３２ビットスレーブ読み取りは、非同期送信ＦＩＦＯ８２の先頭からデータクウォドレットをポップオフさせる。等時間間隔送信ＦＩＦＯポップ・プッシュポートはこのポートへの３２ビットスレーブ書き込みを受信し、等時間間隔送信ＦＩＦＯ８４の先頭へプッシュされるデータクウォドレットとする。このポートからの３２ビットスレーブ読み取りは、等時間間隔送信ＦＩＦＯ８４の先頭からデータクウォドレットをポップオフさせる。ＦＩＦＯ制御トークン状態読み取りポートはスレーブ読み取りを具備し、先にアクセスされた３つのＦＩＦＯの１つからポップされた最後のデータクウォドレットのビット３３の値を戻す。ＦＩＦＯ診断テストならびに制御レジスタはソフトウェア用ＰＣＩスレーブ読み取り書き込みポートを具備し、診断テストおよびその動作を制御するためのＦＩＦＯロジックを構築する。また、送信ＦＩＦＯ閾値レジスタはソフトウェア用ＰＣＩスレーブ読み取り書き込みポートを具備し、非同期および等時間間隔送信ＦＩＦＯ用の送信閾値を設定する。
【００４４】
ＣＲＣロジック１００は種々の機能を実施するロジックを実行し、これらには送信機ロジックで生成されたパケットデータストリームのヘッダ部分上での３２ビット自動ＤＩＮ  ＣＲＣエラーコードの生成が含まれる。送信機はこのコードをヘッダ後部のデータストリームの中に挿入する。データペイロードを有するデータパケットに関しては、ＣＲＣロジック１００は３２ビット自動ＤＩＮ  ＣＲＣエラーコードを、送信機ロジックで生成されたパケットストリームのデータペイロード部分の上に生成する。送信機はこのコードをパケットストリームの終わりに挿入する。ＣＲＣロジック１００は３２ビット自動ＤＩＮ  ＣＲＣエラーコードを入力されるパケットデータストリームのヘッダ部分の上に生成する。もしも計算されたコードがパケットと共に送られたヘッダＣＲＣコードに等しい場合は、受信機はヘッダが正しいと判断する。更に、ＣＲＣロジック１００は３２ビット自動ＤＩＮ  ＣＲＣエラーコードを入力されるパケットデータストリームのペイロード部分の上に生成する。もしも計算されたコードがパケットと共に送られたデータＣＲＣコードに等しい場合は、受信機はデータペイロードが正しいと判断する。
【００４５】
１３９４リンク層ロジック９０はＩＥＥＥ１３９４リンク層制御ロジック（ＬＬＣ）をＩＥＥＥ１３９４−１９９５標準で規定された通りに実行する。この機能はＩＥＥＥ１３９４パケットデータのＦＩＦＯロジック７８とその他のＩＥＥＥ１３９４バス上の機器との間での送受信を制御する。
【００４６】
１３９４リンク層制御ならびに状態レジスタ９２はアプリケーションソフトウェアで要求される、ＬＬＣの動作を制御しその動作を監視するための、制御ならびに状態レジスタロジックを実行する。１３９４バス番号・ノード番号レジスタはアプリケーションソフトウェアがバスならびにノード番号をプログラムするためのインタフェースを提供する。１３９４リンク層制御レジスタはアプリケーションソフトウェアがＬＬＣの動作モードを制御するためのインタフェースを提供する。１３９４リンク層割り込み状態レジスタはアプリケーションソフトウェアがＬＬＣで生成された割り込み原因を解読するためのインタフェースと、この割り込み状態を解消するための機構とを提供する。１３９４リンク層割り込み可能化レジスタはアプリケーションソフトウェアが割り込み状態レジスタ内の状態ビットを選択的に可能化してＬＬＣ割り込みを生成したり、またはＬＬＣ割り込みを生成することを不能化するためのインタフェースを提供する。１３９４サイクルタイマレジスタはアプリケーションソフトウェアがサイクルタイマに初期値をプログラムしたりまたはその現在値を読み込むためのインタフェースを提供する。ＬＬＣがサイクルマスタとして動作しているときは、このタイマはパケットの送信を開始する周期を１２５マイクロ秒毎に時間決めするために使用される。１３９４物理層アクセスレジスタはアプリケーションソフトウェアが物理層インタフェース１８制御ならびに状態レジスタへのデータの書き込みまたはそこからのデータの読み取りを行うためのインタフェースを提供する。
【００４７】
１３９４診断テスト制御レジスタはアプリケーションソフトウェアが１３９４ＬＬＣロジックの診断テストを実施するためのインタフェースを提供する。１３９４リンク層制御ならびに状態レジスタ９２はまた、ＤＭＡチャンネル４−０ワード０受信パケット比較値レジスタを含む。各々のレジスタにはＤＭＡチャンネル比較器ロジック機能が割り当てられている。ＤＭＡチャンネル比較器は比較値レジスタ内で選択された組のビット位置と、入力パケットの第一データクウォドレット（ワード０）の対応するビット位置との一致を取る。一致を取るビット位置はワード０受信パケット比較マスクレジスタ内に含まれるマスク値で指定される。ＤＭＡチャンネル４−０ワード０受信パケット比較マスクレジスタは、対応するＤＭＡチャンネル比較器に割り当てられる。ＤＭＡチャンネル比較ロジックはこのレジスタ内のマスク値を使用して、ワード０内のビット位置を選択し、これがワード０受信比較値レジスタ内の対応するビット位置に対して一致が取られる。ＤＭＡチャンネル４−０ワード１受信パケット比較値レジスタはＤＭＡチャンネル比較器ロジック機能に割り当てられる。ＤＭＡチャンネル比較器は比較値レジスタ内で選択された組のビット位置と、入力パケットの第二データクウォドレット（ワード１）の対応するビット位置との一致を取る。一致を取るビット位置はワード１受信パケット比較マスクレジスタ内に含まれるマスク値で指定される。またＤＭＡチャンネル４−０ワード１受信パケット比較マスクレジスタは対応するＤＭＡチャンネル比較器に割り当てられる。ＤＭＡチャンネル比較ロジックはこのレジスタ内のマスク値を使用してワード１内のビット位置を選択し、これがワード１受信比較値レジスタ内の対応するビット位置と一致が取られる。
【００４８】
更に、１３９４リンク層制御ならびに状態レジスタ９２は、ビジー再試行計数レジスタを含み、その内容は１３９４送信機が送り先ノードからビジー肯定確認が受信された際に、非同期パケット送信を再試行すべき回数を指定している。このレジスタはアプリケーションソフトウェアからＰＣＩスレーブアクセスによって読み書きされる。ビジー再試行時間間隔レジスタは、ビジー肯定確認信号が各々の試行に対して受信された際に送信機が後続の再試行との間で遅延すべき時間間隔を含む。このレジスタはアプリケーションソフトウェアからＰＣＩスレーブアクセス経由で読み書きされる。また、状態機械ベクトルレジスタがあって、これはソフトウェアに対してＬＬＣに組み込まれている各々の状態機械の状態ベクトルを監視する機能を与える。更に、ＦＩＦＯエラー計数器はパケット送信中に非同期および等時間間隔送信ＦＩＦＯ８２，８４で生じる未達（under-run ）とパケット受信中にＧＲＦ８０で生じる超過（over-run）とを計数する。
【００４９】
パケット受信機制御ロジック１０２は入力されるＩＥＥＥ１３９４パケットを受信するために必要なロジックを実行する。受信機制御ロジックはＩＥＥＥ１３９４−１９９５で規定された詳細な機能要求に合致している。これらはバスおよびノードＩＤレジスタそして／またはＤＭＡチャンネル受信パケット比較器を使用して入力された非同期または等時間間隔パケットを受信すべきかの判断を行うための下記の機能を含む。ＣＲＣロジック機能はヘッダＣＲＣをチェックして入力パケットが正しく受信されているかの確認を行う。もしもパケットがペイロードを有する場合、データＣＲＣがチェックされそのパケットがアドレス指定およびＣＲＣチェックを通過すると、受信されたパケットはＧＲＦ８０の中にロードされる。パケット受信機制御ロジック１０２は非同期受信パケット上に肯定確認を生成する。
【００５０】
周期タイマロジック９６は周期タイマ機能を実施するためのロジックを実行する。周期タイマロジック９６はＩＥＥＥ１３９４−１９９５標準で規定されている周期タイマ機能の要求に合致する。周期タイマは周期計数器と周期オフセットタイマとを含む。オフセットタイマは自由計時、または選択信号ピン上で低から高へ再ロードされるか、または受信機からの再ロード値を取るかであるが、これは１３９４ＬＬＣ制御ならびに状態レジスタ９２内の周期マスタおよび周期ソースビットの状態に基づいて選ばれる。周期タイマは等時間間隔データ転送を支援するように使用される。周期時間は３２ビット幅である。本実施例に於いて、低位１２ビットは３０７２を法とする計数器（modulo 3072 counter ）として計数し、これは２４．５７６ＭＨｚクロック周期、または（４０．６９ナノ秒）毎に更新される。次の高位の１３ビットは８ｋｈｚ（または１２５マイクロ秒）を計数し、最高位７ビットは秒単位で計数する。
【００５１】
周期監視ロジック９４は周期監視機能を実施するためのロジックを実行する。周期監視ロジック９４は等時間間隔データ転送を支援し、ＬＬＣ動作を監視して等時間間隔動作のスケジュールを取り扱う。周期監視ロジック９４が周期開始パケットを受信するかまたは送信すると、周期監視ロジック９４はこれらの事象の発生を、周期開始または周期受信割り込みを生成することにより表示する。周期監視ロジック９４はまた周期開始パケットの喪失も検出し、周期喪失割り込みを生成する。等時間間隔周期が完了すると、周期監視ロジック９４は周期完了割り込みを発する。周期監視ロジック９４は送信機に信号を発して周期開始パケットを送らせるが、これは周期マスタ可能化ビットが１３９４ＬＬＣ制御ならびに状態レジスタ９２内で発せられた時である。
【００５２】
１３９４パケット送信制御ロジックはＩＥＥＥ１３９４パケットを非同期送信ＦＩＦＯ８２または等時間間隔送信ＦＩＦＯ８４のいずれかから、物理リンクインタフェースロジック１０４へＩＥＥＥ１３９４バス上を送信させるための動きを制御するためのロジックを実行する。送信制御ロジック９８はＩＥＥＥ１３９４−１９９５標準の中で規定された機能要求に合致する。パケット送信制御ロジック９８は送信パケット形式にフォーマットする。
【００５３】
１３９４パケット送信制御ロジック９８はクウォドレットを非同期送信ＦＩＦＯ８２から引き出し、これらを正しく３２ビットパラレル１３９４非同期パケットストリームにフォーマットする。制御ロジック９８は等時間間隔送信ＦＩＦＯ８４から引き出し、これらを正しく３２ビットパラレル１３９４等時間間隔パケットストリームにフォーマットする。ＣＲＣロジックを用いてパケットのヘッダおよびペイロード部分用のＣＲＣコードを計算し、制御ロジック９８はＣＲＣコードをパケットストリームの時間スロットの中に送信されるパケットの形式からの要求に従って挿入する。１３９４パケット送信制御ロジック９８はパラレルパケットストリームを物理リンクインタフェースロジックに入力し、物理インタフェースに送信するためにパラレルからシリアルデータストリームフォーマットに変換する。
【００５４】
１３９４パケット送信制御ロジック９８は、ＬＬＣが周期マスタとして動作するようにプログラムされている時には、周期開始パケットを送信する。１３９４パケット送信制御ロジック９８は１３９４送信バス要求を物理インタフェースに送信する。物理インタフェース層はバスに対して調停を行い、バスの許可が受信されると送信を開始するために送信機に対して指示を送る。１３９４パケット送信制御ロジック９８は、ビジー確認が非同期送信パケットへの応答として戻された時に、再試行送信をＩＥＥＥ１３９４−１９９５標準で規定されている単相再試行Ｘプロトコルを使用して実行する。更に、１３９４パケット送信制御ロジック９８はパケット送信速度を設定する。
【００５５】
物理リンクインタフェースロジック１０４はＰＣＩインタフェースＡＳＩＣ２０を物理層チップにインタフェースさせるロジックを実行する。物理リンクインタフェースロジック１０４はＩＥＥＥ１３９４−１９９５標準内のリンク物理インタフェース仕様の要求に合致している。この機能はＰＣＩインタフェースＡＳＩＣ２０に物理層サービスへのアクセスを提供する。物理リンクインタフェースロジック１０４は送信機からのパケット速度コードを使用し、生成させるシリアルデータストリームの数を選択する。速度コードが１００ｍｂｐｓに設定されている場合はパラレルデータストリームは、各々が５０ｍｂｐｓで送信する２本のシリアルデータストリームに変換される。速度コードが２００ｍｂｐｓに設定されている場合はパラレルデータストリームは、各々が５０ｍｂｐｓで送信する４本のシリアルデータストリームに変換される。物理リンクインタフェースロジック１０４は物理インタフェースが受信する速度表示を使用して、物理インタフェースからの入力シリアルデータストリームを受信制御ロジックへの入力のパラレルデータストリームに変換する。いかなる入力パケットに対しても、物理インタフェースはパケットが１００ｍｂｐｓで受信された場合はＰＣＩインタフェースＡＳＩＣ２０への２本のシリアルデータストリームを生成し、もしも２００ｍｂｐｓで受信された場合は４本のシリアルデータストリームを生成する。シリアルデータストリームは各々５０ＭＨｚでクロックがかけられている。物理リンクインタフェースロジック１０４は物理インタフェースからのシリアル状態応答を受信し、それらをパラレル形式に変換する。状態応答は物理インタフェース割り込み表示そして／または戻りデータを物理インタフェースレジスタ読み取りアクセス要求に応答して搬送する。物理リンクインタフェースロジック１０４はシリアル肯定確認パケットを検出しかつ受信し、これらをパラレルフォーマットに変換する。更に、物理リンクインタフェースロジック１０４は送信機パケット送信要求または物理インタフェースレジスタ読み取り書き込みアクセス要求を受領し、これらを物理インタフェースへの送信用にシリアル要求ストリームにフォーマットする。更に、物理リンクインタフェースロジック１０４はオプションとして物理インタフェースとＰＣＩ−ＬＹＮＸ機器との間の電気的等時間間隔バリアとして動作する。
【００５６】
ＤＭＡロジック７２はＰＣＩマスタロジック６４を使用してＰＣＩバス２４を獲得し、マスタ機器として機能する。ＤＭＡロジック７２はＤＭＡエンジン７４を含み、これは優先順位時間多重分割されている共通状態機械を含む。ＤＭＡエンジンはまた、割り当てられた優先順位レベルに基づいてチャンネルを動作させるための調停ロジックをも含む。更に、ＤＭＡ制御ならびに状態レジスタ７６は各々のＤＭＡチャンネルに対してＰＣＩスレーブ６６と共にデータ経路制御を提供し、これらのレジスタへＰＣＩインタフェースＡＳＩＣ２０からのアクセスを行う。
【００５７】
ＤＭＡエンジン７４は状態機械ロジックを実行し、ＰＣＬから制御パラメータおよびデータバッファポインタを取り込む。状態機械ロジックまたはパケット処理装置はこれらのパラメータを使用して、データバッファ相互間のデータ転送を制御する。
【００５８】
図３は１３９４パケット受信ロジック１０２内に含まれるヘッダ比較ロジックを図示し、これは３２ビットパケットデータストリーム１０６を物理リンクインタフェースロジック１０４から受信する。３２ビットパケットデータストリーム１０６はＩＥＥＥ１３９４パケット受信機ロジック１０２と、参照番号１１０で示されているヘッダ比較ロジックとに入る。またＰＣＩスレーブ６６は３２ビット読み取り／書き込みアクセスを番号１１０に含まれる比較器制御レジスタに提供する。線１１７はＤＭＡチャンネル０に対するヘッダ比較一致出力を示す。線１１９はＤＭＡチャンネル１に対するヘッダ比較一致を示す。線１２１はＤＭＡチャンネル２に対するヘッダ比較一致を示す。線１２３はＤＭＡチャンネル３に対するヘッダ比較一致を示す。これらの出力の各々は優先順位符号化器１２８ならびに論理ＯＲ回路１２９に入る。優先順位符号化器１２８は、ＤＭＡチャンネル出力１３０を生成し、これは１３９４受信機ロジック１０２に入る。論理ＯＲ回路１２９は受信機制御ロジックに比較器一致信号を提供し、０は一致が無いことを示し、または１は一致があることを線１３２に示し、これは１３９４受信機ロジック１０２に入る。
【００５９】
ＤＭＡエンジン７４は五つ（５）またはそれ以上の独立したＤＭＡチャンネルをとして描かれており、これらは全て同時に動作する。実際に実施する場合は１つの主制御状態機械を使用し、時間に対してＤＭＡチャンネルの間を多重分割する。優先順位監視等時間間隔ロジックは連続的に全てのチャンネルの現在の内容を調査し、状態機械に対して実行が保留されている動作を有するチャンネルに最高位の優先順位を割り当てる。
【００６０】
図４は図３で説明した一般的概念を更に詳細に図示したものである。図４に於いて、受信データ１０６は、ワードＷＤ０，ＷＤ１を有するヘッダデータ１０８を含む。ワードＷＤ０，ＷＤ１はロジック１１０のＮ個のＤＭＡチャンネルヘッダ比較ブロックの各々に具備されている（例えば、図３の４つのチャンネル０〜３）。ロジック１１０内の各ＤＭＡチャンネルに対するＤＭＡヘッダ比較レジスタは回路内での命令を含み、これは１０８に於けるヘッダＷＤ０と選択レジスタ内容１２０および制御値ロジック１２２との合致を比較する。同様に、１０９に於けるＷＤ１は図に示されるように比較命令を用いてレジスタ１２４の内容および選択レジスタ１２６の内容と比較される。ＤＭＡヘッダ比較レジスタおよびロジックの出力はチャンネル選択［０］からチャンネル選択［Ｎ−１］として表される。図４は更に、優先順位符号化器１２８がチャンネル選択出力を受信してチャンネル番号をＤＭＡチャンネル選択線１３０に生成し、アドレス合致出力１３２を出力する様子を図示している。図３ならびに添付の文章が説明するように、ＤＭＡチャンネル選択出力１３０およびアドレス合致出力１３２はＩＥＥＥ１３９４パケット受信機ロジック１０２に流れている。
【００６１】
ＤＭＡヘッダ比較レジスタおよびロジック１１０ならびに優先順位符号化器１２８は、入力されたパケットが受領されてＧＲＦ８０にロードされるべきものであるかを判断するのに必要なロジックを実行する。図３は４つのＤＭＡチャンネルを示しており、５つまたはそれ以上のＤＭＡチャンネルも本発明の範囲内である。各ＤＭＡヘッダ比較レジスタおよびロジック１１０は１つのＤＭＡチャンネルを担当するように割り当てられている。１つの比較器はＷＤ０フィールド選択レジスタ１２２、ＷＤ１選択レジスタ１２６、ＷＤ０比較値レジスタ１２０、ＷＤ１比較値レジスタ１２４および比較等時間間隔ロジックを含む。２つのフィールド選択マスクレジスタは入力パケットのＷＤ０およびＷＤ１内のビットフィールドを特定し、これは予想される値と比較器ロジックによって合致される。２つの比較値レジスタは予想されるビットパターンを特定し、これは入力パケットのワード０およびワード１内の選択されたビットフィールドに対して合致される。優先順位符号化器１２８はＤＭＡチャンネル合致表示を各ＤＭＡヘッダ比較レジスタおよびロジック１１０から収集し、入力パケットを特定のＤＭＡチャンネルに写像するためのビットコードを生成する。ＯＲ論理回路１２９はＤＭＡヘッダ比較レジスタおよびロジック１１０からの選択表示を組み合わせて、ＩＥＥＥ１３９４受信機ロジック１０２に対して単一の比較器合致表示を生成する。ＩＥＥＥ１３９４受信機ロジックはＤＭＡチャンネル番号、そして比較器合致表示を使用して入力パケットをＧＲＦ８０に受け入れるべきかの判断を行う。
【００６２】
本実施例に於いて、ＤＭＡパケット処理装置は全てが同時に実行される独立のＤＭＡチャンネルとして動作する。実際に実現する場合は１つの主制御状態機械を用い、これが複数のＤＭＡチャンネル（例えば、５つのＤＭＡチャンネル）の間で多重時間分割する。優先順位監視等時間間隔（superisochronous）ロジックは、全チャンネルの現在の内容を連続的に調べそのチャンネルに対して保留中の機能の中の最高位の優先順位を割り当てて、状態機械が実行するようにする。ＤＭＡチャンネルはリセットの後静的状態に初期化し、この状態でパケット制御リスト開始アドレスレジスタに書き込まれるべき有効ＰＣＬポインタ、ならびにＤＭＡ制御レジスタに設定されるべきチャンネル可能化およびリンクビットを待っている。有効ＰＣＬポインタはパケット制御リスト開始アドレスレジスタのビット零の状態で判断される。１は無効アドレスを示し、０は有効アドレスを示す。続いてＤＭＡはパケット制御リスト開始アドレスレジスタで指し示されるアドレスに行き、新たなアドレスを取ってきて、有効の場合はこれを現ＰＣＬアドレスとして実行を開始する。
【００６３】
もしもこのアドレスが無効の場合は、リンクビットがＤＭＡ制御レジスタ内で消去され、ＤＭＡ停止割り込みが、このチャンネルに対して割り込み状態レジスタ内の関連する状態と共に生成され、チャンネルは動作停止状態となる。この機構はＰＣＬメモリ構造上の健全性チェックを提供し、同様に次のアドレスリンクが喪失された場合にチャンネルＰＣＬ実行を継続する比較的簡単な方法を提供する。有効な次ＰＣＬアドレスが検出されると、ＤＭＡはＤＭＡ制御レジスタ内にＢＵＳＹビットを立てＰＣＬオフセット部の第一制御ワードを取ってくる。続いてその命令が受信か、送信か、ＰＣＬとローカルバスのどちら向きであるか、または補助命令であるかの判断をするためのチェックが行われる。優先順位符号化器１２８から、どのＤＭＡチャンネルが合致しているかに依存して、合致を有する最高位の優先順位を持つチャンネルが、選択されるべき特定のＤＭＡチャンネルを同定する。
【００６４】
図５は本実施例に基づく、指定されたＤＭＡチャンネルヘッダ比較ロジック１２０の動作の更に詳細を示す。例えば、ワードＷＤ０，ＷＤ１を含む受信データはヘッダ比較ロジック１２０に入る。これはワードＷＤ０のコードセグメント１３４を含み、これは行き先ＩＤ比較ロジック１３６に送られる。ＷＤ０の一部１３８は転送コード比較ロジック１４０へ送られる。ＷＤ０の一部１４２は比較ロジック１４４に送られ、ＷＤ０ビット１５：６および３：０が比較される。更に比較ロジック１４６はＷＤ１の一部１４８として示されているビット３１：１６を受信する。行き先ＩＤ比較ロジック１３６からの比較ロジック出力、転送コード比較ロジック１４０、ＷＤ０ビット３：０とＷＤ０ビット１５：６に作用する比較ロジック１４４、同様にＷＤ１ビット３１：１６に対する比較ロジック１４６出力はＡＮＤ機能１５０へ入力される。ＡＮＤ機能１５０の出力はチャンネル選択出力［ｘ］であり、これはチャンネル選択［０］からチャンネル選択［Ｎ−１］であって、先に説明したように優先順位符号化器１２８はこれを受信してＤＭＡチャンネル選択信号１３０とアドレス合致信号１３２とを生成する。
【００６５】
図６、７、８および９はＤＭＡチャンネルヘッダ比較ロジック１２０へ送られる受信データビットの詳細を示す。特に図６は非同期ヘッダ１６２の［７：４］を含む転送コード１６０を示す。同様に転送コードビット１６４は等時間間隔ヘッダ１６６のビット［７：４］を形成する。指定されたＤＭＡチャンネルに於いて、合致データの組１６８はヘッダＷＤ０１６２に対応するＷＤ０合致データヘッダ１７０とヘッダ１６６に対応する選択合致データ組１７２とを含む。図６に示すように、［７：４］比較ビット１７４は比較選択ＷＤ０１７２の［７：４］ビット１７６で変更されて、受信ヘッダＷＤ０ビット［７：４］に対する合致結果を判定する。この比較等時間間隔の出力は、その他の部分比較等時間間隔結果とＡＮＤが取られ、特定ＤＭＡチャンネルに対する合致値１１７を決定する。
【００６６】
図６は特定フィールドに関する、考えられるターゲットデータ値配列を示す。本発明は受信データを一度に１つのフィールドで取り込み、比較ワードと選択ワードとを設定して特定の結果を受け取るために考えられる方法を示すように試行する。特に、図６は転送コード１６０フィールドに関する同時比較を示す。転送コード１６０または転送コード１６４の１つは演算コードを提供し、これは受信データバス１６および１３９４シリアルデータ上のデータ型式を、等時間間隔または非同期データとして識別する。図６に示す例では、転送コードは同一フィールドに存在する。この同時比較は非同期ヘッダおよび等時間間隔ヘッダの両方に同様に働く。等時間間隔および非同期ヘッダを復号するのに異なる方法もあるであろう。それらは図示される様なものであっても良いし、または互いに統合することも可能である。実際のコーディングは様々であろうが、その動作は最終的に比較するかしないかと言う点で同様である。
【００６７】
図７は非同期ヘッダ１６２の［３：０］ビット１７８および［１５：８］ビット１８０、同様に等時間間隔ヘッダ１６６の［３：０］同期ビット１８２および［１５：８］チャンネルビット１８４を強調している。ヘッダＷＤ０の［３：０］ビット、一次ビット１７８または同期ビット１８２のいずれかは、１７２で示す比較選択ＷＤ０の［３：０］ビット１８８で修正された、１７０で示すＷＤ０の［３：０］ビット１８６と比較される。更に１７０で示すヘッダＷＤ０の［１５：７］ビット、非同期ヘッダ１６２の［１５：７］ビット１８０または等時間間隔ヘッダ１６６の［１５：７］ビット１８４のいずれかは、１７２で示す比較選択ＷＤ０の［１５：７］ビットで修正された、１７０で示す比較ＷＤ０の［１５：７］ビット１９０と比較される。図７で生じるこれらの合致判定の結果は回路１１０の比較ロジック１４４のＷＤ０ビット［３：０］および［１５：７］に相当する。
【００６８】
図８は更に別の同時比較を示し、ＤＭＡチャンネル比較ロジック１１０の行き先ＩＤ比較ロジック１３６に対応している。非同期ヘッダ１６２は行き先ＩＤビット［３１：１５］を含み、これは参照番号２００で表されている。これらの同一ビット位置、１６６で示すヘッダＷＤ０の［３１：１６］ビットはデータ長ビット［３１：１６］を含み、これは等時間間隔データパケットに対する参照番号２０２で表されている。同様に、個々のリンク層制御レジスタ９２のビット［３１：１６］、ここでは参照番号２０４で示されているものは、ノード番号とバス番号データとを含む。図８は１６２で示す非同期受信ヘッダＷＤ０、または１６６で示す等時間間隔受信ヘッダＷＤ０が、データセット１７２ビット２０８に従って変更されたデータセット１７０ビット２０６の［３１：１６］ビットと合致するかの同時比較を図示している。合致データセット２１０は行き先ＩＤセットビット２１２としてビット［１５：１１］を含む。図８で実行される同時比較に基づいて、ＤＭＡチャンネル番号がロジックブロック１４６の中で導き出され、これはＤＭＡチャンネル比較ロジック１１０のＡＮＤ機能１５０へ送られる。
【００６９】
非同期ヘッダＷＤ０の上位ビット［３１：１６］に、ＩＥＥＥ１３９４標準が行き先識別子を取り扱う方法であるため、特別な意味を持たせることが可能である。例えば、ＩＥＥＥ１３９４符号化はブロードキャスト形式のメッセージを異なるヘッダに指定する。受信機ヘッダに関しては、比較ワード０とビット選択ワード０とがあって、これによって特定の受信ヘッダワードを選択することが可能である。加えて、比較選択ワード１［１５：１１］２１２内の各ビットは、個別に特定行き先ＩＤ同時比較式を選択する。
【００７０】
図９は非同期ヘッダ１６２を示し、これは発信元ＩＤビット［３１：１６］を２２０に含む。等時間間隔ヘッダ１６６内のこれらのビット位置２２２は変数データの一部である。ＷＤ１比較ロジック１４６内で、ＤＭＡチャンネル１２０は、２２６で示す比較選択ワード１ビット［３１：１６］に基づいて変更された合致データセット１７０のビット１６〜３１を２２０または２２２で示すヘッダＷＤ１ビット［３１：１６］と比較する。
【００７１】
図１０はレジスタ書き込み回路２５０を示し、任意の個数のデータレジスタビットを一回のレジスタ書き込み操作で書き込むためのものである。回路２５０は任意の個数の同様な回路の内の１つを図示する。各回路は任意の数のデータビットの内の１つの特定ビットを制御する。レジスタ書き込み回路２５０に於いて、汎用Ｉ／Ｏ（ＧＰＩＯ）書き込みデータ入力２５２はデータフリップフロップ２５４に接続されている。データフリップフロップ２５４はまたクロック信号２５６およびＡＮＤ機能２６０からの書き込み可能入力２５８も受信する。ＡＮＤ機能２６０はＧＰＩＯアドレス了承信号２６２、書き込み標準信号２６４およびＧＰＩＯアドレスビット入力２６６を入力とする。ＡＮＤ機能２６０はデータフリップフロップ２５４の書き込み可能ビット２６８に書き込み可能出力２５８を供給する。個々の指定されたアドレスビット２６６がａ１のフリップフロップ２５４のみにそれぞれのＧＰＩＯ書き込みデータ２５２が書き込まれる。
【００７２】
レジスタ書き込み回路２５０はレジスタ内で変更しなければならないビットのみへの書き込みを可能とし、残りのビットの前回値は保存する。レジスタ書き込み回路２５０はまた、ソフトウェアが重要なビットを、読み出し、指定、または特定の動作に関係しないレジスタビットに操作することなく変更出来るようにしている。
【００７３】
レジスタのアドレスが存在する場合、そこに対して書き込み可能ビット２５８、１から４のＧＰＩＯがアドレスフィールドに基づいて書き込まれる。［ＧＰＩＯ］アドレス番号入力２６６内のＡｘはこの書き込みの基本となるアドレスビットを表し、このビットに対して書き込みを行うか否かの判断を行う。書き込みストローブ２６４はこれが書き込み操作であることを告げる。ＧＰＩＯアドレス了承２６２は全レジスタに対しての基本的なアドレス復号信号である。フリップフロップ２５０への書き込み可能入力２５８はＡＮＤ機能の出力である。書き込み可能がアクティブの時、入力書き込みデータ２５２がフリップフロップ２５４に書き込まれ、フリップフロップ出力２７０に出現する。
【００７４】
図１１はアドレスフィールド２７２を示し、これはＧＰＩＯレジスタアドレスビット２７４および個別ビット選択フィールド２７６アドレスビットＡ０，Ａ１，Ａ２，およびＡ３を含み、これはアドレスフィールド２７２内の関連するビットの値、０または１に基づく。アドレスフィールド２７２の最後の二つのビット２７８は通常零の値と考えられる。アドレス２７２の中で最下位の２ビットは零値と仮定されているが、これはバスアーキテクチャの要請である。次のＡ０，Ａ１，Ａ２，およびＡ３と指定されている４ビットは、個別にまたは異なる組み合わせで４ビットのアドレス指定を可能としている。より高位または最上位ビットは、この個別の機能に対して特定または割り当てられている個別のアドレスである。従って固定のビットパターンの組み合わせが存在し、与えられたＧＰＩＯアドレス値のアドレス指定をして、特定のアドレスを選択する。その結果００００から１１１１まで（すなわち、１６の異なる可能な組み合わせ）のアドレスの全配列がアドレス指定出来る。
【００７５】
ＤＭＡ優先順位選択器は、ＰＣＩデータ移動に対して最も緊急の必要性を有するチャンネルの内容を起動するための責任がある。ＤＭＡは主状態機械（ｄｍａ＿ｆｓｍ．ｖ）として構成されており、これは選択されたチャンネルの状態を実行する。選択されたチャンネルは同時に任意のひとつの点の格納された条件の番号を有する。これらの格納された条件はそのコンテクストと呼ばれる。チャンネルのコンテクストの一部は、主状態機械で実行されているその現在の状態である。
【００７６】
状態機械はいくつかの空回り状態を有し、この状態ではチャンネルの実行を継続できるある種の条件が成立するまで待たなければならない。１つの明らかな場合は、有効ＰＣＬアドレスがロードされるまで、チャンネル可能ビットが設定されるまで、またリンクビットが設定されるまでチャンネルがアイドルまたは待機する時である。別の場合は、受信チャンネルが受信ＦＩＦＯ内のデータを待つ時である。もしも１つのチャンネルが受信データを待っていて、別のチャンネルは送信ＦＩＦＯにデータ転送の準備が出来ている場合は、われわれはその転送を行わせる必要がある。この種のシナリオは多くの事例で生じる。
【００７７】
これらの空回り状態の一つは”機会の窓”を表し、ここでは別のチャンネルの処理が実行される。優先順位選択器はこれらの考えられる全ての空回り状態を監視し、どの状態およびチャンネルがその時点で最高位の優先順位を有するかを選択する。
【００７８】
図１２は環境３００内で処理されるＤＭＡ命令の一例を示す。図１２に於いて、ＰＣＩレジスタ書き込みデータ３０２はマルチプレクサ３０４に入力される。マルチプレクサ３０４にはまたＤＭＡレジスタ書き込みデータ３０６も入力される。適切なデータ源が、実行される操作に基づいて３０８で選択される。マルチプレクサ３０４の出力はＤＭＡレジスタ３１０に入力され、図では例としてチャンネル０からチャンネル５までの６チャンネルを含むように図示されている。各々のチャンネルに関して、ＤＭＡフィールドは前回アドレスまたは暫定フィールド３１２、現ＰＣＩアドレスフィールド３１４、データバッファアドレス３１６、状態３２０、命令３２２、現状態３２４、準備完了ビット３２６を含む。ＤＭＡレジスタ書き込み調停選択回路３２８はまたＤＭＡレジスタ３１０への入力を提供しており、これはＰＣＩスレーブ信号３３０、ＰＣＩマスタ信号３３２、ＤＭＡＰＣＩマスタ周期入力３３４およびスレーブ終了入力３３６に応答する。ＤＭＡチャンネル調停器３４０はロックチャンネル入力３４２を受信し、マルチプレクサ３４６への入力を提供する。スレーブレジスタ読み込みアドレス入力３４８はマルチプレクサ３４４の動作を制御する。ＤＭＡレジスタ読み取りデータ出力３５０はＤＭＡレジスタデータをＰＣＩインタフェースに戻す。マルチプレクサ３４６はその出力をＤＭＡ状態機械次回状態ロジック３５２に提供する。ＤＭＡ状態機械次回状態値３５４は状態レジスタおよびその他の出力レジスタにマルチプレクサ３０４を経由して戻って書き込まれる。ＤＭＡ命令処理環境３００からの出力はＦＩＦＯ読み取り、書き込み、および選択信号３５６ならびに多数の信号を含む。
【００７９】
ＤＭＡチャンネル調停器３４０はどのチャンネルが実行されるべきかを制御する。この調停はＦＩＦＯ３５８からの例えば”ＦＩＦＯ動作中チャンネルがデータを要求”および”ＦＩＦＯ動作中チャンネル”同様にどのＦＩＦＯがデータ転送準備完了状態でまたどのチャンネルが可能化されていて動作中であるかの信号に基づいて行われる。
【００８０】
ＤＭＡレジスタ３１０は制御と状態レジスタの設定とを実行して、各ＤＭＡチャンネルの制御と状態の監視とを行う。ＤＭＡレジスタ３１０は各ＤＭＡチャンネルの多数の機能をサポートする。例えば、前回パケット制御リスト開始アドレス／暫定レジスタ３１２は非同期転送中に待ち行列を処理するとＤＭＡエンジン７４で更新されるレジスタを提供する。これはまた補助命令がデータをロードおよびストアする際の一時待避レジスタとしても使用される。パケット制御リスト開始アドレスレジスタ３１４はアプリケーションソフトウェアによって初期化され、ＰＣＬチェイン内の最初の（ダミー）ＰＣＬの開始点を指定する。ＤＭＡエンジン７４はこのＰＣＬにロードされた次アドレスを使用して最初の実ＰＣＬにリンクする。パケット制御リスト開始アドレスレジスタ３１４は、ＰＣＬが処理されると動作中のＤＭＡチャンネルによって更新される。ＤＭＡバッファ開始アドレスレジスタ３１６には、動作中のＤＭＡチャンネルがＰＣＬを処理する際にＰＣＬから取り込まれたデータバッファポインタがロードされる。ＤＭＡ状態レジスタ３２０はこのＰＣＬ中に転送されたビット数の進行中の計数値を格納し、また転送の完了状態を含む。ＰＣＬの処理が完了した後、動作中ＤＭＡチャンネルはこのレジスタの状態情報をＰＣＬ内のオフセット０ｘＣの場所に書き戻す。
【００８１】
ＤＭＡ制御レジスタ３２２は制御ビットを含み、アプリケーションソフトウェアがＤＭＡチャンネルの動作を可能化または不能化して、リンクを張るためにＰＣＬの次アドレスを再取り込み出来るようにしている。ＤＭＡ制御レジスタ３２２はデータバッファ転送制御、転送ビット計数値、およびＰＣＬから取り込まれた命令を格納する。ＤＭＡ準備完了レジスタ３２６の最下位ビットはＤＭＡチャンネルがＸＭＴ，ＲＣＶ，ＬＯＡＤ，ＳＴＯＲＥ，ＳＴＯＲＥ０またはＳＴＯＲＥ１命令の実行を継続する前に準備完了状態まで待機させることができる。この準備完了状態はＰＣＬの制御ワード（１つまたは複数）で選択される。ＤＭＡ準備完了レジスタ３２６の最下位ビットはＢＲＡＮＣＨ命令の実行中に、ＤＭＡチャンネルの条件付き分岐を可能とする。この条件はＰＣＬの制御ワード（１つまたは複数）で選択される。現ＤＭＡ状態レジスタ３２４はＤＭＡチャンネルの状態ベクトルを格納する。このレジスタはＤＭＡチャンネルの動作時間中に更新され、チャンネルが停止する直前に生成された最後の状態ベクトルを保持する。
【００８２】
ＤＭＡレジスタ３１０はまた受信パケット計数値レジスタ（図示せず）を含むことも可能であり、これは現在受信されているパケット計数値を含む。ＤＭＡエンジン７４はこのレジスタにＧＲＦ８０トークンワード内を通過した受信パケット計数値をロードする。この計数値はそのデータがＰＣＩバス２４に転送される毎に減数される。また、ＤＭＡグローバルレジスタ（図示せず）を含むことも可能であり、これは状態機械が非同期転送パケットの実行を追跡する際に使用する、状態フラグを含む。このＤＭＡグローバルレジスタはキャッシュラインサイズレジスタと共に使用される下限ビットを格納し、ＰＣＩマスタが要求するバーストサイズを決定する。
【００８３】
図２１はセクション１３５で静止状態にリセットされた後ＤＭＡチャンネルが初期化される様子を示す。各ＤＭＡレジスタ３１０は有効ＰＣＬポインタがパケット制御リスト開始アドレスレジスタ３１４に書き込まれるまで待機し、チャンネル可能化およびリンクビットがＤＭＡ制御レジスタ内に設定される。有効ＰＣＬポインタは現パケット制御リスト（ＰＣＬ）アドレスレジスタの第０ビットで判断される。値が１の場合は無効アドレスを表し、値が０の場合は有効アドレスを表す。次にＤＭＡは現ＰＣＬアドレスレジスタ開始アドレスレジスタで指定されたアドレスへ行き、次ＰＣＬアドレスを取り込んで、もしも有効であればこれを現ＰＣＬアドレスとして実行を開始する。もしもこのアドレスが無効の場合は、ＤＭＡ制御レジスタ内のリンクビットが消去されて、ＤＭＡ停止割り込みがこのチャンネルに対して生成され、同時に割り込み状態レジスタ内にも関連する状態が生成され、このチャンネルは停止される。この機構はＰＣＬメモリ構造の健全性チェックを提供すると同時に、次アドレスリンクが喪失した場合（すなわち無効状態）に比較的簡単にチャンネルＰＣＬ実行を継続する方法を提供する。ＤＭＡエンジン７４が有効な次ＰＣＬアドレスを検出すると、ＤＭＡエンジン７４はＤＭＡ制御ならびに状態レジスタ７６内部にＢＳＹビットを設定し、適切なＰＣＬのワードを取り込む。次にチェックを実施して、その命令が受信、転送、ＰＣＩとローカルバスとの間のどちら向きであるか、または補助命令かの判断を行う。
【００８４】
図２１は続いてセクション１３７でＤＭＡエンジン７４がＧＲＦ８０内の等時間間隔および非同期データの受信操作をする様子を図示している。ＤＭＡエンジン７４は待機状態が存在するか否かを見るためのチェックを実行する。待機状態がもはや存在しない場合、処理装置はデータ移送フェーズに入る。ここで、ＤＭＡエンジン７４はループに入り、現在転送計数値が零となっているかのチェックを行う。その場合は、これがＰＣＬバッファリストの最終データバッファであるかを確認するためのチェックが行われる。もしもこれが最終バッファでしかも特殊制御トークンワードをＧＲＦ８０内に書き込む事によるパケット境界の表示が、リンク層制御ロジック９０によってなされていない場合は、エラーが発生するがこれはバッファが保持できるより多くのパケットデータが転送されることになるためである。この場合、ＰＫＴ  ＥＲＲビットがＤＭＡ制御ならびに状態レジスタ７６にセットされＤＭＡエンジン７４は残りのデータをパケット境界まで流し込む。もしも現在転送計数値が零まで減数されていて、ＰＣＬリスト内に別のバッファが存在する場合は、ＤＭＡエンジン７４は新たなバッファアドレスと転送計数値とを獲得し転送を実行する。
【００８５】
データをＧＲＦ８０からＰＣＩインタフェースロジック７０へ移動させる一方で、ＤＭＡエンジン７４はＧＲＦ８０が十分なデータを持つまで待って、ＰＣＩバスマスタに転送実行要求を行う。この転送閾値に達するのは、１つまたは２つの条件が合致する場合である。ＤＭＡエンジン７４は受信ＦＩＦＯ内のビット数が”高水位マーク”に達した際にＰＣＩマスタに転送要求を行う。この高水位マークはキャッシュラインレジスタ以上かまたはＤＭＡグローバルレジスタの下位境界フィールドに等しい。
【００８６】
ＤＭＡはパケットのデータサイズの情報をリンクから得るが、これはパケットが最初にＧＲＦ８０の中にリンク層制御ロジック９０によって書き込まれた時である。この転送計数値を用いてＧＲＦ８０内のデータがパケット内の残りのデータであるかを判断し、もしもそうであってそのサイズが高水位マークよりも小さい場合は、その転送計数値がこの残り部分に等しいＰＣＩマスタロジック６４の転送を要求する。ＤＭＡエンジン７４がデータを転送する一方で、ＤＭＡ制御ならびに状態レジスタ７６内のデータバッファ開始アドレスレジスタおよびデータバッファ転送長ビットが、転送の現在状態を反映するように更新される。
【００８７】
図２２および図２３のセクション１３９が示すように、リンク層制御ロジック９０がパケットの最後に遭遇すると、これは特殊制御トークンワードをＧＲＦ８０に書き込み、パケットの終わりを記す。この制御ワードに組み込まれているのは状態ビットであって、これはバス上でのパケットの完了状態を表示する。ＤＭＡエンジン７４はこのパケットの終了印を用いてＧＲＦ８０からＰＣＩバス２４へのデータ転送を終了する。もしもパケットの終了印が、ＩＥＥＥ１３９４ビジー肯定確認信号が存在することを示している場合は、ＤＭＡエンジン７４はＰＣＬの最初のバッファアドレスと転送計数値とを再獲得しパケットの全体の転送を開始する。ビジー肯定確認状態がパケットの終了印から表示されていない場合は、ＤＭＡ制御ならびに状態レジスタ７６はパケットの終了印の中にリンク層制御ロジック９０から通過された肯定確認状態がロードされ、パケット完了ビットがセットされる。次にパケット完了状態がＰＣＬ状態ワード内メモリに書き込まれ、割り込み信号が発せられて割り込み状態レジスタ内の対応するビット内にラッチされる。もしも命令が受信および更新命令であった場合は、残りの転送計数値および次バッファアドレスが適切なＰＣＬオフセットに書き込まれる。
【００８８】
図１３は表３６０を図示し、ＤＭＡチャンネル調停回路３４０の動作を示している。表３６０はもしもチャンネルがＩＥＥＥ標準１３９４バス上で現在動作中の場合は、そのチャンネルはＤＭＡチャンネル実行スケジュールの中で最上位の優先順位を持つことを示している。そうでない場合は、チャンネル優先順位はチャンネル番号順であり、０が最も高い優先順位を持つ。”無視”値には値”Ｘ”が３６２部分に割り当てられている。これはその他の値がどうであっても、現在動作中のチャンネルが最も高い優先順位であることを意味している。すなわちチャンネルは早い者勝ちでスケジュールされる。
【００８９】
ＤＭＡ命令処理の動作を下記の例で示す。ＤＭＡが現在チャンネル３で動作していると仮定する。従って、チャンネル３に対する全てのレジスタはＤＭＡ内のマルチプレクサ３４６経由で選択されている。ＤＭＡはレジスタの個々のスライスを選択してＤＭＡ状態機械上の現在状態および次状態ロジックに出現させる。
【００９０】
図１４は本発明のパーソナルコンピュータ環境１２の簡略化された図を示し、これは自動ブート機能３７０を含む。ＰＣＩインタフェースＡＳＩＣ２０のピン３７０は自動ブートＰＣＩインタフェースＡＳＩＣ２０への直接入力を提供する。結果としてＰＣＩインタフェースＡＳＩＣ２０は参照番号３０のＰＣＩ機器＃１、参照番号３１のＰＣＩ機器＃２に対してＰＣＩバス２４を通してホスト機器として動作する。ＰＣＩインタフェースＡＳＩＣ２０に対する自律動作命令はＲＰＬ  ＲＯＭ３６およびＳＲＡＭ３８を使用するはずである。更に、インタフェースバス１６を通してＰＣＩインタフェースＡＳＩＣ２０は物理層インタフェース１８と通信を行う。
【００９１】
自動ブートピン３７０が動作中（すなわち持ち上げられている時）、本発明の自動ブートモードが選択される。自動ブートモードは多くの特徴を可能とし、これはＰＣＩインタフェースＡＳＩＣ２０を自律的に機能させる。自律動作は次の機能を含む、電源リセット後、ＤＭＡチャンネル０を使用して最初のパケット制御リストのアドレスを取り込む。また、電源リセット後、自動ブートモードはＤＭＡマスタが外部ＲＰＬ  ＲＯＭにアクセスすることが出来るようにする。更に、電源リセット後、自動ブートモードはＤＭＡマスタが内部リンクレジスタにアクセス出来るようにする。
【００９２】
一度ＰＣＩバス２４上でマスタとして可能化されると、ＰＣＩインタフェースＡＳＩＣ２０はＰＣＩ構成、入力／出力、およびメモリ読み取りおよび書き込み命令をＰＣＩバス２４に発して、パケット制御リストを制御する際の適切なアドレス範囲を特定する。自動ブートモードの動作中、外部ＰＣＩアドレス空間は３０ビットに制限される。最上位の２つのアドレスビットの値は常に０である。内部的にこれら２ビットはＰＣＩ命令を選択するために使用される。
【００９３】
自動ブートピン３７０の状態は診断目的で、その他の制御レジスタ内の特別ビットから読むことができる。選択された自動ブートモードおよび外部ＲＯＭを用いて、本発明はＰＣＩインタフェースＡＳＩＣ２０をローカル処理装置として動作させ、全ての内部ＰＣＩインタフェースＡＳＩＣ２０レジスタをセットアップし、ＰＣＩバス２４上のその他の機器を初期化しそしてその他の複数のＰＣＬを構築して連結することが可能である。種々のＤＭＡチャンネルはこれらのＰＣＬを実行してＩＥＥＥ１３９４バス上でデータ転送を行わせることが可能である。
【００９４】
外部ローカルバスＲＡＭをＰＣＩインタフェースＡＳＩＣ２０に追加することにより、ＰＣＩスレーブメモリがＰＣＩバス２４上の機器に具備され、制御情報の獲得が行え、またデータ転送用のローカルメモリを持つことができる。ＰＣＬプログラムは機器制御／データをＩＥＥＥ１３９４経由でその他のシステムに転送することが出来る。従って、本発明の自動ブートモードを採用している環境は、ＰＣＩインタフェース環境を管理する適切な処理装置を利用できない周辺機器で使用することができる。
【００９５】
図１４の回路は外部ピン経由でチップに対して別の動作モードを提供する。その効果はメモリマップの一部を可能化および事前指定して電源投入時にＤＭＡエンジン７４がアクセス可能な資源を十分に確保し、全ての要求された機能が十分に有効に働くようにすることである。また、その効果はＤＭＡエンジン７４の動作を変更して、ＤＭＡ機械が特定モードの時に機械が動作停止となる代わりに専用のＲＯＭから新たな命令を要求するようにすることである。
【００９６】
ＤＭＡエンジン７４が動作中となり、命令を得るために或るアドレスを獲得する。これによりＰＣＩインタフェースＡＳＩＣ２０が単独独立モードで動作することが可能となる。これはまたＰＣＩメモリ命令、およびＰＣＩインタフェースＡＳＩＣ２０からの全ての入力／出力命令の生成を可能とする。
【００９７】
自動ブートピン３７０を使用することにより、本発明はＲＯＭおよびＲＡＭに基づくアドレスレジスタのアクセスおよび初期化を可能化することにより、電源投入メモリマップの再構成を可能とする。これによりＤＭＡ機械が電源投入後に読み取りおよび書き込みアクセス出来るようになる。更に、本発明は自動ブートモードが選択された際のＤＭＡエンジン７４の挙動を変更する。これにより電源投入時に専用ＲＯＭアドレスから新たな命令を獲得することが出来るようになる。初期アクセスアドレスは本実施例ではまさに０である。本発明は更に通常の環境では要求されないバス命令およびプロトコルを生成する方法をも提供する。
【００９８】
ＤＭＡエンジン７４は自動ブートオプションが選択された際に、ＲＰＬ  ＲＯＭ３６から命令を獲得して実行することができる。これにより、ＤＭＡエンジン７４が外部ＰＣＩバス上のマスタ機器として動作するために要求される命令を生成して、この外部バス上のその他のＰＣＩ機器を構成し、初期化しそして管理できるようになる。
【００９９】
図１５の表３８０は、自動ブート入力３７０が作動された際の、内部ＰＣＩアドレスバス［３１：３０］ビットのＰＣＩバス上の命令への写像を示す。例えば、ビット３１の値が０でビット３０が任意の値の時、ＰＣＩメモリ命令が動作される。その後、アドレスビット３１の値が１となり、アドレスビット３０の値が０となると、ＰＣＩ入出力命令が生じる。アドレスビット３１の値が１で、かつアドレスビット３０の値が１の場合、ＰＣＩ構成命令がＰＣＩインタフェースＡＳＩＣ２０へ送られる。
【０１００】
図１６は、本発明のひとつの特徴に基づくローカルバスインタフェースブロック３９０の図を示す。ローカルバスインタフェースブロック３９０はローカルバス構成レジスタ３９２、ＺＶ機械３９６と通信を行うズームビデオ（ＺＶ）復号インタフェースブロック３９４とを含む。パック／アンパック状態機械３９８はアドレス／データ／ビット可能化保持レジスタ３９８を含む。ローカルバスインタフェースブロック３９０はまたローカルバスインタフェース状態機械４００とスレーブ肯定確認割り込みブロック４０２とを含む。
【０１０１】
図２のＺＶポートは、ＩＥＥＥ１３９４標準バスからＰＣＩインタフェースＡＳＩＣ２０上の外部機器へデータを転送するための出力専用ポートである。正しくプログラムされると、ＺＶインタフェースロジックはＩＥＥＥ１３９４ディジタルカメラパケットを受信し、そのペイロードを外部ＺＶ適合機器に適切な制御信号と共に転送するための方法を提供する。
【０１０２】
ＺＶ復号回路３９４は第三ＰＣＩメモリ準拠アドレスレジスタの副セット経由でアクセスされる。ＺＶ復号回路３９４が可能化されると、補助アドレスの０ｘＦ０００と０ｘＦＦＦＦの間がＺＶポートに写像される。ＺＶポートは６つの利用可能クロック源３９５の内のひとつがＺＶ画素クロックとして選択された際に可能化される。もしも６つのクロックのいずれも選択されない場合は、ＺＶポートは不能化され、補助インタフェースは全アドレス空間を要求する。ＺＶポートが不能化されると、全てのＺＶ関連出力はデータバスを除き中立状態となり、データバスは補助、ＲＡＭおよびＲＯＭアクセス中に駆動される。
【０１０３】
ＺＶポートで、ＩＥＥＥ１３９４等時間間隔パケットヘッダ同期フィールドが０ｘ１に等しいと検出されると垂直同期信号が生成される。本実施例に於いて、データビット２４は重要な同期フィールドデータを含む。この垂直同期ビットを検出すると、垂直同期出力が生成される。フレームの残り部分に関しては、ビデオデータをズームポートに転送する際に特別のアドレスがアクセスされる毎に水平同期出力が生成される。パケット制御リストを適切にプログラムすることにより、全てのＩＥＥＥ１３９４ディジタルカメラパケットがＺＶポートを経由して転送出来る。
【０１０４】
図１７は本発明の同期検出回路４０５のひとつの実施例を示し、これは垂直同期検出信号４０７と水平同期検出信号４０９を生成するためのものである。ＰＣＩスレーブアドレスビット［１５：０］の値が０ｘＦ０００と仮定され、スレーブデータビット２８がバイナリ値の１と仮定される時には、比較回路４１１および４１３は信号をＡＮＤゲート４１５に送る。これは垂直同期検出信号を線４０７上に生成する。同様に、スレーブアドレスビット［１５：０］が０ＸＦ００４を比較回路４１７に送ると、水平同期検出信号が線４０９上に出現する。
【０１０５】
図１８は本発明に基づくパケットズームポートアドレスマップ４１０用の１つのビデオ走査線を示す。ズームポートアドレスマップ４１０はアドレス０ＸＦ０００で始まる等時間間隔パケットヘッダ４１２と、参照番号４１４から４２４で詳細に示されるアドレス０ＸＦ００４で始まり０ＸＦＦＦＦで終了する等時間間隔パケットデータ空間を含む。各々の等時間間隔パケットはズームポートアドレス空間に、アドレス０ＸＦ０００に転送されるヘッダクウォドレットと共に転送され、第一データペイロードクウォドレット４２８はアドレス０ＸＦ００４に転送され、パケット内の残りのクウォドレットは順番通りのアドレスにパケットペイロードデータの終わりが、パケットＮクウォドレット長の場合はアドレス（０ＸＦ０００＋（Ｎ−１）））に達するまで転送される。
【０１０６】
図１８は本発明が、ソフトウェアの支援を受けずにハードウェアが管理するウィンドウの中にビデオ画像表示を自律的に表示出来ることを示している。本発明は生データをＩＥＥＥ１３９４バス上に送出し、ズームポートの中にビデオ制御器チップに入力データとして入るのと互換性のあるフォーマットで流し込むことを可能としている。これは水平および垂直フレーム同期を維持しながら自律的にデータを表示することを可能としている。
【０１０７】
動作中、ズームビデオポートはあるアドレス空間の中に写像されている。ヘッダはフレーム同期情報または信号を含む。正しい制御構造を構築することにより、ヘッダパケットデータを、ロジックがあるフィールドを探すアドレスに基づく特定アドレスに転送する。ＩＥＥＥＰ１３９４ディジタルカメラ仕様に適合するソニーカメラの場合、等時間間隔ヘッダ同期フィールド内のビットはビデオフレームの開始位置を示す。この特定の等時間間隔ヘッダ同期フィールドビットを復号する事により、垂直同期信号が生成される。この情報を使用してズームポートデータのズームポートへの受信の同期を取ることができる。
【０１０８】
これを実現するのに２つの場合がある、１つは水平同期、そしてもう１つは垂直同期である。垂直同期に関しては、復号に際して特定アドレスと特定等時間間隔ヘッダ同期ビットが必要である。水平同期は別の特定アドレスを復号することにより生成される。
【０１０９】
本発明のビデオズーム機能は水平または垂直同期信号の様な制御情報を、符号化されたビデオの様な組込型制御情報を含むパケット化されたデータから、自律的に抽出する機能を提供する。同時比較ロジック４１１および４１３は、特定データ値で指定された行き先アドレスへの転送を検出する。
【０１１０】
本発明はまたパケットデータの異なるセグメントに対して適切な行き先を指定するための、ソフトウェアまたはハードウェア制御構造を提供する。ＤＭＡアーキテクチャは、特定のパケットを異なる行き先アドレスに異なる長さに分解して収集または配送することが可能としている。従って、本発明はヘッダフィールドを特定のアドレスに書き込みまた、データフィールドを別のアドレスに書き込む事が出来る。この特徴を利用して本発明はＰＣＩインタフェース機器のどの部分がどのアドレスを見るかを制御出来る。
【０１１１】
本発明は更にプログラム可能計数器を提供し、これは特定アドレス位置そして／またはデータパターンへの多重アクセスを行う基本制御信号を生成するために使用される。これは計数器を使用することで水平走査線毎にまたは水平同期の間に多重パケットを与えるというオプションが生じる。従って、垂直同期の直後に水平同期信号が生成される。これはシステムが特定アドレスを通過する回数を計数する事を可能とする。システムは例えばそのアドレスを４回繰り返した後にのみ別の水平同期信号を生成するように出来る。これにより特定のカメラ、解像度などに従って４つのパケットを水平走査線にまとめることが可能となる。
【０１１２】
図１９は、単一ビデオパケットを複数のビデオ走査線にズームポートアドレスマップ４１０を用いて写像する手順を示す。ズームポートアドレスマップ４１０は等時間間隔パケットヘッダ４１２を含み、これは等時間間隔パケットデータ４１４に隣接している。メモリ空間４１６から４２４は図１７で説明したものと同様である。ズームビデオ等時間間隔パケット４４０はヘッダクウォドレット０を含み、これは等時間間隔ヘッダ同期フィールド内にフレーム開始ビットを含むはずである。クウォドレット１は第一ビデオデータペイロードクウォドレットであり、これはビデオ走査Ａの開始部分を含む。水平同期信号はこのクウォドレットをアドレス０ＸＦ００４に書き込むことにより生成される。同様に、データクウォドレット４４２をアドレス０ＸＦ００４に書き込むことは水平同期を生成することによりビデオ走査Ａ＋１の開始部分を示す。０ＸＦ０００から開始され［０ＸＦ０００＋（Ｎ−１）］まで続くデータの書き込みは、ズームビデオポートを通って出力される実際のデータ、すなわちズームデータである。ヘッダは取りはずされるのでデータフィールドの一部とはならない。
【０１１３】
従って、この場合垂直同期と水平同期とをビデオフレームの第一パケットに対して生成する。後続のパケットはビデオフレームヘッダの残りの部分を埋める後続の走査線を意味するが、これらのヘッダは同期フィールドは含まない。データの流れは全てのパケットに対して同一であり、各々そこにヘッダが存在する点０ＸＦ０００から開始され、もしも同期ビットがヘッダ内に存在しない場合、垂直同期ビットは設定されない。もしもＦ００４に書き込まれた時には水平同期が生成される。これは走査線の開始を生成し、これにより残りのデータが走査線の一部として流れ出る。
【０１１４】
更に多重の走査線がパケット毎に存在する状況もある。これを取り扱うために、パケット制御リストが使用される。
【０１１５】
本発明のＤＭＡエンジン７４はパケット制御リストまたはＰＣＬと呼ばれるデータ構造により制御される。ＰＣＬは命令情報を含み、これをＤＭＡは必要に応じてメモりから取り出す。これらの命令はＤＭＡに対してデータの発信元と行き先、ならびにどれだけのバイト量が転送されるかを告げる。いくつかの命令はデータの塊をＩＥＥＥ１３９４転送ＦＩＦＯとＰＣＩバス２４との間、または汎用受信ＦＩＦＯ８０とＰＣＩバス２４との間で移動させる。別の命令はデータをＰＣＩバス２４と補助ポートローカルバス２６との間で移動させる。その他の命令は二次機能であって補助命令と呼ばれる。これらの補助命令はＤＭＡが任意のＰＣＩアドレスに対して指定されたデータのクウォドレットをのぞき見たり手を入れたり出来るようにし、またＰＣＬを使用した条件付き分岐を可能としたりする。意図している使用目的は、ＤＭＡが特別なデータの移動制御を実行したりまた、ＰＣＬを自動ブートシーケンスで構築できる単独独立処理装置として機能出来るようにする事である。この機能の全範囲が系統立てられているわけでは無く、ＤＭＡのこれ以外の使用方法もこれから展開されるであろう。
【０１１６】
本発明のアプリケーションソフトウェアはＤＭＡチャンネルの動作を、ホストメモリの中に存在するＰＣＬデータ構造を用いてプログラムする。アプリケーションソフトウェアはＰＣＬの構築およびメモリの記憶装置への配置の任を負う。ＰＣＬはメモリ配列の連続した組として組織され、これは命令、制御パラメータ、およびデータバッファポインタを含み、これらはＤＭＡチャンネルが１つのＩＥＥＥ１３９４データパケットの転送する時、またはデータをＰＣＩバス２４と補助ポートローカルバス２６との間で移動するとき、または１つまたは複数の補助命令を実行する際に要求されるものである。ＰＣＬから要求されるメモリ配列の総数は、今回の実現例では一般的に３２クウォドレットに制限されている。
【０１１７】
最低限の要求として、ＰＣＬ開始アドレスはクウォドレットの境界部に並べられている。ＤＭＡの性能を最適とするために、ＰＣＬ開始アドレスはキャッシュライン境界上のラインであることが推奨されている。データバッファポインタは任意のバイト境界に配列する事ができる。ＤＭＡ性能を最適とするために、本発明ではデータバッファポインタをキャッシュライン境界上に配列している。もしもこれが不可能な場合は、データバッファポインタをクウォドレットの境界上に配列するのが次善の方法である。ＰＣＬで指定されるデータバッファサイズの合計は、ＩＥＥＥ１３９４ビット速度が１００ｍｂｐｓの場合はおよそ１キロビット、またはＩＥＥＥ１３９４ビット速度が２００ｍｂｐｓの場合はおよそ２キロビットに制限される。
【０１１８】
本実施例に於いて、動作中ＤＭＡチャンネルは命令および制御パラメータをＰＣＬから取り込み、これらを用いてチャンネル自体を構築して転送命令を実行する。
【０１１９】
アプリケーションソフトウェアプログラムで、ＤＭＡチャンネルが複数のＩＥＥＥ１３９４データパケットを転送することを、複数のパケット制御リストをＰＣＬリスト待ち行列の中で連鎖することにより可能とする。本発明はこの待ち行列を各ＰＣＬの次アドレスフィールドを、次ＰＣＬのメモリ内の開始アドレスを指示するようにセットすることで構成している。待ち行列の最後のＰＣＬはＤＭＡ処理を停止させるか、待ち行列の先頭に戻るかまたは新たな待ち行列を指示するようにプログラム出来る。補助命令を含むＰＣＬはＰＣＬ待ち行列内の何処にでも組み込むことが出来るが、両方を同時には出来ない。ＰＣＬ待ち行列は、受信および送信また補助命令を混在させることが可能である；しかしながら非同期転送命令は別の非同期転送命令の次に無ければならず、これはパイプライン構造の転送を行うためと、またパケットの再試行の可能性があるためである。一方、非同期転送命令内の”状態待ち”ビットを設定することにより、この要求は排除される。
【０１２０】
図２０は本発明の実施例に基づき、複数のパケット制御リストのリンクされたリストの例を図示する。図２０に於いて、ＰＣＩ待ち行列４５０は開始アドレス４５２から始まる。開始アドレス４５２から処理の流れはダミーパケット制御リスト４５４に入る。ダミーパケット制御リスト４５４は処理の流れを転送命令パケット制御リスト４５６に送る。転送命令パケット制御リスト０に於いて、データバッファ計数命令およびデータバッファアドレス情報は例えばデータバッファ４６０，データバッファ４６２，データバッファ４６４まで行き、この例では１４個のデータバッファが使用される。
【０１２１】
参照番号４５６が示す、転送命令パケット制御リスト０は、次リストアドレス４６６を含み、これは参照番号４７０で示す補助命令パケット制御リスト１へ接続される。参照番号４７０で示す、補助命令パケット制御リスト１はロード命令４７２、発信元アドレスを４７４に、またストア命令および位置４７６に含む。ロード命令４７２はデータレジスタ４７８に接続され、これはＤＭＡレジスタ４８０を供給する。ストア１命令４７６は入力をメモり位置４８２に提供する。参照番号４７０で示す、補助命令パケット制御リスト１はまた、条件成立時の行き先アドレス４８４をも含み、これは条件に応じてＰＣＩ工程制御を、参照番号４８６で示す転送命令パケット制御リスト２に送る。参照番号４８６で示す転送命令パケット制御リスト２は次リストアドレス４８８を含み、これは参照番号４９０で示されるように別のＰＣＬへ接続するためのものであり、一方データ計数およびデータバッファアドレス４９２は、データバッファ４９４に接続され、以下は同様に接続される。条件成立時の行き先アドレス４８４がＰＣＩ待ち行列の処理の流れを制御している場合には、次リストアドレス４６８は参照番号４８６で示す、転送命令パケット制御リスト２に接続される。この情報は次に次リストアドレスから、参照番号４９０で示されるように別のＰＣＩに送られ、データバッファ０アドレスおよび計数命令情報はデータバッファ１に送られる、以下同様である。
【０１２２】
典型的にホストＣＰＵ４４が動作する場合は、パケット制御リストとダミーの次ＰＣＬアドレスを構築するためにメモリを配列するが、これは前回ＰＣＬが存在しないからである。ダミーの次ＰＣＬアドレスはメモリ位置を提供し、これは第一完全ＰＣＬ、すなわちＰＣＬ０の開始ポインタである。次にホスト処理装置は必要なＰＣＬのリストを構築し、データ転送または補助命令のいずれかの型式、例えば実際に処理装置相当の命令を行う補助命令の操作を実施させる。
【０１２３】
次ＰＣＬアドレス内の空間は、エラーアドレス、予約位置、および状態を含む。次の対は制御状態、転送計数値である。そのひとつ置いて次はデータバッファアドレスである。これら２つの長ワードは１つの命令または１つのデータバッファへのデータ転送を構成する。転送例はメモリ内のデータバッファ位置を指示するバッファアドレスであって、この場所へそのデータが転送されるかまたはそこから転送される。もしもデータが連続して転送される場合には、本実施例では連続データ転送のための大きな制御ループを形成できるようにしている。
【０１２４】
図２１から図３０および以下の説明で本発明の、ＰＣＩとポートローカルバスとの間の、受信、送信、または補助操作の動作を説明する。受信操作に於いて、図２１が示すようにＧＲＦ８０内の等時間間隔および非同期データに対して、処理の流れは待ち状態が存在しているか否をチェックすることから開始される。図２７に示すように等時間間隔送信に関して、もしもチャンネル可能化が１に等しい場合、送信機能は準備完了であり、周期開始ビットは了承となって待ち状態は存在しない。待ち状態はデータバッファ制御ワード零の待ち選択器ビットによって判定される。待ち状態が存在しなくなると、処理装置はデータ移送フェーズに入る。ここでループに入り、現転送計数値が零となっているかの確認が行われる。もしも零となっていたら、それがＰＣＬバッファリストの最後のデータバッファであるかのチェックが行われる。もしもそのデータバッファが最後のデータバッファであり、リンク層制御器が特別の制御トークンワードをＧＲＦ  ＦＩＦＯの中に書き込むことによってなされる、パケット境界の表示がなされていない場合は、エラーが生じるが、それはバッファが保持出来る以上のパケットデータが転送されようとしているためである。この場合パケットエラービットがＤＭＡ状態レジスタ内にセットされ、ＤＭＡは残りのデータをパケット境界まで押し流す。もしも現転送計数値が零まで減数されたと判断され、ＰＣＬリスト内に別のバッファが存在する場合は、ＤＭＡは新たなバッファアドレスと転送計数値とを獲得し、転送を継続する。
【０１２５】
ＰＣＩインタフェース内の受信ＦＩＦＯからデータを移動する一方で、ＤＭＡはＰＣＩバスマスタに対して転送の実行要求を行う前にＦＩＦＯが十分なデータを持つまで待機する。この転送閾値には１つまたは２つの条件が合致すると到達する。ＤＭＡは受信ＦＩＦＯ内のバイト数が”高水位マーク”に達すると必ずＰＣＩマスタの転送を要求する。この高水位マークはキャッシュラインサイズレジスタの上限値またはＤＭＡグローバルレジスタの下限境界フィールドに等しい。ＤＭＡはパケットのデータサイズの情報を、そのパケットが最初に長さ層制御器によってＦＩＦＯの中に書き込まれた時に、リンクから取得する。それはこの転送計数値を用いてＦＩＦＯ内のデータがパケット内の残っているデータかを判断し、もしもそうであり、そのサイズが高水位マーク未満の場合は、その転送計数値がこの残りに等しいＰＣＩマスタに対して転送を要求する。ＤＭＡがデータを転送する間、ＤＭＡ制御レジスタ内の転送長ビットにバッファリングされたデータ内のデータバッファ開始アドレスレジスタは、転送の現在状況を反映するように更新される。
【０１２６】
リンク層制御器がパケットの終端に達すると、これは特別な制御トークンワードをＦＩＦＯ内に書き込んでパケットの終わりを記す。この制御ワードの中に組み込まれているのは、バス上でそのパケットの完了状態を表す状態ビットである。ＤＭＡはこのパケット終了マーカーを用いてＦＩＦＯからＰＣＩバスへのデータの転送を終了させる。パケット終了マーカーがＩＥＥＥ１３９４ビジー肯定確認を表している場合は、ＤＭＡはＰＣＬの第一バッファアドレスと転送計数値とを再獲得し、パケットの転送を再度開始する。パケット終了マーカーからビジー状態が表示され無い場合は、ＤＭＡ状態レジスタにはリンク層制御器からパケット終了マーカーの中に送られた肯定確認状態がロードされ、パケットの完了がセットされる。次にこれはＰＣＬ状態ワード内のメモリに、このＰＣＬへ転送されたビットの数と一緒に書き込まれる。もしもＩＮＴビットがＰＣＬ内のデータバッファ制御／バイト計数命令に対してセットされると、割り込み信号が発せられて割り込み状態レジスタ内の対応するＤＭＡ  ＰＣＬビットの中にラッチされる。もしも命令が受信および更新命令の場合は、残りの転送計数値と次バッファアドレスとがＰＣＬに書き込まれる。次にＤＭＡは別のＰＣＬが現ＰＣＬにリンクされているか否かを、現ＰＣＬの次リストアドレスフィールドを取り込む事によって判断する。リンクされているＰＣＬが存在する場合は、ＤＭＡはそのリンクされているＰＣＬを現ＰＣＬとして実行を継続する。現ＰＣＬに別のＰＣＬがリンクされていない場合は、ＤＭＡ停止割り込みがこのチャンネルに対して関連する状態と共に割り込み状態レジスタ内に生成され、そのチャンネルはアイドリング状態となる。
【０１２７】
ＤＭＡ非同期転送操作に関して、図２４から図２６に示すように非同期転送は、有効ＰＣＬポインタがパケット制御リスト開始アドレスレジスタに書き込まれ、チャンネル可能化およびリンクビットがセットされた後に判断される。非同期パケット処理装置の最終的な目的は、リンク層制御器によってＦＩＦＯからＩＥＥＥ１３９４バスに転送される現パケットより１パケット多く、残すことである。ＤＭＡの観点から見ると、バス上のこのパケットは前回パケットである。リンク層制御器から報告される全ての状態は、この前回パケットに関するものと考えられる；しかしながら、”状態待ち”ビットをＰＣＬ内の”データバッファ／バイト計数／命令”の中にセットすることにより、このパイプライン操作が防止される。ＤＭＡは前回パケット制御リスト開始アドレスのアドレスを、前回パケット制御リスト開始アドレス／暫定レジスタ内に保持する。”前回ＰＣＬ有効”と呼ばれるフラグがＤＭＡによってＤＭＡグローバルレジスタ内に保持され、それが格納されていた有効アドレスであるかの記録をとる。非同期チャンネルでの転送操作は待ち状態が存在するかを確認しながら遂行される。待ち状態はＰＣＬ内の”データバッファ制御／バイト計数／命令”の待ち選択ビットにより判断される。”再試行”と呼ばれるフラグがＤＭＡによってＤＭＡグローバルレジスタ内に保持される。ＤＭＡはこのフラグを使用して、再試行中にはこれらの待ち状態が無視されるよう、待ち状態が評価されるように追跡する。
【０１２８】
待ち状態が存在しなくなると、ＤＭＡはパケットの先頭を表す制御トークンをＦＩＦＯに書き込み、データ移送フェーズに入る。ここでループに入って、現転送計数値がチェックされそれが零に達しているかの確認が行われる。もしもそうである場合は、これがＰＣＬバッファリストの最終データバッファであるかを確認するためのチェックが行われる。もしもＰＣＬ内に別のバッファが存在する場合は、ＤＭＡは新たなバッファアドレスと転送計数値とを獲得し、転送を遂行する。データを非同期転送ＦＩＦＯの中にＰＣＩインタフェースから移送する一方で、ＤＭＡはＰＣＩバスマスタが読み取り転送を実行するように要求する前に、ＦＩＦＯが十分な空きを持つまで待機する。ＤＭＡはＤＭＡ受信操作に関して定義された高水位マークと等しいビット計数値を備えたＰＣＩマスタの転送を要求する。ＤＭＡがデータを転送する間、ＤＭＡ制御レジスタ内のデータバッファ開始アドレスレジスタおよびデータバッファ転送リンクビットは転送の現在状態を反映するように更新される。
【０１２９】
バッファからデータの最終ビットが非同期転送ＦＩＦＯへ転送され、そのバッファが制御／バイト計数ＰＣＬワード内の最終バッファビットで示されるように、ＰＣＬリストの最後である時には、ＤＭＡはパケットの終端に達したことを知る。もしも前回パケットアドレスが有効であれば、ＤＭＡは状態のチェックを全パケットが転送ＦＩＦＯの中に詰め込まれるまで遅らせる。この場合、状態待ちビットがセットされない限り、戻り状態は常に前回パケットに対するものである。もしも唯１つのパケットのみが転送されるのであれば、前回および現在パケットは同一である。もしも前回パケットアドレスが有効の場合は、ＤＭＡはパケット計数器を確認する。パケットがＩＥＥＥ１３９４バスにリンク層制御器によって転送が完了し、このパケットの状態が有効の時は、リンク層制御器はパケット計数器を減数する。ＤＭＡはパケット計数器が零となって前回パケットに対して有効状態が適用出来ることを示すまで、空転して待機する。もしも状態が前回パケットが再試行されるべき事を示す場合は、ＤＭＡはＦＩＦＯの押し流し要求をリンク層制御器に対して行い、リンク層制御器が再試行表示を取り除くことでＦＩＦＯの押し流しが完了したことを示すまで待機する。次にＤＭＡは前回パケットに”戻って”全体の転送を開始する。再試行が発生しない場合は、ＤＭＡはＤＭＡ状態レジスタをリンク層制御器から送られてきた肯定確認状態で更新し、パケットの完了をセットし、次に完了状態を前回ＰＣＬ状態ワード内のメモリに、前回ＰＣＬとは関係しないはずの現在動作中のＰＣＬに対して転送されるビット数と共に書き込む。もしも割り込みビットがＰＣＬの中にセットされると、割り込み信号が発せられて対応する割り込み状態レジスタビットの中にラッチされる。
【０１３０】
状態のチェックが終わると、ＤＭＡは特別制御トークンを転送ＦＩＦＯに書き込み、パケットの終了を記す。パケット計数値は１に減数されてリンク層制御器に対してパケットの終了がＤＭＡによって書き込まれたことを示す。現ＰＣＬアドレスが前回ＰＣＬアドレスとして保存され、前回パケット制御リスト開始アドレスレジスタおよび”前回有効”フラグがＤＭＡグローバルレジスタの中にセットされる。次にＤＭＡは別のＰＣＬが現ＰＣＬにリンクされているか否かを、次リストアドレス値を取り込むことによって判断する。もしもそれが有効な場合は、ＤＭＡはこれを現ＰＣＬアドレスとし実行を継続する。もしもそれが有効でないかまたは、状態待ちビットがセットされている場合は、ＤＭＡは現パケットがリンク層制御器によって転送されるまで待機する。パケット計数器が零に減数することで示されるように、有効状態が認められる場合は、ＤＭＡはパケットがＩＥＥＥ１３９４ビジー状態で示されるように再試行されるべきかを確認するためのチェックを行う。もしもそうである場合は、ＦＩＦＯは先に説明したように押し流され転送が再度試みられる。
【０１３１】
もしもリンク層制御器で示されるように転送時間切れ、再試行超過、またはＦＩＦＯ未達が存在した場合は、パケットエラービットがＤＭＡ状態レジスタに肯定確認状態と共に送られる。この状態はＰＣＬ内で更新される。転送時間切れまたは再試行超過の場合は、対象ノードがもはや応答しないとすることが可能であろう。ＤＭＡはこの状況を、この特定ノードへのデータのストリームを形成するＰＣＬをスキップ出来るようにすることで解消する。ソフトウェアはＰＣＬの次ＰＣＬストリームの入口を転送データの次ストリーム（すなわち別の１３９４ノードへの次非同期転送）に対する第一ＰＣＬに指定することでセットできる。もしも次ＰＣＬストリームアドレスが有効な場合は、ＤＭＡはこのＰＣＬで実行を継続する。もしもこのアドレスが有効で無い場合は、ＤＭＡチャンネルは次ＰＣＬアドレスが無効であると印される場合に遭遇したときと同様、アイドリング状態に入る。もしもこの次ストリーム内容が使用されない場合は、この値は次リストアドレスと同じ値にセットされるべきである。もしもＤＭＡが停止すると、ＤＭＡ停止割り込み状態を通知し次ＰＣＬストリーム導入が無効となるため、次ＰＣＬストリームの再書き込みが必要となる、それはＤＭＡが次ストリーム取得状態にあり、ＤＭＡが次リストアドレスを無視するためである。従って、常に”次リストアドレス”および”次ＰＣＬストリーム”を同一アドレスにセットすることが、もしも次ストリーム内容が使用されない場合には必要であって、それは次ＰＣＬストリーム導入を実施する全ての非同期転送チャンネルが、エラーのために宙ぶらりんになることを防止するためである。
【０１３２】
図２８、２９は上記の非同期および等時間間隔転送操作で説明したのと同様の流れ図を示すが、ＤＭＡエンジン７４の補助操作に適用されるものである。
【０１３３】
図３０に示すように、ＰＣＩからローカルバスへ、またローカルバスからＰＣＩへの転送操作は、ＰＣＩバスとローカルバスとの間のデータ転送を制御する。ＰＣＩアドレスおよび転送されるビット数は、転送の様なその他の転送命令と同様、ＰＣＬ内のＰＣＬデータバッファ制御／ビット計数／命令ワードから導かれる。違いは転送の行き先または発信元がＦＩＦＯではなくローカルバスであることである。そのローカルバスアドレスはＡＵＸ＿ＡＤＲレジスタ（ハードウェアレジスタ定義参照）から生成される。
【０１３４】
ＰＣＩとＬＯＣＡＬ間操作は待ち状態が存在するか否かを確認するチェックを行うことで遂行される。待ち状態はＰＣＬオフセット０ｘ１８のｂｕｆ０ｃｔｌ／ｂｉｔ＿ｃｎｔ／ｃｍｄの待ち選択ビットにより判断される。待ち状態がもはや存在していない場合は、ＤＭＡはループに入りここで現転送計数値が零に達したかを確認するためのチェックが行われる。もしもそうである場合は、チェックを行ってこれがＰＣＬバッファリストの最終データバッファであるかを確認する。ＰＣＬリスト内に別のバッファが存在する場合は、ＤＭＡは新たなバッファアドレスと転送計数値とを獲得し転送を遂行する。ＤＭＡがデータを転送する一方で、ＤＭＡ制御レジスタ内のデータバッファ開始アドレスレジスタおよびデータバッファ転送長ビットは転送の現在状態を反映するように更新される。
【０１３５】
バッファからのデータの最終ビットがローカルバスとバッファとの間で転送され、しかもそのバッファが制御／ビット計数ＰＣＬワードの最終バッファビットで示されるようにＰＣＬリストの最後である場合、ＤＭＡは転送の終端に達したことを知る。ＤＭＡはＤＭＡ状態レジスタを０ｘ０００１の状態で更新し、ＰＫＴ  ＣＭＰがセットされ、そしてＰＣＬのオフセット０ｘＣの所のＰＣＬ状態ワードに転送されたバイト数と共に書き込まれる。ＩＮＴビットがＰＣＬオフセット０ｘ１８のｂｕｆ０ｃｔｌ／ｂｉｔ＿ｃｎｔ／ｃｍｄにセットされると、割り込み信号が発せられて、割り込み状態レジスタ内の対応する（ＤＭＡ＿ＰＣＬ［ｘ］）ビット内にラッチされる。
【０１３６】
次にＤＭＡは現ＰＣＬに別のＰＣＬがリンクされているか否かの判断を、次リストアドレス（ＰＣＬオフセット０ｘ００）を取り込むことで行う。もしもそれが有効であると、ビット０＝０によって表示されている場合は、ＤＭＡはこれを現ＰＣＬアドレスとして、図に示すように実行を継続する。もしも別のＰＣＬが現ＰＣＬにリンクされていない場合は、ビット０＝１によって表示され、リンクおよびビジービットがＤＭＡ制御レジスタ内で消去され、ＤＭＡ停止割り込みがこのチャンネルに対して関連する状態（ＤＭＡ＿ＨＬＴ［ｘ］）と共に割り込み状態レジスタ内に生成され、そのチャンネルはアイドリング状態となる。
【０１３７】
図３１、３２はＦＩＦＯ高レベル機能ブロック図５００を示し、ＧＲＦ８０、非同期送信ＦＩＦＯ８２、および等時間間隔送信ＦＩＦＯ８４に関するＦＩＦＯ操作を説明している。本発明のＦＩＦＯロジックはリンク側クロック領域５０２とＰＣＩ側クロック領域５０４とを含む。ＰＣＩ側クロック領域５０４、ＦＩＦＯ制御ならびに状態レジスタ８８は実時間でＰＣＩバスインタフェースロジックにより書き込まれる。また、ＦＩＦＯ制御器状態レジスタ８８はポインタアドレス写像ロジック８６に対して入力を提供する。ポインタアドレス写像ロジック８６はＦＩＦＯ読み取り書き込みポインタに対するＲＡＭアドレス写像オフセットを生成する。
【０１３８】
二重ポートＲＡＭ５０１はＧＲＦ８０、非同期送信ＦＩＦＯ８２、および等時間間隔送信ＦＩＦＯ８４に対するデータ格納部となり、リンク側クロック領域５０２とＰＣＩ側クロック領域５０４との間の境界部に展開している。１つのＰＣＩ側クロック領域５０４、クロック領域ポインタ翻訳ロジック５０６はＤＭＡ
ＦＩＦＯ占有状態ロジック５０８への入力を生成する。ＤＭＡ  ＦＩＦＯ占有状態ロジック５０８はＤＭＡロジック信号５１０に対してＦＩＦＯ状態を生成する。１つのリンク側クロック領域５０２、クロック領域ポインタ翻訳ロジック５１２は、１３９４送信受信ロジック信号５１６に対してＦＩＦＯ状態を生成する、１３９４ＦＩＦＯ送信機および受信機占有状態ロジック５１４に対して入力を提供する。
【０１３９】
二重ポートＲＡＭ５０１はマルチプレクサ５１８およびマルチプレクサ５２０からアドレス入力を受信する。マルチプレクサ５１８は汎用受信書き込みポインタ５２２、非同期送信読み取りポインタ５２４および等時間間隔送信読み取りポインタ５２６から入力を受信する。汎用受信書き込みポインタ５２２は１３９４受信機およびアドレス写像ロジックとから制御を受ける。非同期送信読み取りポインタ５２４および等時間間隔送信読み取りポインタ５２６は１３９４受信機およびアドレス写像ロジックとから制御を受ける。汎用受信書き込みポインタ５２２、非同期送信読み取りポインタ５２４および等時間間隔送信読み取りポインタ５２６からの出力は、全て送信機および受信機占有状態ロジック５１４、クロック領域ポインタ翻訳ロジック５０６およびマルチプレクサ５１８に送られる。
【０１４０】
汎用受信ポインタ５２８、非同期送信書き込みポインタ５３０、および等時間間隔送信書き込みポインタ５３２は全てＤＭＡロジックおよびアドレス写像ロジックから制御を受ける。汎用受信ポインタ５２８、非同期送信書き込みポインタ５３０、および等時間間隔送信書き込みポインタ５３２は全てＤＭＡ  ＦＩＦＯ状態ロジック５０８、クロック領域ポインタ翻訳ロジック５１２、およびマルチプレクサ５２０に出力を提供する。
【０１４１】
二重ポートＲＡＭ５０１はまた、１３９４受信ロジックから３３ビットデータバス５３４経由でデータ入力、リンククロック２５ＭＨｚ信号５３６、そして制御を線５３８経由で１３９４送信／受信ロジックから受信する。また、１３９４送信／受信ロジック５３８からの制御はリンク側アドレスマルチプレクサ５１８に送られる。バイトパックロジック５４０はＤＭＡ読み取りデータをホストメモリから、ＤＭＡロジックからの制御を経由して受信し、出力を３３ビットデータバス５４２上に提供し、これは二重ポートＲＡＭ５０１のＰＣＩ側データ入力に送られる。バイトアンパックロジック５４４は二重ポートＲＡＭ５０１ＰＣＩ側データ出力３３ビットバス５４６からデータ出力を受信し、ホストメモリに対してＤＭＡ書き込みデータを提供する。また、ＤＭＡロジックからの制御はバイトアンパックロジック５４４、マルチプレクサ５２０および二重ポートＲＡＭ５０１に送られる。零から３３ＭＨｚＰＣＩクロック信号は二重ポートＲＡＭ５０１に送られる。
【０１４２】
図２ならびに関連する説明文の中で行った説明に関連して、ＦＩＦＯ、ＧＲＦ８０、非同期送信ＦＩＦＯ８２、および等時間間隔伝送ＦＩＦＯ８４の機能に関する更に詳細な説明を以下に行う。
【０１４３】
ＦＩＦＯ状態ロジック５１４および５１６は各々の論理ＦＩＦＯに対する占有状態を生成するのに必要なロジックを実行する。ＰＣＩ側ＦＩＦＯ状態を計算する際に、リンクからＰＣＩクロック領域への翻訳ロジックは、ＦＩＦＯのリンク側上の各ポインタの現在値をサンプリングし、これらのサンプルをもとにリンククロック領域からＰＣＩクロック領域への翻訳を行う。各々の翻訳されたリンク側ポインタは、その対応するＰＣＩ側ポインタと比較され、各ＦＩＦＯの占有状態が生成される。この状態はＤＭＡロジックで使用されて、ホストメモリとＦＩＦＯとの間のデータ転送のペースがとられる。同様にリンク側ＦＩＦＯ状態を計算する際に、ＰＣＩからリンククロック領域への翻訳ロジックは、ＦＩＦＯのＰＣＩ側上の各ポインタの現在値をサンプリングし、これらのサンプルのＰＣＩクロック領域からリンククロック領域への翻訳を行う。各々の翻訳されたＰＣＩ側ポインタは、その対応するリンク側ポインタと比較され、各ＦＩＦＯの占有状態が計算される。この状態は１３９４送信／受信ロジックで用いられ、１３９４バスとＦＩＦＯとの間のデータ転送のペースがとられる。
【０１４４】
バイトパックロジック５４０はホストメモリからの全クウォドレットデータ読み取りを、バイト単位で整列されたアドレス上に動作中ＤＭＡチャンネル経由で集合させるロジックを実行する。このロジックは好適に４つの８ビット幅レジスタと４つの８対１マルチプレクサとを含む。各レジスタとマルチプレクサとの対は１つのバイト列に対応する。各レジスタの入力は入力バイト列に接続され、これは動作中ＤＭＡチャンネルによってホストメモリに切り替えられる。各マルチプレクサの出力は出力バイト列に接続され、これはＦＩＦＯを駆動する。各々の８対１マルチプレクサに対して、４つの入力は１対１対応で各レジスタ出力に接続される。残りの４つの入力は１対１対応で各レジスタ入力に接続される。この構成により４つの入力バイト列からのビット配列ＤＭＡ読み取りデータを異なる順序で４つの出力バイト列に切り替えることが可能となる。バイト列マルチプレクサの制御は動作中ＤＭＡ読み取りチャンネルで行われる。
【０１４５】
バイトアンパックロジック５４４は、ホストメモリにバイト単位で整列されたアドレス上に動作中ＤＭＡチャンネル経由で、書き込むためにＦＩＦＯから個々の選択可能なバイトへクウォドレットデータ読み取りを解体するために必要なロジックを実行する。このロジックは４つの８ビット幅レジスタと４つの８対１マルチプレクサとで構成される。各レジスタとマルチプレクサとの対は１つのバイト列に対応する。各レジスタの入力は入力バイト列に接続され、これはＦＩＦＯから駆動される。各マルチプレクサの出力は出力バイト列に接続され、これはＤＭＡチャンネルによってホストメモリに切り替えられる。各々の８対１マルチプレクサに対して４つの入力が１対１対応で各レジスタ出力に接続される。残りの４つの入力は１対１対応で各レジスタ入力に接続される。この構成でＦＩＦＯからのクウォドレット読み取りを異なる順序で出力バイト列上に切り替えることが可能となる。バイト列マルチプレクサの制御は動作中ＤＭＡ書き込みチャンネルによって行われる。
【０１４６】
本発明を詳細に渡って説明してきたが、種々の変更、代入および改造が添付の請求項で定義された本発明の精神ならびに範囲から逸脱することなく実行できることを理解されたい。
【０１４７】
以上の説明に関して更に以下の項を開示する。
（１）データパケット転送機器を自律モードで動作させるための方法であって：
自律ブートモード選択信号をデータ転送機器に導き；
データ転送機器の自律動作用のデータ転送機器に関連するレジスタを構築し；
前記データパケット転送機器を自律モードで動作させるための少なくとも１つのプログラム制御リストにデータを転送するように、データパケット転送機器に関連する直接メモリアクセスを可能とする、以上の手順を含む、前記方法。
【０１４８】
（２）第１項記載の方法が更に、ＤＭＡチャンネル０を使用し第一ＰＣＬのアドレスを取り込む手順を含む、前記方法。
【０１４９】
（３）第１項記載の方法が更に、外部ＲＰＬ  ＲＯＭ装置にＤＭＡマスタアクセスを可能とする手順を含む、前記方法。
【０１５０】
（４）第１項記載の方法が更に、外部ＰＣＩインタフェース機器にＤＭＡマスタアクセスを可能とする手順を含む、前記方法。
【０１５１】
（５）第１項記載の方法が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩメモリ命令の実行を制御する手順を含む、前記方法。
【０１５２】
（６）第１項記載の方法が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩ入出力命令の実行を制御する手順を含む、前記方法。
【０１５３】
（７）第１項記載の方法が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩ構築命令の実行を制御する手順を含む、前記方法。
【０１５４】
（８）データパケット転送機器を自律モードで動作させるための自律ブート回路であって：
自律ブートモード選択信号をデータ転送機器に導くための導入回路と；
データ転送機器の自律動作用のデータ転送機器に関連するレジスタを構築する命令と；を含み、そして
前記導入回路が更に、前記データパケット転送機器を自律モードで動作させるための少なくとも１つのプログラム制御リストにデータを転送するためのデータ転送機器に関連している、前記自律ブート回路。
【０１５５】
（９）第８項記載の自律ブート回路が更に、ＤＭＡチャンネル０を使用し第一ＰＣＬの自律ブート回路アドレスを取り込む回路を含む、前記自律ブート回路。
【０１５６】
（１０）第８項記載の自律ブート回路が更に、外部ＲＰＬ  ＲＯＭ装置にＤＭＡマスタアクセスを可能とする回路を含む、前記自律ブート回路。
【０１５７】
（１１）第８項記載の自律ブート回路が更に、外部ＰＣＩインタフェース機器にＤＭＡマスタアクセスを可能とする回路を含む、前記自律ブート回路。
【０１５８】
（１２）第８項記載の自律ブート回路が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩメモリ命令の実行を制御する回路を含む、前記自律ブート回路。
【０１５９】
（１３）第８項記載の自律ブート回路が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩ入出力命令の実行を制御する回路を含む、前記自律ブート回路。
【０１６０】
（１４）第８項記載の自律ブート回路が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩ構築命令の実行を制御する回路を含む、前記自律ブート回路。
【０１６１】
（１５）パーソナルコンピュータ環境であって：
データパケット転送バスを採用した少なくともひとつの周辺機器と；
コンピュータとを含み、
前記コンピュータが、
ＰＣＩバスを含むホストＣＰＵと；
前記ＰＣＩバスと前記周辺機器との間のインタフェースを行うＰＣＩインタフェース機器であって、該ＰＣＩインタフェース機器が、データパケット転送機器を自律モードで動作させるための自律ブート回路を含み、
該自律ブート回路が：
自律ブートモード選択信号をデータ転送機器に導くための導入回路と；
データ転送機器の自律動作用のデータ転送機器に関連するレジスタを構築する命令とを含み、
前記導入回路が更に、前記データパケット転送機器を自律モードで動作させるための少なくとも１つのプログラム制御リストにデータを転送するためのデータ転送機器に関連している、前記パーソナルコンピュータ環境。
【０１６２】
（１６）第１５項記載の自律ブート回路が更に、ＤＭＡチャンネル０を使用し第一ＰＣＬの自律ブート回路アドレスを取り込む回路を含む、前記パーソナルコンピュータ環境。
【０１６３】
（１７）第１５項記載の自律ブート回路が更に、外部ＲＰＬ  ＲＯＭ装置にＤＭＡマスタアクセスを可能とする回路を含む、前記パーソナルコンピュータ環境。
【０１６４】
（１８）第１５項記載の自律ブート回路が更に、外部ＰＣＩインタフェース機器にＤＭＡマスタアクセスを可能とする回路を含む、前記パーソナルコンピュータ環境。
【０１６５】
（１９）第１５項記載の自律ブート回路が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩメモリ命令の実行を制御する回路を含む、前記パーソナルコンピュータ環境。
【０１６６】
（２０）第１５項記載の自律ブート回路が更に、前記データパケット転送機器が自律ブートモード選択信号に従ってＰＣＩ入出力命令の実行を制御する回路を含む、前記パーソナルコンピュータ環境。
【０１６７】
（２１）ＰＣＩシリアルバスインタフェース機器２０を自律モードで自律的に動作させるための方法およびシステムであり、自律ブートモード選択信号をデータ転送機器に導くための導入回路３７０を含む。命令はデータ転送機器を自律動作させるためのデータ転送機器に関連したレジスタ３６、３８を構成する。導入回路３７０は、データを転送するデータパケット転送機器を、該データパケット転送機器を自律モードで動作させるための少なくとも１つのプログラム制御リスト４５６に関連づける。
【図面の簡単な説明】
【図１】本発明を組み入れたパーソナルコンピュータ環境の動作概要図を図示する。
【図２】本発明の機能ロジックの一般的動作概要図を示す。
【図３】本発明の比較ロジックの概念図を図示する。
【図４】本発明の比較ロジックの更に詳細な概念表現を示す。
【図５】本発明のパケット受信機ロジックのヘッダ比較機能の更に詳細を図示する。
【図６】本発明に適用される一致データセットフィールドとして考えられるデータ値を図示する。
【図７】本発明に適用される一致データセットフィールドとして考えられるデータ値を図示する。
【図８】本発明に適用される一致データセットフィールドとして考えられるデータ値を図示する。
【図９】本発明に適用される一致データセットフィールドとして考えられるデータ値を図示する。
【図１０】本発明のプログラム可能選択的書き込み可能データフリップフロップのひとつの実施例を図示する。
【図１１】本発明のプログラム可能ビット選択機能を実現するための、アドレスフィールド例を示す。
【図１２】時分割多重処理されている直接メモリアクセス、多重チャンネル環境の図を示し、本発明のＤＭＡ命令処理動作を図示する。
【図１３】現時点で動作中のチャンネルに基づく優先順位の割り当てを図示する表を示す。
【図１４】自動ブート機能に適用可能な、本発明のインタフェース装置構造の一部を示す。
【図１５】図１４の自動ブートピンが動作中状態にセットされた際の、内部ＰＣＩアドレスバスのビット３１及び３０に対応するＰＣＩマスタバス命令の表を示す。
【図１６】本発明のローカルバスインタフェースをブロック図形式で示す。
【図１７】水平および垂直同期信号を検出するための本発明のインタフェース装置のロジックを図式的に示す。
【図１８】単一データパケットを単一走査線へ誘導する操作を含む、本発明の別の機能を図示する。
【図１９】単一データパケットを多重ビデオ走査線に写像するための、本実施例の動作を示す。
【図２０】本発明のＤＭＡパケット処理装置で使用されるパケット制御リストデータ構造ならびにデータバッファのメモリマップを図示する。
【図２１】ＤＭＡ機械の部分的流れ図を示し、本発明のパケット処理装置動作を図示する。
【図２２】ＤＭＡ機械の部分的流れ図を示し、本発明のパケット処理装置動作を図示する。
【図２３】ＤＭＡ機械の部分的流れ図を示し、本発明のパケット処理装置動作を図示する。
【図２４】ＤＭＡ機械の部分的流れ図を示し、本発明の非同期送信動作を図示する。
【図２５】ＤＭＡ機械の部分的流れ図を示し、本発明の非同期送信動作を図示する。
【図２６】ＤＭＡ機械の部分的流れ図を示し、本発明の非同期送信動作を図示する。
【図２７】ＤＭＡ機械の部分的流れ図を示し、本発明の等時間間隔送信動作を図示する。
【図２８】本発明の補助機能流れ図の例を示す。
【図２９】本発明の補助機能流れ図の例を示す。
【図３０】ＤＭＡ機械の部分的流れ図を示し、本発明のローカルバス／ＰＣＩバス相互通信動作を図示する。
【図３１】本発明のＦＩＦＯ回路の中で生じる機能の、高いレベルでの概念図である。
【図３２】本発明のＦＩＦＯ回路の中で生じる機能の、高いレベルでの概念図である。
【符号の説明】
１０  パーソナルコンピュータ環境
１２  パーソナルコンピュータ
１４  周辺機器
１６  インタフェースバス
１８  ３ポート物理層インタフェース
２０  ＰＣＩインタフェースＡＳＩＣ
２２  シリアルＥＰＲＯＭ
２４  ＰＣＩバス
２６  補助ポートローカルバス
２８  ローカルバス
３０、３１  アドレスビット
３４  ＰＣＩホストブリッジ
３６  フラッシュＰＲＯＭ
３８  （ＤＭＡ）チャンネル制御静的ＲＡＭ（ＳＲＡＭ）
４０  使用者定義機能（ＡＵＸ）
４２  ビデオ入出力用ズームビデオ（ＺＶ）ポート
４６  ローカルメモリ
４８  ＣＤ  ＲＯＭ装置
５０  レーザプリンタ
５２  デスクトップカメラ
５６  ビデオケーブルセットトップボックス
６０  ＰＣＩバスロジック
６２  シリアルＥＰＲＯＭインタフェース
６４  ＰＣＩマスタロジック
６６  ＰＣＩスレーブロジック
６８  ＰＣＩ構成制御ならびに状態レジスタ
７０  ローカルバスインタフェースロジック
７２  ＤＭＡロジック
７４  ＤＭＡエンジン
７６  ＤＭＡ制御ならびに状態レジスタ
７８  ＦＩＦＯロジック
８０  汎用受信ＦＩＦＯ
８２  非同期伝送ＦＩＦＯ
８４  等時間間隔伝送ＦＩＦＯ
８６  ポインタアドレス写像ロジック
８８  ＦＩＦＯ制御ならびに状態レジスタ
９０  リンク層制御ロジック
９２  制御ならびに状態レジスタ
９４  周期監視ロジック
９６  周期タイマロジック
９８  パケット伝送制御ロジック
１００  ＣＲＣロジック
１０２  パケット受信機制御ロジック
１０４  物理リンクインタフェースロジック
１０６  受信データ
１１０  ＤＭＡヘッダ比較レジスタおよびロジック
１２０  ＤＭＡチャンネルヘッダ比較ロジック
１２８  優先順位符号化器
１２９  論理ＯＲ回路
１３６  行き先ＩＤ比較ロジック
１４０  転送コード比較ロジック
１４４、１４６  比較ロジック
１５０  ＡＮＤ機能
１６０  転送コード
１６２  非同期ヘッダ
１６４  転送コードビット
１６６  等時間間隔ヘッダ
２５０  レジスタ書き込み回路
２５２  汎用Ｉ／Ｏ（ＧＰＩＯ）書き込みデータ入力
２５４  データフリップフロップ
２５６  クロック信号
２５８  書き込み可能入力
２６０  ＡＮＤ機能
２６２  ＧＰＩＯアドレス了承信号
２６４  書き込み標準信号
２６６  ＧＰＩＯアドレスビット入力
３００  ＤＭＡ命令処理環境
３０２  ＰＣＩレジスタ書き込みデータ
３０４  マルチプレクサ
３０６  ＤＭＡレジスタ書き込みデータ
３１０  ＤＭＡレジスタ
３１２  前回アドレスまたは暫定フィールド
３１４  パケット制御リスト開始アドレスレジスタ
３１６  ＤＭＡバッファ開始アドレスレジスタ
３２０  ＤＭＡ状態レジスタ
３２２  ＤＭＡ制御レジスタ
３２４  現ＤＭＡ状態レジスタ
３２６  準備完了ビット
３２８  ＤＭＡレジスタ書き込み調停選択回路
３３０  ＰＣＩスレーブ信号
３３２  ＰＣＩマスタ信号
３３４  ＤＭＡＰＣＩマスタ周期入力
３３６  スレーブ終了入力
３４０  ＤＭＡチャンネル調停器
３４２  ロックチャンネル入力
３４４  マルチプレクサ
３４６  マルチプレクサ
３４８  スレーブレジスタ読み込みアドレス入力
３５０  ＤＭＡレジスタ読み取りデータ出力
３７０  自動ブート入力
３９０  ローカルバスインタフェースブロック
３９２  ローカルバス構成レジスタ
３９４  ズームビデオ（ＺＶ）復号インタフェースブロック
３９６  ＺＶ機械
３９８  アドレス／データ／ビット可能化保持レジスタ
４００  ローカルバスインタフェース状態機械
４０２  スレーブ確認肯定割り込みブロック
４１０  ズームポートアドレスマップ
４１２  等時間間隔パケットヘッダ
４１４  等時間間隔パケットデータ
４１６  メモリ空間
４４０  ズームビデオ等時間間隔パケット
４５０  ＰＣＩ待ち行列
４５２  開始アドレス
４５４  ダミーパケット制御リスト
４５６  転送命令パケット制御リスト
４６６  シーケンシャルリスト
４７２  論理機能
４８０  ＤＭＡレジスタ
４８４  条件成立時の行き先アドレス
５０１  二重ポートＲＡＭ
５０２  リンク側クロック領域
５０４  ＰＣＩ側クロック領域
５０６  クロック領域ポインタ翻訳ロジック
５０８  ＤＭＡ  ＦＩＦＯ占有状態ロジック
５１０  ＤＭＡロジック信号
５１２  クロック領域ポインタ翻訳ロジック
５１４  送信機および受信機占有状態ロジック
５１６  １３９４送信受信ロジック信号
５１８  マルチプレクサ
５２０  マルチプレクサ
５２２  汎用受信書き込みポインタ
５２４  非同期送信読み取りポインタ
５２６  当時間間隔送信読み取りポインタ
５２８  汎用受信ポインタ
５３０  非同期送信書き込みポインタ
５３２  当時間間隔送信書き込みポインタ
５３６  リンククロック２５ＭＨｚ信号
５３８  １３９４送信／受信ロジック
５４０  バイトパックロジック
５４２  ３３ビットデータバス
５４６  ＰＣＩ側データ出力３３ビットバス
【図１】
0003967792.tif 000003
【図２】
0003967792.tif 000004
【図３】
0003967792.tif 000005
【図４】
0003967792.tif 000006
【図５】
0003967792.tif 000007
【図６】
0003967792.tif 000008
【図７】
0003967792.tif 000009
【図８】
0003967792.tif 000010
【図９】
0003967792.tif 000011
【図１０】
0003967792.tif 000012
【図１１】
0003967792.tif 000013
【図１２】
0003967792.tif 000014
【図１３】
0003967792.tif 000015
【図１４】
0003967792.tif 000016
【図１５】
0003967792.tif 000017
【図１６】
0003967792.tif 000018
【図１７】
0003967792.tif 000019
【図１８】
0003967792.tif 000020
【図１９】
0003967792.tif 000021
【図２０】
0003967792.tif 000022
【図２１】
0003967792.tif 000023
【図２２】
0003967792.tif 000024
【図２３】
0003967792.tif 000025
【図２４】
0003967792.tif 000026
【図２５】
0003967792.tif 000027
【図２６】
0003967792.tif 000028
【図２７】
0003967792.tif 000029
【図２８】
0003967792.tif 000030
【図２９】
0003967792.tif 000031
【図３０】
0003967792.tif 000032
【図３１】
0003967792.tif 000033
【図３２】
0003967792.tif 000034