JPH0679294B2 - アドレス変換方法 - Google Patents
アドレス変換方法Info
- Publication number
- JPH0679294B2 JPH0679294B2 JP2277954A JP27795490A JPH0679294B2 JP H0679294 B2 JPH0679294 B2 JP H0679294B2 JP 2277954 A JP2277954 A JP 2277954A JP 27795490 A JP27795490 A JP 27795490A JP H0679294 B2 JPH0679294 B2 JP H0679294B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- bit
- page
- storage
- segment
- 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
- 238000006243 chemical reaction Methods 0.000 title claims description 43
- 238000000034 method Methods 0.000 title claims description 32
- 238000013519 translation Methods 0.000 claims description 75
- 230000007246 mechanism Effects 0.000 claims description 28
- 239000000872 buffer Substances 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 15
- 230000014616 translation Effects 0.000 description 74
- 230000006870 function Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 20
- 230000008859 change Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000002085 persistent effect Effects 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000007152 ring opening metathesis polymerisation reaction Methods 0.000 description 2
- 108010016634 Seed Storage Proteins Proteins 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は一般的にはコンピユータ記憶サブシステム、と
りわけ当業者には、仮想記憶として知られた記憶装置に
構成された記憶サブシステムに関する。さらに詳しく言
えば、本発明は、仮想アドレスを実アドレスに変換し記
憶階層内である特有の制御機能を遂行するために装置に
関する。
りわけ当業者には、仮想記憶として知られた記憶装置に
構成された記憶サブシステムに関する。さらに詳しく言
えば、本発明は、仮想アドレスを実アドレスに変換し記
憶階層内である特有の制御機能を遂行するために装置に
関する。
B.従来の技術及びその課題 最新のコンピユータシステムにおいては、プログラムは
実行に際して、システム内のどこかすなわち、キヤツシ
ユ/主記憶装置/直接アクセス記憶装置(DASD)の記憶
階層のあるレベルあるいは分散システムネツトワークの
別のノードに存在するデータまたはコードのアクセスを
頻繁に試みる。最も基本的なシステムにとつて、このア
クセスを行うためにはプログラムが何を理解しなければ
ならないかを、考えてみよう。
実行に際して、システム内のどこかすなわち、キヤツシ
ユ/主記憶装置/直接アクセス記憶装置(DASD)の記憶
階層のあるレベルあるいは分散システムネツトワークの
別のノードに存在するデータまたはコードのアクセスを
頻繁に試みる。最も基本的なシステムにとつて、このア
クセスを行うためにはプログラムが何を理解しなければ
ならないかを、考えてみよう。
− データ(またはコード)はどこに所在するか。その
場合によつて、一般に、アクセスのためにどんな種類の
アドレスを用いるべきかが決まる。(例えば、24ビツト
の主記憶アドレス、デイスクトラツク上のセクタアドレ
ス、またはネツトワークのノードアドレス)。また、そ
のアクセスを遂行するためにどんな種類の命令を用いる
べきかも場所によって決まる(例えば、主記憶アクセス
の場合はロード/記憶/分岐、デイスクアクセスの場合
はチヤネル指令ワード、ネツトワークアクセスの場合は
通信プロトコル)。
場合によつて、一般に、アクセスのためにどんな種類の
アドレスを用いるべきかが決まる。(例えば、24ビツト
の主記憶アドレス、デイスクトラツク上のセクタアドレ
ス、またはネツトワークのノードアドレス)。また、そ
のアクセスを遂行するためにどんな種類の命令を用いる
べきかも場所によって決まる(例えば、主記憶アクセス
の場合はロード/記憶/分岐、デイスクアクセスの場合
はチヤネル指令ワード、ネツトワークアクセスの場合は
通信プロトコル)。
− このデータが他のプログラムによつて共有されてい
るか。このデータが共有されていれば、一定のロツクが
維持されていない限りはアクセスを進行させることはで
きない。このプログラムがなそうとしているデータの変
更を他のプログラムに知られたくない場合は、記憶命令
あるいは私用アドレスに向けられるべきである。
るか。このデータが共有されていれば、一定のロツクが
維持されていない限りはアクセスを進行させることはで
きない。このプログラムがなそうとしているデータの変
更を他のプログラムに知られたくない場合は、記憶命令
あるいは私用アドレスに向けられるべきである。
− 当該データが回復可能であるべきか。もしそうであ
れば、必要な場合に、前と同じ状態のデータを検索でき
るように、あるジヤーナリング方法を実施しなければな
らない。
れば、必要な場合に、前と同じ状態のデータを検索でき
るように、あるジヤーナリング方法を実施しなければな
らない。
こうした極めて基本的なシステムにおいて、各々のアク
セスの際にこれらを区別することを実際にプログラムが
要求されていたと仮定する。そうすると、次のような事
が起こるであろう。
セスの際にこれらを区別することを実際にプログラムが
要求されていたと仮定する。そうすると、次のような事
が起こるであろう。
− プログラムを一般的に適覆可能にしようとすると、
最も頻繁に発生する“単純で安全”な要求の場合でさ
え、言い換えれば、主記憶装置に在る私用の回復不能デ
ータの場合でさえ、そのアクセスは非常に遅くなるであ
ろう。
最も頻繁に発生する“単純で安全”な要求の場合でさ
え、言い換えれば、主記憶装置に在る私用の回復不能デ
ータの場合でさえ、そのアクセスは非常に遅くなるであ
ろう。
− プログラムをうまく働かせるためにそのアクセスモ
ードを1つに固定してしまうと、そのプログラムは異な
る性質を有するデータに対しては正しく実行されないで
あろう。
ードを1つに固定してしまうと、そのプログラムは異な
る性質を有するデータに対しては正しく実行されないで
あろう。
− プログラムは複雑かつ大規模で、しかもエラーを発
生しやすいものとなるであろう。
生しやすいものとなるであろう。
最近のシステムは、程度の差はあれ、こうした問題に取
り組んできた。例えば、 − 再配置アーキテクチヤによつて、一般に、私用の回
復不能な一時的データおよびプログラムを、16ビツトな
いし32ビツトのアドレスサイズ(通常、計算上の一時的
な要求にとつては適切)で統一的にアドレス指定するこ
とができる。再配置アーキテクチヤが適切な“索引”ハ
ードウエアを用いて実施される場合、そうしたアクセス
のほとんどがキヤツシユまたは主記憶装置の速度で行わ
れる。この索引ハードウエアが役に立たない場合(これ
は100回試行して1回起こるよりも少ない頻度である)
にのみ、システムは再配置テーブル構造をアクセスす
る。再配置テーブルが役に立たない場合(すなわちデー
タが主記憶装置にない場合)にのみ、システムに“ペー
ジ不在”のオーバーヘツドが生じる。従つて、真に必要
な場合だけオーバーヘツドが解決される。これは、良好
なアーキテクチヤおよびその実施の目的である。
り組んできた。例えば、 − 再配置アーキテクチヤによつて、一般に、私用の回
復不能な一時的データおよびプログラムを、16ビツトな
いし32ビツトのアドレスサイズ(通常、計算上の一時的
な要求にとつては適切)で統一的にアドレス指定するこ
とができる。再配置アーキテクチヤが適切な“索引”ハ
ードウエアを用いて実施される場合、そうしたアクセス
のほとんどがキヤツシユまたは主記憶装置の速度で行わ
れる。この索引ハードウエアが役に立たない場合(これ
は100回試行して1回起こるよりも少ない頻度である)
にのみ、システムは再配置テーブル構造をアクセスす
る。再配置テーブルが役に立たない場合(すなわちデー
タが主記憶装置にない場合)にのみ、システムに“ペー
ジ不在”のオーバーヘツドが生じる。従つて、真に必要
な場合だけオーバーヘツドが解決される。これは、良好
なアーキテクチヤおよびその実施の目的である。
− プログラム実行の範囲を超えてデータを維持する場
合は、最新のシステムでは、ロード/記憶/分岐命令の
代わりに、ソフトウエアで実現される“アクセス方式”
への明示要求によつてアクセスを行うことを要求され
る。こうしたアクセス方式は、一般に、“レコード”お
よび“フアイル”と呼ばれる定義された一定の基礎群に
構成されるデータを支援する。アクセスするための“命
令”は、一般に、“読取り/書込み”または“ゲツト/
プツト”と呼ばれる。
合は、最新のシステムでは、ロード/記憶/分岐命令の
代わりに、ソフトウエアで実現される“アクセス方式”
への明示要求によつてアクセスを行うことを要求され
る。こうしたアクセス方式は、一般に、“レコード”お
よび“フアイル”と呼ばれる定義された一定の基礎群に
構成されるデータを支援する。アクセスするための“命
令”は、一般に、“読取り/書込み”または“ゲツト/
プツト”と呼ばれる。
データは共有されないか、または、回復不能である。そ
れは、実際に主記憶装置(或るバツフア領域)に記憶さ
れているかも知れない。しかしアクセスの度に、プログ
ラムはこのような明示的な“読取り/書込み”呼出しを
行わねばならない。こうして、アクセス方式が適切に定
義されれば、それによつて、基本的システムにおけるよ
りも複雑でなくかつ一般的に適用できるプログラムが生
成される。しかしながらこうしたアクセスの性能は、一
律に、ロード/記憶よりも劣つたものとなり、アクセス
されるデータを適切な基礎群タイプに構成する必要が生
じる。
れは、実際に主記憶装置(或るバツフア領域)に記憶さ
れているかも知れない。しかしアクセスの度に、プログ
ラムはこのような明示的な“読取り/書込み”呼出しを
行わねばならない。こうして、アクセス方式が適切に定
義されれば、それによつて、基本的システムにおけるよ
りも複雑でなくかつ一般的に適用できるプログラムが生
成される。しかしながらこうしたアクセスの性能は、一
律に、ロード/記憶よりも劣つたものとなり、アクセス
されるデータを適切な基礎群タイプに構成する必要が生
じる。
− データが共有されるか、または、回復可能な場合
は、最新のシステムでは、ソフトウエアで実現される
“データベースサブシステム”への明示要求を必要とす
る。こうしたアクセスは、一般的に、アクセス方式の場
合のアクセスに比べて極めて遅い。この原因は、ロツク
およびジヤーナル管理の機能を付加しているということ
だけでなく、サブシステムが支援する基礎群の種類(例
えば関係、階層)がそれ自体さらに複雑であるというこ
とにもある。
は、最新のシステムでは、ソフトウエアで実現される
“データベースサブシステム”への明示要求を必要とす
る。こうしたアクセスは、一般的に、アクセス方式の場
合のアクセスに比べて極めて遅い。この原因は、ロツク
およびジヤーナル管理の機能を付加しているということ
だけでなく、サブシステムが支援する基礎群の種類(例
えば関係、階層)がそれ自体さらに複雑であるというこ
とにもある。
ここでも、データが、実際にはさらに簡単な構造で主記
憶装置のバツフア内にあるかも知れないが、アクセス要
求の度にオーバーヘツドの問題が生じる。
憶装置のバツフア内にあるかも知れないが、アクセス要
求の度にオーバーヘツドの問題が生じる。
“チエツクポインテイング“と呼ばれる手段を用いて一
時的なデータの回復を支援するシステムもある。この場
合、プログラムが回復可能なアプリケーションを書こう
とすれば、3つの異なつた手段を取り扱わねばならな
い。3つの手段とは、計算データのためのチエツクポイ
ンテイング、フアイルのための明示バツクアツプ、およ
びデータベースのための“確約”命令である。
時的なデータの回復を支援するシステムもある。この場
合、プログラムが回復可能なアプリケーションを書こう
とすれば、3つの異なつた手段を取り扱わねばならな
い。3つの手段とは、計算データのためのチエツクポイ
ンテイング、フアイルのための明示バツクアツプ、およ
びデータベースのための“確約”命令である。
− IBMシステム/38は、少なくとも、全てのデータにと
つて統一的なアドレス指定構造を提供するという点に関
して言えば、大多数のシステムよりも進んでいる。しか
しながら、すべてのアドレスは極めて長く、多くのアク
セスは極めて遅く、アーキクチヤを実施するために多大
な記憶領域およびハードウエアを必要とする、という犠
牲のもとにこれが提供されているのであり、また、共有
または回復のための統一的な手法を提供するものではな
い。
つて統一的なアドレス指定構造を提供するという点に関
して言えば、大多数のシステムよりも進んでいる。しか
しながら、すべてのアドレスは極めて長く、多くのアク
セスは極めて遅く、アーキクチヤを実施するために多大
な記憶領域およびハードウエアを必要とする、という犠
牲のもとにこれが提供されているのであり、また、共有
または回復のための統一的な手法を提供するものではな
い。
1台または複数台の基本処理ユニツトによつて実行され
る多数のコンピユータプログラムが1つの記憶装置を共
有するための様々な手法がこれまで知られている。プロ
グラムによつて共有されている記憶装置は極めて大きな
新記憶容量を必要とする。その容量は、記憶装置の実際
の容量よりも遥かに大きいことが多い。例えば、システ
ムが32ビツトアドレス方式を使用しているとすれば、仮
想記憶のアドレス指定可能な232バイトが使用可能であ
る。こうした仮想記憶空間は、通常、所定数の領域すな
わちセグメントに分けられるものとして考えられてい
る。各々のセグメントは所定数のラインから成るページ
に分けられ、各々のラインは所定数のバイトを有してい
る。従つてセグメントおよびページの指定、すなわち、
仮想記憶に割当てられたアドレスは、プログラムによつ
て任意に指定されるものであつて、主記憶装置における
実際の記憶位置を示すものではない。従つて、仮想セグ
メントおよび仮想ページは主記憶装置全体にわたつて通
常は任意の場所に位置して、必要に応じて外部記憶装置
から主記憶装置にスワツプインしたり、主記憶装置から
外部記憶装置にスワツプアウトしたりする。
る多数のコンピユータプログラムが1つの記憶装置を共
有するための様々な手法がこれまで知られている。プロ
グラムによつて共有されている記憶装置は極めて大きな
新記憶容量を必要とする。その容量は、記憶装置の実際
の容量よりも遥かに大きいことが多い。例えば、システ
ムが32ビツトアドレス方式を使用しているとすれば、仮
想記憶のアドレス指定可能な232バイトが使用可能であ
る。こうした仮想記憶空間は、通常、所定数の領域すな
わちセグメントに分けられるものとして考えられてい
る。各々のセグメントは所定数のラインから成るページ
に分けられ、各々のラインは所定数のバイトを有してい
る。従つてセグメントおよびページの指定、すなわち、
仮想記憶に割当てられたアドレスは、プログラムによつ
て任意に指定されるものであつて、主記憶装置における
実際の記憶位置を示すものではない。従つて、仮想セグ
メントおよび仮想ページは主記憶装置全体にわたつて通
常は任意の場所に位置して、必要に応じて外部記憶装置
から主記憶装置にスワツプインしたり、主記憶装置から
外部記憶装置にスワツプアウトしたりする。
主記憶装置内でのセグメントおよびページの位置が可変
のため、仮想アドレスから真の、すなわち実アドレスへ
の変換が必要である。この変換には、通常、主記憶装置
内にあつてページフレームテーブルと呼ばれる一組のア
ドレス変換テーブルを用いる。大きな仮想システムにお
いては、非常に多くのアドレス変換テーブルが使用され
ている。これは様々な方法によつて構成できる。そうし
たあらゆる構成において必須の特徴は、特定の仮想アド
レスが前記テーブルにおいて該仮想アドレスに対する実
アドレス(もしあれば)を含む記憶位置へ論理的に写像
されなければならないということである。
のため、仮想アドレスから真の、すなわち実アドレスへ
の変換が必要である。この変換には、通常、主記憶装置
内にあつてページフレームテーブルと呼ばれる一組のア
ドレス変換テーブルを用いる。大きな仮想システムにお
いては、非常に多くのアドレス変換テーブルが使用され
ている。これは様々な方法によつて構成できる。そうし
たあらゆる構成において必須の特徴は、特定の仮想アド
レスが前記テーブルにおいて該仮想アドレスに対する実
アドレス(もしあれば)を含む記憶位置へ論理的に写像
されなければならないということである。
機能的には、こうしたアドレス変換テーブルの動作は次
の通りである:特定の仮想アドレスの上位ビツトを用い
て前記変換テーブルの特定のセクシヨンをアクセスす
る。使用される上位ビツトは1つの特定のフレームすな
わちセグメントに関係する。そうして次に、下位ビツト
を用いて特定の仮想アドレスがその中に含まれるかどう
か、およびもし含まれていれば、どの実アドレスがそれ
に関連しているかを検査する。仮想フレームアドレスに
よつて指定される各々のページテーブルは、1つのフレ
ームに含まれる全てのページの実記憶位置を含んでい
る。従つて、1つの特定のフレームが例えば16ページに
分けられるとすれば、フレームの各々に対して16個のペ
ージテーブルが存在し、更にページテーブルの特定の組
を指定するエントリを持つた1つのフレームテーブルが
別にある。以上の説明は一般化されており、ページテー
ブルとCPUの生成した仮想アドレスを出発点とするペー
ジテーブルアドレス指定手段とを利用してアドレス変換
を組織化する多くの異なつた方法があることを理解され
たい。後の発明の良好な形態の説明において、基本的に
上述のような機能的構成を有するハツシユアドレステー
ブル(HAT)および逆ページテーブル(IPT)を詳述す
る。
の通りである:特定の仮想アドレスの上位ビツトを用い
て前記変換テーブルの特定のセクシヨンをアクセスす
る。使用される上位ビツトは1つの特定のフレームすな
わちセグメントに関係する。そうして次に、下位ビツト
を用いて特定の仮想アドレスがその中に含まれるかどう
か、およびもし含まれていれば、どの実アドレスがそれ
に関連しているかを検査する。仮想フレームアドレスに
よつて指定される各々のページテーブルは、1つのフレ
ームに含まれる全てのページの実記憶位置を含んでい
る。従つて、1つの特定のフレームが例えば16ページに
分けられるとすれば、フレームの各々に対して16個のペ
ージテーブルが存在し、更にページテーブルの特定の組
を指定するエントリを持つた1つのフレームテーブルが
別にある。以上の説明は一般化されており、ページテー
ブルとCPUの生成した仮想アドレスを出発点とするペー
ジテーブルアドレス指定手段とを利用してアドレス変換
を組織化する多くの異なつた方法があることを理解され
たい。後の発明の良好な形態の説明において、基本的に
上述のような機能的構成を有するハツシユアドレステー
ブル(HAT)および逆ページテーブル(IPT)を詳述す
る。
実際にアドレス変換を行う場合は、システム構成全体の
細部およびページテーブルの使用には関係なく、ページ
・フレームテーブルへの適切な入口点が作成され、与え
られた仮想アドレスを引き数として用いてページテーブ
ルがアクセスされる。そうして、通常は、複数回の記憶
アクセスを経て、ページテーブルの所望のエントリが見
い出される。通常、その時点において、全てのシステム
プロトコルに従つていたかどうかが検査され、もしそう
ならば、要求されたページの実アドレスがページテーブ
ルからアクセスされる。仮想アドレスのバイト部分すな
わち“バイトオフセツト”は、本来、相対アドレスであ
り、実ページおよび仮定ページにおいて同じである。従
つて、仮想アドレスの所望の実ページアドレス部分が、
一旦、変換されれば、バイトオフセツト部分は実ページ
アドレス場所と連結されて主記憶装置の実バイトアドレ
スを与える。
細部およびページテーブルの使用には関係なく、ページ
・フレームテーブルへの適切な入口点が作成され、与え
られた仮想アドレスを引き数として用いてページテーブ
ルがアクセスされる。そうして、通常は、複数回の記憶
アクセスを経て、ページテーブルの所望のエントリが見
い出される。通常、その時点において、全てのシステム
プロトコルに従つていたかどうかが検査され、もしそう
ならば、要求されたページの実アドレスがページテーブ
ルからアクセスされる。仮想アドレスのバイト部分すな
わち“バイトオフセツト”は、本来、相対アドレスであ
り、実ページおよび仮定ページにおいて同じである。従
つて、仮想アドレスの所望の実ページアドレス部分が、
一旦、変換されれば、バイトオフセツト部分は実ページ
アドレス場所と連結されて主記憶装置の実バイトアドレ
スを与える。
現行の仮想記憶システムにおいてよく知られているとお
り、記憶装置をアクセスするたびにいちいち仮想アドレ
スの変換をしなくてもよいように、最近使用された仮想
アドレスから実アドレスへの変換が、本発明においても
使用する登録索引テーブル(DLAT)または変換索引緩衝
機構(TLB)と呼ばれる一組の高速アクセス可能なテー
ブルあるいは高速記憶装置に記憶される。こうしたテー
ブルあるいは緩衝機構は、通常、高速アクセス可能な特
別の記憶装置であり、これは前述のページフレームテー
ブルよりもさらに高速にアクセスできる。これによつ
て、頻繁に使用される仮想アドレスをこのテーブルに記
憶しそれを高速にアクセスすれば、コンピユータの実行
時間を大幅に節約できる。TLBアドレス変換システムの
効率のよさは、所定のプログラム実行においてある仮想
ページがアクセスされた場合それに続いて同じページが
何度もアクセスされるという事実に基づいている。前述
のように、続いて起こるアクセスがページ内の異なつた
ラインおよびバイトに対して行われる場合でさえも、仮
想ページアドレスから実ページアドレスへの変換は、ど
のラインまたはどのバイトがアドレス指定されるかに関
係なく、そのページに関する限り同じである。
り、記憶装置をアクセスするたびにいちいち仮想アドレ
スの変換をしなくてもよいように、最近使用された仮想
アドレスから実アドレスへの変換が、本発明においても
使用する登録索引テーブル(DLAT)または変換索引緩衝
機構(TLB)と呼ばれる一組の高速アクセス可能なテー
ブルあるいは高速記憶装置に記憶される。こうしたテー
ブルあるいは緩衝機構は、通常、高速アクセス可能な特
別の記憶装置であり、これは前述のページフレームテー
ブルよりもさらに高速にアクセスできる。これによつ
て、頻繁に使用される仮想アドレスをこのテーブルに記
憶しそれを高速にアクセスすれば、コンピユータの実行
時間を大幅に節約できる。TLBアドレス変換システムの
効率のよさは、所定のプログラム実行においてある仮想
ページがアクセスされた場合それに続いて同じページが
何度もアクセスされるという事実に基づいている。前述
のように、続いて起こるアクセスがページ内の異なつた
ラインおよびバイトに対して行われる場合でさえも、仮
想ページアドレスから実ページアドレスへの変換は、ど
のラインまたはどのバイトがアドレス指定されるかに関
係なく、そのページに関する限り同じである。
TLBを用いればページフレームテーブル内で必要な変換
を大幅に減ずることができる。従つて、仮想記憶システ
ム全体の性能を格段に高めることができる。
を大幅に減ずることができる。従つて、仮想記憶システ
ム全体の性能を格段に高めることができる。
こうした従来の再配置システムの有する別の問題は、ジ
ヤーナリング問題の処理である。すなわち、現プログラ
ムが実行中でデータを使用している間、外部記憶装置内
にデータの複製を保持しておくことである。従つて、ハ
ードウエアまたはソフトウエアに何らかの障害が発生し
ても、もとのデータの有効な複製は依然として使用可能
である。このような機能は、従来、時間を浪費する複雑
なハードウエアおよびソフトウエアによつて実現されて
おり、要求されるジヤーナリング機能のために再び記憶
装置の性能低下という犠牲を強いることになる。
ヤーナリング問題の処理である。すなわち、現プログラ
ムが実行中でデータを使用している間、外部記憶装置内
にデータの複製を保持しておくことである。従つて、ハ
ードウエアまたはソフトウエアに何らかの障害が発生し
ても、もとのデータの有効な複製は依然として使用可能
である。このような機能は、従来、時間を浪費する複雑
なハードウエアおよびソフトウエアによつて実現されて
おり、要求されるジヤーナリング機能のために再び記憶
装置の性能低下という犠牲を強いることになる。
前述のようにコンピユータ技術においては、長年にわた
つて仮想記憶システムが普及してきた。何らかの再配置
すなわちアドレス変換手段によつて仮想アドレスを実ア
ドレスに変換しなければならないということもまたよく
知られている。こうしたアドレス変換手段においては、
仮想アドレスから実アドレスへの可変換性が保証されて
いなければならない。この主題に関する特許および論文
を全て挙げることはできないが、以下に挙げる従来技術
はアドレス変換機構の代表的な例であつて、かつ本発明
に最も係りの深い従来技術を示すものである。
つて仮想記憶システムが普及してきた。何らかの再配置
すなわちアドレス変換手段によつて仮想アドレスを実ア
ドレスに変換しなければならないということもまたよく
知られている。こうしたアドレス変換手段においては、
仮想アドレスから実アドレスへの可変換性が保証されて
いなければならない。この主題に関する特許および論文
を全て挙げることはできないが、以下に挙げる従来技術
はアドレス変換機構の代表的な例であつて、かつ本発明
に最も係りの深い従来技術を示すものである。
Berglund 他による米国特許第3828327号は、アドレスに
上位ビツトを付加することによつて記憶装置を拡張する
ための従来の記憶制御手法を示している。この上位ビツ
トはプログラムによつて明示されるアドレスの一部では
ないが、割込みモード、I/Oモード等の別のシステムモ
ードによつて制御される。この特許は記憶装置拡張シス
テムに関するものであるが、この記憶装置拡張システム
には同時にアドレス変換ハードウエアが提供されてい
る。Bourke 他による米国特許第4042911号もまたは主記
憶装置拡張の為のシステムが示され、アドレス変換手段
を明らかに含んでいる。しかしながらこれら2つの米国
特許は、TLB及びページフレームテーブルの両方に特別
のロツクビツトを用意するという事だけでなく、仮想ア
ドレス拡張の概念をも開示していない。
上位ビツトを付加することによつて記憶装置を拡張する
ための従来の記憶制御手法を示している。この上位ビツ
トはプログラムによつて明示されるアドレスの一部では
ないが、割込みモード、I/Oモード等の別のシステムモ
ードによつて制御される。この特許は記憶装置拡張シス
テムに関するものであるが、この記憶装置拡張システム
には同時にアドレス変換ハードウエアが提供されてい
る。Bourke 他による米国特許第4042911号もまたは主記
憶装置拡張の為のシステムが示され、アドレス変換手段
を明らかに含んでいる。しかしながらこれら2つの米国
特許は、TLB及びページフレームテーブルの両方に特別
のロツクビツトを用意するという事だけでなく、仮想ア
ドレス拡張の概念をも開示していない。
論文、George Radin,“The 801 Minicomputer",ACM
SIGPLAN NOTICES,第17巻、第4号、1982年4月号、3
9ないし47ページ、には非常に高速の記憶サブシステム
に大きく依存する動作特性を持つた実験的なコンピユー
タに関する一般的な記載が示されている。本発明の再配
置機構はこのようなコンピユータに時に適しているであ
ろう。
SIGPLAN NOTICES,第17巻、第4号、1982年4月号、3
9ないし47ページ、には非常に高速の記憶サブシステム
に大きく依存する動作特性を持つた実験的なコンピユー
タに関する一般的な記載が示されている。本発明の再配
置機構はこのようなコンピユータに時に適しているであ
ろう。
Bourke 他による米国特許第4050084号には、スタツクセ
グメンテーシヨンレジスタを備えたアドレス再配置変換
器を含む記憶構成が示されているこの特許に示される特
別のセグメンテーシヨンレジスタは、本発明で用いるよ
うな拡張された仮想アドレスの記憶というよりはむしろ
主記憶装置内の物理ブロツクに割り当てられた実アドレ
スの記憶を目的としている。
グメンテーシヨンレジスタを備えたアドレス再配置変換
器を含む記憶構成が示されているこの特許に示される特
別のセグメンテーシヨンレジスタは、本発明で用いるよ
うな拡張された仮想アドレスの記憶というよりはむしろ
主記憶装置内の物理ブロツクに割り当てられた実アドレ
スの記憶を目的としている。
Mitchell 他による米国特許第4251860号には、拡大な仮
想アドレス記憶を実現するための仮想アドレス指定装置
を有する記憶アドレス指定システムが示されている。こ
の特許は、仮想アドレスをセグメント部とオフセツト部
とに分割することを開示している。しかしながら、セグ
メント部およびこれに係るセグメントレジスタはアドレ
ス分割を行う適切な手段とし用いられるものであつて、
本発明のアドレス変換機構とはその動作が全く異なる。
想アドレス記憶を実現するための仮想アドレス指定装置
を有する記憶アドレス指定システムが示されている。こ
の特許は、仮想アドレスをセグメント部とオフセツト部
とに分割することを開示している。しかしながら、セグ
メント部およびこれに係るセグメントレジスタはアドレ
ス分割を行う適切な手段とし用いられるものであつて、
本発明のアドレス変換機構とはその動作が全く異なる。
Birney 他による米国特許第4037215号に示されているシ
ステムは、特定の実記憶ブロツクを指定するために一連
のセグメンテーシヨンレジスタを利用するという点にお
いて、前記米国特許第4050094号に極めて類似してい
る。この特許は、さらに特別のセグメンテーシヨンレジ
スタに組み込まれる“読取り専用”有効ビツトの使用に
関した記載もある。こうしたビツトは、本発明の再配置
機構のハードウエアに設けられる特殊目的のロツクビツ
トとは全く異なるものである。
ステムは、特定の実記憶ブロツクを指定するために一連
のセグメンテーシヨンレジスタを利用するという点にお
いて、前記米国特許第4050094号に極めて類似してい
る。この特許は、さらに特別のセグメンテーシヨンレジ
スタに組み込まれる“読取り専用”有効ビツトの使用に
関した記載もある。こうしたビツトは、本発明の再配置
機構のハードウエアに設けられる特殊目的のロツクビツ
トとは全く異なるものである。
Gordi他による米国特許第4077059号には、ジヤーナリン
グおよびコピーバツクを容易に行うための特別の制御手
段を備えた階層記憶システムが示されている。この特許
には、複数の複式記憶装置もまた示されている。これに
よつて、現行データを一方の記憶装置に保持して、後続
のジヤーナリングオペレーシヨンおよびコピーバツクオ
ペーレーシヨンを容易に行うために、変更を他方の記憶
装置に通知する。この特許のハードウエアおよび制御手
段は本発明のロツクビツトシステムとは全く異なるもの
である。
グおよびコピーバツクを容易に行うための特別の制御手
段を備えた階層記憶システムが示されている。この特許
には、複数の複式記憶装置もまた示されている。これに
よつて、現行データを一方の記憶装置に保持して、後続
のジヤーナリングオペレーシヨンおよびコピーバツクオ
ペーレーシヨンを容易に行うために、変更を他方の記憶
装置に通知する。この特許のハードウエアおよび制御手
段は本発明のロツクビツトシステムとは全く異なるもの
である。
Hogan 他による米国特許第4053948号には、登録索引テ
ーブル(DLAT)の各エントリに対してカウンタを含む特
別の手段を備えたアドレス交換システムが示されてい
る。
ーブル(DLAT)の各エントリに対してカウンタを含む特
別の手段を備えたアドレス交換システムが示されてい
る。
Hoffman 他による米国特許第4218743号は、1BMシステム
/38の再配置アーキテクチヤに関して以下に列挙する多
数の特許の例である。この特許は仮想記憶コンピユータ
システムにおいてI/Oが処理するアドレス指定を簡単に
する方法を示唆している。仮想記憶システムの課題に係
る他の特許は第4170039号、第4251860号、第4277862
号、および第4215402号である。
/38の再配置アーキテクチヤに関して以下に列挙する多
数の特許の例である。この特許は仮想記憶コンピユータ
システムにおいてI/Oが処理するアドレス指定を簡単に
する方法を示唆している。仮想記憶システムの課題に係
る他の特許は第4170039号、第4251860号、第4277862
号、および第4215402号である。
Cordi 他による米国特許第4020466号もまた、ジヤーナ
リングおよびコピーバツク手順を容易に行うための特別
の手段を組み込んだ記憶システムを示すものである。こ
の特許は、本発明のロツクビツト制御手段とは全く関係
がない。
リングおよびコピーバツク手順を容易に行うための特別
の手段を組み込んだ記憶システムを示すものである。こ
の特許は、本発明のロツクビツト制御手段とは全く関係
がない。
Lawlor による米国特許第3942155号は仮想記憶システム
のセグメント区分形式を開示しているが、この特許で使
用されているセグメント化は、仮想アドレスを拡張する
ために利用される本発明のセグメント化オペレーシヨン
とは全く異なるものである。
のセグメント区分形式を開示しているが、この特許で使
用されているセグメント化は、仮想アドレスを拡張する
ために利用される本発明のセグメント化オペレーシヨン
とは全く異なるものである。
種々のハツシユ方式を用いて仮想記憶変換機構をアクセ
スする例として米国特許第4215402号を挙げておく。
スする例として米国特許第4215402号を挙げておく。
C.課題を解決するための手段 本発明の手法に従つて、アドレス変換および全体的な記
憶制御機能に対してハードウエアおよびソフトウエアを
十分に利用した仮想記憶サブシステムが提供される。シ
ステム内の全てのデータおよびプログラムは、それらが
どこに所在するのが、それらが一時間なものであるの
か、カタログされているのが、共有されているのかまた
は私用のものなのが、回復可能なのかまたは回復不能な
のか、ということに関係なく、、統一的にアドレス指定
される。このことは、例えば、キヤツシユ内に存在する
私用の回復不能な計算データがキヤツシユの速度で回復
できることを意味する。一方さらに、データがたとえ共
有されいても、キーを保持する所定のプログラムによる
アクセクもまたキヤツシユの速度で行われる。
憶制御機能に対してハードウエアおよびソフトウエアを
十分に利用した仮想記憶サブシステムが提供される。シ
ステム内の全てのデータおよびプログラムは、それらが
どこに所在するのが、それらが一時間なものであるの
か、カタログされているのが、共有されているのかまた
は私用のものなのが、回復可能なのかまたは回復不能な
のか、ということに関係なく、、統一的にアドレス指定
される。このことは、例えば、キヤツシユ内に存在する
私用の回復不能な計算データがキヤツシユの速度で回復
できることを意味する。一方さらに、データがたとえ共
有されいても、キーを保持する所定のプログラムによる
アクセクもまたキヤツシユの速度で行われる。
こうして、このような統一的タイプのアドレス指定すな
わち“単一レベル記憶”アドレス指定を可能にしたここ
に開示する記憶サブシステムの構成は、32ビツトの仮想
アドレスを使用する。この仮想アドレスはCPUによって
生成されるもので、そのうちの4ビツトで組になつた16
個の12ビツトセグメントレジスタを指定する。選択され
たセグメントレジスタの内容と仮想アドレスの残りの28
ビツトを連結して40ビツトの有効アドレスを生成する。
従つて、各セグメントは、228バイトまでのデータを含
むことができることが容易に理解されるであろう。この
新しい40ビツトのアドレスは依然として仮想アドレスで
あることに留意されたい。実アドレスが存在するか否か
を判断するために高速の部分連想式変換索引緩衝機構を
初めにアクセスすることによつてこの40ビツトのアドレ
スが変換される。実アドレスが存在しない場合は、他の
変換システムと同じく、ページテーブルを参照してアド
レス変換を実施する。
わち“単一レベル記憶”アドレス指定を可能にしたここ
に開示する記憶サブシステムの構成は、32ビツトの仮想
アドレスを使用する。この仮想アドレスはCPUによって
生成されるもので、そのうちの4ビツトで組になつた16
個の12ビツトセグメントレジスタを指定する。選択され
たセグメントレジスタの内容と仮想アドレスの残りの28
ビツトを連結して40ビツトの有効アドレスを生成する。
従つて、各セグメントは、228バイトまでのデータを含
むことができることが容易に理解されるであろう。この
新しい40ビツトのアドレスは依然として仮想アドレスで
あることに留意されたい。実アドレスが存在するか否か
を判断するために高速の部分連想式変換索引緩衝機構を
初めにアクセスすることによつてこの40ビツトのアドレ
スが変換される。実アドレスが存在しない場合は、他の
変換システムと同じく、ページテーブルを参照してアド
レス変換を実施する。
本構成の別の固有の特徴は、変換索引緩衝機構だけでな
くさらにページフレームテーブル内にも、ロツキング、
ジヤーナリングおよび許可を検査するための特殊ロツク
ビツトを設けることである。
くさらにページフレームテーブル内にも、ロツキング、
ジヤーナリングおよび許可を検査するための特殊ロツク
ビツトを設けることである。
各々の実アドレスに対して変換索引緩衝機構およびペー
ジフレームテーブルに複数のロツクビツト(実施例では
16個)が設けられることに留意されたい。1ページ内の
各ラインに対して1つのロツキビツトが与えられ、シス
テム内のジヤーナリング制御のために使用される。アク
セス手段およびソフトウエア手段がさらにシステムに設
けられ、それによつてこうしたビツトはハードウエアだ
けでなくソフトウエアによるアクセスも可能である。
ジフレームテーブルに複数のロツクビツト(実施例では
16個)が設けられることに留意されたい。1ページ内の
各ラインに対して1つのロツキビツトが与えられ、シス
テム内のジヤーナリング制御のために使用される。アク
セス手段およびソフトウエア手段がさらにシステムに設
けられ、それによつてこうしたビツトはハードウエアだ
けでなくソフトウエアによるアクセスも可能である。
本発明の主な目的は非常に広大の仮想アドレス空間を有
する仮想記憶サブシステムを提供することである。
する仮想記憶サブシステムを提供することである。
本発明の他の目的は全ての記憶オペレーシヨンにおいて
“単一レベル記憶装置”として機能するような記憶サブ
システムを提供することである。
“単一レベル記憶装置”として機能するような記憶サブ
システムを提供することである。
本発明の他の目的は正しくない変換テーブルを使用した
ことによるアドレス指定エラーが発生しにくいような記
憶サブシステムを提供することである。
ことによるアドレス指定エラーが発生しにくいような記
憶サブシステムを提供することである。
本発明の他の目的はそうした仮想記憶サブシステム内で
ジヤーナリングおよび関連するデータ保護を極めて容易
に行う制御機構を提供することである。
ジヤーナリングおよび関連するデータ保護を極めて容易
に行う制御機構を提供することである。
本発明の他の目的はソフトウエアおよびハードウエアの
いずれにとつても使用可能であるそうした制御機構を提
供することである。
いずれにとつても使用可能であるそうした制御機構を提
供することである。
本発明のこうした目的、特徴、および利点は、添付図面
に図示するように以下に示す発明の好ましい実施例の詳
細な詳述から明らかになるであろう。
に図示するように以下に示す発明の好ましい実施例の詳
細な詳述から明らかになるであろう。
D.実施例 本発明の目的はここで開示される記憶制御装置によつて
一般的に達成される。この記憶制御装置は、前に一般的
な形で述べたアドレス変換アーキテクチヤを実施するホ
ストCPU記憶チヤネルと接続する。アドレス変換アーキ
テクチヤは後でさらに詳しく説明する。変換機構は、16
メガバイトまでの容量を有する記憶装置とのインターフ
エースに要する論理を含む。記憶装置はインタリーブし
てもしなくてもよいし、スタテイツク型でもダイナミツ
ク型でも構わない。変換機構は機能的に3つのセクシヨ
ンに分けられる(第1図参照)。CPU記憶チヤネルイン
ターフエース(CSC)10の論理は共通フロントエンド(C
FE)のセクシヨン12を有する。セクシヨン12は記憶チヤ
ネルからアドレス変換論理14および記憶制御論理16へ適
切なプロトコルを提供する。記憶チヤネルとの通信は全
てこの論理によつて取り扱われる。アドレス変換論理
は、記憶チヤネルより受け取つた仮想アドレスを、記憶
装置のアクセスに用いられる実アドレスに、変換する。
この論理は16個のコングルエンスクラスを備えた2ウエ
イのセツトアソシアテイブとして構成された変換索引緩
衝機構(TLB)を含む。必要な場合に主記憶装置にある
ページテーブルから自動的にTLBエントリを再ロードす
る論理が設けられる。記憶制御論理16はアドレス変換論
理14から記憶装置へのインターフエースを提供する。こ
の論理はダイナミツクメモリリフレツシユ制御もまた備
えている。
一般的に達成される。この記憶制御装置は、前に一般的
な形で述べたアドレス変換アーキテクチヤを実施するホ
ストCPU記憶チヤネルと接続する。アドレス変換アーキ
テクチヤは後でさらに詳しく説明する。変換機構は、16
メガバイトまでの容量を有する記憶装置とのインターフ
エースに要する論理を含む。記憶装置はインタリーブし
てもしなくてもよいし、スタテイツク型でもダイナミツ
ク型でも構わない。変換機構は機能的に3つのセクシヨ
ンに分けられる(第1図参照)。CPU記憶チヤネルイン
ターフエース(CSC)10の論理は共通フロントエンド(C
FE)のセクシヨン12を有する。セクシヨン12は記憶チヤ
ネルからアドレス変換論理14および記憶制御論理16へ適
切なプロトコルを提供する。記憶チヤネルとの通信は全
てこの論理によつて取り扱われる。アドレス変換論理
は、記憶チヤネルより受け取つた仮想アドレスを、記憶
装置のアクセスに用いられる実アドレスに、変換する。
この論理は16個のコングルエンスクラスを備えた2ウエ
イのセツトアソシアテイブとして構成された変換索引緩
衝機構(TLB)を含む。必要な場合に主記憶装置にある
ページテーブルから自動的にTLBエントリを再ロードす
る論理が設けられる。記憶制御論理16はアドレス変換論
理14から記憶装置へのインターフエースを提供する。こ
の論理はダイナミツクメモリリフレツシユ制御もまた備
えている。
本発明は、主として、よく知られたコンピユータ回路、
装置、および機能ユニツトの新規な組合せと機能動作と
に関するものであつて、それらの特定の詳細な構造に係
るものではない。従つてこうしたよく知られた回路、装
置、およびブロツクの構造、制御および、配置は本発明
に関係する部分だけを詳細に示した容易に理解できるブ
ロツク表現および機能図の形で図面に例図されている。
これは、構造的な詳細によつて本発明が不明瞭になつて
しまうことのないようにするためである。この構造的な
詳細はその機能的な記述だけで当業者には容易に明らか
なものである。本発明に係るそうした特徴を強調するた
めに、さらに、これらのシステムの様々な部分は適切に
整理され機能的に記述されている。以下の記述により、
当業者は開示された記憶サブシステムの実施可能性を理
解でき、さらに、様々なコンピユータアーキテクチヤの
任意の1つにそれを組み込むことができるであろう。
装置、および機能ユニツトの新規な組合せと機能動作と
に関するものであつて、それらの特定の詳細な構造に係
るものではない。従つてこうしたよく知られた回路、装
置、およびブロツクの構造、制御および、配置は本発明
に関係する部分だけを詳細に示した容易に理解できるブ
ロツク表現および機能図の形で図面に例図されている。
これは、構造的な詳細によつて本発明が不明瞭になつて
しまうことのないようにするためである。この構造的な
詳細はその機能的な記述だけで当業者には容易に明らか
なものである。本発明に係るそうした特徴を強調するた
めに、さらに、これらのシステムの様々な部分は適切に
整理され機能的に記述されている。以下の記述により、
当業者は開示された記憶サブシステムの実施可能性を理
解でき、さらに、様々なコンピユータアーキテクチヤの
任意の1つにそれを組み込むことができるであろう。
第1図は本アドレス変換システムの前述の機能部分を示
す。本アドレス変換システムは超LSI技術によつて1つ
の論理いツプに集積できるであろう。
す。本アドレス変換システムは超LSI技術によつて1つ
の論理いツプに集積できるであろう。
本システムでアドレスが変換されるか(仮想アドレスと
して取扱われるか)実アドレスとして取扱われるかは、
CPU記憶チヤネル(CSC)上の変換モードビツト(Tビツ
ト)の値によつて制御される。CSCに要求を出す各装置
は要求の度に変換モードビツトの値を制御する。Tビツ
トはCPUが供給する記憶装置アクセス命令の適切なフイ
ールドから取り出される。I/O装置による記憶装置アク
セスの場合は、Tビツトの値はアダプタ接続機能によつ
て生成される。Tビツトが1の場合は、記憶装置アドレ
ス(命令取出し、データロード、データ記憶)は変換さ
れる。Tビツトが0の場合は、記憶装置アドレスは実ア
ドレスとして取扱われる。
して取扱われるか)実アドレスとして取扱われるかは、
CPU記憶チヤネル(CSC)上の変換モードビツト(Tビツ
ト)の値によつて制御される。CSCに要求を出す各装置
は要求の度に変換モードビツトの値を制御する。Tビツ
トはCPUが供給する記憶装置アクセス命令の適切なフイ
ールドから取り出される。I/O装置による記憶装置アク
セスの場合は、Tビツトの値はアダプタ接続機能によつ
て生成される。Tビツトが1の場合は、記憶装置アドレ
ス(命令取出し、データロード、データ記憶)は変換さ
れる。Tビツトが0の場合は、記憶装置アドレスは実ア
ドレスとして取扱われる。
ここに開示されたアーキテクチヤにおいては、変換が行
われない記憶装置要求にとつては、記憶装置保護は有効
ではない。
われない記憶装置要求にとつては、記憶装置保護は有効
ではない。
参照および変更の記録は、変換が行われるかどうかには
関係なく全ての記憶装置にとつて有効である。
関係なく全ての記憶装置にとつて有効である。
アドレス変換が行われる場合は、変換オペレーシヨンは
以下に示すように論理的に進められる。
以下に示すように論理的に進められる。
また以下に示すような厳密な論理的シーケンスではなく
異なる各部分の機能を並行して実行するようにしてもよ
い。
異なる各部分の機能を並行して実行するようにしてもよ
い。
本アドレス変換機構は“単一レベル記憶”アドレス指定
構造を実現する。ここに開示された良好な実施例ではア
ドレス変換は以下に示す事柄を支援する。
構造を実現する。ここに開示された良好な実施例ではア
ドレス変換は以下に示す事柄を支援する。
1.複数の独立した仮想アドレス空間 2.4ギガバイトのアドレス空間 3.要求時ページング 4.2048バイトまたは4096バイトのページ 5.記憶装置保護 6.命令およびデータのための共有セグメント 7.128バイトのラインのジヤーナリングおよびロツキン
グ 8.16メガバイトまでアドレス指定可能な実記憶 9.実ページごとの参照ビツトおよび変更ビツト 10.実アドレスロード、TLBエントリ無効化、および記憶
装置例外アドレスのためのハードウエア支援 記憶装置は、各々256メガバイトの容量を有する4096個
のセグメントから成る、単一の40ビツト仮想アドレス空
間に写像されているかのごとく取り扱われる。CSCより
受け取つた32ビツトのアドレスのうち上位4ビツトを用
いて16個のセグメントレジスタのうちの1つを選択し、
選択されたセグメントレジスタの内容12ビツトと、有効
アドレスの残りの28ビツトとを連結することによつて、
32ビツトのアドレスを40ビツトの(長形式仮想)アドレ
スに変換する。そうして変換機構が記憶装置アクセスの
ために40ビツトの仮想アドレスを実アドレスに変換す
る。容易にわかるように、ハードウエアをわずかに変更
するだけで仮想アドレスの大きさを変更することも可能
である。
グ 8.16メガバイトまでアドレス指定可能な実記憶 9.実ページごとの参照ビツトおよび変更ビツト 10.実アドレスロード、TLBエントリ無効化、および記憶
装置例外アドレスのためのハードウエア支援 記憶装置は、各々256メガバイトの容量を有する4096個
のセグメントから成る、単一の40ビツト仮想アドレス空
間に写像されているかのごとく取り扱われる。CSCより
受け取つた32ビツトのアドレスのうち上位4ビツトを用
いて16個のセグメントレジスタのうちの1つを選択し、
選択されたセグメントレジスタの内容12ビツトと、有効
アドレスの残りの28ビツトとを連結することによつて、
32ビツトのアドレスを40ビツトの(長形式仮想)アドレ
スに変換する。そうして変換機構が記憶装置アクセスの
ために40ビツトの仮想アドレスを実アドレスに変換す
る。容易にわかるように、ハードウエアをわずかに変更
するだけで仮想アドレスの大きさを変更することも可能
である。
アドレス指定可能な記憶装置の容量は、常に、4ギガバ
イトのみである。言い換えれば、16個のセグメントレジ
スタによつて各々256メガバイトの容量を有する16個の
セグメントが指定可能である。従つてオペレーテイング
システムは適切な値をセグメントレジスタにロードする
ことによつて複数の独立した仮想アドレス空間を生成す
ることができる。限られた場合には、このようにして、
256個の全く独立した4ギガバイトアドレス空間を生成
できるかも知れないが、(中核コードのような)幾つか
のセグメントが複数のアドレス空間で共有される可能性
の方が高い。
イトのみである。言い換えれば、16個のセグメントレジ
スタによつて各々256メガバイトの容量を有する16個の
セグメントが指定可能である。従つてオペレーテイング
システムは適切な値をセグメントレジスタにロードする
ことによつて複数の独立した仮想アドレス空間を生成す
ることができる。限られた場合には、このようにして、
256個の全く独立した4ギガバイトアドレス空間を生成
できるかも知れないが、(中核コードのような)幾つか
のセグメントが複数のアドレス空間で共有される可能性
の方が高い。
IBMシステム/370と同様な記憶装置保護が2Kバイトまた
は4Kバイトのページ単位で備えられる。256メガバイト
のセグメントごとに独立して指定される保護キー(S/37
0のPSWにあるキーに等価なもの)によつて記憶保護およ
び取出し保護が達成される。なお、異なるセグメントレ
ジスタに同一の値(セグメント識別子)をロードしてお
くことによつて、異なるタスク間でセグメントを共有す
ることが可能となる(特にタスク開通信の場合などに有
益である)。
は4Kバイトのページ単位で備えられる。256メガバイト
のセグメントごとに独立して指定される保護キー(S/37
0のPSWにあるキーに等価なもの)によつて記憶保護およ
び取出し保護が達成される。なお、異なるセグメントレ
ジスタに同一の値(セグメント識別子)をロードしてお
くことによつて、異なるタスク間でセグメントを共有す
ることが可能となる(特にタスク開通信の場合などに有
益である)。
持続記憶クラスに対するサポートは、各仮想ページに関
連する一組のロツクビツトによつて与えられる。このロ
ツクビツトは記憶装置保護の細分性を記憶装置の“ライ
ン”にまで効果的に拡張し(2Kページの場合は128バイ
ト、4Kページの場合は256バイト)、こうしてオペレー
テイングシステムは持続変数の変更を検知しそれを自動
的にジヤーナリングすることができる。ここで云う持続
記憶クラスは、その内容が例えばデイスクフアイル記憶
装置に永続的に記憶されているものを意味する。
連する一組のロツクビツトによつて与えられる。このロ
ツクビツトは記憶装置保護の細分性を記憶装置の“ライ
ン”にまで効果的に拡張し(2Kページの場合は128バイ
ト、4Kページの場合は256バイト)、こうしてオペレー
テイングシステムは持続変数の変更を検知しそれを自動
的にジヤーナリングすることができる。ここで云う持続
記憶クラスは、その内容が例えばデイスクフアイル記憶
装置に永続的に記憶されているものを意味する。
以下の用語は本明細書で使用され、明瞭かつ簡便のため
にここで定義される。
にここで定義される。
バイトインデツクス 2Kバイトページの場合、ページまたはページフレーム内
で1つのバイトを識別するためのOないし2047(11ビツ
ト)の範囲の数値[4Kバイトページの場合は0ないし40
95(12ビツト)]。バイトインデツクスは有効アドレス
の下位11ビツト[12ビツト]から取り出される。
で1つのバイトを識別するためのOないし2047(11ビツ
ト)の範囲の数値[4Kバイトページの場合は0ないし40
95(12ビツト)]。バイトインデツクスは有効アドレス
の下位11ビツト[12ビツト]から取り出される。
変更ビツト 各ページフレームに関連するビツト。
そのフレームに対して記憶装置参照(書込みのみ)が成
功した場合は常に“1"にセツトされる。
功した場合は常に“1"にセツトされる。
有効アドレス 記憶チヤネル上の装置によつて生成される32ビツトの記
憶チヤツネルアドレス。このアドレスは、命令取出し、
データロード、またはデータ記憶の際にホストCPUによ
つて生成できる。また、DMAアドレスのように、記憶チ
ヤネル上のI/O装置によつて生成することもできる。
憶チヤツネルアドレス。このアドレスは、命令取出し、
データロード、またはデータ記憶の際にホストCPUによ
つて生成できる。また、DMAアドレスのように、記憶チ
ヤネル上のI/O装置によつて生成することもできる。
ライン 128バイトごとの境界を有する1ページの128バイト部
分、これは1つのロツクビツトによつて制御される記憶
容量である。
分、これは1つのロツクビツトによつて制御される記憶
容量である。
ロツクビツト 持続記憶セグメントの各ページに関連した16ビツトのう
ちの1つ。各ロツクビツトは記憶装置の1つのラインに
関連する。トランザクシヨンID、書込みビツト、および
ロツクビツトの値を組合せて、1つのラインに対し、持
続記憶セグメントにおいて記憶装置アクセス要求が許可
されているかまたは禁止されているかを決定する。
ちの1つ。各ロツクビツトは記憶装置の1つのラインに
関連する。トランザクシヨンID、書込みビツト、および
ロツクビツトの値を組合せて、1つのラインに対し、持
続記憶セグメントにおいて記憶装置アクセス要求が許可
されているかまたは禁止されているかを決定する。
ページ 2048バイト[または4096バイト]の境界で区切られた20
48バイト[または4096バイト]の記憶単位。“ページ”
は正しくは仮想記憶に関し、一方、“ページフレーム”
は実記憶に関するものであるが、歴史的に“ページ”は
仮想記憶および実記憶のいずれにも使用されている。
48バイト[または4096バイト]の記憶単位。“ページ”
は正しくは仮想記憶に関し、一方、“ページフレーム”
は実記憶に関するものであるが、歴史的に“ページ”は
仮想記憶および実記憶のいずれにも使用されている。
ページフレーム 2048バイト[または4096バイト]の境界で区切られた20
48バイト〔または4096バイト]の記憶単位。ページはペ
ージフレーム内または外部記憶装置(すなわちデイス
ク)上に存在する。
48バイト〔または4096バイト]の記憶単位。ページはペ
ージフレーム内または外部記憶装置(すなわちデイス
ク)上に存在する。
ページテーブル 主記憶装置内のハツシユアンカーテーブルおよび逆ペー
ジテーブルのエントリを組合せたもので、仮想アドレス
から対応する実アドレスへの変換に用いられる(ここで
はHAT/IPTとも云う)。
ジテーブルのエントリを組合せたもので、仮想アドレス
から対応する実アドレスへの変換に用いられる(ここで
はHAT/IPTとも云う)。
保護キー 各セグメントレジスタにある1ビツトの値であつて、現
在実行中のプロセスが所与のセグメント内のデータをア
クセスできるかどうかを示す。この保護キーは機能的に
はIBMシステム/370のPSWキーと似ているが、アドレス指
定可能な全ての記憶域に対して大域的に適用されるので
はなく、各セグメントに対して個々に適用される。
在実行中のプロセスが所与のセグメント内のデータをア
クセスできるかどうかを示す。この保護キーは機能的に
はIBMシステム/370のPSWキーと似ているが、アドレス指
定可能な全ての記憶域に対して大域的に適用されるので
はなく、各セグメントに対して個々に適用される。
実アドレス 変換オペレーシヨンの結果、実ページインデツクス(10
ビツトないし13ビツト)と有効アドレスの下位11ビツト
[または12ビツト]を連結したもの(実ページインデツ
クス||バイトインデツクス)。
ビツトないし13ビツト)と有効アドレスの下位11ビツト
[または12ビツト]を連結したもの(実ページインデツ
クス||バイトインデツクス)。
実ページインデツクス 実記憶のページフレームを識別するためのOないし8192
(13ビツト)の範囲の数値。この値を10ビツトまで減ら
すことによつて、実記憶の最大容量を2Kバイトのページ
で2Mバイトまでに制限する場合もある。
(13ビツト)の範囲の数値。この値を10ビツトまで減ら
すことによつて、実記憶の最大容量を2Kバイトのページ
で2Mバイトまでに制限する場合もある。
参照ビツト 各ページフレームに関連するビツト。そのフレームに対
して記憶装置参照(読取りまたは書込み)が成功した場
合は常に“1"にセツトされる。
して記憶装置参照(読取りまたは書込み)が成功した場
合は常に“1"にセツトされる。
セグメントID 256Mバイトの仮想記憶セグメントを識別するための0な
いし4095(12ビツト)の範囲の数値。セグメントIDと仮
想ページインデツクスとを連結して、40ビツト仮想アド
レス空間の1ページを指定する。
いし4095(12ビツト)の範囲の数値。セグメントIDと仮
想ページインデツクスとを連結して、40ビツト仮想アド
レス空間の1ページを指定する。
記憶装置キー 特定の1ページに関連した保護レベルを識別するため
の、各TLBエントリ内の2ビツトの値。このキーは、機
能的にはシステム/370の各ページに関連した記憶装置キ
ーに似ている。
の、各TLBエントリ内の2ビツトの値。このキーは、機
能的にはシステム/370の各ページに関連した記憶装置キ
ーに似ている。
TLB 変換索引緩衝機構。TLBは仮想−実写像を含むハードウ
エアである(常にこの写像の一部のみをTLBに含ませる
場合もある)。この写像の他に、各TLBエントリは、変
換ID、記憶装置キー、およびロツクビツトのような、そ
れに関連するページに係る他の情報を含む。
エアである(常にこの写像の一部のみをTLBに含ませる
場合もある)。この写像の他に、各TLBエントリは、変
換ID、記憶装置キー、およびロツクビツトのような、そ
れに関連するページに係る他の情報を含む。
トランザクシヨンID 現在TLBエントリにロードされている一組のロツクビツ
トの“所有者”を識別するための0ないし255(8ビツ
ト)の範囲の数値。
トの“所有者”を識別するための0ないし255(8ビツ
ト)の範囲の数値。
仮想アドレス セグメントIDと有効アドレスの下位28ビツトとを連結す
ることによつて本アドレス変換機構内で形成される40ビ
ツトのアドレス値。(すなわち、セグメントID||仮想ペ
ージインデツクス||バイトインデツクス)。
ることによつて本アドレス変換機構内で形成される40ビ
ツトのアドレス値。(すなわち、セグメントID||仮想ペ
ージインデツクス||バイトインデツクス)。
仮想ページインデツクス 2Kバイトページの場合、仮想記憶セグメント内の1ペー
ジを識別するための0ないし131072(17ビツト)の範囲
の数値[4Kバイトページの場合は0ないし65536(16ビ
ツト)]。仮想ページインデツクスは有効アドレスのビ
ツト4〜20[4〜19]から取り出される。
ジを識別するための0ないし131072(17ビツト)の範囲
の数値[4Kバイトページの場合は0ないし65536(16ビ
ツト)]。仮想ページインデツクスは有効アドレスのビ
ツト4〜20[4〜19]から取り出される。
記号||は連結を表わす。
本アドレス変換機構を支援するのに要するハードウエア
を以下に説明する。実施態様によつてはフイールド幅を
変更することもできることに留意されたい。
を以下に説明する。実施態様によつてはフイールド幅を
変更することもできることに留意されたい。
TLBは任意の個数のエントリから成り、各エントリは或
るページの仮装アドレスからその実アドレスへの変換を
制御する。
るページの仮装アドレスからその実アドレスへの変換を
制御する。
TLBの詳細な構成は実施態様に依存する。2つの実施態
様が可能である。セグメントID||仮想ページインデツク
スによつてアドレス指定され、かつ、実記憶フレームに
あたり1つのエントリを含む内容アドレス記憶装置(CA
M)。CAMエントリのインデツクス(序数)は実ページイ
ンデツクスに等しい。仮装ページインデツクスの下位ビ
ツトの或る数値によつてアドレス指定されるセツトアソ
シアテイブTLB。実ページインデツクスはTLBエントリの
1つのフイールドに含まれる。
様が可能である。セグメントID||仮想ページインデツク
スによつてアドレス指定され、かつ、実記憶フレームに
あたり1つのエントリを含む内容アドレス記憶装置(CA
M)。CAMエントリのインデツクス(序数)は実ページイ
ンデツクスに等しい。仮装ページインデツクスの下位ビ
ツトの或る数値によつてアドレス指定されるセツトアソ
シアテイブTLB。実ページインデツクスはTLBエントリの
1つのフイールドに含まれる。
TLBの形に対する唯一の制約は、非CAM型の実施が少なく
とも2ウエイのセツトアソシアテイブでなければならな
いことである。各TLBエントリは、IOR命令およびIOW命
令を用いて、個別に、CPUから読み取られたり書き込ま
れたりする。TLBエントリは以下に示すフイールドを含
む。
とも2ウエイのセツトアソシアテイブでなければならな
いことである。各TLBエントリは、IOR命令およびIOW命
令を用いて、個別に、CPUから読み取られたり書き込ま
れたりする。TLBエントリは以下に示すフイールドを含
む。
32ビツトの入力有効アドレス(CPUまたはI/O装置より)
は、初めに、セグメント識別子を有効アドレスに連結す
ることによつて40ビツトの仮想アドレスに拡張される。
仮想アドレスは、次に、等価な実アドレスへの変換のた
めに変換ハードウエアに供給される。仮想アドレスは以
下に示すプロセスよつて実アドレスに変換される。
は、初めに、セグメント識別子を有効アドレスに連結す
ることによつて40ビツトの仮想アドレスに拡張される。
仮想アドレスは、次に、等価な実アドレスへの変換のた
めに変換ハードウエアに供給される。仮想アドレスは以
下に示すプロセスよつて実アドレスに変換される。
入力有効アドレスの上位4ビツトを用いてセグメントテ
ーブルを検索し、16個のセグメントのうちの1つを選択
する。12ビツトのセグメント識別子、“特殊セグメン
ト”ビツト、およびキービツトは、選択されたセグメン
トレジスタから得られる。12ビツトのセグメント識別子
は仮想アドレスの生成のために用いる。特殊セグメント
ビツトおよびキービツトは次の示すアクセス有効化のた
めに用いる。第2図はセグメントテーブルの形式を示し
ている。
ーブルを検索し、16個のセグメントのうちの1つを選択
する。12ビツトのセグメント識別子、“特殊セグメン
ト”ビツト、およびキービツトは、選択されたセグメン
トレジスタから得られる。12ビツトのセグメント識別子
は仮想アドレスの生成のために用いる。特殊セグメント
ビツトおよびキービツトは次の示すアクセス有効化のた
めに用いる。第2図はセグメントテーブルの形式を示し
ている。
12ビツトのセグメント識別子は入力有効アドレスのビツ
ト4ないしビツト31に連結されて40ビツトの仮想アドレ
スを生成する。有効アドレスのうち、2Kページの場合は
下位11ビツト、または4Kページの場合は、12ビツトが、
選択された実ページのためのバイトアドレスとして使用
される。これらのビツトは変換プロセスによつて変更さ
れることはない。仮想アドレスの残りの29(28)ビツト
は、次に、変換ハードウエアに与えられる。第3図は、
セグメント識別子および記憶装置有効アドレスを用いて
行われる仮想アドレスの生成を示す。
ト4ないしビツト31に連結されて40ビツトの仮想アドレ
スを生成する。有効アドレスのうち、2Kページの場合は
下位11ビツト、または4Kページの場合は、12ビツトが、
選択された実ページのためのバイトアドレスとして使用
される。これらのビツトは変換プロセスによつて変更さ
れることはない。仮想アドレスの残りの29(28)ビツト
は、次に、変換ハードウエアに与えられる。第3図は、
セグメント識別子および記憶装置有効アドレスを用いて
行われる仮想アドレスの生成を示す。
本明細書に示すアドレス変換システムは、最後に使用さ
れた仮想アドレス(本実施例では32)の変換を含む変換
索引緩衝機構(TLB)を、利用する。変換のために新し
い仮想アドレスがTLBに与えられる場合に、ハードウエ
アを用いてTLBエントリを主記憶ページテーブルから更
新する。変換ハードウエアの簡単化されたデータフロー
を第4図に示し、各TLBの形式を第5図に示す。
れた仮想アドレス(本実施例では32)の変換を含む変換
索引緩衝機構(TLB)を、利用する。変換のために新し
い仮想アドレスがTLBに与えられる場合に、ハードウエ
アを用いてTLBエントリを主記憶ページテーブルから更
新する。変換ハードウエアの簡単化されたデータフロー
を第4図に示し、各TLBの形式を第5図に示す。
システムは、1LTBあたり16個のエントリを備えた2つの
TLB(16個のコングルエンスクラスを備えた2ウエイの
セツトアソシアテイブ)を利用する。仮想ページインデ
ツクスの下位4ビツトが同時に両方のTLBをアドレス指
定するに用いられる。各TLBのアドレスタグエントリ
は、仮想ページインデツクスの残りのビツト(2Kページ
の場合は25ビツト、4Kページの場合は24ビツト)に連結
されたセグメント識別子と、比較される。2つの比較の
いずれかが等しくかつそのTLBエントリが有効(有効ビ
ツトによつて示される)ならば、関連するTLBの所与の
仮想アドレスのための変換情報を含む。
TLB(16個のコングルエンスクラスを備えた2ウエイの
セツトアソシアテイブ)を利用する。仮想ページインデ
ツクスの下位4ビツトが同時に両方のTLBをアドレス指
定するに用いられる。各TLBのアドレスタグエントリ
は、仮想ページインデツクスの残りのビツト(2Kページ
の場合は25ビツト、4Kページの場合は24ビツト)に連結
されたセグメント識別子と、比較される。2つの比較の
いずれかが等しくかつそのTLBエントリが有効(有効ビ
ツトによつて示される)ならば、関連するTLBの所与の
仮想アドレスのための変換情報を含む。
選択されたTLBエントリ内の実ページ番号フイールド(R
PN)は主記憶装置にある実ページの番号を含む。実ペー
ジ番号の所与の仮想アドレスに写像される。これが特殊
セグメントでない場合は、アクセスが許可される前に、
TLBエントリからのキービツトとセグメントレジスタか
らのキービツトとを用いて、記憶装置保護違反の有無を
検査する。セグメントレジスタの特殊ビツトで示される
ようにこれが特殊セグメントである場合は、アクセスが
許可される前に、ロツクビツト処理が実行される。記憶
装置機構は、特殊セグメント処理と同様、後で説明す
る。アクセスが許可されれば、主記憶装置がアクセスさ
れて、そのページに関連する参照および変更ビツトが更
新される。参照および変更ビツトのセツトも後で説明す
る。
PN)は主記憶装置にある実ページの番号を含む。実ペー
ジ番号の所与の仮想アドレスに写像される。これが特殊
セグメントでない場合は、アクセスが許可される前に、
TLBエントリからのキービツトとセグメントレジスタか
らのキービツトとを用いて、記憶装置保護違反の有無を
検査する。セグメントレジスタの特殊ビツトで示される
ようにこれが特殊セグメントである場合は、アクセスが
許可される前に、ロツクビツト処理が実行される。記憶
装置機構は、特殊セグメント処理と同様、後で説明す
る。アクセスが許可されれば、主記憶装置がアクセスさ
れて、そのページに関連する参照および変更ビツトが更
新される。参照および変更ビツトのセツトも後で説明す
る。
2つのTLBの比較から一致が得られない場合は、アドレ
ス変換論理は主記憶装置にあるページテーブルエントリ
から不在TLBエントリの再ロードを試みる。主記憶ペー
ジテーブルは実記憶に常駐し、論理的に2つの部分すな
わちハツシユアンカーテーブル(HAT)と逆ページテー
ブル(IPT)から成る。HATはハツシングによつて任意の
仮想アドレスを任意の実ページに写像できる。
ス変換論理は主記憶装置にあるページテーブルエントリ
から不在TLBエントリの再ロードを試みる。主記憶ペー
ジテーブルは実記憶に常駐し、論理的に2つの部分すな
わちハツシユアンカーテーブル(HAT)と逆ページテー
ブル(IPT)から成る。HATはハツシングによつて任意の
仮想アドレスを任意の実ページに写像できる。
逆ページテーブル(IPT)は各々の実ページフレームに
関連する仮想アドレス(もしあれば)を指定する。IPT
は実ページ番号によつて指標されるエントリのアレイと
して構成され、各エントリはそれに関連するセグメント
IDおよび仮想ページ番号を含む。
関連する仮想アドレス(もしあれば)を指定する。IPT
は実ページ番号によつて指標されるエントリのアレイと
して構成され、各エントリはそれに関連するセグメント
IDおよび仮想ページ番号を含む。
IPTは実ページ番号によつて指標されるので、所与の実
アドレスに対する仮想アドレスを決定するのは極めて容
易である。所与の仮想アドレスに対する実アドレスを効
率よく決定するためには、ハツシングによつて仮想アド
レスをアンカー点に写像すること、およびエントリを連
鎖してハツシユ衝突を解決すること、が必要である。こ
れは当業者には容易に理解されるであろう。
アドレスに対する仮想アドレスを決定するのは極めて容
易である。所与の仮想アドレスに対する実アドレスを効
率よく決定するためには、ハツシングによつて仮想アド
レスをアンカー点に写像すること、およびエントリを連
鎖してハツシユ衝突を解決すること、が必要である。こ
れは当業者には容易に理解されるであろう。
ハツシユアンカーテーブル(HAT)は論理的にはIPTから
分離されている(ハードウエアの効率化という理由から
物理的にはIPTに組み込まれているが)。第6図に示す
ように、ハツシユ関数は仮想アドレスをHAT内の1つの
エントリのインデツクスに変換し、そのエントリが同じ
HATインデツクスを持つたIPTエントリ(実ページ)の連
鎖における最初のエントリを指定する。仮想アドレスを
一致を求めてIPTエントリの連鎖を探索した場合、所望
の仮想アドレスに対するIPTインデツクス(従つて実ア
ドレス)が得られるか、又は、一致が見出されることな
く(ページが写像されていない)探索が終了する。本実
施例では実記憶の各ページに対して1つのHATおよびIPT
エントリが存在する。
分離されている(ハードウエアの効率化という理由から
物理的にはIPTに組み込まれているが)。第6図に示す
ように、ハツシユ関数は仮想アドレスをHAT内の1つの
エントリのインデツクスに変換し、そのエントリが同じ
HATインデツクスを持つたIPTエントリ(実ページ)の連
鎖における最初のエントリを指定する。仮想アドレスを
一致を求めてIPTエントリの連鎖を探索した場合、所望
の仮想アドレスに対するIPTインデツクス(従つて実ア
ドレス)が得られるか、又は、一致が見出されることな
く(ページが写像されていない)探索が終了する。本実
施例では実記憶の各ページに対して1つのHATおよびIPT
エントリが存在する。
仮想アドレスから実アドレスへの変換は、初めに、有効
アドレスの選択された下位ビツトとセグメント識別子か
らのビツトとを排他的にオアすることによつて、達成さ
れる。この“ハツシユされた”アドレスはHATへの指標
付けに用いられる。選択されたHATエントリは所与の仮
想アドレスのための、探索されるべきIPTエントリのリ
ストの開始点へのポインタである。探索されるべきIPT
エトリのリスト内のエントリは、次の探索すべきIPTエ
ントリを指定する各エントリ内のポインタによつてリン
クされている。IPTエントリ中のフラグビツトを用いて
探索連鎖の終了点が示される。ハツシングは、一般に幾
つかの異なつた有効アドレスに対して同じHATアドレス
を生成するので、探索されるべきIPT連鎖には仮想アド
レスエントリが幾つか含まれていることに留意された
い。
アドレスの選択された下位ビツトとセグメント識別子か
らのビツトとを排他的にオアすることによつて、達成さ
れる。この“ハツシユされた”アドレスはHATへの指標
付けに用いられる。選択されたHATエントリは所与の仮
想アドレスのための、探索されるべきIPTエントリのリ
ストの開始点へのポインタである。探索されるべきIPT
エトリのリスト内のエントリは、次の探索すべきIPTエ
ントリを指定する各エントリ内のポインタによつてリン
クされている。IPTエントリ中のフラグビツトを用いて
探索連鎖の終了点が示される。ハツシングは、一般に幾
つかの異なつた有効アドレスに対して同じHATアドレス
を生成するので、探索されるべきIPT連鎖には仮想アド
レスエントリが幾つか含まれていることに留意された
い。
ハードウエアの効率化という理由から、HATおよびIPT
は、1つのインデクシング構造でアドレス指定できる1
つの構造に組み合わされる。組み合わされたHATおよびI
PTには、実記憶の各ページに対して1つのエントリが存
在する。例えば、2Kバイトのページで構成された1Mバイ
トの実記憶は512のエントリを要し、4Kバイトのページ
で構成された512Kバイトの実記憶は128のエントリを要
する。組み合わされたHATおよびIPTのエントリの形式
は、第7図に示す。HAT/IPTは各エントリに対して16バ
イトを有し、テーブルサイズの倍数のアドレス場所から
始まる。
は、1つのインデクシング構造でアドレス指定できる1
つの構造に組み合わされる。組み合わされたHATおよびI
PTには、実記憶の各ページに対して1つのエントリが存
在する。例えば、2Kバイトのページで構成された1Mバイ
トの実記憶は512のエントリを要し、4Kバイトのページ
で構成された512Kバイトの実記憶は128のエントリを要
する。組み合わされたHATおよびIPTのエントリの形式
は、第7図に示す。HAT/IPTは各エントリに対して16バ
イトを有し、テーブルサイズの倍数のアドレス場所から
始まる。
各エントリの第1ワードはアドレスタグを含む。アドレ
スタグはセグメント識別子と仮想ページイデツクスとを
連結して作られる。2Kページの場合は、アドレスタグは
29ビツト、4Kページの場合は28ビツトであることに留意
されたい。4Kページサイズが使用されたとすれば、28ビ
ツトのアドレスタグがビツト3ないしビツト30に記憶さ
れる。ビツト2は予約されている。第1ワードは、さら
に、2ビツトキーを含む。2ビツトキーは後に説明する
記憶装置保護のために使用される。
スタグはセグメント識別子と仮想ページイデツクスとを
連結して作られる。2Kページの場合は、アドレスタグは
29ビツト、4Kページの場合は28ビツトであることに留意
されたい。4Kページサイズが使用されたとすれば、28ビ
ツトのアドレスタグがビツト3ないしビツト30に記憶さ
れる。ビツト2は予約されている。第1ワードは、さら
に、2ビツトキーを含む。2ビツトキーは後に説明する
記憶装置保護のために使用される。
第2ワードは、HATポインタ、IPTポインタ、および各ポ
インタのための有効ビツトを含む。ポインタの使用につ
いては後で説明する。
インタのための有効ビツトを含む。ポインタの使用につ
いては後で説明する。
第3ワードは、書込み保護、ロツクビツト、および特殊
セグメントのためのTIDを含む。これらのフイールドの
使用についても後で説明する。
セグメントのためのTIDを含む。これらのフイールドの
使用についても後で説明する。
第4ワードはTLBの再ロードには使用されず、将来の使
用に備えて予約されている。
用に備えて予約されている。
HAT/IPTベースアドレスは変換制御レジスタ(後で説明
する)内の1つのフイールドであり、これを用いて主記
憶ページテーブルの開始アドレスを計算する。HAT/IPT
ベースアドレスに含まれる値は、記憶装置およびページ
のサイズに依存して表1に示す量で乗算されて、それに
よつて、主記憶ページテーブルの開始アドレスが得られ
る。表1は、さらに、記憶装置サイズおよびページサイ
ズの各々に対するHAT/IPTのサイズも示す。
する)内の1つのフイールドであり、これを用いて主記
憶ページテーブルの開始アドレスを計算する。HAT/IPT
ベースアドレスに含まれる値は、記憶装置およびページ
のサイズに依存して表1に示す量で乗算されて、それに
よつて、主記憶ページテーブルの開始アドレスが得られ
る。表1は、さらに、記憶装置サイズおよびページサイ
ズの各々に対するHAT/IPTのサイズも示す。
HATアドレス生成 前述のように、HATインデツクスは、セグメント識別子
から選択されたビツトと有効アドレスからのビツトと排
他的オアして計算される。使用されるビツト数は、結果
インデツクスがHAT/IPTのn個のエントリのうちの1つ
を選択するように選ぶ。このハツシング操作を第6図に
示す。HATインデツクス生成に用いるビツトを表2に列
挙する。選択されたHATエントリの記憶アドレスは、 うHAT/IPTベースアドレス+HATインデツクス||0100 として計算される。
から選択されたビツトと有効アドレスからのビツトと排
他的オアして計算される。使用されるビツト数は、結果
インデツクスがHAT/IPTのn個のエントリのうちの1つ
を選択するように選ぶ。このハツシング操作を第6図に
示す。HATインデツクス生成に用いるビツトを表2に列
挙する。選択されたHATエントリの記憶アドレスは、 うHAT/IPTベースアドレス+HATインデツクス||0100 として計算される。
選択されたHATインデツクスがアクセスされて、IPT探索
連鎖が空いているかどうかを判定するために空きビツト
が検査される。もし空きビツトが1ならば、所与の仮想
アドレスへ写像されるページは存在せず、後で説明する
ように“ページ不在”が報告される。もし、空きビツト
が0ならば、IPT探索連鎖にエントリが存在してIPT内の
エントリが探索される。そのとき、選択されたHATエン
トリのHATポインタフイールドが、IPT探索連鎖の開始点
へのポインタとして使用される。
連鎖が空いているかどうかを判定するために空きビツト
が検査される。もし空きビツトが1ならば、所与の仮想
アドレスへ写像されるページは存在せず、後で説明する
ように“ページ不在”が報告される。もし、空きビツト
が0ならば、IPT探索連鎖にエントリが存在してIPT内の
エントリが探索される。そのとき、選択されたHATエン
トリのHATポインタフイールドが、IPT探索連鎖の開始点
へのポインタとして使用される。
前にアクセスされたHATポインタは、IPTへの開始インデ
ツクスとして使用される。最初のIPTエントリの記憶装
置アドレスは、 HAT/IPTベースアドレス+HATポインタ||0000 として計算される。
ツクスとして使用される。最初のIPTエントリの記憶装
置アドレスは、 HAT/IPTベースアドレス+HATポインタ||0000 として計算される。
IPT内の最初のエントリに対してアドレスが行われ、そ
のアドレスタグと所与の仮想アドレスとの比較が行われ
る。両者が一致すれば、仮想アドレスに割り当てられた
実ページが見つかつたことになり、不在TLBエントリを
再ロードすることができる。TLBエントリの再ロードは
後で説明する。両者が一致しなければ、IPTポインタを
アクセスしてIPT探索を続行する。IPTポインタは、 HAT/IPTベースアドレス+HATポインタ||0100 として計算される。次にIPTポインタがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビツトが検査される。最終ビツ
トが0ならば、付加的なエントリが存在し探索処理を続
行する。最終ビツトが1ならば、探索されるべき付加的
なIPTエントリは存在せず、“ページ不在”が報告され
る。
のアドレスタグと所与の仮想アドレスとの比較が行われ
る。両者が一致すれば、仮想アドレスに割り当てられた
実ページが見つかつたことになり、不在TLBエントリを
再ロードすることができる。TLBエントリの再ロードは
後で説明する。両者が一致しなければ、IPTポインタを
アクセスしてIPT探索を続行する。IPTポインタは、 HAT/IPTベースアドレス+HATポインタ||0100 として計算される。次にIPTポインタがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビツトが検査される。最終ビツ
トが0ならば、付加的なエントリが存在し探索処理を続
行する。最終ビツトが1ならば、探索されるべき付加的
なIPTエントリは存在せず、“ページ不在”が報告され
る。
探索されるべき付加的なIPTエントリが存在すれば、探
索のための次のIPTエントリのアドレスは、 HAT/IPTベースアドレス+HATポインタ||0000 として計算される。このアドレスを用いてIPTの次のエ
ントリをアクセスし、選択されたエントリに含まれるア
ドレスタグと所与の仮想アドレスとの比較を行う。両者
が一致すれば、仮想アドレスに割り当てられた実ページ
が見つかり、不在TLBエントリを再ロードすることがで
きる。両者が一致しなければ、探索されるべき次のエン
トリへのポインタをアクセスして探索処理を続行する。
次のエントリへのポインタのアドレスは、 HAT/IPTベースアドレス+IPTポインタ||0100 として計算される。次に、このワードがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビツトが検査される。最終ビツ
トが1ならば、探索されるべき付加的なIPTエントリは
存在せず、“ページ不在”が報告される。最終ビツトが
0ならば、付加的なエントリが存在し探索処理を続行す
る。IPTエントリのアドレスタグが所与の仮想アドレス
と一致するか、または、一致が見出されずかつ最終ビツ
トが探索連鎖内でそれ以上のエントリの存在はないとい
うことを示すまでは、現IPTポインタを用いて前述の処
理によつて後続のエントリアクセスが行われる。
索のための次のIPTエントリのアドレスは、 HAT/IPTベースアドレス+HATポインタ||0000 として計算される。このアドレスを用いてIPTの次のエ
ントリをアクセスし、選択されたエントリに含まれるア
ドレスタグと所与の仮想アドレスとの比較を行う。両者
が一致すれば、仮想アドレスに割り当てられた実ページ
が見つかり、不在TLBエントリを再ロードすることがで
きる。両者が一致しなければ、探索されるべき次のエン
トリへのポインタをアクセスして探索処理を続行する。
次のエントリへのポインタのアドレスは、 HAT/IPTベースアドレス+IPTポインタ||0100 として計算される。次に、このワードがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビツトが検査される。最終ビツ
トが1ならば、探索されるべき付加的なIPTエントリは
存在せず、“ページ不在”が報告される。最終ビツトが
0ならば、付加的なエントリが存在し探索処理を続行す
る。IPTエントリのアドレスタグが所与の仮想アドレス
と一致するか、または、一致が見出されずかつ最終ビツ
トが探索連鎖内でそれ以上のエントリの存在はないとい
うことを示すまでは、現IPTポインタを用いて前述の処
理によつて後続のエントリアクセスが行われる。
以下の記載は、仮想アドレスからIPTエントリのインデ
ツクス(従つて対応する実アドレス)への変換に要する
ステツプを要約したものである。
ツクス(従つて対応する実アドレス)への変換に要する
ステツプを要約したものである。
(1)仮想ページ番号の下位13ビツトを選択する。これ
は、4Kバイトのページが使用されていれば有効アドレス
のビツト7ないし19であり、2Kバイトのページが使用さ
れていればビツト8ないし20である。
は、4Kバイトのページが使用されていれば有効アドレス
のビツト7ないし19であり、2Kバイトのページが使用さ
れていればビツト8ないし20である。
(2)有効アドレスのビツト0ないし3で指定されるセ
グメントレジスタの12ビツトの内容を選択する。左端に
“0"ビツトを連結して13ビツトのフイールドを形成す
る。
グメントレジスタの12ビツトの内容を選択する。左端に
“0"ビツトを連結して13ビツトのフイールドを形成す
る。
(3)ステツプ(1)および(2)からの2つの13ビツ
トフイールドを排他的オアして13ビツトのハツシユアン
カーテーブルエントリ番号を形成する。
トフイールドを排他的オアして13ビツトのハツシユアン
カーテーブルエントリ番号を形成する。
(4)ステツプ(3)の値を左方に4ビツトだけシフト
する。これは物理的に所望のHATエントリを含むIPTエン
トリの開始点のバイトオフセツトを形成する。
する。これは物理的に所望のHATエントリを含むIPTエン
トリの開始点のバイトオフセツトを形成する。
(5)HAT/IPTエントリのアドレスを計算する。これ
は、ステツプ(4)の結果とIPTの開始アドレスとを加
算することによつてなされる。IPTが、2のべき乗バイ
トの境界の所から始まるように制約されていれば、この
“加算”はORまたは連結で置き換えてもよい。
は、ステツプ(4)の結果とIPTの開始アドレスとを加
算することによつてなされる。IPTが、2のべき乗バイ
トの境界の所から始まるように制約されていれば、この
“加算”はORまたは連結で置き換えてもよい。
(6)空きIPT連鎖を検査する。HAT/IPTエントリの“E"
(“空き”)ビツトを検査する。
(“空き”)ビツトを検査する。
E=1ならば、IPT連鎖は空いている(HATポインタは無
効):探索が不成功に終る;仮想ページは写像されてい
ない。
効):探索が不成功に終る;仮想ページは写像されてい
ない。
(7)IPT連鎖が空いていなければ、アドレス指定され
たHAT/IPTエントリからHATポインタを選択する。この13
ビツトの値は、同じハツシユ結果[ステツプ(3)]を
有するエントリの連鎖内の最初のIPTエントリのインデ
ツクスである。
たHAT/IPTエントリからHATポインタを選択する。この13
ビツトの値は、同じハツシユ結果[ステツプ(3)]を
有するエントリの連鎖内の最初のIPTエントリのインデ
ツクスである。
(8)IPTインデツクスの値を左方に4ビツトだけシフ
トする。これは、仮想アドレスの一致を検査すべきIPT
エントリの開始点をバイトオフセツトを形成する。
トする。これは、仮想アドレスの一致を検査すべきIPT
エントリの開始点をバイトオフセツトを形成する。
(9)IPTエントリのアドレスを計算する。これは、ス
テツプ(8)の結果とIPTの開始アドレスとを加算する
ことによつてなされる。IPTが、2のべき乗バイトの境
界の所から始まるように制約されていれば、この“加
算”はORまたは連結で置き換えてもよい。
テツプ(8)の結果とIPTの開始アドレスとを加算する
ことによつてなされる。IPTが、2のべき乗バイトの境
界の所から始まるように制約されていれば、この“加
算”はORまたは連結で置き換えてもよい。
(10)仮想アドレスの比較。セグメントIDをIPTエント
リからの仮想ページ番号(28ビツトまたは29ビツト)に
連結したものと、有効アドレスで指定されたセグメント
レジスタの内容[ステツプ(2)]を有効アドレスの仮
想ページ番号に連結したものと、を比較する。
リからの仮想ページ番号(28ビツトまたは29ビツト)に
連結したものと、有効アドレスで指定されたセグメント
レジスタの内容[ステツプ(2)]を有効アドレスの仮
想ページ番号に連結したものと、を比較する。
(11)一致すれば、探索は成功裏に終る。このエントリ
は所望の仮想アトドレスに対応するものである。そのイ
ンデツクス番号は要求された実ページ番号に等しい。
は所望の仮想アトドレスに対応するものである。そのイ
ンデツクス番号は要求された実ページ番号に等しい。
(12)一致しなければ、連鎖の終りを検査する。IPTエ
ントリの“L"(“最終”)ビツトを検査する。L=1な
らば、そこがこの連鎖における最終のIPTエントリであ
る。探索は不成功に終り、仮想ページは写像されていな
い。
ントリの“L"(“最終”)ビツトを検査する。L=1な
らば、そこがこの連鎖における最終のIPTエントリであ
る。探索は不成功に終り、仮想ページは写像されていな
い。
(13)連鎖の終りでなければ、IPTエントリからIPTポイ
ンタフイールドを選択する。この13ビツトの値は、検査
されるべき、次のIPTエントリのインデツクスである。
ンタフイールドを選択する。この13ビツトの値は、検査
されるべき、次のIPTエントリのインデツクスである。
(14)ステツプ(8)へ進む。
TLB再ロード 所与の仮想アドレスに一致するアドレスタグフイールド
を持つたIPTエントリが見つかると、不在TLBエントリが
再ロードされる。再ロードは、不在仮想アドレスのコン
グルエンスクラスに対して最も長い間使用されなかつた
TLBエントリを選択することならびに選択されたエント
リに所与の仮想アドレスタグフイールド、対応する実ペ
ージ番号およびキービツトをロードすること、から成
る。もしこれが、セグメントレジスタ内の特殊ビツトに
よつて指示されるような特殊セグメントであるならば、
書込みビツト、TID、およびロツクビツトも再ロードさ
れる。
を持つたIPTエントリが見つかると、不在TLBエントリが
再ロードされる。再ロードは、不在仮想アドレスのコン
グルエンスクラスに対して最も長い間使用されなかつた
TLBエントリを選択することならびに選択されたエント
リに所与の仮想アドレスタグフイールド、対応する実ペ
ージ番号およびキービツトをロードすること、から成
る。もしこれが、セグメントレジスタ内の特殊ビツトに
よつて指示されるような特殊セグメントであるならば、
書込みビツト、TID、およびロツクビツトも再ロードさ
れる。
各コングルエンスクラスで最も長い間使用されなかつた
TLBエントリを決定するのにハードウエアが使用され
る。仮想アドレスの下位ビツトはコングルエンスクラス
を確定するので、あとは、どのTLBが選択されたエント
リを置換すべきであつたのかを決定するだけでよい。そ
うして、どのTLBが、所与のコングルエンスクラスにお
いて最も長い間参照されなかつたエントリを有していた
かという事に基づいて、2つのTLBのうちの一方が選択
される。
TLBエントリを決定するのにハードウエアが使用され
る。仮想アドレスの下位ビツトはコングルエンスクラス
を確定するので、あとは、どのTLBが選択されたエント
リを置換すべきであつたのかを決定するだけでよい。そ
うして、どのTLBが、所与のコングルエンスクラスにお
いて最も長い間参照されなかつたエントリを有していた
かという事に基づいて、2つのTLBのうちの一方が選択
される。
所与のコングルエンクラスに対して最も長い間使用され
なかつたTLBエントリがひとたび決定されれば、選択さ
れたTLBエントリを再ロードすることができる。アドレ
スタグフイールドおよびキービツトは、主記憶装置に含
まれるIPTエントリから再ロードされる。このエントリ
のアドレスはIPT探索プロセスにおいて事前に計算され
ている。探索プロセス中に計算されたIPTインデツクス
は実ページ番号に等しいので、この値を用いてTLBの実
ページ番号フイールドを再ロードする。セグメントレジ
スタ内の特殊ビツトによつて示されるように、これが特
殊セグメントである場合は、TIDおよびロツクビツトも
再ロードされる。TIDおよびロツクビツトは、選択され
たIPTエントリの第3ワードをアクセスすることによつ
て再ロードされる。
なかつたTLBエントリがひとたび決定されれば、選択さ
れたTLBエントリを再ロードすることができる。アドレ
スタグフイールドおよびキービツトは、主記憶装置に含
まれるIPTエントリから再ロードされる。このエントリ
のアドレスはIPT探索プロセスにおいて事前に計算され
ている。探索プロセス中に計算されたIPTインデツクス
は実ページ番号に等しいので、この値を用いてTLBの実
ページ番号フイールドを再ロードする。セグメントレジ
スタ内の特殊ビツトによつて示されるように、これが特
殊セグメントである場合は、TIDおよびロツクビツトも
再ロードされる。TIDおよびロツクビツトは、選択され
たIPTエントリの第3ワードをアクセスすることによつ
て再ロードされる。
記憶装置アクセス制御 本アドレス変換機構は2つのアクセス制御機構を提供す
る。第1の機構は非特殊セグメント用で、実記憶の各ペ
ージに対する読取り/書込み保護を与える。第2の機構
は特殊セグメント専用で、持続データタイプを支援する
のに用いられる。これらのアクセス制御機構は変換され
たアクセスにだけ適用する。もしいずれかの機構によつ
て違反が検知されれば、記憶装置アクセスは終了して、
後で説明するように例外が報告される。
る。第1の機構は非特殊セグメント用で、実記憶の各ペ
ージに対する読取り/書込み保護を与える。第2の機構
は特殊セグメント専用で、持続データタイプを支援する
のに用いられる。これらのアクセス制御機構は変換され
たアクセスにだけ適用する。もしいずれかの機構によつ
て違反が検知されれば、記憶装置アクセスは終了して、
後で説明するように例外が報告される。
記憶装置保護処理 記憶装置保護処理は非特殊セグメントにだけ適用する。
TLBによつてひとたび仮想アドレスと実アドレスとの対
応がとられると、適正なアクセス権限を保証するため、
要求されたアクセスが検証される。この機能によつて各
ページはアクセスなし、読取り専用、または読取り/書
込みとしてマークされる。
TLBによつてひとたび仮想アドレスと実アドレスとの対
応がとられると、適正なアクセス権限を保証するため、
要求されたアクセスが検証される。この機能によつて各
ページはアクセスなし、読取り専用、または読取り/書
込みとしてマークされる。
アクセス制御は、選択されたセグメントレジスタ内の1
ビツトの保護キー、TLBエントリ内の2ビツトキー、お
よびアクセスがロードオペレーシヨンであるのか記憶オ
ペレーシヨンであるのか、ということに関係している。
アクセスは表3に示すようにして制御される。
ビツトの保護キー、TLBエントリ内の2ビツトキー、お
よびアクセスがロードオペレーシヨンであるのか記憶オ
ペレーシヨンであるのか、ということに関係している。
アクセスは表3に示すようにして制御される。
もしアクセスが許可されなければ、変換は終了して保護
例外がCPUに報告される。
例外がCPUに報告される。
ロツクビツト処理 ロツクビツト処理は、選択されたセグメントレジスタ内
の特殊ビツトによつて示される特殊セグメントだけに適
用される。特殊セグメントは持続データを支援するのに
用いられる。ロツクビツト処理によつて、オペレーテイ
ングシステムは持続変数の変更を自動的に監視するこ
と、変更をジヤーナルに記録すること、陰のページを生
成すること、および、データベースの一貫性確保のため
の他の処理を実行すること、が可能である。ロツクビツ
トは、また保護の単位を記憶装置保護機能によるページ
サイズ(2Kバイトまたは4Kバイト)から、128バイトま
たは256バイトのラインまで、細かくする。2Kページの
場合は128バイトの保護単位が実現され、4Kページの場
合は256バイトの保護単位が実現される。2Kページの場
合は有効アドレスのビツト[21:24]によつて個々のラ
インのロツクビツトが選択され、4Kページの場合は有効
アドレスのビツト[20:23]によつて個々のラインのロ
ツクビツトが選択される。
の特殊ビツトによつて示される特殊セグメントだけに適
用される。特殊セグメントは持続データを支援するのに
用いられる。ロツクビツト処理によつて、オペレーテイ
ングシステムは持続変数の変更を自動的に監視するこ
と、変更をジヤーナルに記録すること、陰のページを生
成すること、および、データベースの一貫性確保のため
の他の処理を実行すること、が可能である。ロツクビツ
トは、また保護の単位を記憶装置保護機能によるページ
サイズ(2Kバイトまたは4Kバイト)から、128バイトま
たは256バイトのラインまで、細かくする。2Kページの
場合は128バイトの保護単位が実現され、4Kページの場
合は256バイトの保護単位が実現される。2Kページの場
合は有効アドレスのビツト[21:24]によつて個々のラ
インのロツクビツトが選択され、4Kページの場合は有効
アドレスのビツト[20:23]によつて個々のラインのロ
ツクビツトが選択される。
アクセス制御は、選択されたTLBエントリ内の1ビツト
の書込みキー、選択されたラインのロツクビツト値、TI
D比較、およびそのアクセスがロードオペレーシヨンで
あるのか記憶オペレーシヨンであるのか、ということに
関係している。アクセスは表4に示すようにして制御さ
れる。
の書込みキー、選択されたラインのロツクビツト値、TI
D比較、およびそのアクセスがロードオペレーシヨンで
あるのか記憶オペレーシヨンであるのか、ということに
関係している。アクセスは表4に示すようにして制御さ
れる。
ロツクビツト違反の報告にはデータ記憶例外が使用され
る。この違反は必ずしもエラーを表わすものではなく、
単に、新たに変更されたラインがオペレーテイングシス
テムによつて処理されるべきである、という事を表わす
ものでよい。
る。この違反は必ずしもエラーを表わすものではなく、
単に、新たに変更されたラインがオペレーテイングシス
テムによつて処理されるべきである、という事を表わす
ものでよい。
参照および変更ビツトは実記憶の各ページごとに備えら
れる。これらのビツトは本アドレス変換機構の外部のア
レイの中にあつて、記憶装置アクセスの度に要求に応じ
て更新される。参照ビツトは、読取りまたは書込みのた
めに対応する実ページがアクセスされると、1にセツト
される。変更ビツトは、対応するページが書き込まれる
と、セツトされる。
れる。これらのビツトは本アドレス変換機構の外部のア
レイの中にあつて、記憶装置アクセスの度に要求に応じ
て更新される。参照ビツトは、読取りまたは書込みのた
めに対応する実ページがアクセスされると、1にセツト
される。変更ビツトは、対応するページが書き込まれる
と、セツトされる。
関連するCPUからのI/O読取り命令(IOR)およびI/O書込
み命令(IOW)によつて、参照および変更ビツトをアク
セスすることができる。実記録の各ページのための参照
および変更ビツトは、I/OベースアドレスレジスタにX
‘1000'を加えたものによつて指定されるI/Oアドレスの
所から始まる。所与のページのための参照および変更ビ
ツトのI/Oアドレスは次式によつて与えられる。
み命令(IOW)によつて、参照および変更ビツトをアク
セスすることができる。実記録の各ページのための参照
および変更ビツトは、I/OベースアドレスレジスタにX
‘1000'を加えたものによつて指定されるI/Oアドレスの
所から始まる。所与のページのための参照および変更ビ
ツトのI/Oアドレスは次式によつて与えられる。
I/Oアドレス=I/Oベースアドレスレジスタによつて指定
されたアドレス +X‘1001' +ページ番号 各I/Oアドレスは実記憶の1ページに対する参照ビツト
および変更ビツトを含む。参照ビツトおよび変更ビツト
の形式を第8図に示す。
されたアドレス +X‘1001' +ページ番号 各I/Oアドレスは実記憶の1ページに対する参照ビツト
および変更ビツトを含む。参照ビツトおよび変更ビツト
の形式を第8図に示す。
参照ビツトおよび変更ビツトへのアクセスによつて転送
されるデータは以下のように定義される。
されるデータは以下のように定義される。
ビツト0:29 ゼロ。
ビツト30 参照ビツト。対応する実ページが読取りまたは書込みの
ためにアクセスされると、1にセツトされる。
ためにアクセスされると、1にセツトされる。
ビツト31 変更ビツト。対応する実ページが書込みのためにアクセ
スされると、1にセツトされる。
スされると、1にセツトされる。
参照ビツトおよび変更ビツトはハードウエアによつて初
期設定されることはない。それらはシステムソフトウエ
アのIOW命令によつて初期設定およびクリアが行われ
る。参照ビツトおよび変更ビツトは、それらをセツトま
たはクリアするプログラムを実行することによつてセツ
トすることができるので、参照ビツトおよび変更ビツト
をクリアまたはセツトする書込みの後に読取りが続いて
も、必ずしも書き込まれたのと同じデータを読み取る必
要はない。
期設定されることはない。それらはシステムソフトウエ
アのIOW命令によつて初期設定およびクリアが行われ
る。参照ビツトおよび変更ビツトは、それらをセツトま
たはクリアするプログラムを実行することによつてセツ
トすることができるので、参照ビツトおよび変更ビツト
をクリアまたはセツトする書込みの後に読取りが続いて
も、必ずしも書き込まれたのと同じデータを読み取る必
要はない。
制御レジスタ 記憶装置の構成、ページテーブルアドレス、およびI/O
ベースアドレスを定めるために用いる制御レジスタが幾
つかある。これらのレジスタはCPUからのI/O読取り(IO
R)命令およびI/O書込み(IOW)命令によつて初期制定
(ロード)される。それらの構成および形式を第9図な
いし第18図に示す。これらのレジスタは監視プオグラム
状態になつて初めてアクセス可能となる。
ベースアドレスを定めるために用いる制御レジスタが幾
つかある。これらのレジスタはCPUからのI/O読取り(IO
R)命令およびI/O書込み(IOW)命令によつて初期制定
(ロード)される。それらの構成および形式を第9図な
いし第18図に示す。これらのレジスタは監視プオグラム
状態になつて初めてアクセス可能となる。
I/Oベースアドレスレジスタは、I/Oアドレスのどの64K
ブロツクが変換システムに割り当てられているのかを指
定する。I/Oベースアドレスは、I/Oベースアドレスレジ
スタに含まれる値に65536(X‘10000')を乗じたもの
に等しい。I/Oベースアドレスレジスタの形式を第9図
に示す。
ブロツクが変換システムに割り当てられているのかを指
定する。I/Oベースアドレスは、I/Oベースアドレスレジ
スタに含まれる値に65536(X‘10000')を乗じたもの
に等しい。I/Oベースアドレスレジスタの形式を第9図
に示す。
I/Oベースアドレスレジスタは以下のように定義され
る。
る。
ビツト0:23 予約されている。
ビツト24:31 I/Oベースアドレス。この8ビツトの値は、I/Oアドレス
のどの64Kバイトのブロツクが変換システムに割り当て
られているかを定義する。すなわち、これら8ビツトは
変換システムによつて認識されたI/Oアドレスの最上位
の8ビツトである。“RAM指定レジスタ”は、RAMサイズ
と、RAM開始アドレスと、リフレツシユシートと、パリ
テイチエツクまたはエラー訂正符号(ECC)が使用され
ているか否かとを規定する。ECCおよびパリテイチエツ
ク手法は本発明の一部を形成せず、またその内容も周知
であるから、これ以上説明しない。RAM指定レジスタの
形式は第10図に示す。
のどの64Kバイトのブロツクが変換システムに割り当て
られているかを定義する。すなわち、これら8ビツトは
変換システムによつて認識されたI/Oアドレスの最上位
の8ビツトである。“RAM指定レジスタ”は、RAMサイズ
と、RAM開始アドレスと、リフレツシユシートと、パリ
テイチエツクまたはエラー訂正符号(ECC)が使用され
ているか否かとを規定する。ECCおよびパリテイチエツ
ク手法は本発明の一部を形成せず、またその内容も周知
であるから、これ以上説明しない。RAM指定レジスタの
形式は第10図に示す。
RAM指定レジスタは以下のように定義される。
ビツト0:10 予約されている。
ビツト10:18 リフレツシユレート。この9ビツトの数量がリフレツシ
ユサイクルレートを決定する。リフレツシユサイクルレ
ートはビツト[10:18]に含まれる値にCPUクロツクの周
波数を乗じたものに等しい。ゼロのリフレツシユレート
はリフレツシユを威勢する。リフレツシユレートの値
は、所望のメモリリフレツシユレートをCPUクロツクの
周波数で除すことによつて計算することができる。例え
ば、2ミリ秒ごとに128行のリフレツシユを要するダイ
ナミツクメモリを備えたシステムでは、行あたりのリフ
レツシユ間隔は128/2ミリ秒すなわち15.6マイクロ秒で
ある。CPUクロツクが200ナノ秒の場合は、所望のリフレ
ツシユレート値は15.6マイクロ秒/200ナノ秒、すなわ
ち、78(X‘04E')である。これはX‘04E'をリフレツ
シユレートにロードすることを要求する。
ユサイクルレートを決定する。リフレツシユサイクルレ
ートはビツト[10:18]に含まれる値にCPUクロツクの周
波数を乗じたものに等しい。ゼロのリフレツシユレート
はリフレツシユを威勢する。リフレツシユレートの値
は、所望のメモリリフレツシユレートをCPUクロツクの
周波数で除すことによつて計算することができる。例え
ば、2ミリ秒ごとに128行のリフレツシユを要するダイ
ナミツクメモリを備えたシステムでは、行あたりのリフ
レツシユ間隔は128/2ミリ秒すなわち15.6マイクロ秒で
ある。CPUクロツクが200ナノ秒の場合は、所望のリフレ
ツシユレート値は15.6マイクロ秒/200ナノ秒、すなわ
ち、78(X‘04E')である。これはX‘04E'をリフレツ
シユレートにロードすることを要求する。
リフレツシユレートはPORシーケンスの一部としてX‘0
1A'に初期設定される。
1A'に初期設定される。
ビツト20:27 RAM開始アドレス。この8ビツトフイールドが変換およ
び非変換アクセスのためのRAMの開始アドレスを規定す
る。変換されたアクセスの場合は、変換されたアドレス
がRAM開始アドレスおよびRAMサイズで指定される範囲内
に入っていればRAMが選択される。変換されないアクセ
スの場合は、RAMサイズと共にRAM開始アドレスを用い
て、アドレスがこの記憶制御装置のために指定されたア
ドレス範囲内に入っているかどうか判定する。RAMの開
始アドレスはRAMサイズの2進倍数として定義され、表
5に示すビツトとRAMサイズで指定される値とを乗じる
ことによつて計算される。
び非変換アクセスのためのRAMの開始アドレスを規定す
る。変換されたアクセスの場合は、変換されたアドレス
がRAM開始アドレスおよびRAMサイズで指定される範囲内
に入っていればRAMが選択される。変換されないアクセ
スの場合は、RAMサイズと共にRAM開始アドレスを用い
て、アドレスがこの記憶制御装置のために指定されたア
ドレス範囲内に入っているかどうか判定する。RAMの開
始アドレスはRAMサイズの2進倍数として定義され、表
5に示すビツトとRAMサイズで指定される値とを乗じる
ことによつて計算される。
例えば、256Kの記憶装置サイズが指定されれば、64個の
256Kバイト境界の1つがビツト[20:25]によりRAM開始
アドレスとして指定される。もしビツト[20:25]が011
101ならば、RAM開始アドレスはX‘00740000'である。1
MバイトのRAMサイズが指定されれば、16個の1Mバイト境
界の1つがビツト[20:23]によりRAM開始アドレスとし
て指定される。もしビツト[20:23]が1001ならば、RAM
開始アドレスはX‘00900000'である。
256Kバイト境界の1つがビツト[20:25]によりRAM開始
アドレスとして指定される。もしビツト[20:25]が011
101ならば、RAM開始アドレスはX‘00740000'である。1
MバイトのRAMサイズが指定されれば、16個の1Mバイト境
界の1つがビツト[20:23]によりRAM開始アドレスとし
て指定される。もしビツト[20:23]が1001ならば、RAM
開始アドレスはX‘00900000'である。
ビツト28:31 RAMサイズ。この4ビツトフイールドは本変換システム
に接続されたRAMのサイズを規定する。RAMサイズは以下
の表6に示すように64Kバイトから16Mバイトまでの間で
選択できる。
に接続されたRAMのサイズを規定する。RAMサイズは以下
の表6に示すように64Kバイトから16Mバイトまでの間で
選択できる。
表 6 ビツト28:31 RAMサイズ 0000 RAMなし 0001 ないし 0111 64K 1000 128K 1001 256K 1010 512K 1011 1M 1100 2M 1101 4M 1110 8M 1111 16M ROS指定レジスタ ROS指定レジスタは、ROS開始アドレス、ROSサイズ、お
よびROSによつてパリテイが与えられているかどうか、
ということを規定する。ROSは変換モードおよび非変換
モードのいずれにおいてもアクセス可能である。ROS指
定レジスタの形式を第11図に示す。
よびROSによつてパリテイが与えられているかどうか、
ということを規定する。ROSは変換モードおよび非変換
モードのいずれにおいてもアクセス可能である。ROS指
定レジスタの形式を第11図に示す。
ROS指定レジスタは以下のように定義される。
ビツト0:19 予約されている。
ビツト20:27 ROS開始アドレス。この8ビツトフイールドは、変換さ
れたアクセス及び変換されないアクセスの両方の場合に
おけるROSの開始アドレスを規定する。変換されたアク
セスの場合は、変換されたアドレスがROS開始アドレス
およびROSサイズで指定される範囲内に入つていればROS
が選択される。変換されないアクセスの場合は、ROSサ
イズと共にROS開始アドレスを用いて、アドレスがこの
記憶制御装置の為に指定されたアドレス範囲内に入つて
いるかどうかを判定する。ROSの開始アドレスはROSサイ
ズの2進倍数として定義され、表7に示すビツトとROS
サイズで指定される値とを乗じる事によつて計算され
る。
れたアクセス及び変換されないアクセスの両方の場合に
おけるROSの開始アドレスを規定する。変換されたアク
セスの場合は、変換されたアドレスがROS開始アドレス
およびROSサイズで指定される範囲内に入つていればROS
が選択される。変換されないアクセスの場合は、ROSサ
イズと共にROS開始アドレスを用いて、アドレスがこの
記憶制御装置の為に指定されたアドレス範囲内に入つて
いるかどうかを判定する。ROSの開始アドレスはROSサイ
ズの2進倍数として定義され、表7に示すビツトとROS
サイズで指定される値とを乗じる事によつて計算され
る。
例えば、64KのROSサイズが指定されれば、256個の64Kバ
イト境界の1つがビツト[20:27]によりROS開始アドレ
スとして指定される。もしビツト[20:27]が110010な
らば、ROS開始アドレスはX‘00C80000'である。
イト境界の1つがビツト[20:27]によりROS開始アドレ
スとして指定される。もしビツト[20:27]が110010な
らば、ROS開始アドレスはX‘00C80000'である。
ビツト28:31 ROSサイズ。この4ビツトフイールドは変換システムに
接続されたROSのサイズを規定する。ROSサイズは以下の
表8に示すように64Kバイトから64Mバイトまでの間で選
択できる。ROSが使用されない場合は、ビツト[28:31]
はゼロにセツトされる。
接続されたROSのサイズを規定する。ROSサイズは以下の
表8に示すように64Kバイトから64Mバイトまでの間で選
択できる。ROSが使用されない場合は、ビツト[28:31]
はゼロにセツトされる。
表 8 ビツト28:31 ROSサイズ 0000 ROSなし 0001 ないし 0111 64K 1000 128K 1001 256K 1010 512K 1011 1M 1100 2M 1101 4M 1110 8M 1111 16M 変換制御レジスタ 変換制御レジスタ(TCR)は、ハードウエアによるTLBの
再ロードが成功した時に割込みが発生されるかどうか、
参照および変更アレイにパリテイが使用されているかど
うか、各ページのサイズ(2Kバイトまたは4Kバイト)、
および主記憶ページテーブル(HATとIPTを組み合せたも
の)の開始アドレス、を指定する。変換制御レジスタの
形式を第12図に示す。
再ロードが成功した時に割込みが発生されるかどうか、
参照および変更アレイにパリテイが使用されているかど
うか、各ページのサイズ(2Kバイトまたは4Kバイト)、
および主記憶ページテーブル(HATとIPTを組み合せたも
の)の開始アドレス、を指定する。変換制御レジスタの
形式を第12図に示す。
変換制御レジスタは以下のように定義される。
ビツト0:20 予約されている。
ビツト21 TLB再ロード成功時の割込み許可。このビツトを用いて
ハードウエアによるTLBの再ロードが成功したというこ
とが報告される。1にセツトされていれば、ハードウエ
アによるTLBの再ロードが成功したことによつて、例外
回答が生成されSERのTLB再ロードビツト(ビツト22)が
1にセツトされる。このビツトがゼロにセツトされてい
れば、ハードウエアによるTLBエントリの再ロードの成
功は報告されない。ソフトウエアによるTLBの性能評価
にこの機能を用いることができる。
ハードウエアによるTLBの再ロードが成功したというこ
とが報告される。1にセツトされていれば、ハードウエ
アによるTLBの再ロードが成功したことによつて、例外
回答が生成されSERのTLB再ロードビツト(ビツト22)が
1にセツトされる。このビツトがゼロにセツトされてい
れば、ハードウエアによるTLBエントリの再ロードの成
功は報告されない。ソフトウエアによるTLBの性能評価
にこの機能を用いることができる。
ビツト22 参照および変更アレイのパリテイ。このビツトを用い
て、外部の参照および変更アレイにパリテイが使用され
るかどうかを示す。このビツトが1にセツトされれば、
参照および変更アレイにパリテイを使用する。もしこの
ビツトがゼロにセツトされれば、参照および変更アレイ
にはパリテイを使用しない。
て、外部の参照および変更アレイにパリテイが使用され
るかどうかを示す。このビツトが1にセツトされれば、
参照および変更アレイにパリテイを使用する。もしこの
ビツトがゼロにセツトされれば、参照および変更アレイ
にはパリテイを使用しない。
ビツト23 ページサイズ。2Kバイトページには値0を用い、4Kバイ
トページには値1を用いる。
トページには値1を用いる。
ビツト24:31 HAT/IPTベースアドレス。この8ビツトフイールドを用
いて、主記憶装置にあるHAT/IPTエントリの開始アドレ
スを指定する。実記憶のサイズおよびページサイズで決
まる定数を、このフイールドに含まれる値に乗じること
により、HAT/IPTエントリの開始アドレスが決定され
る。2Kバイトのページサイズの場合は、ビツト[24:3
1]によつてベースアドレスが指定され、4Kバイトのペ
ージサイズの場合は、ビツト[25:31]によつてベース
アドレスが指定される。記憶装置サイズおよびページサ
イズの各々に対する定数は表1に列受されている。
いて、主記憶装置にあるHAT/IPTエントリの開始アドレ
スを指定する。実記憶のサイズおよびページサイズで決
まる定数を、このフイールドに含まれる値に乗じること
により、HAT/IPTエントリの開始アドレスが決定され
る。2Kバイトのページサイズの場合は、ビツト[24:3
1]によつてベースアドレスが指定され、4Kバイトのペ
ージサイズの場合は、ビツト[25:31]によつてベース
アドレスが指定される。記憶装置サイズおよびページサ
イズの各々に対する定数は表1に列受されている。
記憶装置例外レジスタ(SER)は、記憶装置アクセスで
生じた変換プロセスにおけるエラーおよびシステムエラ
ーを報告するのに用いられる。
生じた変換プロセスにおけるエラーおよびシステムエラ
ーを報告するのに用いられる。
変換システムによつて検知される各々のエラー状態ごと
に別のビツトが割り当てられる。エラーが複数生じた場
合は、適切なビツトをセツトすることによつて各々のエ
ラーが報告される。前のエラーによつてセツトされたビ
ツトは後続のエラーによつてはリセツトされない。
に別のビツトが割り当てられる。エラーが複数生じた場
合は、適切なビツトをセツトすることによつて各々のエ
ラーが報告される。前のエラーによつてセツトされたビ
ツトは後続のエラーによつてはリセツトされない。
SERはPORシーケンスによつてゼロに初期設定される。ひ
とたび例外が報告されれば、例外が処理された後でシス
テムソフトウエアがSERをクリアする。記憶装置例外レ
ジスタの形式は第13図に示す。
とたび例外が報告されれば、例外が処理された後でシス
テムソフトウエアがSERをクリアする。記憶装置例外レ
ジスタの形式は第13図に示す。
記憶装置例外レジスタは以下のように定義される。
ビツト0:21 予約されている。
ビツト22 TLB再ロード成功。このビツトは、TLB再ロード成功によ
る割込みが許可されているときに再ロードが成功する
と、1にセツトされる。
る割込みが許可されているときに再ロードが成功する
と、1にセツトされる。
ビツト23 参照および変更アレイのパリテイエラー。参照および変
更アレイでパリテイエラーが検知された場合にこのビツ
トは1にセツトされる。
更アレイでパリテイエラーが検知された場合にこのビツ
トは1にセツトされる。
ビツト24 ROS書込み試行。ROSアドレス空間に含まれるアドレスへ
の書込みが試行された場合にこのビツトは1にセツトさ
れる。
の書込みが試行された場合にこのビツトは1にセツトさ
れる。
ビツト25 IPT指定エラー。IPT探索連鎖で無限ループが検知された
場合にこのビツトは1にセツトされる。無限ループは例
えば、システムソフトウエアのエラーのためにIPTポイ
ンタの値が誤つて指定され、その結果IPTポインタが現I
PT探索連鎖における前のエントリを指示したような場合
に生じる。
場合にこのビツトは1にセツトされる。無限ループは例
えば、システムソフトウエアのエラーのためにIPTポイ
ンタの値が誤つて指定され、その結果IPTポインタが現I
PT探索連鎖における前のエントリを指示したような場合
に生じる。
ビツト26 外部装置例外。ROMP以外のRSC上の装置によつて例外が
生じた場合にこのビツトは1にセツトされる。
生じた場合にこのビツトは1にセツトされる。
ビツト27 多重例外。記憶装置例外レジスタ内で例外標識がクリア
される前に2以上の例外(IPT指定エラー、ページ不
在、指定、保護、またはデータ)が発生した場合にこの
ビツトは1にセツトされる。
される前に2以上の例外(IPT指定エラー、ページ不
在、指定、保護、またはデータ)が発生した場合にこの
ビツトは1にセツトされる。
このビツトは、通常、システムソフトウエアが例外を処
理できなかつたことを示す。しかしながら、多重ロード
(LM)命令または多重記憶(STM)命令によつて例外が
生じた場合でもこのビツトをセツトできる。ということ
はLM命令またはSTM命令は、例外によつてその命令が中
止されるよりも前に、その命令によつて指定される全て
のレジスタの記憶またはロードを試行するからである。
理できなかつたことを示す。しかしながら、多重ロード
(LM)命令または多重記憶(STM)命令によつて例外が
生じた場合でもこのビツトをセツトできる。ということ
はLM命令またはSTM命令は、例外によつてその命令が中
止されるよりも前に、その命令によつて指定される全て
のレジスタの記憶またはロードを試行するからである。
ビツト28 ページ不在。どのTLBエントリおよび主記憶ページテー
ブルエントリも仮想アドレスに対する変換を含んでいな
いために変換が終了した場合に、このビツトは1にセツ
トされる。
ブルエントリも仮想アドレスに対する変換を含んでいな
いために変換が終了した場合に、このビツトは1にセツ
トされる。
ビツト29 指定。同じ仮想アドレスに対して2つのTLBエントリが
見つかつたという理由で変換が終了した場合に、このビ
ツトは1にリセツトされる。
見つかつたという理由で変換が終了した場合に、このビ
ツトは1にリセツトされる。
ビツト30 保護。非特殊セグメントのための記憶装置保護処理で記
憶装置アクセスが禁止されていることがわかつたために
変換が終了した場合に、このビツトは1にセツトされ
る。
憶装置アクセスが禁止されていることがわかつたために
変換が終了した場合に、このビツトは1にセツトされ
る。
ビツト31 データ。特殊セグメントのためのトランザクシヨンID/
ロツクビツト処理で、記憶装置アクセスが禁止されてい
ることがわかつたために変換が終了した場合に、このビ
ツトは1にセツトされる。
ロツクビツト処理で、記憶装置アクセスが禁止されてい
ることがわかつたために変換が終了した場合に、このビ
ツトは1にセツトされる。
記憶装置例外アドレスレジスタ(SEAR)は、CPUからの
データロードおよび記憶要求に対して、記憶装置例外レ
ジスタ(SER)により報告された例外を起こした有機記
憶装置アドレスを含む。例外がROMP命令取出しまたは外
部装置によつて生じた場合は、SEARはロードされない。
記憶装置例外アドレスレジスタの形式は第14図に示す。
データロードおよび記憶要求に対して、記憶装置例外レ
ジスタ(SER)により報告された例外を起こした有機記
憶装置アドレスを含む。例外がROMP命令取出しまたは外
部装置によつて生じた場合は、SEARはロードされない。
記憶装置例外アドレスレジスタの形式は第14図に示す。
記憶装置例外アドレスレジスタは以下のように定義され
る。
る。
ビツト0:31 記憶装置例外アドレス。SERによつて報告された例外を
生じた32ビツトの有効記憶装置アドレス。多重エラーの
場合(SERのビツト27が1にセツトされる)、SEARに含
まれるアドレスは、最も古い例外のアドレスである。
生じた32ビツトの有効記憶装置アドレス。多重エラーの
場合(SERのビツト27が1にセツトされる)、SEARに含
まれるアドレスは、最も古い例外のアドレスである。
被変換実アドレスレジスタ(TRAR)は実アドレス計算オ
ペレーシヨンによつて決定された実記憶アドレスを含
む。実アドレス計算機能は、仮想アドレスが現時点で実
記憶に写像されているかどうかを判定して仮想アドレス
が写像されている場合には対応する実アドレスを決定す
る。実アドレス計算機能は後で説明する。被変換実アド
レスレジスタの形式を第15図に示す。
ペレーシヨンによつて決定された実記憶アドレスを含
む。実アドレス計算機能は、仮想アドレスが現時点で実
記憶に写像されているかどうかを判定して仮想アドレス
が写像されている場合には対応する実アドレスを決定す
る。実アドレス計算機能は後で説明する。被変換実アド
レスレジスタの形式を第15図に示す。
実アドレス変換レジスタは以下のように定義される。
ビツト0 無効ビツト。このビツトは変換に失敗した場合は1にセ
ツトされ、変換に成功した場合には0にセツトされる。
ツトされ、変換に成功した場合には0にセツトされる。
ビツト1:7 ゼロ。この7ビツトフイールドは常にゼロである。
ビツト8:31 実記憶アドレス。この24ビツトフイールドは実記憶アド
レスを含む。この実記憶アドレスは変換が成功した場合
に所与の仮想アドレスへ写像されたものである。変換に
失敗した場合はこのフイールドはゼロにセツトされる。
レスを含む。この実記憶アドレスは変換が成功した場合
に所与の仮想アドレスへ写像されたものである。変換に
失敗した場合はこのフイールドはゼロにセツトされる。
トランザクシヨン識別レジスタ(TID)は現時点で特殊
セグメントの“所有者”として定義されているタスクの
8ビツトの識別子を含む。選択されたセグメントレジス
タ内の特殊ビツトによつて或るセグメントが特殊セグメ
ントとして定義されると、6.2節に示すようなロツクビ
ツト処理を記憶装置アクセスに適用する。ロツクビツト
処理はTIDに含まれる値を用い、それとTLB内のTIDエン
トリとを比較して、記憶装置アクセスが許されるかどう
かを判定する。トランザクシヨン識別レジスタの形式を
第16図に示す。
セグメントの“所有者”として定義されているタスクの
8ビツトの識別子を含む。選択されたセグメントレジス
タ内の特殊ビツトによつて或るセグメントが特殊セグメ
ントとして定義されると、6.2節に示すようなロツクビ
ツト処理を記憶装置アクセスに適用する。ロツクビツト
処理はTIDに含まれる値を用い、それとTLB内のTIDエン
トリとを比較して、記憶装置アクセスが許されるかどう
かを判定する。トランザクシヨン識別レジスタの形式を
第16図に示す。
トランザクシヨン識別レジスタは以下のように定義され
る。
る。
ビツト0:23 予約されている。
ビツト24:31 トランザクシヨン識別子。この8ビツトの値は特殊セグ
メントの所有者を指定する。
メントの所有者を指定する。
16個のセグメントレジスタは、セグメントを識別子、特
殊ビツト、およびキービツトを含む。12ビツトのセグメ
ント識別子は4096個の256Mバイト仮想記憶セグメントの
うちの1つを指定する。特殊ビツトは、それが特殊セグ
メントであつてロツクビツト処理が適用されるというこ
とを示す。キービツトは、所与のセグメント内の記憶装
置アクセスに関して現在実行中のタスクに関連するアク
セス権限のレベルを示す。各セグメントレジスタの形式
を第17図に示す。
殊ビツト、およびキービツトを含む。12ビツトのセグメ
ント識別子は4096個の256Mバイト仮想記憶セグメントの
うちの1つを指定する。特殊ビツトは、それが特殊セグ
メントであつてロツクビツト処理が適用されるというこ
とを示す。キービツトは、所与のセグメント内の記憶装
置アクセスに関して現在実行中のタスクに関連するアク
セス権限のレベルを示す。各セグメントレジスタの形式
を第17図に示す。
各セグメントレジスタの内容は以下のように定義され
る。
る。
ビツト0:17 予約されている。
ビツト18:29 セグメント識別子。この12ビツトの値は、4096個の256M
バイト仮想記憶セグメントのうちの1つを指定する。
バイト仮想記憶セグメントのうちの1つを指定する。
ビツト30 特殊ビツト。特殊セグメントの場合、このビツトは1に
セツトされ、非特殊セグメントの場合、このビツトはゼ
ロにセツトされる。
セツトされ、非特殊セグメントの場合、このビツトはゼ
ロにセツトされる。
ビツト31 キービツト。このビツトは、所与のセグメント内でのア
クセスについて現在実行中のタスクのアクセス権限のレ
ベルを決定する。記憶装置アクセス制御のためにこのビ
ツトを使用することは6.2節に示す。
クセスについて現在実行中のタスクのアクセス権限のレ
ベルを決定する。記憶装置アクセス制御のためにこのビ
ツトを使用することは6.2節に示す。
開示された実施例においては、2つのTLBの各々が16個
のエントリを有する。これらのエントリは仮想アドレス
から実アドレスへの変換に必要な変換情報や制御情報を
提供する。さらに、各TLBエントリは記憶装置アクセス
制御に使用される付加的な情報も含む。TLBの内容はハ
ードウエアによつて主記憶ページテーブルから自動的の
更新されるので、TLBエントリ書込みの後に読取りが続
く場合、必ずしも書き込まれたのと同じデータを読み取
る必要はない。さらに、TLBエントリの変更によつて実
アドレスと仮想アドレスとの対応がなくなるであろうか
ら、TLBエントリの変更は予測不能な結果を引き起こす
場合もある。TLBの内容のアクセスは、診断の目的にだ
け行われ、非変換モードにおいてのみなされるべきであ
る。他の全ての変換アクセスを禁止して非変換モードで
TLBエントリへ書き込むと、その後に読取りが続き、書
き込まれたのと同じデータを読み取ることになるであろ
う。
のエントリを有する。これらのエントリは仮想アドレス
から実アドレスへの変換に必要な変換情報や制御情報を
提供する。さらに、各TLBエントリは記憶装置アクセス
制御に使用される付加的な情報も含む。TLBの内容はハ
ードウエアによつて主記憶ページテーブルから自動的の
更新されるので、TLBエントリ書込みの後に読取りが続
く場合、必ずしも書き込まれたのと同じデータを読み取
る必要はない。さらに、TLBエントリの変更によつて実
アドレスと仮想アドレスとの対応がなくなるであろうか
ら、TLBエントリの変更は予測不能な結果を引き起こす
場合もある。TLBの内容のアクセスは、診断の目的にだ
け行われ、非変換モードにおいてのみなされるべきであ
る。他の全ての変換アクセスを禁止して非変換モードで
TLBエントリへ書き込むと、その後に読取りが続き、書
き込まれたのと同じデータを読み取ることになるであろ
う。
各TLBエントリは、論理的には66ビツト(予約ビツトを
除く)の変数であつて、25ビツトのアドレスタグ、13ビ
ツトの実ページ番号、有効ビツト、2ビツトキー、書込
みビツト、8ビツトのトランザクシヨンID、および16個
のロツクビツトから成つている。各TLBエントリは個々
にアドレス指定できる3つのフイールドに分けられる。
TLBフイールドの各々の形式を以下に説明する。
除く)の変数であつて、25ビツトのアドレスタグ、13ビ
ツトの実ページ番号、有効ビツト、2ビツトキー、書込
みビツト、8ビツトのトランザクシヨンID、および16個
のロツクビツトから成つている。各TLBエントリは個々
にアドレス指定できる3つのフイールドに分けられる。
TLBフイールドの各々の形式を以下に説明する。
“TLBアドレスタグ”フイールドは、2Kページの場合、
セグメント識別子||ページインデツクスの上位25ビツト
を含み、4Kページの場合、その上位24ビツトを含む。各
TLBエントリのアドレスタグフイールドの形式を第18.1
図に示す。
セグメント識別子||ページインデツクスの上位25ビツト
を含み、4Kページの場合、その上位24ビツトを含む。各
TLBエントリのアドレスタグフイールドの形式を第18.1
図に示す。
各TLBアドレスタグフイールドの内容は以下のように定
義される。
義される。
ビツト0:2 予約されている。
ビツト3:27 アドレスタグ。このフイールドは、2Kページの場合、セ
グメント識別子||仮想ページインデツクスの上位25ビツ
トを含み、4Kページの場合、その上位24ビツトを含む。
4Kページの場合、アドレスタグはビツト[3:26]に含ま
れる。
グメント識別子||仮想ページインデツクスの上位25ビツ
トを含み、4Kページの場合、その上位24ビツトを含む。
4Kページの場合、アドレスタグはビツト[3:26]に含ま
れる。
ビツト28:31 予約されている。
“TLB実ページ番号、有効ビツト(V)、およびキービ
ツト(キー)”フイールドは、TLBエントリのアドレス
タグフイールドに含まれる仮想アドレスに割り当てられ
ている実ページ番号を含む。このフイールドは、さら
に、所与のTLBエントリが有効情報を含むことを示す有
効ビツト、および所与のページに必要なアクセス権限の
ためのキービツトを含む。各TLBエントリのためのこの
フイールドの形式を第18.2図に示す。
ツト(キー)”フイールドは、TLBエントリのアドレス
タグフイールドに含まれる仮想アドレスに割り当てられ
ている実ページ番号を含む。このフイールドは、さら
に、所与のTLBエントリが有効情報を含むことを示す有
効ビツト、および所与のページに必要なアクセス権限の
ためのキービツトを含む。各TLBエントリのためのこの
フイールドの形式を第18.2図に示す。
実ページ番号、有効、およびキービツトフイールドの内
容は以下のように定義される。
容は以下のように定義される。
ビツト0:15 予約されている。
ビツト16:28 実ページ番号。この13ビツトフイールドは8192個の実ペ
ージのうちの1つを指定する。8192個よりも少ないペー
ジを使用する場合は、それらのページをアドレス指定す
るのに必要な下位ビツトだけが使用される。
ージのうちの1つを指定する。8192個よりも少ないペー
ジを使用する場合は、それらのページをアドレス指定す
るのに必要な下位ビツトだけが使用される。
ビツト29 有効ビツト。選択されたTLBエントリが有効情報を含む
場合はこのビツトは1である。TLBエントリが無効情報
を含む場合はこのビツトは0である。
場合はこのビツトは1である。TLBエントリが無効情報
を含む場合はこのビツトは0である。
ビツト30:31 キービツト。この2ビツトフイールドは各ページに対す
るアクセス権限を定義する。キービツトの使用に関して
は6.1節に示す。
るアクセス権限を定義する。キービツトの使用に関して
は6.1節に示す。
“TLB書込みビツト、トランザクシヨンID、およびロツ
クビツト”フイールドは、当該TLBエントリが特殊セグ
メントに対するものである場合に、書込みビツト、トラ
ンザクシヨンID、およびTLBエントリのアドレスタグフ
イールドに含まれている仮想アドレスに割当てられたロ
ツクビツトを含む。各TLBエントリのためにこのフイー
ルドの形式を第18.3図に示す。
クビツト”フイールドは、当該TLBエントリが特殊セグ
メントに対するものである場合に、書込みビツト、トラ
ンザクシヨンID、およびTLBエントリのアドレスタグフ
イールドに含まれている仮想アドレスに割当てられたロ
ツクビツトを含む。各TLBエントリのためにこのフイー
ルドの形式を第18.3図に示す。
TLB書込みビツト、トランザクシヨンID、およびロツク
ビツトフイールドの各々の内容は以下のように定義され
る。
ビツトフイールドの各々の内容は以下のように定義され
る。
ビツト0:6 予約されている。
ビツト7 書込みビツト。このビツトは、特殊セグメントの場合に
各ページに関連するアクセス権限を定義する。ロツクビ
ツト処理におけるこのビツトの使用については6.2節に
示す。
各ページに関連するアクセス権限を定義する。ロツクビ
ツト処理におけるこのビツトの使用については6.2節に
示す。
ビツト8:14 トランザクシヨン識別子。この8ビツトフイールドは特
殊セグメント内にある選択されたページを現に所有する
タスクを定義する。ロツクビツト処理におけるこれらの
ビツトの使用については前に説明した。
殊セグメント内にある選択されたページを現に所有する
タスクを定義する。ロツクビツト処理におけるこれらの
ビツトの使用については前に説明した。
ビツト15:31 ロツクビツト。この16ビツトフイールドは、特殊セグメ
ントの場合に2Kまたは4Kのページ内の各“ライン”に対
するアクセス権限を定義する。1ラインは2Kページの場
合は128バイト、4Kページの場合は256バイトである。ロ
ツクビツト処理におけるこれらのビツトの使用について
は6.2節で説明する。
ントの場合に2Kまたは4Kのページ内の各“ライン”に対
するアクセス権限を定義する。1ラインは2Kページの場
合は128バイト、4Kページの場合は256バイトである。ロ
ツクビツト処理におけるこれらのビツトの使用について
は6.2節で説明する。
本変換機構は、頻繁に要求される変換機能をハードウエ
アで支援する。このハードウエアにより、TLBエントリ
を選択的に無効化すること、および、IBMシステム/370
フアミリのコンピユータにおけるものと同様な“実アド
レスロード”機能を遂行することができる。
アで支援する。このハードウエアにより、TLBエントリ
を選択的に無効化すること、および、IBMシステム/370
フアミリのコンピユータにおけるものと同様な“実アド
レスロード”機能を遂行することができる。
仮想−実アドレス写像を変更する場合は、システムソフ
トウエアによつて、TLBの内容と主記憶装置にあるペー
ジテーブルの内容と、を同期化することが必要である。
TLBおよびページフレームテーブルのエントリを両方と
も除去(無効化)して、用済の写像情報が後続の変換で
使用されないようにしなければならない。
トウエアによつて、TLBの内容と主記憶装置にあるペー
ジテーブルの内容と、を同期化することが必要である。
TLBおよびページフレームテーブルのエントリを両方と
も除去(無効化)して、用済の写像情報が後続の変換で
使用されないようにしなければならない。
本システムは主記憶装置にあるページテーブルの内容と
TLBエントリとの同期化を支援する機能を3つ提供す
る。TLBの全内容、または選択されたTLBエントリのみを
無効化するのにこれらの機能を使用することができる。
システムによつて認識されるI/Oアドレスの64Kバイトブ
ロツク内の特定I/OアドレスへのI/O書込み命令(IOW)
によつて、これらの機能が呼び出される。これらの機能
の各々に対するアドレス割当ては、必要に応じてシステ
ムに与えられる。
TLBエントリとの同期化を支援する機能を3つ提供す
る。TLBの全内容、または選択されたTLBエントリのみを
無効化するのにこれらの機能を使用することができる。
システムによつて認識されるI/Oアドレスの64Kバイトブ
ロツク内の特定I/OアドレスへのI/O書込み命令(IOW)
によつて、これらの機能が呼び出される。これらの機能
の各々に対するアドレス割当ては、必要に応じてシステ
ムに与えられる。
“全TLB無効化”機能によつてTLBエントリが全て無効化
される。この機能は、後続の変換に備えて、主記憶装置
にあるページテーブルでTLBの内容を強制的に更新す
る。
される。この機能は、後続の変換に備えて、主記憶装置
にあるページテーブルでTLBの内容を強制的に更新す
る。
この機能に関連するアドレスへのI/O書込みが、TLBエン
トリを全て無効化する。I/O書込み命令で転送されるデ
ータは使用されない。
トリを全て無効化する。I/O書込み命令で転送されるデ
ータは使用されない。
“指定セグメント内のTLBエントリ無効化”機能によつ
て、指定セグメント識別子を持つたTLBエントリが全て
無効化される。このセグメント識別子を用いる後続の変
換でTLBの内容が主記憶装置にあるページテーブルから
更新される。
て、指定セグメント識別子を持つたTLBエントリが全て
無効化される。このセグメント識別子を用いる後続の変
換でTLBの内容が主記憶装置にあるページテーブルから
更新される。
この機能に関連するアドレスへのI/O書込みが、指定セ
グメント識別子を持つたTLBエントリを無効化する。I/O
書込み命令で転送されるデータのビツト[0:3]がセグ
メント識別子を選択するのに用いられる。このセグメン
ト識別子を含むTLBエントリは全て無効化される。無効
化されたセグメント内の有効アドレスを伴う後続の変換
によつて、TLBの内容は主記憶装置にあるページテーブ
ルから更新される。
グメント識別子を持つたTLBエントリを無効化する。I/O
書込み命令で転送されるデータのビツト[0:3]がセグ
メント識別子を選択するのに用いられる。このセグメン
ト識別子を含むTLBエントリは全て無効化される。無効
化されたセグメント内の有効アドレスを伴う後続の変換
によつて、TLBの内容は主記憶装置にあるページテーブ
ルから更新される。
“指定有効アドレスに対するTLBエントリの無効化”機
能によつて、指定有効アドレスを備えたTLBエントリが
無効化される。
能によつて、指定有効アドレスを備えたTLBエントリが
無効化される。
指定有効アドレスを含むページ内の有効アドレスを伴う
後続の変換によつて、TLBの内容は種記憶装置にあるペ
ージテーブルから更新される。
後続の変換によつて、TLBの内容は種記憶装置にあるペ
ージテーブルから更新される。
この機能に関連するアドレスへのI/O書込みが、指定有
効アドレスを備えたTLBエントリを無効化する。I/O書込
み命令で転送されるデータのビツト[0:31]が有効アド
レスとして使用される。本アドレス変換機構に含まれる
セグメントレジスタの内容を用いて通常の変換プロセス
が適用される。
効アドレスを備えたTLBエントリを無効化する。I/O書込
み命令で転送されるデータのビツト[0:31]が有効アド
レスとして使用される。本アドレス変換機構に含まれる
セグメントレジスタの内容を用いて通常の変換プロセス
が適用される。
“実アドレス計算”機能はシステムソフトウエアによつ
て使用され、所与の仮想アドレスが現時点で実記憶に写
像されているかどうか、および、もし写像されていれば
どの実アドレスがその仮想アドレスに割り当てられてい
るのかを決定する。
て使用され、所与の仮想アドレスが現時点で実記憶に写
像されているかどうか、および、もし写像されていれば
どの実アドレスがその仮想アドレスに割り当てられてい
るのかを決定する。
仮想アドレスが写像されない場合に、それを使用すれば
ページ不在を生じる;この情報は、割込みを禁止した状
態で走行するシステムのルーチンには、重要である。I/
Oオペレーシヨンのほとんどが実アドレスを使用して遂
行されるので、仮想アドレスから実アドレスへの変換結
果はシステムI/Oルーチンによつて要求される。
ページ不在を生じる;この情報は、割込みを禁止した状
態で走行するシステムのルーチンには、重要である。I/
Oオペレーシヨンのほとんどが実アドレスを使用して遂
行されるので、仮想アドレスから実アドレスへの変換結
果はシステムI/Oルーチンによつて要求される。
実アドレス計算機能は、これに関連するアドレスへのI/
O所込みによつて呼び出される。I/O所込みの命令で転送
されるデータのビツト[0:31]が有効アドレスとして使
用される。この有効アドレスは、通常の交換プロセスの
ために使用されるが、変換結果は、被変換アドレスレジ
スタ(第15図)(TRAR)にロードされ、記憶装置のアク
セスには使用されない。TRARは変換が成功したがどうか
を示すビツトを含み、変換に成功していれば対応する実
記憶アドレスも含む。通常の記憶装置保護処理およびロ
ツクビツト処理は変換成功により遂行される。実アドレ
ス計算機能の結果はTRARのI/O読取りによつて獲得され
る。
O所込みによつて呼び出される。I/O所込みの命令で転送
されるデータのビツト[0:31]が有効アドレスとして使
用される。この有効アドレスは、通常の交換プロセスの
ために使用されるが、変換結果は、被変換アドレスレジ
スタ(第15図)(TRAR)にロードされ、記憶装置のアク
セスには使用されない。TRARは変換が成功したがどうか
を示すビツトを含み、変換に成功していれば対応する実
記憶アドレスも含む。通常の記憶装置保護処理およびロ
ツクビツト処理は変換成功により遂行される。実アドレ
ス計算機能の結果はTRARのI/O読取りによつて獲得され
る。
I/Oアドレスの64Kバイトブロツクが変換システムに割り
当てられている。64KバイトのブロツクはI/Oベースアド
レスレジスタで指定されるI/Oアドレスの所から始ま
る。I/Oベースアドレスは、64K境界上にあるように定義
される。表9に列挙するI/Oアドレスの割当ては指定さ
れた64Kバイトブロツク内の変位である。絶対I/Oアドレ
スはI/Oベースアドレスとこの変位とを加えたものに等
しい。
当てられている。64KバイトのブロツクはI/Oベースアド
レスレジスタで指定されるI/Oアドレスの所から始ま
る。I/Oベースアドレスは、64K境界上にあるように定義
される。表9に列挙するI/Oアドレスの割当ては指定さ
れた64Kバイトブロツク内の変位である。絶対I/Oアドレ
スはI/Oベースアドレスとこの変位とを加えたものに等
しい。
むすび 発明の好ましい実施例に関する以上の説明から、両方の
TLBとページフレームテーブルとにロツクビツトを用意
しかつ通常のセグメント化方式を利用する本発明の意図
および範囲から逸脱することなく、システムのハードウ
エアおよびソフトウエアの形式およひ詳細において様々
な変更が容易できることは当王社には明白であろう。明
らかに、こうした変更は、記憶装置サイズ、レジスタの
サイズおよび制御フイールドの定義、アドレスサイズ、
ページフレームテーブルのアクセス方法および構成、な
らびにハツシユアドレス方法における変更を含むが、そ
れらに限定されるものではない。
TLBとページフレームテーブルとにロツクビツトを用意
しかつ通常のセグメント化方式を利用する本発明の意図
および範囲から逸脱することなく、システムのハードウ
エアおよびソフトウエアの形式およひ詳細において様々
な変更が容易できることは当王社には明白であろう。明
らかに、こうした変更は、記憶装置サイズ、レジスタの
サイズおよび制御フイールドの定義、アドレスサイズ、
ページフレームテーブルのアクセス方法および構成、な
らびにハツシユアドレス方法における変更を含むが、そ
れらに限定されるものではない。
E.発明の効果 以上説明したように、本発明によれば、各セグメントレ
ジスタに設けられた特殊ビツトと変換索引緩衝機構及び
ページフレームテーブルに設けられた各ラインについて
のロツクビツトとの協働的作用によつてよりきめ細かな
記憶保護が可能となる。これは、特に、システム内のジ
ヤーナリング制御に有用である。
ジスタに設けられた特殊ビツトと変換索引緩衝機構及び
ページフレームテーブルに設けられた各ラインについて
のロツクビツトとの協働的作用によつてよりきめ細かな
記憶保護が可能となる。これは、特に、システム内のジ
ヤーナリング制御に有用である。
第1図は本発明のアドレス変換およびアクセス制御シス
テムの主要部の機能ブロツク図である。 第2図は本アドレス変換機構において使用されるセグメ
ントレジスタの形式を表わす図である。 第3図は有効アドレスから仮想アドレスへの変換を示す
機能ブロツク図とデータ流れ図の組合せである。 第4図は有効アドレスから実アドレスへのアドレス変換
機構の全体を示すブロツク図とデータ流れ図との組合せ
である。 第5図は本発明のアドレス変換機構全体で使用される変
換索引緩衝機構の構成とその内容を示す図である。 第6図は組合されたハツシユアンカーテーブル/逆ペー
ジテーブルを概念的に示す図と、所与の仮想アドレスに
対してTLBエントリが見い出だされない場合のこうした
テーブルの動作を示すデータ流れ図である。 第7図は記憶装置内に記憶された実際のハツシユアンカ
ーテーブル/逆ページテーブルの構成および内容を図式
的に示す図である。 第8図は各I/Oアドレスと共に利用される参照および変
更ビツトの形式を示す。 第9図はI/Oベースアドレスレジスタの構成を示す図で
ある。 第10図はRAM指定レジスタの形式を示す図である。 第11図はROS指定レジスタの形式を示す図である。 第12図は変換制御レジスタの形式を示す図である。 第13図は記憶例外レジスタの形式を示す図である。 第14図は記憶例外アドレスレジスタの形式を示す図であ
る。 第15図は被変換実アドレスレジスタの形式を示す図であ
る。 第16図はトランザクシヨン識別レジスタの形式を示す図
である。 第17図は16個のセグメントレジスタのうちの1つの内容
を示す図である。 第18.1図、第18.2図、および第18.3図は変換索引緩衝機
構の各々において各ページ参照のために利用される3つ
のフイールドの形式を図式的に示す。ここに開示する実
施例においては2つの独立した変換索引緩衝機構か存在
すること、該緩衝機構の各々において一時に記憶される
実ページ参照が16個存在すること、に留意されたい。
テムの主要部の機能ブロツク図である。 第2図は本アドレス変換機構において使用されるセグメ
ントレジスタの形式を表わす図である。 第3図は有効アドレスから仮想アドレスへの変換を示す
機能ブロツク図とデータ流れ図の組合せである。 第4図は有効アドレスから実アドレスへのアドレス変換
機構の全体を示すブロツク図とデータ流れ図との組合せ
である。 第5図は本発明のアドレス変換機構全体で使用される変
換索引緩衝機構の構成とその内容を示す図である。 第6図は組合されたハツシユアンカーテーブル/逆ペー
ジテーブルを概念的に示す図と、所与の仮想アドレスに
対してTLBエントリが見い出だされない場合のこうした
テーブルの動作を示すデータ流れ図である。 第7図は記憶装置内に記憶された実際のハツシユアンカ
ーテーブル/逆ページテーブルの構成および内容を図式
的に示す図である。 第8図は各I/Oアドレスと共に利用される参照および変
更ビツトの形式を示す。 第9図はI/Oベースアドレスレジスタの構成を示す図で
ある。 第10図はRAM指定レジスタの形式を示す図である。 第11図はROS指定レジスタの形式を示す図である。 第12図は変換制御レジスタの形式を示す図である。 第13図は記憶例外レジスタの形式を示す図である。 第14図は記憶例外アドレスレジスタの形式を示す図であ
る。 第15図は被変換実アドレスレジスタの形式を示す図であ
る。 第16図はトランザクシヨン識別レジスタの形式を示す図
である。 第17図は16個のセグメントレジスタのうちの1つの内容
を示す図である。 第18.1図、第18.2図、および第18.3図は変換索引緩衝機
構の各々において各ページ参照のために利用される3つ
のフイールドの形式を図式的に示す。ここに開示する実
施例においては2つの独立した変換索引緩衝機構か存在
すること、該緩衝機構の各々において一時に記憶される
実ページ参照が16個存在すること、に留意されたい。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マージン、マーク・エフ アメリカ合衆国ニユーヨーク州10549、マ ウント・キスコ、クリフサイド・レーン・ アール・アール4番地 (72)発明者 ラデイン、ジヨージ アメリカ合衆国ニユーヨーク州10968、ピ アモント、フランクリン26番地 (56)参考文献 特開 昭53−34429(JP,A) 特開 昭56−153576(JP,A) 特開 昭54−105930(JP,A)
Claims (1)
- 【請求項1】中央処理装置によって供給された仮想アド
レスの変換索引緩衝機構およびページフレームテーブル
を用いて実アドレスに変換するような階層記憶システム
において、 上記仮想アドレスのうちのセグメント識別フィールドよ
りもビット数の多いセグメント識別子および該セグメン
ト識別子に関連する特殊ビットを記憶するセグメントレ
ジスタを複数個設け、さらに上記変換索引鑑賞機構およ
び上記ページフレームテーブルの双方にページを構成す
る各ラインについてロックビットを設け、上記中央処理
装置によって供給された仮想アドレスのうちのセグメン
ト識別フィールドによって上記複数個のセグメントレジ
スタをアクセスし、アドレス指定されたセグメントレジ
スタに記憶されているセグメント識別子と上記仮想アド
レスのページオフセットフィールドおよびバイトオフセ
ットフィールドとを連結して上記仮想アドレスよりもビ
ット数の多い第二の仮想アドレスを生成し、該第二の仮
想アドレスを実アドレスに変換するとともに、上記特殊
ビットが所定の値に設定されている場合には上記ロック
ビットに応じて実ページのラインごとにロッキングやジ
ャーナリングを行うようにしたことを特徴とするアドレ
ス変換方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2277954A JPH0679294B2 (ja) | 1990-10-18 | 1990-10-18 | アドレス変換方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2277954A JPH0679294B2 (ja) | 1990-10-18 | 1990-10-18 | アドレス変換方法 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58500670A Division JPH0658646B2 (ja) | 1982-12-30 | 1982-12-30 | デ−タ持続性が制御される仮想記憶アドレス変換機構 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03265049A JPH03265049A (ja) | 1991-11-26 |
| JPH0679294B2 true JPH0679294B2 (ja) | 1994-10-05 |
Family
ID=17590590
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2277954A Expired - Lifetime JPH0679294B2 (ja) | 1990-10-18 | 1990-10-18 | アドレス変換方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0679294B2 (ja) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5844263B2 (ja) * | 1976-09-10 | 1983-10-01 | 株式会社東芝 | 記憶制御回路 |
| JPS54105930A (en) * | 1978-02-07 | 1979-08-20 | Nec Corp | Main memory control unit |
| US4356549A (en) * | 1980-04-02 | 1982-10-26 | Control Data Corporation | System page table apparatus |
-
1990
- 1990-10-18 JP JP2277954A patent/JPH0679294B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH03265049A (ja) | 1991-11-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4680700A (en) | Virtual memory address translation mechanism with combined hash address table and inverted page table | |
| US4638426A (en) | Virtual memory address translation mechanism with controlled data persistence | |
| US6145064A (en) | Method of efficiently updating hashed page tables | |
| US5493660A (en) | Software assisted hardware TLB miss handler | |
| JP4268332B2 (ja) | 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置 | |
| JP3278748B2 (ja) | メモリ空間を節約する方法および装置 | |
| US4985829A (en) | Cache hierarchy design for use in a memory management unit | |
| Houdek et al. | IBM System/38 support for capability-based addressing | |
| US5526504A (en) | Variable page size translation lookaside buffer | |
| US5123101A (en) | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss | |
| US5230045A (en) | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus | |
| JP5373173B2 (ja) | アドレス変換方法及び装置 | |
| EP1934753B1 (en) | Tlb lock indicator | |
| US6304944B1 (en) | Mechanism for storing system level attributes in a translation lookaside buffer | |
| US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
| US20010020264A1 (en) | Speculative address translation for processor using segmentation and optional paging | |
| 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 | |
| US5060137A (en) | Explicit instructions for control of translation lookaside buffers | |
| US6073226A (en) | System and method for minimizing page tables in virtual memory systems | |
| JPH0628262A (ja) | ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法 | |
| EP0212129B1 (en) | Method of updating information in a translation lookaside buffer | |
| EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
| EP0170525B1 (en) | Cache hierarchy design for use in a memory management unit | |
| CA1220286A (en) | Virtual memory address translation mechanism with combined hash address table and inverted page table | |
| JPH035851A (ja) | バッファ記憶装置 |