| 【発明の名称】 |
並列コンピュータシステム |
| 【発明者】 |
【氏名】中田 雅信
|
| 【要約】 |
【課題】コストの増加を抑えつつ、チェックサム計算処理を伴う通信プロトコル処理の高速化を図り、システムの通信性能を向上させる【解決手段】 複数のプロセッサを備えた並列コンピュータシステムにおいて、前記複数のプロセッサP1〜Pnのうちの一部をチェックサム計算を専用に行うプロセッサPmとして割り当て、該チェックサム計算用に割り当てられたプロセッサPmによるチェックサムの計算を、他のプロセッサにおける処理と並行して実行させる。
【解決手段】複数のプロセッサを備えた並列コンピュータシステムにおいて、前記複数のプロセッサP1〜Pnのうちの一部をチェックサム計算を専用に行うプロセッサPmとして割り当て、該チェックサム計算用に割り当てられたプロセッサPmによるチェックサムの計算を、他のプロセッサにおける処理と並行して実行させる。 |
【特許請求の範囲】
【請求項1】 複数のプロセッサを備えた並列コンピュータシステムにおいて、前記複数のプロセッサのうちの一部をチェックサム計算を専用に行うプロセッサとして割り当て、該チェックサム計算用に割り当てられたプロセッサによるチェックサムの計算を、他のプロセッサにおける処理と並行して実行させるようにしたことを特徴とする並列コンピュータシステム。 【請求項2】 複数のプロセッサと、前記プロセッサ間のデータの受け渡しを制御するプロセッサ間通信手段と、前記複数のプロセッサの一部のプロセッサに対し、前記プロセッサ間通信手段を介してチェックサム計算を要求するチェックサム計算要求手段と、を備えたことを特徴とする並列コンピュータシステム。 【請求項3】 前記チェックサム計算要求を受けたプロセッサを、他のプロセッサから排他制御するためのロック手段を備えたことを特徴とする請求項2記載の並列コンピュータシステム。 【請求項4】 前記一部のプロセッサによるチェックサムの計算の開始及び終了を通知するためのフラグ手段を備えたことを特徴とする請求項3記載の並列コンピュータシステム。 【請求項5】 通信プロトコルの処理を行うプロトコル処理手段と、前記プロトコル処理手段に対してデータの送信を依頼する送信要求手段と、前記プロトコル処理手段によって処理されたデータを受け取って、回線上にデータを送出するネットワーク制御手段と、を備えたことを特徴とする請求項4記載の並列コンピュータシステム。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、コンピュータ間通信における転送データ誤り検出技術であるチェックサムを含む通信プロトコル処理の高速化を実現した並列コンピュータシステムに関する。 【0002】 【従来の技術】高性能を要求される通信プロトコル処理において、その中のチェックサム計算処理は一般に他の処理と比べて長い時間が掛かり、これをいかに短時間で行うかがプロトコル処理高速化のキーポイントになっている。 【0003】従来の技術では、通常のプロトコル処理の一環として、通常のプロトコル処理を実行するプロセッサと同一のプロセッサ上でチェックサム計算を行なう場合がほとんどであった。このため、処理の高速化は専らプロセッサそのものの高速化に頼っており、限界があった。そして、通信プロトコル処理に要する時間が長く掛かり、ネットワークを介したプロセス間通信においては、物理ケーブルの持つデータ転送能力を必ずしも十分に引き出せていなかった。 【0004】また、通常のプロセッサとは別にチェックサム計算用の専用のハードウェアを備えて高速化を図る従来技術が提案されている。この種の従来技術としては、例えば、特開平5−67014号公報に開示されたプロトコル処理装置がある。しかし、この種の従来技術は、特別のハードウェアが必要となるため、高価であり一般に普及してはいなかった。 【0005】 【発明が解決しようとする課題】上述したように従来のコンピュータシステムは、通信プロトコル処理に要する時間が長く掛かり、ネットワークを介したプロセス間通信においては、物理ケーブルの持つデータ転送能力を必ずしも十分に引き出せていなかった。 【0006】また、チェックサム用に高価な専用のハードウェアを備えることは、コストの増大を招くため、容易に実行できなかった。 【0007】そこで本発明の目的は、コストの増加を抑えつつ、チェックサム計算処理を伴う通信プロトコル処理の高速化を図り、システムの通信性能を向上させることにある。 【0008】 【課題を解決するための手段】上記目的を達成するため請求項1記載の本発明は、複数のプロセッサを備えた並列コンピュータシステムにおいて、前記複数のプロセッサのうちの一部をチェックサム計算を専用に行うプロセッサとして割り当て、該チェックサム計算用に割り当てられたプロセッサによるチェックサムの計算を、他のプロセッサにおける処理と並行して実行させるようにしたことを特徴とする。 【0009】また、請求項2記載の本発明は、複数のプロセッサと、前記プロセッサ間のデータの受け渡しを制御するプロセッサ間通信手段と、前記複数のプロセッサの一部のプロセッサに対し、前記プロセッサ間通信手段を介してチェックサム計算を要求するチェックサム計算要求手段とを備えたことを特徴とする。 【0010】また、請求項3記載の本発明は、前記チェックサム計算要求を受けたプロセッサを、他のプロセッサから排他制御するためのロック手段を備えたことを特徴とする。 【0011】また、請求項4記載の本発明は、前記一部のプロセッサによるチェックサムの計算の開始及び終了を通知するためのフラグ手段を備えたことを特徴とする。 【0012】さらに、請求項5記載の本発明は、通信プロトコルの処理を行うプロトコル処理手段と、前記プロトコル処理手段に対してデータの送信を依頼する送信要求手段と、前記プロトコル処理手段によって処理されたデータを受け取って、回線上にデータを送出するネットワーク制御手段とを備えたことを特徴とする。 【0013】 【発明の実施の形態】次に、本発明の一実施形態について図面を参照して詳細に説明する。図1に示すように、本発明の一実施形態に係る高並列コンピュータシステム10は、数台から数十台のプロセッサ群(P1〜Pn、nは整数)と、これらのプロセッサの中でチェックサム計算専用プロセッサとして定義された1台のプロセッサ(以下、チェックサム計算専用プロセッサPmと言う)と、チェックサム計算専用プロセッサPmを使用するための排他制御用のロック11と、これら複数のプロセッサ間の情報の交換を司るプロセッサ通信手段12と、メモリにロード済みのプロトコル処理のコード(命令列)13と、同じくメモリにロード済みのチェックサム計算処理のコード(命令列)14と、ネットワークを介した他ホストとの間で通信される通信データ15と、実際にプロトコル処理中でチェックサム計算の対象となるチェックサム計算対象データ16と、プロトコル処理に送信データを渡す送信要求手段17と、前記プロトコル処理のコード13をチェックサム計算処理と並列に実行するプロトコル処理手段18と、プロトコル処理手段18から呼ばれて送信データのチェックサム計算をチェックサム計算専用プロセッサPmに依頼するチェックサム計算要求手段19と、チェックサム計算が未完了であることを示すチェックサム計算中フラグ20と、論理的にプロトコル処理の下位に位置してプロトコル処理を施されたデータをネットワークに送出するネットワークドライバ手段21とから構成される。 【0014】次に、前記構成からなる高並列コンピュータシステム10の動作について説明する。ここでは、システムのSGにおいてチェックサム計算専用プロセッサPm(1≦m≦n)が、プロセッサ群P1〜Pnの中から1台選ばれて定義されているものとする。また、チェックサム計算以外の処理はプロセッサPmを除いた残りの(n−1)個のプロセッサの何れかで実行されるものとする。 【0015】送信要求手段17は、ユーザプログラムから要求された通信データを通信データ15として、プロトコル処理手段18に渡す。プロトコル処理手段18は、渡された通信データからチェックサム計算対象データ16を決定し、必要なデータをチェックサム計算要求手段19に渡してチェックサム計算対象データ16のチェックサム計算を依頼する。この時チェックサム計算要求手段19には、チェックサム計算対象データ16ヘのポインタとデータ長、チェックサム計算結果格納場所へのポインタ、及びチェックサム計算中フラグ20へのポインタが渡され、これらはすべてチェックサム計算専用プロセッサPmに伝達される。 【0016】プロトコル処理手段18は、この後チェックサム計算中フラグ20を“1”にして、中断することなくプロトコル処理のコード13に従った他のプロトコル処理を続ける。ここで、チェックサム計算中フラグ20におけるフラグ“1”は、チェックサム計算専用プロセッサPmによるチェックサム計算が実行されていることを示している。そして、プロトコル処理済みのデータをネットワークドライバ手段21に引き渡す直前に、チェックサム計算中フラグ20を確認する。この時チェックサム計算中フラグ20が“0”になっていれば、そのまま処理を続行し、ネットワークドライバ手段21にデータを渡して処理を終了する。チェックサム計算中フラグ20が“1”である場合は、該フラグが“0”になるまでCPUループを行ない、ネットワークドライバ手段21に送信データを引き渡す。チェックサム計算が終了すると、チェックサム計算専用プロセッサPm上の処理により、該フラグが“0”にされる。 【0017】チェックサム計算要求手段19は、プロトコル処理手段18から受けとった前記データをチェックサム計算専用プロセッサPmに渡すため、プロセッサ間通信手段12を呼ぶ。プロセッサ間通信手段12はチェックサム計算専用プロセッサPmを使用するためのロック11を取得する。ここで、ロック11は、プロセッサの排他使用のための施錠であり、これが取得できない場合はCPUループを行なって、該取得を待つこととなる。プロセッサ間通信によりチェックサム計算専用プロセッサPmに必要なデータを引き渡して処理を終了し、プロトコル処理手段18に制御を戻す。 【0018】チェックサム計算専用プロセッサPmは、プロセッサ間通信手段12を介してチェックサム計算要求を受け取ると、チェックサム計算処理のコード14を使って直ちにチェックサム計算対象データ16のチェックサム計算を行う。そして、結果を要求元から指定された場所、すなわち所定のメモリエリアに書込み、さらに渡されたポインタで示されているチェックサム計算中フラグ20を“0”にする。次いで、チェックサム計算専用プロセッサPmを使うためのロック11を解除、すなわちアンロックの状態にし、他からのチェックサム計算要求を受け付け可能な状態にしてから処理を終了する。 【0019】また、他ホストからのデータを受信した場合には、以下のような処理がなされる。受信データがネットワークドライバ手段21によって受信されると、ネットワークドライバ手段21は受信データをプロトコル処理手段18に渡す。プロトコル処理手段18は、プロトコル処理のコード13に従って受信時のプロトコル処理を実行するが、その途中で、チェックサム計算対象データ16を確定できた時点で、送信時と全く同様の要領で、チェックサム計算要求手段19に必要なデータを渡し、チェックサム計算を依頼する。 【0020】このとき、チェックサム計算中フラグ20を“1”にする。プロトコル処理手段18は、この後チェックサム計算以外の受信時のプロトコル処理を継続して行い、それが終了すると、チェックサム計算中フラグ20を確認する。チェックサム計算要求手段19は、プロトコル処理手段18から受け取った他ホストからの受信データをプロセッサ間通信手段12を通してチェックサム計算専用プロセッサPmのロック11を取得してから、チェックサム計算専用プロセッサPmに渡す。チェックサム計算専用プロセッサPmは、チェックサム計算処理のコード14に従って、チェックサム計算対象データ16のチェックサム計算を行う。そして、結果を要求元から指定された場所に書き込み、チェックサム計算中フラグ20を“0”にし、さらに、チェックサム計算専用プロセッサPmのロック11をアンロック状態にして処理を終了する。プロトコル処理手段18は、チェックサム計算中フラグ20が“0”になったことを確認すると、処理済みのデータ一式を上位層の受信処理に渡す。 【0021】以上の処理により、高並列コンピュータシステム10において、チェックサム計算専用プロセッサPmを用いることにより、チェックサム計算処理と、チェックサム計算以外のプロトコル処理とを、並列に実行することが可能となる。 【0022】図2は、本発明のさらに具体的な実施形態の構成を示すブロック図である。本実施形態は、通信プロトコルとしてのTCP/IP(TransmissionControl Protocol/Internet Protocol)に準拠した高並列スーパーコンピュータシステムに本発明を適用した例を示している。本システムの構成は、基本的に図1に示したものと同様であり、各構成部分がTCP/IPに特化したものとして説明されている点が異なっている。 【0023】図において、高並列スーパーコンピュータシステム30は、数台から数十台のプロセッサ群(P1〜Pn、nは整数)と、これらのプロセッサの中でTCPのチェックサム計算専用のプロセッサとして定義された1台のプロセッサPmと、チェックサム計算専用プロセッサPmを使用するための排他制御用のロック31と、これら複数のプロセッサ間の情報の交換を司るプロセッサ間通信機構32と、メモリにロード済みのTCPの処理のためのコード33と、同じくメモリにロード済みのTCPのチェックサム計算処理のためのコード34と、ネットワークを介した他ホストとの間で通信されるIPデータグラム35と、実際にTCP処理中でチェックサム計算の対象となるTCPセグメント36と、TCPに送信データを引き渡すアプリケーションプログラム37と、TCP処理中のチェックサム計算以外の部分のコード33をチェックサム計算処理と並列に実行するOS内の通信制御プログラム38と、通信制御プログラム38から呼ばれて送受信データのチェックサム計算をチェックサム計算専用プロセッサPmに依頼するチェックサム計算要求関数39と、チェックサム計算が未完了であることを示すチェックサム計算中フラグ40と、論理的に通信制御プログラムの下位に位置してTCP/IP処理を施されたIPデータグラムをネットワークに送出するネットワークドライバ41とから構成される。 【0024】次に、前記構成からなる高並列スーパーコンピュータシステム30の動作について説明する。他システム等と通信を行うアプリケーションプログラム37は、ユーザから要求されたIPデータグラム35をソケット等の従来の方法を用いて通信制御プログラム38に渡す。通信制御プログラム38は、チェックサム計算対象となるTCPセグメント36を決定し、チェックサム計算要求関数39に該TCPセグメント36のチェックサム計算を依頼する。このときチェックサム計算要求関数39には、TCPセグメント36ヘのポインタとデータ長、チェックサム計算結果格納場所へのポインタ、及びチェックサム計算中フラグ40ヘのポインタが渡され、これらはすべてチェックサム計算専用プロセッサPmに伝達される。 【0025】通信制御プログラム38は、この後チェックサム計算中フラグ40を“1”にして、中断することなくTCP処理のためのコード33に従ったチェックサム計算以外のTCP処理を続け、処理済みのデータをネットワークドライバ41に引き渡す直前に、チェックサム計算中フラグ40を確認する。ここで、チェックサム計算中フラグ40が“0”になっていれば、そのまま処理を続行し、ネットワークドライバ41にデータを渡して処理を終了する。チェックサム計算中フラグ40が“1”である場合は、該フラグが“0”になるまでCPUループを行ない、ネットワークドライバ41に送信データを引き渡す。チェックサム計算が終了するとチェックサム計算専用プロセッサPm上の処理により、該フラグが“0”にされる。 【0026】チェックサム計算要求関数39は、通信制御プログラム38から受け取った前記データをチェックサム計算専用プロセッサPmに渡すため、プロセッサ間通信機構32を呼ぶ。プロセッサ間通信機構32はチェックサム計算専用プロセッサPmを使用するための排他制御用ロック31を取得する。次いで、プロセッサ間通信によりチェックサム計算専用プロセッサPmに必要なデータを引き渡して処理を終了し、通信制御プログラム38に制御を戻す。 【0027】チェックサム計算専用プロセッサPmは、プロセッサ間通信機構32を介してチェックサム計算要求を受け取ると、チェックサム計算処理のコード34を使って直ちにTCPセグメント36のチェックサム計算を行う。そして、結果を要求元から指定された場所(メモリエリア)に書き込み、さらに渡されたポインタで示されているチェックサム計算中フラグ40を“0”にする。次いで、チェックサム計算専用プロセッサPmを使うためのロック31を解除し、他からのチェックサム計算要求を受け付け可能な状態にして処理を終了する。 【0028】以上好ましい実施例をあげて本発明を説明したが、本発明は必ずしも上記実施例に限定されるものではない。例えば、上記構成において、他ホストからの受信データのチェックサム計算についても、前記とほぼ同様にして、受信時のTCPのプロトコル処理とチェックサム計算とを並列に実行することができる。 【0029】 【発明の効果】以上説明したように本発明の高並列コンピュータシステムによれば、通常プロトコル処理で最もオーバヘッドが大きいチェックサム計算処理をチェックサム計算専用プロセッサに指定されたプロセッサで処理させることにより、チェックサム計算以外のプロトコル処理とチェックサム計算処理とを、可能な限り並列に実行させることにより、プロトコル処理のオーバヘッドを減少させ、その処理を高速化することができるという効果がある。 【0030】また、高並列コンピュータシステムを構成する複数のプロセッサのうちの1つを使ってチェックサム計算を専門に行なわせるようにしたことにより、特別なハードウェアを用いることなく、前記プロトコル処理の高速化を実現することができるため、コストの増加を抑えることができるという効果がある。
|
| 【出願人】 |
【識別番号】000004237 【氏名又は名称】日本電気株式会社
|
| 【出願日】 |
平成9年(1997)9月5日 |
| 【代理人】 |
【弁理士】 【氏名又は名称】松本 正夫
|
| 【公開番号】 |
特開平11−85718 |
| 【公開日】 |
平成11年(1999)3月30日 |
| 【出願番号】 |
特願平9−257912 |
|