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

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

Info

Publication number
JPS63502224A
JPS63502224A JP61506059A JP50605986A JPS63502224A JP S63502224 A JPS63502224 A JP S63502224A JP 61506059 A JP61506059 A JP 61506059A JP 50605986 A JP50605986 A JP 50605986A JP S63502224 A JPS63502224 A JP S63502224A
Authority
JP
Japan
Prior art keywords
pointer
page
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.)
Granted
Application number
JP61506059A
Other languages
English (en)
Other versions
JP2567594B2 (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 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

    • 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
    • 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/1416Protection 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/145Protection 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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]
    • 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/1045Address 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)
  • Storage Device Security (AREA)

Abstract

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

Description

【発明の詳細な説明】 複数のアドレス空間を選択的にサポートできるページ式記憶装置管理ユニット 発明の背景 「仮想記憶装置」を備えたデータ処理システムの多くはページ式記憶装置管理ユ ニット(Paged Memory ManagementLlnlt) (P MMU)を使用して処理装置がアドレス・バスを経由して記憶装置に供給するア ドレスの論理部分を物理アドレスの対応する部分に変換している。しばしば、P MMUと関連して、最近使用したトランスレータ(translator)を格 納する複数の格納位置を備えている変換キャッシュ(translatIon  cache)が使用されている。処理装置(processor)が供給する各 論理アドレスに応じて、PMMUは対応する論理対物理トランスレータに関する 変換キャッシュを探す。見つからなければ、処理装置はアクセス・サイクルを中 断してシステム・バスを解放するよう指示し、PMMUが記憶装置に格納されて いる一組の変換テーブルにアクセスして正しい論理対物理アドレス・トランスレ ータを決定して変換キャッジ五に入れることができるようにする。続いて、処理 装置が中断したアクセス・サイクルを再開すると、PMMUは変換キャッシュ内 の新しいトランスレータを使用して適切な物理アドレスを決定し、記憶装置に送 る。その後、処理装置が同じ論理ページ内の論理アドレスに再びアドレスすると きは、PMMUは変換キャッシュ内のトランスレータを再使用する。
簡単な仮想記憶装置システムでは、「論理アドレス空間」が一つであり、処理装 置で現在実行されているプログラムのものがあるだけである。PMMUはただ一 組の変換テーブルにアクセスするだけであるから、そのプログラムによって行わ れるすべてのアクセスに同じ保護および変換の基準が適用される。しかしながら 、成るアプリケーションでは、そのプログラムで行われる一定の広い部類のアク セスに異なる保護(protections)または変換の基準を規定すること が望ましい。
成る仮想記憶装置システムでは、複数の分離した別個の「アドレス空間」が設け られていて、必要に応じて特定のプログラムに割当てられている。たとえば、米 国特許第4.430.705号では、処理装置は各論理アドレスとともに「アド レス空間番号」を発生して、PMMUがそのアドレス空間に割当てられたプログ ラムに適するような変換テーブルの特定の組にアクセスできるようにしている。
このように、異なる保護および/または変換の基準を各別個のアドレス空間に適 切に適用することができる。他方、各プログラムは典型的にはただ一つのアドレ ス空間しか割当てられないから、所与のプログラムにより行われているアクセス の形式に依存するような異なる保護あるいは変換の基準を適用する方法はやはり 存在しない。
他の仮想記憶装置システムでは、異なるアドレス空間がスーパーバイザ・プログ ラムおよびユーザ・プログラムに割当てられるばかりでなく、分離したアドレス 空間がプログラムのこれらのカテゴリーのそれぞれの命令およびデータに対して 設けられている。たとえば、米国特許第4.084,228号では、処理装置は 各論理アドレスとともに「タスク名」を発生してその論理アドレスを変換するの にどのアドレス空間を使用するか助言する。この機構によれば異なる保護および /または変換の基準を、そのようにする必要のあるアプリケーションに対して使 用することができるが、このレベルの制御を必要としないアプリケーションに対 しては、アドレス空間の割当て(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図に示すデータ処理システムlOでは、アドレス・バスが処理装置 14から来る論理アドレス・バス12と記憶装置18に行く物理アドレス・バス 16とに分かれており、ページ付き記憶装置管理ユニット(PMMU)20がバ ス12と18との間に挿入されている。一般に、PMMU20はデータ・バス2 2と適切なバス制御信号24とにも接続されるであろう。
第2図に示すPMMU20の好ましい形態では、完全に結合したアドレス変換キ ャッシュ(ATC)2Bが複数の、たとえば64の、最近使用した論理アドレス 対物理アドレス・トランスレータを格納している。アドレス変換中、ATC26 は64個のエントリーの各々に対して論理アドレス・バス12に乗っている論理 アドレスと機能コードとを同時に比較する。エントリーの一つが一致する(これ を[ヒツト(bit) Jという)と、A T C2Bは格納されている物理ア ドレスを外部の物理アドレス・バスに追い出す。例外条件が検出されなければ、 次にPMMU20は物理アドレス・ストローブ(PAS)を表明して記憶装置1 8に物理アドレスが有効であることを示す。
論理アドレスと物理アドレスに加えて、ATC26の各エントリーは外部データ ・キャッシュの使用を禁止するビットと一定の書込み保護機能をも含んでいる。
適切なときは、A T C2Bは選ばれたエントリーをロック(lock) し て対応するアドレスが必らずヒツトすることを保証することができる。A T  C2Bにはすべてのエントリーがロックされないようにする警告機構が設けられ ている。
キャッシュの利用を改善するために、PMMU20は、A T C2Bに同時に 複数のタスクのエントリーを格納する能力を備えている。これを行うため、AT C2Bは各キャッシュ・エントリーの論理アドレス部に付加的なビットを備えて いる。このフィールドは「タスク・エイリアス」と呼ばれ、ヒツトが生ずるかど うかを確認するのに使用される。
PMMU20はまたCPUルート・ポインタ(CRP)レジスタの最近使用され た値を含んでいるルート・ポインタ・テーブル(RPT)28をも含んでいる。
CPUルート・ポインタ・レジスタに新しい値がロードされると、RP72gに エントリーが作られ、タスク・エイリアス値が割当てられ、ATC2Bにその同 じタスク・エイリアスを備えているすべてのエントリーがフラッシュ(’flu sh)される。このタスク・エイリアス値は論理アドレスの拡張として使用され る。既にRPT28に存在するCRPレジスタにある値がロードされれば、タス ク・エイリアスの古い値が使用され、キャッシュはフラッシュされない。
A T C2Bが論理アドレス用トランスレータを含んでいなければ、マイクロ 機械(I!icromachine)3Gが、正しく変換するため記憶装置内の 変換テーブルを通してサーチすなわち「歩行コする間、実行ユニット32および 幾つかの関連制御論理34と協動する。ただし、サーチを開始する前に、バス・ インターフェース・ユニット(BIU)3Bはバス・サイクルを進行中に中断し 、バス12.1B、および22を調停する。
次にBIU3Bは現行バスφマスタに現行バス・サイクルを終結させ、バスを解 放し、その「バス・マズタ権」が戻ったとき、中断したサイクルを再試行するの を待つようにするバス制御信号を発生する。その後バスのマスク権を受取ると直 ちに、BIU3Bはマイクロ機械30にテーブル歩行を進めてもよいと合図する 。テーブル歩行が完了した後、マイクロ機械30はBI04Bにバスを解放する よう合図する。
好ましい形態では、PMMU20でサポートされる変換テーブルはトリー構造を 成している。変換テーブル・トリーのルート(root)は三つのルートやポイ ンタ・レジスタ、すなわち、CPU、スーパーバイザー、またはDMA、のいず れかによってポイント(指し示)される。トリーの上方レベルのテーブル・エン トリーは他のテーブルを指すポインタである。リーフ(leaf’)−テーブル のエントリーはベージ・フレーム番号である。変換テーブル内のすべてのアドレ スは物理アドレスである。
好ましい形態では、処理装置14はマイクロ機械30に利用できる一定の制御情 報を選択的に初期設定してテーブル歩行の幾つかの局面を決定する。たとえば、 テーブルの最初のルックアップは通常は機能コードによるが、これは特定の制御 ビットを用いて抑制することができる。他の制御フィールドは15個までの高次 の論理アドレス・ビットをテーブル歩行中無視すべきことを指定するのに利用す ることができる。一定の他の制御フィールドは、また、処理装置14が変換テー ブル内の、1から4までの、レベルの数と、各レベルにインデックスするのに使 用すべき、最大15個の論理アドレス・ビットの数とを指定することができるよ うに設けられている。
2、コプロセッサのインターフェース 好ましい形態では、処理装置14は主として、同時係属中の出願番号第831. 518号の出願に記載されているコプロセッサ・インターフェースを用いてPM MU20と通信する。
一般に、このインターフェースは、マイクロ機械30とBIU36とに設けられ るが、PMMU20のプログラミング・モデルにアクセスし、テーブル歩行機能 を制御し、仮想記憶装置の動作をサポートする。マイクロ機械30とBI03B とはまた同時係属中の出願番号第828.383号の出願に記載されているCA LLM/RTMインターフェースをも実現してモジュールのコールとリターン、 および関連のアクセス争レベルのチェックをサポートする。
コプロセッサのインターフェースに従って、処理装置14は実行ユニット32の 一組の「バス・し・ジスタ」から、また「バス・レジスタ」に対してバス読み書 きを行うことによに提示される論理アドレスと機能(function)コード とをデコードすることによって、バス・レジスタがアクセスされていることを確 認する。機能コードがCPU空間アクセス(0111)を示し、提示されたアド レスがBIU3Bにハード結線されているアドレスの−っである場合には、BI U3Bは対応するバス・レジスタにアクセスできるようにする。
この場合、物理アドレス・ストローブ(PAS)は出力されない。
PMMU20はそのバス・インターフェースに二組のバス・レジスタを含んでい る。すなわちコプロセッサ・インタフェースやバス争レジスタとアクセス参レベ ル制御バス・レジスタとである。コプロセッサ争インターフェースeバス・レジ スタは次のものから構成されている。
応答レジスタは、PMMU20が命令を完了するために行わなければならない機 能を行うように処理装置14に要求するため、PMMU20によって使用される 16ビツトのレジスタである。PMMU20は応答レジスタがアクセスされる時 を常に認めるであろう。アクセスは常に有効であり、プロトコル違反が生ずるこ とはあり得ない。
制御レジスタは、処理装置がこれにアクセスして、PMMU20の例外要求をア クノレツジしまたは違法の有効アドレス・フィールドを含んだPMMU20の命 令を中断する、16ビツトのレジスタである。処理装置14はマスクを制御レジ スタに書き込む。ビット1を有するマスクは以下に記すようにアクノレツジし、 未決定の例外事項をクリアする。ビット0を有するマスクはPMMU20に現在 の命令の処理を中断させ、アイドル・ダン(Idle−Done)の状態にリタ ーンさせる。
以下に記すようにPMMU20に貯蔵動作を開始させる16ビツトのレジスタで ある。PMMU20が供給するデータはPM M U 20の内部状態の18ビ ツトのフォーマット−ワードである。処理装置14は、PMMU20が貯蔵シー ケンスを始める準備が整ったことを示すまで、貯蔵レジスタからの読取りを行う であろう。
レスドア(restore) ・レジスタは、処理装置14により書込まれると 、PMMU20にどのような現行動作をも直ちに中止させ、以下に示すようなレ スドア動作を行うよう準備させる、16ビツトのレジスタである。処理装置14 が供給するデータはコプロセッサの内部状態の16ビツトのフォーマット・ワー ドである。フォーマット・ワードを検査してから、PMMU20はコードを応答 レジスタに設置することによりフォーマット・ワードが有効か否かを処理装置1 4に示す。加えて、PMMU20は、PMMU20がレスドア準備でビジー(b usy)であること、あるいはPMMU20が状態の残りを・転送するためレデ ィ (ready)であることを示すことができる。
ましい形態では構成されていない。
M M U 20の命令を開始する16ビツトのレジスタである。
条件レジスタは、処理装置14がPMMU20によって評価される条件を指定す る条件選択コードを書込む16ビツトのレジスタである。
オペランド・レジスタは、これを通して処理装置がPMMU20により要求され るデータ・オペランドを転送する32ビツトのレジスタである。
レジスタやセレクタは、これを用いてPMMU20が処理装置14に処理装置1 4の中の幾つかのレジスタのどれをPMMU20に転送すべきかを示すことがで きる16ビツトのレジスタである。
コマンド・アドレスφレジスタは、PMMU20の好ましい形態では構成されて いない。
オペランド・アドレス・レジスタは、PMMU20がそのような情報を要求する とき、オペランドのソース(source)アドレスまたはデスティネーション (destination)アドレスを送るために処理装置によって使用される 32ビツトのレジスタである。
好ましい形態では、PMMU20には常にコプロセッサ番号Oが割当てられる。
したがって、BIU36は、コプロセッサ・インターフェース・バス・レジスタ として、0111の機能コードを有する$ 00020000から$ 0002 001Pまでの論理アドレスを内部でデコードする。ただし、これらすべてのレ ジスタが同時に有効でなければならないというわけではないから、実行ユニット 32は必要に応じてこれらバス・レジスタの一つ以上を構成するのに使用する最 少組の物理的レジスタを含む。これらバス・レジスタの機能は同時係属中の出願 番号第631,518号の出願に詳述されている。
PMMU20は次のコプロセッサ命令を実行するのが望ましい。
PMOVEは、処理装置14で利用できるアドレッシング・モードを使用してP MMU20のレジスタに対してデータを出し入れする。動作は、関係するPMM U20レジスタの大きさにより、バイト、ワード、ロング・ワード、またはダブ ル・ロング・ワードである。
PVAL I Dは、オペランド論理アドレスのアクセス・レベル・ビットを検 査し、VALレジスタのアクセス・レベル・ビットに対して符号無しの比較を行 う。LAビットがVALビットより算術的に少なければ、この命令はアクセス・ レベル侵犯ベクトルを有する割込みを生ずる。
PTESTは、論理アドレスおよび関連の機能コードを得て、このアドレスを変 換するエントリーに対するATC26または変換テーブルをサーチする。サーチ の結果は状態レジスタで利用できる。随意に、使用した最後の記述子(desc riptor)のアドレスを戻すことができる。
PLOADは、論理アドレスおよび関連の機能コードを得て、変換テーブルをサ ーチし、ATC2Bにアドレスを変換するエントリーをロードする。
PFLUSHは、PMMU20のA T C2Bに幾つかの方法でフラッシュさ せる。すなわち、有効アドレス<(BB>によるフラッシュ、機能コードによる フラッシュ、またはくea〉と機能コードとの両者によるフラッシュ。
PFLUSHRは、CPUルート・ポインタ値に関連するA T C2e内のす べてのエントリのフラッシュを無効とする。評価された<ea〉はダブル・ロン グ・ワードを取出す(fetch)のに使用され、この値についてRPTをサー チし、その値がRPT内に見つがればATCがフラッシュする。
会は状態レジスタの次に示すビット、すなわち、BSL。
S、ASW、I、G、およびCについて試験を行う。上の条件の否定についても 試験することができる。
PSAVEは、コプロセッサの動作およびCALLM/RTMの機能を処理する PMMU20の内部状態をセーブすることによって、仮想記憶装置の能力をサポ ートする。
PRESTOREも、PSAVEで−tr−ブされりP M MU20の内部状 態をレスドアすることにより、仮想記憶装置の能力をサポートする。
PMMU20の命令はPVALID以外はすべて特権が与えられている。処理装 置14がユーザ状態になっているときに、他のどのようなPMMU20の命令で もそれを実行しようとすればコプロセッサの特権が除かれるであろう。
アクセス制御バス中レジスタは、PMMU20が同時係属中の出願番号節 82 6.383号の出願に記載されているCALLMおよびRTMの命令をサポート することを許す。
BIU3Bは、そのアクセスやレベル制御バスeレジスタとして、・0111の 機能コードとともに、$ 00010000から$ 0001005Fまでのア ドレスを内部でデコードする。アクセス制御バス・レジスタは次のものから構成 されている。
カレント・アクセス・レベル(CAL)は、読取られると、CALレジスタおよ びVALレジスタの値を戻す。書き込まれると、データが捨てられ、通常はバス ・サイクルが終結する。
アクセス・レベル状態(ALS)は、読取られると、モジュールのコールまたは リターンに関してどんな処置を取るべきかをCALLM命令およびRTM命令に 示すコードをリターンする。書込まれると、データが捨てられ、通常はバス・サ イクルが終結する。
増加アクセス・レベル(JAL)は、書込まれると、現行アクセス・レベルに対 して書込まれた値をPMMU20にチェックさせ、新しい値が妥当なアクセス・ レベルの変化を示すか否か確認させる。このチェックの結果はALSバス・レジ スタ内で利用可能となる。このバス・レジスタはCALLM命令によって使用さ れる。
アクセス・レベルに対して書込まれた値をPMMU20にチェックさせ、新しい 値が妥当なアクセス・レベルの変化を示すか否か確認させる。このチェックの結 果はALSバスOレジスタ内で利用可能となる。このバス拳レジスタはRTM命 令によって使用される。
記述子アドレス(DAI〜DA8)は、アドレス可能な場所であって、その各々 は8個の機能コードのそれぞれの一つを表わしている。一つが書込まれると、P MMU20は変換テーブルに対して論理アドレスと機能コードとをチェックする 。(PTEST命令と類似)。試験の結果はALSレジスタで利用できる。
3、PMMU20のレジスタ PMMU20の好ましい形態では、PMMU20の変換および保護の特徴を制御 または監視するのに使用される実行ユニット32に幾つかのレジスタを備えてお り、それは、CPUルート9ポインタ(CRP)レジスタ、スーパーバイザ・ル ート・ポインタ(SRP)レジスタ、DMAルート・ポインタ(DRP)レジス タ、キャッシュ状態(CS)レジスタ、変換制御(TC)レジスタ、アクセス制 御(AC)レジスタ、現行アクセス・レベル(CAL)レジスタ、有効アクセス ・レベル(VAL)レジスタ、スタック変更制御(SCC)レジスタ、および状 態(STATUS)レジスタである。
PMMU20のレジスタはすべてスーパーバイザ状態で動作をプログラムするた めにだけ直接アクセスできるが、一定のユーザ命令は限られた仕方で幾つかのレ ジスタにアクセスすることができる。CALLMおよびRTMの命令はCALお よびVALを読取り、変更することができる。
PVAL I D命令はVALレジスタの内容を使用して、割込みを生ずるか否 かを確認する。
CPUルート・ポインタ(CRP)は処理装置14の現在のユーザ・タスクに関 する変換テーブル・トリーのルートを指すポインタを含んでいる64ビツトのレ ジスタである。
タスクが変ると書込まれて新しいタスクに関′する変換トリーのルートを指すこ ととなる。このレジスタに書込むとキャッシュ状態レジスタも更新される。CP Uルート・ポインタはルート・ポインタ・テーブル(RP T)と相互に作用し 合ってA T C2Bの利用を改善する。
スーパーバイザ・ルート・ポインタ(SRP)はスーパーバイザ・アクセスを変 換するのに使用される変換テーブルのルートを指示する64ビツトのレジスタで ある。ただし、SRPは変換制御レジスタのSREビットがセットされている場 合にのみ使用される。SRPを再ロードするとスーパーバイザと記しであるA  T C2Bのエントリーすべてがフラッシュする。変換制御レジスタのSREビ ットがクリアされていれば、CRPは処理装置が開始したテーブル歩行のすべて に使用される。
DMAルート・ポインタ(DRP)は代りの論理バス・マスクがPMMU20を 通して変換しているとき使用される変換テーブルのルートを指示する64ビツト のレジスタである。代りのバス・マスクが変換を始めるときロードされるA T  C2Bのエントリーは、そのように名札付けされるであろう。このレジスタに 再ロードするとDRPを使用して形成されたA T C2Bのエントリーすべて がフラッシュする。
キャッシュ状a(C3)レジスタは次のフォーマットを有する16ビツトのレジ スタである。
Fは、TAフィールド内に示すタスク・エイリアス値を有するエントリーが、P MMU20のA T C2Bからフラッシュされたかを示す。
0−フラッシュされない。
1−フラッシュされた。
LWは一つを除くすべてのエントリーがA T C2Bにロックされていること を示すロック警告ビットである。他のものが除かれるまで、付加的なエントリー がA T C2Bにロックされることはないであろう。
0・−通常動作 1−ATC2Bの63個のエントリーがロックされている。
TAは内部タスク・エイリアスの現在値を示す。
一般に、外部論理データ・キャッシュをメンテナンスする助けとしてC8が設け られている。PMMU20は一つ以上のタスクに関するエントリーをA T C 2Bに保持しており、その内部データの幾つかは他のキャッシュにも役に立つ。
このレジスタはCRPレジスタが書込まれると更新される。
その内容はRPTのサーチの結果を反映している。このレジスタはPMOVEの 命令を用いて読取ることができる。
変換制御(T C)レジスタは次のフォーマットを有する32ビツトのレジスタ である。
E(イネーブル)は、アドレス変換を可能にしたり禁止にしたりする。
0 禁止 禁止のときは、入力論理アドレスは物理アドレスとして出力される。リセットす ればこのビットはクリアされる。
SRE (スーパーバイザ・ルート・ポインタ・イネーブル)は、スーパーバイ ザφレファレンスがSRPを用いて変換されているか否かを示す。
0 スーパーバイザ・ルート・ポインタ使用禁止1 スーパーバイザ・ルート・ ポインタ使用可能SRPが使用禁止されれば、スーパーバイザ変換に(CRP) が使用される。
FCL (機能コード・ルックアップ)は変換トリーの最上レベルφテーブルを 、CRPまたはSRPを使用するとき、機能コードを用いて指示すべきか否かを 示す。
0 機能コード・ルックアップ禁止 1 機能コード・ルックアップ可能 機能コードのルックアップが抑制されれば、インデックスとして論理アドレスか らのビットを用いて最初のルックアップが行われる。機能コードのルックアップ が使用可能であれば、変換に使用するルート・ポインタのLIMITのフィール ドが無視される。機能コードのルックアップは代りのバス・マスクに関する変換 にDMAルート争ポインタを使用するとき必らず行われる。
PS(ページ・サイズ)は、PMMU20がサポートしている現在のページの大 きさを指す。
1000 258バイト 1001 512バイト 1010 1にバイト 1011 2にバイト 1100 4にバイト 1101 8にバイト 1110 16にバイト 1111 32にバイト ページ・サイズ・ビット3は常に1であると仮定する。
このフィールドのビット3の0の値は後の拡張のため取っておく。このフィール ドのビット3にPMOVE命令により0を書込むと構成除外の信号が発生する。
Is(初期シフト)は、テーブル歩行中にどれだけの上位論理アドレス・ビット がPMMU20により無視されたかを確認する。このフィールドの値は論理アド レスから捨てるビットの数を表わす0から15までの整数であり、ビット31か ら始まる。これによりPMMU20が17から32ビツトまとができる。
TIχ(テーブル・インデックスχ)は、各レベルでテーブルへのインデックス として使用される論理アドレスのビット数を規定する。好ましい形態では、テー ブル・インデックスが4個設けられている。論理アドレス・ビットを使用する最 初のルックアップ(これは機能コードによるルックアップが抑制されていない場 合には2番目のルックアップになる)はTIA、第2のTIBなどを使用する。
フィールドの値はインデックスとして論理アドレスから取られるビット数を表わ す0から15までの符号の付かない整数である。Tlχフィールドの0の値はこ の変換にそれ以上のテーブルを使用しないことを意味している。
一般に、TCはページの大きさをセットする制御ビットと、変換トリー内のレベ ルの数と、各レベルでのテーブルの大きさとを含む。IS(初期シフト)フィー ルドはテーブル歩行前にPMMU20によって始めに捨てられる上位論理アドレ ス拳ビットの数を制御し、PMMU20が32ビツトより少い論理アドレスでシ ステムに容易に適合することができるようにする。四つのTlχフィールド、T IA (テーブル・インデックスA)、TIB(テーブル・インデックスB)、 Tic(テーブル・インデックスC)、およびTID (テーブル・インデック スD)はルックアップの各レベルで変換テーブルへインデックスするのに使用す る論理アドレスのビット数を制御する。PS(ページ・サイズ)フィー・ルドは ページを置換するとき通過させる下位論理アドレス・ビットの数を制御すること によりページ・サイズを間接的に規定する。好ましい形態では各論理アドレスは 32ビツトで構成されているから、始めにシフトされたビット数と各テーブルへ のインデックスに使用したビット数とページ置換ビット数とを加え合せたものは アドレス変換を正しく行う場合32に等しくなければならない。したがって、T Cが書き込まれれば必らず、第3図に示すように、PMMU20がIS、Tlχ 、およびpsの値に関して一貫性チェックを行い、和が32に等しくなければ処 理装置14に構成エラーの信号を出す。必要な場合には、一つ以上のTIχフィ ールドを0にすることができる。ただし、このような場合には、それに続くすべ てのTIχフィールドも0でなければならない。TCに書込めばA T C2B のフラッシュも生ずる。
現行アクセスeレベル(CAL)レジスタは現行モジュールのコード化アクセス ・レベルを含んでいる。このレジスタの幅は8ビツトであるが、好ましい形態で は上位3ビツトだけを実際に使用している。使用していないビットは0として読 む。このレジスタはCALLMおよびRTMの命令により自動的にロードされる 。このレジスタはまたPMOVE命令でもロードされる。
確認アクセス中レベル(VAL)レジスタは現行モジュールのコール元(cal ler)のアクセス・レベルを含んでいる。
このレジスタの幅は8ビツトであるが、好ましい形態では上位3ビツトだけを実 際に使用している。使用しないビットは0として読む。このレジスタはCALL M命令により、CA Lレジスタの内容が自動的にロードされ、RTM命令によ りスタック・フレームからリロードされる。このレジスタはPVALID命令に よりパラメータの確認にも使用される。またPMOVE命令をロードすることも できる。
スタック変更制御(SCC)レジスタはCALLM命令中にスタック変更が生じ たか否かを確認する8ビツトのレジスタである。
アクセス制御(A C)レジスタは次のフォーマットを有する16ビツトのレジ スタである。
MC(モジュール制御)は、セットされれば、モジュール動作を使用可能とし、 クリアされれば、モジュールは使用禁止となり、IALおよびDALへ書き込ん でもCALは変らず、ALSから読取れば返っ上米るのはすべて違法コードであ る。このコードはCALLMおよびRTMの命令をすべて割込ませる。また、P VALID命令は常に除外される。
0 使用禁止 1 使用可能 ALS (アクセス・レベル制御)は、アクセス・レベル情報として使用される 上位論理アドレス・ビットの数とアクセス・レベルが使用可能であるか否かとを 確認する。このフィールドは次のようにコード化される。
00 アドレス・ビット無し:アクセス参レベル使用禁止 Ol アドレスやビット1個:アクセス−レベル8個、10 アドレス・ビット 2個:アクセス・レベル4個、各2“30バイト 11 アドレス・ビット3個:アクセス−レベル8個、GS(ゲート・サイズ) は、ゲートの大きさを、したがりて、ゲートが存在することができる境界を示す 。このフィールドは次のようにコード化される。
00 有効なゲート無し Ol ゲートは16バイトである 10 ゲートは32バイトである ll ゲートは64バイトである 一般に、ACレジスタはPMMU20がサポートする各種アクセス制御を構成す るのに使用される。このレジスタは、アクセス・レベルを使用可能とするか否か 、およびどれだけの上位アドレス・ビットにアクセスφレベル情報を入れるか( 最大3ビツトまで)を制御し、またゲートの大きさ、したがってゲートが存在で きる境界を指定する。
状態(STATUS)レジスタは、次のフォーマットを有する18ビツトのレジ スタである。
B(バス・エラー)は、テーブル歩行中にPMMU20にバス・エラーが返され たときセットされる。
L(制限侵犯)は、インデックスが試験時に限界を超過したときセットされ、そ の他の場合にはクリアされる。
S(スーパーバイザ侵犯)は、スーパーバイザ侵犯が検出されたときセットされ 、その他の場合にはクリアされる。
A(アクセス・レベル侵犯)は、試験されるアクセスがRALが読取られた場合 これを超過しているか、あるいはWALまたはRALが書込まれた場合これを超 過していればセットされ、その他の場合にはクリアされる。
W(書込み保護)は、アドレスが書込み可能でなければセットされ、その他の場 合にはクリアされる。
■ (無効)は、アドレスがテーブル内で変換を行わない場合にセットされ、そ の他の場合にはクリアされる。
M(修正ずみ)は、アドレスがキャッシュ内で見つかり、Mビットのセットを有 している場合にセットされる。
G(ゲート)は、アドレスが有効ゲート・アドレスであればセットされる。
Cは、アドレスが全体的に分割可能であればセットされる。
N(数)は、アドレスの変換に使用するテーブルの数にセットされる。
一般に、5TATUSはPMMU20の状態に関する情報を含んでおり、PTE ST命令の影響を受けるだけである。
ただし、このビットは次のような仕方で相互に作用し合う。
Bがセットされれば、■がセットされてL%S、A、G。
およびCがクリアされる。あるいはLがセットされればIがセットされてSSA 、G、およびCがクリアされる。その他の場合には、セットされると、代表的に は次の意味を持つ。
B テーブル内の不良ポインタ/主記憶装置故障し タスク/スタック拡張要求 によるアドレッシング・エラー。
S ユーザによるスーパーバイザ・コードの実行の試行。
A アクセス会レベルの超過の試行。
W 保護されている記憶装置への書込みの試行。
! ページ不良 4、アクセス保護 PMMU20はコードおよびデータを無断アクセスから保護する機構、異なるア クセス・レベルで動作しているコードに記憶装置に対する異なる特権を与える機 構、およびアクセス・レベルの変化を制御する機構を備えている。一般に、アク セス番レベルはユーザータスクの異なる部分に論理アドレス空間に対する異なる 特権を与える手段を供給する。好ましい形態では、PMMU20は0.2.4、 または8個のアクセス・レベルをサポートするであろう。これはACレジスタの ALCフィールドにより制御される。このフィールドにセットされる値は次の効 果を有する。
00 アクセス−レベル無し。CALに対するバス番すイクル特権チェック無し 。CALLM命令によるスタック変更の要求無し。
Ol アクセス・レベル2個。論理アドレスのビット31、CALのビット7、 およびVALのビット7はアクセス・レベル・ビットである。SCCレジスタの ビット0を使用する。
10 アクセスΦレベル4個。論理アドレスのビット31〜30SCALのビッ ト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信号を発することによりバス・サイクル を終結する。スーパーバイザ空間への参照である場合には、このチェックは行わ れない。タスクは、使用することを認められていないアドレスや、ATC2Bの 中により高度な特権ルーチンから取り残されている有効な変換が存在することが あるアドレスを発生することができることに注意する。チェックによりこれらの 場合の保護が保証される。
PMMU20はモジュールのコール(CALLM)命令およびモジュールからの リターン(RTM)命令によるモジュール呼出しのサポートを行う。モジュール 呼出しは単に、モジュールが動作アクセスを行うための手段であり、あるいはこ の場合には、記憶装置内のモジュールにアクセスする試みである。CALLM命 令はモジュール記述子に参照を付ける。この記述子は関連モジュール内へのエン トリーに関する制御情報を含んでいる。CALLM命令はモジュールウスタック ・フレームを作り、そのフレーム内のコール元モジュールの状態を記憶する。R TM命令は、コール元モジュールにリターンする前に、コール元モジュールの状 態をモジュールウスタック・フレームから回復する。モジュール記述子とモジュ ールウスタック・フレームとのフォーマットについては同時係属中の出願番号節 828.383号の出願に記してあり、これをここに参考のため取入れである。
CALLM命令の実行中、処理装置14はコール先(コールされた)モジュール のアクセス帝レベルをモジュール記述子からめ、後にRTM命令の実行中にコー ル元モジュールのアクセス・レベルをモジュール・スタックから回復する。処理 装置14は一般的にはこの制御情報を解釈しないが、アクセス制御を変更しなけ ればならないときはPMMU20と通信し、PMMU20に頼って変更が合法的 であることを確認する。本発明では、この通信は幅が限定されたバス・インター フェースによって行われる。
一般に、モジュール機構はユーザ参照とスーパーバイザ参照とを区別することで 与えられるよりもより細かなレベルのアクセス制御をサポートする。モジュール 機構はモジュールに限られたアクセス権を与えて、より大きなアクセス権を有す るモジュールをコールさせる。PMMU2Gの助けにより、処理装置14はコー ル元モジュールがそのアクセス権を増大するのを許すことを確認することができ 、コール元モジュールが与えられていないアクセス権を得ようとする試みを検出 することができる。
アクセス・レベル変更モジュールの記述子またはフレームをレファレンスするC ALLMまたはRTMの命令を実行する間、処理装置14はCPU空間のアクセ スを経由してPMMU20のアクセス制御論理と通信する。CALLMまたはR TMの命令を実行中にこれらCPU空間のアクセスのどれかにバス・エラーが発 生すれば、処理装置14はフォーマット・エラー除外の処置を取るであろう。
動作時、処理装置14は現行アクセス・レベル(CAL)バス・レジスタを読取 ることにより現行モジュールのアクセス権を確認することができる。処理装置1 4は、増加アクセス・レベル(IAL)バス・レジスタを使用して、アクセス権 の増大を要求する。処理装置14は、減少アクセス・レベル(DAL)バス・レ ジスタを使用して、アクセス権の縮小を要求する。これら三つのバス・レジスタ のフォーマットは処理装置14に対しては規定されていないが、処理装置14は CALバスバスジスタから読取った情報がIALまたはDALバス・レジスタに 有意義に書込むことができると仮定する。アクセス・レベル状態(ALS)バス ・レジスタにより、処理装置14は目的とするアクセス・レベルの変化の合法性 についてPMMU20に次のように問いただすことができる。
数 値 合法性 処 理 装 置 14 の 行 動00 無 効 フォーマッ ト・エラー O1有 効 アクセス権の変化無し 03 有 効 変更アクセス権のみ 07 有 効 変更アクセス権とスタックポインタその他 未規定 未規定 処理装置14はCALLM中、記述子アドレス(DA)バス・レジスタを使用し て、モジュール記述子のアドレスと通信する。これによりPMMU20はアドレ スがその記述子に対して有効なアドレスであることを確認することができる。ま たこれによってモジュールがそのアクセス権を不正に増大するアクセス・レベル 変更記述子を作り出すことがないようになる。
一般にCALLM命令はアクセス・レベル変更モジュールとアクセス中レベル不 変更モジュールとの両方の呼出しを行うのに使用することができる。後者の形式 のモジュール呼出しでは、処理装置14は単に活動中のシステム・スタックの最 上部にモジュール・スタックφフレームを作り、これを一杯にする。コール元モ ジュールのコンディションコードはフレームの適切な領域に取っである。一定の 制御情報により、処理装置14はコール元モジュールのスタック・ポインタを貯 えることができたりできなかったりする。
ただし処理装置14は、コールされたモジュールの実行を始める前に、モジュー ル・エントリー・ワードを使用してモジュール・データ領域ポインタを貯え、ロ ードする。
アクセス・レベル変更形式のモジュール記述子の場合には、処理装置14はまず PMMU20から現行アクセス・レベルをめなければならない。処理装置はまた コール元モジュールがスタック・ポインタの現在値によって指示されている領域 から読取る権利を持っていることを確認する。次の処理装置は確認のため記述子 アドレスと新しいアクセス・レベルとをPMMU20に送゛る。次に処理装置1 4はアクセス状態を読取って、要求されたアクセス・レベルの変更の妥当性に関 してPMMU20の判断をめる。PMMU20がアクセス・レベルの変更が承諾 されるべきでないことを確認すると、アクセス状態はOとなり、処理装置14は フォーマット・エラー除外を行う。処理装置14の可視レジスタは変更されず、 PMMU20が現行アクセス・レベルを変更することもないであろう。PMMU 20が変更が承認された゛ことを確認すると、PMMU20は現行アクセス・レ ベルを変更し、処理装置14を進行させる。アクセス状態がスタック・ポインタ の変更を必要とする場合には、処理装置14はモジュール記述子から新しい数値 をロードし、コール元モジュールのスタックから新しいスタックにアーギュメン トを写し取る。最後に、処理装置14は新しいスタックの最上部にモジュール・ スタック・フレームを作り、これを一杯にする。コール元モジュールのコンディ ション・コードはそのフレームの妥当なフィールドにセーブされる。コールされ たモジュールの実行はアクセス・レベル不変更式モジュール記述子の場合と同様 に始まる。
RTM命令はモジュールからリターンするのに使用される。アクセス中レベル不 変更式モジュール・スタック拳フレームでは、処理装置14はコンディション・ コード、プログラム・カウンタ、およびモジュール・データ領域ポインタ・レジ スタをフレームから再ロードする。次にフレームはスタックの最上部から取除か れ、スタック−ポインタにアーギュメントのカウントが加算され、実行がコール 元モジュールにリターンする。
アクセスφレベル変更形式のモジュール・スタック拳フレームでは、処理装置1 4はアクセス・レベル、コンディション・コード、プログラム・カウンタ、セー ブされたモジュール・データ領域、およびセーブされたスタック・ポインタをフ レームから読出す。古いアクセス・レベルは確認のためPMMU20に書込まれ る。次に処理装置14はアクセス状態を読取って要求されたアクセス拳レベルの 変更の妥当性に関してPMMU20の判断をめる。PMMU20がアクセス・レ ベルの変更が承認されないことを確認すると、アクセス状態は0であり、処理装 置14はフォーマット・エラー除外を行う。処理装置14の可視レジスタは変更 されず、PMMU20が現行アクセス・レベルを変更することもないであろう。
PMMU20が変更が承認されたことを確認すると、PMMU20は現行アクセ ス・レベルを変更し、処理装置14を進行させる。次に処理装置14はモジュー ル・スタック拳フレームから対応するレジスタに数値をロードし、アーギュメン トのカウントを新しいスタック・ポインタの値に加算し、コール元モジュールに リターンする。
コールされたモジュールがモジュール・データ・ポインタをレジスタにロードし たくなければ、RTM命令ワードはそのように指示することができ、ロードされ た値が正しいスタック・ポインタ値の上に重ねられるであろう。
CALLM命令の実行中、処理装置14とPMMU20とは全く別個の応答性を 持っている。最初、処理装置14はCALレジスタ内の現在値をCALバス・レ ジスタを経由して検索し、これを後の使用のためモジュール・スタック拳フレー ムに格納しなければならない。好ましい形態では、PMMU20はCALレジス タのビット7〜5をCALバスバスジスタのビット7〜5:こ戻し、vALレジ スタのビット7〜5をCALバス・レジスタのビット3〜1に戻す。
次に、処理装置14はコールされたモジュールのモジュール記述子のアドレスを 8個のDAババスレジスタの中の適切な一つに書込まなければならない。数値が DAババスレジスタの一つに書込まれると、DAババスレジスタの内容とDAバ バスレジスタに関連する機能コードとから構成されている論理アドレスが変換テ ーブルおよび/または変換キャッシュから探される。通常キャッシュのエントリ ーは、CALLM命令がコールされたモジュールの最初のワードを既に読出して 形式およびアクセス・レベルの情報を得ているので、そのアドレスの位置にある はずである。ただし、キャッシュ・エントリーがその位置に無ければ、テーブル ・サーチが行われ、エントリーがキャッシュに挿入される。
変換をテーブル内に設置することができなければ、そのコールは却下される。ア ドレスはそれが入っているページがゲートを含むことを許可されて(記述子にG ビットの組を備えて)いれば、またアドレスが0モジユロのゲートの大きさに等 しければ(ゲートの大きさはACレジスタのGS欄によって決まる)、ゲートに 対して有効である。記述子チェックの成功あるいは失敗はアクセス状態値を戻す 際に使用するためPMMU20によって保存される。
次に、処理装置14は新しいアクセス・レベルをJALバス・レジスタに書込む ことによりPMMU20にCALレジスタを更新することを要求する。好ましい 形態では、PMMU20はIALバス・レジスタに書込まれた値をCALレジス タのアクセス・レベル・ビットと(符号無しで)比較する。IALがCALより 大きければ、アクセス拳レベル・チェックは失敗である。IALがCALより小 さく、コールされたモジュールのモジュール記述子を含んでいるページのゲート ・ビットがセットされていれば、変更が許容される。IALがCALに等しけれ ば、アクセス・レベル・チェックは合格である。CALはVALに写し取られ、 IALはCALに設置される。アクセス争レベルの変更の成功あるいは失敗はア クセス状態値を戻す際に使用するためPMMU20により保存される。
スタック変更に関する情報はSCCレジスタに入っている。アクセス権が具合よ く増大したとき、現行アクセス・レベルより少く、新しいアクセス・レベルに等 しいか大きいビット位置数を有するSCCレジスタ内のビットが検査される。こ れらビットのいずれかが0であれば、スタック変更が指示される。スタック変更 の必要性があるか無いかはアクセス状態値を戻す際に使用するため内部で保存さ れる。
CALLMのシーケンスで処理装置14が行う最後の行動はPMMU20のAL Sバス・レジスタを読取ってアクセス状態を得ることである。戻された値は上に 規定したとうりである。
RTM命令により、処理装置14は古い(セーブされていた)アクセス争レベル をPMMU20のDALバスバスジスタに書込む。次にアクセス・レベル変更の 状態をチェックする。数値がDALバス・レジスタに書込まれると、PMMU2 0はアクセス・レベル・ビットをCALレジスタのアクセス・レベル・ビットと (符号抜きで)比較する。
本発明の一実施例では、DALのフィールドがCALのフィールドより大きいか または等しければ、変更が許容され、DALのビット7〜5がCALに置がれ、 DALのビット3〜1がVALに置かれる。DALのフィールドがCALのフィ ールドより少ければ、変更は許容されない。アクセス・レベル変更の成功あるい は失敗はアクセス状態値を戻す際に使用するためPMMU20により保存される 。
処理装置14がRTMシーケンスで行う最後の行動はPMMU20のA L S  /<ス・レジスタを読取ってアクセス状態を得ることである。戻される値は上 に規定したとうりである。
好ましい形態では、PMMU20は他にアクセス保護を行っている。たとえば、 書込み保護の指示は変換トリーの各レベルに格納されている。成るテーブルが成 るレベルで書込み保護(WP)ビットのセットを備えていれば、ページはこの属 性を備えていると考えられる。
ページの有効な書込み保護はテーブル歩行中に取出された各記述子のWPビット の論理和を取り、アドレスの読み書きのアクセス・レベル・ビットをRALおよ びWALのフィールドに対してチェックすればめられる(アクセス・レベルが使 用可能の場合)。テーブル歩行の終りに、ページが効果的に書込み保護されてい れば、エントリーはWPビットのセットを有する記述子キャッシュ内の論理アド レスに対して行われる。
ページは、対応するビットがテーブルの最低レベルにセットされていれば、ロッ クするか、ゲートだけを含むことができる。修正ずみあるいはキャッシュ禁止の 指示もテーブルの最低レベルだけに存在する。
ページに関連する権利についてもっと細かく制御するには、長い記述子を使用し てユーザ/スーパーバイザに基づくアクセスを制限することができ、読出しアク セスおよび書込みアクセスに対する8レベルの特権を利用して効率的な階層的保 護機構を設けることができる。テーブル歩行プロセス中にアクセス権の侵犯が検 出されれば、エントリーは到来する論理アドレスから形成され、BERRまたは WPのビットがそれぞれ読取りアクセス侵犯または書込みアクセス侵犯に対して A T C2Bのエントリーにセットされる。この論理アドレスに引続きアクセ スすれば、ヒツトがエントリーのBERRビット・セットを有するA T C2 Bに生じた場合、あるいはWPビット・セットを用いて書込みをしようとした場 合に、BERRビンが表明されるであろう。
5、変換テーブル れでいる。このトリー構造は、完全なトリーの一部分だけが存在すればよいから 、はとんどのプログラムに対し組立てる必要のあるページ・テーブルの大きさは 小さくなる。
ポインタやテーブルおよびページ・テーブルという2種類の変換テーブルが存在 する。ポインタ・テーブルは変換テーブル・トリーの分枝を形成し、一方ページ ・テーブルは葉(leaf)である。テーブルは記述子から構成される。フォー マットはページ記述子およびポインタ記述子に対して同様であり、アドレス−フ ィールドと制御/状態フィールドとから構成される。一般に、ページ記述子のア ドレス・フィールドはページの論理アドレス対物理アドレスのマツピングを指定 するのに使用され、ポインタ記述子のアドレス・フィールドはトリー内の他の変 換テーブルを指すのに使用される。
ルート・ポインタ記述子は変換トリーのルートを指示するのに使用される。この 種の記述子はルート・ポインタ・レジスタでのみ使用される。変換トリーはCP Uルート・ポインタ(CRP)記述子がコンテキスト切替えで変るか否かに依存 して、タスク別に作ることもできるし、タスク間に分割することもできる。加え て、交替バス・マスクについて行われる変換はDMAルート・ポインタ(DRP )により指示される変換トリーを使用する。必要ならば、スーパーバイザ争アク セスはスーパーバイザ争ルート・ポインタ(SRP)を利用することによりCR Pが指示する以外の別の変換トリーを使用して変換することができる。
各ルート・ポインタのフォーマットは次のとうりである。
15〜13 12〜10 9 8 7 6 5 .4 3 2無効ルート・ポイ ンタ記述子の場合には、変換を行なうことが不可能であり、それ故レジスタをロ ードしようとすると、構成エラー除外の信号が発せられる。ルート・ポインタが ページ記述子である場合には、論理アドレスが物理アドレスとしてPMMU20 を通過するであろう。妥当に短いおよび妥当に長い形式は有効ルート・ポインタ を示し、テーブル内の次のレベルの記述子の長さをも示す。DRPを使用するの は常に最初のレベルのテーブルの機能コードによるルックアップを意味し、L/ UビットおよびLIMITのフィールドは、機能コードによるルックアップがあ るルート・ポインタを用いて行なわれるときは、使用されない。
PMMU20は幾つかの異なる形式のテーブル記述子を指定するようになってい る。記述子はすべて共通に一つの要素を備えている。すべての形式の、最初のロ ング・ワードのビット0と1とは記述子のDTフィールドである。これらのビッ トの数値は記述子の他のビットの意味に影響を与記述子のフォーマットは三つの 事項から決まる。前の記述子のDTフィールドの数値と、記述子のDTフィール ドの数値と、テーブル・サーチの状態とである。前のDTフィールドの数値は現 在の記述子が長い形か短い形かを決める。他の二つの項目は次表にしたがってそ の形式を決定する。
短いポインタ記述子は次のフォーマットを有する。
15〜13 12〜10 9 8 7 6 5 4 a 2好ましい形態では、 二つの形式のページ記述子がある。
ページ・テーブルでだけ発生する形式1と、ポインタ・テーブルでだけ発生する 形式2とである。したがって、第4図に示すように、ポインタ・テーブルに形式 2のページ記述子が存在することはTIフィールドをすべて使い切る前にテーブ ル・サーチが終ることになることを示している。
たとえそれ以上のテーブル・エントリーを取出さなくても、シーケンス内の次の TIフィールドが制限フィールドと比較される。チェックが不成功であれば、変 換キャッシュ・エントリが論理アドレスに対してBERRビットのセットを用い て作られる。
形式1の類ページ記述子のフォーマットは次のとうりである。
形式1の長ページ記述子のフォーマットは次のとうりである。
15〜13 12〜10 9 8 7 6 5 ・4 3 2形式2の類ページ 記述子は次のフォーマットを有している。
形式2の長ページ記述子のフォーマットは次のようになっている。
ここで5TATUSは、次のようになっている。
無効記述子はテーブル内にページをはみ出したデータあるいは割当てられていな いデータの場所を保持している。
短無効記述子のフォーマットは次のとうりである。
長無効記述子のフォーマットは次のとうりである。
間接記述子にはルックアップのレベルが別に付加されており、そのため個々のペ ージをページに対する唯1組の沿革ビットを用いて各タスクに分配することがで きる。
短間接記述子のフォーマットは次のとうりである。
各種の記述子で、ビットとフィールドとは次のように定義されている。
L/U (下部/上部)は、記憶装置のこの区域のページが利用可能な最下部の アドレスまたは最上部のアドレスを占めているかどうかを示す。L/UはLIM ITフィールドと使用中の論理アドレスの部分とを比較し、次のようにテーブル にインデックスを付ける。L/U−0ならば、Lr i IVI 11ノイール トはインデックス上で上部(符号無し)限界を含んでおり、したがってインデッ クスはく一限界でなければならない。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−〉Oま たはスーパーバイザ110 アクセス拳レベル6−〉0またはスーパーバイザ1 11 アクセス拳レベル7−〉0またはスーパーバイザコードの(符号無しで) 小さいアクセス拳レベルはコードの大きい(符号無し)アクセス・レベルより大 きな特権を与えられている。100のコード化には記述子またはページにアクセ スするのに101をコード化するよりも多い特権が必要である。記述子がロード され、アクセスがユーザ空間アクセスであるときは、ACレジスタのALCフィ ールドによって指示された論理アドレスの上位ビットの数がトリー歩行の各長記 述子のRALフィールドと比較される。
アクセスを否認すべきであるということを示すRALが存在すれば、記述子が形 成されA T C2BにそのBERRビット・セットがロードされる。
WAL(書込みアクセス・レベル)は、論理アドレス空間の区域に書込むのに必 要なアクセス・レベルを示す。これは次のようにコード化される。
000 アクセス・レベル0またはスーパーバイザ001 アクセス・レベル1 −〉0またはスーパーバイザ010 アクセス・レベル2−〉0またはスーパー バイザ011 アクセス・レベル3−〉0またはスーパーバイザ100 アクセ ス拳レベル4−〉0またはスーパーバイザ101 アクセス・レベル5−〉0ま たはスーパーバイザ110 アクセス・レベル6−〉0またはスーパーバイザ1 11 アクセス・レベル7−〉0またはスーパーバイザ記連子がロードされ、ア クセスがユーザ空間書込みアクセスであるときは、ACレジスタのALCフィー ルドにより指示された論理アドレスの上部ビットの数がテーブル歩行に使用され る各長記述子のWALフィールドと比較さ軌る。このアドレスについて書込みが 許可されないことを示すWALが存在すれば、記述子にWPビット・セットがロ ードされる。
S(スーパーバイザ)はアドレスが使用可能な機能コードにより制限されている か否かを指示する。
0 任意のアドレス空間参照 1 スーパーバイザ空間参照に限る。
SG(全体的に分配された)は、論理アドレス空間のこの区域がシステム内のす べてのタスクに割当てられているントリーが一つだけ作られ、−すべてのタスク がこれを分は持つであろう。このビットは次のように規定される。
0 割当てられていない 1 割当てられている。
G(ゲート)は、ページがゲートを含むことができる場合にセットされ、その他 の場合にはクリアされる。
CI(キャッシュ禁止)は、システム内でデータ・キャッシュとともに、キャッ シュすべきでないページに印を付けるのに使用し、データ陳腐化の問題を回避す る。
PMMU20は変換中このビットを外部システムに提示する。
L(ロック)は、記述子をA T C2B内にロックし、これを交換に利用でき ないようにする。A T C2Bのエントリーは記述子のロックを解除するには フラッシュしなければならない。ただし、ルート・ポインタ・テーブルはロック した記述子と対話することができる。 ′M(修正ずみ)は、ページが書き込ま れている場合にセットされ、その他の場合はクリアされる。PMMU20はMが 先にクリアされていてこの記述子のページに書込みが生じた場合にMをセットす る。このビットはPMMU20では決してクリアされない。
U(使用ずみ)は、記述子のアドレス拳フィールドがページまたはテーブルにア クセスするのに使用されてしまりこのビットは、先にクリアされていて変換プロ セス期間中記述子のアドレス・フィールドがPMMU20によって使用される場 合にPMMU20によってセットされる。このビットはPMMU20によっては 決してクリアされない。
WP (書込み保護)は、ページが絶対的に書込み保護されている場合にセット され、その他の場合はクリアされる。
記述子はそのWPビット・セットで形成され、ATC2Bにロードされる。エン トリーは上述のWALフィールドにより条件付きで書込み保護することができる 。書込み保護されているページに書込もうとすればBERRを表明することによ りPMMU20が変換を放棄する。
DT(記述子形式)は、記述子の形式を示す。これは形式に関係なく記述子の同 じ位置に置かれる。これは先のDTフィールドの値およびテーブルサーチの状態 とともに記述子フォーマットを決定するのに使用される。
00 無効:このDT値を有する記述子は常に無効である。これはページまたは テーブルが存在していない(ページからはみ出している)か論理アドレスが境界 外にあることを示す。無効記述子に遭遇すると、変換キャッシュ・エントリーが BERRビット・セットを有する論理アドレスに対して作られる。
01 ページ記述子:この値はテーブル歩行手順を終結するのに使用される。こ れは形式1または形式2のページ記述子を示す。ページ記述子に遭遇すると、テ ーブル歩行プロセスが終結し、エントリーがA T C28の論理アドレスに対 して作られる。エントリーに対する物理アドレス・フィールドは残りの論理アド レス・ビット(テーブルの前のレベルへのインデックスとして使用されなかった もの)に記述子のページ・アドレス・フィールドまで延びた0を加えることによ って形成される。(第4図を参照)10 短:この値は取出すべき次の記述子が 短かいフォーマットのものであることを示す。この値はポインタ記述子(短また は長)または間接記述子(短または長)に置かれる。この値がポインタ記述子に 入っているときには、テーブルのアドレス・フィール°ドが短記述子のテーブル を指していること、およびインデックスに4を掛けるべきことを意味している。
短の値に遭遇し、且つ論理アドレスが使い厳されている(TIフィールドをすべ て使用した)ときは、この値を短記述子を指す間接形式の記述子を示す。
ll 長:この値は取出すべき次の記述子が長いフォーマットのものであること を示す。この値はポインタ記述子(短または長)または間接記述子(短または長 )に置かれる。この値がポインタ記述子に入っているときには、テーブルのアド レス・フィールドが長記述子のテーブルを指していること、およびインデックス に8を掛けるべきことを意味している。長の値に遭遇し且つ論理アドレスが使い 貫されている(すべてのTIフィールドを使った)ときは、この値は長記述子を 指す間接形式の記述子を示す。
テーブル・アドレスは、28ビツトから成り、常に記述子のテーブルの底辺を指 す。
ページΦアドレスは、ページの物理アドレス(ページ・フレーム番号)を含んで いる。ページ・アドレスは24ビツトから成るが、これらビットのすべてを使う ことができるわけではない。ページの大きさが256バイトより大きければ、必 らずしもすべてのビットが必要ではない。特に(TCレジスタのPSフィールド の値)低位の値からこのフィールドの8個の低位ビットを差引いたものは使用さ れない。たとえば、ページの大きさが1024バイトの場合、PSフィールドの 値は10(2進法では1010)であるから、最低10−8−2ビツトのページ ・アドレス・フィールドは使用されない。使用しないビットはソフトウェアで使 用することができる。
間接アドレスは個別記述子を指す30ビツトから構成される。DTフィールドが 長を示せば、このフィールドの低位ビットは0でなければならない。 ・ 使用せずのビットは、PMMU20によって使用されない。
6、テーブル歩行 PMMU20はページ記述子が見つかるまで(または例外条件が発生するまで) 連続してテーブルのルックアップを行うことによって記述子を取出す。これらテ ーブルのルックアップは変換トリーの各レベルの記述子のテーブルを指示する論 理アドレスの部分を使用することにより行われる。
テーブルの底辺はトリー内でルベル上の前のテーブルでめられた記述子によって 指示される。テーブルの最大の大きさは、テーブル内の記述子の大きさによって のみならず、テーブルへのインデックスとして使用されている論理アドレス・ビ ットの数によっても決められる。テーブルは一定の記述子の制限(Ll旧T)フ ィールドを介して、この最大値より小さい大きさに制限することができる。記述 子が一旦テーブルから得られると、その有効性がチェックされる。有効であれば 、トリーの次のレベルにある記述子の形式を確認する。このルックアッププロセ スはページ記述子が得られるまで、または除外が発生するまで、論理アドレスの 残りの部分を使用して続けられる。一旦ページ記述子が得られれば、論理的対物 理的マツピングがそのページに対して規定される。
DMAアクセスがDMAルート・ポインタ(DRP)を使用して変換されている ときは、最初のレベル・テーブルが機能コードによって常に指示される。変換に スーパーバイザー争ル−ト壷ポインタ(SRP)またはCPUル−ト・ポインタ (CRP)が使用されておりTCレジスタのFCL (機能コードルックアップ )ビットがセットされていれば、最初のレベルのルックアップが機能コードによ って指示される。FCLビットがクリアされていれば、機能コードのルックアッ プは行われず、最初のルックアップは次節に記すようになる。このテーブル歩行 手順を第3図に示す。ページ記述子は次のように取出される。機能コードFC[ 3]のビット3が表明されていなければ、FC2−0の到来値を使用してCRP またはSRPレジスタが指しているテーブルを指示する。A T C2Bの失敗 が発生したときFC[lがPMMU20以外の装置によって表明されていた場合 には、機能コードFC[2−0]のビット2−0を使用してDRPが指している テーブルを指示する。次に記述子をレベルがより高いテーブルから取出す。取出 すべき記述子の形式は使用するルート・ポインタの記述子形式フィールドで決ま る。取出した記述子が有効であれば、記述子のアドレス・フィールドは変換の次 のレベルを指すポインタの上位ビットを形成するのに使用される。
TCレジスタのISフィールドによって指示される論理アドレス上位ビットの数 はPMMU20によって捨てられる。
TIAフィールドによって指示されるビットの数は論理アドレスの上部から採用 される。これらは符号無しの整数として処理される。現行記述子(またはルート ・ポインタ、これが最初のレベルの場合)のDTフィールドがトリーの次のレベ ルの記述子が短記述子(32ビツト)であることを示していれば、論理アドレス ・ビットが左に2だけシフトされ、取出された記述子のアドレス・フィールドに 付加される。DTフィールドがトリーの次のレベルの記述子が長記述子(64ビ ツト)であることを示していれば、論理アドレス・ビットは左へ3だけシフトさ れ、取出・された記述子のアドレス・フィールドに付加される。このポインタは トリーの次のレベルの記述子を取出すのに使用される。
この手順は、この新しい記述子のアドレス争フィールド、次のT!χフィールド 、および論理アドレスの次の上位ビットを使用して、他の記述子を取出し続ける 。ページ記述子が見つかるまで、またはTlχフィールドがそれ以上存在しなく なるまで、あるいは次のものが0であるようになるまで(または、後に記すよう に、テーブル歩行手順が放棄されるまで)同様に進行する。
記述子が長い場合には、次のレベル・テーブルの基底アドレスは2番目に長いワ ードのビット31〜4となるように取られる。ビット3〜0は無視され、ユーザ が状態その他の機能に使用することができる(アドレス計算のために0で埋めら れている)。記述子が短い場合には、次のレベル・テーブルの基底アドレスはビ ット3〜0(状態ビット)がOで満たされている単一の長ワードになるように取 られる。記述子境界を指すように左にシフトされたTIχで指示された論理アド レスの部分はテーブルの基底アドレスに加えられて次の記述子の位置を定める。
記述子には28ビツトしかアドレス情報がないから、アドレス計算は記述子アド レス・フィールドの下位の4状態ビツトを0で埋める。
テーブル歩行手順は多くの理由により上述の通常の場合とはかけ離れることがあ る。
1)記述子の使用ずみ及び/又は修正ずみのビットがセットされていなければ、 PMMU20はそれらを適切にセットし、次いで記述子の状態バイトを更新する であろう。更新されている記述子が既に修正ずみビット・セットを備えていれば 、更新は単一の読取り一修正−書込みのサイクルを使用して行われる。その他の 場合には、単純書込みが使用される。
2)TCレジスタのFCLビットがクリアされていれば、最初のルックア・ツブ は論理アドレスによる。または、3)テーブル歩行中ページ記述子に遭遇すれば 、歩行が終結し、エントリーがA T C2Gの論理アドレスに対して行われる 。エントリーの物理的アドレス・フィールドは論理アドレス・ビット(成る前の レベルのテーブルの指標として使用されなかったもの)の残った数を、0拡張し て、下位PSビットにOが詰った記述子の物理的アドレス・フィールドに加える ことによって形成される。エントリーが作られ、PMMU20がバスを放棄した 後、バス・サイクルを再試行することができる。
7、アドレス変換キャッシュ 各アクセス時に変換テーブルを歩行するオーバヘッドを回避するため、最近使用 される論理対物理トランスレータはA T C2Bに保持されている。A T  C26はヒツト率が高くかつ変換時間が短いように作られている。A T C2 Bが失敗すると、PMMU20はバス・マスクにサイクルを後に再試行すべきこ とを指示して現行バス・サイクルを放棄する。
次にPMMU20は論理バスと物理バスとを調停し、記憶装置の変換テーブルを サーチして正しいページ記述子を見つける。次にこの記述子を使用してA T  C2Bにトランスレータを設置する。PMMU20がバスを放棄すると、古いバ ス・マスクは調停することができ、放棄したバス・サイクルを再試行する。この ときPMMU20はA T C2Bにおいて「ヒツト」するはずであり、バス令 サイクルは正常に進行することができる。
ATC2Eiで、各キャッシュ・エントリーは論理部(タグ)と物理的部分(タ グに対応する情報)とを備えている。ただし、エントリーの論理的内容はユーザ には見えない。各エントリーの31ビツトの論理部は次のフィールドから構成さ れている。
ここで、 ■(有効)は、エントリーが有効トランスレータを含んでいる場合1であり、そ の他の場合はクリアされる。このビットはトランスレータがエントリーにロード されるときセットされる。■はトランスレータに合致するPFLUSHまたはP FLUSHR命令によって、トランスレータに合致するPLOAD命令によって 、PMOVEによるルート・ポインタ・テーブルのCRPへの再割当により生ず るフラッシュによって、およびリセット時にクリアされる。
TA(タスク・エイリアス)は、別々の方面からの同一の論理アドレスへの異な るタスクのアクセスを区別する機構を与える。タスク・エイリアス情報とエント リ有効性ビットのマスク可能なりリアを実行する能力とを組合わせると(トラン スレータのマスク可能なフラッシュ) 、PMMU20はA T C2Bに存在 する複数のタスクのトランスレータを同時に保持する能力が与えられる。タスク ・エイリアスを別のタスクに再発行しなければならない場合には、そのタスク・ エイリアスを含むすべてのトランスレータをまずフラッシュする。これにより新 しいタスクが前のタスクのトランスレータを誤りなく使用し、コンテキスト切替 時ATC2B全体をフラッシュする必要性が無くなるであろうことが保証される 。このフィールドとの比較はこのトランスレータをロードしたテーブルサーチが 一組のSGビットを有する記述子と遭遇した場合抑制されるであろう。これによ り全体的配分動作が実施される。
FC(機能コード)は、トランスレータをロードさせたバス・アクセスの機能コ ード・ビットFC[・3:0]を備えている。
論理アドレスは、トランスレータをロードさせたバス・アクセスの論理アドレス ・ビットLA [31: 8]を備えている。ページの大きさが256バイトよ り大きければ、この24ビツト・フィールド内の幾つかの低次LAビットが正常 変換申付われるアドレス比較の間に「ドントケア」となる。
各エントリーの30ビツトの物理的部分は次のフィールドから構成される。
L(ロック)は、キャッシュ・エントリーが再使用に利用できない場合にセット され、そうでない場合にクリアされる。A T C2Bが有効トランスレータで 一杯になっていれば、現在有効なトランスレータはトランスレータ・ロード上に 重ね書きされなければならない。L−1ならば、キャッシュ・エントリーは再使 用に利用できない。一つを除くすべてのエントリーがロックされるようになると 、Csレジスタ内のLWビットがセットされてこの状態を示すで゛あろう。記述 子に「ロック」の指示が存在するか否かには無関係に、それ以上トランスレータ のロックは行われず、ロックされたトランスレータでキャッシュが全体的に満た されることのないようにしている。トランスレータがフラッシュするまで、AT C2Bはすべてのキャッシュの失敗に関して新しいトランスレータとして同じ( ロックされていない)エントリーを使用しつづけるであろう。このため、動作シ ステムは変換機構の有効性を減するほどの多数のトランスレータにロックされな いように注意しなければならない。ロックされたトランスレータは、CRPを使 用してロードされた場合には無効にすることができる。新しいエントリーがRP T内に作られると、整合用TAフィールドを有するA T C2Bのすべてのト ランスレータが、そのり、ビットの状態に関係なく、無効にされるであろう。S RPまたはDRPがロードされているトランスレータはこの方法では無効にされ ない。
BERR(バス・エラー)は、このトランスレータでのテーブルサーチの結果、 エラーが検出された場合にセットされ、その他の場合はクリアされる。BERR −1であれば、PMMU20はページがアクセスされたときBERR出力を表明 するであろう。PASは発生しない。BERRは、°先の失敗(ATC2B内に 存在してぃながった)の場所に再アクセスを試みるとき、現行バス9マスクにこ のアドレスに対するテーブルにトランスレータが存在しないことを知らせる機構 を提供する。また、他のバス・マスクによる非存在場所に冗長なテーブル・ルッ クアップの試みを回避する機構を提供する。BERRビットは明快にクリアする ことはできない。バス・エラー処理ルーチンはテーブルを更新してから失敗アド レスのPLOADを含むべきである。
PLOADはPMMU20にそのキャッシュ内の整合用トランスレータをフラッ シュさせ、それがらキャッシュにテーブルから新しいデータをロードする。
CI(、キャッシュ禁止)は、ページ内のアクセスがデータ・キャッシュに格納 されないようにすべき場合に指示する。Cl−1であれば、PMMU20は、ペ ージがアクセスされたときバス・サイクルと同時にCLI出カを発生するので、 キャッシュ・コントローラはそのバス−アクセスがキャッシュに「失敗」したと き「充填」をしようとしないことを知るようにするであろう。このカテゴリー内 に入る典型的な幾つかのアクセス形式を挙げれば、110アクセス、臨時バッフ ァ区域へのアクセス、またはメールボックス区域へのアクセスがある。
WP(書込み保護)は、ページの「有効」書込み保護を反映するものである。W P−1であれば、ページへの書込みアクセスは違法である。有効書込み保護は、 テーブル歩行中に遭遇するすべてのWPビット(各レベルで一つ)と、遭遇する WALフィールドで行われるチェックとのORである。これは変換テーブルのペ ージ記述子のWPビットの実際の値とは異なることがあることに注意のこと。そ のWPビット・セットを有するA T C2Bのトランスレータを使用して書込 みをしようとする場合には、PASは発生せず、BERRが表明されるであろう 。同じことはRMC信号を利用する処理装置14で実行される読取り一修正−書 込みサイクル(RMC)についても正しい。ただし、処理装置14にRMC出力 が無ければ、バス・サイクルの読取り部分は通常の方法で変換され、適切な場合 には書込み禁止(WIN)出力が表明されるであろう。処理装置14のR/W  (書込み・読取り)信号が読取り一修正−書込みサイクルの書込み部分を示すよ うに変ると、WIN信号は物理的R/W信号の遷移を阻止し、PMMU20は書 込み侵犯を検出し、PASを否定し、BERRを表明するであろう。
M(修正ずみ)はページが修正されていればセットされ、その他の場合はクリア される。トランスレータにMビット・セットを備えていない書込み可能ページに 書込みが起ると、PMMU20は現行バス−マスクに「放棄および再試行」の信 号を発する。バスを受取ると、PMMU20はテーブルを歩き、テーブル内に適 切な記述子の修正ビットをセットし、古いトランスレータを無効とし、その修正 したビットがセットされた新しいトランスレータをロードし、それからバスを放 棄するであろう。前のバス・マスクが書込みサイクルを再試行すると、PMMU 20はMビット・セットを探し、通常の方法で物理アドレスとPASとを提供す るであろう。この方法で、記述子の修正ずみビットは、そのページへの最初の書 込み時に、トランスレータが前の読みからキャッシュされたものであってもなく ても、ページ・テーブルにセットされる。
G(ゲート)は、このページがあるゲートを備えることができるか否かを示す。
G−1であれば、ページは異なる特権レベル間の遷移に対してゲートを備えるこ とができるものである。記述子アドレス・バス・レジスタへの書込み時、PMM U20はそのアドレスで指示されるページがGビットのセットを備えているかチ ェックし確認する。このページにゲートを備えるという属性(Gビットのセット )が無ければ、適切なエラー・コードがALSレジスタに記録される。
PA(物理アドレス)は、テーブル・ルックアップのページ記述子から形成され た物理アドレスPA cat: 8]のビット31〜8を含んでいる。ページの 大きさが256バイトより大きければ変換中に、格納された24の物理アドレス ・ビットの必らずしも全部が外部の物理バスに追い出されることはない。ページ 内の区域にアドレスする物理的アドレス・ビットは対応する論理アドレス・ビッ トが直接外部物理バスを通過するように多重化される。
PMMU20がリセット動作を行うと、A T C2Bを使用不能の状態(TC レジスタのEビットがクリアされている)で「参入する」。論理アドレスは直接 通過され、論理アドレスバスに「明快な変換」として出力される。これはリセッ ト・ベクトルが、記憶装置と、組立てられた変換テーブルとから、読出すことが できるように必要である。加えて、アクセス・レベルのチェックが使用禁止され るので、アクセスが「現行アクセス・レベルを超えて試みる」ことによる失敗を 生ずることはないであろう。テーブルが組立てられてから、EビットをA T  C2Bの動作が可能なようにセットすることができる。
PMMU20が他の動作を行っていなくてA T C2Bが使用可能になってい れば、PMMU20は「変換ルックアサイド(Iookaslde ) J動作 モードになっている。このモードでは、A T C2Bは現行バス・マスクが提 供した論理情報と各A T C2Bのエントリーのタグ区域に格納されている対 応する論理情報との間の進行中比較を行う。現行バス・サイクル論理情報は到来 論理アドレス、到来機能コード、および現行タスク・エイリアス(ルート・ポイ ンタ・テーブル内の現行CRP値のインデックス)から構成されている。各A  T C2Bエントリーのタグ区域に対応するフィールドが存在する。現行情報が 有効トランスレータに格納されている情報と合致すれば、ATC2Bは「ヒラト コすると言われる。
SGビット・セットを有するこれらのトランスレータは「ドントケア」とされて いるタスク・エイリアス中フィールド間の比較を行って、トランスレータの分配 ができるようにする。
ヒツトがあれば、A T C26は合致した論理アドレスに対応する格納された 物理アドレスをPA出力バッファに通し、同時に対応する物理アクセス情報を他 の評価回路または出力バッファに通す。物理バスがPMMU20から離れて調停 されていれば、PMMU20は再び物理バス・マスクになるまで物理バスを駆動 しないであろう。アクセス権検査回路と関連の制御信号とはすべて、現行物理バ ス・マスクの本性とは無関係に、依然として動作す蚤。この方法で、全体的に分 離された物理バス活動と並行して、アクセス権を有し除外チェックを行う論理バ ス活動を行うことが可能である。たとえば、処理装置14は、物理バスをPMM U20から遠く離して調停したDMA装置の動作と並行して、論理バスに存在す るデータ・キャッシュを離れてバス・サイクルを実行し、PMMU20によって モニタされたアクセス権を有することができる。
A T C2Bの「ヒツト」しているトランスレータからの物理的情報は次のよ うな道筋で送られる。
1)BERR,WP、MおよびGビットはアクセス権検査回路へ 2)物理アドレス・ビットとキャッシュ禁止ビットは出力バッファへ 離散的アクセス・レベルがある場合には、特定のバス・サイクルのアクセス・レ ベルが、アクセス・レベルの数に依存して、論理アドレス・ビットLA [31 : 29] 、LA[31: 30] 、またはLA[31]にコード化される であろう。
これらビットは他のアドレス・ビットの同じ方法で比較されてトランスレータの 合致を確認するので、離散的アクセス・レベルを使用するのはA T C2Bの 機能的必要条件ではない。A T C2Bのルックアップと並行して、CALレ ジスタ内の高次アドレス・ビットと使用可能ビットとの間で分離比較が行われる 、。そのアドレスにコード化されたアクセス・レベルがCALレジスタに格納さ れているアクセス・レベルより上であれば、例外が存在してBERRが表明され 現行のアクセス試行を終結する。スーパーバイザー・アクセスはすべてCALチ ェック機構を使用禁止にするので、スーパーバイザー・アクセスはこの規則の例 外事項である。
「判断時間切れ」回路はLASがPMMU20がどの外部制御信号を表明するか を決定するに充分な時間を持っていることを検出した(非同期モード)後、また は表明した(同期モード)後、どのクロック・エツジによるかを指定するもので ある。判断時間切れクロック・エツジはアクセス権検査、例外検出、およびA  T C26合致回路の出力がそのデスティネーションで有効であることを保証す るだけの時間の後生じなければならない。アクセス権検査、例外検出、あるいは A T C2B合致回路がこの判断時間によって解決しなければ、PMMU20 は誤り応答を行う(不良の制御信号を発生する)。判断時間はリセット/構成時 刻にその最小値から増加させることができる。
ヒツトがあり、アクセス権の侵犯が無く、例外事項が検出されなければ、PAS が「最小PAS表明時刻」 (変換モードに依存)からリセット/構成時刻に指 定された時間だけ遅れて表明されるであろう。PASは駆動が作用しなくなるL ASの否定が生ずるまで駆動される。PMM020が物理バス・マスクであると きは、物理アドレス・バスが常に駆動されて有効であるであろうが、論理アドレ スと機能コードとは、アクセス時間の必要条件が満たされた後に有効になる。
ヒツトが存在しないか、アクセス権が超過したが、あるいは例外事項が発生して いるかすれば、P M M U 20はPASを発生しないであろう。その代り 、PMMU20は「時間切れ」クロック・エツジの条件に適切な制御信号を発生 する。物理アドレスおよびPAS以外の応答を発生する正常ルックアサイド動作 中に検出される例外条件またはアクセス権侵犯は次のとうりである。
1)論理バスからデコードされたPMMUコプロセッサ・レジスタのアクセスが コード化された命令を実行させる。
2)格納されている「現行アクセス・レベルを超えようとするアクセスが、使用 可能である場合BERRを発生させる。
3)BERRビット・セットがBERRを発生させる。
4)書込み保護されているページへの書込みアクセスによりBERRが発生する 。
5)ATC2Bにヒツトが無いと放棄・再試行の動作制御信号が発生する。
6)前に修正しなかったページに書込みアクセスすると放棄・再試行の動作制御 信号を発生する。
7)CALLM/RTM命令によるPMMU20バス・レジスタへのアクセス。
8)CPU空間アクセス(F C−0111)論理アドレス・バスが物理アドレ ス・バスに通り抜け、PASが発生しない。アドレスがPMMU20のバス−レ ジスタでなければ、CLIは通常のPASタイミングで表明され、CPU空間デ コードで外部的に条件調節してCPU空間アドレス・ストローブを発生すること ができる。アドレスがPMMU20のバス・レジスタであればCLIは表明され ない。動作は次表によって規定される。
CPU 変 換 コプロセッサ、 空 間 使 用 モジュール、 マツピング CLI PAS可 能 またはブ レー クーポイント N N X 1−I N A N Y X 通 常 変 換 YN N 1−IAN YN Y 1−INN YY Y 1−INN N−否定または否認 A−表明される X−ドントケア 8、ルート・ポインタ・テーブル(RP T)ATC2Bの利用を改善するため 、PMMU20は最も最近のタスクに対するルート・ポインタを保持する複数の エントリー・ルート・ポインタ番テーブル(RPT)28を備えている。CPU ルート・ポインタ(CRP)によって指定される変換トリーをサーチすることに よって作られるA T C26内のエントリーはすべて現在合致しているRP7 28内のエントリーのインデックスを示す印が付けられる。
このインデックスをタスク・エイリアスと言う。CRPレジスタが書込まれ、合 致するエントリーがRPT28の中に見つかれば、有効なエントリーがA T  C2Bの中になお存在している。新しいCRP値がRP T 28のエントリー と合致しなければ、RP 728内にエントリーが選択され、ATC2Bは同じ インデックスを有するエントリーでフラッシュされる。加えて、この情報はCS レジスタ内に示されるので、外部データ・キャッシュはRPT28と同じ様式で 管理することができる。
RPT28は各々のエントリーごとに一つのタグがあるタグ区画を備えている。
各タグはCRPレジスタと同じフィールドを有する。タグはタグのアドレス・フ ィールドがCRP値のアドレス・フィールドと合致すれば合致する。
有効な合致はアドレス・フィールドが合致するとともに他のすべてのフィールド が合致すれば生ずる。無効な合致はアドレス・フィールドとL/U (上位・下 位)のビットは合致するが他の一つ以上のフィールドが合致しない場合に生ずる 。
テーブルに明白なデータ区画は存在しない。合致すると、テーブルの出力は合致 したエントリーのインデックス0〜7である。複数の合致エントリーが決して同 時に発生しないようにするのはPMMU20の責任である。
CRPレジスタが書込まれると、RPT28ではアドレス・フィールドとL/U フィールドが合致するエントリーがあるかサーチされる。状態フィールドと制限 フィールドとのDTフィールドも合致すれば、合致は有効な合致と考えられる。
ただし、アドレスどL/Uフィールドとは合致するが状態および制限の各フィー ルドのDTフィールドが合致しなければ、合致は無効であると考える。
合致が有効であれば、CSレジスタのTAフィールドにテーブル内のエントリー のインデックスがロードされ、CSレジスタのFビットがクリアされる。これは 新しいCRPによって記述されるタスクがA T C2B内に有効なエントリー を備えていることを示している。
合致が無効であれば、A T C2BはRPT2gによって出力されているイン デックス値に合致するすべてのエントリーに関してフラッシュされる。CSレジ スタのTAフィールドにテーブル内のエントリーのインデックスがロードされ、 CSレジスタ内のFビットがセットされる。これはこのインデックスを持つ外部 データ・キャッシュのいかなるエントリーもすべて無効にされるべきことを示し ている。
合致が存在しなければ、RP72gのエントリーは交換のためPMMU20によ り選択される。選択されたエントリーのインデックスはこのタスク・エイリアス を含んでいるすべてのエントリーのA T C2Bをフラッシュするのに使用さ れる。次に新しい、ルート・ポインタの値がテーブル内にロードされ、インデッ クス番号がCSレジスタに設置され、Fビットがセットされてこのタスク・エイ リアスが再使用されているという事実を反映させる。
異なるタスクおよび異なる変換トリーに同じルート・ポインタ値を再使用しなけ ればならない場合には、A T C2Bはまずそのタスク拳エイリアスがPFL USHR命令を使用するルート・ポインタ・キャッシュのエントリーに割当てら れたものに合致するようなすべてのエントリーについてフラッシュされなければ ならない。RPT2gのエントリーは交換のため擬似LRUアルゴリズムを使用 して選択されるであろう。RPT28が行う交換および複数タスク処理は外部デ ータ中キャッシュが利用することができる。
CRPレジスタへの各々の書込みの後、CSレジスタは読取られ、その内容がデ ータ・キャッシュのハードウェアに書込まれなければならない。この外部データ ・キャッシュ・ハードウェアは論理アドレスに3ビツト増設して構成すべきであ る。この増設はCSレジスタの下位3ビツトがロードされているラッチから供給 されるべきである。このラッチがロードされ、CSレジスタ内のFビットがセッ トされると、ラッチ時の値に合致しているキャッシュ内のすべてのエントリーが クリアされるはずである。
FIG、4 FIC,5 国際調査報告 We+w+mnalAasl+Cal16M1mp(τ1058610237g

Claims (10)

    【特許請求の範囲】
  1. 1.記憶装置に格納されている複数のポインタ・テーブルとページ・テーブルと に選択的にアクセスして、選ばれた論理アドレスを、まず前記論理アドレスの第 1の部分と第1のテーブル・ポインタとを組合せて前記ポインタ・テーブルの第 1の一つにアクセスし、前記ページ・テーブルの選ばれた一つを指すページ・テ ーブル・ポインタを得、次いで前記論理アドレスの第2の部分と前記選ばれたペ ージ・テーブルにアクセスする前記ページ・テーブル・ポインタとを組合せて、 これから物理的アドレスを得ることにより、対応する物理的アドレスに変換する ようになっているページ式記憶装置管理ユニット(PMMU)において、前記論 理アドレスはアドレス空間選択部を備えており、前記PMMUは選択的に使用可 能とされて、最初に前記第1のテーブル・ポインタと前記論理アドレスの前記ア ドレス空間選択部とを組合せて前記ポインタ・テーブルの第2の一つにアクセス し、これから第2のテーブル・ポインタを得、次いで前記論理アドレスの前記第 1の部分と前記第2のテーブル・ポインタとを組合せて前記ポインタ・テーブル の前記第1の一つにアクセスし、これから前記ページ・テーブル・ポインタを得 るようにしたことを特徴するページ式記憶装置管理ユニット。
  2. 2.前記第1のテーブル・ポインタは複数のルート・ポインタから選択される請 求の範囲第1項に記載のページ式記憶装置管理ユニット。
  3. 3.記憶装置に格納されている複数のポインタ・テーブルとページ・テーブルと に選択的にアクセスして、選ばれた論理アドレスを、まず前記論理アドレスのア ドレス空間選択部分とルート・ポインタとを組合せて前記ポインタ・テーブルの 選ばれた一つにアクセスし、これから前記ページ・テーブルの選ばれた一つを指 すページ・テーブル・ポインタを得、次いで前記論理アドレスの第2の部分と前 記ページ・テーブル・ポインタとを組合せて前記選ばれたページ・テーブルにア クセスし、これから前記物理アドレスを得ることにより、対応する物理アドレス に変換するようになっているページ式記憶装置管理ユニット(PMMU)におい て、 前記PMMUは選択的に使用可能とされて、前記ルート・ポインタと前記論理ア ドレスの第2の部分とを組合せて前記ページ・テーブルに直接アクセスし、これ から前記物理アドレスを得るようにしたことを特徴とするページ式記憶装置管理 ユニット。
  4. 4.前記ルート・ポインタは複数のルート・ポインタから選択される請求の範囲 第3項に記載のページ式記憶装置管理ユニット。
  5. 5.記憶装置に格納されている複数のポインタ・テーブルとページ・テーブルと に選択的にアクセスして、選ばれた論理アドレスを、まず前記論理アドレスの第 1の部分と第1のテーブル・ポインタとを組合せて前記ポインタ・テーブルの第 1の一つにアクセスし、これから前記ページ・テーブルの選ばれた一つを指すペ ージ・テーブル・ポインタを得、次いで前記論理アドレスの第2の部分と前記ペ ージ・テーブル・ポインタとを組合せて前記選ばれたページ・テーブルにアクセ スし、これから前記物理アドレスを得ることにより、対応する物理アドレスに変 換するようになっているページ付き記憶装置管理ユニットにおいて、前記PMM Uは選択的に使用可能とされて、最初に前記第1のテーブル・ポインタと前記論 理アドレスの第3の部分を組合せて前記ポインタ・テーブルの第2の一つにアク セスし、これから第2のテーブル・ポインタを得、次いで前記論理アドレスの前 記第1の部分と前記第2のテーブル・ポインタとを組合せて、前記ポインタ・テ ーブルの前記第1の一つにアクセスし、これから前記ページ・テーブル・ポイン タを得るようにしたことを特徴とするページ式記憶装置管理ユニット。
  6. 6.前記第1のテーブル・ポインタは複数のルート・ポインタから選択される請 求の範囲第5項に記載のページ式記憶装置管理ユニット。
  7. 7.前記論理アドレスの前記第3の部分はアドレス空間選択子を備えている請求 の範囲第6項に記載のページ式記憶装置管理ユニット。
  8. 8.前記論理アドレスの前記第3の部分はアドレス空間選択子を備えている請求 の範囲第5項に記載のページ式記憶装置管理ユニット。
  9. 9.記憶装置に格納されている複数のポインタ・テーブルとページ・テーブルと に選択的にアクセスして、選ばれた論理アドレスを、まず前記論理アドレスの第 1の部分と第1のテーブル・ポインタとを組合せて前記ポインタ・テーブルの選 ばれた一つにアクセスし、これから前記ページ・テーブルの選ばれた一つを指す ページ・テーブル・ポインタを得、次いで前記論理アドレスの第2の部分と前記 ページ・テーブル・ポインタとを組合せて前記選ばれたページ・テーブルにアク セスし、これから前記物理アドレスを得ることにより、対応する物理アドレスに 変換するようになっているページ式記憶装置管理ユニット(PMMU)において 、 前記PMMUは選択的に使用可能とされて、前記第1のテーブル・ポインタと前 記論理アドレスの前記第2の部分とを組合せて前記ページ・テーブルに直接アク セスし、これから前記物理テーブルを得るようにしたことを特徴とするページ式 記憶装置管理ユニット。
  10. 10.前記第1のテーブル・ポインタは複数のルート・ポインタから選択される 請求の範囲第9項に記載のページ式記憶装置管理ユニット。
JP61506059A 1986-01-15 1986-11-06 複数のアドレス空間を選択的にサポ−トできるペ−ジ式記憶装置管理ユニット Expired - Lifetime JP2567594B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPS63502224A true JPS63502224A (ja) 1988-08-25
JP2567594B2 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 (59)

* 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
WO1991014986A1 (en) * 1990-03-23 1991-10-03 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
JPH07504527A (ja) * 1992-03-09 1995-05-18 オースペックス システムズ インコーポレイテッド 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム
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
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
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US7493516B2 (en) * 2005-08-29 2009-02-17 Searete Llc Hardware-error tolerant computing
US7774558B2 (en) * 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US8516300B2 (en) * 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource 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
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US8402257B2 (en) * 2005-08-29 2013-03-19 The Invention Science Fund I, PLLC Alteration of execution of a program in response to an execution-optimization information
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
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
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

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
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
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
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
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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPS63502224A (ja) 複数のアドレス空間を選択的にサポ−トできるペ−ジ式記憶装置管理ユニット
US4890223A (en) Paged memory management unit which evaluates access permissions when creating translator
US6823433B1 (en) Memory management system and method for providing physical address based memory access security
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US4763250A (en) Paged memory management unit having variable number of translation table levels
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US6854039B1 (en) Memory management system and method providing increased memory access security
JP3237065B2 (ja) データ処理システム
TWI342492B (en) Method of providing extended memory protection
JPH03225455A (ja) データ処理システム
JPS6248258B2 (ja)
JPH0652050A (ja) 実記憶のページをロックするためのシステム
JPH077363B2 (ja) アクセス装置及び方法
JPH0526217B2 (ja)
US7426644B1 (en) System and method for handling device accesses to a memory providing increased memory access security
US4766537A (en) Paged memory management unit having stack change control register
US6519684B1 (en) Low overhead method for selecting and updating an entry in a cache memory
JP2930071B2 (ja) 情報処理装置およびプロセッサ
JPH03211643A (ja) 並行例外検査及び更新バイパスを有する変換索引バッファ
JPH05250262A (ja) マスキングされた保護間接ページ記述子を用いたデ−タ・プロセッサにおけるアドレス変換の方法および装置
EP0389886B1 (en) Ring reduction logic mechanism
JPH01125638A (ja) キャッシュメモリ装置
JP3087279B2 (ja) マイクロコンピュータ・システム
JP3030037B2 (ja) 主記憶装置
JPH0526218B2 (ja)

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