(57)【特許請求の範囲】
【請求項１】
複数の周辺装置（６００）と、前記複数の周辺装置の各装置に接続される少なくとも１つのスイッチ（６０５）とを含むコンピュータシステムであって、
前記スイッチは、前記コンピュータシステムの複数の要素にコマンドを転送するための手段を含み、
複数の要素は、少なくとも複数の周辺装置を含み、
前記コンピュータシステムは、
少なくとも１つの第１の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置が、前記複数の要素の別個の要素にそれぞれ関連付けられる複数のメモリ領域に直接アクセスするための少なくとも１つのコマンドを開始するための手段（４２５）を含み、
前記スイッチは、前記少なくとも１つのコマンドの少なくとも一部を前記複数の要素の各要素に送信するための手段を含み、
前記複数の要素の少なくとも１つの要素は、少なくとも１つの第２の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置からなり、前記少なくとも１つの第２の周辺装置は、
前記スイッチを介して前記少なくとも第１の周辺装置から受信される、前記第２の周辺装置のメモリ領域に直接アクセスするための少なくとも１つのコマンドを、受信するための手段（４００）と、
前記少なくとも１つの受信された直接アクセスコマンドを前記第２の周辺装置の構成要素に送信するための手段（４１５）と
を含み、前記システムは、前記少なくとも第１の周辺装置が、単一コマンドに基づき、前記少なくとも第１の周辺装置のメモリと、第１の周辺装置を除く前記複数の要素の各要素との間で、少なくとも１つのデータ項目の直接転送を行うことができるようにし、
前記少なくとも１つの第１の周辺装置が、前記少なくとも１つのコマンドに応答して、前記複数の要素から受信されるデータの中の少なくとも１つのデータ項目に対して少なくとも１つの操作を行うための手段を含むことを特徴とする、コンピュータシステム。
【請求項２】
複数の周辺装置（６００）と、前記複数の周辺装置の各装置に接続される少なくとも１つのスイッチ（６０５）とを含むコンピュータシステムであって、
前記スイッチは、前記コンピュータシステムの複数の要素にコマンドを転送するための手段を含み、
複数の要素は、少なくとも複数の周辺装置を含み、
前記コンピュータシステムは、
少なくとも第１の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置が、前記複数の要素の別個の要素にそれぞれ関連付けられる複数のメモリ領域に直接アクセスするための少なくとも１つのコマンドを開始するための手段（４２５）を含み、
前記スイッチは、前記少なくとも１つのコマンドの少なくとも一部を前記複数の要素の各要素に送信するための手段を含み、
前記複数の要素の少なくとも１つの要素は、少なくとも１つの第２の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置からなり、前記少なくとも１つの第２の周辺装置は、
前記スイッチを介して前記少なくとも第１の周辺装置から受信される、前記第２の周辺装置のメモリ領域に直接アクセスするための少なくとも１つのコマンドを、受信するための手段（４００）と、
前記少なくとも１つの受信された直接アクセスコマンドを前記第２の周辺装置の構成要素に送信するための手段（４１５）と
を含み、前記システムは、前記少なくとも第１の周辺装置が、単一コマンドに基づき、前記少なくとも第１の周辺装置のメモリと、第１の周辺装置を除く前記複数の要素の各要素との間で、少なくとも１つのデータ項目の直接転送を行うことができるようにし、
前記複数の要素の少なくとも１つの要素が、前記コンピュータシステムの中央メモリ（６１０）を含むことを特徴とする、コンピュータシステム。
【請求項３】
複数の周辺装置（６００）と、前記複数の周辺装置の各装置に接続される少なくとも１つのスイッチ（６０５）とを含むコンピュータシステムであって、
前記スイッチは、前記コンピュータシステムの複数の要素にコマンドを転送するための手段を含み、
複数の要素は、少なくとも複数の周辺装置を含み、
前記コンピュータシステムは、
少なくとも第１の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置が、前記複数の要素の別個の要素にそれぞれ関連付けられる複数のメモリ領域に直接アクセスするための少なくとも１つのコマンドを開始するための手段（４２５）を含み、
前記スイッチは、前記少なくとも１つのコマンドの少なくとも一部を前記複数の要素の各要素に送信するための手段を含み、
前記複数の要素の少なくとも１つの要素は、少なくとも１つの第２の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置からなり、前記少なくとも１つの第２の周辺装置は、
前記スイッチを介して前記少なくとも第１の周辺装置から受信される、前記第２の周辺装置のメモリ領域に直接アクセスするための少なくとも１つのコマンドを、受信するための手段（４００）と、
前記少なくとも１つの受信された直接アクセスコマンドを前記第２の周辺装置の構成要素に送信するための手段（４１５）と
を含み、前記システムは、前記少なくとも第１の周辺装置が、単一コマンドに基づき、前記少なくとも第１の周辺装置のメモリと、第１の周辺装置を除く前記複数の要素の各要素との間で、少なくとも１つのデータ項目の直接転送を行うことができるようにし、
前記少なくとも１つの第２の周辺装置が、前記少なくとも１つのコマンドの前記少なくとも一部の妥当性をチェックするための手段をさらに含むことを特徴とする、コンピュータシステム。
【請求項４】
複数の周辺装置（６００）と、前記複数の周辺装置の各装置に接続される少なくとも１つのスイッチ（６０５）とを含むコンピュータシステムであって、
前記スイッチは、前記コンピュータシステムの複数の要素にコマンドを転送するための手段を含み、
複数の要素は、少なくとも複数の周辺装置を含み、
前記コンピュータシステムは、
少なくとも第１の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置が、前記複数の要素の別個の要素にそれぞれ関連付けられる複数のメモリ領域に直接アクセスするための少なくとも１つのコマンドを開始するための手段（４２５）を含み、
前記スイッチは、前記少なくとも１つのコマンドの少なくとも一部を前記複数の要素の各要素に送信するための手段を含み、
前記複数の要素の少なくとも１つの要素は、少なくとも１つの第２の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置からなり、前記少なくとも１つの第２の周辺装置は、
前記スイッチを介して前記少なくとも第１の周辺装置から受信される、前記第２の周辺装置のメモリ領域に直接アクセスするための少なくとも１つのコマンドを、受信するための手段（４００）と、
前記少なくとも１つの受信された直接アクセスコマンドを前記第２の周辺装置の構成要素に送信するための手段（４１５）と
を含み、前記システムは、前記少なくとも第１の周辺装置が、単一コマンドに基づき、前記少なくとも第１の周辺装置のメモリと、第１の周辺装置を除く前記複数の要素の各要素との間で、少なくとも１つのデータ項目の直接転送を行うことができるようにし、
前記第２の周辺装置の構成要素から受信される前記少なくとも１つの直接アクセスコマンドを前記少なくとも１つの第２の周辺装置が送信するための前記手段が、受信される少なくとも１つのデータ項目に対して少なくとも１つの操作を行うための手段を含むことを特徴とする、コンピュータシステム。
【請求項５】
前記少なくとも１つの操作が、論理演算、数学演算、ソーティング操作、符号化操作、および集約操作の中の少なくとも１つの操作を含む、請求項１に記載のシステム。
【請求項６】
前記少なくとも１つの操作を行うための前記手段が、前記少なくとも１つのコマンドに応答して、前記複数の要素から受信されるデータの中の少なくとも１つのデータ項目に従って前記少なくとも１つの操作を識別するための手段を含む、請求項１または５に記載のシステム。
【請求項７】
前記チェックする手段が、前記少なくとも１つの直接アクセスコマンドの送信者の識別子を、少なくとも１つの所定の識別子と比較するための手段を含む、請求項３に記載のシステム。
【請求項８】
前記チェックする手段が、前記第２の周辺装置の前記メモリ領域を少なくとも１つの所定のメモリ領域と比較するための手段を含む、請求項３または７に記載のシステム。
【請求項９】
前記開始する手段から得られる直接アクセスコマンドにより関係させられるメモリが、前記少なくとも１つの第２の周辺装置に属するとき、前記少なくとも第１の周辺装置が、前記少なくとも１つの第２の周辺装置を識別するための手段と、前記第２の周辺装置のメモリ領域に直接アクセスするためのコマンドを送信するための手段とをさらに含む、請求項１から８のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの少なくとも一部のメモリ領域の間のデータの転送に関し、より詳細には１つまたは複数の周辺装置が中に存在するシステムの、いくつかの構成要素のメモリ間で直接データ転送を許可するシステムに関する。
【背景技術】
【０００２】
現代のコンピュータシステムは、しばしば、周辺装置とも呼ばれる入出力システムにより中央メモリへ直接アクセスするための機構を一体化している。これらの機構は、一般にＤＭＡ型コントローラ（ＤＭＡはＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓの略）と呼ばれる。
【０００３】
このデータ送信機構によれば、周辺装置、たとえばネットワークカードまたはハードディスクインタフェースが、１つまたは複数のプロセッサによる介在なしに、それ自体でその装置の内部メモリと、その装置の外部に位置する中央メモリとの間のデータ転送を行うことができ、これらの後者は、転送すべきメモリ領域の開始アドレスおよびその領域の長さを含む読出コマンドまたは書込コマンドを送信するだけである。データ転送は、内部メモリから外部メモリに、およびその逆に行われることができる。
【０００４】
ＤＭＡ型コントローラは、データ転送中にブロック状態に導かないように、高速な周辺装置を使用して、マルチタスクコンピュータシステムで特に使用される。ＤＭＡ型コントローラは、周辺装置の内部メモリから中央メモリに、およびその逆にデータを転送するための読出要求または書込要求のイニシエータのように挙動する。
【０００５】
さらに、ＤＭＡ型コントローラは、周辺装置の内部メモリへの直接アクセスを防止することにより、周辺装置の内部メモリを保護することができるようにする。
【０００６】
図１は、ＤＭＡ型コントローラをそれぞれ備える２つの周辺装置を含むコンピュータシステムを概略的に示す。
【０００７】
図示されるように、コンピュータシステム１００は、１つまたは複数のプロセッサ１１５を一体化するマザーボード１１０が接続される入出力バス１０５、中央メモリ１２０、ならびにネットワークカード１２５および１３０を含む。これらの図解は、図１では簡略化されているが、コンピュータシステム１００は、表されているハードウェア構成要素だけでなく、ソフトウェア構成要素、たとえばシステムを実現できるようにするファームウェアも含む。ネットワークカード１２５は、バス１０５を介して、中央メモリ１２０とネットワークインタフェース１４０の間でデータが交換されることができるようにするＤＭＡ型コントローラ１３５を含む。同様に、ネットワークカード１３０は、バス１０５を介して中央メモリ１２０とインタフェース１５０の間でデータを交換されることができるようにするＤＭＡ型コントローラ１４５を含む。
【０００８】
したがって、たとえば、ネットワークインタフェース１４０が、ネットワークからデータを受信するとき、ＤＭＡ型コントローラ１３５は、バッファメモリ（表されていない）にローカルに記憶される受信データをメモリ１２０に転送するために、メモリ１２０に書き込む要求を開始する。同様に、ＤＭＡ型コントローラ１３５が、ネットワークを介してデータを送信する読出要求をプロセッサ１１５から受信したとき、メモリ１２０内のデータを読み出すための読出要求を開始し、データをインタフェース１４０に送信する。
【０００９】
同様に、ＤＭＡ型コントローラ１４５は、メモリ１２０と、カード１３０が接続されるネットワークとの間でデータが交換されることができるようにする。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＤＭＡ型コントローラは、数多くのアーキテクチャでその有効性を証明したが、コンピュータシステム、特にＨＰＣ型コンピュータシステム（ＨＰＣはＨｉｇｈ−ｐｅｒｆｏｒｍａｎｃｅ  ｃｏｍｐｕｔｉｎｇの略）の性能を絶えず改善する必要がある。
【００１１】
したがって、本発明は、特に、システムのいくつかの構成要素のメモリ間での、特にいくつかの周辺装置のメモリ間での直接データ転送を可能にするための直接メモリアクセスコントローラを実装するそのシステムを改善することを対象にする。
【課題を解決するための手段】
【００１２】
本発明は、複数の周辺装置、および前記複数の周辺装置の各装置に接続される少なくとも１つのスイッチを含むコンピュータシステムに関し、前記スイッチは、前記コンピュータシステムの複数の構成要素にコマンドを転送するための手段を含み、
少なくとも第１の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置が、前記複数の構成要素の別個の構成要素とそれぞれ関連付けられる複数のメモリ領域に直接アクセスするための少なくとも１つのコマンドを開始するための手段を含み、
前記スイッチは、前記少なくとも１つのコマンドの少なくとも一部を前記複数の構成要素の各構成要素に送信するための手段を含み、
前記複数の構成要素の少なくとも１つの構成要素は、少なくとも１つの第２の周辺装置と呼ばれる、前記複数の周辺装置の少なくとも１つの装置からなり、前記少なくとも１つの第２の周辺装置は、
前記スイッチを介して前記少なくとも第１の周辺装置から受信される、前記第２の周辺装置のメモリ領域に直接アクセスするための少なくとも１つのコマンドを、受信するための手段と、
前記少なくとも１つの受信される直接アクセスコマンドを前記第２の周辺装置の構成要素に送信するための手段と
を含み、前記システムは、前記少なくとも第１の装置が、単一コマンドに基づき、前記少なくとも第１の周辺装置のメモリと、前記複数の構成要素の各構成要素との間で、少なくとも１つのデータ項目の直接転送を行うことができるようにする。
【００１３】
したがって、本発明によるシステムは、コンピュータシステムで使用される中央メモリの量を低減するため、中央プロセッサを特定のデータ転送タスクから解放するため、および読出し／書込みの操作による待ち時間を低減するために、１つまたは複数の周辺装置が中に存在するシステムの、いくつかの構成要素のメモリ間でデータの直接転送が行われることができるようにする。システムはさらに、特に、５−９型の設備、すなわち計算される信頼度が９９．９９９９９％である設備を使用する電気通信または金融などの分野で、設備の冗長度に対する要求を満たすことができるようにする。本発明によるシステムはさらに、特に、ＨＰＣ分野、およびストリームが処理されることができるように、ストリームが計算のためにグラフィックスメモリに集中することがある視聴において、データストリームをたとえばグラフィックス装置に集約することにより、システムの性能を改善することができるようにする。
【００１４】
特定の一実施形態によれば、前記少なくとも第１の装置は、前記少なくとも１つのコマンドに応答して、前記複数の構成要素から受信されるデータの中の少なくとも１つのデータ項目に対して少なくとも１つの操作を行うための手段を含む。したがって、本発明によるシステムは、最適化の目的のために、特定のデータ項目を、それらを転送するときに処理することができるようにする。これらの操作は、たとえば論理演算、数学演算、ソーティング操作、符号化操作、または集約操作である。
【００１５】
有利なことに、前記少なくとも１つの操作を行うための前記手段は、行うべき１つまたは複数の操作を簡単な方法で識別するために、前記少なくとも１つのコマンドに応答して、前記複数の構成要素から受信されるデータの中の少なくとも１つのデータ項目に従って前記少なくとも１つの操作を識別するための手段を含む。
【００１６】
さらに特定の一実施形態によれば、前記複数の構成要素の少なくとも１つの構成要素が、前記コンピュータシステムの中央メモリを含む。したがって、本発明によるシステムは、中央メモリとの間だけではなく、１つまたは複数の周辺装置との間のデータの直接転送を同時に可能にする。
【００１７】
前記少なくとも１つの第２の周辺装置は、好ましくは、許可されないアクセスから前記少なくとも１つの第２の装置のメモリを保護するために、前記少なくとも１つのコマンドの前記少なくとも一部の妥当性をチェックするための手段をさらに含む。
【００１８】
有利なことに、前記チェックする手段は、前記少なくとも１つの直接アクセスコマンドの送信者の識別子を、少なくとも１つの所定の識別子と比較するための手段を含む。したがって、許可された周辺装置だけが、前記少なくとも１つの第２の周辺装置のメモリに直接アクセスすることができる。
【００１９】
さらに有利なことに、前記チェックする手段は、前記第２の周辺装置の前記メモリ領域を少なくとも１つの所定のメモリ領域と比較するための手段を含む。したがって、どの周辺装置も、または一部の周辺装置しかメモリ領域にアクセスすることができないように、前記少なくとも１つの第２の周辺装置のメモリ領域を保護することが可能である。
【００２０】
特定の一実施形態によれば、前記第２の周辺装置の構成要素から受信される前記少なくとも１つの直接アクセスコマンドを前記少なくとも１つの第２の装置が送信するための前記手段は、受信される少なくとも１つのデータ項目に対して少なくとも１つの操作を行うための手段を含む。したがって、本発明によるシステムは、最適化の目的のために、特定のデータ項目を、それらを転送するときに処理することができるようにする。
【００２１】
さらに特定の一実施形態によれば、前記開始する手段から得られる直接アクセスコマンドにより関係させられるメモリが前記少なくとも１つの第２の周辺装置に属するとき、前記少なくとも第１の周辺装置は、前記少なくとも１つの第２の周辺装置を識別するための手段と、前記第２の装置のメモリ領域に直接アクセスするためのコマンドを送信するための手段とをさらに含む。したがって、前記少なくとも１つの第１の周辺装置は、前記少なくとも１つの第２の周辺装置を識別して、前記少なくとも第１の周辺装置のメモリと、前記少なくとも１つの第２の周辺装置の少なくとも１つのメモリとの間で、データの直接転送を開始することができる。
【００２２】
本発明の別の有利な点、目的、および特徴が、添付図面に関する非限定的な例によって示される以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】ＤＭＡ型コントローラをそれぞれ備える２つの周辺装置を含むコンピュータシステムを概略的に示す図である。
【図２】本発明が実現されることができるコンピュータシステムの特定の構成要素を概略的に示す図である。
【図３】周辺装置間でデータの直接転送を可能にするために、特定の周辺装置のＤＭＡ型コントローラで実現されるフェーズを概略的に示す図である。
【図４】いくつかの周辺装置間でデータを直接転送するために、本発明に従うＤＭＡ型コントローラで実行される特定のステップを概略的に示す図である。
【図５】マルチポイントモードでデータ転送を行うように適合されるコンピュータシステムを示す図である。
【図６ａ】いくつかの周辺装置間でデータを直接送信し、その間に、転送されるデータに対して操作が行われることができる例を提示する図である。
【図６ｂ】いくつかの周辺装置間でデータを直接送信し、その間に、転送されるデータに対して操作が行われることができる例を提示する図である。
【図６ｃ】いくつかの周辺装置間でデータを直接送信し、その間に、転送されるデータに対して操作が行われることができる例を提示する図である。
【図６ｄ】いくつかの周辺装置間でデータを直接送信し、その間に、転送されるデータに対して操作が行われることができる例を提示する図である。
【図６ｅ】いくつかの周辺装置間でデータを直接送信し、その間に、転送されるデータに対して操作が行われることができる例を提示する図である。
【図６ｆ】いくつかの周辺装置間でデータを直接送信し、その間に、転送されるデータに対して操作が行われることができる例を提示する図である。
【図６ｇ】いくつかの周辺装置間でデータを直接送信し、その間に、転送されるデータに対して操作が行われることができる例を提示する図である。
【発明を実施するための形態】
【００２４】
一般的な言葉で言えば、本発明は、中央メモリで書き込むステップに続いて読み出すステップを必要とせずに、ＤＭＡ型コントローラを提供される周辺装置のメモリ間でデータの直接送信を可能にすることを対象にする。換言すれば、本発明は、当該の周辺装置の中へのデータ転送の最後の部分を行う間に、ＤＭＡ型コントローラがイニシエータであり、少なくとも１つの別のＤＭＡ型コントローラがターゲットとして挙動するプラットフォームトランザクションにＤＭＡ型コントローラが対応可能とする、ＤＭＡ型コントローラ間の対話のための機構の実現を可能にする。
【００２５】
したがって、図解により、図１を参照して、ネットワークカード１２５のネットワークインタフェース１４０により受信されるデータが、中央メモリ１２０を使用することなく、カード１３０のインタフェース１５０の中に直接転送されることができる。
【００２６】
いくつかの周辺装置間、特にグラフィックスカードまたはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔｓの略）とIｎｆｉｎｉｂａｎｄ）カードの間、IｎｆｉｎｉｂａｎｄカードとＥｔｈｅｒｎｅｔ（登録商標）カード間、およびIｎｆｉｎｉｂａｎｄカード間の直接通信には、特に高性能科学計算に関連して有利な点が数多くある。
【００２７】
特に、従来、ノードの演算器により行われていた計算を行うために、ますます多くのコンピューティングセンタが、グラフィックスカードを使用することが認められ、グラフィックスカードのより大きな能力が、システムの物理的設置面積を低減することができるようにする。計算を並列に行うために、相互接続ネットワークが必要とされる。中央メモリを必要とせずに、ネットワークからグラフィックスカードに、およびその逆にデータの直接転送を可能にすることにより、実装されるノードは、より少ないメモリを必要とし、そのことが電気の消費を低減し、一方、コンピュータの全コストを低減することができるようにする。同じことが、内部ネットワークと外部ネットワークの間のデータの転送に適用される。さらに、データの直接転送により、遭遇することの多い、一様ではないメモリアクセスの問題および位置の問題を克服できる。
【００２８】
本発明の実装形態は、特に、周辺装置間で使用される転送バスのアーキテクチャに、および関与する異なる装置のメモリアーキテクチャに連結される。本発明の実装形態は、好ましくは、
ＤＭＡ型コントローラ間でデータの直接転送を開始することができる、およびデータ転送の最後の部分を行うためにターゲットのように挙動することができるＤＭＡ型コントローラを含む周辺装置の識別、
ＤＭＡ型コントローラ間で、すなわちＤＭＡ型コントローラにより制御されるメモリ領域から、データを直接転送するために使用されることができ、別のＤＭＡ型コントローラ型コントローラによりアクセス可能なメモリ領域の宣言、
本発明を実現することができるＤＭＡ型コントローラを含む周辺装置のメモリから、別の類似する周辺装置へのデータ転送のための規則、特に直接のまたはプログラムされたデータ転送のための規則の定義、および
本発明を実現して、そのような装置のメモリに記憶されるデータを別の類似する周辺装置に転送することを自動化することができるようにすることができるＤＭＡ型コントローラを含む周辺装置の制御
の機能が有利に行われることができるようにする所定のプロトコルを使用して、装置内に埋め込まれる、ハードウェアのレベルおよびソフトウェアのレベルで作られることができる。
【００２９】
図２は、本発明が実現されることができるコンピュータシステム２００の特定の構成要素を概略的に示す。この場合、システムは、バスコントローラ２１５にも連結されるホストＣＰＵと呼ばれる、システムバス２１０に連結される中央メモリ２０５を含む。バスコントローラ２１５の特定の目的が、情報を変換して、システムバス２１０から周辺バス２２０に転送することである。これらの目的のために、バスコントローラ２１５は、システムバスインタフェース２２５、データインタフェース２３０、および周辺バスインタフェース２３５を含む。
【００３０】
コンピュータシステム２００は、周辺バス２２０に接続される２つの周辺装置２４０−１および２４０−２をさらに含む。
【００３１】
ここで、周辺装置２４０−１は、ネットワークカード、たとえばイーサネット（登録商標）カードである。周辺装置２４０−１は、周辺バスインタフェース２４５−１、およびその周辺バスインタフェースを介して交換されるデータパケットを処理するための関連する処理ユニット２５０−１を含む。周辺装置２４０−１は、ネットワークインタフェース２５５、およびそのネットワークインタフェースを介して交換されるデータパケットを処理するための関連する処理ユニット２６０をさらに含む。さらに、周辺装置２４０−１は、中央処理装置（またはＣＰＵ）２６５、およびたとえばＳＲＡＭ型（ＳＲＡＭはＳｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略）のローカルメモリ２７０を含む。
【００３２】
同様に、周辺装置２４０−２は、この場合、グラフィックスカードは、周辺バスインタフェース２４５−２、およびその周辺バスインタフェースを介して交換されるデータパケットを処理するための関連する処理ユニット２５０−２を含む。この装置は、共有メモリ、ローカルメモリ、および基本演算器をそれぞれ含む複数の演算器２７５−１〜２７５−ｎをさらに含む。この装置はまた、すべての演算器に共通のメモリ２８０、たとえば汎用メモリおよびテクスチャメモリ（ｔｅｘｔｕｒｅ  ｍｅｍｏｒｙ）を含む。
【００３３】
インタフェース２４５−１および２４５−２は、バスコントローラ２１５を介して、中央メモリ２０５と、周辺装置２４０−１および２４０−２の内部メモリとの間で、ならびにその逆に直接データ転送を可能にするＤＭＡ型コントローラを一体化する。
【００３４】
これらのＤＭＡ型コントローラは、データがこれらの装置の内部メモリ間で直接転送されることができるようにする機能をさらに一体化する。例示として、矢印２８５により示されるように、装置２４０−１の処理ユニット２６０のバッファメモリから、装置２４０−２のメモリ２８０に、データを転送することが可能である。同様に、矢印２９０により示されるように、装置２４０−２の演算器２７５−ｉの共有メモリから、装置２４０−１のローカルメモリ２７０に、データを転送することが可能である。
【００３５】
これらの目的のために、前述のように、この場合、ＤＭＡ型コントローラは、定義、宣言、構成、および制御のための機能を含む。
【００３６】
図３は、特定の周辺装置のそのようなＤＭＡ型コントローラで実現されるフェーズのシーケンスの一例を概略的に示す。ここで、図３に表されるフェーズは、必ずしも順次実行されるわけではないこと、および表される順序と異なる順序で実行されてもよいことが留意されたい。特に、制御フェーズが、登録フェーズの次に来てもよい。
【００３７】
第１のフェーズ（フェーズ３００）の目的は、周辺装置が、周辺装置に直接連結されるその他の装置により識別可能であるための、周辺装置の登録である。この登録は、たとえば、共通ディレクトリ内で実行されてもよい。このフェーズは、特に、装置が活動化されたときに、自動的に実行されてもよい。登録フェーズは、好ましくは、特に装置の型を定義するために、装置を記述するステップをさらに含む。ここで、型は、ＰＣＩ−Ｅ規格（ＰＣＩ−ＥはＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓの略）で実現される類型学に類似する方法で定義されてもよいことが留意されたい。この記述はまた、周辺装置に特有の別の特徴、特に例示として示される以下の特徴、すなわち
装置の内部メモリ容量、
不要なトラフィックを避けるためにデータストリームを制御するためのクレジット（外部メモリにアクセスするために各コマンドを送信することは、コマンドに応答して受信の確認が受信されたときに、再度利用可能になる１単位のクレジットを使用する）、
たとえば符号化キー機構に基づき、書き込むときおよび／または読み出すときに、装置の内部メモリのデータへのアクセスを保護するためのセキュリティの指示、
交換されるデータが、チェックデータ、たとえばＣＲＣデータ（ＣＲＣはＣｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋの略）を含むかどうかを指定するための完全性チェックの指示、
装置の内部メモリに記憶されるデータの消費の速度。この指示は、特に、本発明を実現するＤＭＡ型コントローラを実現する２つの周辺装置の互換性を検証することができるようにする、
装置によりサポートされる操作のリスト
を定義することができる。
【００３８】
このフェーズはまた、考慮される装置がデータを直接交換することができる周辺装置のリストを確立するために、考慮される装置と同じバスに連結される別の周辺装置、特に本発明によるＤＭＡ型コントローラを含む装置を識別するために使用されることができる。
【００３９】
自分を登録した後、装置のＤＭＡコントローラは、メモリ領域宣言フェーズ（フェーズ３０５）を開始することができる。このフェーズで実行される機能が、特に、別の装置がデータを書き込むおよび／または読み出すことができる（これは特定の条件に従ってもよい）装置の内部メモリ領域の宣言を対象とする。有利なことに、そのような宣言は、同じバスに連結される周辺装置を識別するために使用される共通ディレクトリ内で行われる。
【００４０】
このフェーズの間、ＤＭＡ型コントローラが、別の周辺装置により前もって宣言されたメモリ部分を共通ディレクトリ内で探すための機能を実行することも可能である。さらに、装置の内部メモリ領域と別の装置の内部メモリ領域との間の関係を確立することができるようにするツールが、ソース／宛先のリンクを確立するために実現されることができる。
【００４１】
次のフェーズ（フェーズ３１０）で、装置は、別の周辺装置との間のデータの直接転送を可能にするように、すなわちデータ転送規則を設定するように構成されることができる。このフェーズの間、有利なことに、装置に連結される別の周辺装置との互換性を、特に考慮される装置のサービスおよび速度に関して評価するために、評価ステップが試験期間に実行される。
【００４２】
このフェーズはまた、関与する装置、当該のメモリ領域、および可能なデータ送信パラメータたとえばセキュリティおよび完全性のチェックを指定することにより、ポイントツーポイントモードで転送するためのプリミティブを生成することを対象にする。この場合、プリミティブを生成する目的が、読出コマンドおよび／または書込コマンドの定義であるが、条件が満たされたときに、たとえばデータ項目が内部メモリに書き込まれたときに、またはユーザもしくはアプリケーションの要求により行われる、それらのコマンドの実行ではないことが留意されたい。
【００４３】
例示として、そのようなプリミティブは、図２の装置２４０−２を参照すると、演算器２７５−ｉの共有メモリから得られるデータを、装置２４０−１のローカルメモリ２７０に書き込む（矢印２９０）のためのコマンドを対象にしてもよい。そのようなプリミティブはまた、装置２４０−１の処理ユニット２６０のバッファメモリからメモリ２８０にデータを読み出す（矢印２８５）のためのコマンドでもよい。
【００４４】
例示として、プリミティブは、以下の形で表されてもよい。
読出し（ソース、宛先、長さ、パラメータ）
ここで、ソースおよび宛先の指示は、考慮される周辺装置の識別子およびメモリの識別子だけでなく当該のメモリ領域も含み、長さは、転送すべきデータの量を指示し、パラメータは、たとえばセキュリティに、データのチェックに、およびプリミティブに対応するコマンドの実行に連結される、使用されるべきパラメータに関係がある。
【００４５】
プリミティブはまた、特に図６を参照して以下で説明されるように、共通のソースからいくつかの異なる装置にデータが転送されることができるようにする、マルチキャスト型またはブロードキャスト型の一括モード（ｃｏｌｌｅｃｔｉｖｅ  ｍｏｄｅ）でデータを送信するために生成されることができる。そのような転送モードは、コンピュータシステムの信頼性を増大させるために装置が二重化されるときに、特に有用である。
【００４６】
プリミティブはまた、いくつかの周辺装置のメモリから得られるまたはそのメモリ行きのデータのグルーピングまたはアングルーピングの操作を含むことができ、コンピュータシステムの性能を改善することができるようにする。そのような操作は、スキャッタギャザの名前で公知の操作の拡張と考えられることができ、それにより、ＤＭＡ型コントローラは、メモリからのデータをグルーピングして大量のデータを１回で交換することができる。
【００４７】
これらのプリミティブに対応するコマンドの実行は、明示的でもよい（ユーザによる、またはオペレーティングシステムのカーネルからのコマンドに従う）、イベントに応じてあらかじめ決められてもよい（たとえばデータ項目が、メモリに受信されたときに、書込コマンドの対象となってもよい）、または周期的でもよい（転送は、計画される、すなわち、メモリの内容が、所定の時間周期に従って全部または一部転送されるように計画される）。
【００４８】
最後に、制御フェーズが、周辺装置にユーザがアクセスすることができるようにするために実行されことができる（フェーズ３１５）。このアクセスは、好ましくは、インタフェースを介して行われる。このとき、このアクセスは、装置のバージョンおよび能力を得るだけでなく、装置を構成することもできるようにする。このアクセスはまた、別の装置にアクセス可能な装置の内部メモリ領域を宣言する、および／またはそのようなメモリ領域に関する規則を定義して、たとえばこれらの領域に、だれが、どの操作で、どの転送モードを使用してアクセスすることができるかを示すことができるようにする。
【００４９】
図４は、いくつかの周辺装置間でデータを直接転送するために、本発明に従うＤＭＡ型コントローラで実行される特定のステップを概略的に示す。
【００５０】
ＤＭＡ型コントローラを含む装置の内部メモリにアクセスするためのコマンド、たとえば読出しまたは書込みのためのコマンドを受信した（ステップ４００）後、好ましくは、受信されたコマンドのチェックが行われる（ステップ４０５）。そのようなチェックは、特に、コマンドを受信した装置の内部メモリを保護するためのものである。前述のように、そのようなチェックは、コマンドのイニシエータ、およびコマンドの対象であるメモリ領域に特に関係があることがある。次に、コマンドが妥当であるかどうか、すなわちこの場合、コマンドのイニシエータは、コマンドを受信した装置の内部メモリに、より詳細にはコマンドで指定されるメモリ領域にアクセスする権利を有するかどうかを決定するために、試験が行われる（ステップ４１０）。
【００５１】
コマンドが妥当ではない場合、コマンドは拒絶される。このとき、エラーメッセージが要求のイニシエータに送信されてもよい（図示せず）。反対に、コマンドが妥当である場合、コマンドは、コマンドを受信したＤＭＡ型コントローラを含む装置の別の構成要素に、典型的にはメモリコントローラに送信される（ステップ４１５）。次に、コマンドは標準的方法で実行される。
【００５２】
同時に、ＤＭＡ型コントローラがデータ転送の活動化の通知を受信したとき（ステップ４２０）、対応するコマンドを標準的方法で実行する。データ転送活動化通知は、ＤＭＡコントローラを含む装置の構成要素、たとえばネットワークインタフェースから、または外部の構成要素、特にコンピュータシステムの中央システムのプロセッサから受信されてもよい。この場合、転送は、コンピュータシステムの中央メモリとの間であるが、同様に前述のステップ４００〜４１５に類似するステップをこのとき実行する１つまたは複数の周辺装置との間で、読み出すまたは書き込むためのコマンドに関係があってもよいことが留意されたい。
【００５３】
換言すれば、この場合、ＤＭＡ型コントローラは、従来のＤＭＡ型コントローラの機能（ステップ４２０および４２５）、ならびに外部周辺装置から、外部周辺装置と相対してメモリコントローラの挙動をそのようにシミュレートするＤＭＡ型コントローラを含む周辺装置の内部構成要素に、コマンドが転送されることができるようにするブリッジの機能（ステップ４００〜４１５）を対で有する。
【００５４】
すでに示されたように、本発明を実現するように適合されるＤＭＡ型コントローラは、一括転送、すなわちマルチポイントデータ転送のために使用されることができる。
【００５５】
図５は、直接データ伝送をマルチポイントモードで行うように適合されるコンピュータシステム５００を示す。この場合、コンピュータシステム５００は、システムバス５１５により連結される、プロセッサ５０５および中央メモリ５１０を含む。システム５００は、システムバス５１５にも連結されるバススイッチ５２０だけでなく、複数の周辺装置５２５−１〜５２５−ｎもさらに含む。
【００５６】
バススイッチ５２０は、たとえば、周辺装置のＤＭＡコントローラにより開始される交換に従ったバス幅に起因する全二重リンクに従って、独立してポイントツーポイントモードで装置５２５−１〜５２５−ｎに接続されるＰＣＩ−Ｅスイッチである。
【００５７】
この場合、１つの仕様では、ＰＣＩ−ＳＩＧ規格が、ＰＣＩ−ＥスイッチのＤＭＡコントローラに適切なプロトコルを実現して、中央メモリと、マルチキャストグループの形に一緒にグループ化される周辺装置との間で、データの直接転送を可能にすることにより、マルチキャスト型のＰＣＩ−Ｅ交換を作る可能性を提供することが留意されたい。
【００５８】
たとえば、１６レーンを備えるＰＣＩ−Ｅスイッチが、特別にマルチキャスト交換専用の記述子に従って直接データ交換を行うために４つのＤＭＡ型コントローラまで含む。これらの記述子は、異なるターゲットに向けられるマルチキャスト型コントローラのそれぞれに対して共通のソースを指示し、それにより多数の交換を可能にする。これらの記述子はまた、各ＤＭＡ型コントローラに対して割り込みが生成されなければならないかどうかを指示しても、マルチキャスト転送の終了時のみ指示してもよい。
【００５９】
そのようなスイッチは、前述のように、本発明を実現するために使用されることができ、したがって、前述の機能を実行するＤＭＡ型コントローラをそれぞれ含むマルチキャストグループの形でグループ化された周辺装置間で、データの直接転送を可能にする。
【００６０】
したがって、そのようなスイッチは、一括転送プリミティブに基づき、すなわち（ｎ＋１）の参加者との対話で、データ交換を可能にする。
【００６１】
前述の仕様に従ってＤＭＡ型コントローラを提供される周辺装置間で、および前述の仕様に従ってＤＭＡ型コントローラを提供される周辺装置と中央メモリの間で、いくつかの操作が可能である。
【００６２】
そのような操作の例が、図６ａ〜図６ｇを参照して示される。
【００６３】
表される周辺装置６００−１〜６００−４は、前述の仕様に従うＤＭＡ型コントローラをそれぞれ含む。この場合、これらの装置のそれぞれが、一括転送（マルチキャストおよびブロードキャスト）を管理するように適合されるスイッチ６０５に連結される。
【００６４】
図６ａは、装置６００−１から装置６００−２および６００−３へのマルチキャスト型送信を示す。したがって、データの配布は、ソースから、装置６００−１が属するマルチキャストグループのいくつかのターゲットに対して行われる。これは、転送されるデータ項目を含む装置により開始される１対ｎ型通信である。
【００６５】
図６ｂは、装置６００−１から装置６００−２、６００−３、および６００−４へのブロードキャスト型送信を示す。したがって、データの配布は、ソースから、装置６００−１が属するマルチキャストグループの全ターゲットに対して行われる。これは、転送されるデータ項目を含む装置により開始される１対全型通信である。
【００６６】
図６ｃは、装置６００−１から装置６００−２、６００−３、および６００−４への計算されたマルチキャスト型送信を示す。したがって、データの配布は、ソースから、装置６００−１が属するマルチキャストグループの全ターゲットに対して行われる。さらに、転送されるデータに対して操作が、たとえば「論理和」、「論理積」、または「排他的論理和」などの論理演算、加算もしくは乗算などの算術演算、またはデータをソートするもしくは暗号化する操作などの、装置により定義される操作が行われる。この場合、行われる操作は、転送されるデータと、ターゲット装置内に存在するデータ項目の間の加算である。送信は、転送されるデータ項目を含む装置により開始される。
【００６７】
図６ｄは、装置６０２−２および６００−３から装置６００−１への集約型のデータ送信を示す。これは、いくつかのソースから、送信されるデータを集約することにより、１つまたは複数のターゲットにデータを送信することができるようにする操作である。送信は、転送されるデータを受信する装置により開始される。
【００６８】
図６ｅは、装置６００−２および６００−３から装置６００−１への計算された集約型のデータ送信を示す。これは、いくつかのソースから、送信されるデータに対して計算を行うことにより、ターゲットにデータを送信することができるようにする操作である。この場合、操作は、使用されるソースから受信されるデータ間の加算である。送信は、転送されるデータを受信する装置により開始される。当然、別の型の操作が行われてもよい。
【００６９】
図６ｆは、装置６００−２および６００−３から、ならびに中央メモリ６１０から、装置６００−１への計算された集約型のデータ送信を示す。これは、いくつかのソースから、送信されるデータに対して計算を行うことにより、ターゲットにデータを送信することができるようにする操作である。この場合、操作は、使用されるソースから受信されるデータ間の加算である。送信は、転送されるデータを受信する装置により開始される。別の型の操作も行われてもよい。
【００７０】
図６ｇは、装置６００−１から、装置６００−２および６００−３、ならびに中央メモリ６１０へのマルチキャスト型送信を示す。したがって、データの配布は、ソースから、装置６００−１が属するマルチキャストグループのいくつかのターゲットに対して行われる。これは１対ｎ型通信である。送信は、転送されるデータ項目を含む装置により開始される。
【００７１】
したがって、特に、データの直接送信および集約送信のときに、以下の操作を行うことが可能である、
配布：ソースから得られるデータが、同じグループに属するいくつかのまたはすべてのその他の周辺装置に送信され、そのデータが中央メモリに送信されることも可能である、
操作付き配布：ソースから得られるデータが、同じグループに属するいくつかのまたはすべてのその他の周辺装置に送信され、そのデータが、それらのデータに対して操作を、特に、「論理和」、「論理積」、および「排他的論理和」などの論理型演算、加算および乗算などの数学演算、ならびにデータのソーティングまたは暗号化の操作などの、１つまたは複数のターゲット装置により定義される操作を行うことにより、中央メモリに送信されることも可能である、
集約：いくつかのソースから得られるデータが集約され、同じグループに属する１つ、いくつかの、またはすべてのその他の周辺装置に送信され、そのデータが中央メモリに送信されることも可能である、そして、
操作付き集約：いくつかのソースから得られるデータに対して操作が行われ、これらの操作の結果が、同じグループに属する１つ、いくつか、またはすべてのその他の周辺装置に送信され、そのデータが、中央メモリに送信されることも可能である。そのような操作は、特に、「論理和」、「論理積」、および「排他的論理和」などの論理型演算、加算および乗算などの数学演算、ならびにデータのソーティングまたは暗号化の操作などの、１つまたは複数のターゲット装置により定義される操作である。
【００７２】
特定の一実施形態によれば、行われる操作の選択は、データを読み出すコマンドに応答して受信されるデータの一部に依存する。
【００７３】
いくつかの周辺装置間のデータの直接転送、または一括転送は、周辺装置の少なくとも１つで決定される一括転送のためのプリミティブを使用して行われることができる。
【００７４】
この実装形態は、前述の実装形態に類似する。この実装形態は、識別、宣言、構成、および制御のフェーズを含む。一括転送のためのプリミティブのパラメータは、好ましくは、前述のように２つの周辺装置のメモリ間でデータの直接転送を行うために使用されるプリミティブのパラメータに類似する。しかしながら、一括転送のためのプリミティブのパラメータは、特にデータを組み合わせる操作に連結される特有の特徴をさらに含む。
【００７５】
そのような一括転送プリミティブの一例が、以下の形で表されてもよい。
読出し（ソース＿１、宛先＿１、長さ＿１、…、ソース＿ｎ、宛先＿ｎ、長さ＿ｎ、パラメータ）
ここで、
ソース＿ｉおよび宛先＿ｉは、考慮される周辺装置およびメモリだけでなく、当該のメモリ領域の識別子も含む。プリミティブの性質によれば、操作が行われた後に、同じデータ項目がいくつかの装置に転送されることができるように、および異なる装置から得られるデータが、装置の異なるメモリ領域の中に、または同じ領域の中に転送されることができるように、すべてのソースまたはすべての宛先は、同じ装置、および同一のまたは異なるメモリ領域に関係がある。
長さ＿ｉは、ソース＿ｉから宛先＿ｉに転送すべきデータの量を指示する。さらに
パラメータは、たとえばセキュリティに、データのチェックに、行われる操作に、およびプリミティブに対応するコマンドの実行に連結される、使用されるべきパラメータを指定する。
【００７６】
転送されるデータに対して特定の操作が行われなければならないとき、直接アクセスコマンドの起点でのプリミティブからの情報に従って、図４で示されるステップ４２５でコマンドを開始する装置により、または図４で示されるステップ４１５でコマンドを受信した装置により、特定の操作が行われる。
【００７７】
したがって、たとえば、図６ｅを参照すると、装置６００−２および６００−３に記憶されるデータにアクセスするコマンドを開始した後、装置６００−１は、転送されたデータを受信するのを待ち、次に、プリミティブで指定される操作を行う。このとき、前述のステップ４２５は、別の装置のメモリに直接アクセスするためのコマンドを開始するステップと、待たれているデータを得るために同期するステップと、活動化された転送に連結されるプリミティブで指定される操作の実行を対象とするステップとを含む。
【００７８】
同様に、たとえば図６ｃを参照すると、直接アクセスコマンドが、そのコマンドの起点の装置と異なる別の装置で操作の実行を指示するプリミティブに従って開始されるとき、行うべき操作に対する指示が、その別の装置に送信される直接アクセスコマンドに追加される。そのようなコマンドが、ＤＭＡ型コントローラにより受信され、妥当であるとき、行うべき操作は、受信された指示に従ってＤＭＡにより識別される。次に、ステップ４１５の間にそのようなコマンドが実行されるように、ＤＭＡは、コマンドを送信する前に、操作の実行を開始する。
【００７９】
当然、特定の必要性を満たすために、当業者は、前述の説明に修正を行うことができるであろう。
【図１】
0005904948.tif 000002
【図２】
0005904948.tif 000003
【図３】
0005904948.tif 000004
【図４】
0005904948.tif 000005
【図５】
0005904948.tif 000006
【図６ａ】
0005904948.tif 000007
【図６ｂ】
0005904948.tif 000008
【図６ｃ】
0005904948.tif 000009
【図６ｄ】
0005904948.tif 000010
【図６ｅ】
0005904948.tif 000011
【図６ｆ】
0005904948.tif 000012
【図６ｇ】
0005904948.tif 000013