JP3618868B2 - 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム - Google Patents

二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム Download PDF

Info

Publication number
JP3618868B2
JP3618868B2 JP01864996A JP1864996A JP3618868B2 JP 3618868 B2 JP3618868 B2 JP 3618868B2 JP 01864996 A JP01864996 A JP 01864996A JP 1864996 A JP1864996 A JP 1864996A JP 3618868 B2 JP3618868 B2 JP 3618868B2
Authority
JP
Japan
Prior art keywords
protection
virtual address
memory
index buffer
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01864996A
Other languages
English (en)
Other versions
JPH08249232A (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.)
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 JPH08249232A publication Critical patent/JPH08249232A/ja
Application granted granted Critical
Publication of JP3618868B2 publication Critical patent/JP3618868B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/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/14Protection against unauthorised use of memory or access to memory

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)

Description

【0001】
【発明の属する技術分野】
本発明は、一般に改良型のデータ処理システムに関し、詳細にはデータ処理システムにおいて効率的なメモリ管理を行うための改良された方法およびシステムに関する。より詳細には、本発明は、二重モード変換索引バッファを利用してデータ処理システムにおいて効率的なメモリ管理を行うための改良された方法およびシステムに関する。
【0002】
【従来の技術】
最新式のデータ処理システムはしばしば、いわゆる「有効」または「仮想」アドレス空間を利用して、各アプリケーションが、そのアプリケーション用の「専用」アドレス空間を利用できるようにする。したがって、そのようなシステムはなんらかの技術を利用して、システム・メモリ内でこれらの「有効」アドレスを実アドレスに変換しなければならない。当然ながら、複数の有効アドレスが単一の実アドレスにマップ可能なことを当業者なら理解するであろう。したがって、有効アドレス空間を正確に維持するためには、有効アドレスから実アドレスに効率的かつ迅速に変換できる技術を提供することが重要である。
【0003】
この有効メモリ・アドレスから実メモリ・アドレスへのマッピングは通常、有効アドレス空間から実アドレス空間へのマッピングを支援するメモリ管理ユニットを利用して実施される。そのようなメモリ管理ユニットは通常、高速メモリ内に設けられた変換索引バッファを使って、限られた数の有効アドレスを実メモリ・アドレスに変換している。
【0004】
変換のために新しい有効アドレスを必要とする場合、通常、周知のアルゴリズムを使って、変換索引バッファ内にどの有効アドレスを記憶しどのアドレスを置き換えるか判定する。たとえば、いわゆるLRU(Least Recently Utilized)アルゴリズムが、変換索引バッファとして使用するために使用可能な高速メモリの量が限られるという理由で、しばしば使用される。
【0005】
この設計は、標準の汎用処理アプリケーションでは良好に動作するが、既知の変換索引バッファは容量が限られているため、これらのプロセッサ用に選択された専用アプリケーションでは困難が生じる。データまたは命令を含む多数のメモリ・ブロックを制御しなければならないアプリケーションでは、変換索引バッファを絶えずロードし、無効化し、再ロードするのに要するオーバヘッドが、まったく煩わしいことがある。それに付随して、変換索引バッファのサイズと編成を専用アプリケーションに合わせて変更するのに必要なコストが、通常法外なものになる。
【0006】
その結果、データ処理システム内で様々なメモリ管理シナリオを効率的に管理できる改良型メモリ管理ユニットが必要であることは明らかであろう。
【0007】
【発明が解決しようとする課題】
したがって、本発明の一目的は、改良型データ処理システムを提供することである。
【0008】
本発明のもう一つの目的は、データ処理システムにおける効率的メモリ管理のための改良された方法およびシステムを提供することである。
【0009】
本発明のもう一つの目的は、二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理のための改良された方法およびシステムを提供することである。
【0010】
【課題を解決するための手段】
上記目的は、以下に説明するようにして達成される。データ処理システムにおいて、メモリ管理ユニットを利用して変換索引バッファ内で有効アドレスを実アドレスに変換する効率的メモリ管理方法およびそのシステムを開示する。第1の動作モード中に、選択した数の有効アドレス識別子が、変換索引バッファ内に記憶される。各仮想アドレス識別子には、単一のメモリ・ブロック用の対応する実アドレス・エントリが関連し、変換索引バッファを使って、選択された仮想アドレスを対応する実アドレスに変換することができる。第2の動作モードでは、選択された数の仮想アドレス識別子が変換索引バッファ内に記憶され、各仮想アドレス識別子が、それに関連する記憶されたいくつかの保護ビットを有し、各保護ビットは、関連する仮想アドレス識別子で始まる多数の連続するメモリ・ブロックの保護状況を示し、さらに、一定サイズの変換索引バッファを使って、多数のメモリ・ブロックのメモリ・ブロック保護を提供することができる。
【0011】
本発明の新規な機能と思われる特徴は、併記の特許請求の範囲に記載されている。しかしながら、本発明自体、ならびに好ましい使用態様、さらにその目的および利点は、以下の例示的実施形態についての詳細な説明を、添付の図面を参照して読めば最もよく理解されよう。
【0012】
【発明の実施の形態】
次に、図面、特に図1を参照すると、好ましい実施形態に従って情報を処理するための、10で全体的に示したプロセッサのブロック図が示されている。好ましい実施形態では、プロセッサ10は、単一の集積回路スーパースカラー・マイクロプロセッサである。したがって、後でさらに考察するように、プロセッサ10は、様々なユニット、レジスタ、バッファ、メモリおよびその他のセクションを含み、それらはすべて集積回路によって構成される。また、好ましい実施形態においては、プロセッサ10は、縮小命令セット・コンピュータ(RISC)技術に従って動作する。図1に示したように、システム・バス11が、プロセッサ10のバス・インターフェース・ユニット(BIU)12に接続される。BIU12は、プロセッサ10とシステム・バス11の間での情報の転送を制御する。
【0013】
BIU12は、プロセッサ10の命令キャッシュ14およびデータ・キャッシュ16に接続されている。命令キャッシュ14やデータ・キャッシュ16などの高速キャッシュは、システム・メモリからキャッシュに前に転送されたデータまたは命令のサブセットに対する比較的高速なアクセスが可能であり、それによりデータ処理システムの動作の速度が高まる。命令キャッシュ14は、ブランチ・ユニット18に命令を出力する。ブランチ・ユニット18は、命令キャッシュ14からのそのような命令に応答して、プロセッサ10のその他の実行回路に選択的に命令を出力する。
【0014】
システム・バス11に接続されたシステム・メモリと、データ・キャシュまたは命令キャッシュとの間でのオペランドまたは命令の転送は通常、ブロックと呼ばれる固定した長さの単位で実施される。データのブロックは、当技術分野では周知の、トラック、セクタ、行、バイトなどの様々なサイズで転送することができる。ブランチ・ユニット18によるメモリ・アクセスによって、データ・キャッシュ16から必要なデータを取り出すことができるとき、そのような成功をキャッシュ「ヒット」と呼び、また必要なデータの取出しをキャッシュ内で行うことができず、システム・メモリまたは別のプロセッサ・キャッシュから実行しなければならないとき、そのような失敗を「ミス」と呼ぶ。命令キャッシュ14とデータ・キャッシュ16が共に、システム・メモリ内で仮想メモリ・アドレスの実メモリ・アドレスへのマッピングを支援するために利用されるメモリ管理ユニットを含むことを当業者なら理解するであろう。本明細書で後で詳細に述べるように、各メモリ管理ユニットは、変換索引バッファを使って、仮想メモリ・アドレスを実アドレスに迅速かつ正確に変換できることが好ましい。本発明の重要な一特徴によれば、各変換索引バッファを2つの別のモードで動作させることができ、以下に述べる変換索引バッファの動作モードの説明は、命令キャッシュ14にもデータ・キャッシュ16にも同じく適用される。
【0015】
好ましい実施形態では、プロセッサ10の実行回路は、ブランチ・ユニット18の他にも、多数の実行ユニット、すなわち固定小数点ユニット(FXU)22、ロード記憶ユニット(LSU)28、および浮動小数点ユニット(FPU)30を含む。FXU22とLSU28は、ソース・オペランド情報を汎用レジスタ(GPR)32から入力する。FXU22とLSU28は、演算結果(宛先オペランド情報)を、GPR32の固定小数点名前変更バッファ内の選択されたエントリに記憶するために出力する。
【0016】
さらに、LSU28は、浮動小数点レジスタ(FPR)36からソース・オペランド情報を入力する。FPU30は、そのソース・オペランド情報をFPR36およびLSU28から入力する。LSU28とFPU30は、演算結果(宛先オペランド情報)を、FPR36の浮動小数点名前変更バッファ内の選択されたエントリに記憶するために出力する。
【0017】
命令キャッシュ14からの命令入力に応答して、ブランチ・ユニット18は、ディスパッチ・ユニット20を介して、実行ユニット22、28、30、32および36のうちの選択された1つに、選択的に命令をディスパッチする。各実行ユニットは、特定クラスの命令のうちの1つまたは複数の命令を実行する。たとえば、FXU22は、加算、減算、AND演算、OR演算、XOR演算など、ソース・オペランドに対する第1のクラスの固定小数点算術演算を実行する。FPU30は、浮動小数点乗算や除法演算など、ソース・オペランドに対する浮動小数点演算を実行する。
【0018】
ロード命令に応答して、LSU28は、データ・キャッシュ16から情報を入力し、その情報を、GPR32とFPR36またはFPU30あるいはその両方中の名前変更バッファのうちの選択されたものにコピーする。その情報がデータ・キャッシュ16内に記憶されていない場合は、データ・キャッシュ16は、その情報をシステム・バス11に接続されたシステム・メモリから(BIU12およびシステム・バス11を介して)入力する。さらに、データ・キャシュ16は、データ・キャッシュ16から、システム・バス11に接続されたシステム・メモリに情報を(BIU12およびシステム・バス11を介して)出力することもできる。
【0019】
ブランチ・ユニット18からの記憶命令に応答して、LSU28は、記憶アドレスを生成し、GPR32とFPR36のうちの選択された1つからデータを読み取る。その後、記憶命令がいつでも完了できる状態になったときに、記憶アドレスおよびデータがデータ・キャッシュに書き込まれる。
【0020】
情報は、GPR32内の名前変更バッファのうちの選択された1つに記憶されるので、その情報は、命令によって指定され、選択された名前変更バッファが割り振られた記憶場所(たとえば、GPR32のうちの1つ)と関連付けられる。名前変更バッファのうちの選択された1つに記憶された情報は、ブランチ・ユニット18からの信号に応答してGPR32のうちの関連する1つにコピーされる。ブランチ・ユニット18は、そのように、情報を生成した命令が「完了」したことを完了ユニット40が示すのに応答して、名前変更バッファのうちの選択された1つに記憶された情報をコピーするよう指示する。好ましい実施形態においては、プロセッサ10が、プロセッサ10の1サイクルの間に命令を複数回完了することもある。
【0021】
情報は、FPR36の名前変更バッファのうちの選択された1つに記憶されるので、その情報はFPR36のうちの1つと関連付けられる。名前変更バッファのうちの選択された1つに記憶された情報は、ブランチ・ユニット18からの信号に応答してFPR36のうちそれに関連する1つにコピーされる。ブランチ・ユニット18は、そのように、情報を生成した命令が「完了」したことを完了ユニット40が示すのに応答して、名前変更バッファのうちの選択された1つに記憶された情報をコピーするように指示する。好ましい実施形態では、プロセッサ10が、プロセッサ10の1サイクルの間に命令を複数回完了することもある。
【0022】
プロセッサ10は、実行ユニット22、28、30、32、および36のいくつかにおいて複数の命令を同時に処理することによって、高いパフォーマンスを達成する。したがって、各命令は、一連のステップとして処理され、各ステップはそれぞれ他の命令のステップと並列に実行可能である。このような技術は、「パイプライン方式」と呼ばれる。通常、命令は、5つのステップ、すなわちフェッチ、復号/ディスパッチ、実行、終了、完了として処理される。
【0023】
フェッチ・ステップでは、ブランチ・ユニット18が、一連の命令を記憶している1つまたは複数のメモリ・アドレスから、1つまたは複数の命令を(命令キャッシュ14から)選択的に入力する。
【0024】
復号/ディスパッチ・ステップでは、ブランチ・ユニット18が、最高3つまでのフェッチされた命令を復号し、それぞれディスパッチした命令の結果(宛先オペランド情報)用の名前変更バッファ・エントリを予約した後で、最高3つまでの復号化した命令を、実行ユニット22、28、30、32および36のうちの(復号ステップでの復号に応答して)選択されたものに選択的にディスパッチする。プロセッサ10は、命令をそのプログラムされた順序でディスパッチする。ブランチ・ユニットは、各命令に固有のタグを、命令識別子(IID)として割り当てる。
【0025】
実行ステップでは、オペランドの準備ができ次第、実行ユニットが、ディスパッチされた命令を実行する。終了ステップでは、実行ユニットが、出力結果(宛先オペランド情報)を、前に考察したように名前変更バッファの選択されたエントリに記憶する。各実行ユニットは、命令の実行を終了したとの信号をブランチ・ユニットに送る。実行ユニットは、命令の状況をIIDと共にブランチ・ユニットに送り返す。
【0026】
次に、図2を参照すると、本発明の方法およびシステムの第1のモードに従って変換索引バッファを利用した仮想アドレスの実アドレスへの変換を示す詳細なブロックが示されている。図に示したように、32ビットの有効アドレスは、有効アドレス・レジスタに結合され、4ビットのセグメント・レジスタ・エントリ、16ビットの有効ページ・エントリ、および12ビットのバイトまたはオフセット・エントリを含む。次に、この32ビットの有効アドレスを、仮想セグメント識別子を決定するセグメント・レジスタ52と組み合わせて利用して、52ビットの仮想アドレスを作成する。この52ビットの仮想アドレスは、24ビットの仮想セグメント識別子、16ビットのページ、ならびに有効アドレスから変化しないバイトまたはオフセット値を含む。
【0027】
次に、本発明の重要な特徴によれば、24ビットの仮想セグメント識別子と16ビットのページ識別子をレジスタ54から取り出し、それを使って変換索引バッファ56にアクセスする。変換索引バッファ56は、仮想アドレス識別子を12ビットの実ページ番号に変換するために利用できる32エントリ2重セット連想式変換索引バッファであることが好ましい。次に20ビットの実ページ番号をレジスタ58内の12ビットのバイト・オフセットと連結して、32ビットの実アドレスを形成する。
【0028】
本発明のこの図の実施形態においては、32の異なる仮想セグメント識別子を変換索引バッファ56内に記憶でき、したがって一般に「LRU(Least−Recently−Utilized)」として知られる置換アルゴリズムを使って、変換索引バッファ56内の様々なアドレスを周期的に置き換えなければならないことを当業者は理解されよう。
【0029】
次に、図3を参照すると、本発明の方法およびシステムの第1のモードに従って動作するときの、図2の変換索引バッファ56の編成を示す詳細なブロック図が示されている。図3に示したように、変換索引バッファ56内の各エントリ60は、1つの有効エントリ・ビット(V)と、ビット1〜24内の仮想セグメント識別子(VSID)と、ビット4〜15の有効アドレス(EA)とを含む上位エントリ62を含む。参照数字64で示した、変換索引バッファのエントリ60の下位の32ビットは、20ビットの実ページ番号(RPN)と、本発明の議論とは無関係に実行特権を禁止するかまたは特別な実行特権を付与するために利用される2つの実行特権ビット(NE、SE)と、特定のページ・ブロックのキャッシュ属性を記述する様々なページ属性ビット(C、WIMG)と、単一の実ページ番号用のページ保護ビット(PP)とを含む。このようにして、この種の変換索引バッファでは普通のことであるが、仮想アドレス識別子を利用して、システム・メモリ内で迅速かつ効率的な技法でアドレスを実メモリ・アドレスに変換することができる。しかし、変換索引バッファ56のサイズが制限されているため、所与の時間に異なる32のアドレスに変換できるアドレスの数が限られている。
【0030】
前に考察したように、プロセッサ用のある種の特別なアプリケーションは、大量のメモリの制御および保護を必要とし、これらの動作は、この種のプロセッサ内で使用される典型的な変換索引バッファのサイズが制限されているとすれば、まったく厄介である。したがって、本発明の重要な特徴によれば、図2の変換索引バッファ56を第2の動作モードで動作させ、それを利用して、多数のメモリ・ブロックの保護状況を図4に示した方式で決定することができる。
【0031】
前述のように、32ビットの有効アドレスは、有効アドレス・レジスタ70に結合され、有効アドレスの最上位4ビットおよびページ識別子を使ってレジスタ74内で20ビットのページ識別子を作成する。特定のセグメント・グループ内の基本セグメントの仮想セグメント識別子が識別され、変換索引バッファ76に第2の動作モードでアクセスするためにレジスタ74内のページ識別子と一緒に使用される24ビットの処理識別子が提供される。この動作モードでは、変換索引バッファの使い方が変わるので、変換索引バッファ76は、図2で使用したものと異なる参照番号を付けてある。
【0032】
図4に示したように、変換索引バッファ76の出力は、多数のメモリ・ブロックのそれぞれに1つの保護ビットを含む。データ・キャッシュ内のアプリケーションにおいて、これらの保護ビットが、ユーザがそのビットに関連するメモリ・ブロックに書き込むことができるかどうかを判定する書込みエネーブル(WE)ビットを構成することを当業者なら理解するであろう。変換索引バッファ76が命令キャッシュ内で利用される場合、各保護ビットは、実行特権ビットを構成し、そのメモリ・ブロック内にある命令が実行できるかどうかを判定するために利用される。
【0033】
最後に、図5には、本発明の方法およびシステムの第2のモードに従って動作するときの、図4の変換索引バッファの編成を示す詳細なブロック図が示されている。上の図3に関して説明したのと同様に、各変換索引バッファ・エントリ80内に、そのエントリの有効性を示す1つの有効エントリ・ビット(V)が設けられる。次に、24ビットの仮想セグメント識別子(VSID)および有効アドレスのエレメント・ビット(EA)を利用して、参照数字82で示したように保護状況を制御すべき多数のメモリ・ブロックの始めの基本メモリ・ブロックを識別する。その後、参照数字84に示したように、本発明の重要な特徴によれば、独立な32個の保護ビット(NE)がリストされる。各保護ビットは、メモリの単一のブロックまたはページの保護状況を示し、変換索引バッファのエントリ80の上位半分で識別された基本ブロックまたはページの後に続く。前述のように、これらの保護ビットを使って、命令の実行を禁止または許可し、各ページへのデータの書込みを禁止または許可することができる。
【0034】
したがって、本発明の方法およびシステムによれば、変換索引バッファの各エントリ内の32個のメモリ・ブロックのそれぞれに1つずつ保護ビットを提供することによって、最高4メガバイトまでの空間に、128キロバイトの連続ブロックにおいて4キロバイトの細分性でメモリ保護を提供することができる。このシステムは、メモリの128キロバイトのブロックがそれぞれ連続し、かつ変換索引バッファのエントリの上位半分にリストされた基本エントリで始まるだけでよいため、4メガバイト全部のメモリが連続である必要はないので、極めて柔軟性がある。このようにして、大量のメモリにアクセスし保護しなければならない適用業務において、変換索引バッファの設計およびサイズを大幅に変更する必要なしに、変換索引バッファを無効にして再ロードしなければならない回数をほぼ最小限に抑えることができる。
【0035】
以上の説明を参照すれば、二重モードの変換索引バッファを利用することによって、本発明のメモリ管理ユニットが、大量の高速メモリをアドレス変換に使用しないという設計要件を満たしながら、大きなミスの不利益なしに大量のメモリの保護をサポートすることができることを当業者なら理解されよう。
【0036】
本発明を好ましい実施形態に関して特に図示し説明したが、本発明の精神および範囲から逸脱することなしに、形態および詳細に様々な変更を加えることができることが当業者には理解されよう。
【0037】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0038】
(1)メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行う方法であって、
各仮想アドレスが、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶するステップと、
各仮想アドレスが、それに関連して記憶されたM個の保護ビットを有し、前記保護ビットが、関連する仮想アドレス識別子で始まるM個の連続した各メモリ・ブロックそれぞれの保護状況を示し、最高N×M個のメモリ・ブロックのメモリ・ブロック保護が提供できるように、第2の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶するステップとを含む方法。
(2)第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶するステップを含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、上記(1)に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
(3)第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶するステップを含むことを特徴とする、上記(2)に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
(4)各メモリ・ブロックがデータを含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、上記(1)に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
(5)各メモリ・ブロックが命令を含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、上記(1)に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
(6)メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行うためのシステムであって、
各仮想アドレスが、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する手段と、
各仮想アドレスが、それに関連して記憶されたM個の保護ビットを有し、前記保護ビットが、関連する仮想アドレス識別子で始まるM個の連続した各メモリ・ブロックそれぞれの保護状況を示し、最高N×M個のメモリ・ブロックのメモリ・ブロック保護が提供できるように、第2の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する手段とを含むシステム。
(7)第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、上記(6)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
(8)第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、上記(7)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
(9)各メモリ・ブロックがデータを含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、上記(6)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
(10)各メモリ・ブロックが命令を含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、上記(1)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
(11)プロセッサと、メモリと、内部の仮想アドレスを前記メモリ内の実アドレスにマッピングするメモリ管理ユニットとを含む、データ処理システムであって、
前記メモリ管理ユニットが、
変換索引バッファと、
各仮想アドレスが、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記索引バッファに記憶する手段と、
各仮想アドレスが、それに関連して記憶されたM個の保護ビットを有し、前記保護ビットが、関連する仮想アドレス識別子で始まるM個の連続した各メモリ・ブロックそれぞれの保護状況を示し、最高N×Mまでのメモリ・ブロックのメモリ・ブロック保護を提供できるように、第2の動作モードで動作中に最高N個の仮想アドレス識別子を前記索引バッファに記憶する手段とを含むデータ処理システム。
(12)第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、上記(11)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
(13)第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、上記(12)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
(14)各メモリ・ブロックがデータを含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、上記(11)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
(15)各メモリ・ブロックが命令を含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、上記(11)に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
【図面の簡単な説明】
【図1】本発明の方法およびシステムを実施するために利用されるデータ処理システムの詳細なブロック図である。
【図2】本発明の方法およびシステムの第1のモードによる、変換索引バッファを利用した仮想アドレスの実アドレスへの変換を示す詳細なブロック図である。
【図3】本発明の方法およびシステムの第1のモードに従って動作するときの、図2の変換索引バッファの各エントリを示す詳細ブロック図である。
【図4】本発明の方法およびシステムの第2のモードによる、変換索引バッファを利用した大量のメモリ・ブロックの保護状況の決定を示す詳細なブロック図である。
【図5】本発明の方法およびシステムの第2のモードに従って動作するときの、図4の変換索引バッファの各エントリの詳細ブロック図である。
【符号の説明】
10 プロセッサ
11 システム・バス
12 バス・インターフェース・ユニット(BIU)
14 命令キャッシュ
16 データ・キャッシュ
18 ブランチ・ユニット
22 固定小数点ユニット(FXU)
28 ロード記憶ユニット(LSU)
30 浮動小数点ユニット(FPU)
32 汎用アーキテクチャ・レジスタ(GPR)
36 浮動小数点アーキテクチャ・レジスタ(FPR)

Claims (15)

  1. メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行う方法であって、前記方法は、前記変換索引バッファの各エントリの下位ビットを、実ページ番号と、実行特権ビットと、ページ保護ビットから構成させて使用する第1のモードと、メモリの単一のブロックまたはページの保護状況を示す独立な複数の保護ビットを下位ビットにリストした構成として前記変換索引バッファを編成する第2のモードとを含んで構成され、前記方法はさらに、
    各仮想アドレス識別子が、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶するステップと、
    第2の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶するステップとを含み、
    前記第2の動作モードでは前記変換索引バッファの上位ビットに前記各仮想アドレス識別子を記憶させ、下位ビットに前記各仮想アドレス識別子に関連して複数個(M個)の前記保護ビットを記憶させて、連続したメモリ・ブロックのそれぞれに関連する前記M個の前記保護ビットを提供し、前記保護ビットが、前記メモリ・ブロックそれぞれの保護状況を示し、最高N×M個のメモリ・ブロックのメモリ・ブロック保護を提供する方法。
  2. 第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶するステップを含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、請求項1に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
  3. 第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記ステップが、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶するステップを含むことを特徴とする、請求項2に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
  4. 各メモリ・ブロックがデータを含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、請求項1に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
  5. 各メモリ・ブロックが命令を含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、請求項1に記載のデータ処理システムにおいて効率的なメモリ管理を行う方法。
  6. メモリ管理ユニットを利用して仮想アドレスを実アドレスに変換するデータ処理システムにおいて、変換索引バッファを使って効率的なメモリ管理を行うためのシステムであって、前記システムは、前記変換索引バッファの各エントリの下位ビットを、実ページ番号と、実行特権ビットと、ページ保護ビットから構成させて使用する第1のモードと、メモリの単一のブロックまたはページの保護状況を示す独立な複数の保護ビットを下位ビットにリストした構成として前記変換索引バッファを編成する第2のモードとを含んで構成され、前記システムはさらに、
    各仮想アドレス識別子が、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する手段と、
    第2の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する手段とを含み、
    前記第2の動作モードは、上位ビットの各エントリ内に、前記仮想アドレス識別子、前記各仮想アドレス識別子に関連して下位ビットに記憶された複数個(M個)の保護ビットとを記憶させることにより、前記変換索引バッファの連続したメモリ・ブロックのそれぞれに関連する前記M個の保護ビットを提供し、前記保護ビットが、前記メモリ・ブロックそれぞれの保護状況を示し、最高N×M個のメモリ・ブロックのメモリ・ブロック保護を提供できるようにする、システム。
  7. 第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、請求項6に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
  8. 第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記の関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、請求項7に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
  9. 各メモリ・ブロックがデータを含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、請求項6に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
  10. 各メモリ・ブロックが命令を含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、請求項1に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
  11. プロセッサと、メモリと、内部の仮想アドレスを前記メモリ内の実アドレスにマッピングするメモリ管理ユニットとを含む、データ処理システムであって、前記データ処理システムは、前記変換索引バッファの各エントリの下位ビットを、実ページ番号と、実行特権ビットと、ページ保護ビットから構成させて使用する第1のモードと、メモリの単一のブロックまたはページの保護状況を示す独立な複数の保護ビットを下位ビットにリストした構成として前記変換索引バッファを編成する第2のモードとを含んで構成され、
    前記メモリ管理ユニットが、
    変換索引バッファと、
    各仮想アドレス識別子が、それに関連して記憶された単一メモリ・ブロック用の関連実アドレス・エントリを有し、前記変換索引バッファを使って、選択した仮想アドレスが対応する実アドレスに変換できるように、第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記索引バッファに記憶する手段と、
    第2の動作モードで動作中に最高N個の仮想アドレス識別子を前記索引バッファに記憶する手段とを含み、
    前記第2の動作モードは、上位ビットの各エントリ内に、前記仮想アドレス識別子、前記各仮想アドレス識別子に関連して下位ビットに記憶された複数個(M個)の保護ビットとを記憶させることにより、前記変換索引バッファの連続したメモリ・ブロックのそれぞれに関連する前記M個の保護ビットを提供し、前記保護ビットが、前記メモリ・ブロックそれぞれの保護状況を示し、最高N×M個のメモリ・ブロックのメモリ・ブロック保護を提供できるようにする、データ処理システム。
  12. 第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して単一の保護ビットを記憶する手段を含み、前記単一の保護ビットが、前記の関連する実アドレス・エントリの保護状況を示すことを特徴とする、請求項11に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
  13. 第1の動作モードで動作中に最高N個の仮想アドレス識別子を前記変換索引バッファに記憶する前記手段が、さらに、各仮想アドレス識別子に関連して、前記関連する実アドレス・エントリのキャッシュ属性を示す複数の属性ビットを記憶する手段を含むことを特徴とする、請求項12に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
  14. 各メモリ・ブロックがデータを含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の書込み保護状況ビットを含むことを特徴とする、請求項11に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
  15. 各メモリ・ブロックが命令を含み、前記M個の保護ビットがそれぞれ関連するメモリ・ブロック用の実行保護状況ビットを含むことを特徴とする、請求項11に記載のデータ処理システムにおいて効率的なメモリ管理を行うためのシステム。
JP01864996A 1995-02-10 1996-02-05 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム Expired - Fee Related JP3618868B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/387,147 US5715420A (en) 1995-02-10 1995-02-10 Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer
US387147 1995-02-10

Publications (2)

Publication Number Publication Date
JPH08249232A JPH08249232A (ja) 1996-09-27
JP3618868B2 true JP3618868B2 (ja) 2005-02-09

Family

ID=23528672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01864996A Expired - Fee Related JP3618868B2 (ja) 1995-02-10 1996-02-05 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム

Country Status (4)

Country Link
US (1) US5715420A (ja)
EP (1) EP0726525A3 (ja)
JP (1) JP3618868B2 (ja)
KR (1) KR100218617B1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781922A (en) * 1996-11-19 1998-07-14 International Business Machines Corporation Page boundary caches
US6195746B1 (en) * 1997-01-31 2001-02-27 International Business Machines Corporation Dynamically typed register architecture
US5940587A (en) * 1997-12-12 1999-08-17 Intel Corporation System and method for trap address mapping for fault isolation
KR100924303B1 (ko) * 2008-02-22 2009-11-02 인하대학교 산학협력단 메모리 어드레스의 모니터링 방법 및 장치
US8055876B2 (en) * 2008-06-06 2011-11-08 International Business Machines Corporation Selectively mark free frames as unused for cooperative memory over-commitment
US8799892B2 (en) * 2008-06-09 2014-08-05 International Business Machines Corporation Selective memory donation in virtual real memory environment
US8312201B2 (en) * 2008-06-09 2012-11-13 International Business Machines Corporation Managing memory allocations loans
US7971027B2 (en) * 2008-06-09 2011-06-28 International Business Machines Corporation Mark page-out pages as critical for cooperative memory over-commitment
US8725948B2 (en) * 2010-10-06 2014-05-13 Red Hat Israel, Ltd. Opcode length caching
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4581702A (en) * 1983-01-10 1986-04-08 International Business Machines Corporation Critical system protection
US4580217A (en) * 1983-06-22 1986-04-01 Ncr Corporation High speed memory management system and method
US4794524A (en) * 1984-07-03 1988-12-27 Zilog, Inc. Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
CA2008071A1 (en) * 1989-01-27 1990-07-27 Jeffrey S. Watters Pump bus to avoid indeterminacy in reading variable bit field
US4959860A (en) * 1989-02-07 1990-09-25 Compaq Computer Corporation Power-on password functions for computer system
US5265227A (en) * 1989-11-14 1993-11-23 Intel Corporation Parallel protection checking in an address translation look-aside buffer
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
GB9118312D0 (en) * 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
US5276878A (en) * 1992-10-07 1994-01-04 International Business Machines Corporation Method and system for task memory management in a multi-tasking data processing system

Also Published As

Publication number Publication date
EP0726525A3 (en) 1997-06-18
KR100218617B1 (ko) 1999-09-01
EP0726525A2 (en) 1996-08-14
JPH08249232A (ja) 1996-09-27
US5715420A (en) 1998-02-03
KR960032197A (ko) 1996-09-17

Similar Documents

Publication Publication Date Title
US5854913A (en) Microprocessor with an architecture mode control capable of supporting extensions of two distinct instruction-set architectures
US5963984A (en) Address translation unit employing programmable page size
US5860107A (en) Processor and method for store gathering through merged store operations
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
EP0548315B1 (en) Translation buffer for virtual machines with address space match
US5819063A (en) Method and data processing system for emulating a program
US20080104362A1 (en) Method and System for Performance-Driven Memory Page Size Promotion
EP0651332B1 (en) Linearly addressable microprocessor cache
US5367705A (en) In-register data manipulation using data shift in reduced instruction set processor
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US5475827A (en) Dynamic look-aside table for multiple size pages
US5752274A (en) Address translation unit employing a victim TLB
US6175898B1 (en) Method for prefetching data using a micro-TLB
US5873123A (en) Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
KR20030024850A (ko) 확장 레지스터 모드에서 확장 레지스터 세트를 액세스하는중앙 처리 장치
US5682495A (en) Fully associative address translation buffer having separate segment and page invalidation
CN111213132B (zh) 用飞行中预取服务于cpu需求请求
JP3618868B2 (ja) 二重モード変換索引バッファを利用したデータ処理システムにおける効率的メモリ管理の方法およびシステム
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
KR100231613B1 (ko) 마이크로프로세서의 온칩 캐시에 내재하는 메모리 저장 장소를 선택적으로 로킹하는 장치 및 그 방법
KR100373576B1 (ko) 변환 장치의 엔트리를 무효로 하는 시스템 및 방법
US5732005A (en) Single-precision, floating-point register array for floating-point units performing double-precision operations by emulation
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation
US5613081A (en) Method of operating a data processor with rapid address comparison for data forwarding
JP3698441B2 (ja) 拡張された機能を特定するための命令フィールドを用いるマイクロプロセッサー及び該マイクロプロセッサーを用いるコンピューターシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041015

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20041109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071119

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111119

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees