(57)【要約】【課題】  通信制御を実行するＥＴＨＥＲカードに演算機能を持たせ従来のインターフェースで演算を実行させることにより、機器の改造なしに高い演算性能を実現すること。【解決手段】  ＣＰＵ２０１とメモリ２０２とＥＴＨＥＲカード１０２を有し、ＥＴＨＥＲカード１０２は、演算命令とオペランドデータを含んだパケットデータを受け取りこの演算命令に従って演算機にオペランドデータと演算指示を行うパケットデコード部１０３と、演算指示に従ってオペランドデータに演算を実行する演算機１０４と、演算結果をパケットの形式に変換するパケットエンコード部１０５を有し、ＣＰＵ２０１が演算命令とオペランドデータをパケット形式にしてメモリ２０２に格納してＥＴＨＥＲカード１０２に演算を指示する。【選択図】      図１
2006276973.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリと１以上の通信制御カードを有する演算装置であって、前記通信制御カードは、演算命令とオペランドデータを含んだパケットデータを受け取りこの演算命令に従って演算機にオペランドデータと演算指示を行うパケットデコード部と、前記演算指示に従って前記オペランドデータに演算を実行する演算機と、演算結果をパケットの形式に変換するパケットエンコード部を有し、前記ＣＰＵが演算命令とオペランドデータをパケット形式にしてメモリに格納して通信制御カードに演算命令を実行するよう指示することを特徴とする演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は演算装置に関し、特にハードウェア機器の改造をせずに演算を高速化する技術に関する。
【背景技術】
【０００２】
近年スカラ型マシンのマルチプロッセ化によりピーク性能は飛躍的に延びてきたが、コンパイラやＯＳがそれらのリソースを使いこなすには充分な発展を遂げておらず、実効性能はピーク性能の数割しか発揮できていない。この為、科学技術系の高い演算性能が必要な分野ではベクトル型の実効効率に優れたコンピュータ装置を所望するケースが少なくない。
【０００３】
しかし、ベクトルマシンは独自アーキテクチャー、少量生産であるため高額となり、多くのユーザーは購入が困難か、購入してもリプレースのスパンが長くなり実効性能の恩恵に与る期間が短い。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
第１の課題は、ベクトルプロセッサは独自なアーキテクチャーなため、装置自体もそれを駆動するＯＳも汎用にできないということである。第２の課題は、汎用的なスカラプロッサと同一バス上にベクトルプロセッサを実装しても、ベクトル演算命令を発行できないということである。
【０００５】
本発明の目的は、通信制御カードに演算機能を持たせ従来のインターフェースで演算を実行させることにより、機器の改造なしに高い演算性能を実現する演算装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の演算装置は、ＣＰＵとメモリと１以上の通信制御カードを有する演算装置であって、前記通信制御カードは、演算命令とオペランドデータを含んだパケットデータを受け取りこの演算命令に従って演算機にオペランドデータと演算指示を行うパケットデコード部と、前記演算指示に従って前記オペランドデータに演算を実行する演算機と、演算結果をパケットの形式に変換するパケットエンコード部を有し、前記ＣＰＵが演算命令とオペランドデータをパケット形式にしてメモリに格納して通信制御カードに演算命令を実行するよう指示することを特徴とする。
【発明の効果】
【０００７】
第１の効果は、通信制御を行うＥＴＨＥＲカードに演算器を実装しているので、装置側のハードウェアの改造無しに実装できることである。
【０００８】
第２の効果は、スカラプロッセには不得手な膨大な量の演算を外部に行わせる事ができるので、システムパフォーマンスを容易に向上できることである。
【０００９】
第３の効果は、母体がＰＣＩのバスアダプタであるので、数を増やす事により容易に処理能力を上げる事が可能である。
【発明を実施するための最良の形態】
【００１０】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図１を参照すると、本発明の一実施例としての通信制御を行うＥＴＨＥＲカード１０２が示されている。ＰＣＩ処理部１０６は、ＰＣＩの各トランザクションに応答、或いは要求し、ＰＣＩバス１０１との間でプロトコルに則り命令、データをやり取りする。
【００１１】
ＰＨＹ処理部１０７は外部から送られたＥＴＨＥＲの伝送波形を論理的な信号に変換する。これらＰＣＩ処理部１０６、ＰＨＹ処理部１０７はＥＴＨＥＲカードであれば一般的に実装されている。
【００１２】
ＥＴＨＥＲカード１０２はそれら一般のＥＴＨＥＲが必要とするハード以外に、パケットデコード部１０３、演算器１０４、パケットエンコード部１０５から構成され、パケットデコード部１０３はＰＣＩ処理部１０６、ＰＨＹ処理部１０７からパケットデータを受け取り、演算命令に従い演算器１０４にオペランドと命令指示を転送する。
【００１３】
演算機１０４は与えられた演算指示に従い、演算を行い結果を出力する一般的な演算機である。パケットエンコード部１０５は演算機１０４から出力された演算結果をＥＴＨＥＲパケットの形に変換して、ＰＣＩ処理部１０６、ＰＨＹ処理部１０７に対して出力する。
【００１４】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
図２の演算装置に本発明のＥＴＨＥＲカード１０２を実装した場合の動作を説明する。ＥＴＨＥＲカードはＰＣＩバス１０１上に実装し、ＰＣＩバスはバスブリッジ回路２０３を介してＣＰＵバスに接続される。
【００１５】
ＣＰＵ２０１は、ベクトル演算等のスカラプロセッサには過負荷な演算命令をコンパイラが検出した場合に、あるいはユーザーがソースコードに指定した場合に、本ＥＴＨＥＲを駆動するようにライブラリをリンクする。具体的な動作は演算のオペランドデータをＣＰＵ２０１がメモリ２０２の送信バッファ領域にＥＴＨＥＲパケット形式で置く。
【００１６】
ＥＴＨＥＲカード１０２にはディスクリプタにより送信パケットのメモリアドレスとサイズを指示する。ＥＴＨＥＲカード１０２はディスクリプタ領域をフェッチし、該当パケットをＤＭＡ転送により受け取る。受信したパケットのデータ部を１０３によりデコードし、演算種の指示とオペランドデータを演算器１０４に送出する。またパケットデコード部１０３はパケットエンコード部１０５に対しトータルの演算回数を指示してがパケット生成の終了を検知できるようにする。
【００１７】
パケットエンコーダ部は演算の終了を検知すると、演算結果をパケットにしてメモリに対しＤＭＡ転送を行う。転送先は上記で送られた演算指示パケットの宛先ＭＡＣアドレスが自身のＭＡＣアドレスであった場合にループバックの様に動作する。但しループバックの場合は送信フレームをＰＨＹ折り返しでそのまま受信するが、本発明の場合はＰＨＹまでは行かずに演算結果を送り返す。受信アドレスは演算指示である送信ディスクリプタより前に、或いは同期して受信ディスクリプタにより指示される。
【００１８】
ＥＴＨＥＲカード１０２はこのディスクリプタを予めフェッチしておき、演算結果パケットをディスクリプタの指示するアドレスにＤＭＡ転送する。送受信のディスクリプタの更新は通常のＥＴＨＥＲと同じく処理する。すなわち、送信のＤＭＡ転送により入力パケットをＥＴＨＥＲカード１０２が受領した時点でＤＯＮＥビットを点灯させ、ＩＮＴＡ〜Ｄの割り込みを発生させＣＰＵに知らせる。また受信も演算結果パケットをＤＭＡ転送によりメモリへの書き込みが終了した時点でＤＯＮＥビットを点灯させ、ＩＮＴＡ〜Ｄの割り込みを発生させＣＰＵに知らせる。受信の場合は演算結果のパケットサイズを受信ディスクリプタに書き込むのが一般的だが、本発明の場合は指示する演算量から検知できるので特に必要は無い。
【００１９】
次に図３の装置外部に本発明のＥＴＨＥＲカード１０２を実装した場合の動作を説明する。図で３０１は外部演算を行いたいコンピュータで、３０２は通常のＥＴＨＥＲカードである。スイッチ３０３はＥＴＨＥＲのパケットを宛先ＭＡＣアドレスによりスイッチするＨＵＢである。
【００２０】
本発明のＥＴＨＥＲカード１０２は電源とクロックを供給できる筐体３０４に実装される。ＰＣＩバスを持つ通常のコンピュータに実装しても構わないが、その場合内部からの指示と外部からの指示が競合する可能性がある。内部からの要求はディスクリプタフェッチによりＥＴＨＥＲカード１０２が自身で直ちに実行するかどうか決定できるが、外部装置からの要求は演算中である場合に実行を待たせる仕掛けが必要となる。例えば一般的なＥＴＨＥＲではＴＣＰプロトコルによりＥＴＨＥＲカードのバッファの残量を知らせ、相手装置に対し送信を抑制させる制御が出来る。
【００２１】
ＥＴＨＥＲカード１０２が他の指示による演算中で、新たに外部装置からの指示を受けられない場合はバッファ残量をゼロにしてＡＣＫを返し、暫く送信を抑制させる事が出来る。ＴＣＰオフロードエンジン等の実装を行えば、ＣＰＵ無しでＴＣＰプロトコルを動作させる事が可能となる。又、３０４に実装したＥＴＨＥＲカード１０２を仮想的な同一のＭＡＣアドレスとしてリンクアグリゲーションで動作させれば、スイッチ３０３がロードバランシング機能を備えれば負荷を分散させる事が可能となる。
【００２２】
外部からの指示は通常のＥＴＨＥＲカードと異なるがディスクリプタにはよらず、ＴＣＰの非同期なやり取りにより行う。演算結果の返却先は送り元のＭＡＣアドレスを送信先のＭＡＣアドレスとしてスイッチ３０３に送れば良い。演算を指示するコンピュータ３０１は機器的な改造は必要としないが、コンパイラの改造が必要となる。
【図面の簡単な説明】
【００２３】
【図１】本発明のＥＴＨＥＲカードの構成を示した図である。
【図２】本発明の演算装置の構成を示した図である。
【図３】本発明の他の演算装置の構成を示した図である。
【符号の説明】
【００２４】
１０１    ＰＣＩバス
１０２    ＥＴＨＥＲカード
１０３    パケットデコード部
１０４    演算機
１０５    パケットエンコード部
１０６    ＰＣＩ処理部
１０７    ＰＨＹ処理部
２０１    ＣＰＵ
２０２    メモリ
２０３    バスブリッジ回路
【図１】
2006276973.tif 000003
【図２】
2006276973.tif 000004
【図３】
2006276973.tif 000005