JPH03265049A - アドレス変換方法 - Google Patents

アドレス変換方法

Info

Publication number
JPH03265049A
JPH03265049A JP2277954A JP27795490A JPH03265049A JP H03265049 A JPH03265049 A JP H03265049A JP 2277954 A JP2277954 A JP 2277954A JP 27795490 A JP27795490 A JP 27795490A JP H03265049 A JPH03265049 A JP H03265049A
Authority
JP
Japan
Prior art keywords
address
bit
page
bits
storage
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.)
Granted
Application number
JP2277954A
Other languages
English (en)
Other versions
JPH0679294B2 (ja
Inventor
Albert Chung
チヤング・アルバート
John Coke
コーク、ジヨン
Mark F Margene
マージン、マーク・エフ
George Radin
ラデイン、ジヨージ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2277954A priority Critical patent/JPH0679294B2/ja
Publication of JPH03265049A publication Critical patent/JPH03265049A/ja
Publication of JPH0679294B2 publication Critical patent/JPH0679294B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般的にはコンピュータ記憶サブシステム、と
りわけ当業者には、仮想記憶として知られた記憶装置に
構成された記憶サブシステムに関する。さらに詳しく言
えば、本発明は、仮想アドレスを実アドレスに変換し記
憶階層内である特有の制御機能を遂行するための装置に
関する。
B、従来の技術及びその課題 最新のコンピュータシステムにおいては、プログラムは
実行に際して、システム内のどこかすなわち、キャッシ
ュ/主記憶装置/直接アクセス記憶装置(DASD)の
記憶階層のあるレベルあるいは分散システムネットワー
クの別のノードに存在するデータまたはコードのアクセ
スを頻繁に試みる。最も基本的なシステムにとって、こ
のアクセスを行うためにはプログラムが伺を理解しなけ
ればならないかを、考えてみよう。
データ(またはコード)はどこに所在するか。その場所
によって、一般に、アクセスのためにどんな種類のアド
レスを用いるべきかが決まる。
(例えば、24ビツトの主記憶アドレス、ディスクトラ
ック上のセクタアドレス、またはネットワークのノード
アドレス)。また、そのアクセスを遂行するためにどん
な種類の命令を用いるべきかも場所によって決まる(例
えば、主記憶アクセスの場合はロード/記憶/分岐、デ
ィスクアクセスの場合はチャネル指令ワード、ネットワ
ークアクセスの場合は通信プロトコル)。
このデータが他のプログラムによって共有きれているか
。このデータが共有きれていれば、一定のロックが維持
されていない限りはアクセスを進行させることはできな
い。このプログラムがなそうとしているデータの変更を
他のプログラムに知られたくない場合は、記憶命令ある
いは私用アドレスに向けられるべきで、ある。
当該データが回復可能であるべきか。もしそうであれば
、必要な場合に、前と同じ状態のデータを検索できるよ
うに、あるジャーナリング方法を実施しなければならな
い。
こうした極めて基本的なシステムにおいて、各々のアク
セスの際にこれらを区別することを実際にプログラムが
要求きれていたと仮定する。そうすると、次のような事
が起こるであろう。
−プログラムを一般的に適覆可能にしようとすると、最
も頻繁に発生する°°単純で安全°′な要求の場合でさ
え、言い換えれば、主記憶装置に在る私用の回復不能デ
ータの場合できえ、そのアクセスは非常に遅くなるであ
ろう。
プログラムをうまく働かせるためにそのアクセスモード
を1つに固定してしまうと、そのプログラムは異なる性
質を有するデータに対しては正しく実行されないであろ
う。
プログラムは複雑かつ大規模で、しかもエラーを発生し
やすいものとなるであろう。
最近のシステムは、程度の、差はあれ、こうした問題に
取り組んできた。例えば、 再配置アーキテクチャによって、一般に、私用の回復不
能な一時的データおよびプログラムを、16ピツトない
し32ビツトのアドレスサイズ(通常、計算上の一時的
な要求にとっては適切)で統一的にアドレス指定するこ
とができる。再配置アーキテクチャが適切な°°索引°
°ハードウェアを用いて実施される場合、そうしたアク
セスのほとんどがキャッシュまたは主記憶装置の速度で
行われる。この索引ハードウェアが役に立たない場合(
これは100回試行して1回起こるよりも少ない頻度で
ある)にのみ、システムは再配置テーブル構造をアクセ
スする。再配置テーブルが役に立たない場合(すなわち
データが主記憶装置にない場合)にのみ、システムに°
゛ベージ不在°°のオーバーヘッドが生じる。従って、
真に必要な場合だけオーバーヘッドが解決される。これ
は、良好なアーキテクチャおよびその実施の目的である
。
プログラム実行の範囲を超えてデータを維持する場合は
、最新のシステムでば、ロード/記憶/分岐命令の代わ
りに、ソフトウェアで実現される°°アクセス方式°°
への明示要求によってアクセスを行うことを要求きれる
。こうしたアクセス方式は、一般に、°゛レコード°°
よび°′ファイル°“と呼ばれる定義きれた一定の基礎
群に構成きれるデータを支援する。アクセスのための°
°命令°°は、一般に、°°読取り/書込み°°または
°°ゲット/プツト°と呼ばれる。
データは共有されないか、または、回復不能である。そ
れは、実際に主記憶装置(成るバッファ領域)に記憶さ
れているかも知れない。しかしアクセスの度に、プログ
ラムはこのような明示的な°°読取り/書込み゛°呼出
しを行わねばならない。
こうして、アクセス方式が適切に定義されれば、それに
よって、基本的システムにおけるよりも複雑でなくかつ
一般的に適用できるプログラムが生成される。しかしな
がらこうしたアクセスの性能は、−律に、ロード/記憶
よりも劣ったものとなり、アクセスされるデータを適切
な基礎群タイプに構成する必要が生じる。
データが共有されるか、または、回復可能な場合は、最
新のシステムでは、ソフトウェアで実現される°°デー
タベースサブシステム゛への明示要求を必要とする。こ
うしたアクセスは、−船釣に、アクセス方式の場合のア
クセスに比べて極めて遅い。この原因は、ロックおよび
ジャーナル管理の機能を付加しているということだけで
なく、サブシステムが支援する基礎群の種類(例えば関
係、階層)がそれ自体さらに複雑であるということにも
ある。
ここでも、データが、実際にはさらに間車な構造で主記
憶装置のバッファ内にあるかも知れないが、アクセス要
求の度にオーバーヘッドの問題が生じる。
゛°チエツクボインティング°゛と呼ばれる手段を用い
て一時的なデータの回復を支援するシステムもある。こ
の場合、プログラマが回復可能なアプリケーションを書
こうとすれば、3つの異なった手段を取り扱わねばなら
ない。3つの手段とは、計算データのためのチエツクボ
インティング、ファイルのための明示バックアップ、お
よびデータベースのための°゛確約命令である。
IBMシステム/38は、少なくとも、全てのデータに
とって統一的なアドレス指定構造を提供するという点に
関して言えば、大多数のシステムよりも進んでいる。し
かしながら、すべてのアドレスは極めて長く、多くのア
クセスは極めて遅く、アーキテクチャを実施するために
多大な記憶領域およびハードウェアを必要とする、とい
う犠牲のもとにこれが提供されているのであり、また、
共有または回復のための統一的な手法を提供するもので
はない。
1台または複数台の基本処理ユニットによって実行され
る多数のコンピュータプログラムが1つの記憶装置を共
有するための様々な手法がこれまで知られている。プロ
グラムによって共有されている記憶装置は極めて大きな
新記憶容量を必要とする。その容量は、記憶装置の実際
の容量よりも島かに大きいことが多い。例えば、システ
ムが32ビットアドレス方式を使用しているとすれば、
仮想記憶のアドレス指定可能な232バイトが使用可能
である。こうした仮想記憶空間は、通常、所定数の領域
すなわちセグメントに分けられるものとして考えられて
いる。各々のセグメントは所定数のラインから成るペー
ジに分けられ、各々のラインは所定数のバイトを有して
いる。従ってセグメントおよびページの指定、すなわち
、仮想記憶に割当てられたアドレスは、プログラムによ
って任意に指定きれるものであって、主記憶装置におけ
る実際の記憶位置を示すものではない。従って、仮想セ
グメントおよび仮想ページは主記憶装置全体にわたって
通常は任意の場所に位置して、必要に応じて外部記憶装
置から主記憶装置にスワップインしたり、主記憶装置か
ら外部記憶装置にスワップアウトしたりする。
主記憶装置内でのセグメントおよびページの位置が可変
のため、仮想アドレスから真の、すなわち実アドレスへ
の変換が必要である。この変換には、通常、主記憶装置
内にあってページフレームテーブルと呼ばれる一組のア
ドレス変換テーブルを用いる。大きな仮想システムにお
いては、非常に多くのアドレス変換テーブルが使用され
ている。
これは様々な方法によって構成できる。そうしたあらゆ
る構成において必須の特徴は、特定の仮想アドレスが前
記テーブルにおいて該仮想アドレスに対する実アドレス
(もしあれば)を含む記憶位置へ論理的に写像されなけ
ればならないということである。
機能的には、こうしたアドレス変換テーブルの動作は次
の通りである:特定の仮想アドレスの上位ビットを用い
て前記変換テーブルの特定のセクションをアクセスする
。使用される上位ビットは1つの特定のフレームすなわ
ちセグメントに関係する。そうして次に、下位ビットを
用いて特定の仮想アドレスがその中に含まれるかどうか
、およびもし含まれていれば、どの実アドレスがそれに
vj達しているかを検査する。仮想フレームアドレスに
よって指定される各々のページテーブルは、1つのフレ
ームに含まれる全てのページの実記憶位置を含んでいる
。従って1.1つの特定のフレームが例えば16ページ
に分けられるとすれば、フレームの各々に対して16個
のページテーブルが存在し、更にページテーブルの特定
の組を指定するエントリを持った1つのフレームテーブ
ルが別にある。以上の説明は一般化されており、ページ
テーブルとCPUの生成した仮想アドレスを出発点とす
るページテーブルアドレス指定手段とを利用してアドレ
ス変換を組織化する多くの異なった方法があることを理
解されたい。後の発明の良好な形態の説明において、基
本的に上述のような機能的構成を有するハツシュアドレ
ステーブル(HAT)および逆ページテーブル(IPT
)を詳述する。
実際にアドレス変換を行う場合は、システム構成全体の
細部およびページテーブルの使用には関係なく、ページ
・フレームテーブルへの適切な入口点が作成され、与え
られた仮想アドレスを引き数として用いてページテーブ
ルがアクセスされる。
そうして、通常は、複数回の記憶アクセスを経て、ペー
ジテーブルの所望のエントリが見い出される。
通常、その時点において、全てのシステムプロトコルに
従っていたかどうかが検査され、もしそうならば、要求
されたページの実アドレスがページテーブルからアクセ
スされる。仮想アドレスのバイト部分すなわち°°バイ
トオフセット°°は、本来、相対アドレスであり、実ペ
ージおよび仮定ページにおいて同じである。従って、仮
想アドレスの所望の実ページアドレス部分が、−旦、変
換きれれば、バイトオフセット部分は実ページアドレス
場所と連結されて主記憶装置の実バイトアドレスを与え
る。
現行の仮想記憶システムにおいてよく知られているとお
り、記憶装置をアクセスするたびにいちいち仮想アドレ
スの変換をしなくてもよいように、最近使用された仮想
アドレスから実アドレスへの変換が、本発明においても
使用する登録索引テーブル(DLAT)または変換索引
緩衝機fll(TLB)と呼ばれる一組の高速アクセス
可能なテーブルあるいは高速記憶装置に記憶される。こ
うしたテーブルあるいは緩衝機構は、通常、高速アクセ
ス可能な特別の記憶装置であり、これは前述のページフ
レームテーブルよりもさらに高速にアクセスできる。こ
れによって、頻繁に使用される仮想アドレスをこのテー
ブルに記憶しそれを高速にアクセスすれば、コンピュー
タの実行時間を大幅に節約できる。TLBアドレス変換
システムの効率のよさは、所定のプログラム実行におい
である仮想ページがアクセスされた場合それに続いて同
じページが何度もアクセスされるという事実に基づいて
いる。前述のように、続いて起こるアクセスかページ内
の異なったラインおよびバイトに対して行われる場合で
さえも、仮想ページアドレスから実ページアドレスへの
変換は、どのラインまたはどのバイトがアドレス指定さ
れるかに関係なく、そのページに関する限り同じである
。
TLBを用いればページフレームテーブル内で必要な変
換を大幅に減することができる。従って、仮想記憶シス
テム全体の性能を格段に高めることができる。
こうした従来の再配置システムの有する別の問題は、ジ
ャーナリング問題の処理である。すなわち、現プログラ
ムが実行中でデータを使用している間、外部記憶装置内
にデータの複製を保持しておくことである。従って、ハ
ードウェアまたはソフトウェアに何らかの障害が発生し
ても、もとのデータの有効な複製は依然として使用可能
である。
このような機能は、従来、時間を浪費する複雑なハード
ウェアおよびソフトウェアによって実現きれており、要
求されるジャーナリング機能のために再び記憶装置の性
能低下という犠牲を強いることになる。
前述のようにコンピュータ技術においては、長年にわた
って仮想記憶システムが普及してきた。
何らかの再配置すなわちアドレス変換手段によって仮想
アドレスを実アドレスに変換しなければならならないと
いうこともまたよく知られている。
こうしたアドレス変換手段においては、仮想アドレスか
ら実アドレスへの可変換性が保証されていなければなら
ない。この主題に関する特許朽よび論文を全て挙げるこ
とはできないが、以下に挙げる従来技術はアドレス変換
機構の代表的な例であって、かつ本発明に最も係りの深
い従来技術を示すものである。
Berglund他による米国特許第3828327号
は、アドレスに上位ビットを付加することによって記憶
装置を拡張するための従来の記憶制御手法を示している
。この上位ビットはプログラムによって明示されるアド
レスの一部ではないが、割込みモード、I10モード等
の別のシステムモードによって制!IIされる。この特
許は記憶装置拡張システムに関するものであるが、この
記憶装置拡張システムには同時にアドレス変換ハードウ
ェアが提供されている。Bourke他による米国特許
第4042911号もまた主記憶装置拡張の為のシステ
ムが示され、アドレス変換手段を明らかに含んでいる。
しかしながらこれら2つの米国特許は、TLB及びペー
ジフレームテーブルの両方に特別のロックビットを用意
するという事だけでなく、仮想アドレス拡張の概念をも
開示していない。
論文、George  Radin、  ” The 
 801Minicomputer”、  ACM  
  S  I  GPLAN   N0TICES、第
17巻、第4号、1982年4月号、39ないし47ペ
ージ、には非常に高速の記憶サブシステムに大きく依存
する動作特性を持った実験的なコンピュータに関する一
般的な記載が示されている。本発明の再配置機構はこの
ようなコンピュータに特に適しているであろう。
Bourke他による米国特許第4050084号には
、スタックセグメンテーションレジスタを備えたアドレ
ス再配置変換器を含む記憶構成が示されている。この特
許に示される特別のセグメンテーションレジスタは、本
発明で用いるような拡張された仮想アドレスの記憶とい
うよりはむしろ主記憶装置内の物理ブロックに割り当て
られた実アドレスの記憶を目的としている。
Mitchell他による米国特許第4251860号
には、広大な仮想アドレス記憶を実現するための仮想ア
ドレス指定装置を有する記憶アドレス指定システムが示
されている。この特許は、仮想アドレスをセグメント部
とオフセット部とに分割することを開示している。しか
しながら、セグメント部およびこれに係るセグメントレ
ジスタはアドレス分割を行う適切な手段として用いられ
るものであって、本発明のアドレス変換機構とはその動
作が全く異なる。
B frney他による米国特許第4037215号に
示きれているシステムは、特定の実記憶ブロックを指定
するために一連のセグメンテーションレジスタを利用す
るという点において、前記米国特許第4050094号
に極めて類似している。この特許は、さらに特別のセグ
メンテーションレジスタに組み込まれる°°読取り専用
°°有効ピットの使用に関した記載もある。こうしたビ
ットは、本発明の再配置機構のハードウェアに設けられ
る特殊目的のロックビットとは全く異なるものである。
Gordi他による米国特許第4077059号には、
ジャーナリングおよびコピーバックを容易に行うための
特別の制御手段を備えた階層記憶システムが示されてい
る。この特許には、複数の複式記憶装置もまた示されて
いる。これによって、現行データを一方の記憶装置に保
持して、後続のジャーナリングオペレーションおよびコ
ピーバックオペレーションを容易に行うために、変更を
他方の記憶装置に通知する。この特許のハードウェアお
よび1iIItM手段は本発明のaツクビットシステム
とは全く異なるものである。
Hogan他による米国特許第4053948号には、
登録索引テーブル(DLAT)の各エントリに対してカ
ウンタを含む特別の手段を備えたアドレス変換システム
が示されている。
Hoffman他による米国特許第4218743号は
、18Mシステム/38の再配置アーキテクチャに関し
て以下に列挙する多数の特許の例である。
この特許は仮想記憶コンピュータシステムにおいてIl
oが処理するアドレス指定を簡単にする方法を示唆して
いる。仮想記憶システムの課題に係る他の特許は第41
70039号、第4251860号、第4277862
号、および第4215402号である。
Cord i他による米国特許第4020466号もま
た、ジャーナリングおよびコピーバック手順を容易に行
うための特別の手段を組み込んだ記憶システムを示すも
のである。この特許は、本発明のロックビット制御手段
とは全く関係がない。
Law lorによる米国特許第3942155号は仮
想記憶システムのセグメント区分形式を開示しているが
、この特許で使用されているセグメント化は、仮想アド
レスを拡張するために利用される本発明のセグメント化
オペレーションとは全く異なるものである。
種々のハツシュ方式を用いて仮想記憶変換機構をアクセ
スする例として米国特許第4215402号を挙げてお
く。
C9課題を解決するための手段 本発明の手法に従って、アドレス変換および全体的な記
憶制御機能に対してハードウェアおよびソフトウェアを
十分に利用した仮想記憶サブシステムが提供される。シ
ステム内の嫌でのデータおよびプログラムは、それらが
どこに所在するのが、それらが−時間なものであるのか
、カタログされているのが、共有されているのかまたは
私用のものなのが、回復可能なのかまたは回復不能なの
か、ということに関係なく1、統一的にアドレス指定さ
れる。このことは、例えば、キャッシュ内に存在する私
用の回復不能な計算データがキャッシュの速度で回復で
きることを意味する。一方さらに、データがたとえ共有
されていても、キーを保持する特定のプログラムによる
アクセスもまたキャッシュの速度で行われる。
こうして、このような統一的ラインのアドレス指定すな
わち°“単一レベル記憶°°アドレス指定を可能にした
ここに開示する記憶サブシステムの構成は、32ビツト
の仮想アドレスを使用する。この仮想アドレスはCPU
によって生成されるもので、そのうちの4ビツトで組に
なった16個の12ビツトセグメントレジスタを指定す
る。選択されたセグメントレジスタの内容と仮想アドレ
スの残りの28ビツトを連結して40ビツトの有効アド
レスを生成する。従って、各セグメントは、228バイ
トまでのデータを含むことができることが容易に理解き
れるであろう。この新しい40ビツトのアドレスは依然
として仮想アドレスであることに留意されたい。実アド
レスが存在するか否かを判断するために高速の部分連想
式変換索引緩衝機構を初めにアクセスすることによって
この40ビツトのアドレスが変換きれる。実アドレスが
存在しない場合は、他の変換システムと同じく、ページ
テーブルを参照してアドレス変換を実施する。
本構成の別の個有の特徴は、変換索引緩衝機構だけでな
くさらにページフレームテーブル内にも、ロッキング、
ジャーナリングおよび許可を検査するための特殊ロック
ビットを設けることである。
各々の実アドレスに対して変換索引緩衝機構およびペー
ジフレームテーブルに複数のロックビット(実施例では
16個)が設けられることに留意されたい。1ページ内
の各ラインに対して1つのロックビットが与えられ、シ
ステム内のジャーナリング制纒のために使用される。ア
クセス手段およびソフトウェア手段がさらにシステムに
設けられ、それによってこうしたビットはハードウェア
だけでなくソフトウェアによるアクセスも可能である。
本発明の主な目的は非常に広大な仮想アドレス空間を有
する仮想記憶サブシステムを提供することである。
本発明の他の目的は全ての記憶オペレーションにおいて
゛単一レベル記憶装置°°として機能するような記憶サ
ブシステムを提供することである。
本発明の他の目的は正しくない変換テーブルを使用した
ことによるアドレス指定エラーが発生しにくいような記
憶サブシステムを提供することである。
本発明の他の目的はそうした仮想記憶サブシステム内で
ジャーナリングおよび関連するデータ保護を極めて容易
に行う制御機構を提供することである。
本発明の他の目的はソフトウェアおよびハードウェアの
いずれにとっても使用可能であるそうした制御機構を提
供することである。
本発明のこうした目的、特徴、および利点は、添付図面
に図示するように以下に示す発明の好ましい実施例の詳
細な記述から明らかになるであろう。
D、実施例 本発明の目的はここで開示される記憶制御装置によって
一般的に達成される。この記憶制御装置は、前に一般的
な形で述べたアドレス変換アーキテクチャを実施するホ
ストCPU記憶チャネルと接続する。アドレス変換アー
キテクチャは後でさらに詳しく説明する。変換機構は、
16メガバイトまでの容量を有する記憶装置とのインタ
ーフェースに要する論理を含む。記憶装置はインタリー
ブしてもしなくてもよいし、スタティック型でもダイナ
ミック型でも構わない。変換機構は機能的に3つのセク
ションに分けられる(第1図参照)。
CPU記憶チャネルインターフェース(CSC)10の
論理は共通フロントエンド(CFE)のセクション12
を有する。セクション12は記憶チャネルからアドレス
変換論理14および記憶IrIaI+論理16へ適切な
プロトコルを提供する。記憶チャネルとの通信は全てこ
の論理によって取り扱われる。アドレス変換論理は、記
憶チャネルより受は取った仮想アドレスを、記憶装置の
アクセスに用いられる実アドレスに、変換する。この論
理は16個のコングルエンスフラスを備えた2ウエイの
セットアソシアティブとして構成された変換索引緩衝機
構(TLB)を含む。必要な場合に主記憶装置にあるペ
ージテーブルから自動的にTLBエントリを再ロードす
る論理が設゛けられる。記憶制御論理16はアドレス変
換論理14から記憶装置へのインターフェースを提供す
る。この論理はダイナミックメモリリフレッシュ制御も
また備えている。
本発明は、主として、よく知られたコンピュータ回路、
装置、および機能ユニットの新規な組合せと機能動作と
に関するものであって、それらの特定の詳細な構造に係
るものではない。従ってこうしたよく知られた回路、装
置、およびブロックの構造、制御および、配置は本発明
に関係する部分だけを詳細に示した容易に理解できるブ
ロック表現および機能図の形で図面に偶因されている。
これは、構造的な詳細によって本発明が不明瞭になって
しまうことのないようにするためである。
この構造的な詳細はその機能的な記述だけで当業者には
容易に明らかなものである。本発明に係るそうした特徴
を強調するために、さらに、これらのシステムの様々な
部分は適切に整理され機能的に記述されている。以下の
記述により、当業者は開示された記憶サブシステムの実
施可能性を理時解でき、さらに、様々なコンピュータア
ーキテクチャの任意の1つにそれを組み込むことができ
るであろう。
第1図は本アドレス変換システムの前述の機能部分を示
す。本アドレス変換システムは超LSI技術によって1
つの論理チップに集積できるであろう。
本システムでアドレスが変換されるか(仮想アドレスと
して取扱われるか)実アドレスとして取扱われるかは、
CPU記憶チャネル(C3C)上の変換モードピット(
Tビット)の値によって制御される。C5Cに要求を出
す各装置は要求の度に変換モードピットの値を制御する
。TビットはCPUが供給する記憶装置アクセス命令の
適切なフィールドから取り出される。I10装置による
記憶装置アクセスの場合は、Tビットの値はアダプタ接
続機構によって生成される。Tビットが1の場合は、記
憶装置アドレス(命令取出し、データロード、データ記
憶)は変換される。Tビットが0の場合は、記憶装置ア
ドレスは実アドレスとして取扱われる。
ここに開示されたアーキテクチャにおいては、変換が行
われない記憶装置要求にとっては、記憶装置保護は有効
ではない。
参照および変更の記録は、変換が行われるかどうかには
関係なく全ての記憶装置にとって有効である。
アドレス変換が行われる場合は、変換オペレーションは
以下に示すように論理的に進められる。
また以下に示すような厳密な論理的シーケンスではなく
異なる各部分の機能を並行して実行するようにしてもよ
い。
本アドレス変換機構は°°単一レベル記憶“アドレス指
定構造を実現する。ここに開示された良好な実施例では
アドレス変換は以下に示す事柄を支援する。
1、複数の独立した仮想アドレス空間 264ギガバイトのアドレス空間 3、要求時ベージング 4.2048バイトまたは4096バイトのページ 5、記憶装置保護 6、命令およびデータのための共有セグメント’112
8バイトのラインのジャーナリングおよびロッキング 8.16メガバイトまでアドレス指定可能な実記憶 9、実ページごとの参照ビットおよび変更ビット 10、実アドレスロード、TLBエントリ無効化、およ
び記憶装置例外アドレスのためのハードウェア支援 記憶装置は、各々256メガバイトの容量を有する40
96個のセグメントから成る、単一の40ビット仮想ア
ドレス空間に写像きれているかのごとく取り扱われる。
C8Cより受は取った32ビツトのアドレスのうち上位
4ビツトを用いて16個のセグメントレジスタのうちの
1つを選択し、選択されたセグメントレジスタの内容1
2ビツトと、有効アドレスの残りの28ビツトとを連結
することによって、32ビツトのアドレスを40ビツト
の(長形式仮想)アドレスに変換する。そうして変換機
構が記憶装置アクセスのために40ビツトの仮想アドレ
スを実アドレスに変換する。容易にわかるように、ハー
ドウェアをわずかに変更するだけで仮想アドレスの大き
さを変更することも可能である。
アドレス指定可能な記憶装置の容量は、常に、4ギガバ
イトのみである。言い換えれば、16個のセグメントレ
ジスタによって各々256メガバイトの容量を有する1
6個のセグメントが指定可能である。従ってオペレーテ
ィングシステムは適切な値をセグメントレジスタにロー
ドすることによって複数の独立した仮想アドレス空間を
生成することができる。限られた場合には、このように
して、256個の全く独立した4ギガバイトアドレス空
間を生成できるかも知れないが、(中核コードのような
)M&つかのセグメントが複数のアドレス空間で共有さ
れる可能性の方が高い。
IBMシステム/370と同様な記憶装置保護が2にバ
イトまたは4にバイトのページ単位で備えられる。25
6メガバイトのセグメントごとに独立して指定される保
護キー(S/370のPSWにあるキーと等価なもの)
によって記憶保護および取出し保護が達成される。なお
、異なるセグメントレジスタに同一の値(セグメント識
別子)をロードしておくことによって、異なるタスク間
でセグメントを共有することが可能となる(特にタスク
間通信の場合などに有益である)。
持続記憶クラスに対するサポートは、各仮想ページに関
連する一組のロックビットによって与えられる。このロ
ックビットは記憶装置保護の細分性を記憶装置の゛ライ
ン゛°にまで効果的に拡張しく2にページの場合は12
8バイト、4にページの場合は256バイト)、こうし
てオペレーティングシステムは持続変数の変更を検知し
それを自動的にジャーナリングすることができる。ここ
で云う持続記憶クラスは、その内容が例えばディスクフ
ァイル記憶装置に永続的に記憶きれているものを意味す
る。
以下の用語は本明細書で使用され、明瞭かつ簡便のため
にここで定義される。
バイトインデックス 2にバイトページの場合、ページまたはページフレーム
内で1つのバイトを識別するためのOないし2047 
(11ビツト)の範囲の数値[4にバイトページの場合
ばOないし4095 (12ビツト)]。バイトインデ
ックスは有効アドレスの下位11ビツト[12ビツト]
から取り出される。
変更ビット 各ページフレームに関連するビット。
そのフレームに対して記憶装置参照(書込みのみ)が成
功した場合は常に°1°°にセットされる。
有効アドレス 記憶チャネル上の装置によって生成される32ビツトの
記憶チャラネルアドレス。このアドレスは、命令取出し
、データロード、またはデータ記憶の際にポストCPU
によって生成できる。また、DMAアドレスのように、
記憶チャネル上の■10装置によって生成することもで
きる。
ライン 128バイトごとの境界を有する1ページの128バイ
ト部分、これは1つのロックビットによって制alTき
れる記憶容量である。
ロックビット 持続記憶セグメントの各ページに関連した16ビツトの
うちの1つ。各ロックビットは記憶装置の1つのライン
に関連する。トランザクションID1書込みビット、お
よびロックビットの値を組合せて、1つのラインに対し
、持続記憶セグメントにおいて記憶装置アクセス要求が
許可きれているかまたは禁止されているかを決定する。
ページ 2048バイト[または4096バイト]の境界で区切
られた2048バイト[または4096バイト]の記憶
単位。゛°ベージ゛°は正しくは仮想記憶に関し、一方
、゛ページフレーム内°は実記憶に関するものであるが
、歴史的に°“ページ゛°は仮想記憶および実記憶のい
ずれにも使用されている。
ページフレーム 2048バイト[または4096バイト]の境界で区切
られた2048バイト[または4096バイト]の記憶
単位。ページはページフレーム内または外部記憶装置(
すなわちディスク)上に存在する。
ページテーブル 主記憶装置内のハツシュアンカーテーブルおよび逆ペー
ジテーブルのエントリを組合せたもので、仮想アドレス
から対応する実アドレスへの変換に用いられる(ここで
はHAT/IPTとも云う)。
保護キー 各セグメントレジスタにある1ビツトの値であって、現
在実行中のプロセスが所与のセグメント内のデータをア
クセスできるかどうかを示す。この保護キーは機能的に
はIBMシステム/370のPSWキーと似ているが、
アドレス指定可能な全ての記憶域に対して大域的に適用
されるのではなく、各セグメントに対して個々に適用さ
れる。
実アドレス 変換オペレーションの結果、実ページインデックス(1
0ビツトないし13ビツト)と有効アドレスの下位11
ビツト[または12ビツト]を連結したもの(実ページ
インデックス11バイトインデツクス)。
実ページインデックス 実記憶のページフレームを識別するためのOないし81
92 (13ビツト)の範囲の数値。この値を10ビツ
トまで減らすことによって、実記憶の最大i量を2にバ
イトのページで2Mバイトまでに制限する場合もある。
参照ビット 各ページフレームに関連するビット。そのフレームに対
して記憶装置参照(読取りまたは書込み)が成功した場
合は常に“1゛°にセットされる。
セグメントID 256Mバイトの仮想記憶セグメントを識別するための
Oないし4095 (12ビツト)の範囲の数値。セグ
メントIDと仮想ページインデックスとを連結して、4
0ビット仮想アドレス空間の1ページを指定する。
記憶装置キー 特定の1ページに関連した保護レベルを識別するための
、各TLBエントリ内の2ビツトの値。
このキーは、機能的にはシステム/370の各べ−ジに
関連した記憶装置キーに似ている。
TLB 変換索引緩衝機構。TLBは仮想−実写像を含むハード
ウェアである(常にこの写像の一部のみをTLBに含ま
せる場合もある)。この写像の他に、各TLBエントリ
は、変換TD、記憶装置キー、およびロックビットのよ
うな、それに関連するページに係る他の情報を含む。
トランザクションID 現在TLBエントリにロードされている一組のロックビ
ットの゛所有者°゛を識別するためのOないし255 
(8ビツト)の範囲の数値。
仮想アドレス セグメントIDと有効アドレスの下位28ビツトとを連
結することによって本アドレス変換機構内で形成される
40ビツトのアドレス値。(すなわち、セグメントID
11仮想ページインデツクス11バイトインデツクス)
。
仮想ページインデックス 2にバイトページの場合、仮想記憶セグメント内の1ペ
ージを識別するためのOないし131072 (17ビ
ツト)の範囲の数値[4にバイトページの場合ばOない
し65536 (16ビツト)]。
仮想ページインデックスは有効アドレスのビット4〜2
0[4〜19]から取り出される。
記号11は連結を表わす。
本アドレス変換機構を支援するのに要するハードウェア
を以下に説明する。実施態様によってはフィールド輻を
変更することもできることに留意されたい。
TLBは任意の個数のエントリから成り、各エントリは
成るページの仮想アドレスからその実アドレスへの変換
を制御する。
TLBの詳細な構成は実施態様に依存する。2つの実施
態様が可能である。セグメントIDI仮想ページインデ
ックスによってアドレス指定され、かつ、実記憶フレー
ムあたり1つのエントリを含む内容アドレス記憶装置(
CAM)。CAMエントリのインデックス(序数)は実
ページインデックスに等しい。仮想ページインデックス
の下位ビットの成る数値によってアドレス指定きれるセ
ットアソシアティブTLBo実ページインデックスはT
LBエントリの1つのフィールドに含まれる。
TLBの形に対する唯一の制約は、非CAM型の実施が
少なくとも2ウエイのセットアソシアティブでなければ
ならないことである。各TLBエントリは、rOR命令
およびIOW命令を用いて、個別に、CPUから読み取
られたり書き込まれたりする。TLBエントリは以下に
示すフィールドを含む。
32ビツトの入力有効アドレス(CPUまたはI10装
置より)は、初めに、セグメント識別子を有効アドレス
に連結することによって40ビツトの仮想アドレスに拡
張きれる。fi想アドレスは、次に、等価な実アドレス
への変換のために変換ハードウェアに供給される。仮想
アドレスは以下に示すプロセスによって実アドレスに変
換される。
入力有効アドレスの上位4ビツトを用いてセグメントテ
ーブルを検索し、16個のセグメントのうちの1つを選
択する。12ビツトのセグメント識別子、″°特殊セグ
メント°°ビット、およびキービットは、選択きれたセ
グメントレジスタから得られる。12ビツトのセグメン
ト識別子は仮想アドレスの生成のために用いる。特殊セ
グメントビットおよびキーピットは次の示すアクセス有
効化のために用いる。第2図はセグメントテーブルの形
式を示している。
12ビツトのセグメント識別子は入力有効アドレスのビ
ット4ないしビット31に連結されて40ビツトの仮想
アドレスを生成する。有効アドレスのうち、2にページ
の場合は下位11ビツト、または4にページの場合は、
12ビツトが、選択きれた実ページのためのバイトアド
レスとして使用される。これらのビットは変換プロセス
によって変更されることはない。仮想アドレスの残りの
29 (28)ビットは、次に、変換ハードウェアに与
えられる。第3図は、セグメント識別子および記憶装置
有効アドレスを用いて行われる仮想アドレスの生成を示
す。
本明細書に示すアドレス変換システムは、最後に使用さ
れた仮想アドレス(本実施例では32)の変換を含む変
換索引緩衝機構(T L B)を、利用する。変換のた
めに新しい仮想アドレスがTLBに与えられる場合に、
ハードウェアを用いてTLBエントリを主記憶ページテ
ーブルから更新する。変換ハードウェアの簡単化きれた
データフローを第4図に示し、各TLBの形式を第5図
に示す。
システムは、ITLBあたり16個のエントリを備えた
2つのTLB (16個のコングルエンスフラスを備え
た2ウエイのセットアソシアティブ)を利用する。仮想
ページインデックスの下位4ビツトが同時に両方のTL
Bをアドレス指定するのに用いられる。各TLBのアド
レスタグエントリは、仮想ページインデックスの残りの
ビット(2にページの場合は25ビツト、4にページの
場合は24ビツト)に連結されたセグメント識別子と、
比較される。2つの比較のいずれかが等しくかつそのT
LBエントリが有効(有効ビットによって示される)な
らば、関連するTLBが所与の仮想アドレスのための変
換情報を含む。
選択されたTLBエントリ内の実ページ番号フィールド
(RPN)は主記憶装置にある実ページの番号を含む。
実ページ番号は所与の仮想アドレスに写像される。これ
が特殊セグメントでない場合は、アクセスが許可される
前に、TLBエントリからのキービットとセグメントレ
ジスタからのキービットとを用いて、記憶装置保護違反
の有無を検査する。セグメントレジスタの特殊ビットで
示されるようにこれが特殊セグメントである場合は、ア
クセスが許可される前に、ロックビット処理が実行され
る。記憶装置保護機構は、特殊セグメント処理と同様、
後で説明する。アクセスが許可されれば、主記憶装置が
アクセスされて、そのページに関連する参照および変更
ビットが更新される。参照および変更ビットのセットも
後で説明する。
2つのTLBの比較から一致が得られない場合は、アド
レス変換論理は主記憶装置にあるページテーブルエント
リから不在TLBエントリの再ロードを試みる。主記憶
ページテーブルは実記憶に常駐し、論理的には2つの部
分すなわちハツシュアンカーテーブル(HAT)と逆ペ
ージテーブル(IPT)から成る。HATはハツシング
によって任意の仮想アドレスを任意の実ページに写像で
きる。
逆ページテーブル(I PT)は各々の実ページフレー
ムに関連する仮想アドレス(もしあれば)を指定する。
IPTは実ページ番号によって指標きれるエントリのア
レイとして構成され、各エントリはそれに関連するセグ
メントIDおよび仮想ページ番号を含む。
IPTは実ページ番号によって指標きれるので、所与の
実アドレスに対する仮想アドレスを決定するのは極めて
容易である。所与の仮想アドレスに対する実アドレスを
効率よく決定するためには、パッシングによって仮想ア
ドレスをアンカー点に写像すること、およびエントリを
連鎖してハツシュ衝突を解決すること、が必要である。
これは当業者には容易に理解されるであろう。
ハツシュアンカーテーブル(HAT)は論理的にはIP
Tから分離されている(ハードウェアの効率化という理
由から物理的にはIPTに組み込まれているが)。第6
図に示すように、ハツシュ関数は仮想アドレスをHAT
内の1つのエントリのインデックスに変換し、そのエン
トリが同じHATインデックスを持ったIPTエントリ
(実ページ)の連鎖における最初のエントリを指定する
。
仮想アドレスの一致を求めてIPTエントリの連鎖を探
索した場合、所望の仮想アドレスに対するIPTインデ
ックス(従って実アドレス)が得られるか、又は、一致
が見出されることなく (ページが写像されていない)
探索が終了する。本実施例では実記憶の各ページに対し
て1つのHATおよびIPTエントリが存在する。
仮想アドレスから実アドレスへの変換は、初めに、有効
アドレスの選択された下位ビットとセグメント識別子か
らのビットとを排他的にオアすることによって、達成さ
れる。この“°ハツシュきれた゛アドレスはHATへの
指標付けに用いられる。
選択されたHATエントリは所与の仮想アドレスのため
の、探索されるべtIPTエントリのリストの開始点へ
のポインタである。探索されるべきIPTエントリのリ
スト内のエントリは、次の探索すべきIPTエントリを
指定する各エントリ内のポインタによってリンクされて
いる。rPTエントリ中のフラグビットを用いて探索連
鎖の終了点が示される。ハツシングは、一般に幾つかの
異なった有効アドレスに対して同じHATアドレスを生
成するので、探索されるべきIPT連鎖には仮想アドレ
スエントリが幾つか含まれていることに留意されたい。
ハードウェアの効率化という理由から、HATおよびI
PTは、1つのインデクシング構造でアドレス指定でき
る1つの構造に組み合わされる。
組み合わされたHATおよびIPTには、実記憶の各ペ
ージに対して1つのエントリが存在する。
例えば、2にバイトのページで構成された1Mバイトの
実記憶は512のエントリを要し、4にバイトのページ
で構成された512にバイトの実記憶は128のエント
リを要する。組み合わきれたHATおよびrPTのエン
トリの形式は、第7図に示す。HAT/TPTは各エン
トリに対して16バイトを有し、テーブルサイズの倍数
のアドレス場所から始まる。
各エントリの第1ワードはアドレスタグを含む。
アドレスタグはセグメント識別子と仮想ページインデッ
クスとを連結して作られる。2にページの場合は、アド
レスタグは29ビツト、4にページの場合は28ビツト
であることに留意されたい。
4にページサイズが使用されたとすれば、28ビツトの
アドレスタグがビット3ないしビット30に記憶される
。ビット2は予約されている。第1ワードは、さらに、
2ビツトキーを含む。2ビツトキーは後に説明する記憶
装置保護のために使用される。
第2ワードは、HATポインタ、IPTポインタ、およ
び各ポインタのための有効ビットを含む。
ポインタの使用については後で説明する。
第3ワードは、書込み保護、ロックビット、および特殊
セグメントのためのTIDを含む。これらのフィールド
の使用についても後で説明する。
第4ワードはTLBの再ロードには使用されず、将来の
使用に備えて予約きれている。
HAT/IPTベースアドレスは変換制御レジスタ(後
で説明する)内の1つのフィールドであり、これを用い
て主記憶ページテーブルの開始アドレスを計算する。H
AT/rPTベースアドレスに含まれる値は、記憶装置
およびページのサイズに依存して表1に示す量で乗算き
れて、それによって、主記憶ページテーブルの開始アド
レスが得られる。表1は、さらに、記憶装置サイズおよ
びページサイズの各々に対するHAT/IPTのサイズ
も示す。
い4 HATアドレス生成 前述のように、HATインデックスは、セグメント識別
子から選択されたビットと有効アドレスからのビットと
を排他的オアして計算される。使用されるビット数は、
結果インデックスがHAT/IPTのn個のエントリの
うちの1つを選択するように選ぶ。このパッシング操作
を第6図に示す。HATインデックス生成に用いるビッ
トを表2に列挙する。選択されたHATエントリの記憶
アドレスは、 HAT/IPTベースアドレス+HATインデックス1
10100 として計算される。
選択されたHATエントリがアクセスきれて、IPT探
索連鎖が空いているかどうかを判定するために空きビッ
トが検査きれる。もし空きビットが1ならば、所与の仮
想アドレスへ写像されるベージは存在せず、後で説明す
るように°°ベージ不在°。
が報告きれる。もし、空きビットがOならば、IPT探
索連鎖にエントリが存在してIPT内のエントリが探索
される。そのとき、選択されたHATエントリのHAT
ポインタフィールドが、IPT探索連鎖の開始点へのポ
インタとして使用される。
0 前にアクセスされたHATポインタは、IPTへの開始
インデックスとして使用きれる。最初のIPTエントリ
の記憶装置アドレスは、HAT/IPTベースアドレス
+HATポインタ+10000 として計算される。
IPT内の最初のエントリに対してアドレスが行われ、
そのアドレスタグと所与の仮想アドレスとの比較が行わ
れる。両者が一致すれば、仮想アドレスに割り当てられ
た実ページが見つかったことになり、不在TLBエント
リを再ロードすることができる。TLBエントリの再ロ
ードは後で説明する。両者が一致しなければ、■PTポ
インタをアクセスしてIPT探索を続行する。IPTポ
インタは、 HAT/IPTベースアドレス+HATポインタ!10
100 として計算される。次にIPTポインタがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかど
うかを判定するために最終ビットが検査される。最終ビ
ットがOならば、付加的なエントリが存在し探索処理を
続行する。最終ビットが1ならば、探索されるべき付加
的なIPTエントリは存在せず、“ベージ不在゛が報告
される。
探索されるべき付加的なIPTエントリが存在すれば、
探索のための次のIPTエントリのアドレスは、 HAT/rPTベースアドレス+HATポインタ110
000 として計算される。このアドレスを用いてIPTの次の
エントリをアクセスし、選択されたエントリに含まれる
アドレスタグと所与の仮想アドレスとの比較を行う。両
者が一致すれば、仮想アドレスに割り当てられた実ペー
ジが見つかり、不在TLBエントリを再ロードすること
ができる。両者が一致しなければ、探索されるべき次の
エントリへのポインタをアクセスして探索処理を続行す
る。次のエントリへのポインタのアドレスは、HAT/
IPTベースアドレス+IPTポインタ+10100 として計算される。次に、このワードがアクセスされて
、IPT探索連鎖に付加的なエントリが存在するかどう
かを判定するために最終ビットが検査きれる。最終ビッ
トが1ならば、探索されるべき付加的なIPTエントリ
は存在せず、°°べ一ジ不在°°が報告きれる。最終ビ
ットがOならば、付加的なエントリが存在し探索処理を
続行する。
IPTエントリのアドレスタグが所与の仮想アドレスと
一致するか、または、一致が見出されずかつ最終ビット
が探索連鎖内でそれ以上のエントリの存在はないという
ことを示すまでは、現IPTポインタを用いて前述の処
理によって後続のエントリのアクセスが行われる。
以下の記載は、仮想アドレスからIPTエントリのイン
デックス(従って対応する実アドレス)への変換に要す
るステップを要約したものである。
(1)仮想ページ番号の下位13ビツトを選択する。
これは、4にバイトのページが使用されていれば有効ア
ドレスのビットマないし19であり、2にバイトのペー
ジが使用されていればビット8ないし20である。
(2)有効アドレスのビットOないし3で指定きれるセ
グメントレジスタの12ビツトの内容を選択する。左端
に゛°0°゛ビットを連結して13ビツトのフィールド
を形成する。
(3)ステップ(1)および(2)からの2つの13ビ
ツトフイールドを排他的オアして13ビツトのハツシュ
アンカーテーブルエントリ番号を形成する。
(4)ステップ(3)の値を左方に4ビツトだけシフト
する。これは物理的に所望のHATエントリを含むIP
Tエントリの開始点のバイトオフセットを形成する。
(5)HAT/IPTエントリのアドレスを計算する。
これは、ステップ(4)の結果とIPTの開始アドレス
とを加算することによってなされる。工PTが、2のべ
き乗バイトの境界の所から始まるように制約されていれ
ば、この°°加算°゛はORまたは連結で置き換えても
よい。
(6)空きIPT連鎖を検査する。HAT/IPTエン
トリの°’E”(”空き゛)ビットを検査する。
E=1ならば、IPT連鎖は空いている(HATポイン
タは無効):探索が不成功に終る;仮想ページは写像さ
れていない。
(7)IPT連鎮が空いていなければ、アドレス指定さ
れたHAT/IPTエントリからHATポインタを選択
する。この13ビツトの値は、同じハツシュ結果[ステ
ップ(3)]を有するエントリの連鎖内の最初のIPT
エントリのインデックスである。
(8)IPTインデックスの値を左方に4ビツトだけシ
フトする。これは、仮想アドレスの一致を検査すべtI
PTエントリの開始点のバイトオフセットを形成する。
(9)IPTエントリのアドレスを計算する。これは、
ステップ(8)の結果とIPTの開始アドレスとを加算
することによってなされる。IPTが、2のべき乗バイ
トの境界の所から始まるように制約されていれば、この
°゛加算°°はORまたは連結で置き換えてもよい。
(10)仮想アドレスの比較。セグメントIDをIPT
エントリからの仮想ページ番号(28ビツトまたは29
ビツト)に連結したものと、有効アドレスで指定された
セグメントレジスタの内容[ステップ(2)]を有効ア
ドレスの仮想ページ番号に連結したものと、を比較する
。
(11)一致すれば、探索は成功裏に終る。このエント
リは所望の仮想アトドレスに対応するものである。その
インデックス番号は要求された実ページ番号に等しい。
(12)一致しなければ、連鎖の終りを検査する。IP
Tエントリの°l L II (IT最終″)ビットを
検査する。L=1ならば、そこがこの連鎖における最終
のIPTエントリである。探索は不成功に終り、仮想ペ
ージは写像されていない。
(13)連鎖の終りでなければ、IPTエントリからI
PTポインタフィールドを選択する。この13ビツトの
値は、検査されるべき、次のIPTエントリのインデッ
クスである。
(14)ステップ(8)へ進む。
TLB再ロード 所与の仮想アドレスに一致するアドレスタグフィールド
を持ったIPTエントリが見つかると、不在TLBエン
トリが再ロードされる。再ロードは、不在仮想アドレス
のコングルエンスフラスに対して最も長い間使用されな
かったTLBエントリを選択することならびに選択され
たエントリに所与の仮想アドレスタグフィールド、対応
する実ページ番号およびキービットをロードすること、
から成る。もしこれが、セグメントレジスタ内の特殊ビ
ットによって指示されるような特殊セグメントであるな
らば、書込みビット、TIDlおよびロックビットも再
ロードされる。
各コングルエンスフラスで最も長い間使用されなかった
TLBエントリを決定するのにハードウェアが使用され
る。仮想アドレスの下位ビットはコングルエンスフラス
を確定するので、あとは、どのTLBが選択きれたエン
トリを置換すべきであったのかを決定するだけでよい。
そうして、どのTLBが、所与のコングルエンスフラス
において最も長い間参照されなかったエントリを有して
いたかという事に基づいて、2つのTLBのうちの一方
が選択される。
所与のコングルエンスフラスに対して最も長い間使用さ
れなかったTLBエントリがひとたび決定されれば、選
択されたTLBエントリを再ロードすることができる。
アドレスタグフィールドおよびキーピットは、主記憶装
置に含まれるIPTエントリから再ロードされる。この
エントリのアドレスはIPT探索プロセスにおいて事前
に計算されている。探索プロセス中に計算されたIPT
インデックスは実ページ番号に等しいので、この値を用
いてTLBの実ページ番号フィールドを再ロードする。
セグメントレジスタ内の特殊ビットによって示されるよ
うに、これが特殊セグメントである場合は、TIDおよ
びロックビットも再ロードされる。TIDおよびロック
ビットは、選択されたIPTエントリの第3ワードをア
クセスすることによって再ロードされる。
記憶装置アクセス制御 本アドレス変換機構は2つのアクセス制御機構を提供す
る。第1の機構は非特殊セグメント用で、実記憶の各ペ
ージに対する読取り/書込み保護を与える。第2の機構
は特殊セグメント専用で、持続データタイプを支援する
のに用いられる。これらのアクセス制御機構は変換きれ
たアクセスにだけ適用する。もしいずれかの機構によっ
て違反が検知きれれば、記憶装置アクセスは終了して、
後で説明するように例外が報告される。
記憶装置保護処理 記憶装置保護処理は非特殊セグメントだけに適用する。
TLBによってひとたび仮想アドレスと実アドレスとの
対応がとられると、適正なアクセス権限を保証するため
、要求されたアクセスが検証きれる。この機能によって
各ページはアクセスなし、読取り専用、または読取り/
書込みとしてマークきれる。
アクセス制御は、選択きれたセグメントレジスタ内の1
ビツトの保護キー、TLBエントリ内の2ビツトキー、
およびアクセスがロードオペレーションであるのか記憶
オペレーションであるのか、ということに関係している
。アクセスは表3に示すようにして制御すれる。
TLB内のキー 00 1 0 1 セグメントレジスタ 内の保護キー 表3 保護キー処理 アクセス ロード 許可 禁止 許可 許可 許可 許可 許可 許可 記憶 許可 禁止 許可 禁止 許可 許可 禁止 禁止 もしアクセスが許可されなければ、変換は終了して保護
例外がCPUに報告される。
ロックビット処理 ロックビット処理は、選択されたセグメントレジスタ内
の特殊ビットによって示される特殊セグメントだけに適
用される。特殊セグメントは持続データを支援するのに
用いられる。ロックビット処理によって、オペレーティ
ングシステムは持続変数の変更を自動的に監視すること
、変更をジャーナルに記録すること、陰のページを生成
すること、および、データベースの一貫性確保のための
他の処理を実行すること、が可能である。ロックビット
は、また保護の単位を記憶装置保護機能によるページサ
イズ(2にバイトまたは4にバイト)から、128バイ
トまたは256バイトのラインまで、細かくする。2に
ページの場合は128バイトの保護単位が実現され、4
にページの場合は256バイトの保護単位が実現きれる
。2にページの場合は有効アドレスのビット[21:2
4]によって個々のラインのロックピットが選択され、
4にページの場合は有効アドレスのビット[20:23
]によって個々のラインのロックピットが選択される。
アクセス制御は、選択されたTLBエントリ内の1ビツ
トの書込みキー、選択されたラインのロックビット値、
TrD比較、およびそのアクセスがロードオペレーショ
ンであるのか記憶オペレーションであるのか、というこ
とに関係している。
アクセスは表4に示すようにして制御される。
爾 目 鍔 旨 巽 七 円 出 シ 蜆 へ ロックビット違反の報告にはデータ記憶例外が使用され
る。この違反は必ずしもエラーを表わすものではなく、
単に、新たに変更きれたラインがオペレーティングシス
テムによって処理されるべきである、という事を表わす
ものでよい。
参照および変更ビットは実記憶の各ページごとに備えら
れる。これらのビットは本アドレス変換機構の外部のア
レイの中にあって、記憶装置アクセスの度に要求に応じ
て更新される。参照ビットは、読取りまたは書込みのた
めに対応する実ページがアクセスされると、1にセット
される。変更ビットば、対応するペー ジが書き込まれ
ると、セットされる。
関連するCPUからのI10読取り命令(10R)およ
びI10書込み命令(IOW)によって、参照および変
更ビットをアクセスすることができる。実記憶の各ペー
ジのための参照および変更ビットは、I10ベースアド
レスレジスタにX’1000”を加えたものによって指
定されるI10アドレスの所から始まる。所与のページ
のための参照および変更ビットのI10アドレスは次式
ニよって与えられる。
I10アドレス=工10ベースアドレスレジスタによっ
て指定されたアドレ ス +X”  1001  ’ 十ページ番号 各I10アドレスは実記憶の1ページに対する参照ビッ
トおよび変更ビットを含む。参照ビットおよび変更ビッ
トの形式を第8図に示す。
参照ビットおよび変更ビットへのアクセスによって転送
きれるデータ′は以下のように定義される。
ビットO:29 ゼロ。
ビット30 参照ビット。対応する実ページが読 取りまたは書込みのためにアクセス されると、1にセットされる。
ビット31 変更ビット。対応する実ページが書 込みのためにアクセスされると、l にセットされる。
参照ビットおよび変更ビットはハードウェアによって初
期設定されることはない。それらはシステムソフトウェ
アのIOW命令によって初期設定およびクリアが行われ
る。参照ビットおよび変更ビットは、それらをセットま
たはクリアするプログラムを実行することによってセッ
トすることができるので、参照ビットおよび変更ビット
をクリアまたはセットする書込みの後に読取りが続いて
も、必ずしも書き込まれたのと同じデータを読み取る必
要はない。
制御レジスタ 記憶装置の構成、ページテーブルアドレス、およびI1
0ベースアドレスを定めるために用いる制御レジスタが
幾つかある。これらのレジスタはCPUからのI10読
取り(IOR)命令およびI10書込み(IOW)命令
によって初期設定(ロード)される。それらの構成およ
び形式を第9図ないし第18図に示す。これらのレジス
タは監視プログラム状態になって初めてアクセス可能と
なる。
I10ベースアドレスレジスタは、I10アドレスのど
の64にブロックが変換システムに割り当てられている
のかを指定する。I10ベースアドレスは、I10ベー
スアドレスレジスタに含まれる値に65536 (X’
 10000°)を乗じたものに等しい。I10ベース
アドレスレジスタの形式を第9図に示す。
I10ベースアドレスレジスタは以下のように定義され
る。
ビットO:23 予約されている。
ビット24:31 110ベースアドレス。この8ピツ トの値は、I10アドレスのどの6 4にバイトのブロックが変換システ ムに割り当てられているかを定義す る。すなわち、これら8ビツトは変 換システムによって認識された■/ 0アドレスの最上位の8ビツトであ る。
”RAM指定レジしタ゛°は、RAMサイズと、RAM
開始アドレスと、リフレッシュレートと、パリティチエ
ツクまたはエラー訂正符号(FCC)が使用されている
か否かとを規定する。FCCおよびパリティチエツク手
法は本発明の一部を形成せず、またその内容も周知であ
るから、これ以上説明しない。RAM指定レジスタの形
式は第10図に示す。
RAM指定レジスタは以下のように定義される。
ビット0:10 予約されている。
ビット10:18 リフレッシュレート。この9ビツトの 数量がリフレッシュサイクルレートを 決定する。リフレッシュサイクルレー トはビット[10:18]に含まれる 値にCPUクロックの周波数を乗じた ものに等しい。ゼロのリフレッシュレートット20 :
 27 RAM開始アドレス。この8ビツトフ イールドが変換および非変換アクセス のためのRAMの開始アドレスを規定 する。変換されたアクセスの場合は、 変換されたアドレスがRAM開始アド レスおよびRAMサイズで指定される 範囲内に入っていればRAMが選択さ れる。変換されないアクセスの場合は、RAMサイズと
