JPH079632B2 - アドレス変換装置および方法 - Google Patents
アドレス変換装置および方法Info
- Publication number
- JPH079632B2 JPH079632B2 JP4123793A JP12379392A JPH079632B2 JP H079632 B2 JPH079632 B2 JP H079632B2 JP 4123793 A JP4123793 A JP 4123793A JP 12379392 A JP12379392 A JP 12379392A JP H079632 B2 JPH079632 B2 JP H079632B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- translation
- generators
- conversion
- translated
- 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
Links
- 238000013519 translation Methods 0.000 title claims description 77
- 238000000034 method Methods 0.000 title claims description 18
- 239000000872 buffer Substances 0.000 claims description 39
- 238000006243 chemical reaction Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 3
- 230000014616 translation Effects 0.000 description 54
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 4
- 102100027152 Dihydrolipoyllysine-residue acetyltransferase component of pyruvate dehydrogenase complex, mitochondrial Human genes 0.000 description 3
- 101001122360 Homo sapiens Dihydrolipoyllysine-residue acetyltransferase component of pyruvate dehydrogenase complex, mitochondrial Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000255777 Lepidoptera Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
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】
【関連出願についての相互参照】本件出願の主題は、1
991年5月7日にジョン ハタースレイ(JohnH
attersley)によって「アドレス変換装置(M
ultiple Virtnal Address T
ranslation Per Computer C
ycle)」に対してなされた特許出願第07/69
7,168号(対応日本出願:特願平4−74370
号、出願日平成4年3月30日)であって、本件出願の
譲受人に譲渡された特許出願(IBM Docket
KI9−90−022)に関連するものである。米国特
許出願07/697,168号(対応日本出願:特願平
4−74370号)の開示はそれを参照することで本件
出願の一部分をなすものとする。
991年5月7日にジョン ハタースレイ(JohnH
attersley)によって「アドレス変換装置(M
ultiple Virtnal Address T
ranslation Per Computer C
ycle)」に対してなされた特許出願第07/69
7,168号(対応日本出願:特願平4−74370
号、出願日平成4年3月30日)であって、本件出願の
譲受人に譲渡された特許出願(IBM Docket
KI9−90−022)に関連するものである。米国特
許出願07/697,168号(対応日本出願:特願平
4−74370号)の開示はそれを参照することで本件
出願の一部分をなすものとする。
【0002】
【産業上の利用分野】本発明は、一般的には、データ処
理システムの仮想記憶装置に関し、およびより詳しくは
複数のアドレス発生器を有し、同一ページ変換に対して
多数の要求を出すことを排除する効率的な変換装置に関
する。
理システムの仮想記憶装置に関し、およびより詳しくは
複数のアドレス発生器を有し、同一ページ変換に対して
多数の要求を出すことを排除する効率的な変換装置に関
する。
【0003】
【従来の技術】データ処理システムのための仮想記憶の
組織(organization)および管理(man
agement)については、たとえばHarvey
M.DeitelがAn Introduction
to Operating Systems,Addi
son−Wesley(1984)において、Haro
ld LorinおよびHarvey M.Deite
lがOperatingSystems,Addiso
n−Wesley(1981)において、また、Har
old S.StoneがHigh−Performa
nce Computer Architectur
e,Addison−Wesley(1987)におい
て記述している。仮想記憶システムにおいて、ページン
グとは、再配置およびアドレスを物理的な位置に結合す
るための装置であり、実際に利用可能なメモリ空間より
もはるかに大きいメモリ空間と思われるメモリをユーザ
のシステムに提供するための装置である。仮想記憶の概
念のキーとなる特徴は、実行中のプロセスにおいて参照
されるアドレスを主記憶装置において利用可能なアドレ
スから分離することにある。実行中のプロセスにより参
照されるアドレスが仮想アドレスと呼ばれ、一方、主記
憶装置において利用可能なアドレスは実アドレスと呼ば
れる。プロセスを実行するときに仮想アドレスを実アド
レス中にマッピングしなければならない。そして、その
ことがダイナミックアドレス変換(DAT)機構の機能
となる。そのようなアドレス変換機構のうちひとつで
は、ディレクトリルックアサイドテーブル(DLAT)
を採用する。このテーブルは、ときには変換ルックアサ
イドバッファ(TLB)とも呼ばれ、最新の仮想アドレ
ス変換を記憶する。DLATに格納された仮想アドレス
に対して、変換プロセスは1マシンサイクル、あるいは
せいぜい2マシンサイクルを要するのみである。DLA
Tに格納されていないアドレスに対しては、DATプロ
セスは15から60サイクルもしくはそれ以上のサイク
ルを要するかも知れない。PLAT内に格納されていな
いアドレスの変換を実行する変換装置はバッファコント
ロールエレメント(BCE)と呼ばれる。
組織(organization)および管理(man
agement)については、たとえばHarvey
M.DeitelがAn Introduction
to Operating Systems,Addi
son−Wesley(1984)において、Haro
ld LorinおよびHarvey M.Deite
lがOperatingSystems,Addiso
n−Wesley(1981)において、また、Har
old S.StoneがHigh−Performa
nce Computer Architectur
e,Addison−Wesley(1987)におい
て記述している。仮想記憶システムにおいて、ページン
グとは、再配置およびアドレスを物理的な位置に結合す
るための装置であり、実際に利用可能なメモリ空間より
もはるかに大きいメモリ空間と思われるメモリをユーザ
のシステムに提供するための装置である。仮想記憶の概
念のキーとなる特徴は、実行中のプロセスにおいて参照
されるアドレスを主記憶装置において利用可能なアドレ
スから分離することにある。実行中のプロセスにより参
照されるアドレスが仮想アドレスと呼ばれ、一方、主記
憶装置において利用可能なアドレスは実アドレスと呼ば
れる。プロセスを実行するときに仮想アドレスを実アド
レス中にマッピングしなければならない。そして、その
ことがダイナミックアドレス変換(DAT)機構の機能
となる。そのようなアドレス変換機構のうちひとつで
は、ディレクトリルックアサイドテーブル(DLAT)
を採用する。このテーブルは、ときには変換ルックアサ
イドバッファ(TLB)とも呼ばれ、最新の仮想アドレ
ス変換を記憶する。DLATに格納された仮想アドレス
に対して、変換プロセスは1マシンサイクル、あるいは
せいぜい2マシンサイクルを要するのみである。DLA
Tに格納されていないアドレスに対しては、DATプロ
セスは15から60サイクルもしくはそれ以上のサイク
ルを要するかも知れない。PLAT内に格納されていな
いアドレスの変換を実行する変換装置はバッファコント
ロールエレメント(BCE)と呼ばれる。
【0004】仮想アドレスから実アドレスへの変換で
は、アドレス付けのインストラクションまたはデータが
メインメモリのどこに位置するかを検出しなければなら
ない。代表的なアプリケーションでは、プロセッサはサ
イクルにあたりただ1つのアドレスを発生する。いくつ
かのプロセッサは、DLAT(またはTLB)に行く2
以上のアドレス発生器を有しているが、依然サイクルあ
たりただ1つのアドレスが実際に変換されるにすぎな
い。プロセッサが発達してきたのに応じて、サイクル毎
に2つ以上のアドレスを発生し、かつ変換する必要性が
でてきた。特に各サイクルを十分に利用するには、プロ
セッサは各サイクルに2以上のメモリ要求を必要とす
る。その要求は、たとえば、3つの個別の命令とするこ
とができ、したがって、各サイクルに3つのアドレスを
発生してメモリ要求を行うようにすることが必要であ
る。先に参照したハタースレイの米国特許出願第07/
697,168号(対応日本特許出願:特願平4−74
370号)は複数のアドレス発生器を支援するいくつか
のアドレス変換装置について説明している。
は、アドレス付けのインストラクションまたはデータが
メインメモリのどこに位置するかを検出しなければなら
ない。代表的なアプリケーションでは、プロセッサはサ
イクルにあたりただ1つのアドレスを発生する。いくつ
かのプロセッサは、DLAT(またはTLB)に行く2
以上のアドレス発生器を有しているが、依然サイクルあ
たりただ1つのアドレスが実際に変換されるにすぎな
い。プロセッサが発達してきたのに応じて、サイクル毎
に2つ以上のアドレスを発生し、かつ変換する必要性が
でてきた。特に各サイクルを十分に利用するには、プロ
セッサは各サイクルに2以上のメモリ要求を必要とす
る。その要求は、たとえば、3つの個別の命令とするこ
とができ、したがって、各サイクルに3つのアドレスを
発生してメモリ要求を行うようにすることが必要であ
る。先に参照したハタースレイの米国特許出願第07/
697,168号(対応日本特許出願:特願平4−74
370号)は複数のアドレス発生器を支援するいくつか
のアドレス変換装置について説明している。
【0005】
【発明が解決しようとする課題】複数のアドレス発生器
を、それら自体のDLAT装置または共有のDLAT装
置のいずれかと共に並列に動作するときに、同一のペー
ジアドレスの変換に対する要求が複数のアドレス変換器
によりなされる可能性がある。もし変換がすでにDLA
Tにあるのでない場合は、変換要求はBCEに対してな
される。BCEへの各変換要求を待機させ(queue
d)、そして、変換はそれぞれについてなされるので、
それによって変換時間が非常に増大することになる。
を、それら自体のDLAT装置または共有のDLAT装
置のいずれかと共に並列に動作するときに、同一のペー
ジアドレスの変換に対する要求が複数のアドレス変換器
によりなされる可能性がある。もし変換がすでにDLA
Tにあるのでない場合は、変換要求はBCEに対してな
される。BCEへの各変換要求を待機させ(queue
d)、そして、変換はそれぞれについてなされるので、
それによって変換時間が非常に増大することになる。
【0006】そこで、本発明の目的は、複数のアドレス
発生器を用いて、同一ページの変換に対する複数の要求
を排除する、効率的な変換装置を提供することにある。
発生器を用いて、同一ページの変換に対する複数の要求
を排除する、効率的な変換装置を提供することにある。
【0007】
【課題を解決するための手段】このような目的を達成す
るために、本発明は、データ処理システム内で複数のア
ドレス発生器を支援するアドレス変換装置であって、ア
ドレス変換エントリーを記憶するテーブル手段であっ
て、前記複数のアドレス発生器に応答してアドレス発生
器からの要求が変換エントリーに対応するときにアドレ
ス出力を供給するテーブル手段と、アドレス発生器から
の要求が前記テーブル手段内の変換エントリーに対応し
ない場合を検出する手段と、該検出手段に応答して、現
在、変換のために記憶されているアドレスについての変
換に関して未処理の要求があるか否かを決定し、もし、
なければ、前記変換のためのアドレスを一時的に記憶し
ておくアドレスバッファおよび比較手段と、前記アドレ
スバッファおよび比較手段によりマークされ、変換のた
めに記憶されている各アドレスについての、変換の全て
のリクエスタを識別する分配手段と、前記アドレスバッ
ファおよび比較手段により一時的に記憶されているアド
レスを変換する変換手段であって、該変換手段により前
記分配手段に変換されたアドレスを供給して、変換され
たアドレスの要求を行っているとしてマークされた前記
アドレス発生器の各々および前記テーブル手段に対し
て、分配を行う変換手段とを具えたことを特徴とする。
るために、本発明は、データ処理システム内で複数のア
ドレス発生器を支援するアドレス変換装置であって、ア
ドレス変換エントリーを記憶するテーブル手段であっ
て、前記複数のアドレス発生器に応答してアドレス発生
器からの要求が変換エントリーに対応するときにアドレ
ス出力を供給するテーブル手段と、アドレス発生器から
の要求が前記テーブル手段内の変換エントリーに対応し
ない場合を検出する手段と、該検出手段に応答して、現
在、変換のために記憶されているアドレスについての変
換に関して未処理の要求があるか否かを決定し、もし、
なければ、前記変換のためのアドレスを一時的に記憶し
ておくアドレスバッファおよび比較手段と、前記アドレ
スバッファおよび比較手段によりマークされ、変換のた
めに記憶されている各アドレスについての、変換の全て
のリクエスタを識別する分配手段と、前記アドレスバッ
ファおよび比較手段により一時的に記憶されているアド
レスを変換する変換手段であって、該変換手段により前
記分配手段に変換されたアドレスを供給して、変換され
たアドレスの要求を行っているとしてマークされた前記
アドレス発生器の各々および前記テーブル手段に対し
て、分配を行う変換手段とを具えたことを特徴とする。
【0008】また、本発明は、請求項1に記載のアドレ
ス変換装置において、前記分配手段は、対応する変換さ
れたアドレスが前記分配手段に供給されたときに、前記
アドレスバッファおよび比較手段から、変換のためのア
ドレスを消去する手段を有することを特徴とする。
ス変換装置において、前記分配手段は、対応する変換さ
れたアドレスが前記分配手段に供給されたときに、前記
アドレスバッファおよび比較手段から、変換のためのア
ドレスを消去する手段を有することを特徴とする。
【0009】また、本発明は、請求項1に記載のアドレ
ス変換装置において、前記アドレスバッファおよび比較
手段は、変換されるべきアドレスを格納するための複数
の格納場所を有し、該格納場所の各々は、前記変換手段
による変換のためにアドレスがアクチブであることを示
すアクチブビット位置を有する第2テーブル手段と、前
記アドレス発生器のいずれかに対して前記検出手段によ
り変換されるべきことを要求された全てのアドレスに応
答して、前記アドレス発生器の各々に対して前記分配手
段をマークするマーク手段と、前記第2テーブル手段内
のアドレスを前記検出手段により変換されるべきことを
要求されたアドレスと比較し、および前記第2テーブル
手段内で見出されなかったアドレスを入力する比較手段
とを具えたことを特徴とする。
ス変換装置において、前記アドレスバッファおよび比較
手段は、変換されるべきアドレスを格納するための複数
の格納場所を有し、該格納場所の各々は、前記変換手段
による変換のためにアドレスがアクチブであることを示
すアクチブビット位置を有する第2テーブル手段と、前
記アドレス発生器のいずれかに対して前記検出手段によ
り変換されるべきことを要求された全てのアドレスに応
答して、前記アドレス発生器の各々に対して前記分配手
段をマークするマーク手段と、前記第2テーブル手段内
のアドレスを前記検出手段により変換されるべきことを
要求されたアドレスと比較し、および前記第2テーブル
手段内で見出されなかったアドレスを入力する比較手段
とを具えたことを特徴とする。
【0010】また、本発明は、データ処理システム内で
複数のアドレス発生器を支援するアドレス変換方法であ
って、複数のアドレス変換エントリーを記憶し、前記複
数のアドレス発生器に応答して、アドレス発生器からの
要求が変換エントリーに対応するときにアドレス出力を
供給するステップと、アドレス発生器からの要求が変換
エントリーに対応しない場合を検出するステップと、全
てのアドレス発生器に対応する変換エントリーがない各
アドレスの変換を要求することをマークするステップ
と、変換のために一時的に記憶されたアドレスの変換に
対する未処理の要求があるか否かを決定し、もし、なけ
れば、前記アドレスを変換のために一時的に記憶するス
テップと、当該一時的に記憶されたアドレスを変換する
ステップと、変換されたアドレスを要求するとしてマー
クされた前記発生器の各々に変換されたアドレスを分配
するステップとを具えたことを特徴とする。
複数のアドレス発生器を支援するアドレス変換方法であ
って、複数のアドレス変換エントリーを記憶し、前記複
数のアドレス発生器に応答して、アドレス発生器からの
要求が変換エントリーに対応するときにアドレス出力を
供給するステップと、アドレス発生器からの要求が変換
エントリーに対応しない場合を検出するステップと、全
てのアドレス発生器に対応する変換エントリーがない各
アドレスの変換を要求することをマークするステップ
と、変換のために一時的に記憶されたアドレスの変換に
対する未処理の要求があるか否かを決定し、もし、なけ
れば、前記アドレスを変換のために一時的に記憶するス
テップと、当該一時的に記憶されたアドレスを変換する
ステップと、変換されたアドレスを要求するとしてマー
クされた前記発生器の各々に変換されたアドレスを分配
するステップとを具えたことを特徴とする。
【0011】
【作用】本発明によれば、複数のアドレス発生器からの
アドレス変換についての複数の要求の結果生じる重複し
た変換はDLATアドレスバッファを付加することによ
り排除される。もし、要求されたアドレスがDLATに
おいてヒットであれば、変換は慣例の方法で処理され
る。もし、ミスであれば、アドレスはDLATアドレス
バッファに入れられる。他のアドレス発生器からの以後
の要求はDLATアドレスバッファ内のアドレスと比較
され、このアドレスに対して未処理の要求があるか否か
を判断する。もし、なければ、アドレスは、バッファに
また入れられる。もし、未処理の要求がある場合には、
リクエスタは、アドレスを欲しているとしてアドレスデ
ィストリビュータにおいて、マークされる。変換がBC
Eから戻されると、アドレスは、それを必要としている
全てのリクエスタ、DLATおよびバッファに送られ、
バッファからの削除が行われる。
アドレス変換についての複数の要求の結果生じる重複し
た変換はDLATアドレスバッファを付加することによ
り排除される。もし、要求されたアドレスがDLATに
おいてヒットであれば、変換は慣例の方法で処理され
る。もし、ミスであれば、アドレスはDLATアドレス
バッファに入れられる。他のアドレス発生器からの以後
の要求はDLATアドレスバッファ内のアドレスと比較
され、このアドレスに対して未処理の要求があるか否か
を判断する。もし、なければ、アドレスは、バッファに
また入れられる。もし、未処理の要求がある場合には、
リクエスタは、アドレスを欲しているとしてアドレスデ
ィストリビュータにおいて、マークされる。変換がBC
Eから戻されると、アドレスは、それを必要としている
全てのリクエスタ、DLATおよびバッファに送られ、
バッファからの削除が行われる。
【0012】上述した本発明の目的および他の目的、本
発明の形態よび利点は、図面を参照してなされる本発明
の好適な実施例についての以下の詳細な説明からよりよ
く理解されよう。
発明の形態よび利点は、図面を参照してなされる本発明
の好適な実施例についての以下の詳細な説明からよりよ
く理解されよう。
【0013】
【実施例】以下の説明ではダイナミックルック−アサイ
ドテーブルに対して用語“DLAT”を用いるが、当業
者は、この用語を変換ルック−アサイドバッファに対す
る“TLB”と入れ替えて用いてもよいことを理解する
であろう。以下の説明のためにページング/セグメンテ
ーション仮想アドレスシステムを仮定する。そのような
システムにおいて、仮想アドレスのフォーマットは図1
に示す通りであり、仮想アドレスのフォーマットは、セ
グメントインデックス(SX)に対してsビット、ペー
ジインデックス(PX)に対してpビットおよびディス
プレイスメントインデックス(DX)に対してdビット
を有している。仮想アドレスは、たとえば32ビットと
することができ、そのうちのビットA0〜A11がセグ
メントビットを構成し、ビットA12〜A19がページ
ビットを構成し、ビットA20〜A31がディスプレイ
スメントビットを構成する。
ドテーブルに対して用語“DLAT”を用いるが、当業
者は、この用語を変換ルック−アサイドバッファに対す
る“TLB”と入れ替えて用いてもよいことを理解する
であろう。以下の説明のためにページング/セグメンテ
ーション仮想アドレスシステムを仮定する。そのような
システムにおいて、仮想アドレスのフォーマットは図1
に示す通りであり、仮想アドレスのフォーマットは、セ
グメントインデックス(SX)に対してsビット、ペー
ジインデックス(PX)に対してpビットおよびディス
プレイスメントインデックス(DX)に対してdビット
を有している。仮想アドレスは、たとえば32ビットと
することができ、そのうちのビットA0〜A11がセグ
メントビットを構成し、ビットA12〜A19がページ
ビットを構成し、ビットA20〜A31がディスプレイ
スメントビットを構成する。
【0014】図2に示すように、仮想アドレスはアドレ
ス発生器20により発生される。アドレス発生器20は
中央処理装置(CPU)(不図示)の一部分である。最
も最近に参照されるページはDLAT21にエントリー
を有する。256の合同(congruence)クラ
スを持つDLATに対して、仮想アドレスのビットA1
2〜A19を用いてDLATをアドレス付けする。DL
AT21から読出された、アドレス付けされたエントリ
ーからの、仮想ページ識別ビットはコンパレータ22に
おいて、仮想アドレスのビットA1〜A11と比較され
る。もしも合致がない場合は、DLATミスが発生して
いる。DLATミスの時は、アドレス変換は、たとえ
ば、セグメント/ページテーブル検索を通して得られ、
DLATに配置される。この検索を実行する構造はバッ
ファコントロールエレメント(BCE)と呼ばれる。
ス発生器20により発生される。アドレス発生器20は
中央処理装置(CPU)(不図示)の一部分である。最
も最近に参照されるページはDLAT21にエントリー
を有する。256の合同(congruence)クラ
スを持つDLATに対して、仮想アドレスのビットA1
2〜A19を用いてDLATをアドレス付けする。DL
AT21から読出された、アドレス付けされたエントリ
ーからの、仮想ページ識別ビットはコンパレータ22に
おいて、仮想アドレスのビットA1〜A11と比較され
る。もしも合致がない場合は、DLATミスが発生して
いる。DLATミスの時は、アドレス変換は、たとえ
ば、セグメント/ページテーブル検索を通して得られ、
DLATに配置される。この検索を実行する構造はバッ
ファコントロールエレメント(BCE)と呼ばれる。
【0015】セグメント/ページテーブル検索は、セグ
メントテーブルオリジンレジスタ23内の値と、加算器
24内の仮想アドレスのビットA0〜A12とを加算し
て、セグメントマップテーブル25のインデックス値を
得ることから開始する。次に、セグメントマップテーブ
ル25からのエントリー出力は、ページマップテーブル
26エントリーのためのインデックスとして用いられ
る。ここで、各セグメントに対して個別のページマップ
テーブルがある。ページマップテーブル26からのエン
トリー出力は、実記憶装置内において仮想ページが存在
するページフレームを供給し、そして、オアゲート27
を通過して、そして、仮想アドレス発生器20のディス
プレイスメントビットA20〜A31と連接されて、実
アドレスレジスタ28において実アドレスを形成する。
メントテーブルオリジンレジスタ23内の値と、加算器
24内の仮想アドレスのビットA0〜A12とを加算し
て、セグメントマップテーブル25のインデックス値を
得ることから開始する。次に、セグメントマップテーブ
ル25からのエントリー出力は、ページマップテーブル
26エントリーのためのインデックスとして用いられ
る。ここで、各セグメントに対して個別のページマップ
テーブルがある。ページマップテーブル26からのエン
トリー出力は、実記憶装置内において仮想ページが存在
するページフレームを供給し、そして、オアゲート27
を通過して、そして、仮想アドレス発生器20のディス
プレイスメントビットA20〜A31と連接されて、実
アドレスレジスタ28において実アドレスを形成する。
【0016】他方、もしもDLAT21において、合致
がある場合は、コンパレータ22は、アンドゲート29
をイネーブルして、このアンドゲート29によりDLA
T21からのエントリー出力をオアゲート27へ通過さ
せる。この場合、DLAT21からのエントリー出力
は、ディスプレイスメントビットA20〜A31に対し
て連接される関連する実アドレスフィールドであって、
レジスタ28において実記憶アドレスを形成する。明ら
かに、このアドレス変換のプロセスはDLATミスの時
に生じるセグメント/ページテーブル検索の場合よりも
著しく速い。セグメント/ページテーブル検索は完了ま
でに15〜80サイクルを要するかもしれないのに対し
てDLATアクセスは1サイクルで完了することができ
る。
がある場合は、コンパレータ22は、アンドゲート29
をイネーブルして、このアンドゲート29によりDLA
T21からのエントリー出力をオアゲート27へ通過さ
せる。この場合、DLAT21からのエントリー出力
は、ディスプレイスメントビットA20〜A31に対し
て連接される関連する実アドレスフィールドであって、
レジスタ28において実記憶アドレスを形成する。明ら
かに、このアドレス変換のプロセスはDLATミスの時
に生じるセグメント/ページテーブル検索の場合よりも
著しく速い。セグメント/ページテーブル検索は完了ま
でに15〜80サイクルを要するかもしれないのに対し
てDLATアクセスは1サイクルで完了することができ
る。
【0017】通常、大抵のアドレス変換要求はDLAT
の検索によりなされ、そして、セグメント/ページテー
ブル検索は、DLATによるかかる変換を行うよりも多
数のプロセッササイクルを要するが、セグメント/ペー
ジテーブル検索自体は、変換の失敗の可能性がないわけ
ではない。セグメントマップテーブル検索は、セグメン
トが1次の、すなわち主記憶装置に存在しないことを示
すかも知れず、それによりオペレーティングシステムは
2次記憶装置、すなわち、ダイレクトアクセス記憶装置
(DASD)のセグメントを探し出し、セグメントのた
めのページテーブルを作成し、そして適切なページを1
次記憶装置にロードし、多分プロセス内の現存ページと
置換する。
の検索によりなされ、そして、セグメント/ページテー
ブル検索は、DLATによるかかる変換を行うよりも多
数のプロセッササイクルを要するが、セグメント/ペー
ジテーブル検索自体は、変換の失敗の可能性がないわけ
ではない。セグメントマップテーブル検索は、セグメン
トが1次の、すなわち主記憶装置に存在しないことを示
すかも知れず、それによりオペレーティングシステムは
2次記憶装置、すなわち、ダイレクトアクセス記憶装置
(DASD)のセグメントを探し出し、セグメントのた
めのページテーブルを作成し、そして適切なページを1
次記憶装置にロードし、多分プロセス内の現存ページと
置換する。
【0018】たとえセグメントが1次記憶装置内に存在
していても、所望のページは1次記憶装置には存在しな
いかも知れず、それによりオペレーティングシステムは
2次記憶装置のページを探し出し、そのページを1次記
憶装置にロードし、再び、多分プロセス内の現存ページ
と置換する。2次記憶装置にアクセスするプロセスは、
数百プロセッササイクルまでかかる。
していても、所望のページは1次記憶装置には存在しな
いかも知れず、それによりオペレーティングシステムは
2次記憶装置のページを探し出し、そのページを1次記
憶装置にロードし、再び、多分プロセス内の現存ページ
と置換する。2次記憶装置にアクセスするプロセスは、
数百プロセッササイクルまでかかる。
【0019】上述の説明は、プロセッササイクル毎に
(多くとも)1つの変換を行うように意図された慣例の
DLAT構造に関するものである。共に出願係属中のハ
タースレイによる米国特許出願第07/697,168
号(対応日本出願:特願平4−74370号)では、プ
ロセッササイクル毎に多数の変換を行うDLAT構造が
開示されている。たとえば、図3に、3個のアドレス発
生器(AGENs)31,32および33を含むDLA
T構造を示す。各アドレス発生器は、仮想アドレスを発
生し、そのアドレスを変換のためそれぞれDLAT3
4,35および36に渡す。DLATがその変換を有し
ていない(DLATミス)場合は、上述のようにアドレ
スを発生しなければならない。この手法に伴う主な問題
は、しばしばあるDLAT用に変換が行われ、同じ変換
が別のDLAT用に必要となることである。すなわち、
例えば3個のアドレス発生器が並行して仮想アドレスを
発生する。第1のDLATでミスが発生し、変換にNサ
イクルを要する。同様に同じアドレスに対して第2およ
び第3のDLATでもミスが発生すると、それぞれ変換
にNサイクルを要する。同じページに対して同じ変換が
3回行われることになるので、その変換に合計3Nサイ
クルが必要になるはずである。変換はオペレーティング
・システムによって順次に実行しなければならないこと
に留意されたい。
(多くとも)1つの変換を行うように意図された慣例の
DLAT構造に関するものである。共に出願係属中のハ
タースレイによる米国特許出願第07/697,168
号(対応日本出願:特願平4−74370号)では、プ
ロセッササイクル毎に多数の変換を行うDLAT構造が
開示されている。たとえば、図3に、3個のアドレス発
生器(AGENs)31,32および33を含むDLA
T構造を示す。各アドレス発生器は、仮想アドレスを発
生し、そのアドレスを変換のためそれぞれDLAT3
4,35および36に渡す。DLATがその変換を有し
ていない(DLATミス)場合は、上述のようにアドレ
スを発生しなければならない。この手法に伴う主な問題
は、しばしばあるDLAT用に変換が行われ、同じ変換
が別のDLAT用に必要となることである。すなわち、
例えば3個のアドレス発生器が並行して仮想アドレスを
発生する。第1のDLATでミスが発生し、変換にNサ
イクルを要する。同様に同じアドレスに対して第2およ
び第3のDLATでもミスが発生すると、それぞれ変換
にNサイクルを要する。同じページに対して同じ変換が
3回行われることになるので、その変換に合計3Nサイ
クルが必要になるはずである。変換はオペレーティング
・システムによって順次に実行しなければならないこと
に留意されたい。
【0020】本発明では、図4に示すように、DLAT
アドレスバッファを付加することにより複数のアドレス
発生器のためのDLAT構造を変更する。簡単のため
に、図4は1つのDLAT40によって複数のリクエス
タ(たとえばアドレス発生器)から変換要求を受ける場
合を示す。出願係属中のハタースレイによる米国特許出
願第07/697,168号(対応特願平4−7437
0号)において述べられているように、DLAT40は
複数のDLATで実施してもよく、もしくは実際に図4
に示しているように、共有された1個のDLATであっ
てもよい。本発明はいずれの場合にも適用可能である。
DLATミスロジック41によりDLATミスが検出さ
れた場合には、アドレス変換のためにただちにBCE4
2に行く代わりに、変換されるべきアドレスはDLAT
アドレスバッファ43に供給される。次いで、このアド
レスは、このバッファ内において、他のアドレスと比較
され、このバッファ内に、合致する変換要求があるか否
かを判断する。もしもなければ、アドレスは、BCE4
2による変換のために、バッファ43内に待機させられ
る(queued)。加えて、リクエスタの識別子(I
D)と変換されるべきアドレスとがアドレスディストリ
ビュータ44に入力されて、このアドレスディストリビ
ュータ44は、変換されたアドレスをBCE42から受
け取るべきリクエスタをマークしまたは識別し、または
記録する。
アドレスバッファを付加することにより複数のアドレス
発生器のためのDLAT構造を変更する。簡単のため
に、図4は1つのDLAT40によって複数のリクエス
タ(たとえばアドレス発生器)から変換要求を受ける場
合を示す。出願係属中のハタースレイによる米国特許出
願第07/697,168号(対応特願平4−7437
0号)において述べられているように、DLAT40は
複数のDLATで実施してもよく、もしくは実際に図4
に示しているように、共有された1個のDLATであっ
てもよい。本発明はいずれの場合にも適用可能である。
DLATミスロジック41によりDLATミスが検出さ
れた場合には、アドレス変換のためにただちにBCE4
2に行く代わりに、変換されるべきアドレスはDLAT
アドレスバッファ43に供給される。次いで、このアド
レスは、このバッファ内において、他のアドレスと比較
され、このバッファ内に、合致する変換要求があるか否
かを判断する。もしもなければ、アドレスは、BCE4
2による変換のために、バッファ43内に待機させられ
る(queued)。加えて、リクエスタの識別子(I
D)と変換されるべきアドレスとがアドレスディストリ
ビュータ44に入力されて、このアドレスディストリビ
ュータ44は、変換されたアドレスをBCE42から受
け取るべきリクエスタをマークしまたは識別し、または
記録する。
【0021】他方、もしも、合致する変換要求がバッフ
ァ43中に見つかった場合は、それは変換のために待機
させられない。代わりに、変換されたアドレスをBCE
42から受け取るべきリクエスタを「マークする」か、
または記録するための入力がアドレスディストリビュー
タ44に対してなされる。変換はすでに進行中かも知れ
ないし、あるいはBCE42による変換のために少なく
とも待機させられているだろうが、この同一アドレスは
2度目には変換されないであろう。その理由は、このア
ドレスはバッファ43において待機させられていないか
らである。
ァ43中に見つかった場合は、それは変換のために待機
させられない。代わりに、変換されたアドレスをBCE
42から受け取るべきリクエスタを「マークする」か、
または記録するための入力がアドレスディストリビュー
タ44に対してなされる。変換はすでに進行中かも知れ
ないし、あるいはBCE42による変換のために少なく
とも待機させられているだろうが、この同一アドレスは
2度目には変換されないであろう。その理由は、このア
ドレスはバッファ43において待機させられていないか
らである。
【0022】アドレスの変換がBCE42により完了さ
れると、変換されたアドレスはアドレス分配器、すなわ
ちアドレスディストリビュータ44に送られ、このアド
レスディストリビュータ44は、変換されたアドレスを
要求するアドレス発生器のリクエスタの各々に、アドレ
スを受けるべきアドレスディストリビュータ44におけ
るそれらリクエスタを削除する旨をマークし、または識
別するエントリーを記録する「マーク」によって示され
るように、変換されたアドレスを供給する。変換された
アドレスをアドレスディストリビュータ44によりDL
AT40へも供給して、以後のアドレス変換要求に用い
られるようにする。BCE42は、正に変換されたアド
レスを識別するデータをDLATアドレスバッファ43
にも供給する。このデータをバッファ43により用いて
変換を待機しているキュー(queue)の中のエント
リーを消去する。
れると、変換されたアドレスはアドレス分配器、すなわ
ちアドレスディストリビュータ44に送られ、このアド
レスディストリビュータ44は、変換されたアドレスを
要求するアドレス発生器のリクエスタの各々に、アドレ
スを受けるべきアドレスディストリビュータ44におけ
るそれらリクエスタを削除する旨をマークし、または識
別するエントリーを記録する「マーク」によって示され
るように、変換されたアドレスを供給する。変換された
アドレスをアドレスディストリビュータ44によりDL
AT40へも供給して、以後のアドレス変換要求に用い
られるようにする。BCE42は、正に変換されたアド
レスを識別するデータをDLATアドレスバッファ43
にも供給する。このデータをバッファ43により用いて
変換を待機しているキュー(queue)の中のエント
リーを消去する。
【0023】図5はDLATアドレスバッファ43およ
びアドレスディストリビュータ44の構造をさらに詳細
に示す。DLATミスロジック41からのミス出力は、
アドレスをゲート51を介してアドレスレジスタ50に
送る。アドレスレジスタの内容は、比較ロジック52に
おいてテーブル53内の全てのアクチブアドレスと比較
される。「アクチブアドレス」とは、変換のためにBC
E42へ送られるべく待機させられるアドレスである。
変換されるべきアドレスはテーブル53に入力され、変
換されるべき各入力と関連付けられた「アクチブ」ビッ
トによりテーブル53においてアクチブ(付勢状態)と
マークされる。テーブル53はポジション0で始まり、
ポジションnまでいき、ポジション0が利用可能になる
と、そのポジションに循環される。したがって、テーブ
ル53は、変換されるべき要求の順次の記録を提供す
る。
びアドレスディストリビュータ44の構造をさらに詳細
に示す。DLATミスロジック41からのミス出力は、
アドレスをゲート51を介してアドレスレジスタ50に
送る。アドレスレジスタの内容は、比較ロジック52に
おいてテーブル53内の全てのアクチブアドレスと比較
される。「アクチブアドレス」とは、変換のためにBC
E42へ送られるべく待機させられるアドレスである。
変換されるべきアドレスはテーブル53に入力され、変
換されるべき各入力と関連付けられた「アクチブ」ビッ
トによりテーブル53においてアクチブ(付勢状態)と
マークされる。テーブル53はポジション0で始まり、
ポジションnまでいき、ポジション0が利用可能になる
と、そのポジションに循環される。したがって、テーブ
ル53は、変換されるべき要求の順次の記録を提供す
る。
【0024】テーブル53内のアドレスは、クロック5
6からのクロックパルスを計数するn段カウンタ55の
制御の下に、ゲート54を介してコンパレータロジック
52に順次に読出される。ゲート54はテーブル53か
ら読出された各アドレスについての「アクチブ」ビット
によりイネーブルされ、したがって、それらの「アクチ
ブ」ビットセットを持たないアドレスは比較ロジック5
2へは通過しない。比較ロジック52からの比較出力に
よってフリップフロップ57をセットし、そして、
6からのクロックパルスを計数するn段カウンタ55の
制御の下に、ゲート54を介してコンパレータロジック
52に順次に読出される。ゲート54はテーブル53か
ら読出された各アドレスについての「アクチブ」ビット
によりイネーブルされ、したがって、それらの「アクチ
ブ」ビットセットを持たないアドレスは比較ロジック5
2へは通過しない。比較ロジック52からの比較出力に
よってフリップフロップ57をセットし、そして、
【0025】
【外1】 フリップフロップ57からの出力
【0026】によってアンドゲート58を禁止し、以
て、アドレスレジスタ50におけるアドレスがゲート5
9を介してテーブル53に読出されないようにする。
て、アドレスレジスタ50におけるアドレスがゲート5
9を介してテーブル53に読出されないようにする。
【0027】カウンタ55はDLATミスロジック41
からの信号により、リセットおよびスタートされ、テー
ブル53の中を歩進させるために用いられる。カウンタ
55は予め定められた数nまで計数する。nはサイクル
タイムを減らすために妥当な小さい数、たとえば、DL
ATあてに4〜6、にすべきである。カウンタ55が、
カウントアップして全比較サイクルの終了を示すゼロカ
ウントに戻ったときにゼロ検出器60がセットされる。
ゼロ検出器60がセットされると、それによってアンド
ゲート61を禁止し、それにより、テーブル53に格納
されているアドレスのそれ以後の読出しが阻止される。
この時点で、もしもフリップフロップ57がまだセット
されていないのであれば、検出器60の出力によってア
ンドゲート58をイネーブルに、テーブル53の、「ア
クチブ」ビットがまだセットされていない次の位置にア
ドレスレジスタ50内のアドレスを読込む。これはテー
ブル位置レジスタ77により進められる。
からの信号により、リセットおよびスタートされ、テー
ブル53の中を歩進させるために用いられる。カウンタ
55は予め定められた数nまで計数する。nはサイクル
タイムを減らすために妥当な小さい数、たとえば、DL
ATあてに4〜6、にすべきである。カウンタ55が、
カウントアップして全比較サイクルの終了を示すゼロカ
ウントに戻ったときにゼロ検出器60がセットされる。
ゼロ検出器60がセットされると、それによってアンド
ゲート61を禁止し、それにより、テーブル53に格納
されているアドレスのそれ以後の読出しが阻止される。
この時点で、もしもフリップフロップ57がまだセット
されていないのであれば、検出器60の出力によってア
ンドゲート58をイネーブルに、テーブル53の、「ア
クチブ」ビットがまだセットされていない次の位置にア
ドレスレジスタ50内のアドレスを読込む。これはテー
ブル位置レジスタ77により進められる。
【0028】このレジスタ77はテーブル53および6
7の、アクチブビットがセットされていない最後部の位
置を保持する。この位置はカウンタ55からアンドゲー
ト76を介してレジスタ77に入力され、変換されるべ
き次のアドレスをどの位置に書込むのかを識別するため
に用いられる。「アクチブ」ビットは、新たな不一致の
アドレスのいずれに対してもセットされ、アドレスは、
その位置に対する変換が受け入れられ、かつその位置が
使用可能になったときに滅勢(ノン−アクチブ)状態に
なる。短いディレイ62の後、検出器60の出力によっ
てフリップフロップ57をもリセットして、次の比較サ
イクルに備える。検出器60は、カウンタ55と同様
に、DLATミスロジック41からの信号によりリセッ
トされる。
7の、アクチブビットがセットされていない最後部の位
置を保持する。この位置はカウンタ55からアンドゲー
ト76を介してレジスタ77に入力され、変換されるべ
き次のアドレスをどの位置に書込むのかを識別するため
に用いられる。「アクチブ」ビットは、新たな不一致の
アドレスのいずれに対してもセットされ、アドレスは、
その位置に対する変換が受け入れられ、かつその位置が
使用可能になったときに滅勢(ノン−アクチブ)状態に
なる。短いディレイ62の後、検出器60の出力によっ
てフリップフロップ57をもリセットして、次の比較サ
イクルに備える。検出器60は、カウンタ55と同様
に、DLATミスロジック41からの信号によりリセッ
トされる。
【0029】テーブル53は2つの出力ポートを有し、
それにより、個別のアドレス入力の制御の下で、テーブ
ル内のアドレスをいずれのポートからも読出すことがで
きるようにする。変換されるべき次に待機しているアド
レスは位置レジスタ63によりアドレスされ、それによ
ってアドレスがテーブル53からゲート64を経由して
BCE42に読込まれる。そのアドレスが変換された時
に、BCE42からの出力によってインクリメンティン
グロジック65は位置レジスタ63内のアドレスをイン
クリメントする。テーブル53からゲート64に読出さ
れたアドレスに対する「アクチブビット」は、もしもセ
ットであれば、ゲート64をイネーブルするが、そのア
クチブビットがセットでなければ、ゲート64を禁止す
るので、テーブル53内の、変換を行う必要のないアド
レスは、テーブル53から変換のためにBCE42に読
出す必要はない。「アクチブビット」がセットされてい
ないアドレスをテーブル53から万が一読出したとする
と、位置レジスタ63内のアドレスをインクリメントす
る必要がある。これは、インバータ66によって行われ
る。すなわち、インバータ66がセットではない「アク
チブビット」に応答してインクリメンティングロジック
65が位置レジスタ63内のアドレスをインクリメント
させる。
それにより、個別のアドレス入力の制御の下で、テーブ
ル内のアドレスをいずれのポートからも読出すことがで
きるようにする。変換されるべき次に待機しているアド
レスは位置レジスタ63によりアドレスされ、それによ
ってアドレスがテーブル53からゲート64を経由して
BCE42に読込まれる。そのアドレスが変換された時
に、BCE42からの出力によってインクリメンティン
グロジック65は位置レジスタ63内のアドレスをイン
クリメントする。テーブル53からゲート64に読出さ
れたアドレスに対する「アクチブビット」は、もしもセ
ットであれば、ゲート64をイネーブルするが、そのア
クチブビットがセットでなければ、ゲート64を禁止す
るので、テーブル53内の、変換を行う必要のないアド
レスは、テーブル53から変換のためにBCE42に読
出す必要はない。「アクチブビット」がセットされてい
ないアドレスをテーブル53から万が一読出したとする
と、位置レジスタ63内のアドレスをインクリメントす
る必要がある。これは、インバータ66によって行われ
る。すなわち、インバータ66がセットではない「アク
チブビット」に応答してインクリメンティングロジック
65が位置レジスタ63内のアドレスをインクリメント
させる。
【0030】アドレスディストリビュータ44はテーブ
ル53と同様のテーブル67を有する。BCE42から
の変換されたアドレスは、ゲート68を介してテーブル
67に送られ、テーブル53における要求されたアドレ
スの位置に対応する位置にストアされる。テーブル67
にアドレスをストアしておく必要はないけれども、この
選択によりデバック動作を向上させることができた。位
置は位置レジスタ77から得られ、アンドゲート78を
通過してテーブル67に供給される。BCEは、変換を
完了すると、ゲート68およびアンドゲート69の双方
をイネーブルする。
ル53と同様のテーブル67を有する。BCE42から
の変換されたアドレスは、ゲート68を介してテーブル
67に送られ、テーブル53における要求されたアドレ
スの位置に対応する位置にストアされる。テーブル67
にアドレスをストアしておく必要はないけれども、この
選択によりデバック動作を向上させることができた。位
置は位置レジスタ77から得られ、アンドゲート78を
通過してテーブル67に供給される。BCEは、変換を
完了すると、ゲート68およびアンドゲート69の双方
をイネーブルする。
【0031】システムにおける各リクエスタに対する
「マーク」ビット位置はテーブル67内の各位置と関連
付けられている。DLATミスがあるときには、リクエ
スタ識別子(ID)は、リクエスタビットのセッティン
グを制御するアンドゲート701 ,702 ,70n のう
ちの対応するひとつのゲートをイネーブルする。アンド
ゲート71により決定されるように一致が成立つか、あ
るいは、アンドゲート72により決定されるように不一
致であるかのいずれにおいても、テーブル53内の待機
させられたアドレスの位置はオアゲート73を通過して
アンドゲート701 ,702 ,70n に送られて、その
アドレスを要求したリクエスタに対して変換されたアド
レスをストアしている位置が正しくマークされるように
する。
「マーク」ビット位置はテーブル67内の各位置と関連
付けられている。DLATミスがあるときには、リクエ
スタ識別子(ID)は、リクエスタビットのセッティン
グを制御するアンドゲート701 ,702 ,70n のう
ちの対応するひとつのゲートをイネーブルする。アンド
ゲート71により決定されるように一致が成立つか、あ
るいは、アンドゲート72により決定されるように不一
致であるかのいずれにおいても、テーブル53内の待機
させられたアドレスの位置はオアゲート73を通過して
アンドゲート701 ,702 ,70n に送られて、その
アドレスを要求したリクエスタに対して変換されたアド
レスをストアしている位置が正しくマークされるように
する。
【0032】比較イコールロジック52から不一致が得
られたときは、アドレスはテーブル53の次の順次の位
置に入れられ、およびそれと同時に、テーブル67内の
アドレスの順次の位置はテーブル位置レジスタ77にス
トアされる。テーブル67がBCE42からアドレスを
受けるとき、ディストリビュータ44はそのアドレスを
受け、全てのマークされたリクエスタに分配される。こ
れはディストリビューションゲート751 ,752 ,7
5n で行われる。これらディストリビューションゲート
751 ,752 ,75n は、分配されるアドレスに対す
るマーク要求ビットによりイネーブルされる。アドレス
ディストリビュータ44は、テーブル53および67に
おいてアクチブ位置のために確保されている位置をも無
効にする。これは、アンドゲート69の出力で実行され
る。それと同時に、分配されるアドレスに対する「マー
ク」ビットはテーブル67においてリセットされ、この
位置を使用可能状態とする。
られたときは、アドレスはテーブル53の次の順次の位
置に入れられ、およびそれと同時に、テーブル67内の
アドレスの順次の位置はテーブル位置レジスタ77にス
トアされる。テーブル67がBCE42からアドレスを
受けるとき、ディストリビュータ44はそのアドレスを
受け、全てのマークされたリクエスタに分配される。こ
れはディストリビューションゲート751 ,752 ,7
5n で行われる。これらディストリビューションゲート
751 ,752 ,75n は、分配されるアドレスに対す
るマーク要求ビットによりイネーブルされる。アドレス
ディストリビュータ44は、テーブル53および67に
おいてアクチブ位置のために確保されている位置をも無
効にする。これは、アンドゲート69の出力で実行され
る。それと同時に、分配されるアドレスに対する「マー
ク」ビットはテーブル67においてリセットされ、この
位置を使用可能状態とする。
【0033】図5に示すハードウェアの実施例をソフト
ウェアの形態での実施に変更することもできる。テーブ
ル53および67を管理するのに用いるソフトウェアの
ロジックを図6のフローダイアグラムに示す。その処理
は、DLATミスを検出する判定ブロック80で始ま
る。DLATミスが検出された場合、アドレスディスト
リビュータ44のテーブル67のリクエスタは、ファン
クションブロック81に示すように、マークされる。変
換要求のあったアドレスがDLATバッファテーブル5
3に既に存在するか否かを決定するテストが判定ブロッ
ク82においてなされる。もし、ない場合は、ファンク
ションブロック83において、そのアドレスはDLAT
バッファテーブル53およびディストリビューションバ
ッファテーブル67に入力し、そして、同時に、ファン
クションブロック84において「アクチブ」ビットがセ
ットされる。もし、要求されたアドレスがDLATバッ
ファテーブル53に既にある場合は、ファンクションブ
ロック87においてマークビットがディストリビューシ
ョンバッファテーブル67に入力される。
ウェアの形態での実施に変更することもできる。テーブ
ル53および67を管理するのに用いるソフトウェアの
ロジックを図6のフローダイアグラムに示す。その処理
は、DLATミスを検出する判定ブロック80で始ま
る。DLATミスが検出された場合、アドレスディスト
リビュータ44のテーブル67のリクエスタは、ファン
クションブロック81に示すように、マークされる。変
換要求のあったアドレスがDLATバッファテーブル5
3に既に存在するか否かを決定するテストが判定ブロッ
ク82においてなされる。もし、ない場合は、ファンク
ションブロック83において、そのアドレスはDLAT
バッファテーブル53およびディストリビューションバ
ッファテーブル67に入力し、そして、同時に、ファン
クションブロック84において「アクチブ」ビットがセ
ットされる。もし、要求されたアドレスがDLATバッ
ファテーブル53に既にある場合は、ファンクションブ
ロック87においてマークビットがディストリビューシ
ョンバッファテーブル67に入力される。
【0034】DLATバッファテーブル53にアドレス
を入力する処理と同時に、変換のために待機しているD
LATバッファテーブル53内の次のアドレスは、ファ
ンクションブロック85に示すように、BCE42が空
いたときに、変換のためにBCE42に送られる。BC
E42が変換を完了すると、ファンクションブロック8
6において、アドレスはマークビットで示されているよ
うに分配される。テーブル53における関連する「アク
チブ」ビットはファンクションブロック88においてリ
セットされ、そして、テーブル67における対応する
「マーク」ビットは、ファンクションブロック90にお
いて、リセットされる。
を入力する処理と同時に、変換のために待機しているD
LATバッファテーブル53内の次のアドレスは、ファ
ンクションブロック85に示すように、BCE42が空
いたときに、変換のためにBCE42に送られる。BC
E42が変換を完了すると、ファンクションブロック8
6において、アドレスはマークビットで示されているよ
うに分配される。テーブル53における関連する「アク
チブ」ビットはファンクションブロック88においてリ
セットされ、そして、テーブル67における対応する
「マーク」ビットは、ファンクションブロック90にお
いて、リセットされる。
【0035】次いで、判定ブロック91において、テー
ブル53にセットされた何らかの「アクチブ」ビットが
あるか否かのテストがなされる。もし、存在するのであ
れば、プロセスループはファンクションブロック85に
戻り、そうでなければ、プロセスループはディシジョン
ブロック80に戻り、次のDLATミスを待つ。
ブル53にセットされた何らかの「アクチブ」ビットが
あるか否かのテストがなされる。もし、存在するのであ
れば、プロセスループはファンクションブロック85に
戻り、そうでなければ、プロセスループはディシジョン
ブロック80に戻り、次のDLATミスを待つ。
【0036】本発明は好適な実施例に関して説明してき
たが、当業者は、添付の特許請求の範囲の精神および範
囲内での変更を加えて本発明を実施することができるこ
とを認識するものである。
たが、当業者は、添付の特許請求の範囲の精神および範
囲内での変更を加えて本発明を実施することができるこ
とを認識するものである。
【図1】仮想アドレスのフォーマットを示すブロック図
である。
である。
【図2】プロセッササイクルあたり(高々)1アドレス
を変換可能な慣例のダイナミックアドレス変換構造を示
すブロック図である。
を変換可能な慣例のダイナミックアドレス変換構造を示
すブロック図である。
【図3】DLATを複製して3つの独立したアドレス発
生器を提供することのできる変換構造を示すブロック図
である。
生器を提供することのできる変換構造を示すブロック図
である。
【図4】本発明による、DLATアドレスバッファを組
込んだ新しいDLAT構造のブロック図である。
込んだ新しいDLAT構造のブロック図である。
【図5】DLATアドレスバッファおよび図4に示した
DLAT構造のアドレスディストリビュータの構造を示
す詳細ブロック図である。
DLAT構造のアドレスディストリビュータの構造を示
す詳細ブロック図である。
【図6】本発明による新しいDLAT構造の動作のロジ
ックを示すフローチャートである。
ックを示すフローチャートである。
31,32,33 アドレス発生器 34,35,36 DLAT 40 DLAT 41 DLATミスロジック 42 BCE 43 DLATアドレスバッファ 44 アドレスディストリビュータ 50 アドレスレジスタ 51,54,59,64,68 ゲート 52 比較ロジック 53,67 テーブル 55 N段カウンタ 56 クロック 57 フリップフロップ 58,61,69,701 ,702 ,70n ,71,7
2,76,78 アンドゲート 60 ゼロ検出器 62 ディレイ 63 位置レジスタ 65 インクリメンティングロジック 66 インバータ 751 ,752 ,75n ディストリビューションゲー
ト 77 テーブル位置レジスタ
2,76,78 アンドゲート 60 ゼロ検出器 62 ディレイ 63 位置レジスタ 65 インクリメンティングロジック 66 インバータ 751 ,752 ,75n ディストリビューションゲー
ト 77 テーブル位置レジスタ
Claims (4)
- 【請求項1】 データ処理システム内で複数のアドレス
発生器を支援するアドレス変換装置であって、 アドレス変換エントリーを記憶するテーブル手段であっ
て、前記複数のアドレス発生器に応答してアドレス発生
器からの要求が変換エントリーに対応するときにアドレ
ス出力を供給するテーブル手段と、 アドレス発生器からの要求が前記テーブル手段内の変換
エントリーに対応しない場合を検出する手段と、 該検出手段に応答して、現在、変換のために記憶されて
いるアドレスについての変換に関して未処理の要求があ
るか否かを決定し、もし、なければ、前記変換のための
アドレスを一時的に記憶しておくアドレスバッファおよ
び比較手段と、 前記アドレスバッファおよび比較手段によりマークさ
れ、変換のために記憶されている各アドレスについて
の、変換の全てのリクエスタを識別する分配手段と、 前記アドレスバッファおよび比較手段により一時的に記
憶されているアドレスを変換する変換手段であって、該
変換手段により前記分配手段に変換されたアドレスを供
給して、変換されたアドレスの要求を行っているとして
マークされた前記アドレス発生器の各々および前記テー
ブル手段に対して、分配を行う変換手段とを具えたこと
を特徴とするアドレス変換装置。 - 【請求項2】 請求項1に記載のアドレス変換装置にお
いて、前記分配手段は、対応する変換されたアドレスが
前記分配手段に供給されたときに、前記アドレスバッフ
ァおよび比較手段から、変換のためのアドレスを消去す
る手段を有することを特徴とするアドレス変換装置。 - 【請求項3】 請求項1に記載のアドレス変換装置にお
いて、前記アドレスバッファおよび比較手段は、 変換されるべきアドレスを格納するための複数の格納場
所を有し、該格納場所の各々は、前記変換手段による変
換のためにアドレスがアクチブであることを示すアクチ
ブビット位置を有する第2テーブル手段と、 前記アドレス発生器のいずれかに対して前記検出手段に
より変換されるべきことを要求された全てのアドレスに
応答して、前記アドレス発生器の各々に対して前記分配
手段をマークするマーク手段と、 前記第2テーブル手段内のアドレスを前記検出手段によ
り変換されるべきことを要求されたアドレスと比較し、
および前記第2テーブル手段内で見出されなかったアド
レスを入力する比較手段とを具えたことを特徴とするア
ドレス変換装置。 - 【請求項4】 データ処理システム内で複数のアドレス
発生器を支援するアドレス変換方法であって、 複数のアドレス変換エントリーを記憶し、前記複数のア
ドレス発生器に応答して、アドレス発生器からの要求が
変換エントリーに対応するときにアドレス出力を供給す
るステップと、 アドレス発生器からの要求が変換エントリーに対応しな
い場合を検出するステップと、 全てのアドレス発生器に対応する変換エントリーがない
各アドレスの変換を要求することをマークするステップ
と、 変換のために一時的に記憶されたアドレスの変換に対す
る未処理の要求があるか否かを決定し、もし、なけれ
ば、前記アドレスを変換のために一時的に記憶するステ
ップと、 当該一時的に記憶されたアドレスを変換するステップ
と、 変換されたアドレスを要求するとしてマークされた前記
発生器の各々に変換されたアドレスを分配するステップ
とを具えたことを特徴とするアドレス変換方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71713391A | 1991-06-18 | 1991-06-18 | |
US717133 | 1996-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05181750A JPH05181750A (ja) | 1993-07-23 |
JPH079632B2 true JPH079632B2 (ja) | 1995-02-01 |
Family
ID=24880836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4123793A Expired - Lifetime JPH079632B2 (ja) | 1991-06-18 | 1992-05-15 | アドレス変換装置および方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5479629A (ja) |
EP (1) | EP0519685A1 (ja) |
JP (1) | JPH079632B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6195748B1 (en) | 1997-11-26 | 2001-02-27 | Compaq Computer Corporation | Apparatus for sampling instruction execution information in a processor pipeline |
US6332178B1 (en) | 1997-11-26 | 2001-12-18 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system transactions |
US6175814B1 (en) | 1997-11-26 | 2001-01-16 | Compaq Computer Corporation | Apparatus for determining the instantaneous average number of instructions processed |
US6549930B1 (en) | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6163840A (en) * | 1997-11-26 | 2000-12-19 | Compaq Computer Corporation | Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline |
US6442585B1 (en) | 1997-11-26 | 2002-08-27 | Compaq Computer Corporation | Method for scheduling contexts based on statistics of memory system interactions in a computer system |
US6237059B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system interactions among contexts in a computer system |
US6374367B1 (en) | 1997-11-26 | 2002-04-16 | Compaq Computer Corporation | Apparatus and method for monitoring a computer system to guide optimization |
US6237073B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information |
US6473845B1 (en) * | 2000-09-28 | 2002-10-29 | Hewlett-Packard Company | System and method for dynamically updating memory address mappings |
US6615337B1 (en) * | 2001-08-09 | 2003-09-02 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining coherency in a translation lookaside buffer |
GB0301448D0 (en) | 2003-01-22 | 2003-02-19 | Falanx Microsystems As | Microprocessor systems |
US20070260754A1 (en) * | 2006-04-13 | 2007-11-08 | Irish John D | Hardware Assisted Exception for Software Miss Handling of an I/O Address Translation Cache Miss |
GB2536880B (en) * | 2015-03-24 | 2021-07-28 | Advanced Risc Mach Ltd | Memory management |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4370710A (en) * | 1980-08-26 | 1983-01-25 | Control Data Corporation | Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses |
JPS58225432A (ja) * | 1982-06-24 | 1983-12-27 | Toshiba Corp | 要求バツフア装置 |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
JPS6465649A (en) * | 1987-09-07 | 1989-03-10 | Mitsubishi Electric Corp | Address converter |
IT1223142B (it) * | 1987-11-17 | 1990-09-12 | Honeywell Bull Spa | Sistema multiprocessore di elaborazione con multiplazione di dati globali |
US4965719A (en) * | 1988-02-16 | 1990-10-23 | International Business Machines Corporation | Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system |
US5148536A (en) * | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
DE68916231T2 (de) * | 1989-03-23 | 1995-02-02 | Ibm | Verfahren und Vorrichtung zum Vielfachzugriff mit verteilten Warteschlangen in einem Kommunikationssystem. |
-
1992
- 1992-05-15 JP JP4123793A patent/JPH079632B2/ja not_active Expired - Lifetime
- 1992-06-16 EP EP92305515A patent/EP0519685A1/en not_active Withdrawn
-
1994
- 1994-03-11 US US08/208,926 patent/US5479629A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05181750A (ja) | 1993-07-23 |
EP0519685A1 (en) | 1992-12-23 |
US5479629A (en) | 1995-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5450563A (en) | Storage protection keys in two level cache system | |
US5426750A (en) | Translation lookaside buffer apparatus and method with input/output entries, page table entries and page table pointers | |
US4654790A (en) | Translation of virtual and real addresses to system addresses | |
US5475827A (en) | Dynamic look-aside table for multiple size pages | |
US4742450A (en) | Method to share copy on write segment for mapped files | |
US5586294A (en) | Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer | |
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
US4463420A (en) | Multiprocessor cache replacement under task control | |
US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
EP0062165A2 (en) | Multiprocessors including private and shared caches | |
JPH077363B2 (ja) | アクセス装置及び方法 | |
US4831581A (en) | Central processor unit for digital data processing system including cache management mechanism | |
JPH03142644A (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
JPH06231043A (ja) | 仮想記憶システムにおけるデータ転送装置及びその方法 | |
JPH079632B2 (ja) | アドレス変換装置および方法 | |
JPH0772880B2 (ja) | アドレス変換装置および方法 | |
KR20190059221A (ko) | 메모리 어드레스 변환 | |
JPH0695972A (ja) | ディジタルコンピュータシステム | |
US4757447A (en) | Virtual memory system having identity marking for common address space | |
JPH0221342A (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法 | |
US5341485A (en) | Multiple virtual address translation per computer cycle | |
JPH0519176B2 (ja) | ||
EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
US5305458A (en) | Multiple virtual storage system and address control apparatus having a designation table holding device and translation buffer | |
JPH0371355A (ja) | キヤツシユ検索装置および検索方法 |