JPH03154949A - ストアされたデータのプロテクシヨン方法及びシステム - Google Patents

ストアされたデータのプロテクシヨン方法及びシステム

Info

Publication number
JPH03154949A
JPH03154949A JP2276570A JP27657090A JPH03154949A JP H03154949 A JPH03154949 A JP H03154949A JP 2276570 A JP2276570 A JP 2276570A JP 27657090 A JP27657090 A JP 27657090A JP H03154949 A JPH03154949 A JP H03154949A
Authority
JP
Japan
Prior art keywords
protection
information
storage
access
stored
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.)
Pending
Application number
JP2276570A
Other languages
English (en)
Inventor
Martin Gerhard Kienzle
マーチン・ゲルハード・キイエンツル
Alexander Stafford Lett
アレクサンダー・スタツフオード・レツト
William Harold Tetzlaff
ウイリアム・ハロルド・テトザラフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03154949A publication Critical patent/JPH03154949A/ja
Pending 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/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

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 Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、一般にコンピュータ・システムにストアされ
た情報へのアクセスを制限するためのデータ保護メカニ
ズムに関するものであり、より詳細には、アドレス・ト
ランスレーション・インターバルよりもサイズの小さな
データのファイン・グレイン(fine grain)
・プロテクションに関するものである。
B、従来の技術及びその課題 たとえばIBM  S/370システムなど多くの大型
コンピュータ・システムは、ストアされたデータをオー
ソライズされていない使用から保護する手段を備えてい
る。一般にこのメモリ・プロチクシロンは、メモリの1
ページを単位とするプロチクシロン・インターバルに適
用される。S/370システムでは、ページ・サイズが
4096(4K)バイトである。ストアされた情報のプ
ロチクシロンには、アクセスの制限が必要である。
ストレージ・プロテクションには通常、リード・10 プロチクシロン、ライト・プロチクシロン、命令実行プ
ロチクシロンの3形式がある。多くのシステムは、リー
ド・プロテクションとライト・プロテクションのみを実
施している。一般に現在のシステムは、仮想メモリに記
憶された情報の4Kページのプロテクションのためにキ
ー比較法を用いている。
キー比較法は、メモリのページに関連するビットまたは
ビット・グループと、プロセスに関連しプログラム・ス
テータス・ワードにロードされたキーを比較するもので
ある。ビットとキーの比較は、メイン・メモリからプロ
セッサにオペランドをロードする時、またはプロセッサ
がメイン・メモリにオペランドをストアする時に行なわ
れる。
メモリの1ページ内の全データは、同一のストレージ・
キーと関連づけられている。したがって、プロチクシロ
ンのグラニュラリティ(プロテクション管理の単位)は
1ページである。S/370を含む多くのシステムでは
、1ページが4Kパイトチアル。AS/400システム
などの他のシステムは、ページ・サイズが異なる。
プロセッサは、仮想アドレスを用いてオペランドにアク
セスする。オペランドをメイン・メモリからプロセッサ
にロードする、またはプロセッサからメイン・メモリに
ストアするときは、仮想メモリ・アドレスをメイン・メ
モリ・アドレスに変換する。この変換は、トランスレー
ション・テーブル(ページ・テーブルとセグメント・テ
ーブル)内のメイン・メモリ・アドレスを調べることに
よって実行される。次に、キー・プロテクションによる
ストレージ・アクセス・プロチクシロンが強制される場
合には、そのデータを所期の目的に使用できるか否かが
判定される。アクセスが許可された場合には、プロセッ
サがどのようなオペレーションを実行中であっても、こ
の情報がプロセッサによって使用される。
仮想メモリ方式を用いるプロセッサは、もっとも大量の
アクセス活動を受けている仮想メモリ・ロケーションに
関する(セグメント・テーブルとページ・テーブルから
の)トランスレーション情報を維持するために、トラン
スレーション・ルック・アサイド・バッファ(TLB)
を使用するのが慣例である。TLBは、対応する仮想ア
ドレスとメイン・メモリ・アドレスの対を保持する。ど
の仮想アドレス対をTLB内にストアするかは、LRU
アルゴリズム、またはプロセッサが取り扱っている特定
のタスクに合わせて調整されたアルゴリズムを用いて選
択することができる。
仮想メモリ・アドレスにアクセスするには、プロセッサ
はまずTLBをポーリングして、メイン・メモリ・アド
レスを得る。TLB内にエントリがない場合には、トラ
ンスレーション・テーブルからトランスレーション情報
を直接取得するTLBミス・オペレーションが実行され
る。
TLBの目的は、仮想メモリ・アクセス時間をスピード
・アップすることであり、その結果プログラム全体の実
行時間もスピード・アップする。
したがって、TLBは通常、プロセッサ・ロジックに物
理的に近接しており、非常に高速でしたがって非常に高
価なメモリでできている。近い将来に13− 使用される可能性が最も高い実メモリ・アドレスと仮想
メモリ・アドレスの対だけを(LRUアルゴリズムを用
いて)保有することによって、TLBOサイズとコスト
を最小に保つことができる。
TLBと同様に、プロテクション・キー情報用のストレ
ージ・ロケーションもまた、非常に高速でしたがって比
較的高価なメモリでできている。
そうする必要があるのは、プロセッサによる素早いプロ
テクション・チエツクを可能にするためである。キー・
プロテクション情報はページのメイン・メモリ・アドレ
スと関連しているので、あるオペランドのプロチクシロ
ン状況をチエツクする場合、プロテクション情報を決定
する前にそのオペランドのメイン・メモリ・アドレスを
得る。すなわち、キー・プロチクシロン法の下でのアク
セスは、一般にTLBのルック・アップが行なわれた後
に行なわれるのであって、それと並行して行なわれるの
ではない。さらに、キー・プロテクタ1ンは、プロセッ
サによるストレージの参照のみならず、入出力サブシス
テムによるストレージの参14− 照にも及ぶ。キー・ストレージに対する入出力アクセス
は、キー・ストレージを実施するシステムの複雑さとコ
ストとを増大させる。
キー・プロテクション法の複雑さのコストとサイズの制
限により、メモリの1ページより小さいストレージ・セ
クションをプロテクトすることは非実用的であり、非効
率である。しかし、多くのアプリケーションでは、隣接
するセクションをプロテクトしながら、ページよりも小
さなセクションにストアされた情報を修正することが望
ましい。
C6課題を解決するための手段 本発明は、コンピュータ・システム内にストアされたデ
ータを、ストアされた情報へのアクセスを制限すること
によって保護するためのシステムおよび方法である。前
記のアクセスの制限は、ストアされた情報の、特定のシ
ステムのページ・サイズよりも小さな部分に対して適用
できる。
アクセス制限は、ストアされた情報のアドレスと共にス
トアされるプロテクション・ビットを使用する。1つま
たは複数のプロテクション・ビットのセットが、ストア
された情報のセグメントまたは部分に対応する。これに
より、ストアされた情報の個々の部分に対するアクセス
制限を指定することが可能になる。アクセス制限能力を
備えることを、ファイン・グレイン・ストレージ・プロ
テクションと称する。
1つまたは複数のプロテクション・ビットのセットが、
異なる様々な形式のプロテクション・フィールドを表す
。共用レジスタ内で指定されたアクセス制限と併用して
、プロテクト/非プロテクト状態を表す1個のビットを
設けることができる。各ビットが1つの形式の記憶プロ
テクションを表す複数のビットを設けることができる。
また、1セツト内の複数のビットをパターン(たとえば
、0O101,10,11など)として用いて、ストレ
ージ・プロテクションの特定の範囲を表すこともできる
プロテクション・ビットをストアされた情報のアドレス
情報と関連づけることによって、アクセス要求を許可す
るか否かをより速やかに決定することが可能になる。こ
の決定は、ストアされた情報の検索とほぼ並行して行な
われる。
D、実施例 本発明は、プロテクシ日ン情報を保持するメイン・メモ
リ空間を増加する必要がほとんどなく、実行速度および
アクセス速度を犠牲にしない、ファイン・グレイン・ス
トレージ・プロテクションを提供するものである。
第1図に、本発明の模範的な実施例で使用されるファイ
ン・グレイン・プロテクション法のオペレーションの流
れ図を示す。プロセッサが所与のストレージ・ロケーシ
ョンにアクセスする必要があるとき、ブロック10で、
プロセッサはまずオペランド・アドレスをTLBに渡す
。オペランド・アドレスが仮想メモリ内にある場合、T
LBはメイン・メモリ・アドレスと仮想メモリ・アドレ
スの対を、それぞれに関連するフィールド・プロチクシ
ロン・ビットと共に含んでいる。オペランド・アドレス
が実メモリ内にある場合、TLBはメイン拳メモリ・ア
ドレスとそれに関連するフィール7 ド・プロチクシロン・ビットだけを含む。
ブロック12に進んで、このオペランド・アドレスを求
めてTLBを走査し、それが見つかった場合は、メイン
・メモリ・アドレス(仮想メモリ参照用)とオペランド
・アドレスに関連するフィールド・プロテクションとを
決定する。見つからなかった場合は、TLBミスが発生
し、メイン・メモリ内のトランスレーション・テーブル
を走査して、メイン・メモリと仮想メモリ・アドレスの
対(仮想メモリ参照用)と、この時点でTLB内にスト
アされている関連するフィールド・プロチクシロン・ビ
ットとを得る。
TLB情報が決定されると、ブロック14で、ストアさ
れた情報を得るために制御がメイン・メモリに移る。こ
のオペレーションと並行して、TLBは比較のためにフ
ィールド・プロテクション情報をプロセッサに(フィー
ルド・プロテクション・ロジックを用いて)渡す。ブロ
ック18で、プロセッサによって実行されているのがリ
ード・オペレーションかライト・オペレーションかに応
18− じて、メイン・メモリはプロセッサへのデータ転送また
はプロセッサからのデータ転送を開始する。
ストレージ・アクセスに関するプロセッサ・プログラム
のオーソリティは、制御レジスタで指定される。したが
ってプロセッサは、プロチクシロン・フィールドを一切
変更する必要なしに、プロチクシロン・バイオレーショ
ンのマスクを解除スることができる。
ブロック20と並行して、プロセッサは、オーソリティ
・マスクを、プロセッサがアクセスを要求しているデー
タに関連するフィールド・プロテクション・ビットと比
較して、許可されたアクセス形式を決定する。
ブロック22で、バイオレーションが発生したか否か判
定する。必要とされるアクセスの形式(すなわち、リー
ドかライトか命令実行か)が許可されるアクセスの形式
に一致しない場合、バイオレーションが発生しており、
ブロック26で、データへのアクセスが拒否される。ア
クセス制限のバイオレーションがない場合は、ブロック
24で処理が続行する。バイオレーションの場合は、プ
ロセッサからメイン・メモリへのデータ転送に時間がか
かるため、メイン・メモリの変更が発生し得る前にスト
ア・オペレーションを終了することができる。同様に、
メイン・メモリからプロセッサへのデータ転送は、プロ
セッサがバイオレーションと判定するのに必要な時間よ
りも長い時間を要する。バイオレージぢンの場合、プロ
セッサがデータに対して何らかの命令を実行し得る前に
転送が終了できる。
この方法は、所与のオペレーションがプロテクトされて
いるか否かを決定する前にアクセスしなければならない
追加のキー・ストレージ・テーブルがないため、キー・
ストレージ法よりもずっと高速である。さらに、フィー
ルド・プロテクション・ビットがTLB内にある場合は
、所与のオペレーションが許可されるか否かを決定し得
る前にメイン・メモリにアクセスする必要はない。
本明細書で提案するシステムでは、前記のアクセス決定
が、メイン・メモリのデータのアクセスおよび転送と並
行して行なわれる。したがって、本システムでは、プロ
テクション・フィールドを用いて、キー・プロテクショ
ン法の2つのステップが同時に実行できる。さらに、フ
ィールド・プロテクション・ビットをTLB内に保持す
ることによって、高速で近接したメモリの利点が同時オ
ペレージロンの利点に加わり、大多数のメモリ・アクセ
スではさらに高速になる。このことがあてはまるのは、
はとんどのオペランド参照がTLB内で見つかるためで
ある。TLB内にキャッシュされていない仮想メモリ・
ロケーションであっても、このプロチクシロン方法によ
って利益を得る。
この利益が生じるのは、仮想メモリ変換が必要でありか
つ情報がTLB内にない場合に、その情報のプロテクシ
ョン情報が保持されているトランスレーション・テーブ
ルが、必ずアクセスされるからである。上述のすべての
点から、1ページよりも小さいグラニュラリティのプロ
チクシロンが可能になり促進される。
第2図は、1インターバルごとに1個のプロテ1− クション・ビットを用いて16バイトのグループのスト
レージ・プロテクションを行なう、フィールド・プロチ
クシロン・ファシリティの全体図である。フィールド・
プロテクション制御マスクの内容に応じて、インターバ
ルごとに1個のビットが異なって解釈されるようにする
フィールド・プロチクシロン制御マスクが導入された。
既に述べたように、本発明は、現在使用されている1ペ
ージより゛も小さなグラニュラリティに対するプロテク
ションをもたらすように企図されている。本発明のこの
例は、16バイトのプロテクション・グラニュラリティ
を用いるもので、不出願書で説明する例は16バイトの
グラニュラリティに関するものである。プロテクション
・フィールドトシて選択されたサイズに対応する変更を
システムに加えることによって、16バイトよりも小さ
なまたは大きなプロテクション・グラニュラリティが可
能である。これらのグラニュラリティに対応する修正は
、当業者には明白である。
プロセッサ・ロジック30は、プログラム・ス22− テータス・ワード(以下PSWと略す)32、セグメン
ト・テーブル・デジグネーシPン(以下STDと略す)
36、フィールド・プロテクション・ロジック38、オ
ーソリティ・マスク100およびオペランド・アドレス
・レジスタ34を含む。
オペランド・アドレス・レジスタ34はまた、アクセス
中のメモリ・ロケーションにストアされたオペランドに
対してプロセッサが実行しようとしているオペレーショ
ンに関連するアクセスの形式を含んでいる。可能な形式
のアクセスは、リード(フェッチ)、ライト(ストア)
および実行である。プログラム・ステータス・ワードは
また、所望の情報へのアクセスを要求しているユーザま
たはプログラムのキー・プロチクシロンのためのアクセ
ス・オーソリゼーションであるキーを含んでいる。第2
図のフィールド・プロテクション・ファシリティはまた
、最も最近に最も多くアクセスされたメモリ・ロケーシ
ョンの適切な情報を含むトランスレーション・ルック・
アサイド・バッファ(TLB)40を含んでいる。既に
説明したように、TLBは、プロセッサに物理的に近接
した位置にある非常に高速のメモリを使用して、仮想メ
モリのルック・アップのためのアクセス時間をスピード
・アップする。
第2図のフィールド・プロチクシロン・ファシリティに
は、メイン・メモリ42も含まれている。
これは、他のデータと並んで、本発明のこの実施例のセ
グメント・テーブル44、種々のページ・テーブル46
Aおよび46B1および拡張ページ・テーブル48を含
んでいる。構成要素の大多数は、コンピュータ・アーキ
テクチャ技術の標準品であり、当業者に理解されるもの
である。フィールド・プロテクション・ビットをトラン
スレーション・ルック・アサイド・バッファと関連づけ
ること、(STD内にある)フィールド・プロチクシロ
ン制御マスクとオーソリティ・マスクを維持すること、
およびこれらの要素をフィールド・プロテクション・ロ
ジックと組み合わせてアクセス形式を決定することはす
べて、本発明のフィールド・プロテクション・ファシリ
ティのまったく新しい態様である。
TLBのテーブル内、並びにメイン・メモリのページ・
テーブル・エントリ内に、フィールド・プロテクション
・ビットがある。これはフィールド・プロテクシeン制
御マスク(FPCM)で指定されたフィールド・プロテ
クション機能が、アクセスを要求されているプロチクシ
ロン・フィールドに適用されるか否かを指定する。
全メモリ・ページに対するフィールド・プロテクション
・ビットはメイン・メモリに保存され、最近発行された
場合はTLB内に保存される。仮想メモリ・ページのト
ランスレーション情報がメイン・メモリのトランスレー
ジロン・テーブルからTLBヘロードされるとき、フィ
ールド・プロチクシロン・ビットもTLBにロードされ
る。したがって、TLBがトランスレーション情報を保
持しているあらゆるページについて、TLBはフィール
ド・プロチクシロン・ビットも保持している。これによ
って、アクセス許可の可能性を高速かつ効率的に決定で
きる。全オペランド・メモ25− リ・ページに対するフィールド・プロテクション情報は
、TLBミスの場合にTLBにロードできるように、メ
イン・メモリ内にストアされていなければならない。T
LBミスが発生するのは、オペランド・アクセスが所望
され、かつ関連する情報がTLB内にない場合である。
これは、最近プロセッサによって使用されなかった情報
について発生する。フィールド・プロテクション・ビッ
トとトランスレージ式ン情報は常に一緒に必要となるの
で、第3図に示すように、これらをメイン・メモリ内で
一緒に管理するのが経済的である。
本発明は、特定の形態のアドレス・トランスレージロン
を暗示するものではなく、シたがって、たとえばIBM
  ESA/370システムで使用するような、通常の
ページおよびセグメントのテーブル・トランスレージロ
ンでも、またIBM  AS/400システムなど反転
ページを使用するシステムでも動作可能であることに留
意されたい。
実際、本発明は仮想メモリをまったく使用しないシステ
ムでも動作可能である。仮想メモリがない26− 場合、TLBは仮想メモリ・トランスレーション情報は
持たず、フィールド・プロテクション情報のみヲ持つ。
フィールド・プロテクション・ファシリティは、既存の
プロチクシロン・メカニズムの代りに使用する必要はな
く、あるシステム内で既存のメカニズムと共存して、そ
のシステムのプロチクシロンを向上させることができる
。本発明のフィールド・プロテクション・ファシリティ
は、従来技術のキー・プロテクション・ファシリティと
併用することができる。この種の組合せの場合、フィー
ルド・プロテクション・ファシリティは、ファイン・グ
レイン・プロチクシロンと、実行のみのプロテクション
などの追加のプロテクション・モードとを追加する。
プロセッサ・ロジック30があるメモリ・ロケーション
にアクセスする必要があるとき、オペランド・アドレス
34を用いてメイン・メモリ・アドレスを突き止める。
プロセッサによる最初のルック・アップはTLB内で行
なわれる。対応するアクティブなエントリがTLB内で
見つかった場合、特定のユーザ/プログラムに対して許
可できるアクセス形式を決定するフィールド・プロテク
ション・ビットと、要求されているアクセス形式との比
較が、フィールド・プロテクション・ロジック・ブロッ
ク38で行なわれる。セグメント・テーブル・デジグネ
ーション内にあるFPCMが、アドレス空間を記述する
トランスレーション・テーブルの解釈を制御するために
利用できる。FPCMは、1個の複雑なデータ・オブジ
ェクトを表す全アドレス空間に適用される。明らかにF
PCMによって指定されるべきプロテクション機能は、
リード、ライトまたはコード実行のうちいずれかの形式
のアクセスをプロテクション・フィールドに基づいて禁
止することである。
参照されているオペランド・アドレスがTLB内にある
限り、フィールド・プロテクションの決定が実行できる
。しかし、TLBミスが発生した場合、プロテクション
情報およびすべてのトランスレージタン情報は、メイン
・メモリ内のセグメント・テーブルおよびページ・テー
ブルから与えられる。第3図は、フィールド・プロテク
ション情報用のメイン・メモリ内のテーブル構造を示す
図である。この場合も、TLB内にある情報は、メイン
・メモリ内にある実際のプロチクシロン情報から取り出
される。
第3図は、セグメント・テーブル・デジグネーシ日ン3
6、セグメント・テーブル44、ページ・テーブル46
A1拡張ページ・テーブル48を示す。セグメント・テ
ーブル・デジグネーションには、セグメント・テーブル
起点アドレスがある。
また、プロチクシロン情報の解釈を制御するフィールド
・プロチクシロン制御マスク(FPCM)、プライベー
ト空間制御ビット、およびセグメント・テーブル長(S
TL)も含まれている。セグメント・テーブルは、ペー
ジ・テーブル起点(PTO)アドレス、セグメント無効
ビット(I)、共通セグメント・ビット(c)、および
ページ・テーブル長(PTL)を含む。(370アーキ
テクチヤで使用される複数のページ・テーブルを表ス)
ページ・テーブル46Aは、メイン・メモリ内でペー9
− ジ・フレーム実アドレス(PFRA) 、ページ無効ビ
ット(I)およびページ・プロチクシロン・ビット(P
)を含む。本発明のプロチクシロン方式の下では、ペー
ジ・テーブル・エントリの第1ビツトはOまたは1であ
る。Oは本発明のプロチクシロン・ビットが存在しない
ことを示し、1はプロチクシロン・フィールドに関する
プロチクシロン・ビット(この場合長さ16バイト)が
存在することを示す。ページ・テーブル・エントリの第
1ビツトのOは、そのページがフィールド・プロチクシ
ロンをもたないこと、およびアーキテクチャによって現
在指定されるようにそのページ・テーブル・エントリを
解釈すべきであることを示す。
ページ・テーブル・エントリの第1ビツトの1は、この
情報に関して参照すべき拡張ページ・テーブル内にフィ
ールド・プロテクション・ビットがあることを示す。こ
の場合、このページ・テーブル・エントリの内容は、ペ
ージ・テーブル・エントリとは解釈されず、拡張ページ
・テーブル・エントリを指すアドレスと解釈される。拡
張ページ・チー 30− プル48は、ページ・テーブル内の標準的な情報のすべ
てを含むと同時に、16バイトの増分で許可されるアク
セスの形式を制御するフィールド・プロテクション・ビ
ットをも含む。これは、370アーキテクチヤの標準の
4Kバイト・ページでは、各ビットが16バイトのプロ
テクション・グラニュラリティに対して許可されるプロ
テクション・アクセスを表す256個のビットが必要な
ことを意味する。
第3図はさらに、TLBミスの場合のプロチクシロン・
ファシリティのロジックの流れを示している。セグメン
ト・テーブル・デジグネーション36は、セグメント・
テーブルの起点を指し、そこからプロセッサはセグメン
ト・テーブル44の位置を定める。各セグメント・テー
ブル・エントリは個々のページ・テーブルを指す。セグ
メント・テーブル44はページ・テーブル4f3Aを指
すエントリを含む。ページ・テーブル46Aは、拡張ペ
ージ・テーブル48と同様に、アクセスされる情報を含
むメイン・メモリへの対応するアドレス空間ム。ページ
・テーブル46Aと拡張ページ・テーブル48の違いは
、拡張ページ・テーブル48がフィールド・プロチクシ
ロン・ビットを含むコトである。拡張ページ・テーブル
は、本発明の1つの実施例であることを理解されたい。
ページ・テーブル4eA自体の中にフィールド・プロテ
クション・ビットを含むようにこれを拡張することが可
能なので、拡張ページ・テーブル48を設ける必要はな
い。
ページ・テーブル(または拡張ページ・テーブル48)
内のフィールド・プロチクシロン・ビットは、メモリ・
ページのパーマネント属性を反映する。したがって、あ
るページがページアウトされる場合には、それは現在ス
トレージ・キーが管理されているのと同じ方法で外部記
憶装置にストアされる。フィールド・プロテクション・
ファシリティのない場合(第2図)、アドレス空間のペ
ージ・テーブルは一時的な意味しか持たない。対応する
テーブルの全ページがページ・アウトされてしまったと
き、そのページ・テーブルを放棄することができる。フ
ィールド・プロテクション・ファシリティのある種の使
用では、追加のプロチクシロン情報をファイル・システ
ムによって管理することができる。その−例は、あるモ
ジュールのどの部分がコードであり、どの部分がデータ
であるかに関する情報をファイル・システムに保持する
、実行のみのプロチクシロンである。
ページ・テーブル・エントリ内のプロテクション・ビッ
トが変更された後、そのプロチクシロン・ビットの現在
値がシステム内の全TLBからパージされる。したがっ
て、全CPU内の特定のTLBエントリを無効にするI
 PTE命令が、プロチクシロン・ビットの変更の後に
続く。または、等価な機能がプロテクション・ビットを
変更する命令の一部となっているべきである。フィール
ド・プロテクションに関する機能の性能を評価する際に
、この追加の機能が考慮される。
既に説明したような、フィールド・プロテクション制御
マスク内の共通記述を用いる代わりに、複数のプロテク
ション・ビットのセットを用いて各33 インターバル毎のプロチクシロン状態を表す、別の実施
様態が有り得る。この実施様態は、異なるインターバル
に異なるプロテクシBン状態を与えられるという利点を
有する。ただし、これは、先に説明したものよりも多く
のページ・テーブル・ストレージとTLBストレージと
を必要とする。
本発明をストレージ・キーなどの他のプロチクシロン・
メカニズムと併用して、非常に柔軟で洗練されたプロチ
クシロン方式を提供することができる。たとえば、スト
レージ・キーが別のプロテクション定義域を提供し、各
定義域の内部で、フィールド・プロテクション・メカニ
ズムがファイン・グレイン・プロチクシロンを提供する
。この形式のプロテクション方式では、多分フィールド
・プロチクシロン・メカニズムのない場合でも、ストレ
ージ・キーを現在のキー・ストレージから移動してペー
ジ・テーブル内に置くのがを利となるはずである。代替
方法は、ストレージ・キーをストレージ・キー配列(I
BM370システム以外のシステムでは、類似のストレ
ージ・キー記憶4− ファシリティ)内で管理し、最初のアクセスと同時に、
このストレージ・キーの値をトランスレーション・ルッ
ク・アサイド・バッファ(18M370システム以外の
システムでは、最近のアドレス・トランスレーション・
オペレーションの領域)に移動するものである。このス
トレージ・キーの異なる実施様態は、本発明の性能の利
点のいくつかをストレージ・キー・1プロテクシヨンに
拡張する。ESA/370アーキテクチャのオーソリテ
ィ・インデックスや拡張オーソリティ・インデックスな
ど、他のストレージ・プロテクション・メカニズム2組
み合わせることも可能である。
第4図に、フィールド・プロテクション・ファシリティ
・システム62を示す。システム62は、プロセッサ・
ロジック30、ストレージ・ファシリテイ50およびア
ドレス・トランスレーション・ファシリテイ52を宵す
るコンピュータ60を含む。I BM370アーキテク
チヤの場合、アドレス・トランスレーションφファシリ
ティは、最大量のアクセス活動を受けている仮想メモリ
・ロケーションに対するトランスレーション情報を含む
、トランスレーション・ルック・アサイド・バッファ4
0を含む。370システムの場合、本発明は、トランス
レーション・ルック・アサイド・バッファ内にストアさ
れた情報の各アドレスと関連するプロチクシロン・ビッ
トを管理する。他のシステムでは、アドレス・トランス
レーション・ファシリテイ内に異なる形式のメモリ・テ
ーブルを含むことができる。
370アーキテクチヤ以外のハードウェア・アーキテク
チャでは、類似の2段(セグメント・テーブルからペー
ジ・テーブルへ)の仮想アドレスから実アドレスへのト
ランスレーション方式ヲ用イることがあり、まったく異
なる方法を用いる場合もある。一般に、アドレス・ルッ
ク・アップは、なんらかの形式のメモリ・テーブル方式
によって行なわれる。ルック・アップに時間がかかるた
め、「ルック・アサイド」バッファまたは最近のトラン
スレージロンの領域を設けることが通常である。
どの場合でも、プロテクション情報は、実アドレスへの
転換に使用されるメモリ・テーブル内に保存すべきであ
り、また「ルック・アサイド」領域が存在するのであれ
ば、変換が発生した時に必ずそこに移動すべきである。
フォワード・トランスレーションを用いるシステムでは
、少なくとも1つのテーブルがアドレス・トランスレー
ションに使用される。テーブルが1つだけの場合、仮想
メモリ・アドレスをそのテーブルへのオフセットとして
使用して、アクセスしようとするページの実アドレスを
フェッチする。
本発明の追加のプロテクション・ビットは、実アドレス
情報を含むテーブル、またはそれに並行した別のテーブ
ル・エントリのいずれかと共にストアすべきである。仮
想アドレスのセグメントを追加テーブルに対する連続す
るオフセットとして使用するテーブルが複数ある場合、
本発明のプロチクシロン・ビットは、実ページ・アドレ
スを含む最終テーブルと関連づけるべきであり、あるい
は並行テーブル内にあるべきである。
アドレス・トランスレージロンのためのもう17− つの方法は、反転ページ・テーブルを用いるものである
。反転ページ・テーブルを使用する場合、仮想アドレス
を、実アドレスによって編成されたテーブル内の各実ア
ドレスと関連づける。この方法は、仮想メモリのサイズ
ではなく実メモリのサイズに伴って成長するテーブルを
有するという利点がある。
この方法は通常、仮想アドレスから実アドレスに変換す
るためのなんらかの形式のハツシュ・テーブル構造を用
いて、検索時間をスピードアップする。ハツシュ・テー
ブルは通常、アドレス・トランスレーション中にハード
ウェアによって使用される間に、ソフトウェアによって
作成され変更される。しばしば、仮想ページ・アドレス
全体がハツシュ記憶され、その後にメモリ・テーブルに
対するオフセットとして使用される。その場合、ハツシ
ュ記憶によって引き起こされた衝突は、衝突チェーンま
たはテーブル内の未使用のエントリを使用するための他
のなんらかの手段によって処理する。
 38− ルック・アップに使用されるストレージ・ロケーション
の数に関わらすに良好な性能を得るため、通常は、最近
のトランスレーションの「ルック・アサイド」領域が管
理される。本発明のプロテクション・ビットは、この形
式のアーキテクチャの反転ページ・テーブル内の、実メ
モリの各ページに関連する位置に保存すべきである。プ
ロテクション・ビットは、トランスレーションが行なわ
れるとき、仮想アドレスおよび対応する実アドレスとと
もに「ルック・アサイド」領域に置くべきである。
E0発明の効果 本発明によれば、ページ・サイズよりも小さな単位で、
ストアされたデータへのアクセスを制限し、データをプ
ロテクトすることが可能になる。
【図面の簡単な説明】 第1図は、フィールド・プロテクション・ファシリティ
のオペレーションを示す流れ図である。 第2図は、フィールド・プロテクション・ファシリティ
の実施例のブロック図である。 9− 第3図は、フィールド・プロテクシタン情報用のメイン
・メモリ内のテーブル構造の実施例の説明図である。 第4図は、フィールド・プロテクション・ファシリティ
のシステム全体の説明図である。 30・・・・プロセッサ・ロジック、32・・・・プロ
グラム・ステータス・ワード(PSW)、34・・・・
オペランド・アドレス・レジスタ、36・・・・セグメ
ント・テーブル・デジグネーシロン(STD)、38・
・・・フィールド・プロテクション・ロジック38.4
0・・・・トランスレーション・ルック・アサイド・バ
ッファ(TLB)、42・・・・メイン・メモリ、44
・・・・セグメント・テーブル、46・・・・ページ・
テーブル、48・・・・拡張ページ・テーブル、50・
・・・ストレージ・ファシリテイ、52・・・・アドレ
ス・トランスレーション・ファシリテイ、62・・・・
フィールド・プロテクション・ファシリティ・システム
、100・・・・オーソリティ・マスク。  40−

Claims (12)

    【特許請求の範囲】
  1. (1)ストレージ・ファシリテイとアドレス・トランス
    レーション・ファシリテイとを有するコンピュータにお
    いて、固有のアドレスを有する複数のメモリ・ロケーシ
    ョンにストアされた情報へのアクセスを制限するための
    データ・プロテクション・メカニズムを確立するための
    方法であって、(a)ストアされた情報へのアクセス要
    求の許可できる形式を指示するビットを含むオーソリゼ
    ーション・マスクを確立するステップと、 (b)ストアされた情報のアドレスに関連する複数のプ
    ロテクション・ビットを、そのプロテクション・ビット
    の1つまたは1グループが情報の一部分に対応するよう
    にして確立するステップと、(c)前記のアドレス・ト
    ランスレーション・ファシリテイ内に、前記のビットを
    前記のストアされた情報のアドレスと共にストアするス
    テップとを含むことを特徴とする方法。
  2. (2)ストレージ・ファシリテイとアドレス・トランス
    レーション・ファシリテイとを有するコンピュータにお
    いて、固有のアドレスを有する複数のメモリ・ロケーシ
    ョンにストアされた情報へのアクセスを、その情報に対
    して確立されたアクセス制限のバイオレーションを決定
    することによって制限するための、ストレージ・プロテ
    クション方法であって、 (a)ストアされた情報へのアクセス要求の許可できる
    形式を指示するビットを含むオーソリゼーション・マス
    クを確立するステップと、 (b)ストアされた情報の各アドレスに関連する複数の
    プロテクション・ビットを、そのプロテクション・ビッ
    トの1つまたは1グループがストアされた情報の一部分
    に対応するようにして確立するステップと、 (c)前記のアドレス・トランスレーション・ファシリ
    テイ内に、前記のビットをストアされた情報の前記の各
    アドレスと共にストアするステップと、(d)前記の情
    報の一部分にアクセスしたいとの要求に応答して、前記
    の情報の前記の要求された部分に対応する前記のプロテ
    クション・ビットと前記のオーソリゼーション・マスク
    を比較して、許可できない形式のアクセスが要求された
    ためにバイオレーションが発生したか否かを判定する、
    ステップと、 (e)バイオレーションが発生しなかった場合には前記
    の情報の要求された部分へのアクセスを許可し、バイオ
    レーションが発生した場合にはアクセスを拒否するステ
    ップと を含むことを特徴とする方法。
  3. (3)1組の前記のプロテクション・ビットが、ストア
    された情報の、サイズが4Kバイト未満の部分に対応す
    ることを特徴とする、請求項2に記載の方法。
  4. (4)前記の各プロテクション・ビットが、ストアされ
    た情報の、サイズが4Kバイト未満の部分に対応し、フ
    ィールド・プロテクション制御マスクを用いてバイオレ
    ーションが発生したか否かを判定することを特徴とする
    、請求項2に記載の方法。
  5. (5)コンピュータが、メイン・メモリ・ロケーション
    とプログラム・ステータス・ワードとを含み、アドレス
    ・トランスレーション・ファシリテイが、トランスレー
    ション・ルック・アサイド・バッファとセグメント・テ
    ーブルとページ・テーブルとを含むことを特徴とする、
    請求項2に記載の方法。
  6. (6)前記のプロテクション・マスクがプログラム・ス
    テータス・ワードにストアされ、さらに、(a)前記の
    メモリ・ファシリテイにストアされた前記の情報に関す
    るトランスレーション情報がトランスレーション・ルッ
    ク・アサイド・バッファにロードされる時に、前記のプ
    ロテクション・ビットをトランスレーション・ルック・
    アサイド・バッファにストアするステップと、 (b)トランスレーション情報を求めてトランスレーシ
    ョン・ルック・アサイド・バッファがアクセスされる時
    に、トランスレーション・ルック・アサイド・バッファ
    にストアされた前記のプロテクション・ビットを読み取
    るステップと、 (c)前記の要求された情報がメイン・メモリ内でアク
    セスされるのとほぼ同時に、トランスレーション・ルッ
    ク・アサイド・バッファからの前記のプロテクション・
    ビットを前記のオーソリティ・マスクと比較するステッ
    プと を含むことを特徴とする、請求項4に記載の方法。
  7. (7)ストレージ・ファシリテイとアドレス・トランス
    レーション・ファシリテイとを有するコンピュータにお
    いて、固有のアドレスを有する複数のロケーションにス
    トアされた情報へのアクセスを、前記の情報に対して確
    立されたアクセス制限のバイオレーションを決定するこ
    とによって制限するための、ストレージ・プロテクショ
    ン・システムであって、 (a)ストアされた情報へのアクセス要求の許可できる
    形式を指示するビットを含むオーソリゼーション・マス
    クを確立する手段と、 (b)ストアされた情報の各アドレスに関連する複数の
    プロテクション・ビットを、前記のプロテクション・ビ
    ットの各セットがストアされた情報の一部分に対応する
    ようにして確立する手段と、(c)前記のアドレス・ト
    ランスレーション・ファシリテイ内に、前記のビットを
    ストアされた情報のストアされた各アドレスと共にスト
    アする手段と、 (d)ストアされた情報の一部分にアクセスしたいとの
    要求に応答して、ストアされた情報の前記の要求された
    部分に対応する前記のプロテクション・ビットと前記の
    オーソリゼーション・マスクを比較して、許可できない
    形式のアクセスが要求されたためにバイオレーションが
    発生したか否かを判定する手段と、 (e)バイオレーションが発生しなかった場合にはスト
    アされた情報の要求された部分へのアクセスを許可し、
    バイオレーションが発生した場合にはアクセスを拒否す
    る手段と を含むことを特徴とするストレージ・プロテクション・
    システム
  8. (8)ストレージ・ファシリテイとアドレス・トランス
    レーション・ファシリテイとを有するコンピュータにお
    いて、固有のアドレスを有する複数のメモリ・ロケーシ
    ョンにストアされた情報へのアクセスを制限するための
    、ストレージ・キーとプロテクション・キーとを含むス
    トレージ・プロテクション・システムであって、 (a)各ストレージ・キーがメモリの1ページに関連す
    るプロテクション属性を識別する、複数のストレージ・
    キーと、 (b)最近のアドレス・トランスレーションのトランス
    レーション・ルック・アサイド領域に前記のストレージ
    ・キーを読み込みまたはストアする手段と、 (c)前記のストレージ・キーをプロテクション・キー
    と比較して、メモリのページに対する許可できるアクセ
    スを決定する手段と、 を含むことを特徴とする、ストレージ・プロテクション
    ・システム。
  9. (9)最近のアドレス・トランスレーションのトランス
    レーション・ルック・アサイド領域がトランスレーショ
    ン・ルック・アサイド・バッファであることを特徴とす
    る、請求項8に記載のストレージ・プロテクション・シ
    ステム。
  10. (10)最近のアドレス・トランスレーションのトラン
    スレーション・ルック・アサイド領域に読み込まれるま
    たはストアされるストレージ・キーが、ページ・テーブ
    ルから読み取られることを特徴とする、請求項8に記載
    のストレージ・プロテクション・システム。
  11. (11)最近のアドレス・トランスレーションのトラン
    スレーション・ルック・アサイド領域に読み込まれるま
    たはストアされるストレージ・キーが、ストレージ・キ
    ー配列から読み取られることを特徴とする、請求項8に
    記載のストレージ・プロテクション・システム。
  12. (12)ストレージ・ファシリテイとアドレス・トラン
    スレーション・ファシリテイとを有するコンピュータに
    おいて、固有のアドレスを有する複数のメモリ・ロケー
    ションにストアされた情報へのアクセスを制限するため
    の、ストレージ・キーとプロテクション・キーとを含む
    ストレージ・プロテクション方法であって、 (a)各ストレージ・キーがメモリの1ページに関連す
    るプロテクション属性を識別する、複数のストレージ・
    キーを確立するステップと、 (b)最近のアドレス・トランスレーションのトランス
    レーション・ルック・アサイド領域に前記のストレージ
    ・キーを読み込みまたはストアするステップと、 (c)前記のストレージ・キーとプロテクション・キー
    を比較して、アクセス・バイオレーションが発生したか
    否かを判定するステップと、 (d)アクセス・バイオレーションが発生しなかった場
    合にメモリのページへのアクセスを許可するステップと を含むことを特徴とする、ストレージ・プロテクション
    方法。
JP2276570A 1989-11-03 1990-10-17 ストアされたデータのプロテクシヨン方法及びシステム Pending JPH03154949A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43150889A 1989-11-03 1989-11-03
US431508 1989-11-03

Publications (1)

Publication Number Publication Date
JPH03154949A true JPH03154949A (ja) 1991-07-02

Family

ID=23712248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2276570A Pending JPH03154949A (ja) 1989-11-03 1990-10-17 ストアされたデータのプロテクシヨン方法及びシステム

Country Status (2)

Country Link
EP (1) EP0425771A3 (ja)
JP (1) JPH03154949A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077642A (ja) * 2006-08-15 2008-04-03 Intel Corp 翻訳ルックアサイドバッファと拡張ページングテーブルとの同期化
JP2008527483A (ja) * 2005-01-04 2008-07-24 アーム・リミテッド メモリ保護ユニットを有するデータ処理装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1574095A (en) * 1994-01-28 1995-08-15 Tong Shao Computer hardware disc read/write control device
US6363336B1 (en) * 1999-10-13 2002-03-26 Transmeta Corporation Fine grain translation discrimination
US6651156B1 (en) 2001-03-30 2003-11-18 Mips Technologies, Inc. Mechanism for extending properties of virtual memory pages by a TLB
US6643759B2 (en) 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US7424584B2 (en) 2004-08-12 2008-09-09 International Business Machines Corporation Key-controlled object-based memory protection
JP4519738B2 (ja) * 2005-08-26 2010-08-04 株式会社東芝 メモリアクセス制御装置
US8006055B2 (en) 2008-03-04 2011-08-23 Microsoft Corporation Fine granularity hierarchiacal memory protection

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3174927D1 (en) * 1980-05-23 1986-08-21 Ibm Enhancements in system/370 type of data processing apparatus
JPS5712494A (en) * 1980-06-23 1982-01-22 Nippon Telegr & Teleph Corp <Ntt> Storage protecting system
JPS626351A (ja) * 1985-07-03 1987-01-13 Hitachi Ltd 記憶保護装置
IN169635B (ja) * 1987-07-01 1991-11-23 Digital Equipment Corp
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
JPH0262645A (ja) * 1988-08-29 1990-03-02 Hitachi Ltd 記憶保護方式

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527483A (ja) * 2005-01-04 2008-07-24 アーム・リミテッド メモリ保護ユニットを有するデータ処理装置
US9262338B1 (en) 2006-08-15 2016-02-16 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US9298641B2 (en) 2006-08-15 2016-03-29 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US8296546B2 (en) 2006-08-15 2012-10-23 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US8601233B2 (en) 2006-08-15 2013-12-03 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US8949571B2 (en) 2006-08-15 2015-02-03 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US9122624B2 (en) 2006-08-15 2015-09-01 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US8099581B2 (en) 2006-08-15 2012-01-17 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
JP2008077642A (ja) * 2006-08-15 2008-04-03 Intel Corp 翻訳ルックアサイドバッファと拡張ページングテーブルとの同期化
US9251094B2 (en) 2006-08-15 2016-02-02 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US9298640B2 (en) 2006-08-15 2016-03-29 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US9330021B2 (en) 2006-08-15 2016-05-03 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US9372807B2 (en) 2006-08-15 2016-06-21 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US9372806B2 (en) 2006-08-15 2016-06-21 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US9678890B2 (en) 2006-08-15 2017-06-13 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table
US10747682B2 (en) 2006-08-15 2020-08-18 Intel Corporation Synchronizing a translation lookaside buffer with an extended paging table

Also Published As

Publication number Publication date
EP0425771A3 (en) 1992-09-02
EP0425771A2 (en) 1991-05-08

Similar Documents

Publication Publication Date Title
US5845331A (en) Memory system including guarded pointers
US5280614A (en) Apparatus and method for controlling access to data using domains
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
KR101009220B1 (ko) 캐시된 메모리 데이터를 가진 메모리 속성 표시자의 캐시
US5619671A (en) Method and apparatus for providing token controlled access to protected pages of memory
US5075848A (en) Object lifetime control in an object-oriented memory protection mechanism
KR940011668B1 (ko) 페이지 메모리 관리 장치
US5075845A (en) Type management and control in an object oriented memory protection mechanism
US6823433B1 (en) Memory management system and method for providing physical address based memory access security
CA2050834C (en) Multiple controlled data-space facility
JP5581403B2 (ja) メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US6189074B1 (en) Mechanism for storing system level attributes in a translation lookaside buffer
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
WO2003083672A1 (en) System and method providing region-granular, hardware-controlled memory encryption
JPS6248258B2 (ja)
US5724551A (en) Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
JP3454854B2 (ja) メモリ管理装置及び方法
US7330961B2 (en) Cache control method and processor system
JPH03154949A (ja) ストアされたデータのプロテクシヨン方法及びシステム
GB2260630A (en) A memory management system for preserving cache coherency
US6598050B1 (en) Apparatus and method for limited data sharing in a multi-tasking system
US5802397A (en) System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity
KR100791815B1 (ko) 컴퓨터 시스템 및 컴퓨터 시스템에서 인스트럭션을 실행하는 방법
CA2029628A1 (en) Translation look aside buffer with parallel exception checking and update bypass