JP3476402B2 - アドレス変換装置及びアドレス変換方法 - Google Patents

アドレス変換装置及びアドレス変換方法

Info

Publication number
JP3476402B2
JP3476402B2 JP32162099A JP32162099A JP3476402B2 JP 3476402 B2 JP3476402 B2 JP 3476402B2 JP 32162099 A JP32162099 A JP 32162099A JP 32162099 A JP32162099 A JP 32162099A JP 3476402 B2 JP3476402 B2 JP 3476402B2
Authority
JP
Japan
Prior art keywords
program
address
tlb
row
virtual 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.)
Expired - Fee Related
Application number
JP32162099A
Other languages
English (en)
Other versions
JP2001142781A (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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP32162099A priority Critical patent/JP3476402B2/ja
Publication of JP2001142781A publication Critical patent/JP2001142781A/ja
Application granted granted Critical
Publication of JP3476402B2 publication Critical patent/JP3476402B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、アドレス変換バ
ッファ(Translatoion Lookaside Buffer :TLB)に
おける、1つの行に仮想アドレスが格納されたプログラ
ム内に、他の行に仮想アドレスが格納されたプログラム
を重ね合わせることによって、プログラム処理の性質を
異ならせることができるようにした、アドレス変換装置
及びアドレス変換方法に関する。
【0002】
【従来の技術】データ処理装置において、プロセッサが
扱うプログラムのアドレスは、ソフトウェア上において
独自に設定された仮想アドレスからなっていて、記憶装
置上のアドレスである物理アドレスとは異なっており、
両者の間における対応付けは、一般に、任意に定められ
るようになっている。そこで、プログラムの運用時に
は、仮想アドレスから物理アドレスへの変換を行なうこ
とが必要になる。一方、データ処理装置においては、メ
インメモリのアクセスを管理,制御するために、プロセ
ッサにメモリ管理ユニット(Memory Management Unit:
MMU)を備えて、アドレス変換,記憶保護,バッファ
記憶等の機能を行なわせている。そこで、上述の仮想ア
ドレスから物理アドレスへの変換も、MMUにハードウ
ェアからなるTLBを設けることによって、高速に処理
する方法がとられている。
【0003】図15は、MMUにおけるアドレス変換を
イメージ的に説明するものである。MMU101は、ア
ドレス変換のためにTLB102を有し、図示されない
TLBコントローラを介して、TLB102を制御する
ことによって、仮想アドレスと物理アドレスとの変換を
行なう。この際、TLB102において処理される仮想
アドレスと物理アドレスのデータは、プロセッサのオペ
レーションシステム(OS)が管理するソフトウェアで
ある、ページテーブルエントリ(Page Table Entry:P
TE)によって、予め準備されているものであり、TL
Bは、PTEのハードウェアキャッシュメモリとして機
能する。図16は、従来のPTEの内容を説明するもの
である。PTE111は、プログラム番号と、仮想アド
レスと、この仮想アドレスに対応する物理アドレスと、
各種付加ビットとを複数の行(エントリ)に格納したテ
ーブルからなっている。OSはPTE111から必要に
応じて、必要な部分を、プロセッサ(MPU)内のTL
B112にコピーする。PTE111は、通常はメイン
メモリ上に置かれるが、必要に応じて、ハードディスク
ドライブ(HDD)上に退避される。
【0004】図17は、従来のTLBの構成の概略を示
したものである。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として、図
示されないキャッシュメモリ制御部へ出力され、キャッ
シュメモリを使用するか否かの、キャッシュアルゴリズ
ムを指定する。
【0005】以下、図17を参照して、従来のTLBの
動作を説明する。TLB124において、プログラムは
ページごとに管理される。この際、ページマスクビット
131は、TLBの各行に対応するプログラムのページ
サイズ、すなわちプログラムサイズを設定する。仮想ア
ドレス比較器141は、仮想アドレスレジスタ123か
ら入力された仮想アドレスと、仮想アドレステーブル1
32の仮想アドレスとを比較して、いずれかの行で一致
したとき、物理アドレステーブル133における対応す
る物理アドレスを、物理アドレスレジスタ125に出力
させる。このとき、同じ行のキャッシュビット134の
値が、前記MMUのTLBコントローラによって、キャ
ッシュメモリに出力される。図17に示された従来のT
LBにおいては、同じ仮想アドレスを複数の行に格納す
ることは、マルチヒットエラーを惹起するため、許容さ
れない。
【0006】
【発明が解決しようとする課題】しかしながら、従来の
TLBにおいては、プログラムをデバッグする際に、プ
ログラム中の任意のサブルーチンについて、随時、キャ
ッシュアルゴリズムを変えてテストしようとしても、T
LBの1つの行に仮想アドレスが格納された1つのプロ
グラムの一部だけ、キャッシュアルゴリズムを変えるこ
とができないという問題があった。これは、従来のTL
Bでは、TLBの1つの行には1つのキャッシュアルゴ
リズムしか指定できないためである。
【0007】この発明は、上述の事情に鑑みてなされた
ものであって、同一ページのプログラム内に、出力後の
処理が異なるプログラムを混在させ、又は、同一ページ
のプログラム上において、TLBに格納されているデー
タを入れ替えるだけで、異なる機能を実行させることが
可能な、アドレス変換装置及びアドレス変換方法を提供
することを目的としている。
【0008】
【課題を解決するための手段】上記課題を解決するた
め、請求項1記載の発明は、アドレス変換装置に係り、
プログラムの仮想アドレスと物理アドレスとの対を1つ
の行に格納し、これらの対を格納した行を複数有して、
入力仮想アドレスに応じて対応する物理アドレスを出力
するアドレス変換テーブル(TLB)を備え、上記TL
Bにおける第1の行に、第1のプログラムの仮想アドレ
スと物理アドレスとの対を格納しており、上記TLBの
第2の行に、上記第1のプログラムの一部領域である第
2のプログラムと同一の仮想アドレスを有する第3のプ
ログラムの仮想アドレスと物理アドレスとを格納してお
り、上記第1の行と第2の行とに付加されている優先ビ
ットに応じて上記第2のプログラム又は第3のプログラ
ムを選択して、入力仮想アドレスに対応する物理アドレ
スを出力するように構成されていることを特徴としてい
る。
【0009】また、請求項2記載の発明は、請求項1記
載のアドレス変換装置に係り、上記第3のプログラムの
物理アドレスが、上記第2のプログラムの物理アドレス
と異なっていることを特徴としている。
【0010】また、請求項3記載の発明は、請求項1記
載のアドレス変換装置に係り、上記第3のプログラムの
物理アドレスが、上記第2のプログラムの物理アドレス
と一致していることを特徴としている。
【0011】また、請求項4記載の発明は、請求項1記
載のアドレス変換装置に係り、上記第2のプログラムと
第3のプログラムとが、仮想アドレス上で重ね合わされ
ていることを示すオーバライトビットが、上記第1の行
と第2の行とに付与されていて、該オーバライトビット
の検出によって上記TLBに対するマルチヒットを許容
されるように構成されていることを特徴としている。
【0012】また、請求項5記載の発明は、請求項1記
載のアドレス変換装置に係り、上記TLBの2以上の行
において、仮想アドレスの入力がそれぞれ一致したこと
を示す出力ヒット信号が発生し、上記オーバライトビッ
トの検出を示す出力オーバライト信号が発生しないと
き、プログラムの強制終了を指示するマルチヒット例外
検出信号を発生するマルチヒット例外判定回路を備えた
ことを特徴としている。
【0013】また、請求項6記載の発明は、請求項1乃
至5のいずれか1に記載のアドレス変換装置に係り、上
記第2のプログラムと第3のプログラムとが、それぞれ
異なるキャッシュアルゴリズムを有するように、キャッ
シュアルゴリズムを指定するキャッシュビットを、上記
第1の行と第2の行とに付与されていることを特徴とし
ている。
【0014】 また、請求項7記載の発明は、アドレス
変換方法に係り、プログラムの仮想アドレスと物理アド
レスとの対を1つの行に格納し、これらの対を格納した
行を複数有して、入力仮想アドレスに応じて対応する物
理アドレスを出力するTLBであって、該TLBにおけ
る第1の行に、第1のプログラムの仮想アドレスと物理
アドレスとの対を格納しており、上記TLBの第2の行
に、上記第1のプログラムの一部領域である第2のプロ
グラムと同一の仮想アドレスを有する第3のプログラム
の仮想アドレスと物理アドレスとを格納しており、上記
第1の行と上記第2の行とに優先ビットが付加されてい
るTLBにおけるアドレス変換方法であって、上記同一
の仮想アドレスである入力仮想アドレスが入力された場
合に、上記第1の行と上記第2の行とに付加されている
上記優先ビットに応じて上記第2のプログラム又は第3
のプログラムを選択して、上記入力仮想アドレスに対応
する物理アドレスを出力することを特徴としている。
【0015】
【作用】この発明の構成では、TLBにおける第1の行
に、第1のプログラムの仮想アドレスと物理アドレスと
の対を格納しており、TLBの第2の行に、第1のプロ
グラムの一部領域である第2のプログラムと同一の仮想
アドレスを有する、第3のプログラムの仮想アドレスと
物理アドレスとを格納しており、第1の行と第2の行と
に付加されている優先ビットに応じて、第2のプログラ
ム又は第3のプログラムを選択して、入力仮想アドレス
に対応する物理アドレスを出力するようにしたので、メ
インメモリの消費量を増やすことなしに、同一ページの
プログラム内に、出力後の処理が異なるプログラムを混
在させ、又は、同一ページのプログラム上において、T
LBに格納されているデータを入れ替えるだけで、異な
る機能を実行させることができる。すなわち、TLBに
おいて、オーバライトビットを備えたことによって、ペ
ージサイズの異なる領域を重ね合わせることができると
ともに、同一ページのプログラム上に重ね合わされた、
異なるプログラムを、優先ビットによって選択すること
によって、異なるページに対してTLBの入れ替え(更
新)を行なう必要なしに、読み出された物理アドレス
の、出力後の処理を異ならせる動作を高速に行なうこと
ができる。また、同一TLB上の同一ページのプログラ
ム上で、別のプログラムのエントリを入れ替えることに
よって、ページサイズを増やすことなく、またプログラ
ムIDを増やすことなしに、同一ページのプログラムに
おいて、異なる機能を実行させることができる。
【0016】
【発明の実施の形態】以下、図面を参照して、この発明
の実施の形態について説明する。説明は、実施例を用い
て具体的に行う。 ◇第1実施例 図1は、この発明の第1実施例であるアドレス変換装置
の構成を示す図、図2は、本実施例の場合のPTEの構
成を示す図、図3は、本実施例におけるTLBの各行の
構成を示す図、図4は、4エントリの場合のTLBの構
成を示す図、図5は、4エントリの場合のマルチヒット
例外検出回路の構成例を示す図、図6は、8エントリの
場合のマルチヒット例外検出回路の構成例を示す図、図
7,図8は、本発明のアドレス変換装置における動作の
流れを示すフローチャート、図9は、本実施例における
アドレス変換を概念的に説明する図、図10は、本実施
例においてアドレス変換を行なうプログラムを例示する
図、図11,図12は、アドレス変換の具体例を示す
図、図13は、本実施例におけるアドレス変換の効果を
説明するための図である。
【0017】この例のアドレス変換装置は、図1に示す
ように、MMU1内に設けられた、仮想アドレスバス2
と、仮想アドレスレジスタ3と、TLB4と、物理アド
レスレジスタ5と、物理アドレスバス6とから概略構成
されている。MMU1は、メインメモリへのアクセスを
管理,制御し、異常な状態を検出して例外処理を行い、
アドレス変換を行なう等の機能を有している。仮想アド
レスバス2を通じて、仮想アドレスとプログラムID
(番号)とを入力する。仮想アドレスレジスタ3は、仮
想アドレスバス2から入力された情報を一旦、保持す
る。TLB4は、仮想アドレスレジスタ3からの仮想ア
ドレスを物理アドレスに変換する。物理アドレスレジス
タ5は、TLB4から出力された物理アドレスを一旦、
保持する。物理アドレスバス6は、物理アドレスレジス
タ5に保持された物理アドレスを出力する。
【0018】以下、図1を参照して、この例におけるT
LB4の内容について説明する。TLB4は、ページマ
スクビット11によって定まるページサイズのページ内
の各行に、仮想アドレステーブル12を形成する仮想ア
ドレスと、物理アドレステーブル13を形成する、仮想
アドレスに対応する物理アドレスと、出力される物理ア
ドレスに対するキャッシュアルゴリズムを指定するキャ
ッシュビット14と、同一ページ内において重ね合わせ
が行われていることを示すオーバライトビット15と、
重ね合わされた両アドレスのうちの出力されるべきアド
レスを示す優先ビット16と、その他の種々の付加ビッ
ト17とが格納されている。そして、TLB4は、各行
に仮想アドレス比較器21を備えて、仮想アドレスレジ
スタ3における入力仮想アドレスと、仮想アドレステー
ブル12内のいずれかの仮想アドレスとが一致したと
き、対応する物理アドレスを物理アドレスレジスタ5に
出力するとともに、その行のキャッシュビット14によ
って、出力物理アドレスに対するキャッシュアルゴリズ
ムを指定する、キャッシュアルゴリズムビット22を出
力する。マルチヒット例外判定回路23は、TLB4内
の2以上の仮想アドレスの比較一致(ヒット)によって
マルチヒット検出信号が発生し、オーバライトビットの
検出によってオーバライトビット検出信号が発生しない
とき、マルチヒット例外処理を行なうための、マルチヒ
ット例外検出信号を出力する。
【0019】この例においては、TLB4に格納される
各情報は、プロセッサが、図2に示すPTE31から、
必要に応じてコピーする。PTE31の各行には、図2
に示すように、プログラムNo(ID)32,仮想アド
レス33,物理アドレス34の各ビットと,キャッシュ
ビット35,オーバライトビット36,優先ビット3
7,各種の付加ビット38が、それぞれ格納されてい
る。付加ビット38としては、例えば、TLB4におけ
るページサイズを指定するためのページマスクビット,
出力物理アドレスの有効/無効を示すバリッドビット,
TLB4の書き込み可否を示すダーティビット等があ
る。
【0020】次に、図3を参照して、この例におけるT
LBの各行(エントリ)の構成を説明する。TLBのあ
る行41において、42〜50は、それぞれ、仮想アド
レスビット,プログラムIDビット,ページマスクビッ
ト,優先ビット,物理アドレスビット,キャッシュビッ
ト,オーバライトビット,バリッドビット,ダーティビ
ットを、保持するためのレジスタである。仮想アドレス
比較器51は、ページマスクビット44によって示され
るページ内において、仮想アドレスレジスタ3からの仮
想アドレス入力とプログラムID入力と、それぞれのレ
ジスタに保持されている仮想アドレスビットと、プログ
ラムIDビットとの一致を検出して、出力ヒット信号を
発生する。アンド回路52は、出力ヒット信号と優先ビ
ットとの発生を検出した信号を発生し、ゲート回路5
3,54,55,56は、アンド回路52の検出信号出
力に応じて、物理アドレスビットによって物理アドレス
出力を発生し、キャッシュビットによってキャッシュビ
ット出力を発生し、バリッドビットによってバリッドビ
ット出力を発生し、ダーティビットによってダーティビ
ット出力を発生する。さらに、アンド回路57は、出力
ヒット信号とオーバライトビットとの発生を検出して出
力オーバライト信号を発生する。このように、TLB4
は、仮想アドレスから物理アドレスに変換する、連想記
憶構造のバッファメモリである。
【0021】以下、図4を参照して、4エントリの場合
のTLBの構成,動作を説明する。仮想アドレス入力バ
スとプログラムID入力バスからの入力に応じて、TL
Bの各行61〜64が動作して、それぞれ出力ヒット信
号1と出力オーバライト信号1,出力ヒット信号2と出
力オーバライト信号2,出力ヒット信号3と出力オーバ
ライト信号3,出力ヒット信号4と出力オーバライト信
号4を出力し、また、物理アドレス出力バス,キャッシ
ュビット出力バス,バリッドビット出力バス,ダーティ
ビット出力バスにそれぞれの出力を発生する。ここで、
キャッシュビット出力は、物理アドレス出力に対するキ
ャッシュアルゴリズムを指定するものであり、バリッド
ビット出力は、物理アドレス出力の有効/無効を示す情
報であり、ダーティビット出力は、TLBの書き替え可
否を示す情報である。マルチヒット例外判定回路65で
は、アンド回路66〜69において、各行の出力ヒット
信号が発生し、出力オーバライト信号が発生しないこと
を検出した信号に対して、マルチヒット例外検出回路7
0で、2つ以上の出力信号が発生したことを検出したと
き、マルチヒット例外検出信号を発生する。マルチヒッ
ト例外検出信号の発生は、重ね合わせを許容されない出
力ヒット信号が2つ以上発生したことを示し、マルチヒ
ット例外検出信号の発生によって、プログラムは強制終
了される。
【0022】次に、図5を参照して、4エントリの場合
のマルチヒット例外検出回路の構成,動作を説明する。
マルチヒット例外検出回路は、図5(a)に示すよう
に、2つ以上の出力ヒット信号が発生したとき、マルチ
ヒット例外の発生を示す、マルチヒット例外検出信号を
発生する。図5(b)は、4エントリの場合のマルチヒ
ット例外検出回路の構成例を示したものである。図示の
ように、オア回路OR1,OR2と、ノア回路NOR1
と、ナンド回路NAND1,NAND2,NAND3と
によって構成され、出力ヒット信号1,出力ヒット信号
2,出力ヒット信号3,出力ヒット信号4のうち、2つ
以上の信号が "1”になったとき、マルチヒット例外検
出信号として "1”を出力する。
【0023】図6は、8エントリの場合のマルチヒット
例外検出回路の構成例を示したものである。図示のよう
に、オア回路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”を出力する。
【0024】次に、図7,図8を参照して、この例のア
ドレス変換装置におけるアドレス変換の動作の流れを説
明する。例えば、図1,図3に示すTLBにおいて、仮
想アドレスとプログラムIDとが入力されたとき、仮想
アドレスの一致を検出して(ステップS1)、仮想アド
レスが一致したときは、次のステップへ進み、仮想アド
レスが一致するものがないときは、例外(1)の処理が
行なわれる(ステップS2)。例外(1)の処理におい
ては、TLBの内容が不適当なので、PTEを再検索し
て、所要の情報をTLBに再登録して、再び仮想アドレ
スの一致を検出する。次に、プログラムIDの一致を検
出して(ステップS3)、プログラムIDが一致したと
きは、次のステップへ進み、プログラムIDが一致しな
いときは、仮想アドレスが一致してプログラムIDが一
致しないことは異常なので、エラーとみなして、例外
(2)の処理が行なわれる(ステップS4)。例外
(2)の処理においては、プログラムが強制終了され
る。
【0025】次に、バリッドビットが "1”であるか否
かをみて(ステップS5)、 "1”のときは、次のステ
ップへ進み、 "1”でないときは、プログラムが無効な
ので、例外(3)の処理が行なわれる(ステップS
6)。例外(3)の処理においては、プログラムが強制
終了される。次に、ダーティビットが "1”であるか否
かをみて(ステップS7)、 "1”のときは、次のステ
ップへ進み、 "1”でないときは、TLB4が書き込み
不可でないので、TLBの書き込みを行なうか否かをみ
て(ステップS8)、書き込みを行なったときは、例外
(4)の処理が行なわれる。例外(4)の処理において
は、TLBが書き込みされて内容が変化したので、プロ
グラムが強制終了される。一方、書き込みを行なわない
ときは、TLBの内容は変化しないので、書き込み不可
の場合(ダーティビットが "1”の場合)と同じ処理が
行なわれる。
【0026】次に、2つ以上のエントリにおいて仮想ア
ドレスがヒットしたか否かをみて(ステップS10)、
2つ以上のエントリでヒットしたときは、次のオーバラ
イトビットのチェックのステップへ進み、2つ以上のエ
ントリでヒットしなかったときは、オーバライトビット
のチェックを行なうことなしに、以降のステップへ進
む。2つ以上のエントリでヒットしたとき、オーバライ
トビットが "1”であるか否かをみて(ステップS1
1)、 "1”のときは、次のステップへ進み、 "1”で
ないときは、マルチヒット例外の処理を行なう(ステッ
プS12)。マルチヒット例外の処理においては、2つ
以上のエントリでヒットしたのに、重ね合わせが許容さ
れていないので、エラーとみなして、プログラムが強制
終了される。
【0027】次に、優先ビットが "1”であるか否かを
みて(ステップS13)、 "1”のときは、入力仮想ア
ドレスに対応する物理アドレスと、付加されているキャ
ッシュビットとを出力し(ステップS14)、優先ビッ
トが "1”でないときは、物理アドレスとキャッシュビ
ットを出力しない(ステップS15)。なお、この場合
は、重ね合わされている他方のプログラムに、優先ビッ
トが立っている同一アドレスがあるので、そのプログラ
ムの変換時に、所要の物理アドレスが出力される。な
お、以上の処理において、仮想アドレス及びプログラム
IDの一致の判定と、バリッドビット,ダーティビッ
ト,オーバライトビット及び優先ビットの判定とは、図
1に示されたTLB4の各行の構成において行なわれ、
2つ以上のエントリにおけるヒットの判定は、図1に示
されたマルチビット例外判定回路23において行なわれ
る。
【0028】次に、図9,図10,図11,図12を参
照して、この例のアドレス変換の具体例を説明する。図
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の領域が確保
されている必要がある。
【0029】図10には、アドレス変換を行なうべきプ
ログラム1とプログラム2の内容が示されている。プロ
グラム1とプログラム2は、それぞれ、仮想アドレス空
間,物理アドレス空間,プログラムID,オーバライト
ビット,優先ビットとして、図示の値を有するものとす
る。
【0030】図11においては、プログラム1に対する
アドレス変換の具体例が示されている。いま、仮想アド
レス入力81が、図示のように、16ビットからなるT
LB比較部分と、16ビットからなるオフセット部分と
からなり、TLBデータ82が、図示のように、20ビ
ットからなる仮想アドレスと、12ビットからなるマス
ク部分と、8ビットからなるプログラムID(PID)
部分と、20ビットからなる物理アドレス部分とからな
るものとすると、入力仮想アドレスが0x000001
00だった場合には、入力仮想アドレスにおける、マス
ク値に "1”が立っている部分をマスクした値として定
まる仮想アドレス値(仮想TLB値)が、TLBデータ
82の仮想アドレスと一致した(ヒットした)ので、こ
の仮想アドレスに対応する物理アドレス(物理TLB
値)が読み出され、これに入力オフセット値を加算する
ことによって、出力すべき物理アドレス値が図示のよう
に定まる。
【0031】図12においては、プログラム1に対する
アドレス変換の他の具体例が示されている。いま、入力
仮想アドレスが、0x00005100だった場合に
は、プログラムID:7のプログラム1から仮想TLB
値が求められて、TLBデータ82の仮想アドレスと一
致した(ヒットした)が、この場合は、優先ビットが "
0”なので、プログラム1からは、物理アドレスが出力
されない。一方、この場合は、プログラムID:7のプ
ログラム2における同じ仮想アドレスがヒットするが、
この仮想アドレスでは、優先ビットが "1”になってい
るので、対応する物理アドレスが出力されることにな
る。
【0032】図13は、この例による仮想アドレス変換
の効果を説明するものである。図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)に重ね合わせてもよ
いし、他のプログラムを複数用意して、それらを切り替
えてもよい。
【0033】◇第2実施例 図14は、この発明の第2実施例であるアドレス変換装
置におけるエントリの入れ替えを説明する図である。上
述の第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)のサブルーチンにバグがあるか否かの判定
を行なうことができる。
【0034】このように、この例のアドレス変換装置に
よれば、TLBのページサイズを増やすことなく、また
プログラムIDを増やすことなしに、例えばサブルーチ
ンのデバッグを、容易に行なうことができる。また、こ
の例によれば、プログラム(2)の物理アドレスを、プ
ログラム(1)とは別に確保する必要がないので、メイ
ンメモリの消費量を増やすことがない。
【0035】以上、この発明の実施例を図面により詳述
してきたが、具体的な構成はこの実施例に限られたもの
ではなく、この発明の要旨を逸脱しない範囲の設計の変
更等があってもこの発明に含まれる。例えば、TLB上
において重ね合わせるプログラムは、実施例に示された
ように、プログラムを2段に重ね合わせる場合に限ら
ず、例えば3段以上、重ね合わせることも可能である。
この場合は、前述のオーバライトビット及び優先ビット
を多ビット構成にすればよい。また、同じ仮想アドレス
に対して、異なる物理アドレスを対応させるようにする
こともできる。この場合は、TLBを、同一仮想アドレ
スに対して物理アドレスを異にする2ページから構成し
て、仮想アドレスの最下位ビットによって、奇数ページ
と偶数ページとを選択して、異なる物理アドレスを読み
出すようにすればよい。
【0036】
【発明の効果】以上説明したように、この発明のアドレ
ス変換装置及びアドレス変換方法によれば、メインメモ
リの消費量を増やすことなしに、同一ページのプログラ
ム内に、出力後の処理が異なるプログラムを混在させ、
又は、同一ページのプログラム上において、TLBに格
納されているデータを入れ替えるだけで、異なる機能を
実行させることができる。すなわち、TLBにおいて、
オーバライトビットを備えたことによって、ページサイ
ズの異なる領域を重ね合わせることができるとともに、
同一ページのプログラム上に重ね合わされた、異なるプ
ログラムを、優先ビットによって選択することによっ
て、異なるページに対してTLBの入れ替え(更新)を
行なう必要なしに、読み出された物理アドレスの、出力
後の処理を異ならせる動作を高速に行なうことができる
ので、例えば、同一プログラムに対するキャッシュアル
ゴリズムを異ならせることによって、キャッシュに起因
するバグを、早期にかつ容易に発見することが可能にな
る。また、TLB上のプログラムのエントリを入れ替え
ることによって、ページサイズを増やすことなく、また
プログラムIDを増やすことなしに、同一ページのプロ
グラムにおいて、異なる機能を実行させることができる
ので、例えばサブルーチンのデバッグ等の処理を、容易
に、かつ高速に行なうことができるようになる。
【図面の簡単な説明】
【図1】この発明の第1実施例であるアドレス変換装置
の構成を示す図である。
【図2】本実施例の場合のPTEの構成を示す図であ
る。
【図3】本実施例におけるTLBの各行の構成を示す図
である。
【図4】4エントリの場合のTLBの構成を示す図であ
る。
【図5】4エントリの場合のマルチヒット例外検出回路
の構成例を示す図である。
【図6】8エントリの場合のマルチヒット例外検出回路
の構成例を示す図である。
【図7】本実施例のアドレス変換装置における動作の流
れを示すフローチャート(1)である。
【図8】本実施例のアドレス変換装置における動作の流
れを示すフローチャート(2)である。
【図9】本実施例におけるアドレス変換を概念的に説明
する図である。
【図10】本実施例においてアドレス変換を行なうプロ
グラムを例示する図である。
【図11】アドレス変換の具体例を示す図(1)であ
る。
【図12】アドレス変換の具体例を示す図(2)であ
る。
【図13】本実施例におけるアドレス変換の効果を説明
するための図である。
【図14】この発明の第2実施例であるアドレス変換装
置におけるエントリの入れ替えを説明する図である。
【図15】MMUにおけるアドレス変換をイメージ的に
説明するものである。
【図16】従来のPTEの内容を説明する図である。
【図17】従来のTLBの構成の概略を示す図である。
【符号の説明】
1 メモリ管理ユニット(MMU) 2 仮想アドレスバス 3 仮想アドレスレジスタ 4 アドレス変換テーブル(TLB) 5 物理アドレスレジスタ 6 物理アドレスバス 12 仮想アドレステーブル 13 物理アドレステーブル 14 キャッシュビット 15 オーバライトビット 16 優先ビット 22 キャッシュアルゴリズムビット 23 マルチヒット例外判定回路 31 ページテーブルエントリ(PTE)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラムの仮想アドレスと物理アドレ
    スとの対を1つの行に格納し、これらの対を格納した行
    を複数有して、入力仮想アドレスに応じて対応する物理
    アドレスを出力するアドレス変換テーブル(以下、TL
    Bと略す)を備え、 前記TLBにおける第1の行に、第1のプログラムの仮
    想アドレスと物理アドレスとの対を格納しており、前記
    TLBの第2の行に、前記第1のプログラムの一部領域
    である第2のプログラムと同一の仮想アドレスを有する
    第3のプログラムの仮想アドレスと物理アドレスとを格
    納しており、前記第1の行と第2の行とに付加されてい
    る優先ビットに応じて前記第2のプログラム又は第3の
    プログラムを選択して、入力仮想アドレスに対応する物
    理アドレスを出力するように構成されていることを特徴
    とするアドレス変換装置。
  2. 【請求項2】 前記第3のプログラムの物理アドレス
    が、前記第2のプログラムの物理アドレスと異なってい
    ることを特徴とする請求項1記載のアドレス変換装置。
  3. 【請求項3】 前記第3のプログラムの物理アドレス
    が、前記第2のプログラムの物理アドレスと一致してい
    ることを特徴とする請求項1記載のアドレス変換装置。
  4. 【請求項4】 前記第2のプログラムと第3のプログラ
    ムとが、仮想アドレス上で重ね合わされていることを示
    すオーバライトビットが、前記第1の行と第2の行とに
    付与されていて、該オーバライトビットの検出によって
    前記TLBに対するマルチヒットを許容されるように構
    成されていることを特徴とする請求項1記載のアドレス
    変換装置。
  5. 【請求項5】 前記TLBの2以上の行において、仮想
    アドレスの入力がそれぞれ一致したことを示す出力ヒッ
    ト信号が発生し、前記オーバライトビットの検出を示す
    出力オーバライト信号が発生しないとき、プログラムの
    強制終了を指示するマルチヒット例外検出信号を発生す
    るマルチヒット例外判定回路を備えたことを特徴とする
    請求項4記載のアドレス変換装置。
  6. 【請求項6】 前記第2のプログラムと第3のプログラ
    ムとが、それぞれ異なるキャッシュアルゴリズムを有す
    るように、キャッシュアルゴリズムを指定するキャッシ
    ュビットを、前記第1の行と第2の行とに付与されてい
    ることを特徴とする請求項1乃至5のいずれか1に記載
    のアドレス変換装置。
  7. 【請求項7】 プログラムの仮想アドレスと物理アドレ
    スとの対を1つの行に格納し、これらの対を格納した行
    を複数有して、入力仮想アドレスに応じて対応する物理
    アドレスを出力するTLBであって、該TLBにおける
    第1の行に、第1のプログラムの仮想アドレスと物理ア
    ドレスとの対を格納しており、前記TLBの第2の行
    に、前記第1のプログラムの一部領域である第2のプロ
    グラムと同一の仮想アドレスを有する第3のプログラム
    の仮想アドレスと物理アドレスとを格納しており、前記
    第1の行と前記第2の行とに優先ビットが付加されてい
    るTLBにおけるアドレス変換方法であって、 前記同一の仮想アドレスである入力仮想アドレスが入力
    された場合に、前記第1の行と前記第2の行とに付加さ
    れている前記優先ビットに応じて前記第2のプログラム
    又は第3のプログラムを選択して、前記入力仮想アドレ
    スに対応する物理アドレスを出力することを特徴とする
    アドレス変換方法。
JP32162099A 1999-11-11 1999-11-11 アドレス変換装置及びアドレス変換方法 Expired - Fee Related JP3476402B2 (ja)

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 JP2001142781A (ja) 2001-05-25
JP3476402B2 true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233615A (ja) 2006-02-28 2007-09-13 Fujitsu Ltd アドレス変換装置
CN102662860B (zh) * 2012-03-15 2015-07-01 天津国芯科技有限公司 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法

Also Published As

Publication number Publication date
JP2001142781A (ja) 2001-05-25

Similar Documents

Publication Publication Date Title
US10042778B2 (en) Collapsed address translation with multiple page sizes
EP0701212B1 (en) Data processor with set associative unit
US9639476B2 (en) Merged TLB structure for multiple sequential address translations
US7865675B2 (en) Controlling cleaning of data values within a hardware accelerator
US9208103B2 (en) Translation bypass in multi-stage address translation
TWI381275B (zh) 位址轉譯方法及裝置
US5390310A (en) Memory management unit having cross-domain control
US9268694B2 (en) Maintenance of cache and tags in a translation lookaside buffer
US10545879B2 (en) Apparatus and method for handling access requests
JPS6135584B2 (ja)
JPH0250237A (ja) マルチプロセッサ・データ処理システムおよびそれに用いられるキャッシュ装置
CN108228485B (zh) 存储器管理
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) トランスレーション・ルックアサイド・バッファ回路
JP3476402B2 (ja) アドレス変換装置及びアドレス変換方法
CN115485667A (zh) 记录高速缓存一致性协议跟踪以与独立存储器值跟踪结合使用
CN115552381A (zh) 记录存储器值跟踪以与独立高速缓存一致性协议跟踪一起使用
JP2008176731A (ja) マルチプロセッサシステム
JP2002049531A (ja) メモリ領域境界検出方法及びコンピュータシステム
JP3030037B2 (ja) 主記憶装置
JP2005108262A (ja) データ処理装置
JPH0262645A (ja) 記憶保護方式
JPH07168760A (ja) キャッシュ制御装置
JPH02101552A (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