JP3168489B2 - Tlb制御方法及び装置 - Google Patents

Tlb制御方法及び装置

Info

Publication number
JP3168489B2
JP3168489B2 JP11012193A JP11012193A JP3168489B2 JP 3168489 B2 JP3168489 B2 JP 3168489B2 JP 11012193 A JP11012193 A JP 11012193A JP 11012193 A JP11012193 A JP 11012193A JP 3168489 B2 JP3168489 B2 JP 3168489B2
Authority
JP
Japan
Prior art keywords
tlb
address
page address
logical page
flag
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
Application number
JP11012193A
Other languages
English (en)
Other versions
JPH06324946A (ja
Inventor
泰生 ▲廣▼田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP11012193A priority Critical patent/JP3168489B2/ja
Publication of JPH06324946A publication Critical patent/JPH06324946A/ja
Application granted granted Critical
Publication of JP3168489B2 publication Critical patent/JP3168489B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、フル・アソシアティブ
方式の変換索引バッファ(Translation Lookaside Buff
er:以下TLBと略す)を有するマイクロプロセッサ
(以下MPUと略す)におけるTLB制御方法及び装置
に関し、特にMPUがTLBフォルト処理を行う例外処
理で、特定のマスク・レベルを有しない場合におけるT
LB制御方法及び装置に関するものである。
【0002】例えば68000系のMPUでは、TLB
フォルトが発生すると、バス・エラーとしてMPUに通
知され、処理されるようになっている。また68000
系のMPUでは、バス・エラーが発生して、バス・エラ
ーの例外処理が動作し始めても、割り込みに対するMP
Uのマスク・レベルは、バス・エラーが発生する以前
の、プログラム走行レベルのままに維持されるようにな
っており、通常は、バス・エラーの例外処理における先
頭の命令で、マスク・レベルを最大の値(レベル7)に
セットしたのちに、バス・エラー処理が行われる。
【0003】ところが、バス・エラーの例外処理のため
のスタック動作と、バス・エラー例外処理における先頭
の命令との間で、そのときのプログラム走行レベルより
も高いレベルの割り込み要因があると、バス・エラー例
外処理における先頭の命令を実行する前にこの割り込み
が受け付けられて、割り込み処理が優先して行われるこ
とになる。
【0004】そのため、このような種類のMPUにおい
ては、マルチ・タスク環境でプログラムが動作している
場合に、各プロセスに共通な領域に対して、TLBフォ
ルト処理の要求がバス・エラー処理に対して2回発生
し、そのため同一アドレスに対して2つのエントリがT
LBにセットされることにより、ダブル・セレクト・エ
ラーが発生し易いが、このような場合でも、正しく論理
ページアドレスを物理ページアドレスに変換できるよう
にすることが求められている。
【0005】
【従来の技術】図6は、従来の、および本発明が適用さ
れるシステム構成を示したものであって、1はMPUを
示し、2はメモリ・マネージメント・ユニット(以下M
MUと略す)であって、メモリに対するアドレス変換機
構を形成する。3はメモリ制御部であって、メモリ4の
制御を行う。
【0006】図6において、MPU1から論理アドレス
が出力されたとき、MMU2は、論理アドレスに基づい
て、これを物理アドレスに変換してアドレス線(AD
R)に出力する。メモリ制御部3は、この物理アドレス
をメモリ・アドレスとして出力することによって、メモ
リ4からアドレスに対応するデータが出力される。図
中、CTLはコントロール線を示している。
【0007】図7は、従来の、および本発明が適用され
るMMUの内部ロジックを示したものである。11はエ
ントリ数nに対応するTLBであって、MPUのデータ
における論理ページアドレスと物理ページアドレスとが
それぞれエントリされる。またIはそのエントリが無効
化されたことを示す無効ビット、Rはそのエントリが参
照(リードまたはライト)されたことを示す参照ビッ
ト、Cはそのエントリが更新されたことを示す更新ビッ
トである。12はn個の比較回路であって、MPUのア
ドレスにおける論理ページアドレスと、各TLBにエン
トリされている論理ページアドレスとを比較する。13
はn個のAND回路であって、各比較回路における比較
一致時、TLBにセットされたMPUの論理ページアド
レスに対応する物理ページアドレスを出力する。14は
ダブル・セレクト・エラー検出部であって、2個以上の
比較回路における比較一致時、ダブル・セレクト・エラ
ーを出力する。
【0008】MPUのアドレスは、論理ページアドレス
とページ内アドレスとからなっている。またTLBにセ
ットされるMPUのデータは、図6に示されたメモリ4
に予め格納されているアドレス変換テーブルから読み出
された、論理ページアドレスと物理ページアドレスとか
らなっている。比較回路12において、論理ページアド
レスの一致が検出されたとき、AND回路13を介して
TLBにエントリされた物理ページアドレスが出力さ
れ、MPUのアドレスにおけるページ内アドレスが無変
換で付加されて、図6に示されたメモリ制御部3に対す
る物理アドレス(メモリ・アドレス)が生成される。
【0009】この際、プログラムが誤ってTLBに2個
以上の同一エントリをセットしたときは、2個の物理ア
ドレスが選択されることによって、誤ったアドレスが出
力されるので、ダブル・セレクト・エラー検出部14に
よって ダブル・セレクト・エラーを出力して、この場
合のアドレス出力を無効にするようになっている。
【0010】図8は、従来のTLB制御方式を示したも
のであって、プロセス1とプロセス2を処理する、マル
チ・タスク処理の場合を例示している。まず、プロセス
1で共通領域のある番地Aに対してアクセスした際に、
TLBにA番地に対するTLBエントリがセットされて
いないために、TLBフォルトが発生すると、このTL
BフォルトはMPUに対してバス・エラーの割り込みに
よって通知される。
【0011】MPUは割り込みに基づいて、走行中のプ
ログラムに対する例外処理としてバス・エラー処理を行
うため、プロセスにおけるレジスタ情報等の、必要な最
小限のハードウエア情報を、スタック領域に退避するス
タック処理を開始する。68000系等のMPUでは、
このスタック処理中に、現走行レベルより高いレベルの
割り込み要求があると、バス・エラー処理の最初の命令
を実行する前に、この割り込みを受け付けるようになっ
ており、これによって、さらにバス・エラー処理に対す
るスタック処理が行われる。そして、スタック処理に引
き続き、割り込み要因を判別してその要因に対する処理
を行う。この処理は割り込み処理の延長で行われるもの
であり、これによって別のプロセス(プロセス2)が動
作を開始したとする。
【0012】プロセス2を実行中に、プロセス1と同じ
共通領域のA番地にアクセスしたとすると、プロセス1
のA番地に対するTLBフォルト処理がまだ実行されて
いないので、A番地に対するTLBエントリがセットさ
れていないため、再び、A番地に対してTLBフォルト
が発生する。このTLBフォルトも、バス・エラーによ
ってMPUに通知されるため、MPUは、プロセス1の
A番地のTLBフォルト処理をペンディングにしたま
ま、バス・エラー処理としてプロセス2に対するTLB
フォルト処理を先に実行する。
【0013】MPUは、プロセス2に対するスタック処
理を行い、割り込み処理のマスク・レベルを最高のレベ
ル‘7’にセットして、MMUにおけるTLBフォルト
のステータス(STS)をクリアしたのち、TLBエン
トリに、A番地に対応する論理ページアドレスと、対応
する物理ページアドレスとをセットする。これによって
プロセス2に対するTLBフォルトの処理が終了するの
で、リターン(RTE)命令を実行し、プロセス2のス
タック処理を行って、プロセス2で最初に退避した情報
をもとのハードウエアに復元するとともに、プロセス2
の処理に復帰する。
【0014】プロセス2の処理に復帰することによっ
て、A番地にアクセスされて、プロセス2の処理が実行
される。プロセス2が終了したとき、RTEを実行し、
バス・エラー処理に復帰するスタック処理を行ったの
ち、プロセス1に対するTLBフォルト処理に復帰す
る。
【0015】MPUは、割り込み処理のマスク・レベル
をレベル‘7’にセットして、MMUのTLBフォルト
のSTSをクリアしたのち、TLBエントリに、A番地
に対応する論理ページアドレスと、対応する物理ページ
アドレスとをセットする。この時点で、TLBには、同
一の論理ページアドレスに対して、*で示すように2つ
の物理ページアドレスの対応がエントリされたことにな
る。
【0016】これによってプロセス1に対するTLBフ
ォルトの処理が終了するので、RTEを実行し、プロセ
ス1に復帰するスタック処理を行ったのち、プロセス1
の処理に復帰する。
【0017】プロセス1の処理に復帰することによっ
て、A番地がアクセスされるが、A番地はプロセス2に
おいてすでにアクセスされている。MMUはこの状態で
は、ダブル・セレクト・エラーを出力してMPUに通知
することによって、この場合のアドレス出力を無効にす
る。
【0018】
【発明が解決しようとする課題】フル・アソシアティブ
方式のTLBを有し、MPUがバス・エラーの例外処理
によってTLBフォルト処理を行うある種のMPUにお
いては、TLBフォルト処理に対して、特定のマスク・
レベルを有しないため、割り込み発生によって例外処理
が中断されて、TLBフォルト処理の要求が重複して発
生し、そのためTLBエントリにおいて、一つの論理ペ
ージアドレスに2つの物理ページアドレスがセットさ
れ、ダブル・セレクト・エラーが発生する。
【0019】本発明は、このような従来技術の課題を解
決しようとするものであって、このようなMPUを使用
した場合でも、常にTLBエントリに対して、論理ペー
ジアドレスと物理ページアドレスとの対応を正しくセッ
トして、論理ページアドレスと物理ページアドレスとの
変換を行うことができる、TLB制御方法及び装置を提
供することを目的としている。
【0020】
【課題を解決するための手段】(1) 本発明は、マイクロ
プロセッサ(MPU)1が出力した論理ページアドレス
と物理ページアドレスとの対応を示すデータをセットす
る複数のエントリからなるアドレス変換テーブルをメモ
リ上に持ち、アドレス変換の高速化のために前記データ
をセットする複数エントリからなる変換索引バッファ
(TLB)11を備え、MPUが出力した論理ページア
ドレスとTLBにセットされた論理ページアドレスとの
一致が検出されたとき物理ページアドレスを出力するフ
ル・アソシアティブ方式のメモリ・マネージメント・ユ
ニット(MMU)2を有し、MPUがTLBにおけるア
ドレス変換時のフォルト処理を行う例外処理において特
定のマスク・レベルを有せず、割り込みによってこの例
外処理が中断されるシステムにおいて、アドレス変換テ
ーブル内に、データがTLBエントリにセットされてい
ることを示すフラグを設け、論理ページアドレスと物理
ページアドレスとの対応をTLBエントリにセットする
際にこのフラグをチェックして、フラグがセットされて
いれば、TLBエントリにデータをセットすることなく
TLBにおけるフォルト処理を終了し、フラグがクリア
されていれば、TLBエントリにデータをセットすると
ともにフラグをセットすることによって、TLBの単一
のエントリのみについて論理ページアドレスの一致が生
じるようにするものである。
【0021】(2) また本発明は、MPU1が出力した論
理ページアドレスと物理ページアドレスとの対応を示す
データをセットする複数のエントリからなるアドレス変
換テーブルをメモリ上に持ち、アドレス変換の高速化の
ために前記データをセットする複数エントリからなるT
LB11を備え、MPUが出力した論理ページアドレス
とTLBにセットされた論理ページアドレスとの一致が
検出されたとき物理ページアドレスを出力するフル・ア
ソシアティブ方式のMMU2を有し、MPUがTLBに
おけるアドレス変換時のフォルト処理を行う例外処理に
おいて特定のマスク・レベルを有せず、割り込みによっ
てこの例外処理が中断されるとともに、アドレス変換時
にMPUから指定された論理ページアドレスに対してT
LBの複数のエントリにおける論理ページアドレスが一
致することを検出するダブル・セレクト・エラー検出部
14を備えたシステムにおいて、アドレス変換時にダブ
ル・セレクト・エラー検出部によってTLB上の複数の
エントリについてダブル・セレクト・エラーが検出され
たとき、TLB上の全エントリを無効化して再アクセス
によってTLBにおけるフォルトを発生させたのち、再
びこの論理ページアドレスに対するエントリをTLBに
セットすることによって、正しく論理ページアドレスを
物理ページアドレスに変換するものである。
【0022】(3) また本発明は(2) において、同一の論
理ページアドレスについてダブル・セレクト・エラーが
検出されたTLB上の複数のエントリのみを無効化し、
再アクセスによってTLBフォルトを発生させたのち、
再びこの論理ページアドレスに対するエントリをTLB
にセットすることによって、正しく論理ページアドレス
を物理ページアドレスに変換するものである。
【0023】(4) また本発明は、MPU1が出力した論
理ページアドレスと物理ページアドレスとの対応を示す
データをセットする複数のエントリからなるアドレス変
換テーブルをメモリ上に持ち、アドレス変換の高速化の
ために前記データをセットする複数エントリからなるT
LB11を備え、MPUが出力した論理ページアドレス
とTLBにセットされた論理ページアドレスとの一致が
検出されたとき物理ページアドレスを出力するフル・ア
ソシアティブ方式のMMU2を有し、MPUがTLBに
おけるアドレス変換時のフォルト処理を行う例外処理に
おいて特定のマスク・レベルを有せず、割り込みによっ
てこの例外処理が中断されるとともに、アドレス変換時
にMPUから指定された論理ページアドレスに対してT
LBの複数のエントリにおける論理ページアドレスが一
致することを検出するダブル・セレクト・エラー検出部
14を備え、さらにTLB上に参照フラグおよび更新フ
ラグを有するシステムにおいて、同一の論理ページアド
レスについてダブル・セレクト・エラーが検出されたT
LB上の複数のエントリのうち、参照フラグと更新フラ
グがともにセットされていないエントリのみを無効化す
ることによって、正しく論理ページアドレスを物理ペー
ジアドレスに変換するものである。
【0024】
【作用】(1) フル・アソシアティブ方式のMMU2にお
いては、複数のエントリからなるTLB11を備えて、
MPU1が出力した論理ページアドレスと物理ページア
ドレスとの対応を示すデータをセットする。そして、M
PUが出力した論理ページアドレスと、TLBにセット
された論理ページアドレスとの一致が検出されたとき、
この物理ページアドレスを出力する。
【0025】また、MPUはTLBにおけるアドレス変
換時のフォルト処理を行う例外処理において特定のマス
ク・レベルを有せず、割り込みによってこの例外処理が
中断される。
【0026】この場合に、アドレス変換テーブル内に、
データがTLBエントリにセットされていることを示す
フラグを設けて、論理ページアドレスと物理ページアド
レスとの対応をTLBエントリにセットする際にこのフ
ラグをチェックして、フラグがセットされていれば、T
LBエントリにデータをセットすることなくTLBにお
けるフォルト処理を終了し、フラグがクリアされていれ
ば、TLBエントリにデータをセットするとともにフラ
グをセットするようにする。
【0027】このように本発明では、アドレス変換テー
ブル内のフラグを参照することによって、TLBエント
リにおけるダブル・セレクト・エラーの発生を防止する
ので、常にTLBの単一のエントリのみについて論理ペ
ージアドレスの一致が生じるようにすることができる。
【0028】(2) またフル・アソシアティブ方式のMM
U2においては、さらにダブル・セレクト・エラー検出
部14を備えて、アドレス変換時にMPUから指定され
た論理ページアドレスに対して、TLBの複数のエント
リにおける論理ページアドレスが一致することを検出す
る。
【0029】この場合に、アドレス変換時にダブル・セ
レクト・エラー検出部によってTLB上の複数のエント
リについて一致が検出されたとき、TLB上の全エント
リを無効化し、再アクセスによってTLBにおけるフォ
ルトを発生させたのち、再び論理ページアドレスに対す
るエントリをTLBにセットするようにする。
【0030】このように本発明では、一旦、ダブル・セ
レクト・エラーを発生させるが、この場合、TLB上の
全エントリを無効化して再アクセスによってTLBフォ
ルトを発生させることによって、再び論理ページアドレ
スに対するエントリをTLBにセットするので、正しく
論理ページアドレスを物理ページアドレスに変換するこ
とができる。
【0031】(3) (2) の場合に、同一の論理ページアド
レスについてダブル・セレクト・エラーが検出されたT
LB上の複数のエントリのみを無効化し、再アクセスに
よってTLBフォルトを発生させたのち、再びこの論理
ページアドレスに対するTLBエントリをセットするよ
うにしてもよく、これによって、正しく論理ページアド
レスを物理ページアドレスに変換することができる。
【0032】(4) またフル・アソシアティブ方式のMM
U2においては、さらに参照フラグおよび更新フラグを
設けて、参照フラグによって、そのアドレスが参照(リ
ードまたはライト)されたことを表示し、更新フラグに
よって、そのアドレスが更新されたことを表示してい
る。
【0033】参照フラグまたは更新フラグがセットされ
ているTLB上のエントリにおける論理ページアドレス
は、一旦は正しくアクセスが行われたものであり、この
アドレスは直ちにアクセスして実行可能なものである。
【0034】従って、同一の論理ページアドレスについ
てダブル・セレクト・エラーが検出されたTLB上の複
数のエントリのうち、参照フラグと更新フラグがともに
セットされていないエントリのみを無効化することによ
って、正しく論理ページアドレスを物理ページアドレス
に変換することができる。
【0035】
【実施例】図1および図2は、本発明の実施例(1)の
動作フローを示したものであって、図1は、フラグのチ
ェックおよびセットを示し、図2は、TLBエントリが
フルの場合のフラグのクリアを示している。図1および
図2の実施例においては、メモリ内のアドレス変換テー
ブル上の各データに対して、このデータが現在TLBエ
ントリにセットされていることを示す、1ビットのフラ
グを設ける。
【0036】図1において、まず、プロセス1で共通領
域のある番地Aに対してアクセスした際に、TLBフォ
ルトが発生すると、このTLBフォルトはMPUに対し
てバス・エラーの割り込みによって通知される。
【0037】MPUは割り込みに基づいて、プロセス1
に対するスタック処理を開始する。このスタック処理中
に、現走行レベルより高いレベルの割り込み要求がある
と、バス・エラー例外処理の最初の命令を実行する前
に、この割り込みが受け付けられる。これによってMP
Uは、さらにバス・エラー処理に対するスタック処理を
行う。そして、スタック処理に引き続き、割り込み要因
を判別してその要因に対する処理を行う。この処理は割
り込み処理の延長で行われ、これによって別のプロセス
(プロセス2)が動作を開始したとする。
【0038】プロセス2を実行中に、プロセス1と同じ
共通領域のA番地にアクセスしたとすると、プロセス1
のA番地に対するTLBフォルト処理がまだ実行されて
いないので、再び、A番地に対してTLBフォルトが発
生する。このTLBフォルトも、バス・エラーによって
MPUに通知されるため、MPUは、プロセス1のA番
地のTLBフォルト処理をぺンディングにしたまま、バ
ス・エラー処理として、プロセス2に対するTLBフォ
ルト処理を先に実行する。
【0039】MPUは、プロセス2に対するスタック処
理を行い、割り込み処理のマスク・レベルをレベル
‘7’にセットして、MMUのTLBフォルトのSTS
をクリアしたのち、アドレス変換テーブルにおけるA番
地のフラグをチェックする。このときは、MPUのデー
タがTLBエントリにセットされていないので、フラグ
は‘0’である。
【0040】MMUにおいて、TLBエントリに、A番
地に対応する論理ページアドレスと、対応する物理ペー
ジアドレスとをセットする。このとき、アドレス変換テ
ーブルのA番地のフラグを‘1’にセットして、このエ
ントリが現在TLBにセットされていることを示す。
【0041】これによってプロセス2に対するTLBフ
ォルトの処理が終了するので、RTEを実行し、プロセ
ス2に復帰するスタック処理を行ったのち、プロセス2
の処理に復帰する。
【0042】プロセス2の処理に復帰することによっ
て、A番地がアクセスされてプロセス2の処理が実行さ
れる。プロセス2の処理が終了したとき、RTEを実行
し、バス・エラー処理に復帰するスタック処理を行った
のち、プロセス1に対するTLBフォルト処理に復帰す
る。
【0043】MPUは、割り込み処理のマスク・レベル
をレベル‘7’にセットして、MMUにおけるTLBフ
ォルトのSTSをクリアしたのち、アドレス変換テーブ
ルにおけるA番地のフラグをチェックする。この場合
は、フラグが既に‘1’にセットされているので、この
TLBフォルト処理では何も処理を行わない。従って、
別のTLBエントリに、A番地に対する論理ページアド
レスと物理ページアドレスの対応が誤ってセットされる
ことはない。
【0044】このTLB処理後、RTEを実行し、プロ
セス1に復帰するスタック処理を行ったのち、プロセス
1の処理に復帰する。プロセス1の処理に復帰すること
によって、A番地がアクセスされたとき、A番地の処理
が正しく行われる。
【0045】このA番地に対するアドレス変換テーブル
上のフラグは、その後、別の論理ページアドレスと物理
ページアドレスの対応をセットするために、A番地のエ
ントリが無効化されるときに、‘0’にクリアされる。
【0046】図2において、プロセス1で共通領域のB
番地に対してアクセスした際に、TLBエントリがフル
であるため、B番地をTLBエントリにセットすること
ができず、TLBフォルトが発生した場合、このTLB
フォルトはMPUに対してバス・エラーの割り込みによ
って通知される。
【0047】MPUは割り込みに基づいて、バス・エラ
ー処理のための例外処理として、プロセス1のTLBフ
ォルト処理を行うため、プロセス1に対するスタック処
理を行う。そして、割り込み処理のマスク・レベルをレ
ベル‘7’にセットして、MMUのTLBフォルトのS
TSをクリアする。そして、アドレス変換テーブルにお
ける例えばA番地のフラグをクリアして、TLBにおけ
るA番地のエントリをパージする。
【0048】次にアドレス変換テーブルにおけるB番地
のフラグをチェックすると、‘0’であるから、これを
‘1’にセットする。そして、MMUにおいて、TLB
エントリに、B番地に対応する論理ページアドレスと、
対応する物理ページアドレスとをセットする。
【0049】これによってプロセス1に対するTLBフ
ォルトの処理が終了するので、RTEを実行し、プロセ
ス1に復帰するスタック処理を行ったのち、プロセス1
の処理に復帰して、B番地にアクセスすることによっ
て、プロセス1の処理が実行される。
【0050】図3および図4は、本発明の実施例(2)
の動作フローを示したものであって、図3は、再度TL
Bフォルトを発生させる場合(1)を示し、図4は再度
TLBフォルトを発生させる場合(2)を示している。
【0051】図8について説明したように、最初、プロ
セス1で共通領域のA番地において発生したTLBフォ
ルトによって、MPUが、バス・エラー例外処理を実行
するためのスタック処理中に、現走行レベルよりも高い
割り込み要求が受け付けられると、MPUがプロセス1
に対するスタック処理を実行し、割り込み要因に対する
処理を行うことによって、別のプロセス(プロセス2)
が動作を始める。
【0052】プロセス2を実行中に、再びA番地にアク
セスすると、プロセス2においてもA番地に対してTL
Bフォルトが発生する。このTLBフォルトもバス・エ
ラーでMPUに通知され、プロセス1のA番地のTLB
フォルト処理をペンディングにして、プロセス2に対す
るTLBフォルト処理が先に実行され、TLBエントリ
にA番地に対する論理ページアドレスと物理ページアド
レスの対応がセットされる。
【0053】このTLBフォルト処理(バス・エラー処
理)が終了すると、プロセス2に復帰し、A番地がアク
セスされて、プロセス2の処理が継続され、この処理が
終了すると、中断していたプロセス1に対するバス・エ
ラー処理に復帰する。このバス・エラー処理では、中断
していたA番地に対するTLBフォルト処理を実行し、
別なTLBエントリにA番地に対する論理ページアドレ
スと物理ページアドレスとの対応がセットされる。
【0054】このTLBフォルト処理からプロセス1に
復帰し、A番地をアクセスすると、TLB上に一致する
エントリが複数あるため、ダブル・セレクト・エラーを
発生する。
【0055】図3において、プロセス1で共通領域のA
番地に対してアクセスした際に、ダブル・セレクト・エ
ラーが発生すると、ダブル・セレクト・エラーはMPU
に対してバス・エラーの割り込みによって通知される。
【0056】MPUは割り込みに基づいて、プロセス1
に対するスタック処理を行い、割り込み処理のマスク・
レベルをレベル‘7’にセットして、MMUにおけるダ
ブル・セレクト・エラーのSTSをクリアする。その
後、TLBにおけるすべてのエントリをパージする。
【0057】次にRTEを実行し、プロセス1に復帰す
るスタック処理を行ったのち、プロセス1の処理に復帰
して、A番地をアクセスする。この場合は、TLBエン
トリが無効化されているので、再びTLBフォルトが発
生する。このTLBフォルトは、MPUに対して、バス
・エラーの割り込みによって通知される。
【0058】MPUは割り込みに基づいて、プロセス1
に対するスタック処理を行い、割り込み処理のマスク・
レベルをレベル‘7’にセットして、MMUにおけるT
LBフォルトのSTSをクリアする。その後、A番地に
対するTLBエントリをセットする。これによってプロ
セス1に対するTLBフォルトの処理が終了するので、
RTEを実行し、プロセス1に復帰するスタック処理を
行ったのち、プロセス1の処理に復帰する。
【0059】この場合のプロセス1の処理では、A番地
に対するTLBエントリがセットされているので、A番
地に対して正しくアクセスすることが可能となり、プロ
セス1の処理が実行される。
【0060】このように、一旦、ダブル・セレクト・エ
ラーを発生させるが、そのあとシステムダウンさせずに
リトライして、再度、TLBフォルトを発生させること
によって、不要なエントリを排除して、正しくTLBエ
ントリをセットすることができる。
【0061】別の方法として、図4に示すように、プロ
セス1で共通領域のA番地に対してアクセスして、ダブ
ル・セレクト・エラーが発生した場合、ダブル・セレク
ト・エラーをMPUに対してバス・エラーの割り込みに
よって通知することによって、MPUがプロセス1に対
するスタック処理を行ったのち、割り込み処理のマスク
・レベルをレベル‘7’にセットして、MMUにおける
ダブル・セレクト・エラーのSTSをクリアし、TLB
のA番地のすべてのエントリをパージするようにしても
よい。
【0062】以後の処理は図3の場合と同様であり、R
TEを実行し、プロセス1に復帰するスタック処理を行
ったのち、プロセス1の処理に復帰してA番地をアクセ
スすると、この場合もTLBエントリが行われていない
ので、TLBフォルトが発生する。このTLBフォルト
は、MPUに対して、バス・エラーの割り込みによって
通知される。
【0063】MPUはプロセス1に対するスタック処理
を行ったのち、割り込み処理のマスク・レベルをレベル
‘7’にセットして、MMUにおけるTLBフォルトの
STSをクリアしたのち、TLBにおけるA番地に対す
るエントリをセットする。そしてRTEを実行し、プロ
セス1に復帰するスタック処理を行ったのち、プロセス
1の処理に復帰する。これによって、A番地にアクセス
したとき、プロセス1の処理が実行される。
【0064】このように、再度TLBフォルトを発生さ
せる方法のうち、図3に示すように、すべてのエントリ
をパージする方法では、プロセス1以外のプロセスのT
LBエントリもパージされるので、システム性能が低下
することがある。これに対して図4に示す方法では、ダ
ブル・セレクト・エラーが発生したプロセスに対応する
TLBエントリのみをパージしてTLBフォルトを発生
させ、TLBフォルト処理を行うことによって、正しい
実行が可能になるようにする。従って、A番地以外のT
LBエントリについては、TLBフォルトが発生しない
ので、直ちに実行することができ、システム性能はそれ
ほど低下しない。
【0065】図5は、本発明の実施例(2)を示したも
のであって、再度、TLBフォルトを発生させない場合
を示している。図5において、プロセス1で共通領域の
A番地に対してアクセスした際に、ダブル・セレクト・
エラーが発生した場合、ダブル・セレクト・エラーはM
PUに対してバス・エラーの割り込みによって通知され
る。
【0066】MPUは割り込みに基づいて、プロセス1
に対するスタック処理を行い、割り込み処理のマスク・
レベルをレベル‘7’にセットして、MMUにおけるダ
ブル・セレクト・エラーのSTSをクリアする。その
後、TLBにおけるA番地のエントリのうち、参照ビッ
トR,更新ビットCがセットされていないエントリをパ
ージする。
【0067】次にRTEを実行し、プロセス1に復帰す
るスタック処理を行ったのち、プロセス1の処理に復帰
して、A番地をアクセスすることによって、A番地に対
するプロセス1の処理が実行される。
【0068】A番地に対してダブル・セレクト・エラー
が発生した場合、図8において説明したように、A番地
に対して、一旦は正しくアクセスが行われている。この
場合のエントリに対しては、リードであれば参照ビット
Rが、ライト(更新)であれば更新ビットCがセットさ
れている。そこでこのようなエントリに対してはパージ
することなく、RビットとCビットがともにセットされ
ていない、TLBにおけるA番地のエントリの内容をす
べてパージする。
【0069】このようにすることによって、RTEを実
行し、プロセス1に復帰するスタック処理を行ったと
き、正しくアクセスされたA番地に対するTLBエント
リだけが残っているので、直ちにA番地にアクセスし
て、プロセス1の処理を実行することができる。この方
法では、A番地に対してTLBフォルトを発生させる必
要がないので、オーバヘッドを減少させることができ、
システム性能をより向上させることが可能となる。
【0070】図3ないし図5に説明した方法では、通常
のTLBフォルト処理のオーバヘッドが不要になるの
で、システム性能をより向上させることが可能となる。
この場合、一旦、ダブル・セレクト・エラーを発生させ
てから、TLB内のエントリをパージして、A番地の処
理を行うようにするが、ダブル・セレクト・エラーが発
生するのは、バス・エラー処理の最初の命令を実行する
前に、より優先順位の高い割り込みがあった場合だけな
ので、その発生頻度はかなり低く、これによってシステ
ム性能を低下させる恐れは少ない。
【0071】
【発明の効果】以上説明したように本発明によれば、T
LBフォルトを処理するためのバス・エラー例外処理に
対して、特定の高いマスク・レベルが割り付けられてい
ないMPUを使用したシステムにおいて、1つの論理ペ
ージアドレスに対して、複数の物理ページアドレスが誤
って割り付けられことを防止して、TLBエントリに対
して、常に、正しく論理ページアドレスと物理ページア
ドレスとの対応をセットすることができるようになる。
【図面の簡単な説明】
【図1】本発明の実施例(1)の動作フローにおける、
フラグのチェックおよびセットを示す図である。
【図2】本発明の実施例(1)の動作フローにおける、
TLBエントリがフルの場合のフラグのクリアを示す図
である。
【図3】本発明の実施例(2)の動作フローにおける、
再度TLBフォルトを発生させる場合(1)を示す図で
ある。
【図4】本発明の実施例(2)の動作フローにおける、
再度TLBフォルトを発生させる場合(2)を示す図で
ある。
【図5】本発明の実施例(2)の動作フローにおける、
再度TLBフォルトを発生させない場合を示す図であ
る。
【図6】従来の、および本発明が適用されるシステム構
成を示す図である。
【図7】従来の、および本発明が適用されるMMUの内
部ロジックを示す図である。
【図8】従来のTLB制御方式を示す図である。
【符号の説明】
1 マイクロプロセッサ(MPU) 2 メモリ・マネージメント・ユニット(MMU) 11 変換索引バッファ(TLB) 14 ダブル・セレクト・エラー検出部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭49−60640(JP,A) 特開 平2−300951(JP,A) 特開 平3−235148(JP,A) 特開 平2−23431(JP,A) 特開 昭63−241637(JP,A) 特開 昭58−57688(JP,A) 特開 昭61−173359(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサ(以下MPUと略
    す)が出力した論理ページアドレスと物理ページアドレ
    スとの対応を示すデータをセットする複数のエントリか
    らなるアドレス変換テーブルをメモリ上に持ち、アドレ
    ス変換の高速化のために前記データをセットする複数エ
    ントリからなる変換索引バッファ(以下TLBと略す)
    を備え、MPUが出力した論理ページアドレスと該TL
    Bにセットされた論理ページアドレスとの一致が検出さ
    れたとき、前記物理ページアドレスを出力するメモリ・
    マネージメント・ユニット(以下MMUと略す)を有
    し、MPUがTLBにおけるアドレス変換時のフォルト
    処理を行う例外処理において特定のマスク・レベルを有
    さず、割り込みによって該例外処理が中断されるシステ
    ムにおいて、 前記アドレス変換テーブル内に、該データがTLBエン
    トリにセットされていることを示すフラグを設け、前記
    論理ページアドレスと物理ページアドレスとの対応をT
    LBエントリにセットする際に該フラグをチェックし
    て、該フラグがセットされていれば、TLBエントリに
    データをセットすることなくTLBにおけるフォルト処
    理を終了し、該フラグがクリアされていれば、TLBエ
    ントリにデータをセットするとともに該フラグをセット
    することによって、TLBの単一のエントリのみについ
    て前記論理ページアドレスの一致が生じるようにするこ
    とを特徴とするTLB制御方法
  2. 【請求項2】 MPUが出力した論理ページアドレスと
    物理ページアドレスとの対応を示すデータをセットする
    複数のエントリからなるアドレス変換テーブルをメモリ
    上に持ち、アドレス変換の高速化のために前記データを
    セットする複数エントリからなるTLBを備え、MPU
    が出力した論理ページアドレスと該TLBにセットされ
    た論理ページアドレスとの一致が検出されたとき前記物
    理ページアドレスを出力するMMUを有し、MPUがT
    LBにおけるアドレス変換時のフォルト処理を行う例外
    処理において特定のマスク・レベルを有さず、割り込み
    によって該例外処理が中断されるとともに、アドレス変
    換時にMPUから指定された論理ページアドレスに対し
    てTLBの複数のエントリにおける論理ページアドレス
    が一致することを検出するダブル・セレクト・エラー検
    出部を備え、さらにTLB上に参照フラグおよび更新フ
    ラグを有するシステムにおいて、 同一の論理ページアドレスについて前記ダブル・セレク
    ト・エラーが検出されたTLB上の複数のエントリのう
    ち、該参照フラグと更新フラグがともにセットされてい
    ないエントリのみを無効化することによって、正しく論
    理ページアドレスを物理ページアドレスに変換すること
    を特徴とするTLB制御方法
  3. 【請求項3】 マイクロプロセッサ(以下MPUと略
    す)が出力した論理ページアドレスと物理ページアドレ
    スとの対応を示すデータをセットする複数のエントリか
    らなるアドレス変換テーブルをメモリ上に持ち、アドレ
    ス変換の高速化のために前記データをセットする複数エ
    ントリからなる変換索引バッファ(以下TLBと略す)
    を備え、MPUが出力した論理ページアドレスと該TL
    Bにセットされた論理ページアドレスとの一致が検出さ
    れたとき、前記物理ページアドレスを出力するメモリ・
    マネージメント・ユニット(以下MMUと略す)を有
    し、MPUがTLBにおけるアドレス変換時のフォルト
    処理を行う例外処理において特定のマスク・レベルを有
    さず、割り込みによって該例外処理が中断されるシステ
    ムにおいて、 前記アドレス変換テーブル内に、該データがTLBエン
    トリにセットされていることを示すフラグを設けてお
    き、前記論理ページアドレスと物理ページアドレスとの
    対応をTLBエントリにセットする際に該フラグをチェ
    ックする手段と、該フラグがセットされていれば、TL
    BエントリにデータをセットすることなくTLBにおけ
    るフォルト処理を終了し、該フラグがクリアされていれ
    ば、TLBエントリにデータをセットするとともに該フ
    ラグをセットする手段と、を備えたことを特徴とするT
    LB制御装置
  4. 【請求項4】 MPUが出力した論理ページアドレスと
    物理ページアドレスとの対応を示すデータをセットする
    複数のエントリからなるアドレス変換テーブルをメモリ
    上に持ち、アドレス変換の高速化のために前記データを
    セットする複数エントリからなるTLBを備え、MPU
    が出力した論理ページアドレスと該TLBにセットされ
    た論理ページアドレスとの一致が検出されたとき前記物
    理ページアドレスを出力するMMUを有し、MPUがT
    LBにおけるアドレス変換時のフォルト処理を行う例外
    処理において特定のマスク・レベルを有さず、割り込み
    によって該例外処理が中断されるとともに、アドレス変
    換時にMPUから指定された論理ページアドレスに対し
    てTLBの複数のエントリにおける論理ページアドレス
    が一致することを検出するダブル・セレクト・エラー検
    出部を備え、さらにTLB上に参照フラグおよび更新フ
    ラグを有するシステムにおいて、 同一の論理ページアドレスについて前記ダブル・セレク
    ト・エラーが検出されたTLB上の複数のエントリのう
    ち、該参照フラグと更新フラグがともにセットされてい
    ないエントリのみを無効化する手段を備えたことを特徴
    とするTLB制御装置
JP11012193A 1993-05-12 1993-05-12 Tlb制御方法及び装置 Expired - Fee Related JP3168489B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11012193A JP3168489B2 (ja) 1993-05-12 1993-05-12 Tlb制御方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11012193A JP3168489B2 (ja) 1993-05-12 1993-05-12 Tlb制御方法及び装置

Publications (2)

Publication Number Publication Date
JPH06324946A JPH06324946A (ja) 1994-11-25
JP3168489B2 true JP3168489B2 (ja) 2001-05-21

Family

ID=14527572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11012193A Expired - Fee Related JP3168489B2 (ja) 1993-05-12 1993-05-12 Tlb制御方法及び装置

Country Status (1)

Country Link
JP (1) JP3168489B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4576172B2 (ja) * 2004-07-29 2010-11-04 富士通株式会社 演算処理装置,情報処理装置及び演算処理装置の制御方法
US10719452B2 (en) * 2018-06-22 2020-07-21 Xilinx, Inc. Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip

Also Published As

Publication number Publication date
JPH06324946A (ja) 1994-11-25

Similar Documents

Publication Publication Date Title
US5386565A (en) Method and system for controlling/monitoring computer system having plural operating systems to run thereon
EP0730230B1 (en) Method for prioritizing and handling errors in a computer system
JP4395425B2 (ja) 破損データ値を処理するためのデータ処理装置と方法
Namjoo et al. Watchdog processors and capability checking
JP4294626B2 (ja) マージバッファのシステムキルエラーのプロセスキルエラーへの変換技術
US6332181B1 (en) Recovery mechanism for L1 data cache parity errors
EP0316252B1 (en) Storage addressing error detection
US6108753A (en) Cache error retry technique
US4731740A (en) Translation lookaside buffer control system in computer or virtual memory control scheme
EP0762282B1 (en) Atomic update of EDC protected data
US20030023932A1 (en) Method and apparatus for parity error recovery
US5916314A (en) Method and apparatus for cache tag mirroring
JPH04237349A (ja) キャッシュメモリシステムおよびキャッシュメモリコントローラ
JP3168489B2 (ja) Tlb制御方法及び装置
US7607048B2 (en) Method and apparatus for protecting TLB's VPN from soft errors
US6546501B1 (en) Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded
JP3494072B2 (ja) キャッシュメモリ及びその障害検出方法
JPH05165719A (ja) メモリアクセス処理装置
JP3229045B2 (ja) アドレス変換バッファ機構
JP3222218B2 (ja) 連想記憶装置の制御方法
JPS59172044A (ja) 命令制御方式
JP2658342B2 (ja) データ処理装置
JP2818562B2 (ja) アドレス変換回路
JP2796162B2 (ja) 命令処理方法
JPH04273348A (ja) キャッシュ・メモリ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010123

LAPS Cancellation because of no payment of annual fees