JP2567594B2 - 複数のアドレス空間を選択的にサポ−トできるペ−ジ式記憶装置管理ユニット - Google Patents

複数のアドレス空間を選択的にサポ−トできるペ−ジ式記憶装置管理ユニット

Info

Publication number
JP2567594B2
JP2567594B2 JP61506059A JP50605986A JP2567594B2 JP 2567594 B2 JP2567594 B2 JP 2567594B2 JP 61506059 A JP61506059 A JP 61506059A JP 50605986 A JP50605986 A JP 50605986A JP 2567594 B2 JP2567594 B2 JP 2567594B2
Authority
JP
Japan
Prior art keywords
page
pointer
address
access
register
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
JP61506059A
Other languages
English (en)
Other versions
JPS63502224A (ja
Inventor
シー モイヤー・ウイリアム
ダブリュー クルーエス・マイクル
エム ケシュリア・ウイリアム
ゾルノウスキー・ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPS63502224A publication Critical patent/JPS63502224A/ja
Application granted granted Critical
Publication of JP2567594B2 publication Critical patent/JP2567594B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10—Address translation
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14—Protection against unauthorised use of memory or access to memory
    • G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877—Cache access modes
    • G06F12/0882—Page mode
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10—Address translation
    • G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10—Address translation
    • G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

Landscapes

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

Description

【発明の詳細な説明】 発明の背景 「仮想記憶装置」を備えたデータ処理システムの多く
はページ式記憶装置管理ユニット(Paged Memory Manag
ement Unit)(PMMU)を使用して処理装置がアドレス・
バスを経由して記憶装置に供給するアドレスの論理部分
を物理アドレスの対応する部分に変換している。しばし
ば、PMMUと関連して、最近使用したドランスレータ(tr
anslator)を格納する複数の格納位置を備えている変換
キャッシュ(translation cache)が使用されている。
処理装置(processor)が供給する各論理アドレスを応
じて、PMMUは対応する論理対物理トランスレータに関す
る変換キャッシュを探す。見つからなければ、処理装置
はアクセス・サイクルを中断してシステム・バスを解放
するよう指示し、PMMUが記憶装置に格納されている一組
の変換テーブルにアクセスして正しい論理対物理アドレ
ス・トランスレータを決定して変換キャッシュに入れる
ことができるようにする。続いて、処理装置が中断した
アクセス・サイクルを再開すると、PMMUは変換キャッシ
ュ内の新しいトランスレータを使用して適切な物理アド
レスを決定し、記憶装置に送る。その後、処理装置が同
じ論理ページ内の論理アドレスに再びアドレスするとき
は、PMMUは変換キャッシュ内のトランスレータを再使用
する。
簡単な仮想記憶装置システムでは、「論理アドレス空
間」が一つであり、処理装置で現在実行されているプロ
グラムのものがあるだけである。PMMUはただ一組の変換
テーブルにアクセスするだけであるから、そのプログラ
ムによって行われるすべてのアクセスに同じ保護および
変換の基準が適用される。しかしながら、或るアプリケ
ーションでは、そのプログラムで行われる一定の広い部
類のアクセスに異なる保護(protections)または変換
の基準を規定することが望ましい。
或る仮想記憶装置システムでは、複数の分離した別個
の「アドレス空間」が設けられていて、必要に応じて特
定のプログラムに割当てられている。たとえば、米国特
許第4,430,705号では、処理装置は各論理アドレスとと
もに「アドレス空間番号」を発生して、PMMUがそのアド
レス空間に割当てられたプログラムに適するような変換
テーブルの特定の組にアクセスできるようにしている。
このように、異なる保護および/または変換の基準を各
別個のアドレス空間に適切に適用することができる。他
方、各プログラムは典型的にはただ一つのアドレス空間
しか割当てられないから、所与のプログラムにより行わ
れているアクセスの形式に依存するような異なる保護あ
るいは変換の基準を適用する方法はやはり存在しない。
他の仮想記憶装置システムでは、異なるアドレス空間
がスーパーバイザ・プログラムおよびユーザ・プログラ
ムに割当てられるばかりでなく、分離したアドレス空間
がプログラムのこれらのカテゴリーのそれぞれの命令お
よびデータに対して設けられている。たとえば、米国特
許第4,084,226号では、処理装置は各論理アドレスとと
もに「タスク名」を発生してその論理アドレスを変換す
るのにどのアドレス空間を使用するか助言する。この機
構によれば異なる保護および/または変換の基準を、そ
のようにする必要のあるアプリケーションに対して使用
することができるが、このレベルの制御を必要としない
アプリケーションに対しては、アドレス空間の割当て
(mapping)を無効にする機構が存在しない。したがっ
て、すべてのアプリケーションが、或るものはその制御
を必要としなくても、アドレス空間の制御に固有のオー
バヘッドを自動的に負うことになる。よってPMMUがアド
レス空間の割当て機構を選択することができることが望
ましい。
発明の概要 それ故、ページ式記憶装置管理ユニット(PMMU)によ
ってアドレス空間の割当てを選択的に有効あるいは無効
にする機構を提供するのが本発明の目的である。
他の目的はPMMUが複数の異なるアドレス空間の各々に
対して唯一のアクセス保護および/またはアドレス変換
を基準を選択的に適用することができる機構を提供する
ことである。
本発明のこれらの、および他の目的は、記憶装置に格
納されている複数のポインタ・テーブルとページ・テー
ブルとに選択的にアクセスするようにして、選ばれた論
理アドレスを、最初に論理アドレスの第1の部分と第1
のテーブル・ポインタとを組合せてポインタ・テーブル
の第1の一つにアクセスし、これからページ・テーブル
の選ばれた一つを指すページ・テーブル・ポインタを求
め、次いで論理アドレスの第2の部分とページ・テーブ
ル・ポインタとを組合せて選ばれたページ・テーブルに
アクセスし、これから物理アドレスを求めることによ
り、対応する物理アドレスに変換するようになっている
ページ式記憶装置管理ユニット(PMMU)により達成され
る。本発明によれば、論理アドレスがアドレス空間選択
部を含んでいれば、PMMUははじめに第1のテーブル・ポ
インタと論理アドレスのアドレス空間選択部とを組合せ
てポインタ・テーブルの第2の1つにアクセスし、これ
から第2のテーブル・ポインタを求め、次に論理アドレ
スの第1の部分と第2のテーブル・ポインタとを組合せ
てポインタ・テーブルの第1の一つにアクセスし、これ
からページ・テーブル・ポインタを求めることが選択的
に可能になる。好ましい形態では、第1のテーブル・ポ
インタは幾つかのルート・ポインタの選ばれた一つから
構成されている。
図面の簡単な説明 第1図は、本発明の好ましい実施例に従って構成した
ページ式記憶装置管理ユニット(PMMU)を備えたデータ
処理システムのブロック図である。
第2図は、第1図のPMMUのブロック図である。
第3図は、第2図のPMMUの変換テーブル歩行手順を示
す。
第4図は、第3図のテーブル歩行手順の早期終結を示
す。
第5図は、第3図のテーブル歩行手順の変換テーブル
規模確認機構を示す。
発明の説明 1.動作の概要 簡単なデータ処理システムでは、処理装置は直接記憶
装置に接続される。処理装置が発生するアドレスは既に
物理アドレスになっているから、記憶装置の割当てある
いは保護は不要である。更に複雑なシステムでは、所要
のページ付け動作をサポートするに必要な割当て能力を
発揮するのに記憶装置管理ユニットが必要である。第1
図に示すデータ処理システム10では、アドレス・バスが
処理装置14から来る論理アドレス・バス12と記憶装置18
に行く物理アドレス・バス16とに分かれており、ぺージ
付き記憶装置管理ユニット(PMMU)20がバス12と16との
間に挿入されている。一般に、PMMU20はデータ・バス22
と適切なバス制御信号24とにも接続されるであろう。
第2図に示すPMMU20の好ましい形態では、完全に結合
したアドレス変換キャッシュ(ATC)26が複数の、たと
えば64の、最近使用した物理アドレス対物理アドレス・
トランスレータを格納している。アドレス変換中、ATC2
6は64個のエントリーの各々に対して物理アドレス・バ
ス12に乗っている論理アドレスと機能コードとを同時に
比較する。エントリーの一つが一致する(これを「ヒッ
ト(hit)」という)と、ATC26は格納されている物理ア
ドレスを外部の物理アドレス・バスに追い出す。例外条
件が検出されなければ、次にPMMU20は物理アドレス・ス
トローブ(PAS)を表明して記憶装置18に物理アドレス
が有効であることを示す。
物理アドレスと物理アドレスに加えて、ATC26の各エ
ントリーは外部データ・キャッシュの使用を禁止するビ
ットと一定の書込み保護機構をも含んでいる。適切なと
きは、ATC26は選ばれたエントリーをロック(lock)し
て対応するアドレスが必らずヒットすることを保証する
ことができる。ATC26にはすべてのエントリーロックさ
れないようにする警告機構が設けられている。
キャッシュの利用を改善するために、PMMU20は、ATC2
6に同時に複数のタスクのエントリーを格納する能力を
備えている。これを行うため、ATC26は各キャッシュ・
エントリーの論理アドレス部に付加的なビットを備えて
いる。このフィールドは「タスク・エイリアス」と呼ば
れ、ヒットが生ずるかどうかを確認するのに使用され
る。PMMU20はまたCPUルート・ポインタ(CRP)レジスタ
の最近使用された値を含んでいるルート・ポインタ・テ
ーブル(RPT)28をも含んでいる。CPUルート・ポインタ
・レジスタに新しい値がロードされると、RPT28にエン
トリーが作られ、タスク・エイリアス値が割当てられ、
ATC26にその同じタスク・エイリアスを備えているすべ
てのエントリーがフラッシュ(flush)される。このタ
スク・エイリアス値は論理アドレスの拡張として使用さ
れる。既にRPT28に存在するCRPレジスタにある値がロー
ドされれば、タスク・エイリアスの古い値が使用され、
キャッシュはフラッシュされない。
ATC26が論理アドレス用トランスレータを含んでいな
ければ、マイクロ機械(micromachine)30が、正しく変
換するため記憶装置内の変換テーブルを通してサーチす
なわち「歩行」する間、実行ユニット32および幾つかの
関連制御論理34と協動する。ただし、サーチを開始する
前に、バス・インターフェース・ユニット(BIU)36は
バス・サイクルを進行中に中断し、バス12、16、および
22を調停する。次にBIU36は現行バス・マスタに現行バ
ス・サイクルを終結させ、バスを解放し、その「バス・
マスタ権」が戻ったとき、中断したサイクルを再試行す
るのを待つようにするバス制御信号を発生する。その後
バスのマスタ権を受取ると直ちに、BIU36はマイクロ機
械30にテーブル歩行を進めてもよいと合図する。テーブ
ル歩行が完了した後、マイクロ機械30はBIU43にバスを
解放するよう合図する。
好ましい形態では、PMMU20でサポートされる変換テー
ブルはトリー構造を成している。変換テーブル・トリー
のルート(root)は三つのルート・ポインタ・レジス
タ、すなわち、CPU、スーパーバイザー、またはDMA、の
いずれかによってポイント(指し示)される。トリーの
上方レベルのテーブル・エントリーは他のテーブルを指
すポインタである。リーフ(leaf)・テーブルのエント
リーはページ・フレーム番号である。変換テーブル内の
すべてのアドレスは物理アドレスである。
好ましい形態では、処理装置14はマイクロ機構30に利
用できる一定の制御情報を選択的に初期設定してテーブ
ル歩行の幾つかの局面を決定する。たとえば、テーブル
の最初のルックアップは通常は機能コードによるが、こ
れは特定の制御ビットを用いて抑制することができる。
他の制御フィールドは15個までの高次の論理アドレス・
ビットをテーブル歩行中無視すべきことを指定するのに
利用することができる。一定の他の制御フィールドは、
また、処理装置14が変換テーブル内の、1から4まで
の、レベルの数と、各レベルにインデックスするのに使
用すべき、最大15個の論理アドレス・ビットの数とを指
定することができるように設けられている。
2.コプロセッサのインターフェース 好ましい形態では、処理装置14は主として、同時係属
中の出願番号第631,518号の出願に記載されているコプ
ロセッサ・インターフェースを用いてPMMU20と通信す
る。一般に、このインターフェースは、マイクロ機械30
とBIU36とに設けられるが、PMMU20のプログラミング・
モデルにアクセスし、テーブル歩行機能を制御し、仮想
記憶装置の動作をサポートする。マイクロ機構30とBIU3
6はまた同時係属中の出願番号第626,363号の出願に記載
されているCALLM/RTMインターフェースをも実現してモ
ジュールのコールとリターン、および関連のアクセス・
レベルのチェックをサポートする。
コプロセッサのインターフェースに従って、処理装置
14は実行ユニット32の一組の「バス・レジスタ」から、
また「バス・レジスタ」に対してバス読み書きを行うこ
とによりPMMU20と通信する。BIU36は、バス・サイクル
中に提示される論理アドレスと機能(function)コード
とをデコードすることによって、バス・レジスタがアク
セスされていることを確認する。機能コードがCPU空間
アクセス(0111)を示し、提示されたアドレスがBIU36
にハード結線されているアドレスの一つである場合に
は、BIU36は対応するバス・レジスタにアクセスできる
ようにする。この場合、物理アドレス・ストローブ(PA
S)は出力されない。
PMMU20はそのバス・インタフェースに二組のバス・レ
ジスタを含んでいる。すなわちコプロセッサ・インター
フェース・バス・レジスタとアクセス・レベル制御バス
・レジスタとである。コプロセッサ・インターフェース
・バス・レジスタは次のものから構成されている。
応答レジスタは、PMMU20が命令を完了するために行わ
なければならない機能を行うように処理装置14に要求す
るため、PMMU20によって使用される16ビットのレジスタ
である。PMMU20は応答レジスタがアクセスされる時に常
に認めるであろう。アクセスは常に有効であり、プロト
コル違反が生ずることはあり得ない。
制御レジスタは、処理装置がこれにアクセスして、PM
MU20の例外要求をアクノレッジしまたは違法の有効アド
レス・フィールドを含んだPMMU20の命令を中断する、16
ビットのレジスタである。処理装置14はマスクを制御レ
ジスタに書き込む。ビット1を有するマスクは以下に記
すようにアクノレッジし、未決定の例外事項をクリアす
る。ビット0を有するマスクはPMMU20に現在の命令の処
理を中断させ、アイドル・ダン(Idle−Done)の状態に
リターンさせる。
貯蔵(save)レジスタは、処理装置により読取られる
と以下に記すようにPMMU20に貯蔵動作を開始させる16ビ
ットのレジスタである。PMMU20が供給するデータはPMMU
20の内部状態の16ビットのフォーマット・ワードであ
る。処理装置14は、PMMU20が貯蔵シーケンスを始める準
備が整ったことを示すまで、貯蔵レジスタからの読取り
を行うであろう。
レストア(restore)・レジスタは、処理装置14によ
り書込まれると、PMMU20にどのような現行動作をも直ち
に中止させ、以下に示すようなレストア動作を行うよう
準備させる、16ビットのレジスタである。処理装置14が
供給するデータはコプロセッサの内部状態の16ビットの
フォーマット・ワードである。フォーマット・ワードを
検査してから、PMMU20はコードを応答レジスタに設置す
ることによりフォーマット・ワードが有効か否かを処理
装置14に示す。加えて、PMMU20は、PMMU20がレストア準
備でビジー(busy)であること、あるいはPMMU20が状態
の残りを転送するめレディ(ready)であることを示す
ことができる。
オペレーション・ワード・レジスタは、PMMU20の好ま
しい形態では構成されていない。
コマンド・レジスタは、処理装置14が命令を書込んで
PMMU20の命令を開始する16ビットのレジスタである。
条件レジスタは、処理装置14がPMMU20によって評価さ
れる条件を指定する条件選択コードを書込む16ビットの
レジスタである。
オペランド・レジスタは、これを通して処理装置がPM
MU20により要求されるデータ・オペランドを転送する32
ビットのレジスタである。
レジスタ・セレクタは、これを用いてPMMU20が処理装
置14に処理装置14の中の幾つかのレジスタのどれをPMMU
20に転送すべきかを示すことができる16ビットのレジス
タである。
コマンド・アドレス・レジスタは、PMMU20の好ましい
形態では構成されていない。
オペランド・アドレス・レジスタは、PMMU20がそのよ
うな情報を要求するとき、オペランドのソース(sourc
e)アドレスまたはデスティネーション(destination)
アドレスを送るために処理装置によって使用される32ビ
ットのレジスタである。
好ましい形態では、PMMU20には常にコプロセッサ番号
0が割当てられる。したがって、BIU36は、コプロセッ
サ・インターフェース・バス・レジスタとして、0111の
機能コードを有する$00020000から$0002001Fまでの論
理アドレスを内部でデコードする。ただし、これらのす
べてのレジスタが同時に有効でなければならないという
わけではないから、実行ユニット32は必要に応じてこれ
らバス・レジスタの一つ以上を構成するのに使用する最
少組の物理的レジスタを含む。これらバス・レジスタの
機能は同時係属中の出願番号第631,518号の出願に詳述
されている。
PMMU20は次のコプロセッサ命令を実行するのが望まし
い。
PMOVEは、処理装置14で利用できるアドレッシング・
モードを使用してPMMU20のレジスタに対してデータを出
し入れする。動作は、関係するPMMU20レジスタの大きさ
により、バイト・ワード、ロング・ワード、またはダブ
ル・ロング・ワードである。
PVALIDは、オペランド論理アドレスのアクセス・レベ
ル・ビットを検査し、VALレジスタのアクセス・レベル
・ビットに対して符号無しの比較を行う。LAビットがVA
Lビットより算術的に少なければ、この命令はアクセス
・レベル侵犯ベクトルを有する割込みを生ずる。
PTESTは、論理アドレスおよび関連の機能コードを得
て、このアドレスを変換するエントリーに対するATC26
または変換テーブルをサーチする。サーチの結果は状態
レジスタで利用できる。随意に、使用した最後の記述子
(descriptor)のアドレスを戻すことができる。
PLOADは、論理アドレスおよび関連の機能コードを得
て、変換テーブルをサーチし、ATC26にアドレスを変換
するエントリーをロードする。
PFLUSHは、PMMU20のATC26に幾つかの方法でフラッシ
ュさせる。すなわち、有効アドレス〈ea〉によるフラッ
シュ、機能コードによるフラッシュ、または〈ea〉と機
能コードとの両者によるフラッシュ。
PFLUSHRは、CPUルート、ポインタ値に関連するATC26
内のすべてのエントリーのフラッシュを無効とする。評
価された〈ea〉はダブル・ロング・ワードを取出す(fe
tch)のに使用され、この値についてRPTをサーチし、そ
の値がRPT内に見つかればATCがフラッシュする。
条件付き分岐または条件付き設定のような、条件付き
命令は状態レジスタの次に示すビット、すなわち、B、
L、S、A、W、I、G、およびCについて試験を行
う。上の条件の否定についても試験することができる。
PSAVEは、コプロセッサの動作およびCALLM/RTMの機能
を処理するPMMU20の内部状態をセーブすることによっ
て、仮想記憶装置の能力をサポートする。
PRESTOREも、PSAVEでセーブされたPMMU20の内部状態
をレストアすることにより、仮想記憶装置の能力をサポ
ートする。
PMMU20の命令はPVALID以外はすべて特権が与えられて
いる。処理装置14がユーザ状態になっているときに、他
のどのようなPMMU20の命令でもそれを実行しようとすれ
ばコプロセッサの特権が除かれるであろう。
アクセス制御バス・レジスタは、PMMU20が同時係属中
の出願番号第626,363号の出願に記載されているCALLMお
よびRTMの命令をサポートすることを許す。BIU36は、そ
のアクセス・レベル制御バス・レジスタとして、0111の
機能コードとともに、$00010000から$0001005Fまでの
アドレスを内部でデコードする。アクセス制御バス・レ
ジスタは次のものから構成されている。
カレント・アクセス・レベル(CAL)は、読取られる
と、CALレジスタおよびVALレジスタの値を戻す。書き込
まれると、データが捨てられ、通常はバス・サイクルが
終結する。
アクセス・レベル状態(ALS)は、読取られると、モ
ジュールのコールまたはリターンに関してどんな処理を
取るべきかをCALLM命令およびRTM命令に示すコードをリ
ターンする。書込まれると、データが捨てられ、通常は
バス・サイクルが終結する。
増加アクセス・レベル(IAL)は、書込まれると、現
行アクセス・レベルに対して書込まれた値をPMMU20にチ
ェックさせ、新しい値が妥当なアクセス・レベルの変化
を示すか否かを確認させる。このチェックの結果はALS
バス・レジスタ内で利用可能となる。このバス・レジス
タはCALLM命令によって使用される。
減少アクセス・レベル(DAL)は、書込まれると現行
アクセス・レベルに対して書込まれた値をPMMU20にチェ
ックさせ、新しい値が妥当なアクセス・レベルの変化を
示すか否か確認させる。このチェックの結果はALSバス
・レジスタ内で利用可能となる。このバス・レジスタは
RTM命令によって使用される。
記述子アドレス(DA1〜DA8)は、アドレス可能な場所
であって、その各々は8個の機能コードのそれぞれの一
つを表わしている。一つが書込まれると、PMMU20は変換
テーブルに対して論理アドレスと機能コードとをチェッ
クする。(PTEST命令と類似)。試験の結果はALSレジス
タで利用できる。
3.PMMU20のレジスタ PMMU20の好ましい形態では、PMMU20の変換および保護
の特徴を制御または監視するのに使用される実行ユニッ
ト32に幾つかのレジスタを備えており、それは、CPUル
ート・ポインタ(CRP)レジスタ、スーパーバイザ・ル
ート・ポインタ(SRP)レジスタ、DMAルート・ポインタ
(DRP)レジスタ、キャッシュ状態(CS)レジスタ、変
換制御(TC)レジスタ、アクセス制御(AG)レジスタ、
現行アクセス・レベル(CAL)レジスタ、有効アクセス
・レベル(VAL)レジスタ、スタック変更制御(SCC)レ
ジスタ、および状態(STATUS)レジスタである。
PMMU20のレジスタはすべてスーパーバイザ状態で動作
をするプログラムするためにだけ直接アクセスできる
が、一定のユーザ命令は限られた仕方で幾つかのレジス
タにアクセスすることができる。CALLMおよびRTMの命令
はCALおよびVALを読取り、変更することができる。PVAL
ID命令はVALレジスタの内容を使用して、割込みを生ず
るか否かを確認する。
CPUルート・ポインタ(CRP)は処理装置14の現在のユ
ーザ・タスクに関する変換テーブル・トリーのルートを
指すポインタを含んでいる64ビットのレジスタである。
タスクが変えると書込まれて新しいタスクに関する変換
トリーのルートを指すこととなる。このレジスタに書込
むとキャッシュ状態レジスタも更新される。CPUルート
・ポインタはルート・ポインタ・テーブル(RPT)と相
互に作用し合ってATC26の利用を改善する。
スーパーバイザー・ルート・ポインタ(SRP)はスー
パーバイザ・アクセスを変換するのに使用される変換テ
ーブルのルートを指示する64ビットのレジスタである。
ただし、SRPは変換制御レジスタのSREビットがセットさ
れている場合にのみ使用される。SRPを再ロードすると
スーパーバイザと記してあるATC26のエントリーすべて
がフラッシュする。変換制御レジスタのSREビットがク
リアされていれば、CRPは処理装置が開始したテーブル
歩行のすべてに使用される。
DMAルート・ポインタ(DRP)は代りの論理バス・マス
タがPMMU20を通して変換しているとき使用される変換テ
ーブルのルートを指示する64ビットのレジスタである。
代わりのバス・マスタが変換を始めるときロードされる
ATC26のエントリーは、そのように名札付けされるであ
ろう。このレジスタに再ロードするとDRPを使用して形
成されたATC26のエントリーすべてがフラッシュする。
キャッシュ状態(CS)レジスタは次のフォーマットを
有する16ビットのレジスタである。
ここで、 Fは、TAフィールド内に示すタスク・エイリアス値を
有するエントリーが、PMMU20のATC26からフラッシュさ
れたかを示す。
0=フラッシュされない。
1=フラッシュされた。
LWは一つを除くすべてのエントリーがATC26にロック
されていることを示すロック警告ビットである。他のも
のが除かれるまで、付加的なエントリーがATC26にロッ
クされることはないであろう。
0=通常動作 1=ATC26の63個のエントリーがロックされている。
TAは内部タスク・エイリアスの現在値を示す。
一般に、外部論理データ・キャッシュをメンテナンス
する助けとしてCSが設けられている。PMMU20は一つ以上
のタスクに関するエントリーをATC26に保持しており、
その内部データの幾つかは他のキャッシュにも役に立
つ。このレジスタはCRPレジスタが書込まれると更新さ
れる。その内容はRPTのサーチの結果を反映している。
このレジスタはPMOVEの命令を用いて読取ることができ
る。
変換制御(TC)レジスタは次のフォーマットを有する
32ビットのレジスタである。
ここで、 E(イネーブル)は、アドレス変換を可能にしたり禁
止にしたりする。
0 禁止 1 可能 禁止のときは、入力論理アドレスは物理アドレスとし
て出力される。リセットすればこのビットはクリアされ
る。
SRE(スーパーバイザ・ルート・ポインタ・イネーブ
ル)は、スーパーバイザ・レファレンスがSRPを用いて
変換されているか否かを示す。
0 スーパーバイザ・ルート・ポインタ使用禁止 1 スーパーバイザ・ルート・ポインタ使用可能 SRPが使用禁止されれば、スーパーバイザ変換に(CR
P)が使用される。
FCL(機能コード・ルックアップ)は変換トリーの最
上レベル・テーブルを、CRTまたはSRPを使用するとき、
機能コードを用いて指示すべきか否かを示す。
0 機能コード・ルックアップ禁止 1 機能コード・ルックアップ可能 機能コードのルックアップが抑制されれば、インデッ
クスとして論理アドレスからのビットを用いて最初のル
ックアップが行われる。機能コードのルックアップが使
用可能であれば、変換に使用するルート・ポインタのLI
MITのフィールドが無視される。機能コードのルックア
ップは代りのバス・マスタに関する変換にDMAルート・
ポインタを使用するとき必らず行われる。
PS(ページ・サイズ)は、PMMU20がサポートしている
現在のページの大きさを指す。
1000 256バイト 1001 512バイト 1010 1Kバイト 1011 2Kバイト 1100 4Kバイト 1101 8Kバイト 1110 16Kバイト 1111 32Kバイト ページ・サイズ・ビット3は常に1であると仮定す
る。このフィールドのビット3の0の値は後の拡張のた
め取っておく。このフィールドのビット3にPMOVE命令
により0を書込むと構成除外の信号が発生する。
IS(初期シフト)は、テーブル歩行中にどれだけの上
位論理アドレス・ビットがPMMU20により無視されたかを
確認する。このフィールドの値は論理アドレスから捨て
るビットの数を表わす0から15までの整数であり、ビッ
ト31から始まる。これによりPMMU20が17から32ビットま
での論理アドレスを使用して容易にシステムに適合する
ことができる。
TIx(テーブル.インデックスx)は、各レベルでテ
ーブルへのインデックスとして使用される論理アドレス
のビット数を規定する。好ましい形態では、テーブル・
インデックスが4個設けられている。論理アドレス・ビ
ットを使用する最初のルックアップ(これは機能コード
によるルックアップが抑制されていない場合には2番目
のルックアップになる)はTIA、第2のTIBなどを使用す
る。フィールドの値はインデックスとして論理アドレス
から取られるビット数を表わす0から15までの符号の付
かない整数である。TIxフィールドの0の値はこの変換
にそれ以上のテーブルを使用しないことを意味してい
る。
一般に、TCはページの大きさをセットする制御ビット
と、変換トリー内のレベルの数と、各レベルでのテーブ
ルの大きさとを含む。IS(初期シフト)フィールドはテ
ーブル歩行前にPMMU20によって始めに捨てられる上位論
理アドレス・ビットの数を制御し、PMMU20が32ビットよ
り少い論理アドレスでシステムに容易に適合することが
できるようにする。四つのTIxフィールド、TIA(テーブ
ル・インデックスA)、TIB(テーブル・インデックス
B)、TIC(テーブル・インデックスC)、およびTID
(テーブル・インデックスD)はルックアップの各レベ
ルで変換テーブルへインデックスするのに使用する論理
アドレスのビット数を制御する。PS(ページ・サイズ)
フィールドはページを置換するとき通過させる下位論理
アドレス・ビットの数を制御することによりページ・サ
イズを間接的に規定する。好ましい形態では各論理アド
レスは32ビットで構成されているから、始めにシフトさ
れたビット数と各テーブルへのインデックスに使用した
ビット数とページ置換ビット数とを加え合せたものはア
ドレス変換を正しく行う場合32に等しくなければならな
い。したがって、TCが書き込まれれば必らず、第3図に
示すように、PMMU20がIS、TIx、およびPSの値に関して
一貫性チェックを行い、和が32に等しくなければ処理装
置14に構成エラーの信号を出す。必要な場合には、一つ
以上のTIxフィールドを0にすることができる。ただ
し、このような場合には、それに続くすべてのTIxフィ
ールドも0でなければならない。TCに書込めばATC26の
フラッシュも生ずる。
現行アクセス・レベル(CAL)レジスタは現行モジュ
ールのコード化アクセス・レベルを含んでいる。このレ
ジスタの幅は8ビットであるが、好ましい形態では上位
3ビットだけを実際に使用している。使用していないビ
ットは0として読む。このレジスタはCALLMおよびRTMの
命令により自動的にロードされる。このレジスタはまた
PMOVE命令でもロードされる。
確認アクセス・レベル(VAL)レジスタは現行モジュ
ールのコール元(caller)のアクセス・レベルを含んで
いる。このレジスタの幅は8ビットであるが、好ましい
形態では上位3ビットだけを実際に使用している。使用
しないビットは0として読む。このレジスタはCALLM命
令によりCALレジスタの内容が自動的にロードされ、RTM
命令によりスタック・フレームからリロードされる。こ
のレジスタはPVALID命令によりパラメータの確認にも使
用される。またPMOVE命令をロードすることもできる。
スタック変更制御(SCC)レジスタはCALLM命令中にス
タック変更が生じたか否かを確認する8ビットのレジス
タである。
アクセス制御(AC)レジスタは次のフォーマットを有
する16ビットのレジスタである。
ここで、 MC(モジュール制御)は、セットされれば、モジュー
ル動作を使用可能とし、クリアされれば、モジュールは
使用禁止となり、IALおよびDALへ書き込んでもCALは変
らず、ALSから読取れば返って来るのはすべて違法コー
ドである。このコードはCALLMおよびRTMの命令をすべて
割込ませる。また、PVALID命令は常に除外される。
0 使用禁止 1 使用可能 ALS(アクセス・レベル制御)は、アクセス・レベル
情報として使用される上位論理アドレス・ビットの数と
アクセス・レベルが使用可能であるか否かとを確認す
る。このフィールドは次のようにコード化される。
00 アドレス・ビット無し:アクセス・レベル使用禁止 01 アドレス・ビット1個:アクセス・レベル2個、各
2^31バイト 10 アドレス・ビット2個:アクセス・レベル4個、各
2^30バイト 11 アドレス・ビット3個:アクセス・レベル8個、各
2^29バイト このフィールドはリセット時、00に初期設定される。
GS(ゲート・サイズ)は、ゲートの大きさを、したが
って、ゲートが存在することができる境界を示す。この
フィールドは次のようにコード化される。
00 有効なゲート無し 01 ゲートは16バイトである 10 ゲートは32バイトである 11 ゲートは64バイトである 一般に、ACレジスタはPMMU20がサポートする各種アク
セス制御を構成するのに使用される。このレジスタは、
アクセス・レベルを使用可能とするか否か、およびどれ
だけの上位アドレス・ビットにアクセス・レベル情報を
入れるか(最大3ビットまで)を制御し、またゲートの
大きさ、したがってゲートが存在できる境界を指定す
る。
状態(STATUS)レジスタは、次のフォーマットを有す
る16ビットのレジスタである。
ここで、 B(バス・エラー)は、テーブル歩行中にPMMU20にバ
ス・エラーが返されたときセットされる。
L(制限侵犯)は、インデックスが試験的に限界を超
過したときセットされ、その他の場合にはクリアされ
る。
S(スーパーバイザ侵犯)は、スーパーバイザ侵犯が
検出されたときセットされ、その他の場合にはクリアさ
れる。
A(アクセス・レベル侵犯)は、試験されるアクセス
がRALが読取られた場合これを超過しているか、あるい
はWALまたはRALが書込まれた場合これを超過していれば
セットされ、その他の場合にはクリアされる。
W(書込み保護)は、アドレスが書込み可能でなけれ
ばセットされ、その他の場合にはクリアされる。
I(無効)は、アドレスがテーブル内で変換を行わな
い場合にセットされ、その他の場合にはクリアされる。
M(修正ずみ)は、アドレスがキャッシュ内で見つか
り、Mビットのセットを有している場合にセットされ
る。
G(ゲート)は、アドレスが有効ゲート・アドレスで
あればセットされる。
Cは、アドレスが全体的に分割可能であればセットさ
れる。
N(数)は、アドレスの変換に使用するテーブルの数
にセットされる。
一般に、STATUSはPMMU20の状態に関する情報を含んで
おり、PTEST命令の影響を受けるだけである。ただし、
このビットは次のような仕方で相互に作用し合う。Bが
セットされれば、IがセットされてL、S、A、G、お
よびCがクリアされる。あるいはLがセットされればI
がセットされてS、A、G、およびCがクリアされる。
その他の場合には、セットされると、代表的には次の意
味を持つ。
B テーブル内の不良ポインタ/主記憶装置故障 L タスク/スタック拡張要求によるアドレッシング・
エラー。
S ユーザによるスーパーバイザ・コードの実行の試
行。
A アクセス・レベルの超過の試行。
W 保護されている記憶装置への書込みの試行。
I ページ不良 4.アクセス保護 PMMU20はコードおよびデータを無断アクセスから保護
する機構、異なるアクセス・レベルで動作しているコー
ドに記憶装置に対する異なる特権を与える機構、および
アクセス・レベルの変化を制御する機構を備えている。
一般に、アクセス・レベルはユーザ・タスクの異なる部
分に論理アドレス空間に対する異なる特権を与える手段
を供給する。好ましい形態では、PMMU20は0、2、4、
または8個のアクセス・レベルをサポートするであろ
う。これはACレジスタのALCフィールドにより制御され
る。このフィールドにセットされる値は次の効果を有す
る。
00 アクセス・レベル無し。CALに対するバス・サイク
ル特権チェック無し。CALLM命令によるスタック変更の
要求無し。
01 アクセス・レベル2個。論理アドレスのビット31、
CALのビット7、およびVALのビット7はアクセス・レベ
ル・ビットである。SCCレジスタのビット0を使用す
る。
10 アクセス・レベル4個。論理アドレスのビット31〜
30、CALのビット7〜6、およびVALのビット7〜6はア
クセス・レベル・ビットである。SCCレジスタのビット
0、2、および4を使用する。
11 アクセス・レベル8個。論理アドレスのビット31〜
29、CALのビット7〜5、およびVALのビット7〜5はア
クセス・レベル・ビットである。SCCレジスタのビット
0〜6を使用する。
論理バス・マスタにより動作する各バス・サイクルは
PMMU20により特権が充分であるかチェックされる。これ
は論理アドレスのアクセス・レベル・ビットと現行アク
セス・レベル(CAL)レジスタのアクセス・レベル・ビ
ットとを(符号なしで)比較することにより行われる。
到来するアドレス・ビットが、符号無しの数値の比較で
CALビットより小さく、機能コードがユーザ空間アクセ
スを示している場合には、バス・サイクルがルーチンに
無い特権を要求している。この場合には、PMMU20はBERR
信号を発することによりバス・サイクルを終結する。ス
ーパーバイザ空間への参照である場合には、このチェッ
クは行われない。タスクは、使用することを認められて
いないアドレスや、ATC26の中により高度な特権ルーチ
ンから取り残されている有効な変換が存在することがあ
るアドレスを発生することができることに注意する。チ
ェックによりこれらの場合の保護が保証される。
PMMU20はモジュールのコール(CALLM)命令およびモ
ジュールからのリターン(RTM)命令によるモジュール
呼出しのサポートを行う。モジュール呼出しは単に、モ
ジュールが動作アクセスに行うための手段であり、ある
いはこの場合には、記憶装置内のモジュールにアクセス
する試みである。CALLM命令はモジュール記述子に参照
を付ける。この記述子は関連モジュール内へのエントリ
ーに関する制御情報を含んでいる。CALLM命令はモジュ
ール・スタック・フレームを作り、そのフレーム内のコ
ール元モジュールの状態を記憶する。RTM命令は、コー
ル元モジュールにリターンする前に、コール元モジュー
ルの状態をモジュール・スタック・フレームから回復す
る。モジュール記述子とモジュール・スタック・フレー
ムとのフォーマットについては同時係属中の出願番号第
626,363号の出願に記してあり、これをここに参考のた
め取入れてある。CALLM命令の実行中、処理装置14はコ
ール先(コールされた)モジュールのアクセス・レベル
をモジュール記述子から求め、後にRTM命令の実行中に
コール元モジュールのアクセス・レベルをモジュール・
スタックから回復する。処理装置14は一般的にはこの制
御情報を解釈しないが、アクセス制御を変更しなければ
ならないときはPMMU20と通信し、PMMU20に頼って変更が
合法的であることを確認する。本発明では、この通信は
幅が限定されたバス・インターフェースによって行われ
る。
一般に、モジュール機構はユーザ参照とスーパーバイ
ザ参照とを区別することで与えられるよりもより細かな
レベルのアクセス制御をサポートする。モジュール機構
はモジュールに限られたアクセス権を与えて、より大き
なアクセス権を有するモジュールをコールさせる。PMMU
20の助けにより、処理装置14はコール元モジュールがそ
のアクセス権を増大するのを許すことを確認することが
でき、コール元モジュールが与えられていないアクセス
権を得ようとする試みを検出することができる。
アクセス・レベル変更モジュールの記述子またはフレ
ームをレファレンスするCALLMまたはRTMの命令を実行す
る間、処理装置14はCPU空間のアクセスを経由してPMMU2
0のアクセス制御論理と通信する。CALLMまたはRTMの命
令を実行中にこれらCPU空間のアクセスのどれかにバス
・エラーが発生すれば、処理装置14はフォーマット・エ
ラー除外の処置を取るであろう。
動作時、処理装置14は現行アクセス・レベル(CAL)
バス・レジスタを読取ることにより現行モジュールのア
クセス権を確認することができる。処理装置14は、増加
アクセス・レベル(IAL)バス・レジスタを使用して、
アクセス権の増大を要求する。処理装置14は、減少アク
セス・レベル(DAL)バス・レジスタを使用して、アク
セス権の縮小を要求する。これら三つのバス・レジスタ
のフォーマットは処理装置14に対しては規定されていな
いが、処理装置14はCALバス・レジスタから読取った情
報がIALまたはDALバス・レジスタに有意義に書込むこと
ができると仮定する。アクセス・レベル状態(ALS)バ
ス・レジスタにより、処理装置14は目的とするアクセス
・レベルの変化の合法性についてPMMU20に次のように問
いただすことができる。数 値 合法性 処理装置14の行動 00 無 効フォーマット・エラー 01 有 効アクセス権の変化無し 03 有 効変更アクセス権のみ 07 有 効変更アクセス権とスタックポインタ その他未規定 未規定 処理装置14はCALLM中、記述子アドレス(DA)バス・
レジスタを使用して、モジュール記述子のアドレスと通
信する。これによりPMMU20はアドレスがその記述子に対
して有効なアドレスであることを確認することができ
る。またこれによってモジュールがそのアクセス権を不
正に増大するアクセス・レベル変更記述子を作り出すこ
とがないようになる。
一般にCALLM命令はアクセス・レベル変更モジュール
とアクセス・レベル不変更モジュールとの両方の呼出し
を行うのに使用することができる。後者の形式のモジュ
ール呼出しでは、処理装置14は単に活動中のシステム・
スタックの最上部にモジュール・スタック・フレームを
作り、これを一杯にする。コール元モジュールのコンデ
ィションコードはフレームの適切な領域に取ってある。
一定の制御情報により、処理装置14はコール元モジュー
ルのスタック・ポインタを貯えることができたりできな
かったりする。ただし処理装置14は、コールされたモジ
ュールの実行を始める前に、モジュール・エントリー・
ワードを使用してモジュール・データ領域ポインタを貯
え、ロードする。
アクセス・レベル変更形式のモジュール記述子の場合
には、処理装置14はまずPMMU20から現行アクセス・レベ
ルを求めなければならない。処理装置はまたコール元モ
ジュールがスタック・ポインタの現在値によって指示さ
れている領域から読取る権利を持っていることを確認す
る。次の処理装置は確認のため記述子アドレスと新しい
アクセス・レベルとをPMMU20に送る。次に処理装置14は
アクセス状態を読取って、要求されたアクセス・レベル
の変更の妥当性に関してPMMU20の判断を求める。PMMU20
がアクセス・レベルの変更が承諾されるべきでないこと
を確認すると、アクセス状態は0となり、処理装置14は
フォーマット・エラー除外を行う。処理装置14の可視レ
ジスタは変更されず、PMMU20が現行アクセス・レベルを
変更することもないであろう。PMMU20が変更が承認され
たことを確認すると、PMMU20は現行アクセス・レベルを
変更し、処理装置14を進行させる。アクセス状態がスタ
ック・ポインタの変更を必要とする場合には、処理装置
14はモジュール記述子から新しい数値をロードし、コー
ル元モジュールのスタックから新しいスタックにアーギ
ュメントを写し取る。最後に、処理装置14は新しいスタ
ックの最上部にモジュール・スタック・フレームを作
り、これを一杯にする。コール元モジュールのコンディ
ション・コードはそのフレームの妥当なフィールドにセ
ーブされる。コールされたモジュールの実行はアクセス
・レベル不変更式モジュール記述子の場合と同様に始ま
る。
RTM命令はモジュールからリターンするのに使用され
る。アクセス・レベル不変更式モジュール・スタック・
フレームでは、処理装置14はコンディション・コード、
プログラム・カウンタ、およびモジュール・データ領域
ポインタ・レジスタをフレームから再ロードする。次に
フレームはスタックの最上部から取除かれ、スタック・
ポインタにアーギュメントのカウンタが加算され、実行
がコール元モジュールにリターンする。
アクセス・レベル変更形式のモジュール・スタック・
フレームでは、処理装置14はアクセス・レベル、コンデ
ィション・コード、プログラム・カウンタ、セーブされ
たモジュール・データ領域、およびセーブされたスタッ
ク・ポインタをフレームから読出す。古いアクセス・レ
ベルは確認のためPMMU20に書込まれる。次に処理装置14
はアクセス状態を読取って要求されたアクセス・レベル
の変更の妥当性に関してPMMU20の判断を求める。PMMU20
がアクセス・レベルの変更が承認されないことを確認す
ると、アクセス状態は0であり、処理装置14はフォーマ
ット・エラー除外を行う。処理装置14の可視レジスタは
変更されず、PMMU20が現行アクセス・レベルを変更する
こともないであろう。PMMU20が変更が承認されたことを
確認すると、PMMU20は現行アクセス・レベルを変更し、
処理装置14を進行させる。次に処理装置14はモジュール
・スタック・フレームから対応するレジスタに数値をロ
ードし、アーギュメントのカウンタを新しいスタック・
ポインタの値に加算し、コール元モジュールにリターン
する。
コールされたモジュールがモジュール・データ・ポイ
ンタをレジスタにロードしたくなければ、RTM命令ワー
ドはそのように指示することができ、ロードされた値が
正しいスタック・ポインタ値の上に重ねられるであろ
う。
CALLM命令の実行中、処理装置14とPMMU20とは全く別
個の応答性を持っている。最初、処理装置14はCALレジ
スタ内の現在値をCALバス・レジスタを経由して検索
し、これを後の使用のためモジュール・スタック・フレ
ームに格納しなければならない。好ましい形態では、PM
MU20はCALレジスタのビット7〜5をCALバス・レジスタ
のビット7〜5に戻し、VALレジスタのビット7〜5をC
ALバス・レジスタのビット3〜1に戻す。
次に、処理装置14はコールされたモジュールのモジュ
ール記述子のアドレスを8個のDAバス・レジスタの中の
適切な一つに書込まなければならない。数値がDAバス・
レジスタの一つに書込まれると、DAバス・レジスタの内
容とDAバス・レジスタに関連する機能コードとから構成
されている論理アドレスが変換テーブルおよび/または
変換キャッシュから探される。通常キャッシュのエント
リーは、CALLM命令がコールされたモジュールの最初の
ワードを既に読出して形式およびアクセス・レベルの情
報を得ているので、そのアドレスの位置にあるはずであ
る。ただし、キャッシュ・エントリーがその位置に無け
れば、テーブル・サーチが行われ、エントリーがキャッ
シュに挿入される。変換をテーブル内に設置することが
できなければ、そのコールは却下される。アドレスはそ
れが入っているページがゲートを含むことを許可されて
(記述子にGビットの組を備えて)いれば、またアドレ
スが0モジュロのゲートの大きさに等しければ(ゲート
の大きさはACレジスタのGS欄によって決まる)、ゲート
に対して有効である。記述子チェックの成功あるいは失
敗はアクセス状態値を戻す際に使用するためPMMU20によ
って保存される。
次に、処理装置14は新しいアクセス・レベルをIALバ
ス・レジスタに書込むことによりPMMU20にCALレジスタ
を更新することを要求する。好ましい形態では、PMMU20
はIALバス・レジスタに書込まれた値をCALレジスタのア
クセス・レベル・ビットと(符号無しで)比較する。IA
LがCALより大きければ、アクセス・レベル・チェックは
失敗である。IALがCALより小さく、コールされたモジュ
ールのモジュール記述子を含んでいるページのゲート・
ビットがセットされていれば、変更が許容される。IAL
がCALに等しければ、アクセス・レベル・チェックは合
格である。CALはVALに写し取られ、IALはCALに設置され
る。アクセス・レベルの変更の成功あるいは失敗はアク
セス状態値を戻す際に使用するためPMMU20により保存さ
れる。
スタック変更に関する情報はSCCレジスタに入ってい
る。アクセス権が具合よく増大したとき、現行アクセス
・レベルより少く、新しいアクセス・レベルに等しいか
大きいビット位置数を有するSCCレジスタ内のビットが
検査される。これらビットのいずれかが0であれば、ス
タック変更が指示される。スタック変更の必要性がある
か無いかはアクセス状態値を戻す際に使用するため内部
で保存される。
CALLMのシーケンスで処理装置14が行う最後の行動はP
MMU20のALSバス・レジスタを読取ってアクセス状態を得
ることである。戻された値は上に規定したとうりであ
る。
RTM命令により、処理装置14は古い(セーブされてい
た)アクセス・レベルをPMMU20のDALバス・レジスタに
書込む。次にアクセス・レベル変更の状態をチェックす
る。数値がDALバス・レジスタに書込まれると、PMMU20
はアクセス・レベル・ビットをCALレジスタのアクセス
・レベル・ビットと(符号抜きで)比較する。本発明の
一実施例では、DALのフィールドがCALのフィールドより
大きいかまたは等しければ、変更が許容され、DALのビ
ット7〜5がCALに置かれ、DALのビット3〜1がVALに
置かれる。DALのフィールドがCALのフィールドより少け
れば、変更は許容されない。アクセス・レベル変更の成
功あるいは失敗はアクセス状態値を戻す際に使用するた
めPMMU20により保存される。
処理装置14がRTMシーケンスで行う最後の行動はPMMU2
0のALSバス・レジスタを読取ってアクセス状態を得るこ
とである。戻される値は上に規定したとうりである。
好ましい形態では、PMMU20は他にアクセス保護を行っ
ている。たとえば、書込み保護の指示は変換トリーの各
レベルに格納されている。或るテーブルが或るレベルで
書込み保護(WP)ビットのセットを備えていれば、ペー
ジはこの属性を備えていると考えられる。
ページの有効な書込み保護はテーブル歩行中に取出さ
れた各記述子のWPビット論理和を取り、アドレスの読み
書きのアクセス・レベル・ビットをRALおよびWALのフィ
ールドに対してチェックすれば求められる(アクセス・
レベルが使用可能の場合)。テーブル歩行の終りに、ペ
ージが効果的に書込み保護されていれば、エントリーは
WPビットのセットを有する記述子キャッシュ内の論理ア
ドレスに対して行われる。
ページは、対応するビットがテーブルの最低レベルに
セットされていれば、ロックするか、ゲートだけを含む
ことができる。修正ずみあるいはキャッシュ禁止の指示
もテーブルの最低レベルだけに存在する。
ページに関連する権利についてもっと細かく制御する
には、長い記述子を使用してユーザ/スーパーバイザに
基づくアクセスを制限することができ、読出しアクセス
および書込みアクセスに対する8レベルの特権を利用し
て効率的な階層的保護機構を設けることができる。テー
ブル歩行プロセス中にアクセス権の侵犯が検出されれ
ば、エントリーは到来する論理アドレスから形成され、
BERRまたはWPのビットがそれぞれ読取りアクセス侵犯ま
たは書込みアクセス侵犯に対してATC26のエントリーに
セットされる。この論理アドレスに引続きアクセスすれ
ば、ヒットがエントリーのBERRビット・セットを有する
ATC26に生じた場合、あるいはWPビット・セットを用い
て書込みをしようとした場合に、BERRピンが表明される
であろう。
5.変換テーブル 好ましい形態では、変換テーブルはトリーとして構成
されている。このトリー構造は、完全なトリーの一部分
だけが存在すればよいから、ほとんどのプログラムに対
し組立てる必要のあるページ・テーブルの大きさは小さ
くなる。
ポインタ・テーブルおよびページ・テーブルという2
種類の変換テーブルが存在する。ポインタ・テーブルは
変換テーブル・トリーの分岐を形成し、一方ページ・テ
ーブルは葉(leaf)である。テーブルは記述子から構成
される。フォーマットはページ記述子およびポインタ記
述子に対して同様であり、アクセス・フィールドと制御
/状態フィールドとから構成される。一般に、ページ記
述子のアドレス・フィールドはページの論理アドレス対
物理アドレスのマッピングを指定するのに使用され、ポ
インタ記述子のアドレス・フィールドはトリー内の他の
変換テーブルを指すのに使用される。
ルート・ポインタ記述子は変換トリーのルートを指示
するのに使用される。この種の記述子はルート・ポイン
タ・レジスタでのみ使用される。変換トリーはCPUルー
ト・ポインタ(CRP)記述子がコンテキスト切替えで変
るか否かに依存して、タスク別に作ることもできるし、
タスク間に分割することもできる。加えて、交替バス・
マスタについて行われる変換はDMAルート・ポインタ(D
RP)により指示される変換トリーを使用する。必要なら
ば、スーパーバイザ・アクセスはスーパーバイザ・ルー
ト・ポインタ(SRP)を利用することによりCRPが指示す
る以外の別の変換トリーを使用して変換することができ
る。
各ルート・ポインタのフォーマットは次のとうりであ
る。
STATUSの中味は、 無効ルート・ポインタ記述子の場合には、変換を行な
うことが不可能であり、それ故レジスタをロードしよう
とすると、構成エラー除外の信号が発せられる。ルート
・ポインタがページ記述子である場合には、論理アドレ
スが物理アドレスとしてPMMU20を通過するであろう。妥
当に短いおよび妥当に長い形式は有効ルート・ポインタ
を示し、テーブル内の次のレベルの記述子の長さをも示
す。DRPを使用するのは常に最初のレベルのテーブルの
機能コードによるルックアップを意味し、L/Uビットお
よびLIMITのフィールドは、機能コードによるルックア
ップがあるルート・ポインタを用いて行なわれるとき
は、使用されない。
PMMU20は幾つかの異なる形式のテーブル記述子を指定
するようになっている。記述子はすべて共通に一つの要
素を備えている。すべての形式の、最初のロング・ワー
ドのビット0と1とは記述子のDTフィールドである。こ
れらのビットの数値は記述子の他のビットの意味に影響
を与える。
記述子のフォーマットは三つの事項から決まる。前の
記述子のDTフィールドの数値と、記述子のDTフィールド
の数値と、テーブル・サーチの状態とである。前のDTフ
ィールドの数値は現在の記述子が長い形か短い形かを決
める。他の二つの項目は次表にしたがってその形式を決
定する。
短いポインタ記述子は次のフィールドを有する。
ここでSTATUSは、 長いポインタ記述子のフォーマットは次のとうりであ
る。
ここでSTATUSは、 好ましい形態では、二つの形式のページ記述子があ
る。ページ・テーブルでだけ発生する形式1と、ポイン
タ・テーブルでだけ発生する形式2とである。したがっ
て、第4図に示すように、ポインタ・テーブルに形式2
のページ記述子が存在することはTIフィールドをすべて
使い切る前にテーブル・サーチが終ることになることを
示している。たとえそれ以上のテーブル・エントリーを
取出さなくても、シーケンス内の次のTIフィールドが制
限フィールドと比較される。チェックが不成功であれ
ば、変換キャッシュ・エントリが論理アドレスに対して
BERRビットのセットを用いて作られる。
形式1の短ページ記述子のフォーマットは次のとうり
である。
ここでSTATUSは、 形式1の長ページ記述子のフォーマットは次のとうり
である。
ここでSTATUSは、次のようになっている。
形式2の短ページ記述子のフォーマットを有してい
る。
ここでSTATUSは、次のようになっている。
形式2の長ページ記述子のフォーマットは次のように
なっている。
ここでSTATUSは、次のようになっている。
無効記述子はテーブル内にページをはみ出したデータ
があるいは割当てられていないデータの場所を保持して
いる。
短無効記述子のフォーマットは次のとうりである。
長無効記述子のフォーマットは次のとうりである。
間接記述子にはルックアップのレベルが別に付加され
ており、そのため個々のページをページに対する唯1組
の沿革ビットを用いて各タスクに分配することができ
る。
短間接記述子のフォーマットは次のとうりである。
長間接記述子のフォーマットは次のとうりである。
各種の記述子で、ビットとフィールドとは次のように
定義されている。
L/U(下部/上部)は、記憶装置のこの区域のページ
が利用可能な最下部のアドレスまたは最上部のアドレス
を占めているかどうかを示す。L/UはLIMITフィールドと
使用中の論理アドレスの部分とを比較し、次のようにテ
ーブルにインデックスを付ける。L/U=0ならば、LIMIT
フィールドはインデックス上で上部(符号無し)限界を
含んでおり、したがってインデックスは<=限界でなけ
ればならない。L/U=1であれば、LIMITフィールドはイ
ンデックス上で下部限界を含んでおり、インデックスは
>=限界でなければならない。インデックスが境界の外
にあれば、変換キャッシュ・エントリが論理アドレスに
対してBERRビットのセットを用いて作られる。その他の
場合にはテーブルのサーチを続行する。(第5図を参
照。) 制限(LIMIT)は、テーブルの次のレベルへのインデ
ックスの最大値または最小値を示す。このフィールドは
テーブルの次のレベルの大きさを制限するのに使用され
る。上のL/Uビットを参照のこと。
RAL(読取りアクセス・レベル)は、論理アドレス空
間の区域にアクセスするのに必要な論理アドレスのアク
セス・レベルを示す。これは次のようにコード化され
る。
000 アクセス・レベル0またはスーパーバイザ 001 アクセス・レベル1=>0またはスーパーバイザ 010 アクセス・レベル2=>0またはスーパーバイザ 011 アクセス・レベル3=>0またはスーパーバイザ 100 アクセス・レベル4=>0またはスーパーバイザ 101 アクセス・レベル5=>0またはスーパーバイザ 110 アクセス・レベル6=>0またはスーパーバイザ 111 アクセス・レベル7=>0またはスーパーバイザ コードの(符号無しで)小さいアクセス・レベルはコ
ードの大きい(符号無し)アクセス・レベルより大きな
特権を与えられている。100のコード化には記述子また
はページにアクセスするのに、101をコード化するより
も多い特権が必要である。記述子がロードされ、アクセ
スがユーザ空間アクセスであるときは、ACレジスタのAL
Cフィールドによって指示された論理アドレスの上位ビ
ットの数がトリー歩行の各長記述子のRALフィールドと
比較される。アクセスを否認すべきであるということを
示すRALが存在すれば、記述子が形成されATC26にそのBE
ERビット・セットがロードされる。
WAL(書込みアクセス・レベル)は、論理アドレス空
間の区域に書込むのに必要なアクセス・レベルを示す。
これは次のようにコード化される。
000 アクセス・レベル0またはスーパーバイザ 001 アクセス・レベル1=>0またはスーパーバイザ 010 アクセス・レベル2=>0またはスーパーバイザ 011 アクセス・レベル3=>0またはスーパーバイザ 100 アクセス・レベル4=>0またはスーパーバイザ 101 アクセス・レベル5=>0またはスーパーバイザ 110 アクセス・レベル6=>0またはスーパーバイザ 111 アクセス・レベル7=>0またはスーパーバイザ 記述子がロードされ、アクセスがユーザ空間書込みア
クセスであるときは、ACレジスタのALCフィールドによ
り指示された論理アドレスの上部ビットの数がテーブル
歩行に使用される各長記述子のWALフィールドと比較さ
れる。このアドレスについて書込みが許可されないこと
を示すWALが存在すれば、記述子にWPビット・セットが
ロードされる。
S(スーパーバイザ)はアドレスが使用可能な機能コ
ードにより制限されているか否かを指示する。
0 任意のアドレス空間参照 1 スーパーバイザ空間参照に限る。
SG(全体的に分配された)は、論理アドレス空間のこ
の区域がシステム内のすべてのタスクに割当てられてい
るか否かを示す。区域が割当てられていれば、ATC26に
エントリーが一つだけ作られ、すべてのタスクがこれを
分け持つであろう。このビットは次のように規定され
る。
0 割当てられていない 1 割当てられている。
G(ゲート)は、ページがゲートを含むことができる
場合にセットされ、その他の場合にはクリアされる。
CI(キャッシュ禁止)は、システム内でデータ・キャ
ッシュとともに、キャッシュすべきでないページに印を
付けるのに使用し、データ陳腐化の問題を回避する。PM
MU20は変換中このビットを外部システムに提示する。
L(ロック)は、記述子をATC26内にロックし、これ
を交換に利用できないようにする。ATC26のエントリー
は記述子のロックを解除するにはフラッシュしなければ
ならない。ただし、ルート・ポインタ・テーブルはロッ
クした記述子と対話することができる。
M(修正ずみ)は、ページが書き込まれている場合に
セットされ、その他の場合はクリアされる。PMMU20はM
が先にクリアされていてこの記述子のページに書込みが
生じた場合にMをセットする。このビットはPMMU20では
決してクリアされない。
U(使用ずみ)は、記述子のアドレス・フィールドが
ページまたはテーブルにアクセスするのに使用されてし
まっている場合にセットされ、そうでない場合にクリア
される。このビットは、先にクリアされていて変換プロ
セス期間中記述子のアドレス・フィールドがPMMU20によ
って使用される場合にPMMU20によってセットされる。こ
のビットはPMMU20によっては決してクリアされない。
WP(書込み保護)は、ページが絶対的に書込み保護さ
れている場合にセットされ、その他の場合はクリアされ
る。記述子はそのWPビット・セットで形成され、ATC26
にロードされる。エントリーは上述のWALフィールドに
より条件付きで書込み保護することができる。書込み保
護されているページに書込もうとすればBERRを表明する
ことによりPMMU20が変換を放棄する。
DT(記述子形式)は、記述子の形式を示す。これは形
式に関係なく記述子の同じ位置に置かれる。これは先の
DTフィールドの値およびテーブルサーチ状態とともに記
述子フォーマットを決定するのに使用される。
00:無効:このDT値を有する記述子は常に無効であ
る。これはページまたはテーブルが存在していない(ペ
ージからはみ出している)か論理アドレスが境界外にあ
ることを示す。無効記述子に遭遇すると、変換キャッシ
ュ・エントリーがBERRビット・セットを有する論理アド
レスに対して作られる。
01:ページ記述子:この値はテーブル歩行手順を終結
するのに使用される。これは形式1または形式2のペー
ジ記述子を示す。ページ記述子に遭遇すると、テーブル
歩行プロセスが終結し、エントリーがATC26の論理アド
レスに対して作られる。エントリーに対する物理アドレ
ス・フィールドは残りの論理アドレス・ビット(テーブ
ルの前のレベルへのインデックスとして使用されなかっ
たもの)に記述子のページ・アドレス・フィールドまで
延びた0を加えることによって形成される。(第4図を
参照) 10 短:この値は取出すべき次の記述子が短かいフォ
ーマットのものであることを示す。この値はポインタ記
述子(短または長)または間接記述子(短または長)に
置かれる。この値がポインタ記述子に入っているときに
は、テーブルのアドレス・フィールドが短記述子のテー
ブルを指していること、およびインデックスに4を掛け
るべきことを意味している。短の値に遭遇し、且つ論理
アドレスが使い盡されている(TIフィールドをすべて使
用した)ときは、この値を短記述子を指す間接形式の記
述子を示す。
11 長:この値は取出すべき次の記述子が長いフォー
マットのものであることを示す。この値はポインタ記述
子(短または長)または間接記述子(短または長)に置
かれる。この値がポインタ記述子に入っているときに
は、テーブルのアドレス・フィールドが長記述子のテー
ブルを指していること、およびインデックスに8を掛け
るべきことを意味している。長の値に遭遇し且つ論理ア
ドレスが使い盡されている(すべてのTIフィールドを使
った)ときは、この値は長記述子を指す間接形式の記述
子を示す。
テーブル・アドレスは、28ビットから成り、常に記述
子のテーブルの底辺を指す。
ページ・アドレスは、ページの物理アドレス(ページ
・フレーム番号)を含んでいる。ページ・アドレスは24
ビットから成るが、これらビットのすべてを使うことが
できるわけではない。ページの大きさが256バイトより
大きければ、必らずしもすべてのビットが必要ではな
い。特に(TCレジスタのPSフィールドの値)低位の値か
らこのフィールドの8個の低位ビットを差引いたものは
使用されない。たとえば、ページの大きさが1024バイト
の場合、PSフィールドの値は10(2進法では1010)であ
るから、最低10−8=2ビットのページ・アドレス・フ
ィールドは使用されない。使用しないビットはソフトウ
ェアで使用することができる。
間接アドレスは個別記述子を指す30ビットから構成さ
れる。DTフィールドが長を示せば、このフィールドの低
位ビットは0でなければならない。
使用せずのビットは、PMMU20によって使用されない。
6.テーブル歩行 PMMU20はページ記述子が見つかるまで(または例外条
件が発生するまで)連続してテーブルのルックアップを
行うことによって記述子を取出す。これらテーブルのル
ックアップは変換トリーの各レベルの記述子のテーブル
を指示する論理アドレスの部分を使用することにより行
われる。テーブルの底辺はトリー内で1レベル上の前の
テーブルで求められた記述子によって指示される。テー
ブルの最大の大きさは、テーブル内の記述子の大きさに
よってのみならず、テーブルへのインデックスとして使
用されている論理アドレス・ビットの数によっても決め
られる。テーブルは一定の記述子の制限(LIMIT)フィ
ールドを介して、この最大値より小さい大きさに制限す
ることができる。記述子が一旦テーブルから得られる
と、その有効性がチェックされる。有効であれば、トリ
ーの次のレベルにある記述子の形式を確認する。このル
ックアッププロセスはページ記述子が得られるまで、ま
たは除外が発生するまで、論理アドレスの残りの部分を
使用して続けられる。一旦ページ記述子が得られれば、
論理的対物理的マッピングがそのページに対して規定さ
れる。
DMAアクセスがDMAルート・ポインタ(DRP)を使用し
て変換されているときは、最初のレベル・テーブルが機
能コードによって常に指示される。変換にスーパーバイ
ザー・ルート・ポインタ(SRP)またはCPUルート・ポイ
ンタ(CRP)が使用されておりTCレジスタのFCL(機能コ
ードルックアップ)ビットがセットされていれば、最初
のレベルのルックアップが機能コードによって指示され
る。FCLビットがクリアされていれば、機能コードのル
ックアップは行われず、最初のルックアップは次節に記
すようになる。このテーブル歩行手順を第3図に示す。
ページ記述子は次のように取出される。機能コードFC
[3]のビット3が表明されていなければ、FC2−0の
到来値を使用してCRPまたはSRPレジスタが指しているテ
ーブルを指示する。ATC26の失敗が発生したときFC
[3]がPMMU20以外の装置によって表明されていた場合
には、機能コードFC[2−0]のビット2−0を使用し
てDRPが指しているテーブルを指示する。次に記述子を
レベルがより高いテーブルから取出す。取出すべき記述
子の形式は使用するルート・ポインタの記述子形式フィ
ールドで決まる。取出した記述子が有効であれば、記述
子のアドレス・フィールドは変換の次のレベルを指すポ
インタの上位ビットを形成するのに使用される。
TCレジスタのISフィールドによって指示される論理ア
ドレス上位ビットの数はPMMU20によって捨てられる。TI
Aフィールドによって指示されるビットの数は論理アド
レスの上部から採用される。これらは符号無しの整数と
して処理される。現行記述子(またはルート・ポイン
タ、これが最初のレベルの場合)のDTフィールドがトリ
ーの次のレベルの記述子が短記述子(32ビット)である
ことを示していれば、論理アドレス・ビットが左に2だ
けシフトされ、取出された記述子のアドレス・フィール
ドに付加される。DTフィールドがトリーの次のレベルの
記述子が長記述子(64ビット)であることを示していれ
ば、論理アドレス・ビットは左へ3だけシフトされ、取
出された記述子のアドレス・フィールドに付加される。
このポインタはトリーの次のレベルの記述子を取出すの
に使用される。
この手順は、この新しい記述子のアドレス・フィール
ド、次のTIxフィールド、および論理アドレスの次の上
位ビットを使用して、他の記述子を取出し続ける。ペー
ジ記述子が見つかるまで、またはTIxフィールドがそれ
以上存在しなくなるまで、あるいは次のものが0である
ようになるまで(または、後に記すように、テーブル歩
行手順が放棄されるまで)同様に進行する。
記述子が長い場合には、次のレベル・テーブルの基底
アドレスは2番目に長いワードのビット31〜4となるよ
うに取られる。ビット3〜0は無視され、ユーザが状態
その他の機能に使用することができる(アドレス計算の
ために0で埋められている)。記述子が短い場合には、
次のレベル・テーブルの基底アドレスはビット3〜0
(状態ビット)が0で満たされている単一の長ワードに
なるように取られる。記述子境界を指すように左にシフ
トされたTIxで指示された論理アドレスの部分はテーブ
ルの基底アドレスに加えられて次の記述子の位置を定め
る。記述子には28ビットしかアドレス情報がないから、
アドレス計算は記述子アドレス・フィールドの下位の4
状態ビットを0で埋める。
テーブル歩行手順は多くの理由により上述の通常の場
合とはかけ離れることがある。
1)記述子の使用ずみ及び/又は修正ずみのビットがセ
ットされていなければ、PMMU20はそれらを適切にセット
し、次いで記述子の状態バイトを更新するであろう。更
新されている記述子が既に修正ずみビット・セットを備
えていれば、更新は単一の読取り−修正−書込みのサイ
クルを使用して行われる。その他の場合には、単純書込
みが使用される。
2)TCレジスタのFCLビットがクリアされていれば、最
初のルックアップは論理アドレスによる。または、 3)テーブル歩行中ページ記述子に遭遇すれば、歩行が
終結し、エントリーがATC26の論理アドレスに対して行
われる。エントリーの物理的アドレス・フィールドは論
理アドレス・ビット(或る前のレベルのテーブルの指標
として使用されなかったもの)の残った数を、0拡張し
て、下位PSビットに0が詰った記述子の物理的アドレス
・フィールドに加えることによって形成される。エント
リーが作られ、PMMU20がバスを放棄した後、バス・サイ
クルを再試行することができる。
7.アドレス変換キャッシュ 各アクセス時に変換テーブルを歩行するオーバヘッド
を回避するため、最近使用される論理対物理トランスレ
ータはATC26に保持されている。ATC26はヒット率が高く
かつ変換時間が短いように作られている。ATC26が失敗
すると、PMMU20はバス・マスタにサイクルを後に再試行
すべきことを指示して現行バス・サイクルを放棄する。
次にPMMU20は論理バスと物理バスとを調停し、記憶装置
の変換テーブルをサーチして正しいページ記述子を見つ
ける。次にこの記述子を使用してATC26にトランスレー
タを設置する。PMMU20がバスを放棄すると、古いバス・
マスタは調停することができ、放棄したバス・サイクル
を再試行する。このときPMMU20はATC26において「ヒッ
ト」するはずであり、バス・サイクルは正常に進行する
ことができる。
ATC26で、各キャッシュ・エントリーは論理部(タ
グ)と物理的部分(タグに対応する情報)とを備えてい
る。ただし、エントリーの論理的内容はユーザには見え
ない。各エントリーの31ビットの論理部は次のフィール
ドから構成されている。
ここで、 V(有効)は、エントリーが有効トランスレータを含
んでいる場合1であり、その他の場合はクリアされる。
このビットはトランスレータがエントリーにロードされ
るときセットされる。Vはトランスレータに合致するPF
LUSHまたはPFLUSHR命令によって、トランスレータに合
致するPLOAD命令によって、PMOVEによるルート・ポイン
タ・テーブルのCRPへの再割当により生ずるフラッシュ
によって、およびリセット時にクリアされる。
TA(タスク・エイリアス)は、別々の方面からの同一
の論理アドレスへの異なるタスクのアクセスを区別する
機構を与える。タスク・エイリアス情報とエントリ有効
性ビットのマスク可能なクリアを実行する能力とを組合
わせると(トランスレータのマスク可能なフラッシ
ュ)、PMMU20はATC26に存在する複数のタスクのトラン
スレータを同時に保持する能力が与えられる。タスク・
エイリアスを別のタスクに再発行しなければならない場
合には、そのタスク、エイリアスを含むすべてのトラン
スレータをまずフラッシュする。これにより新しいタス
クが前のタスクのトランスレータを誤りなく使用し、コ
ンテキスト切替時ATC26全体をフラッシュする必要性が
無くなるであろうことが保証される。このフィールドと
の比較はこのトランスレータをロードしたテーブルサー
チが一組のSGビットを有する記述子と遭遇した場合抑制
されるであろう。これにより全体的配分動作が実施され
る。
FC(機能コード)は、トランスレータをロードさせた
バス・アクセスの機能コード・ビットFC[3:0]を備え
ている。
論理アドレスは、トランスレータをロードさせたバス
・アクセスの論理アドレス・ビットLA[31:8]を備えて
いる。ページの大きさが256バイトより大きければ、こ
の24ビット・フィールド内の幾つかの低次LAビットが正
常変換中行われるアドレス比較の間に「ドントケア」と
なる。
各エントリーの30ビットの物理的部分は次のフィール
ドから構成される。
ここで、 L(ロック)は、キャッシュ・エントリーが再使用に
利用できない場合にセットされ、そうでない場合にクリ
アされる。ATC26が有効トランスレータで一杯になって
いれば、現在有効なトランスレータはトランスレータ・
ロード上に重ね書きされなければならない。L=1なら
ば、キャッシュ・エントリーは再使用に利用できない。
一つを除くすべてのエントリーがロックされるようにな
と、CSレジスタ内のLWビットがセットされてこの状態を
示すであろう。記述子に「ロック」の指示が存在するか
否かには無関係に、それ以上トランスレータのロックは
行われず、ロックされたトランスレータでキャッシュが
全体的に満たされることのないようにしている。トラン
スレータがフラッシュするまで、ATC26はすべてのキャ
ッシュの失敗に関して新しいトランスレータとして同じ
(ロックされていない)エントリーを使用しつづけるで
あろう。このため、動作システムは変換機構の有効性を
減ずるほどの多数のトランスレータにロックされないよ
うに注意しなければならない。ロックされたトランスレ
ータは、CRPを使用してロードされた場合には無効にす
ることができる。新しいエントリーがRPT内に作られる
と、整合用TAフィールドを有するATC26のすべてのトラ
ンスレータが、そのLビットの状態に関係なく、無効に
されるであろう。SRPまたはDRPがロードされているトラ
ンスレータはこの方法では無効にされない。
BERR(バス・エラー)は、このトランスレータでのテ
ーブルサーチの結果、エラーが検出された場合にセット
され、その他の場合はクリアされる。BERR=1であれ
ば、PMMU20はページがアクセスされたときBERR出力を表
明するであろう。PASは発生しない。BERRは、先の失敗
(ATC26内に存在していなかった)の場所に再アクセス
を試みるとき、現行バス・マスタにこのアドレスに対す
るテーブルにトランスレータが存在しないことを知らせ
る機構を提供する。また、他のバス・マスタによる非存
在場所に冗長なテーブル・ルックアップの試みを回避す
る機構を提供する。BERRビットは明快にクリアすること
はできない。バス・エラー処理ルーチンはテーブルを更
新してから失敗アドレスのPLOADを含むべきである。PLO
ADはPMMU20にそのキャッシュ内の整合用トランスレータ
をフラッシュさせ、それからキャッシュにテーブルから
新しいデータをロードする。
CI(キャッシュ禁止)は、ページ内のアクセスがデー
タ・キャッシュに格納されないようにすべき場合に指示
する。CI=1であれば、PMMU20は、ページがアクセスさ
れたときバス・サイクルと同時にCLI出力を発生するの
で、キャッシュ・コントローラはそのバス・アクセスが
キャッシュに「失敗」したとき「充填」をしようとしな
いことを知るようにするであろう。このカテゴリー内に
入る典型的な幾つかのアクセス形式を挙げれば、I/Oア
クセス、臨時バッファ区域へのアクセス、またはメール
ボックス区域へのアクセスがある。
WP(書込み保護)は、ページの「有効」書込み保護を
反映するものである。WP=1であれば、ページへの書込
みアクセスは違法である。有効書込み保護は、テーブル
歩行中に遭遇するすべてのWPビット(各レベルで一つ)
と、遭遇するWALフィールドで行われるチェックとのOR
である。これは変換テーブルのページ記述子のWPビット
の実際の値とは異なることがあることに注意のこと。そ
のWPビット・セットを有するATC26のトランスレータを
使用して書込みをしようとする場合には、PASは発生せ
ず、BERRが表明されるであろう。同じことはRMC信号を
利用する処理装置14で実行される読取り−修正−書込み
サイクル(RMC)についても正しい。ただし、処理装置1
4にRMC出力が無ければ、バス・サイクルの読取り部分は
通常の方法で変換され、適切な場合には書込み禁止(WI
N)出力が表明されるであろう。処理装置14のR/W(書込
み・読取り)信号が読取り−修正−書込みサイクルの書
込み部分を示すように変ると、WIN信号は物理的R/W信号
の遷移を阻止し、PMMU20は書込み侵犯を検出し、PASを
否定し、BERRを表明するであろう。
M(修正ずみ)はページが修正されていればセットさ
れ、その他の場合はクリアされる。トランスレータにM
ビット・セットを備えていない書込み可能ページに書込
みが起ると、PMMU20は現行バス・マスタに「放棄および
再試行」の信号を発する。バスを受取ると、PMMU20はテ
ーブルを歩き、テーブル内に適切な記述子の修正ビット
をセットし、古いトランスレータを無効とし、その修正
したビットがセットされた新しいトランスレータをロー
ドし、それからバスを放棄するであろう。前のバス・マ
スタが書込みサイクルを再試行すると、PMMU20はMビッ
ト・セットを探し、通常の方法で物理アドレスとPASと
を提供するであろう。この方法で、記述子の修正ずみビ
ットは、そのページへの最初の書込み時に、トランスレ
ータが前の読みからキャッシュされたものであってもな
くても、ページ・テーブルにセットされる。
G(ゲート)は、このページがあるゲートを備えるこ
とができるか否かを示す。G=1であれば、ページは異
なる特権レベル間の遷移に対してゲートを備えることが
できるものである。記述子アドレス・バス・レジスタへ
の書込み時、PMMU20はそのアドレスで指示されるページ
がGビットのセットを備えているかチェックし確認す
る。このページにゲートを備えるという属性(Gビット
のセット)が無ければ、適切なエラー・コードがALSレ
ジスタに記録される。
PA(物理アドレス)は、テーブル・ルックアップのペ
ージ記述子から形成された物理アドレスPA[31:8]のビ
ット31〜8を含んでいる。ページの大きさが256バイト
より大きければ変換中に、格納された24の物理アドレス
・ビットの必らずしも全部が外部の物理バスに追い出さ
れることはない。ページ内の区域にアドレスする物理的
アドレス・ビットは対応する論理アドレス・ビットが直
接外部物理バスを通過するように多重化される。
PMMU20がリセット動作を行うと、ATC26を使用不能の
状態(TCレジスタのEビットがクリアされている)で
「参人する」。論理アドレスは直接通過され、論理アド
レスバスに「明快な変換」として出力される。これはリ
セット・ベクトルが、記憶装置と、組立てられた変換テ
ーブルとから、読出すことができるように必要でであ
る。加えて、アクセス・レベルのチェックが使用禁止さ
れるので、アクセスが「現行アクセス・レベルを越えて
試みる」ことによる失敗を生ずることはないであろう。
テーブルが組立てられてから、EビットをATC26の動作
が可能なようにセットすることができる。
PMMU20が他の動作を行っていなくてATC26が使用可能
になっていれば、PMMU20は「変換ルックアサイド(look
aside)」動作モードになっている。このモードでは、A
TC26は現行バス・マスタが提供した論理情報と各ATC26
のエントリーのタグ区域に格納されている対応する論理
情報との間の進行中比較を行う。現行バス・サイクル論
理情報は到来論理アドレス、到来機能コード、および現
行タスク・エイリアス(ルート・ポインタ・テーブル内
の現行CRP値のインデックス)から構成されている。各A
TC26エントリーのタグ区域に対応するフィールドが存在
する。現行情報が有効トランスレータに格納されている
情報と合致すれば、ATC26は「ヒット」すると言われ
る。SGビット・セットを有するこれらのトランスレータ
は「ドントケア」とされているタスク・エイリアス・フ
ィールド間の比較を行って、トランスレータの分配がで
きるようにする。
ヒットがあれば、ATC26は合致した論理アドレスに対
応する格納された物理アドレスをPA出力バッファに通
し、同時に対応する物理アクセス情報を他の評価回路ま
たは出力バッファに通す。物理バスがPMMU20から離れて
調停されていれば、PMMU20は再び物理バス・マスタにな
るまで物理バスを駆動しないであろう。アクセス権検査
回路と関連の制御信号とはすべて、現行物理バス・マス
タの本性とは無関係に、依然として動作する。この方法
で、全体的に分離された物理バス活動と並行して、アク
セス権を有し除外チェックを行う論理バス活動を行うこ
とが可能である。たとえば、処理装置14は、物理バスを
PMMU20から遠く離して調停したDMA装置の動作と並行し
て、論理バスに存在するデータ・キャッシュを離れてバ
ス・サイクルを実行し、PMMU20によってモニタされたア
クセス権を有することができる。
ATC26の「ヒット」しているトランスレータからの物
理的情報は次のような道筋で送られる。
1)BERR、WP、MおよびGビットはアクセス権検査回路
へ 2)物理アドレス・ビットとキャッシュ禁止ビットは出
力バッファへ 離散的アクセス・レベルがある場合には、特定のバス
・サイクルのアクセス・レベルが、アクセス・レベルの
数に依存して、論理アドレス・ビットLA[31:29]、LA
[31:30]、またはLA[31]にコード化されるであろ
う。これらビットは他のアドレス・ビットの同じ方法で
比較されてトランスレータの合致を確認するので、離散
的アクセス・レベルを使用するのはATC26の機能的必要
条件ではない。ATC26のルックアップと並行して、CALレ
ジスタ内の高次アドレス・ビットと使用可能ビットとの
間で分散比較が行われる。そのアドレスにコード化され
たアクセス・レベルがCALレジスタに格納されているア
クセス・レベルより上であれば、例外が存在してBERRが
表明され現行のアクセス試行を終結する。スーパーバイ
ザー・アクセスはすべてCALチェック機構を使用禁止に
するので、スーパーバイザー・アクセスはこの規則の例
外事項である。
「判断時間切れ」回路はLASがPMMU20がどの外部制御
信号を表明するかを決定するに充分な時間を持っている
ことを検出した(非同期モード)後、または表明した
(同期モード)後、どのクロック・エッジによるかを指
定するものである。判断時間切れクロック・エッジはア
クセス権検査、例外検出、およびATC26合致回路の出力
がそのデスティネーションで有効であることを保証する
だけの時間の後生じなければならない。アクセス権検
査、例外検出、あるいはATC26合致回路がこの判断時間
によって解決しなければ、PMMU20は誤り応答を行う(不
良の制御信号を発生する)。判断時間はリセット/構成
時刻にその最小値から増加させることができる。
ヒットがあり、アクセス権の侵犯が無く、例外事項が
検出されなければ、PASが「最小PAS表明時刻」(変換モ
ードに依存)からリセット/構成時刻に指定された時間
だけ遅れて表明されるであろう。PASは駆動が作用しな
くなるLASの否定が生ずるまで駆動される。PMMU20が物
理バス・マスタであるときは、物理アドレス・バスが常
に駆動されて有効であるであろうが、物理アドレスと機
能コードとは、アクセス時間の必要条件が満たされた後
に有効になる。
ヒットが存在しないか、アクセス権が超過したか、あ
るいは例外事項が発生しているかすれば、PMMU20はPAS
を発生しないであろう。その代り、PMMU20は「時間切
れ」クロック・エッジの条件に適切な制御信号を発生す
る。物理アドレスおよびPAS以外の応答を発生する正常
ルックアサイド動作中に検出される例外条件またはアク
セス権侵犯は次のとうりである。
1)論理バスからデコードされたPMMUコプロセッサ・レ
ジスタのアクセスがコード化された命令を実行させる。
2)格納されている「現行アクセス・レベルを超えよう
とするアクセスが、使用可能である場合BERRを発生させ
る。
3)BERRビット・セットがBERRを発生させる。
4)書込み保護されているページへの書込みアクセスに
よりBERRが発生する。
5)ATC26にヒットが無いと放棄・再試行の動作制御信
号が発生する。
6)前に修正しなかったページに書込みアクセスすると
放棄・再試行の動作制御信号を発生する。
7)CALLM/RTM命令によるPMMU20バス・レジスタへのア
クセス。
8)CPU空間アクセス(FC=0111)論理アドレス・バス
が物理アドレス・バスに通り抜け、PASが発生しない。
アドレスがPMMU20のバス・レジスタでなければ、CLIは
通常のPASタイミングで表明され、CPU空間デコードで外
部的に条件調節してCPU空間アドレス・ストローブを発
生することができる。アドレスがPMMU20のバス・レジス
タであればCLIは表明されない。動作は次表によって規
定される。
8.ルート・ポインタ・テーブル(RPT) ATC26の利用を改善するため、PMMU20は最も最近のタ
スクに対するルート・ポインタを保持する複数のエント
リー・ルート・ポインタ・テーブル(RPT)28を備えて
いる。CPUルート・ポインタ(CRP)によって指定される
変換トリーをサーチすることによって作られるATC26内
のエントリーはすべて現在合致しているRPT28内のエン
トリーのインデックスを示す印が付けられる。このイン
デックスをタスク・エイリアスと言う。CRPレジスタが
書込まれ、合致するエントリーがRPT28の中に見つかれ
ば、有効なエントリーがATC26の中になお存在してい
る。新しいCRP値がRPT28のエントリーと合致しなけれ
ば、RPT28内にエントリーが選択され、ATC26は同じイン
デックスを有するエントリーでフラッシュされる。加え
て、この情報はCSレジスタ内に示されるので、外部デー
タ・キャッシュはRPT28と同じ様式で管理することがで
きる。
RPT28は各々のエントリーごとに一つのタグがあるタ
グ区画を備えている。各タグはCRPレジスタと同じフィ
ールドを有する。タグはタグのアドレス・フィールドが
CRP値のアドレス・フィールドと合致すれば合致する。
有効な合致はアドレス・フィールドが合致するとともに
他のすべてのフィールドが合致すれば生ずる。無効な合
致はアドレス・フィールドとL/U(上位・下位)のビッ
トは合致するが他の一つ以上のフィールドが合致しない
場合に生ずる。
テーブルに明白なデータ区画は存在しない。合致する
と、テーブルの出力は合致したエントリーのインデック
ス0〜7である。複数の合致エントリーが決して同時に
発生しないようにするのはPMMU20の責任である。
CRPレジスタが書込まれると、RPT28ではアドレス・フ
ィールドとL/Uフィールドが合致するエントリーがある
かサーチされる。状態フィールドと制限フィールドとの
DTフィールドも合致すれば、合致は有効な合致と考えら
れる。ただし、アドレスとL/Uフィールドとは合致する
が状態および制限の各フィールドのDTフィールドが合致
しなければ、合致は無効であると考える。
合致が有効であれば、CSレジスタのTAフィールドにテ
ーブル内のエントリーのインデックスがロードされ、CS
レジスタのFビットがクリアされる。これは新しいCRP
によって記述されるタスクがATC26内に有効なエントリ
ーを備えていることを示している。
合致が無効であれば、ATC26はRPT28によって出力され
ているインデックス値に合致するすべてのエントリーに
関してフラッシュされる。CSレジスタのTAフィールドに
テーブル内のエントリーのインデックスがロードされ、
CSレジスタ内のFビットがセットされる。これはこのイ
ンデックスを持つ外部データ・キャッシュのいかなるエ
ントリーもすべて無効にされるべきことを示している。
合致が存在しなければ、RPT28のエントリーは交換の
ためPMMU20により選択される。選択されたエントリーの
インデックスはこのタスク・エイリアスを含んでいるす
べてのエントリーのATC26をフラッシュするのに使用さ
れる。次に新しいルート・ポインタの値がテーブル内に
ロードされ、インデックス番号がCSレジスタに設置さ
れ、Fビットがセットされてこのタスク・エイリアスが
再使用されているという事実を反映させる。
異なるタスクおよび異なる交換トリーに同じルート・
ポインタ値を再使用しなければならない場合には、ATC2
6はまずそのタスク・エイリアスがPFLUSHR命令を使用す
るルート・ポインタ・キャッシュのエントリーに割当て
られたものに合致するようなすべてのエントリーについ
てフラッシュされなければならない。RPT28のエントリ
ーは交換のため類似LRUアルゴリズムを使用して選択さ
れるであろう。RPT28が行う交換および複数タスク処理
は外部データ・キャッシュが利用することができる。CR
Pレジスタへの各々の書込みの後、CSレジスタは読取ら
れ、その内容がデータ・キャッシュのハードウェアに書
込まれなければならない。この外部データ・キャッシュ
・ハードウェアは論理アドレスに3ビット増設して構成
すべきである。この増設はCSレジスタの下位3ビットが
ロードされているラッチから供給されるべきである。こ
のラッチがロードされ、CSレジスタ内のFビットがセッ
トされると、ラッチ時の値に合致しているキャッシュ内
のすべてのエントリーがクリアされるはずである。
フロントページの続き (72)発明者 ケシュリア・ウイリアム エム アメリカ合衆国 テキサス州 77469、 リッチモンド、ラウンド・ストーン 1402 (72)発明者 ゾルノウスキー・ジョン アメリカ合衆国 カリフォルニア州 95035、ミルパイタス、エル・カミノ・ ハイギュラ 1127

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】記憶装置に格納されている複数のポインタ
    (PT)テーブル(TA,TB,YC,TD)とページ(PG)テーブ
    ルとに選択的にアクセスして、選ばれた論理アドレス
    (LA)を、まず前記論理アドレスの第1の部分と第1の
    テーブル・ポインタとを加算または連結によって組合せ
    て前記複数のポインタ・テーブルの内の第1のもの(T
    A)にアクセスし、これから前記ページ・テーブル(P
    G)の選ばれた一つ(TD)を指すページ・テーブル・ポ
    インタを得、次いで前記論理アドレスの第2の部分と前
    記ページ・テーブル・ポインタとを加算または連結によ
    って組合せて前記選ばれたページ・テーブルにアクセス
    し、これから物理アドレス(PA)を得ることにより、対
    応する物理アドレスに変換するようになっているページ
    式記憶装置管理ユニット(PMMU)において、 前記PMMUは、制御信号(FCL)に応じて、最初に前記第
    1のテーブル・ポインタと前記論理アドレスの第3の部
    分を加算または連結によって組合せて前記複数のポイン
    タ・テーブルの内の第2のものにアクセスし、これから
    第2のテーブル・ポインタを得、次いで前記論理アドレ
    スの前記第1の部分と前記第2のテーブル・ポインタと
    を加算または連結によって組合せて、前記複数のポイン
    タ・テーブルの内の前記第1のものにアクセスし、これ
    から前記ページ・テーブル・ポインタを得るよう選択的
    に動作可能とされることを特徴とするページ式記憶装置
    管理ユニット。
  2. 【請求項2】前記第1のテーブル・ポインタは複数のル
    ート・ポインタから選択される請求の範囲第1項に記載
    のページ式記憶装置管理ユニット。
  3. 【請求項3】記憶装置に格納されている複数のポインタ
    ・テーブル(PT)およびページ・テーブル(PG)に選択
    的にアクセスして、選ばれた論理アドレスを、まず前記
    論理アドレスの第1の部分(TIA)と第1のテーブル・
    ポインタとを加算または連結によって組合せて前記ポイ
    ンタ・テーブルの内の選択された1つ(TA)にアクセス
    し、これから(TB,TC)前記ページ・テーブルの選ばれ
    た1つを指すページ・テーブル・ポインタを得、次いで
    前記論理アドレスの第2の部分(TID)と前記ページ・
    テーブル・ポインタとを加算または連結によって組合せ
    て前記選ばれたページ・テーブル(PG)にアクセスし、
    これから物理アドレスを得ることにより、対応する物理
    アドレスに変換するようになっているページ式記憶装置
    管理ユニット(PMMU)において、 前記PMMUは、第3のテーブル・ポインタ(SRPまたはCR
    P)と前記論理アドレスの第3の部分(FC)を加算また
    は連結によって組合せて第2のポインタ・テーブル(T
    F)に直接アクセスしかつ次に前記第2のポインタ・テ
    ーブルの出力を使用して第3のテーブルに直接アクセス
    するよう選択的に動作可能とされ、かつ前記PMMUは前記
    第3のテーブルに格納された記述子タイプフィールド
    (DT)が第1の所定の値を有しておれば前記第3のテー
    ブルをページ・テーブル(PG)として選択的に使用して
    そこから前記物理アドレスを得ることを特徴とするペー
    ジ式記憶装置管理ユニット。
  4. 【請求項4】前記物理アドレスの第3の部分(FC)は前
    記論理アドレスのアドレス空間選択部からなる請求の範
    囲第3項に記載のページ式記憶装置管理ユニット。
  5. 【請求項5】前記PMMUは前記第2のポインタ・テーブル
    の前記出力を第2のページ・テーブル・ポインタとして
    使用しかつ前記論理アドレスの前記第1の部分(TIAお
    よび前記第2のページ・テーブル・ポインタを組合せて
    前記ページ・ページ・テーブル(PG)に直接アクセスす
    る請求項3に記載のページ式記憶装置管理ユニット。
JP61506059A 1986-01-15 1986-11-06 複数のアドレス空間を選択的にサポ−トできるペ−ジ式記憶装置管理ユニット Expired - Lifetime JP2567594B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/819,180 US4763244A (en) 1986-01-15 1986-01-15 Paged memory management unit capable of selectively supporting multiple address spaces
US819180 1992-01-10

Publications (2)

Publication Number Publication Date
JPS63502224A JPS63502224A (ja) 1988-08-25
JP2567594B2 true JP2567594B2 (ja) 1996-12-25

Family

ID=25227414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61506059A Expired - Lifetime JP2567594B2 (ja) 1986-01-15 1986-11-06 複数のアドレス空間を選択的にサポ−トできるペ−ジ式記憶装置管理ユニット

Country Status (6)

Country Link
US (2) US4763244A (ja)
EP (1) EP0253824B1 (ja)
JP (1) JP2567594B2 (ja)
KR (1) KR940011668B1 (ja)
DE (1) DE3688978T2 (ja)
WO (1) WO1987004544A1 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
USRE36462E (en) * 1986-01-16 1999-12-21 International Business Machines Corporation Method to control paging subsystem processing in virtual memory data processing system during execution of critical code sections
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
JPH0221342A (ja) * 1987-02-27 1990-01-24 Hitachi Ltd マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
US5109348A (en) 1987-09-14 1992-04-28 Visual Information Technologies, Inc. High speed image processing computer
US4888688A (en) * 1987-09-18 1989-12-19 Motorola, Inc. Dynamic disable mechanism for a memory management unit
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
IT1216087B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Sistema di memoria con selezione predittiva di modulo.
IT1219238B (it) * 1988-04-26 1990-05-03 Olivetti & Co Spa Dispositivo di traslazione dell'indirizzo per un memoria operativa di computer
US5239635A (en) * 1988-06-06 1993-08-24 Digital Equipment Corporation Virtual address to physical address translation using page tables in virtual memory
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
US5121487A (en) * 1989-02-21 1992-06-09 Sun Microsystems, Inc. High speed bus with virtual memory data transfer capability using virtual address/data lines
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
JP2503702B2 (ja) * 1989-12-19 1996-06-05 日本電気株式会社 アドレス変換装置
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
EP0473767A1 (en) * 1990-03-23 1992-03-11 Eastman Kodak Company Virtual memory management and allocation arrangement for digital data processing system
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5410671A (en) * 1990-05-01 1995-04-25 Cyrix Corporation Data compression/decompression processor
US5355469A (en) * 1990-07-30 1994-10-11 Delphi Data, A Division Of Sparks Industries, Inc. Method for detecting program errors
US5771368A (en) * 1990-10-29 1998-06-23 Sun Microsystems, Inc. Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
GB2251102B (en) * 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges
US5640528A (en) * 1991-10-24 1997-06-17 Intel Corporation Method and apparatus for translating addresses using mask and replacement value registers
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5696925A (en) * 1992-02-25 1997-12-09 Hyundai Electronics Industries, Co., Ltd. Memory management unit with address translation function
JP2839060B2 (ja) * 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
US5493661A (en) * 1992-03-06 1996-02-20 International Business Machines Corporation Method and system for providing a program call to a dispatchable unit's base space
WO1993018461A1 (en) * 1992-03-09 1993-09-16 Auspex Systems, Inc. High-performance non-volatile ram protected write cache accelerator system
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation
US5752275A (en) * 1995-03-31 1998-05-12 Intel Corporation Translation look-aside buffer including a single page size translation unit
US5724604A (en) * 1995-08-02 1998-03-03 Motorola, Inc. Data processing system for accessing an external device and method therefor
US5802541A (en) * 1996-02-28 1998-09-01 Motorola, Inc. Method and apparatus in a data processing system for using chip selects to perform a memory management function
US5914730A (en) * 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US6249906B1 (en) * 1998-06-26 2001-06-19 International Business Machines Corp. Adaptive method and system to minimize the effect of long table walks
EP1471421A1 (en) * 2003-04-24 2004-10-27 STMicroelectronics Limited Speculative load instruction control
US7493516B2 (en) * 2005-08-29 2009-02-17 Searete Llc Hardware-error tolerant computing
US8181004B2 (en) * 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US20070050605A1 (en) * 2005-08-29 2007-03-01 Bran Ferren Freeze-dried ghost pages
US8255745B2 (en) * 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US20070050606A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Runtime-based optimization profile
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US8516300B2 (en) * 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7774558B2 (en) * 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US7644251B2 (en) * 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
US7376807B2 (en) * 2006-02-23 2008-05-20 Freescale Semiconductor, Inc. Data processing system having address translation bypass and method therefor
US7401201B2 (en) * 2006-04-28 2008-07-15 Freescale Semiconductor, Inc. Processor and method for altering address translation
US9697211B1 (en) * 2006-12-01 2017-07-04 Synopsys, Inc. Techniques for creating and using a hierarchical data structure
US8621154B1 (en) 2008-04-18 2013-12-31 Netapp, Inc. Flow based reply cache
US8161236B1 (en) 2008-04-23 2012-04-17 Netapp, Inc. Persistent reply cache integrated with file system
US8171227B1 (en) 2009-03-11 2012-05-01 Netapp, Inc. System and method for managing a flow based reply cache
TWI492051B (zh) * 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
KR20240065774A (ko) * 2022-11-07 2024-05-14 에스케이하이닉스 주식회사 네임스페이스의 순차성을 기초로 논리 주소를 변환하는 스토리지 장치 및 그 동작 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2230258A5 (ja) * 1973-05-16 1974-12-13 Honeywell Bull Soc Ind
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4173783A (en) * 1975-06-30 1979-11-06 Honeywell Information Systems, Inc. Method of accessing paged memory by an input-output unit
US4084226A (en) 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4455603A (en) * 1981-05-22 1984-06-19 Data General Corporation System for resolving pointers in a digital data processing system
US4468728A (en) * 1981-06-25 1984-08-28 At&T Bell Laboratories Data structure and search method for a data base management system
US4536837A (en) * 1982-05-25 1985-08-20 Elxsi Improved disk file allocation and mapping system utilizing cylinder control blocks and file map having unbalanced tree structure
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
US4644461A (en) * 1983-04-29 1987-02-17 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
US4584639A (en) * 1983-12-23 1986-04-22 Key Logic, Inc. Computer security system
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
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
US4730249A (en) * 1986-01-16 1988-03-08 International Business Machines Corporation Method to operate on large segments of data in a virtual memory data processing system
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4718008A (en) * 1986-01-16 1988-01-05 International Business Machines Corporation Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections

Also Published As

Publication number Publication date
EP0253824B1 (en) 1993-09-01
EP0253824A1 (en) 1988-01-27
WO1987004544A1 (en) 1987-07-30
EP0253824A4 (en) 1990-03-21
JPS63502224A (ja) 1988-08-25
US4763244A (en) 1988-08-09
KR940011668B1 (ko) 1994-12-23
US4800489A (en) 1989-01-24
DE3688978D1 (de) 1993-10-07
DE3688978T2 (de) 1994-01-20
KR880700972A (ko) 1988-04-13

Similar Documents

Publication Publication Date Title
EP0253824B1 (en) Paged memory management unit capable of selectively supporting multiple address spaces
US4890223A (en) Paged memory management unit which evaluates access permissions when creating translator
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US4763250A (en) Paged memory management unit having variable number of translation table levels
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US6591340B2 (en) Microprocessor having improved memory management unit and cache memory
US6092172A (en) Data processor and data processing system having two translation lookaside buffers
JP3237065B2 (ja) データ処理システム
KR100369923B1 (ko) 데이타처리장치
US6321314B1 (en) Method and apparatus for restricting memory access
US5003459A (en) Cache memory system
US5418927A (en) I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US4825412A (en) Lockout registers
JP2001147857A (ja) 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法
JPS60221851A (ja) メモリ・アクセス・コントローラを具えるデータ処理装置
JPH03220648A (ja) データ処理システム
JP2001202287A (ja) 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法
JPS6248258B2 (ja)
JP2930071B2 (ja) 情報処理装置およびプロセッサ
US4766537A (en) Paged memory management unit having stack change control register
US5287482A (en) Input/output cache
JP2001142780A (ja) 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法
JPH01108651A (ja) コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法
US6324635B1 (en) Method and apparatus for address paging emulation

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term