(57)【特許請求の範囲】
【請求項１】
入力データが書き込まれると該入力データに従った処理結果を出力データとして生成する補助データ処理装置を、複数のデータ処理装置にて共有する際に、該データ処理装置間で前記補助データ処理装置へのアクセス権を調停するアクセス権調停装置であって、
前記データ処理装置が前記補助データ処理装置に対して前記入力データを書き込むための書込信号の送出開始、または前記出力データを読み出すための読出信号の送出開始により設定され、前記出力データを読み出すための読出信号の送出完了により解除される処理要求を前記データ処理装置毎に設定する処理要求設定手段と、
該処理要求設定手段による処理要求の設定時に、既に他のデータ処理装置の処理要求が設定されている場合、新たに設定された処理要求に対応するデータ処理装置をホールド状態にするホールド設定手段と、
前記処理要求設定手段により処理要求が設定されたデータ処理装置のうち非ホールド状態にあるものを、前記補助データ処理装置へのアクセス権を有する第１のデータ処理装置として、該第１のデータ処理装置の処理要求の解除時に、他の処理要求が存在すればそのいずれか一つを選択し、該選択した処理要求に対応する第２のデータ処理装置をホールド状態から解放することにより、該第２のデータ処理装置に前記補助データ処理装置へのアクセス権を与えるホールド解放手段と、
前記第１のデータ処理装置の処理要求が解除された後、予め設定された一定期間内に、該第１のデータ処理装置の処理要求が再度設定された場合に、前記ホールド解放手段の動作を禁止するホールド解放禁止手段と、
前記データ処理装置のいずれかを指定する装置指定手段と、
該装置指定手段の指定と前記第１のデータ処理装置とが不一致である場合、前記ホールド解放禁止手段の動作を禁止する第１の連続アクセス制限手段と、
を備えることを特徴とするアクセス権調停装置。
【請求項２】
請求項１記載のアクセス権調停装置において、
前記第１のデータ処理装置にアクセス権が連続して与えられた場合、その連続回数をカウントし、該カウント値が予め設定された上限回数に達すると、前記ホールド解放禁止手段の動作を禁止する第２の連続アクセス制限手段を備えることを特徴とするアクセス権調停装置。
【請求項３】
前記装置指定手段の指定内容を変更する指定変更手段を備えることを特徴とする請求項１又は請求項２に記載のアクセス権調停装置。
【請求項４】
前記指定変更手段は、予め設定された切換順序に従って前記指定内容を定期的に変更することを特徴とする請求項３記載のアクセス権調停装置。
【請求項５】
前記指定変更手段が前記指定内容の変更に用いる前記切換順序を変更する順序変更手段を備えることを特徴とする請求項４記載のアクセス権調停装置。
【請求項６】
請求項１ないし請求項５いずれかに記載のアクセス権調停装置において、
前記処理要求の優先度を設定する要求優先度設定手段を備え、
前記ホールド解除手段は、前記処理要求が複数存在する場合、前記要求優先度設定手段にて設定された優先度が最も高い処理要求に対応するデータ処理装置を、ホールド状態から解放することを特徴とするアクセス権調停装置。
【請求項７】
請求項６記載のアクセス権調停装置において、
前記要求優先度設定手段は、前記処理要求の発生順に従って優先度を設定することを特徴とするアクセス権調停装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のデータ処理装置にて補助データ処理装置を共有する際に、データ処理装置間で補助データ処理装置へのアクセス権を調停するアクセス権調停装置に関する。
【０００２】
【従来の技術】
従来より、複数のプロセッサ（データ処理装置）を並列動作させるマルチプロセッサシステムでは、各プロセッサが共通に使用するデータを格納するためのメモリや浮動小数点演算装置等の高価なコプロセッサ（補助データ処理装置）といった周辺装置を共有する場合がある。以下、このような周辺装置を共有周辺装置という。
【０００３】
この場合、複数のプロセッサが、同じ共有周辺装置への書込を同時に行う等してデータが破壊されてしまうことのないように、共有周辺装置へのアクセス権をいずれかのプロセッサに排他的に付与するための調停が必要となる。
このようなアクセス権の調停は、各プロセッサから共有周辺装置へのアクセス要求を受け付けて、アクセス要求が競合した場合に、アクセス権を与えるプロセッサを選択すると共に、競合する他のプロセッサに対して動作停止を指示するためのホールド信号を送出する調停回路を設けてハードウェア的に調停を行う方法と、共有周辺装置の使用状態を示すフラグを設け、アクセスの競合が発生しないように各プロセッサがフラグの照会，操作を行うことでソフトウェア的に調停を行う方法とが知られている。
【０００４】
ところで、共有周辺装置としてコプロセッサ（例えば浮動小数点演算装置等）を用いる場合、プロセッサによる被演算データの書込、コプロセッサによる演算処理の実行、プロセッサによる演算結果データの読出という一連の処理が必要となる。この一連の処理の途中に、他のプロセッサからコプロセッサに対して新たなデータの書込が行われると、処理シーケンスが狂ってしまい、正しい処理結果が得られない場合がある。
【０００５】
しかし、ハードウェア的な調停方法では、各プロセッサは共有周辺装置へのアクセスを１回終了する毎に、一旦アクセス権を解放し、改めてアクセス要求を行うのが一般的である。つまり、共有周辺装置としてコプロセッサを用いる場合には、一連の動作が終了するまでの間、単一のプロセッサにアクセス権を占有させるための仕組みが必要となる。
【０００６】
これを実現するものとして、例えば特開平５−２８９９８７号公報には、アクセス終了後、一定の優先期間内に、同じプロセッサから連続してアクセス要求が出された場合に、そのプロセッサに対して引き続きアクセス権を与えるよう制御する装置が開示されている。
【０００７】
【発明が解決しようとする課題】
しかし、このような装置では、コプロセッサでの演算時間、即ち被演算データの書込後、演算結果データの読出が可能となるまでの時間間隔が長くなると、上述の優先期間をオーバーしてしまい、演算結果データの読出を行う前にコプロセッサのアクセス権が、他のプロセッサにアクセス権が移ってしまう場合があるという問題があった。
【０００８】
なお、このような事態は優先期間を十分に長くすれば防止できる。しかし、この装置では、他のプロセッサにアクセス権を移すには、必ず優先期間の間待機しなければならないため、優先期間を長くするほど無駄な待機時間が増大してしまう。また、優先期間を長くすると、連続アクセスを必要としない場合にも、単一のプロセッサがアクセス権を占有する可能性が高くなり、競合する他のプロセッサがホールド状態に保持される時間が増大してしまうため、システム全体としての処理効率が低下してしまうという問題があった。
【０００９】
更に、このようなアクセス権の占有が発生した場合には、一定時間内に応答を返す必要のある処理等、リアルタイム性が要求される処理を実行する際の障害となり、処理の応答性が低下するという問題もあった。
一方、ソフトウェア的に調停する場合、フラグの操作のみで、特定のプロセッサに任意期間だけアクセス権を占有させることが可能であるが、アクセス権を獲得，解放する際には、必ずフラグの照会，操作のための処理が必要となるため、その分、処理効率が低下してしまうという問題があった。
【００１０】
本発明は、上記問題点を解決するために、複数のデータ処理装置により共有される補助データ処理装置を効率良く使用でき、しかも補助データ処理装置へのアクセス権が一つのデータ処理装置によって必要以上に長く占有されてしまうことのないアクセス権調停装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するための発明である請求項１記載のアクセス権調停装置では、データ処理装置が補助データ処理装置に対して入力データを書き込むための書込信号の送出開始、または出力データを読み出すための読出信号の読出開始により設定され、補助データ処理装置に対して出力データを読み出すための読出信号の送出完了により解除される処理要求を、処理要求設定手段がデータ処理装置毎に設定する。そして、この処理要求設定手段による処理要求の設定時に、既に他のデータ処理装置の処理要求が設定されている場合、ホールド設定手段が、この新たに設定された処理要求に対応するデータ処理装置をホールド状態にする。
【００１２】
更に、ホールド解放手段が、処理要求が設定されているデータ処理装置のうち非ホールド状態にあるものを、補助データ処理装置へのアクセス権を有する第１のデータ処理装置として、この第１のデータ処理装置の処理要求の解除時に、他の処理要求が存在すればそのいずれか一つを選択し、選択した処理要求に対応する第２のデータ処理装置をホールド状態から解放する。これにより、補助データ処理装置へのアクセス権は、第１のデータ処理装置から第２のデータ処理装置に移る。
【００１３】
つまり、本発明のアクセス権調停装置では、補助データ処理装置への書込信号により処理要求を設定し、この処理要求に基づいてアクセス権を付与したデータ処理装置に、以後、そのデータ処理装置からの読出信号の送出が完了するまでの間、補助データ処理装置へのアクセス権を無条件で占有させている。
【００１４】
従って、本発明によれば、補助データ処理装置から正常な処理結果を得るために必要な一連の動作（入力データの書込で開始され出力データの読出で終了）の途中で、他のデータ処理装置により新たな入力データが補助データ処理装置に書き込まれてしまうことがなく、補助データ処理装置を使用する各データ処理装置は、補助データ処理装置から信頼性の高い処理結果（出力データ）を得ることができる。
【００１５】
また、本発明によれば、連続アクセスを行うか否かの判断のために、従来装置のような優先期間を設ける必要がなく、必要最小限の時間でアクセス権の調停が行われるため、複数のデータ処理装置に、補助データ処理装置を効率良く利用することができる。しかも、補助データ処理装置に対する一連の動作が終了する毎にアクセス権が解放されるため、特定のデータ処理装置が必要以上にアクセス権を占有し続けてしまうことを確実に防止できる。
【００１６】
更に、本発明では、アクセス権の調停を、各データ処理装置からの書込信号及び読出信号に基づいて行っており、他に調停専用の信号を用いる必要がないため、装置構成を簡易化できる。
【００１８】
なお、本発明では、処理要求設定手段は、書込信号の送出開始だけでなく、読出信号の送出開始によっても処理要求の設定を行うため、書込信号を伴わない単独の読出信号に対してもアクセス権の調停を行うことができる。
【００１９】
また、本発明のアクセス権調停装置では、第１のデータ処理装置の処理要求の解除後、予め設定された一定期間内に、この第１のデータ処理装置の処理要求が設定された場合、ホールド解放禁止手段が、ホールド解放手段の動作を禁止することにより、第１のデータ処理装置に連続してアクセス権を与えている。
【００２０】
従って、本発明のアクセス権調停装置によれば、補助データ処理装置に読出信号を送出後、一定期間内に、補助データ処理装置に書込信号を送出することにより、同一データ処理装置により補助データ処理装置を連続的に使用することが可能となる。なお、本発明における上記一定期間は、従来装置の優先期間とは異なり、補助データ処理装置の動作とは無関係に設定できるため、必要最小限の長さ（例えば１クロック期間）があればよく、処理効率を大きく劣化させてしまうことがない。
【００２１】
また、本発明のアクセス権調停装置では、第１の連続アクセス制限手段が、アクセス権を有するデータ処理装置（第１のデータ処理装置）と、装置指定手段にて指定されたデータ処理装置とが不一致である場合、ホールド解放禁止手段の動作を禁止する。
つまり、本発明のアクセス権調停装置によれば、装置指定手段にて指定されたデータ処理装置に対してのみ、補助データ処理装置へのアクセス権の連続付与が可能となるため、重要な処理（例えばリアルタイム処理）等を実行しているデータ処理装置を装置指定手段にて指定することにより、システム全体から見た各データ処理装置の実行状態を最適化することができる。
【００２２】
次に、請求項２記載のアクセス権調停装置では、第１のデータ処理装置にアクセス権が連続して与えられた場合、第２の連続アクセス制限手段が、その連続回数をカウントし、このカウント値が上限回数に達すると、ホールド解放禁止手段の動作を禁止する。
【００２３】
つまり、本発明のアクセス権調停装置によれば、同一データ処理装置に対してアクセス権が連続して付与される回数が、上述の上限回数に制限されるため、アクセス権が必要以上に占有されてしまうことを確実に防止できる。
【００２４】
なお、装置指定手段の指定内容は、請求項３記載のように、指定変更手段によって変更できるように構成してもよい。具体的には、例えば、請求項４記載のように、予め設定された切換順序に従って定期的に変更するようにしてもよいし、外部からの設定や、所定のデータ処理装置からの指示により任意に変更できるようにしてもよい。
【００２５】
特に、予め設定された切換順序に従って定期的に変更する場合、請求項５記載のように、順序変更手段によって切換順序を変更できるように構成していもよい。この場合、補助データ処理装置へのアクセス権を、各データ処理装置に対して様々な割合で割り当てることができ、その時々に応じて個々のデータ処理装置の処理状態を柔軟に変更することができる。
【００２６】
次に、請求項６記載のアクセス権調停装置では、処理要求の優先度を設定する要求優先度設定手段を備え、ホールド解除手段は、対象となる処理要求が複数存在する場合、要求優先度指定手段にて指定された優先度が最も高い処理要求に対応するデータ処理装置を、ホールド状態から解放する。
【００２７】
従って、本発明のアクセス権調停装置では、次にアクセス権を付与すべきデータ処理装置を、処理要求の優先度に従って決めることができる。なお、要求優先度指定手段は、例えば、請求項７記載のように、処理要求の発生順に従って優先度を設定するように構成すればよい。また、処理要求の生成元であるデータ処理装置に対応させて固定的な優先度を設定してもよい。
【００３０】
【発明の実施の形態】
以下に本発明の実施形態を図面と共に説明する。
［第１実施形態］
図１は、本発明が適用されたマルチプロセッサシステムの概略構成を表すブロック図である。
【００３１】
図１に示すように、マルチプロセッサシステムは、それぞれ独立に動作するデータ処理装置としての一対のプロセッサＰ０，Ｐ１と、両プロセッサＰ０，Ｐ１が共有する補助データ処理装置としてのコプロセッサＣＰと、プロセッサＰ０，Ｐ１のいずれかにコプロセッサＣＰへのアクセス権を与えるための調停を行う調停装置１０とを備えている。そして、調停装置１０は、個別バスＢＳｉ（ｉ＝０，１）を介して各プロセッサＰｉに接続されていると共に、共通バスＢＳＣを介してコプロセッサＣＰに接続されている。
【００３２】
このうち、個別バスＢＳｉは、各プロセッサＰｉとの間でデータＤＴｉを入出力するためのデータバス、及び各プロセッサＰｉが供給するアドレス信号ＡＤｉ，リード信号ＲＤｉ，ライト信号ＷＲｉを取り込むための各種制御信号線からなり、一方、共通バスＢＳＣは、コプロセッサＣＰとの間でデータＤＢＣを入出力するためのデータバス、及びコプロセッサＣＰに対してアドレス信号ＡＤＣ，リード信号ＲＤＣ，ライト信号ＷＲＣを供給するための各種制御信号線からなる。
【００３３】
更に、調停装置１０は、各プロセッサＰｉに対して動作停止を指示するためのホールド信号ＨＯＬＤｉを出力し、また外部より当該調停装置１０の動作モードを指定するための動作モード設定信号ＭＯＤを入力するよう構成されている。
なお、本実施形態では、動作モード設定信号ＭＯＤにより、コプロセッサＣＰへのアクセス要求の競合時に、同一プロセッサＰｉへのアクセス権の連続付与を許すか否かを表す優先指定がプロセッサ毎に設定される他、優先指定が設定された場合にアクセス権の連続付与回数を制限するか否かを表す連続制限指定、更に制限する場合その上限回数Ｃｍａｘ  等が設定される。
【００３４】
ここで図２は、調停装置１０の内部構成を表すブロック図である。
図２に示すように、調停装置１０は、リード信号ＲＤ０，ＲＤ１，ライト信号ＷＲ０，ＷＲ１から処理要求信号ＲＱ０，ＲＱ１を生成する処理要求生成回路１２と、処理要求信号ＲＱ０，ＲＱ１及び動作モード設定信号ＭＯＤに基づいて、アクセス権を与えるべきプロセッサを選択し、これに対応した選択信号ＳＬ０．ＳＬ１を生成する選択回路１４と、処理要求信号ＲＱ０，ＲＱ１及び選択信号ＳＬ０，ＳＬ１に基づいてホールド信号ＨＯＬＤ０，ＨＯＬＤ１の設定，解除を行うホールド制御回路１６と、選択信号ＳＬ０，ＳＬ１に従って、個別バスＢＳ０，ＢＳ１と共通バスＢＳＣとの接続状態の切換、即ちを行うバス切換回路１８とを備えている。但し、本実施形態において各信号ＷＲｉ，ＲＤｉ，ＲＱｉ，ＳＬｉ，ＨＯＬＤｉは、いずれもハイレベルがアクティブ、ローレベルが非アクティブであるものとする。
【００３５】
そして、処理要求生成回路１２は、ライト信号ＷＲｉ及びリード信号ＲＤｉの論理和を生成する論理和回路ＯＲｉと、リード信号ＲＤｉを反転させる反転回路ＩＮＶｉと、論理和回路ＯＲｉの出力の立上りエッジにてセットされ、反転回路ＩＮＶｉの出力の立上りエッジにてリセットされるＳＲフリップフロップ回路ＳＦｉとからなる。
【００３６】
つまり、処理要求生成回路１２では、各プロセッサＰｉに対応して、それぞれ、ライト信号ＷＲｉ又はリード信号ＲＤｉの送出開始タイミング（立上りエッジ）でハイレベルとなり、リード信号ＲＤｉの送出終了タイミング（立下りエッジ）でロウレベルとなる処理要求信号ＲＱｉが生成される。
【００３７】
次に、ホールド制御回路１６は、処理要求信号ＲＱ０の立上りエッジにて、処理要求信号ＲＱ１の信号レベルをラッチし、選択信号ＳＬ０がアクティブの時にリセットされるよう接続されたフリップフロップ回路ＦＦ０と、処理要求信号ＲＱ１の立上りエッジにて処理要求信号ＲＱ０の信号レベルをラッチし、選択信号ＳＬ１がアクティブの時にリセットされるよう接続されたフリップフロップ回路ＦＦ１とからなる。そして、これら各フリップフロップ回路ＦＦｉの出力が、ホールド信号ＨＯＬＤｉとして出力される。
【００３８】
つまり、ホールド信号ＨＯＬＤｉは、処理要求信号ＲＱｉが設定された（アクティブとなった）時に、他方の処理要求信号ＲＱｊ（ｊ≠ｉ）が設定されていなければ、非アクティブのまま保持され、一方、他方の処理要求信号ＲＱｊが既に設定されている場合には、アクティブに変化する。これにより、プロセッサＰｉはホールド状態に遷移する。また、アクティブに設定されたホールド信号ＨＯＬＤｉは、選択信号ＳＬｉがアクティブになることにより非アクティブに戻る。これにより、プロセッサＰｉはホールド状態から解放される。
【００３９】
また、バス切換回路１８は、選択信号ＳＬｉがアクティブである場合に、個別バスＢＳｉと共通バスＢＳＣとを接続するように動作するものであり、その構成は周知のものであるため、詳細な説明は省略する。
次に、選択回路１４について説明する。但し、選択回路１４は、論理回路の組合せにより様々な方法にて簡単に実現できるため、ここでは、その動作のみを、図３，図４に示すフローチャート、及び図５，図６に示すタイミング図に沿って説明する。
【００４０】
まず、プロセッサＰｉがライト信号ＷＲｉ又はリード信号ＲＤｉを送出することにより、処理要求信号ＲＱｉがアクティブに変化した時に起動される処理について説明する。
本処理が起動されると、図３に示すように、まずＳ１１０では、他方の処理要求信号ＲＱｊ（つまり、ｉ＝０ならばｊ＝１、ｉ＝１ならばｊ＝０）が設定されているか否かを判断し、他方の処理要求信号ＲＱｊが設定されていなければ、即ち他方のプロセッサＰｊと競合していなければ、Ｓ１２０に移行し、選択信号ＳＬｉをアクティブとする（図５中の▲１▼参照）。
【００４１】
この選択信号ＳＬｉにより、バス切換回路１８では、個別バスＢＳｉと共通バスＢＳＣとが接続され、更に、ホールド制御回路１６のフリップフロップ回路ＦＦｉがリセット状態（即ちホールド信号ＨＯＬＤｉが非アクティブ状態）に保持されることにより、コプロセッサＣＰへのアクセス権がプロセッサＰｉに与えられることになる。
【００４２】
続くＳ１３０では、同一プロセッサに対するアクセス権の連続付与回数を示すカウント値Ｃを１に設定して本処理を終了する。
一方、先のＳ１１０にて、他方の処理要求信号ＲＱｊが設定されていると判定された場合、即ち、既にプロセッサＰｊがコプロセッサＣＰに対するライト信号ＷＲｊ又はリード信号ＲＤｊを送出している場合には、そのまま本処理を終了する（図５中の▲２▼参照）。但し、この時、ホールド制御回路１６の動作により、ホールド信号ＨＯＬＤｉがアクティブとなり、プロセッサＰｉはホールド状態に遷移する。
【００４３】
次に、アクセス権を有するプロセッサＰｉから送出されたリード信号ＲＤｉが非アクティブに変化することにより、処理要求信号ＲＱｉが解除された（非アクティブに変化した）時に起動される処理について説明する。
本処理が起動されると、図４に示すように、まずＳ２１０では、解除された処理要求信号ＲＱｉに対応するプロセッサＰｉが、モード設定信号ＭＯＤにより優先指定されているか否かを判断し、優先指定されていなければ、Ｓ２６０に移行して、選択信号ＳＬｉを非アクティブに設定する（図５中の▲３▼▲４▼参照）。
【００４４】
これにより、バス切換回路１８における個別バスＢＳｉと共通バスＢＳＣとの接続が解除され、プロセッサＰｉに与えられていたコプロセッサＣＰへのアクセス権が解放されることになる。
続くＳ２７０では、他の処理要求信号ＲＱｊが設定されているか否か、即ちプロセッサＰｉと競合してホールド状態とされていたプロセッサＰｊが存在するか否かを判断し、他の処理要求信号ＲＱｊが設定されていなければ（図５中の▲４▼参照）、そのまま本処理を終了する。
【００４５】
一方、他の処理要求信号ＲＱｊが設定されている場合には、Ｓ２８０に移行し、選択信号ＳＬｊをアクティブとする（図５中の▲３▼参照）。
これにより、バス切換回路１８では、個別バスＢＳｊと共通バスＢＳＣとが接続され、更に、ホールド制御回路１６の動作によりホールド信号ＨＯＬＤｊが非アクティブに変化して、プロセッサＰｊがホールド状態から解放されることにより、コプロセッサＣＰへのアクセス権がプロセッサＰｊに与えられる。
【００４６】
続くＳ２９０では、先のＳ１３０と同様に、連続アクセス回数を表すカウント値Ｃを１にセットして本処理を終了する。
先のＳ２１０にて、解除された処理要求信号ＲＱｉに対応するプロセッサＰｉが優先指定されていると判定された場合には、Ｓ２２０に移行する。
【００４７】
Ｓ２２０では、モード設定信号ＭＯＤによりアクセス権連続付与回数が制限されているか否かを判断し、制限されていなければＳ２４０に移行する。
Ｓ２４０では、予め設定された一定期間（本実施形態では１クロック期間）ＴＣの間、先に解除された処理要求信号ＲＱｉを監視し、この一定期間ＴＣ内に、処理要求信号ＲＱｉが再設定されたか否かを判断する。
【００４８】
そして、再設定されなかった場合には、Ｓ２６０に移行して、先に説明した通り、選択信号ＳＬｉ，ＳＬｊの設定，解除、カウント値Ｃのクリアを行う（他の処理要求信号ＲＱｊが設定されていない場合（Ｓ２７０−ＮＯ）は図５中の▲５▼〜▲５▼’、他の処理要求信号ＲＱｊが設定されている場合（Ｓ２７０−ＹＥＳ）は図５中の▲６▼〜▲６▼’参照）。
【００４９】
これにより、他の処理要求信号ＲＱｊが設定されていれば、コプロセッサＣＰへのアクセス権は、処理要求信号ＲＱｉの解除後、一定期間ＴＣが経過してから、プロセッサＰｊに移ることになる。
またＳ２４０にて処理要求信号ＲＱｉが再設定されたと判定された場合には、Ｓ２５０に移行して、カウント値Ｃをインクリメントした後、本処理を終了する（図６中の▲７▼〜▲７▼’参照）。これにより、コプロセッサＣＰへのアクセス権は、処理要求信号ＲＱｊの有無に関わらず、引き続きプロセッサＰｉが保有することになる。
【００５０】
先のＳ２２０にて、アクセス権連続付与回数が制限されていると判定された場合には、Ｓ２３０に移行して、カウント値Ｃが、アクセス権連続付与回数の制限値Ｃｍａｘ  より小さいか否かを判断する。
そして、カウント値Ｃが制限値Ｃｍａｘ  より小さければ（Ｃ＜Ｃｍａｘ）、Ｓ２４０に移行して、先に説明した通り、処理要求信号ＲＱｉの再設定の有無に応じた処理を行う（再設定が有る場合（Ｓ２４０−ＹＥＳ）は図６中の▲７▼〜▲７▼’、再設定が無い場合（Ｓ２４０−ＮＯ）は図６中の▲８▼〜▲８▼’参照）。
【００５１】
一方、カウント値Ｃが制限値Ｃｍａｘ  に達している（Ｓ２３０−ＮＯ）場合、処理要求信号ＲＱｉの監視を行うことなく、Ｓ２６０に移行して、先に説明した通り、選択信号ＳＬｉ，ＳＬｊの設定，解除、カウント値Ｃのクリアを行う（図６中の▲９▼参照）。
【００５２】
これににより、他の処理要求信号ＲＱｊが設定されていれば、コプロセッサＣＰへのアクセス権は、処理要求信号ＲＱｉの解除後、一定期間ＴＣの間待機することなく、直ちにプロセッサＰｊに移ることになる。
なお、本実施形態において処理要求生成回路１２が処理要求設定手段、ホールド制御回路１６がホールド設定手段、Ｓ２７０，Ｓ２８０がホールド解放手段、Ｓ２４０がホールド解放禁止手段、Ｓ２２０，Ｓ２３０が第２の連続アクセス制限手段、Ｓ２１０が第１の連続アクセス制限手段に相当する。
【００５３】
以上説明したように、本実施形態の調停装置１０では、コプロセッサＣＰへのライト信号ＷＲｉ又はリード信号ＲＤｉの送出開始で設定され、リード信号ＲＤｉの送出終了で解除される処理要求信号ＲＱｉを、各プロセッサＰｉ毎に生成し、この処理要求信号ＲＱｉに基づいて、コプロセッサＣＰへのアクセス権を付与すべきプロセッサＰｉを選択し、一旦アクセス権を付与すると、処理要求信号ＲＱｉが解除されるまでの間、アクセス権を占有させるようにされている。
【００５４】
従って、本実施形態の調停装置１０によれば、コプロセッサＣＰから正常な処理結果を得るために必要な一連の動作（入力データの書込で開始され出力データの読出で終了）の途中で、コプロセッサＣＰのアクセス権が他のプロセッサに移ってしまうことがなく、アクセス権を有するプロセッサＰｉは、コプロセッサＣＰから信頼性の高い処理結果を得ることができる。
【００５５】
また、本実施形態の調停装置１０によれば、処理要求信号ＲＱｉがアクティブである間、即ちコプロセッサＣＰに対する一連の動作が行われている間は、無条件で同一プロセッサにアクセス権を付与しているため、１回のアクセス毎に連続アクセスの可否を判定する従来装置と比較して、コプロセッサＣＰを効率良く使用することができる。
【００５６】
しかも、動作モード設定信号により優先指定の設定を行わない場合には、この一連の動作が終了する毎にアクセス権の解放が行われるため、特定のプロセッサＰｉが必要以上にアクセス権を占有し続けてしまうことを確実に防止できる。
また本実施形態では、優先指定の設定を行う場合にも、連続アクセスを許可するか否かを判定する一定期間ＴＣを、コプロセッサＣＰの動作とは無関係に短く設定できるため、この判定のために無駄になる待機時間を最小限に抑えることができ、更に、本実施形態では、アクセス権の連続付与回数の上限を制限することもできるため、特定のプロセッサＰｉによる不要なアクセス権の占有を確実に防止できる。
【００５７】
なお、本実施形態では、プロセッサにアクセス権の連続付与を許可するか否かを指定するための優先指定を、動作モード設定信号ＭＯＤによりプロセッサ毎に個別に設定できるようにされているが、いずれか一方のプロセッサＰｉのみを優先指定し、しかも、一定時間が経過する毎に、優先指定されるプロセッサＰｉを交互に切り換えるように構成してもよい。
【００５８】
この場合、図６（ｂ）に示すように、アクセス権を有するプロセッサが優先指定されている時には（図中▲７▼）、アクセス権の連続付与が行われ、一定時間が経過して、優先指定が切り替わった後に処理要求信号ＲＱｉが解除されると、他の処理要求信号ＲＱｊが設定されていれば、一定期間ＴＣを待つことなく、直ちに、この処理要求信号ＲＱｊに対応するプロセッサＰｊに対してアクセス権が付与される（図中▲９▼）ことになる。
【００５９】
但し、優先指定の切換は、同等な時間を割り当ててもよいし、不均等にしてもよく、更に、優先指定の割当時間の比率を、動作モード設定信号ＭＯＤにより設定できるように構成してもよい。そして、この場合、優先指定したプロセッサを記憶する記憶装置が装置指定手段、この記憶装置の内容を書き換える処理が指定変更手段に相当する。
［第２実施形態］
次に第２実施形態について説明する。
【００６０】
第１実施形態では、一つのコプロセッサＣＰを二つのプロセッサＰ０，Ｐ１にて共有する場合の調停装置１０について説明したが、本実施形態では、一つのコプロセッサＣＰをｎ＋１個のプロセッサＰ０〜Ｐｎにて共有する場合の調停装置２０について説明する。
【００６１】
図７に示すように、本実施形態の調停装置２０は、第１実施形態の調停装置１０と同様に、処理要求生成回路２２，選択回路２４，ホールド制御回路２６，バス切換回路２８とからなる。
処理要求生成回路２２は、リード信号ＲＤｉ及びライト信号ＷＲｉから処理要求信号ＲＱｉを生成する個別の回路は、第１実施形態の処理要求生成回路２２と全く同様であり、これがプロセッサの数に合わせてｎ＋１個設けられている。
【００６２】
ホールド制御回路２６は、ホールド信号ＨＯＬＤｉ毎に、フリップフロップ回路ＦＦｉを備え、処理要求信号ＲＱｉの立上りエッジにてデータ入力端子に印加された信号レベルをラッチし、選択信号ＳＬｉにてリセットされることは、第１実施形態のホールド制御回路１６と全く同じであるが、フリップフロップ回路ＦＦｉのデータ入力端子には、論理和回路ＯＲ１ｉを介して、処理要求信号ＲＱｉ以外の全ての処理要求信号ＲＱｊ（ｊ≠ｉ）の論理和が印加されるように構成されている。つまり、処理要求信号ＲＱｉの設定時に、他のプロセッサＰｊの処理要求信号ＲＱｊが、いずれか一つでも設定されていれば、プロセッサＰｉへのホールド信号ＨＯＬＤｉがアクティブとなる。
【００６３】
バス切換回路２８は、個別バスＢＳ０〜ＢＳｎの数が多いだけで、第１実施形態のバス切換回路１８と同様に、選択信号ＳＬｉがアクティブである場合に、個別バスＢＳｉと共通バスＢＳＣとを接続するように動作する。
そして、選択回路は、Ｓ１１０，Ｓ２７０のＲＱｊを、ＲＱｉ以外の全ての処理要求とし、Ｓ２８０では、ＲＱｊのうち、最も優先度の高い処理要求信号ＲＱｋに対応した選択信号ＳＬｋを、アクティブにするものとして考える以外は、全く同様である。
【００６４】
但し、ここでは、処理要求信号ＲＱの優先度は、早くに設定されたものほど、高く設定されるものとする。この処理要求信号ＲＱの優先度を設定する処理が本発明の要求優先度設定手段に相当する。
このように構成された本実施形態の調停装置２０では、ｎ＋１個のプロセッサＰ０〜Ｐｎに対してコプロセッサＣＰのアクセス権を調停することができること以外は、第１実施形態の調停装置１０と全く同様の効果を得ることができる。
【００６５】
ところで、本実施形態の調停装置２０のように、調停すべきプロセッサＰ０〜Ｐｎが多数存在する場合、いずれか一つのプロセッサＰｉのみを優先指定とし、その優先指定を順次切り替えるように構成することができる。
この優先指定切換処理（本発明の指定変更手段に相当する）の一例を、図８に示すフローチャートに沿って説明する。
【００６６】
即ち、Ｓ３１０では、予め設定された所定時間が経過したか否かを判断し、経過していなければ、同ステップを繰り返し実行することで待機する。そして、所定時間が経過すると、Ｓ３２０に移行して、優先指定すべきプロセッサを表す指定値ｐをインクリメントし、続くＳ３３０では、この指定値がプロセッサの数を表すｎより大きいか否かを判断し、大きければＳ３４０に移行して指定値ｐを０にリセット後にＳ３１０に戻り、一方、小さければそのままＳ３１０に戻る。
【００６７】
これにより、所定時間の間、新たに設定されたｐにて表されるプロセッサＰｐが優先指定されることになる。
この場合、優先指定の切換は、常に一定順序に行われることになるが、例えば、予め複数の切換順を書き込んだテーブルを用意しておき、テーブルに従って切り替えを行うと共に、動作モード設定信号ＭＯＤにより、どの切換順を使用するか指定するように構成したり、状況の変化に応じて切換順を適宜変更できるように構成してもよい。この切換順を変更する処理が本発明の順序変更手段に相当する。
【００６８】
また、本実施形態では、処理要求信号ＲＱ０〜ＲＱｎが競合している場合に、その発生順に優先度を付与しているが、この優先度を上述の優先指定とリンクさせてもよい。
［第３実施形態］
次に第３実施形態について説明する。
【００６９】
本実施形態の調停装置３０は、第１実施形態の調停装置１０と一部構成が異なっているだけであるため、構成の相違する部分を中心に説明する。
但し、第１実施形態において、コプロセッサＣＰは、データの入出力を同じデータバスを用いて行っているが、本実施形態にて使用するコプロセッサＣＰａは、入力データを保持するための入力レジスタＲＧＩと、出力データを保持するための出力レジスタＲＧＯとが独立して設けられており、両レジスタＲＧＩ，ＲＧＯへの同時アクセス、即ち、先の処理での処理結果である出力データの読出と、次に処理すべき入力データの書込とを同時に行うことが可能なように構成されている。
【００７０】
また、コプロセッサＣＰへのアクセスを行う場合、各プロセッサＰ０，Ｐ１は、必ず被演算データの書込と演算結果データの読出とを対にして行うものとし、コプロセッサに対してリード信号が単独で供給されることがないものとする。
図９に示すように、本実施形態の調停装置３０では、バス切換回路１８ａが、コプロセッサＣＰａにアドレス信号ＡＤＣ，リード信号ＲＤＣ，ライト信号ＷＲＣを供給すると共に、コプロセッサＣＰａへの入力データＷＤＴと、コプロセッサＣＰａからの出力データＲＤＴとを、別々のデータバスを介して入出力するように構成されている。また、選択信号ＳＬ０，ＳＬ１が同時にアクティブにされている場合、リード信号ＲＤ及びライト信号ＷＲに従って、個別バスＢＳ０，ＢＳ１の一方を入力データＷＤＴ用のデータバスに、他方を出力データＲＤＴ用のデータバスに同時に接続するよう構成されている。
【００７１】
また、処理要求生成回路１２ａは、ライト信号ＷＲｉの立上りエッジにてセットされリード信号ＲＤｉの立上りエッジにてリセットされるＳＲフリップフロップ回路ＳＦｉのみからなる。
そして、選択回路１４ａは、図１０に示すように、処理要求信号ＲＱｉが解除された場合、これと同時に選択信号ＳＬｉが非アクティブになるのではなく、リード信号ＲＤ０の送出終了タイミング（立下りエッジ）までアクティブを保持するようにされている（図中の期間Ｘ参照）。
【００７２】
これにより、処理要求信号ＲＱｉの解除時に、他の処理要求信号ＲＱｊが設定されていれば、二つの選択信号ＳＬｉ，ＳＬｊが同時にアクティブとなり、プロセッサＰｉによるコプロセッサＣＰからのデータの読出と、プロセッサＰｊによるコプロセッサＣＰへのデータの書込とが同時に行われることになる。
【００７３】
以上説明したように、本実施形態の調停装置３０によれば、コプロセッサＣＰに対して、結果データの読出と、次に処理すべきデータの書込とを同時に行うことができるため、コプロセッサＣＰの利用効率を向上させることができる。
また、処理要求生成回路１２ａの構成が簡易なものとなるため、装置の小型化を図ることができる。
【図面の簡単な説明】
【図１】マルチプロセッサシステムの構成を表すブロック図である。
【図２】第１実施形態の調停装置の内部構成を表すブロック図である。
【図３】処理要求信号の設定時における選択回路の動作を表すフローチャートである。
【図４】処理要求信号の解除時における選択回路の動作を表すフローチャートである。
【図５】調停装置各部の動作を表すタイミング図である。
【図６】調停装置各部の動作を表すタイミング図である。
【図７】第２実施形態の調停装置の構成を表すブロック図である。
【図８】優先指定切換処理の内容を表すフローチャートである。
【図９】第３実施形態の調停装置の構成を表すブロック図である。
【図１０】調停装置各部の動作を表すタイミング図である。
【符号の説明】
１０，２０，３０…調停装置、１２，１２ａ，２２…処理要求生成回路、１４，１４ａ，２４…選択回路、１６，２６…ホールド制御回路、１８，１８ａ，２８…バス切換回路、ＢＳ０，ＢＳ１…個別バス、ＢＳＣ…共通バス、ＣＰ，ＣＰａ…コプロセッサ、ＦＦ０〜ＦＦｎ…フリップフロップ回路、ＩＮＶ０〜ＩＮＶｎ…反転回路、ＯＲ０〜ＯＲｎ，ＯＲ１０〜ＯＲ１ｎ…論理和回路、Ｐ０〜Ｐｎ…プロセッサ、ＲＧＩ…入力レジスタ、ＲＧＯ…出力レジスタ、ＳＦ０〜ＳＦｎ…ＳＲフリップフロップ回路
【図１】
0003596402.tif 000002
【図２】
0003596402.tif 000003
【図３】
0003596402.tif 000004
【図４】
0003596402.tif 000005
【図５】
0003596402.tif 000006
【図６】
0003596402.tif 000007
【図７】
0003596402.tif 000008
【図８】
0003596402.tif 000009
【図９】
0003596402.tif 000010
【図１０】
0003596402.tif 000011