JP4049957B2 - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

Publication number
JP4049957B2
JP4049957B2 JP30843899A JP30843899A JP4049957B2 JP 4049957 B2 JP4049957 B2 JP 4049957B2 JP 30843899 A JP30843899 A JP 30843899A JP 30843899 A JP30843899 A JP 30843899A JP 4049957 B2 JP4049957 B2 JP 4049957B2
Authority
JP
Japan
Prior art keywords
state information
processor
cluster
state
processors
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
JP30843899A
Other languages
Japanese (ja)
Other versions
JP2001125875A (en
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP30843899A priority Critical patent/JP4049957B2/en
Publication of JP2001125875A publication Critical patent/JP2001125875A/en
Application granted granted Critical
Publication of JP4049957B2 publication Critical patent/JP4049957B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はマルチプロセッサシステムに係り、特に、多数個のプロセッサがバスを介して接続されたマルチプロセッサシステムに関する。
【0002】
【従来の技術】
従来より、複数のプロセッサがリングバス形式の通信ネットワークによって各々に接続され、膨大なデータ処理を各プロセッサに分散させ、プロセッサ間のデータ通信を適宜行いながらデータ処理を進めるマルチプロセッサシステムが知られている。この種のマルチプロセッサシステムでは、各プロセッサにおけるデータ処理の同期をとるために、各プロセッサが出力する状態データを順次に論理的に集計し、各種の状態情報を得る状態検査を行う必要がある。
【0003】
マルチプロセッサシステムにおける状態検査方式の一例として、特開平4-278660号公報には、データ通信用のリングバスと別に、各プロセッサとワイヤードアンド接続された状態検査を行うための多ビット幅の専用のバス(同期制御バス)を設け、この同期制御バスを用いて状態検査を行うマルチプロセッサの同期検出システムが開示されている。
【0004】
また、状態検査方式の他の例として、特開平9-44457号公報に記載のマルチプロセッサシステムでは、状態検査のためのパケットをデータ通信用のリングバスに送出し、各プロセッサが受信した状態検査パケットに自プロセッサの状態を反映させる論理演算を行って送信することで状態検査を行っている。
【0005】
【発明が解決しようとする課題】
しかしながら、同期制御バスを用いて状態検査を行う態様では、全てのプロセッサに対しデータ通信用のリングバスに加えて多ビット幅の同期制御バスも各々接続する必要があるので、配線数及び端子数が増大して電気配線が非常に複雑になり、装置の大型化や製造コストの増大を招くという問題がある。また、プロセッサ数が増えるに従って同期制御用バスの配線容量や配線抵抗(電気的負荷)が増大し、消費電力等の電気的特性が著しく悪化するという欠点もある。
【0006】
一方、リングバスを用いて状態検査パケットにより状態検査を行う態様では、プロセッサ数が増えても電気配線が非常に複雑になったり電気的特性が著しく悪化することはないが、状態検査時に、全てのプロセッサで処理が終了する迄状態検査パケットがデータ通信用のリングバスに繰り返し送出されることでリングバスが占有されてしまうため、状態検査を行っている間は全てのプロセッサが一切のデータ通信を行うことができないという問題がある。
【0007】
また、状態検査パケットが全てのプロセッサを通過してリングバスを1周することで、初めて各プロセッサの状態が明らかになるので、プロセッサ数が増えるに従って状態検査に要する時間が増大する(プロセッサ数がNのとき少なくともNサイクル必要となる)。
【0008】
本発明は上記事実を考慮して成されたもので、各プロセッサの状態検査を、非常に複雑な電気配線を必要としたり、プロセッサ間のデータ通信を遮ることなく短時間で行うことができるマルチプロセッサシステムを得ることが目的である。
【0009】
【課題を解決するための手段】
上記目的を達成するために請求項1記載の発明に係るマルチプロセッサシステムは、多数個のプロセッサがバスを介して接続されたマルチプロセッサシステムであって、前記多数個のプロセッサは、相互に近接した位置に配置される複数個のプロセッサから成るクラスタを単位としてグループ分けされており、各プロセッサ毎に各々設けられ、対応するプロセッサの状態を表す状態情報を出力するか、或いは、入力された状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する第1出力手段と、クラスタ又は複数のクラスタから成り相互に近接した位置に配置されるプロセッサによって構成されるクラスタ群毎に少なくとも1つ設けられ、対応するクラスタ内の全てのプロセッサ、又は対応するクラスタ群内の全てのクラスタから状態情報が各々入力され、入力された各状態情報が表すプロセッサの状態を各々反映させた単一の状態情報を生成して出力する第2出力手段と、前記第2出力手段から出力された状態情報を、予め定められた各クラスタ又は各クラスタ群に状態情報を伝播させる順序における次クラスタ又は次クラスタ群の第1出力手段又は第2出力手段に入力させる信号線と、を備え、前記第2出力手段に入力される状態情報の数が、単一のクラスタ又はクラスタ群に入力される状態情報の数よりも多いことを特徴としている。
【0010】
本発明に係るマルチプロセッサシステムは、多数個のプロセッサがバスを介して接続されて構成されている。多数個のプロセッサを接続するバスとしては、例えばリングバス形式のバスを採用することができ、前記バスを介してプロセッサ間でデータ通信を行いながらデータ処理を進めることができる。
【0011】
請求項1記載の発明では、上記構成のマルチプロセッサシステムにおいて、多数個のプロセッサは、相互に近接した位置に配置される複数個のプロセッサから成るクラスタにグループ分けされており、各プロセッサには、対応するプロセッサの状態を表す状態情報を出力するか、或いは、入力された状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する第1出力手段が設けられている。
【0012】
なお、状態情報としては、例えばプロセッサが所定の条件を満たしたか否か(例えば所定の処理を終了したか否か)を表す1ビットの情報等を用いることができる。この場合、1本の電気配線によって状態情報を伝達できるので、状態情報を伝達するために多ビット幅のバス等を新たに設ける必要がなくなり、電気配線を簡単にできるので好ましい。
【0013】
また、各クラスタ、又は複数のクラスタから成り相互に近接した位置に配置されるプロセッサによって構成される各クラスタ群には、対応するクラスタ内の全てのプロセッサ、又は対応するクラスタ群内の全てのクラスタから各々入力された各状態情報が表すプロセッサの状態を各々反映させた単一の状態情報を生成して出力する第2出力手段が少なくとも1つ設けられている。
【0014】
これにより、各クラスタ内又は各クラスタ群内において、複数の第1出力手段から各々出力された複数の状態情報は、第2出力手段により単一の状態情報(単一のクラスタ内の全てのプロセッサの状態、又は単一のクラスタ群内の全てのプロセッサの状態が反映された状態情報)に統合されるので、複数の第1出力手段は略同一のタイミングで状態情報を出力することができ、単一のクラスタ内又は単一のクラスタ群内の全てのプロセッサの状態を表す状態情報を短時間で得ることができる。
【0015】
例として図1(A)には、プロセッサn〜n+3の4個のプロセッサから成る単一のクラスタに本発明を適用した構成の一例を示す。図1(A)の例では、対応するプロセッサの状態を表す状態情報を出力する第1出力手段10が各プロセッサに設けられており、各プロセッサの第1出力手段10から出力された状態情報が、プロセッサn+3に設けられた第2出力手段12に各々入力され、第2出力手段12から単一の状態情報が出力される。ここで、各プロセッサの第1出力手段10及び第2出力手段12からの状態情報の出力に各々1サイクルかかるものとした場合、図1(A)の構成では、単一のクラスタ内の各プロセッサの状態が反映された状態情報が第2出力手段12から2サイクルで出力されるので、状態情報を短時間で出力することができる。
【0016】
また、例として図1(B)には、各々2個のプロセッサを備えた4個のクラスタA〜Dから成るクラスタ群に本発明を適用した構成の一例を示す。図1(B)の例では、プロセッサn,n+2,n+4,n+6には対応するプロセッサの状態を表す状態情報を出力する第1出力手段20が、プロセッサn+1,n+3,n+5,n+7には入力された単一の状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する第1出力手段22が各々設けられており、プロセッサn+1,n+3,n+5,n+7の第1出力手段22から出力された各クラスタの状態情報が、プロセッサn+7に設けられた第2出力手段24に各々入力され、第2出力手段24から単一の状態情報が出力される。この構成では、単一のクラスタ群内の各プロセッサの状態が反映された状態情報が第2出力手段24から3サイクルで出力されるので、状態情報を短時間で出力することができる。
【0017】
そして請求項1記載の発明では、第2出力手段から出力された状態情報を、予め定められた各クラスタ又は各クラスタ群に状態情報を伝播させる順序における次クラスタ又は次クラスタ群の第1出力手段又は第2出力手段に入力させる信号線が設けられており、単一のクラスタ又はクラスタ群内の各プロセッサの状態が反映された状態情報は、次クラスタ又は次クラスタ群へ入力され、次クラスタ又は次クラスタ群内の各プロセッサの状態も順次反映される。従って、クラスタ又はクラスタ群の間を信号線を介して状態情報が順に伝達されることで、マルチプロセッサシステムの全てのプロセッサの状態検査、すなわち全てのプロセッサの状態が反映された状態情報の取得を行うことができる。
【0018】
請求項1記載の発明では、バスと別に設けられた信号線によって状態情報の伝達を行うので、プロセッサ間のデータ通信を遮ることなく状態情報を伝達することができる。また、請求項1記載の発明では、同一クラスタ内又は同一クラスタ群内の各プロセッサを接続すると共に、信号線を介してクラスタ間又はクラスタ群間を接続する、という簡易な配線によって実現することができ、状態検査用のバスを設けて全てのプロセッサとワイヤードアンド接続する等のように、非常に複雑かつ配線容量や配線抵抗(電気的負荷)の大きな電気配線を設ける必要もない。
【0019】
従って、請求項1記載の発明によれば、各プロセッサの状態検査を、非常に複雑な電気配線を必要としたり、プロセッサ間のデータ通信を遮ることなく短時間で行うことができる。なお本発明において、各プロセッサの状態検査は、例えば各プロセッサで並行して処理を実行させた際に、各プロセッサにおける処理が終了したか否かを検査し、各プロセッサにおける処理の同期をとる(所謂同期検出)場合に用いることができる。
【0020】
また、請求項1記載の発明では、クラスタ又はクラスタ群を、相互に近接した位置に配置されるプロセッサ(例えば同一のチップ内に配置されるプロセッサ等)によって構成しているので、クラスタ内又はクラスタ群内を接続する接続線の長さを短くすることができ、前記接続線の配線容量や配線抵抗(電気的負荷)を小さくすることができる。
【0021】
また、単一のクラスタを構成するプロセッサの数や、単一のクラスタ群を構成するクラスタの数は、配線の難易度に応じて決定することができる。例えば、単一のチップ内はプリント基板上と比較して複雑な配線も比較的容易であり、同一のチップ内に配置されるプロセッサによってクラスタ又はクラスタ群を構成すれば、前記接続線の配線が容易になるという効果が得られる。
【0022】
また、請求項記載の発明では、第2出力手段に入力される状態情報の数を単一のクラスタ又はクラスタ群に入力される状態情報の数よりも多くしているので、クラスタ内又はクラスタ群内を接続する接続線の数に比較して、クラスタ間又はクラスタ群間を接続する信号線の数、すなわち長さが比較的長くなる配線の数を少なくすることができ、本発明に係るマルチプロセッサシステムの製造が容易になると共に、信号線及び接続線を含む電気配線全体の電気的負荷を小さくすることができる。
【0023】
ところで、本発明において、複数のプロセッサの状態を反映させた状態情報としては種々の情報が考えられる。例えば複数のプロセッサが各々処理を行う態様においては、例えば複数のプロセッサの中に所定の条件を満足したプロセッサが存在しているか否か(条件の部分一致)を表す情報や、複数のプロセッサの全てが所定の条件を満足したか否か(条件の全体一致)を表す情報を用いることができる。これらの状態情報は、入力された状態情報に対して異なる演算(例えば入力された状態情報を集計する論理演算)を行うことで各々生成可能である。
【0024】
複数のプロセッサの状態を反映させた状態情報として、各種の状態情報のうち1種類の状態情報のみ必要な場合には、第2出力手段(及び、入力された状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する機能を備えた第1出力手段)は、前記1種類の状態情報を生成するための演算を行う機能を備えていればよい。
【0025】
一方、複数のプロセッサの状態を反映させた状態情報として複数種の状態情報が必要な場合には、請求項に記載したように、第1出力手段(詳しくは、入力された状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する機能を備えた第1出力手段)及び第2出力手段は、状態情報を生成するための演算として複数種の演算を選択的に行う機能を備え、外部からの指示に応じて複数種の演算を選択的に行って状態情報を生成することが好ましい。これにより、第1出力手段及び第2出力手段によって行われる演算を切り替えることで、複数のプロセッサの状態を反映させた状態情報として、複数種の状態情報を各々取得することができる。
【0026】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図2には、本発明の一実施形態であるマルチプロセッサシステム100が示されている。マルチプロセッサシステム100は、P0〜P15の合計16個のプロセッサを備えており、これらのプロセッサは、プロセッサ間のデータ通信等に用いられる多ビット幅のリングデータバス102を介して環状に接続されている。図2に矢印で示されているように、プロセッサ間のデータ通信は、リングデータバス102上を一定の方向(図2における時計回り)にデータが伝送されることによって成される。
【0027】
プロセッサP0〜P15は、各々4個のプロセッサから成るクラスタを単位としてグループ分けされている。従って、マルチプロセッサシステム100には4個のクラスタ0〜3が形成されており、各クラスタi(但し、i=0〜3)は各々プロセッサP(4i)〜P(4i+3)から構成されている。なお、プロセッサP0はマルチプロセッサシステム100全体を制御するマスタープロセッサであり、プロセッサP1〜P15はマスタープロセッサP0の指示の下で、様々な処理を行うスレーブプロセッサである。
【0028】
プロセッサP0〜P15は、図3に示す状態検査制御回路300を各々備えている。状態検査制御回路300は、状態レジスタ301、演算ロジック302、状態検査結果格納レジスタ303、状態情報出力セレクタ304、DFF(D−フリップフロップ)305を含んで構成されている。状態レジスタ301には、自プロセッサにより、自プロセッサの状態を表す(自プロセッサが所定の状態条件(例えば処理を終了したか否か)を満足したかどうかを表す)1ビットの情報(例えば状態条件を満足=1、状態条件を満たしていない=0)が格納される。
【0029】
演算ロジック302は、4個の入力端子を備えたANDゲート306で構成されており、状態レジスタ301は接続線307-0を介して演算ロジック302の4個の入力端子のうちの1つに接続されている。各プロセッサは、各々3個の状態情報入力端子を備えており、演算ロジック302の4個の入力端子のうち状態レジスタ301に接続されていない3個の入力端子は、接続線307-1〜307-3を介して3個の状態情報入力端子と接続されている。演算ロジック302は、4個の入力端子を介して各々入力された4個の論理値の論理積を演算し、演算結果を出力端子を介して出力する。
【0030】
演算ロジック302の出力端子は、接続線309を介し、状態検査結果格納レジスタ303に接続されていると共に、状態情報出力セレクタ304の2個の入力端子の一方に接続されており、状態検査結果格納レジスタ303には演算ロジック302から出力された論理値が格納され、状態情報出力セレクタ304には前記論理値が入力される。
【0031】
なお、マルチプロセッサシステム100における状態検査は、後述するように、マスタープロセッサP0から状態情報(初期論理値)が出力され、該状態情報がクラスタ0〜3を順次伝播してマスタープロセッサP0に戻ってくることによって成される。このとき、マスタープロセッサP0のレジスタ303に格納される論理値は、マルチプロセッサシステム100の全てのプロセッサの状態検査を行った結果に相当する。レジスタ303は状態検査結果を格納するためのものであるので、マスタープロセッサP0以外のプロセッサP1〜P15についてはレジスタ303を省略してもよい。
【0032】
各プロセッサは各々1個の状態情報出力端子を備えており、状態情報出力セレクタ304の出力端子はDFF(D−フリップフロップ)305を介して前記状態情報出力端子に接続されている。また、状態情報出力セレクタ304の2個の入力端子の他方には、例えば接続線308を介してVDD(定電圧電源)に接続される等により、初期論理値"1"が固定的に入力される。マスタープロセッサP0の状態情報出力セレクタ304は、入力された初期論理値"1"を状態情報出力端子へ出力するように設定されており、スレーブプロセッサP1〜P15の状態情報出力セレクタ304は、接続線309を介して演算ロジック302から入力された論理値を状態情報出力端子へ出力するように設定されている。
【0033】
個々のクラスタを構成する4個のプロセッサは、1チップのCMOS LSI(以下、クラスタチップ400という)として集積化されている。図4に示すように、個々のプロセッサには単一のリングバス入力端子及び単一のリングバス出力端子が設けられており、リングデータバス102が順に接続されている。また、単一のクラスタチップ400には、単一の状態情報入力端子405と単一の状態情報出力端子406が設けられている。
【0034】
クラスタチップ400内の第1番目のプロセッサ401(すなわち、クラスタiのプロセッサP(4i))については、3個の状態情報入力端子401-1〜3のうちの2個(入力端子401-2、401-3)には、例えば接続線を介してVDDに接続される等により論理値"1"が固定的に入力され、残り1個の状態情報入力端子(入力端子401-1)には、クラスタチップ400の状態情報入力端子405(すなわち、前クラスタ(クラスタi−1)の第4番目のプロセッサ404の状態情報出力端子404-4)に接続されている。
【0035】
また、クラスタチップ400内の第2番目のプロセッサ402(すなわちクラスタiのプロセッサP(4i+1))、第3番目のプロセッサ403(すなわちクラスタiのプロセッサP(4i+2))については、各々3個の状態情報入力端子402-1〜3、403-1〜3が、例えば接続線を介してVDDに接続される等により論理値"1"が固定的に入力される。そしてクラスタチップ400内の第1番目〜第3番目のプロセッサ401〜403の状態情報出力端子401-4、402-4、403-4は、第4番目のプロセッサ404(すなわちクラスタiのプロセッサP(4i+3))の状態情報入力端子404-1〜404-3に接続されている。
【0036】
単一のクラスタチップ400内の各プロセッサ401〜404を上記のように接続することで、状態検査制御回路300を含む第1〜4番目のプロセッサ401〜404の構成を同一とすることができ、マルチプロセッサシステム100の開発効率が向上すると共に、マルチプロセッサシステム100の製造コストを低く抑えることができる。
【0037】
図5に示すように、本実施形態に係るマルチプロセッサシステム100は、一枚のプリント基板(PCB)に4個のクラスタチップ400-1〜4が実装され、隣接するクラスタチップの間がリングデータバスを介して接続されていると共に、状態情報入力端子・出力端子が信号線402-1〜4(請求項1に記載の信号線に相当)を介して相互接続されて構成されている。
【0038】
図示は省略するが、クラスタチップ400-1〜4にはマスタープロセッサ選択端子が各々設けられており、各クラスタチップ400-1〜4は、マスタープロセッサP0を含むクラスタチップ400-1のマスタープロセッサ選択端子のみアクティブとなり、その他のクラスタチップ400-2〜4の同端子はインアクティブとなるようにプリント基板上で接続されている。これにより、クラスタチップ400-1の第1番目のプロセッサP0のみがマスタープロセッサとして機能する。
【0039】
次に本実施形態の作用として、マルチプロセッサシステム100において、スレーブプロセッサP1〜P15で並列に処理を実行させた際に、各スレーブプロセッサにおける処理が終了したかを検知する等の目的で行われる状態検査について説明する。なお、図示は省略するが、全てのプロセッサはクロック信号線に接続されており、各プロセッサに共通の同期クロック信号が各プロセッサに各々入力される。状態情報の送受信は、すべてこの同期クロック信号に同期して行われる。
【0040】
マスタープロセッサP0において各スレーブプロセッサP1〜P15の状態検査の必要が生じると、マスタープロセッサP0内の状態検査制御回路300は、スレーブプロセッサへ出力すべき状態情報として、セレクタ304により初期論理値"1"を選択し、クロック信号線を介して入力される同期クロック信号の毎サイクルに、状態情報出力端子401-4を介してスレーブプロセッサP3へ初期論理値"1"の状態情報を繰り返し出力する。
【0041】
また、マスタープロセッサP0と同一のクラスタに属するスレーブプロセッサP1、P2内の状態検査制御回路300は、自プロセッサの状態情報入力端子402-1〜3又は403-1〜3から接続線307-1〜3を介して固定的に入力される論理値"1"と、自プロセッサの状態レジスタ301から接続線307-0を介して入力された自プロセッサの状態を表す状態情報と、の論理積演算を演算ロジック302で行い、演算ロジック302における論理積演算の結果(すなわち自プロセッサの状態を表す状態情報)を、同期クロック信号の毎サイクルに、状態情報出力端子402-4又は403-4を介してスレーブプロセッサP3へ繰り返し出力する。
【0042】
このように、スレーブプロセッサP1、P2(すなわち各クラスタiのプロセッサP(4i+1)、P(4i+2))内の状態検査制御回路300の状態レジスタ301や演算ロジック302は、請求項1に記載の「対応するプロセッサの状態を表す状態情報を出力する第1出力手段」に対応している。
【0043】
スレーブプロセッサP3の状態検査制御回路300の演算ロジック302は、マスタープロセッサP0から状態情報入力端子404-3を介してスレーブプロセッサP3に入力された初期論理値"1"の状態情報と、状態情報入力端子404-2、404-1を介してスレーブプロセッサP1、P2から入力された状態情報と、自プロセッサの状態レジスタ301から接続線307-0を介して入力された自プロセッサの状態を表す状態情報と、の論理積を演算し、演算結果(すなわちクラスタチップ400-1内の全てのスレーブプロセッサP1〜P3の状態が反映された状態情報)を、同期クロック信号の毎サイクルに、状態情報出力端子404-4、すなわちプロセッサP0〜P3を含むクラスタチップ400-1の状態情報出力端子406を介して繰り返し出力する。
【0044】
このように、スレーブプロセッサP3(すなわち各クラスタiのプロセッサP(4i+3))内の状態検査制御回路300のうち、状態レジスタ301は請求項1に記載の「対応するプロセッサの状態を表す状態情報を出力する第1出力手段」に対応しており、演算ロジック302は請求項1に記載の「クラスタ毎に少なくとも1つ設けられ、対応するクラスタ内の全てのプロセッサから状態情報が各々入力され、入力された各状態情報が表すプロセッサの状態を各々反映させた単一の状態情報を生成して出力する第2出力手段」に対応している。
【0045】
マスタープロセッサP0を含むクラスタチップ400-1から出力された状態情報は、次段のクラスタチップ400-2の状態情報入力端子に入力される。スレーブプロセッサP4では、自プロセッサの状態情報入力端子401-2、401-3から接続線307-2、307-3を介して固定的に入力される論理値"1"と、自プロセッサの状態レジスタ301から接続線307-0を介して入力された自プロセッサの状態を表す状態情報と、前段のクラスタチップ400-1からクラスタチップ400-2の状態情報入力端子・自プロセッサの状態情報入力端子401-1・接続線307-1を介して入力される状態情報と、の論理積演算を演算ロジック302で行い、演算ロジック302における論理積演算の結果(すなわち前段のクラスタチップ400-1内の全てのスレーブプロセッサ及び自プロセッサの状態が反映された状態情報)を、同期クロック信号の毎サイクルに、状態情報出力端子401-4を介してスレーブプロセッサP7へ出力する。
【0046】
このように、スレーブプロセッサP4(すなわち各クラスタiのプロセッサP(4i))内の状態検査制御回路300の状態レジスタ301及び演算ロジック302は、請求項1に記載の「入力された状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する第1出力手段」に対応している。
【0047】
なお、クラスタチップ400-2の他のプロセッサP5〜P7の動作は、クラスタチップ400-1のプロセッサP1〜P3の動作と同様であり、クラスタチップ400-2からは、クラスタチップ400-1及び400-2内の全てのスレーブプロセッサの状態が反映された状態情報が出力される。
【0048】
上記のように、状態情報が各クラスタチップ400-1〜4を順次伝搬することで、最後にはマスタープロセッサP0の状態情報入力端子401-1に最終結果(マルチプロセッサシステムの全てのスレーブプロセッサP1〜P15の状態が反映された状態情報:全てのプロセッサが状態条件を満足していれば論理値"1"、状態条件の満足していないプロセッサがあれば論理値"0"になる)が同期クロック信号の毎サイクルに繰り返し入力されることになる。マスタープロセッサP0の状態レジスタ301には論理値"1"が固定的に格納されており、演算ロジック302からは状態情報入力端子401-1を介して入力された状態情報の論理値がそのまま出力され、演算ロジック302から出力された論理値は状態検査結果格納レジスタ303に同期クロック信号の毎サイクルに格納される。
【0049】
従って、マスタープロセッサP0上で実行されるソフトウェア等により、状態検査結果格納レジスタ303に格納されている論理値を監視することで、マルチプロセッサシステム100の全てのスレーブプロセッサP1〜P15の状態を検査することができる。
【0050】
図6には、本実施形態に係るマルチプロセッサシステム100における状態検査のタイミングチャートを示す。図6では同期クロック信号の各サイクルにマスタープロセッサP0から各々出力される状態情報に「a,b,c,…」の符号を付して区別している。
【0051】
このタイミングチャートにおいて、或るサイクルでマスタープロセッサP0から出力された状態情報(例えば符号aが付された状態情報)の伝播を追跡しても明らかなように、マスタープロセッサP0からスレーブプロセッサP3へ状態情報aが出力されるサイクルと同一のサイクルに、マスタープロセッサP0と同一のクラスタ0のスレーブプロセッサP1、P2からスレーブプロセッサP3へも状態情報aが出力され、次のサイクルではスレーブプロセッサP3から次段のクラスタ1のスレーブプロセッサP4へ状態情報aが出力される。従って、4個のプロセッサから成る単一のクラスタ当り2サイクルで状態情報が伝播することになり、クラスタ数(=4)×2=8サイクルで、全てのスレーブプロセッサの状態が反映された状態情報がマスタープロセッサP0に入力されることになる。
【0052】
図6のタイミングチャートでは、スレーブプロセッサP1〜P15において、状態条件が成立し状態レジスタ301に格納されている値が書き換わったタイミングを、細線の矢印と太線の矢印の境界として各々示している。図6の例では、スレーブプロセッサP1、P8が最も遅いタイミングで状態条件が成立しているが、このタイミングから7サイクル後には、全てのスレーブプロセッサで状態条件が成立した(同期成立)ことを表す状態情報(論理値"1")がマスタープロセッサP0に入力され、マスタープロセッサP0が同期成立を検知することができる。
【0053】
図7には比較例として、リングデータバス102を介して状態検査パケットを伝播させて状態検査を行う従来方式のタイミングチャートを示す。この従来方式では、状態検査パケットが全てのプロセッサの間を順に伝播していくため、個々のスレーブプロセッサの状態検査パケット受信及び送信が1サイクルで完了するとしても(図7はこの場合を示す)、マスタープロセッサP0から状態検査パケットが送信されてから、全てのスレーブプロセッサの状態が反映された状態情報パケットがマスタープロセッサP0で受信される迄にプロセッサの個数分のサイクル(図7の例では16サイクル)を要する。
【0054】
このため、全てのプロセッサで状態条件が成立してから状態情報パケットによって通知される状態情報が論理値"1"に変化する迄にも、最後に状態条件が成立したスレーブプロセッサから見て、マスタープロセッサに到達する迄の経路上に存在するプロセッサの個数分のサイクル(図7の例では15サイクル)を要することになる。
【0055】
従って、図6のタイミングチャートを図7のタイミングチャートと比較しても明らかなように、本実施形態に係るマルチプロセッサシステム100によれば、全てのスレーブプロセッサで状態条件が成立してからマスタープロセッサP0がこれを同期成立として検知する迄の時間が、従来方式と比較して明らかに短縮されていることが理解できる。また、状態検査によってリングデータバス102が占有されることもなく、プロセッサ間のデータ通信を、リングデータバス102を介し状態検査と並行して行うことができる。
【0056】
マルチプロセッサシステム100では、クラスタi内の最終段のプロセッサP(4i+3)に入力される状態情報の数が、単一のクラスタに入力される状態情報の数よりも多いので、比較的配線が困難で配線の長さも長くなるクラスタチップ間の配線の数に比して、比較的配線が容易で配線の長さも短いクラスタチップ内の配線の数が多くなっている。これにより、マルチプロセッサシステム100の製造が容易になると共に電気配線全体の電気的負荷も小さくなる。
【0057】
次に本発明の他の実施形態について説明する。図8には、各プロセッサに設けられる状態検査制御回路の他の例が示されている。図8に示す状態検査制御回路500は、図3に示す状態検査制御回路300と同様に、状態レジスタ501、演算ロジック502、状態検査結果格納レジスタ503、状態情報出力セレクタ504、DFF(D−フリップフロップ)505を含んで構成されている。状態検査制御回路500の演算ロジック502は、4個の入力端子を備えたANDゲート506と4個の入力端子を備えたORゲート507を備えており、状態レジスタ501はANDゲート506及びORゲート507の4個の入力端子のうちの1つに各々接続されている。
【0058】
また、状態検査制御回路500はセレクタ508、509、510、511を備えている。セレクタ508の2個の入力端子のうちの一方は、例えば接続線を介してVDD(定電圧電源)に接続される等により論理値"1"が固定的に入力され、前記2個の入力端子のうちの他方は、例えば接続線を介してグランドに接続される等により論理値"0"が固定的に入力される。セレクタ508の出力端はセレクタ509、510、511の2個の入力端子の一方に各々接続されており、更に状態情報出力セレクタ504の2個の入力端子の一方にも接続されている。
【0059】
セレクタ509、510、511の2個の入力端子の他方は、プロセッサに設けられている3個の状態情報入力端子の何れかに各々接続されており、セレクタ509、510、511の出力端子は、ANDゲート506及びORゲート507の4個の入力端子のうち状態レジスタ301に接続されていない3個の入力端子の何れかに各々接続されている。
【0060】
セレクタ509、510、511の選択信号入力端子は、プロセッサに設けられた3個の状態情報入力選択端子の何れかに各々接続されている。プリント基板上にプロセッサ(クラスタチップ)が実装されることにより、セレクタ509、510、511には3個の状態情報入力選択端子を介して論理値"0"又は"1"の状態情報入力選択信号が各々固定的に入力され、セレクタ509、510、511は固定的に入力される状態情報入力選択信号に従って、一方の入力端子を介して入力される情報(論理値)を固定的にANDゲート506及びORゲート507へ出力する。
【0061】
すなわち、他のプロセッサ又はクラスタから状態情報が入力されないプロセッサ(例えば図2のマルチプロセッサシステム100において、クラスタiのプロセッサP(4i+1)、P(4i+2))については、セレクタ509、510、511の各々において、セレクタ508から入力された論理値がANDゲート506及びORゲート507へ固定的に出力されるように、各セレクタに状態情報入力選択信号が入力される。
【0062】
また、同一のクラスタの他の全てのプロセッサから(全ての状態情報入力端子を介して)状態情報が入力されるプロセッサ(例えば図2のマルチプロセッサシステム100において、クラスタiのプロセッサP(4i+3))については、セレクタ509、510、511の各々において、状態情報入力端子を介して入力された状態情報がANDゲート506及びORゲート507へ固定的に出力されるように、各セレクタに状態情報入力選択信号が入力される。
【0063】
更に、3個の状態情報入力端子のうちの一部の端子から状態情報が入力されるプロセッサ(例えば図2のマルチプロセッサシステム100において、クラスタiのプロセッサP(4i))については、セレクタ509、510、511のうち状態情報入力端子を介して状態情報が入力されるセレクタからは、状態情報入力端子を介して入力された状態情報がANDゲート506及びORゲート507へ固定的に出力され、状態情報が入力されないセレクタからは、セレクタ508から入力された論理値がANDゲート506及びORゲート507へ固定的に出力されるように、各セレクタに状態情報入力選択信号が入力される。
【0064】
また、ANDゲート506の出力端子はセレクタ512の2個の入力端子の一方に、ORゲート507の出力端子はセレクタ512の2個の入力端子の他方に各々接続されており、セレクタ512の出力端子は状態検査結果格納レジスタ503に接続されていると共に、状態情報出力セレクタ504の2個の入力端子の一方に接続されている。
【0065】
セレクタ512の選択信号入力端子及び前述したセレクタ508の選択信号入力端子は自プロセッサに接続されており、自プロセッサから演算選択信号が入力される。この演算選択信号により、ANDゲート506の論理演算の結果がセレクタ512から出力される場合にはセレクタ508から論理値"1"が出力され、ORゲート507の論理演算の結果がセレクタ512から出力される場合にはセレクタ508から論理値"0"が出力される。
【0066】
これにより、全てのプロセッサの状態検査制御回路500を、演算選択信号によりセレクタ512からANDゲート506の論理演算の結果が出力される状態にしておき、マスタープロセッサP0からスレーブプロセッサP4へ初期論理値"1"の状態情報を出力すれば、状態検査制御回路300と同様に、8サイクル後には全てのプロセッサが状態条件を満足したか否かを表す状態情報が得られると共に、全てのプロセッサの状態検査制御回路500を、演算選択信号によりセレクタ512からORゲート507の論理演算の結果が出力される状態にしておき、マスタープロセッサP0からスレーブプロセッサP4へ初期論理値"0"の状態情報を出力すれば、8サイクル後には状態条件を満足したプロセッサが存在しているか否かを表す状態情報が得られる。
【0067】
このように、状態検査制御回路を上記の構成にすることにより、プロセッサ間やクラスタ間の電気配線数の増大を招くことなく、2種類の状態情報を各々取得することができる。なお、演算選択信号により全てのプロセッサの状態検査制御回路500の状態を切り替えることは、リングデータバス102を介し、マスタープロセッサP0から全てのプロセッサに対して状態検査制御回路500の状態の切り替えを指示するパケットを送信することで行うことができる。上述した状態検査制御回路500は請求項に記載の第1出力手段及び第2出力手段に対応している。
【0068】
また、図9及び図10には、本発明の他の実施形態に係るマルチプロセッサシステム600が示されている。マルチプロセッサシステム600は、マルチプロセッサシステム100に対してトポロジーを変更し、CMOS LSIチップ(クラスタチップ)、複数のクラスタチップを備えたマルチチップモジュール(MCM:クラスタ群)、複数のマルチチップモジュールが実装されたPCB(プリント基板)の各段階において、状態情報を伝達するための電気配線の密度を変化させたものである。なお、全ての図示は省略するが、マルチプロセッサシステム600は128個のプロセッサを備えている。
【0069】
図9に示すように、単一のクラスタチップ内には8個のプロセッサが設けられており、図示は省略するが、各プロセッサには、7個の状態情報入力端子と1個の状態情報出力端子が各々設けられている。単一のクラスタチップ内の第1番目〜第7番目のプロセッサP0〜P6の状態情報出力端子は、同一クラスタチップ内の第8番目のプロセッサP7の7個の状態情報入力端子の何れかに各々接続されており、プロセッサP0〜P6から出力された状態情報はプロセッサP7に各々入力される。これにより、P7からは同一クラスタチップ内の全てのプロセッサの状態が反映された状態情報が出力される。
【0070】
また図10に示すように、単一のマルチチップモジュール(クラスタ群)には4個のクラスタチップが設けられている。個々のクラスタチップには3個の状態情報入力端子と、自クラスタチップ内のプロセッサP7の状態情報出力端子に接続される1個の状態情報出力端子が各々設けられている(図9参照)。単一のモジュール内の第1番目〜第3番目のクラスタチップの状態情報出力端子は、同一モジュール内の第4番目のクラスタチップの3個の状態情報入力端子に接続されており、該クラスタチップのプロセッサP1には、第1番目〜第3番目のクラスタチップから出力された状態情報が各々入力される。
【0071】
これにより、第4番目のクラスタチップのプロセッサP0からは、他のクラスタチップの全てのプロセッサの状態及び自プロセッサの状態が反映された状態情報が出力され、第4番目のクラスタチップ(のプロセッサP7)からは、同一モジュール内の全てのプロセッサの状態が反映された状態情報が出力される。上記より明らかなように、マルチプロセッサシステム600において、第4番目のクラスタチップのプロセッサP0の状態検査制御回路は、第4番目のクラスタチップのプロセッサP7の状態検査制御回路と共に、本発明の第2出力手段としての機能を備えている。
【0072】
また、単一のプリント基板上には4個のモジュールが設けられており、個々のモジュールには状態情報入力端子及び状態情報出力端子が各々1個ずつ設けられている。各モジュールの状態情報出力端子は後段のモジュールの状態情報入力端子に接続されている。なお、各プロセッサ及び各クラスタチップの状態情報入力端子のうち、状態情報が入力されない入力端子については、各プロセッサが内蔵している状態検査制御回路の演算ロジックに応じてプルダウン(論理値"0"が入力)またはプルアップ(論理値"1"が入力)される。
【0073】
上述した構成のマルチプロセッサシステム600では、8個のプロセッサから成る単一のクラスタチップ当り2サイクルで状態情報が伝播し、4個のクラスタチップから成る単一のモジュール当り4サイクルで状態情報が伝播することになり、モジュール数(=4)×4=16サイクルで、全てのスレーブプロセッサの状態が反映された状態情報がマスタープロセッサPに入力されることになる。
【0074】
マルチプロセッサシステム600では、単一のクラスタチップ内のプロセッサ数(=8)を、単一のモジュール内のクラスタチップ数及びプリント基板内のモジュール数(=4)よりも多くしており、単一のクラスタチップ内の最終段のプロセッサP7に入力される状態情報の数が、単一のクラスタチップや単一のモジュール(クラスタ群)に入力される状態情報の数よりも多いので、比較的配線が困難で配線の長さも長くなるクラスタチップ間やモジュール間の配線の数に比して、比較的配線が容易で配線の長さも短いクラスタチップ内の配線の数が多くなっている。これにより、マルチプロセッサシステム100の製造が容易になると共に電気配線全体の電気的負荷も小さくなる。
【0075】
なお、上記のマルチプロセッサシステム600では、クラスタチップ内・マルチチップモジュール内・プリント基板内の3段階における電気配線の密度を変化させていたが、複数枚のプリント基板から成る大規模なマルチプロセッサシステムを構築する等の場合に、プリント基板間を含む4段階における電気配線の密度を、プリント基板間の電気配線の密度が最小となるように変化させてもよい。
【0076】
また、上記では1ビットの状態情報を伝播させるようにしていたが、本発明はこれに限定されるものではなく、状態情報を複数ビットで構成し、この状態情報を例えばシリアルに伝播させるようにしてもよい。
【0077】
また、図2に示したマルチプロセッサシステム100では、或るクラスタから出力された状態情報が次段のクラスタの第1番目のプロセッサに入力される構成を採用していたが、これに限定されるものではなく、第1番目以外の他のプロセッサに状態情報が入力されるようにしてもよい。特に最終プロセッサ(単一のクラスタがN個のプロセッサから構成されている場合の第N番目のプロセッサ)に入力されるようにすれば、状態情報の伝播速度を更に高速化することができる。
【0078】
更に、図10に示したマルチプロセッサシステム600においても、上記と同様に、或るクラスタ群(モジュール)から出力された状態情報が次段のクラスタ群の第1番目のクラスタに入力される構成を採用していたが、これに限定されるものではなく、第1番目以外の他のクラスタに状態情報が入力されるようにしてもよい。
【0079】
【発明の効果】
以上説明したように請求項1記載の発明は、バスを介して接続されたマルチプロセッサシステムの多数個のプロセッサを、相互に近接した位置に配置される複数個のプロセッサから成るクラスタを単位としてグループ分けし、対応するプロセッサの状態を表す状態情報を出力するか、或いは、入力された状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する第1出力手段を各プロセッサ毎に各々設け、対応するクラスタ内の全てのプロセッサ、又は対応するクラスタ群内の全てのクラスタから各々入力された各状態情報が表すプロセッサの状態を各々反映させた単一の状態情報を生成して出力する第2出力手段を、クラスタ又は複数のクラスタから成るクラスタ群毎に少なくとも1つ設け、第2出力手段から出力された状態情報を信号線によって、予め定められた各クラスタ又は各クラスタ群に状態情報を伝播させる順序における次クラスタ又は次クラスタ群の第1出力手段又は第2出力手段に入力させ、第2出力手段に入力される状態情報の数を、単一のクラスタ又はクラスタ群に入力される状態情報の数よりも多くしているので、各プロセッサの状態検査を、非常に複雑な電気配線を必要としたり、プロセッサ間のデータ通信を遮ることなく短時間で行うことができると共に、マルチプロセッサシステムの製造が容易になり、信号線及び接続線を含む電気配線全体の電気的負荷を小さくすることができる、という優れた効果を有する。
【0082】
請求項記載の発明は、請求項1の発明において、第1出力手段及び第2出力手段は、状態情報を生成するための演算として複数種の演算を選択的に行う機能を備え、外部からの指示に応じて複数種の演算を選択的に行って状態情報を生成するので、上記効果に加え、複数のプロセッサの状態を反映させた状態情報として、複数種の状態情報を各々取得することができる、という効果を有する。
【図面の簡単な説明】
【図1】 (A)及び(B)は本発明を説明するための単一のクラスタ又は単一のクラスタ群内の構成の一例を示す概略ブロック図である。
【図2】 本実施形態に係るマルチプロセッサシステムの一例を示す概念図である。
【図3】 図2のマルチプロセッサシステムにおいて、各プロセッサに設けられている状態検査制御回路の構成を示す概略ブロック図である。
【図4】 単一のクラスタチップ内の接続関係を示す概略図である。
【図5】 プリント基板上における各クラスタチップの配置及び接続関係を示す概略図である。
【図6】 図2のマルチプロセッサシステムにおける状態検査のタイミングチャートである。
【図7】 図6の比較例として、従来方式を採用した場合の状態検査のタイミングチャートである。
【図8】 状態検査制御回路の他の構成を示す概略ブロック図である。
【図9】 マルチプロセッサシステムの他の例における単一のクラスタチップ内の接続関係を示す概略図である。
【図10】 マルチプロセッサシステムの他の例における各クラスタ群内の接続関係を示す概略図である。
【符号の説明】
100 マルチプロセッサシステム
300 状態検査制御回路
302 演算ロジック
500 状態検査制御回路
502 演算ロジック
600 マルチプロセッサシステム
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a multiprocessor system, and more particularly to a multiprocessor system in which a large number of processors are connected via a bus.
[0002]
[Prior art]
Conventionally, there is known a multiprocessor system in which a plurality of processors are connected to each other by a ring bus type communication network, a huge amount of data processing is distributed to each processor, and data processing is performed while appropriately performing data communication between the processors. Yes. In this kind of multiprocessor system, in order to synchronize data processing in each processor, it is necessary to logically aggregate the state data output from each processor in order and perform state inspection to obtain various state information.
[0003]
As an example of a state inspection method in a multiprocessor system, Japanese Patent Application Laid-Open No. 4-278660 discloses a dedicated multi-bit width for performing a state inspection wired and connected to each processor separately from a ring bus for data communication. A multiprocessor synchronization detection system is disclosed in which a bus (synchronization control bus) is provided and a state check is performed using the synchronization control bus.
[0004]
As another example of the state inspection method, in the multiprocessor system described in JP-A-9-44457, a state inspection packet is sent to a ring bus for data communication and received by each processor. A state check is performed by performing a logical operation that reflects the state of the processor in the packet and transmitting it.
[0005]
[Problems to be solved by the invention]
However, in the aspect in which the state inspection is performed using the synchronous control bus, it is necessary to connect a multi-bit width synchronous control bus to each processor in addition to the data communication ring bus. As a result, the electrical wiring becomes very complicated, and there is a problem that the size of the apparatus is increased and the manufacturing cost is increased. Further, as the number of processors increases, the wiring capacity and wiring resistance (electrical load) of the synchronous control bus increase, and there is a disadvantage that the electrical characteristics such as power consumption are remarkably deteriorated.
[0006]
On the other hand, in the aspect in which the state inspection is performed by the state inspection packet using the ring bus, even if the number of processors is increased, the electrical wiring is not very complicated or the electrical characteristics are not significantly deteriorated. Since the state bus is occupied by repeatedly sending the status check packet to the data communication ring bus until the processing is completed by all the processors, all the processors communicate all data during the status check. There is a problem that can not be done.
[0007]
In addition, since the state check packet passes through all the processors and goes around the ring bus once, the state of each processor becomes clear for the first time. Therefore, the time required for the state check increases as the number of processors increases (the number of processors decreases). N requires at least N cycles).
[0008]
The present invention has been made in consideration of the above-mentioned facts, and the state inspection of each processor can be performed in a short time without requiring very complicated electric wiring or interrupting data communication between processors. The purpose is to obtain a processor system.
[0009]
[Means for Solving the Problems]
In order to achieve the above object, a multiprocessor system according to the first aspect of the present invention is a multiprocessor system in which a large number of processors are connected via a bus. Placed in close proximity to each other It is grouped in units of clusters consisting of a plurality of processors, each of which is provided for each processor and outputs status information indicating the status of the corresponding processor, or the processor corresponding to the input status information. First output means for generating and outputting state information reflecting the state, and a cluster , Or , Consists of multiple clusters Configured by processors placed in close proximity to each other State information is input from all the processors in the corresponding cluster, or from all the clusters in the corresponding cluster group, and the state of the processor represented by each input state information is provided. A second output means for generating and outputting a single state information reflected, and status information output from the second output means; , In the order of propagating state information to each predetermined cluster or group of clusters A signal line that is input to the first output means or the second output means of the next cluster or the next cluster group. The number of state information input to the second output means is greater than the number of state information input to a single cluster or cluster group. It is characterized by that.
[0010]
The multiprocessor system according to the present invention includes a large number of processors connected via a bus. As a bus for connecting a large number of processors, for example, a ring bus type bus can be adopted, and data processing can be performed while data communication is performed between the processors via the bus.
[0011]
According to the first aspect of the present invention, in the multiprocessor system having the above configuration, a large number of processors. Are placed in close proximity to each other It is grouped into a cluster consisting of a plurality of processors, and each processor outputs state information indicating the state of the corresponding processor or reflects the state of the processor corresponding to the input state information. First output means for generating and outputting status information is provided.
[0012]
As the status information, for example, 1-bit information indicating whether or not the processor satisfies a predetermined condition (for example, whether or not the predetermined processing is completed) can be used. In this case, since the state information can be transmitted by one electric wiring, it is not necessary to newly provide a multi-bit width bus or the like for transmitting the state information, which is preferable because the electric wiring can be simplified.
[0013]
Each cluster, or , Consists of multiple clusters Configured by processors placed in close proximity to each other Each cluster group includes a single state information reflecting the state of all processors in the corresponding cluster, or the processor represented by each state information input from all the clusters in the corresponding cluster group. At least one second output means for generating and outputting is provided.
[0014]
Thus, in each cluster or each cluster group, the plurality of state information respectively output from the plurality of first output means is converted into a single state information (all processors in a single cluster by the second output means). Or the state information reflecting the states of all processors in a single cluster group), the plurality of first output means can output the state information at substantially the same timing, State information representing the states of all the processors in a single cluster or a single cluster group can be obtained in a short time.
[0015]
As an example, FIG. 1A shows an example of a configuration in which the present invention is applied to a single cluster including four processors of processors n to n + 3. In the example of FIG. 1A, each processor is provided with first output means 10 that outputs state information indicating the state of the corresponding processor, and the state information output from the first output means 10 of each processor is Are input to the second output means 12 provided in the processor n + 3, and single state information is output from the second output means 12. Here, assuming that one cycle is required for the output of the status information from the first output means 10 and the second output means 12 of each processor, in the configuration of FIG. 1A, each processor in a single cluster Since the state information reflecting this state is output from the second output means 12 in two cycles, the state information can be output in a short time.
[0016]
As an example, FIG. 1B shows an example of a configuration in which the present invention is applied to a cluster group composed of four clusters A to D each having two processors. In the example of FIG. 1B, the processor n, n + 2, n + 4, and n + 6 are input to the processors n + 1, n + 3, n + 5, and n + 7. First output means 22 for generating and outputting state information reflecting the state of the processor corresponding to the single state information is provided, and the first output means 22 of the processors n + 1, n + 3, n + 5, and n + 7 is provided. Is output to the second output means 24 provided in the processor n + 7, and single status information is output from the second output means 24. In this configuration, since the state information reflecting the state of each processor in the single cluster group is output from the second output unit 24 in three cycles, the state information can be output in a short time.
[0017]
In the first aspect of the invention, the state information output from the second output means is , In the order of propagating state information to each predetermined cluster or group of clusters A signal line to be input to the first output means or the second output means of the next cluster or the next cluster group is provided, and the state information reflecting the state of each processor in the single cluster or the cluster group is the next cluster. Alternatively, it is input to the next cluster group, and the state of each processor in the next cluster or the next cluster group is also reflected sequentially. Therefore, state information is sequentially transmitted between the clusters or cluster groups via signal lines, so that the state check of all processors in the multiprocessor system, that is, the acquisition of state information reflecting the states of all processors is performed. It can be carried out.
[0018]
In the first aspect of the invention, since the state information is transmitted by the signal line provided separately from the bus, the state information can be transmitted without interrupting the data communication between the processors. According to the first aspect of the present invention, it can be realized by a simple wiring that connects the processors in the same cluster or the same cluster group and connects the clusters or the cluster groups via the signal line. In addition, it is not necessary to provide a very complicated electric wiring having a large wiring capacity and wiring resistance (electric load), such as providing a state inspection bus and wired-and-connecting with all processors.
[0019]
Therefore, according to the first aspect of the present invention, the state inspection of each processor can be performed in a short time without requiring very complicated electric wiring or interrupting data communication between the processors. In the present invention, the state check of each processor is performed by checking whether or not the processing in each processor is completed when the processing is executed in parallel in each processor, for example, and synchronizing the processing in each processor ( It can be used in the case of so-called synchronization detection.
[0020]
In the invention according to claim 1, Cluster or cluster group The Consists of processors placed in close proximity to each other (for example, processors placed in the same chip) Because The length of the connection line connecting the inside of the cluster or the cluster group can be shortened, and the wiring capacity and wiring resistance (electric load) of the connection line can be reduced.
[0021]
The number of processors constituting a single cluster and the number of clusters constituting a single cluster group can be determined according to the difficulty of wiring. For example, complex wiring is relatively easy in a single chip as compared to a printed circuit board. If a cluster or a cluster group is configured by processors arranged in the same chip, the wiring of the connection lines can be made. The effect that it becomes easy is acquired.
[0022]
Claims 1 Invention described Then The number of state information input to the second output means is greater than the number of state information input to a single cluster or cluster group Because Compared to the number of connection lines that connect within a cluster or cluster group, the number of signal lines that connect between clusters or between cluster groups, that is, the number of wires that are relatively long, can be reduced. The The multiprocessor system according to the present invention can be easily manufactured, and the electrical load of the entire electrical wiring including the signal line and the connection line can be reduced.
[0023]
By the way, in the present invention, various information can be considered as the state information reflecting the states of a plurality of processors. For example, in a mode in which a plurality of processors each perform processing, for example, information indicating whether or not a processor satisfying a predetermined condition exists among the plurality of processors (partial match of conditions), or all of the plurality of processors Can be used to indicate whether or not satisfies a predetermined condition (overall matching of conditions). These pieces of state information can be generated by performing different operations on the input state information (for example, logical operations that add up the input state information).
[0024]
When only one type of state information is necessary as the state information reflecting the states of the plurality of processors, the second output means (and the state of the processor corresponding to the input state information are displayed). The first output means having a function of generating and outputting the reflected state information only needs to have a function of performing an operation for generating the one type of state information.
[0025]
On the other hand, if multiple types of status information are required as status information reflecting the status of multiple processors, 2 As described in the above, the first output means (specifically, the first output means having a function of generating and outputting the state information reflecting the state of the processor corresponding to the input state information) and the second output Preferably, the means has a function of selectively performing a plurality of types of operations as operations for generating the state information, and preferably generates state information by selectively performing a plurality of types of operations in accordance with an instruction from the outside. . Thereby, by switching the calculation performed by the first output unit and the second output unit, it is possible to acquire a plurality of types of state information as the state information reflecting the states of the plurality of processors.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an example of an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 2 shows a multiprocessor system 100 according to an embodiment of the present invention. The multiprocessor system 100 includes a total of 16 processors P0 to P15, and these processors are connected in a ring via a ring data bus 102 having a multi-bit width used for data communication between the processors. Yes. As indicated by arrows in FIG. 2, data communication between processors is performed by transmitting data on the ring data bus 102 in a certain direction (clockwise in FIG. 2).
[0027]
The processors P0 to P15 are grouped in units of clusters each consisting of four processors. Accordingly, four clusters 0 to 3 are formed in the multiprocessor system 100, and each cluster i (where i = 0 to 3) is composed of processors P (4i) to P (4i + 3), respectively. . The processor P0 is a master processor that controls the entire multiprocessor system 100, and the processors P1 to P15 are slave processors that perform various processes under the instruction of the master processor P0.
[0028]
Each of the processors P0 to P15 includes a state inspection control circuit 300 shown in FIG. The state inspection control circuit 300 includes a state register 301, operation logic 302, a state inspection result storage register 303, a state information output selector 304, and a DFF (D-flip flop) 305. In the status register 301, 1-bit information (for example, state condition) indicating the state of the local processor (indicating whether or not the local processor satisfies a predetermined state condition (for example, whether or not processing has been completed)) is stored in the status register 301. Is satisfied = 1, and state condition is not satisfied = 0).
[0029]
The arithmetic logic 302 includes an AND gate 306 having four input terminals, and the status register 301 is connected to one of the four input terminals of the arithmetic logic 302 via a connection line 307-0. Has been. Each processor has three status information input terminals, and three input terminals that are not connected to the status register 301 among the four input terminals of the arithmetic logic 302 are connection lines 307-1 to 307. It is connected to three status information input terminals via -3. The arithmetic logic 302 calculates the logical product of the four logical values respectively input via the four input terminals, and outputs the calculation result via the output terminal.
[0030]
The output terminal of the arithmetic logic 302 is connected to the state inspection result storage register 303 via the connection line 309 and is connected to one of the two input terminals of the state information output selector 304 to store the state inspection result. The register 303 stores the logical value output from the arithmetic logic 302, and the state information output selector 304 receives the logical value.
[0031]
In the state check in the multiprocessor system 100, as will be described later, the state information (initial logical value) is output from the master processor P0, and the state information sequentially propagates through the clusters 0 to 3 and returns to the master processor P0. Made by wrapping. At this time, the logical value stored in the register 303 of the master processor P0 corresponds to the result of the state inspection of all the processors of the multiprocessor system 100. Since the register 303 is for storing the state inspection result, the register 303 may be omitted for the processors P1 to P15 other than the master processor P0.
[0032]
Each processor has one state information output terminal, and the output terminal of the state information output selector 304 is connected to the state information output terminal via a DFF (D-flip flop) 305. In addition, the initial logical value “1” is fixedly input to the other of the two input terminals of the state information output selector 304, for example, by being connected to VDD (constant voltage power supply) via the connection line 308. The The status information output selector 304 of the master processor P0 is set to output the input initial logical value “1” to the status information output terminal, and the status information output selector 304 of the slave processors P1 to P15 is connected to the connection line. The logic value input from the arithmetic logic 302 via 309 is set to be output to the status information output terminal.
[0033]
The four processors constituting each cluster are integrated as a one-chip CMOS LSI (hereinafter referred to as cluster chip 400). As shown in FIG. 4, each processor is provided with a single ring bus input terminal and a single ring bus output terminal, and a ring data bus 102 is connected in order. A single cluster chip 400 is provided with a single status information input terminal 405 and a single status information output terminal 406.
[0034]
For the first processor 401 in the cluster chip 400 (that is, the processor P (4i) of the cluster i), two of the three state information input terminals 401-1 to 401-3 (input terminals 401-2,. 401-3) is fixedly input with a logical value “1”, for example, by being connected to VDD via a connection line, etc., and the remaining one status information input terminal (input terminal 401-1) has The state information input terminal 405 of the cluster chip 400 (that is, the state information output terminal 404-4 of the fourth processor 404 of the previous cluster (cluster i-1)) is connected.
[0035]
The second processor 402 (that is, the processor P (4i + 1) of the cluster i) and the third processor 403 (that is, the processor P (4i + 2) of the cluster i) in the cluster chip 400 each have three states. The logical value “1” is fixedly inputted by the information input terminals 402-1 to 403-3 and 403-1 to 403-1 being connected to VDD through a connection line, for example. The status information output terminals 401-4, 402-4, and 403-4 of the first to third processors 401 to 403 in the cluster chip 400 are connected to the fourth processor 404 (that is, the processor P (of the cluster i). 4i + 3)) status information input terminals 404-1 to 404-3.
[0036]
By connecting the processors 401 to 404 in the single cluster chip 400 as described above, the first to fourth processors 401 to 404 including the state inspection control circuit 300 can have the same configuration. The development efficiency of the multiprocessor system 100 can be improved, and the manufacturing cost of the multiprocessor system 100 can be kept low.
[0037]
As shown in FIG. 5, in the multiprocessor system 100 according to the present embodiment, four cluster chips 400-1 to 400-4 are mounted on one printed circuit board (PCB), and ring data is set between adjacent cluster chips. In addition to being connected via a bus, state information input terminals and output terminals are connected to each other via signal lines 402-1 to 40-4 (corresponding to the signal lines described in claim 1).
[0038]
Although not shown, each of the cluster chips 400-1 to 400-4 is provided with a master processor selection terminal, and each of the cluster chips 400-1 to 400-4 selects the master processor of the cluster chip 400-1 including the master processor P0. Only the terminals are active, and the other terminals of the cluster chips 400-2 to 4-4 are connected on the printed circuit board so as to be inactive. Thus, only the first processor P0 of the cluster chip 400-1 functions as a master processor.
[0039]
Next, as an operation of the present embodiment, in the multiprocessor system 100, when the slave processors P1 to P15 execute processing in parallel, the state is performed for the purpose of detecting whether the processing in each slave processor is completed or the like The inspection will be described. Although not shown, all the processors are connected to the clock signal line, and a synchronous clock signal common to each processor is input to each processor. All transmission / reception of the state information is performed in synchronization with the synchronous clock signal.
[0040]
When the master processor P0 needs to check the status of each of the slave processors P1 to P15, the status check control circuit 300 in the master processor P0 uses the selector 304 as an initial logical value “1” as status information to be output to the slave processor. The state information of the initial logical value “1” is repeatedly output to the slave processor P3 via the state information output terminal 401-4 at every cycle of the synchronous clock signal input via the clock signal line.
[0041]
Further, the state inspection control circuit 300 in the slave processors P1 and P2 belonging to the same cluster as the master processor P0 is connected to the connection line 307-1 from the state information input terminals 402-1 to 403 to 403-1 to the own processor. 3 is a logical product operation of the logical value “1” that is fixedly input via 3 and the status information that indicates the status of the local processor that is input from the status register 301 of the local processor via the connection line 307-0. The operation logic 302 performs the logical product operation result (that is, the state information indicating the state of the processor itself) in the operation logic 302 via the state information output terminal 402-4 or 403-4 for each cycle of the synchronous clock signal. Repeatedly outputs to the slave processor P3.
[0042]
As described above, the state register 301 and the arithmetic logic 302 of the state inspection control circuit 300 in the slave processors P1 and P2 (that is, the processors P (4i + 1) and P (4i + 2) of each cluster i) are described in “1. This corresponds to “first output means for outputting state information indicating the state of the corresponding processor”.
[0043]
The arithmetic logic 302 of the state inspection control circuit 300 of the slave processor P3 receives the state information of the initial logical value “1” input from the master processor P0 to the slave processor P3 via the state information input terminal 404-3, and the state information input. Status information input from the slave processors P1 and P2 via the terminals 404-2 and 404-1, and status information indicating the status of the local processor input from the status register 301 of the local processor via the connection line 307-0 And the operation result (that is, the state information reflecting the states of all the slave processors P1 to P3 in the cluster chip 400-1) in each cycle of the synchronous clock signal. 404-4, that is, via the status information output terminal 406 of the cluster chip 400-1 including the processors P0 to P3. Repeatedly output.
[0044]
As described above, in the state inspection control circuit 300 in the slave processor P3 (that is, the processor P (4i + 3) of each cluster i), the state register 301 includes the “state information indicating the state of the corresponding processor” according to claim 1. The operation logic 302 corresponds to the “first output means for outputting”, and “at least one operation logic 302 is provided for each cluster, and status information is input from all the processors in the corresponding cluster, respectively. This corresponds to “second output means for generating and outputting single state information reflecting the state of the processor represented by each state information”.
[0045]
The state information output from the cluster chip 400-1 including the master processor P0 is input to the state information input terminal of the next-stage cluster chip 400-2. In the slave processor P4, the logical value “1” that is fixedly input from the state information input terminals 401-2 and 401-3 of the own processor via the connection lines 307-2 and 307-3, and the status register of the own processor 301, the state information indicating the state of the own processor input via the connection line 307-0, the state information input terminal of the previous cluster chip 400-1 to the cluster chip 400-2, and the state information input terminal 401 of the own processor -1. The logical product operation of the state information input via the connection line 307-1 is performed by the arithmetic logic 302, and the result of the logical product operation in the arithmetic logic 302 (that is, all in the cluster chip 400-1 in the previous stage) Status information that reflects the status of the slave processor and its own processor) in each cycle of the synchronous clock signal. To the slave processor P7.
[0046]
Thus, the state register 301 and the arithmetic logic 302 of the state inspection control circuit 300 in the slave processor P4 (that is, the processor P (4i) of each cluster i) correspond to “input state information”. Corresponds to a first output means for generating and outputting state information reflecting the state of the processor to be executed.
[0047]
The operations of the other processors P5 to P7 of the cluster chip 400-2 are the same as the operations of the processors P1 to P3 of the cluster chip 400-1, and the cluster chips 400-1 and 400 are started from the cluster chip 400-2. Status information reflecting the status of all slave processors in -2 is output.
[0048]
As described above, the state information sequentially propagates through each of the cluster chips 400-1 to 400-4, and finally the final result (all slave processors P1 of the multiprocessor system) is sent to the state information input terminal 401-1 of the master processor P0. State information reflecting the states of P15: the logical value is “1” if all the processors satisfy the state condition, and the logical value is “0” if there is a processor that does not satisfy the state condition) The clock signal is repeatedly input every cycle. The logical value “1” is fixedly stored in the state register 301 of the master processor P0, and the logical value of the state information input via the state information input terminal 401-1 is output from the arithmetic logic 302 as it is. The logic value output from the arithmetic logic 302 is stored in the state inspection result storage register 303 in each cycle of the synchronous clock signal.
[0049]
Therefore, the state of all the slave processors P1 to P15 of the multiprocessor system 100 is inspected by monitoring the logical value stored in the state inspection result storage register 303 by software executed on the master processor P0. be able to.
[0050]
FIG. 6 shows a timing chart of state inspection in the multiprocessor system 100 according to the present embodiment. In FIG. 6, the status information output from the master processor P0 in each cycle of the synchronous clock signal is distinguished by adding the symbols “a, b, c,...”.
[0051]
In this timing chart, the state from the master processor P0 to the slave processor P3 is apparent from tracking the propagation of the state information output from the master processor P0 in a certain cycle (for example, state information to which the symbol a is attached). In the same cycle as the information a is output, the status information a is also output from the slave processors P1 and P2 of the same cluster 0 as the master processor P0 to the slave processor P3. In the next cycle, the slave processor P3 outputs the next stage. Status information a is output to the slave processor P4 of the cluster 1. Therefore, the state information is propagated in 2 cycles per single cluster composed of 4 processors, and the number of clusters (= 4) × 2 = 8 cycles and the state information reflecting the states of all slave processors. Is input to the master processor P0.
[0052]
In the timing chart of FIG. 6, in the slave processors P1 to P15, the timing at which the state condition is satisfied and the value stored in the state register 301 is rewritten is shown as a boundary between a thin line arrow and a thick line arrow. In the example of FIG. 6, the state condition is established at the latest timing of the slave processors P1 and P8, but after 7 cycles from this timing, the state condition is established in all slave processors (synchronization is established). Status information (logical value “1”) is input to the master processor P0, and the master processor P0 can detect the establishment of synchronization.
[0053]
FIG. 7 shows, as a comparative example, a conventional timing chart in which a state check packet is propagated through the ring data bus 102 to check the state. In this conventional method, since the state check packets are sequentially propagated between all the processors, even if reception and transmission of the state check packets of individual slave processors are completed in one cycle (FIG. 7 shows this case). A cycle corresponding to the number of processors (16 in the example of FIG. 7) from when the status check packet is transmitted from the master processor P0 until the status information packet reflecting the status of all slave processors is received by the master processor P0. Cycle).
[0054]
For this reason, from the time when the state condition is established in all the processors until the state information notified by the state information packet changes to the logical value “1”, the master processor sees from the slave processor that finally satisfied the state condition. A cycle corresponding to the number of processors existing on the path to reach the processor (15 cycles in the example of FIG. 7) is required.
[0055]
Therefore, as apparent from a comparison of the timing chart of FIG. 6 with the timing chart of FIG. 7, according to the multiprocessor system 100 according to the present embodiment, after the state condition is satisfied in all slave processors, the master processor It can be understood that the time until P0 detects this as synchronization is clearly shortened compared to the conventional method. Further, the ring data bus 102 is not occupied by the state check, and data communication between processors can be performed in parallel with the state check via the ring data bus 102.
[0056]
In the multiprocessor system 100, since the number of state information input to the last stage processor P (4i + 3) in the cluster i is larger than the number of state information input to a single cluster, wiring is relatively difficult. Therefore, the number of wirings in the cluster chip is relatively large and the wiring length is relatively short compared to the number of wirings between the cluster chips in which the wiring length is long. This facilitates the manufacture of the multiprocessor system 100 and reduces the electrical load on the entire electrical wiring.
[0057]
Next, another embodiment of the present invention will be described. FIG. 8 shows another example of a state inspection control circuit provided in each processor. The state inspection control circuit 500 shown in FIG. 8 is similar to the state inspection control circuit 300 shown in FIG. 3 in that the state register 501, the operation logic 502, the state inspection result storage register 503, the state information output selector 504, the DFF (D flip-flop). P) 505. The arithmetic logic 502 of the state inspection control circuit 500 includes an AND gate 506 having four input terminals and an OR gate 507 having four input terminals. The state register 501 includes an AND gate 506 and an OR gate 507. Are respectively connected to one of the four input terminals.
[0058]
The state inspection control circuit 500 includes selectors 508, 509, 510, and 511. One of the two input terminals of the selector 508 is fixedly input with a logical value “1” by being connected to VDD (constant voltage power supply) via a connection line, for example, and the two input terminals The other of these is fixedly inputted with a logical value “0” by being connected to the ground via a connection line, for example. The output terminal of the selector 508 is connected to one of the two input terminals of the selectors 509, 510, and 511, and is further connected to one of the two input terminals of the status information output selector 504.
[0059]
The other of the two input terminals of the selectors 509, 510, and 511 is connected to one of three status information input terminals provided in the processor, and the output terminals of the selectors 509, 510, and 511 are Each of the four input terminals of the AND gate 506 and the OR gate 507 is connected to one of three input terminals not connected to the status register 301.
[0060]
The selection signal input terminals of the selectors 509, 510, and 511 are respectively connected to any of three state information input selection terminals provided in the processor. By mounting the processor (cluster chip) on the printed circuit board, the selectors 509, 510, and 511 receive state information input selection signals of logical value “0” or “1” via three state information input selection terminals. Are fixedly input, and selectors 509, 510, and 511 fixedly input information (logical value) input through one input terminal according to a state information input selection signal that is fixedly input. And output to the OR gate 507.
[0061]
That is, each of the selectors 509, 510, and 511 for each of the processors (for example, the processors P (4i + 1) and P (4i + 2) in the cluster i in the multiprocessor system 100 of FIG. In FIG. 5, a state information input selection signal is input to each selector so that the logical value input from the selector 508 is fixedly output to the AND gate 506 and the OR gate 507.
[0062]
In addition, a processor to which state information is input from all other processors in the same cluster (via all state information input terminals) (for example, processor P (4i + 3) in cluster i in multiprocessor system 100 in FIG. 2). In each of the selectors 509, 510, and 511, the state information input selection is made to each selector so that the state information input via the state information input terminal is fixedly output to the AND gate 506 and the OR gate 507. A signal is input.
[0063]
Further, for a processor (for example, the processor P (4i) in the cluster i in the multiprocessor system 100 of FIG. 2) to which state information is input from some of the three state information input terminals, a selector 509, The state information input via the state information input terminal is fixedly output to the AND gate 506 and the OR gate 507 from the selector 510, 511 from which the state information is input via the state information input terminal. From the selectors to which no information is input, a state information input selection signal is input to each selector so that the logical value input from the selector 508 is fixedly output to the AND gate 506 and the OR gate 507.
[0064]
The output terminal of the AND gate 506 is connected to one of the two input terminals of the selector 512, and the output terminal of the OR gate 507 is connected to the other of the two input terminals of the selector 512. Is connected to the state inspection result storage register 503 and to one of the two input terminals of the state information output selector 504.
[0065]
The selection signal input terminal of the selector 512 and the selection signal input terminal of the selector 508 described above are connected to the own processor, and an operation selection signal is input from the own processor. When the logical operation result of the AND gate 506 is output from the selector 512 by this arithmetic selection signal, the logical value “1” is output from the selector 508, and the logical operation result of the OR gate 507 is output from the selector 512. In this case, the logical value “0” is output from the selector 508.
[0066]
Thus, the state inspection control circuit 500 of all the processors is set in a state in which the logical operation result of the AND gate 506 is output from the selector 512 by the operation selection signal, and the initial logical value “from the master processor P0 to the slave processor P4”. If the status information of 1 ″ is output, the status information indicating whether or not all the processors satisfy the status condition is obtained after eight cycles, as in the status test control circuit 300, and the status test of all the processors is performed. If the control circuit 500 is set in a state in which the logical operation result of the OR gate 507 is output from the selector 512 by the operation selection signal, the state information of the initial logical value “0” is output from the master processor P0 to the slave processor P4. , State information indicating whether or not there is a processor that satisfies the state condition after 8 cycles. Information is obtained.
[0067]
As described above, by configuring the state inspection control circuit as described above, two types of state information can be acquired without causing an increase in the number of electrical wires between processors or between clusters. Note that switching the state of the state inspection control circuit 500 of all processors by the operation selection signal instructs the master processor P0 to switch the state of the state inspection control circuit 500 to all the processors via the ring data bus 102. This can be done by sending a packet to be transmitted. The state inspection control circuit 500 described above is claimed. 2 This corresponds to the first output means and the second output means.
[0068]
9 and 10 show a multiprocessor system 600 according to another embodiment of the present invention. The multiprocessor system 600 has a topology changed with respect to the multiprocessor system 100, and a CMOS LSI chip (cluster chip), a multichip module (MCM: cluster group) including a plurality of cluster chips, and a plurality of multichip modules are mounted. In each stage of the printed circuit board (PCB), the density of electric wiring for transmitting state information is changed. Although not shown in the figure, the multiprocessor system 600 includes 128 processors.
[0069]
As shown in FIG. 9, eight processors are provided in a single cluster chip, and although not shown, each processor has seven state information input terminals and one state information output. Each terminal is provided. The status information output terminals of the first to seventh processors P0 to P6 in the single cluster chip are respectively connected to any of the seven status information input terminals of the eighth processor P7 in the same cluster chip. The state information output from the processors P0 to P6 is input to the processor P7. As a result, the state information reflecting the states of all the processors in the same cluster chip is output from P7.
[0070]
Further, as shown in FIG. 10, a single multichip module (cluster group) is provided with four cluster chips. Each cluster chip is provided with three status information input terminals and one status information output terminal connected to the status information output terminal of the processor P7 in the own cluster chip (see FIG. 9). The status information output terminals of the first to third cluster chips in a single module are connected to the three status information input terminals of the fourth cluster chip in the same module. The processor P1 receives state information output from the first to third cluster chips.
[0071]
As a result, the processor P0 of the fourth cluster chip outputs state information reflecting the states of all the processors of the other cluster chips and the state of the own processor, and the fourth cluster chip (the processor P7 of the fourth cluster chip). ) Outputs state information reflecting the states of all the processors in the same module. As is clear from the above, in the multiprocessor system 600, the state inspection control circuit of the processor P0 of the fourth cluster chip is combined with the state inspection control circuit of the processor P7 of the fourth cluster chip. It has a function as an output means.
[0072]
Further, four modules are provided on a single printed circuit board, and each module is provided with one status information input terminal and one status information output terminal. The status information output terminal of each module is connected to the status information input terminal of the subsequent module. Of the state information input terminals of each processor and each cluster chip, an input terminal to which no state information is input is pulled down (logical value “0”) according to the arithmetic logic of the state inspection control circuit incorporated in each processor. Is input) or pulled up (logical value “1” is input).
[0073]
In the multiprocessor system 600 configured as described above, state information propagates in two cycles per single cluster chip consisting of eight processors, and state information propagates in four cycles per single module consisting of four cluster chips. Therefore, the state information reflecting the states of all the slave processors is input to the master processor P in the number of modules (= 4) × 4 = 16 cycles.
[0074]
In the multiprocessor system 600, the number of processors in a single cluster chip (= 8) is larger than the number of cluster chips in a single module and the number of modules in a printed circuit board (= 4). Since the number of state information input to the last stage processor P7 in the cluster chip is larger than the number of state information input to a single cluster chip or a single module (cluster group), it is relatively wired. Compared to the number of wirings between cluster chips and between modules that are difficult and the wiring length is long, the number of wirings in a cluster chip that is relatively easy to wire and short in wiring length is increased. This facilitates the manufacture of the multiprocessor system 100 and reduces the electrical load on the entire electrical wiring.
[0075]
In the multiprocessor system 600 described above, the density of the electrical wiring in the three stages in the cluster chip, in the multichip module, and in the printed board is changed, but a large-scale multiprocessor system composed of a plurality of printed boards. For example, the density of the electrical wiring in the four stages including between the printed boards may be changed so that the density of the electrical wiring between the printed boards is minimized.
[0076]
In the above description, 1-bit state information is propagated. However, the present invention is not limited to this. The state information is composed of a plurality of bits, and the state information is propagated serially, for example. May be.
[0077]
Further, the multiprocessor system 100 shown in FIG. 2 employs a configuration in which the state information output from a certain cluster is input to the first processor of the next-stage cluster. However, the present invention is not limited to this. The status information may be input to a processor other than the first one. In particular, if it is input to the final processor (the Nth processor when a single cluster is composed of N processors), the propagation speed of the state information can be further increased.
[0078]
Further, in the multiprocessor system 600 shown in FIG. 10, similarly to the above, the state information output from a certain cluster group (module) is input to the first cluster of the next cluster group. However, the present invention is not limited to this, and state information may be input to a cluster other than the first cluster.
[0079]
【The invention's effect】
As described above, according to the first aspect of the present invention, a plurality of processors of a multiprocessor system connected via a bus are provided. Placed in close proximity to each other A group of multiple processors is grouped as a unit, and status information indicating the status of the corresponding processor is output, or status information reflecting the status of the processor corresponding to the input status information is generated. The first output means is provided for each processor, and reflects the state of the processor represented by each state information input from all the processors in the corresponding cluster or all the clusters in the corresponding cluster group. At least one second output means for generating and outputting the generated single state information is provided for each cluster or a cluster group composed of a plurality of clusters, and the state information output from the second output means is provided by a signal line. , In the order of propagating state information to each predetermined cluster or group of clusters Input to the first output means or the second output means of the next cluster or the next cluster group The number of state information input to the second output means is larger than the number of state information input to a single cluster or cluster group. Therefore, the state inspection of each processor can be performed in a short time without requiring very complicated electrical wiring or interrupting data communication between processors. In addition, the multiprocessor system can be easily manufactured, and the electrical load of the entire electrical wiring including the signal line and the connection line can be reduced. , Has an excellent effect.
[0082]
Claim 2 In the invention described in claim 1, in the invention of claim 1, the first output means and the second output means have a function of selectively performing a plurality of types of operations as operations for generating the state information. Accordingly, since the state information is generated by selectively performing a plurality of types of operations, a plurality of types of state information can be acquired as the state information reflecting the states of the plurality of processors, in addition to the above effects. It has the effect.
[Brief description of the drawings]
FIGS. 1A and 1B are schematic block diagrams illustrating an example of a configuration within a single cluster or a single cluster group for explaining the present invention.
FIG. 2 is a conceptual diagram showing an example of a multiprocessor system according to the present embodiment.
3 is a schematic block diagram showing a configuration of a state inspection control circuit provided in each processor in the multiprocessor system of FIG. 2. FIG.
FIG. 4 is a schematic diagram showing a connection relationship in a single cluster chip.
FIG. 5 is a schematic diagram showing the arrangement and connection relationship of each cluster chip on a printed circuit board.
6 is a timing chart of state inspection in the multiprocessor system of FIG. 2;
FIG. 7 is a timing chart of a state inspection when a conventional method is adopted as a comparative example of FIG.
FIG. 8 is a schematic block diagram showing another configuration of the state inspection control circuit.
FIG. 9 is a schematic diagram showing a connection relationship in a single cluster chip in another example of the multiprocessor system.
FIG. 10 is a schematic diagram showing a connection relationship in each cluster group in another example of the multiprocessor system.
[Explanation of symbols]
100 multiprocessor system
300 State inspection control circuit
302 arithmetic logic
500 Condition inspection control circuit
502 arithmetic logic
600 multiprocessor system

Claims (2)

多数個のプロセッサがバスを介して接続されたマルチプロセッサシステムであって、
前記多数個のプロセッサは、相互に近接した位置に配置される複数個のプロセッサから成るクラスタを単位としてグループ分けされており、
各プロセッサ毎に各々設けられ、対応するプロセッサの状態を表す状態情報を出力するか、或いは、入力された状態情報に対応するプロセッサの状態を反映させた状態情報を生成して出力する第1出力手段と、
クラスタ又は複数のクラスタから成り相互に近接した位置に配置されるプロセッサによって構成されるクラスタ群毎に少なくとも1つ設けられ、対応するクラスタ内の全てのプロセッサ、又は対応するクラスタ群内の全てのクラスタから状態情報が各々入力され、入力された各状態情報が表すプロセッサの状態を各々反映させた単一の状態情報を生成して出力する第2出力手段と、
前記第2出力手段から出力された状態情報を、予め定められた各クラスタ又は各クラスタ群に状態情報を伝播させる順序における次クラスタ又は次クラスタ群の第1出力手段又は第2出力手段に入力させる信号線と、
を備え
前記第2出力手段に入力される状態情報の数が、単一のクラスタ又はクラスタ群に入力される状態情報の数よりも多いことを特徴とするマルチプロセッサシステム。
A multiprocessor system in which a large number of processors are connected via a bus,
The plurality of processors are grouped in units of clusters composed of a plurality of processors arranged at positions close to each other .
A first output that is provided for each processor and outputs state information indicating the state of the corresponding processor, or generates and outputs state information reflecting the state of the processor corresponding to the input state information. Means,
Cluster, or at least one is provided from a plurality of clusters each formed Ri clusters that consists by a processor which is disposed at a position close to each other, all within the corresponding cluster processor, or in the corresponding clusters State information is input from all the clusters, and second output means for generating and outputting single state information reflecting each of the states of the processors represented by the input state information;
The state information output from the second output means is input to the first output means or the second output means of the next cluster or the next cluster group in the order in which the state information is propagated to each predetermined cluster or each cluster group . A signal line,
Equipped with a,
The multiprocessor system, wherein the number of state information input to the second output means is greater than the number of state information input to a single cluster or cluster group .
前記第1出力手段及び前記第2出力手段は、前記状態情報を生成するための演算として複数種の演算を選択的に行う機能を備えており、外部からの指示に応じて複数種の演算を選択的に行って状態情報を生成することを特徴とする請求項1記載のマルチプロセッサシステム。The first output means and the second output means have a function of selectively performing a plurality of types of calculations as calculations for generating the state information, and perform a plurality of types of calculations in response to an instruction from the outside. 2. The multiprocessor system according to claim 1, wherein the state information is generated selectively.
JP30843899A 1999-10-29 1999-10-29 Multiprocessor system Expired - Fee Related JP4049957B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30843899A JP4049957B2 (en) 1999-10-29 1999-10-29 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30843899A JP4049957B2 (en) 1999-10-29 1999-10-29 Multiprocessor system

Publications (2)

Publication Number Publication Date
JP2001125875A JP2001125875A (en) 2001-05-11
JP4049957B2 true JP4049957B2 (en) 2008-02-20

Family

ID=17981052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30843899A Expired - Fee Related JP4049957B2 (en) 1999-10-29 1999-10-29 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP4049957B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271574A (en) 2002-03-14 2003-09-26 Hitachi Ltd Data communication method for shared memory type multiprocessor system
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
JP4569368B2 (en) * 2005-04-26 2010-10-27 日本電気株式会社 Computer system, memory initialization method, and computer system program

Also Published As

Publication number Publication date
JP2001125875A (en) 2001-05-11

Similar Documents

Publication Publication Date Title
US5550843A (en) Programmable scan chain testing structure and method
US6020774A (en) Gated clock tree synthesis method for the logic design
JP2009543472A (en) Reconfigurable logical fabric for integrated circuits and systems and methods for configuring a reconfigurable logical fabric
JPH0786525B2 (en) Diagnostic circuit
US20150263972A1 (en) Fault and Variation Tolerant Energy and Area Efficient Links for Network-on-Chips
US8106683B2 (en) One phase logic
JPS63243890A (en) Semiconductor integrated circuit device
EP1637894B1 (en) Boundary scan chain routing
JP4049957B2 (en) Multiprocessor system
JP2004085366A (en) Multichip module and its test method
KR19980032360A (en) Scan test method of semiconductor integrated circuit
JPH10224231A (en) Serial-parallel conversion circuit
US8300635B2 (en) Programmable crossbar structures in asynchronous systems
JP2009265024A (en) Semiconductor device
US8732540B2 (en) Semiconductor device having input/output wrappers, and a method of controlling the wrappers
JP3909509B2 (en) Serial interface circuit
JP2505032B2 (en) Semiconductor integrated circuit
JPH05312919A (en) Semiconductor integrated circuit
JPH05312920A (en) Semiconductor integrated circuit
EP2515443A1 (en) Data serializer
KR100385231B1 (en) Bus system
JP3645456B2 (en) Semiconductor integrated circuit device
JP2887825B2 (en) Digital processing circuit
JPH0729389A (en) Shift register circuit
JP2000114468A (en) Semiconductor integrated circuit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070921

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: 20071030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071128

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: 20101207

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees