JP2010079369A - データ処理システム、データプロセッサ及びバス調停方法 - Google Patents
データ処理システム、データプロセッサ及びバス調停方法 Download PDFInfo
- Publication number
- JP2010079369A JP2010079369A JP2008243908A JP2008243908A JP2010079369A JP 2010079369 A JP2010079369 A JP 2010079369A JP 2008243908 A JP2008243908 A JP 2008243908A JP 2008243908 A JP2008243908 A JP 2008243908A JP 2010079369 A JP2010079369 A JP 2010079369A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- bus
- setting
- arbitration
- priority
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】低優先度のプロセッサが行うバスアクセスにより高優先度のプロセッサのアクセス性能が低下されるのを抑制若する。
【解決手段】第1のプロセッサ(100)が第1の信号によって第2のプロセッサ(200−k)に調停開始要求を送信する。調停開始要求を受け取った第2のプロセッサはメモリ管理機構(270−k)によいバスアクセスを禁止し、調停要求を受け取る前に実行していたタスクの実行を再開する。第2のプロセッサがバスアクセスを伴う命令を実行したときは、当該第2のプロセッサのメモリ管理機構が当該アクセスを中止し、例外処理を要求して、第1のプロセッサから第2の信号によって調停終了通知を受信するまで待機する。第2のプロセッサは第1のプロセッサから調停終了通知を受信すると、そのメモリ管理機構をアドレス変換可能な状態に復帰させ、タスクの実行を再開する。このタスクの実行はバスアクセスを伴う命令からの再開となる。
【選択図】図1
【解決手段】第1のプロセッサ(100)が第1の信号によって第2のプロセッサ(200−k)に調停開始要求を送信する。調停開始要求を受け取った第2のプロセッサはメモリ管理機構(270−k)によいバスアクセスを禁止し、調停要求を受け取る前に実行していたタスクの実行を再開する。第2のプロセッサがバスアクセスを伴う命令を実行したときは、当該第2のプロセッサのメモリ管理機構が当該アクセスを中止し、例外処理を要求して、第1のプロセッサから第2の信号によって調停終了通知を受信するまで待機する。第2のプロセッサは第1のプロセッサから調停終了通知を受信すると、そのメモリ管理機構をアドレス変換可能な状態に復帰させ、タスクの実行を再開する。このタスクの実行はバスアクセスを伴う命令からの再開となる。
【選択図】図1
Description
本発明は、データ処理システム及びデータプロセッサに関し、特に、バスに共通接続された複数のプロセッサ間のアクセス調停方式に関し、例えばTAS処理を行なうマルチコアプロセッサシステムに適用して有効な技術に関するものである。
LSI集積技術の発展に伴い、ひとつのLSIの中に多数のプロセッサを搭載することが可能になっている。複数のプロセッサを備えるLSIは、LSI内のハードウェアが通信するための通信路(バス)を備えていることが少なくない。その形態のひとつとして、複数のハードウェアでひとつのバスを共有する形態があり、そのようなバスを共有バスと呼ぶ。
共有バスを用いる形態では、バスに接続されたハードウェアが同時にバスを使用しないようにするため、調停という手続きが必要になる。調停では、バスを使用しようとする複数のハードウェアの中から、たとえばラウンドロビン方式や優先順位方式に基づいて、実際にバスの使用を許可するハードウェアを選択する。調停の処理は、調停器と呼ばれるハードウェアを用いて実現する方法がよく知られている。調停器の種類には、集中調停器と呼ばれる、バスに備え付けられる調停器と、分散調停器と呼ばれる、ハードウェアごとに備え付けられる調停器がある。
特許文献1には、ソフトウェアによって優先度を設定可能な集中調停器を用いる方式が開示されている。この方式によれば、ソフトウェアが実行時にプロセッサの優先順位を変更できるため、ソフトウェアの状態を反映した調停を実現できる。また、特許文献1では、プロセッサが行うアクセスに優先度情報を付加し、その優先度情報にしたがって調停を行う集中調停器を用いる方法が提案されている。これによって、優先順位の高いプロセッサからのアクセスに対する応答性を高めることができる。
特許文献2には、動的に優先順位を設定できる集中調停器と、プロセッサが実行中のタスクに応じて前記集中調停器の優先順位を設定する優先度制御部を用いる方法が開示されている。これによれば、プロセッサで実行中のタスクに応じてプロセッサの優先順位が設定されるため、タスクの実行状況に応じた調停が実現できる。
特許文献3には、分散調停器を用いる調停方式として、共有バスに優先度情報を付加し、各プロセッサの分散調停器が優先度情報にしたがって判断を行うことで、集中調停器のみで調停を行う場合に必要な手順を簡略化し、高速に調停を行う方法が提案されている。
特許文献4には、共有バスに対するアクセスを調停器によらずに行う例として、プロセッサで共有する資源に対する排他制御を、各プロセッサと個別のローカルバスで接続した装置を用いて実現するための方法が提案されている。この方法によれば、各プロセッサと個別のバスで接続された装置が、共有資源への各プロセッサのアクセス状況を保持しているため、各プロセッサは共通バスを使用することなく、共有資源への排他制御を実現することができる。
従来技術では、一旦バスの使用権をプロセッサが獲得すると、使用権を獲得したプロセッサがバス使用権を解放するまで、使用権を獲得したプロセッサよりも優先順位の高いプロセッサがバスを使用することができないという課題があった。この課題について以下に詳しく説明する。
優先度による調停機能を持つバス調停器を備えたバスに対して、優先順位の高いプロセッサ(優先プロセッサ)と、優先順位の低いプロセッサ(一般プロセッサ)が、同時にアクセスを行った場合の、バスの使用状況を説明する。優先プロセッサと一般プロセッサが同時にアクセスすると、調停器の働きにより、優先プロセッサのアクセスが先に開始する。たとえば、優先プロセッサが読み込み要求を行うと同時に、一般プロセッサがバースト書き込みを行うと、調停器は優先プロセッサの読み込みを許可し、一般プロセッサを優先プロセッサの読み込み要求が完了するまで待機させる。
前述の状況と違い、優先プロセッサが、一般プロセッサのアクセスに遅れてアクセスを開始した場合の、バスの使用状況を説明する。一般プロセッサがバースト書き込みを開始すると、最初にバースト書き込みの開始を示す情報に続いて、書き込むデータを4個連続して転送する。一般プロセッサのバースト転送中に、優先プロセッサが読み込みアクセスを開始することはできないため、優先順位の高いプロセッサが、優先順位の低いプロセッサのアクセス完了まで待機してしまうことになる。
さらに、マルチプロセッサシステムでは、プロセッサ間の排他制御を行うために、テスト・アンド・セット(TAS)による排他制御の方法がよく知られている。TAS処理はあるメモリの領域に対してアトミック操作(不可分操作)で書き込みを行う処理であり、その領域に値をセットする前にテスト、例えばその領域の値が指定された値と同じであるかを判定し、同じであれば当該領域の内容を変更せず、異なればその値で当該領域の値を変更する。このTAS処理は、読み込みと書き込みの2通りのバスアクセスから成り立ち、双方のアクセスをアトミックに実行することが行われる。このため、一のプロセッサがTAS処理を実行中は、他のプロセッサがバスを使用できないようにロックする方法が一般に用いられている。しかしながら、いったんバスがロックされてしまうと、優先度の高いプロセッサであってもバスが使用できなくなるため、優先順位の低いプロセッサが行うロックが優先順位の高いプロセッサのアクセスを待機させてしまうことになる。
一般プロセッサがTAS処理を行っているときに、優先プロセッサがアクセスを開始した場合の、バスの使用状況を説明する。一般プロセッサは、TAS処理を開始すると、最初にバスをロックして、他のプロセッサがバスにアクセスできないようにする。そして、データの読み込み、書き込みを行ったあと、バスのロックを解放する。一般プロセッサがバスをロックしている間に、優先プロセッサがバスを使用することはできないため、優先順位の高いプロセッサが、優先順位の低いプロセッサのアクセス完了まで待機してしまうことになる。この場合、一般プロセッサのアクセスによる優先プロセッサの待機は、優先プロセッサが行うアクセスごとに発生する可能性があるため、多数のアクセスを行う処理では、遅延時間が累積し、処理に必要な実行時間が大きくなる。データ処理システムは最も時間と費やす状況を想定して設計されるため、実行時間には待機時間を含める必要になり、性能を確保するには、より高速なプロセッサなど、より高価なハードウェアを用いることが必要になる。
以上説明したように、優先度付き調停器を用いてプロセッサのアクセスを調停した場合であっても、優先度の高い処理が優先順位の低いプロセッサのアクセスから影響を受けてしまうという問題がある。
本発明の目的は、優先度の低いプロセッサが行うバスアクセスによって優先度の高いプロセッサのアクセス性能が低下されるのを抑制若しくは緩和することができるデータ処理及びバス調停の技術を提供することにある。
本発明の別の目的は、バスを使用する優先度の高い処理の実行にかかる時間を短縮することができ、データ処理性能に対するハードウェアコストの低減に資することができるデータ処理システム及びデータプロセッサを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、本発明に係るデータ処理システムにおいては、第1のプロセッサ(100)が第1の信号によって第2のプロセッサ(200−k)に調停開始要求を送信する。調停開始要求を受け取った第2のプロセッサは例えばメモリ管理機構(270−k)によってバスアクセスを禁止し、調停要求を受け取る前に実行していたタスクの実行を再開する。第2のプロセッサがバスアクセスを伴う命令を実行した場合には、当該第2のプロセッサのメモリ管理機構が当該アクセスを中止し、例外処理を要求して、第1のプロセッサから第2の信号によって調停終了通知を受信するまで待機する。第2のプロセッサは第1のプロセッサから調停終了通知を受信すると、例えばそのメモリ管理機構をアドレス変換可能な状態に復帰させて、タスクの実行を再開する。このタスクの実行は、バスアクセスを伴う命令の実行から再開するが、このときメモリ管理機構はバスアクセス許可に復帰されているため、前記バスアクセスを伴う命令は例外処理の介入なく実行され、タスクの実行が継続される。
したがって、本発明に係るデータ処理システムでは、第1のプロセッサは第2のプロセッサの影響を受けることなく、バスを伴う処理を優先的に実行することができる。
特に、バスアクセスの抑止の制御にアドレス管理機構(アドレス変換機構)におけるアドレス変換の可否の設定を用いることにより、例外処理レベルでバスアクセスの抑止を制御することができ、その制御をユーザプログラム若しくはアプリケーションプログラムに依存させなくて済む。換言すれば、既存のユーザプログラム若しくはアプリケーションプログラムを改変することなく上記バス調停を適用することが可能になる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
即ち、優先度の低いプロセッサが行うバスアクセスによって優先度の高いプロセッサのアクセス性能が低下されるのを抑制若しくは緩和することができる。
バスを使用する優先度の高い処理の実行にかかる時間を短縮することができ、データ処理性能に対するハードウェアコストの低減に資することができる。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明に係るデータ処理システムは、共有バス(10)と、前記共有バスに接続された第1のプロセッサ(100)と、前記共有バスに接続された少なくとも1つ以上の第2のプロセッサ(200−k)と、前記共有バスに接続され前記第1のプロセッサ及び第2のプロセッサによってアクセス可能にされる共有リソース(20)と、を備える。前記第2のプロセッサは前記第1のプロセッサから供給される第1の信号(80−k)に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行う。これにより、第2プロセッサがバスアクセス抑止を設定したあと、第1のプロセッサは共有バスを占有して使用することができるため、第1のプロセッサは第2のプロセッサの影響を受けることなく、共有バスを優先的に用いて処理を実行することができる。また、第1の信号に応答する処理は、第2プロセッサの既存の処理とは独立した処理とすることが可能であるから、第2プロセッサの既存の処理を改変することなく本発明を適用することができる。
〔2〕項1のデータ処理システムにおいて、前記第2のプロセッサは前記第1のプロセッサから供給される第2の信号(90−k)に応答して前記抑止する設定を解除する。
〔3〕項2のデータ処理システムにおいて、前記第2のプロセッサは、前記第1の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第2の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する。これにより、前記抑止の設定と解除を例外処理で行うことができ、既存のユーザプログラム若しくはアプリケーションプログラムを改変することなく上記バス調停を適用することが可能になる。
〔4〕項3のデータ処理システムにおいて、前記第2のプロセッサは複数のアドレス変換テーブルリエントリ(PTE#1〜PTE#n)を用いた連想記憶によって論理アドレスを前記共有リソースの物理アドレスに変換するメモリ管理機構を備える。前記第2のプロセッサは、アドレス変換テーブルリエントリの全てのバリッド情報(V)を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルリエントリに復帰することによって前記設定の解除を行う。アドレス変換テーブルリエントリのバリッド情報を用いることによって前記抑止の設定と解除の制御を簡単に実現可能になる。
〔5〕項4のデータ処理システムにおいて、前記バリッド情報の退避先は前記共有リソースの一部に配置された前記第2のプロセッサに共通のメモリ領域(20内の21−1〜21−N)である。バリッド情報の退避先を前記共有リソースの一部に割当てれば個々の第2プロセッサ内のローカルなメモリ領域をその領域を割くことを要しないが、当該領域のアクセスにはメモリ管理機構を用いなければならずそのためにアドレス変換テーブルリエントリを操作しなければならない。
〔6〕項4のデータ処理システムにおいて、バリッド情報の退避先は第2のプロセッサ内の論理アドレス空間に配置された第2プロセッサ毎の個別の内部メモリ領域(200−k内の21−k)である。これによれば、第2プロセッサの内部メモリ領域が費やされるが、当該領域のアクセスにはメモリ管理機構を用いることを要せず、そのためにアドレス変換テーブルリエントリを操作しなくて済む。
〔7〕項3乃至6の何れかのデータ処理システムにおいて、前記第2のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記メモリ管理機構によるアクセスエラーに起因して例外を発生し、前記第2の信号に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ。
〔8〕項1乃至7の何れかのデータ処理システムにおいて、前記共有バスはバス調停器を有する。前記バス調停器は第1のプロセッサ及び第2のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う。第2のプロセッサによる前記自立的なアクセス抑止は調停器の調停アルゴリズムの影響を受けない。
〔9〕項1乃至8の何れかのデータ処理システムは例えば1個の半導体基板に形成される。
〔10〕本発明に係るデータプロセッサは、共有バスに接続された第1のプロセッサ及び第2のプロセッサを有し、1個の半導体基板に形成される。前記第2のプロセッサは前記第1のプロセッサから出力される第1の信号に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行う。前記第2のプロセッサは前記第1のプロセッサから供給される第2の信号に応答して前記前記抑止する設定を解除する。
〔11〕項10記載のデータプロセッサにおいて、前記第2のプロセッサは、前記第1の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第2の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する。
〔12〕項11記載のデータプロセッサにおいて、前記第2のプロセッサは連想記憶によって論理アドレスを当該第2のプロセッサの外部の物理アドレスに変換するアドレス変換バッファを有する。前記第2のプロセッサは、前記アドレス変換バッファのエントリを復帰可能に無効化することによって前記抑止する設定を行い、前記アドレス変換バッファにエントリを復帰することによって前記設定の解除を行う。
〔13〕項12記載のデータプロセッサにおいて、前記アドレス変換バッファはエントリ毎にその有効性を示すバリッド情報を有する。前記第2のプロセッサは、そのアドレス変換バッファが保有する全てのエントリのバリッド情報を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルの全てのエントリに復帰することによって前記設定の解除を行う。
〔14〕項13記載のデータプロセッサにおいて、前記バリッド情報の退避先は前記バスに接続された前記第2のプロセッサに共通のメモリ領域である。
〔15〕項13記載のデータプロセッサにおいて、前記バリッド情報の退避先は第2のプロセッサ内の論理アドレス空間に配置された第2プロセッサ毎の個別の内部メモリ領域である。
〔16〕項10乃至15の何れかのデータプロセッサにおいて、前記バスはバス調停器を有する。前記バス調停器は第1のプロセッサ及び第2のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う。
〔17〕本発明に係るバス調停方法は、共有バスに接続された第1のプロセッサと少なくとも1個以上の第2のプロセッサとの間のバス調停方法であって、前記第1のプロセッサが前記第2のプロセッサに第1の信号を出力する第1処理と、前記第2のプロセッサが前記第1の信号に応答する例外処理によって前記共有バスを介するバスアクセスを自律的に抑止する設定を行ってから元の処理に復帰する第2処理と、前記第1のプロセッサが前記第2のプロセッサに第2の信号を出力する第3処理と、前記第2のプロセッサが前記第2の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する第4処理と、を含む。
〔18〕項17のバス調停方法において、前記第2のプロセッサは、前記共有バスをアクセスするとき、連想記憶によって論理アドレスを当該第2のプロセッサの外部の物理アドレスに変換するアドレス変換を行う。前記第2処理において前記第2のプロセッサは前記アドレス変換のためのエントリを復帰可能に無効化することによって前記抑止する設定を行う。前記第3処理において前記第2のプロセッサは前記アドレス変換のためのエントリを復帰することによって前記設定の解除を行う。
〔19〕項18のバス調停方法において、前記アドレス変換のためのエントリ毎のバリッド情報を操作することによってエントリの有効性を決定する。前記第2の処理において前記第2のプロセッサはそのアドレス変換のための全てのエントリのバリッド情報を退避してから無効化する操作を行うことによって前記抑止する設定を行う。前記第3処理において前記第2のプロセッサは退避したバリッド情報をアドレス変換のための全てのエントリに復帰することによって前記設定の解除を行う。
〔20〕項19のバス調停方法において、前記第2の処理において前記第2のプロセッサは前記バスに接続された前記第2のプロセッサに共通のメモリ領域にバリッド情報を退避する。
〔21〕項19のバス調停方法において、前記第2の処理において前記第2のプロセッサは第2のプロセッサ内の論理アドレス空間に配置された第2プロセッサ毎の個別の内部メモリ領域に前記バリッド情報を退避する。
〔22〕請求項19乃至21の何れかのバス調停方法において、前記第2のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記アドレス変換不能によるアクセスエラーに起因して例外を発生し、前記所定の終了要求に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ。
2.実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
《実施の形態1》
図1には本発明に係るデータ処理システムの構成が例示される。同図に示されるデータ処理システは、共有バス10と、前記共有バス10を調停する調停器11と、前記共有バスに接続したメモリ20と、前記共有バス10に接続した優先プロセッサ100と、前記共有バス10に接続したN個の一般プロセッサ200−1…200−Nとを有する。優先プロセッサ100は一般プロセッサ200−1…200−Nに比べて優先度の高いタスクに実行に割当てられたプロセッサとして位置付けられる。尚、本明細書においてサフィックス1〜Nの一つをkで代表する。例えば一般プロセッサ200−kは一般プロセッサ200−1〜200−Nの内の何れか1個を意味する。
図1には本発明に係るデータ処理システムの構成が例示される。同図に示されるデータ処理システは、共有バス10と、前記共有バス10を調停する調停器11と、前記共有バスに接続したメモリ20と、前記共有バス10に接続した優先プロセッサ100と、前記共有バス10に接続したN個の一般プロセッサ200−1…200−Nとを有する。優先プロセッサ100は一般プロセッサ200−1…200−Nに比べて優先度の高いタスクに実行に割当てられたプロセッサとして位置付けられる。尚、本明細書においてサフィックス1〜Nの一つをkで代表する。例えば一般プロセッサ200−kは一般プロセッサ200−1〜200−Nの内の何れか1個を意味する。
優先プロセッサ100は命令を実行するための図示を省略するCPU(中央処理装置)を備え、プロセッサが実行するプログラムとして調停要求プログラム180と、優先タスク110がある。N個の一般プロセッサ200−1〜200−Nの夫々は命令を実行するための図示を省略するCPU(中央処理装置)を備え、夫々の一般プロセッサ200−kが実行するプログラムとして調停応答プログラム280−kと、一般タスク210−kがある。
前記優先プロセッサ100と、前記各一般プロセッサ200−1〜200−Nとは、前記共有バス10を介して前記メモリ20にアクセスできる。前記共有バス10へ複数のプロセッサ100,200−1…200−Nから同時にアクセスが行われた場合、前記調停器11によって調停が行われる。
前記調停要求プログラム180は、調停要求部120と、調停終了部130と、を備える。前記優先タスク110は、前記調停要求部120と、前記調停終了部130を呼び出すことができる。前記調停要求部120は、各一般プロセッサ200−1〜200−Nへ第1の信号80−1〜80−Nにより調停開始要求を送信できる。前記調停終了部130は、各一般プロセッサ200−1〜200−Nへ第2の信号90−1〜90−Nにより調停終了通知を送信できる。
夫々の一般プロセッサ200−kは、割込みや例外が発生したときその割込み処理や例外処理から元の処理に復帰する為の情報を保持する退避情報記憶域240−kと、重ねて割り込みや例外が発生したとき退避情報記憶域240−kの情報を保持する復帰情報記憶域250−kと、メモリ管理機構270−kを備える。
前記調停応答プログラム280−kは、要求処理部220−kと、終了処理部230−kと、例外処理部260−kと、を備える。前記一般プロセッサ200−1〜200−Nは、前記優先プロセッサ100から調停開始要求を受信する手段を備える。また、夫々の一般プロセッサ200−1〜200−Nは、前記優先プロセッサ100に調停終了通知を送信するインタフェースを備えている。
図2には前記メモリ管理機構270−kの構成が例示される。メモリ管理機構270−kは、ページング方式によるメモリ管理のためのTLB(変換索引バッファ)271を備え、前記TLB271は、後述する手順によって前記要求処理部220−kと、前記終了処理部230−kとからも設定可能にされる。尚、前記メモリ管理機構270はページング方式によるメモリ管理機能を有しているものとして説明するが、ページング方式だけではなく、たとえばセグメンテーション方式によってメモリ管理機能を実現してもよい。
前記TLB271は、n個(nは少なくとも1)のPTE(ページテーブルエントリ)からなる配列となっており、各PTEは、VPN、PPN、Vのフィールドを備えている。VPNは仮想ページ番号を示し、PPNは物理ページ番号を示すものとする。Vは当該PTEが有効か無効かを示すバリッドビットであり、1のとき有効、0のとき無効を示すものとする。
前記夫々のメモリ管理機構270−kは、当該メモリ管理機構を備えている一般プロセッサ200−kがバスアクセスを伴う命令を実行したとき、Vが1、かつ、アクセス先アドレスに対応するVPNを持つPTEが前記TLB271に登録されていない場合には、前記例外処理部260を呼び出す。
前記一般プロセッサ200−1〜200−Nは夫々同様の構成を備える。特に制限されないが、ここでは一般タスク210−1〜210−Nは相違される。
前記メモリ20は、その一部の記憶領域に、N個の領域(V保存領域21−1〜21−N)を備える。V保存領域21−1〜21−Nの夫々には、少なくとも前記メモリ管理機構のTLB271に含まれるPTEの数のビット数を持つ値を格納できる。即ち、n個のPTEを前記メモリ管理機構が備える場合に、V保存領域21−1〜21−Nの夫々はnビットを格納できる。
上記データ処理システムにおけるバス調停動作について説明する。初期状態として、前記優先プロセッサ100は前記優先タスク110を実行しており、夫々の前記一般プロセッサ200−kは前記一般タスク210−kを実行しているものとする。
図3は本発明に係るデータ処理システムにおいて、前記優先プロセッサで動作している前記優先タスクが前記共有バスを優先して使用する必要のある処理(バス優先処理)を行うために、バスの優先的な使用を要求する手順を説明するためのフローチャートである。
まず、前記優先タスク110は、バス優先処理を実行する前に、前記調停要求部120に対して、バス10の優先使用を要求する(S110)。バスの優先使用が要求された前記調停要求部120は、プロセッサ間割り込みなどプロセッサ間で通信を行う手段を用いて、前記一般プロセッサ200−1〜200−Nまでの各プロセッサに調停開始要求を送信する(S120)。前記調停要求部120の処理が終了すると前記優先タスクの実行が再開され、これによって、前記優先タスクは、バス10を使用する優先処理を実行することができる(S130)。
一方、ステップS120において送信された調停開始要求を受信した一般プロセッサ200−kは、ステップS300から示すような調停処理の手順を行う。前記一般プロセッサ200−kは、調停開始要求を受信すると、まず、そのとき実行している前記一般タスク210−kを中断し、前記一般タスク210−kの実行を再開するための情報を退避情報記憶域240−kに格納し、前記要求処理部220−kを実行する(S310)。前記要求処理部220−kは、前記メモリ管理機構270−kを、バスアクセス禁止に設定する(S320)。その後、前記要求処理部220は、前記退避情報記憶域240に格納されている情報を使用して、前記一般タスク210−kの実行に復帰する(S330)。
図4にはステップS320における前記メモリ管理機構をバスアクセス禁止に設定するための手順が示される。
まず、変数Xを0、変数mを1にする(S205)。次に、変数Xの第mビットを1にする(S215)。次に、前記メモリ管理機構270―kの前記TLB中のPTE#mのPPNがバスアクセスを行うアドレス領域であるかをそのVに基づいて判定する(S210)。判定の結果、PPNがバスアクセスを発生させるページ番号を示していた場合には、ステップS245に移り、それ以外の場合には、ステップS220に移る。ステップS245では、前記PTE#mのVビットを0に設定する。ステップS220では、mを1増加させる。次に、mがn以下であるかどうか判断する(S225)。mがn以下の場合には、S215に移り、それ以外の場合には、ステップS230に移る。S225においてmがn以下でないと判定されたとき、変数Xは、S320の処理が開始される前のPTE#1〜#nの各Vの値を保持していることになる。そしてそのときのPTE#1〜#nの各Vの値は0にされる。S230では、PTE#1のVPN(仮想ページ番号)の値を変数Aに読み込み、PPN(物理ページ番号)の値を変数Bに格納する。次に、前記PTE#1のVPNとPPNを、前記V保存領域21−1のページ番号に設定し、Vビットを1にする(S235)。これによって、一般プロセッサ210−kはV保存領域21−1へアクセス可能になる。次に、変数Xを前記V保存領域21−1に格納する(S240)。次に、変数Aの値を前記PTE#1のVPNに設定し、変数Bの値を前記PTE#1のPPNに設定し、変数Xの第1ビットを前記PTE#1のVビットに設定する(S250)。これにより、S320の処理が開始される直前に一般プロセッサ200−kが保有するPTE#1〜#nの各Vの値が対応するV保存領域21−kに退避完了さて、且つ、一般プロセッサ200−kが保有するPTE#1〜#nの各Vの値が0にされ、一般プロセッサ200−kのメモリ管理機構270−kはアクセス禁止の状態に設定完了される。上記処理手順は夫々の一般プロセッサ200−1〜200−Nで実施される。
図5は本発明に係るデータ処理システムにおいて、前記優先タスクがバス優先処理を開始し、前記一般プロセッサが前記優先プロセッサから送信された調停開始要求を受信した後の時点において、前記一般タスクが行ったバスアクセスを阻止する手順を説明するためのフローチャートである。要するに、図3のステップS330において一般プロセッサ200−kが一般タスク210−kの実行を再開したときバスアクセスを必要とするときそのバスアクセスが抑止される手順を示す。
まず、前記一般タスクが、バスアクセスを発生させる命令を実行する(S410)。しかしながら、前記ステップS320によって前記メモリ管理機構270−kはバスアクセスを禁止するように設定されているため、前記メモリ管理機構270−kはアクセスエラーの例外を発生し、前記命令によるバスアクセスを発生させず、前記一般タスクの実行を再開するための情報を前記退避情報記憶域240−kに格納し、前記例外処理部260−kを呼び出す(S420)。前記例外処理部260−kは、前記退避情報記憶域240−kに格納された前記一般タスクを再開するための情報(中断した一般タスクに復帰するための情報)を、前記復帰情報記憶域250−kにコピーする(S430)。さらに、前記例外処理部260−kは、前記終了処理部230−kが前記優先プロセッサ100から調停終了要求を受信して呼び出されるまで待機する(S440)。
図6は本発明に係るデータ処理システムにおいて前記優先タスクからバス優先処理の終了を通知されたときの処理手順を説明するためのフローチャートである。
まず、前記優先タスク110が、前記調停終了部130に対して、優先使用終了を通知する(S510)。優先使用終了を通知された前記調停終了部130は、プロセッサ間割り込みなどプロセッサ間で通信を行う手段を用いて、200−1〜200−kまでの各一般プロセッサに調停終了通知を送信する(S520)。
一方、ステップS520で送信された調停終了通知を受信した一般プロセッサは、終了処理部230−kを呼び出してステップS600乃至ステップS650の処理を行う。即ち、前記一般プロセッサ200−kは、調停終了通知を受信すると、先ず、例外処理部260−kへの戻り先情報を前記退避情報記憶域240−kに退避してから前記終了処理部230−kが実行される。(S610)。前記終了処理部230−kは、前記メモリ管理機構270−kを、バスアクセス許可に設定する(S620)。バスアクセス許可への設定後、前記退避情報記憶域240−kに格納されている情報を使用して、前記例外処理部260−kの実行を再開する(S630)。前記例外処理部260−kの実行が再開されると、前記例外処理部260−kは、前記復帰情報記憶域250−kに格納されている、前記一般タスクの実行を再開する情報を使用して、前記一般タスクの実行を再開する(S640)。次に、実行を再開した前記一般タスクは、バスアクセスを伴う命令を再度実行する(S650)。このときは、ステップS410と異なり、前記メモリ管理機構270−kがバスアクセス許可に設定されているため、前記一般タスクが実行したバスアクセスを伴う命令は、前記例外処理部260−kが介入することなく実行される。
図7にはステップS620において前記メモリ管理機構270−kをバスアクセス許可に設定するための手順がフローチャートによって示される。
まず、前記メモリ管理機構270−kの前記TLBに含まれるPTE#1のVPNを変数Aに保存し、PPNを変数Bに保存する(S810)。次に、前記PTE#1のVPNとPPNを、前記V保存領域21−1のページ番号に設定し、Vビットを1にする(S820)。これによって、前記V保存領域21−1へアクセス可能になる。次に、前記V保存領域21−1の値を変数Xに格納する(S830)。次に、変数Aの値を前記PTE#1のVPNに設定し、変数Bの値を前記PTE#1のPPNに設定する(S840)。次に、変数mを1にする(S850)。次に、変数Xの第mビットの値をPTE#mのVビットに設定する(S860)。次に、mを1増加させる(S870)。次に、mがn以下であるかどうか判断する(S880)。判断の結果、mがn以下であれば、ステップS860に移る。それ以外の場合には、ステップS899に移り、前記メモリ管理機構270−kをバスアクセス許可に設定するための手順を終了する。これにより、メモリ管理機構270−kのTLBにおけるPTE#1〜PTE#nの全てのVがV保存領域21−kから復帰され、前記メモリ管理機構270−kはバスアクセス可能な状態に戻される。
次に、図3のステップS320によって前記メモリ管理機構270−kがバスアクセス禁止に設定された後、前記一般プロセッサ200−kが調停終了通知を受信するまで、前記一般タスク210−kがバスアクセスを伴う命令を実行しなかった場合について説明する。この場合には例外処理部260−kが実行されないまま終了処理部230−kが実行される。すなわち、図3のステップS330の後、前記一般タスクがバスアクセスを伴う命令を実行しないまま、前記一般プロセッサ200−kが調停終了通知を受信すると、前記一般タスク210−kを再開するための情報が前記退避情報記憶域240−kに格納され、前記終了処理部230−kが呼び出された実行される(S610)。前記終了処理部230−kは、前記メモリ管理機構270−kをバスアクセス許可に設定する(S620)。さらに、前記終了処理部230−kの処理が終了されると、前記退避情報記憶域240−kに格納されている前記一般タスク210−kへの復帰のための情報を用いて、前記一般タスク210−kの実行が再開されれる(S630)。以降は、前記一般タスク210−kがバスアクセスを伴う命令を実行した場合であっても、前記メモリ管理機構270−kがバスアクセス許可に設定されているため、前記例外処理部260−kの介入なしに、実行が継続される。
図11は本発明に係るデータ処理システムにおける優先プロセッサおよび一般プロセッサによるアクセス動作の一例が示されるタイミングチャートである。
優先タスク110はバス優先処理を実行する前に、調停開始要求を一般プロセッサ200−kに対して送信する。一般プロセッサ20−kは、調停開始要求を受け取ると、それ以降のバスアクセスを保留するようになる。ただし、調停開始要求を優先プロセッサ100の送信と同時に一般プロセッサ200−kが受信できるとは限らないため、通常は送信から受信までに時間差が生じる。一般プロセッサ200−kが調停開始要求を受信した後は、たとえばバスロックなどの操作を一般プロセッサ200−kが実行しないようになるため、優先プロセッサ100が行うバスアクセスは、直ちに実行されることが保証できる。
優先プロセッサ100は、バス優先処理が完了すると、一般プロセッサ200−kに対して調停終了通知を送信する。一般プロセッサ200−kは、調停終了通知を受信すると、それまで保留していたアクセスを行い、一般タスクの実行を再開する。
上述のバスアクセス抑止の構成を採用していないデータ処理システムにおいては、優先タスクがバスを優先的に使用する処理を実行中であっても、優先プロセッサがバスアクセスしないときは、各一般プロセッサはバスへアクセスが可能だった。したがって、図12の場合は問題ないが、図13、図14に例示されるように、いずれかの一般プロセッサがバスの使用を開始してしまうと、優先プロセッサで動作する優先タスクの処理に影響する。
本発明に係るデータ処理システムにおいては、優先タスク110の調停要求によって調停要求部120が一般プロセッサ200−kに調停開始要求を送信する。調停開始要求を受け取った一般プロセッサ200−kは、要求処理部220−kを呼び出し、要求処理部220−kは、メモリ管理機構270−kによってバスアクセスを禁止し、調停要求を受け取る前に実行していた一般タスクの実行を再開する。一般タスク200−kがバスアクセスを伴う命令を実行した場合には、一般プロセッサ200−kのメモリ管理機構270−kが当該アクセスを中止し、例外処理部260−kを呼び出し、例外処理部260−kは優先プロセッサ100から調停終了通知を受信するまで待機する。一般プロセッサ200−kが優先プロセッサ100から調停終了通知を受信すると、終了処理部230−kがバスアクセスを許可するようにメモリ管理機構270−kを設定し、例外処理部260−kの実行を再開し、実行を再開した例外処理部260−kは、一般タスク200−kの実行を再開する。一般タスク200−kの実行は、バスアクセスを伴う命令から再開するが、このときメモリ管理機構270−kはバスアクセス許可に設定されているため、前記バスアクセスを伴う命令は例外処理部260−kの介入なく実行され、一般タスク200−kの実行が継続される。
したがって、本発明に係るデータ処理システムでは、一般プロセッサ200−kのメモリ管理機構270−kがバスアクセス禁止に設定されたあと、優先タスク100がバス10を占有して使用することができるため、優先タスク100は一般タスク210−kの影響を受けることなく、バス優先処理を実行することができる。
また、従来技術では、複数のプロセッサが共有バスなどの共有資源を排他的に使用する場合に、各プロセッサで動作するタスクが明示的に排他制御を行う必要があった。本発明に係るデータ処理システムでは、優先プロセッサ100から送信される調停開始要求や調停終了通知に応答するための処理を調停応答プログラム280−kによって行い、一般タスク200−kは、優先プロセッサ100から送信される調停開始要求や調停終了通知に応答するための処理を含むことを要しない。したがって、本発明の活用に当たって、一般タスクを変更する必要がないという利点がある。
《実施の形態2》
図8には本発明に係るデータ処理システムの別の例が示される。V保存領域を夫々の一般プロセッサが備える固有メモリ領域に割り当てた点が図1と相違する。なお、改めて説明する必要のない要素については、本発明の実施の形態1と同じ参照符号を用いて、その詳細な説明を省略する。
図8には本発明に係るデータ処理システムの別の例が示される。V保存領域を夫々の一般プロセッサが備える固有メモリ領域に割り当てた点が図1と相違する。なお、改めて説明する必要のない要素については、本発明の実施の形態1と同じ参照符号を用いて、その詳細な説明を省略する。
図8においてメモリ20は、図1と異なり、内部にV保存領域を必ずしも含む必要はない。図8では、一般プロセッサ200b−1〜200b−N(200b−k)は、図1の一般プロセッサ200b−kの構成に加えて、対応するV保存領域21−kを備える。また、図8の場合のV保存領域21−kは、対応する一般プロセッサ200b−kのメモリ管理機構270−kによってアクセスが制御されない。例えば、V保存領域21−kは対応する一般プロセッサ200b−k内部のローカルなメモリ空間に配置され、仮想記憶の対象にされないと言うことである。一般プロセッサ200b−kはアドレス変換無しで自らのV保存領域21−kをアクセスすることができる。
次に、図8のデータ処理システムにおいけるばすアクセス動作について説明する。なお、改めて説明する必要のない動作については、実施の形態1と同じ符号を用い、その詳細な説明を省略する。
初期状態として、前記優先プロセッサ100は前記優先タスク110を実行しており、前記一般プロセッサ200b−kは前記一般タスク210−kを実行しているものとする。
前記優先プロセッサ100で動作している前記優先タスク110が前記共有バス10を優先して使用する必要のある処理(バス優先処理)を行うために、バスの優先的な使用を要求する手順については、実施の形態1と同様である。
前記一般プロセッサ200b−kが前記優先プロセッサ100から調停開始要求を受信したときの、一般プロセッサ200b−kにおける調停処理の手順については、次に述べるステップS320における処理を除き、実施の形態1と同様である。
図9はステップS320において前記メモリ管理機構をバスアクセス禁止に設定するための手順を説明するためのフローチャートである。
まず、変数Xを0、変数mを1にする(S205)。次に、変数Xの第mビットを1にする(S215)。次に、前記メモリ管理機構270−kの前記TLB中のPTE#mのPPNがバスアクセスを行うアドレス領域であるか判定する(S210)。判定の結果、PPNがバスアクセスを発生させるページ番号を示していた場合には、ステップS245に移り、それ以外の場合には、ステップS220に移る。ステップS245では、前記PTE#mのVビットを0に設定する。ステップS220では、mを1増加させる。次に、mがn以下であるかどうか判断する(S225)。mがn以下の場合には、S215に移り、それ以外の場合には、S230に移る。次に、変数Xを前記V保存領域1に格納する(S240)。
図9におけるバスアクセス禁止手順は、実施の形態1におけるバスアクセス禁止手順から、ステップS230と、ステップS235と、ステップS250を取り除き、より高速に実行できるようにしたものである。図8のV保存領域21−kは、前記メモリ管理機構270−kの状態によらずにアクセス可能であるため、ステップS245において前記メモリ管理機構270−kに含まれるPTEのVビットを0にしても、ステップS240を実行することができる。要するに、変数XをV保存領域21−kに格納するのにメモリ管理機構270−kを用いなくてもよい、ということである。
図8のデータ処理システムにおいて、前記優先タスク110がバス優先処理を開始し、前記一般プロセッサ200b−kが前記優先プロセッサ100から送信された調停開始要求を受信した後、前記一般タスク200b−kが行ったバスアクセスを阻止する手順については、実施の形態1と同様である。また、前記優先タスク110からバス優先処理の終了を通知されたときの処理手順についても実施の形態1と同様である。
図8のデータ処理システムにおいて、前記一般タスク210−kの実行が前記例外処理部260−kで停止している状態で、前記一般プロセッサ200b−kが調停終了通知を受信したときの処理手順については、次に述べるステップS620における処理を除き、実施の形態1と同様である。
図10はステップS620において前記メモリ管理機構270−kをバスアクセス許可に設定するための手順を例示するフローチャートである。
まず、前記V保存領域21−kの値を変数Xに格納する(S830)。次に、変数mを1にする(S850)。次に、変数Xの第mビットの値をPTE#mのVビットに設定する(S860)。次に、mを1増加させる(S870)。次に、mがn以下であるかどうか判断する(S880)。判断の結果、mがn以下であれば、ステップS860に移る。それ以外の場合には、ステップS899に移り、前記メモリ管理機構270−kをバスアクセス許可に設定するための手順を終了する。
上記バスアクセス許可手順は、実施の形態1における図7のバスアクセス許可手順から、ステップS810と、ステップS820と、ステップS840を取り除き、より高速に実行できるようにしたものである。図8の前記V保存領域21−kは、前記メモリ管理機構270−kの状態によらずにアクセス可能であるため、バスアクセス禁止状態でも、ステップS830でV保存領域21−kから値を読み込むことができる。
本発明に係るデータ処理システムにおいて、図6のステップS630の後の前記例外処理部の処理については実施の形態1と同様である。
図8のデータ処理システムにおいて、図3のステップS320によって前記メモリ管理機構270−kがバスアクセス禁止に設定された後、前記一般プロセッサ200b−kが調停終了通知を受信するまで、前記一般タスク210−kがバスアクセスを伴う命令を実行しなかった場合の手順は、実施の形態1と同様である。
図8のデータ処理システムでは、実施の形態1とは異なり、各一般プロセッサのメモリ管理機構をバスアクセス許可または禁止に設定する手順において、前記メモリ管理機構に含まれるPTE#1のVPNおよびPPNの値を読み込んで退避する手順と書き戻す手順とを実行しない。要するに、変数XをV保存領域21−kに格納するのにメモリ管理機構270−kを用いなくてもよい。また、前記各一般プロセッサがそれぞれV保存領域を備えることにより、前記メモリ管理機構をバスアクセス許可または禁止に設定する手順においてメモリ20に対するバスアクセスが発生しない。したがって、図8のデータ処理システムでは、一般プロセッサ200b−kが優先プロセッサ100から受信した調停開始要求および調停終了通知に対する処理を高速に行うことができる。また、一般プロセッサ200b−kのメモリ管理機構270−kがバスアクセスを禁止に設定された後、優先タスク110がバス10を占有して使用することができるため、優先タスク110は一般タスク210−kの影響を受けることなく、バスアクセスを伴う処理を実行することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、第2信号による調停終了通知に代えて、第2のプロセッサとしての一般プロセッサが例えばタイマを備え、このタイマのタイムアップに呼応して当該第2プロセッサはそのメモリ管理機構のアクセス抑止状態を解除するようにしてもよい。本明細書では例外処理と割込み処理は厳密に区別していないが、例外処理はマスク不可能であり、割込み処理よりも優先度が高い処理と位置ずけられる。バス調停器の調停アルゴリズムとしては排他制御アルゴリズム又はスプリット・トランザクション・バスにおけるパケット単位の調停アルゴリズム等であってよい。データ処理システムは、単体の半導体集積回路から構成されたシングルチップ構成、あるいは複数の半導体集積回路から構成されたマルチグルチップ構成の何れであってもよい。
10 共有バス
20 メモリ
21−1〜21−N V保存領域
100 優先プロセッサ
110 優先タスク
120 調停要求部
130 調停終了部
180 調停要求プログラム
200−1〜200−N 一般プロセッサ
200b−1〜200b−N 一般プロセッサ
210−1〜210−N 一般タスク
220−1〜220−N 要求処理部
230−1〜230−N 終了処理部
240−1〜240−N 退避情報記憶域
250−1〜250−N 復帰情報記憶域
260−1〜260−N 例外処理部
270−1〜270−N メモリ管理機構
280−1〜280−N 調停応答プログラム
20 メモリ
21−1〜21−N V保存領域
100 優先プロセッサ
110 優先タスク
120 調停要求部
130 調停終了部
180 調停要求プログラム
200−1〜200−N 一般プロセッサ
200b−1〜200b−N 一般プロセッサ
210−1〜210−N 一般タスク
220−1〜220−N 要求処理部
230−1〜230−N 終了処理部
240−1〜240−N 退避情報記憶域
250−1〜250−N 復帰情報記憶域
260−1〜260−N 例外処理部
270−1〜270−N メモリ管理機構
280−1〜280−N 調停応答プログラム
Claims (22)
- 共有バスと、
前記共有バスに接続された第1のプロセッサと、
前記共有バスに接続された少なくとも1つ以上の第2のプロセッサと、
前記共有バスに接続され前記第1のプロセッサ及び第2のプロセッサによってアクセス可能にされる共有リソースと、を備え、
前記第2のプロセッサは前記第1のプロセッサから供給される第1の信号に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行う、データ処理システム。 - 前記第2のプロセッサは前記第1のプロセッサから供給される第2の信号に応答して前記抑止する設定を解除する、請求項1記載のデータ処理システム。
- 前記第2のプロセッサは、前記第1の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第2の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する、請求項2記載のデータ処理システム。
- 前記第2のプロセッサは複数のアドレス変換テーブルリエントリを用いた連想記憶によって論理アドレスを前記共有リソースの物理アドレスに変換するメモリ管理機構を備え、
前記第2のプロセッサは、アドレス変換テーブルリエントリの全てのバリッド情報を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルリエントリに復帰することによって前記設定の解除を行う、請求項3記載のデータ処理システム。 - 前記バリッド情報の退避先は前記共有リソースの一部に配置された前記第2のプロセッサに共通のメモリ領域である、請求項4記載のデータ処理システム。
- バリッド情報の退避先は第2のプロセッサ内の論理アドレス空間に配置された第2プロセッサ毎の個別の内部メモリ領域である、請求項4記載のデータ処理システム。
- 前記第2のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記メモリ管理機構によるアクセスエラーに起因して例外を発生し、前記第2の信号に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ、請求項3乃至6の何れか1項記載のデータ処理システム。
- 前記共有バスはバス調停器を有し、
前記バス調停器は第1のプロセッサ及び第2のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う、請求項1乃至7の何れか1項記載のデータ処理システム。 - 1個の半導体基板に形成された請求項1乃至8の何れか1項記載のデータ処理システム。
- 共有バスに接続された第1のプロセッサ及び第2のプロセッサを有し、1個の半導体基板に形成されたデータプロセッサであって、
前記第2のプロセッサは前記第1のプロセッサから出力される第1の信号に応答して前記共有バスを介するバスアクセスを自律的に抑止する設定を行い、
前記第2のプロセッサは前記第1のプロセッサから供給される第2の信号に応答して前記前記抑止する設定を解除する、データプロセッサ。 - 前記第2のプロセッサは、前記第1の信号に応答する例外処理によって前記抑止する設定を行ってから元の処理に復帰し、前記第2の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する、請求項10記載のデータ処理システム。
- 前記第2のプロセッサは連想記憶によって論理アドレスを当該第2のプロセッサの外部の物理アドレスに変換するアドレス変換バッファを有し、
前記第2のプロセッサは、前記アドレス変換バッファのエントリを復帰可能に無効化することによって前記抑止する設定を行い、前記アドレス変換バッファにエントリを復帰することによって前記設定の解除を行う、請求項11記載のデータプロセッサ。 - 前記アドレス変換バッファはエントリ毎にその有効性を示すバリッド情報を有し、
前記第2のプロセッサは、そのアドレス変換バッファが保有する全てのエントリのバリッド情報を退避してから無効化することによって前記抑止する設定を行い、退避したバリッド情報をアドレス変換テーブルの全てのエントリに復帰することによって前記設定の解除を行う、請求項12記載のデータプロセッサ。 - 前記バリッド情報の退避先は前記バスに接続された前記第2のプロセッサに共通のメモリ領域である、請求項13記載のデータプロセッサ。
- 前記バリッド情報の退避先は第2のプロセッサ内の論理アドレス空間に配置された第2プロセッサ毎の個別の内部メモリ領域である、請求項13記載のデータプロセッサ。
- 前記バスはバス調停器を有し、
前記バス調停器は第1のプロセッサ及び第2のプロセッサからのバスアクセス要求を所定のバス調停アルゴリズムに従って調停する制御を行う、請求項10乃至15の何れか1項記載のデータプロセッサ。 - 共有バスに接続された第1のプロセッサと少なくとも1個以上の第2のプロセッサとの間のバス調停方法であって、
前記第1のプロセッサが前記第2のプロセッサに第1の信号を出力する第1処理と、
前記第2のプロセッサが前記第1の信号に応答する例外処理によって前記共有バスを介するバスアクセスを自律的に抑止する設定を行ってから元の処理に復帰する第2処理と、
前記第1のプロセッサが前記第2のプロセッサに第2の信号を出力する第3処理と、
前記第2のプロセッサが前記第2の信号に応答する例外処理によって前記設定の解除を行ってから元の処理に復帰する第4処理と、を含むバス調停方法。 - 前記第2のプロセッサは、前記共有バスをアクセスするとき、連想記憶によって論理アドレスを当該第2のプロセッサの外部の物理アドレスに変換するアドレス変換を行い、
前記第2処理において前記第2のプロセッサは前記アドレス変換のためのエントリを復帰可能に無効化することによって前記抑止する設定を行い、
前記第3処理において前記第2のプロセッサは前記アドレス変換のためのエントリを復帰することによって前記設定の解除を行う、請求項17記載のバス調停方法。 - 前記アドレス変換のためのエントリ毎のバリッド情報を操作することによってエントリの有効性を決定し、
前記第2の処理において前記第2のプロセッサはそのアドレス変換のための全てのエントリのバリッド情報を退避してから無効化する操作を行うことによって前記抑止する設定を行い、
前記第3処理において前記第2のプロセッサは退避したバリッド情報をアドレス変換のための全てのエントリに復帰することによって前記設定の解除を行う、請求項18記載のバス調停方法。 - 前記第2の処理において前記第2のプロセッサは前記バスに接続された前記第2のプロセッサに共通のメモリ領域にバリッド情報を退避する、請求項19記載のバス調停。
- 前記第2の処理において前記第2のプロセッサは第2のプロセッサ内の論理アドレス空間に配置された第2プロセッサ毎の個別の内部メモリ領域に前記バリッド情報を退避する、請求項19記載のバス調停方法。
- 前記第2のプロセッサは、前記抑止する設定を行ってから元の処理に復帰した後、前記共有リソースをアクセスする処理を実行しようとしたとき前記アドレス変換不能によるアクセスエラーに起因して例外を発生し、前記所定の終了要求に応答する例外処理によって前記設定の解除を行うまで、前記共有リソースをアクセスする処理の実行を待つ、請求項19乃至21の何れか1項記載のバス調停方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008243908A JP2010079369A (ja) | 2008-09-24 | 2008-09-24 | データ処理システム、データプロセッサ及びバス調停方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008243908A JP2010079369A (ja) | 2008-09-24 | 2008-09-24 | データ処理システム、データプロセッサ及びバス調停方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010079369A true JP2010079369A (ja) | 2010-04-08 |
Family
ID=42209781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008243908A Withdrawn JP2010079369A (ja) | 2008-09-24 | 2008-09-24 | データ処理システム、データプロセッサ及びバス調停方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010079369A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113544600A (zh) * | 2019-03-15 | 2021-10-22 | 欧姆龙株式会社 | 控制系统、中继装置以及中继程序 |
-
2008
- 2008-09-24 JP JP2008243908A patent/JP2010079369A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113544600A (zh) * | 2019-03-15 | 2021-10-22 | 欧姆龙株式会社 | 控制系统、中继装置以及中继程序 |
CN113544600B (zh) * | 2019-03-15 | 2024-04-05 | 欧姆龙株式会社 | 控制系统、中继装置以及记录介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3871305B2 (ja) | マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化 | |
US8572626B2 (en) | Symmetric multi-processor system | |
US20080086729A1 (en) | Data processor | |
US20070294702A1 (en) | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors | |
US6792497B1 (en) | System and method for hardware assisted spinlock | |
JP2002163105A (ja) | データ依存関係検出装置 | |
US9201691B2 (en) | Method, apparatus and system for coordinating execution of tasks in a computing system having a distributed shared memory | |
JPH0760422B2 (ja) | 記憶ロツク方式 | |
WO2010067492A1 (ja) | マルチプロセッサシステム及びその排他制御の調停方法 | |
US20060059489A1 (en) | Parallel processing system, interconnection network, node and network control method, and program therefor | |
JP2007334564A (ja) | ユニファイドメモリシステム | |
US20110161644A1 (en) | Information processor | |
CA2245976A1 (en) | Symmetric multi-processor system and method | |
US7844782B2 (en) | Data processing system with memory access | |
US20080034193A1 (en) | System and Method for Providing a Mediated External Exception Extension for a Microprocessor | |
JPH11282815A (ja) | マルチスレッド計算機システム及びマルチスレッド実行制御方法 | |
TWI676935B (zh) | 處理中斷優先級的電路系統 | |
US6701429B1 (en) | System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location | |
US7103528B2 (en) | Emulated atomic instruction sequences in a multiprocessor system | |
JP2010079369A (ja) | データ処理システム、データプロセッサ及びバス調停方法 | |
JP2006268753A (ja) | Dma回路及びコンピュータシステム | |
US6502150B1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
JPH08292932A (ja) | マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法 | |
JP2004062910A (ja) | マルチコアプロセッサにセマフォを具現化し、共通資源へのアクセスを制御する方法 | |
JPH1125036A (ja) | 調停システム、およびアクセスを調停する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100527 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20111206 |