(57)【要約】【課題】レガシー入出力装置と組込み型ＤＭＡコントローラを持つ入出力装置とが混在するコンピュータシステムで、ＤＭＡを実行できない。【解決手段】グループに組織された入出力装置のグループの各メンバにダイレクトメモリアクセスを提供する。各入出力装置のダイレクトメモリアクセスは、予め定められたグループに基づいて予め定められた順序で実行され、割り込み要求による通知によって完了する。予め定められたグループの各入出力装置による各メモリアクセスの間に、予め定められた時間遅れが規定されてもよい。【選択図】図２
2006209778.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムでダイレクトメモリアクセスを実現する方法であって、
複数の入出力装置を予め定められたグループに割り当て、
予め定められたグループに基づいて予め定められた順序で各入出力装置のダイレクトメモリアクセスを実行することを含む方法。
【請求項２】
各入出力装置のダイレクトメモリアクセスは、割り込み要求による通知によって完了することを特徴とする請求項１に記載の方法。
【請求項３】
前記入出力装置のダイレクトメモリアクセスは、それぞれの予め定められた入出力グループの中で予め定められた順序にしたがって行われることを特徴とする請求項１に記載の方法。
【請求項４】
ダイレクトメモリアクセスは、入出力グループ識別タグ、予め定められた時間遅れおよびコマンドからなるメモリアクセス要求フォーマットと関連づけて遂行されることを特徴とする請求項１に記載の方法。
【請求項５】
前記メモリアクセス要求フォーマットは、複数コマンドを実行する間の時間遅れ、メモリアドレス、入出力アドレスサイズ、アクセスサイズ、マスクおよび即値データをさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記入出力装置は、予め定められたアクセスシーケンスに基づいて入出力装置のグループにそれぞれ割り当てられることを特徴とする請求項１に記載の方法。
【請求項７】
コンピュータシステムでダイレクトメモリアクセスを実現する方法であって、
複数の入出力装置を、メモリアクセスを取得するための予め定められた入出力装置のグループにそれぞれ割り当て、
予め定められた順序にしたがって一つまたは複数の入出力装置のメモリアクセスを実行し、
予め定められたグループの各入出力装置による各々のメモリアクセスの間に、指定された時間遅れを与えることを特徴とする方法。
【請求項８】
ダイレクトメモリアクセスは、入出力グループ識別タグ、予め定められた時間遅れおよびコマンドからなるメモリアクセス要求フォーマットと関連づけて遂行されることを特徴とする請求項７に記載の方法。
【請求項９】
前記メモリアクセス要求フォーマットは、複数コマンドを実行する間の時間遅れ、メモリアドレス、入出力アドレスサイズ、アクセスサイズ、マスクおよび即値データをさらに含むことを特徴とする請求項７または８に記載の方法。
【請求項１０】
予め定められた入出力装置のグループは、所定の期間内にデータを処理可能であることを特徴とする請求項７または８に記載の方法。
【請求項１１】
前記入出力装置は、予め定められたアクセスシーケンスに基づいて入出力装置のグループにそれぞれ割り当てられることを特徴とする請求項７に記載の方法。
【請求項１２】
入出力ダイレクトメモリアクセスコントローラと、
メモリと、
複数の入出力装置と、
プロセッサと、を備え、
入出力ダイレクトメモリアクセスコントローラ、メモリおよび複数の入出力装置は共有バスを介して通信しており、
前記入出力ダイレクトメモリアクセスコントローラは、予め定められたグループに基づいて予め定められた順序で各入出力装置のダイレクトメモリアクセスを実行することを特徴とするダイレクトメモリアクセスコンピュータシステム。
【請求項１３】
前記入出力装置は、予め定められたアクセスシーケンスに基づいて入出力装置のグループにそれぞれ割り当てられることを特徴とする請求項１２に記載のダイレクトメモリアクセスコンピュータシステム。
【請求項１４】
前記入出力装置は、組込み型ダイレクトメモリアクセス制御を持たないレガシー入出力装置を含むことを特徴とする請求項１２または１３に記載のダイレクトメモリアクセスコンピュータシステム。
【請求項１５】
前記入出力装置は、組込み型ダイレクトメモリアクセス制御を持たないレガシー入出力装置と、ダイレクトメモリアクセス制御を有する入出力装置の両方を含むことを特徴とする請求項１２または１３に記載のダイレクトメモリアクセスコンピュータシステム。
【請求項１６】
前記入出力装置はダイレクトメモリアクセス制御を有することを特徴とする請求項１２または１３に記載のダイレクトメモリアクセスコンピュータシステム。
【請求項１７】
一つまたは複数のプロセッサに、コンピュータシステムでのダイレクトメモリアクセスを実現させるプログラムであって、
複数の入出力装置を予め定められたグループに割り当てる命令と、
予め定められたグループに基づいて、予め定められた順序で各入出力装置のダイレクトメモリアクセスを実行する命令と、
を含むことを特徴とするプログラム。
【請求項１８】
請求項１７に記載のプログラムを格納したことを特徴とする媒体。
【請求項１９】
予め定められたグループに割り当てられる複数の入出力装置へのダイレクトメモリアクセスを実現する装置であって、
バスを介して接続される、一つまたは複数の処理ユニットと入出力ダイレクトメモリアクセスコントローラとを有する処理要素を備え、前記一つまたは複数の処理ユニットはメモリに接続可能であり、かつ命令を発行するよう動作可能であり、
前記一つまたは複数の処理ユニットは、予め定められたグループに基づいて予め定められた順序で、前記ダイレクトメモリアクセスコントローラが複数の入出力装置のダイレクトメモリアクセスを実行することを可能ならしめるようプログラムされていることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるダイレクトメモリアクセスに関する。
【背景技術】
【０００２】
ダイレクトメモリアクセス、すなわち「ＤＭＡ」は、プロセッサまたはＣＰＵの関与なしにデータ転送を実行する概念のことを指す。ダイレクトメモリアクセス装置は、特定の刺激すなわちコマンドに応答して、あるメモリロケーションまたは領域から他のロケーションまたは領域へとデータを移動することができる。
【０００３】
一般事項として、汎用プロセッサは、あるメモリロケーションから別のロケーションに単にデータを転送する点については、効率的に設計されていない。したがって、汎用プロセッサがメモリアクセスに関連するタスクを実行できたとしても、汎用プロセッサは、データのロードおよびデータの別のロケーションへのストアを繰り返し実行することで貴重なプロセッササイクルを浪費してしまう。多くの場合、ダイレクトメモリアクセス制御の使用によりプロセッサはロードおよびストアの反復実行から解放され、これによって、より意味のある処理タスクのためにプロセッサのサイクルタイムを使用できる。
【０００４】
ＤＭＡコントローラは、一般に、メモリのロードとストアの繰り返しのみを効率的に実行するように設計される。近年、ＤＭＡコントローラは、ネットワークコントローラおよびディスクコントローラ等の、大規模データ転送を処理する入出力（ＩＯ）装置に組み込まれるようになっている。これらの組込み型ＤＭＡコントローラは、メモリとの間、ネットワークとの間、ディスクドライブとの間、またはデータを移動すべきあらゆる場所にデータを転送する。この方法では、プロセッサは、現在データの準備ができていることまたはデータが所望のロケーションに送られたことを示す「割り込み」の通知によってのみ処理を妨げられるに過ぎない。
【０００５】
現在、多くの入出力装置が組込み型のＤＭＡコントローラを備える一方、多くのレガシー（旧来の）入出力装置はＤＭＡコントローラを持たない。この場合、レガシー入出力装置は、プロセッサ自身がロードおよびストアを実行してデータをコピーするように要求することができる。この種の入出力装置は、一般に、ＰＩＯ（プログラムされた入出力）装置として知られる。ＰＩＯ装置では、入出力データ転送の各ステップがプログラムされていることを必要とする。一般に、プロセッサと直接接続しないモデムやプリンタなどの低速の装置は、ＰＩＯ装置であるシリアルポート（ＵＡＲＴＳ）およびパラレルポートを介してコンピュータシステムに取り付けられる。ＰＩＯ装置は、各バイトの準備ができると、割り込みまたはポーリングに応答することによって、ＣＰＵに対してデータを装置との間で移動するよう要求することができる。したがって、多くの場合、これらＰＩＯ装置は、特定状態のチェックおよび待機、または他の順次レジスタアクセスの動作を要求する。
【０００６】
汎用ＤＭＡコントローラは、データ転送を効率化するよう設計されている。しかし、データ転送がどんなに効率的であろうとも、低速の入出力装置は相変わらず低速である。入出力装置との間の複雑なデータアクセスシーケンスを実行し、これらのタスクからプロセッサを解放するという要請がある。さらに、入出力装置は、厳密な順序づけ（逐次アクセス）を要求することができ、また、組込み型ＤＭＡ機能を持つ装置であっても、自身のレジスタへの厳密に順序づけされたアクセスを要求してもよい。
【０００７】
メモリの順序づけまたは一貫性、すなわち、プロセッサがメモリ書き込みの結果を読み取る方式は、特にマルチプロセッサシステムにとって重要な概念である。厳密な順序づけ（例えば、順序一貫性）および緩やかな順序づけ（例えば、リリース一貫性）等の、メモリ一貫性の多くの形式が存在する。厳密な順序づけを確実にするため、プログラム順序と書き込み原子性（atomicity）とが存在しなければならない。プログラム順序により、前のメモリ動作は、他のメモリ動作の開始前に完了する。データが複数回コピーされるキャッシュベースのシステムにおいては、書き込み原子性により、メモリへの書き込みが全てのプロセッサについて同じ順序にならなければならない。加えて、書き込み動作後に更新されたメモリ値は、データの更新または無効化の全てが確認される前に、読み込み動作に返されることはない。
【０００８】
緩やかな順序づけ（または、リリース一貫性）は、弱く順序づけされたデータに対するメモリ動作および同期動作の分類のことを指し、この場合、プログラム順序は、二つの同期動作の間で任意の動作が再順序づけされるのを許すことによって実施される。同期動作は、取得動作および解放動作からなる。解放動作は、共有メモリロケーションに許可を与える書き込み動作である。取得動作は、共有メモリロケーションにアクセスする読み取り動作である。解放動作は、その動作より前のメモリアクセスが完了したことを保証し、一方、取得動作は、その動作の完了前に全ての以前のメモリアクセスが完了することを要求する。システムバスは、複数のトランザクションが順序ばらばらで（out of order）完了することを許容する緩やかな順序づけで設計されてもよい。これは、より有効なバス帯域の利用を可能にする。しかしながら、トランザクションは様々なレイテンシを有する傾向にある。読み出しは、結果がターゲットから戻される必要があるが、書き込みは、発行されると直ちに完了したと見なすことができる。しかし、書き込みを実際に完了するには、ターゲットアドレスに値が書き込まれ、リードバック時にその値が返されることが必要である。
【０００９】
メインプロセッサは、典型的に、リリース一貫性すなわち緩やかな順序づけのメモリアクセスモデルにしたがって、高周波数で動作する。このモデルでは、一般に、メモリアクセスが順序ばらばらで実行される。プロセッサ速度を所与とすると、割り込みへの応答は長いストール時間の元となる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
キャッシュメモリシステムによりコンピュータシステム上のアプリケーションが開始すると、命令およびデータがハードディスクからメインメモリに移動され、プロセッサがより高速にデータおよび命令にアクセスできるようになる。ダイナミックランダムアクセスメモリ（ＤＲＡＭ）は、一般にハードディスク用のキャッシュメモリとして機能するメインメモリである。プロセッサが自身のキャッシュメモリの一つにデータを発見すると、それは「ヒット」と呼ばれる。キャッシュメモリのレベルが多数あってもよく、そのうちのいくつかはプロセッサ上にあってもよいし、プロセッサとは別であってもよい。キャッシュロケーションのうちの一つでデータを発見できないと、「ミス」と呼ばれる。各ミスは、遅延またはレイテンシをまねく。高速プロセッサの使用と関係して、キャッシュミスレイテンシの長さは、プロセッサの割り込み応答と関連している。大部分の高性能システムは、最大の帯域を達成するために順序ばらばらでメモリアクセスを実行するように設計されている。しかしながら、ＤＭＡエンジンによると、入出力装置は順序通りのアクセスを要求する。換言すると、この種のＤＭＡエンジンは様々な入出力装置へのアクセスを許可しない一方で、第１のプロセッサは第１の入出力装置へのアクセスを実行する。したがって、高性能のプロセッサシステムとともに使用されるとき、入出力装置への改善された順序通りの（in order）アクセスを実現する入出力ダイレクトメモリアクセス方法および装置が必要とされている。
【００１１】
緩やかに順序づけされたメモリモデルと高周波数プロセッサとが組み合わされて高い性能を得ることが多いが、これら二つのことは異なるものである。このような結合システムにとって、高いプロセッサ周波数というのは、プロセッサが待機またはアイドルして費やすあらゆる時間が多くの無駄なプロセッササイクルになってしまうことを意味する。緩やかに順序づけされたメモリシステムにおいて、厳密に順序づけされたアクセスは特別なケースであり、一般により低速である。しかし、この種のシステムにおける入出力装置のアクセスは、厳密に順序づけされた多くのアクセスを必要とするので、この種のシステムが制御の対象とする各装置について、順序づけされた入出力装置アクセスの実行を可能とする要請が存在する。
【課題を解決するための手段】
【００１２】
本発明の好適な態様によると、コンピュータシステムでダイレクトメモリアクセスを実現する方法が提供される。この方法は、複数の入出力装置を予め定められたグループに割り当て、予め定められたグループに基づいて予め定められた順序で各入出力装置のダイレクトメモリアクセスを実行することを含む。好適には、各入出力装置のダイレクトメモリアクセスは、割り込み要求による通知によって完了する。好適には、ダイレクトメモリアクセスは、それぞれの予め定められた入出力グループの中で予め定められた順序にしたがって行われる。
【００１３】
ダイレクトメモリアクセスは、入出力グループ識別タグ、予め定められた時間遅れおよびコマンドからなるメモリアクセス要求フォーマットと関連づけて遂行されてもよい。メモリアクセス要求フォーマットは、複数コマンドを実行する間の時間遅れ、メモリアドレス、入出力アドレスサイズ、アクセスサイズ、マスクおよび即値データをさらに含んでもよい。
【００１４】
本発明の別の態様によると、コンピュータシステムでダイレクトメモリアクセスを実現する方法が提供される。この方法は、複数の入出力装置を、メモリアクセスを取得するための予め定められた入出力装置のグループにそれぞれ割り当て、予め定められた順序にしたがって一つまたは複数の入出力装置のメモリアクセスを実行し、予め定められたグループの各入出力装置による各々のメモリアクセスの間に、指定された時間遅れを与えることを含む。ここで、ダイレクトメモリアクセスは、入出力グループ識別タグ、予め定められた時間遅れおよびコマンドからなるメモリアクセス要求フォーマットと関連づけて遂行されてもよい。メモリアクセス要求フォーマットは、複数コマンドを実行する間の時間遅れ、メモリアドレス、入出力アドレスサイズ、アクセスサイズ、マスクおよび即値データをさらに含んでもよい。
【００１５】
予め定められた入出力装置のグループは、所定の期間内にデータを処理可能である。入出力装置は、予め定められたアクセスシーケンスに基づいて入出力装置のグループにそれぞれ割り当てられる。
【００１６】
本発明の別の態様は、入出力ダイレクトメモリアクセスコントローラと、メモリと、複数の入出力装置と、プロセッサと、を備え、入出力ダイレクトメモリアクセスコントローラ、メモリおよび複数の入出力装置は共有バスを介して通信する、ダイレクトメモリアクセスコンピュータシステムを提供する。ダイレクトメモリアクセスコントローラは、予め定められたグループに基づいて予め定められた順序で各入出力装置のダイレクトメモリアクセスを実行する。
【００１７】
好適には、入出力装置は、予め定められたアクセスシーケンスに基づいて入出力装置のグループにそれぞれ割り当てられる。入出力装置は、組込み型ダイレクトメモリアクセス制御を持たないレガシー入出力装置を含んでもよい。入出力装置は、組込み型ダイレクトメモリアクセス制御を持たないレガシー入出力装置と、ダイレクトメモリアクセス制御を有する入出力装置の両方を含んでもよい。入出力装置はダイレクトメモリアクセス制御を有してもよい。
【００１８】
本発明の別の態様は、一つまたは複数のプロセッサに、コンピュータシステムでダイレクトメモリアクセスを実現させるための命令を格納する媒体であって、複数の入出力装置を予め定められたグループに割り当てる命令と、予め定められたグループに基づいて、予め定められた順序で各入出力装置のダイレクトメモリアクセスを実行する命令と、を含む媒体を提供する。
【００１９】
本発明のさらに別の態様は、予め定められたグループに割り当てられる複数の入出力装置へのダイレクトメモリアクセスを実現する装置を提供する。この装置は、バスを介して接続される、一つまたは複数の処理ユニットと入出力ダイレクトメモリアクセスコントローラとを有する処理要素を備え、前記一つまたは複数の処理ユニットはメモリに接続可能であり、かつ命令を発行するよう動作可能である。一つまたは複数の処理ユニットは、予め定められたグループに基づいて予め定められた順序で、ダイレクトメモリアクセスコントローラが複数の入出力装置のダイレクトメモリアクセスを実行することを可能ならしめるようプログラムされている。
【発明を実施するための最良の形態】
【００２０】
本発明は、一般に、入出力ＤＭＡコントローラ（ＤＭＡＣ）等の入出力（ＩＯ）ダイレクトメモリアクセスエンジンを使用して、上述の組込み型ＤＭＡコントローラを持たない、ＰＩＯ装置等の入出力レガシー（legacy）装置と、入出力装置またはそのメモリへの厳密に順序づけしたアクセスが要求される他の環境との両方をサポートすることに関する。本発明は、プロセッサの代わりにこの種のレガシー装置へのメモリアクセスの仕事を処理可能な入出力ＤＭＡコントローラを利用し、その結果、システム全体の処理速度を改善する。
【００２１】
組込み型ＤＭＡＣを持たないレガシー入出力装置を含む入出力装置へのデータアクセスが必要とされ、かつ、この種のデータアクセスタスクの実行からシステムのメインプロセッサ（および／またはサブプロセッサ）を解放することが望まれる任意のコンピュータ処理システムにおいて、入出力ＤＭＡＣエンジンを使用可能である。また、入出力ＤＭＡＣエンジンは、厳密に順序づけしたメモリアクセスが要求される場合にも使用可能である。この厳密に順序づけしたメモリアクセスは、例えば、装置の状態を確認し修正するために使用される制御レジスタを入出力装置が有し、これら制御レジスタへのアクセスが所定の順序でなされなければならないコンピュータシステムとの間でデータを転送するために要求される。また、特定のレジスタへのアクセスによって制御可能な状態遷移を有するコンピューティングシステムにおける他の装置は、装置の状態を適切に変化させるために、制御レジスタへの順序づけされたアクセスを要求してもよい。
【００２２】
図１は、入出力ＤＭＡＣを使用して様々な入出力装置にアクセスするプロセッサシステムのブロック図である。特に、システムは、汎用プロセッサまたは中央演算処理装置であってよいメインプロセッサ１００を備える。メインプロセッサ１００は、システムバス１０２を介して、メモリ１０４、入出力ＤＭＡＣ１０６、入出力装置１（１０８）、入出力装置２（１１０）、入出力装置３（１１２）と通信する。メモリ１０４は、ＤＲＡＭ、ＳＲＡＭ等のＲＡＭメモリの任意の形態のように、この種のコンピュータシステムによって使用される任意のタイプのメモリであってよい。
【００２３】
入出力装置１０８、１１０および１１２等の一つまたは複数の入出力装置が備えられる。これらは、例えばネットワークインタフェース、ディスクドライブコントローラ、モデム等の、現行の入出力装置またはレガシー入出力装置であってよい。共通システムバス構成が好適であり、これを説明のために図１に示すが、システムアーキテクチャに応じて他のバス構成、例えば、入出力ＤＭＡＣ１０６について別のバスを用いるような構成を使用してもよい。
【００２４】
図２は、本発明にしたがった図１のプロセッサシステムによる様々な入出力装置のメモリアドレッシングを示す概略図である。すなわち、本発明の好適な態様にしたがって、予め定められた方法またはパターン、すなわち入出力装置をグループ化して所望の順次アクセスを維持することによって、ダイレクトメモリアクセスが実行される。例えば、入出力装置の一グループは、所定の順序でのアクセスを要求する二台以上の動作可能な入出力装置から構成される。これらは、図２では、入出力グループ３の二台の装置として入出力装置３ａ、入出力装置３ｂが示されている。最初に入出力装置３ａ、次に入出力装置３ｂの順序でアクセスされなければならない。「グループ」は、一つまたは複数の入出力装置から構成することができる。
【００２５】
複数の入出力装置および入出力装置のグループへの順次ダイレクトメモリアクセスを説明し、また順次ダイレクトメモリアクセスを可能にするために、好適には、入出力ＤＭＡＣ１０６によってタグ付け（タギング）システムが使用される。例えば、タグ１、タグ２、タグ３と表記されたタグによって、入出力ＤＭＡＣは、指定された順序で各入出力装置へのメモリアクセスを実行することができる。指定された順序は、例えば、入出力装置１、入出力装置２、続いて、グループ３の入出力装置３ａ、入出力装置３ｂという順序である。タグ付けは入出力装置のグループへの順次アクセスを可能にするだけでなく、装置グループ内の入出力装置へのアクセスの順序をも指定する。
【００２６】
加えて、入出力ＤＭＡＣ１０６は、入出力装置のための割り込み要求を管理することができる。
【００２７】
各入出力装置または入出力装置グループは、コマンドパラメータを含む予め定められたフォーマットにしたがってデータを要求することができる。好適には、コマンドパラメータには、送信元アドレス、宛先アドレス、サイズ（例えば、メモリ転送の総サイズ）またはマスク（すなわち、アクセスマスク）、アクセスサイズ（例えば、各アクセスに対して使用されるべきサイズ）、グループを識別しグループ順序を提供するためのグループ識別タグ番号、各コマンドを実行する間の予め定められた時間遅れ、データ（例えば、即値データ）、命令（例えば、ＧＥＴ、ＰＵＴ、即値データのＰＵＴ、レジスタのポーリング）が含まれる。
【００２８】
コマンド毎の特定パラメータに関する詳細とともに、サンプルコマンドの簡単な説明を以下に述べる。
【００２９】
ＰＵＴ
ＰＵＴコマンドは、メモリからメモリマッピングされた装置のバッファへの一般的に大量のデータの転送を指定する。タグ、遅延、メモリアドレス、入出力アドレス、サイズおよびアクセスサイズの指定のほか、ＰＵＴコマンドを指定する際の遅れは、次のコマンドが実行される前で各メモリ転送コマンドの後に適用される。ＰＵＴ機能を指定するとき、固有のアクセスサイズを要求する装置にしたがって、アクセスサイズが指定されてもよい。したがって、指定されたアクセスサイズに適合するように、ＰＵＴデータ転送が分解されてもよい。
【００３０】
ＧＥＴ
ＧＥＴコマンドは、メモリマッピングされた装置のバッファからメインメモリに大量のデータを転送する。ＧＥＴの実行は、タグ、遅延、メモリアドレス、入出力アドレス、サイズおよびアクセスサイズの指定に関連して行われる。
【００３１】
ＰＵＴ  ＦＩＸＥＤ
データが先入れ先出し（ＦＩＦＯ）レジスタに転送される。サイズおよびアクセス時間にしたがって、同じアドレスに対して書き込みが繰り返される。特に、通常のパラメータ指定のほか、毎回の反復転送の後に繰り返し遅延が適用される。さらに、毎回の反復データ転送によってアドレスはインクリメントされない。また、アクセスサイズがＦＩＦＯレジスタのサイズと一致するように、アクセスサイズが指定されなければならない。
【００３２】
ＧＥＴ  ＦＩＸＥＤ
ＧＥＴ  ＦＩＸＥＤは、データをＦＩＦＯレジスタに転送する。サイズおよびアクセスサイズの指定のほか、同じアドレスに対して書き込みが繰り返される。
【００３３】
ＰＵＴ  ＩＭＭＥＤＩＡＴＥ
ＰＵＴ  ＩＭＭＥＤＩＡＴＥは、レジスタへのデータの書き込みを指定する。このコマンドは、データシーケンス内での特定レジスタのアクセスに関して有用である。これは、単一の転送コマンドを表す。データパラメータは、指定されたアクセスサイズを有する指定された入出力アドレスに対してのデータの書き込みを指定する。
【００３４】
ＰＯＬＬ  ｆｏｒ  ＣＯＮＤＩＴＩＯＮ
ＰＯＬＬ  ｆｏｒ  ＣＯＮＤＩＴＩＯＮは、待機機能を提供する。マスクパラメータにより定められるようにマスクされた読み取りデータが指定されたデータと一意するまで、指定されたアドレスがポーリングされる。
【００３５】
Ｉｎｔｅｒｒｕｐｔ  Ｒｅｑｕｅｓｔ
Ｉｎｔｅｒｒｕｐｔ  Ｒｅｑｕｅｓｔにより、割り込みがプロセッサに送信される。一つまたは複数のパラメータによって、割り込みがプロセッサに渡される方法について特定してもよい。タグは、割り込みの順序を指定する。
【００３６】
Ｉｎｔｅｒｒｕｐｔ  Ａｃｋｎｏｗｌｅｄｇｅ
このコマンドは、ＤＭＡエンジンの指定されたタグの割り込み状態をクリアする。
【００３７】
本発明のダイレクトメモリアクセス制御スキームは、各アクセス間で少なくとも数マイクロ秒の休止時間を必要とし順序正しい装置アクセスを要求する非インテリジェントな入出力装置とともに用いると、特に有用である。ダイレクトメモリアクセス制御スキームは、入出力データ転送のためにＤＭＡを使用しないシステムで使用されてもよい。ＤＭＡを用いるシステム、特に待機を伴う特定の順次アクセスを入出力装置が要求するシステムにおけるパフォーマンスも改善するが、ＤＭＡを使用しないシステムにおけるパフォーマンスの改善も大きくなるはずである。
【００３８】
本発明はまた、内蔵ＤＭＡコントローラを持たず、またアクセスレイテンシが長く、レジスタアクセスサイズが小さく、および／またはアクセス順序が複雑なレガシー入出力装置に伴うアクセス問題に対処する。この種の入出力装置へのアクセスはオーバーヘッドが大きくなりうるが、このオーバーヘッドは本発明の使用により劇的に低減される。
【００３９】
本発明の好適な実施のフローチャートを図３に示す。ブロック３０２で示すように、ダイレクトメモリアクセスが遂行されるべき順序を指定するプロセスコマンドにタグが添付される。例えば、メモリへのアクセス時に、入出力装置の特定グループがアクセス優先度を有していてもよい。タグアクセスコマンドは、装置、グループ、および入出力装置の各グループ内でのアクセス優先度を指定してもよい。コマンドが順序づけされた後、ブロック３０４で示すように、複数の命令が実行のために入出力ＤＭＡＣによりキューに入れられる。コマンドの実際の記憶は、ＤＲＡＭ、メインメモリ等のメモリのどこかで発生してよい。ブロック３０６で示すように、タグによって部分的に指定されたように、キューの順序にしたがって、入出力ＤＭＡＣがキュー内のコマンドを実行する。ブロック３０８で示すように、メモリの整合性を維持するために、システムのメインプロセッサおよび関係する任意のサブプロセッサに対して、実行されたＤＭＡコマンドの完了が通知される。
【００４０】
入出力ＤＭＡＣによりキュー内で実行されるコマンドのサンプルシーケンスを以下に示す。
【００４１】
Ａ）  ＰＵＴ  ＩＭＭＥＤＩＡＴＥ；
Ｂ）  ＰＵＴ  ＦＩＸＥＤ；
Ｃ）  ＰＵＴ  ＩＭＭＥＤＩＡＴＥ；
Ｄ）  ＰＯＬＬ  ｆｏｒ  ＣＯＮＤＩＴＩＯＮ；ａｎｄ
Ｅ）  Ｉｎｔｅｒｒｕｐｔ  Ｒｅｑｕｅｓｔ．
【００４２】
例えばシリアル通信装置によって実施されるこのサンプルシーケンスにおいて、入出力装置は書き込みモードにセットされ、データのパケットがＦＩＦＯレジスタに書き込まれる。ＰＵＴ  ＩＭＭＥＤＩＡＴＥコマンドにより転送コマンドが入出力装置に送信され、ＰＯＬＬ  ｆｏｒ  ＣＯＮＤＩＴＩＯＮコマンドは、同等の装置のうちの一つからのデータ転送を確認する信号を入出力装置が受け取ったか否かをチェックする。プロセッサが上述のコマンドシーケンスをキューに入れると、実際の割り込みを受け取るまでプロセッサは入出力装置と対話する必要はない。ダイレクトメモリアクセススキームにしたがったデータ転送プロセスは、データが転送された割り込み確認のプロセッサへの受信時に、完了する。
【００４３】
図４に示すように、使用可能なアーキテクチャの一例は、全てのプロセッサが共通の計算モジュール（いわゆるセルアーキテクチャ）から構成されているマルチプロセッシングコンピュータシステムである。この共通のコンピューティングモジュールは、均一の構造を有し、好適には同一の命令セットアーキテクチャを使用する。セル、すなわちアプリケーションおよび／またはデータを含むソフトウェアのユニットは、同一の命令セットを有する任意のプロセッサによって実行可能である。マルチプロセッシングコンピュータシステムは、一つまたは複数のクライアント、サーバ、ＰＣ、モバイルコンピュータ、ゲーム機、ＰＤＡ、セットトップボックス、電気器具、ディジタルテレビ、およびコンピュータプロセッサを使用する他の装置で構成することができる。
【００４４】
このアーキテクチャにおいて、基本的な処理モジュールはプロセッサ要素である。この点に関して、図４は、基本的処理モジュールすなわちプロセッサ要素（ＰＥ）４００のブロック図を示す。図示するように、ＰＥ４００は、処理ユニット（ＰＵ）４０２、複数のサブ処理ユニット４０４、４０６、４０８、入出力ＤＭＡＣ４１０、およびメモリインタフェース４１２を備える。ローカル（または、内部）システムバス４２０は、データ、コマンドおよびアプリケーションを、ＰＵ４０２、サブ処理ユニット（ＳＰＵ）４０４、４０６、４０８、入出力ＤＭＡＣ４１０、メモリインタフェース４１２、メモリ４１４、入出力装置１（４３０）、入出力装置２（４３２）、入出力装置３（４３４）の間で送信する。
【００４５】
入出力ＤＭＡＣ４１０は、ＰＥ４００と一体であってもよいし、ＰＥ４００と別に配置されてもよく、さらにチップ上にあってもチップ外にあってもよい。このアーキテクチャにおける入出力ＤＭＡＣ４１０は本発明にしたがって使用することができ、特有の入出力装置のみおよび／または入出力装置のグループにアドレッシングしアクセスして、上述の入出力アクセスパターンを実施する。
【００４６】
本発明は、レガシー入出力装置と組込み型ＤＭＡコントローラを持つ入出力装置とが混在するコンピュータシステムで使用可能である。さらに、本発明は、組込み型入出力装置のみを有するシステムでも使用可能である。後者の場合、メモリアクセスは、入出力装置でローカルに実行されるか、または入出力ＤＭＡＣによって実行することができるが、それでもなお、入出力装置のアクセスの順序づけは本発明の入出力ＤＭＡＣに振り向けられている。例えば、ネットワークパケットを格納するバッファを有するか、またはバッファとメモリとの間でパケットを送受信する組込み型ＤＭＡ機能を有するネットワークインタフェースコントローラ（ＮＩＣ）とともに、本発明を使用することができる。パケットをネットワークに送信するとき、プロセッサは、パケットが送られるメモリを準備する必要があり、また、プロセッサは、ＮＩＣ上の制御レジスタにアクセスしてＤＭＡを設定し、メモリからパケットを取り出してそれを送出する。このシーケンスは、ＮＩＣがパケットを検索すべきアドレスの準備と、ネットワークに送信されるパケットに必要となる他のパラメータの準備とを要求してもよい。パケット通信が完了すると、装置は、プロセッサへの割り込みを準備しなければならない。このアクセスの順序は、待機遅延またはアクセス間の状態リードバック（read back）を必要としてもよい。全てのアクセスは、通常プロセッサによって行われる。しかし、本発明の入出力ＤＭＡＣを用いて、シーケンスが単一のタグに結びつけられるとき、シーケンス全体が順番に実行されるよう準備されてもよい。
【００４７】
本明細書において特定の実施形態を参照して本発明を記載したが、これらの実施形態は単に本発明の原理および適用法を例示するに過ぎないことを理解すべきである。したがって、例示の実施形態には多数の変形が可能であり、また、前掲の特許請求の範囲で規定される本発明の精神および範囲から逸脱することなく他の構成を考案できることを理解すべきである。
【図面の簡単な説明】
【００４８】
【図１】本発明にしたがった、アドレス指定可能な様々な入出力装置に接続される入出力ＤＭＡコントローラ（入出力ＤＭＡＣ）を備えるプロセッサシステムの概略図である。
【図２】本発明にしたがった図１のプロセッサシステムによる様々な入出力装置へのアドレッシングを示す概略図である。
【図３】本発明にしたがってタグ付けされたアクセスコマンドの処理のフローチャートである。
【図４】本発明による使用に適したマルチプロセッサシステムの入出力ＤＭＡＣを示すブロック図である。
【符号の説明】
【００４９】
１００  プロセッサ、  １０２  システムバス、  １０４  メモリ、  １０６  入出力ＤＭＡＣ、  １０８、１１０、１１２ａ、１１２ｂ  入出力装置。
【図１】
2006209778.tif 000003
【図２】
2006209778.tif 000004
【図３】
2006209778.tif 000005
【図４】
2006209778.tif 000006