共にRAM開始アドレ スを用いて、アドレスがこの記憶制御 装置のために指定されたアドレス範囲 内に入っているかどうか判定する。R AMの開始アドレスはRAMサイズの 2進倍数として定義され、表5に示す ビットとRAMサイズで指定される値 とを乗じることによって計算される。
トはリフレッシュを減勢する。リフレ ッシュレートの値は、所望のメモリリ フレッシュレートをCPUクロックの 周波数で除すことによって計算するこ とができる。例えば、2ミリ秒ごとに 128行のリフレッシュを要するダイ ナミックメモリを備えたシステムでは、行あたりのリフ
レッシュ間隔は128 72ミリ秒すなわち15.6マイクロ 秒である。CPUクロックが200ナ ノ秒の場合は、所望のリフレッシュレート値は15.6
マイクロ秒/200ナ ノ秒、スナワチ、78(X’04E’)である。これは
X ” 04E ’をリフレッシュレートにロードする
ことを要求 する。
リフレッシュレートはFORシーケ ンスの一部としてX’01A”に初期 設定きれる。
−二 杓 Jノ 区 例えば、256にの記憶装置サイズが指定されれば、6
4個の256にバイト境界の1つがビット[20: 2
5]によりRAM開始アドレスとして指定される。もし
ビット[20: 25]が011101ならば、RAM
開始アドレスハX ’ o。
740000 ”である。1MバイトのRAMサイズが
指定されれば、16個の1Mバイト境界の1つがビット
[20: 23]によりRAM!始アドレアドレス指定
される。もしビット[20: 23]が1001ならば
、RAM開始アドレスはx’。
0900000’である。
ビット28:31 RAMサイズ。この4ビツトフイール ドは本変換システムに接続されたRA Mのサイズを規定する。RAMサイズ は以下の表6に示すように64にバイ トから16Mバイトまでの間で選択で きる。
ROS指定レジスタ ROS指定レジスタは、RO3開始アドレス、ROSサ
イズ、およびROSによってパリティが与えられている
かどうか、ということを規定する。
ROSは変換モードおよび非変換モードのいずれにおい
てもアクセス可能である。ROS指定レジスタの形式を
第11図に示す。
RO3指定レジスタは以下のように定義される。
ビットO:19 予約されている。
ビット20 : 27 ROS開始アドレス。この8ビツトフ イールドは、変換されたアクセス及び 変換されないアクセスの両方の場合に おけるROSの開始アドレスを規定す る。変換されたアクセスの場合は、変 換されたアドレスがRO5開始アドレ スおよびROSサイズで指定される範 囲内に入っていればROSが選択され る。変換きれないアクセスの場合は、 表 ビット28=31 RAMサイズ ooo。
RAMなし 001 ないし O111 64に 000 001 010 011 100 101 110 1111 128に 256に 12K M M M M 6M ROSサイズと共にRO3開始アドレ スを用いて、アドレスがこの記憶制御 装置の為に指定されたアドレス範囲内 に入っているかどうかを判定する。R OSの開始アドレスはROSサイズの 2進倍数として定義され、表7に示す ビットとROSサイズで指定きれる値 とを乗じる事によって計算される。
杓 杓 u!J! 例えば、64にのROSサイズが指定されれば、256
個の64にバイト境界の1つがビット[20: 27]
によりRO3開始アドレスとして指定される。もしビッ
ト[20: 27]が110010ならば、ROS開始
アドレスLtX’0OC80000°である。
ビット28:31 ROSサイズ。この4ビツトフイール ドは変換システムに接続きれたRO3 のサイズを規定する。ROSサイズは 以下の表8に示すように64にバイト から64Mバイトまでの間で選択でき る。RO3が使用されない場合は、ビ ット[28:31]はゼロにセットさ れる。
区 区 表 ビット28:31 ooo。
001 ないし 111 000 001 010 011 100 101 110 1111 ROSサイズ RO8なし 64に 128に 256に 12K M M M M 6M 変換制御レジスタ 変換Ig卿レジスタ(TCR)は、ハードウェアによる
TLBの再ロードが成功した時に割込みが発生されるか
どうか、参照および変更アレイにパリティが使用されて
いるかどうか、各ページのサイズ(2にバイトまたは4
にバイト)、および主記憶ページテーブル(HATとI
PTを組み合せたもの)の開始アドレス、を指定する。
変換制御レジスタの形式を第12図に示す。
変換制御レジスタは以下のように定義きれる。
ビットO:20 予約きれている。
ビット21 TLB再ロード成功時の割込み許可。
このビットを用いてハードウェアによ るTLBの再ロードが成功したという ことが報告きれる。1にセットされて いれば、ハードウェアによるTLBの 再ロードが成功したことによって、例 外回答が生成きれSERのTLB再ロードピット (ビ
ット22)が1にセットされる。このビットがゼロにセ
ットさ れていれば、ハードウェアによるTL Bエントリの再ロードの成功は報告さ れない。ソフトウェアによるTLBの 性能評価にこの機能を用いることかで ざる。
ビット22 参照および変更アレイのパリティ。こ のビットを用いて、外部の参照および 変更アレイにパリティが使用されるか どうかを示す。このビットが1にセッ トされれば、参照および変更アレイに パリティを使用する。もしこのビット がゼロにセットされれば、参照および 変更アレイにはパリティを使用しない。
ビット23 ページサイズ。2にバイトページには 値Oを用い、4にバイトページには値 1を用いる。
ビット24:31 HAT/IPTベースアドレス。この 8ビツトフイールドを用いて、主記憶 装置にあるHAT/I PTエントリの開始アドレスを
指定する。実記憶のサ イズおよびページサイズで決まる定数 を、このフィールドに含まれる値に乗 じることにより、HAT/IPTエン トリの開始アドレスが決定きれる。2 にバイトのページサイズの場合は、ビ ット[24:31]によってベースア ドレスが指定きれ、4にバイトのペー ジサイズの場合は、ビット[25:3 1]によってベースアドレスが指定さ れる。記憶装置サイズおよびページサ イズの各々に対する定数は表1に列受 されている。
記憶装置例外レジスタ(S E R)は、記憶装置アク
セスで生じた変換プロセスにおけるエラーおよびシステ
ムエラーを報告するのに用いられる。
変換システムによって検知される各々のエラー状態ごと
に別のビットが割り当てられる。エラーが複数生じた場
合は、適切なビットをセットすることによって各々のエ
ラーが報告きれる。前のエラーによってセットされたビ
ットは後続のエラーによってはリセットされない。
SERはFORシーケンスによってゼロに初期設定され
る。ひとたび例外が報告されれば、例外が処理きれた後
でシステムソフトウェアがSERをクリアする。記憶装
置例外レジスタの形式は第13図に示す。
記憶装置例外レジスダは以下のように定義される。
ビットO:21 予約されている。
ビット22 TLB再ロード成功。このビットは、 TLB再ロード成功による割込みが許 可されているときに再ロードが成功す ると、lにセットきれる。
ビット23 参照および変更アレイのパリティエ ラー。参照および変更アレイでパリテ ィエラーが検知された場合にこのビッ トは1にセットされる。
ビット24 RO3書込み試行。ROSアドレス空 間に含まれるアドレスへの書込みが試 行された場合にこのビットは1にセッ トきれる。
ビット25 IPT指定エラー。IPT探索連鎖で 無限ループが検知された場合にこのビ ットは1にセットきれる。無限ループ は例えば、システムソフトウェアのエ ラーのためにIPTポインタの値が誤 って指定され、その結果IPTポイン タが現IPT探索連鎖における前のエ ントリを指示したような場合に生じる。
ビット26 外部装置例外。ROMP以外のR3C 上の装置によって例外が生じた場合に このビットは1にセットされる。
ビット27 多重例外。記憶装置例外レジスタ内で 例外標識がクリアされる前に2以上の 例外(IPT指定エラー、ページ不 在、指定、保護、またはデータ)が発 生した場合にこのビットは1にセット きれる。
このビットは、通常、システムソフ トウェアが例外を処理できなかったこ とを示す。しかしながら、多重ロード (LM)命令または多重記憶(STM)命令によって例
外が生じた場合でもこ のビットをセットできる。ということ はLM命令または37M命令は、例外 によってその命令が中止されるよりも 前に、七の命令によって指定きれる全 てのレジスタの記憶またはロードを試 行するからである。
ビット28 ページ不在。どのTLBエントリおよ び主記憶ページテーブルエントリも仮 想アドレスに対する変換を含んでいな いために変換が終了した場合に、この ビットは1にセットされる。
ビット29 指定。同じ仮想アドレスに対して2つ のTLBエントリが見つかったという 理由で変換−が終了した場合に、このビットは1にセッ
トきれる。
ビット30 保護。非特殊セグメントのための記憶 装置保護処理で記憶装置アクセスが禁 止されていることがわかったために変 換が終了した場合に、このビットは1 にセットされる。
ビット31 データ。特殊セグメントのためのトラ ンザクションID/ロックビット処理 で、記憶装置アクセスが禁止されてい ることがわかったために変換が終了し た場合に、このビットは1にセットさ れる。
記憶装置例外アドレスレジスタ(SEAR)は、CPU
からのデータロードおよび記憶要求に対して、記憶装置
例外レジスタ(SER)により報告された例外を起こし
た有効記憶装置アドレスを含む。例外がROMP命令取
出しまたは外部装置によって生じた場合は、5EARは
ロードされない。
記憶装置例外アドレスレジスタの形式は第14図に示す
。
記憶装置例外アドレスレジスタは以下のように定義され
る。
ビットO:31 記憶装置例外アドレス。SERによっ て報告された例外を生じた32ビツト の有効記憶装置アドレス。多重エラー の場合(SERのビット27が1にセ ットされる) 、5EARに含まれるアドレスは、最も
古い例外のアドレスで ある。
被変換実アドレスレジスタ(TRAR)は実アドレス計
算オペレーションによって決定された実記憶アドレスを
含む。実アドレス計算機能は、仮想アドレスが現時点で
実記憶に写像きれているかどうかを判定して仮想アドレ
スが写像されている場合には対応する実アドレスを決定
する。実アドレス計算機能は後で説明する。被変換実ア
ドレスレジスタの形式を第15図に示す。
実アドレス変換レジスタは以下のように定義される。
ビットO 無効ビット。このビットは変換に失敗 した場合は1にセットきれ、変換に成 功した場合は0にセットきれる。
ビット1ニア ゼロ。この7ビツトフイールドは常に ゼロである。
ビット8:31 実記憶アドレス。この24ビツトフイールドは実記憶ア
ドレスを含む。この実 記憶アドレスは変換が成功した場合に 所与の仮想アドレスへ写像されたもの である。変換に失敗した場合はこのフ ィールドはゼロにセットされる。
トランザクション識別レジスタ(TID)は現時点で特
殊セグメントの゛°所有者°°として定義きれているタ
スクの8ビツトの識別子を含む。選択されたセグメント
レジスタ内の特殊ビットによって成るセグメントが特殊
セグメントとして定義されると、6.2節に示すような
ロックビット処理を記憶装置アクセスに適用する。ロッ
クビット処理はTIDに含まれる値を用い、それとTL
B内のTIDエントリとを比較して、記憶装置アクセス
が許されるかどうかを判定する。トランザクション識別
レジスタの形式を第16rgJに示す。
トランザクション識別レジスタは以下のように定義され
る。
ビットO:23 予約されている。
ビット24:31 トランザクション識別子。この8ビツ トの値は特殊セグメントの所有者を指 定する。
16個のセグメントレジスタは、セグメント識別子、特
殊ビット、およびキービットを含む。12ビツトのセグ
メント識別子は4096個の256Mバイト仮想記憶セ
グメントのうちの1つを指定する。特殊ビットは、それ
が特殊セグメントであってロックビット処理が適用され
るということを示す。キーピットは、所与のセグメント
内の記憶装置アクセスに関して現在実行中のタスクに関
連するアクセス権限のレベルを示す。各セグメントレジ
スタの形式を第17図に示す。
各セグメントレジスタの内容は以下のように定義される
。
ビット0:17 予約きれている。
ビット18:29 セグメント識別子。この12ビツトの 値は、4096個の256Mバイト仮 想記憶セグメントのうちの1つを指定 する。
ビット30 特殊ビット。特殊セグメントの場合、 このビットは1にセットきれ、非特殊 セグメント′の場合、このビットはゼロにセットされる
。
ビット31 キーピット。このビットは、所与のセ グメント内でのアクセスについて現在 実行中のタスクのアクセス権限のレベ ルを決定する。記憶装置アクセス制御 のためにこのビットを使用することは 6.2節に示す。
開示された実施例においては、2つのTLBの各々が1
6個のエントリを有する。これらのエントリは仮想アド
レスから実アドレスへの変換に必要な変換情報や制御情
報を提供する。さらに、各TLBエントリは記憶装置ア
クセス制御に使用される付加的な情報も含む。TLBの
内容はハードウェアによって主記憶ページテーブルから
自動的の更新きれるので、TLBエントリ書込みの後に
読取りが続く場合、必ずしも書き込まれたのと同じデー
タを読み取る必要はない。さらに、TLBエントリの変
更によって実アドレスと仮想アドレスとの対応がなくな
るであろうから、TLBエントリの変更は予測不能な結
果を引き起こす場合もある。TLBの内容のアクセスは
、診断の目的にだけ行われ、非変換モードにおいてのみ
なされるべきである。他の全ての変換アクセスを禁止し
て非変換モードでTLBエントリへ書き込むと、その後
に読取りが続き、書き込まれたのと同じデータを読み取
ることになるであろう。
各TLBエントリは、論理的には66ビット(予約ビッ
トを除く)の変数であって、25ビツトのアドレスタグ
、13ビツトの実ページ番号、有効ビット、2ビツトキ
ー、書込みビット、8ビツトのトランザクションID、
および16個のロックビットから成っている。各TLB
エントリは個々にアドレス指定できる3つのフィールド
に分けられる。TLBフィールドの各々の形式を以下に
説明する。
” T L Bアドレスタグ°゛フィールドは、2にペ
ージの場合、セグメント識別子11ページインデツクス
の上位25ビツトを含み、4にページの場合、その上位
24ビツトを含む。各TLBエントリのアドレスタグフ
ィールドの形式を第18.1図に示す。
各TLBアドレスタグフィールドの内容は以下のように
定義される。
ビットo:2 予約されている。
ビット3:27 アドレスタグ。このフィールドは、2 にページの場合、セグメント識別子1 1仮想ページインデツクスの上位25 ビツトを含み、4にページの場合、そ の上位24ビツトを含む。4にページ の場合、アドレスタグはビット[3: 26]に含まれる。
ビット28:31 予約されている。
”’TLB実ページ番号、有効ビット(V)、およびキ
ービット(キー)”°フィールドは、TLBエントリの
アドレスタグフィールドに含まれる仮想アドレスに割り
当てられている実ページ番号を含む。このフィールドは
、さらに、所与のTLBエントリが有効情報を含むこと
を示す有効ビット、および所与のページに必要なアクセ
ス権限のためのキーピットを含む。各TLBエントリの
ためのこのフィールドの形式を第18.2図に示す。
実ページ番号、有効、およびキービットフィールドの内
容は以下のように定義きれる。
ビットO:15 予約されている。
ビット16:28 実ページ番号。この13ビツトフイー ルドは8192個の実ページのうちの 1つを指定する。8192個よりも少 ないページを使用する場合は、それら のページをアドレス指定するのに必要 な下位ビットだけが使用きれる。
ビット29 有効ビット。選択されたTLBエント リが有効情報を含む場合はこのビット は1である。TLBエントリが無効情 報を含む場合はこのビットは0である。
ビット30:31 キーピット。この2ビツトフイールド は各ページに対するアクセス権限を定 義する。キーピットの使用に関しては 6.1節に示す。
” T L B書込みビット、トランザクションID。
およびロックピッド°フィールドは、当該TLBエント
リが特殊セグメントに対するものである場合に、書込み
ビット、トランザクションID、およびTLBエントリ
のアドレスタグフィールドに含まれている仮想アドレス
に割当てられたロックビットを含む。各TLBエントリ
のためのこのフィールドの形式を第18.3図に示す。
TLB書込みビット、トランザクションID。
およびロックビットフィールドの各々の内容は以下のよ
うに定義される。
ビットo:6 予約きれている。
ビット7 書込みビット。このビットは、特殊セ グメントの場合に各ページに関連する アクセス権限を定義する。ロックビッ ト処理におけるこのビットの使用につ いては6.2節に示す。
ビット8:14 トランザクション識別子。この8ビツ トフィールドは特殊セグメント内にあ る選択されたページを現に所有するタ スクを定義する。ロックビット処理に おけるこれらのビットの使用について は前に説明した。
ビット15:31 0ツクビツト。この16ビツトフイー ルドは、特殊セグメントの場合に2K または4にのページ内の各゛ライン゛ に対するアクセス権限を定義する。1 ラインは2にページの場合は128バ イト、4にページの場合は256バイ トである。ロックビット処理における これらのビットの使用については6゜ 2節で説明する。
本変換機構は、頻繁に要求される変換機能をハードウェ
アで支援する。このハードウェアにより、TLBエント
リを選択的に無効化すること、および、IBMシステム
/370ファミリのコンピュータにおけるものと同様な
”°実アドレスロード“機能を遂行することができる。
仮想−実アドレス写像を変更する場合は、システムソフ
トウェアによって、TLBの内容と主記憶装置にあるペ
ージテーブルの内容と、を同期化することが必要である
。TLBおよびページフレームテーブルのエントリを両
方とも除去(無効化)して、用済の写像情報が後続の変
換で使用されないようにしなければならない。
本システムは主記憶装置にあるページテーブルの内容と
TLBエントリとの同期化を支援する機能を3つ提供す
る。TLBの全内容、または選択されたTLBエントリ
のみを無効化するのにこれらの機能を使用することがで
きる。システムによって認識されるI10アドレスの6
4にバイトブロック内の特定I10アドレスへのI10
書込み命令(IOW)によって、これらの機能が呼び出
される。これらの機能の各々に対するアドレス割当ては
、必要に応じてシステムに与えられる。
パ全TLB無効化°°機能によってTLBエントリが全
て無効化される。この機能は、後続の変換に備えて、主
記憶装置にあるページテーブルでTLBの内容を強制的
に更新する。
この機能に関連するアドレスへのI10書込みが、TL
Bエントリを全て無効化する。I10書込み命令で転送
されるデータは使用されない。
°゛指定セグメント内のTLBエントリ無効無効化機能
によって、指定セグメント識別子を持ったTLBエント
リが全て無効化される。このセグメント識別子を用いる
後続の変換でTLBの内容が主記憶装置にあるページテ
ーブルから更新される。
この機能に関連するアドレスへのI10書込みが、指定
セグメント識別子を持ったTLBエントリを無効化する
。I10書込み命令で転送されるデータのビット[0:
 3]がセグメント識別子を選択するのに用いられる。
このセグメント識別子を含むTLBエントリは全て無効
化される。無効化されたセグメント内の有効アドレスを
伴う後続の変換によって、TLBの内容は主記憶装置に
あるページテーブルから更新きれる。
°°指定有効アドレスに対するTLBエントリの無効化
°°種機能よって、指定有効アドレスを備えたTLBエ
ントリが無効化される。
指定有効アドレスを含むページ内の有効アドレスを伴う
後続の変換によって、TLBの内容は主記憶装置にある
ページテーブルから更新される。
この機能に関連するアドレスへのI10!込みが、指定
有効アドレスを備えたTLBエントリを無効化する。I
10書込み命令で転送されるデータのビット[0:31
]が有効アドレスとして使用される。本アドレス変換機
構に含まれるセグメントレジスタの内容を用いて通常の
変換プロセスが適用される。
゛°実アドレス計算°′機能はシステムソフトウェアに
よって使用され、所与の仮想アドレスが現時点で実記憶
に写像されているかどうか、および、もし写像されてい
ればどの実アドレスがその仮想アドレスに割り当てられ
ているのかを決定する。
仮想アドレスが写像されない場合に、それを使用すれば
ページ不在を生じる;この情報は、割込みを禁止した状
態で走行するシステムのルーチンには、重要である。I
10オペレーションのほとんどが実アドレスを使用して
遂行されるので、仮想アドレスから実アドレスへの変換
結果はシステムI10ルーチンによって要求される。
実アドレス計算機能は、これに関連するアドレスへのI
 10il込みによって呼び出される◇I10書込み命
令で転送されるデータのビット[O:31]が有効アド
レスとして使用される。この有効アドレスは、通常の変
換プロセスのために使用されるが、変換結果は、被変換
アドレスレジスタ(第15図)(TRAR)にロードさ
れ、記憶装置のアクセスには使用されない。TRARは
変換が成功したかどうかを示すビットを含み、変換に成
功していれば対応する実記憶アドレスも含む。
通常の記憶装置保護処理およびロックビット処理は変換
成功により遂行される。実アドレス計算機能の結果はT
RARのI10読取りによって獲得きれる。
I10アドレスの64にバイトブロックが変換システム
に割り当てられている。64にバイトのブロックはI1
0ベースアドレスレジスタで指定されるI10アドレス
の所から始まる。I10ベースアドレスは、64に境界
上にあるように定義される。表9に列挙するI10アド
レスの割当ては指定された64にバイトブロック内の変
位である。
絶対I10アドレスはI10ベースアドレスとこの変位
とを加えたものに等しい。
変位 ooo。
ないし 00F 010 011 012 013 014 015 016 表   9 割当て セグメントレジスタOないし15 I10ベースアドレスレジスタ 記憶装置例外レジスタ 記憶装置例外アドレスレジスタ 被変換実アドレスレジスタ トランザクションIDレジスタ トランザクション制御レジスタ RAM指定レジスタ 017 018 019 ないし 01F 020 ないし 02F RO3指定レジスタ RASモード診断レジスタ 予約 TLBOのエントリ0ないし15 のためのTLBOアドレスタグフ イールド 030 ないし 03F TLBOのエントリOないし15 のためのTLBIアドレスタグフ イールド 040 ないし 04F TLBOのエントリ0ないし15 のためのTLBO実ページ番号、 有効ビット、およびキービット 050 ないし 05F 060 ないし 06F 070 ないし 07F 080 081 TLBOのエントリOないし15 のためのTLBI実ページ番号、 有効ビット、およびキーピット TLBOのエントリ0ないし15 のためのTLBO書込みビット、 トランザクションID、およびロ ツクビット TLBOのエントリ0ないし15 のためのTLBI書込みビット、 トランザクションID、およびロ ツクビット 全TLB無効化 指定セグメント内のTLBエント リ無効化 0082 0083 084 ないし FFF  000 ないし FFF 000 ないし 指定有効アドレスに対するTLB エントリ無効化 実アドレスロード 予約 ベージOないし8191のための 参照および変更ビット FFFF    予約 むすび 発明の好ましい実施例に関する以上の説明から、両方の
TLBとページフレームテーブルとにロックビットを用
意しかつ通常のセグメント化方式を利用する本発明の意
図および範囲から逸脱することなく、システムのハード
ウェアおよびソフトウェアの形式および詳細において様
々な変更が容易にできることは当業者には明白であろう
。明らかに、こうした変更は、記憶装置サイズ、レジス
タのサイズおよび制御フィールドの定義、アドレスサイ
ズ、ページフレームテーブルのアクセス方法および構成
、ならびにハツシュアドレス方法における変更を含むが
、それらに限定されるものではない。
E1発明の詳細 な説明したように、本発明によれば、各セグメントレジ
スタに設けられた特殊ビットと変換索引緩衝機構及びペ
ージフレームテーブルに設けられた各ラインについての
ロックビットとの協働的作用によってよりきめ細かな記
憶保護が可能となる。これは、特に、システム内のジャ
ーナリング制御に有用である。
【図面の簡単な説明】
第1図は本発明のアドレス変換およびアクセス′M御シ
ステムの主要部の機能ブロック図である。 第2図は本アドレス変換機構において使用されるセグメ
ントレジスタの形式を表わす図である。 第3図は有効アドレスから仮想アドレスへの変換を示す
機能ブロック図とデータ流れ図の組合せである。 第4図は有効アドレスから実アドレスへのアドレス変換
機構の全体を示すブロック図とデータ流れ図との組合せ
である。 第5図は本発明のアドレス変換機構全体で使用される変
換索引緩衝機構の構成とその内容を示す図である。 第6図は組合されたハツシュアンカーテーブル/逆ペー
ジテーブルを概念的に示す図と、所与の仮想アドレスに
対してTLBエントリが見い出だされない場合のこうし
たテーブルの動作を示すデータ流れ図である。 第7図は記憶装置内に記憶された実際のハツシュアンカ
ーテーブル/逆ページテーブルの構成および内容を図式
的に示す図である。 第8図は各I10アドレスと共に利用される参照および
変更ビットの形式を示す。 第9図はI10ベースアドレスレジスタの構成を示す図
である。 第10図はRAM指定レジスタの形式を示す図である。 第11図はRO3指定レジスタの形式を示す図である。 第12図は変換制御レジスタの形式を示す図である。 第13図は記憶例外レジスタの形式を示す図である。 第14図は記憶例外アドレスレジスタの形式を示す図で
ある。 第15図は被変換実アドレスレジスタの形式を示す図で
ある。 第16図はトランザクション識別レジスタの形式を示す
図である。 第17図は16個のセグメントレジスタのうちの1つの
内容を示す図である。 第18.1図、第18.2図、および第18゜3図は変
換索引緩衝機構の各々において各ページ参照のために利
用される3つのフィールドの形式を図式的に示す。ここ
に開示する実施例においては2つの独立した変換索引緩
衝機構か存在すること、該緩衝機構の各々において一時
に記憶きれる実ページ参照が16個存在すること、に留
意されたい。

Claims (1)

  1. 【特許請求の範囲】 中央処理装置によつて供給された仮想アドレスを変換索
    引緩衝機構及びページフレームテーブルを用いて実アド
    レスに変換するような階層記憶システムにおいて、 上記仮想アドレスのうちのセグメント識別フィールドよ
    りもビット数の多いセグメント識別子及び該セグメント
    識別子に関連する特殊ビットを記憶するセグメントレジ
    スタを複数個設け、さらに上記変換索引緩衝機構及び上
    記ページフレームテーブルの双方にページを構成する各
    ラインについてロックビットを設け、上記中央処理装置
    によつて供給された仮想アドレスのうちのセグメント識
    別フィールドによつて上記複数個のセグメント・レジス
    タをアクセスし、アドレス指定されたセグメントレジス
    タに記憶されているセグメント識別子と上記仮想アドレ
    スのページオフセットフィールド及びバイトオフセット
    フィールドとを連結して上記仮想アドレスよりもビット
    数の多い第2の仮想アドレスを生成し、該第2の仮想ア
    ドレスを実アドレスに変換すると共に上記特殊ビットが
    所定の値に設定されている場合には上記ロックビットに
    応じてラインごとのロックを行うようにしたことを特徴
    とするアドレス変換方法。
JP2277954A 1990-10-18 1990-10-18 アドレス変換方法 Expired - Lifetime JPH0679294B2 (ja)

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 true JPH03265049A (ja) 1991-11-26
JPH0679294B2 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)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5334429A (en) * 1976-09-10 1978-03-31 Toshiba Corp Memory control system
JPS54105930A (en) * 1978-02-07 1979-08-20 Nec Corp Main memory control unit
JPS56153576A (en) * 1980-04-02 1981-11-27 Control Data Corp Memory address unit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5334429A (en) * 1976-09-10 1978-03-31 Toshiba Corp Memory control system
JPS54105930A (en) * 1978-02-07 1979-08-20 Nec Corp Main memory control unit
JPS56153576A (en) * 1980-04-02 1981-11-27 Control Data Corp Memory address unit

Also Published As

Publication number Publication date
JPH0679294B2 (ja) 1994-10-05

Similar Documents

Publication Publication Date Title
EP0113240B1 (en) Virtual memory address translation mechanism with controlled data persistence
US4680700A (en) Virtual memory address translation mechanism with combined hash address table and inverted page table
US6145064A (en) Method of efficiently updating hashed page tables
US5787494A (en) Software assisted hardware TLB miss handler
EP0650124B1 (en) Virtual memory computer system address translation mechanism that supports multiple page sizes
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
Houdek et al. IBM System/38 support for capability-based addressing
US5668968A (en) Two-level virtual/real set associative cache system and method with improved synonym detection
US7809921B2 (en) Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
KR100297454B1 (ko) 컴퓨터장치
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
CA1228674A (en) Redundant page identification for a catalogued memory
US5241638A (en) Dual cache memory
JPH11203199A (ja) キャッシュ・メモリ
JPH04320553A (ja) アドレス変換機構
US7493464B2 (en) Sparse matrix
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
US5319761A (en) Directory look-aside table for a virtual storage system including means for minimizing synonym entries
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
JPS623357A (ja) Tlb制御方法
US4380797A (en) Two level store with many-to-one mapping scheme
CA1220286A (en) Virtual memory address translation mechanism with combined hash address table and inverted page table
JPH035851A (ja) バッファ記憶装置