JPH1027134A - アドレス変換装置およびこれを用いたプロセッサ - Google Patents

アドレス変換装置およびこれを用いたプロセッサ

Info

Publication number
JPH1027134A
JPH1027134A JP8183348A JP18334896A JPH1027134A JP H1027134 A JPH1027134 A JP H1027134A JP 8183348 A JP8183348 A JP 8183348A JP 18334896 A JP18334896 A JP 18334896A JP H1027134 A JPH1027134 A JP H1027134A
Authority
JP
Japan
Prior art keywords
address
entry
field
cache
tlb
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.)
Pending
Application number
JP8183348A
Other languages
English (en)
Inventor
Kazuhiko Tanaka
和彦 田中
Noritake Kurokawa
能毅 黒川
Keiji Kojima
啓二 小島
Kiyokazu Nishioka
清和 西岡
Toru Nojiri
徹 野尻
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8183348A priority Critical patent/JPH1027134A/ja
Publication of JPH1027134A publication Critical patent/JPH1027134A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 (修正有) 【課題】命令数やレジスタフィールドの消費を最低限に
抑えながらシステムの柔軟性を拡大できるアドレス変換
装置およびこれを用いたプロセッサを提供する。 【解決手段】アドレス変換用キャッシュ(バッファ部)
10は、与えられた論理アドレス907に該当するエン
トリーが内部に存在するか否かを判定し、存在するなら
ば対応する物理アドレス908を出力する。LRU部1
1は、新たなアドレス対を格納する対象となるキャッシ
ュ内エントリーを決定する。外部からの予め定められた
命令が論理アドレスとともに与えられたとき、レジスタ
制御部12は、出力データ904として、キャッシュ中
に当該論理アドレスに該当するエントリーが存在する
(TLBヒット信号906がHレベル)場合にはそのエ
ントリー番号を出力し、存在しない場合にはLRU部1
1からのエントリー番号を出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サ等の持つアドレス変換機構に関する。
【0002】
【従来の技術】近年、プロセッサには、アドレス変換機
構が標準的に搭載されつつある。アドレス変換機構を搭
載することで、命令やデータを任意のアドレスに配置す
る事が可能となる。これにより、単一のプロセッサで、
プログラムを変更することなく複数のプログラムを実行
することが可能になる。また、アクセス保護機能付きの
アドレス変換機構を用いれば、命令やデータを他のプロ
グラムによる不正なアクセスから保護することが可能に
なる。実際に搭載しているメモリより多くのメモリ空間
を持つことも可能である。
【0003】アドレス変換を行う場合、主記憶上にアド
レス変換テーブルを置き、このテーブルの内容を参照し
て変換を行う方法が一般的である。アドレス変換を行う
前のアドレス空間を論理アドレス空間、アドレス変換を
行った後のアドレス空間を物理アドレス空間と呼ぶ。
【0004】アドレス変換について、図1を用いて説明
する。この図は変換前のアドレスと変換後アドレスの関
係を示した図である。この図において、907は変換前
のアドレスであり、908は変換後のアドレスである。
以後、変換前のアドレスを論理アドレス、変換後のアド
レスを物理アドレスと呼ぶ。アドレス変換機構を用いる
場合、論理アドレス空間9070、物理アドレス空間9
080は、それぞれページと呼ばれる単位に分割され
る。それぞれの空間におけるページの大きさは等しい。
また、各ページの先頭は、ページサイズのバウンダリ
(境界)に整列されているものとする。例えば、1ペー
ジの大きさを16KBとすると、各ページの先頭アドレ
スの下位14ビットは常に0である。このように定義す
ると物理アドレス907は次の式で表すことができる。
【0005】物理アドレス(908)=ページの先頭ア
ドレス(9081)+オフセット(9072) 論理アドレスも同様である。一般に行われているアドレ
ス変換は、ページの先頭アドレスのみを変換するもので
あり、オフセットは変化しない。すなわち、このアドレ
ス変換はページの先頭アドレス(ページ番号)の変換と
とらえることができる。論理アドレス空間と物理アドレ
ス空間の大きさは異なっても良い。
【0006】次に、アドレス変換テーブルを用いたアド
レス変換について図2を用いて説明する。この図におい
て、907は論理アドレスであり、論理ページ番号90
71とページ内オフセット9072に分割することがで
きる。同様に、908は物理アドレスであり、物理ペー
ジ番号9081とページ内オフセット9072に分割す
ることができる。仮に、論理アドレス907の幅を32
ビット、1ページの大きさを16KB(=2の14乗
B)とすると、論理アドレスの下位14ビットがページ
内オフセット9072に、残りの上位18ビットが論理
ページ番号9071になる。物理アドレス908につい
ても同様に分割することができる。
【0007】アドレス変換によってページ内のオフセッ
トは変化しない場合に限定して考えると、アドレス変換
は、論理ページ番号9071から物理ページ番号908
1への変換ととらえることができる。この変換に、アド
レス変換テーブル21を使用する。アドレス変換テーブ
ル21は、主記憶上にあり、論理ページ番号9071を
インデックスとして与えると、物理ページ番号9081
やその他のページ管理情報を得ることができる。ページ
管理情報には、アドレス変換テーブル21に格納されて
いる変換情報が有効かどうか、現在の特権レベルでアク
セス可能かなどの情報が含まれる。この主記憶上のアド
レス変換テーブル21をアクセス毎に参照すれば、アド
レス変換を行うことが可能である。しかし、主記憶への
アクセスは遅いため、この方法ではアドレス変換がネッ
クとなり高速な命令/データアクセスができない。
【0008】これを解決する方法として、アドレス変換
テーブル21の一部をプロセッサ内部のキャッシュに格
納する方式が主流となっている。このキャッシュをトラ
ンスレーション・ルックアサイド・バッファ(Tran
slation Lookaside Buffer、
以下、TLBと略す)と呼ぶ。TLBを用いたアドレス
変換の例を、図3に示す(この図の詳細な説明は、発明
の実施の形態において図6を用いて説明しているものと
重複するためここでは省略する)。TLBに格納されて
いる一組のアドレス変換情報を、エントリーと呼ぶ。一
般にTLBは、数十から数百のエントリーで構成され
る。このように、TLBは、主記憶上のアドレス変換テ
ーブル21に比べて容量が小さいため、TLBにアドレ
ス変換に必要な情報が入っていない場合がある。この場
合、アドレス変換を行う前に、主記憶上のアドレス変換
テーブルからアドレス変換に必要な情報を読み出し、T
LBに格納する作業が必要となる。
【0009】TLBに無効なエントリーがあれば、その
エントリーが新たに読み込んだ変換情報の格納先とな
る。無効なエントリーが無い場合には、有効なエントリ
ーのうちの1つを選択し、このエントリーに対して新た
に読み込んだ変換情報を上書きする。どのエントリーを
上書きの対象とするかは、エルアールユー(LRU:Le
aset Recently Used)法やランダム法などさまざまな方
法がある。このように、TLBに格納されていない変換
情報を、主記憶から読み出し、TLBのエントリーへ書
き込む作業をTLBエントリーの更新と呼ぶ。これらの
詳細については、「コンピュータ・アーキテクチャ:J
ohn L.Hennessy、David A. P
atterson著:富田眞治 他 訳:日経BP社:
1992年12月25日発行」の437〜443ページ
に説明されている。
【0010】TLBエントリーの更新には、ハードウェ
アで行う方法と、ソフトウェアで行う方法がある。
【0011】ハードウェアで行う方法は、高速にエント
リーの更新ができるという長所があるが、柔軟性に欠け
るという欠点がある。また、この方式では、TLBエン
トリー更新のための回路が必要であり、LSIのチップ
面積が大きくなってしまうという欠点もある。
【0012】一方、ソフトウェアで行う方法は、更新に
多少時間がかかるという欠点があるものの、柔軟性が大
きく、主記憶上のアドレス変換テーブルのフォーマット
や、TLB更新のアルゴリズムを自由に決めることがで
きるという長所がある。
【0013】TLBエントリーの更新をソフトウェアで
行う場合、更新が必要となった時点で上書きすべきエン
トリーの番号を読み出せる命令または、論理アドレスを
与えて該当するエントリー番号を得る命令が必要であ
る。
【0014】
【発明が解決しようとする課題】これら2つの命令を両
方ともサポートすると、ソフトウェアに自由度を持たせ
ることができる。すなわちソフトウェアの用途によっ
て、どちらの方法をとるか選択することが可能になる。
【0015】TLB更新時に上書きすべきエントリーを
ハードウェアが決定する方式を実現するためには、TL
Bの更新が必要となった時点で、上書きすべきエントリ
ーの番号を読み出せる命令が必要である。また、主記憶
上のアドレス変換テーブルを更新した場合、対応するT
LBのエントリーも更新もしくは無効化しなければ、ア
ドレス変換テーブルとTLBの間で整合がとれなくなっ
てしまう。このためには、論理アドレスを与えて対応す
るエントリー番号を得る命令が必要である。
【0016】しかし、単純にこれら2つの命令を用意す
ると、命令の種類が増えてしまう。一般に、プロセッサ
が扱うことのできる命令の種類は少ない。これは、ある
決まった長さに命令語を納めなければならないため、命
令の種類を指定するためのフィールドに使用できるビッ
ト数が制限されるためである。
【0017】本発明は、このような従来の問題に鑑みて
なされたものであり、その目的は、命令数やレジスタフ
ィールドの消費を最低限に抑えながら、システムの柔軟
性を拡大できるアドレス変換装置およびこれを用いたプ
ロセッサを提供することにある。
【0018】
【課題を解決するための手段】上記目的を達成するため
に、本発明によるアドレス変換装置は、第1のアドレス
を第2のアドレスに変換するアドレス変換テーブルの内
容の一部を格納する複数のエントリーを含むアドレス変
換用キャッシュを有し、アドレス変換対象の第1のアド
レスに該当するエントリーが存在する場合には、そのエ
ントリーに格納された第2のアドレスを使用し、当該エ
ントリーが存在しない場合には、前記アドレス変換テー
ブルから当該第1のアドレスに対応する第2のアドレス
を求めてこのアドレス対をいずれかのエントリーに格納
するアドレス変換装置において、与えられた第1のアド
レスに該当するエントリーが前記キャッシュ内に存在す
るか否かを判定する判定手段と、前記アドレス変換テー
ブルから新たなアドレス対を格納する対象となるエント
リーを決定する更新対象エントリー決定手段と、外部か
らの予め定められた指示とともに第1のアドレスが与え
られたとき、前記キャッシュ中に当該第1のアドレスに
該当するエントリーが存在する場合にはそのエントリー
番号を出力し、存在しない場合には前記エントリー決定
手段により決定されたエントリーのエントリー番号を出
力する制御手段とを備えることを特徴とする。
【0019】この構成により、第1のアドレスに該当す
るエントリーが存在する場合、すなわちキャッシュがヒ
ットした場合とヒットしなかった場合とで別々のエント
リー番号を同一の出力データに出力することができる。
これは単一の命令に応じて実現することができる。
【0020】これとは別に、両エントリー番号を同時に
出力できる2つのフィールドを出力データに持たせるこ
ともできる。そのための構成として、前記制御手段は、
第1のフィールドと第2のフィールドを含むデータの出
力経路を有し、前記予め定められた指示に応答して、前
記第1のフィールドには、前記与えられた第1のアドレ
スに該当するエントリーのエントリー番号を格納し、前
記第2のフィールドには、前記エントリー決定手段によ
り決定されたエントリーのエントリー番号を格納する。
【0021】別の形態として、前記制御手段は、第1の
フィールドと第2のフィールドとを含むデータの出力経
路を有し、前記予め定められた指示に応答して、前記第
1のフィールドには、前記与えられた第1のアドレスに
該当するエントリーが存在する場合にそのエントリー番
号を格納し、存在しない場合に前記エントリー決定手段
により決定されたエントリーのエントリー番号を格納
し、前記第2のフィールドには、前記第1のアドレスに
該当するエントリーが前記キャッシュ中に存在するか否
かを示すフラグを格納するようにしてもよい。
【0022】さらに別の形態として、前記制御手段は、
第1のフィールドと第2のフィールドと第3のフィール
ドとを含むデータの出力経路を有し、前記予め定められ
た指示に応答して、前記第1のフィールドには、前記与
えられた第1のアドレスに該当するエントリーのエント
リー番号を格納し、前記第2のフィールドには、前記エ
ントリー決定手段により決定されたエントリーのエント
リー番号を格納し、前記第3のフィールドには、前記第
1および第2のフィールドのいずれが有効であるかを示
すフラグを格納するようにしてもよい。
【0023】本発明によるプロセッサは、第1のアドレ
スを第2のアドレスに変換するアドレス変換テーブルの
内容の一部を格納する複数のエントリーを含むアドレス
変換用のキャッシュを内蔵するアドレス変換装置を備
え、前記キャッシュの内容の更新をソフトウェアで行う
プロセッサにおいて、前記アドレス変換装置に対して第
1のアドレスを与えることにより、そのアドレスに該当
するエントリーが前記キャッシュ中に存在する場合に
は、そのエントリー番号を返し、そのアドレスに該当す
るエントリーが前記キャッシュ中に存在しない場合に
は、次に更新される対象となるエントリー番号を返す命
令を持つことを特徴とする。
【0024】より具体的には、本発明のプロセッサで
は、更新(上書き)すべきエントリーの番号を読み出す
機能と論理アドレスを与えて対応するエントリー番号を
読み出す機能を、単一の命令で実現する仕組みを設け
た。これを実現するために、論理アドレスを指定してキ
ャッシュ(TLB)のエントリー番号を読み出す命令を
用意する。以下、この命令をプローブ命令と呼ぶことと
する。この命令は、指定した論理アドレスに該当するエ
ントリーがTLBに存在するかどうかによって、読み出
される値の意味が変化する。すなわち、論理アドレスで
指定した内容に該当するエントリーがTLBに存在した
場合には、戻り値として、該当したエントリーのエント
リー番号が得られる。存在しなかった場合には、上書き
すべきエントリー番号が戻り値として得られる。
【0025】戻り値として得られた値がどちらの意味を
持つかは、そのエントリー番号を用いてエントリーの内
容を読み出すことで知ることができる。読み出されたエ
ントリーの論理ページ番号がプローブ命令で用いた論理
アドレスと等しければ、プローブ命令で読み出されたエ
ントリー番号は検索された結果、得られた番号である。
等しくなければ上書きすべきエントリーの番号である。
【0026】なお、前述した種々の形態のアドレス変換
装置を有するプロセッサも提供される。
【0027】
【発明の実施の形態】以下、本発明の実施の形態を詳細
に説明する。
【0028】図4は、本発明の第1の実施の形態による
TLB周辺の回路を示す図である。この図において、1
はTLB、2はデータを格納するデータメモリ、3は演
算やデータアクセスなどを実行する実行ユニットであ
る。実際には、この他に、命令を格納するためのメモリ
などが必要であるが、本実施の形態においては説明を省
略する。なお、特に指定が無い限り、信号は正論理であ
るものとする。
【0029】初めに、データメモリ2へのアクセス時の
アドレス変換について説明する。
【0030】データメモリ2へのリードアクセスでは、
実行ユニット3は、論理アドレス907を出力すると共
に、アドレス変換要求905とメモリリード要求909
をHレベルにする。論理アドレス907とアドレス変換
要求905はTLB1へ接続されている。TLB1は、
論理アドレス907を物理アドレス908へ変換し、デ
ータメモリ2へ出力する。データメモリ2は、物理アド
レス908で指定されるメモリの内容を、データ911
として実行ユニット3へ出力する。
【0031】データメモリ2へのライトアクセスでは、
実行ユニット3は、論理アドレス907とデータ911
を出力すると共に、アドレス変換要求905、メモリラ
イト要求910をHレベルにする。論理アドレス907
とアドレス変換要求905はTLB1へ接続されてい
る。TLB1は、論理アドレス907を物理アドレス9
08へ変換し、データメモリ2へ出力する。データメモ
リ2は、物理アドレス908で指定されるメモリへ、デ
ータ911により送られてきたデータを書き込む。
【0032】なお、以上の説明はTLB1内に、変換に
必要な情報が存在した場合である。この場合には、TL
Bヒット信号906がHレベルになる。TLB1に必要
な情報が入っていない場合には、TLBヒット信号90
6がLレベルとなり、実行ユニット3はリード要求90
9またはライト要求910の出力を中止することでアク
セスを中断する。この場合、実行ユニット3は、データ
メモリ2の中のアドレス変換テーブルの内容を読み出
し、その内容を用いてTLB1を更新する必要がある。
本発明のアドレス変換装置では、TLB1へアクセスす
るための命令として、TLBリード、TLBライト、T
LBプローブの3つを用意している。
【0033】TLBリード命令は、実行ユニット3がレ
ジスタ番号900、エントリー番号901をTLB1へ
出力し、エントリー番号901で指定されるエントリー
の内容をTLB1からデータ904を介して読み出す命
令である。このときのレジスタ番号900にはアクセス
対象がTLBエントリーであることを示す値が設定され
る。
【0034】なお、本明細書において、「データ90
4」というときは、信号としてのデータそのものを表す
場合と、その信号を搬送する信号線(経路)を表す場合
がある。他の信号についても同様である。
【0035】TLBライト命令は、レジスタ番号90
0、エントリー番号901、データ904を実行ユニッ
ト3がTLB1へ出力し、レジスタライト要求903を
Hレベルに設定することで、エントリー番号901で指
定されるTLBエントリーへデータ904の内容を書き
込む命令である。このときのレジスタ番号900にはア
クセス対象がTLBエントリーであることを示す値が設
定される。
【0036】TLBプローブ命令では、レジスタ番号9
00、論理アドレス907を実行ユニット3がTLB1
へ出力し、TLB1よりプローブ結果をデータ904を
介して読み出す命令である。このときのレジスタ番号9
00にはアクセス対象がプローブデータであることを示
す値を出力する。プローブデータの内容は次のように決
定される。論理アドレス907に対応するエントリーが
TLB1の中にある場合には、そのエントリー番号がプ
ローブデータとして得られる。対応するエントリーが無
い場合には、次にTLBエントリーの更新を行う際に上
書きされるべきTLBエントリーのエントリー番号が得
られる。
【0037】これらの命令を使ってTLBの更新をする
手順は、以下のようになる。TLBの更新の原因となっ
た論理アドレスを使ってプローブ命令を実行する。TL
Bの更新の原因となった論理アドレスに対応するエント
リーは、明らかにTLBに格納されていないので、プロ
ーブ命令の結果得られるエントリー番号は、TLBエン
トリーの更新を行う際に上書きされるべきTLBエント
リーのエントリー番号である。このエントリーに対して
主記憶上のアドレス変換テーブル中の必要な情報を、T
LBライト命令で書き込むことでTLBの更新は完了す
る。
【0038】また、これらの命令を組み合わせれば、特
定の論理アドレスに対応したTLBエントリーを無効化
することが可能である。まず、無効化の対象となる論理
アドレスを使って、プローブ命令を実行し、得られたエ
ントリー番号に対して、TLBリード命令でエントリー
の内容を読み出す。読み出されたエントリー中の論理ペ
ージ番号が、プローブ命令で設定した論理アドレスと一
致した場合には、そのエントリーは無効化すべきエント
リーであるので、無効にするためのデータをTLBライ
ト命令で書き込み、再度プローブ命令を実行する。一致
しない場合には、そのエントリーは無効化すべきエント
リーでは無いのでTLBライト命令による書き込みは行
わない。このように一致しなくなるまで、これら一連の
操作を繰り返すことで、特定の論理アドレスに対応した
TLBエントリーを無効化することが可能である。この
操作は、プログラムによって主記憶上のアドレス変換テ
ーブルの内容を更新する際に、TLBとの整合をとる場
合などに行われる。
【0039】次に、TLB1の内部構成を、図5を用い
て説明する。この図において、10はアドレス変換のた
めの情報の格納や変換処理などを行うバッファ部、11
はTLB更新時に上書きすべきエントリー番号を決定す
るためのLRU部、12はTLBリードなどの命令を処
理するレジスタ制御部である。データメモリ2へのアク
セス時には、TLB1へ入力された論理アドレス907
は、論理ページ番号9071とオフセット9072に分
離される。論理ページ番号9071は、バッファ部10
により物理ページ番号9081に変換される。オフセッ
ト9072は変換されない。物理ページ番号9081と
オフセット9072は結合され、物理アドレス908と
して出力される。
【0040】次に、バッファ部10の構成を、図6を用
いて説明する。この例では、図面の簡略化のためTLB
のエントリー数を4つとしているが、これよりも多くす
ることも少なくすることも可能である。エントリー10
0aから100dは同一の構成をとっており、それぞれ
が独立した論理ページ番号格納装置101、物理ページ
番号格納装置102、エントリー有効情報格納装置10
3、比較器104、AND回路105から構成されてい
る。各エントリーには、一組の変換情報が格納される。
【0041】データメモリ2のアクセス時には、バッフ
ァ部10に入力された論理ページ番号9071は、各エ
ントリーごとに、比較器104により論理ページ番号格
納装置101に格納されている内容と比較される。両者
が等しく、しかもエントリー有効情報格納装置103に
格納されているデータにより、そのエントリに格納され
ている情報が有効であることが示された場合、AND回
路105の出力はHレベルとなる。AND回路105の
出力がHレベルであれば、そのエントリーの物理ページ
番号格納装置102に格納されている内容が、変換後の
物理ページ番号である。4つのエントリーのAND回路
105の出力のうちどれかが、Hレベルであれば、TL
Bヒットとなる。この検出はOR回路110によって行
われ、検出結果がTLBヒット信号906として出力さ
れる。エンコーダ112は、4つのエントリーのAND
回路105の出力をエンコードし、結果を双方向ドライ
バ114へ出力する。メモリアクセス中は、TLBレジ
スタライト信号921は、Lレベルに設定されており、
双方向ドライバ114へ入力されたエンコード結果はエ
ントリー番号923として出力される。また、各エント
リーの物理ページ番号格納装置102に格納されている
内容は、セレクタ111へ入力されている。セレクタ1
11は、各エントリーのAND回路105の出力により
制御されており、ヒットしているエントリーの物理ペー
ジ番号格納装置102に格納されている内容が物理ペー
ジ番号9081として出力される。
【0042】TLBリード命令が発行された場合には、
各エントリー中の論理ページ番号格納装置101、物理
ページ番号格納装置102、エントリー有効情報格納装
置103がセレクタ113で選択され、ドライバ116
を介して、TLBエントリーデータ922として出力さ
れる。セレクタ113は、与えられたエントリー番号9
23によって制御される。
【0043】TLBライト時には、TLBエントリー書
き込み信号生成回路115が、TLBライト信号921
とエントリー番号923からTLB書き込み信号を生成
する。TLBに書き込むデータは、TLBエントリーデ
ータ922により各エントリーに供給される。書き込み
信号が入力されたエントリーに対して、そのデータが書
き込まれる。このとき、エントリー有効情報格納装置1
03にLを書き込めば、そのエントリーを無効化するこ
とができる。
【0044】次に、LRU部11の構成について、図7
を用いて説明する。LRU法とは、TLBで上書きする
エントリーとして、そのエントリーが一番最近アクセス
された時刻が最も古いエントリーを選択する方法であ
る。図7において、130はLRU法に従って次のサイ
クルにおけるLRUエントリー番号を計算するLRU更
新回路、131はLRUエントリー番号を格納するLR
Uエントリー格納回路、132はOR回路である。LR
U更新回路130の構成は、それ自体公知なので図示し
ないが、現在までの更新の履歴情報を格納するレジスタ
131の履歴情報と新たにアクセスされたエントリー番
号923とに基づいて当該レジスタの履歴情報を更新す
るデコーダにより構成することができる。更新の履歴情
報とは、本例のように例えばエントリー数が4の場合、
アクセスの新しい順(または古い順)に番号を並べたも
のと考えればよい。例えば、エントリー番号1、2、
3、4について、アクセスの新しい順の現在のアクセス
履歴状態が”2431”(エントリー2が最も最近アク
セスされた)である場合、LRUエントリー番号924
はアクセス履歴状態の右端の数値で表されるエントリー
1である。この状態で新たにアクセスされたエントリー
番号923としてエントリー3が入力されてきたとき、
エントリー3が左端に移ることにより、アクセス履歴状
態は”2431”から”3241”に更新される。この
更新によりアクセス履歴状態は変化するが、最も古くア
クセスされた右端のエントリーは変わらず、エントリー
1である。さらに、例えば新たにアクセスされたエント
リー番号923としてエントリー1が入力されてきたと
き、アクセス履歴状態は”3241”から”1324”
となる。今度は、右端の数値が変化し、更新されたLR
Uエントリー番号924はエントリー4となる。このよ
うにしてLRU更新回路130でのLRU更新が行われ
る。LRUエントリー格納回路131に格納されている
LRU情報の更新は、アドレス変換を行った場合とTL
Bエントリーに対して書き込みを行った場合にのみ行わ
れる。LRU情報の更新要求は、OR回路132によっ
て、アドレス変換要求信号905とTLBライト信号9
21のORをとることで生成される。本実施の形態で
は、上書きすべきエントリーの決定にLRU法を使用し
ているが、乱数により上書きすべきエントリーを決定す
る乱数法などを使用することも可能である。
【0045】最後に、レジスタ制御部12の構成につい
て、図8を用いて説明する。この図において、120、
123、124はセレクタ、121、122、125は
双方向ドライバである。
【0046】TLBリードアクセスでは、レジスタライ
ト要求903としてLレベルが入力されるため、TLB
ライト信号921もLレベルとなる。このため、TLB
エントリーの内容は変化しない。エントリー番号901
には、アクセス対象のエントリー番号が設定され、これ
は、そのままエントリー番号923へ出力される。バッ
ファ部10から読み出されたTLBエントリーの内容
は、TLBエントリーデータ922から入力され、ドラ
イバ121、セレクタ124、ドライバ125を経てレ
ジスタデータ904へ出力される。
【0047】TLBライトアクセスでは、レジスタライ
ト要求903としてHレベルが入力される、レジスタ番
号900でTLBアクセスであることが指定されている
ため、セレクタ120の出力であるTLBライト信号9
21もHレベルとなる。エントリー番号901には、ア
クセス対象のエントリー番号が設定され、これは、その
ままエントリー番号923へ出力される。TLBエント
リーへの書き込みデータは、レジスタデータ904から
入力され、ドライバ125、121を通って、TLBエ
ントリーデータ922へ出力される。
【0048】TLBプローブアクセスでは、レジスタラ
イト要求903としてLレベルが入力されるため、TL
Bライト信号921もLレベルとなる。このため、TL
Bエントリーの内容は変化しない。TLBプローブに使
用される論理ページ番号は、実行ユニット3から論理ペ
ージ番号9071によって、直接バッファ部10へ入力
されるため、レジスタ制御部12は通過しない。プロー
ブ結果はバッファ部10からのエントリー番号923
と、LRU部11からのLRU番号924をセレクタ1
23で選択した結果が、セレクタ124、ドライバ12
5を経由してレジスタデータ904へ出力される。セレ
クタ123はTLBヒット信号906によって制御され
る。指定された論理アドレスに対応したエントリーがT
LBに格納されていれば、TLBヒット信号906はH
レベルとなり、ヒットしたエントリーのエントリー番号
923が、セレクタ123の出力に現れる。格納されて
いなければ、TLBヒット信号906はLとなり、LR
U番号924がセレクタ123の出力に現れる。
【0049】エントリー番号923やLRU番号924
のビット幅が、データ904のビット幅と比較して小さ
い場合には、データ904に他の情報を合成して同時に
読み出すことが可能である。また、以下に述べる第2〜
4の実施の形態のように、並行して複数のデータを読み
出せるようにすることも可能である。
【0050】次に、本発明の第2の実施の形態のアドレ
ス変換装置におけるレジスタ制御部12の構成につい
て、図9を用いて説明する。本実施の形態では、エント
リー番号923とLRU番号924が合成されてセレク
タ124へ入力されているため、プローブ命令の戻り値
として、これらの値をデータ904の別々のフィールド
に同時に読み出すことができる。なお本実施の形態のレ
ジスタ部では、TLBヒット信号906は使用されな
い。
【0051】次に、本発明の第3の実施の形態のアドレ
ス変換装置におけるレジスタ制御部12の構成につい
て、図10を用いて説明する。本実施の形態では、エン
トリー番号923とLRU番号924の選択結果である
セレクタ123の出力とTLBヒット信号906が合成
されてセレクタ124へ入力されているため、プローブ
命令の戻り値として、これらの値をデータ904の別々
のフィールドに同時に読み出すことができる。
【0052】次に、本発明の第4の実施の形態のアドレ
ス変換装置におけるレジスタ制御部12の構成につい
て、図11を用いて説明する。本実施の形態では、エン
トリー番号923とLRU番号924とTLBヒット信
号906が合成されてセレクタ124へ入力されている
ため、プローブ命令の戻り値として、これらの値をデー
タ904の別々のフィールドに同時に読み出すことがで
きる。
【0053】以上の実施の形態では、データメモリアク
セス用のTLBについて記述したが、図12に示すよう
に、命令メモリ6用のTLB5についても同様に本発明
を適用することもできる。すなわち、TLB5は、命令
読出制御回路7から出力される命令フェッチ用の論理ア
ドレスを命令メモリ6アクセス用の物理アドレスに変換
するものである。
【0054】TLBは、比較的小規模の回路で実現でき
るため、マイクロプロセッサの構成要素としてLSI内
部に取り込むことが可能である。
【0055】
【発明の効果】本発明のアドレス変換装置を使用するこ
とで、プロセッサにとって貴重な資源である、命令数や
レジスタフィールドの消費を最低限に抑えながら、シス
テムの柔軟性を拡大できる。
【図面の簡単な説明】
【図1】アドレス変換の原理を示した説明図である。
【図2】アドレス変換テーブルを用いたアドレス変換の
説明図である。
【図3】TLBを用いたアドレス変換の説明図である。
【図4】TLBの周辺回路の例を示すブロック図であ
る。
【図5】図4に示したTLBの構成例を示すブロック図
である。
【図6】図5のTLB内のバッファ部の構成例を示すブ
ロック図である。
【図7】図5のTLB内のLRU部の構成例を示すブロ
ック図である。
【図8】図5のTLB内のレジスタ制御部の構成例を示
すブロック図である。
【図9】第2の実施の形態におけるレジスタ制御部の構
成を示すブロック図である。
【図10】第3の実施の形態におけるレジスタ制御部の
構成を示すブロック図である。
【図11】第4の実施の形態におけるレジスタ制御部の
構成を示すブロック図である。
【図12】命令メモリ用のTLBを有する構成例を示し
たブロック図である。
【符号の説明】
1…TLB、2…データメモリ、3…実行ユニット、1
0…バッファ部、11…LRU部、12…レジスタ制御
部、21…アドレス変換テーブル、100a〜d…TL
Bエントリー、101…論理ページ番号格納装置、10
2…物理ページ番号格納装置、103…エントリー有効
情報格納装置、104…比較器、105…AND回路、
110…OR回路、111…セレクタ、112…エンコ
ーダ、113…セレクタ、114…双方向ドライバ、1
15…エントリー書き込み信号生成回路、116…双方
向ドライバ、120…セレクタ、121…双方向ドライ
バ、122…双方向ドライバ、123…セレクタ、12
4…セレクタ、125…双方向ドライバ、130…LR
U更新回路、131…LRUエントリー番号格納装置、
132…OR回路、900…レジスタ番号、901…エ
ントリー番号、903…レジスタライト要求、904…
レジスタデータ、905…アドレス変換要求、906…
TLBヒット信号、907…論理アドレス、908…物
理アドレス、909…メモリリード要求、910…メモ
リライト要求、911…メモリデータ、921…TLB
ライト要求、922…TLBエントリーデータ、923
…TLBエントリー番号、924…LRU番号、907
0…論理アドレス空間、9071…論理ページ番号、9
072…オフセット、9080…物理アドレス空間、9
081…物理ページ番号、9082…オフセット。
フロントページの続き (72)発明者 西岡 清和 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 野尻 徹 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】第1のアドレスを第2のアドレスに変換す
    るアドレス変換テーブルの内容の一部を格納する複数の
    エントリーを含むアドレス変換用キャッシュを有し、ア
    ドレス変換対象の第1のアドレスに該当するエントリー
    が存在する場合には、そのエントリーに格納された第2
    のアドレスを使用し、当該エントリーが存在しない場合
    には、前記アドレス変換テーブルから当該第1のアドレ
    スに対応する第2のアドレスを求めてこのアドレス対を
    いずれかのエントリーに格納するアドレス変換装置にお
    いて、 与えられた第1のアドレスに該当するエントリーが前記
    キャッシュ内に存在するか否かを判定する判定手段と、 前記アドレス変換テーブルから新たなアドレス対を格納
    する対象となるエントリーを決定する更新対象エントリ
    ー決定手段と、 外部からの予め定められた指示とともに第1のアドレス
    が与えられたとき、前記キャッシュ中に当該第1のアド
    レスに該当するエントリーが存在する場合にはそのエン
    トリー番号を出力し、存在しない場合には前記エントリ
    ー決定手段により決定されたエントリーのエントリー番
    号を出力する制御手段と、 を備えることを特徴とするアドレス変換装置。
  2. 【請求項2】前記制御手段は、第1のフィールドと第2
    のフィールドを含むデータの出力経路を有し、前記予め
    定められた指示に応答して、前記第1のフィールドに
    は、前記与えられた第1のアドレスに該当するエントリ
    ーのエントリー番号を格納し、前記第2のフィールドに
    は、前記エントリー決定手段により決定されたエントリ
    ーのエントリー番号を格納することを特徴とする請求項
    1記載のアドレス変換装置。
  3. 【請求項3】前記制御手段は、第1のフィールドと第2
    のフィールドとを含むデータの出力経路を有し、前記予
    め定められた指示に応答して、前記フィールドには、前
    記与えられた第1のアドレスに該当するエントリーが存
    在する場合にそのエントリー番号を格納し、存在しない
    場合に前記エントリー決定手段により決定されたエント
    リーのエントリー番号を格納し、前記第2のフィールド
    には、前記第1のアドレスに該当するエントリーが前記
    キャッシュ中に存在するか否かを示すフラグを格納する
    ことを特徴とする請求項1記載のアドレス変換装置。
  4. 【請求項4】前記制御手段は、第1のフィールドと第2
    のフィールドと第3のフィールドとを含むデータの出力
    経路を有し、前記予め定められた指示に応答して、前記
    第1のフィールドには、前記与えられた第1のアドレス
    に該当するエントリーのエントリー番号を格納し、前記
    第2のフィールドには、前記エントリー決定手段により
    決定されたエントリーのエントリー番号を格納し、前記
    第3のフィールドには、前記第1および第2のフィール
    ドのいずれが有効であるかを示すフラグを格納すること
    を特徴とする請求項1記載のアドレス変換装置。
  5. 【請求項5】第1のアドレスを第2のアドレスに変換す
    るアドレス変換テーブルの内容の一部を格納する複数の
    エントリーを含むアドレス変換用のキャッシュを内蔵す
    るアドレス変換装置を備え、前記キャッシュの内容の更
    新をソフトウェアで行うプロセッサにおいて、 前記アドレス変換装置に対して第1のアドレスを与える
    ことにより、そのアドレスに該当するエントリーが前記
    キャッシュ中に存在する場合には、そのエントリー番号
    を返し、そのアドレスに該当するエントリーが前記キャ
    ッシュ中に存在しない場合には、次に更新される対象と
    なるエントリー番号を返す命令を持つことを特徴とする
    プロセッサ。
  6. 【請求項6】第1のアドレスを第2のアドレスに変換す
    るアドレス変換テーブルの内容の一部を格納する複数の
    エントリーを含むアドレス変換用のキャッシュを内蔵す
    るアドレス変換装置を備え、前記キャッシュの内容の更
    新をソフトウェアで行うプロセッサにおいて、 前記アドレス変換装置に対して第1のアドレスを与える
    ことにより、そのアドレスに該当するエントリーがキャ
    ッシュ中に存在する場合にそのエントリー番号を返すフ
    ィールドと、そのアドレスに該当するエントリーがキャ
    ッシュ中に存在しない場合に次に更新の対象とすべきエ
    ントリー番号を返すフィールドとを含むデータを返す命
    令を持つことを特徴とするプロセッサ。
  7. 【請求項7】第1のアドレスを第2のアドレスに変換す
    るアドレス変換テーブルの内容の一部を格納する複数の
    エントリーを含むアドレス変換用のキャッシュを内蔵す
    るアドレス変換装置を備え、前記キャッシュの内容の更
    新をソフトウェアで行うプロセッサにおいて、 前記アドレス変換装置に対して第1のアドレスを与える
    ことにより、そのアドレスに該当するエントリーが前記
    キャッシュ中に存在する場合にはそのエントリー番号を
    返し、そのアドレスに該当するエントリーが前記キャッ
    シュ中に存在しない場合には次に更新される対象となる
    エントリー番号を返すフィールドと、前記アドレスに該
    当するエントリーが前記キャッシュ中に存在するかどう
    かを示すフラグとを含むデータを返す命令を持つことを
    特徴とするプロセッサ。
  8. 【請求項8】第1のアドレスを第2のアドレスに変換す
    るアドレス変換テーブルの内容の一部を格納する複数の
    エントリーを含むアドレス変換用のキャッシュを内蔵す
    るアドレス変換装置を備え、前記キャッシュの内容の更
    新をソフトウェアで行うプロセッサにおいて、 前記アドレス変換装置に対して第1のアドレスを与える
    ことにより、そのアドレスに該当するエントリーがキャ
    ッシュ中に存在する場合にそのエントリー番号を返す第
    1のフィールドと、そのアドレスに該当するエントリー
    がキャッシュ中に存在しない場合に次に更新の対象とす
    べきエントリー番号を返す第2のフィールドと、前記第
    1および第2のフィールドのうちいずれが有効であるか
    を示すフラグとを含むデータを返す命令を持つことを特
    徴とするプロセッサ。
JP8183348A 1996-07-12 1996-07-12 アドレス変換装置およびこれを用いたプロセッサ Pending JPH1027134A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8183348A JPH1027134A (ja) 1996-07-12 1996-07-12 アドレス変換装置およびこれを用いたプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8183348A JPH1027134A (ja) 1996-07-12 1996-07-12 アドレス変換装置およびこれを用いたプロセッサ

Publications (1)

Publication Number Publication Date
JPH1027134A true JPH1027134A (ja) 1998-01-27

Family

ID=16134170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8183348A Pending JPH1027134A (ja) 1996-07-12 1996-07-12 アドレス変換装置およびこれを用いたプロセッサ

Country Status (1)

Country Link
JP (1) JPH1027134A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016042351A (ja) * 2014-08-13 2016-03-31 ザ・ボーイング・カンパニーTheBoeing Company コンピューティングシステムにおける動的なメモリアドレス再マッピング

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016042351A (ja) * 2014-08-13 2016-03-31 ザ・ボーイング・カンパニーTheBoeing Company コンピューティングシステムにおける動的なメモリアドレス再マッピング

Similar Documents

Publication Publication Date Title
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
EP0408058B1 (en) Microprocessor
KR920005280B1 (ko) 고속 캐쉬 시스템
US5412787A (en) Two-level TLB having the second level TLB implemented in cache tag RAMs
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
JP3370683B2 (ja) キャッシュシステム
JP3718302B2 (ja) 命令取り出し方法および装置
JP3666689B2 (ja) 仮想アドレス変換方法
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
JPH04320553A (ja) アドレス変換機構
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
WO1992022867A1 (en) Improving computer performance by simulated cache associativity
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
JP2000227874A (ja) コンピュ―タ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置
JP2930071B2 (ja) 情報処理装置およびプロセッサ
US6686920B1 (en) Optimizing the translation of virtual addresses into physical addresses using a pipeline implementation for least recently used pointer
JPH05216766A (ja) データ・キャッシュとセグメント記述子の間のキャッシュの可干渉性を維持する方法およびコンピュータのメモリ装置
JPH0519176B2 (ja)
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JP2013073271A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
JPH1027134A (ja) アドレス変換装置およびこれを用いたプロセッサ
JPH03211643A (ja) 並行例外検査及び更新バイパスを有する変換索引バッファ
JP2637853B2 (ja) キャッシュメモリ装置