JPH0658646B2 - デ−タ持続性が制御される仮想記憶アドレス変換機構 - Google Patents

デ−タ持続性が制御される仮想記憶アドレス変換機構

Info

Publication number
JPH0658646B2
JPH0658646B2 JP58500670A JP50067083A JPH0658646B2 JP H0658646 B2 JPH0658646 B2 JP H0658646B2 JP 58500670 A JP58500670 A JP 58500670A JP 50067083 A JP50067083 A JP 50067083A JP H0658646 B2 JPH0658646 B2 JP H0658646B2
Authority
JP
Japan
Prior art keywords
address
virtual
bit
page
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP58500670A
Other languages
English (en)
Other versions
JPS59502123A (ja
Inventor
チヤング・アルバ−ト
コ−ク・ジヨン
マ−ジン・マ−ク・エフ
ラデイン・ジヨ−ジ
Original Assignee
インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション
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 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション filed Critical インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション
Publication of JPS59502123A publication Critical patent/JPS59502123A/ja
Publication of JPH0658646B2 publication Critical patent/JPH0658646B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Landscapes

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

Description

【発明の詳細な説明】 発明の背景 発明の分野 本発明は一般的にはコンピュータに記憶サブシステム、
とりわけ当業者には、仮想記憶として知られた記憶装置
に構成された記憶サブシステムに関する。さらに詳しく
言えば、本発明は、仮想アドレスを実アドレスに変換し
記憶階層内である特有の制御機能を遂行するための装置
に関する。
最新のコンピュータシステムにおいては、プログラムは
実行に際して、システム内のどこかすなわち、キヤツシ
ユ/主記憶装置/直接アクセス記憶装置(DASD)の
記憶階層のあるレベルあるいは分散システムネツトワー
クの別のノードに存在するデータまたはコードのアクセ
スを頻繁に試みる。最も基本的なシステムにとつて、こ
のアクセスを行うためにはプログラムが何を理解しなけ
ればならないかを、考えてみよう。
−データ(またはコード)はどこに所在するか、その場
所によつて、一般に、アクセスのためにどんな種類のア
ドレスを用いるべきかが決まる。(例えば、24ビツト
の主記憶アドレス、デイスクトラツク上のアクセスアド
レス、またはネツトワークのノードアドレス)。また、
そのアクセスを遂行するためにどんな種類の命令を用い
るべきも場所によつて決まる(例えば、主記憶アクセス
の場合はロード/記憶/分岐、デイスクアクセスの場合
はチヤネル指令ワード、ネツトワークアクセスの場合は
通信プロトコル)。
−このデータの他のプログラムによつて共有されている
か。このデータが共有されていれば、一定のロツクが維
持されていない限りはアクセスを進行させることはでき
ない。このプログラムがなそうとしているデータの変更
を他のプログラムに知られたくない場合は、記憶命令は
ある私用アドレスに向けられるべきである。
−当該データが回復可能であるべきか。もしそうであれ
ば、必要な場合に、前と同じ状態のデータを検索できる
ように、あるジヤーナリング方法を実施しなけれじなら
ない。
こうした極めて基本的システムにおいて、各々のアクセ
スの際にこれらを区別することを実際にプログラムが要
求されていたと仮定する。そうすると、次のような事が
起こるであろう。
−プログラムを一般的に適用可能にしようとすると、最
も頻繁に発生する“単純で安全”な要求の場合でさえ、
言い換えれば、主記憶装置に在る私用の回復不能データ
の場合でさえ、そのアクセスは非常に遅くなるであろ
う。
^プログラムをうまく働かせるためにそのアクセスモー
ドを1つに固定してしまうと、そのプログラムは異なる
性質を有するデータに対しては正しく実行されないであ
ろう。
−プログラムは複雑でかつ大規模で、しかもエラーを発
生しやすいものとなるであろう。
最近のシステムは、程度の差はあれ、こうした問題に取
り組んできた。例えば、 −再配置アーキテクチヤによつて、一般に、私用の回復
不能な一時的データおよびプログラムを、16ビツトな
いし32ビツトのアドレスサイズ(通常、計算上の一時
的な要求にとつては適切)で統一的にアドレス指定する
ことができる。再配置アーキテクチヤが適切な“索引”
ハードウエアを用いて実施される場合、そうしたアクセ
スのほとんどがキヤツシユまたは主記憶装置の速度で行
われる。この索引ハードウエアが役に立たない場合(こ
れは100回試行して1回起こるよりも少なし頻度であ
る)のにみ、システムは再配置テーブル構造をアクセス
する。再配置テーブルが役に立たない場合(すなわちデ
ータが主記憶装置にない場合)のにみ、システムに“ペ
ージ不在”のオーバヘツドが生じる。従つて、真に必要
な場合だけオーバヘツドが解決される。これは、良好な
アーキテクチヤおよびその実施の目的である。
−プログラム実行の範囲を超えてデータを維持する場合
は、最新のシステムでは、ロード/記憶/分岐命令の代
わりに、ソフトウエアで実現される“アクセス方式”へ
の明示要求によつてアクセスを行うことを要求される。
こうしたアクセス方式は、一般に、“レコード”および
“フアイル”と呼ばれる定義された一定の基礎群に構成
されるデータを支援する。アクセスのための“命令”
は、一般に、“読取り/書込み”または“ゲツト/プツ
ト”と呼ばれる。
データは共有されないか、または、回復不能である。そ
れは、実際に主記憶装置(或るバツフア領域)に記憶さ
れているかも知れない。しかしアクセスの度に、プログ
ラムはこのような明示的な“読取り/書込み”呼出しを
行わねばならない。こうして、アクセス方式が適切に定
義されれば、それによつて、基本的システムにおけるよ
りも複雑でなくかつ一般的に適用できるプログラムが生
成される。しかしながらこうしたアクセスの性能は、一
律に、ロード/記憶よりも劣つたものとなり、アクセス
されるデータを適切な基礎群タイプに構成する必要が生
じる。
−データが共有されるか、または、回復可能な場合は、
最新のシステムでは、ソフトウエアで実現される“デー
タベースサブシステム”への明示要求を必要とする。こ
うしたアクセスは、一般的に、アクセス方式の場合のア
クセスに比べて極めて遅い。この原因は、ロツクおよび
ジヤーナル管理の機能を付加しているということだけで
なく、サブシステムが支援する基礎群の種類(例えば関
係、階層)がそれ自体さらに複雑であるということにも
ある。
ここでも、データが、実際にはさらに簡単な構造で主記
憶装置のバツフア内にあるかも知れないが、アクセス要
求の度にオーバヘツドの問題が生じる。
“チエツクポインテイング”と呼ばれる手段を用いて一
時的なデータの回復を支援するシステムもある。この場
合、プログラムが回復可能なアプリケーシヨンを書こう
とすれば、3つの異なつた手段を取り扱わねばならな
い。3つの手段とは、計算データのためのチエツクポイ
ンテイング、フアイルのための明示バツクアツプ、およ
びデータベースのための“確約”命令である。
−IBMシステム/38は、少なくとも、全てのデータ
のとつて統一的なアドレス指定構造を提供するという点
に関して言えば、大多数のシステムよりも進んでいる。
しかしながら、すべてのアドレスは極めて長く、多くの
アクセスは極めて遅く、アーキテクチヤを実施するため
に多大な記憶領域およびハードウエアを必要とする、と
いう犠牲のもとにこれが提供されているのであり、ま
た、共有または回復のための統一的な手法を提供するも
のではない。
1台または複数台の基本処理ユニツトによつて実行され
る多数のコンピュータプログラムが1つの記憶装置を共
有するための様々な手法がこれまで知られている。プロ
グラムによつて共有されている記憶装置は極めて大きな
新記憶容量を必要とする。その容量は、記憶装置の実際
の容量よりも遥かに大きいことが多い。例えば、システ
ムが32ビツトアドレス方式を使用しているとすれば、
仮想記憶のアドレス指定可能な232バイトが使用可能
である。こうした仮想記憶空間は、通常、所定数の領域
すなわちセグメントに分けられるものとして考えられて
いる。各々のセグメントは所定数のラインから成るペー
ジに分けられ、各々のラインは所定数のバイトを有して
いる。従つてセグメントおよびページの指定、すなわ
ち、仮想記憶に割当てられたアドレスは、プログラムに
よつて任意に指定されるものであつて、主記憶装置にお
ける実際の記憶位置を示すものではない。従つて、仮想
セグメントおよび仮想ページは主記憶装置全体にわたつ
て通常は任意の場合に位置して、必要に応じて外部記憶
装置から主記憶装置にスワツプインしたり、主記憶装置
から外部記憶装置にスワツプアウトしたりする。
主記憶装置内でのセグメントおよびページの位置が可変
のため、仮想アドレスから真の、すなわち実アドレスへ
の変換が必要である。この変換には、通常、主記憶装置
内にあつてページフレームテーブルと呼ばれる一組のア
ドレス変換テーブルを用いる。大きな仮想システムにお
いては、非常に多くのアドレス変換テーブルが使用され
ている。これは様々な方法によつて構成できる。こうし
たあらゆる構成において必須の特徴は、特定の仮想アド
レスが前記テーブルにおいて該仮想アドレスに対する実
アドレス(もしあれば)を含む記憶位置へ理論的に写像
されなければならないということである。
機能的には、こうしたアドレス変換テーブルの動作は次
のとおりである:特定の仮想アドレスの上位ビツトを用
いて前記変化テーブルの特定のセクシヨンをアクセスす
る。使用される上位ビツトは1つの特定のフレームすな
わちセグメントに関係する。そうして次に、下位ビツト
を用いて特定の仮想アドレスがその中に含まれるかどう
か、およびもし含まれていれば、どの実アドレスがそれ
に関連しているかを検査する。仮想フレームアドレスに
よつて指定される各々のページデーブルは、1つのフレ
ームに含まれる全てのページの実記憶位置を含んでい
る。従つて、1つの特定のフレームが例えば16ページ
に分けられるとすれば、フレームの各々に対して16個
のページテーブルが存在し、更にページテーブルの特定
の組を指定するエントリを持つた1つのフレームテーブ
ルが別にある。以上の説明は一般化されており、ページ
テーブルとCPUの生成した仮想アドレスを出発点とす
るページテーブルアドレス指定手段とを利用してアドレ
ス変換を組織化する多くの異なつた方法があることを理
解されたい。後の発明の良好な形態の説明において、基
本的に上述のような機能的構成を有するハツシユアドレ
ステーブル(HAT)および逆ページテーブル(IP
T)を詳述する。
実際にアドレス変換を行う場合は、システム構成全体の
細部およびページテーブルの使用には関係なく、ページ
・フレームテーブルへの適切な入口点が作成され、与え
られた仮想アドレスを引き数として用いてページテーブ
ルがアクセスされる。そうして、通常は、複数回の記憶
アクセスを経て、ページテーブルの所望のエントリが見
い出される。通常、その時点において、全てのシステム
プロトコルに従つていたかどうかが検査され、もしそう
ならば、要求されたページの実アドレスがページテーブ
ルからアクセスされる。仮想アドレスのバイト部すなわ
ち“バイトオフセツト”は、本来、相対アドレスであ
り、実ページおよび仮想ページにおいて同じである。従
つて、仮想アドレスの所望の実ページアドレス部が、一
旦、変換されれば、バイトオフセツト部は実ページアド
レス場所と連結されて主記憶装置の実バイトアドレスを
与える。
現行の仮想記憶システムにおいてよく知られているとお
り、記憶装置をアクセスするたびにいちいち仮想アドレ
スの変換をなしくてもよいように、最近使用された仮想
アドレスから実アドレスへの変換が、本発明においても
使用する登録簿索引テーブル(DLAT)または変換索
引緩衝機構(TLB)と呼ばれる一組の高速アクセス可
能なテーブルあるいは高速記憶装置に記憶される。こう
したテーブルあるいは緩衝機構は、通常、高速アクセス
可能な特別の記憶装置であり、これは前述のページフレ
ームテーブルよりもさらに高速にアクセスできる。これ
によつて、頻繁に使用される仮想アドレスをこのテーブ
ルに記憶しそれを高速にアクセスすれば、コンピュータ
の実行時間を大幅に節約できる。TLBアドレス変換シ
ステムの効率のよさは、所定のプログラム実行において
ある仮想ページがアクセスされた場合それに続いて同じ
ページが何度もアクセスされるという事実に基づいてい
る。前述のように、続いて起こるアクセスがページ内の
異なつたラインおよびバイトに対して行われる場合でさ
えも、仮想ページアドレスから実ページアドレスへの変
換は、どのラインまたはどのバイトがアドレス指定され
るかに関係なく、そのページに関する限り同じである。
TLBを用いればページフレームテーブル内で必要な変
換を大幅に減ずることができる。従つて、仮想記憶シス
テム全体の性能を格段に高めることができる。
こうした従来の再配置システムの有する別の問題は、ジ
ヤーナリング問題の処理である。すなわち、現プログラ
ムが実行中でデータを使用している間、外部記憶装置内
にデータの複製を保持しておくことである。従つて、ハ
ードウエアまたはソフトウエアに何らかの障害が発生し
ても、もとのデータの有効な複製は依然として使用可能
である。このような機能は、従来、時間を浪費する複雑
なハードウエアおよびソフトウエアによつて実現されて
おり、要求されるジヤーナリング機能のために再び記憶
装置の性能低下という犠牲を強いることになる。
従来技術 前述のようにコンピュータ技術においては、長年にわた
つて仮想記憶システムが普及してきた。何らかの再配置
すなわちアドレス変換手段によつて仮想アドレスを実ア
ドレスに変換しなければならないということもまたよく
知られている。こうしたアドレス変換手段においては、
仮想アドレスから実アドレスへの可変換性が保証されて
いなければならない。この主題に関する特許および論文
を全て挙げることはできないが、以下に挙げる従来技術
はアドレス変換機構の代表的な例であつて、かつ本発明
に最も係りの深い従来技術を示すものである。
Berglund他による米国特許第3828327号は、アド
レスに上位アドレスを付加することによつて記憶装置を
拡張するための従来の記憶制御手法を示している。この
上位ビツトはプログラムによつて明示されるアドレスの
一部ではないが、割込みモード、I/Oモード等の別の
システムモードによつて制御される。この特許は記憶装
置拡張システムに関するものであるが、この記憶装置拡
張システムには同時にアドレス変換ハードウエアが提供
されている。Bourke他による米国特許第4042911
号または主記憶装置拡張の為のシステムが示され、アド
レス変換手段を明らかに含んでいる。しかしながらこれ
ら2つの米国特許は、TLB及びページフレームテーブ
ルの両方に特別のロツクビツトを用意するという事だけ
でなく、仮想アドレス拡張の概念をも開示していない。
論文George Radin,“The 801 Minicomputer”,ACM SIG
PLAN NOTICES,第17巻、第4号、1982年4月号、
39ないし47ページ、には非常に高速の記憶サブシス
テムに大きく依存する動作特性を持つた実験的なコンピ
ュータに関する一般的な記載が示されている。本発明の
再配置機構はこのようなコンピュータに特に適している
であろう。
Bourke他による米国特許第4050084号には、スタ
ツクセグメンテーシヨンレジスタを備えたアドレス再配
置変換器を含む記憶構成が示されている。この特許に示
される特別のセグメンテーシヨンレジスタは、本発明で
用いるような拡張された仮想アドレスの記憶というより
はむしろ主記憶装置内の物理ブロツクに割り当てられた
実アドレスの記憶を目的としている。
Mitchell他のよる別国特許第4251860号には、広
大な仮想アドレス記憶を実現するための仮想アドレス指
定装置を有する記憶アドレス指定システムが示されてい
る。この特許は、仮想アドレスをセグメント部とオフセ
ツト部とに分割することを開示している。しかしなが
ら、セグメント部およびこれに係るセグメントレジスタ
はアドレス分割を行う適切な手段として用いられるもの
であつて、本発明のアドレス変換機構とはその動作が全
く異なる。
Birney他による米国特許第4037215号に示されて
いるシステムは、特定の実記憶ブロツクを指定するため
に一連のセグメンテーシヨンレジスタを利用するという
点において、前記米国特許第4050094号に極めて
類似している。この特許は、さらに特別のセグメンテー
シヨンレジスタに組み込まれる“読取り専用”有効ビツ
トの使用に関した記載もある。こうしたビツトは、本発
明の再配置機構のハードウエアに設けられる特殊目的の
ロツクビツトとは全く異なるものである。
Cordi他による米国特許第4077059号には、ジヤ
ーナリングおよびコピーバツクを容易に行うための特別
の制御手段を備えた階層記憶システムが示されててい
る。この特許には、複数の2重記憶装置もまた示されて
いる。これによつて、現行データを一方の記憶装置に保
持して、後続のジヤーナリングオペレーシヨンおよびコ
ピーバツクオペレーシヨンを容易に行うために、変更を
他方の記憶装置に通知する。この特許のハードウエアお
よび制御手段は本発明のロツクビツトシステムとは全く
異なるものである。
Hogan他による米国特許第4053948号には、登録
簿索引テーブル(DLAT)の各エントリに対してカウ
ンタを含む特別の手段を備えたアドレス変換システムが
示されている。
Hoffman他による米国特許第4218743号は、IB
Mシステム/38の再配置アーキテクチヤに関して以下
に列挙する多数の特許の例である。この特許は仮想記憶
コンピュータシステムにおいてI/Oが処理するアドレ
ス指定を簡単にする方法を示唆している。仮想記憶シス
テムの課題に係る他の特許は米国特許第4170039
号、第4251860号、第4277862号、および
第4215402号である。
Cordi他による米国特許第4020466号もまた、ジ
ヤーナリングおよびコピーバツク手順を容易に行うため
の特別の手段を組み込んだ記憶システムを示すものであ
る。この特許は、本発明のコツクビツト制御手段とは全
く関係がない。
Lawlorによる米国特許第3942155号は仮想記憶シ
ステムのセグメント区分形式を開示しているが、この特
許で使用されているセグメント化は、仮想アドレスを拡
張するために利用される本発明のセグメント化オペレー
シヨンとは全く異なるものである。
種々のハツシユ方式を用いて仮想記憶変換機構をアクセ
スする例として米国特許第4215402号を挙げてお
く。
発明の概要 本発明の手法に従つて、アドレス変換および全体的な記
憶制御機能に対してハードウエアおよびソフトウエアを
十分に利用した仮想記憶サブシステムが提供される。シ
ステム内の全てのデータおよびプログラムは、それらが
どこに所在するのか、それらが一時的であるのか、カタ
ログされているのか、共有されているのかまたは私用の
ものなのか、回復可能なのかまたは回復不能なのか、と
いうことに関係なく、一様にアドレス指定される。この
ことは、例えば、キヤツシユ内に存在する私用の回復不
能な計算データがキヤツシユの速度で回復されることを
意味する。しかしながら他の結果は、データがたとえ共
有されていても、キーを保持する特定のプログラムによ
るアクセスもまたキヤツシユの速度で行われる。
このように、この種の一様なアドレス指定すなわち“単
一レベル記憶”アドレス指定を可能にしたここに開示す
る記憶サブシステムの構成は、32ビツトの仮想アドレ
スのシステム内に装置を含んでいる。この仮想アドレス
はCPUによつて生成されるもので、そのうちの4ビツ
トは16個の12ビツトセグメントレジスタセットを指
定する。選択されたセグメントレジスタの内容と仮想ア
ドレスの残りの28ビツトとを連結して40ビツトの有
効アドレスを生成する。従つて、各セグメントは、2
28バイトまでのデータを含むことができることが容易
に理解されるであろう。この新しい40ビツトのアドレ
スは依然として仮想アドレスであることに留意された
い。実アドレスが存在するか否かを判断するために高速
の部分連想式変換索引緩衝機構を初めにアクセスするこ
とによつてこの40ビツトのアドレスが変換される。実
アドレスが存在しない場合は、他の変換システムのよう
に、ページテーブルを参照してアドレス変換を実施す
る。
本構成の他の独特の特徴は、変換索引緩衝機構だけでな
くさらにページフレームテーブル内にも、ロツキング、
ジヤーナリングおよび許可を検査するための特殊ロツク
ビツトを設けることである。各々の実アドレスに対して
変換索引緩衝機構およびページフレームテーブルに複数
のロツクビツト(実施例では16個)が設けられること
に留意されたい。1ページ内の各ラインに対して1つの
ロツクビツトが与えられ、システム内のジヤーナリング
制御のために利用される。アクセス手段およびソフトウ
エア手段がさらにシステムに設けられ、それによつてこ
うしたビツトはハードウエアだけでなくソフトウエアに
よるアクセスも可能である。
本発明の主な目的は非常に大きな仮想アドレス空間を有
する仮想記憶サブシステムを提供することである。
本発明の他の目的は全ての記憶オペレーシヨンクにおい
て“単一レベル記憶装置”として機能するような記憶サ
ブシステムを提供することである。
本発明の他の目的は不正確な変換テーブルを使用したこ
とによるアドレス指定エラーが発生しにくいような記憶
サブシステムを提供することである。
本発明の他の目的はそうした仮想記憶サブシステム内で
ジヤーナリングおよび関連するデータ保護を極めて容易
に行う制御機構を提供することである。
本発明の他の目的はソフトウエアおよびハードウエアの
いずれにとつても使用可能であるそうした制御機構を提
供することである。
本発明のこうした目的、特徴、および利点は、添付図面
に図示するように以下に示す発明の好ましい実施例の詳
細な記述から明らかになるであろう。
図面の説明 第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個存在すること、に留
意されたい。
好ましい実施例の説明 本発明の目的はここで開示される記憶制御装置によつて
一般的に達成される。この記憶制御装置は、前に一般的
な形で述べたアドレス変換アーキテクチヤを実施するホ
ストCPU記憶チヤネルと接続する。アドレス変換アー
キテクチヤは後でさらに詳しく説明する。変換機構は、
16メガバイトまでの容量を有する記憶装置とのインタ
ーフエースに要する論理を含む。記憶装置はインタリー
ブしてもしなくてもよいし、スタテイツク型でもダイナ
ミツク型でも構わない。変換機構は機能的に3つのセク
シヨンに分けられる(第1図参照)。CPU記憶チヤネ
ルインターフエース(CSC)10の論理は共通フロン
トエンド(CFE)部12からなる。このCFE部12
は記憶キヤネルからアドレス変換論理14および記憶制
御論理16へ適切なプロトコルを提供する。記憶チヤネ
ルとの通信は全てこの論理によつて取り扱われる。アド
レス変換論理は、記憶チヤネルより受け取つた仮想アド
レスを、記憶装置のアクセスに用いられる実アドレス
に、変換する。この論理は16個の合同クラスを有する
2ウエイのセツトアソシアテイブとして構成された変換
索引緩衝機構(TLB)を含む。必要な場合に主記憶装
置にあるページテーブルから自動的にTLBエントリを
再ロードする論理が設けられる。記憶制御論理16はア
ドレス変換論理14から記憶装置へのインターフエース
を提供する。この論理はダイナミツクメモリリフレツシ
ユ制御もまた備えている。
本発明は、主として、周知のコンピュータ回路、装置、
および機能ユニツトの新規な組合せと機能動作とに関す
るものであつて、それらの特定の詳細な構造に係るもの
ではない。従つてこれらの周知の回路、装置、およびブ
ロツクの構造、制御および、配置は本発明に関係する部
分だけを詳細に示した容易に理解できるブロツク表現お
よび機能図の形で図面に示されている。これは、構造的
な細部によつて本発明が不明瞭になつてしまうことのな
いようにするためである。この構造的細部はその機能的
な記述だけで当業者には容易に明らかなものである。本
発明に係るそうした特徴を強調するために、さらに、こ
れらのシステムの様々な部分は適切に整理され機能的に
記述されている。以下の記述により、当業者は開示され
た記憶サブシステムの実施可能性を理解でき、さらに、
様々なコンピュータアーキテクチヤの任意の1つにそれ
を組み込むことができるであろう。
第1図は本アドレス変換システムの前述の機能部を示
す。本アドレス変換システムは超LSI技術によつて1
つの論理チツプに集積できるであろう。
本システムでアドレスが変換されるか(仮想アドレスと
して取扱われるか)実アドレスとして取扱われるかは、
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メガバイトの容量を有する40
96個のセグメントから成る、単一の40ビツト仮想ア
ドレス空間に写像されているかのごとく取り扱われる。
CSCより受け取つた32ビツトのアドレスのうち上位
4ビツトを用いて16個のセグメントレジスタのうちの
1つを選択し、選択されたセグメントレジスタの内容1
2ビツトと、有効アドレスの残りの28ビツトとを連結
することによつて、32ビツトのアドレスを40ビツト
の(長形式仮想)アドレスに変換する。そうして変換機
構が記憶装置アクセスのために40ビツトの仮想アドレ
スを実アドレスに変換する。容易にわかるように、ハー
ドウエアをわずかに変更するだけで仮想アドレスの大き
さを変更することも可能である。
アドレス指定可能な記憶装置の容量は、常に、4ギガバ
イトのみである。言い換えれば、16個のセグメントレ
ジスタによつて各々256メガバイトの容量を有する1
6個のセグメントが指定可能である。従つてオペレーテ
イングシステムは適切な値をセグメントレジスタにロー
ドすることによつて複数の独立した仮想アドレス空間を
生成することができる。限られた場合には、このように
して、256個の全く独立した4ギガバイトアドレス空
間を生成できるかも知れないが、(中核コードのよう
な)幾つかのセグメントが複数のアドレス空間で共有さ
れる可能性の方が高い。なお、異なるセグメントレジス
タに同一の値(セグメント識別子)をロードしておくこ
とによって、異なるタス間でセグメントを共有すること
が可能となる(特にタスク間通信の場合などに有益であ
る)。
IBMシステム/370と同様な記憶装置保護が2Kバ
イトまたは4Kバイトのページ単位で備えられる。25
6メガバイトのセグメントごとに独立して指定される保
護キー(S/370のPSWにあるキーと等価なもの)
によつて記憶保護および取出し保護が達成される。
接続記憶クラスに対するサポートは、各仮想ページに関
連する一組のロツクビツトによつて与えられる。このロ
ツクビツトは記憶装置保護の粒度を記憶装置の“ライ
ン”にまで効果的に拡張し(2Kページの場合は128
バイト、4Kページの場合は256バイト)、こうして
オペレーテイングシステムは持続変数の変更を検知しそ
れを自動的にジヤーナリングすることができる。ここ
で、持続記憶クラスは、その内容が例えばデイスクフア
イル記憶装置に永続的に記憶されているものを意味す
る。
以下の用語は本明細書中で使用され、明瞭かつ簡便のた
めにここで定義される。
バイトインデツクス 2Kバイトページの場合、ページまたはページフレーム
内で1つのバイトを識別するための0ないし2047
(11ビツト)の範囲の数値[4Kバイトページの場合
は0ないし4095(12ビツト)]。バイトインデツ
クスは有効アドレスの下位11ビツト[12ビツト]か
ら取り出される。
変更ビツト 各ページフレームに関連するビツト。
そのフレームに対して記憶装置参照(書込みのみ)が成
功した場合は常に“1”にセツトされる。
有効アドレス 記憶チヤネル上の装置によつて生成される32ビツトの
記憶チヤネルアドレス。このアドレスは、命令取出し、
データロード、またはデータ記憶の際にホストCPUに
よつて生成できる。また、DMAアドレスのように、記
憶チヤネル上のI/O装置によつて生成することもでき
る。
ライン 128バイトごとの境界を有する1ページの128バイ
ト部。これは1つのロツクビツトによつて制御される記
憶量である。
ロツクビツト 持続記憶セグメントの各ページに関連した16ビツトの
うちの1つ。各ロツクビツトは記憶装置の1つのライン
に関連する。トランザクシヨンID、書込みビツト、お
よびロツクビツトの値を組合せて、1つのラインに対
し、持続記憶セグメントにおいて記憶装置アクセス要求
が許可されているかまたは禁止されているかを決定す
る。ページ 2084バイト[または4096バイト]の境界で区切
られた2048バイト[または4096バイト]の記憶
単位。“ページ”は正しくは仮想記憶に関し、一方、
“ページフレーム”は実記憶に関するものであるが、歴
史的に“ページ”は仮想記憶および実記憶のいずれにも
使用されている。
ページフレーム 2048バイト[または4096バイト]の境界で区切
られた2048バイト[または4096バイト]の記憶
単位。ページはページフレーム内または外部記憶装置
(すなわちデイスク)上に存在する。
ページテーブル 主記憶装置内のハツシユアンカーテーブルおよび逆ペー
ジテーブルのエントリを組合せたもので、仮想アドレス
から対応する実アドレスの変換に用いられる(ここでは
HAT/IPTと称する)。
保護キー 各セグメントレジスタにある1ビツトの値であつて、現
在実行中のプロセスが所与のセグメント内のデータをア
クセスできるかどうかを示す。この保護キーは機能的に
はIBMシステム/370のPSWキーと似ているが、
アドレス指定可能な全ての記憶域に対して大域的に適用
されるのではなく、各セグメントに対して個々に適用さ
れる。
実アドレス 変換操作の結果。実ページインデツクス(10ビツトな
いし13ビツト)と有効アドレスの下位11ビツト[ま
たは12ビツト]を連結したもの(実ページインデツク
ス||バイトインデツクス)。
実ページインデツクス 実記憶のページフレームを識別するための0ないし81
92(13ビツト)の範囲の数値。この値を10ビツト
まで減らすことによつて、実記憶の最大容量を2Kバイ
トのページで2Mバイトまでに制限する場合もある。
参照ビツト 各ページフレームに関連するビツト。そのフレームに対
して記憶装置参照(読取りまたは書込み)が成功した場
合は常に“1”にセツトされる。
セグメントID 256Mバイトの仮想記憶セグメントを識別するための
0ないし4095(12ビツト)の範囲の数値。セグメ
ントIDと仮想ページインデツクスとを連結して、40
ビツト仮想アドレス空間の1ページを指定する。
記憶装置キー 特定の1ページの関連した保護レベルを識別するため
の、各TLBエントリ内の2ビツトの値。このキーは、
機能的にはシステム/370の各ページに関連した記憶
装置と同様である。
TLB 変換索引緩衝機構。TLBは仮想−実写像を含むハード
ウエアである(常にこの写像の一部のみをTLBに含ま
せる場合もある)。この写像の他に、各TLBエントリ
は、変換ID、記憶装置キー、およびロツクビツトのよ
うな、それに関連するページに係る他の情報を含む。
トランザクシヨンID 現在TLBエントリにロードされている一組のロツクビ
ツトの“所有者”を識別するための0ないし255(8
ビツト)の範囲の数値。
仮想アドレス セグメントIDと有効アドレスの下位28ビツトとを連
結することによつて本アドレス変換機構内で形成される
40ビツトのアドレス値。(すなわち、セグメントID
||仮想ページインデツク||バイトインデツクス)。
仮想ページインデツクス 2Kバイトページの場合、仮想記憶セグメント内の1ペ
ージを識別するための0ないし131072(17ビツ
ト)の範囲の数値[4Kバイトページの場合は0ないし
65536(16ビツト)]。仮想ページインデツクス
は有効アドレスのビツト4〜20[4〜19]から取り
出される。
記号||は連結を表わす。
本アドレス変換機構を支援するのに要するハードウエア
を以下に説明する。実施態様によつてはフイールド幅を
変更することもできることに留意されたい。
TLBは任意のエントリ数から成り、各エントリは或る
ページの仮想アドレスからその実アドレスへの変換を制
御する。
TLBの詳細な構成は実施態様に依存する。2つの実施
態様が可能である。セグメントID||仮想ページイン
デツクスによつてアドレス指定され、かつ、実記憶フレ
ームあたり1つのエントリを含む内容アドレス記憶装置
(CAM)。CAMエントリのインデツクス(序数)は
実ページインデツクスに等しい。仮想ページインデツク
スの下位ビツトの或る数値によつてアドレス指定される
セツトアソシアテイブTLB。実ページインデツクスは
TLBエントリの1つのフイールドに含まれる。
TLBの形に対する唯一の制約は、非CAM型の実施が
少なくとも2ウエイのセツトアソシアテイブでなければ
ならないことである。各TLBエントリは、IOR命令
およびIOW命令を用いて、個別に、CPUから読み取
られたり書き込まれたりする。TLBエントリは以下に
示すフイールドを含む。
32ビツトの入力有効アドレス(CPUまたはI/O装
置より)は、初めに、セグメント識別子を有効アドレス
に連結することによつて40ビツトの仮想アドレスに拡
張される。仮想アドレスは、次に、等価な実アドレスへ
の変換のために変換ハードウエアに供給される。仮想ア
ドレスは以下に示すプロセスによつて実アドレスに変換
される。
入力有効アドレスの上位4ビツトを用いてセグメントテ
ーブルを検索し、16個のセグメントのうちの1つを選
択する。
12ビツトのセグメント識別子、“特殊セグメント”ビ
ツト、およびキービツトは、選択されたセグメントレジ
スタから得られる。12ビツトのセグメント識別子は仮
想アドレスの生成のために用いる。特殊セグメントビツ
トおよびキービツトは次の示すアクセス有効化のために
用いる。第2図はセグメントテーブルの形式を示してい
る。
12ビツトのセグメント識別子は入力有効アドレスのビ
ツト4ないしビツト31に連結されて40ビツトの仮想
アドレスを生成する。有効アドレスのうち、2Kページ
の場合は下位11ビツト、または4Kページの場合は、
12ビツトが、選択された実ページのためのバイトアド
レスとして使用される。これらのビツトは変換プロセス
によつて変更されることはない。仮想アドレスの残りの
29(28)ビツトは、次に、変換ハードウエアに与え
られる。第3図は、セグメント識別子および記憶装置有
効アドレスを用いて行われる仮想アドレスの生成を示
す。
本明細書に示すアドレス変換システムは、最後に使用さ
れた仮想アドレス(本実施例では32)の変換を含む変
換索引緩衝機構(TLB)を、利用する。変換のために
新しい仮想アドレスがTLBに与えられる場合に、ハー
ドウエアを用いてTLBエントリを主記憶ページテーブ
ルから更新する。変換ハードウエアの簡単化されたデー
タフローを第4図に示し、各TLBの形式を第5図に示
す。
システムは、1TLBあたり16個のエントリを備えた
2つのTLB(16個の合同クラスを備えた2ウエイの
セツトアソシアテイブ)を利用する。仮想ページインデ
ツクスの下位4ビツトが同時に両方のTLBをアドレス
指定するのに用いられる。各TLBのアドレスタグエン
トリは、仮想ページインデツクスの残りのビツト(2K
ページの場合は25ビツト、4Kページの場合は24ビ
ツト)に連結されたセグメント識別子と、比較される。
2つの比較のいずれかが等しくかつそのTLBエントリ
が有効(有効ビツトによつて示される)ならば、関連す
るTLBが所与の仮想アドレスのための変換情報を含
む。
選択されたTLBエントリ内の実ページ番号フイールド
(RPN)は主記憶装置にある実ページの番号を含む。
実ページ番号は所与の仮想アドレスに写像される。これ
が特殊セグメントでない場合は、アクセスが許可される
前に、TLBエントリからのキービツトとセグメントレ
ジスタからのキービツトとを用いて、記憶装置保護違反
の有無を検査する。セグメントレジスタの特殊ビツトで
示されるようにこれが特殊セグメントである場合は、ア
クセスが許可される前に、ロツクビツト処理が実行され
る。記憶装置保護機構は、特殊セグメント処理と同様、
後で説明する。アクセスが許可されれば、主記憶装置が
アクセスされて、そのページの関連する参照および変更
ビツトが更新される。参照および変更ビツトのセツトも
後で説明する。
2つのTLBの比較から一致が得られない場合は、アド
レス変換論理は主記憶装置にあるページテーブルエント
リから不在TLBエントリの再ロードを試みる。主記憶
ページテーブルは実記憶に常駐し、論理的には2つの部
分すなわちハツシユアンカーテーブル(HAT)と逆ペ
ージテーブル(IPT)から成る。HATはハツシング
によつて任意の仮想アドレスを任意の実ページに写像で
きる。
逆ページテーブル(IPT)は各々の実ページフレーム
に関連する仮想アドレス(もしあれば)を指定する。I
PTは実ページ番号によつて指標されるエントリのアレ
イとして構成され、各エントリはそれに関連するセグメ
ントIDおよび仮想ページ番号を含む。
IPTは実ページ番号によつて指標されるので、所与の
実アドレスに対する仮想アドレスを決定するのは極めて
容易である。所与の仮想アドレスに対する実アドレスを
効率よく決定するためは、ハツシングによつて仮想アド
レスをアンカー点に写像すること、およびエントリを連
鎖してハツシユ衝突を解決すること、が必要である。こ
れは当業者には容易に理解されるであろう。
ハツシユアンカーテーブル(HAT)は論理的にはIP
Tから分離されている(ハードウエアの効率化という理
由から物理的にはIPTに組み込まれているが)。第6
図に示すように、ハツシユ関数は仮想アドレスをHAT
内の1つのエントリのインデツクスに変換し、そのエン
トリが同じHATインデツクスを持つたIPTエントリ
(実ページ)の連鎖における最初のエントリを指定す
る。仮想アドレスの一致を求めてIPTエントリの連鎖
を探索した場合、所望の仮想アドレスに対するIPTイ
ンデツクス(従つて実アドレス)が得られるか、又は、
一致が見出されることなく(ページが写像されていな
い)探索が終了する。本実施例では実記憶の各ページに
対して1つのHATおよびIPTエントリが存在する。
仮想アドレスから実アドレスへの変換は、初めに、有効
アドレスの選択された下位ビツトとセグメント識別子か
らのビツトとを排他的にオアすることによつて、達成さ
れる。この“ハツシユされた”アドレスはHATへの指
標付けに用いられる。選択されたHATエントリは所与
の仮想アドレスのための、探索されるべきIPTエント
リのリストの開始点へのポインタである。探索されるべ
きIPTエントリのリスト内のエントリは、次の探索す
べきIPTエントリを指定する各エントリ内のポインタ
によつてリンクされている。IPTエントリ中のフラグ
ビツトを用いて探索連鎖の終了点が示される。ハツシン
グは、一般に幾つかの異なつた有効アドレスに対して同
じHATアドレスを生成するので、探索されるべきIP
T連鎖には仮想アドレスエントリが幾つか含まれている
ことに留意されたい。
ハードウエアの効率化という理由から、HATおよびI
PTは、1つのインデクシング構造でアドレス指定でき
る1つの構造に組み合わされる。組み合わされたHAT
およびIPTには、実記憶の各ページに対して1つのエ
ントリが存在する。例えば、2Kバイトのページで構成
された1Mバイトの実記憶は512のエントリを要し、
4Kバイトのページで構成された512Kバイトの実記
憶は128のエントリを要する。組み合わされたHAT
およびIPTのエントリの形式は、第7図に示す。HA
T/IPTは各エントリに対して16バイトを有し、テ
ーブルサイズの倍数のアドレス場所から始まる。
各エントリの第1ワードはアドレスタグを含む。アドレ
スタグはセグメント識別子と仮想ページインデツクスと
を連結して作られる。2Kページの場合は、アドレスタ
グは29ビツト、4Kページの場合は28ビツトである
ことに留意されたい。4Kのページサイズが使用された
とすれば、28ビツトのアドレスタグがビツト3ないし
ビツト30に記憶される。ビツト2は予約されている。
第1ワードは、さらに、2ビツトキーを含む。2ビツト
キーは後に説明する記憶装置保護のために使用される。
第2ワードは、HATポインタ、IPTポインタ、およ
び各ポインタのための有効ビツトを含む。ポインタの使
用については後で説明する。
第3ワードは、書込み保護、ロツクビツト、および特殊
セグメントのためのTIDを含む。これらのフイールド
の使用についても後で説明する。
第4ワードはTLBの再ロードには使用されず、将来の
使用に備えて予約されている。
HAT/IPTベースアドレスは変換制御レジスタ(後
で説明する)内の1つのフイールドであり、これを用い
て主記憶ページテーブルの開始アドレスを計算する。H
AT/IPTベースアドレスに含まれる値は、記憶装置
およびページのサイズに依存して表1に示す量で乗算さ
れて、それによつて、主記憶ページテーブルの開始アド
レスが得られる。表1は、さらに、記憶装置サイズおよ
びページサイズの各々に対するHAT/IPTのサイズ
も示す。
HATアドレス生成 前述のように、HATインデツクスは、セグメント識別
子から選択されたビツトと有効アドレスからのビツトと
を排他的オアして計算される。使用されるビツト数は、
計算の結果、得られるインデツクスがHAT/IPTの
n個のエントリのうちの1つを選択するように選ぶ。こ
のハツシング操作を第6図に示す。HATインデツクス
生成に用いるビツトを表2に列挙する。選択されたHA
Tエントリの記憶アドレスは、 HAT/IPTベースアドレス+HATインデツクス|
|0100 として計算される。
選択されたHATエントリがアクセスされて、IPT探
索連鎖が空いているかどうかを判定するために空きビツ
トが検査される。もし空きビツトが1ならば、所与の仮
想アドレスへ写像されるページは存在せず、後で説明す
るように、“ページ不在”が報告される。もし、空きビ
ツトが0ならば、IPT探索連鎖にエントリが存在して
IPT内のエントリが探索される。そのとき、選択され
たHATエントリのHATポイントフイールドが、IP
T探索連鎖の開始点へのポインタとして使用される。以
上のようにハツシング操作のパラメータとしてセグメン
ト識別子から選択されたビツトを用いることにより、I
PT探索連鎖を平均的に短くすることができる。これ
は、前述のセグメントテーブル(第2図)にオペレーテ
イングシステムによりタスクないしはプロセスによつて
異なるセグメント識別子を割当てることができるためで
ある。
前にアクセスされたHATポインタは、IPTへの開始
インデツクスとして使用される。最初のIPTエントリ
の記憶装置アドレスは、 HAT/IPTベースアドレス+HATポインタ||0
000 として計算される。
IPT内の最初のエントリに対してアドレス指定が行わ
れ、そのアドレスタグと所与の仮想アクセスとの比較が
行われる。両者が一致すれば、仮想アドレスに割り当て
られた実ページが見つかつたことになり、不在TLBエ
ントリを再ロードすることができる。TLBエントリの
再ロードは後で説明する。両者が一致しなければ、IP
TポインタをアクセスしてIPT探索を続行する。IP
Tポインタは、 HAT/IPTベースアドレス+HATポインタ||0
100 として計算される。次にIPTポインタがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかど
うかを判定するために最終ビツトが検査される。最終ビ
ツトが0ならば、付加的なエントリが存在し探索処理を
続行する。最終ビツトが1ならば、探索されるべき付加
的なIPTエントリは存在せず、“ページ不在”が報告
される。
探索されるべき付加的なIPTエントリが存在すれば、
探索のための次のIPTエントリのアドレスは、 HAT/IPTベースアドレス+IPTポインタ||0
000 として計算される。このアドレスを用いてIPTの次の
エントリをアクセスし、選択されたエントリに含まれる
アドレスタグと所与の仮想アドレスとの比較を行う。両
者が一致すれば、仮想アドレスに割り当てられた実ペー
ジが見つかり、不在TLBエントリを再ロードすること
ができ。両者が一致しなければ、探索されるべき次のエ
ントリへのポインタをアクセスして探索処理を続行す
る。次のエントリへのポインタのアドレスは、 HAT/IPTベースアドレス+IPTポインタ||0
100 として計算される。次に、このワードがアクセスされ
て、IPT探索連鎖に付加的なエントリが存在するかど
うかを判定するために最終ビツトが検査される。最終ビ
ツトが1ならば、探索されるべき付記的なIPTエント
リは存在せず、“ページ不在”が報告される。最終ビツ
トが0ならば、付記的なエントリが存在し探索処理を続
行する。IPTエントリのアドレスタグが所与の仮想ア
ドレスと一致するか、または、一致が見出されずかつ最
終ビツトが探索連鎖内でそれ以上のエントリの存在はな
いということを示すまでは、現IPTポインタを用いて
前述の処理によつて後続のエントリのアクセスが行われ
る。
以下の記載は、仮想アドレスからIPTエントリのイン
デツクス(従つて対応する実アドレス)への変換に要す
るステツプれを要約したものである。
(1)仮想ページ番号の下位13ビツトを選択する。これ
は、4Kバイトのページが使用されていれば有効アドレ
スのビツト7ないし19であり、2Kバイトのページが
使用されていればビツト8ないし20である。
(2)有効アドレスのビツト0ないし3で指定されるセグ
メントレジスタの12ビツトの内容を選択する。左端に
“0”ビツトを連結して13ビツトのフイールドを形成
する。
(3)ステツプ(1)および(2)からの2つの13ビツトフイ
ールドを排他的オアして13ビツトのハツシユアンカー
テーブルエントリ番号を形成する。
(4)ステツプ(3)の値を左方に4ビツトだけシフトする。
これは物理的に所望のHATエントリを含むIPTエン
トリの開始点のバイトオフセツトを形成する。
(5)HAT/IPTエントリのアドレスを計算する。こ
れは、ステツプ(4)の結果とIPTの開始アドレスを加
算することによつてなされる。IPTが、2のべき乗バ
イトの境界の所から始まるように制約されていれば、こ
の“加算”はORまたは連結で置き換えてもよい。
(6)空きIPT連鎖を検査する。HAT/IPTエント
リの“E”(“空き”)ビツトを検査する。E=1なら
ば、IPT連鎖は空いている(HATポインタは無
効):探索が不成功に終る;仮想ページは写像されてい
ない。
(7)IPT連鎖が空いていなければ、アドレス指定され
たHAT/IPTエントリからHATポインタを選択す
る。この13ビツトの値は、同じハツシユ結果[ステツ
プ(3)]を有するエントリの連鎖内の最初のIPTエン
トリのインデツクスである。
(8)IPTインデツクの値を左方に4ビツトだけシフト
する。これは、仮想アドレスの一致を検査すべきIPT
エントリの開始点のバイトオフセツトを形成する。
(9)IPTエントリのアドレスを計算する。これは、ス
テツプ(8)の結果とIPTの開始アドレスとを加算する
ことによつてなされる。IPTが、2のべき乗バイトの
境界の所から始まるように制約されていれば、この“加
算”はORまたは連結で置き換えてもよい。
(10)仮想アドレスの比較。セグメントIDをIPTエン
トリからの仮想ページ番号(28ビツトまたは29ビツ
ト)に連結したものと、有効アドレスで指定されたセグ
メントレジスタの内容[ステツプ(2)]を有効アドレス
の仮想ページ番号に連結したものと、を比較する。
(11)一致すれば、探索は成功裏に終る。このエントリは
所望の仮想アドレスに対応するものである。そのインデ
ツクス番号は要求された実ページ番号に等しい。
(12)一致しなければ、連鎖の終りを検査する。IPTエ
ントリの“L”(“最終”)ビツトを検査する。L=1
ならば、そこがこの連鎖における最終のIPTエントリ
である。探索は不成功に終り、仮想ページは写像されて
いない。
(13)連鎖の終りでなければ、IPTエントリからIPT
ポインタフイールドを選択する。この13ビツトの値
は、検査されるべき、次のIPTエントリのインデツク
スである。
(14)ステツプ(8)へ進む。
TLB再ロード 所与の仮想アドレスに一致するアドレスタグフイールド
を持つたIPTエントリが見つかると、不在TLBエン
トリが再ロードされる。再ロードは、不在仮想アドレス
の合同クラスに対して最も長い間使用されなかつたTL
Bエントリを選択することならびに選択されたエントリ
に所与の仮想アドレスタグフイールド、対応する実ペー
ジ番号およびキービツトをロードすること、から成る。
もしこれが、セグメントレジスタ内の特殊ビツトによつ
て指示されるような特殊セグメントであるならば、書込
みビツト、TID、およびロツクビツトも再ロードされ
る。
各合同クラスで最も長い間使用されなかつたTLBエン
トリを決定するのにハードウエアが使用される。仮想ア
ドレスの下位ビツトが合同クラスを確定するので、あと
は、どのTLBが選択されたエントリを置換すべきであ
つたのかを決定するだけでよい。そうして、どのTLB
が、所与の合同クラスにおいて最も長い間参照されなか
つたエントリを有していたかという事に基づいて、2つ
のTLBのうちの一方が選択される。
所与の合同クラスに対して最も長い間使用されなかつた
TLBエントリがひとたび決定されれば、選択されたT
LBエントリを再ロードすることができる。アドレスタ
グフイールドおよびキービツトは、主記憶装置に含まれ
るIPTエントリから再ロードされる。このエントリの
アドレスはIPT探索プロセスにおいて予め計算されて
いる。探索プロセス中に計算されたIPTテンイツクス
は実ページ番号に等しいので、この値を用いてTLBの
実ページ番号フイールドを再ロードする。セグメントレ
ジスタ内の特殊ビツトによつて示されるように、これが
特殊セグメントである場合は、TIDおよびロツクビツ
トも再ロードされる。TIDおよびロツクビツトは、選
択されたIPTエントリの第3ワードをアクセスするこ
とによつて再ロードされる。
記憶装置アクセス制御 本アドレス変換機構は2つのアクセス制御機構を提供す
る。第1の機構は非特殊セグメント用で、実記憶の各ペ
ージに対する読取り/書込み保護を与える。第2の機構
は特殊セグメント専用で、持続データタイプを支援する
のに用いられる。これらのアクセス制御機構は変換され
たアクセスにだけ適用する。もしいずれかの機構によつ
て違反が検知されれば、記憶装置アクセスは終了して、
後で説明するように例外が報告される。
記憶装置保護処理 記憶装置保護処理は非特殊セグメントだけに適用する。
TLBによつてひとたび仮想アドレスと実アドレスとの
対応がとられると、適正なアクセス権限を保証するた
め、要求されたアクセスが検証される。この機能によつ
て各ページはアクセスなし、読取り専用、または読取り
/書込みとしてマークされる。
アクセス制御は、選択されたセグメントレジスタ内の1
ビツトの保護キー、TLBエントリ内の2ビツトキー、
およびアクセスがロード操作であるのか記憶操作である
のか、ということに関係している。アクセスは表3に示
すようにして制御される。
もしアクセスが許可されなければ、変換は終了して保護
例外がCPUに報告される。
ロツクビツト処理 ロツクビツト処理は、選択されたセグメントレジスタ内
の特殊ビツトによつて示される特殊セグメントだけに適
用にされる。特殊セグメントは持続データを支援するの
に用いられる。ロツクビツト処理によつて、オペレーテ
イングシステムは持続変数の変更を自動的に監視するこ
と、変更をジヤーナルに記録すること、陰のページを生
成すること、および、データベースの一貫性確保のため
の他の処理を実行すること、が可能である。ロツクビツ
トは、また保護の単位を記憶装置保護機能によるページ
サイズ(2Kバイトまたは4Kバイト)から、128バ
イトまたは256バイトのラインまで、細かくする。2
Kページの場合は128バイトの保護単位が実現され、
4Kページの場合は256バイトの保護単位が実現され
る。2Kページの場合は有効アドレスのビツト[21:
24]によつて個々のラインのロツクビツトが選択さ
れ、4Kページの場合は有効アドレスのビツト[20:
23]によつて個々のラインのロツクビツトが選択され
る。
アクセス制御は、選択されTLBエントリ内の1ビツト
の書込みキー、選択されたラインのロツクビツト値、T
ID比較、およびそのアクセスがロード操作であるのが
記憶操作であるのか、ということに関係している。アク
セスは表4に示すようにして制御される。
ロツクビツト違反の報告にはデータ記憶例外が使用され
る。この違反は必ずしもエラーを表わすものではなく、
単に、新たに変更されたラインがオペレーテイングシス
テムによつて処理されるべきである、という事を表わす
ものでよい。
参照および変更ビツトは実記憶の各ページごとに備えら
れる。これらのビツトは本アドレス変換機構の外部のア
レイの中にあつて、記憶装置アクセスの度に要求に応じ
て更新される。参照ビツトは、読取りまたは書込みのた
めに対応する実ページがアクセスされると、1にセツト
される。変更ビツトは、対応するページが書き込まれる
と、セツトされる。
関連するCPUからのI/O読取り命令(IOR)およ
びI/O書込み命令(IOW)によつて、参照および変
更ビツトをアクセスすることができる。実記憶の各ペー
ジのための参照および変更ビツトは、I/Oベースアド
レスレジスタにX`1000´を加えたものによつて指
定されるI/Oアドレスの所から始まる。所与のページ
のための参照および変更ビツトのI/Oアドレスは次式
によつて与えられる。
I/Oアドレス=I/Oベースアドレスレジスタによつ
て指定されたアドレス +X`1001´ +ページ番号 各I/Oアドレスは実記憶の1ページに対する参照ビツ
トおよび変更ビツトを含む。参照ビツトおよび変更ビツ
トの形式を第8図に示す。
参照ビツトおよび変更ビツトへのアクセスによつて転送
されるデータは以下のように定義される。
ビツト0:29 ゼロ ビツト30 参照ビツト。対応する実ページが読取りまたは書込みの
ためにアクセスされると、1にセツトされる。
ビツト31 変更ビツト。対応する実ページが書込みのためにアクセ
スされると、1にセツトされる。
参照ビツトおよび変更ビツトはハードウエアによつて初
期設定されることはない。それらはシステムソフトウエ
アのIOW命令によつて初期設定およびクリアが行われ
る。参照ビツトおよび変更ビツトは、それらをセツトま
たはクリアするプログラムを実行することによつてセツ
トすることができるので、参照ビツトおよび変更ビツト
をクリアまたはセツトする書込みの後に読取りが続いて
も、必ずしも書き込まれたものと同じデータを読み取る
必要はない。
制御レジスタ 記憶装置の構成、ページテーブルアドレス、およびI/
Oベースアドレスを定めるために用いる制御レジスタが
幾つかある。これらのレジスタはCPUからのI/O読
取り(IOR)命令およびI/O書込み(IOW)命令
によつて初期設定(ロード)される。それらの構成およ
び形式を第9図ないし第18図に示す。これらのレジス
タは監視プログラム状態になつて始めてアクセス可能と
なる。
I/Oベースアドレスレジスタは、I/Oアドレスのど
の64Kブロツクが変換システムに割り当てられている
のかを指定する。I/Oベースアドレスは、I/Oベー
スアドレスレジスタに含まれる値に65536(X`1
0000´)を乗じたものに等しい。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図に示す。
RAM指定レジスタは以下のように定義される。
ビツト0:10 予約されている。
ビツト11:19 リフレツシユレート。この9ビツトの数量がリフレツシ
ユサイクルレートを決定する。リフレツシユサイクルレ
ートはビツト[11:19]に含まれる値にCPUクロ
ツクの周波数を乗じたものに等しい。ゼロのリフレツシ
ユレートはリフレツレシユを減勢する。リフレツシユレ
ートの値は、所望のメモリリフレツシユレートをCPU
クロツクの周波数で除することによつて計算することが
できる。例えば、2ミリ秒ごとに128行のリフレツシ
ユを要するダイナミツクメモリを備えたシステムでは、
行あたりのリフレツシユ間隔は128/2ミリ秒すなわ
ち15.6マイクロ秒である。CPUクロツクが200
ナノ秒の場合は、所望のリフレツシユレート値は15.
6マイクロ秒/200ナノ秒、すなわち、78(X`0
4E`)である。
これはX`04E`をリフレツシユレートにロードする
ことを要求する。
リフレツシユレートはPORシーケンスの一部としてX
`01A`に初期設定される。
ビツト20:27 RAM開始アドレス。この8ビツトフイールドが変換お
よび非変換アクセスのためのRAMの開始アドレスを規
定する。変換されたアクセスの場合は、変換されたアド
レスがRAM開始アドレスおよびRAMサイズで指定さ
れる範囲内に入つていればRAMが選択される。変換さ
れないアクセスの場合は、RAMサイズと共にRAM開
始アドレスを用いて、アドレスがこの記憶制御装置のた
めに指定されたアドレス範囲内に入つているかどうか判
定する。RAMの開始アドレスはRAMサイズの2進倍
数として定義され、表5に示すビツトとRAMサイズで
指定される値とを乗じることによつて計算される。
例えば、256Kの記憶装置サイズ指定されれば、64
個の256Kバイト境界の1つがビツト[20:25]
によりRAM開始アドレスとして指定される。もしビツ
ト[20:25]が011101ならば、RAM開始ア
ドレスはX`00740000´である。1Mバイトの
RAMサイズが指定されれば、16個の1Mバイト境界
の1つがビツト[20:23]によりRAM開始アドレ
スとして指定される。もしビツト[20:23]が10
01ならば、RAM開始アドレスはX`0090000
0´である。
ビツト28:31 RAMサイズ。この4ビツトフイールドは本変換システ
ムに接続されたRAMのサイズを規定する。RAMサイ
ズは以下の表6に示すように64Kバイトから16Mバ
イトまでの間で選択できる。
ROS指定レジスタ ROS指定レジスタは、ROS開始アドレス、ROSサ
イズ、およびROSによつてパリテイが与えられている
かどうか、ということを規定する。ROSは変換モード
および非変換モードのいずれにおいてもアクセス可能で
ある。ROS指定レジスタの形式を第11図に示す。
ROS指定レジスタは以下のように定義される。
ビツト0:19 予約されている。
ビツト20:27 ROS開始アドレス。この8ビツトフイールドは、変換
されたアクセス及び変換されないアクセスの両方の場合
における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´である。
ビツト28:31 ROSサイズ。この4ビツトフイールドは変換システム
に接続されたROSのサイズを規定する。ROSサイズ
は以下に表8に示すように64Kバイトから64Mバイ
トまでの間で選択できる。ROSが使用されない場合
は、ビツト[28:31]はゼロにセツトされる。
変換制御レジスタ 変換制御レジスタ(TCR)は、ハードウエアによるT
LBの再ロードが成功した時に割込みが発生されるかど
うか、参照および変更アレイにパリテイが使用されてい
るかどうか、各ページのサイズ(2Kバイトまたは4K
バイト)、および主記憶ページテーブル(HATとIP
Tを組み合せたもの)の開始アドレス、を指定する。変
換制御レジスタの形式を第12図に示す。
変換制御レジスタは以下のように定義される。
ビツト0:20 予約されている。
ビツト21 TLB再ロード成功時の割込み許可。このビツトを用い
てハードウエアによるTLBの再ロードが成功したとい
うことが報告される。1にセツトされていれば、ハード
ウエアによるTLBの再ロードが成功したことによつ
て、例外回答が生成されSERのTLB再ロードビツト
(ビツト22)が1にセツトされる。このビツトがゼロ
にセツトされていれば、ハードウエアによるTLBエン
トリの再ロードの成功は報告されない。ソフトウエアに
よるTLBの性能評価にこの機能を用いることができ
る。
ビツト22 参照および変更アレイのパリテイ。このビツトを用い
て、外部の参照および変更アレイにパリテイが使用され
るかどうかを示す。このビツトが1にセツトされれば、
参照および変更アレイにパリテイを使用する。もしこの
ビツトがゼロにせつとされれば、参照および変更アレイ
にはパリテイを使用しない。
ビツト23 ページサイズ。2Kバイトページには値0を用い、4K
バイトページには値1を用いる。
ビツト24:31 HAT/IPTベースアドレス。この8ビツトフイール
ドを用いて、主記憶装置にあるHAT/IPTエントリ
の開始アドレスを指定する。実記憶のサイズおよびペー
ジサイズで決まる定数を、このフイールドに含まれる値
に乗じることにより、HAT/IPTエントリの開始ア
ドレスが決定される。2Kバイトのページサイズの場合
は、ビツト[24:31]によつてベースアドレスが指
定され、4Kバイトのページサイズの場合は、ビツト
[25:31]によつてベースアドレスが指定される。
記憶装置サイズおよびページサイズの各々に対する定数
は表1に列挙されている。
記憶装置例外レジスタ(SER)は、記憶装置アクセス
で生じた変換プログラムにおけるエラーおよびシステム
エラーを報告するのに用いられる。変換システムによつ
て検知される各々のエラー状態ごとに別のビツトが割り
当てられる。エラーが複数生じた場合は、適切なビツト
をセツトすることによつて各々のエラーが報告される。
前のエラーによつてセツトされたビツトは後続のエラー
によつてはリセツトされない。
SERはPORシーケンスによつてゼロに初期設定され
る。ひとたび例外が報告されれば、例外が処理された後
でシステムソフトウエアがSERをクリアする。記憶装
置例外レジスタの形式は第13図に示す。
記憶装置例外レジスタは以下のように定義される。
ビツト0:21 予約されている。
ビツト22 TLB再ロード成功。このビツトは、TLB再ロード成
功による割込みが許可されているときに再ロードが成功
すると、1にセツトされる。
ビツト23 参照および変更アレイのパリテイエラー。参照および変
更アレイでパリテイエラーが検知された場合にこのビツ
トは1にセツトされる。
ビツト24 ROS書込み試行。ROSアドレス空間に含まれるアド
レスへの書込みが試行された場合にこのビツトは1にセ
ツトされる。
ビツト25 IPT指定エラー。IPT探索連鎖で無限ループが検地
された場合にこのビツトは1にセツトされる。無限ルー
プは例えば、システムソフアウエアのエラーのためにI
PTポインタの値が誤つて指定され、その結果IPTポ
インタが現IPT探索連鎖における前のエントリを指示
したような場合に生じる。
ビツト26 外部装置例外。ROMP以外のRSC上の装置によつて
例外が生じた場合にこのビツトは1にセツトされる。
ビツト27 多重例外。記憶装置例外レジスタ内で例外標識がクリア
される前に2以上の例外(IPT指定エラー、ページ不
在、指定、保護、またはデータ)が発生した場合にこの
ビツトは1にセツトされる。
このビツトは、通常、システムソフアウエアが例外を処
理できなかつたことを示す。しかしながら、多重ロード
(LM)命令または多重記憶(STM)命令によつて例
外が生じた場合でもこのビツトをセツトできる。という
ことはLM命令またはSTM命令は、例外によつてその
命令が中止されるよりも前に、その命令によつて指定さ
れる全てのレジスタの記憶またはロードを試行するから
である。
ビツト28 ページ不在。どのTLBエントリおよび主記憶ページテ
ーブルエントルも仮想アドレスに対する変換を含んでい
ないために変換が終了した場合に、このビツトは1にセ
ツトされる。
ビツト29 指定。同じ仮想アドレスに対して2つのTLBエントリ
が見つかつたという理由で変換が終了した場合に、この
ビツトは1にセツトされる。
ビツト30 保護。非特殊セグメントのための記憶装置保護処理で記
憶装置アクセスが禁止されていることがわかつたために
変換が終了した場合に、このビツトは1にセツトされ
る。
ビツト31 データ。特殊セグメントのためのトランザクシヨンID
/ロツクビツト処理で、記憶装置アクセスが禁止されて
いることがわかつたために変換が終了した場合に、この
ビツトは1にセツトされる。
記憶装置例外アドレスレジスタ(SEAR)は、CPU
からのデータロードおよび記憶要求に対して、記憶装置
例外レジスタ(SER)により報告された例外を起こし
た有効記憶装置アドレスを含む。例外がROMP命令取
出しまたは外部装置によつて生じた場合には、SEAR
はロードされない。記憶装置例外アドレスレジスタの形
式は第14図に示す。
記憶装置例外アドレスレジスタは以下のように定義され
る。
ビツト0:31 記憶装置例外アドレス。SERによつて報告された例外
を生じた32ビツトの有効記憶装置アドレス。多重エラ
ーの場合(SERのビツト27が1にセツトされる)、
SEARに含まれるアドレスは、最も古い例外のアドレ
スである。
被変換実アドレスレジスタ(TRAR)は実アドレス計
算操作によつて決定された実記憶アドレスを含む。
実アドレス計算機能は、仮想アドレスが現時点で実記憶
に写像されているかどうかを判定して仮想アドレスを写
像されている場合には対応する実アドレスを決定する。
実アドレス計算機能は後で説明する。被変換実アドレス
レジスタの形式を第15図に示す。
実アドレス変換レジスタは以下のように定義される。
ビツト0 無効ビツト。このビツトは変換に失敗した場合に1にセ
ツトされ、変換に成功した場合に0にセツトされる。
ビツト1:7 ゼロ。この7ビツトフイールドは常にゼロである。
ビツト8:31 実記憶アドレス。この24ビツトフイールドは実記憶ア
ドレスを含む。この実記憶アドレスは変換が成功した場
合に所与の仮想アドレスへ写像されたものである。変換
に失敗した場合はこのフイールドはゼロにセツトされ
る。
トランザクシヨン識別レジスタ(TID)は現時点で特
殊セグメントの“所有者”として定義されているタスク
の8ビツトの識別子を含む。選択されたセグメントレジ
スタ内の特殊ビツトによつて或るセグメントが特殊セグ
メントとして定義されると、6.2節に示すようなロツ
クビツト処理を記憶装置アクセスに適用する。ロツクビ
ツト処理しTIDに含まれる値を用い、それとTLB内
のTIDエントリとを比較して、記憶装置アクセスが許
されるかどうかを判定する。トランザクシヨン識別レジ
スタの形式を第16図に示す。
トランザグシヨン識別レジスタは以下のように定義され
る。
ビツト0: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ビツトのトランザクシヨンI
D、および16個のロツクビツトから成つている。各T
LBエントリは個々にアドレス指定できる3つのフイー
ルドに分けられる。TLBフイールドの各々の形式を以
下に説明する。
“TLBアドレスタグ”フイールドは、2Kページの場
合、セグメント識別子||仮想ページインデツクスの上
位25ビツトを含み、4Kページの場合、その上位24
ビツトを含む。各TLBエントリのアドレスタグフイー
ルドの形式を第18.1図に示す。
各TLBアドレスタグフイールドの内容は以下のように
定義される。
ビツト0:2 予約されている。
ビツト3:17 アドレスタグ。このフイールドは、2Kページの場合、
セグメント識別子||仮想ページインデツクの上位25
ビツトを含み、4Kページの場合、その上位24ビツト
を含む。4Kページの場合、アドレスタグはビツト
[3:26]に含まれる。
ビツト28:31 予約されている。
“TLB実ページ番号、有効ビツト(V)、およびキー
ビツト(キー)”フイールドは、TLBエントリのアド
レスタグフイールドに含まれる仮想アドレスに割り当て
競れている実ページ番号を含む。このフイールドは、さ
らに、所与のTLBエントリが有効情報を含むことを示
す有効ビツト、および所与のページに必要なアクセス権
限のためのキービツトを含む。各TLBエントリのため
のこのフイールドの形式を第18.2図に示す。
実ページ番号、有効、およびキービツトフイールドの内
容は以下のように定義される。
ビツト0:15 予約されている。
ビツト16:28 実ページ番号。この13ビツトフイールドは8192個
の実ページのうちの1つを指定する。8192個よりも
少ないページを使用する場合は、それらのページをアド
レス指定するのに必要な下位ビツトだけが使用される。
ビツト29 有効ビツト。選択されたTLBエントリが有効情報を含
む場合はこのビツトは1である。TLBエントリが無効
情報を含む場合はこのピツトは0である。
ピツト30:31 キービツト。この2ビツトフイールドは各ページに対す
るアクセス権限を定義する。キービツトの使用の関して
は6.1節の示す。
“TLB書込みビツト、トランザクシヨンID、および
ロツクビツト”フイールドは、当該TLBエントリが特
殊セグメントに対するものである場合に、書込みビツ
ト、トランザクシヨンID、およびTLBエントリのア
ドレスタグフイールドに含まれている仮想アドレスに割
当てられたロツクビツトを含む。各TLBエントリのた
めのこのフイールドの形式を第18.3図に示す。
TLB書込みビツト、トランザクシヨンID、およびロ
ツクビツトフイールドの各々の内容は以下のように定義
される。
ビツト0:6 予約されている。
ビツト7 書込みビツト。このビツトは、特殊セグメントの場合に
各ページに関連するアクセス権限を定義する。ロツクビ
ツト処理におけるこのビツトの使用については6.2節
に示す。
ビツト8:15 トランザクシヨン識別子。この8ビツトフイールドは特
殊セグメント内にある選択されたページを現に所有する
タクスを定義する。ロツクビツト処理におけるこれらの
ビツトの使用については前に説明した。
ビツト16:31 ロツクビツト。この16ビツトフイールドは、特殊セグ
メントの場合に2Kまたは4Kのページ内の各“ライ
ン”に対するアクセス権限を定義する。1ラインは2K
ページの場合は128バイト、4ページの場合は256
バイトである。ロツクビツト処理におけるこれらのビツ
トの使用については6.2節で説明する。
本変換機構は、頻繁に要求される変換機能をハードウエ
アで支援する。このハードウエアにより、TLBエント
リを選択的に無効化すること、および、IBMシステム
/370フアミリのコンピュータにおけるものと同様な
“実アドレスロード”機能を遂行することができる。
仮想−実アドレス写像を変更する場合は、システムソフ
トウエアによつて、TLBの内容と主記憶装置にあるペ
ージテーブルの内容と、を同期化することが必要であ
る。TLBおよびページフレームテーブルのエントリを
両方とも除去(無効化)して、用済の写像情報が後続の
変換で使用されないようにしなければならない。
本システムは主記憶装置にあるページテーブルの内容と
TLBエントリとの同期化を支援する機能3つ提供す
る。TLBの全内容、または選択されたTLBエントリ
のみを無効化するのにこれらの機能を使用することがで
きる。システムによつて認識されるI/0アドレスの6
4Kバイトブロツク内の特定I/OアドレスへのI/O
書込み命令(IOW)によつて、これらの機能が呼び出
される。これらの機能の各々に対するアドレス割当て
は、必要に応じてシステムに与えられる。
“全TLB無効化機能によつてTLBエントリが全て無
効化される。この機能は、後続の変換に備えて、主記憶
装置にあるページテーブルでTLBの内容を強制的に更
新する。
この機能に関連するアドレスへのI/Oの書込みが、T
LBエントリを全て無効化する。I/O書込み命令で転
送されるデータは使用されない。
“指定セグメント内のTLBエントリ無効化機能によつ
て、指定セグメント識別子を持つたTLBエントリが全
て無効化される。このセグメント識別子を用いる後続の
変換でTLBの内容が主記憶装置にあるページテーブル
から更新される。
この機能に関連するアドレスへのI/O書込みが、指定
セグメント識別子を持つたTLBエントリを無効化す
る。I/O書込み命令で転送されるデータのビツト
[0:3]がセグメント識別子を選択するのに用いられ
る。このセグメント識別子を含むTLBエントリは全て
無効化される。無効化されたセグメント内の有効アドレ
スを伴う後続の変換によつて、TLBの内容は主記憶装
置にあるページテーブルから更新される。
“指定有効アドレスに対するTLBエントリの無効化”
機能によつて、指定有効アドレスを備えたTLBエント
リが無効化される。
指定有効アドレスを含むページ内の有効アドレスを伴う
後続の変換によつて、TLBの内容は主記憶装置にある
ページテーブルから更新される。
この機能に関連するアドレスへのI/O書込みが、指定
有効アドレスを備えたTLBエントリを無効化する。I
/O書込み命令で填装されるデータのビツト[0:3
1]が有効アドレスとして使用される。本アドレス変換
機構に含まれるセグメントレジスタの内容を用いて通常
の変換プロセスが適用される。
“実アドレス計算”機能はシステムソフトウエアによつ
て使用され、所与の仮想アドレスが現時点で実記憶に写
像されているかどうか、および、もし写像されていれば
どの実アドレスがその仮想アドレスに割り当てられてい
るのかを決定する。
仮想アドレスが写像されない場合に、それを使用すれば
ページ不在を生じる;この情報は、割込みを禁止した状
態で走行するシステムのルーチンには、重要である。I
/O操作のほとんどが実アドレスを使用して実行される
ので、仮想アドレスから実アドレスへの変換結果はシス
テムI/Oルーチンによつて要求される。
実アドレス計算機能は、これに関連するアドレスへのI
/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ベースアドレス
とこの変位とを加えたものに等しい。
むすび 発明の好ましい実施例に関する以上の説明から、両方の
TLBとページフレームテーブルとにロツクビツトを用
意しかつ通常のセグメント化方式を利用する本発明の意
図および範囲から逸脱することなく、システムのハード
ウエアおよびソフトウエアの形式および詳細において様
々な変更が容易にできることは当業者には明白であろ
う。明らかに、こうした変更は、記憶装置サイズ、レジ
スタのサイズおよび制御フイールドの定義、アドレスサ
イズ、ページフレームテーブルのアクセス方法および構
成、ならびにハツシユアドレス方法における変更を含む
が、それらに限定されるものではない。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラデイン・ジヨ−ジ アメリカ合衆国ニユ−ヨ−ク州10968ピア モント・フランクリン26番地 審判の合議体 審判長 松尾 浩太郎 審判官 大橋 隆夫 審判官 羽鳥 賢一 (56)参考文献 特開 昭56−153576(JP,A) 特開 昭50−40240(JP,A) 特開 昭55−34337(JP,A) 特開 昭53−34429(JP,A) 特開 昭56−93164(JP,A) 特開 昭54−105930(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】中央処理装置(CPU)によって供給され
    る仮想記憶アドレスを仮想記憶アドレス空間が実記憶よ
    りも著しく大きい仮想記憶システム内の実記憶アドレス
    に変換する仮想記憶アドレス変換機構において、 入力アドレスがセグメント識別フィールド、ページオフ
    セットフィールドおよびバイトオフセットフィールドを
    含む第1の仮想アドレスか実アドレスかをCPU記憶チ
    ャネル上の変換モードビツトにより判別する手段と、 前記判別手段により前記第1の仮想アドレスと判断され
    た場合、前記セグメント識別フィールドを用いて前記セ
    グメント識別フィールドで指定された複数のセグメント
    レジスタの1つをアクセスする手段と、 アクセスされた前記セグメントレジスタの内容と、前記
    第1の仮想アドレスの前記ページオフセットフィールド
    および前記バイトオフセットフィールドとを連結して前
    記第1の仮想アドレスよりも少なくとも1ビット以上大
    きい第2の仮想アドレスを形成する手段と、 前記第2の仮想アドレスの仮想ページアドレスの内の一
    定の部分を探索引数として探索する複数で一組の高速変
    換索引緩衝機構とを備え、 前記高速変換索引緩衝機構に記憶されている各々の仮想
    アドレスと、前記高速変換索引緩衝機構を探索するため
    に前記探索引数として使用された仮想アドレスとを比較
    し、 比較の結果、一致した場合、前記高速変換索引緩衝機構
    にアクセスし、一致した仮想アドレスに対応する実ペー
    ジアドレスを読出し、 比較の結果、不一致の場合、主記憶装置内にあり、ハッ
    シングされた前記仮想ページアドレスを含むページテー
    ブルを探索し、 前記ページテーブルの探索において、所望の仮想アドレ
    スが、同一のハッシュアドレスを生成する仮想アドレス
    の連鎖リストの最初のエントリのハッシュアドレスにあ
    るか否かを判定し、 前記判定の結果、もし前記仮想アドレスが前記ハッシュ
    アドレスにないならば、前記ハッシュアドレスが、同一
    のハッシュアドレスを生成する仮想アドレスの連鎖リス
    トの最後のエントリか否かを判定し、 前記エントリが最後のものでない場合、所望の仮想アド
    レスが、前記連鎖リストの次のエントリのハッシュアド
    レスにあるか否かを判断し、 所望の仮想アドレスが見つかるか又は前記連鎖リストの
    最後のエントリになるかまで、前記ページテーブルの連
    鎖アドレスリストの前記所望の仮想アドレスの探索を続
    行し、 前記所望の仮想アドレスが見つかった場合、前記ページ
    テーブルの仮想ページアドレスに関連した実ページアド
    レスをアクセスし、前記実ページアドレスを要求された
    実記憶アドレスとして使用するようにした ことを特徴とするデータ持続性が制御される仮想記憶ア
    ドレス変換機構。
JP58500670A 1982-12-30 1982-12-30 デ−タ持続性が制御される仮想記憶アドレス変換機構 Expired - Lifetime JPH0658646B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1982/001829 WO1984002784A1 (en) 1982-12-30 1982-12-30 Virtual memory address translation mechanism with controlled data persistence

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2277954A Division JPH0679294B2 (ja) 1990-10-18 1990-10-18 アドレス変換方法

Publications (2)

Publication Number Publication Date
JPS59502123A JPS59502123A (ja) 1984-12-20
JPH0658646B2 true JPH0658646B2 (ja) 1994-08-03

Family

ID=22168503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58500670A Expired - Lifetime JPH0658646B2 (ja) 1982-12-30 1982-12-30 デ−タ持続性が制御される仮想記憶アドレス変換機構

Country Status (6)

Country Link
US (2) USRE37305E1 (ja)
EP (2) EP0113240B1 (ja)
JP (1) JPH0658646B2 (ja)
CA (1) CA1200917A (ja)
DE (1) DE3382307D1 (ja)
WO (1) WO1984002784A1 (ja)

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4731740A (en) * 1984-06-30 1988-03-15 Kabushiki Kaisha Toshiba Translation lookaside buffer control system in computer or virtual memory control scheme
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
US4737909A (en) * 1985-04-01 1988-04-12 National Semiconductor Corp. Cache memory address apparatus
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
JPH083805B2 (ja) * 1985-06-28 1996-01-17 ヒューレット・パッカード・カンパニー Tlb制御方法
US4774653A (en) * 1985-08-07 1988-09-27 Hewlett-Packard Company Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
JPH06105435B2 (ja) * 1985-10-25 1994-12-21 株式会社日立製作所 情報処理装置による記憶管理機構
US5029072A (en) * 1985-12-23 1991-07-02 Motorola, Inc. Lock warning mechanism for a cache
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
US4761737A (en) * 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
JPS62222344A (ja) * 1986-03-25 1987-09-30 Hitachi Ltd アドレス変換機構
US4833603A (en) * 1986-05-30 1989-05-23 Bull Hn Information Systems Inc. Apparatus and method for implementation of a page frame replacement algorithm in a data processing system having virtual memory addressing
US4819156A (en) * 1986-06-13 1989-04-04 International Business Machines Corporation Database index journaling for enhanced recovery
GB8619227D0 (en) * 1986-08-06 1986-09-17 Int Computers Ltd Information storage apparatus
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5249276A (en) * 1987-06-22 1993-09-28 Hitachi, Ltd. Address translation apparatus having a memory access privilege check capability data which uses mask data to select bit positions of priviledge
US5317717A (en) * 1987-07-01 1994-05-31 Digital Equipment Corp. Apparatus and method for main memory unit protection using access and fault logic signals
JPH07120312B2 (ja) * 1987-10-07 1995-12-20 株式会社日立製作所 バッファメモリ制御装置
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
JPH0628036B2 (ja) * 1988-02-01 1994-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン シミュレーシヨン方法
US5155834A (en) * 1988-03-18 1992-10-13 Wang Laboratories, Inc. Reference and change table storage system for virtual memory data processing system having a plurality of processors accessing common memory
US5239635A (en) * 1988-06-06 1993-08-24 Digital Equipment Corporation Virtual address to physical address translation using page tables in virtual memory
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
US5247632A (en) * 1989-01-23 1993-09-21 Eastman Kodak Company Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system
US5287499A (en) * 1989-03-22 1994-02-15 Bell Communications Research, Inc. Methods and apparatus for information storage and retrieval utilizing a method of hashing and different collision avoidance schemes depending upon clustering in the hash table
JPH0661068B2 (ja) * 1989-07-18 1994-08-10 株式会社日立製作所 記憶再配置方法および階層化記憶システム
US5265227A (en) * 1989-11-14 1993-11-23 Intel Corporation Parallel protection checking in an address translation look-aside buffer
JP3369580B2 (ja) * 1990-03-12 2003-01-20 ヒューレット・パッカード・カンパニー 直接メモリアクセスを行うためのインターフェース装置及び方法
EP0473767A1 (en) * 1990-03-23 1992-03-11 Eastman Kodak Company Virtual memory management and allocation arrangement for digital data processing system
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
CA2045789A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
EP0506236A1 (en) * 1991-03-13 1992-09-30 International Business Machines Corporation Address translation mechanism
US5564052A (en) * 1991-06-27 1996-10-08 Integrated Device Technology, Inc. Logically disconnectable virtual-to-physical address translation unit and method for such disconnection
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
JPH087717B2 (ja) * 1991-09-03 1996-01-29 富士通株式会社 動的アドレス変換処理装置
US5617554A (en) * 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5487162A (en) * 1992-02-25 1996-01-23 Matsushita Electric Industrial Co., Ltd. Cache lock information feeding system using an address translator
US5428759A (en) * 1992-03-30 1995-06-27 Unisys Corporation Associative memory system having segment and page descriptor content-addressable memories
US5559978A (en) * 1992-10-14 1996-09-24 Helix Software Company, Inc. Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
US5568415A (en) * 1993-02-19 1996-10-22 Digital Equipment Corporation Content addressable memory having a pair of memory cells storing don't care states for address translation
EP0620520A1 (en) * 1993-03-30 1994-10-19 AT&T Corp. Method for making persistent data objects having hidden pointers
GB2276739A (en) * 1993-03-30 1994-10-05 Ibm System for storing persistent and non-persistent queued data.
US5479628A (en) * 1993-10-12 1995-12-26 Wang Laboratories, Inc. Virtual address translation hardware assist circuit and method
WO1995012848A1 (en) * 1993-11-03 1995-05-11 Eo, Inc. Recovery boot process
US6349375B1 (en) * 1994-02-02 2002-02-19 Compaq Computer Corporation Compression of data in read only storage and embedded systems
US5732409A (en) * 1994-03-21 1998-03-24 Legend Research Limited Caching disk controller implemented by hardwired logic
EP0690386A1 (en) * 1994-04-04 1996-01-03 International Business Machines Corporation Address translator and method of operation
US5805855A (en) * 1994-10-05 1998-09-08 International Business Machines Corporation Data cache array having multiple content addressable fields per cache line
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation
US5680598A (en) * 1995-03-31 1997-10-21 International Business Machines Corporation Millicode extended memory addressing using operand access control register to control extended address concatenation
US5752275A (en) * 1995-03-31 1998-05-12 Intel Corporation Translation look-aside buffer including a single page size translation unit
US5699543A (en) * 1995-09-29 1997-12-16 Intel Corporation Profile guided TLB and cache optimization
JPH1097431A (ja) * 1996-07-31 1998-04-14 Fujitsu Ltd シミュレーション装置及びシミュレーション方法並びにコンピュータ読取可能な記録媒体
US6052697A (en) * 1996-12-23 2000-04-18 Microsoft Corporation Reorganization of collisions in a hash bucket of a hash table to improve system performance
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6195674B1 (en) 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
US6414687B1 (en) 1997-04-30 2002-07-02 Canon Kabushiki Kaisha Register setting-micro programming system
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
DE69738902D1 (de) * 1997-06-27 2008-09-25 Bull Sa Busschnittstellebrücke zwischen einem Systembus und Lokalbussen mit Lokaladressenübersetzung für mittels Adressenraum programmierbaren Systemraumzugriff
US6412056B1 (en) 1997-10-01 2002-06-25 Compac Information Technologies Group, Lp Extended translation lookaside buffer with fine-grain state bits
US6108771A (en) * 1997-12-19 2000-08-22 International Business Machines Corporation Register renaming with a pool of physical registers
US6134699A (en) * 1998-01-30 2000-10-17 International Business Machines Corporation Method and apparatus for detecting virtual address parity error for a translation lookaside buffer
US6298428B1 (en) * 1998-03-30 2001-10-02 International Business Machines Corporation Method and apparatus for shared persistent virtual storage on existing operating systems
JP3444346B2 (ja) * 1999-01-04 2003-09-08 日本電気株式会社 仮想メモリ管理方式
DE19903599A1 (de) * 1999-01-29 2000-08-03 Siemens Ag Verfahren zum gesicherten Zugriff auf zumindest eine Variable in einem präemptiv Multitasking-gesteuerten Prozessorsystem
US6647468B1 (en) * 1999-02-26 2003-11-11 Hewlett-Packard Development Company, L.P. Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
JP4317296B2 (ja) * 1999-09-17 2009-08-19 株式会社ターボデータラボラトリー 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット
EP1213650A3 (en) * 2000-08-21 2006-08-30 Texas Instruments France Priority arbitration based on current task and MMU
EP1182569B8 (en) * 2000-08-21 2011-07-06 Texas Instruments Incorporated TLB lock and unlock operation
US6795907B2 (en) * 2001-06-28 2004-09-21 Hewlett-Packard Development Company, L.P. Relocation table for use in memory management
US7085787B2 (en) 2002-07-19 2006-08-01 International Business Machines Corporation Capturing data changes utilizing data-space tracking
US7146373B2 (en) * 2002-07-19 2006-12-05 International Business Machines Corporation Data-space tracking with index data-spaces and data data-spaces
US6549442B1 (en) 2002-07-25 2003-04-15 Neomagic Corp. Hardware-assisted fast bank-swap in a content-addressable-memory (CAM) processor
EP1391820A3 (en) * 2002-07-31 2007-12-19 Texas Instruments Incorporated Concurrent task execution in a multi-processor, single operating system environment
US20040054867A1 (en) * 2002-09-13 2004-03-18 Paulus Stravers Translation lookaside buffer
JP2004110367A (ja) 2002-09-18 2004-04-08 Hitachi Ltd 記憶装置システムの制御方法、記憶制御装置、および記憶装置システム
US7263593B2 (en) * 2002-11-25 2007-08-28 Hitachi, Ltd. Virtualization controller and data transfer control method
JP2004220450A (ja) * 2003-01-16 2004-08-05 Hitachi Ltd ストレージ装置、その導入方法、及びその導入プログラム
US6925542B2 (en) * 2003-03-21 2005-08-02 Freescale Semiconductor, Inc. Memory management in a data processing system
JP2005018193A (ja) * 2003-06-24 2005-01-20 Hitachi Ltd ディスク装置のインタフェースコマンド制御方法ならびに計算機システム
US7243208B2 (en) * 2003-08-13 2007-07-10 Renesas Technology Corp. Data processor and IP module for data processor
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
JP4307202B2 (ja) 2003-09-29 2009-08-05 株式会社日立製作所 記憶システム及び記憶制御装置
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
JP2005202893A (ja) * 2004-01-19 2005-07-28 Hitachi Ltd 記憶デバイス制御装置、ストレージシステム、プログラムを記録した記録媒体、情報処理装置、及びストレージシステムの制御方法
US7349909B2 (en) * 2004-03-02 2008-03-25 Intel Corporation Compact object header
US8621179B2 (en) * 2004-06-18 2013-12-31 Intel Corporation Method and system for partial evaluation of virtual address translations in a simulator
US7185170B2 (en) * 2004-08-27 2007-02-27 Freescale Semiconductor, Inc. Data processing system having translation lookaside buffer valid bits with lock and method therefor
JP4646574B2 (ja) 2004-08-30 2011-03-09 株式会社日立製作所 データ処理システム
US8775740B2 (en) * 2004-08-30 2014-07-08 Texas Instruments Incorporated System and method for high performance, power efficient store buffer forwarding
JP2006127028A (ja) 2004-10-27 2006-05-18 Hitachi Ltd 記憶システム及び記憶制御装置
US7114990B2 (en) 2005-01-25 2006-10-03 Corning Gilbert Incorporated Coaxial cable connector with grounding member
US7395406B2 (en) * 2005-05-12 2008-07-01 International Business Machines Corporation System and method of large page handling in a virtual memory system
US7734842B2 (en) * 2006-03-28 2010-06-08 International Business Machines Corporation Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
US7636800B2 (en) * 2006-06-27 2009-12-22 International Business Machines Corporation Method and system for memory address translation and pinning
US8019964B2 (en) 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8082405B2 (en) * 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection
US8117417B2 (en) 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
JP2010170266A (ja) * 2009-01-21 2010-08-05 Toshiba Corp 半導体集積回路及びアドレス変換方法
US8275598B2 (en) * 2009-03-02 2012-09-25 International Business Machines Corporation Software table walk during test verification of a simulated densely threaded network on a chip
TWI549386B (zh) 2010-04-13 2016-09-11 康寧吉伯特公司 具有防止進入及改良接地之同軸連接器
US20130072057A1 (en) 2011-09-15 2013-03-21 Donald Andrew Burris Coaxial cable connector with integral radio frequency interference and grounding shield
US9136654B2 (en) 2012-01-05 2015-09-15 Corning Gilbert, Inc. Quick mount connector for a coaxial cable
US9407016B2 (en) 2012-02-22 2016-08-02 Corning Optical Communications Rf Llc Coaxial cable connector with integral continuity contacting portion
CN104272295A (zh) * 2012-04-30 2015-01-07 惠普发展公司,有限责任合伙企业 地址转换板
US9287659B2 (en) 2012-10-16 2016-03-15 Corning Optical Communications Rf Llc Coaxial cable connector with integral RFI protection
DE102013022169A1 (de) 2013-03-14 2014-09-18 Nvidia Corporation Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem
US10445243B2 (en) 2013-03-14 2019-10-15 Nvidia Corporation Fault buffer for resolving page faults in unified virtual memory system
US20140281366A1 (en) * 2013-03-15 2014-09-18 Cognitive Electronics, Inc. Address translation in a system using memory striping
US10290958B2 (en) 2013-04-29 2019-05-14 Corning Optical Communications Rf Llc Coaxial cable connector with integral RFI protection and biasing ring
WO2014189718A1 (en) 2013-05-20 2014-11-27 Corning Optical Communications Rf Llc Coaxial cable connector with integral rfi protection
US9548557B2 (en) 2013-06-26 2017-01-17 Corning Optical Communications LLC Connector assemblies and methods of manufacture
US9824021B2 (en) 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses
US9734083B2 (en) 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9715449B2 (en) * 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
WO2016073309A1 (en) 2014-11-03 2016-05-12 Corning Optical Communications Rf Llc Coaxial cable connector with integral rfi protection
US10033122B2 (en) 2015-02-20 2018-07-24 Corning Optical Communications Rf Llc Cable or conduit connector with jacket retention feature
US9590287B2 (en) 2015-02-20 2017-03-07 Corning Optical Communications Rf Llc Surge protected coaxial termination
US10211547B2 (en) 2015-09-03 2019-02-19 Corning Optical Communications Rf Llc Coaxial cable connector
KR20170051563A (ko) * 2015-10-29 2017-05-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9525220B1 (en) 2015-11-25 2016-12-20 Corning Optical Communications LLC Coaxial cable connector
PT3584708T (pt) 2015-12-15 2022-07-27 Lzlabs Gmbh Gestão e prefixação de chave de proteção em sistema de emulação legado de espaço de endereço virtual
US10409603B2 (en) * 2016-12-30 2019-09-10 Intel Corporation Processors, methods, systems, and instructions to check and store indications of whether memory addresses are in persistent memory

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588839A (en) 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
US3828327A (en) * 1973-04-30 1974-08-06 Ibm Simplified storage protection and address translation under system mode control in a data processing system
US3942155A (en) * 1973-12-03 1976-03-02 International Business Machines Corporation System for packing page frames with segments
JPS5615066B2 (ja) * 1974-06-13 1981-04-08
US4020466A (en) * 1974-07-05 1977-04-26 Ibm Corporation Memory hierarchy system with journaling and copy back
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback
US4084231A (en) 1975-12-18 1978-04-11 International Business Machines Corporation System for facilitating the copying back of data in disc and tape units of a memory hierarchial system
US4042911A (en) * 1976-04-30 1977-08-16 International Business Machines Corporation Outer and asynchronous storage extension system
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
US4050094A (en) * 1976-04-30 1977-09-20 International Business Machines Corporation Translator lookahead controls
JPS52149444A (en) * 1976-06-08 1977-12-12 Fujitsu Ltd Multiplex virtual space processing data processing system
US4053948A (en) * 1976-06-21 1977-10-11 Ibm Corporation Look aside array invalidation mechanism
US4084225A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4084230A (en) 1976-11-29 1978-04-11 International Business Machines Corporation Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
US4285040A (en) * 1977-11-04 1981-08-18 Sperry Corporation Dual mode virtual-to-real address translation mechanism
US4170039A (en) * 1978-07-17 1979-10-02 International Business Machines Corporation Virtual address translation speed up technique
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4251860A (en) * 1978-10-23 1981-02-17 International Business Machines Corporation Virtual addressing apparatus employing separate data paths for segment and offset portions of a virtual address and utilizing only the offset portion to calculate virtual address
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US4356549A (en) 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus
US4410941A (en) * 1980-12-29 1983-10-18 Wang Laboratories, Inc. Computer having an indexed local ram to store previously translated virtual addresses
US4513367A (en) 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US4453212A (en) 1981-07-13 1984-06-05 Burroughs Corporation Extended address generating apparatus and method
JPS5853079A (ja) * 1981-09-25 1983-03-29 Fujitsu Ltd Stoスタツク制御方式
US4463420A (en) 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
US4525778A (en) 1982-05-25 1985-06-25 Massachusetts Computer Corporation Computer memory control
JPS6047624B2 (ja) * 1982-06-30 1985-10-22 富士通株式会社 アドレス変換制御方式
AU569857B2 (en) 1982-12-09 1988-02-25 Sequoia Systems, Inc. Memory backup system
US4581702A (en) * 1983-01-10 1986-04-08 International Business Machines Corporation Critical system protection
US4731739A (en) * 1983-08-29 1988-03-15 Amdahl Corporation Eviction control apparatus

Also Published As

Publication number Publication date
USRE37305E1 (en) 2001-07-31
CA1200917A (en) 1986-02-18
EP0113240A3 (en) 1987-02-04
DE3382307D1 (de) 1991-07-11
EP0115179A2 (en) 1984-08-08
WO1984002784A1 (en) 1984-07-19
EP0113240A2 (en) 1984-07-11
EP0115179A3 (en) 1987-01-07
EP0113240B1 (en) 1991-06-05
US4638426A (en) 1987-01-20
JPS59502123A (ja) 1984-12-20

Similar Documents

Publication Publication Date Title
JPH0658646B2 (ja) デ−タ持続性が制御される仮想記憶アドレス変換機構
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
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
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
US4985829A (en) Cache hierarchy design for use in a memory management unit
EP0072413B1 (en) A storage subsystem with hashed cache addressing
US6430668B2 (en) Speculative address translation for processor using segmentation and optical paging
KR100297454B1 (ko) 컴퓨터장치
CA1228674A (en) Redundant page identification for a catalogued memory
US7831799B1 (en) Speculative address translation for processor using segmentation and optional paging
US7493464B2 (en) Sparse matrix
US5241638A (en) Dual cache memory
JPH11203199A (ja) キャッシュ・メモリ
EP0409808A2 (en) Method for ensuring map integrity in a system-managed store of a computer
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
JPH0679294B2 (ja) アドレス変換方法
JPH035851A (ja) バッファ記憶装置
AU708232B2 (en) A method of efficiently updating hashed page tables