(57)【要約】【課題】低優先度のプロセッサが行うバスアクセスにより高優先度のプロセッサのアクセス性能が低下されるのを抑制若する。【解決手段】第１のプロセッサ（１００）が第１の信号によって第２のプロセッサ（２００−ｋ）に調停開始要求を送信する。調停開始要求を受け取った第２のプロセッサはメモリ管理機構（２７０−ｋ）によいバスアクセスを禁止し、調停要求を受け取る前に実行していたタスクの実行を再開する。第２のプロセッサがバスアクセスを伴う命令を実行したときは、当該第２のプロセッサのメモリ管理機構が当該アクセスを中止し、例外処理を要求して、第１のプロセッサから第２の信号によって調停終了通知を受信するまで待機する。第２のプロセッサは第１のプロセッサから調停終了通知を受信すると、そのメモリ管理機構をアドレス変換可能な状態に復帰させ、タスクの実行を再開する。このタスクの実行はバスアクセスを伴う命令からの再開となる。【選択図】図１
2010079369.tif 000002
【特許請求の範囲】
【請求項１】
共有バスと、
前記共有バスに接続された第１のプロセッサと、
前記共有バスに接続された少なくとも１つ以上の第２のプロセッサと、
前記共有バスに接続され前記第１のプロセッサ及び第２のプロセッサによってアクセス可能にされる共有リソースと、を備え、
前記第２のプロセッサは前記第１のプロセッサから供給される第１の信号に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行う、データ処理システム。
【請求項２】
前記第２のプロセッサは前記第１のプロセッサから供給される第２の信号に応答して前記抑止する設定を解除する、請求項１記載のデータ処理システム。
【請求項３】
前記第２のプロセッサは、前記第１の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第２の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する、請求項２記載のデータ処理システム。
【請求項４】
前記第２のプロセッサは複数のアドレス変換テーブルリエントリを用いた連想記憶によって論理アドレスを前記共有リソースの物理アドレスに変換するメモリ管理機構を備え、
前記第２のプロセッサは、アドレス変換テーブルリエントリの全てのバリッド情報を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルリエントリに復帰することによって前記設定の解除を行う、請求項３記載のデータ処理システム。
【請求項５】
前記バリッド情報の退避先は前記共有リソースの一部に配置された前記第２のプロセッサに共通のメモリ領域である、請求項４記載のデータ処理システム。
【請求項６】
バリッド情報の退避先は第２のプロセッサ内の論理アドレス空間に配置された第２プロセッサ毎の個別の内部メモリ領域である、請求項４記載のデータ処理システム。
【請求項７】
前記第２のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記メモリ管理機構によるアクセスエラーに起因して例外を発生し、前記第２の信号に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ、請求項３乃至６の何れか１項記載のデータ処理システム。
【請求項８】
前記共有バスはバス調停器を有し、
前記バス調停器は第１のプロセッサ及び第２のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う、請求項１乃至７の何れか１項記載のデータ処理システム。
【請求項９】
１個の半導体基板に形成された請求項１乃至８の何れか１項記載のデータ処理システム。
【請求項１０】
共有バスに接続された第１のプロセッサ及び第２のプロセッサを有し、１個の半導体基板に形成されたデータプロセッサであって、
前記第２のプロセッサは前記第１のプロセッサから出力される第１の信号に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行い、
前記第２のプロセッサは前記第１のプロセッサから供給される第２の信号に応答して前記前記抑止する設定を解除する、データプロセッサ。
【請求項１１】
前記第２のプロセッサは、前記第１の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第２の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する、請求項１０記載のデータ処理システム。
【請求項１２】
前記第２のプロセッサは連想記憶によって論理アドレスを当該第２のプロセッサの外部の物理アドレスに変換するアドレス変換バッファを有し、
前記第２のプロセッサは、前記アドレス変換バッファのエントリを復帰可能に無効化することによって前記抑止する設定を行い、前記アドレス変換バッファにエントリを復帰することによって前記設定の解除を行う、請求項１１記載のデータプロセッサ。
【請求項１３】
前記アドレス変換バッファはエントリ毎にその有効性を示すバリッド情報を有し、
前記第２のプロセッサは、そのアドレス変換バッファが保有する全てのエントリのバリッド情報を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルの全てのエントリに復帰することによって前記設定の解除を行う、請求項１２記載のデータプロセッサ。
【請求項１４】
前記バリッド情報の退避先は前記バスに接続された前記第２のプロセッサに共通のメモリ領域である、請求項１３記載のデータプロセッサ。
【請求項１５】
前記バリッド情報の退避先は第２のプロセッサ内の論理アドレス空間に配置された第２プロセッサ毎の個別の内部メモリ領域である、請求項１３記載のデータプロセッサ。
【請求項１６】
前記バスはバス調停器を有し、
前記バス調停器は第１のプロセッサ及び第２のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う、請求項１０乃至１５の何れか１項記載のデータプロセッサ。
【請求項１７】
共有バスに接続された第１のプロセッサと少なくとも1個以上の第２のプロセッサとの間のバス調停方法であって、
前記第１のプロセッサが前記第２のプロセッサに第１の信号を出力する第１処理と、
前記第２のプロセッサが前記第１の信号に応答する例外処理によって前記共有バスを介するバスアクセスを自律的に抑止する設定を行ってから元の処理に復帰する第２処理と、
前記第１のプロセッサが前記第２のプロセッサに第２の信号を出力する第３処理と、
前記第２のプロセッサが前記第２の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する第４処理と、を含むバス調停方法。
【請求項１８】
前記第２のプロセッサは、前記共有バスをアクセスするとき、連想記憶によって論理アドレスを当該第２のプロセッサの外部の物理アドレスに変換するアドレス変換を行い、
前記第２処理において前記第２のプロセッサは前記アドレス変換のためのエントリを復帰可能に無効化することによって前記抑止する設定を行い、
前記第３処理において前記第２のプロセッサは前記アドレス変換のためのエントリを復帰することによって前記設定の解除を行う、請求項１７記載のバス調停方法。
【請求項１９】
前記アドレス変換のためのエントリ毎のバリッド情報を操作することによってエントリの有効性を決定し、
前記第２の処理において前記第２のプロセッサはそのアドレス変換のための全てのエントリのバリッド情報を退避してから無効化する操作を行うことによって前記抑止する設定を行い、
前記第３処理において前記第２のプロセッサは退避したバリッド情報をアドレス変換のための全てのエントリに復帰することによって前記設定の解除を行う、請求項１８記載のバス調停方法。
【請求項２０】
前記第２の処理において前記第２のプロセッサは前記バスに接続された前記第２のプロセッサに共通のメモリ領域にバリッド情報を退避する、請求項１９記載のバス調停。
【請求項２１】
前記第２の処理において前記第２のプロセッサは第２のプロセッサ内の論理アドレス空間に配置された第２プロセッサ毎の個別の内部メモリ領域に前記バリッド情報を退避する、請求項１９記載のバス調停方法。
【請求項２２】
前記第２のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記アドレス変換不能によるアクセスエラーに起因して例外を発生し、前記所定の終了要求に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ、請求項１９乃至２１の何れか１項記載のバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム及びデータプロセッサに関し、特に、バスに共通接続された複数のプロセッサ間のアクセス調停方式に関し、例えばＴＡＳ処理を行なうマルチコアプロセッサシステムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
ＬＳＩ集積技術の発展に伴い、ひとつのＬＳＩの中に多数のプロセッサを搭載することが可能になっている。複数のプロセッサを備えるＬＳＩは、ＬＳＩ内のハードウェアが通信するための通信路（バス）を備えていることが少なくない。その形態のひとつとして、複数のハードウェアでひとつのバスを共有する形態があり、そのようなバスを共有バスと呼ぶ。
【０００３】
共有バスを用いる形態では、バスに接続されたハードウェアが同時にバスを使用しないようにするため、調停という手続きが必要になる。調停では、バスを使用しようとする複数のハードウェアの中から、たとえばラウンドロビン方式や優先順位方式に基づいて、実際にバスの使用を許可するハードウェアを選択する。調停の処理は、調停器と呼ばれるハードウェアを用いて実現する方法がよく知られている。調停器の種類には、集中調停器と呼ばれる、バスに備え付けられる調停器と、分散調停器と呼ばれる、ハードウェアごとに備え付けられる調停器がある。
【０００４】
特許文献１には、ソフトウェアによって優先度を設定可能な集中調停器を用いる方式が開示されている。この方式によれば、ソフトウェアが実行時にプロセッサの優先順位を変更できるため、ソフトウェアの状態を反映した調停を実現できる。また、特許文献１では、プロセッサが行うアクセスに優先度情報を付加し、その優先度情報にしたがって調停を行う集中調停器を用いる方法が提案されている。これによって、優先順位の高いプロセッサからのアクセスに対する応答性を高めることができる。
【０００５】
特許文献２には、動的に優先順位を設定できる集中調停器と、プロセッサが実行中のタスクに応じて前記集中調停器の優先順位を設定する優先度制御部を用いる方法が開示されている。これによれば、プロセッサで実行中のタスクに応じてプロセッサの優先順位が設定されるため、タスクの実行状況に応じた調停が実現できる。
【０００６】
特許文献３には、分散調停器を用いる調停方式として、共有バスに優先度情報を付加し、各プロセッサの分散調停器が優先度情報にしたがって判断を行うことで、集中調停器のみで調停を行う場合に必要な手順を簡略化し、高速に調停を行う方法が提案されている。
【０００７】
特許文献４には、共有バスに対するアクセスを調停器によらずに行う例として、プロセッサで共有する資源に対する排他制御を、各プロセッサと個別のローカルバスで接続した装置を用いて実現するための方法が提案されている。この方法によれば、各プロセッサと個別のバスで接続された装置が、共有資源への各プロセッサのアクセス状況を保持しているため、各プロセッサは共通バスを使用することなく、共有資源への排他制御を実現することができる。
【０００８】
【特許文献１】特開平７−１３４６８９号公報
【特許文献２】特開２００７−２１９９２５号公報
【特許文献３】特開２０００−３５９５４号公報
【特許文献４】特開２００８−３３８９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来技術では、一旦バスの使用権をプロセッサが獲得すると、使用権を獲得したプロセッサがバス使用権を解放するまで、使用権を獲得したプロセッサよりも優先順位の高いプロセッサがバスを使用することができないという課題があった。この課題について以下に詳しく説明する。
【００１０】
優先度による調停機能を持つバス調停器を備えたバスに対して、優先順位の高いプロセッサ（優先プロセッサ）と、優先順位の低いプロセッサ（一般プロセッサ）が、同時にアクセスを行った場合の、バスの使用状況を説明する。優先プロセッサと一般プロセッサが同時にアクセスすると、調停器の働きにより、優先プロセッサのアクセスが先に開始する。たとえば、優先プロセッサが読み込み要求を行うと同時に、一般プロセッサがバースト書き込みを行うと、調停器は優先プロセッサの読み込みを許可し、一般プロセッサを優先プロセッサの読み込み要求が完了するまで待機させる。
【００１１】
前述の状況と違い、優先プロセッサが、一般プロセッサのアクセスに遅れてアクセスを開始した場合の、バスの使用状況を説明する。一般プロセッサがバースト書き込みを開始すると、最初にバースト書き込みの開始を示す情報に続いて、書き込むデータを４個連続して転送する。一般プロセッサのバースト転送中に、優先プロセッサが読み込みアクセスを開始することはできないため、優先順位の高いプロセッサが、優先順位の低いプロセッサのアクセス完了まで待機してしまうことになる。
【００１２】
さらに、マルチプロセッサシステムでは、プロセッサ間の排他制御を行うために、テスト・アンド・セット（ＴＡＳ）による排他制御の方法がよく知られている。ＴＡＳ処理はあるメモリの領域に対してアトミック操作（不可分操作）で書き込みを行う処理であり、その領域に値をセットする前にテスト、例えばその領域の値が指定された値と同じであるかを判定し、同じであれば当該領域の内容を変更せず、異なればその値で当該領域の値を変更する。このＴＡＳ処理は、読み込みと書き込みの２通りのバスアクセスから成り立ち、双方のアクセスをアトミックに実行することが行われる。このため、一のプロセッサがＴＡＳ処理を実行中は、他のプロセッサがバスを使用できないようにロックする方法が一般に用いられている。しかしながら、いったんバスがロックされてしまうと、優先度の高いプロセッサであってもバスが使用できなくなるため、優先順位の低いプロセッサが行うロックが優先順位の高いプロセッサのアクセスを待機させてしまうことになる。
【００１３】
一般プロセッサがＴＡＳ処理を行っているときに、優先プロセッサがアクセスを開始した場合の、バスの使用状況を説明する。一般プロセッサは、ＴＡＳ処理を開始すると、最初にバスをロックして、他のプロセッサがバスにアクセスできないようにする。そして、データの読み込み、書き込みを行ったあと、バスのロックを解放する。一般プロセッサがバスをロックしている間に、優先プロセッサがバスを使用することはできないため、優先順位の高いプロセッサが、優先順位の低いプロセッサのアクセス完了まで待機してしまうことになる。この場合、一般プロセッサのアクセスによる優先プロセッサの待機は、優先プロセッサが行うアクセスごとに発生する可能性があるため、多数のアクセスを行う処理では、遅延時間が累積し、処理に必要な実行時間が大きくなる。データ処理システムは最も時間と費やす状況を想定して設計されるため、実行時間には待機時間を含める必要になり、性能を確保するには、より高速なプロセッサなど、より高価なハードウェアを用いることが必要になる。
【００１４】
以上説明したように、優先度付き調停器を用いてプロセッサのアクセスを調停した場合であっても、優先度の高い処理が優先順位の低いプロセッサのアクセスから影響を受けてしまうという問題がある。
【００１５】
本発明の目的は、優先度の低いプロセッサが行うバスアクセスによって優先度の高いプロセッサのアクセス性能が低下されるのを抑制若しくは緩和することができるデータ処理及びバス調停の技術を提供することにある。
【００１６】
本発明の別の目的は、バスを使用する優先度の高い処理の実行にかかる時間を短縮することができ、データ処理性能に対するハードウェアコストの低減に資することができるデータ処理システム及びデータプロセッサを提供することにある。
【００１７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１９】
すなわち、本発明に係るデータ処理システムにおいては、第１のプロセッサ（１００）が第１の信号によって第２のプロセッサ（２００−ｋ）に調停開始要求を送信する。調停開始要求を受け取った第２のプロセッサは例えばメモリ管理機構（２７０−ｋ）によってバスアクセスを禁止し、調停要求を受け取る前に実行していたタスクの実行を再開する。第２のプロセッサがバスアクセスを伴う命令を実行した場合には、当該第２のプロセッサのメモリ管理機構が当該アクセスを中止し、例外処理を要求して、第１のプロセッサから第２の信号によって調停終了通知を受信するまで待機する。第２のプロセッサは第１のプロセッサから調停終了通知を受信すると、例えばそのメモリ管理機構をアドレス変換可能な状態に復帰させて、タスクの実行を再開する。このタスクの実行は、バスアクセスを伴う命令の実行から再開するが、このときメモリ管理機構はバスアクセス許可に復帰されているため、前記バスアクセスを伴う命令は例外処理の介入なく実行され、タスクの実行が継続される。
【００２０】
したがって、本発明に係るデータ処理システムでは、第１のプロセッサは第２のプロセッサの影響を受けることなく、バスを伴う処理を優先的に実行することができる。
【００２１】
特に、バスアクセスの抑止の制御にアドレス管理機構(アドレス変換機構)におけるアドレス変換の可否の設定を用いることにより、例外処理レベルでバスアクセスの抑止を制御することができ、その制御をユーザプログラム若しくはアプリケーションプログラムに依存させなくて済む。換言すれば、既存のユーザプログラム若しくはアプリケーションプログラムを改変することなく上記バス調停を適用することが可能になる。
【発明の効果】
【００２２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００２３】
即ち、優先度の低いプロセッサが行うバスアクセスによって優先度の高いプロセッサのアクセス性能が低下されるのを抑制若しくは緩和することができる。
【００２４】
バスを使用する優先度の高い処理の実行にかかる時間を短縮することができ、データ処理性能に対するハードウェアコストの低減に資することができる。
【発明を実施するための最良の形態】
【００２５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２６】
〔１〕本発明に係るデータ処理システムは、共有バス（１０）と、前記共有バスに接続された第１のプロセッサ（１００）と、前記共有バスに接続された少なくとも１つ以上の第２のプロセッサ（２００−ｋ）と、前記共有バスに接続され前記第１のプロセッサ及び第２のプロセッサによってアクセス可能にされる共有リソース（２０）と、を備える。前記第２のプロセッサは前記第１のプロセッサから供給される第１の信号（８０−ｋ）に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行う。これにより、第２プロセッサがバスアクセス抑止を設定したあと、第１のプロセッサは共有バスを占有して使用することができるため、第１のプロセッサは第２のプロセッサの影響を受けることなく、共有バスを優先的に用いて処理を実行することができる。また、第１の信号に応答する処理は、第２プロセッサの既存の処理とは独立した処理とすることが可能であるから、第２プロセッサの既存の処理を改変することなく本発明を適用することができる。
【００２７】
〔２〕項１のデータ処理システムにおいて、前記第２のプロセッサは前記第１のプロセッサから供給される第２の信号（９０−ｋ）に応答して前記抑止する設定を解除する。
【００２８】
〔３〕項２のデータ処理システムにおいて、前記第２のプロセッサは、前記第１の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第２の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する。これにより、前記抑止の設定と解除を例外処理で行うことができ、既存のユーザプログラム若しくはアプリケーションプログラムを改変することなく上記バス調停を適用することが可能になる。
【００２９】
〔４〕項３のデータ処理システムにおいて、前記第２のプロセッサは複数のアドレス変換テーブルリエントリ（ＰＴＥ#１〜ＰＴＥ#n）を用いた連想記憶によって論理アドレスを前記共有リソースの物理アドレスに変換するメモリ管理機構を備える。前記第２のプロセッサは、アドレス変換テーブルリエントリの全てのバリッド情報（Ｖ）を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルリエントリに復帰することによって前記設定の解除を行う。アドレス変換テーブルリエントリのバリッド情報を用いることによって前記抑止の設定と解除の制御を簡単に実現可能になる。
【００３０】
〔５〕項４のデータ処理システムにおいて、前記バリッド情報の退避先は前記共有リソースの一部に配置された前記第２のプロセッサに共通のメモリ領域（２０内の２１−１〜２１−Ｎ）である。バリッド情報の退避先を前記共有リソースの一部に割当てれば個々の第２プロセッサ内のローカルなメモリ領域をその領域を割くことを要しないが、当該領域のアクセスにはメモリ管理機構を用いなければならずそのためにアドレス変換テーブルリエントリを操作しなければならない。
【００３１】
〔６〕項４のデータ処理システムにおいて、バリッド情報の退避先は第２のプロセッサ内の論理アドレス空間に配置された第２プロセッサ毎の個別の内部メモリ領域（２００−ｋ内の２１−ｋ）である。これによれば、第２プロセッサの内部メモリ領域が費やされるが、当該領域のアクセスにはメモリ管理機構を用いることを要せず、そのためにアドレス変換テーブルリエントリを操作しなくて済む。
【００３２】
〔７〕項３乃至６の何れかのデータ処理システムにおいて、前記第２のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記メモリ管理機構によるアクセスエラーに起因して例外を発生し、前記第２の信号に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ。
【００３３】
〔８〕項１乃至７の何れかのデータ処理システムにおいて、前記共有バスはバス調停器を有する。前記バス調停器は第１のプロセッサ及び第２のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う。第２のプロセッサによる前記自立的なアクセス抑止は調停器の調停アルゴリズムの影響を受けない。
【００３４】
〔９〕項１乃至８の何れかのデータ処理システムは例えば１個の半導体基板に形成される。
【００３５】
〔１０〕本発明に係るデータプロセッサは、共有バスに接続された第１のプロセッサ及び第２のプロセッサを有し、１個の半導体基板に形成される。前記第２のプロセッサは前記第１のプロセッサから出力される第１の信号に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行う。前記第２のプロセッサは前記第１のプロセッサから供給される第２の信号に応答して前記前記抑止する設定を解除する。
【００３６】
〔１１〕項１０記載のデータプロセッサにおいて、前記第２のプロセッサは、前記第１の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第２の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する。
【００３７】
〔１２〕項１１記載のデータプロセッサにおいて、前記第２のプロセッサは連想記憶によって論理アドレスを当該第２のプロセッサの外部の物理アドレスに変換するアドレス変換バッファを有する。前記第２のプロセッサは、前記アドレス変換バッファのエントリを復帰可能に無効化することによって前記抑止する設定を行い、前記アドレス変換バッファにエントリを復帰することによって前記設定の解除を行う。
【００３８】
〔１３〕項１２記載のデータプロセッサにおいて、前記アドレス変換バッファはエントリ毎にその有効性を示すバリッド情報を有する。前記第２のプロセッサは、そのアドレス変換バッファが保有する全てのエントリのバリッド情報を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルの全てのエントリに復帰することによって前記設定の解除を行う。
【００３９】
〔１４〕項１３記載のデータプロセッサにおいて、前記バリッド情報の退避先は前記バスに接続された前記第２のプロセッサに共通のメモリ領域である。
【００４０】
〔１５〕項１３記載のデータプロセッサにおいて、前記バリッド情報の退避先は第２のプロセッサ内の論理アドレス空間に配置された第２プロセッサ毎の個別の内部メモリ領域である。
【００４１】
〔１６〕項１０乃至１５の何れかのデータプロセッサにおいて、前記バスはバス調停器を有する。前記バス調停器は第１のプロセッサ及び第２のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う。
【００４２】
〔１７〕本発明に係るバス調停方法は、共有バスに接続された第１のプロセッサと少なくとも1個以上の第２のプロセッサとの間のバス調停方法であって、前記第１のプロセッサが前記第２のプロセッサに第１の信号を出力する第１処理と、前記第２のプロセッサが前記第１の信号に応答する例外処理によって前記共有バスを介するバスアクセスを自律的に抑止する設定を行ってから元の処理に復帰する第２処理と、前記第１のプロセッサが前記第２のプロセッサに第２の信号を出力する第３処理と、前記第２のプロセッサが前記第２の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する第４処理と、を含む。
【００４３】
〔１８〕項１７のバス調停方法において、前記第２のプロセッサは、前記共有バスをアクセスするとき、連想記憶によって論理アドレスを当該第２のプロセッサの外部の物理アドレスに変換するアドレス変換を行う。前記第２処理において前記第２のプロセッサは前記アドレス変換のためのエントリを復帰可能に無効化することによって前記抑止する設定を行う。前記第３処理において前記第２のプロセッサは前記アドレス変換のためのエントリを復帰することによって前記設定の解除を行う。
【００４４】
〔１９〕項１８のバス調停方法において、前記アドレス変換のためのエントリ毎のバリッド情報を操作することによってエントリの有効性を決定する。前記第２の処理において前記第２のプロセッサはそのアドレス変換のための全てのエントリのバリッド情報を退避してから無効化する操作を行うことによって前記抑止する設定を行う。前記第３処理において前記第２のプロセッサは退避したバリッド情報をアドレス変換のための全てのエントリに復帰することによって前記設定の解除を行う。
【００４５】
〔２０〕項１９のバス調停方法において、前記第２の処理において前記第２のプロセッサは前記バスに接続された前記第２のプロセッサに共通のメモリ領域にバリッド情報を退避する。
【００４６】
〔２１〕項１９のバス調停方法において、前記第２の処理において前記第２のプロセッサは第２のプロセッサ内の論理アドレス空間に配置された第２プロセッサ毎の個別の内部メモリ領域に前記バリッド情報を退避する。
【００４７】
〔２２〕請求項１９乃至２１の何れかのバス調停方法において、前記第２のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記アドレス変換不能によるアクセスエラーに起因して例外を発生し、前記所定の終了要求に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ。
【００４８】
２．実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
【００４９】
《実施の形態１》
図１には本発明に係るデータ処理システムの構成が例示される。同図に示されるデータ処理システは、共有バス１０と、前記共有バス１０を調停する調停器１１と、前記共有バスに接続したメモリ２０と、前記共有バス１０に接続した優先プロセッサ１００と、前記共有バス１０に接続したＮ個の一般プロセッサ２００−１…２００−Ｎとを有する。優先プロセッサ１００は一般プロセッサ２００−１…２００−Ｎに比べて優先度の高いタスクに実行に割当てられたプロセッサとして位置付けられる。尚、本明細書においてサフィックス１〜Ｎの一つをｋで代表する。例えば一般プロセッサ２００−ｋは一般プロセッサ２００−１〜２００−Ｎの内の何れか１個を意味する。
【００５０】
優先プロセッサ１００は命令を実行するための図示を省略するＣＰＵ（中央処理装置）を備え、プロセッサが実行するプログラムとして調停要求プログラム１８０と、優先タスク１１０がある。N個の一般プロセッサ２００−１〜２００−Ｎの夫々は命令を実行するための図示を省略するＣＰＵ（中央処理装置）を備え、夫々の一般プロセッサ２００−ｋが実行するプログラムとして調停応答プログラム２８０−ｋと、一般タスク２１０−ｋがある。
【００５１】
前記優先プロセッサ１００と、前記各一般プロセッサ２００−１〜２００−Ｎとは、前記共有バス１０を介して前記メモリ２０にアクセスできる。前記共有バス１０へ複数のプロセッサ１００，２００−１…２００−Ｎから同時にアクセスが行われた場合、前記調停器１１によって調停が行われる。
【００５２】
前記調停要求プログラム１８０は、調停要求部１２０と、調停終了部１３０と、を備える。前記優先タスク１１０は、前記調停要求部１２０と、前記調停終了部１３０を呼び出すことができる。前記調停要求部１２０は、各一般プロセッサ２００−１〜２００−Ｎへ第１の信号８０−１〜８０−Ｎにより調停開始要求を送信できる。前記調停終了部１３０は、各一般プロセッサ２００−１〜２００−Ｎへ第２の信号９０−１〜９０−Ｎにより調停終了通知を送信できる。
【００５３】
夫々の一般プロセッサ２００−ｋは、割込みや例外が発生したときその割込み処理や例外処理から元の処理に復帰する為の情報を保持する退避情報記憶域２４０−ｋと、重ねて割り込みや例外が発生したとき退避情報記憶域２４０−ｋの情報を保持する復帰情報記憶域２５０−ｋと、メモリ管理機構２７０−ｋを備える。
【００５４】
前記調停応答プログラム２８０−ｋは、要求処理部２２０−ｋと、終了処理部２３０−ｋと、例外処理部２６０−ｋと、を備える。前記一般プロセッサ２００−１〜２００−Ｎは、前記優先プロセッサ１００から調停開始要求を受信する手段を備える。また、夫々の一般プロセッサ２００−１〜２００−Ｎは、前記優先プロセッサ１００に調停終了通知を送信するインタフェースを備えている。
【００５５】
図２には前記メモリ管理機構２７０−ｋの構成が例示される。メモリ管理機構２７０−ｋは、ページング方式によるメモリ管理のためのＴＬＢ（変換索引バッファ）２７１を備え、前記ＴＬＢ２７１は、後述する手順によって前記要求処理部２２０−ｋと、前記終了処理部２３０−ｋとからも設定可能にされる。尚、前記メモリ管理機構２７０はページング方式によるメモリ管理機能を有しているものとして説明するが、ページング方式だけではなく、たとえばセグメンテーション方式によってメモリ管理機能を実現してもよい。
【００５６】
前記ＴＬＢ２７１は、ｎ個（ｎは少なくとも１）のＰＴＥ（ページテーブルエントリ）からなる配列となっており、各ＰＴＥは、ＶＰＮ、ＰＰＮ、Ｖのフィールドを備えている。ＶＰＮは仮想ページ番号を示し、ＰＰＮは物理ページ番号を示すものとする。Ｖは当該ＰＴＥが有効か無効かを示すバリッドビットであり、1のとき有効、０のとき無効を示すものとする。
【００５７】
前記夫々のメモリ管理機構２７０−ｋは、当該メモリ管理機構を備えている一般プロセッサ２００−ｋがバスアクセスを伴う命令を実行したとき、Ｖが１、かつ、アクセス先アドレスに対応するＶＰＮを持つＰＴＥが前記ＴＬＢ２７１に登録されていない場合には、前記例外処理部２６０を呼び出す。
【００５８】
前記一般プロセッサ２００−１〜２００−Ｎは夫々同様の構成を備える。特に制限されないが、ここでは一般タスク２１０−１〜２１０−Ｎは相違される。
【００５９】
前記メモリ２０は、その一部の記憶領域に、Ｎ個の領域（Ｖ保存領域２１−１〜２１−Ｎ）を備える。Ｖ保存領域２１−１〜２１−Ｎの夫々には、少なくとも前記メモリ管理機構のＴＬＢ２７１に含まれるＰＴＥの数のビット数を持つ値を格納できる。即ち、ｎ個のＰＴＥを前記メモリ管理機構が備える場合に、Ｖ保存領域２１−１〜２１−Ｎの夫々はｎビットを格納できる。
【００６０】
上記データ処理システムにおけるバス調停動作について説明する。初期状態として、前記優先プロセッサ１００は前記優先タスク１１０を実行しており、夫々の前記一般プロセッサ２００−ｋは前記一般タスク２１０−ｋを実行しているものとする。
【００６１】
図３は本発明に係るデータ処理システムにおいて、前記優先プロセッサで動作している前記優先タスクが前記共有バスを優先して使用する必要のある処理（バス優先処理）を行うために、バスの優先的な使用を要求する手順を説明するためのフローチャートである。
【００６２】
まず、前記優先タスク１１０は、バス優先処理を実行する前に、前記調停要求部１２０に対して、バス１０の優先使用を要求する（Ｓ１１０）。バスの優先使用が要求された前記調停要求部１２０は、プロセッサ間割り込みなどプロセッサ間で通信を行う手段を用いて、前記一般プロセッサ２００−１〜２００−Ｎまでの各プロセッサに調停開始要求を送信する（Ｓ１２０）。前記調停要求部１２０の処理が終了すると前記優先タスクの実行が再開され、これによって、前記優先タスクは、バス１０を使用する優先処理を実行することができる（Ｓ１３０）。
【００６３】
一方、ステップＳ１２０において送信された調停開始要求を受信した一般プロセッサ２００−ｋは、ステップＳ３００から示すような調停処理の手順を行う。前記一般プロセッサ２００−ｋは、調停開始要求を受信すると、まず、そのとき実行している前記一般タスク２１０−ｋを中断し、前記一般タスク２１０−ｋの実行を再開するための情報を退避情報記憶域２４０−ｋに格納し、前記要求処理部２２０−ｋを実行する（Ｓ３１０）。前記要求処理部２２０−ｋは、前記メモリ管理機構２７０−ｋを、バスアクセス禁止に設定する（Ｓ３２０）。その後、前記要求処理部２２０は、前記退避情報記憶域２４０に格納されている情報を使用して、前記一般タスク２１０−ｋの実行に復帰する（Ｓ３３０）。
【００６４】
図４にはステップＳ３２０における前記メモリ管理機構をバスアクセス禁止に設定するための手順が示される。
【００６５】
まず、変数Ｘを０、変数ｍを１にする（Ｓ２０５）。次に、変数Ｘの第ｍビットを１にする（Ｓ２１５）。次に、前記メモリ管理機構２７０―ｋの前記ＴＬＢ中のＰＴＥ＃ｍのＰＰＮがバスアクセスを行うアドレス領域であるかをそのＶに基づいて判定する（Ｓ２１０）。判定の結果、ＰＰＮがバスアクセスを発生させるページ番号を示していた場合には、ステップＳ２４５に移り、それ以外の場合には、ステップＳ２２０に移る。ステップＳ２４５では、前記ＰＴＥ＃ｍのＶビットを０に設定する。ステップＳ２２０では、ｍを１増加させる。次に、ｍがｎ以下であるかどうか判断する（Ｓ２２５）。ｍがｎ以下の場合には、Ｓ２１５に移り、それ以外の場合には、ステップＳ２３０に移る。Ｓ２２５においてｍがｎ以下でないと判定されたとき、変数Ｘは、Ｓ３２０の処理が開始される前のＰＴＥ＃１〜＃ｎの各Ｖの値を保持していることになる。そしてそのときのＰＴＥ＃１〜＃ｎの各Ｖの値は０にされる。Ｓ２３０では、ＰＴＥ＃１のＶＰＮ（仮想ページ番号）の値を変数Aに読み込み、ＰＰＮ（物理ページ番号）の値を変数Ｂに格納する。次に、前記ＰＴＥ＃１のＶＰＮとＰＰＮを、前記Ｖ保存領域２１−１のページ番号に設定し、Ｖビットを１にする（Ｓ２３５）。これによって、一般プロセッサ２１０−ｋはＶ保存領域２１−１へアクセス可能になる。次に、変数Ｘを前記Ｖ保存領域２１−１に格納する（Ｓ２４０）。次に、変数Aの値を前記ＰＴＥ＃１のＶＰＮに設定し、変数Ｂの値を前記ＰＴＥ＃１のＰＰＮに設定し、変数Ｘの第１ビットを前記ＰＴＥ＃１のＶビットに設定する（Ｓ２５０）。これにより、Ｓ３２０の処理が開始される直前に一般プロセッサ２００−ｋが保有するＰＴＥ＃１〜＃ｎの各Ｖの値が対応するＶ保存領域２１−ｋに退避完了さて、且つ、一般プロセッサ２００−ｋが保有するＰＴＥ＃１〜＃ｎの各Ｖの値が０にされ、一般プロセッサ２００−ｋのメモリ管理機構２７０−ｋはアクセス禁止の状態に設定完了される。上記処理手順は夫々の一般プロセッサ２００−１〜２００−Ｎで実施される。
【００６６】
図５は本発明に係るデータ処理システムにおいて、前記優先タスクがバス優先処理を開始し、前記一般プロセッサが前記優先プロセッサから送信された調停開始要求を受信した後の時点において、前記一般タスクが行ったバスアクセスを阻止する手順を説明するためのフローチャートである。要するに、図３のステップＳ３３０において一般プロセッサ２００−ｋが一般タスク２１０−ｋの実行を再開したときバスアクセスを必要とするときそのバスアクセスが抑止される手順を示す。
【００６７】
まず、前記一般タスクが、バスアクセスを発生させる命令を実行する（Ｓ４１０）。しかしながら、前記ステップＳ３２０によって前記メモリ管理機構２７０−ｋはバスアクセスを禁止するように設定されているため、前記メモリ管理機構２７０−ｋはアクセスエラーの例外を発生し、前記命令によるバスアクセスを発生させず、前記一般タスクの実行を再開するための情報を前記退避情報記憶域２４０−ｋに格納し、前記例外処理部２６０−ｋを呼び出す（Ｓ４２０）。前記例外処理部２６０−ｋは、前記退避情報記憶域２４０−ｋに格納された前記一般タスクを再開するための情報（中断した一般タスクに復帰するための情報）を、前記復帰情報記憶域２５０−ｋにコピーする（Ｓ４３０）。さらに、前記例外処理部２６０−ｋは、前記終了処理部２３０−ｋが前記優先プロセッサ１００から調停終了要求を受信して呼び出されるまで待機する（Ｓ４４０）。
【００６８】
図６は本発明に係るデータ処理システムにおいて前記優先タスクからバス優先処理の終了を通知されたときの処理手順を説明するためのフローチャートである。
【００６９】
まず、前記優先タスク１１０が、前記調停終了部１３０に対して、優先使用終了を通知する（Ｓ５１０）。優先使用終了を通知された前記調停終了部１３０は、プロセッサ間割り込みなどプロセッサ間で通信を行う手段を用いて、２００−１〜２００−ｋまでの各一般プロセッサに調停終了通知を送信する（Ｓ５２０）。
【００７０】
一方、ステップＳ５２０で送信された調停終了通知を受信した一般プロセッサは、終了処理部２３０−ｋを呼び出してステップＳ６００乃至ステップＳ６５０の処理を行う。即ち、前記一般プロセッサ２００−ｋは、調停終了通知を受信すると、先ず、例外処理部２６０−ｋへの戻り先情報を前記退避情報記憶域２４０−ｋに退避してから前記終了処理部２３０−ｋが実行される。（Ｓ６１０）。前記終了処理部２３０−ｋは、前記メモリ管理機構２７０−ｋを、バスアクセス許可に設定する（Ｓ６２０）。バスアクセス許可への設定後、前記退避情報記憶域２４０−ｋに格納されている情報を使用して、前記例外処理部２６０−ｋの実行を再開する（Ｓ６３０）。前記例外処理部２６０−ｋの実行が再開されると、前記例外処理部２６０−ｋは、前記復帰情報記憶域２５０−ｋに格納されている、前記一般タスクの実行を再開する情報を使用して、前記一般タスクの実行を再開する（Ｓ６４０）。次に、実行を再開した前記一般タスクは、バスアクセスを伴う命令を再度実行する（Ｓ６５０）。このときは、ステップＳ４１０と異なり、前記メモリ管理機構２７０−ｋがバスアクセス許可に設定されているため、前記一般タスクが実行したバスアクセスを伴う命令は、前記例外処理部２６０−ｋが介入することなく実行される。
【００７１】
図７にはステップＳ６２０において前記メモリ管理機構２７０−ｋをバスアクセス許可に設定するための手順がフローチャートによって示される。
【００７２】
まず、前記メモリ管理機構２７０−ｋの前記ＴＬＢに含まれるＰＴＥ＃１のＶＰＮを変数Aに保存し、ＰＰＮを変数Ｂに保存する（Ｓ８１０）。次に、前記ＰＴＥ＃１のＶＰＮとＰＰＮを、前記Ｖ保存領域２１−１のページ番号に設定し、Ｖビットを１にする（Ｓ８２０）。これによって、前記Ｖ保存領域２１−１へアクセス可能になる。次に、前記Ｖ保存領域２１−１の値を変数Ｘに格納する（Ｓ８３０）。次に、変数Aの値を前記ＰＴＥ＃１のＶＰＮに設定し、変数Ｂの値を前記ＰＴＥ＃１のＰＰＮに設定する（Ｓ８４０）。次に、変数ｍを１にする（Ｓ８５０）。次に、変数Ｘの第ｍビットの値をＰＴＥ＃ｍのＶビットに設定する（Ｓ８６０）。次に、ｍを１増加させる（Ｓ８７０）。次に、ｍがｎ以下であるかどうか判断する（Ｓ８８０）。判断の結果、ｍがｎ以下であれば、ステップＳ８６０に移る。それ以外の場合には、ステップＳ８９９に移り、前記メモリ管理機構２７０−ｋをバスアクセス許可に設定するための手順を終了する。これにより、メモリ管理機構２７０−ｋのＴＬＢにおけるＰＴＥ＃１〜ＰＴＥ＃ｎの全てのＶがＶ保存領域２１−ｋから復帰され、前記メモリ管理機構２７０−ｋはバスアクセス可能な状態に戻される。
【００７３】
次に、図３のステップＳ３２０によって前記メモリ管理機構２７０−ｋがバスアクセス禁止に設定された後、前記一般プロセッサ２００−ｋが調停終了通知を受信するまで、前記一般タスク２１０−ｋがバスアクセスを伴う命令を実行しなかった場合について説明する。この場合には例外処理部２６０−ｋが実行されないまま終了処理部２３０−ｋが実行される。すなわち、図３のステップＳ３３０の後、前記一般タスクがバスアクセスを伴う命令を実行しないまま、前記一般プロセッサ２００−ｋが調停終了通知を受信すると、前記一般タスク２１０−ｋを再開するための情報が前記退避情報記憶域２４０−ｋに格納され、前記終了処理部２３０−ｋが呼び出された実行される（Ｓ６１０）。前記終了処理部２３０−ｋは、前記メモリ管理機構２７０−ｋをバスアクセス許可に設定する（Ｓ６２０）。さらに、前記終了処理部２３０−ｋの処理が終了されると、前記退避情報記憶域２４０−ｋに格納されている前記一般タスク２１０−ｋへの復帰のための情報を用いて、前記一般タスク２１０−ｋの実行が再開されれる（Ｓ６３０）。以降は、前記一般タスク２１０−ｋがバスアクセスを伴う命令を実行した場合であっても、前記メモリ管理機構２７０−ｋがバスアクセス許可に設定されているため、前記例外処理部２６０−ｋの介入なしに、実行が継続される。
【００７４】
図１１は本発明に係るデータ処理システムにおける優先プロセッサおよび一般プロセッサによるアクセス動作の一例が示されるタイミングチャートである。
【００７５】
優先タスク１１０はバス優先処理を実行する前に、調停開始要求を一般プロセッサ２００−ｋに対して送信する。一般プロセッサ２０−ｋは、調停開始要求を受け取ると、それ以降のバスアクセスを保留するようになる。ただし、調停開始要求を優先プロセッサ１００の送信と同時に一般プロセッサ２００−ｋが受信できるとは限らないため、通常は送信から受信までに時間差が生じる。一般プロセッサ２００−ｋが調停開始要求を受信した後は、たとえばバスロックなどの操作を一般プロセッサ２００−ｋが実行しないようになるため、優先プロセッサ１００が行うバスアクセスは、直ちに実行されることが保証できる。
【００７６】
優先プロセッサ１００は、バス優先処理が完了すると、一般プロセッサ２００−ｋに対して調停終了通知を送信する。一般プロセッサ２００−ｋは、調停終了通知を受信すると、それまで保留していたアクセスを行い、一般タスクの実行を再開する。
【００７７】
上述のバスアクセス抑止の構成を採用していないデータ処理システムにおいては、優先タスクがバスを優先的に使用する処理を実行中であっても、優先プロセッサがバスアクセスしないときは、各一般プロセッサはバスへアクセスが可能だった。したがって、図１２の場合は問題ないが、図１３、図１４に例示されるように、いずれかの一般プロセッサがバスの使用を開始してしまうと、優先プロセッサで動作する優先タスクの処理に影響する。
【００７８】
本発明に係るデータ処理システムにおいては、優先タスク１１０の調停要求によって調停要求部１２０が一般プロセッサ２００−ｋに調停開始要求を送信する。調停開始要求を受け取った一般プロセッサ２００−ｋは、要求処理部２２０−ｋを呼び出し、要求処理部２２０−ｋは、メモリ管理機構２７０−ｋによってバスアクセスを禁止し、調停要求を受け取る前に実行していた一般タスクの実行を再開する。一般タスク２００−ｋがバスアクセスを伴う命令を実行した場合には、一般プロセッサ２００−ｋのメモリ管理機構２７０−ｋが当該アクセスを中止し、例外処理部２６０−ｋを呼び出し、例外処理部２６０−ｋは優先プロセッサ１００から調停終了通知を受信するまで待機する。一般プロセッサ２００−ｋが優先プロセッサ１００から調停終了通知を受信すると、終了処理部２３０−ｋがバスアクセスを許可するようにメモリ管理機構２７０−ｋを設定し、例外処理部２６０−ｋの実行を再開し、実行を再開した例外処理部２６０−ｋは、一般タスク２００−ｋの実行を再開する。一般タスク２００−ｋの実行は、バスアクセスを伴う命令から再開するが、このときメモリ管理機構２７０−ｋはバスアクセス許可に設定されているため、前記バスアクセスを伴う命令は例外処理部２６０−ｋの介入なく実行され、一般タスク２００−ｋの実行が継続される。
【００７９】
したがって、本発明に係るデータ処理システムでは、一般プロセッサ２００−ｋのメモリ管理機構２７０−ｋがバスアクセス禁止に設定されたあと、優先タスク１００がバス１０を占有して使用することができるため、優先タスク１００は一般タスク２１０−ｋの影響を受けることなく、バス優先処理を実行することができる。
【００８０】
また、従来技術では、複数のプロセッサが共有バスなどの共有資源を排他的に使用する場合に、各プロセッサで動作するタスクが明示的に排他制御を行う必要があった。本発明に係るデータ処理システムでは、優先プロセッサ１００から送信される調停開始要求や調停終了通知に応答するための処理を調停応答プログラム２８０−ｋによって行い、一般タスク２００−ｋは、優先プロセッサ１００から送信される調停開始要求や調停終了通知に応答するための処理を含むことを要しない。したがって、本発明の活用に当たって、一般タスクを変更する必要がないという利点がある。
【００８１】
《実施の形態２》
図８には本発明に係るデータ処理システムの別の例が示される。Ｖ保存領域を夫々の一般プロセッサが備える固有メモリ領域に割り当てた点が図１と相違する。なお、改めて説明する必要のない要素については、本発明の実施の形態１と同じ参照符号を用いて、その詳細な説明を省略する。
【００８２】
図８においてメモリ２０は、図１と異なり、内部にＶ保存領域を必ずしも含む必要はない。図８では、一般プロセッサ２００ｂ−１〜２００ｂ−Ｎ（２００ｂ−ｋ）は、図１の一般プロセッサ２００ｂ−ｋの構成に加えて、対応するＶ保存領域２１−ｋを備える。また、図８の場合のＶ保存領域２１−ｋは、対応する一般プロセッサ２００ｂ−ｋのメモリ管理機構２７０−ｋによってアクセスが制御されない。例えば、Ｖ保存領域２１−ｋは対応する一般プロセッサ２００ｂ−ｋ内部のローカルなメモリ空間に配置され、仮想記憶の対象にされないと言うことである。一般プロセッサ２００ｂ−ｋはアドレス変換無しで自らのＶ保存領域２１−ｋをアクセスすることができる。
【００８３】
次に、図８のデータ処理システムにおいけるばすアクセス動作について説明する。なお、改めて説明する必要のない動作については、実施の形態１と同じ符号を用い、その詳細な説明を省略する。
【００８４】
初期状態として、前記優先プロセッサ１００は前記優先タスク１１０を実行しており、前記一般プロセッサ２００ｂ−ｋは前記一般タスク２１０−ｋを実行しているものとする。
【００８５】
前記優先プロセッサ１００で動作している前記優先タスク１１０が前記共有バス１０を優先して使用する必要のある処理（バス優先処理）を行うために、バスの優先的な使用を要求する手順については、実施の形態１と同様である。
【００８６】
前記一般プロセッサ２００ｂ−ｋが前記優先プロセッサ１００から調停開始要求を受信したときの、一般プロセッサ２００ｂ−ｋにおける調停処理の手順については、次に述べるステップＳ３２０における処理を除き、実施の形態１と同様である。
【００８７】
図９はステップＳ３２０において前記メモリ管理機構をバスアクセス禁止に設定するための手順を説明するためのフローチャートである。
【００８８】
まず、変数Ｘを０、変数ｍを１にする（Ｓ２０５）。次に、変数Ｘの第ｍビットを１にする（Ｓ２１５）。次に、前記メモリ管理機構２７０−ｋの前記ＴＬＢ中のＰＴＥ＃ｍのＰＰＮがバスアクセスを行うアドレス領域であるか判定する（Ｓ２１０）。判定の結果、ＰＰＮがバスアクセスを発生させるページ番号を示していた場合には、ステップＳ２４５に移り、それ以外の場合には、ステップＳ２２０に移る。ステップＳ２４５では、前記ＰＴＥ＃ｍのＶビットを０に設定する。ステップＳ２２０では、ｍを１増加させる。次に、ｍがｎ以下であるかどうか判断する（Ｓ２２５）。ｍがｎ以下の場合には、Ｓ２１５に移り、それ以外の場合には、Ｓ２３０に移る。次に、変数Ｘを前記Ｖ保存領域１に格納する（Ｓ２４０）。
【００８９】
図９におけるバスアクセス禁止手順は、実施の形態１におけるバスアクセス禁止手順から、ステップＳ２３０と、ステップＳ２３５と、ステップＳ２５０を取り除き、より高速に実行できるようにしたものである。図８のＶ保存領域２１−ｋは、前記メモリ管理機構２７０−ｋの状態によらずにアクセス可能であるため、ステップＳ２４５において前記メモリ管理機構２７０−ｋに含まれるＰＴＥのＶビットを０にしても、ステップＳ２４０を実行することができる。要するに、変数ＸをＶ保存領域２１−ｋに格納するのにメモリ管理機構２７０−ｋを用いなくてもよい、ということである。
【００９０】
図８のデータ処理システムにおいて、前記優先タスク１１０がバス優先処理を開始し、前記一般プロセッサ２００ｂ−ｋが前記優先プロセッサ１００から送信された調停開始要求を受信した後、前記一般タスク２００ｂ−ｋが行ったバスアクセスを阻止する手順については、実施の形態１と同様である。また、前記優先タスク１１０からバス優先処理の終了を通知されたときの処理手順についても実施の形態１と同様である。
【００９１】
図８のデータ処理システムにおいて、前記一般タスク２１０−ｋの実行が前記例外処理部２６０−ｋで停止している状態で、前記一般プロセッサ２００ｂ−ｋが調停終了通知を受信したときの処理手順については、次に述べるステップＳ６２０における処理を除き、実施の形態１と同様である。
【００９２】
図１０はステップＳ６２０において前記メモリ管理機構２７０−ｋをバスアクセス許可に設定するための手順を例示するフローチャートである。
【００９３】
まず、前記Ｖ保存領域２１−ｋの値を変数Ｘに格納する（Ｓ８３０）。次に、変数ｍを１にする（Ｓ８５０）。次に、変数Ｘの第ｍビットの値をＰＴＥ＃ｍのＶビットに設定する（Ｓ８６０）。次に、ｍを１増加させる（Ｓ８７０）。次に、ｍがｎ以下であるかどうか判断する（Ｓ８８０）。判断の結果、ｍがｎ以下であれば、ステップＳ８６０に移る。それ以外の場合には、ステップＳ８９９に移り、前記メモリ管理機構２７０−ｋをバスアクセス許可に設定するための手順を終了する。
【００９４】
上記バスアクセス許可手順は、実施の形態１における図７のバスアクセス許可手順から、ステップＳ８１０と、ステップＳ８２０と、ステップＳ８４０を取り除き、より高速に実行できるようにしたものである。図８の前記Ｖ保存領域２１−ｋは、前記メモリ管理機構２７０−ｋの状態によらずにアクセス可能であるため、バスアクセス禁止状態でも、ステップＳ８３０でＶ保存領域２１−ｋから値を読み込むことができる。
【００９５】
本発明に係るデータ処理システムにおいて、図６のステップＳ６３０の後の前記例外処理部の処理については実施の形態１と同様である。
【００９６】
図８のデータ処理システムにおいて、図３のステップＳ３２０によって前記メモリ管理機構２７０−ｋがバスアクセス禁止に設定された後、前記一般プロセッサ２００ｂ−ｋが調停終了通知を受信するまで、前記一般タスク２１０−ｋがバスアクセスを伴う命令を実行しなかった場合の手順は、実施の形態１と同様である。
【００９７】
図８のデータ処理システムでは、実施の形態１とは異なり、各一般プロセッサのメモリ管理機構をバスアクセス許可または禁止に設定する手順において、前記メモリ管理機構に含まれるＰＴＥ＃１のＶＰＮおよびＰＰＮの値を読み込んで退避する手順と書き戻す手順とを実行しない。要するに、変数ＸをＶ保存領域２１−ｋに格納するのにメモリ管理機構２７０−ｋを用いなくてもよい。また、前記各一般プロセッサがそれぞれＶ保存領域を備えることにより、前記メモリ管理機構をバスアクセス許可または禁止に設定する手順においてメモリ２０に対するバスアクセスが発生しない。したがって、図８のデータ処理システムでは、一般プロセッサ２００ｂ−ｋが優先プロセッサ１００から受信した調停開始要求および調停終了通知に対する処理を高速に行うことができる。また、一般プロセッサ２００ｂ−ｋのメモリ管理機構２７０−ｋがバスアクセスを禁止に設定された後、優先タスク１１０がバス１０を占有して使用することができるため、優先タスク１１０は一般タスク２１０−ｋの影響を受けることなく、バスアクセスを伴う処理を実行することができる。
【００９８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９９】
例えば、第２信号による調停終了通知に代えて、第２のプロセッサとしての一般プロセッサが例えばタイマを備え、このタイマのタイムアップに呼応して当該第２プロセッサはそのメモリ管理機構のアクセス抑止状態を解除するようにしてもよい。本明細書では例外処理と割込み処理は厳密に区別していないが、例外処理はマスク不可能であり、割込み処理よりも優先度が高い処理と位置ずけられる。バス調停器の調停アルゴリズムとしては排他制御アルゴリズム又はスプリット・トランザクション・バスにおけるパケット単位の調停アルゴリズム等であってよい。データ処理システムは、単体の半導体集積回路から構成されたシングルチップ構成、あるいは複数の半導体集積回路から構成されたマルチグルチップ構成の何れであってもよい。
【図面の簡単な説明】
【０１００】
【図１】図１は本発明に係るデータ処理システムの構成を例示するブロック図である。
【図２】図２はメモリ管理機構の構成を例示しうるブロック図である。
【図３】図３は本発明に係るデータ処理システムにおいて優先プロセッサで動作している優先タスクが共有バスを優先して使用する必要のある処理（バス優先処理）を行うためにバスの優先的な使用を要求する手順を説明するためのフローチャートである。
【図４】図４は図３のステップＳ３２０における前記メモリ管理機構をバスアクセス禁止に設定するための手順を示すフローチャートである。
【図５】図５は本発明に係るデータ処理システムにおいて優先タスクがバス優先処理を開始し一般プロセッサが優先プロセッサから送信された調停開始要求を受信したとき一般タスクが行ったバスアクセスを阻止する手順を説明するためのフローチャートである。
【図６】図６は本発明に係るデータ処理システムにおいて優先タスクからバス優先処理の終了を通知されたときの処理手順を説明するためのフローチャートである。
【図７】図７は図６のステップＳ６２０においてメモリ管理機構をバスアクセス許可に設定するための手順を例示するフローチャートである。
【図８】図８は本発明に係るデータ処理システムの別の例を示すブロック図である。
【図９】図９は図３のステップＳ３２０においてメモリ管理機構をバスアクセス禁止に設定するための手順を例示するフローチャートである。
【図１０】図１０は図６のステップＳ６２０においてメモリ管理機構をバスアクセス許可に設定するための手順を例示するフローチャートである。
【図１１】図１１は本発明に係るデータ処理システムにおける優先プロセッサおよび一般プロセッサによるアクセス動作の一例を示すタイミングチャートである。
【図１２】図１２は優先順位の高いプロセッサ（優先プロセッサ）と優先順位の低いプロセッサ（一般プロセッサ）が同時にアクセスを行った場合のバスの使用状況を説明するための本発明に対する比較説明図である。
【図１３】図１３は優先プロセッサが一般プロセッサのアクセスに遅れてアクセスを開始した場合のバスの使用状況を説明するための本発明に対する比較説明図である。
【図１４】図１４は一般プロセッサがＴＡＳ処理を行っているときに優先プロセッサがアクセスを開始した場合のバスの使用状況を説明するための本発明に対する比較説明図である。
【符号の説明】
【０１０１】
１０  共有バス
２０  メモリ
２１−１〜２１−Ｎ  Ｖ保存領域
１００  優先プロセッサ
１１０  優先タスク
１２０  調停要求部
１３０  調停終了部
１８０  調停要求プログラム
２００−１〜２００−Ｎ  一般プロセッサ
２００ｂ−１〜２００ｂ−Ｎ  一般プロセッサ
２１０−１〜２１０−Ｎ  一般タスク
２２０−１〜２２０−Ｎ  要求処理部
２３０−１〜２３０−Ｎ  終了処理部
２４０−１〜２４０−Ｎ  退避情報記憶域
２５０−１〜２５０−Ｎ  復帰情報記憶域
２６０−１〜２６０−Ｎ  例外処理部
２７０−１〜２７０−Ｎ  メモリ管理機構
２８０−１〜２８０−Ｎ  調停応答プログラム
【図１】
2010079369.tif 000003
【図２】
2010079369.tif 000004
【図３】
2010079369.tif 000005
【図４】
2010079369.tif 000006
【図５】
2010079369.tif 000007
【図６】
2010079369.tif 000008
【図７】
2010079369.tif 000009
【図８】
2010079369.tif 000010
【図９】
2010079369.tif 000011
【図１０】
2010079369.tif 000012
【図１１】
2010079369.tif 000013
【図１２】
2010079369.tif 000014
【図１３】
2010079369.tif 000015
【図１４】
2010079369.tif 000016