JPH0769866B2 - アドレス変換装置 - Google Patents

アドレス変換装置

Info

Publication number
JPH0769866B2
JPH0769866B2 JP4074370A JP7437092A JPH0769866B2 JP H0769866 B2 JPH0769866 B2 JP H0769866B2 JP 4074370 A JP4074370 A JP 4074370A JP 7437092 A JP7437092 A JP 7437092A JP H0769866 B2 JPH0769866 B2 JP H0769866B2
Authority
JP
Japan
Prior art keywords
address
dlat
virtual
page
real
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 - Lifetime
Application number
JP4074370A
Other languages
English (en)
Other versions
JPH05100956A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05100956A publication Critical patent/JPH05100956A/ja
Publication of JPH0769866B2 publication Critical patent/JPH0769866B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータ処理シス
テム用の仮想記憶機構に関し、具体的には、あるプロセ
ッサ用の複数のアドレスを単一サイクルで生成すること
のできる、新しい動的ルックアサイド・アドレス変換
(DAT)の構造及び手順に関する。
【0002】
【従来の技術】データ処理システムの仮想記憶域の編成
及び管理は、例えばハーヴェイ M.デイテル(Harvey
M. Deitel)の著書 "An Introduction to Operating S
ystems"、Addison-Wesley 社、1984 年刊、ハロルド・
ローリン(Harold Lorin)とハーヴェイ M.デイテル
の共著 "Operating Systems"、Addison-Wesley 社、198
1 年刊、ハロルド S.ストーン(Harold S. Stone)
の著書 "High-Performance Computer Architecture"、A
ddison-Wesley 社、1987 年刊に記載されている。仮想
記憶システムにおいて、ページングとは、実際にあるよ
りもかなり大きな記憶空間に見えるものをシステムのユ
ーザに提供する、再配置/アドレス−物理位置結合機構
である。仮想記憶のコンセプトの最重要の特徴は、走行
プロセス中に参照されるアドレスを、主記憶装置中で利
用可能なアドレスから分離することである。走行プロセ
スによって参照されるアドレスを仮想アドレスと呼び、
主記憶装置中で利用可能なアドレスを実アドレスと呼ん
でいる。仮想アドレスは、プロセスの実行中に実アドレ
スに変換しなければならないが、これは動的アドレス変
換(DAT)機構の役割である。こうした機構の一つは
ディレクトリ・ルックアサイド・テーブル(DLAT)
を使用するもので、これは変換ルックアサイド・バッフ
ァ(TLB)とも呼ばれることがあり、最近の仮想アド
レス変換を記憶する。DLATに記憶されている仮想ア
ドレスの場合は、変換プロセスに1ないしせいぜい2マ
シン・サイクルしか要さないが、DLATに記憶されて
いないアドレスの場合は、DALプロセスに15〜60
サイクルかかることもある。
【0003】仮想アドレスから実アドレスへの変換を行
わなければならないのは、アドレスされた命令またはデ
ータが主記憶装置のどこにあるか知るためである。これ
は通常はページ毎に行われる。事実、DLATに記憶さ
れている変換は実際にはページ変換にすぎず、アドレス
の最後の数ビットはそのページ内の場所であり、したが
ってページ・アドレスのみを変換すればよい。アドレス
がメモリ内で特定の増分になっている科学計算の場合の
ように、アドレスが特定の順序になっていることがしば
しばである。この増分を「ストライド」と称する。すべ
てのアドレスが増分の順序になっている場合は、ストラ
イドは1であるが、アドレスが1つ置きに使われる場合
はストライド2であり、以下同様である。このため、将
来のアドレスが容易に予測できる。科学計算やベクトル
計算では、命令が、開始アドレス、ストライド、及び命
令中のオペランドの数を指定する。このため、アドレス
生成で前のアドレスをストライド分だけ増分すると、次
のアドレスが得られる。
【0004】典型的な応用例では、プロセッサは1サイ
クルにただ1つのアドレスを生成する。プロセッサによ
っては、DLAT(またはTLB)を照会する複数のア
ドレス生成機構を有するものもあるが、それでも実際に
1サイクルに変換されるアドレスは1個だけである。プ
ロセッサが発展するにつれて、1サイクルに複数のアド
レスを生成し変換する必要が生まれてきた。具体的に
は、そのプロセッサは、複数のメモリ要求を、毎サイク
ルで完全に利用することを必要とする。要求は、例えば
別々の3個の命令であり、したがってメモリ要求を行う
ために毎サイクルで3個のアドレスを生成しなければな
らない。したがって、同じプロセッサ用の複数のアドレ
スを単一サイクルで生成することのできる、新しい動的
アドレス変換(DAT)の構造及び手順が必要とされて
いる。
【0005】
【発明が解決しようとする課題】本発明の目的は、同じ
プロセッサ用の複数のアドレス変換を単一サイクルで行
うことのできる、新しい動的アドレス変換の構造及び手
順を提供することである。
【0006】
【課題を解決するための手段】本発明によれば、複数の
DLATを使用して、複数アドレス変換が実現される。
DLATは、別々の仮想アドレス生成機構によって並列
にインデックスされる。各DLAT用に同じアドレスが
複数回生成されるという問題を避けるため、あるDLA
T用に生成されたアドレスをすべてのDLATに書き込
み、あるいはあるDLAT中でミスが発生した場合に、
アドレス生成前に他のDLATの探索を行う。前者の場
合、すべてのDLATに書き込まれたアドレスが、他の
1つのDLATによる将来の変換に必要となるアドレス
を重ね書きする可能性がある。後者の場合はそれは避け
られるが、あるDLATでミスが発生したとき、他のD
LATでの変換が中断されてしまう。これは、DLAT
のコピーである「シャドー」DLATを使うと避けるこ
とができる。あるDLATでミスが発生したとき、シャ
ドーDLATが探索され、それによって、DLAT自体
による変換の中断が避けられる。
【0007】複数のDLATを使用するのではなく、単
一のインターリーブ式DLATを複数のアドレス生成機
構が使用することも可能である。このDLATはいくつ
かのセクションに区分され、ページ・アドレスの最後の
数ビットを使って、アドレス変換のためにアドレスされ
るDLATのセクションを選択する。複数DLATの場
合でも単一のインターリーブ式DLATの場合でも、モ
ード切替えを使用して性能をさらに高めることができ
る。変換を行う必要のあるのはページ境界を越えるとき
だけなので、ページ交差が検出されたときだけDLAT
にアクセスする。これには、DLATへのトラフィック
を減らすという別の利点もある。
【0008】上記その他の目的、態様及び利点は、図面
を参照しながら下記の本発明の好ましい実施例の詳しい
説明を読めばよりよく理解できるであろう。
【0009】
【実施例】以下の説明では、動的ルックアサイド・テー
ブルの略称として"DLAT"を用いるが、当業者なら理
解される通り、この言葉は、変換ルックアサイド・バッ
ファの略称である"TLB"と同義に使用される。以下の
説明では、ページング/セグメント化仮想アドレス・シ
ステムを仮定する。このシステムでは、仮想アドレス・
フォーマットは図1に示すようなものであり、セグメン
ト・インデックス(SX)用のsビットと、ページ・イ
ンデックス(PX)用のpビットと、変位インデックス
(DX)用のdビットを含んでいる。仮想アドレスは例
えば32ビットであり、そのうちビットA0〜A11は
セグメント・ビットを含み、ビットA12〜19はペー
ジ・ビットを含み、A20〜31は変位ビットを含む。
【0010】図2に示すように、仮想アドレスはアドレ
ス生成機構20によって生成される。アドレス生成機構
20は中央演算処理装置(CPU)(図示せず)の一部
分である。最近に参照されたページは、DLAT21中
にエントリをもつ。256合同クラスを含むDLATで
は、仮想アドレスのビットA12〜A19を使ってDL
ATをアドレスする。DLAT21から読み取った、ア
ドレスされたエントリからの仮想ページ識別を、比較機
構22で仮想アドレスのビットA1〜A11と比較す
る。一致しない場合は、DLATミスが発生した。DL
ATミスの場合は、例えばセグメント/ページ・テーブ
ルの探索によってアドレス変換が得られ、そのDLAT
に入れられる。
【0011】セグメント/ページ・テーブルの探索は、
セグメント・テーブル原点レジスタ23の値と仮想アド
レスのビットA0〜A11を加算器24で加算して、セ
グメント・マップ・テーブル25用のインデックス値を
得ることから始まる。次にセグメント・マップ・テーブ
ル25から出力されたエントリをページ・マップ・テー
ブル25用のインデックスとして使う。各セグメント毎
に別々のページ・マップ・テーブルがある。ページ・マ
ップ・テーブル26から出力されたエントリは、実記憶
域内にその仮想ページがあるページ・フレームを提供
し、ORゲート27を通過して、仮想アドレス生成機構
20の変位ビットA20〜A31と連結されて、実アド
レス・レジスタ28中で実アドレスを形成する。
【0012】一方、DLAT21内で一致が生じた場合
は、比較機構22がANDゲート29をエネーブルし、
ANDゲート29はDLAT21から出力されたエント
リをORゲート27に渡す。この場合、DLAT21か
ら出力されたエントリは、関連する実アドレス・フィー
ルドであり、これが変位ビットA20〜A31と連結さ
れて、実アドレス・レジスタ28中で実記憶アドレスを
形成する。明らかなように、このアドレス変換のプロセ
スは、DLATミスのときに行われるセグメント/ペー
ジ・テーブルの探索よりもかなり速い。セグメント/ペ
ージ・テーブルの探索は完了するのに15〜80サイク
ルかかることがあるが、DLATアクセスは1サイクル
で完了できる。
【0013】通常、大部分のアドレス変換要求はDLA
Tの探索によって行われ、セグメント/ページ・テーブ
ルの探索はDLATを用いて変換を行うよりもずっと多
くのプロセッサ・サイクルを要するが、セグメント/ペ
ージ・テーブルの探索それ自体は変換失敗の可能性がな
いわけではない。例えば、セグメント・マップ・テーブ
ルの探索で、そのセグメントが1次記憶域または主記憶
装置にはないことが示された場合、オペレーティング・
システムが、2次記憶域すなわち直接アクセス記憶装置
(DASD)上でそのセグメントを探し、そのセグメン
ト用のページ・テーブルを作成し、当該のページを1次
記憶域にロードし、場合によってはプロセス中に既存の
ページを置換することになる。
【0014】そのセグメントが1次記憶域にあった場合
でも、所望のページが1次記憶域にない場合は、オペレ
ーティング・システムが、2次記憶域上でそのページを
探し、そのページを1次記憶域にロードし、やはり場合
によってはプロセス中に既存のページを置換することに
なる。2次記憶域にアクセスするには、数百プロセッサ
・サイクルを要することがあり得る。
【0015】以上の説明は、1プロセッサ・サイクル毎
に(せいぜい)1回の変換を行うように意図された従来
のDLAT構造に関するものである。本発明では、この
構造を修正して、1プロセッサ・サイクル毎に複数の変
換が行えるようにする。本発明の好ましい実施例の説明
では、サイクル毎に3回変換を行う例を用いる。もちろ
ん、これは例示的なものにすぎず、当業者なら応用例に
応じて本発明の教示を1サイクル当り何回の変換にも適
用できるであろう。
【0016】図3に、3個のアドレス生成機構(AGE
N)31、32、33を含むDLAT構造を示す。各ア
ドレス生成機構は、仮想アドレスを生成し、そのアドレ
スを変換のためそれぞれDLAT34、35、36に渡
す。DLATがその変換を含んでいない(DLATミ
ス)場合は、前述のようにアドレスを生成しなければな
らない。この手法に伴う主な問題は、図4に示すよう
に、しばしばあるDLAT用に変換が行われ、同じ変換
が別のDLAT用に必要となることである。すなわち、
例えば3個のアドレス生成機構が並行して仮想アドレス
を生成する。第1のDLATでミスが発生し、変換にN
サイクルを要する。同様に同じアドレスに対して第2と
第3のDLATでもミスが発生し、それぞれ変換にNサ
イクルを要する。同じページに対して同じ変換が3回行
われることになるので、その変換に合計3Nサイクルが
必要になる可能性がある。変換はオペレーティング・シ
ステムによって順次実行しなければならないことに留意
されたい。
【0017】同じ変換を3回行うことに対する1つの解
決策は、図5に示すように、変換が行われたとき3個の
DLATすべてに書き込むことである。すなわち、図6
に示すように、オペレーティング・システムによる変換
は1回だけでよく、その後はそれがすべてのDLATで
ただのNサイクルで利用できるようになる。
【0018】しかし、この解決策は、将来必要となる可
能性のある変換が、あるDLATから除去される危険が
ある。したがって、もう1つの解決策は、3個のDLA
Tすべてに書き込むのではなく、セグメント/ページ・
テーブルを探索したり、オペレーティング・システムに
よって変換を実行する前に、各DLATを順に探索する
ことである。これを図7に示す。図7では、DLAT3
4でミスが発生した後、DLAT35と36の探索を行
う。3個のDLATすべてでミスが発生した場合にの
み、変換を行う。
【0019】図8は、図3の変換構造でミスが発生した
結果を示す。前述のように、DLATミスが発生したと
き変換を行うにはNサイクルを要する。一方、例えばD
LAT35で変換が行われていた場合、図7に示した解
決策では、図9に示すように次のサイクルで変換が提供
される。ただし、図7の変換構造を使用する場合、DL
ATミスが発生すると他のDLAT35と36で変換サ
イクルが中断されるが、これは全体として十分に引き合
う。
【0020】図7の解決策は、前に指摘したように、他
のDLATの探索中、それらのDLATが行っている変
換が中断されるという欠点がある。図7に示した解決策
の修正策は、DLATを直接使用するのではなく、図1
0に示すように、DLATの「シャドー」コピーを使用
するものである。DLAT34、35、36が、主記憶
装置にそれぞれ「シャドー」DLAT44、45、46
としてコピーされる。DLATミスが発生したとき、他
のDLATが行っている変換を中断せずに、シャドー・
コピーを探索する。すなわち、図11に示すように、D
LATミスが発生したときでも、他のDLAT内では中
断なしに変換が続行され、1つのシャドーDLATで一
致が見つかった場合は、変換に1サイクル余分に要する
だけである。図に示した解決策のこの修正策はハードウ
ェアが2倍必要であるが、速度が重要な場合はそれでも
十分に引き合う。
【0021】また、キャッシュがインターリーブされる
のと同様にDLATをインターリーブすることも可能で
ある。図12では、3個のアドレス生成機構51、5
2、53が共同のDLAT54をアドレスしている。D
LAT54は数個のセクションに区分されており、図1
2では4個である。アドレス生成機構51、52、53
からのページ・アドレスの最後の数ビットを使って、ア
ドレス変換のためにアドレスされるDLATのセクショ
ンを選択する。3個のアドレス生成機構は変換のため4
重インターリーブ式DLATを照会するので、DLAT
は図3、5、7、10に示した手法と同程度の量のハー
ドウェアでずっと多くの変換を保持することができる。
【0022】図13は、ページに対するアドレス変換が
DLAT中にまだない始動時の、図3の変換構造の動作
を示す。始動時に、各アドレス生成機構はまず対応する
DLATを照会するが、どのDLATにもアドレス用の
エントリがないので、順次モードで変換を行わなければ
ならない。この場合も、図4に示した場合と同じく3N
サイクルを要する。一方、同じ条件下で、図12に示し
た変換構造では、図14に示すようにN+2サイクルし
か要しない。アドレス生成機構51、52、53がすべ
て同じページ中のアドレスを生成すると仮定すると、始
動時には、そのページ変換はDLAT54中にはない。
一度変換がDLAT54に入れられると、他のアドレス
生成機構はそれにアクセスできるので、1回だけ変換を
行えばよい。アプリケーション・プログラムは通常同じ
ストライドを有するので、インターリーブ式DLAT
は、最初のサイクルの後は、変換が段階式になってお
り、1サイクルずつずれているので、一般に衝突を起こ
さない。したがって、このインターリーブ式DLAT
は、図15に示すように1サイクル毎に3回の変換を発
生することができる。
【0023】本発明はまた、アドレス生成が実モードま
たは仮想モードのどちらかで行われる、動的アドレス変
換機構の機能強化をも対象としている。実モードで行う
ときは、必要なデータのメモリ内の実アドレスが生成さ
れ、変換は不要である。仮想モードのときは、生成され
たアドレスを変換しなければならない。この方法は、新
しいアドレスが新しいページにあるときだけこれらの変
換を行えばよいということを利用している。アドレスが
ページ境界内に留まっている場合は、実アドレスをスト
ライドだけ増分するだけでよい。ページ境界を越えたこ
とが検出されたときは、仮想アドレスから新しい実アド
レスに変換する必要がある。本当に必要なときだけDL
ATを照会することにより、DLAT変換に要するサイ
クルが削減され、実アドレスを生成するのに要する時間
が減少する。さらに、DLATへのトラフィックも減少
し、そのため、複数のアドレス生成機構が同一のDLA
Tを照会することが可能になる。インターリーブ式DL
ATでは、この手順によって、アドレス生成機構がDL
ATの同じセクションを照会するという衝突が減少す
る。そのため、アドレス生成の速度が上がり、あるいは
アドレス生成機構1個当りのアドレス生成速度にほとん
どまたは全く影響を与えずに、より多くのアドレス生成
機構をDLATに接続することが可能になる。
【0024】図16は、仮想モードと実モードの間での
切替え用の論理を示す、判断ブロック60からプロセス
が開始する。ストライドが十分に小さくて、1ページ内
で4個を越えるアドレスが生成されると予想できる場合
は、実モードに切り替わる。そうでない場合は、機能ブ
ロック61で、DLATを使って仮想モードで変換が行
われる。実モードに切り替わる場合、機能ブロック62
で、DLATを使って最初の変換が行われ、次いで機能
ブロック63で、変換された仮想アドレス(実アドレ
ス)がストライド分だけ増分され、そのDLATが変換
プロセスから除かれる。変換された仮想アドレスの増分
によって各実アドレスを生成した後、判断ブロック64
で、テストを行ってページ境界を越えたかどうか判定す
る。越えていない場合は、機能ブロック65で、増分後
のアドレスが変換済みアドレスとして使用され、機能ブ
ロック63に戻って、再度アドレスが増分される。ペー
ジを越えたことが検出されたときは、機能ブロック62
に戻って、DLATを使って仮想モードで次のページの
最初のアドレスを生成する。
【0025】図16の流れ図で実行される諸機能は、図
17と18に示したハードウェアで実施される。図17
は仮想モードのハードウェア構成を示し、図18は実モ
ードのハードウェア構成を示す。図17から始めると、
図2に示した従来のDAT構造の場合と同様に、ベクト
ル命令の最初のアドレスがレジスタ71に記憶され、D
LAT72に送られる。残りのアドレスは、レジスタ7
1からの仮想アドレスを加算器73でストライド分だけ
増分し、増分後のアドレスをDLAT72に送ることに
よって生成される。レジスタ71と加算器73がアドレ
ス生成機構を構成する。実モードでは、図18に示すよ
うに、アドレス・レジスタ71は最初に、ページの始め
での一致を求めてDLAT72を探索する。DLAT7
2によって行われた変換は加算器73でストライド分だ
け増分され、加算器73から出力される各実アドレスも
同様に増分される。ページ交差検出論理機構74は、ペ
ージ交差後にアドレス・レジスタ71とDLAT72を
最初のアドレスに関するプロセスに戻し、その後DLA
T72がその次以降のアドレスのために再度切り替えら
れる。
【0026】このモード切替えは、図2に示すような従
来のDAT機構や、1サイクル当り複数の変換を行う構
造にも有利に適用できる。単一のDLATが1サイクル
当り1回だけ変換を提供する場合、あるいは複数のDL
ATが1サイクル当り複数の変換を提供する場合の、仮
想モードと実モードの諸条件をそれぞれ図19と20に
示す。しかし、ハードウェア・オーバーヘッドに関して
最良の性能が得られるのは、モード切替え式操作と、図
12に示したタイプの単一のインターリーブ式DLAT
構造とを併用する場合である。この構造の仮想モードと
実モードの諸条件をそれぞれ図21と22に示す。
【0027】1サイクル当り複数のアドレス変換を行う
場合のモード切替えの利点を図23と24に示す。図2
7では、ストライドが1で、すべてのアドレスが同じペ
ージにあると仮定するが、実モードへの切替えはでき
ず、すべてのアドレスを仮想モードで生成する必要があ
る。図24では実モードへの切替えが可能である。最初
の変換を仮想モードで行い、次いで実モードに切り替え
ることにより、ただの6個ではなくて15個のアドレス
を生成することが可能である。アドレスが別々のページ
にある場合は、アドレス生成機構1が実モードでアドレ
スを生成し続け、その間にアドレス生成機構2用のアド
レスがNサイクルで変換されるので、この方法の方がず
っと効果的になる。仮想モードしか利用できない場合
は、DLATはNサイクル待ってからでないと新しいア
ドレスを取ることができないことになる。
【図面の簡単な説明】
【図1】仮想アドレスのフォーマットを示す構成図であ
る。
【図2】1プロセッサ・サイクル毎に(せいぜい)1個
のアドレスしか変換できない、従来の動的アドレス変換
構造の構成図である。
【図3】DLATが複製されて3個の独立なアドレス生
成機構をもたらしている、変換構造の構成図である。
【図4】同じアドレスを各DLATに書き込まなければ
ならないときの、図3の変換構造の動作を示すタイミン
グ図である。
【図5】生成されたページ・アドレスがすべてのDLA
Tに書き込まれるように修正された、図の変換構造の構
成図である。
【図6】図5の変換構造の動作を示し、この構造によっ
て得られる時間の節減を示すタイミング図である。
【図7】1つのDLATでミスが発生したとき、ページ
・アドレスが生成される前に他のDLATの探索が行わ
れるように修正された、図3の変換構造の構成図であ
る。
【図8】DLATミスが発生したときの、図3の変換構
造の動作を示すタイミング図である。
【図9】DLATミスが発生したが、他のDLATの1
つでヒットが見つかった場合の、図7の変換構造の動作
を示すタイミング図である。
【図10】「シャドー」DLATを追加して修正した、
図7の変換構造の構成図である。
【図11】図10に示した変換構造の動作を示すタイミ
ング図である。
【図12】インターリーブ式DLATとして実施された
DLAT構造の構成図である。
【図13】ページに対するアドレス変換がDLAT中に
ない始動状態から始まる、図3に示したDLAT構造の
動作を示すタイミング図である。
【図14】ページに対するアドレス変換がDLAT中に
ない始動状態から始まる、図12に示したDLAT構造
の動作を示すタイミング図である。
【図15】ストライドが1であり、すべての変換が同じ
ページにあり、変換がバッファ内にある場合の、図12
に示したDLAT構造の動作を示すタイミング図であ
る。
【図16】本発明の別の態様による、アドレス生成モー
ド決定の論理を示す流れ図である。
【図17】仮想モード・アドレス変換における動作を示
す機能構成図である。
【図18】実モード・アドレス変換における動作を示す
機能構成図である。
【図19】仮想モード・アドレス変換における単一DL
ATの動作を示す構成図である。
【図20】実モード・アドレス変換における単一DLA
Tの動作を示す構成図である。
【図21】複数の仮想モード・アドレス変換用の単一の
インターリーブ式DLATの動作を示す構成図である。
【図22】複数の実モード・アドレス変換用の単一のイ
ンターリーブ式DLATの動作を示す構成図である。
【図23】実モードへの切替えができないときの複数の
非インターリーブ式DLATの動作を示すタイミング図
である。
【図24】実モードへの切替えができ、ストライドが1
ですべてのアドレスが同一ページにある場合の、複数の
非インターリーブ式DLATの改善された動作を示すタ
イミング図である。
【符号の説明】
31 アドレス生成機構(AGEN) 32 アドレス生成機構(AGEN) 33 アドレス生成機構(AGEN) 34 ディレクトリ・ルックアサイド・テーブル(DL
AT) 35 ディレクトリ・ルックアサイド・テーブル(DL
AT) 36 ディレクトリ・ルックアサイド・テーブル(DL
AT) 44 シャドーDLAT 45 シャドーDLAT 46 シャドーDLAT 54 共通DLAT
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス・ドンスィク・キム アメリカ合衆国08904、ニュージャージー 州ハイランド・パーク、シーダー・レーン 24番地ビー (72)発明者 ジェフリー・イム・ユー・リー アメリカ合衆国12477、ニューヨーク州ソ ーガティーズ、オールド・ステート・ロー ド 4115番地、5号 (72)発明者 フォリスト・アーサー・レイリー アメリカ合衆国02642、マサチューセッツ 州イーストハム、ヘイ・ロード 495番地 (56)参考文献 特開 平3−189749(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】1コンピュータ・サイクル当り複数回の仮
    想アドレス変換をサポートする、データ処理システム内
    の仮想記憶システム用のアドレス変換装置であって、 セグメント・インデックス・ビットとページ・インデッ
    クス・ビットと変位インデックス・ビットとから構成さ
    れる、変換すべき複数の仮想アドレスを記憶する手段
    と、 仮想−実変換情報を記憶する、動的ルックアサイド・テ
    ーブル手段と、 上記仮想アドレスの上記ページ・インデックス・ビット
    に応答して、1コンピュータ・サイクルの間に上記動的
    ルックアサイド・テーブルアクセスして、上記各仮想
    アドレスに対する実アドレスを同時に生成するアクセス
    手段とを備え、各命令によって、開始アドレスと、連続するアドレス間
    の増分であるストライドと、当該命令中のオペランドの
    数とを指定するようにし、 さらに、上記ストライドが、ページ・サイズの所定の小
    部分より小さいか否かを判定し、且つこの判定結果に応
    じて実変換モードと仮想変換モードの間で変換モードを
    切り替える、モード切替え手段と、 上記実変換モードで動作可能となって、最初の実アドレ
    スをページ境界内で複数回増分して実アドレスを生成す
    るように動作する増分手段と を備えるアドレス変換装
    置。
  2. 【請求項2】上記動的ルックアサイド・テーブル手段
    が、変換すべき各仮想アドレス毎に1個ずつ、複数のテ
    ーブルを備えることを特徴とする、請求項1に記載のア
    ドレス変換装置。
  3. 【請求項3】上記動的ルックアサイド・テーブル手段
    が、複数のセクションに区分された単一のインターリー
    ブ式テーブルを備え、上記アクセス手段が、変換すべき
    上記仮想アドレスに対応する上記テーブルのセクション
    を選択することを特徴とする、請求項1に記載のアドレ
    ス変換装置。
JP4074370A 1991-05-07 1992-03-30 アドレス変換装置 Expired - Lifetime JPH0769866B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/697,168 US5341485A (en) 1991-05-07 1991-05-07 Multiple virtual address translation per computer cycle
US697168 1991-05-07

Publications (2)

Publication Number Publication Date
JPH05100956A JPH05100956A (ja) 1993-04-23
JPH0769866B2 true JPH0769866B2 (ja) 1995-07-31

Family

ID=24800080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4074370A Expired - Lifetime JPH0769866B2 (ja) 1991-05-07 1992-03-30 アドレス変換装置

Country Status (2)

Country Link
US (1) US5341485A (ja)
JP (1) JPH0769866B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778416A (en) * 1993-12-20 1998-07-07 Motorola, Inc. Parallel process address generator and method
US6012135A (en) * 1994-12-01 2000-01-04 Cray Research, Inc. Computer having multiple address ports, each having logical address translation with base and limit memory management
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
JPH0991202A (ja) * 1995-09-27 1997-04-04 Kofu Nippon Denki Kk リストベクトル処理装置
US5970512A (en) * 1997-03-27 1999-10-19 International Business Machines Corporation Translation shadow array adder-decoder circuit for selecting consecutive TLB entries
US6189094B1 (en) * 1998-05-27 2001-02-13 Arm Limited Recirculating register file
US6981125B2 (en) * 2003-04-22 2005-12-27 International Business Machines Corporation Method and apparatus for managing shared virtual storage in an information handling system
US7181590B2 (en) * 2003-08-28 2007-02-20 Intel Corporation Method for page sharing in a processor with multiple threads and pre-validated caches
US11176091B2 (en) * 2017-09-29 2021-11-16 Intel Corporation Techniques for dynamic multi-storage format database access
GB2570665B (en) * 2018-01-31 2020-08-26 Advanced Risc Mach Ltd Address translation in a data processing apparatus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52130532A (en) * 1976-04-27 1977-11-01 Fujitsu Ltd Address conversion system
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4293910A (en) * 1979-07-02 1981-10-06 International Business Machines Corporation Reconfigurable key-in-storage means for protecting interleaved main storage
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
EP0124799B1 (en) * 1983-04-13 1990-10-31 Nec Corporation Memory access arrangement in a data processing system
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
JPH0652511B2 (ja) * 1984-12-14 1994-07-06 株式会社日立製作所 情報処理装置のアドレス変換方式
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
JPS62222344A (ja) * 1986-03-25 1987-09-30 Hitachi Ltd アドレス変換機構
AU2022188A (en) * 1987-07-30 1989-02-02 Alliant Computer Systems Corporation Parallel processing computer in which memory access priorities are varied
US5111389A (en) * 1987-10-29 1992-05-05 International Business Machines Corporation Aperiodic mapping system using power-of-two stride access to interleaved devices
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5099415A (en) * 1989-02-15 1992-03-24 International Business Machines Guess mechanism for virtual address translation
JP2503702B2 (ja) * 1989-12-19 1996-06-05 日本電気株式会社 アドレス変換装置

Also Published As

Publication number Publication date
JPH05100956A (ja) 1993-04-23
US5341485A (en) 1994-08-23

Similar Documents

Publication Publication Date Title
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US5475827A (en) Dynamic look-aside table for multiple size pages
US5493660A (en) Software assisted hardware TLB miss handler
US6430668B2 (en) Speculative address translation for processor using segmentation and optical paging
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US6675282B2 (en) System and method for employing a global bit for page sharing in a linear-addressed cache
US7831799B1 (en) Speculative address translation for processor using segmentation and optional paging
JP3666689B2 (ja) 仮想アドレス変換方法
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US5278963A (en) Pretranslation of virtual addresses prior to page crossing
JPH10177520A (ja) データプロセッサ及びデータ処理システム
JPH02189659A (ja) 仮想記憶動的アドレス変換システム
JPH0348541B2 (ja)
KR20010007115A (ko) 개선된 컴퓨터 메모리 어드레스 변환 시스템
US7269825B1 (en) Method and system for relative address translation
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
JPH0769866B2 (ja) アドレス変換装置
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
JPH0519176B2 (ja)
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
US7181590B2 (en) Method for page sharing in a processor with multiple threads and pre-validated caches
JPH0650480B2 (ja) 多重仮想記憶システムおよびアドレス制御装置
US6766435B1 (en) Processor with a general register set that includes address translation registers
JPS623354A (ja) キヤツシユメモリ・アクセス方式