JPS6184756A - メモリアクセス制御装置 - Google Patents

メモリアクセス制御装置

Info

Publication number
JPS6184756A
JPS6184756A JP60180388A JP18038885A JPS6184756A JP S6184756 A JPS6184756 A JP S6184756A JP 60180388 A JP60180388 A JP 60180388A JP 18038885 A JP18038885 A JP 18038885A JP S6184756 A JPS6184756 A JP S6184756A
Authority
JP
Japan
Prior art keywords
memory
gate
address
access
address space
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
JP60180388A
Other languages
English (en)
Other versions
JPH0642212B2 (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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of JPS6184756A publication Critical patent/JPS6184756A/ja
Publication of JPH0642212B2 publication Critical patent/JPH0642212B2/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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、メモリアクセス制御装置(以下、MACと省
略する)に係る。メモリアクセス制御装置は、メモリに
対して幾つかの制御機能を実行するためにプロセッサと
メモリとの間に相互接続されるものである。特に、メモ
リアクセス制御装置は、メモリがコンピュータシステム
に組み込まれた時にメモリ内の幾つかのアドレスへのア
クセスを制限する技術を実施するために必要であること
が分かっている。より詳細には、本発明は、保護領域の
考え方を実現化することに関する。保護領域の考え方と
は、オペレーティングシステムやプロセッサの監視状態
を伴うことなくコード(命令)及びデータに対するアク
セスを保護できるような保護機構をいう。保護領域は、
これらの保護されたリソースへ素早くアクセスできるよ
うにし、これらのリソースを操作するための成る種のダ
イナミックルーチンリンクを与えると共に、このように
保護されたリソースを使用するための規定の要件に基づ
いてリソースへの保護されたアクセス経路を与えるもの
である。
従来の技術 信頼性のあるソフトウェアを形成できるようにするため
には、これらの保護機構がハードウェアをベースとして
ものでなければならないことが分かっている。従って、
このような保護機構は、開発サイクルにおいて早期にソ
フトウェアのエラーを検出できるものである。又、ソフ
トウェアの欠陥によって、他の適切に動作しているソフ
トウェアモジュールが悪影響を受けることもない。公知
の保護機構は、複雑な上に使いにくく、然も。
はとんどの保護機構は、アドレススペースの成る部分へ
アクセスを拘束しようとするものである。
仮想アドレス機構について簡単に述べる。仮想メモリ管
理ハードウェアは、プロセッサによって発生された「仮
想アドレス」をRAMの物理的アドレスに変換するマツ
ピング機構を含んでいる。
仮想アドレッシングの背景にある技術的な理論は公知で
あり、簡略化のためここでは説明しない。
さて、公知のシステムにおいて、仮想−物理変換が実行
できない場合には(必要なデータがまだディスク上に存
在するために)、プロセッサに割り込みがなされ(たと
え、命令処理の最中であっても)、プロセッサは、オペ
レーティングシステムのメモリ管理ルーチンに入るよう
にされる。このルーチンでは、ディスクからRAMへの
転送が開始される。もし必要であれば、スペースを作る
ために最初にRAMからディスクへブロックが転送され
る。これらのディスク転送は、いったん開始されると、
プログラム制御のもとで実行され、その間、プロセッサ
は別の命令を実行することができる。
仮想アドレスを物理アドレスにマツピングする方法は多
数ある。マツピングテーブルの大きさを減少するために
、マツピングはワードレベルでは行なわれず、連続する
ワードのグループで行なわれる。これには、2つの主た
る機構が一般的である。第1の機構は、一定長さのペー
ジをマツピングする。人為的にアドレススペースを分割
するようなハードウェアによる本質的なトリックである
典型的なページは、512ないし4096の連続するバ
イトで構成され、これらは、全体的に、ディスク上の成
る位置にマツピングされるか、或いは、RAMにマツピ
ングされる。
これとは別の機構は、セグメントを使用することである
。セグメントとは、アドレススペースの可変長さ区分で
あり、これは、プログラマに対する論理的なエンティテ
ィであって、ディスク及び/又はRAMのアドレススペ
ースに全体的にマツピングされる。典型的なセグメント
のサイズは、数バイトから全アドレススペースまで変化
する。
成るシステムアーキテクチャ(例えば、IBM370)
では、プログラマが論理的なセグメントを論理的に別々
の個々のエンティティ (コード、スタック、データ等
のモジュール)に分割することができる。然し乍ら、セ
グメント長さに対する許容値は、非常に大きなステップ
、はゾ2にバイトをとる。セグメントは、メモリハイア
ラーキ内の種々の装置に個々にマツピングされたページ
に物理的に分割される。これにより、メモリ内にページ
を容易に配置できる一方、アドレススペースを論理的に
別々のセグメントに分割する方法がプログラマに与えら
れる。
更に別のアドレススペース分割機構について説明する。
セグメントは、プログラム及びデータを知的に管理でき
るチャンクに分割できるが、プログラムとオペレーティ
ングシステムとの間でアドレススペースの分配環を定め
ることが必要である。理想的には、2つの個々のアドレ
ススペースをもたせることによってこの分配が行なわれ
る668010 (モートローラ社)のマイクロプロセ
ッサでは、ハードウェアによりFC2ビンを用いてこれ
を行なうことができる。然し乍ら、この構成は、特殊な
命令により2つのアドレススペース間で全てのパラメー
タを転送しなければならないので、オペレーティングシ
ステムに対する呼び出しが低速になる。
VAX (デジタルイクイップメント社)のようなコン
ピュータは、別の解決策を用いている。
これらコンピュータは、アドレススペースを「領域」に
分割し、各領域は、それ自身の変換テーブルを有し、そ
の各々を個々に管理することができる。オペレーティン
グシステムの中心は、全領域に対してアクセス権を有し
、従って、プロセスとは独立したデータを容易に得るこ
とができる。然し乍ら、ユーザが形成したプログラムは
、気密保持の理由でシステムのアドレススペースにアク
セスすることができない。VAXの32ビツトアドレス
スペースは、3個の一定サイズ領域に分割さ   ゛れ
る。
メモリ管理ユニット(MMU)は、メモリマツピング及
びアクセス保護を含む機構を形成する。
ユーザのプログラムは、多数の方法で保護される。
各アドレスは、これに関連したアドレススペースの指示
で識別される。アドレススペースに許可なくアクセスす
ると、システムエラーが発生し、例えば、スーパーバイ
ザーの許可なくスーパーバイザーのデータスペースにア
クセスしたというエラーが発生する。一般に、システム
の全アドレススペースは、サブスペースに分割され、サ
ブスペースをアクセスするには許可が必要である。この
ような許可は、プロセッサモードに関連したもので、プ
ロセッサモード変更命令を用いて許可レベルが変更され
る。典型的に、プロセッサモートをユーザモードからス
ーパーバイザモードに変更するには、トラップ命令が使
用される。いったんスーパーバイザモードになると、ス
ーパーバイザの許可がそれに関連したアクセス許可と共
に与えられる。
オペレーティングシステムは、この技術を用いて、シス
テムソフトウェアに対するシステム呼び出しを実行する
。これは、割込み又はトラップによって行なわれる。こ
れにより、スーパーバイザのスペースへ制御されたジャ
ンプが行なわれると同時に、プロセッサモードが変更さ
れる。この 1ようにして、実際のプロセッサモードは
、プロセッサモードごとに異なる関連形態のアクセス保
護を与える。然し乍ら、プロセッサモードによるアクセ
ス保護は、例えば、次のような動作によって相当のオー
バーヘッド作用が生じ、従って、全システムが実際上低
速化されるという欠点がある。
(1)プロセッサ状態の変更及び復帰。(2)呼び出し
アドレススペースのアーギュメントを呼び出されたアド
レススペースにマツピングするか又は転送すること。(
3)アーギュメントのサイズ及び位置を確認すること。
例えば、典型的なオペレーティングシステムの管理ソフ
トウェアへの呼び出しを実行する際には、トラップ命令
を呼び出し、トラップの形式を決定し、管理呼び出しア
ーギュメントを得、そしてこれらアーギュメントを確認
することが含まれる。
アドレススペースを保護するためには、先ず、アドレス
スペースの境界を定めねばならない。1つの標準的な技
術は、アドレススペースをセグメント、即ち、メモリの
可変サイズ区分に仕切−ることである。セグメントの関
連グループによりアドレススペースが決定される。典型
的に、セグメントは、セグメント記述子によって識別さ
れ、アドレススペースは、セグメント記述子で構成され
たテーブル、即ち、セグメントテーブルによって識別さ
れる。プロセッサのアドレススペースは、可変サイズの
領域に仕切ることができ、各領域は、それ自身のセグメ
ントテーブルを有する。1つの領域は、オペレーティン
グシステムの中心部と、別のユーザコードと、全てのプ
ロセッサに共通した更に別のライブラリコードとを含む
ことができる。これらの領域は、コードを共有すること
ができる。各領域には、当該セグメントテーブルを指示
するセグメントテーブルポインタと、セグメントテーブ
ルの長さとが組み合わされる。典型的に、これらの値は
、特殊なレジスタに存在する。
今日存在する大部分のシステムでは、このような保護4
i!構を変更するための構成体がハードウェアに含まれ
ていない。全ての保護は、ソフトウェアによって行なわ
れる。保護されたルーチンを呼び出すと、ハードウェア
によってトラップが発生され、監視プログラムが呼び出
される。次いで、プロセッサが現在実行している命令の
内容又は状態(レジスタの内容、基本的なパラメータの
値、等)が記憶され、当該内容をもつ新たなプログラム
がロードされる。この新たなプログラムは、要求を検査
し、もしこれが許可されれば、要求されたルーチンへの
入力を許可する新たな内容が形成される。典型的に、上
記の動作には、300マイクロ秒を要する。
更に別の保護機構を有した既存のシステムは。
アドレススペースを1組のハイアラーキ式の所謂同心リ
ングに分割する。各リング、即ち、部分アドレススペー
スは、当該アドレス、即ち、リングの所謂「半径」によ
って定められる。いかなる所与のリングにおいても、プ
ログラムは、それ自身のリングのアドレススペースと、
それ自身の外部にある全てのリングのアドレススペース
へアクセスすることができる。外側のリングから内側の
リングへの移行は、直接行なうことができず、所謂「グ
ー81機構によって制御される。各ゲートは、条件情報
を含んでいると共に、当該リングに入力する入力点の指
示も含んでいる。この技術は、初歩的なものであると共
にハイアラーキ式のもであるが、明らかにシステムを保
護するように働き、保護システムを構成できるようにす
る。
発明の目的 本発明は、上記の典型的なプロセッサモード保護よりも
一般的な新規なアクセス保護機構を提供するものである
。更に、使い方が簡単で、特に。
各々のユーザプロセス間で保護機能が異なる時により効
果のあるアクセス保護機構を提供するものである。
発明の構成 ここに開示する保護領域技術は、アクセスをアドレスス
ペースの一部分に制限するだけでなく、再構成もできる
ようにする。当該システムソフトウェアに基づいて、同
じソフトウェアルーチンに対して多数の構成が存在する
本発明は、特許請求の範囲に記載した手段により保護機
能の改善を果たすものである。便利なことに、これらの
手段は、単一の集積回路チップで実施できる。更に、本
発明は、上記したメモリアクセス制御装置が設けられた
メモリに係る。このような装置は、プリント回路板上に
メモリチップと共に取付けることができる。或いは又、
このような装置は、これによって制御されるメモリの一
部分又はその全部と一体化することもできる。
以下、添付図面を参照し、本発明を一例として詳細に説
明する。以下の説明では、先ず最初に、本発明の一般的
な特徴について述べ、その後、好ましい実施例について
詳細に説明する。
先ず、本発明の一般的な特徴について述べる。
本発明は、メモリアクセス制御装置(MAC)について
の部分的な特徴として、解決策を組み合わせるという問
題を、単一のシリコン部片上での次のような問題に向け
るものである。即ち、プロセッサメモリシステムのサブ
システムをインターフェイスし、プロセッサ/メモリの
速度の不一致を解決し、仮想アドレスを変換し、多数の
メモリハイアラーキを制御し、バスアクセスにバッファ
作用を与えそして仮想I10の制御を行なう。これらの
特徴を組み合わせることにより、システム設計者は、「
コンピュータの核J  (68010又は68020マ
イクロプロセツサ)を、VAXのスループットをもつシ
ステムに変換することができる。これにより形成された
システムは、ユーザが選択できる種々の仮想メモリ機構
を与えるが、このシステムは、1つ以上のプロセッサ/
MACの対を追加すると共に、オペレーティングシステ
ムの最も低いレベルで僅かな変更を行なうことによりマ
ルチプロセッサシステムへと拡張することができる。
1つの重要な特徴は1MACによりユーザがそれ自身の
保護機構を形成できることであり、その選択には、非保
護、仮想メモリシステムに用いられる「通常」の保護、
及び機能的な保護領域設計、即ち、シリコンにおいて実
施さるへき第1の種類のもの、が含まれる。   ゛ 好ましい実施例の植造仕様 好ましい実施例においては、システム設計者は、アドレ
ススペースを1ないし4つの領域に分割することができ
る。VAXとは異なり、成る領域が使用されない場合、
これが、他の領域に使用できるアドレススペースから減
少されることばない。これら領域に適用される唯一の制
約は、成る仕切内にあるその一部分が連続的であって且
つ仕切りが隣接していることである。各領域は、それ自
身の変換テーブルを有し、成る実施例では、その長さを
全アドレススペースの3.25%から100%まで変え
ることができる。
MACは、プロセッサの仮想アドレススペースを最大4
つの別々の領域に置き換えることができる。これら領域
は、コード及びデータを共有するのに有用である0例え
ば、成るプロセスには4つの領域があり、領域Oはオペ
レーティングシステムの核に指定され、領域2はシステ
ムライブラリに指定され、領域3はプロセスの特定コー
ド及びデータに指定される。その−例が第2図に示され
ており、2つのプロセスA及びBは、両方ともそれら自
身の領域110及び118に各々使用されるオペレーテ
ィングシステムの核102を用いている。更に、2つの
プロセスは、同じやり方でシステムライブラリ104を
記憶する。然し乍ら、これらは、システムメモリ1oo
の各部分10.6及び108に含まれたそれら自身のコ
ード及びデータに専用アクセスすることができる。この
レベルでの共有は非常に有用である。典型的なUNIX
プログラムでは、システムサブルーチンライブラリに対
して多数の参照がある。小規模なサブルーチンでは、こ
のライブラリからルーチンを呼び出す時にその有効サイ
ズ(コードの動作可能なラインの本数で測定した)を数
倍高めることができる。従って、システムライブラリは
、リンクされた各プログラムごとに各呼び出しルーチン
を反復する必要性を排除することができる。ここでは。
各ライブラリのサブルーチンの入力点は、各ユーザプロ
グラムの仮想アドレススペースの固定素子によって表わ
される。
4つの領域の各々は、それに関連したセグメントテーブ
ルを有している。仮想位置の内容がチップ上のMACリ
ソースで見つからない時には、それに関連した主メモリ
位置をアドレスするために1つ以上のセグメントテーブ
ルが順次にアクセスされる。MACは、仮想アドレスの
上位5ビツトを領域番号にマツピングすることにより、
このウオーキング工程を開始するための最も適当なセグ
メントテーブルを決定する。
MACは、この特徴により、32個の部分に分割される
仮想アドレススペースで機能する。領域の仕切りは、多
数のこれら部分を含んでいる。
従って1例えば、2領域システムは、領域Oに12個の
部分を有すると共に領域1に20個の部分を有する。
4つの領域を維持するために、MACは、4つのレジス
タ対を含み、各レジスタ対は、セグメントテーブルポイ
ンタレジスタと、セグメントテーブル長さレジスタで構
成される。
典型的なシステムは、3つの領域で構成される。そのう
ちの1つは、オペレーティングシステムの核を含み、第
2の領域は、共有された全てのユーティリティ及びライ
ブラリを含み、そして第3の領域は、ユーザプログラム
及びデータを含も;。
通常、最初の2つの領域は不変であるが、第3の領域は
、別々のプログラムの実行を開始する時に本来的に変化
するものである(第2図参照)。
メモリシステムの保護 メモリの保護とは、各領域、セグメント又はページへの
アクセスを選択的に形成及び構成できることを意味する
。これは、保護情報及び変換テーブルを含ませることに
よって実施される。セグメント又はページのいずれがで
ある各エンティティは1次のような少なくとも5つの別
々の保護形態で与えられる(然し乍ら、それ以上も可能
である)。
1、システム状態においてのみアクセス可能。
2、実行可能、即ち、プログラムとして動作可能。
3、データとして読み取り可能。
4.1き込み可能。
5、非有効。即ち、マツピングが存在せず。
許可されないアクセスがなされた場合には(即ち、プロ
セッサが実行不能なページからのコードを実行しようと
した場合には)、MACは。
メモリアクセスを完了せず、バスエラー(B E RR
)信号をプロセッサに発生し、オペレーティングシステ
ムは、何を実行すべきかを判断することができる。
いずれの機構を使用するかによって、全ての保護ビット
をセグメントレベルで用いることもできるし、ページレ
ベルで用いることもできる。更に、1つのレベルで許可
が与えられた場合には。
これを別のレベルでオフにすることができる。こ゛ れ
により、「コピー・オン・ライト(書き込み時コピー)
」を用いたオペレーティングシステムを容易に実施する
ことができる。簡略化のため、これらの保護形態につい
ての特定の使用は、これ以上説明しない。
MACの保護機能は、これら5つの保護形態に勝るもの
である。一般に、保護は、2つの相互作用機構によって
行なわれる。第1の機構は、マツピングテーブルにおい
て実施される。プロセッサにより発生された全ての仮想
アドレスは、マツピングテーブルによって物理アドレス
に変換されるので、もしマツピングが無効と表示された
場合には、プログラムは、そのアドレスもしくはメモリ
モジュールをアクセスすることができない。
これは、メモリ保護機能の基本的な形態であり、プロセ
スには、これが必要とするオブジェクト又はモジュール
に対して1組の明確なアクセス権が与えられるが、その
他のものに対しては与えられない。然し乍ら、効率的で
完全な保護システムを得るためには、これらのアクセス
権を拡張しなければならない。M A Cで得られる1
つの強力な機構は、成るプロセスに現在利用できるコー
ド及びデータに対して拡張を要求することができそして
これを動的に許可できるようにすることである。
この追加コードが意図した通りに使用されるようにする
ためには、1組の所与の入力ポイントへコードアクセス
を限定する必要がある。次いで、他のコートへのアクセ
スにより、他のデータをアクセスすることも必要となる
。例えば、ファイルシステムが1組の入力ポイント(例
えば、読み取りについて1つ、書き込みについて1つ、
オープンについて1つそしてクローズについて1つ)を
有する場合には、これらの動作を実行するためのコード
は、ファイルシステムの状態を含んだ幾つかのシステム
巾のテーブルにアクセスすることが必要となる。然し乍
ら、これらのテーブルは、ユーザプログラムからは隠れ
たものでなければならない。
更に、ファイルシステムは、ディスクに対して読み取り
及び書き込みを行なう必要があり、即ち、ファイルシス
テムから隠れたまシでなければならないデータをそれ自
体必要とするルーチンを呼び出すタスクを行なう必要が
ある。
保護領域 セグメント及びページ記述子の許可ビットに関連した典
型的なアクセス保護に加えて、MACは、保護領域とし
て知られている機構により更に別の保護を果たす。保護
領域とは、ゲートによって定められた一定の入力ポイン
トのみを経て入るような領域である。
ゲートは、セグメントテーブルポインタ、セグメントテ
ーブル長さ及び入力ポイントで構成される。許可が与え
られた時には、ゲートのセグメントテーブルポインタ及
びセグメントテーブル長さフィールドにより領域が再構
成され、プログラムカウンタは、ゲートの入力ポイント
にセットされる。ここで、ユーザプロセスは、丁度内容
が再構成された領域内のコードを実行する。このゲート
の呼び出しから復帰した時に、プロセスは、ゲート呼び
出し後のポイントからピック・アップを行なう。サブル
ーチン呼び出しの場合と同様に、ゲート呼び出しもネス
トすることができる。
従って、ゲートは、他の方法では入ることのできないル
ーチンに入ることができる。これらのルーチンを含む保
護領域は、最初は、プロセスのアドレススペースの一部
分ではないが、一時的にその一部分となる。これは、保
護リングの解決策と区別されるものであり、この解決策
では、全ての「外側」ルーチンがプロセスのアドレスス
ペース内にあるが、正しいリングレベルに適当なゲート
がない場合にアクセス権を得ることができない。
これに対し、「保護領域」の考え方は、ハードウェアに
よって支持される。
この考え方では、セグメント(その記述子においてゲー
トセグメントとして表示される)がゲートのリストを含
む。各ゲートは、許可された入力ポイントを含み、新た
な内容情報を指示する。
この内容情報は、マツピングテーブルの新たなリストと
、ゲートの新たなリストとを含む。従って、今やアドレ
スが有効な即ち新たなマツピングを有するので、新たな
1組のルーチンを使用できるようになる。データテーブ
ルも同じ方法で使用できる。ゲートに入ると、ソフトウ
ェアでは使用できない特殊なスタックに復帰情報が入れ
られ、保護領域から出る時には、この復帰情報が使用さ
れる。
実施される実際の機構は、入念に定められた特殊な条件
のもとてマイクロプロセッサ/MACの対により実行さ
れるコードの小区分を書き込むことにより、システム設
計者によって形成することができる。ゲートは、保護領
域に入った時に元に戻り、従って、保護領域に入った時
にチェックを行なう必要はない。というのは、呼び出し
プログラムにゲートを使用できるようになったことによ
り、ゲートの使用に許可が与えられたことになるからで
ある。
各プログラムは、ファイルシステムに対して1組の入力
ポイントゲートを有することができる。
その1つが使用された時には、動作を実行するためのコ
ードと状態を定めるテーブルとがプロセッサに使用でき
るようになる。更に、新たな組のゲートによりファイル
システムはディスク処理ルーチンにアクセスすることが
できる。これらルーチンがゲートを通してアクセスされ
ると、必要なコード及びデータが使用できるようになる
にれを実行するに要する時間は、特定の動作によって決
まる。然し乍ら、30マイクロ秒以内に保護領域に入れ
るように非ハイアラーキシステムを実施することもでき
る。
次に、好ましい実施例を68010/20マイクロプロ
セツサに関連付けて説明する。モトローラ社の6801
0及び68020仮想メモリマイクロプロセツサは、V
AX (デジタルイクイップメント社)のような高級な
マイクロコンピュータの性能をもつスーパーマイクロコ
ンピュータシステムを構成するためのコンピュータの核
をなすものである。このコンピュータ核は、所望の性能
仕様に合致する設計をとった後にのみ高性能コンピュー
タとなる。このような作業は、核の理論的な性能を実際
のシステムの実際の性能とすることができるようなVL
SI部品を設計者が見つけることに基づく。
実際のシステム設計では、常に、マイクロプロセッサの
理想的な性能より低いものとなる。というのは、プロセ
ッサのメモリ管理技術並びにこれに関連したシステムメ
モリ及びそのインターフェイスには本来遅延があるから
である。
プロセッサは、常に、メモリより高速である。
これは本来その技術によるものであるから、メモリハイ
アラーキといった構造技術によって、このような速度の
不一致を改善することができる(完全に排除することは
できない)。
このようなハイアラーキ構造では、小型で高速なキャッ
ジメモリがプロセッサの最も近くに置かれる。このキャ
ッジには、各々のプロセッサメモリ参照の内容、即ち、
プログラム及びデータのコピーが動的にロードされる。
典型的に、全てのメモリ読み取り参照の95%までが1
6にバイトのキャッジ内に見られる。
キャッジの管理は、MACに向けられた第1のシステム
の問題であり、M A Cは、キャッジを制御するため
の全ての論理及び識別メモリを含み、そしてキャッジは
、ここに示す実施例では、ユーザにより、IKバイトと
32にバイトとの間で構成することができる。
第2のシステムの問題は、メモリの管理である。この点
において、MACは、メモリ分割についての融通性のあ
る構成体によって、その対応マイクロプロセッサの全ア
ドレッシング範囲を与える。MACは、ページ(ユーザ
がそのサイズを選択する)、セグメント(ユーザが全ア
ドレススペースについて選択する)又はページ化セグメ
ント(メモリの隣接領域にセグメントを配置する必要を
回避する)においてアドレススペースを分割することが
できる。
更に、MACは、入力/出力、即ち、仮想I10に対し
て解決策を与える。その利点は、マイクロプロセッサと
r/○コントローラとの間に仮想アドレスバスが形成さ
れることである。その結果、システムの速度が非常に速
くなる。
従って、MACは、真の高性能システムに必要な全ての
素子をなすようにマイクロプロセッサと結合される「シ
ステムチップJと考えることができる。MACは、この
ように一体化される第1のシステム素子であるから、従
来の設計を制限していた制約の幾つかが排除される。そ
の結果、システムの速度を高めるような従来の問題に対
する幾つかの新たな解決策が見つかる。
MACの構造 第1図は、単一のシリコンチップ上に形成される本発明
の好ましい実施例によるメモリアクセス制御装置MAC
の構造を示すブロック図である。
このMAC20は、3つの主サブシステム、即ち、キャ
ッジコントローラ24、変換用ルック・アサイド・バッ
ファ26及びマイクロコントローラ22を備えている。
キャッジコントローラ24は、外部のスタテイマクRA
Mキャッジに対し、必要な全ての一致及び制御論理を果
たす。ハードウェアレベルにあるこのようなキャッジは
、公知であり、ここでは詳細に説明しない。キャッジコ
ントローラ24は、内容によってアドレスできるメモリ
32を備え、このメモリは、バス52を経て受信する上
位の仮想アドレスによってアドレス可能である。
内容によってアドレスできるメモリ32からの等価信号
によりランダムアクセスメモリ34内の当該位置がアド
レスされる。この時、ランダムアクセスメモリは、下位
の仮想及び物理アドレスを出力バス64に出力する。キ
ャッジコントローラ24には、更に、保護論理回路も設
けられている。この論理回路は、バス52を経て上位の
仮想アドレスの小組を受信すると共に、これと並列に入
力54を経てこのようなアドレスを受信し、第3図ない
し第5図について以下で述べる保護機構の役目を果たす
。図示されたように、この保護論理回路には、当該制御
信号をMACの他の部品及びサブシステムに出力するた
めの出力端子も設けられている。更に、「ヒツト」アン
ドゲート66も設けられており、このアンドゲートの1
つの入力は、RAM34から通じており、そしてその他
方の入力は、特に図示されていない保護論理回路から通
じている。その両方の信号が「1」である場合には、「
ヒツト」が生じ、ライン67を経て「データ確認出力」
信号が送られる。更に、ライン68のキャッジ制御信号
は、キャッジコントローラ24から、これに接続できる
キャッジへ送られる。キャッジメモリはその容量に限度
があるため、少数の物理アドレスビット(16にバイト
のキャッジに対して14個)しか必要とされないことに
注意されたい。簡略化のため、メモリ32.34の内容
を更新する手順については、詳細に説明しない。
変換用のルック・アサイド・バッファは、仮想アドレス
を、システムメモリ内の対応する物理アドレスに変換す
るのに使用される。このため、変換用のルック・アサイ
ド・バッファは、内容によってアドレスできるメモリ3
0も備えている。
更に、メモリ30からの出力信号によってアドレスされ
るページ記述子RAM28も設けられている。このRA
M28からの出力は、バス58に接続される。変換用の
ルック・アサイド・バッファ26には、保護論理回路5
oと並列に、若干類似した保護論理回路48が設けられ
ている。
マイクロコントローラ22は、他のものの中でも、変換
用のルック・アサイド・バッファ26の内容を更新する
のに使用される。更に、これによって、多数の色々なア
ドレス動作が実行される。
このため、バス52にインターフェイスするバレルシフ
タ38が設けられており、これにより、アドレスの桁レ
ベルのシフトが行なわれる。更に、レジスタバンク36
も設けられている。又、アドレス量を加えると共に他の
演算機能を実行するALU46も設けられている。これ
ら全ての素子は、バス58に相互接続され、バス58は
、物理アドレスが発生された時にこれを出方するように
接続されている。コントロールレジスタ4oは、適当な
制御データを記憶する。バス制御論理回路44は、例え
ば、バスハンドシェイクプロトコルを実行するために、
プロセッサ(図示せず)及び主メモリ(図示せず)と制
御信号(ライン60を経て受信できるような)を両方向
に通信する。更に、マイクロコントローラ22は、バス
64に接続されたデコード論理回路を備えている。ここ
では、レジスタバンク36内のレジスタを選択したり、
マイクロコードシーケンサを制御したりするために特定
の制御信号が発生される。マイクロコードシーケンサは
、マイクロコン、トローラ22に一般的に設けられるも
ので、簡略化のため図示されていない6更に、入力56
を経て読み取り/書き込み制御信号を受信できる。
第1図のブロック図に示された大部分の素子は、一般的
なものであるが、それらの新規性及び効果は、それらの
組み合わせ及び新たな機能にあることに注意されたい。
それ故、これらの機能について以下に詳細に説明する。
キャッジコントローラ及びTLBは、はとんどの読み取
りをキャッジから行ない、多数の書き込みをそれに続く
読み取りと重畳させ、然も、MACのMMUの動作をM
ACのキャッジの動作と並列に行なわせるので、システ
ムの作動速度を高める。
好ましい実施例 本発明システムのこの動作の作用は、領域の考え方を保
護ドメインの考え方と結合して保護領域を形成すること
である。保護領域は、(1)新たなリソースに素早くア
クセスできるようにし、(2)これらリソースを操作す
るための成る形式の動的なルーチンリンクを与えそして
(3)認知の必要性に基づいてリソースへの保護アクセ
ス経路を形成するという効果を有する。大部分の場合、
保護領域は、成るプロセスがその関連ゲートを経てアク
セスできる1組のリソースを定める。この場合のリソー
スは、データ構造を処理するルーチンと考えるべきであ
るが、他のリソースとしては新規なゲートがある。最初
2プロセスは、その保護領域に関連して定められた1組
のゲートでスタートする。ドメイン呼び出しを用いてゲ
ートを通してその領域のリソースにアクセスすると、そ
の領域のアドレススペースの内容が再構成される。
リソースは(最初)プロセスのアドレススペース内にな
いので、プロセスがリソースをアクセスできる方法は他
にはない。保護領域内のドメインがらドメインへの移動
は、本質的に、分岐ツリーを介してのウオークであり、
リソースへのアクセス路は、「アクセスツリーノの分岐
路に対応する6保護領域は、明らかに保護されたやり方
でルーチンの形成を変更するのに有用である。例えば、
成るプログラムは、特定のデータ構造体に対し「追加」
、「削除」、「挿入」といった基本的など宇佐を使用し
、これら基本的な動作に対して幾つかのゲートを参照す
る。その後、その下にあるデータ構造体を変更できるが
、この新たなデータ構造体に対する同様の組のゲートへ
のドメインの変更である場合には、同じゲート番号を使
用できる。
この作用は、メニュー状システムに有用である。
従って、ドメインを変えることにより、ルーチンに対し
てゲート番号を異なったやり方で結合し。
動的なリンク構成体を効果的に形成することができる。
保護領域の実施について詳細に述べる。保護領域は、動
作及びそれらのデータ構造を不適切な、アクセスから保
護できるようにする1つの方法である。保護領域は、1
つ又は複数のゲートを通してしか入ることのできないア
ドレススペース(即ち、ドメイン)である。ゲートは、
特定のアクセスを行なえるようにするもの(即ち、キー
)である。このようなものを設けないと、アクセスを行
なうことはできない。ゲートは、領域に関連したアドレ
ススペースの内容を再構成すると共にこの新たなアドレ
ススペースに向かう選択された実行入力ポイントを定め
るに充分な情報を与える。この新たなアドレススペース
もゲートを含んでいるので、これらゲー1〜は、次々の
アドレススペースドメインを通るツリー状のアクセス経
路を与える。
ゲートは、ゲート記述子及びゲートモジュールで構成さ
れる。ゲート記述子は、セグメントテーブルポインタ、
セグメントテーブル長さ及び入力ポイントで構成される
。例示的なゲート記述子のフォーマットが第3図に示さ
れている。入力ポイントは、保基領域内でアクセスされ
るルーチンに関連される。ゲート記述子は、ゲートセグ
メントとして知られている特殊なセグメントに保持され
る。
簡単化のため、ここでは、ゲートを特定の領域(即ち、
領域2)に限定するものとする。ゲートモジュールは、
ゲート機能を実行するコードと、それまでのゲート入力
を追跡する制御スタックとで構成される。ゲートモジュ
ールの例示的なフォーマットが第4図に示されている。
ドメイン変更命令を用いて、1つの保護領域内で成るド
メインから別のドメインへ切り換えが行なわれる。この
命令に対するアーギュメントは、ゲート番号である。こ
こに示す実施例では、ドメイン変更命令を処理すると、
次のような動作が行なわれる。
1、ゲート番号を用いてゲートセグメントをアクセスし
、それに関連したゲート記述子を見つける。ゲート記述
子が有効でない場合には、欠陥信号が発生される。
2、プログラムカウンタの実際の内容を特殊な制御スタ
ックに入れる。
38領域2(当該領域)のセグメントテーブルポインタ
レジスタ及びセグメントテーブル長さレジスタの現在の
内容を同じ特殊な制御スタックに入れる。
4、このようにして見つけたゲートをアクセスし、それ
に関連した新たなセグメントテーブルポインタ及び新た
なセグメントテーブル長さ記述子を関連領域2のレジス
タに入力する。
5、ゲート入力ポイントのアドレスをプログラムカウン
タに入力する。
ドメイン復帰命令を用いて。保護領域内の呼び出された
ドメインから復帰が行なわれる。基本的に、領域2のセ
グメントテーブルポインタ及びセグメントテーブル長さ
についての古い値が上記の制御スタックの最上部からポ
ツプされてそれに関連した領域2のレジスタに復帰され
、復帰アドレスも制御スタックからポツプされてプログ
ラムカウンタに入れられる。
保護ドメインの考え方は、ハードウェア及びソフトウェ
アを色々に組み合わせて多数のやり方で実施することが
できる。ここでは、68000をベースとするマイクロ
プロセッサシステム及びメモリ管理機能を果たすメモリ
アクセスコントローラ(MAC)について保護ドメイン
を実施するものとする。ドメインの入力/出力機構は、
幾つかの余分なリソース、即ち、ドメイン動作の状態を
表わすイン・プログレス(処理中)ビットを必要とする
ドメインは、ゲートを通さなければアクセスできない。
ゲートは、アドレス可能な対象物であって、これは、第
3図に例示的にフォーマットが示されたゲート記述子と
、第4図に例示的にフォーマットが示されたゲートモジ
ュールとで構成される。ゲート記述子は、各8ビツトの
16バイトで植成される。第1のバイトにおいては、1
つのビットVが有効フィールドを含んでいる。記述子は
、■=0の場合に有効となる。この第1バイトの他部分
は、使用されない。次の3バイト(132)は、領域の
セグメントテーブルの長さを指示する。次の4バイト(
134)は、領域のセグメントテーブルポインタを含む
。次の4バイト(136)は、ドメインの入力ポイント
を含む。最後の4バイト(138)は、今のところ、将
来実施する有用な機能のためにとっである。
ゲートセグメントにおいては、ゲート記述子1がゲート
iに組み合わされる。従って、ドメインセルを経てゲー
ト記述子がアクセスされた時には、この記述子のVビッ
トが、ゲートが有効であるかどうかを決定する。ドメイ
ンセル以外のものによってアクセスされるのを防ぐため
、間接ゲート記述子が、それらのE、W及びR保護ビッ
トにより、欠陥信号を生じることなく、直接的な読み取
りアクセスのみを実行できるようにする。従って、Rビ
ット(読み取り)が「1」にセットされる。Eビット(
実行)及びWビット(書き込み)は、0にセットされる
。それ故、ゲートへの書き込みアクセス又は実行アクセ
スによって欠陥信号が生じる。前記したように、このよ
うな欠陥信号により、監視プログラムへの呼び出しが生
じる。
ゲートモジュール(第4図)は、ドメイン変更動作のた
めのコードと、それまでのドメインセルを一時的に記憶
するための制御スタック(前記した)とを備えた特殊な
セグメントである。この特殊なセグメントは、実行(E
)、読み取り(R)又は書き込み(W)許可がセットさ
れていない。
従って、いかなるアクセスが生じても、MACは、成る
矯正的な処置をとるようにされる。
ドメインの呼び出しは、分割できない動作である。標準
的なジャンプサブルーチン命令JSR(An)を用いて
プロセスがスタートされる。ここで、アドレスレジスタ
Anの内容がプログラムカウンタ(pc)に入れられ、
JSR命令に続くアドレスがシステムスタックに入れら
れる6レジスタAnの内容は、ゲートモジュールの第1
ページ(O)、即ち、ドメイン変更コードを参照しなけ
ればならない。JSR命令が実行された後、次の命令フ
ェッチにより、MACは、アクセス許可のないしょうた
いE=R=W=Oで記述子を処理するようにされる。通
常は、これによってアクセス違反となり、前記の欠陥信
号が生じる。然し乍ら、この特定の場合には、次の条件
のもとてのドメイン変更に対し、アクセス違反が回避さ
れる。
1、MACに送られたアドレスがページ番号0及びオフ
セットOを有する。
2、アクセスがプログラム及び読み取りアクセスである
3、イン・プログレス(処理中)ビットがセットされな
い。
これらの条件がいずれも得られない場合には、アクセス
違反となる。さもなくば、イン・プログレスピットがセ
ットされ、ドメインの変更がスタートする。イン・プロ
グレスピットは、これがセットされている間は、E、R
及びWによって定められる必要な許可に拘りなく、全て
のアクセスが有効であるという点で、MACの保護機構
に影響を及ぼす。Anのアドレスは、ゲートモジュール
制御コードの第1アドレスである。MACの保護が与え
られた後は、アクセス違反の発生に拘りなく制御プログ
ラムを実行することができる。これにより、制御プログ
ラムは、監視状態になくてもMACの全てのレジスタを
アクセスすることができる。いうまでもなく、制御プロ
グラムは、信頼性の高いものであるように、欠陥のない
コードでなければならない。これは、広範なテスト及び
/又は通常の動作条件の模擬によって確保される。
又、イン・プログレスピットは、成るプロセスに対する
手前のドメイン変更命令が完了するまで。
その同じプロセスに対するドメイン変更命令が実行され
ないようにする。イン・プログレスピットは、制御プロ
グラムから出る時にセットされる。
制御プログラムは1次のような段階を実行する。
1、ゲートモジュールのスタックポインタを減少し、ス
タックカウンタを増加する。
2、復帰アドレスをユーザスタックからゲートモジュー
ルスタックへ転送する。
3、ユーザスタックの最上部からゲート番号を得、ゲー
トモジュールページ2内の指定のゲートセグメントをア
クセスする。
4、ゲート番号に関連したゲートセグメント内のゲート
記述子が有効でない場合には、欠陥信号を発生する。
5、さもなくば、ゲート記述子内の新たな5TPR(1
34)、5TLR(132)及び入力ポイント(136
)をアクセスする。
6、古い5TPR及び5TLRをゲートモジュールスタ
ックに・入れる。
7、マイクロコントローラ内に形成された第ルジスタで
あるレジスタA。にドメインの入力ポイントを入れる。
8、ゲート記述子からの5TPR及び5TLR情報をそ
れに関連した領域2のレジスタに入れる。
9、第5図に一例としてフォーマットが示された命令J
MP (MACアドレス)を実行する。
この4バイト情報がメモリからフェッチされた時には、
MACが選択され、コマンドRA (6ビツト)を実行
する62ビツトのフィールドRNは。
当該領域を指定する(ここでは、前記したように領域2
)。コマンドRAは、このように指定された領域に基づ
いて動作し、イン・プログレスピットをリセットし、ジ
ャンプ命令JMP(Ao)に復帰する。従って、プロセ
ッサは、ジャンプ命令を実行し、プログラムカウンタは
、新たなドメイン内の正しい命令を実行するような位置
とされる。
ドメインからの復帰も分割できない動作である。標準的
なジャンプ命令JMP(An)を用いてプロセスがスタ
ートされる。ここで、アドレスレジスタAnの内容がプ
ログラムカウンタ(pc)に入れられる。レジスタAn
の内容は、ゲートモジュールの第2ページ(1)を参照
しなければならない。JMP(An)命令を実行した後
、次の命令フェッチにより、MACは、アクセス許可な
しに、記述子を処理する。通常は、これにより。
アクセス違反が生じ、欠陥信号が発生する。然し。
次のような条件のもとでは、ドメインの変更に対し、ア
クセス違反が回避される。
1、MAcに送られたアドレスがページ番号1及びオフ
セット○を有する。
2、アクセスがプログラム及び読み取りアクセスである
3、イン・プログレスビットがセットされなり111 これら条件のいずれも有効でなければ、アクセス違反が
生じ、さもなくば、イン・プログレスビットがセットさ
れ、復帰がスタートする。イン・プログレスビットは、
これがセットされている間は、全てのアクセスが有効で
あるという点で、MACの保護機構に影響を及ぼす。A
nのアドレスは、ゲートモジュール復帰制御コードの第
1のアドレスである。MACの保護を受けた後、制御プ
ログラムは、アクセス違反なしで実行することができる
。これにより、制御プログラムは、監視状態になくても
、MA、Cの全レジスタをアクセスすることができる。
これを適切に行なうためには、制御プログラムが信頼性
の高いコードでなければならない。この場合も、イン・
プログレスビットは、成るプロセスに対する手前のドメ
イン命令が完了するまでその同じプロセスに対し別のド
メイン命令が実行されないようにする。イン・プログレ
スビットは、制御プログラムから出る時にセットされる
。制御プログラムは、次のような段階をとる。
1、古い5TPR及び5TLRを得、制御スタックから
のアドレスを復帰する。
2、復帰アドレスをレジスタAoに入れる。
3、古い5TPR及びS−T L Rを復帰する。
4、第5図に一例としてフォーマットが示された命令J
MP (MACアドレス)を実行するが、1つの相違点
は、6ビツトコマンドRAがここではコマンドRDに代
わることである。この4バイト情報がメモリからフェッ
チされた時には、MACが選択され、コマンドRDを実
行する。この例でもフィールドRNは、領域2を指定す
る。コマンドRDは、このように指定された領域に基づ
いて動作し、イン・プログレスビットをリセットし、ジ
ャンプ命令JMP(Ao)を復帰する。従って、プロセ
ッサは、ジャンプ命令を実行し、プログラムカウンタは
、古いドメイン内の正しい命令を実行するような位置と
される。
制御スタックは、模擬スタックである。これは、ゲート
モジュールの1ページ内に完全に含まれる。ゲートモジ
ュールは、スタックポインタ、スタックカウンタ及びこ
れに関連したスタックデータエリアで構成される。スタ
ックにエレメントを入れる動作は、スタックポインタを
減少し、これを用いて、新たなスタックデータを配置す
るようにスタックデータ溝造体を指示することより成る
。更に、スタックカウンタが増加される。スタックカウ
ンタの位置は、スタック上のエレメントの数を指示する
。スタックからエレメントを出す動作は、スタックポイ
ンタを用いてスタックデータエリアを指示し、データを
アクセスし、次いで、スタックポインタを増加すること
より成る。更に、スタックカウンタが減少される。
マイクロプロセサ68020は、内部命令キャッジを有
する。ドメイン機構が適切に動作するためには、このキ
ャッジもドメイン入力及びドメイン出力でアクセスしな
ければならない。これは、ドメイン呼び出し及びドメイ
ン復帰コマンドに対して成る程度の追加を意味する。又
、キャッジを作動させることが問題である。というのは
、これを行なうコマンドは、監視モードで実行しなけれ
ばならないからである。従って、キャッジは、MACに
よって作動されない。68020には外部ピンがあり、
これに信号を送ると、6802.0はその内部キャッジ
をバイパスする。この信号は、一連のドメイン呼び出し
の最初の呼び出しの際に発生され、この一連のドメイン
呼び出しから最後に復帰する際に終了される。内部フリ
ップ−フロップは、この発生を処理する。最初のドメイ
ン呼び出しの際には、MACがこのフリップ−フロップ
をセントし、最後のドメイン呼び出しの際に、MACが
このフリップ−フロップをリセットする。
ソフトウェアには、ドメインカウンタ、即ち、スタック
カウンタがあり、これは最初Oにセットされる。ドメイ
ン変更コマンドの際には、このカウンタが増加され、一
方、ドメイン復帰コマンドの際には、二〇カウンタが減
少される。位置Oから位置1へのカウンタの移行により
、外部フリップ−フロップがセットされ、一方、1から
0へのカウンタの移行により、外部フリップ−フロップ
がリセットされる。この内部フリップ−フロップは。
MACにより間接的にアドレスされる。内容が切り換わ
ることによりデータが古くなるという問題を回避するよ
うに68020キヤツジを作動するのは、ソフトウェア
である。
イン・プログレスピットを読み取ったり書き込んだりす
るためのコマンドが必要である。これらのコマンドは、
RI及びWIである。コマンドR1は、イン・プログレ
スピットを読み取ると共にリセットし、一方、コマンド
WIは、イン・プログレスピットを書き込む。
ドメイン動作中に割込みが発生された場合には、イン・
プログレスピットに対して何かを行なわねばならない。
さもなくば、何の保護もなしに割込みルーチンが実行さ
れてしまう。これに対する解決策は、割込みルーチンに
入る時にイン・プログレスピットを読み取ってリセット
すると共に、割込みルーチンから復帰する時にイン・プ
ログレスピットを復帰することである。
ドメイン変更コマンドは、次のような68000コード
で実行することができる(68000ユーザマニユアル
も参照されたい)。
movea、1 5tackcntr、 Ao   ス
タックカウンタを得る    16(410)addq
、1   #1. A、      スタックカウンタ
増加     8(Ilo)lea、l   5tac
kcntr+ A1   スタックカウンタアドレスを
得る8(210)mve、I   A、、 (AJ  
   スタックカウンタ更新     12(1/2)
movaa、1 5tackpointer、 A、、
模擬スタックポインタを得る  16(410)add
q、1  12. A、、       スタックポイ
ンタ増加      8(Ilo)move、I   
(A、)+(A=)     復帰アドレスをスタック
に入力 20(3/2)move、1   (A7)十
、Do      ゲート#を得る         
 12(310)、1IS1.11   A4. Do
       16で乗算          10(
Ilo)move、1   gateseg+nent
、 A、  ゲートセグメントアドレスを得る16(4
10)adda、I   Do+ A1       
ゲートアドレスの計算     8(Ilo)菊νe、
1   (A□)、賜     ゲートの第1ワードを
得る    12(3/のbmi、1   error
       無効V=1の場合にエラー   10(
210)addq、1  12. A、       
スタックポインタ増加     8(110)move
、I   MACadrSTPR,(A、)古い5TP
Rをスタックに入力 28 (5/2)addq、l 
  12. Ao       スタックポインタ増加
     8(Ilo)move、I   MAcld
rSTLR,(An)古い5TLRをスタックに入力 
28 (5/2)lea、1  5tackpoint
er、 A、スタックポインタアドレスを得る8(21
0)move、I   Ao+ (Ax)      
スタックポインタ更新     12(1/2)mpv
e、 1   (A、 )+MACadrS且上 新た
な値を5TLRに入力   2g(5/2)mpve、
1   (A、)+MACadrSTPR新たな値を5
TPRに入力   28(5/2)mpvej   (
A+)+ Aa     入力アドレスをAOに入力 
  12(310)jmp、I   MACadrE 
     入力ボンドにジャンプする準備 12(31
0)↓ ↓    これにより生じる命令 ↓ ↓ jmp、1   (Ao)       入力ボンドへ
ジャンプ     8(Zlo)ドメイン変更コマンド
は、336のタロツクサイクルを必要とする。ここでは
、レジスタA0、A4、A2及びDoが入力の際に新た
なドメインにセーブされ、そのドメインから戻る際に復
帰するものと仮定する。
ドメイン復帰呼び出しは、次のような680oOコード
で実行することができる。
move、1  5tackcntr+ Ax   ス
タックカウンタを得る    16(4/のbeq、l
   error       1つのドメイン力饗し
過ぎ  10(210)subq、1   $1. A
1      スタックカウンタ減少     8(Z
10’)lea、l   Ax、(Ao)     ス
タックカウンタ更新     12(1/2)move
a、1 5tackpointer、 A、模擬スタッ
クポインタを得る  16(410)move、l  
 (A、)、 MACadrSπ、R古い値を5TLR
に入力    28(5/2)subq、1  82.
 A、       スタックのポツプ       
 8(Ilo)movc、l   (A1)、 MAC
adrSTPR古い値を5TPRに入力    28(
5/2)subq、1  82. A、       
スタックのポツプ        8(Ilo)mov
e、L   A、、 (Δ。)    復帰アドレスを
Aoに入力   12(310)subq、1  82
.A1      スタックのポツプ        
8(Ilo)lea、1  5tackpointer
、 A2スタックポインタアドレスを得る8(210)
movc、 l   MACadrR復帰の準備   
       12 (310)↓   これにより得
られた命令 ↓ ↓ jump、1   (An)       入力ポイン
トへジャンプ    8(210)ドメイン復帰呼び出
しには、202個のクロックサイクルが必要である。
その他のドメイン復帰手順も考えられる。例えば、エラ
ー復帰ドメイン呼び出しは、制御スタックからポツプし
、一連のネストされたドメイン呼び出しにおいて第1の
ドメイン呼び出しを発生する最初のプログラムに復帰す
ることができる。
【図面の簡単な説明】
第1図は、本発明によるメモリアクセス制御装置のアー
キテクチャを示すブロック図、第2図は、領域の考え方
を示す概略図、第3図は、ゲート記述子のフォーマット
を例示的に示す図、 第4図は、ゲートモジュールと称する特殊なセグメント
のフォーマットを例示的に示す図、そして 第5図は、命令JMP  MACアドレスのフォーマッ
トを例示的に示す図である。 22・・・マイクロコントローラ 24・・・キャッジコントローラ 26・・・変換用ルック・アサイド・バッファ28・・
・ページ記述子RAM 30.32・・・内容でアドレスできるメモリ34・・
・ランダムアクセスメモリ 36・・・レジスタバンク 38・・・バレルシフタ 40・・・コントロールレジスタ 42・・・デコード論理回路 44・・・バスコントローラ 46・・・AI、U 48.50・・・保護論理回路 66・・・アンドゲート 100・・・システムメモリ 102・・・オペレーティングシステム104・・・シ
ステムライブラリ 106・・・プロセスAIコード及びデータ108・t
・プロセスB−7コード及びデータ110=1.18・
・・オペレーティングシステム114.122・・・シ
ステムライブラリ116・・・プロセスAIコード及び
データ118・・・プロセスB;コード及びデータ13
0・・・未使用 132・・・セグメントテーブル長さ 134・・・セグメントテーブルポインタ136・・・
入力ポイント 138・・・リザーブ済

Claims (12)

    【特許請求の範囲】
  1. (1)情報を記憶するためにメモリに接続されると共に
    、複数の識別可能なアドレススペースに仕切られている
    ような第1の接続部と、中央処理ユニットに接続されて
    ここから仮想アドレス情報を受け取るようにされた第2
    の接続部とを具備していて、データ処理システムに使用
    されるメモリアクセス制御装置において、 上記中央処理ユニットで実行できる少なくとも1つのプ
    ロセスの仮想アドレススペースを、長さが可変な少なく
    とも2つの領域に仕切る第1のプログラム可能な手段と
    、 命令及びデータを上記領域の各々に割り当てる第2のプ
    ログラム可能な手段と、 情報を受け取り、上記領域の各々に対する各保護レベル
    及びこれに関連したアクセス許可レベルをアクセスする
    第3のプログラム可能な手段と、情報を受け取り、上記
    アドレススペースのサブスペースに対する入力ポイント
    を指定する第4のプログラム可能な手段と、 上記各領域内の仮想アドレスを物理メモリの上記各サブ
    スペース内の物理アドレスへとマッピングするアドレス
    マッピング手段と、 条件によってアクセスできる更に別の保護領域を定める
    と共に、この保護領域のための少なくとも1つの固定の
    入力ポイントも定めるようなゲート構造体を参照するこ
    とによって、所定の領域内で、上記領域に関連した仮想
    アドレススペースの内容を再構成する手段とを具備した
    ことを特徴とするメモリアクセス制御装置。
  2. (2)ゲートは、ゲート動作を実行するゲートモジュー
    ルと、セグメントテーブルポインタ、セグメント長さ及
    び入力ポイントを有するゲート記述子とを備えている特
    許請求の範囲第(1)項に記載の装置。
  3. (3)各領域は、それに関連したセグメントテーブルポ
    インタ及びセグメントテーブル長さによって定められる
    特許請求の範囲第(1)項又は第(2)項に記載の装置
  4. (4)プロセスのアドレススペースは、そのセグメント
    テーブルを再構成することによって変更される特許請求
    の範囲第(3)項に記載の装置。
  5. (5)アドレススペースの1つのセグメントは、ゲート
    のリストである特許請求の範囲第(4)項に記載の装置
  6. (6)保護領域から出る際に使用される復帰情報を記憶
    するスタックを更に備えた特許請求の範囲第(1)項な
    いし第(5)項のいずれかに記載の装置。
  7. (7)上記装置は、単一の集積回路チップに含まれる特
    許請求の範囲第(1)項ないし第(6)項のいずれかに
    記載の装置。
  8. (8)上記メモリは、複数の上記アドレスサブスペース
    を含む特許請求の範囲第(1)項ないし第(7)項のい
    ずれかに記載のメモリ。
  9. (9)上記メモリは、ページ構成を維持する特許請求の
    範囲第(8)項に記載のメモリシステム。
  10. (10)上記メモリは、セグメント構成を維持する特許
    請求の範囲第(8)項に記載のメモリシステム。
  11. (11)特許請求の範囲第(1)項ないし第(7)項の
    いずれかに記載の装置に相互接続されたメモリと、仮想
    アドレスデータを上記装置に送るように上記メモリ及び
    上記装置に相互接続された中央プロセッサとを備えたこ
    とを特徴とするコンピュータシステム。
  12. (12)並列処理を行なうように特許請求の範囲第(1
    1)項に記載のコンピュータシステムを複数個備えたこ
    とを特徴とするデータ処理システム。
JP60180388A 1984-08-17 1985-08-16 メモリアクセス制御装置 Expired - Lifetime JPH0642212B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US641793 1984-08-17
US06/641,793 US4677546A (en) 1984-08-17 1984-08-17 Guarded regions for controlling memory access

Publications (2)

Publication Number Publication Date
JPS6184756A true JPS6184756A (ja) 1986-04-30
JPH0642212B2 JPH0642212B2 (ja) 1994-06-01

Family

ID=24573875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60180388A Expired - Lifetime JPH0642212B2 (ja) 1984-08-17 1985-08-16 メモリアクセス制御装置

Country Status (4)

Country Link
US (1) US4677546A (ja)
EP (1) EP0171859B1 (ja)
JP (1) JPH0642212B2 (ja)
DE (1) DE3587694T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146030A (ja) * 2009-12-15 2011-07-28 Canon Inc メモリ保護方法および情報処理装置
JPWO2020226054A1 (ja) * 2019-05-07 2020-11-12

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support
US4918653A (en) * 1988-01-28 1990-04-17 International Business Machines Corporation Trusted path mechanism for an operating system
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
DE68923863T2 (de) * 1989-01-13 1996-03-28 Ibm Ein-/Ausgabecachespeicherung.
US5161219A (en) * 1989-01-13 1992-11-03 International Business Machines Corporation Computer system with input/output cache
DE3901457A1 (de) * 1989-01-19 1990-08-02 Strahlen Umweltforsch Gmbh Verfahren zur adressbereichsueberwachung bei datenverarbeitungsgeraeten in echtzeit
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5283868A (en) * 1989-05-17 1994-02-01 International Business Machines Corp. Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5369749A (en) * 1989-05-17 1994-11-29 Ibm Corporation Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
US5369767A (en) * 1989-05-17 1994-11-29 International Business Machines Corp. Servicing interrupt requests in a data processing system without using the services of an operating system
US5325517A (en) * 1989-05-17 1994-06-28 International Business Machines Corporation Fault tolerant data processing system
US5182805A (en) * 1989-07-14 1993-01-26 Ncr Corporation Method and system for determining copy-on-write condition
US6507909B1 (en) 1990-02-13 2003-01-14 Compaq Information Technologies Group, L.P. Method for executing trusted-path commands
US5390310A (en) * 1991-09-30 1995-02-14 Apple Computer, Inc. Memory management unit having cross-domain control
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
DE69329577T2 (de) * 1992-07-01 2001-05-31 Ericsson Telefon Ab L M Verfahren und system für implementierung-unabhängige schnittstellenspezifikation
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
GB2273800A (en) * 1992-12-24 1994-06-29 Ibm Distributed data processing system
EP0691007B1 (de) * 1993-03-22 1996-11-27 Siemens Nixdorf Informationssysteme AG Wiedereintrittsfähige bibliotheken
US5548746A (en) * 1993-11-12 1996-08-20 International Business Machines Corporation Non-contiguous mapping of I/O addresses to use page protection of a process
US5651139A (en) * 1993-12-23 1997-07-22 International Business Machines Corporation Protected system partition read/write access on a SCSI controlled DASD
US5961582A (en) * 1994-10-25 1999-10-05 Acorn Technologies, Inc. Distributed and portable execution environment
US5586253A (en) * 1994-12-15 1996-12-17 Stratus Computer Method and apparatus for validating I/O addresses in a fault-tolerant computer system
US5715420A (en) * 1995-02-10 1998-02-03 International Business Machines Corporation Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US8639625B1 (en) 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
JP3031838U (ja) * 1996-05-30 1996-12-03 春彦 高橋 指保護サック
US6175916B1 (en) * 1997-05-06 2001-01-16 Microsoft Corporation Common-thread inter-process function calls invoked by jumps to invalid addresses
US6058414A (en) * 1998-01-07 2000-05-02 International Business Machines Corporation System and method for dynamic resource access in an asymmetric resource multiple processor computer system
US6330653B1 (en) * 1998-05-01 2001-12-11 Powerquest Corporation Manipulation of virtual and live computer storage device partitions
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6862689B2 (en) 2001-04-12 2005-03-01 Stratus Technologies Bermuda Ltd. Method and apparatus for managing session information
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) * 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US7310706B1 (en) * 2001-06-01 2007-12-18 Mips Technologies, Inc. Random cache line refill
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
GB2396713B (en) * 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
US7334108B1 (en) 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7296139B1 (en) 2004-01-30 2007-11-13 Nvidia Corporation In-memory table structure for virtual address translation system with translation units of variable range size
DE102004013176B4 (de) * 2004-03-17 2007-09-06 Atmel Germany Gmbh Verfahren und Vorrichtung zum Ausführen eines Programms
US7434028B2 (en) * 2004-12-15 2008-10-07 Intel Corporation Hardware stack having entries with a data portion and associated counter
US20060136679A1 (en) * 2004-12-21 2006-06-22 O'connor Dennis M Protected processing apparatus, systems, and methods
US20060222125A1 (en) * 2005-03-31 2006-10-05 Edwards John W Jr Systems and methods for maintaining synchronicity during signal transmission
US20060222126A1 (en) * 2005-03-31 2006-10-05 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining synchronicity during signal transmission
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
US7818633B2 (en) * 2007-06-29 2010-10-19 International Business Machines Corporation Method and apparatus for identification of program check errors indicating code with high potential for storage overlay
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US8549093B2 (en) * 2008-09-23 2013-10-01 Strategic Technology Partners, LLC Updating a user session in a mach-derived system environment
JP5225003B2 (ja) * 2008-10-01 2013-07-03 キヤノン株式会社 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
US20100153693A1 (en) * 2008-12-17 2010-06-17 Microsoft Corporation Code execution with automated domain switching
CA2897088C (en) 2011-05-31 2019-07-09 World Emergency Network - Nevada, Ltd. Mobile phone as a one-way recorded transmitter over a cellular network
US8824652B2 (en) * 2011-10-12 2014-09-02 World Emergency Network - Nevada, Ltd. Controlled recorded 3-way calling
AU2012275151B2 (en) 2011-06-30 2017-03-30 Callyo 2009 Corp. Attaching multiple phone lines to a single mobile or landline phone
KR101592782B1 (ko) * 2014-11-05 2016-02-12 플러스기술주식회사 전가상화 시스템에서 자원을 감시하는 장치 및 방법
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US10642752B2 (en) * 2017-07-28 2020-05-05 Intel Corporation Auxiliary processor resources
WO2022077388A1 (zh) * 2020-10-15 2022-04-21 华为技术有限公司 一种处理器的安全度量装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system
US4084227A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4099256A (en) * 1976-11-16 1978-07-04 Bell Telephone Laboratories, Incorporated Method and apparatus for establishing, reading, and rapidly clearing a translation table memory
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4388685A (en) * 1978-08-04 1983-06-14 Digital Equipment Corporation Central processor with apparatus for extended virtual addressing
US4231088A (en) * 1978-10-23 1980-10-28 International Business Machines Corporation Allocating and resolving next virtual pages for input/output
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146030A (ja) * 2009-12-15 2011-07-28 Canon Inc メモリ保護方法および情報処理装置
JPWO2020226054A1 (ja) * 2019-05-07 2020-11-12
WO2020226054A1 (ja) * 2019-05-07 2020-11-12 株式会社日立製作所 情報処理方法、情報処理装置及び記憶媒体

Also Published As

Publication number Publication date
DE3587694T2 (de) 1994-06-23
EP0171859A2 (en) 1986-02-19
JPH0642212B2 (ja) 1994-06-01
US4677546A (en) 1987-06-30
EP0171859B1 (en) 1993-12-22
EP0171859A3 (en) 1989-04-26
DE3587694D1 (de) 1994-02-03

Similar Documents

Publication Publication Date Title
JPS6184756A (ja) メモリアクセス制御装置
US3916385A (en) Ring checking hardware
US7073173B1 (en) Code and thread differential addressing via multiplex page maps
JP3268310B2 (ja) メモリ管理方法
US7401358B1 (en) Method of controlling access to control registers of a microprocessor
US6349355B1 (en) Sharing executable modules between user and kernel threads
US7043616B1 (en) Method of controlling access to model specific registers of a microprocessor
KR100705171B1 (ko) 어드레스 변환 장치 및 방법
EP0472487A2 (en) Apparatus and method for controlling access to data using domains
US20040064668A1 (en) Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
US7130977B1 (en) Controlling access to a control register of a microprocessor
JPH08278886A (ja) データ処理システムでの拡張システム管理操作のための方法およびシステム
JPH0531776B2 (ja)
EP1250644A2 (en) Protection domains for a computer operating system
JPS6248258B2 (ja)
JPS625441A (ja) 情報処理装置
US4866599A (en) Call instruction, return instruction and trap procedure for ring crossing architecture
JPH07191903A (ja) データ処理システムおよび動作方法
JPH0260012B2 (ja)
JPH0916461A (ja) 仮想メモリ・システム内で効率的な共用メモリを提供するためのシステムおよび方法
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
JPH0192856A (ja) アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法
Kaiser MUTABOR, a coprocessor supporting memory management in an object-oriented architecture
US6298355B1 (en) Computer system
US4628450A (en) Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor