(57)【特許請求の範囲】
【請求項１】
複数のプロセッサエレメントがそれぞれ独立に動作し、共通のバスを用いて情報の伝達を行うマルチプロセッサであって、
上記各プロセッサエレメントは、
上記プロセッサエレメントがバスを使用するとき、当該プロセッサエレメントの特権レベルに応じたバス要求値を生成する要求値生成回路と、
上記プロセッサエレメントがバスを使用するとき、バス要求信号と上記バス要求値を上記バスに送信する送信回路と、
上記プロセッサエレメントが上記バス要求信号を送信したとき、上記バスの使用状況および上記バス要求信号を送信したプロセッサエレメントのバス要求値に応じて、バス使用の可否を判断する制御回路と、
を有する調停器を有し、
さらに、上記マルチプロセッサは、
上記バスに接続され、上記バスに複数のプロセッサエレメントから上記バス要求信号が送信された、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定出来ない場合に、バス使用状況または上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定するバス調停回路
を有するマルチプロセッサ。
【請求項２】
上記制御回路は第１の記憶回路を有し、該第１の記憶回路に記憶されている上記特権レベルデータを書き換える
請求項１記載のマルチプロセッサ。
【請求項３】
上記バス調停回路は、上記バスから複数のプロセッサエレメントの上記調停器からの上記バス要求信号を受信したとき、上記バス要求信号を送信した各々のプロセッサエレメントの特権レベルに応じて、バスを使用すべきプロセッサエレメントを判断する特権レベル判断回路を有する
請求項１記載のマルチプロセッサ。
【請求項４】
上記バス調停回路は、１以上の上記各プロセッサエレメントの上記要求値生成回路が上記バスにバス要求値を送信したときに動作し、上記制御回路が上記バスに接続されている各プロセッサエレメントの特権レベルデータを記憶する第２の記憶回路を有する
請求項１記載のマルチプロセッサ。
【請求項５】
上記バス調停回路は、上記第２の記憶回路に記憶されている上記各プロセッサエレメントの特権レベルデータを書き換える制御回路を有する
請求項４記載のマルチプロセッサ。
【請求項６】
単一のバスに接続されている複数のプロセッサエレメントに対して、バスの使用権を決定するバス調停方法であって、
各プロセッサエレメント毎にバスの使用の可否を判断する制御回路を設け、
バスを使用するプロセッサエレメントによりバス要求信号と当該プロセッサエレメントの特権レベルに応じたバス要求値を上記バスに送信し、
プロセッサエレメントに設けられた上記制御回路により、バスの使用状況および上記プロセッサエレメントからの上記バス要求値に応じて、上記プロセッサエレメントに対してバス使用の可否を決定し、
上記バスに接続され、上記複数のプロセッサエレメントから共有されるバス調停回路を設け、
上記バスに複数の上記プロセッサエレメントからバス要求信号が送信され、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定できない場合に、上記バス調停回路によりバスの使用状況および上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定する
マルチプロセッサのバス調停方法。
【請求項７】
上記各プロセッサエレメントの特権レベルデータは、変更可能であり、外部からの指示信号もしくは上記プロセッサエレメントからの指示信号に応じて上記の特権レベルデータが変更される
請求項６記載のマルチプロセッサのバス調停方法。
【請求項８】
上記バス調停回路は、上記各プロセッサエレメントの特権レベルデータを記憶する
請求項６記載のマルチプロセッサのバス調停方法。
【請求項９】
上記バス調停回路は、何れかのプロセッサエレメントの特権レベルデータが変更されたとき、それに応じて上記記憶されているプロセッサエレメントの特権レベルを変更する
請求項８記載のマルチプロセッサのバス調停方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサエレメントなどによって単一のバスを共有するマルチプロセッサおよび当該マルチプロセッサにおけるバス使用権を決定するバス調停方法に関するものである。
【０００２】
【従来の技術】
図７に示すマルチプロセッサシステムは、単一バスのマルチプロセッサシステムである。このシステムでは、一度に単一の通信しかできないため、バス１０を使用するプロセッサエレメント（ＰＥ）をただ１つだけ選択する選択機構、例えば、調停回路が必要である。さらに、調停の際に個々のプロセッサエレメントに固有の優先順位を割り付けるのではなく、より効果的にバスを使用するために、動的に優先順位を割り付ける方法が一般的に採用されている。この場合、例えば、特権レベルを利用するバスの割り振りが有効である。
【０００３】
従来、上記調停回路には、集中型調停回路と分散型調停回路があった。集中型調停回路は、図８に示すように、例えば、バス１０に接続されている複数のプロセッサエレメント１２，２２，３２と一つの調停器４０により構成されている。集中型調停回路においては、バス１０を使用するプロセッサエレメントから直接または間接的に調停器４０にバス要求信号が送られ、調停器４０によりバス使用の許可信号がバスの使用が許可されたプロセッサエレメントに返される。
【０００４】
即ち、集中型調停回路では、プロセッサエレメントのバス要求信号の送信、調停器のプロセッサエレメントの選択、調停器の許可信号の送信という３つの処理を経て、はじめてバスの使用を要求したプロセッサエレメントがバスを使用可能となる。
【０００５】
分散型調停回路の一例は、図９に示している。図示のように、分散型調停回路は、バス１０に接続されている複数のプロセッサエレメント１２，２２，３２により構成されている。さらに、各プロセッサエレメントにそれぞれバス使用権の調停を行う調停器１１，２１，３１が設けられている。
【０００６】
図９に示している分散型調停回路では、許可信号は複数の場所（多くは各プロセッサの調停器）で生成される。この調停回路で、特権レベルを利用して調停を行うためには、それぞれの調停器ごとに、すべてのプロセッサエレメントの特権レベルを保持する必要がある。さらに、ある一つのプロセッサエレメントの特権レベルが変更されたとき、すべての調停回路にそれを通知する必要がある。
このような分散型調停回路によって、プロセッサエレメントは、それに設けられた調停器によりバス使用できるか否かが直接判断でき、判断結果に応じてバス使用許可が決定されるので、集中型調停回路に比べてバス要求を送信してからバス使用許可が受信するまでの所要時間が短縮できる。
【０００７】
【発明が解決しようとする課題】
ところで、上述した従来のマルチプロセッサシステムでは、集中型と分散型においてそれぞれのディメリットがある。
例えば、集中型の調停回路を持つマルチプロセッサでは、プロセッサエレメントのバス要求信号の送信、調停器のプロセッサエレメントの選択、調停器の許可信号の送信という３つの処理が不可欠である。さらに、これらの３つの処理は同時に行うことができず、逐次的に処理せざるを得ないため、調停に要する時間が長くなる。
【０００８】
一方、分散型の調停回路を持つマルチプロセッサでは、特権レベルを利用した調停を行うためには、それぞれのプロセッサエレメントに設けられた調停器毎に、すべてのプロセッサエレメントの特権レベルを記憶する必要があり、さらに、ある一つのプロセッサエレメントの特権レベルが変更されたとき、すべての調停器にそれを通知する必要があるので、システム全体の通信負荷が大きくなる。また、それぞれの調停回路がプロセッサエレメントを選択する回路を持たなければならないため、複雑な選択方法では、それぞれの調停回路の規模が大きくなり、システム全体の規模も大きくなってしまうという不利益がある。
【０００９】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、回路規模を大幅に増加させることなく、バス調停にかかる時間を短縮でき、システム全体の高速化を実現できるマルチプロセッサおよびそのバス使用権決定方法を提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、本発明のマルチプロセッサは、複数のプロセッサエレメントがそれぞれ独立に動作し、共通のバスを用いて情報の伝達を行うマルチプロセッサであって、上記各プロセッサエレメントは、上記プロセッサエレメントがバスを使用するとき、当該プロセッサエレメントの特権レベルに応じたバス要求値を生成する要求値生成回路と、上記プロセッサエレメントがバスを使用するとき、バス要求信号と上記バス要求値を上記バスに送信する送信回路と、上記プロセッサエレメントが上記バス要求信号を送信したとき、上記バスの使用状況および上記バス要求信号を送信したプロセッサエレメントのバス要求値に応じて、バス使用の可否を判断する制御回路と、を有する調停器を有し、さらに、上記マルチプロセッサは、上記バスに接続され、上記バスに複数のプロセッサエレメントから上記バス要求信号が送信された、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定出来ない場合に、バス使用状況または上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定するバス調停回路とを有する。
【００１３】
また、本発明では、好適には、上記各プロセッサエレメントの特権レベルデータは、変更可能であり、各プロセッサエレメント毎に設けられた上記制御手段により、それぞれのプロセッサエレメント毎に設けられている上記記憶回路に記憶されている上記特権レベルデータが書き換えられる。
【００１４】
また、本発明は、単一のバスに接続されている複数のプロセッサエレメントに対して、バスの使用権を決定するバス調停方法であって、各プロセッサエレメント毎にバスの使用の可否を判断する制御回路を設け、バスを使用するプロセッサエレメントによりバス要求信号と当該プロセッサエレメントの特権レベルに応じたバス要求値を上記バスに送信し、プロセッサエレメントに設けられた上記制御回路により、バスの使用状況および上記プロセッサエレメントからの上記バス要求値に応じて、上記プロセッサエレメントに対してバス使用の可否を決定し、上記バスに接続され、上記複数のプロセッサエレメントから共有されるバス調停回路を設け、上記バスに複数の上記プロセッサエレメントからバス要求信号が送信され、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定できない場合に、上記バス調停回路によりバスの使用状況および上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定する。
【００１５】
さらに、本発明では、好適には、上記共通のバス調停回路は第２の記憶回路に上記各プロセッサエレメントの特権レベルデータを記憶し、また、何れかのプロセッサエレメントの特権レベルデータが変更されたとき、それに応じて上記記憶されているプロセッサエレメントの特権レベルを変更する。
【００１６】
本発明によれば、単一のバスを使用する複数のプロセッサエレメントからなるマルチプロセッサにおいて、各プロセッサエレメント毎にバスの使用の可否を判断する調停器が設けられている。バスを使用するプロセッサエレメントにより、バス要求信号と当該プロセッサエレメントの特権レベルに応じたバス要求値がバスに出力される。各プロセッサエレメントに設けられた調停器において自分のプロセッサエレメントからバス要求信号が送信されたとき、バスの使用状況および自分のプロセッサエレメントのバス要求値に応じて、自分のプロセッサエレメントのバス使用の可否を判断する。
【００１７】
さらに、上記バスに共通のバス調停回路が接続され、当該バス調停回路により、バスの使用状況を監視しつつ、複数のプロセッサエレメントからバス要求信号がバスに送信されたとき、バスの使用状況およびバス使用を要求したプロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定し、各プロセッサエレメントに使用の可否を通知する。上述したように、本発明のマルチプロセッサにおいて、バス使用を要求したプロセッサエレメントが一つのみの場合に、該当するプロセッサエレメントに設けられている調停器によってそのプロセッサエレメントにバス使用の可否を判断でき、または複数のプロセッサエレメントが同時にバスの使用を要求した場合に、バスに接続されている共通のバス調停回路によって、バス使用を要求した各プロセッサエレメントの特権レベルなどに基づき、バスを使用するプロセッサエレメントを決定する調停を行うので、バス調停を高速に実行できる。
【００１８】
【発明の実施の形態】
図１は本発明に係るマルチプロセッサの一実施形態を示す回路図である。
図示のように、本実施形態のマルチプロセッサは、共通のバス１０に接続されているＮ個のプロセッサエレメント（ＰＥ）２０−１，２０−２，…，２０−Ｎ、各々のプロセッサエレメントに設けられている調停器３０−１，３０−２，…，３０−Ｎおよび共通のバス調停回路５０により構成されている。
【００１９】
図１に示すように、本実施形態のマルチプロセッサにおいて、すべてのプロセッサエレメント２０−１，２０−２，２０−３にそれぞれ調停器３０−１，３０−２，…，３０−Ｎが設けられている。また、各プロセッサエレメントは特権レベルを１つずつ保持している。これらの特権レベルは一定ではなく変更される可能性がある。バス調停回路５０は、すべてのプロセッサエレメントの特権レベルを保持している。あるプロセッサエレメントの特権レベルが変更されると、バス調停回路５０中に保持されている対応する特権レベルの値も同様に変更される。
【００２０】
図２は、それぞれ各プロセッサエレメントに設けられている調停器の内部構成を示している。以下、図２を参照しつつ、各プロセッサエレメントに設けられている調停器の構成および機能について説明する。
【００２１】
図１に示す全てのプロセッサエレメント２０−１，２０−２，２０−３に設けられている調停器３０−１，３０−２，…，３０−Ｎはほぼ同じ構成を有するので、図２においては、例えば、プロセッサエレメント２０−１に設けられている調停器３０−１を例示している。図示のように、調停器３０−１は、受信回路３１、送信回路３２、制御回路３３、要求値生成回路３４および特権レベル記憶回路３５により構成されている。
【００２２】
受信回路３１は、バス１０からバス調停回路５０および他のプロセッサエレメントに設けられている調停器からのバス要求信号およびバス要求値を受信し、受信信号を制御回路３３に供給する。
送信回路３２は、プロセッサエレメント２０−１がバスを使用するとき、バス１０にバス要求信号とともに、要求値生成回路３４により生成したバス要求値をバス１０に送信する。
【００２３】
制御回路３３は、プロセッサエレメント２０−１からバス使用要求を受けたとき、要求値生成回路３４にバス要求値を生成させ、さらに、送信回路３２にバス要求信号とともに、要求値生成回路３４により生成したバス要求値をバス１０に送信することを指示する。そして、現在バス１０の使用状況および特権レベル記憶回路３５に記憶されているプロセッサエレメント２０−１の特権レベルに応じて、プロセッサエレメント２０−１がバスを使用できるか否かを判断し、判断の結果プロセッサエレメント２０−１に通知する。
さらに、制御回路３３は、プロセッサエレメント２０−１からの指示または受信回路３１によって受信した指示信号に従って、特権レベル記憶回路３５に記憶したプロセッサエレメント２０−１の特権レベルデータを書き換える。
【００２４】
要求値生成回路３４は、プロセッサエレメント２０−１がバス１０を使用するとき、制御回路３３の制御に基づき特権レベル記憶回路３５に記憶されているプロセッサエレメント２０−１の特権レベルデータに基づき、バス要求値を生成する。
特権レベル記憶回路３５は、プロセッサエレメント２０−１の特権レベルを示す特権レベルデータを記憶する。ここで、当該特権レベルデータは、例えば、Ｍビットのデータからなる。なお、上述したように各プロセッサエレメントに付与されている特権レベルは、固定ではなく可変なものである。このため、例えば、プロセッサエレメント２０−１の特権レベルが変更するとき、それに応じて特権レベル記憶回路３５に記憶されている特権レベルデータが制御回路３３の指示に従って書き換えられる。特権レベルの変更は、例えば、プロセッサエレメント２０−１からの変更指示により行う。または、外部の制御装置、例えば、マルチプロセッサのシステム全体の動作を制御する制御装置によりバス１０を経してそれぞれのプロセッサエレメントに特権レベルの設定および変更を指示する制御信号が出力される。この場合、例えば、受信回路３１からプロセッサエレメント２０−１の特権レベルを変更する指示信号を受信したとき、制御回路３３は、当該指示信号に従って特権レベル記憶回路３５に記憶されている特権レベルデータを変更する。
【００２５】
要求値生成回路３４は、特権レベル記憶回路３５に記憶されているＭビットの特権レベルデータに応じてバス要求値を生成する。具体的に、例えば、Ｍビットの特権レベルデータのうち、上位ｍビットに基づきバス要求値を生成する。一例として、ここで、Ｍ＝８、ｍ＝２の場合について説明する。即ち、特権レベルデータが８ビットからなり、要求値生成回路３４は、特権レベルデータの８ビットのうち上位２ビットを取り出し、当該２ビットデータの最下位にさらに１ビットのデータ“１”を付加してバス要求値を生成する。例えば、特権レベルデータが“１００１０００１”の場合、バス要求値“１０１”を生成して出力する。
【００２６】
図３は、バス調停回路５０の構成を示している。以下、図３を参照しつつ、バス調停回路５０の構成および機能について説明する。図示のように、バス調停回路５０は、受信回路５１、送信回路５２、制御回路５３、特権レベル判断回路５４、巡回レベル判断回路５５および特権レベル記憶回路５６により構成されている。
【００２７】
バス調停回路５０は、バス１０により転送されてきたバス要求信号および各々のプロセッサエレメントの特権レベルに基づき、バスの割り振りを行う。例えば、バス１０から転送されてきたバス要求信号、バス要求値、各プロセッサエレメントの特権レベルおよびバスの使用状況に基づき、バスを使用するプロセッサエレメントを決定し、バス１０を介して該当するプロセッサエレメントにバス使用許可信号を送信する。以下、図３を参照しつつ、バス調停回路５０の構成および動作についてさらに具体的に説明する。
【００２８】
受信回路５１は、バス１０から各プロセッサエレメントの調停器から送信したバス要求信号およびバス要求値を受信し、受信信号を制御回路５３に供給する。送信回路５２は、特権レベル判断回路５４の判断結果に応じてバス使用が許可されたプロセッサエレメントにバス１０を介してバス使用許可信号を送信する。
【００２９】
制御回路５３は、何れかのプロセッサエレメントからのバス要求信号を受信したとき、受信回路５１からの受信信号に応じて特権レベル判断回路または巡回レベル判断回路にバス使用要求について判断させ、判断の結果に応じて許可されたプロセッサエレメントに使用許可信号を送信するよう制御を行う。
また、何れかのプロセッサエレメントの特権レベルが書き換えられたとき、当該書き換えに関する指示信号がバス１０を経由して受信回路５１により受信される。この場合、制御回路５３は受信回路５１の受信信号に応じて特権レベル記憶回路５６に記憶された対応する特権レベルデータの書き換えを制御する。
【００３０】
特権レベル判断回路５４は、受信回路５１から複数のプロセッサエレメントからバス要求信号およびバス要求値を受信したとき、制御回路５３の制御に基づき、特権レベル記憶回路５６に記憶されている各々のプロセッサエレメントの特権レベルデータに応じてバス使用要求をした複数のプロセッサエレメントのうち最も優先度の高いプロセッサエレメントを決定し、送信回路５２を介してそれにバス使用許可信号を送信する。なお、バス使用を要求した複数のプロセッサエレメントのうち最も高い優先度を持つプロセッサエレメントが２以上ある場合、制御回路５３にそれを通知する。
【００３１】
制御回路５３は、特権レベル判断回路５４から上記通知を受けたとき、巡回レベル判断回路５５に巡回順位に基づいてバスの使用を許可すべきプロセッサエレメントを判断させる。巡回レベル判断回路５５は、巡回優先順位に基づきバスを使用するプロセッサエレメントを決定し、送信回路５２を介してそれにバス使用許可を出力する。
【００３２】
特権レベル記憶回路５６は、バス１０に接続されている全てのプロセッサエレメントの特権レベルデータを記憶する。例えば、バス１０にＮ個のプロセッサエレメントが接続され、各プロセッサエレメントの特権レベルデータがＭビットからなる場合、特権レベル記憶回路５６は、少なくともＭ×Ｎビットの記憶容量を有する。特権レベル記憶回路５６に記憶されている特権レベルデータは、制御回路５３の制御に応じて書き換えることができる。例えば、何れかのプロセッサエレメントが特権レベルデータが変更した場合に、受信回路５１により、当該特権レベルの変更を知らせる通知信号を受信したとき、制御回路５３は受信信号に応じて特権レベル記憶回路５６に対応する特権レベルデータの書き換え指示を出力し、これに応じて特権レベル記憶回路５６に記憶された所定の特権レベルデータが書き換えられる。
【００３３】
図４〜図６は、それぞれ各プロセッサエレメント２０−１，２０−２，…，２０−Ｎ、各プロセッサエレメントに設けられた調停器３０−１，３０−２，…，３０−３およびバス調停回路５０の動作手順を示すフローチャートである。以下、これらのフローチャートを参照しつつ、それぞれプロセッサエレメント、調停器およびバス調停回路５０の動作について説明する。
【００３４】
まず、図４を参照しながら、プロセッサエレメントの動作手順について説明する。
バスを使用するプロセッサエレメントは、まず、ステップ１００に示すように、そのプロセッサエレメントに設けられている調停器を介して、バス１０に自分の持つ特権レベルデータの上位２ビットとデータ“１”の計３ビットのデータから形成されたバス要求値をバス要求信号とともにバス１０に送信する。例えば、特権レベルが２進数で“１００１０００１”のとき、要求値生成回路３４によって、バス要求値“１０１”が生成され、さらに送信回路によって、バス要求信号とともに当該バス要求値がバス１０に送信される。
【００３５】
すべてのプロセッサエレメントにバス要求値のビット数分だけのバス信号線が割り当てられているため、異なるプロセッサエレメントが同じ信号線に重なってバス要求値を送信することにはならない。
即ち、プロセッサエレメントの数をＮとし、バス要求値が３ビットのデータで構成されるとすると、バス１０の幅は、（Ｎ×３）ビット以上であるとする。このため、複数のプロセッサエレメントから同時にバス１０にバス要求値を送信することが可能である。
【００３６】
次に、ステップ１１０において、バス調停回路５０またはプロセッサエレメント自身の調停器からの使用許可信号を待つ。バス調停回路５０またはプロセッサエレメント自身の調停器の何れかから許可信号を得れば、そのプロセッサエレメントはバス１０を使用できるようになり、調停は終了する。ここで、プロセッサエレメント自身の調停器とは、図１において、例えば、プロセッサエレメント２０−１の場合は調停器３０−１であり、プロセッサエレメント２０−２の場合は調停器３０−２、プロセッサエレメント２０−Ｎの場合は調停器３０−Ｎである。
【００３７】
図５は、各プロセッサエレメント毎に設けられた調停器の動作を示すフローチャートである。
図示のように各々の調停器は、自分のプロセッサエレメントがバスの使用を要求する場合に動作をはじめる。ここで、自分のプロセッサエレメントとは、調停器３０−１の場合はプロセッサエレメント２０−１、調停器３０−２の場合はプロセッサエレメント２０−２、調停器３０−Ｎの場合はプロセッサエレメント２０−Ｎである。
【００３８】
まず、ステップ２００において、調停器はバス１０を監視し、他のプロセッサエレメントが送信したバス要求値を得る。そして、ステップ２１０において、バス要求値を出したプロセッサエレメントが自分のプロセッサエレメントのみであるか、もしくは、自分のプロセッサエレメントが出したバス要求値が他のどのプロセッサエレメントが出したバス要求値よりも大きいかどうかを調べる。バス要求値を送信したのが自分のプロセッサエレメントのみであり、または自分のプロセッサエレメントが送信したバス要求値が他のどのプロセッサエレメントが送信したバス要求値よりも大きい場合、ステップ２２０の処理によって、自分のプロセッサエレメントにバス１０使用の許可信号を出力する。そうでなければ処理が終了する。
【００３９】
図６は、バス調停回路５０の動作を示すフローチャートである。図示のように、バス調停回路５０は、ある一つ以上のプロセッサエレメントがバス１０にバス要求値を送信すると動作がはじまる。まず、ステップ３００において、バス調停回路がバス１０を監視し、プロセッサエレメントがバス１０に送信したバス要求値をすべて読み取る。バス要求値が０以上のプロセッサエレメントに対応する特権レベルの値を比較し、最大値を持つものを調べる。
【００４０】
ステップ３１０で、特権レベル最大のものが複数あればステップ３２０の処理を行ない、１つしかなければステップ３３０においてそのプロセッサエレメントにバス使用の許可信号を出力し、処理が終了する。このとき、ステップ３３０を実行せず、処理を終了してもよい。即ち、バス使用を要求したプロセッサエレメントが一つのみの場合には、プロセッサエレメントは、そのプロセッサエレメントに属している調停器によりバス使用が許可が得られ、バス１０の使用を開始するので、バス調停回路５０から改めてバス使用許可を出力する必要がない。
【００４１】
特権レベル最大のものが複数ある場合、ステップ３２０の処理に進む。ステップ３２０においては、最大値を持つプロセッサエレメントから、巡回優先順位に基づいて１つのプロセッサエレメントを選択する。そして、ステップ３３０において、選択されたプロセッサエレメントにバス使用の許可信号を出力し、処理が終了する。なお、バス調停回路５０における決定よりも各プロセッサエレメントごとの調停器による決定のほうが優先されるため、どれか一つの調停器が許可信号を出すと、バス調停回路５０の処理が終了する。
【００４２】
ここで、例えば、調停器２０−１の特権レベルデータが“１０００１０００”、調停器２０−２の特権レベルデータが“０１１１００００”、調停器２０−Ｎの特権レベルデータが“１１００００００”であるとし（すべて２進数表記）、且つプロセッサエレメント２０−１，２０−２と２０−Ｎの三つが同時にバス使用するバス要求信号をバス１０に出力する場合を考える。この場合、それぞれのプロセッサエレメントがバス１０にバス要求値を出力する。例えば、プロセッサエレメント２０−１はバス要求値“１０１”、プロセッサエレメント２０−２はバス要求値“０１１”、さらにプロセッサエレメント２０−Ｎは要求値“１１１”をそれぞれバス１０に出力する。このために、三つの要求値“１０１”、“０１１”、“１１１”のうち、要求値“１１１”が最大であり、かつ、唯一であるので、プロセッサエレメント２０−Ｎに設けられている調停器３０−Ｎが図５のフローチャートにおけるステップ２２０の処理においてバス使用の許可信号をプロセッサエレメント３０−Ｎに出力するので、プロセッサエレメント２０−Ｎはバス１０を使用可能となる。これと同時に、調停器３０−Ｎの調停処理は終了する。
【００４３】
以上説明したように、本実施形態によれば、複数のプロセッサエレメントは単一のバス１０を用いて、相互に情報の伝達を行うマルチプロセッサシステムにおいて、バス１０を使用するプロセッサエレメントはバス要求信号と自分の特権レベルに応じたバス要求値をバス１０に送信する。各プロセッサエレメント毎に設けられた調停器は、自分のプロセッサエレメントがバスの使用を要求したとき、バスの使用状況および自分のプロセッサエレメントの特権レベルに応じて、バス使用の可否を決定する。バスに接続されている共通のバス調停回路５０は、バス１０を監視しつつ、バス１０にバス要求信号が送信されたとき、バスの使用状況およびバスを要求したプロセッサエレメントの特権レベルに応じて、バス１０を使用するプロセッサエレメントを決定するので、バスの使用権の決定を高速に行うことができ、単一のバスを用いたマルチプロセッサシステムの通信の高速化を実現できる。
【００４４】
なお、上述した例ではバス１０はプロセッサエレメントのみしか接続していないが、本発明はこれに限定されるものではなく、バス１０にプロセッサエレメント以外の他のモジュール、例えば、マルチプロセッサを構成するユニットで、メモリ等が接続してもよい。
また、各プロセッサエレメントが特権レベルを保持しているが、当該特権レベルを示すデータのすべてのビットを保持する必要はなく、バス使用要求時バスに送信するバス要求値を生成するのに必要なビット数分だけ持てばよい。例えば、上述した実施形態に述べたように、プロセッサエレメントがバスを要求するとき、バス要求信号に伴い特権レベルデータの上記２ビットと“１”を結合した３ビットのバス要求値をバスに出力するので、各プロセッサエレメントに、少なくとも特権レベルデータの上位２ビットを保持すればよい。
【００４５】
さらに、バス１０に接続されている共通のバス調停回路５０において、バス使用要求を送信したプロセッサエレメントのうち、特権レベル最大のものが複数ある場合に、巡回優先順位に基づいて一つのプロセッサエレメントを選択しているが、この選択は別の方法によって行ってもよい。また、特権レベル最大のものを選ぶ必要もなく、例えば、疑似的に特権レベル最大のものを選択してもよい。また、バス１０を使用するプロセッサエレメントはバス１０に、自分の持つ特権レベルデータの上位２ビットからなる３ビットのバス要求値を送信しているが、このビット数はいくつでもよい。ただし、０以上で、且つ特権レベルデータのビット数またはそれ以下のビット数を持つデータを送信するものとする。
【００４６】
また、各プロセッサエレメントの特権レベルデータは、例えば、バス調停回路５０によりそれぞれ設定することができ、バス調停回路５０は、バス１０を介して、各プロセッサエレメントに特権レベルデータを設定する制御信号を送信することもできる。さらに、各プロセッサエレメントがバス１０を介して任意のプロセッサエレメントに特権レベルデータを設定する制御信号を送信することができる。また、プロセッサエレメントは直接自分の特権レベルデータを設定することもできる。プロセッサエレメントの特権レベルデータが変更されたとき、バス調停回路５０が保持する特権レベルデータも変更される。また、各プロセッサエレメントの特権レベルデータは、各プロセッサエレメント毎に設けられた調停器に記憶してもよい。この場合に、バス１０を使用するプロセッサエレメントは、調停器を介してバス１０にバス要求信号と自分の特権レベルに応じたバス要求値を送信することができる。
【００４７】
【発明の効果】
以上説明したように、本発明のマルチプロセッサおよびそのバス調停方法によれば、各プロセッサエレメントごとに調停器が設けられているため、バスを使用するプロセッサエレメントを唯一に選択できれば即座にそれを決定し、プロセッサエレメントに伝えることができ、高速な調停を実現できる。
また、バスを使用するプロセッサエレメントは、バス要求信号を送信する際に、特権レベルの情報の一部、例えば、特権レベルデータの一部からなるバス要求値をバスに送信するため、バス調停回路でバスを使用するプロセッサエレメントを決定できる可能性が高い。さらに、バスを使用するプロセッサエレメントが送信するバス要求値のビット数を大きくすれば、各プロセッサエレメント毎に設けられた調停器で決定できる確率が高くなり、共通のバス調停回路で決定する場合よりも調停にかかる時間を短くすることができる。
各々のプロセッサエレメントとは独立した共通のバス調停回路を持つため、複雑な調停を行っても、このバス調停回路のみの回路が大きくなるだけで、個々のプロセッサエレメントに設けられた調停器には影響を与えない。即ち、複雑なアルゴリズムを持つ調停回路の実装が可能となる。また、各プロセッサエレメントの調停器が対応するプロセッサエレメントの特権レベルデータのみを保持し、すべてのプロセッサエレメントの特権レベルを保持する必要がなく、バス調停回路が保持すればよいため、特権レベルの変更があった場合、バス調停回路のみにそれを伝えればよく、バスの通信負荷を低減できる利点がある。
【図面の簡単な説明】
【図１】本発明に係るマルチプロセッサの一実施形態を示す回路図である。
【図２】プロセッサエレメントに設けられている調停器の構成を示す回路図である。
【図３】共通のバス調停回路の構成を示す回路図である。
【図４】プロセッサエレメントの動作を示すフローチャートである。
【図５】プロセッサエレメント毎に設けられた調停器の動作を示すフローチャートである。
【図６】バス調停回路の動作示すフローチャートである。
【図７】単一バスのマルチプロセッサの構成を示す概念図である。
【図８】集中型調停回路を有するマルチプロセッサの構成例を示す回路図である。
【図９】分散型調停回路を有するマルチプロセッサの構成例を示す回路図である。
【符号の説明】
１０…バス、２０−１，２０−２，…，２０−Ｎ…プロセッサエレメント（ＰＥ）、３０−１，３０−２，…，３０−Ｎ…調停器、４０…調停器、５０…バス調停回路。
【図１】
0004099561.tif 000002
【図２】
0004099561.tif 000003
【図３】
0004099561.tif 000004
【図４】
0004099561.tif 000005
【図５】
0004099561.tif 000006
【図６】
0004099561.tif 000007
【図７】
0004099561.tif 000008
【図８】
0004099561.tif 000009
【図９】
0004099561.tif 000010