JP4099561B2 - マルチプロセッサおよびそのバス調停方法 - Google Patents
マルチプロセッサおよびそのバス調停方法 Download PDFInfo
- Publication number
- JP4099561B2 JP4099561B2 JP07579599A JP7579599A JP4099561B2 JP 4099561 B2 JP4099561 B2 JP 4099561B2 JP 07579599 A JP07579599 A JP 07579599A JP 7579599 A JP7579599 A JP 7579599A JP 4099561 B2 JP4099561 B2 JP 4099561B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- processor element
- circuit
- privilege level
- processor
- 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
Links
- 238000000034 method Methods 0.000 title claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 description 10
- 125000004122 cyclic group Chemical group 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、複数のプロセッサエレメントなどによって単一のバスを共有するマルチプロセッサおよび当該マルチプロセッサにおけるバス使用権を決定するバス調停方法に関するものである。
【0002】
【従来の技術】
図7に示すマルチプロセッサシステムは、単一バスのマルチプロセッサシステムである。このシステムでは、一度に単一の通信しかできないため、バス10を使用するプロセッサエレメント(PE)をただ1つだけ選択する選択機構、例えば、調停回路が必要である。さらに、調停の際に個々のプロセッサエレメントに固有の優先順位を割り付けるのではなく、より効果的にバスを使用するために、動的に優先順位を割り付ける方法が一般的に採用されている。この場合、例えば、特権レベルを利用するバスの割り振りが有効である。
【0003】
従来、上記調停回路には、集中型調停回路と分散型調停回路があった。集中型調停回路は、図8に示すように、例えば、バス10に接続されている複数のプロセッサエレメント12,22,32と一つの調停器40により構成されている。集中型調停回路においては、バス10を使用するプロセッサエレメントから直接または間接的に調停器40にバス要求信号が送られ、調停器40によりバス使用の許可信号がバスの使用が許可されたプロセッサエレメントに返される。
【0004】
即ち、集中型調停回路では、プロセッサエレメントのバス要求信号の送信、調停器のプロセッサエレメントの選択、調停器の許可信号の送信という3つの処理を経て、はじめてバスの使用を要求したプロセッサエレメントがバスを使用可能となる。
【0005】
分散型調停回路の一例は、図9に示している。図示のように、分散型調停回路は、バス10に接続されている複数のプロセッサエレメント12,22,32により構成されている。さらに、各プロセッサエレメントにそれぞれバス使用権の調停を行う調停器11,21,31が設けられている。
【0006】
図9に示している分散型調停回路では、許可信号は複数の場所(多くは各プロセッサの調停器)で生成される。この調停回路で、特権レベルを利用して調停を行うためには、それぞれの調停器ごとに、すべてのプロセッサエレメントの特権レベルを保持する必要がある。さらに、ある一つのプロセッサエレメントの特権レベルが変更されたとき、すべての調停回路にそれを通知する必要がある。
このような分散型調停回路によって、プロセッサエレメントは、それに設けられた調停器によりバス使用できるか否かが直接判断でき、判断結果に応じてバス使用許可が決定されるので、集中型調停回路に比べてバス要求を送信してからバス使用許可が受信するまでの所要時間が短縮できる。
【0007】
【発明が解決しようとする課題】
ところで、上述した従来のマルチプロセッサシステムでは、集中型と分散型においてそれぞれのディメリットがある。
例えば、集中型の調停回路を持つマルチプロセッサでは、プロセッサエレメントのバス要求信号の送信、調停器のプロセッサエレメントの選択、調停器の許可信号の送信という3つの処理が不可欠である。さらに、これらの3つの処理は同時に行うことができず、逐次的に処理せざるを得ないため、調停に要する時間が長くなる。
【0008】
一方、分散型の調停回路を持つマルチプロセッサでは、特権レベルを利用した調停を行うためには、それぞれのプロセッサエレメントに設けられた調停器毎に、すべてのプロセッサエレメントの特権レベルを記憶する必要があり、さらに、ある一つのプロセッサエレメントの特権レベルが変更されたとき、すべての調停器にそれを通知する必要があるので、システム全体の通信負荷が大きくなる。また、それぞれの調停回路がプロセッサエレメントを選択する回路を持たなければならないため、複雑な選択方法では、それぞれの調停回路の規模が大きくなり、システム全体の規模も大きくなってしまうという不利益がある。
【0009】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、回路規模を大幅に増加させることなく、バス調停にかかる時間を短縮でき、システム全体の高速化を実現できるマルチプロセッサおよびそのバス使用権決定方法を提供することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するため、本発明のマルチプロセッサは、複数のプロセッサエレメントがそれぞれ独立に動作し、共通のバスを用いて情報の伝達を行うマルチプロセッサであって、上記各プロセッサエレメントは、上記プロセッサエレメントがバスを使用するとき、当該プロセッサエレメントの特権レベルに応じたバス要求値を生成する要求値生成回路と、上記プロセッサエレメントがバスを使用するとき、バス要求信号と上記バス要求値を上記バスに送信する送信回路と、上記プロセッサエレメントが上記バス要求信号を送信したとき、上記バスの使用状況および上記バス要求信号を送信したプロセッサエレメントのバス要求値に応じて、バス使用の可否を判断する制御回路と、を有する調停器を有し、さらに、上記マルチプロセッサは、上記バスに接続され、上記バスに複数のプロセッサエレメントから上記バス要求信号が送信された、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定出来ない場合に、バス使用状況または上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定するバス調停回路とを有する。
【0013】
また、本発明では、好適には、上記各プロセッサエレメントの特権レベルデータは、変更可能であり、各プロセッサエレメント毎に設けられた上記制御手段により、それぞれのプロセッサエレメント毎に設けられている上記記憶回路に記憶されている上記特権レベルデータが書き換えられる。
【0014】
また、本発明は、単一のバスに接続されている複数のプロセッサエレメントに対して、バスの使用権を決定するバス調停方法であって、各プロセッサエレメント毎にバスの使用の可否を判断する制御回路を設け、バスを使用するプロセッサエレメントによりバス要求信号と当該プロセッサエレメントの特権レベルに応じたバス要求値を上記バスに送信し、プロセッサエレメントに設けられた上記制御回路により、バスの使用状況および上記プロセッサエレメントからの上記バス要求値に応じて、上記プロセッサエレメントに対してバス使用の可否を決定し、上記バスに接続され、上記複数のプロセッサエレメントから共有されるバス調停回路を設け、上記バスに複数の上記プロセッサエレメントからバス要求信号が送信され、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定できない場合に、上記バス調停回路によりバスの使用状況および上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定する。
【0015】
さらに、本発明では、好適には、上記共通のバス調停回路は第2の記憶回路に上記各プロセッサエレメントの特権レベルデータを記憶し、また、何れかのプロセッサエレメントの特権レベルデータが変更されたとき、それに応じて上記記憶されているプロセッサエレメントの特権レベルを変更する。
【0016】
本発明によれば、単一のバスを使用する複数のプロセッサエレメントからなるマルチプロセッサにおいて、各プロセッサエレメント毎にバスの使用の可否を判断する調停器が設けられている。バスを使用するプロセッサエレメントにより、バス要求信号と当該プロセッサエレメントの特権レベルに応じたバス要求値がバスに出力される。各プロセッサエレメントに設けられた調停器において自分のプロセッサエレメントからバス要求信号が送信されたとき、バスの使用状況および自分のプロセッサエレメントのバス要求値に応じて、自分のプロセッサエレメントのバス使用の可否を判断する。
【0017】
さらに、上記バスに共通のバス調停回路が接続され、当該バス調停回路により、バスの使用状況を監視しつつ、複数のプロセッサエレメントからバス要求信号がバスに送信されたとき、バスの使用状況およびバス使用を要求したプロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定し、各プロセッサエレメントに使用の可否を通知する。上述したように、本発明のマルチプロセッサにおいて、バス使用を要求したプロセッサエレメントが一つのみの場合に、該当するプロセッサエレメントに設けられている調停器によってそのプロセッサエレメントにバス使用の可否を判断でき、または複数のプロセッサエレメントが同時にバスの使用を要求した場合に、バスに接続されている共通のバス調停回路によって、バス使用を要求した各プロセッサエレメントの特権レベルなどに基づき、バスを使用するプロセッサエレメントを決定する調停を行うので、バス調停を高速に実行できる。
【0018】
【発明の実施の形態】
図1は本発明に係るマルチプロセッサの一実施形態を示す回路図である。
図示のように、本実施形態のマルチプロセッサは、共通のバス10に接続されているN個のプロセッサエレメント(PE)20−1,20−2,…,20−N、各々のプロセッサエレメントに設けられている調停器30−1,30−2,…,30−Nおよび共通のバス調停回路50により構成されている。
【0019】
図1に示すように、本実施形態のマルチプロセッサにおいて、すべてのプロセッサエレメント20−1,20−2,20−3にそれぞれ調停器30−1,30−2,…,30−Nが設けられている。また、各プロセッサエレメントは特権レベルを1つずつ保持している。これらの特権レベルは一定ではなく変更される可能性がある。バス調停回路50は、すべてのプロセッサエレメントの特権レベルを保持している。あるプロセッサエレメントの特権レベルが変更されると、バス調停回路50中に保持されている対応する特権レベルの値も同様に変更される。
【0020】
図2は、それぞれ各プロセッサエレメントに設けられている調停器の内部構成を示している。以下、図2を参照しつつ、各プロセッサエレメントに設けられている調停器の構成および機能について説明する。
【0021】
図1に示す全てのプロセッサエレメント20−1,20−2,20−3に設けられている調停器30−1,30−2,…,30−Nはほぼ同じ構成を有するので、図2においては、例えば、プロセッサエレメント20−1に設けられている調停器30−1を例示している。図示のように、調停器30−1は、受信回路31、送信回路32、制御回路33、要求値生成回路34および特権レベル記憶回路35により構成されている。
【0022】
受信回路31は、バス10からバス調停回路50および他のプロセッサエレメントに設けられている調停器からのバス要求信号およびバス要求値を受信し、受信信号を制御回路33に供給する。
送信回路32は、プロセッサエレメント20−1がバスを使用するとき、バス10にバス要求信号とともに、要求値生成回路34により生成したバス要求値をバス10に送信する。
【0023】
制御回路33は、プロセッサエレメント20−1からバス使用要求を受けたとき、要求値生成回路34にバス要求値を生成させ、さらに、送信回路32にバス要求信号とともに、要求値生成回路34により生成したバス要求値をバス10に送信することを指示する。そして、現在バス10の使用状況および特権レベル記憶回路35に記憶されているプロセッサエレメント20−1の特権レベルに応じて、プロセッサエレメント20−1がバスを使用できるか否かを判断し、判断の結果プロセッサエレメント20−1に通知する。
さらに、制御回路33は、プロセッサエレメント20−1からの指示または受信回路31によって受信した指示信号に従って、特権レベル記憶回路35に記憶したプロセッサエレメント20−1の特権レベルデータを書き換える。
【0024】
要求値生成回路34は、プロセッサエレメント20−1がバス10を使用するとき、制御回路33の制御に基づき特権レベル記憶回路35に記憶されているプロセッサエレメント20−1の特権レベルデータに基づき、バス要求値を生成する。
特権レベル記憶回路35は、プロセッサエレメント20−1の特権レベルを示す特権レベルデータを記憶する。ここで、当該特権レベルデータは、例えば、Mビットのデータからなる。なお、上述したように各プロセッサエレメントに付与されている特権レベルは、固定ではなく可変なものである。このため、例えば、プロセッサエレメント20−1の特権レベルが変更するとき、それに応じて特権レベル記憶回路35に記憶されている特権レベルデータが制御回路33の指示に従って書き換えられる。特権レベルの変更は、例えば、プロセッサエレメント20−1からの変更指示により行う。または、外部の制御装置、例えば、マルチプロセッサのシステム全体の動作を制御する制御装置によりバス10を経してそれぞれのプロセッサエレメントに特権レベルの設定および変更を指示する制御信号が出力される。この場合、例えば、受信回路31からプロセッサエレメント20−1の特権レベルを変更する指示信号を受信したとき、制御回路33は、当該指示信号に従って特権レベル記憶回路35に記憶されている特権レベルデータを変更する。
【0025】
要求値生成回路34は、特権レベル記憶回路35に記憶されているMビットの特権レベルデータに応じてバス要求値を生成する。具体的に、例えば、Mビットの特権レベルデータのうち、上位mビットに基づきバス要求値を生成する。一例として、ここで、M=8、m=2の場合について説明する。即ち、特権レベルデータが8ビットからなり、要求値生成回路34は、特権レベルデータの8ビットのうち上位2ビットを取り出し、当該2ビットデータの最下位にさらに1ビットのデータ“1”を付加してバス要求値を生成する。例えば、特権レベルデータが“10010001”の場合、バス要求値“101”を生成して出力する。
【0026】
図3は、バス調停回路50の構成を示している。以下、図3を参照しつつ、バス調停回路50の構成および機能について説明する。図示のように、バス調停回路50は、受信回路51、送信回路52、制御回路53、特権レベル判断回路54、巡回レベル判断回路55および特権レベル記憶回路56により構成されている。
【0027】
バス調停回路50は、バス10により転送されてきたバス要求信号および各々のプロセッサエレメントの特権レベルに基づき、バスの割り振りを行う。例えば、バス10から転送されてきたバス要求信号、バス要求値、各プロセッサエレメントの特権レベルおよびバスの使用状況に基づき、バスを使用するプロセッサエレメントを決定し、バス10を介して該当するプロセッサエレメントにバス使用許可信号を送信する。以下、図3を参照しつつ、バス調停回路50の構成および動作についてさらに具体的に説明する。
【0028】
受信回路51は、バス10から各プロセッサエレメントの調停器から送信したバス要求信号およびバス要求値を受信し、受信信号を制御回路53に供給する。送信回路52は、特権レベル判断回路54の判断結果に応じてバス使用が許可されたプロセッサエレメントにバス10を介してバス使用許可信号を送信する。
【0029】
制御回路53は、何れかのプロセッサエレメントからのバス要求信号を受信したとき、受信回路51からの受信信号に応じて特権レベル判断回路または巡回レベル判断回路にバス使用要求について判断させ、判断の結果に応じて許可されたプロセッサエレメントに使用許可信号を送信するよう制御を行う。
また、何れかのプロセッサエレメントの特権レベルが書き換えられたとき、当該書き換えに関する指示信号がバス10を経由して受信回路51により受信される。この場合、制御回路53は受信回路51の受信信号に応じて特権レベル記憶回路56に記憶された対応する特権レベルデータの書き換えを制御する。
【0030】
特権レベル判断回路54は、受信回路51から複数のプロセッサエレメントからバス要求信号およびバス要求値を受信したとき、制御回路53の制御に基づき、特権レベル記憶回路56に記憶されている各々のプロセッサエレメントの特権レベルデータに応じてバス使用要求をした複数のプロセッサエレメントのうち最も優先度の高いプロセッサエレメントを決定し、送信回路52を介してそれにバス使用許可信号を送信する。なお、バス使用を要求した複数のプロセッサエレメントのうち最も高い優先度を持つプロセッサエレメントが2以上ある場合、制御回路53にそれを通知する。
【0031】
制御回路53は、特権レベル判断回路54から上記通知を受けたとき、巡回レベル判断回路55に巡回順位に基づいてバスの使用を許可すべきプロセッサエレメントを判断させる。巡回レベル判断回路55は、巡回優先順位に基づきバスを使用するプロセッサエレメントを決定し、送信回路52を介してそれにバス使用許可を出力する。
【0032】
特権レベル記憶回路56は、バス10に接続されている全てのプロセッサエレメントの特権レベルデータを記憶する。例えば、バス10にN個のプロセッサエレメントが接続され、各プロセッサエレメントの特権レベルデータがMビットからなる場合、特権レベル記憶回路56は、少なくともM×Nビットの記憶容量を有する。特権レベル記憶回路56に記憶されている特権レベルデータは、制御回路53の制御に応じて書き換えることができる。例えば、何れかのプロセッサエレメントが特権レベルデータが変更した場合に、受信回路51により、当該特権レベルの変更を知らせる通知信号を受信したとき、制御回路53は受信信号に応じて特権レベル記憶回路56に対応する特権レベルデータの書き換え指示を出力し、これに応じて特権レベル記憶回路56に記憶された所定の特権レベルデータが書き換えられる。
【0033】
図4〜図6は、それぞれ各プロセッサエレメント20−1,20−2,…,20−N、各プロセッサエレメントに設けられた調停器30−1,30−2,…,30−3およびバス調停回路50の動作手順を示すフローチャートである。以下、これらのフローチャートを参照しつつ、それぞれプロセッサエレメント、調停器およびバス調停回路50の動作について説明する。
【0034】
まず、図4を参照しながら、プロセッサエレメントの動作手順について説明する。
バスを使用するプロセッサエレメントは、まず、ステップ100に示すように、そのプロセッサエレメントに設けられている調停器を介して、バス10に自分の持つ特権レベルデータの上位2ビットとデータ“1”の計3ビットのデータから形成されたバス要求値をバス要求信号とともにバス10に送信する。例えば、特権レベルが2進数で“10010001”のとき、要求値生成回路34によって、バス要求値“101”が生成され、さらに送信回路によって、バス要求信号とともに当該バス要求値がバス10に送信される。
【0035】
すべてのプロセッサエレメントにバス要求値のビット数分だけのバス信号線が割り当てられているため、異なるプロセッサエレメントが同じ信号線に重なってバス要求値を送信することにはならない。
即ち、プロセッサエレメントの数をNとし、バス要求値が3ビットのデータで構成されるとすると、バス10の幅は、(N×3)ビット以上であるとする。このため、複数のプロセッサエレメントから同時にバス10にバス要求値を送信することが可能である。
【0036】
次に、ステップ110において、バス調停回路50またはプロセッサエレメント自身の調停器からの使用許可信号を待つ。バス調停回路50またはプロセッサエレメント自身の調停器の何れかから許可信号を得れば、そのプロセッサエレメントはバス10を使用できるようになり、調停は終了する。ここで、プロセッサエレメント自身の調停器とは、図1において、例えば、プロセッサエレメント20−1の場合は調停器30−1であり、プロセッサエレメント20−2の場合は調停器30−2、プロセッサエレメント20−Nの場合は調停器30−Nである。
【0037】
図5は、各プロセッサエレメント毎に設けられた調停器の動作を示すフローチャートである。
図示のように各々の調停器は、自分のプロセッサエレメントがバスの使用を要求する場合に動作をはじめる。ここで、自分のプロセッサエレメントとは、調停器30−1の場合はプロセッサエレメント20−1、調停器30−2の場合はプロセッサエレメント20−2、調停器30−Nの場合はプロセッサエレメント20−Nである。
【0038】
まず、ステップ200において、調停器はバス10を監視し、他のプロセッサエレメントが送信したバス要求値を得る。そして、ステップ210において、バス要求値を出したプロセッサエレメントが自分のプロセッサエレメントのみであるか、もしくは、自分のプロセッサエレメントが出したバス要求値が他のどのプロセッサエレメントが出したバス要求値よりも大きいかどうかを調べる。バス要求値を送信したのが自分のプロセッサエレメントのみであり、または自分のプロセッサエレメントが送信したバス要求値が他のどのプロセッサエレメントが送信したバス要求値よりも大きい場合、ステップ220の処理によって、自分のプロセッサエレメントにバス10使用の許可信号を出力する。そうでなければ処理が終了する。
【0039】
図6は、バス調停回路50の動作を示すフローチャートである。図示のように、バス調停回路50は、ある一つ以上のプロセッサエレメントがバス10にバス要求値を送信すると動作がはじまる。まず、ステップ300において、バス調停回路がバス10を監視し、プロセッサエレメントがバス10に送信したバス要求値をすべて読み取る。バス要求値が0以上のプロセッサエレメントに対応する特権レベルの値を比較し、最大値を持つものを調べる。
【0040】
ステップ310で、特権レベル最大のものが複数あればステップ320の処理を行ない、1つしかなければステップ330においてそのプロセッサエレメントにバス使用の許可信号を出力し、処理が終了する。このとき、ステップ330を実行せず、処理を終了してもよい。即ち、バス使用を要求したプロセッサエレメントが一つのみの場合には、プロセッサエレメントは、そのプロセッサエレメントに属している調停器によりバス使用が許可が得られ、バス10の使用を開始するので、バス調停回路50から改めてバス使用許可を出力する必要がない。
【0041】
特権レベル最大のものが複数ある場合、ステップ320の処理に進む。ステップ320においては、最大値を持つプロセッサエレメントから、巡回優先順位に基づいて1つのプロセッサエレメントを選択する。そして、ステップ330において、選択されたプロセッサエレメントにバス使用の許可信号を出力し、処理が終了する。なお、バス調停回路50における決定よりも各プロセッサエレメントごとの調停器による決定のほうが優先されるため、どれか一つの調停器が許可信号を出すと、バス調停回路50の処理が終了する。
【0042】
ここで、例えば、調停器20−1の特権レベルデータが“10001000”、調停器20−2の特権レベルデータが“01110000”、調停器20−Nの特権レベルデータが“11000000”であるとし(すべて2進数表記)、且つプロセッサエレメント20−1,20−2と20−Nの三つが同時にバス使用するバス要求信号をバス10に出力する場合を考える。この場合、それぞれのプロセッサエレメントがバス10にバス要求値を出力する。例えば、プロセッサエレメント20−1はバス要求値“101”、プロセッサエレメント20−2はバス要求値“011”、さらにプロセッサエレメント20−Nは要求値“111”をそれぞれバス10に出力する。このために、三つの要求値“101”、“011”、“111”のうち、要求値“111”が最大であり、かつ、唯一であるので、プロセッサエレメント20−Nに設けられている調停器30−Nが図5のフローチャートにおけるステップ220の処理においてバス使用の許可信号をプロセッサエレメント30−Nに出力するので、プロセッサエレメント20−Nはバス10を使用可能となる。これと同時に、調停器30−Nの調停処理は終了する。
【0043】
以上説明したように、本実施形態によれば、複数のプロセッサエレメントは単一のバス10を用いて、相互に情報の伝達を行うマルチプロセッサシステムにおいて、バス10を使用するプロセッサエレメントはバス要求信号と自分の特権レベルに応じたバス要求値をバス10に送信する。各プロセッサエレメント毎に設けられた調停器は、自分のプロセッサエレメントがバスの使用を要求したとき、バスの使用状況および自分のプロセッサエレメントの特権レベルに応じて、バス使用の可否を決定する。バスに接続されている共通のバス調停回路50は、バス10を監視しつつ、バス10にバス要求信号が送信されたとき、バスの使用状況およびバスを要求したプロセッサエレメントの特権レベルに応じて、バス10を使用するプロセッサエレメントを決定するので、バスの使用権の決定を高速に行うことができ、単一のバスを用いたマルチプロセッサシステムの通信の高速化を実現できる。
【0044】
なお、上述した例ではバス10はプロセッサエレメントのみしか接続していないが、本発明はこれに限定されるものではなく、バス10にプロセッサエレメント以外の他のモジュール、例えば、マルチプロセッサを構成するユニットで、メモリ等が接続してもよい。
また、各プロセッサエレメントが特権レベルを保持しているが、当該特権レベルを示すデータのすべてのビットを保持する必要はなく、バス使用要求時バスに送信するバス要求値を生成するのに必要なビット数分だけ持てばよい。例えば、上述した実施形態に述べたように、プロセッサエレメントがバスを要求するとき、バス要求信号に伴い特権レベルデータの上記2ビットと“1”を結合した3ビットのバス要求値をバスに出力するので、各プロセッサエレメントに、少なくとも特権レベルデータの上位2ビットを保持すればよい。
【0045】
さらに、バス10に接続されている共通のバス調停回路50において、バス使用要求を送信したプロセッサエレメントのうち、特権レベル最大のものが複数ある場合に、巡回優先順位に基づいて一つのプロセッサエレメントを選択しているが、この選択は別の方法によって行ってもよい。また、特権レベル最大のものを選ぶ必要もなく、例えば、疑似的に特権レベル最大のものを選択してもよい。また、バス10を使用するプロセッサエレメントはバス10に、自分の持つ特権レベルデータの上位2ビットからなる3ビットのバス要求値を送信しているが、このビット数はいくつでもよい。ただし、0以上で、且つ特権レベルデータのビット数またはそれ以下のビット数を持つデータを送信するものとする。
【0046】
また、各プロセッサエレメントの特権レベルデータは、例えば、バス調停回路50によりそれぞれ設定することができ、バス調停回路50は、バス10を介して、各プロセッサエレメントに特権レベルデータを設定する制御信号を送信することもできる。さらに、各プロセッサエレメントがバス10を介して任意のプロセッサエレメントに特権レベルデータを設定する制御信号を送信することができる。また、プロセッサエレメントは直接自分の特権レベルデータを設定することもできる。プロセッサエレメントの特権レベルデータが変更されたとき、バス調停回路50が保持する特権レベルデータも変更される。また、各プロセッサエレメントの特権レベルデータは、各プロセッサエレメント毎に設けられた調停器に記憶してもよい。この場合に、バス10を使用するプロセッサエレメントは、調停器を介してバス10にバス要求信号と自分の特権レベルに応じたバス要求値を送信することができる。
【0047】
【発明の効果】
以上説明したように、本発明のマルチプロセッサおよびそのバス調停方法によれば、各プロセッサエレメントごとに調停器が設けられているため、バスを使用するプロセッサエレメントを唯一に選択できれば即座にそれを決定し、プロセッサエレメントに伝えることができ、高速な調停を実現できる。
また、バスを使用するプロセッサエレメントは、バス要求信号を送信する際に、特権レベルの情報の一部、例えば、特権レベルデータの一部からなるバス要求値をバスに送信するため、バス調停回路でバスを使用するプロセッサエレメントを決定できる可能性が高い。さらに、バスを使用するプロセッサエレメントが送信するバス要求値のビット数を大きくすれば、各プロセッサエレメント毎に設けられた調停器で決定できる確率が高くなり、共通のバス調停回路で決定する場合よりも調停にかかる時間を短くすることができる。
各々のプロセッサエレメントとは独立した共通のバス調停回路を持つため、複雑な調停を行っても、このバス調停回路のみの回路が大きくなるだけで、個々のプロセッサエレメントに設けられた調停器には影響を与えない。即ち、複雑なアルゴリズムを持つ調停回路の実装が可能となる。また、各プロセッサエレメントの調停器が対応するプロセッサエレメントの特権レベルデータのみを保持し、すべてのプロセッサエレメントの特権レベルを保持する必要がなく、バス調停回路が保持すればよいため、特権レベルの変更があった場合、バス調停回路のみにそれを伝えればよく、バスの通信負荷を低減できる利点がある。
【図面の簡単な説明】
【図1】本発明に係るマルチプロセッサの一実施形態を示す回路図である。
【図2】プロセッサエレメントに設けられている調停器の構成を示す回路図である。
【図3】共通のバス調停回路の構成を示す回路図である。
【図4】プロセッサエレメントの動作を示すフローチャートである。
【図5】プロセッサエレメント毎に設けられた調停器の動作を示すフローチャートである。
【図6】バス調停回路の動作示すフローチャートである。
【図7】単一バスのマルチプロセッサの構成を示す概念図である。
【図8】集中型調停回路を有するマルチプロセッサの構成例を示す回路図である。
【図9】分散型調停回路を有するマルチプロセッサの構成例を示す回路図である。
【符号の説明】
10…バス、20−1,20−2,…,20−N…プロセッサエレメント(PE)、30−1,30−2,…,30−N…調停器、40…調停器、50…バス調停回路。
Claims (9)
- 複数のプロセッサエレメントがそれぞれ独立に動作し、共通のバスを用いて情報の伝達を行うマルチプロセッサであって、
上記各プロセッサエレメントは、
上記プロセッサエレメントがバスを使用するとき、当該プロセッサエレメントの特権レベルに応じたバス要求値を生成する要求値生成回路と、
上記プロセッサエレメントがバスを使用するとき、バス要求信号と上記バス要求値を上記バスに送信する送信回路と、
上記プロセッサエレメントが上記バス要求信号を送信したとき、上記バスの使用状況および上記バス要求信号を送信したプロセッサエレメントのバス要求値に応じて、バス使用の可否を判断する制御回路と、
を有する調停器を有し、
さらに、上記マルチプロセッサは、
上記バスに接続され、上記バスに複数のプロセッサエレメントから上記バス要求信号が送信された、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定出来ない場合に、バス使用状況または上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定するバス調停回路
を有するマルチプロセッサ。 - 上記制御回路は第1の記憶回路を有し、該第1の記憶回路に記憶されている上記特権レベルデータを書き換える
請求項1記載のマルチプロセッサ。 - 上記バス調停回路は、上記バスから複数のプロセッサエレメントの上記調停器からの上記バス要求信号を受信したとき、上記バス要求信号を送信した各々のプロセッサエレメントの特権レベルに応じて、バスを使用すべきプロセッサエレメントを判断する特権レベル判断回路を有する
請求項1記載のマルチプロセッサ。 - 上記バス調停回路は、1以上の上記各プロセッサエレメントの上記要求値生成回路が上記バスにバス要求値を送信したときに動作し、上記制御回路が上記バスに接続されている各プロセッサエレメントの特権レベルデータを記憶する第2の記憶回路を有する
請求項1記載のマルチプロセッサ。 - 上記バス調停回路は、上記第2の記憶回路に記憶されている上記各プロセッサエレメントの特権レベルデータを書き換える制御回路を有する
請求項4記載のマルチプロセッサ。 - 単一のバスに接続されている複数のプロセッサエレメントに対して、バスの使用権を決定するバス調停方法であって、
各プロセッサエレメント毎にバスの使用の可否を判断する制御回路を設け、
バスを使用するプロセッサエレメントによりバス要求信号と当該プロセッサエレメントの特権レベルに応じたバス要求値を上記バスに送信し、
プロセッサエレメントに設けられた上記制御回路により、バスの使用状況および上記プロセッサエレメントからの上記バス要求値に応じて、上記プロセッサエレメントに対してバス使用の可否を決定し、
上記バスに接続され、上記複数のプロセッサエレメントから共有されるバス調停回路を設け、
上記バスに複数の上記プロセッサエレメントからバス要求信号が送信され、かつ上記制御回路が優先的にバスの使用をする一のプロセッサエレメントを特定できない場合に、上記バス調停回路によりバスの使用状況および上記バス要求信号を送信した各プロセッサエレメントの特権レベルに応じて、バスを使用するプロセッサエレメントを決定する
マルチプロセッサのバス調停方法。 - 上記各プロセッサエレメントの特権レベルデータは、変更可能であり、外部からの指示信号もしくは上記プロセッサエレメントからの指示信号に応じて上記の特権レベルデータが変更される
請求項6記載のマルチプロセッサのバス調停方法。 - 上記バス調停回路は、上記各プロセッサエレメントの特権レベルデータを記憶する
請求項6記載のマルチプロセッサのバス調停方法。 - 上記バス調停回路は、何れかのプロセッサエレメントの特権レベルデータが変更されたとき、それに応じて上記記憶されているプロセッサエレメントの特権レベルを変更する
請求項8記載のマルチプロセッサのバス調停方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07579599A JP4099561B2 (ja) | 1998-05-14 | 1999-03-19 | マルチプロセッサおよびそのバス調停方法 |
US09/310,942 US6339807B1 (en) | 1998-05-14 | 1999-05-13 | Multiprocessor system and the bus arbitrating method of the same |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10-131842 | 1998-05-14 | ||
JP13184298 | 1998-05-14 | ||
JP07579599A JP4099561B2 (ja) | 1998-05-14 | 1999-03-19 | マルチプロセッサおよびそのバス調停方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000035954A JP2000035954A (ja) | 2000-02-02 |
JP4099561B2 true JP4099561B2 (ja) | 2008-06-11 |
Family
ID=26416946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07579599A Expired - Fee Related JP4099561B2 (ja) | 1998-05-14 | 1999-03-19 | マルチプロセッサおよびそのバス調停方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6339807B1 (ja) |
JP (1) | JP4099561B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430640B1 (en) * | 1997-03-07 | 2002-08-06 | Virtual Resources Communications, Inc. | Self-arbitrating, self-granting resource access |
KR100555501B1 (ko) | 2003-06-26 | 2006-03-03 | 삼성전자주식회사 | 동적으로 버스 점유 우선 순위를 정하는 버스 중재기 및그 버스 중재 방법 |
WO2006027791A1 (en) * | 2004-09-08 | 2006-03-16 | Centre For Development Of Telematics | A novel architecture for a message bus |
US20070094664A1 (en) * | 2005-10-21 | 2007-04-26 | Kimming So | Programmable priority for concurrent multi-threaded processors |
EP2290552A4 (en) * | 2008-06-03 | 2012-08-15 | Fujitsu Ltd | DATA TRANSFER DEVICE, INFORMATION PROCESSING DEVICE AND CONTROL PROCEDURE |
US8706936B2 (en) | 2011-11-14 | 2014-04-22 | Arm Limited | Integrated circuit having a bus network, and method for the integrated circuit |
US9892067B2 (en) | 2015-01-29 | 2018-02-13 | International Business Machines Corporation | Multiprocessor cache buffer management |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5168568A (en) * | 1989-02-06 | 1992-12-01 | Compaq Computer Corporation | Delaying arbitration of bus access in digital computers |
EP0509055A4 (en) * | 1990-01-05 | 1994-07-27 | Maspar Computer Corp | Parallel processor memory system |
US5237567A (en) * | 1990-10-31 | 1993-08-17 | Control Data Systems, Inc. | Processor communication bus |
US5555413A (en) * | 1995-02-17 | 1996-09-10 | International Business Machines Corporation | Computer system and method with integrated level and edge interrupt requests at the same interrupt priority |
US5528767A (en) * | 1995-03-21 | 1996-06-18 | United Microelectronics Corp. | Programmable multi-level bus arbitration apparatus in a data processing system |
US5805839A (en) * | 1996-07-02 | 1998-09-08 | Advanced Micro Devices, Inc. | Efficient technique for implementing broadcasts on a system of hierarchical buses |
US5754877A (en) * | 1996-07-02 | 1998-05-19 | Sun Microsystems, Inc. | Extended symmetrical multiprocessor architecture |
US5996037A (en) * | 1997-06-03 | 1999-11-30 | Lsi Logic Corporation | System and method for arbitrating multi-function access to a system bus |
-
1999
- 1999-03-19 JP JP07579599A patent/JP4099561B2/ja not_active Expired - Fee Related
- 1999-05-13 US US09/310,942 patent/US6339807B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000035954A (ja) | 2000-02-02 |
US6339807B1 (en) | 2002-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100899951B1 (ko) | 캐시 메모리 버스트 싸이클 동안 버스 중재를 제어하는시스템 및 방법 | |
EP0118731B1 (en) | Distributed-structure circuit for arbitrating the access requests to the bus of a multiprocessor system | |
US5255238A (en) | First-in first-out semiconductor memory device | |
EP0550147B1 (en) | Method and apparatus for arbitration based on the availability of resources | |
KR20200139829A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
US7051135B2 (en) | Hierarchical bus arbitration | |
JPH06261052A (ja) | 共用バスのフロー制御装置 | |
JP3206126B2 (ja) | 分散クロスバー・スイッチ・アーキテクチャにおけるスイッチング・アレイ | |
JP4099561B2 (ja) | マルチプロセッサおよびそのバス調停方法 | |
JP4195368B2 (ja) | センダ・レシーバ要求再施行方法および装置 | |
KR20200138411A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
US7814253B2 (en) | Resource arbiter | |
US20040193767A1 (en) | Method and apparatus for bus access allocation | |
US4922410A (en) | Input/output system capable of allotting addresses to a plurality of input/output devices | |
KR20200138413A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
JP2002312309A (ja) | 調停回路及び調停方法 | |
KR100757791B1 (ko) | 공유 자원 중재 프로토콜 방법 및 중재기 | |
KR20200138414A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
KR20200139256A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN113285880B (zh) | 多播路由方法、互连设备、网状网络系统及其配置方法 | |
JP2004213666A (ja) | Dmaモジュールとその操作方法 | |
JP3082297B2 (ja) | タスク制御方式 | |
KR100606701B1 (ko) | 계층적 구조의 중재 시스템 및 이를 이용한 중재 방법 | |
JP2518910B2 (ja) | 記憶制御装置のアクセス制御方式 | |
JP2878160B2 (ja) | 競合調停装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080111 |
|
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: 20080219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080303 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |