JP2001142781A - アドレス変換装置及びアドレス変換方法 - Google Patents
アドレス変換装置及びアドレス変換方法Info
- Publication number
- JP2001142781A JP2001142781A JP32162099A JP32162099A JP2001142781A JP 2001142781 A JP2001142781 A JP 2001142781A JP 32162099 A JP32162099 A JP 32162099A JP 32162099 A JP32162099 A JP 32162099A JP 2001142781 A JP2001142781 A JP 2001142781A
- Authority
- JP
- Japan
- Prior art keywords
- program
- address
- tlb
- virtual address
- physical address
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
ログラム内に、プログラムの処理が異なる、別のプログ
ラムを重ね合わせることができるようにする。 【解決手段】 プログラムの仮想アドレスと物理アドレ
スとの対を1つの行に格納し、これらの対を格納した行
を複数有して、入力仮想アドレスに応じて対応する物理
アドレスを出力するアドレス変換テーブル(TLB)4
を備え、TLB4における第1の行に、第1のプログラ
ムの仮想アドレスと物理アドレスとの対を格納してお
り、TLBの第2の行に、第1のプログラムの一部領域
である第2のプログラムと同一の仮想アドレスを有する
第3のプログラムの仮想アドレスと物理アドレスとを格
納しており、第1の行と第2の行とに付加されている優
先ビット16に応じて第2のプログラム又は第3のプロ
グラムを選択して、入力仮想アドレスに対応する物理ア
ドレスを出力するように構成されている。
Description
ッファ(Translatoion Lookaside Buffer :TLB)に
おける、1つの行に仮想アドレスが格納されたプログラ
ム内に、他の行に仮想アドレスが格納されたプログラム
を重ね合わせることによって、プログラム処理の性質を
異ならせることができるようにした、アドレス変換装置
及びアドレス変換方法に関する。
扱うプログラムのアドレスは、ソフトウェア上において
独自に設定された仮想アドレスからなっていて、記憶装
置上のアドレスである物理アドレスとは異なっており、
両者の間における対応付けは、一般に、任意に定められ
るようになっている。そこで、プログラムの運用時に
は、仮想アドレスから物理アドレスへの変換を行なうこ
とが必要になる。一方、データ処理装置においては、メ
インメモリのアクセスを管理,制御するために、プロセ
ッサにメモリ管理ユニット(Memory Management Unit:
MMU)を備えて、アドレス変換,記憶保護,バッファ
記憶等の機能を行なわせている。そこで、上述の仮想ア
ドレスから物理アドレスへの変換も、MMUにハードウ
ェアからなるTLBを設けることによって、高速に処理
する方法がとられている。
イメージ的に説明するものである。MMU101は、ア
ドレス変換のためにTLB102を有し、図示されない
TLBコントローラを介して、TLB102を制御する
ことによって、仮想アドレスと物理アドレスとの変換を
行なう。この際、TLB102において処理される仮想
アドレスと物理アドレスのデータは、プロセッサのオペ
レーションシステム(OS)が管理するソフトウェアで
ある、ページテーブルエントリ(Page Table Entry:P
TE)によって、予め準備されているものであり、TL
Bは、PTEのハードウェアキャッシュメモリとして機
能する。図16は、従来のPTEの内容を説明するもの
である。PTE111は、プログラム番号と、仮想アド
レスと、この仮想アドレスに対応する物理アドレスと、
各種付加ビットとを複数の行(エントリ)に格納したテ
ーブルからなっている。OSはPTE111から必要に
応じて、必要な部分を、プロセッサ(MPU)内のTL
B112にコピーする。PTE111は、通常はメイン
メモリ上に置かれるが、必要に応じて、ハードディスク
ドライブ(HDD)上に退避される。
したものである。MMU121においては、仮想アドレ
スから物理アドレスへの変換のために、仮想アドレスバ
ス122と、仮想アドレスレジスタ123と、TLB1
24と、物理アドレスレジスタ125と、物理アドレス
バス126とを備えている。さらに、TLB124は、
各行に、ページマスクビット131と、仮想アドレステ
ーブル132と、物理アドレステーブル133と、キャ
ッシュビット134とを格納されているとともに、各行
に対応して、仮想アドレス比較器141を備えている。
仮想アドレスは、仮想アドレスバス122を介して入力
されて、仮想アドレスレジスタ123に一旦、保持され
たのち、TLB124に入力される。TLB124から
読み出された物理アドレスは、物理アドレスレジスタ1
25に一旦、保持されたのち、物理アドレスバス126
に出力される。ページマスクビット131は、TLB1
24上におけるプログラムのページサイズを指定する機
能を有する。仮想アドレステーブル132は、仮想アド
レスを格納している。物理アドレステーブル133は、
同じ行の仮想アドレスに対応する物理アドレスを格納し
ている。キャッシュビット134は、仮想アドレス参照
時に、キャッシュアルゴリズムビット127として、図
示されないキャッシュメモリ制御部へ出力され、キャッ
シュメモリを使用するか否かの、キャッシュアルゴリズ
ムを指定する。
動作を説明する。TLB124において、プログラムは
ページごとに管理される。この際、ページマスクビット
131は、TLBの各行に対応するプログラムのページ
サイズ、すなわちプログラムサイズを設定する。仮想ア
ドレス比較器141は、仮想アドレスレジスタ123か
ら入力された仮想アドレスと、仮想アドレステーブル1
32の仮想アドレスとを比較して、いずれかの行で一致
したとき、物理アドレステーブル133における対応す
る物理アドレスを、物理アドレスレジスタ125に出力
させる。このとき、同じ行のキャッシュビット134の
値が、前記MMUのTLBコントローラによって、キャ
ッシュメモリに出力される。図17に示された従来のT
LBにおいては、同じ仮想アドレスを複数の行に格納す
ることは、マルチヒットエラーを惹起するため、許容さ
れない。
TLBにおいては、プログラムをデバッグする際に、プ
ログラム中の任意のサブルーチンについて、随時、キャ
ッシュアルゴリズムを変えてテストしようとしても、T
LBの1つの行に仮想アドレスが格納された1つのプロ
グラムの一部だけ、キャッシュアルゴリズムを変えるこ
とができないという問題があった。これは、従来のTL
Bでは、TLBの1つの行には1つのキャッシュアルゴ
リズムしか指定できないためである。
ものであって、同一ページのプログラム内に、出力後の
処理が異なるプログラムを混在させ、又は、同一ページ
のプログラム上において、TLBに格納されているデー
タを入れ替えるだけで、異なる機能を実行させることが
可能な、アドレス変換装置及びアドレス変換方法を提供
することを目的としている。
め、請求項1記載の発明は、アドレス変換装置に係り、
プログラムの仮想アドレスと物理アドレスとの対を1つ
の行に格納し、これらの対を格納した行を複数有して、
入力仮想アドレスに応じて対応する物理アドレスを出力
するアドレス変換テーブル(TLB)を備え、上記TL
Bにおける第1の行に、第1のプログラムの仮想アドレ
スと物理アドレスとの対を格納しており、上記TLBの
第2の行に、上記第1のプログラムの一部領域である第
2のプログラムと同一の仮想アドレスを有する第3のプ
ログラムの仮想アドレスと物理アドレスとを格納してお
り、上記第1の行と第2の行とに付加されている優先ビ
ットに応じて上記第2のプログラム又は第3のプログラ
ムを選択して、入力仮想アドレスに対応する物理アドレ
スを出力するように構成されていることを特徴としてい
る。
載のアドレス変換装置に係り、上記第3のプログラムの
物理アドレスが、上記第2のプログラムの物理アドレス
と異なっていることを特徴としている。
載のアドレス変換装置に係り、上記第3のプログラムの
物理アドレスが、上記第2のプログラムの物理アドレス
と一致していることを特徴としている。
載のアドレス変換装置に係り、上記第2のプログラムと
第3のプログラムとが、仮想アドレス上で重ね合わされ
ていることを示すオーバライトビットが、上記第1の行
と第2の行とに付与されていて、該オーバライトビット
の検出によって上記TLBに対するマルチヒットを許容
されるように構成されていることを特徴としている。
載のアドレス変換装置に係り、上記TLBの2以上の行
において、仮想アドレスの入力がそれぞれ一致したこと
を示す出力ヒット信号が発生し、上記オーバライトビッ
トの検出を示す出力オーバライト信号が発生しないと
き、プログラムの強制終了を指示するマルチヒット例外
検出信号を発生するマルチヒット例外判定回路を備えた
ことを特徴としている。
至5のいずれか1に記載のアドレス変換装置に係り、上
記第2のプログラムと第3のプログラムとが、それぞれ
異なるキャッシュアルゴリズムを有するように、キャッ
シュアルゴリズムを指定するキャッシュビットを、上記
第1の行と第2の行とに付与されていることを特徴とし
ている。
換方法に係り、プログラムの仮想アドレスと物理アドレ
スとの対を1つの行に格納し、これらの対を格納した行
を複数有して、入力仮想アドレスに応じて対応する物理
アドレスを出力するTLBに対して、上記TLBにおけ
る第1の行に、第1のプログラムの仮想アドレスと物理
アドレスとの対を格納しており、上記TLBの第2の行
に上記第1のプログラムの一部領域である第2のプログ
ラムと同一の仮想アドレスを有する第3のプログラムの
仮想アドレスと物理アドレスとを格納しており、上記第
1の行と第2の行とに付加されている優先ビットに応じ
て上記第2のプログラム又は第3のプログラムを選択し
て、入力仮想アドレスに対応する物理アドレスを出力す
ることを特徴としている。
に、第1のプログラムの仮想アドレスと物理アドレスと
の対を格納しており、TLBの第2の行に、第1のプロ
グラムの一部領域である第2のプログラムと同一の仮想
アドレスを有する、第3のプログラムの仮想アドレスと
物理アドレスとを格納しており、第1の行と第2の行と
に付加されている優先ビットに応じて、第2のプログラ
ム又は第3のプログラムを選択して、入力仮想アドレス
に対応する物理アドレスを出力するようにしたので、メ
インメモリの消費量を増やすことなしに、同一ページの
プログラム内に、出力後の処理が異なるプログラムを混
在させ、又は、同一ページのプログラム上において、T
LBに格納されているデータを入れ替えるだけで、異な
る機能を実行させることができる。すなわち、TLBに
おいて、オーバライトビットを備えたことによって、ペ
ージサイズの異なる領域を重ね合わせることができると
ともに、同一ページのプログラム上に重ね合わされた、
異なるプログラムを、優先ビットによって選択すること
によって、異なるページに対してTLBの入れ替え(更
新)を行なう必要なしに、読み出された物理アドレス
の、出力後の処理を異ならせる動作を高速に行なうこと
ができる。また、同一TLB上の同一ページのプログラ
ム上で、別のプログラムのエントリを入れ替えることに
よって、ページサイズを増やすことなく、またプログラ
ムIDを増やすことなしに、同一ページのプログラムに
おいて、異なる機能を実行させることができる。
の実施の形態について説明する。説明は、実施例を用い
て具体的に行う。 ◇第1実施例 図1は、この発明の第1実施例であるアドレス変換装置
の構成を示す図、図2は、本実施例の場合のPTEの構
成を示す図、図3は、本実施例におけるTLBの各行の
構成を示す図、図4は、4エントリの場合のTLBの構
成を示す図、図5は、4エントリの場合のマルチヒット
例外検出回路の構成例を示す図、図6は、8エントリの
場合のマルチヒット例外検出回路の構成例を示す図、図
7,図8は、本発明のアドレス変換装置における動作の
流れを示すフローチャート、図9は、本実施例における
アドレス変換を概念的に説明する図、図10は、本実施
例においてアドレス変換を行なうプログラムを例示する
図、図11,図12は、アドレス変換の具体例を示す
図、図13は、本実施例におけるアドレス変換の効果を
説明するための図である。
ように、MMU1内に設けられた、仮想アドレスバス2
と、仮想アドレスレジスタ3と、TLB4と、物理アド
レスレジスタ5と、物理アドレスバス6とから概略構成
されている。MMU1は、メインメモリへのアクセスを
管理,制御し、異常な状態を検出して例外処理を行い、
アドレス変換を行なう等の機能を有している。仮想アド
レスバス2を通じて、仮想アドレスとプログラムID
(番号)とを入力する。仮想アドレスレジスタ3は、仮
想アドレスバス2から入力された情報を一旦、保持す
る。TLB4は、仮想アドレスレジスタ3からの仮想ア
ドレスを物理アドレスに変換する。物理アドレスレジス
タ5は、TLB4から出力された物理アドレスを一旦、
保持する。物理アドレスバス6は、物理アドレスレジス
タ5に保持された物理アドレスを出力する。
LB4の内容について説明する。TLB4は、ページマ
スクビット11によって定まるページサイズのページ内
の各行に、仮想アドレステーブル12を形成する仮想ア
ドレスと、物理アドレステーブル13を形成する、仮想
アドレスに対応する物理アドレスと、出力される物理ア
ドレスに対するキャッシュアルゴリズムを指定するキャ
ッシュビット14と、同一ページ内において重ね合わせ
が行われていることを示すオーバライトビット15と、
重ね合わされた両アドレスのうちの出力されるべきアド
レスを示す優先ビット16と、その他の種々の付加ビッ
ト17とが格納されている。そして、TLB4は、各行
に仮想アドレス比較器21を備えて、仮想アドレスレジ
スタ3における入力仮想アドレスと、仮想アドレステー
ブル12内のいずれかの仮想アドレスとが一致したと
き、対応する物理アドレスを物理アドレスレジスタ5に
出力するとともに、その行のキャッシュビット14によ
って、出力物理アドレスに対するキャッシュアルゴリズ
ムを指定する、キャッシュアルゴリズムビット22を出
力する。マルチヒット例外判定回路23は、TLB4内
の2以上の仮想アドレスの比較一致(ヒット)によって
マルチヒット検出信号が発生し、オーバライトビットの
検出によってオーバライトビット検出信号が発生しない
とき、マルチヒット例外処理を行なうための、マルチヒ
ット例外検出信号を出力する。
各情報は、プロセッサが、図2に示すPTE31から、
必要に応じてコピーする。PTE31の各行には、図2
に示すように、プログラムNo(ID)32,仮想アド
レス33,物理アドレス34の各ビットと,キャッシュ
ビット35,オーバライトビット36,優先ビット3
7,各種の付加ビット38が、それぞれ格納されてい
る。付加ビット38としては、例えば、TLB4におけ
るページサイズを指定するためのページマスクビット,
出力物理アドレスの有効/無効を示すバリッドビット,
TLB4の書き込み可否を示すダーティビット等があ
る。
LBの各行(エントリ)の構成を説明する。TLBのあ
る行41において、42〜50は、それぞれ、仮想アド
レスビット,プログラムIDビット,ページマスクビッ
ト,優先ビット,物理アドレスビット,キャッシュビッ
ト,オーバライトビット,バリッドビット,ダーティビ
ットを、保持するためのレジスタである。仮想アドレス
比較器51は、ページマスクビット44によって示され
るページ内において、仮想アドレスレジスタ3からの仮
想アドレス入力とプログラムID入力と、それぞれのレ
ジスタに保持されている仮想アドレスビットと、プログ
ラムIDビットとの一致を検出して、出力ヒット信号を
発生する。アンド回路52は、出力ヒット信号と優先ビ
ットとの発生を検出した信号を発生し、ゲート回路5
3,54,55,56は、アンド回路52の検出信号出
力に応じて、物理アドレスビットによって物理アドレス
出力を発生し、キャッシュビットによってキャッシュビ
ット出力を発生し、バリッドビットによってバリッドビ
ット出力を発生し、ダーティビットによってダーティビ
ット出力を発生する。さらに、アンド回路57は、出力
ヒット信号とオーバライトビットとの発生を検出して出
力オーバライト信号を発生する。このように、TLB4
は、仮想アドレスから物理アドレスに変換する、連想記
憶構造のバッファメモリである。
のTLBの構成,動作を説明する。仮想アドレス入力バ
スとプログラムID入力バスからの入力に応じて、TL
Bの各行61〜64が動作して、それぞれ出力ヒット信
号1と出力オーバライト信号1,出力ヒット信号2と出
力オーバライト信号2,出力ヒット信号3と出力オーバ
ライト信号3,出力ヒット信号4と出力オーバライト信
号4を出力し、また、物理アドレス出力バス,キャッシ
ュビット出力バス,バリッドビット出力バス,ダーティ
ビット出力バスにそれぞれの出力を発生する。ここで、
キャッシュビット出力は、物理アドレス出力に対するキ
ャッシュアルゴリズムを指定するものであり、バリッド
ビット出力は、物理アドレス出力の有効/無効を示す情
報であり、ダーティビット出力は、TLBの書き替え可
否を示す情報である。マルチヒット例外判定回路65で
は、アンド回路66〜69において、各行の出力ヒット
信号が発生し、出力オーバライト信号が発生しないこと
を検出した信号に対して、マルチヒット例外検出回路7
0で、2つ以上の出力信号が発生したことを検出したと
き、マルチヒット例外検出信号を発生する。マルチヒッ
ト例外検出信号の発生は、重ね合わせを許容されない出
力ヒット信号が2つ以上発生したことを示し、マルチヒ
ット例外検出信号の発生によって、プログラムは強制終
了される。
のマルチヒット例外検出回路の構成,動作を説明する。
マルチヒット例外検出回路は、図5(a)に示すよう
に、2つ以上の出力ヒット信号が発生したとき、マルチ
ヒット例外の発生を示す、マルチヒット例外検出信号を
発生する。図5(b)は、4エントリの場合のマルチヒ
ット例外検出回路の構成例を示したものである。図示の
ように、オア回路OR1,OR2と、ノア回路NOR1
と、ナンド回路NAND1,NAND2,NAND3と
によって構成され、出力ヒット信号1,出力ヒット信号
2,出力ヒット信号3,出力ヒット信号4のうち、2つ
以上の信号が "1”になったとき、マルチヒット例外検
出信号として "1”を出力する。
例外検出回路の構成例を示したものである。図示のよう
に、オア回路OR1,OR2,OR3,OR4,OR
5,OR6と、ノア回路NOR1,NOR2,NOR
3,NOR4と、アンド回路AND1,AND2,AN
D3,AND4と、ナンド回路NAND1,NAND
2,NAND3とによって構成され、出力ヒット信号
1,出力ヒット信号2,出力ヒット信号3,出力ヒット
信号4,出力ヒット信号5,出力ヒット信号6,出力ヒ
ット信号7,出力ヒット信号8のうち、2つ以上の信号
が "1”になったとき、マルチヒット例外検出信号とし
て "1”を出力する。
ドレス変換装置におけるアドレス変換の動作の流れを説
明する。例えば、図1,図3に示すTLBにおいて、仮
想アドレスとプログラムIDとが入力されたとき、仮想
アドレスの一致を検出して(ステップS1)、仮想アド
レスが一致したときは、次のステップへ進み、仮想アド
レスが一致するものがないときは、例外(1)の処理が
行なわれる(ステップS2)。例外(1)の処理におい
ては、TLBの内容が不適当なので、PTEを再検索し
て、所要の情報をTLBに再登録して、再び仮想アドレ
スの一致を検出する。次に、プログラムIDの一致を検
出して(ステップS3)、プログラムIDが一致したと
きは、次のステップへ進み、プログラムIDが一致しな
いときは、仮想アドレスが一致してプログラムIDが一
致しないことは異常なので、エラーとみなして、例外
(2)の処理が行なわれる(ステップS4)。例外
(2)の処理においては、プログラムが強制終了され
る。
かをみて(ステップS5)、 "1”のときは、次のステ
ップへ進み、 "1”でないときは、プログラムが無効な
ので、例外(3)の処理が行なわれる(ステップS
6)。例外(3)の処理においては、プログラムが強制
終了される。次に、ダーティビットが "1”であるか否
かをみて(ステップS7)、 "1”のときは、次のステ
ップへ進み、 "1”でないときは、TLB4が書き込み
不可でないので、TLBの書き込みを行なうか否かをみ
て(ステップS8)、書き込みを行なったときは、例外
(4)の処理が行なわれる。例外(4)の処理において
は、TLBが書き込みされて内容が変化したので、プロ
グラムが強制終了される。一方、書き込みを行なわない
ときは、TLBの内容は変化しないので、書き込み不可
の場合(ダーティビットが "1”の場合)と同じ処理が
行なわれる。
ドレスがヒットしたか否かをみて(ステップS10)、
2つ以上のエントリでヒットしたときは、次のオーバラ
イトビットのチェックのステップへ進み、2つ以上のエ
ントリでヒットしなかったときは、オーバライトビット
のチェックを行なうことなしに、以降のステップへ進
む。2つ以上のエントリでヒットしたとき、オーバライ
トビットが "1”であるか否かをみて(ステップS1
1)、 "1”のときは、次のステップへ進み、 "1”で
ないときは、マルチヒット例外の処理を行なう(ステッ
プS12)。マルチヒット例外の処理においては、2つ
以上のエントリでヒットしたのに、重ね合わせが許容さ
れていないので、エラーとみなして、プログラムが強制
終了される。
みて(ステップS13)、 "1”のときは、入力仮想ア
ドレスに対応する物理アドレスと、付加されているキャ
ッシュビットとを出力し(ステップS14)、優先ビッ
トが "1”でないときは、物理アドレスとキャッシュビ
ットを出力しない(ステップS15)。なお、この場合
は、重ね合わされている他方のプログラムに、優先ビッ
トが立っている同一アドレスがあるので、そのプログラ
ムの変換時に、所要の物理アドレスが出力される。な
お、以上の処理において、仮想アドレス及びプログラム
IDの一致の判定と、バリッドビット,ダーティビッ
ト,オーバライトビット及び優先ビットの判定とは、図
1に示されたTLB4の各行の構成において行なわれ、
2つ以上のエントリにおけるヒットの判定は、図1に示
されたマルチビット例外判定回路23において行なわれ
る。
照して、この例のアドレス変換の具体例を説明する。図
9に示すように、例えばPTE上に設けられる仮想アド
レス空間71には、32ビットアドレスとして、アドレ
ス0x00000000〜0x0000FFFFからな
る、ページサイズ64KBの領域に、プログラムID:
7を有する、プログラム1が格納されている。また、こ
のうち、アドレス0x00005000〜0x0000
5FFFからなる、ページサイズ4KBの領域に重ね合
わせて、プログラムID:7を有する、プログラム2が
格納されている。この仮想アドレス空間のプログラムを
TLB73に格納する際には、64KBのプログラム1
の領域に対して、4KBのプログラム2の領域を重ね合
わせる。TLB73に格納された、仮想アドレス空間の
仮想アドレスを、TLB73によって変換して得られ
た、物理アドレスを格納するために、メインメモリにお
ける物理アドレス空間72には、アドレス0x0000
00〜0xFFFFFFからなる、ページサイズ16M
Bの領域に、プログラム1のために、アドレス0x12
0000〜0x12FFFFからなる64KBの領域が
確保され、プログラム2のために、アドレス0x001
000〜0x001FFFからなる4KBの領域が確保
されている必要がある。
ログラム1とプログラム2の内容が示されている。プロ
グラム1とプログラム2は、それぞれ、仮想アドレス空
間,物理アドレス空間,プログラムID,オーバライト
ビット,優先ビットとして、図示の値を有するものとす
る。
アドレス変換の具体例が示されている。いま、仮想アド
レス入力81が、図示のように、16ビットからなるT
LB比較部分と、16ビットからなるオフセット部分と
からなり、TLBデータ82が、図示のように、20ビ
ットからなる仮想アドレスと、12ビットからなるマス
ク部分と、8ビットからなるプログラムID(PID)
部分と、20ビットからなる物理アドレス部分とからな
るものとすると、入力仮想アドレスが0x000001
00だった場合には、入力仮想アドレスにおける、マス
ク値に "1”が立っている部分をマスクした値として定
まる仮想アドレス値(仮想TLB値)が、TLBデータ
82の仮想アドレスと一致した(ヒットした)ので、こ
の仮想アドレスに対応する物理アドレス(物理TLB
値)が読み出され、これに入力オフセット値を加算する
ことによって、出力すべき物理アドレス値が図示のよう
に定まる。
アドレス変換の他の具体例が示されている。いま、入力
仮想アドレスが、0x00005100だった場合に
は、プログラムID:7のプログラム1から仮想TLB
値が求められて、TLBデータ82の仮想アドレスと一
致した(ヒットした)が、この場合は、優先ビットが "
0”なので、プログラム1からは、物理アドレスが出力
されない。一方、この場合は、プログラムID:7のプ
ログラム2における同じ仮想アドレスがヒットするが、
この仮想アドレスでは、優先ビットが "1”になってい
るので、対応する物理アドレスが出力されることにな
る。
の効果を説明するものである。図13(a)は、TLB
からプログラム(1)85と、プログラム(1)内にお
ける、キャッシュビットが "1”になっているプログラ
ム(2)86とが、出力される状態を示し、この場合
は、出力されるプログラム(2)は、図示されないキャ
ッシュメモリに入力されて、キャッシュ処理を行なわれ
る。また、図13(b)は、TLBからプログラム
(1)85と、プログラム(1)内に重ね合わされてい
る、キャッシュビットが "0”になっているプログラム
(2)87とが、出力される状態を示し、この場合は、
出力されるプログラム(2)は、図示されないキャッシ
ュメモリに入力されず、キャッシュ処理を行なわれな
い。このように、TLBから同一内容の、キャッシュ処
理を行なうべきプログラムと、キャッシュ処理を行なわ
ないプログラムとを、優先ビットの指定に応じて、任意
に切り替えて出力することができるので、両プログラム
の処理結果を比較することによって、同一プログラム上
で、キャッシュに起因するバグを早期に、かつ容易に発
見することができる。なお、上記の例では、プログラム
(1)に重ね合わせるプログラム(2)の内容は変わら
ないものとしたが、TLBの別の行に仮想アドレスと物
理アドレスとが格納された他のプログラムをプログラム
(2)の代わりにプログラム(1)に重ね合わせてもよ
いし、他のプログラムを複数用意して、それらを切り替
えてもよい。
置におけるエントリの入れ替えを説明する図である。上
述の第1実施例においては、最初、PTEからコピーさ
れたTLBの内容は、当該TLBの処理を終了するまで
変わらないものとしたが、同一のプログラム上におい
て、エントリを入れ替えるだけで、異なる機能を実行さ
せるようにすることもできる。この場合における、TL
Bを含むアドレス変換装置の構成は、図1及び図3に示
された、第1実施例の場合と同様でよい。いま、図14
(a)に示すように、はじめ、PTEからのコピーによ
って、TLBに、プログラム(1)91上にプログラム
(2)92がコピーされた状態として、プログラムを読
み出すことによって、プログラム(1)に対して、プロ
グラム(2)のサブルーチンを実行する。次に、再びP
TEからのコピーによって、プログラム(2)の領域を
プログラム(3)に入れ替えることによって、TLB
に、プログラム(1)91上にプログラム(3)93が
コピーされた状態として、プログラムを読み出すことに
よって、プログラム(1)に対して、プログラム(3)
のサブルーチンを実行する。これによって、例えばプロ
グラム(2)のサブルーチンにバグがあるか否かの判定
を行なうことができる。
よれば、TLBのページサイズを増やすことなく、また
プログラムIDを増やすことなしに、例えばサブルーチ
ンのデバッグを、容易に行なうことができる。また、こ
の例によれば、プログラム(2)の物理アドレスを、プ
ログラム(1)とは別に確保する必要がないので、メイ
ンメモリの消費量を増やすことがない。
してきたが、具体的な構成はこの実施例に限られたもの
ではなく、この発明の要旨を逸脱しない範囲の設計の変
更等があってもこの発明に含まれる。例えば、TLB上
において重ね合わせるプログラムは、実施例に示された
ように、プログラムを2段に重ね合わせる場合に限ら
ず、例えば3段以上、重ね合わせることも可能である。
この場合は、前述のオーバライトビット及び優先ビット
を多ビット構成にすればよい。また、同じ仮想アドレス
に対して、異なる物理アドレスを対応させるようにする
こともできる。この場合は、TLBを、同一仮想アドレ
スに対して物理アドレスを異にする2ページから構成し
て、仮想アドレスの最下位ビットによって、奇数ページ
と偶数ページとを選択して、異なる物理アドレスを読み
出すようにすればよい。
ス変換装置及びアドレス変換方法によれば、メインメモ
リの消費量を増やすことなしに、同一ページのプログラ
ム内に、出力後の処理が異なるプログラムを混在させ、
又は、同一ページのプログラム上において、TLBに格
納されているデータを入れ替えるだけで、異なる機能を
実行させることができる。すなわち、TLBにおいて、
オーバライトビットを備えたことによって、ページサイ
ズの異なる領域を重ね合わせることができるとともに、
同一ページのプログラム上に重ね合わされた、異なるプ
ログラムを、優先ビットによって選択することによっ
て、異なるページに対してTLBの入れ替え(更新)を
行なう必要なしに、読み出された物理アドレスの、出力
後の処理を異ならせる動作を高速に行なうことができる
ので、例えば、同一プログラムに対するキャッシュアル
ゴリズムを異ならせることによって、キャッシュに起因
するバグを、早期にかつ容易に発見することが可能にな
る。また、TLB上のプログラムのエントリを入れ替え
ることによって、ページサイズを増やすことなく、また
プログラムIDを増やすことなしに、同一ページのプロ
グラムにおいて、異なる機能を実行させることができる
ので、例えばサブルーチンのデバッグ等の処理を、容易
に、かつ高速に行なうことができるようになる。
の構成を示す図である。
る。
である。
る。
の構成例を示す図である。
の構成例を示す図である。
れを示すフローチャート(1)である。
れを示すフローチャート(2)である。
する図である。
グラムを例示する図である。
る。
る。
するための図である。
置におけるエントリの入れ替えを説明する図である。
説明するものである。
Claims (7)
- 【請求項1】 プログラムの仮想アドレスと物理アドレ
スとの対を1つの行に格納し、これらの対を格納した行
を複数有して、入力仮想アドレスに応じて対応する物理
アドレスを出力するアドレス変換テーブル(以下、TL
Bと略す)を備え、 前記TLBにおける第1の行に、第1のプログラムの仮
想アドレスと物理アドレスとの対を格納しており、前記
TLBの第2の行に、前記第1のプログラムの一部領域
である第2のプログラムと同一の仮想アドレスを有する
第3のプログラムの仮想アドレスと物理アドレスとを格
納しており、前記第1の行と第2の行とに付加されてい
る優先ビットに応じて前記第2のプログラム又は第3の
プログラムを選択して、入力仮想アドレスに対応する物
理アドレスを出力するように構成されていることを特徴
とするアドレス変換装置。 - 【請求項2】 前記第3のプログラムの物理アドレス
が、前記第2のプログラムの物理アドレスと異なってい
ることを特徴とする請求項1記載のアドレス変換装置。 - 【請求項3】 前記第3のプログラムの物理アドレス
が、前記第2のプログラムの物理アドレスと一致してい
ることを特徴とする請求項1記載のアドレス変換装置。 - 【請求項4】 前記第2のプログラムと第3のプログラ
ムとが、仮想アドレス上で重ね合わされていることを示
すオーバライトビットが、前記第1の行と第2の行とに
付与されていて、該オーバライトビットの検出によって
前記TLBに対するマルチヒットを許容されるように構
成されていることを特徴とする請求項1記載のアドレス
変換装置。 - 【請求項5】 前記TLBの2以上の行において、仮想
アドレスの入力がそれぞれ一致したことを示す出力ヒッ
ト信号が発生し、前記オーバライトビットの検出を示す
出力オーバライト信号が発生しないとき、プログラムの
強制終了を指示するマルチヒット例外検出信号を発生す
るマルチヒット例外判定回路を備えたことを特徴とする
請求項4記載のアドレス変換装置。 - 【請求項6】 前記第2のプログラムと第3のプログラ
ムとが、それぞれ異なるキャッシュアルゴリズムを有す
るように、キャッシュアルゴリズムを指定するキャッシ
ュビットを、前記第1の行と第2の行とに付与されてい
ることを特徴とする請求項1乃至5のいずれか1に記載
のアドレス変換装置。 - 【請求項7】 プログラムの仮想アドレスと物理アドレ
スとの対を1つの行に格納し、これらの対を格納した行
を複数有して、入力仮想アドレスに応じて対応する物理
アドレスを出力するTLBに対して、 前記TLBにおける第1の行に、第1のプログラムの仮
想アドレスと物理アドレスとの対を格納しており、前記
TLBの第2の行に前記第1のプログラムの一部領域で
ある第2のプログラムと同一の仮想アドレスを有する第
3のプログラムの仮想アドレスと物理アドレスとを格納
しており、前記第1の行と第2の行とに付加されている
優先ビットに応じて前記第2のプログラム又は第3のプ
ログラムを選択して、入力仮想アドレスに対応する物理
アドレスを出力することを特徴とするアドレス変換方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32162099A JP3476402B2 (ja) | 1999-11-11 | 1999-11-11 | アドレス変換装置及びアドレス変換方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32162099A JP3476402B2 (ja) | 1999-11-11 | 1999-11-11 | アドレス変換装置及びアドレス変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001142781A true JP2001142781A (ja) | 2001-05-25 |
JP3476402B2 JP3476402B2 (ja) | 2003-12-10 |
Family
ID=18134558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32162099A Expired - Fee Related JP3476402B2 (ja) | 1999-11-11 | 1999-11-11 | アドレス変換装置及びアドレス変換方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3476402B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100833142B1 (ko) | 2006-02-28 | 2008-05-29 | 후지쯔 가부시끼가이샤 | 어드레스 변환 장치 |
CN102662860A (zh) * | 2012-03-15 | 2012-09-12 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
-
1999
- 1999-11-11 JP JP32162099A patent/JP3476402B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100833142B1 (ko) | 2006-02-28 | 2008-05-29 | 후지쯔 가부시끼가이샤 | 어드레스 변환 장치 |
CN102662860A (zh) * | 2012-03-15 | 2012-09-12 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
CN102662860B (zh) * | 2012-03-15 | 2015-07-01 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3476402B2 (ja) | 2003-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5835963A (en) | Processor with an addressable address translation buffer operative in associative and non-associative modes | |
US6266755B1 (en) | Translation lookaside buffer with virtual address conflict prevention | |
US7263565B2 (en) | Bus system and integrated circuit having an address monitor unit | |
US5909696A (en) | Method and apparatus for caching system management mode information with other information | |
JP2007058776A (ja) | メモリアクセス制御装置 | |
US8327075B2 (en) | Methods and apparatus for handling a cache miss | |
US5764944A (en) | Method and apparatus for TLB invalidation mechanism for protective page fault | |
US7100006B2 (en) | Method and mechanism for generating a live snapshot in a computing system | |
US6519684B1 (en) | Low overhead method for selecting and updating an entry in a cache memory | |
JP2001222470A (ja) | トランスレーション・ルックアサイド・バッファ回路 | |
JPH04237349A (ja) | キャッシュメモリシステムおよびキャッシュメモリコントローラ | |
JP3476402B2 (ja) | アドレス変換装置及びアドレス変換方法 | |
JPH0192856A (ja) | アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法 | |
JP2004110240A (ja) | キャッシュメモリ装置 | |
TWI801622B (zh) | 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體 | |
US11550651B2 (en) | Execution circuits using discardable state | |
JP2008176731A (ja) | マルチプロセッサシステム | |
JP2002049531A (ja) | メモリ領域境界検出方法及びコンピュータシステム | |
JP3030037B2 (ja) | 主記憶装置 | |
US20080172544A1 (en) | Method and Apparatus to Search for Errors in a Translation Look-Aside Buffer | |
JPH0262645A (ja) | 記憶保護方式 | |
JP3290682B2 (ja) | アドレス変換装置 | |
KR20200116471A (ko) | 데이터 처리장치의 어드레스 변환 | |
JP2927072B2 (ja) | アクセス権検査装置 | |
JPH03119438A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080926 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080926 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090926 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090926 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100926 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100926 Year of fee payment: 7 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100926 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110926 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120926 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120926 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130926 Year of fee payment: 10 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |