JP4653837B2 - 情報処理装置、転送装置および情報処理装置の制御方法 - Google Patents

情報処理装置、転送装置および情報処理装置の制御方法 Download PDF

Info

Publication number
JP4653837B2
JP4653837B2 JP2008500356A JP2008500356A JP4653837B2 JP 4653837 B2 JP4653837 B2 JP 4653837B2 JP 2008500356 A JP2008500356 A JP 2008500356A JP 2008500356 A JP2008500356 A JP 2008500356A JP 4653837 B2 JP4653837 B2 JP 4653837B2
Authority
JP
Japan
Prior art keywords
packet
data
transmission control
received
error information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008500356A
Other languages
English (en)
Other versions
JPWO2007094039A1 (ja
Inventor
正博 三島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2007094039A1 publication Critical patent/JPWO2007094039A1/ja
Application granted granted Critical
Publication of JP4653837B2 publication Critical patent/JP4653837B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • H04L1/0008Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length by supplementing frame payload, e.g. with padding bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、情報処理装置、転送装置および情報処理装置の制御方法に関するものである。
従来から複数のプロセッサを有するシステムモジュール間をバスで接続した構造のマルチプロセッサシステムが提案されている(たとえば、特許文献1参照)。図1は、マルチプロセッサシステムの構成例を示すブロック図である。この例では、マルチプロセッサを有する2つのシステムモジュール10a,10bがバス31を介して接続されている。2つのシステムモジュールは同一の構造を有しており、所定の命令列の入力に基づいて所定の演算処理を実行し、キャッシュメモリを有する2つの中央演算処理装置(Central Processing Unit、以下、CPUという)11と、DIMM(Dual Inline Memory Module)などからなるメインメモリ12と、メインメモリ12へのアクセス信号などを制御するメモリアクセスコントローラ(Memory Access Controller、以下、MACという)13と、複数のシステムモジュール10a,10bに跨ってデータパケットを伝送する場合にパケットの中継を行うシステムコントローラ14と、を有する。システムコントローラ14と、CPU11、MAC13とは、バス21を介して接続されている。
このようなマルチプロセッサシステムでの複数のシステムモジュール10a,10b間における従来のデータパケットの伝送方法について説明する。まず、あるシステムモジュール10内のCPU11やMAC13などの処理部から他のシステムモジュール10内のMAC13やCPU11へのデータがパケット化され、システムコントローラ14に送信される。システムコントローラ14は、パケットを受信すると、送信先のシステムモジュール10に送信するためにバス31のプライオリティ(使用権)を取得し、処理部から受信したパケットを受信するとすぐに送信先のシステムモジュール10に送信する処理を行う。一方、送信先のシステムモジュール10のシステムコントローラ14はパケットを受信すると、パケットの宛て先情報に基づいて送信先の処理部にパケットを送信する。そして、すべてのデータ(パケット)の送信が終了すると、バス31が解放される。
このようなデータパケットの伝送方法では、たとえば、システムモジュール10aのCPU11aからシステムコントローラ14aへパケット伝送中に、CPU11aまたはバス21aに故障が発生し、システムコントローラ14aがCPU11aからのパケットを最後まで正常に受けきれなかった場合に、システムコントローラ14aは、CPU11aからのパケットをいつまでたってもシステムコントローラ14a,14b間を結ぶバス31上に伝送することがない。そのため、システムコントローラ14aからシステムコントローラ14bへのパケットの伝送も中断されることとなる。システムコントローラ14aから見ると、CPU11aのパケットの伝送が完了できないために、システムコントローラ14bに対するバス31を解放できなくなる。その結果、たとえば、その後に、システムモジュール10aのCPU11b→システムコントローラ14b→システムモジュール10bのシステムコントローラ14b→CPU11c宛てといった故障箇所とは直接関係のないデータパケットの伝送もできなくなる。つまり、CPU11aまたはCPU11aとシステムコントローラ14aとの間のバス21aの故障によって、システムコントローラ14a,14b間を結ぶバス31の閉塞が発生し、システム全体でパケットの伝送が不可能になっていた。
このようなバス31の閉塞を回避するために、システムコントローラ14a側でCPU11aからのパケットの伝送中に異常を発見した場合に、システムコントローラ14aからシステムコントローラ14bへのパケットの伝送を打ち切る方法がある。つまり、あるCPU11からのパケットの伝送中に異常を発見した場合には、そのCPU11からのパケットの伝送を打ち切り、他のCPU11とシステムコントローラ14との間に送出された異なるデータの第1のパケットを、異常なパケットとして打ち切ったパケットの後に送信するようにしている。
図2は、この方法を用いてシステムコントローラ間でデータパケットを伝送する場合のタイムチャートを示す図である。このタイムチャートでは、(1)システムモジュール10aのCPU11aからシステムモジュール10bへの正常な第1のデータ100Aの送信処理、(2)システムモジュール10aのCPU11aからシステムモジュール10bへの異常な第2のデータ100Bの送信処理、(3)システムモジュール10aのCPU11bからシステムモジュール10bへの正常な第3のデータ100Cの送信処理、が続けて行われる場合を示している。また、このタイムチャートにおいて、システムコントローラ14内におけるレイテンシを5τ(サイクル)としている。
まず、(1)のシステムモジュール10aのCPU11aからシステムモジュール10bへ第1のデータ100Aが送信される場合について説明する。この場合、CPU11aからシステムモジュール10bに送信される第1のデータ100Aは5つのパケットに分割されて送信されるものとする。時間=「1」でCPU11aから第1のデータ100Aの第1のパケットがバス21aに送出され、最後の第5のパケットが時間=「5」でバス21aに送出される。システムコントローラ14内のレイテンシは5τであるので、第1のパケットは、時間=「6」でシステムコントローラ14a,14b間を結ぶバス31に送出され、最後の第5のパケットは、時間=「10」でバス31に送出される。
つぎに、(2)のシステムモジュール10aのCPU11aからシステムモジュール10bへ第2のデータ100Bが送信される場合について説明する。この場合も、CPU11aからシステムモジュール10bに送信される第2のデータ100Bは5つのパケットに分割されて送信されるものとする。時間=「7」でCPU11aから第2のデータ100Bの第1のパケットがバス31に送出され、第4のパケットが時間=「10」でバス31に送出される。その後、CPU11aまたはバス21aの故障によって、第5のパケットがシステムコントローラ14aに到着しなかったものとする。このとき、第1のパケットは、時間=「12」でシステムコントローラ14a,14b間を結ぶバスに送出され、第4のパケットは、時間=「15」でバス31に送出される。
そして、(3)のシステムモジュール10aのCPU11bからシステムモジュール10bへ第3のデータ100Cが送信される場合について説明する。この場合も、CPU11bからシステムモジュール10bに送信される第3のデータ100Cは5つのパケットに分割されて送信されるものとする。時間=「8」でCPU11bから第3のデータ100Cの第1のパケットが、CPU11bとシステムコントローラ14bを結ぶバス21bに送出され、第5のパケットが時間=「12」でバス21bに送出される。システムコントローラ14aは、CPU11bからのパケットを受信するが、受信時にシステムコントローラ14a,14b間を結ぶバスが(2)のCPU11aからシステムモジュール10bへのデータ伝送に使用されているために、バッファに一時記憶される状態となる。
ここで、システムコントローラ14aは、第2のデータ100Bの第4のパケットを受信した後、たとえば期待するタイミングで第5のパケットが到着しないので、CPU11aまたはCPU11aとシステムコントローラ14aとを結ぶバス21aに故障が発生したものと判断し、CPU11aからのデータの伝送を打ち切る処理を行う。そして、システムコントローラ14aは時間=「16」で、第3のデータ100Cの第1のパケットをバス31に送出する処理を開始し、時間=「20」で第5のパケットをバス31に送出する。以上のようにして、システムモジュール10a,10b間のデータの伝送が行われる。
しかし、このようなデータ伝送の打ち切り方法では、システムコントローラ14bから見ると、CPU11aからの異常なパケットとCPU11bからの正常なパケットとが連続した形のパケットを受取るので、より具体的には、CPU11aからの全てのパケットが届けられないで、CPU11bからのパケットが届けられるので、異常なプロトコルでパケットを受取ってしまうことになる。つまり、システムコントローラ14bにとってはシステムコントローラ14a,14b間で故障が起きたように見えてしまう。その結果、この場合でも、CPU11aまたはCPU11aとシステムコントローラ14aとの間の伝送経路(バス21a)の故障がシステム全体に波及してしまう。
さらに、図1のような複数のCPU11により構成されるシステムは、パーティショニングなどによってCPU11ごとに論理的には分割された状態で使用されることも想定される。そのような場合において、CPU11aの故障においてCPUで共通に使用されているバスが閉塞したり、エラーが連鎖して起こったりすることはシステムの信頼性という観点からは望ましくない。
特開2001−167069号公報
以上の様な従来の問題点を解決するための確実な手法は、システムコントローラ14などの中継を担当するチップは、システムモジュール10内の各処理部からのデータパケットを最後まで受信した後に、異常なパケットを有するデータは破棄し、正常なパケットのみを有するデータをつぎの経路上のチップ(システムコントローラ14)に伝送させることである。
図3は、処理部からのパケットをすべて受信した後に送信先のシステムモジュールへパケットの送信処理を行う場合のタイムチャートの一例を示す図である。このタイムチャートも図2の場合と同様に、(1)〜(3)の処理が行われるものとする。また、このタイムチャートにおいて、システムコントローラ14内におけるレイテンシを5τ(サイクル)としている。
まず、(1)のシステムモジュール10aのCPU11aからシステムモジュール10bへ第1のデータ100Aが送信される場合について説明する。この場合、CPU11aからシステムモジュール10bに送信される第1のデータ100Aは5つのパケットに分割されて送信されるものとする。時間=「1」でCPU11aから第1のデータ100Aの第1のパケットがバス21aに送出され、最後の第5のパケットが時間=「5」でバス21aに送出される。この伝送方法では、システムコントローラ14aは、データを構成するすべてのパケットを受信してから、正常なパケットからなるデータのみを送信するとともに、システムコントローラ14内のレイテンシは5τであるため、第5のパケットを正常に受信した後に、第1のパケットの送信処理が開始され、第1のパケットは、時間=「10」でシステムコントローラ14a,14b間を結ぶバス31に送出され、最後の第5のパケットは、時間=「14」でバス31に送出される。
つぎに、(2)のシステムモジュール10aのCPU11aからシステムモジュール10bへ第2のデータ100Bが送信される場合について説明する。この場合も、CPU11aからシステムモジュール10bに送信される第2のデータ100Bは5つのパケットに分割されて送信されるものとする。時間=「7」でCPU11aから第2のデータ100Bの第1のパケットがバス21aに送出され、第4のパケットが時間=「10」でバス21aに送出される。その後、CPU11aまたはCPU11aとシステムコントローラ14a間を結ぶバス21aの故障によって、第5のパケットがシステムコントローラ14aに到着しなかったものとする。このとき、システムコントローラ14aは、第4のパケットを受信した後に、期待される時間内に第5のパケットを受信しないので、異常であると判断し、その異常な第2のデータ100Bとして受信した第1〜第4のパケットを破棄する。そのため、この第2のパケットはシステムコントローラ14a,14b間を結ぶバス31には送出されない。
そして、(3)のシステムモジュール10aのCPU11bからシステムモジュール10bへ第3のデータ100Cが送信される場合について説明する。この場合も、CPU11bからシステムモジュール10bに送信される第3のデータ100Cは5つのパケットに分割されて送信されるものとする。時間=「8」でCPU11bから第3のデータ100Cの第1のパケットが、CPU11bとシステムコントローラ14aを結ぶバス21bに送出され、第5のパケットが時間=「12」でバス21bに送出される。システムコントローラ14aは、CPU11bからの第1〜第5のパケットを正常に受信する。そして、最後の第5のパケットを受信した後に、第3のデータ100Cの送信処理が開始され、時間=「17」でシステムコントローラ14a,14b間を結ぶバス31に送出され、最後の第5のパケットは、時間=「21」でバスに送出される。
しかしながら、この手法は、信頼性の観点からは望ましいが、パケットを最後まで受け取ってから他のチップ(システムコントローラ14)に送出する必要があるので、パケット転送のレイテンシが増加してしまうという問題点があった。つまり、CPU11やCPU11とシステムコントローラ14を結ぶバス21に異常がない場合には、送信するデータサイズが大きいほど、システムコントローラ14ですべてのデータの到着を待つ必要があるので、レイテンシが増加してしまうという問題点があった。
本発明は、上記に鑑みてなされたものであって、複数の処理部に第1の伝送路を介して接続されるシステムコントローラを有する複数のシステムモジュールが第2の伝送路を介して接続されるマルチプロセッサシステムで使用されるシステムモジュールにおいて、処理部がデータをパケットに分割して送出する処理を行っている最中に、その処理部またはその処理部につながる第1の伝送路上に異常が発生した場合でも、マルチプロセッサシステム全体を停止させることなくマルチプロセッサシステム全体での処理を実行することができるとともに、システムコントローラでパケットを最後まで受け取ってから他のシステムコントローラにデータを転送する場合に比してデータ転送のレイテンシを小さくすることができるシステムモジュールを提供することを目的とする。また、このシステムモジュールにおけるデータ中継方法を提供することも目的とする。
上述した課題を解決し、目的を達成するために、複数の処理装置にそれぞれ接続するとともに、互いにバスを介して接続された複数の転送装置を有する情報処理装置において、前記複数の転送装置の各々は、前記複数の処理装置のうち対応する処理装置からの一つのデータを、前記一つのデータから分割されたパケット毎に受信するとともに、正常にパケットが受信できた場合、前記正常に受信できた正常パケットをデータ記憶部に書込み、正常にパケットが受信できなかった場合、前記正常に受信できなかったパケットに対応するエラー情報をエラー情報記憶部に書き込む書込制御部と、対応するエラー情報が前記エラー情報記憶部に保持されていない場合、前記データ記憶部から読み出した正常パケットを出力し、対応するエラー情報が前記エラー情報記憶部に保持されている場合、前記正常に受信できなかったパケットの変わりに生成した補完パケットを出力することにより、正常パケット又は補完パケットを含んだ一つのデータとして出力する読出制御部とを備える複数の送信制御部と、前記複数の送信制御部に接続されるとともに、前記複数の送信制御部のいずれかからの前記正常パケット又は補完パケットを含んだ一つのデータを他の転送装置から送信する切替部とを備える。
システムコントローラにおける第2の伝送路を用いたパケットの送信処理を送信先のシステムコントローラとの間でプロトコル的に正常に終了させることができる。その結果、処理部または第1の伝送路の故障が、マルチプロセッサシステム全体の処理を停滞させることがないという効果を奏する
以下に添付図面を参照して、本発明にかかるデータ制御回路の好適な実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本発明にかかるマルチプロセッサシステムの構成を模式的に示すブロック図である。このマルチプロセッサシステムは、マルチプロセッサを有するシステムモジュール10a,10bがバス31を介して互いに接続される。システムモジュール10aは、所定の命令列の入力に基づいて所定の演算処理を実行し、キャッシュメモリを有する2つのCPU11a,11bと、DIMMなどからなるメインメモリ12a,12bと、メインメモリ12a,12bへのアクセス信号などを制御するMAC(メモリアクセスコントローラ)13a,13bと、他のシステムモジュール10bにパケットを伝送する場合にパケットの中継を行うシステムコントローラ14aと、を備える。このシステムモジュール10a内において、CPU11a,11b、MAC13a,13bおよびシステムコントローラ14aは、互いにバス21を介して接続されている。この図1では模式的に、CPU11aとシステムコントローラ14aを結ぶ伝送路をバス21aとし、CPU11bとシステムコントローラ14aを結ぶ伝送路をバス21bとしている。ここで、CPU11a,11b,MAC13a,13bは請求の範囲の処理部に対応し、バス21,21a,21bは同じく第1の伝送路に対応し、バス31は同じく第2の伝送路に対応している。
同様に、システムモジュール10bは、CPU11c,11d、メインメモリ12c,12d、MAC13c,13d、およびシステムコントローラ14bを備え、CPU11c,11d、MAC13c,13dとシステムコントローラ14bとは、互いにバスを介して接続される。ここで、CPU11c,11d、MAC13c,13dは請求の範囲の処理部に対応し、バスは同じく第1の伝送路に対応している。なお、以下では、システムモジュール10aの符号を用いて、各部の説明を行う。
システムコントローラ14aは、複数のシステムモジュール10a,10bに跨ってパケットを伝送する場合に、受信したパケットを1つ以上の送信先に対して送信する機能を有し、他のシステムモジュール10bのシステムコントローラ14bから受信するパケットを処理する受信処理部と、自システムモジュール10a内の処理部(CPU11a,11b、MAC13a,13b)からのパケットを他のシステムモジュール10bに送信する送信処理部とを有する。この実施例では、システムコントローラ14aは、自システムモジュール10a内の処理部が他のシステムモジュール10bに向けてパケットを送信している際に、その処理部またはその処理部とシステムコントローラ14a間のバス(伝送路)21に異常が発生した場合に、システム全体を停止させずに、システムコントローラ14a,14b間のバス31を利用可能な状態を維持させることができるデータ送信制御部を、システムコントローラに接続される処理部ごとに送信処理部に備えることを特徴とする。このデータ送信制御部は、請求の範囲におけるデータ送信制御手段に対応する。
図4は、システムコントローラの送信処理部の構成を模式的に示すブロック図である。この送信処理部50は、バス21を介して接続されるシステムモジュール10a内の処理部ごとに設けられるデータ送信制御部51a〜51dと、システムコントローラ14a,14b間を結ぶバス31のプライオリティ(使用権)に基づいて他のシステムモジュール10bとの間のバス31に送出するパケットの切替えを行うデータ伝送調整部57と、データ伝送調整部57から送られるパケットをバス31を介して目的とするシステムモジュール10bのシステムコントローラ14bに送信するパケット送信部58と、を備える。
また、データ送信制御部51は、パケット受信部52と、受信パケット書込制御部53と、パケット一時記憶部54と、エラー情報記憶部55と、送信パケット読出制御部56と、を有する。なお、図4では、各処理部に対応して設けられる送信処理部の機能構成は同じであるので、データ送信制御部51b〜51dの内部の機能ブロック図は省略している。この図4では、データ送信制御部51aはCPU11aに接続され、データ送信制御部51bはCPU11bに接続され、データ送信制御部51cはMAC13aに接続され、データ送信制御部51dはMAC13bに接続される。ここで、受信パケット書込制御部53は、請求の範囲の受信パケット書込制御手段に対応し、パケット一時記憶部54は、同じくパケット一時記憶手段に対応し、エラー情報記憶部55は、同じくエラー情報記憶手段に対応し、送信パケット読出制御部56は、同じく送信パケット読出制御手段に対応している。
パケット受信部52は、システムモジュール10a内の自システムコントローラ14aと接続される他のCPU11a,11bやMAC13a,13bなどの処理部からのパケットを、バス21a,21b,21を介して受信する。
受信パケット書込制御部53は、パケット受信部52で受信したパケットが、正常なパケットか異常なパケットかを監視し、正常なパケットである場合には、そのパケットをパケット一時記憶部54に書込み、異常なパケットである場合には、そのパケットが異常であることを示すエラー情報をエラー情報記憶部55に書込む。この受信パケット書込制御部53による処理は、パケット受信部52でパケットを受信するとすぐに実行される。また、受信パケット書込制御部53による受信したパケットの正常か異常かの判定は、システムコントローラ14aのインタフェース上の取り決めに合ったパケットであるか否かに基づいて判定を行う。この実施例では、受信パケット書込制御部53は、処理部から送信されたデータを構成する1以上のパケットについて、その先頭のパケットが保持するヘッダ情報から全パケット数を抽出し、全パケット数を受信する前に、その処理部からのパケットが所定の時間内に到達しない場合には、異常であると判定する場合を例に挙げる。このような異常の原因として、パケットの送信元である処理部の異常(故障)、処理部とシステムコントローラ14aとの間のバス21の異常、受信パケット書込制御部53自身の異常、などを例示することができる。
パケット一時記憶部54は、パケット受信部52で受信した正常なパケットを記憶する。また、エラー情報記憶部55は、受信パケット書込制御部53により受信異常と判定されたパケットについて、そのパケットが受信異常であることを示すエラー情報を書込む。
送信パケット読出制御部56は、エラー情報記憶部55を参照しながら、送信すべきパケットをパケット一時記憶部54から読出して、またはエラー情報記憶部55にエラー情報が記憶されたパケットについては、そのパケットがエラーである旨を示すエラーパケット(以下、補完パケットという)を補完して、パケット送信部58に向けて出力する。たとえば、実際には存在するはずのパケットがシステムコントローラ14aに届かなかった場合に、そのパケットの代わりにエラー情報を含む補完パケットを補完して、パケット送信部58に向けて送信する。この送信パケット読出制御部56は、パケット一時記憶部54にパケットが記憶されると、すぐに送信処理を行う。
データ伝送調整部57は、システムモジュール10a,10b間を結ぶバス31の使用権に基づいて、システムコントローラ14aとバス21を介して接続される処理部ごとに設けられるデータ送信制御部51a〜51dからのパケットをバス31に送出するための切替え処理を行って、パケットをパケット送信部58に流す機能を有する。また、パケット送信部58は、データ伝送調整部57から渡されたパケットを、システムモジュール10a,10b間を結ぶバス31に送信する機能を有する。
つぎに、このような構成を有するシステムコントローラ14aの送信処理について説明する。まず、データ送信制御部の受信パケット書込制御部による受信パケット書込処理について、図5のフローチャートを参照しながら説明する。なお、ここでは、データ送信制御部51に接続される処理部から送信されるデータが、n個(nは自然数)の第1〜第nのパケットに分割されて送信されるものとする。また、第1のパケットは、エラーが発生していないものとして扱うものとする。
まず、所定の処理部に接続されるデータ送信制御部51は、パケット受信部52でその処理部からのパケットを受信しない状態(ステップS101でNoの場合)には、待ち状態となる。一方、パケット受信部52でパケットを受信すると(ステップS101でYesの場合)には、受信パケット書込制御部53は、パケット受信部52から受取ったパケット、つまり第1のパケットのヘッダ情報を読取り、その処理部から送信される全パケット数nを取得する(ステップS102)とともに、受信パケット数をカウントする(ステップS103)。ついで、その第1のパケットをパケット一時記憶部54に書込む(ステップS104)。
ついで、受信パケット書込制御部53は、受信パケット数が全パケット数nに達したか否かを判定する(ステップS105)。受信パケット数が全パケット数nに達した場合(ステップS105でYesの場合)には、ステップS101へと戻り、つぎの新たなデータを構成するパケットの受信待ちの状態となる。一方、受信パケット数が全パケット数nに満たない場合(ステップS105でNoの場合)には、受信パケット書込制御部53は、つぎのパケットを、その前のパケットを受信してから所定の時間内で受信したか否かを判定する(ステップS106)。
所定の時間内でつぎのパケットを受信した場合(ステップS106でYesの場合)には、受信パケット数をカウントし(ステップS107)、そのパケットをパケット一時記憶部54に書込んで記憶させる(ステップS108)。その後、ステップS105へと戻り、上述した工程を繰り返し実行する。
一方、所定の時間内でつぎのパケットを受信しなかった場合(ステップS106でNoの場合)には、受信パケット書込制御部53は、そのパケットを送信した処理部、その処理部との間のバス21または受信パケット書込制御部53自身に(つまり、パケットの受信経路上に)異常が発生したと判定し(ステップS109)、エラー情報記憶部55にその番号のパケットが異常である旨のエラー情報を書込む(ステップS110)。その後、受信パケット書込制御部53は、エラーが発生したパケットであるが、処理したパケットとして受信パケット数をカウントして(ステップS111)、ステップS105へと戻り、上述した処理が繰り返し実行される。以上のようにして、受信パケット書込制御部53による受信パケット書込処理が行われる。
なお、上述した受信パケット書込処理の説明では、全パケット数に達するまで、受信したパケットの1つ1つについて、異常か否かを判定し、パケット数をカウントする処理を行っていた。しかし、受信したパケットのうち1つでも異常であれば、そのパケットを含むデータは、受信側で使い物にならない。そこで、最初に異常なパケットと判定された場合には、その後のパケットの受信処理を行わず、以後の全パケットをすべて異常なパケットとして処理するようにしてもよい。
つぎに、データ送信制御部の送信パケット読出制御部による送信パケット読出処理について、図6のフローチャートを参照しながら説明する。なお、ここでは、図5と同様に、データがn個(nは自然数)の第1〜第nのパケットに分割されて送信されるものとする。また、第1のパケットは、エラーが発生していないものとして扱うものとする。
最初に、データ送信制御部51に接続される処理部からパケットを受信せず、パケット一時記憶部54にパケットが記憶されていない場合(ステップS131でNoの場合)には、送信パケット読出制御部56は、待ち状態となる。一方、パケット一時記憶部54にパケットが一時的に記憶されている場合(ステップS131でYesの場合)には、送信パケット読出制御部56は、処理部から受信した第1のパケットをパケット一時記憶部54から読出し、ヘッダ情報を示すタグをパケットに付加する(ステップS132)。
図7は、送信するパケットに付すタグの一例を示す図であり、図8−1は、正常なパケットにタグを付した一例を示す図であり、図8−2は、異常なパケットにタグを付した一例を示す図である。この例では、パケットの種類に応じて2ビットのタグ(パケット異常状態表示情報)を付すようにしている。たとえば、タグ「01」は、パケットの内容がそのパケットを含むデータについてのパケット数を含むヘッダ情報であることを示しており、タグ「10」は、正常にパケット受信部52によって受信されたパケットであることを示しており、タグ「11」は、正常にパケット受信部52で受信されなかったパケットであること、すなわち、データ送信制御部51に接続される処理部、その処理部との間のバス21または受信パケット書込制御部53の故障によってパケットを受信できず、補完された補完パケットであることを示している。図8−1と図8−2に示されるように、第1のパケット111−1,121−1は、ヘッダ情報であるので、パケット一時記憶部54から読出されたパケット111aの先頭にタグ111bとして「01」が付されることになる。
また、送信パケット読出制御部56は、読出したパケットを送信するために送信先のシステムコントローラ14a,14b間を結ぶバス31の使用権を確保する(ステップS133)。その後、送信パケット読出制御部56は、第1のパケットをデータ伝送調整部57に送出する(ステップS134)。
ついで、送信パケット読出制御部56は、エラー情報記憶部55のつぎのパケットについてのエラー情報を参照し(ステップS135)、このエラー情報に基づいてつぎのパケットが異常であるか否かを判定する(ステップS136)。つぎのパケットのエラー情報が異常でない場合(ステップS136でNoの場合)には、パケット一時記憶部54につぎのパケットが書込まれたか判定する(ステップS137)。パケット一時記憶部54につぎのパケットが書込まれない場合(ステップS137でNoの場合)には、待ち状態となる。そして、パケット一時記憶部54につぎのパケットが書込まれると(ステップS137でYesの場合)、送信パケット読出制御部56は、パケット一時記憶部54からつぎのパケットを読出し、正常に受信されたパケットであることを示すタグを付加する(ステップS138)。この場合、正常なパケットであるので、パケット一時記憶部54から読出されたパケットの先頭には、図8−1の第2〜第5のパケット111−2〜111−5や図8−2の第2〜第4のパケット121−2〜121−4のようにタグ111bとして「10」が付加される。その後、タグを付加されたパケットがデータ伝送調整部57へと送出される(ステップS139)。
また、ステップS136でつぎのパケットのエラー情報が異常である場合(ステップS136でYesの場合)には、送信パケット読出制御部56は、予め定められた形式のエラーを示す補完パケットを生成して(ステップS140)、エラーパケットであることを示すタグを生成した補完パケットに付加する(ステップS141)。この場合、補完パケットであるので、生成された補完パケット111aの先頭には、図7や図8−2の第5のパケット121−5のようにタグ111bとして「11」が付加される。その後、このエラーパケットがデータ伝送調整部57へと送出される(ステップS142)。
その後またはステップS139の後、送信パケット読出制御部56は、ステップS139またはステップS142で送出したパケットは最後のパケットか否かを判定する(ステップS143)。この判定は、ステップS132で読出した第1のパケットに含まれる全パケット数に、送出したパケット数が達したか否かによって判定される。送出したパケットが最後のパケットではない場合(ステップS143でNoの場合)には、ステップS135へと戻り、上述した処理が繰り返し実行される。また、送出したパケットが最後のパケットである場合(ステップS143でYesの場合)には、ステップS131へと戻り、つぎの新たなデータのパケットがパケット一時記憶部54に記憶されるまで待ち状態となり、上述した処理が繰り返し実行される。以上のようにして、送信パケット読出制御部56による送信パケットの読出処理が行われる。
なお、上述した受信パケット書込処理の説明では、全パケット数に達するまで、受信したパケットの1つ1つについて、異常か否かを判定し、パケット数をカウントする処理を行っていた。しかし、受信したパケットのうち1つでも異常であれば、そのパケットを含むデータは、受信側で使い物にならない。そこで、最初に異常なパケットと判定された場合には、その後のパケットの受信処理を行わず、以後の全パケットをすべて異常なパケットとして処理するようにしてもよい。
以上のようにして、システムモジュール10a内の処理部から来るべきパケットが来ない場合でも、その来るべきパケットを補完してエラー情報を含む補完パケットを他のシステムモジュール10bに送信するようにしたので、その処理部からのパケットの送信処理をシステムモジュール10a,10b間でプロトコル的に正常に終わらせることができる。
以下に、このような機能構成を有するシステムコントローラについて、さらに具体的な例を挙げて説明する。図9は、図4に示されるシステムコントローラの送信処理部の回路構成の一例を示す回路ブロック図である。この送信処理部は、各処理部に対応して存在するデータ送信制御部51a〜51dと、各データ送信制御部51a〜51dから送信されるパケットの切替えを行うデータ切替回路81と、パケットを送信する送信フリップフロップ回路(以下、送信FFという)82と、を備える。ここで、データ切替回路81は、図4のデータ伝送調整部57に対応し、送信FF82は、同じくパケット送信部58に対応する。
また、各データ送信制御部51a〜51dは、対応する処理部からのパケットを受信する受信フリップフロップ回路(以下、受信FFという)72と、受信したパケットの内容が一時的に記憶されるRAM(Random Access Memory)73と、RAM73内に記憶されたパケットを読出すRAM読出フリップフロップ回路(以下、RAM読出FFという)74と、受信したパケットの異常の有無を監視してRAM73への書込みを制御するパケット書込制御回路75と、受信したパケットのエラー状態を記憶するエラー状態記憶フリップフロップ回路(以下、エラー状態FFという)76と、RAM73から読込むパケットに同期して異常状態の有無をフラグで示すラッチ回路77と、ラッチ回路77を参照してRAM読出FF74によるRAM73からのパケットの読出しの制御を行い、異常なパケットの場合にはエラー情報を含む補完パケットを生成して送信するパケット読出制御回路78と、ラッチ回路77の情報に基づいてRAM読出FF74からのパケットかパケット読出制御回路78からの補完パケットかを選択するセレクタ79と、を備える。
ここで、受信FF72は、図4のパケット受信部52に対応し、RAM73は、同じくパケット一時記憶部54に対応し、パケット書込制御回路75は、同じく受信パケット書込制御部53に対応し、エラー状態FF76とラッチ回路77は、同じくエラー情報記憶部55に対応し、RAM読出FF74とパケット読出制御回路78とセレクタ79は、送信パケット読出制御部56に対応している。
エラー状態FF76は、RAM73のパケット記憶領域に記憶されたパケット(データ)が正常か否かを、RAM73のパケット記憶領域に対応付けて記憶する回路である。ここでは、正常なパケットの場合には「0」が記憶され、異常なパケットの場合には「1」が記憶されるものとする。図10は、RAMの記憶領域とエラー状態FFの対応を模式的に示す図である。RAM73には、受信したパケットを記憶するパケット記憶領域731a〜731dが予め割り当てられている。そして、それぞれのパケット記憶領域731にアドレスが付されている。たとえば、第1のパケット記憶領域731aのアドレス(2進数)は、「00○○○」で表され、第2のパケット記憶領域731bのアドレスは、「01○○○」で表され、第3のパケット記憶領域731cのアドレスは、「10○○○」で表され、第4のパケット記憶領域731dのアドレスは、「11○○○」で表されるものとする。ただし、「○○○」は、任意の2進数を表している。このようにパケット記憶領域731a〜731dが設けられたRAM73に対して、エラー状態FF76は、RAM73に設けられたパケット記憶領域731に対応する1ビットの記憶領域761を有している。ここで、上記RAMのパケット記憶領域731a〜731dは、そのアドレスの上位2ビットで識別することができる。そこで、そのパケット記憶領域731a〜731dのアドレスの上位2ビットを識別子として用いて、この識別子をエラー状態FF76の各記憶領域761a〜761dに対応付けている。この図10の例では、エラー状態FF76の上位ビット(記憶領域761a〜761d)から順に、「00」、「01」、「10」、「11」が対応付けられている。
ラッチ回路77は、後述するパケット読出制御回路78がRAM73からパケットを読出す際に、そのパケットの異常状態の有無をフラグで示す。この例では、正常なパケットである場合には「0」が記憶され、異常なパケットである場合には「1」が記憶される。
パケット読出制御回路78は、ラッチ回路77のフラグに基づいて、送出するパケットの制御を行う。具体的には、RAM73からRAM読出FF74へのパケットの読出時に、ラッチ回路77が「0」を示している場合には、読出すパケットが正常であることを示しているので、パケット読出制御回路78はRAM73からRAM読出FF74へパケットの読出しを行う。一方、RAM73からRAM読出FF74へのパケットの読出時に、ラッチ回路77が「1」を示している場合には、読出すパケットが異常であること(パケットがないこと)を示しているので、パケット読出制御回路78はエラーを示す内容を有し、本来あるはずのパケットを補完する補完パケットを生成する。また、パケット読出制御回路78は、RAM73からのあるデータの第1のパケットの読出し処理が行われると、送信先のシステムモジュール10bに接続されるバス31の使用権を確保する処理を行う。
RAM読出FF74は、パケット読出制御回路78によって読出されたパケットを一時的に記憶する。また、セレクタ79は、ラッチ回路77のエラー情報を参照して、RAM読出FF74からのパケットかパケット読出制御回路78からの補完パケットかを選択して、データ切替回路81に渡す。
なお、その他の構成要素は、基本的に図4で説明した対応する構成要素と同一の機能を有するので詳細な説明を省略する。
つぎに、1つのデータが第1〜第5のパケットの5つのパケットに分割されてシステムモジュール10aのCPU11aから他のシステムモジュール10bのMAC13cに送信される場合を例に挙げて、より具体的なパケット送信処理部の動作処理について説明する。
最初に、パケット書込制御回路75による受信パケットの処理について説明する。図11は、パケット書込制御回路の状態遷移を示す図である。この図に示されるように、CPU11aから他のシステムモジュール10b宛のデータを受信しない場合には、アイドル状態(図中、IDLEと表記)にある(ST101)。その後、受信FF72に第1のパケットが正常に到着すると、パケット書込制御回路75は、第1のパケット受信状態(図中、1st RCVと表記)となる(ST102)。ここで、パケット書込制御回路75は、第1のパケットのヘッダ情報から一連のパケットの総数(全パケット数)を抽出する。そして、第1のパケットをRAMに書込むとともに、書込んだRAMのパケット記憶領域に対応するエラー状態FF76の記憶領域には、正常なパケットであることを示すエラー情報「0」が記憶される。
この第1のパケット受信状態で、第1のパケットが受信されてから期待するタイミングで受信FF72に第2のパケットが正常に(異常なく)到着すると、パケット書込制御回路75は、第2のパケット受信状態(図中、2nd RCVと表記)となる(ST103)。ここで、パケット書込み制御回路は、第2のパケットをRAM73に書込むとともに、書込んだRAM73のパケット記憶領域731に対応するエラー状態FF76の記憶領域761には、正常なパケットであることを示すエラー情報「0」が記憶される。ただし、アイドル状態(初期状態)では、エラー状態FF76の記憶領域761はリセットされた状態にあるとすると、実際には記憶領域761にはエラー情報を書込む処理は何も行われない。
その後、第3のパケットから第5のパケットまで、その前のパケットが受信されてから期待するタイミングで受信FF72に正常に(異常なく)到着した場合にも、パケット書込制御回路75は、同様の状態となり、同様の処理を行う(ST103〜ST106)。ただし、一連のパケットの最後のパケット、すなわちこの例では第5のパケットを受信した第5のパケット受信状態(図中、5th RCVと表記)の後では、パケット書込制御回路75は、ST101のアイドル状態に遷移する。
一方、第1のパケット受信状態(ST102)で、第1のパケットが受信されてから期待するタイミングで(所定の時間内に)受信FF72に第2のパケットが到着しないかまたは他の異常を検出した場合には、パケット書込制御回路75は、エラー状態FF76の第2のパケットに対応する記憶領域に異常を示す「1」をセットし、また、以降のパケット(ここでは第3〜第5のパケット)に対応するエラー状態FF76の記憶領域にも異常を示す「1」を書き込んで、ST101のアイドル状態に遷移する。
同様に、第2〜第4のパケット受信状態(ST103〜ST105)でも、その前のパケットが受信されてから期待するタイミングで(所定の時間内に)受信FF72に第3〜第5のパケットが到着しないかまたは他の異常を検出した場合には、パケット書込制御回路75は、エラー状態FF76の第3〜第5のパケットに対応する記憶領域に異常を示す「1」をセットし、また、以降のパケットに対応するエラー状態FF76の記憶領域にも異常を示す「1」を書き込んで、ST101のアイドル状態に遷移する。なお、この図11の例では、パケット書込制御回路75がエラーを検出すると、それ以降のパケットの分までエラー状態FF76に異常を示す「1」を書き込むようにしているが、パケット読出制御回路78側のラッチ回路77は、異常を示す「1」を一度検出すると、そのデータ送信が完了するまで「1」を保持するように動作させてもよい。
つぎに、パケット読出制御回路78によるパケットの送信処理について説明する。図12は、パケット読出制御回路の状態遷移を示す図である。この図に示されるように、パケット読出制御回路78は、RAM73にパケットが記憶されていない状態にある場合には、アイドル状態(図中、IDLEと表記)にある(ST121)。その後、RAM73に第1のパケットが書込まれると、パケット読出制御回路78は、RAM73に記憶された第1のパケットを読出してRAM読出FF74に格納するとともに、送信先のシステムコントローラ14bとの間のバス31の使用権を確保する。そして、パケット読出制御回路78は、第1のパケットを送信して、第1のパケットの送信状態(図中、1st SENDと表記)に移る(ST122)。
ここで、パケット読出制御回路の第1のパケット送信状態以降の処理手順について図13のフローチャートを参照しながら説明する。最初に、パケット読出制御回路78は、RAM73につぎのパケットが書込まれているか否かを判定する(ステップS201)。RAM73につぎのパケットが書込まれている場合(ステップS201でYesの場合)には、パケット読出制御回路78は、つぎのパケットをRAM73から読出してRAM読出FF74に格納する(ステップS202)。そして、パケット読出制御回路78は、RAM読出FF74に格納されたつぎのパケットに正常なパケットであることを示すタグを付加して送信し(ステップS203)、処理を終了する。このとき送信されるパケットは、図8−1の第2〜第5のパケット111−2〜111−5や図8−2の第2〜第4のパケット121−2〜121−4のように、RAM73に書込まれたパケット111aの先頭に、タグ111bとして正常なデータであることを示す「10」(2ビット)が付加されたものとなる。
一方、RAM読出FF74につぎのパケットが格納されていない場合(ステップS201でNoの場合)には、パケット読出制御回路78は、ラッチ回路77の値が「1」であるか否かを判定する(ステップS204)。ラッチ回路77の値が「1」でない場合(ステップS204でNoの場合)には、ステップS201へと戻り、つぎのパケットがRAM読出FF74に格納されるまで待ち状態となる。また、ラッチ回路77の値が「1」である場合(ステップS204でYesの場合)には、パケット読出制御回路78は、エラー情報を含む補完パケットを生成して送信し(ステップS205)、処理を終了する。このとき送信される補完パケットは、図8−2の第5のパケット121−5に示されるように、エラー情報を含む補完パケット111aの先頭に、タグ111bとして異常なデータであることを示す「11」(2ビット)が付加されたものとなる。
ここで再び図12に戻り、パケット読出制御回路78の状態遷移とそのときの処理について説明する。ST122の第1のパケット送信状態では、図13のフローチャートにしたがった処理を行う。すなわち、第2のパケットがRAM73に書込まれると、パケット読出制御回路78は、第2のパケットをRAM73から読出してRAM読出FF74に格納し、第2のパケットを送信して第2のパケット送信状態(図中、2nd SENDと表記)に移る(ST124)。一方、RAM73に第2のパケットが書込まれない状態で、第2のパケットに対応するラッチ回路77が正常を示す「0」である場合には、パケット読出制御回路78は、待ち状態(図中、WAITと表記)に移る(ST123)。この待ち状態で、第2のパケットがRAM73に書込まれると、パケット読出制御回路78は、第2のパケットをRAM73から読出してRAM読出FF74に格納し、第2のパケットを送信する第2のパケット送信状態に移る(ST124)。
第2のパケット送信状態から第4のパケット送信状態における正常なパケットの送信処理についても、上述した第1のパケット送信状態のST123またはST124の状態に対応して、RAM73に書込まれた第3〜第5のパケットをRAM読出FF74に格納した後に送信する処理を行う(ST125〜ST130)。ただし、最後のパケット、すなわちこの例では第5のパケットを送信した第5のパケット送信状態(ST130)の後では、パケット読出制御回路78は、ST121のアイドル状態に戻る。
一方、第1〜第4のパケット送信状態(ST122,ST124,ST126,ST128)の各状態で、ラッチ回路77に異常を示すフラグ「1」が立てられている場合には、パケット読出制御回路78は、図13のフローチャートのステップS204〜S205に示される処理を行う。つまり、パケット読出制御回路78は、ラッチ回路77の値が「1」である場合には、補完パケットを送信して、第2〜第5の送信状態に遷移する(ST124,ST126,ST128,ST130)。
また、待ち状態(ST123,ST125,ST127,ST129)の各状態で、ラッチ回路77に異常を示すフラグ「1」が立てられている場合にも、パケット読出制御回路78は、図13のフローチャートのステップS204〜S205に示される処理を行う。つまり、パケット読出制御回路78は、ラッチ回路77の値が「1」である場合には、補完パケットを送信して、第2〜第5の送信状態に遷移する(ST124,ST126,ST128,ST130)。
以上のようにして、正常なパケットの場合には図8−1に示されるパケットが111−1〜111−5、パケット読出制御回路78から送信され、第5のパケットが異常な場合には図8−2に示されるパケット121−1〜121−5が、パケット読出制御回路78から送信される。
ここで、図9に示されるシステムコントローラでの各処理部における処理の流れの様子を図14のタイムチャートを参照しながら説明する。なお、図14の縦軸には、パケットが流れていく経路上の処理部(回路)が順に記載されている。つまり、CPU11aとシステムコントローラを結ぶバス(図中、BUSと表記)21a、受信FF72、エラー状態FF76、RAM73、RAM読出FF74、パケット読出制御回路78の状態(ステータス)、ラッチ回路77、送信FF82におけるタイムチャートが示されている。また、横軸はサイクル(時間)を示している。
また、この例では、最初にシステムモジュール10aのCPU11aからバス21aに5つのパケットからなる第1のデータ100Aの第1〜第5のパケットが正常に流され、また、その1サイクル後に、システムモジュール10aのCPU11aからバス21aに5つのパケットからなる第2のデータ100Bの第1〜第5のパケットが流されたものとする。ただし、第2のデータ100Bは、第4のパケットの転送後にCPU11aまたはバス21a上で故障が発生して第5のパケットがシステムコントローラ14aに到達しない場合を以下に示す。つまり、正常な第1のデータ100Aの送信後に、異常なパケットを含む第2のデータ100Bがシステムモジュール10a,10b間で送信される場合の処理について説明する。
まず、受信FF72では、バス21aより1サイクル遅れてCPU11aからの第1のデータ100Aの第1のパケットを受信する。パケット書込制御回路75は、受信された第1のデータ100Aについて監視するが、第1のデータ100Aの第2〜第5のパケットについては、その前のパケットを受信してから所定の時間内につぎのパケットを受信しているので異常とは判定しない。そのため、エラー状態FF76には何の状態も書込まれない。また、パケット書込制御回路75は、受信したパケットに異常が無いことから、受信FF72から1サイクル遅れてRAM73に受信した第1〜第5のパケットを順に書込む。なお、ここでは、エラー状態FF76には何も書込まれないが、図に示すように、RAM73へのパケットの書込みと同期して、「0」が設定されている状態にある。
RAM読出FF74では、RAM73から2サイクル遅れてRAM73に書込まれたパケットが読出されて格納される。また、ラッチ回路77には、エラー状態FF76から1サイクル遅れて、RAM読出FF74に格納されたパケットに対応するエラー状態FF76の内容が書込まれる。
一方、パケット読出制御回路78は、RAM読出FF74にパケットが格納されるまでアイドル状態にあるが、RAM読出FF74に第1のパケットのデータが書込まれると、ラッチ回路77の値を参照して、そのパケットを送信する状態となる。つまり、パケット読出制御回路78は、第1のデータ100Aの第1のパケットに対応する時間「4」でラッチ回路77の値が「0」であるので、時間「5」において第1のパケットを送信し、第2のパケットに対応する時間「5」でラッチ回路77の値が「0」であるので、時間「6」で第2のパケットを送信する、という処理を第5のパケットを送信するまで繰り返して行う。送信FF82では、RAM読出FF74よりも1サイクル遅れて、バス31上に第1〜第5のパケットを順に送信する。以上で、正常に受信したパケットからなる第1のデータ100Aの送信処理が終了する。
その後、時間「7」からCPU11aからバス21aに送出された第2のデータ100Bの第1〜第4のパケットについても同様にしてバス31に送出される。しかし、本来時間「10」でCPU11aから送出されるはずの第5のパケットは、受信FF72に届かない。そのため、パケット書込制御回路75は、時間「12」で本来到着すると期待される第5のパケットが到着しないために、時間「13」でエラー状態FF76の第5のパケットに対応する記憶領域761にフラグを立てる(エラー状態FF76を「有効(図中では、validと表記)」にする)。同時に、RAM73にはデータが到着しないので、時間「13」ではパケット書込制御回路75による書込処理が行われない。その後、この第5のパケットに対応するエラー状態FF76の記憶領域761のフラグは、1サイクル後(すなわち時間「14」)にラッチ回路77に反映される。
これにより、パケット読出制御回路78は、時間「14」で第5のパケットについて、ラッチ回路77にフラグが立っている(「有効」になっている)ことを確認し、時間「15」でRAM読出FF74に格納されない第5のパケットの代わりに、エラー情報を含む補完パケットを生成し、送信する。その後、パケット読出制御回路78はアイドル状態となり、時間「16」でエラーデータを含む補完パケットがバス31に送信されることになる。以上で、異常なパケットを含む第2のデータ100B1の送信処理が終了する。
本実施例によれば、パケットの送信元の処理部または処理部とシステムコントローラ14a間のバス21aが異常によって本来送信されるべきパケットがシステムコントローラ14aに受信されない場合でも、その異常を検知して補完パケットを生成して、そのパケットの代わりに送信先のシステムコントローラ14bに送信するようにしたので、異常が発生したデータでも、システムモジュール10a,10b間のバスが異常の所為で解放されない状態を防ぐことができ、その異常でシステム全体の処理を停止させてしまうことがないという効果を有する。その結果、複数の処理部(LSI)またはその処理部とシステムコントローラ14a,14bとを結ぶバス21(伝送路)の故障によるパケットの消失があった場合でも、その影響をマルチプロセッサシステム内で限定的にすることができる。
また、この実施例によれば、受信したパケットがパケット一時記憶部54(RAM73)に書込まれるとすぐに、送信処理を開始するので、すべてのパケットを受信できてからパケットの送信処理を開始する場合に比して、システムコントローラ14a,14bにおけるレイテンシの増加を抑えることができるという効果も有する。
また、処理部または第1の伝送路の故障によって正常に受信されないパケットに代えて、そのパケットの異常を示す内容を含む補完パケットを生成して第2の伝送路上に送信するようにしたので、システムコントローラにおける第2の伝送路を用いたパケットの送信処理を送信先のシステムコントローラとの間でプロトコル的に正常に終了させることができる。その結果、処理部または第1の伝送路の故障が、マルチプロセッサシステム全体の処理を停滞させることがないという効果を奏する。
また、正常に受信できなかったパケットについてエラー情報を保持し、このエラー情報に基づいて、処理部から受信したパケットを第2の伝送路上に送信するようにしたので、個々のパケットについて、第2の伝送路への送信処理を個別に行うことができるという効果を有する。また、受信したパケットをすぐに送信するように処理しているので、すべてのパケットを受信して、異常なパケットを含まないデータのみ第2の伝送路に送信する場合に比して、システムコントローラにおけるレイテンシを抑えることができるという効果も有する。
さらに、受信パケット書込制御手段で、処理部から送信される一連のデータを構成する複数のパケットのうち、正常に受信できなかった最初のパケットよりも後のパケットのすべてを受信異常として処理するようにしたので、一つでも受信異常となったパケットを含む一連のデータにおける処理部からの受信処理を簡略化することができるという効果を有する。
以上のように、本発明にかかるマルチプロセッサシステムは、システムモジュール間を跨ってデータ伝送を行う場合に有用である。
図1は、マルチプロセッサシステムの構成例を示すブロック図である。 図2は、システムコントローラ間でデータパケットを伝送する場合のタイムチャートの従来例を示す図である。 図3は、システムコントローラ間でデータパケットを伝送する場合のタイムチャートの従来例を示す図である。 図4は、システムコントローラの送信処理部の構成を模式的に示すブロック図である。 図5は、データ送信制御部の受信パケット書込制御部による受信パケット書込処理の一例を示すフローチャートである。 図6は、データ送信制御部の送信パケット読出制御部による送信パケット読出処理の一例を示すフローチャートである。 図7は、送信するパケットに付すタグの一例を示す図である。 図8−1は、正常なパケットにタグを付した一例を示す図である。 図8−2は、異常なパケットにタグを付した一例を示す図である。 図9は、図4に示されるシステムコントローラの送信処理部の回路構成の一例を示す回路ブロック図である。 図10は、RAMの記憶領域とエラー状態FFの対応を模式的に示す図である。 図11は、パケット書込制御回路の状態遷移を示す図である。 図12は、パケット読出制御回路の状態遷移を示す図である。 パケット読出制御回路の第1のパケット送信状態以降の処理手順の一例を示すフローチャートである。 図9に示されるシステムコントローラでの各処理部における処理の流れの様子を示すタイムチャートである。
符号の説明
10a,10b システムモジュール
11a,11b,11c,11d CPU
12a,12b,12c,12d メインメモリ
13a,13b,13c,13d MAC(メモリアクセスコントローラ)
14a,14b システムコントローラ
21,21a,21b,31 バス
50 送信処理部
51a,51b,51c,51d データ送信制御部
52 パケット受信部
53 受信パケット書込制御部
54 パケット一時記憶部
55 エラー情報記憶部
56 送信パケット読出制御部
57 データ伝送調整部
58 パケット送信部
72 受信FF
73 RAM
74 RAM読出FF
75 パケット書込制御回路
76 エラー状態FF
77 ラッチ回路
78 パケット読出制御回路
81 データ切替回路
82 送信FF

Claims (9)

  1. 複数の処理装置にそれぞれ接続するとともに、互いにバスを介して接続された複数の転送装置を有する情報処理装置において、
    前記複数の転送装置の各々は、
    前記複数の処理装置のうち対応する処理装置からの一つのデータを、前記一つのデータから分割されたパケット毎に受信するとともに、正常にパケットが受信できた場合、前記正常に受信できた正常パケットをデータ記憶部に書込み、正常にパケットが受信できなかった場合、前記正常に受信できなかったパケットに対応するエラー情報をエラー情報記憶部に書き込む書込制御部と、対応するエラー情報が前記エラー情報記憶部に保持されていない場合、前記データ記憶部から読み出した正常パケットを出力し、対応するエラー情報が前記エラー情報記憶部に保持されている場合、前記正常に受信できなかったパケットの変わりに生成した補完パケットを出力することにより、正常パケット又は補完パケットを含んだ一つのデータとして出力する読出制御部とを備える複数の送信制御部と、
    前記複数の送信制御部に接続されるとともに、前記複数の送信制御部のいずれかからの前記正常パケット又は補完パケットを含んだ一つのデータを他の転送装置から送信する切替部とを備えたことを特徴とする情報処理装置。
  2. 前記複数の送信制御部のいずれかは、前記バスの使用権を獲得するとともに、前記切替部は、前記複数の送信制御部のうち、前記使用権を獲得した送信制御部からの正常パケット又は補完パケットを含んだ一つのデータとして出力することを特徴とする請求項1に記載の情報処理装置。
  3. 前記複数の送信制御部のそれぞれが有する読出制御部は、前記正常な受信ができなかったパケットの代わりに生成した補完パケットに前記対応するエラー情報を含めて出力することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記複数の送信制御部のそれぞれが有する受信部は、前記受信したパケットにエラーがあると前記書込制御部が判断した場合、それ以降のパケットを受信しないことを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
  5. 複数の処理装置にそれぞれ接続するとともに、互いにバスを介して接続された複数の転送装置に各々において、
    前記複数の処理装置のうち対応する処理装置からの一つのデータを、前記一つのデータから分割されたパケット毎に受信するとともに、正常にパケットが受信できた場合、前記正常に受信できた正常パケットをデータ記憶部に書込み、正常にパケットが受信できなかった場合、前記正常に受信できなかったパケットに対応するエラー情報をエラー情報記憶部に書き込む書込制御部と、対応するエラー情報が前記エラー情報記憶部に保持されていない場合、前記データ記憶部から読み出した正常パケットを出力し、対応するエラー情報が前記エラー情報記憶部に保持されている場合、前記正常に受信できなかったパケットの変わりに生成した補完パケットを出力することにより、正常パケット又は補完パケットを含んだ一つのデータとして出力する読出制御部とを備える複数の送信制御部と、
    前記複数の送信制御部に接続されるとともに、前記複数の送信制御部のいずれかからの前記正常パケット又は補完パケットを含んだ一つのデータを他の転送装置から送信する切替部とを備えたことを特徴とする転送装置。
  6. 前記複数の送信制御部のいずれかは、前記バスの使用権を獲得するとともに、前記切替部は、前記複数の送信制御部のうち、前記使用権を獲得した送信制御部からの正常パケット又は補完パケットを含んだ一つのデータとして出力することを特徴とする請求項5に記載の転送装置。
  7. 前記複数の送信制御部のそれぞれが有する読出制御部は、前記正常な受信ができなかったパケットの代わりに生成した補完パケットに前記対応するエラー情報を含めて出力することを特徴とする請求項5又は6に記載の転送装置。
  8. 前記複数の送信制御部のそれぞれが有する受信部は、前記受信したパケットにエラーがあると前記書込制御部が判断した場合、それ以降のパケットを受信しないことを特徴とする請求項5〜7のいずれか一つに記載の転送装置。
  9. 複数の処理装置にそれぞれ接続するとともに、互いにバスを介して接続された複数の転送装置を有する情報処理装置の制御方法において、
    前記複数の転送装置の各々が有する複数の送信制御部が、前記複数の処理装置のうち対応する処理装置からの一つのデータを、前記一つのデータから分割されたパケット毎に受信するステップと、
    前記送信制御部が有する書込み制御部が、正常にパケットが受信できた場合、前記正常に受信できた正常パケットをデータ記憶部に書込み、正常にパケットが受信できなかった場合、前記正常に受信できなかったパケットに対応するエラー情報をエラー情報記憶部に書き込むステップと、
    前記送信制御部が有する読出し制御部が、対応するエラー情報が前記エラー情報記憶部に保持されていない場合、前記データ記憶部から読み出した正常パケットを出力し、対応するエラー情報が前記エラー情報記憶部に保持されている場合、前記正常に受信できなかったパケットの変わりに生成した補完パケットを出力することにより、正常パケット又は補完パケットを含んだ一つのデータとして出力するステップと、
    前記複数の送信制御部に接続された切替部が、前記複数の送信制御部のいずれかからの前記正常パケット又は補完パケットを含んだ一つのデータを他の転送装置から送信する切替部とを有することを特徴とする情報処理装置の制御方法。
JP2008500356A 2006-02-13 2006-02-13 情報処理装置、転送装置および情報処理装置の制御方法 Expired - Fee Related JP4653837B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/302475 WO2007094039A1 (ja) 2006-02-13 2006-02-13 システムモジュールおよびデータ中継方法

Publications (2)

Publication Number Publication Date
JPWO2007094039A1 JPWO2007094039A1 (ja) 2009-07-02
JP4653837B2 true JP4653837B2 (ja) 2011-03-16

Family

ID=38371235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008500356A Expired - Fee Related JP4653837B2 (ja) 2006-02-13 2006-02-13 情報処理装置、転送装置および情報処理装置の制御方法

Country Status (3)

Country Link
US (1) US8090986B2 (ja)
JP (1) JP4653837B2 (ja)
WO (1) WO2007094039A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327181B2 (en) * 2009-06-22 2012-12-04 Citrix Systems, Inc. Systems and methods for failover between multi-core appliances
US8533312B2 (en) 2010-08-05 2013-09-10 Citrix Systems, Inc. Systems and methods for server initiated connection management in a multi-core system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09162917A (ja) * 1995-12-06 1997-06-20 Hitachi Cable Ltd スイッチングハブ
JP2002368786A (ja) * 2001-06-07 2002-12-20 Matsushita Electric Ind Co Ltd パケット転送方法及びパケット転送装置
JP2004538548A (ja) * 2001-02-24 2004-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 新規の大量並列スーパーコンピュータ

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07322248A (ja) * 1994-05-30 1995-12-08 Matsushita Electric Ind Co Ltd 動画像データの伝送方法および伝送装置
US6782490B2 (en) * 1999-03-17 2004-08-24 At&T Corp. Network-based service for the repair of IP multicast sessions
JP2001167069A (ja) 1999-12-13 2001-06-22 Fujitsu Ltd マルチプロセッサシステム及びデータ転送方法
US7082552B2 (en) * 2000-02-08 2006-07-25 Mips Tech Inc Functional validation of a packet management unit
KR100464485B1 (ko) * 2000-11-09 2004-12-31 엘지전자 주식회사 고속무선 패킷 데이터의 전송 장치 및 그 방법
GB0302117D0 (en) * 2003-01-30 2003-03-05 Ibm Preemptive retransmission of buffered data in a network
JP4209743B2 (ja) * 2003-08-08 2009-01-14 三菱電機株式会社 電子制御装置
US7457242B2 (en) * 2004-02-12 2008-11-25 Avaya, Inc. System for transmitting high quality speech signals on a voice over internet protocol network
JP4568755B2 (ja) * 2004-04-05 2010-10-27 ワイアレス オーディオ アイピー ビー.ブイ. 動的スロット割当による無線音声送信システム及び方法
US7474623B2 (en) * 2005-10-27 2009-01-06 International Business Machines Corporation Method of routing I/O adapter error messages in a multi-host environment
US7626927B2 (en) * 2006-11-27 2009-12-01 Intel Corporation System and method of data transmission in wireless communication networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09162917A (ja) * 1995-12-06 1997-06-20 Hitachi Cable Ltd スイッチングハブ
JP2004538548A (ja) * 2001-02-24 2004-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 新規の大量並列スーパーコンピュータ
JP2002368786A (ja) * 2001-06-07 2002-12-20 Matsushita Electric Ind Co Ltd パケット転送方法及びパケット転送装置

Also Published As

Publication number Publication date
US8090986B2 (en) 2012-01-03
JPWO2007094039A1 (ja) 2009-07-02
WO2007094039A1 (ja) 2007-08-23
US20080288816A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
KR960012686B1 (ko) 통신 시스템용 스테이션 및 그 통신방법
US5020020A (en) Computer interconnect system with transmit-abort function
US6065052A (en) System for maintaining strongly sequentially ordered packet flow in a ring network system with busy and failed nodes
EP0391583B1 (en) Dual-path computer interconnect system with four-ported packet memory control
KR101283482B1 (ko) Pci 익스프레스 프로토콜 처리 장치
US7613849B2 (en) Integrated circuit and method for transaction abortion
US20080205406A1 (en) Recording medium having reception program recorded therein, recording medium having transmission program recorded therein, transmission/reception system and transmission/reception method
EP0841777A2 (en) System for preserving sequential ordering and supporting idempotent commands in a ring network with busy nodes
US8539149B2 (en) Storage system and communications method
WO2003102805A2 (en) Inter-chip processor control plane
JP4653837B2 (ja) 情報処理装置、転送装置および情報処理装置の制御方法
CN110071860B (zh) 机器人通信方法、机器人通信系统及机器人
JP2000083053A (ja) プログラム内蔵方式パケット処理装置
US6862283B2 (en) Method and apparatus for maintaining packet ordering with error recovery among multiple outstanding packets between two devices
JP4104939B2 (ja) マルチプロセッサシステム
US20030154288A1 (en) Server-client system and data transfer method used in the same system
JP2011182258A (ja) CAN(ControllerAreaNetwork)システム、通信ユニット、及び通信方法
JP2011151769A (ja) データ通信システム及びデータ通信方法
JP4655733B2 (ja) リング型二重化ネットワークにおける受信方法及び装置
JP5494028B2 (ja) スイッチ装置
JP4708901B2 (ja) データ処理モジュール及びそのメッセージの送信準備方法
JP6571628B2 (ja) サイクリック通信システム
WO2012093475A1 (ja) 情報転送装置および情報転送装置の情報転送方法
JP3161156B2 (ja) 多重通信システム
JP4411138B2 (ja) データフロー制御方式、その回路、およびその方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees