JPH05210593A - マイクロプロセッサのためのメモリ区分化装置およびセグメント記述子をセグメント・レジスタへロードする方法 - Google Patents
マイクロプロセッサのためのメモリ区分化装置およびセグメント記述子をセグメント・レジスタへロードする方法Info
- Publication number
- JPH05210593A JPH05210593A JP4300598A JP30059892A JPH05210593A JP H05210593 A JPH05210593 A JP H05210593A JP 4300598 A JP4300598 A JP 4300598A JP 30059892 A JP30059892 A JP 30059892A JP H05210593 A JPH05210593 A JP H05210593A
- Authority
- JP
- Japan
- Prior art keywords
- descriptor
- segment
- format
- selector
- cache
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 データ・アクセスの速度および効率を高くす
るために改良したメモリ製造を得ることである。 【構成】 セグメント・セレクタを基にしてセグメント
記述子を発生するためのマイクロプロセッサにおける改
良した区分化装置である。本発明のメモリ装置は、以前
に取り出されて、整理され、試験された記述子を後で同
じ記述子によりアクセスするために、その記述子を保持
する記述子キャッシュを備える。記述子が記述子キャッ
シュで見出ださないとすると、ごちゃごちゃにされた生
の記述子をメモリから取り出すためにセレクタが用いら
れる。それから、記述子を後で見出だすことができるよ
うに、ごちゃごちゃにされた記述子が記述子キャッシュ
を更新するためにも用いられる。
るために改良したメモリ製造を得ることである。 【構成】 セグメント・セレクタを基にしてセグメント
記述子を発生するためのマイクロプロセッサにおける改
良した区分化装置である。本発明のメモリ装置は、以前
に取り出されて、整理され、試験された記述子を後で同
じ記述子によりアクセスするために、その記述子を保持
する記述子キャッシュを備える。記述子が記述子キャッ
シュで見出ださないとすると、ごちゃごちゃにされた生
の記述子をメモリから取り出すためにセレクタが用いら
れる。それから、記述子を後で見出だすことができるよ
うに、ごちゃごちゃにされた記述子が記述子キャッシュ
を更新するためにも用いられる。
Description
【0001】
【産業上の利用分野】本発明はコンピュータ用のメモリ
管理装置に関するものであり、更に詳しくいえば、デー
タ・アクセスの速度と効率が高いメモリ区分装置に関す
るものである。
管理装置に関するものであり、更に詳しくいえば、デー
タ・アクセスの速度と効率が高いメモリ区分装置に関す
るものである。
【0002】
【従来の技術】メモリ管理装置は、いくつかのプログラ
ムが同時に実行されている時に、プログラム同志の干渉
を避けるために各プログラムへ独立したアドレス空間を
プログラムへ与えることができる。メモリ管理は区分化
およびページングで典型的に構成される。独立の、保護
されたいくつかのアドレス空間(「セグメント」)を各
プログラムへ与えるために区分化が用いられる。小容量
のランダム・アクセス・メモリ(「RAM」)およびあ
るディスク記憶装置を用いて大きなアドレス空間がシミ
ュレートされるような環境をサポートするためにページ
ングが用いられる。システム設計者達はそれらのメカニ
ズムのいずれかまたは両方を選択できる。いくつかのプ
ログラムが同時に実行されている時は、一方のプログラ
ムを他のプログラムからの妨害から守るためにいずれか
のメカニズムを使用できる。
ムが同時に実行されている時に、プログラム同志の干渉
を避けるために各プログラムへ独立したアドレス空間を
プログラムへ与えることができる。メモリ管理は区分化
およびページングで典型的に構成される。独立の、保護
されたいくつかのアドレス空間(「セグメント」)を各
プログラムへ与えるために区分化が用いられる。小容量
のランダム・アクセス・メモリ(「RAM」)およびあ
るディスク記憶装置を用いて大きなアドレス空間がシミ
ュレートされるような環境をサポートするためにページ
ングが用いられる。システム設計者達はそれらのメカニ
ズムのいずれかまたは両方を選択できる。いくつかのプ
ログラムが同時に実行されている時は、一方のプログラ
ムを他のプログラムからの妨害から守るためにいずれか
のメカニズムを使用できる。
【0003】区分化によって、簡単な8ビット・プロセ
ッサのメモリ・モデルのように、またはアドレス翻訳お
よび保護で高度に構成されたメモリ・モデルのように、
メモリを完全に統一されない、簡単なものにすることが
できる。各セグメントは独立の、保護されたアドレス空
間である。セグメントに対するアクセスは、そのセグメ
ントのサイズと、それをアクセスするために求められる
特権レベルと、それに対して行うことができるメモリ基
準の種類(命令取り出し、スタック・プッシュまたはス
タック・ポップ、呼び出し動作、書込み動作等)と、そ
れがメモリに存在するかどうかとを記述するデータによ
り制御される。
ッサのメモリ・モデルのように、またはアドレス翻訳お
よび保護で高度に構成されたメモリ・モデルのように、
メモリを完全に統一されない、簡単なものにすることが
できる。各セグメントは独立の、保護されたアドレス空
間である。セグメントに対するアクセスは、そのセグメ
ントのサイズと、それをアクセスするために求められる
特権レベルと、それに対して行うことができるメモリ基
準の種類(命令取り出し、スタック・プッシュまたはス
タック・ポップ、呼び出し動作、書込み動作等)と、そ
れがメモリに存在するかどうかとを記述するデータによ
り制御される。
【0004】ここで、メモリ・アドレス変換メカニズム
の絵画的表現が示されている図1(a)を参照する。区
分化メカニズム105は区分化された(論理)アドレス
100を、線形アドレス110と呼ばれる連続する区分
化されていないアドレス空間へ変換する。ページングが
可能にされると、ページング・メカニズム115が線形
アドレス110を物理アドレス120へ変換する。ペー
ジングがイネーブルされないと、線形アドレス110が
物理アドレス120として用いられる。物理アドレス1
20は最終的にはプロセッサから出るアドレス・バスに
現れる。
の絵画的表現が示されている図1(a)を参照する。区
分化メカニズム105は区分化された(論理)アドレス
100を、線形アドレス110と呼ばれる連続する区分
化されていないアドレス空間へ変換する。ページングが
可能にされると、ページング・メカニズム115が線形
アドレス110を物理アドレス120へ変換する。ペー
ジングがイネーブルされないと、線形アドレス110が
物理アドレス120として用いられる。物理アドレス1
20は最終的にはプロセッサから出るアドレス・バスに
現れる。
【0005】メモリ管理装置の例は、本願の出願人であ
る、アメリカ合衆国カリフォルニア州サンタ・クララ
(Santa Clara)所在のインテル・コーポレ
ーション(Intel Corporation)によ
り製造されたi486(商標)マイクロプロセッサにお
いて実現されていることを見出だすことができる。その
i486(商標)マイクロプロセッサにおいては、論理
アドレスはそれのセグメントのための16ビット・セグ
メント・セレクタと、そのセグメントへオフセットされ
る32ビットとで構成される。図1(a)によれば、セ
グメントのベース・アドレス103へオフセットを加え
ることにより、論理アドレス100は線形アドレス11
0へ変換される。ベース・アドレス103はセグメント
記述子104から得られる。セグメント記述子はメモリ
内のデータ構造であって、セグメントのサイズおよび場
所、並びにアクセス制御情報を供給する。たとえば、i
486(商標)マイクロプロセッサ内のセグメント記述
子は大域記述子表(GDT)またはローカル記述子表
(LDT)の2つの表からくる。システム内の全てのプ
ログラムに対して1つのGDTがあり、実行されている
別々の各プログラムまたはタスクに対して1つのLDT
がある。オペレーティング・システムが許すものとする
と、種々のプログラムがGDTを共有できる。システム
はLDTなしで構成することもできる。i486(商
標)についての詳細はアメリカ合衆国カリフォルニア州
サンタ・クララ(Santa Clara)所在のイン
テル・コーポレーション(Intel Corpora
tion)から入手できるi486(商標)マイクロプ
ロセッサ:プログラマの参考マニュアル(i486 M
icroprocessor:Programmer’
s Reference Manual)を参照された
い。
る、アメリカ合衆国カリフォルニア州サンタ・クララ
(Santa Clara)所在のインテル・コーポレ
ーション(Intel Corporation)によ
り製造されたi486(商標)マイクロプロセッサにお
いて実現されていることを見出だすことができる。その
i486(商標)マイクロプロセッサにおいては、論理
アドレスはそれのセグメントのための16ビット・セグ
メント・セレクタと、そのセグメントへオフセットされ
る32ビットとで構成される。図1(a)によれば、セ
グメントのベース・アドレス103へオフセットを加え
ることにより、論理アドレス100は線形アドレス11
0へ変換される。ベース・アドレス103はセグメント
記述子104から得られる。セグメント記述子はメモリ
内のデータ構造であって、セグメントのサイズおよび場
所、並びにアクセス制御情報を供給する。たとえば、i
486(商標)マイクロプロセッサ内のセグメント記述
子は大域記述子表(GDT)またはローカル記述子表
(LDT)の2つの表からくる。システム内の全てのプ
ログラムに対して1つのGDTがあり、実行されている
別々の各プログラムまたはタスクに対して1つのLDT
がある。オペレーティング・システムが許すものとする
と、種々のプログラムがGDTを共有できる。システム
はLDTなしで構成することもできる。i486(商
標)についての詳細はアメリカ合衆国カリフォルニア州
サンタ・クララ(Santa Clara)所在のイン
テル・コーポレーション(Intel Corpora
tion)から入手できるi486(商標)マイクロプ
ロセッサ:プログラマの参考マニュアル(i486 M
icroprocessor:Programmer’
s Reference Manual)を参照された
い。
【0006】変換されたアドレスは線形アドレス110
である。ページング・メカニズムが用いられないとする
と、線形アドレス110は物理アドレス120である。
ページングが用いられるならば、物理アドレス120を
生ずるために第2のレベルのアクセス情報を必要とされ
る。図1を再び参照すると、セグメントを決めるセグメ
ント記述子104をセグメント・セレクタ102が指し
ている様子が示されている。i486(商標)マイクロ
プロセッサは、それらのセグメント・セレクタが現在占
めているセグメント・セレクタよりも多くのセグメント
を求めることができる。これが真実であるとすると、新
しいセグメントを必要とする時にセグメント・レジスタ
の内容を変更するためにプログラムはMOVE命令のフ
ォームを用いる。図1(b)に示されているように、セ
グメント・セレクタ132は記述子表133と記述子イ
ンデックス134を指定することによりセグメント記述
子を識別する。
である。ページング・メカニズムが用いられないとする
と、線形アドレス110は物理アドレス120である。
ページングが用いられるならば、物理アドレス120を
生ずるために第2のレベルのアクセス情報を必要とされ
る。図1を再び参照すると、セグメントを決めるセグメ
ント記述子104をセグメント・セレクタ102が指し
ている様子が示されている。i486(商標)マイクロ
プロセッサは、それらのセグメント・セレクタが現在占
めているセグメント・セレクタよりも多くのセグメント
を求めることができる。これが真実であるとすると、新
しいセグメントを必要とする時にセグメント・レジスタ
の内容を変更するためにプログラムはMOVE命令のフ
ォームを用いる。図1(b)に示されているように、セ
グメント・セレクタ132は記述子表133と記述子イ
ンデックス134を指定することによりセグメント記述
子を識別する。
【0007】次に、i486(商標)マイクロプロセッ
サにおける記述子フォーマットが示されている図2を参
照する。しかし、従来のプロセッサ・アーキテクチャの
ためにバックワード・コンパチビリティを提供すること
を記述子フォーマットが必要とするから、それがメモリ
に記憶された時に記述子フォーマットはごちゃまぜにな
る。内部プロセッサの動作を簡単にするために、i48
6(商標)マイクロプロセッサのためのごちゃまぜにさ
れていない記述子310への生のごちゃまぜにされたセ
グメント記述子300の変換が図3に示されている。
サにおける記述子フォーマットが示されている図2を参
照する。しかし、従来のプロセッサ・アーキテクチャの
ためにバックワード・コンパチビリティを提供すること
を記述子フォーマットが必要とするから、それがメモリ
に記憶された時に記述子フォーマットはごちゃまぜにな
る。内部プロセッサの動作を簡単にするために、i48
6(商標)マイクロプロセッサのためのごちゃまぜにさ
れていない記述子310への生のごちゃまぜにされたセ
グメント記述子300の変換が図3に示されている。
【0008】本発明はマイクロプロセッサにおけるメモ
リ動作のための改良したメモリ管理装置を提供するもの
である。後で説明するように、以後のセグメント・レジ
スタのロードにおいて、セグメント記述子をセグメント
記述子キャッシュから出て、1クロック以内にセグメン
ト記述子レジスタ・ファイルへ直接ロードして、セグメ
ント・レジスタ・ロードに通常関連する全ての作業およ
びオーバヘッドをバイパスできるように、以前に取り出
されて、ごちゃごちゃにされていない、試験された記述
子を保持するためにセグメント記述子キャッシュが用い
られる。当業者には明かであるように、本発明のメモリ
装置によって、セグメント・セレクタによる連想探索の
後で、セグメント記述子がセグメント記述子においてキ
ャッシュされた時に、セグメント記述子をセグメント・
レジスタへ直接ロードできるようにされる。記述子キャ
ッシュに記述子が存在しないとすると、記述子を続いて
使用できるように、セレクタは、メモリ内の記述子表か
ら記述子を取り出すために用いられ、記述子を整理およ
び試験し、新たに取り出されて、整理され、および試験
された記述子で記述子キャッシュを更新する。
リ動作のための改良したメモリ管理装置を提供するもの
である。後で説明するように、以後のセグメント・レジ
スタのロードにおいて、セグメント記述子をセグメント
記述子キャッシュから出て、1クロック以内にセグメン
ト記述子レジスタ・ファイルへ直接ロードして、セグメ
ント・レジスタ・ロードに通常関連する全ての作業およ
びオーバヘッドをバイパスできるように、以前に取り出
されて、ごちゃごちゃにされていない、試験された記述
子を保持するためにセグメント記述子キャッシュが用い
られる。当業者には明かであるように、本発明のメモリ
装置によって、セグメント・セレクタによる連想探索の
後で、セグメント記述子がセグメント記述子においてキ
ャッシュされた時に、セグメント記述子をセグメント・
レジスタへ直接ロードできるようにされる。記述子キャ
ッシュに記述子が存在しないとすると、記述子を続いて
使用できるように、セレクタは、メモリ内の記述子表か
ら記述子を取り出すために用いられ、記述子を整理およ
び試験し、新たに取り出されて、整理され、および試験
された記述子で記述子キャッシュを更新する。
【0009】
【発明が解決しようとする課題】したがって、本発明の
目的は、データ・アクセスの速度および効率を高くする
ために改良したメモリ装置を得ることである。本発明の
別の目的は、以前に取り出されて、整理されたセグメン
ト記述子を、後で使用するために、キャッシュできるよ
うに、セグメント記述子キャッシュを有する改良したメ
モリ装置を得ることである。
目的は、データ・アクセスの速度および効率を高くする
ために改良したメモリ装置を得ることである。本発明の
別の目的は、以前に取り出されて、整理されたセグメン
ト記述子を、後で使用するために、キャッシュできるよ
うに、セグメント記述子キャッシュを有する改良したメ
モリ装置を得ることである。
【0010】
【課題を解決するための手段】本発明はセグメント・セ
レクタに応答してセグメント記述子を発生するためのマ
イクロプロセッサにおける改良したメモリ管理装置を開
示するものである。一実施例においては、本発明のメモ
リ装置は、以前に取り出されて、整理され、試験された
記述子を後で同じ記述子によりアクセスするために、そ
の記述子を保持する記述子キャッシュを備える。記述子
が記述子キャッシュで見出ださないとすると、ごちゃご
ちゃにされた生の記述子をメモリから取り出すためにセ
レクタが用いられる。それから、記述子を後で見出だす
ことができるように、ごちゃごちゃにされた記述子が記
述子キャッシュを更新するために用いられる。以下の説
明においては、メモリ・アクセス効率を高くするため
に、区分化技術を用いるマイクロプロセッサ・メモリ装
置により使用するために特定の応用を持つ、コンピュー
タにおいてメモリ動作を行うための改良したメモリ管理
装置を開示する。以下の説明においては、本発明を完全
に理解できるようにするために、特定のメモリ、編成、
アーキテクチャ、データ・レート、等について述べる。
しかし、それらの特定の詳細なしに本発明を実施できる
ことが当業者には明かであろう。他の場合には、本発明
を不必要にあいまいにしないようにするために、周知の
回路はブロック図の態様で示す。
レクタに応答してセグメント記述子を発生するためのマ
イクロプロセッサにおける改良したメモリ管理装置を開
示するものである。一実施例においては、本発明のメモ
リ装置は、以前に取り出されて、整理され、試験された
記述子を後で同じ記述子によりアクセスするために、そ
の記述子を保持する記述子キャッシュを備える。記述子
が記述子キャッシュで見出ださないとすると、ごちゃご
ちゃにされた生の記述子をメモリから取り出すためにセ
レクタが用いられる。それから、記述子を後で見出だす
ことができるように、ごちゃごちゃにされた記述子が記
述子キャッシュを更新するために用いられる。以下の説
明においては、メモリ・アクセス効率を高くするため
に、区分化技術を用いるマイクロプロセッサ・メモリ装
置により使用するために特定の応用を持つ、コンピュー
タにおいてメモリ動作を行うための改良したメモリ管理
装置を開示する。以下の説明においては、本発明を完全
に理解できるようにするために、特定のメモリ、編成、
アーキテクチャ、データ・レート、等について述べる。
しかし、それらの特定の詳細なしに本発明を実施できる
ことが当業者には明かであろう。他の場合には、本発明
を不必要にあいまいにしないようにするために、周知の
回路はブロック図の態様で示す。
【0011】
【実施例】まず、セグメント・レジスタのローディング
・プロセスがブロック図フォーマットで示されている図
4を参照する。セグメント・レジスタ・ロードは任意の
区分化メモリ管理技術にとっての基礎であることが当業
者には明かである。図示のように、プロセッサがMOV
E SEG REGのような命令からのセレクタに遭遇
すると、保護されたデータをアクセスするために、より
特権の少ないプログラムがより特権のあるプログラムを
使用できないように、プロセッサは任意の特権妨害(P
rivilege Violation)に対してセレ
クタを試験する。特権妨害が見出だされないとすると、
記述子表およびその表の中の記述子を識別するセレクタ
を基にして、8バイト記述子がメモリ/データ・キャッ
シュからプロセッサにより取り出される。この記述子は
特権妨害について試験される。特権妨害が見出だされな
ければ、記述子は整理され、セグメントについての、サ
イズおよびセグメントの場所のような情報、および制御
および状態情報を実行するプログラムのためにセグメン
ト・レジスタへロードできる。
・プロセスがブロック図フォーマットで示されている図
4を参照する。セグメント・レジスタ・ロードは任意の
区分化メモリ管理技術にとっての基礎であることが当業
者には明かである。図示のように、プロセッサがMOV
E SEG REGのような命令からのセレクタに遭遇
すると、保護されたデータをアクセスするために、より
特権の少ないプログラムがより特権のあるプログラムを
使用できないように、プロセッサは任意の特権妨害(P
rivilege Violation)に対してセレ
クタを試験する。特権妨害が見出だされないとすると、
記述子表およびその表の中の記述子を識別するセレクタ
を基にして、8バイト記述子がメモリ/データ・キャッ
シュからプロセッサにより取り出される。この記述子は
特権妨害について試験される。特権妨害が見出だされな
ければ、記述子は整理され、セグメントについての、サ
イズおよびセグメントの場所のような情報、および制御
および状態情報を実行するプログラムのためにセグメン
ト・レジスタへロードできる。
【0012】当業者であればわかるように、本発明は、
以前に取り出されて、試験された記述子を連想メモリに
保持できるようにすることにより、改良したメモリ装置
を提供するものである。次にセグメント記述子が同じ記
述子をロードすると、セグメント記述子キャッシュが探
索される。セグメント記述子キャッシュが希望のエント
リを含んでいるとすると、セグメント・レジスタ・ファ
イルをセグメント記述子キャッシュから直接ロードで
き、したがってセグメント記述子キャッシュなしに、プ
ロセスで求められる全てのステップをバイパスする。し
たがって、メモリ区分化装置の性能が大幅に向上する。
以前に取り出されて、試験された記述子を連想メモリに
保持できるようにすることにより、改良したメモリ装置
を提供するものである。次にセグメント記述子が同じ記
述子をロードすると、セグメント記述子キャッシュが探
索される。セグメント記述子キャッシュが希望のエント
リを含んでいるとすると、セグメント・レジスタ・ファ
イルをセグメント記述子キャッシュから直接ロードで
き、したがってセグメント記述子キャッシュなしに、プ
ロセスで求められる全てのステップをバイパスする。し
たがって、メモリ区分化装置の性能が大幅に向上する。
【0013】次に、本発明の教示を含むセグメント・レ
ジスタ・ロードのためのメモリ装置が示されている図5
を参照する。バスの寸法は説明のためだけのものであっ
て、図示の特定の詳細なしに本発明を実施できることを
当業者は理解すべきである。図5に示されているよう
に、特権がより低いプログラムが保護されているデータ
をアクセスできないように、装置500はセレクタ50
1における特権妨害を試験するためのセレクタ特権試験
器510を有する。この実現で用いているように、セグ
メント・セレクタの特権フィールドが、プログラムより
大きい値を有する(すなわち、特権がより低い)特権レ
ベルを含むと、セレクタはプログラムの特権レベルを無
効にする。セレクタ501が特権試験器510による試
験に合格したとすると、セレクタは記述子アドレス発生
器520へ伝送される。それから記述子アドレス発生器
520は、そのセレクタのための記述子表内の記述子の
適切なアドレスを発生する。現在は、大域記述子表とロ
ーカル記述子表との2つの記述子表が用いられる。この
アドレス発生過程は、セレクタ501による選択を基に
して表を指定するために現在のセグメントを変更するこ
とと、実行アドレスをセレクタのインデックス値にセッ
トすることを含む。実行値によって、記述子をメモリ5
00から取り出して、整理器550と記述子試験器54
0に保持することができ、記述子試験器540は記述子
を検査して、セグメントに対するそれのアクセスを制御
する。アクセスの妨害が起きたとすると、プロセッサに
対して障害が発生される。アクセスの妨害が起きなけれ
ば、整理器550は記述子を図3に示されている内部の
整理された態様へ変換する。成功した記述子がセグメン
ト・レジスタ560へロードされ、後で使用するために
記述子・キャッシュ570へ更新される。
ジスタ・ロードのためのメモリ装置が示されている図5
を参照する。バスの寸法は説明のためだけのものであっ
て、図示の特定の詳細なしに本発明を実施できることを
当業者は理解すべきである。図5に示されているよう
に、特権がより低いプログラムが保護されているデータ
をアクセスできないように、装置500はセレクタ50
1における特権妨害を試験するためのセレクタ特権試験
器510を有する。この実現で用いているように、セグ
メント・セレクタの特権フィールドが、プログラムより
大きい値を有する(すなわち、特権がより低い)特権レ
ベルを含むと、セレクタはプログラムの特権レベルを無
効にする。セレクタ501が特権試験器510による試
験に合格したとすると、セレクタは記述子アドレス発生
器520へ伝送される。それから記述子アドレス発生器
520は、そのセレクタのための記述子表内の記述子の
適切なアドレスを発生する。現在は、大域記述子表とロ
ーカル記述子表との2つの記述子表が用いられる。この
アドレス発生過程は、セレクタ501による選択を基に
して表を指定するために現在のセグメントを変更するこ
とと、実行アドレスをセレクタのインデックス値にセッ
トすることを含む。実行値によって、記述子をメモリ5
00から取り出して、整理器550と記述子試験器54
0に保持することができ、記述子試験器540は記述子
を検査して、セグメントに対するそれのアクセスを制御
する。アクセスの妨害が起きたとすると、プロセッサに
対して障害が発生される。アクセスの妨害が起きなけれ
ば、整理器550は記述子を図3に示されている内部の
整理された態様へ変換する。成功した記述子がセグメン
ト・レジスタ560へロードされ、後で使用するために
記述子・キャッシュ570へ更新される。
【0014】次に、セレクタ記述子の動作順序を識別す
る流れ図が示されている図6を参照する。MOV Sr
eg命令におけるようにセレクタ501に遭遇させられ
ると、記述子キャッシュ570が索引される。対応する
記述子が見つかると(「ヒット」)、記述子がセレクタ
501とともに記述子キャッシュ570からセグメント
・レジスタ・ファイル560へロードさせられる。対応
する記述子が見つからないと(「ミス」)、不十分な特
権レベルのセレクタに対して障害を発生できるように、
セレクタ501が特権妨害について試験される。セレク
タ501が特権試験器510による試験に合格すると、
記述子線形アドレスを計算でき、記述子がメモリ530
から取り出される。記述子はそれの特権レベルについて
も試験され、どのような特権妨害に対しても障害が発生
される。記述子は整理され、整理された記述子はセレク
タ・レジスタ・ファイル560へロードされる。整理さ
れた記述子は更新記述子キャッシュ570を更新するた
めにも用いられる。
る流れ図が示されている図6を参照する。MOV Sr
eg命令におけるようにセレクタ501に遭遇させられ
ると、記述子キャッシュ570が索引される。対応する
記述子が見つかると(「ヒット」)、記述子がセレクタ
501とともに記述子キャッシュ570からセグメント
・レジスタ・ファイル560へロードさせられる。対応
する記述子が見つからないと(「ミス」)、不十分な特
権レベルのセレクタに対して障害を発生できるように、
セレクタ501が特権妨害について試験される。セレク
タ501が特権試験器510による試験に合格すると、
記述子線形アドレスを計算でき、記述子がメモリ530
から取り出される。記述子はそれの特権レベルについて
も試験され、どのような特権妨害に対しても障害が発生
される。記述子は整理され、整理された記述子はセレク
タ・レジスタ・ファイル560へロードされる。整理さ
れた記述子は更新記述子キャッシュ570を更新するた
めにも用いられる。
【0015】次に、現在実現されているセレクタ記述子
キャッシュを表す線図が示されている図7を参照する。
図には4×16のセット連想キヤッシュが示されている
が、希望の機能性を達成するために別の編成を容易に実
現できることを当業者は理解すべきである。記述子キャ
ッシュ770はタグ・アレイ720と、データ・アレイ
730と、最後に用いた(「LRU」)アレイ710と
の3つのアレイへ分けられる。セレクタ・ビット[4:
3]がセット数として用いられ、記述子キャッシュへイ
ンデックスされる。各セットは4つの「ウエイ」で構成
され、各ウエイは希望のエントリに対して連想的に探索
される。
キャッシュを表す線図が示されている図7を参照する。
図には4×16のセット連想キヤッシュが示されている
が、希望の機能性を達成するために別の編成を容易に実
現できることを当業者は理解すべきである。記述子キャ
ッシュ770はタグ・アレイ720と、データ・アレイ
730と、最後に用いた(「LRU」)アレイ710と
の3つのアレイへ分けられる。セレクタ・ビット[4:
3]がセット数として用いられ、記述子キャッシュへイ
ンデックスされる。各セットは4つの「ウエイ」で構成
され、各ウエイは希望のエントリに対して連想的に探索
される。
【0016】セット内のどの「ウエイ」が最後に用いら
れたかを判定するために用いられる3ビットでLRUエ
ントリ715が構成される。新しいエントリが記述子キ
ャッシュ内に置くものとすると、性能に与える衝撃を最
小にしてどのエントリを交換できるかをそのセットのた
めのLRUエントリが判定する。図8に示されているよ
うに、どのエントリを交換するかを判定するために、L
0,L1、L2の3つのLRUビットにLRUアルゴリ
ズムが用いられる。
れたかを判定するために用いられる3ビットでLRUエ
ントリ715が構成される。新しいエントリが記述子キ
ャッシュ内に置くものとすると、性能に与える衝撃を最
小にしてどのエントリを交換できるかをそのセットのた
めのLRUエントリが判定する。図8に示されているよ
うに、どのエントリを交換するかを判定するために、L
0,L1、L2の3つのLRUビットにLRUアルゴリ
ズムが用いられる。
【0017】エントリが記述子キャッシュに置かれた時
には、タグ・アレイ720からの記述子タグ740はプ
ロセッサの残りのセレクタ・ビットと特権レベルを含
む。そのタグは、エントリが有効であるかどうかを指示
する有効ビット741と、コード・セグメント・フラッ
グ(CS)742も含む。CSフラッグ742はキヤッ
シュされた記述子の型を識別するために用いられる。そ
の理由は、データ・セグメントとは反対に、種々の保護
検査が行われるからである。データ・アレイ730は整
理されたセグメント記述子を含む。各整理されたセグメ
ント記述子はアクセス権751と、ベース・アドレス7
52と、リミット753とを含む。
には、タグ・アレイ720からの記述子タグ740はプ
ロセッサの残りのセレクタ・ビットと特権レベルを含
む。そのタグは、エントリが有効であるかどうかを指示
する有効ビット741と、コード・セグメント・フラッ
グ(CS)742も含む。CSフラッグ742はキヤッ
シュされた記述子の型を識別するために用いられる。そ
の理由は、データ・セグメントとは反対に、種々の保護
検査が行われるからである。データ・アレイ730は整
理されたセグメント記述子を含む。各整理されたセグメ
ント記述子はアクセス権751と、ベース・アドレス7
52と、リミット753とを含む。
【図1】メモリ・アドレス変換メカニズムの絵画的表現
(a)とセグメント・セレクタのフォーマット(b)を
示す。
(a)とセグメント・セレクタのフォーマット(b)を
示す。
【図2】セグメント記述子のフォーマットを示す。
【図3】ごちゃごちゃにされたセグメント記述子を整理
するプロセスを示す。
するプロセスを示す。
【図4】保護されたモード・セグメント・レジスタのプ
ロセスのブロック図表現を示す。
ロセスのブロック図表現を示す。
【図5】本発明の教示を含むメモリ区分化装置のブロッ
ク図表現を示す。
ク図表現を示す。
【図6】セグメント記述子ロードのオペレーションを示
す流れ図である。
す流れ図である。
【図7】現在実現された記述子キャッシュを示す。
【図8】現在実現された疑似LRU交換アルゴリズムを
示す。
示す。
100 論理アドレス 102、132 セグメント・セレクタ 103 ベース・アドレス 105 区分化 110 線形アドレス 120 物理アドレス
Claims (2)
- 【請求項1】 セグメント・セレクタ・ロード命令に応
答して、第2のフォーマットのセグメント記述子をセグ
メント・レジスタへロードする、マイクロプロセッサの
ためのメモリ区分化装置において、 前記第2のフォーマットの複数のセグメント記述子を記
憶し、前記セグメント・セレクタを受ける記述子キャッ
シュ手段と、 前記記述子キャッシュ手段内の前記第2のフォーマット
のセグメント記述子が前記セグメント・セレクタに関連
させられない時に前記セグメント・セレクタを受け、前
記セグメント・セレクタが第1の所定の特権命令を有す
るかどうかを判定するセレクタ試験手段と、 このセレクタ試験手段へ結合され、前記セグメント・セ
レクタから記述子線形アドレスを発生する記述子線形ア
ドレス発生手段と、 前記記述子線形アドレスを基にして、第1のフォーマッ
トのセグメント記述子を記述子表から取り出すための記
述子取り出し手段と、 前記第1のフォーマットの前記セグメント記述子が第2
の所定の特権レベルを有するかどうかを判定する記述子
試験手段と、 前記第1のフォーマットの前記セグメント記述子が前記
第2の所定の特権レベルを有するならば、前記第1のフ
ォーマットの前記セグメント記述子を前記第2のフォー
マットへフォーマット化し、前記第2のフォーマットの
前記セグメント記述子が前記セグメント記述子に関連さ
せられるように、前記第2のフォーマットを前記記述子
キャッシュ手段へ出力する記述子フォーマット手段と、
を備え、前記第2のフォーマットのセグメント記述子が
前記セグメント・セレクタに関連させられたとすると、
前記記述子キャッシュ手段が前記第2のフォーマットの
前記セグメント記述子を前記セグメント・レジスタへ出
力するように、前記第2のフォーマットの各前記セグメ
ント記述子は複数のセグメント・レジスタに関連させら
れ、それにより、前記セグメント・セレクタが前記記述
子キャッシュ手段により受けられた時に、前記第2のフ
ォーマットのセグメント記述子は前記記述子キャッシュ
手段からロードされるマイクロプロセッサのためのメモ
リ区分化装置。 - 【請求項2】 セグメント・セレクタにより指定され
た、セグメント・レジスタ内の第2のフォーマットのセ
グメント記述子により指定されるセグメントを有するマ
イクロプロセッサ・メモリを管理する装置で、セグメン
ト・セレクタ・ロード命令に応答して、前記第2のフォ
ーマットの前記セグメント記述子をセグメント・レジス
タへロードする方法において、 前記セグメント・セレクタを記述子キャッシュ手段へ入
力する過程と、 前記セグメント・セレクタに対応する第2のフォーマッ
トのセグメント記述子が前記記述子キャッシュ手段に存
在するかどうかを判定し、もし存在するならば、前記第
2のフォーマットのセグメント記述子を前記セグメント
・レジスタにロードするために、複数の対応するセグメ
ント・セレクタに関連させられている複数のセグメント
記述子を備える前記記述子キャッシュ手段を探索する過
程と、 前記第2のフォーマットのセグメント記述子が前記記述
子キャッシュ手段に存在しなければ、前記セグメントセ
レクタが第1の所定の特権レベルを有するかどうかを判
定するために、前記セグメント・セレクタをセレクタ試
験手段において試験する過程と、 線形アドレス発生手段において記述子線形アドレスを発
生する過程と、 前記第1のフォーマットの複数のセグメント記述子を格
納している記述子表から、前記記述子線形アドレスを基
にして第1のフォーマットの前記セグメント記述子を取
り出す過程と、 記述子試験手段内の前記第1のフォーマットの前記セグ
メント記述子が第2の所定の特権レベルを有するかどう
かを試験する過程と、 前記第1のフォーマットの前記セグメント記述子を記述
子フォーマット手段において前記第2のフォーマットへ
フォーマット化する過程と、 前記第2のフォーマットの前記セグメント記述子を前記
セグメント・レジスタへロードする過程と、 続いて前記第2のフォーマットの前記セグメント記述子
が前記記述子キャッシュ手段により受けられたとする
と、前記記述子キャッシュ手段を前記セグメント記述子
で更新する過程と、を備え、 それにより、前記第2のフォーマットの前記セグメント
記述子を基にしてセグメントが前記セグメント・レジス
タへロードさせられるセグメント記述子をセグメント・
レジスタへロードする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US77715591A | 1991-10-16 | 1991-10-16 | |
US777,155 | 1991-10-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05210593A true JPH05210593A (ja) | 1993-08-20 |
Family
ID=25109440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4300598A Pending JPH05210593A (ja) | 1991-10-16 | 1992-10-14 | マイクロプロセッサのためのメモリ区分化装置およびセグメント記述子をセグメント・レジスタへロードする方法 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JPH05210593A (ja) |
DE (1) | DE4234194A1 (ja) |
FR (1) | FR2683061B1 (ja) |
GB (1) | GB2260629B (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5895489A (en) * | 1991-10-16 | 1999-04-20 | Intel Corporation | Memory management system including an inclusion bit for maintaining cache coherency |
US5590297A (en) * | 1994-01-04 | 1996-12-31 | Intel Corporation | Address generation unit with segmented addresses in a mircroprocessor |
US6041396A (en) * | 1996-03-14 | 2000-03-21 | Advanced Micro Devices, Inc. | Segment descriptor cache addressed by part of the physical address of the desired descriptor |
US7174457B1 (en) | 1999-03-10 | 2007-02-06 | Microsoft Corporation | System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party |
US6609199B1 (en) | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6775779B1 (en) | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US6651171B1 (en) | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
US6757824B1 (en) | 1999-12-10 | 2004-06-29 | Microsoft Corporation | Client-side boot domains and boot rules |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US7159240B2 (en) | 2001-11-16 | 2007-01-02 | Microsoft Corporation | Operating system upgrades in a trusted operating system environment |
US7243230B2 (en) | 2001-11-16 | 2007-07-10 | Microsoft Corporation | Transferring application secrets in a trusted operating system environment |
US7890771B2 (en) | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US7487365B2 (en) | 2002-04-17 | 2009-02-03 | Microsoft Corporation | Saving and retrieving data based on symmetric key encryption |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3800286A (en) * | 1972-08-24 | 1974-03-26 | Honeywell Inf Systems | Address development technique utilizing a content addressable memory |
GB2176918B (en) * | 1985-06-13 | 1989-11-01 | Intel Corp | Memory management for microprocessor system |
AU603167B2 (en) * | 1986-12-23 | 1990-11-08 | Bull Hn Information Systems Inc. | Segment descriptor unit |
JPS63259749A (ja) * | 1987-04-17 | 1988-10-26 | Hitachi Ltd | 仮想記憶制御方式 |
-
1992
- 1992-08-06 GB GB9216731A patent/GB2260629B/en not_active Expired - Fee Related
- 1992-10-10 DE DE4234194A patent/DE4234194A1/de not_active Ceased
- 1992-10-14 JP JP4300598A patent/JPH05210593A/ja active Pending
- 1992-10-15 FR FR9212338A patent/FR2683061B1/fr not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
FR2683061B1 (fr) | 1995-02-17 |
GB9216731D0 (en) | 1992-09-23 |
FR2683061A1 (fr) | 1993-04-30 |
DE4234194A1 (de) | 1993-04-22 |
GB2260629A (en) | 1993-04-21 |
GB2260629B (en) | 1995-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5737750A (en) | Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions | |
US5724538A (en) | Computer memory address control apparatus utilizing hashed address tags in page tables which are compared to a combined address tag and index which are longer than the basic data width of the associated computer | |
US4991088A (en) | Method for optimizing utilization of a cache memory | |
US6393544B1 (en) | Method and apparatus for calculating a page table index from a virtual address | |
US6453385B1 (en) | Cache system | |
KR100382395B1 (ko) | 컴퓨터메모리에정보를기억하는방법및장치 | |
US6401192B1 (en) | Apparatus for software initiated prefetch and method therefor | |
US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
US5060137A (en) | Explicit instructions for control of translation lookaside buffers | |
US6571316B1 (en) | Cache memory array for multiple address spaces | |
US9734059B2 (en) | Methods and apparatus for data cache way prediction based on classification as stack data | |
EP0097790A2 (en) | Apparatus for controlling storage access in a multilevel storage system | |
US4079453A (en) | Method and apparatus to test address formulation in an advanced computer system | |
KR100335672B1 (ko) | 메모리페이지크로싱예측주석을사용하는실제주소지정데이타기억구조로부터의빠른데이타검색 | |
JPH1196074A (ja) | 交換アルゴリズム動的選択コンピュータシステム | |
JPH04232551A (ja) | 多重仮想アドレス変換方法及び装置 | |
JPH08212136A (ja) | 仮想メモリ変換処理を効率的に共有する方法及び装置 | |
US4866599A (en) | Call instruction, return instruction and trap procedure for ring crossing architecture | |
JPH05210593A (ja) | マイクロプロセッサのためのメモリ区分化装置およびセグメント記述子をセグメント・レジスタへロードする方法 | |
JPH05216766A (ja) | データ・キャッシュとセグメント記述子の間のキャッシュの可干渉性を維持する方法およびコンピュータのメモリ装置 | |
US6434670B1 (en) | Method and apparatus for efficiently managing caches with non-power-of-two congruence classes | |
US6941442B2 (en) | Entry lockdown within a translation lookaside buffer mechanism | |
US20070266199A1 (en) | Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache | |
US5319761A (en) | Directory look-aside table for a virtual storage system including means for minimizing synonym entries | |
KR102658600B1 (ko) | 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법 |