JPH05216766A - Method for maintaining coherence of cache between data cache and segment descriptor and memory device of computer - Google Patents

Method for maintaining coherence of cache between data cache and segment descriptor and memory device of computer

Info

Publication number
JPH05216766A
JPH05216766A JP4300599A JP30059992A JPH05216766A JP H05216766 A JPH05216766 A JP H05216766A JP 4300599 A JP4300599 A JP 4300599A JP 30059992 A JP30059992 A JP 30059992A JP H05216766 A JPH05216766 A JP H05216766A
Authority
JP
Japan
Prior art keywords
descriptor
cache
format
segment
data
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
JP4300599A
Other languages
Japanese (ja)
Inventor
Gary N Hammond
ゲリイ・エヌ・ハモンド
Pradeep Dubey
プラディープ・ダベイ
Mustafiz R Choudhury
ムスタフィズ・アール・チョウドフリー
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH05216766A publication Critical patent/JPH05216766A/en
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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Abstract

PURPOSE: To obtain an improved memory managing device in which the coherence of a memory can be improved. CONSTITUTION: This is a memory managing device for a computer in which coherence between a descriptor cache and a data cache is held by an inclusive bit mechanism. When a descriptor in a data cache in which an inclusive bit is set to the descriptor corresponding to the descriptor cached in a descriptor cache 570 is changed, the overall descriptor cache 570 is always flashed by the set inclusive bit. Moreover, an effective bit is set to the descriptor in data cache cached from a descriptor chart. When the descriptor to which the effective bit is set in the data cache in the descriptor chart is corrected, the overall descriptor cache 570 is always flashed. Therefore, cache coherence among the descriptor cache 570, data cache, and descriptor chart can be maintained in this improved memory managing device.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明はコンピュータ用のメモリ
管理装置に関するものであり、更に詳しくいえば、デー
タ・アクセスの速度と効率が高いメモリ区分装置に関す
るものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory management device for a computer, and more particularly to a memory partitioning device having high data access speed and efficiency.

【0002】[0002]

【従来の技術】メモリ管理装置は、いくつかのプログラ
ムが同時に実行されている時に、プログラム同士の干渉
を避けるために各プログラムへ独立したアドレス空間を
プログラムへ与えることができる。メモリ管理は区分化
およびページングで典型的に構成される。独立の、保護
されたいくつかのアドレス空間(「セグメント」)を各
プログラムへ与えるために区分化が用いられる。小容量
のランダム・アクセス・メモリ(「RAM」)およびあ
るディスク記憶装置を用いて大きなアドレス空間がシミ
ュレートされるような環境をサポートするためにページ
ングが用いられる。システム設計者達はそれらのメカニ
ズムのいずれかまたは両方を選択できる。いくつかのプ
ログラムが同時に実行されている時は、一方のプログラ
ムを他のプログラムからの妨害から守るためにいずれか
のメカニズムを使用できる。
2. Description of the Related Art A memory management device can give an independent address space to each program in order to avoid interference between the programs when several programs are simultaneously executed. Memory management typically consists of partitioning and paging. Partitioning is used to give each program several independent, protected address spaces ("segments"). Paging is used to support environments where a large address space is simulated with a small amount of random access memory (“RAM”) and some disk storage. System designers can choose either or both of these mechanisms. When several programs are running at the same time, either mechanism can be used to protect one program from interference with the other.

【0003】区分化によって、簡単な8ビット・プロセ
ッサのメモリ・モデルのように、またはアドレス翻訳お
よび保護で高度に構成されたメモリ・モデルのように、
メモリを完全に統一されない、簡単なものにすることが
できる。各セグメントは独立の、保護されたアドレス空
間である。セグメントに対するアクセスは、そのセグメ
ントのサイズと、それをアクセスするために求められる
特権レベルと、それに対して行うことができるメモリ基
準の種類(命令取り出し、スタック・プッシュまたはス
タック・ポップ、呼び出し動作、書込み動作等)と、そ
れが、メモリに存在するかどうかとを記述するデータに
より制御される。ここで、メモリ・アドレス変換メカニ
ズムの絵画的表現が示されている図1(a)を参照す
る。区分化メカニズム105は区分化された(論理)ア
ドレス100を、線形アドレス110と呼ばれる連続す
る、区分化されていないアドレス空間へ変換する。ペー
ジングが可能にされると、ページング・メカニズム11
5が線形アドレス110を物理120へ変換する。ペー
ジングがイネーブルにされないと、線形アドレス110
が物理的アドレス120として用いられる。物理アドレ
ス120は最終的にはプロセッサから出るアドレス・バ
スに現れる。
By partitioning, like the memory model of a simple 8-bit processor, or as a highly configured memory model with address translation and protection,
The memory can be simple, not completely unified. Each segment is an independent, protected address space. Access to a segment is the size of the segment, the privilege level required to access it, and the type of memory criteria that can be performed on it (instruction fetch, stack push or stack pop, call operation, write Behavior, etc.) and whether it resides in memory or not. Reference is now made to FIG. 1 (a), where a pictorial representation of the memory address translation mechanism is shown. The partitioning mechanism 105 translates the partitioned (logical) address 100 into a contiguous, unpartitioned address space called a linear address 110. Paging mechanism 11 when paging is enabled
5 translates linear address 110 to physical 120. Linear address 110 if paging is not enabled
Is used as the physical address 120. Physical address 120 eventually appears on the address bus exiting the processor.

【0004】メモリ管理装置の例を、本願の出願人であ
る、アメリカ合衆国カリフォルニア州サンタ・クララ
(Santa Clara)所在のインテル・コーポレ
ーション(Intel Corporation)によ
り製造されたi486(商標)マイクロプロセッサにお
いて実現されていることを見出すことができる。そのi
486(商標)マイクロプロセッサにおいては、論理ア
ドレスはそれのセグメントのための16ビット・セグメ
ント・セレクタと、そのセグメントへオフセットされる
32ビットとで構成される。図1(a)によれば、セグ
メントのベース・アドレス103へオフセットを加える
ことにより、論理アドレス100は線形アドレス110
へ変換される。ベース・アドレス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)を参照された
い。
An example of a memory management device has been implemented in the i486 ™ microprocessor manufactured by Intel, Inc., the assignee of the present application, Santa Clara, Calif., USA. Can be found. That i
In the 486 ™ microprocessor, a logical address consists of a 16-bit segment selector for its segment and 32 bits offset into that segment. According to FIG. 1 (a), by adding an offset to the base address 103 of the segment, the logical address 100 becomes a linear address 110.
Is converted to. The base address 103 is obtained from the segment descriptor 104. The segment descriptor is a data structure in memory that provides the size and location of the segment as well as access control information. For example, i
The segment descriptors in the 486 ™ microprocessor come from two tables: the global descriptor table (GDT) or the local descriptor table (LDT). There is one GDT for every program in the system and one LDT for each separate program or task being executed.
There is. Various programs can share the GDT, if allowed by the operating system. The system can also be configured without LDT. For more information on the i486 (TM), go to Intel Corporation, Santa Clara, CA, USA.
i486 (TM) Microprocessor: Programmer's Reference Manual (i486M
icroprocessor: Programmer '
s Reference Manual).

【0005】変換されたアドレスは線形アドレス110
である。ページング・メカニズムが用いられないとする
と、線形アドレス110は物理アドレス120である。
ページングが用いられるならば、物理アドレス120を
生ずるために第2のレベルのアクセス情報を必要とされ
る。図1を再び参照して、セグメントを構成するセグメ
ント記述子104をセグメント・セレクタ102が指し
ている様子が示されている。i486(商標)マイクロ
プロセッサは、それらのセグメント・セレクタが現在占
めているセグメント・セレクタよりも多くのセグメント
を求めることができる。これが真実であるとすると、新
しいセグメントを必要とする時にセグメント・レジスタ
の内容を変更するためにプログラムはMOVE命令のフ
ォームを用いる。図1(b)に示されているように、セ
グメント・セレクタ132は記述子表133と記述子イ
ンデックス134を指定することによりセグメント記述
子を識別する。
The translated address is a linear address 110.
Is. If the paging mechanism is not used, linear address 110 is physical address 120.
If paging is used, a second level of access information is needed to generate the physical address 120. Referring again to FIG. 1, the segment selector 102 is shown pointing to the segment descriptors 104 that make up the segment. The i486 ™ microprocessor can require more segments than those segment selectors currently occupy. If this is true, the program uses the form of the MOVE instruction to change the contents of the segment register when it needs a new segment. As shown in FIG. 1B, the segment selector 132 identifies the segment descriptor by specifying the descriptor table 133 and the descriptor index 134.

【0006】次に、i486(商標)マイクロプロセッ
サにおける記述子フォーマットが示されている図2を参
照する。しかし、従来のプロセッサ・アーキテクチャの
ためにバックワード・コンパチビリティを提供すること
を記述子フォーマットが必要とするから、それがメモリ
に記憶された時に記述子フォーマットはごちゃまぜにな
る。内部プロセッサの動作を簡単にするために、i48
6(商標)マイクロプロセッサのためのごちゃまぜにさ
れていない記述子310への生のごちゃまぜにされたセ
グメント記述子300の変換が図3に示されている。
Reference is now made to FIG. 2 where the descriptor format in the i486 ™ microprocessor is shown. However, because of the descriptor format's need to provide backward compatibility for conventional processor architectures, it is confused when it is stored in memory. In order to simplify the operation of the internal processor, i48
The conversion of the raw jumbled segment descriptor 300 to an unjumbled descriptor 310 for the 6 ™ microprocessor is shown in FIG.

【0007】更に、本願の優先権主張の基礎を成す米国
特許出願と同日に出願された未決の米国特許出願No.
「マイクロプロセッサのためのセグメント記述
子キャッシュ(A SEGMENT DESCRIPT
OR CATCH FORA MICROPROCES
SOR)」明細書に記載されているようなセグメント記
述子キャッシュを用いて、以後のセグメント・レジスタ
がロードした時に、記述子をセグメント記述子レジスタ
から出して、1クロック内にセグメント記述子レジスタ
・ファイルに直接ロードできるようにして、セグメント
・レジスタへのロードに通常関連するすべての作業およ
びオーバヘッドをバイパスできるように、以前に取り出
されて、整理され、保護試験された記述子を保持するこ
とができる。図9は、記述子キャッシュ920がマイク
ロプロセッサへ導入された時に存在する主メモリ900
と、プロセッサのデータキャッシュ910と、プロセッ
サの記述子キャッシュ90との3レベル階層を示す1つ
のレベルに維持されている記述子データが以前のレベル
にある記述子データと一貫するように各レベルにおいて
それらのメカニズムを採用せねばならないことが当業者
には明らかである。
[0007] Further, the pending US patent application No. No. filed on the same day as the US patent application forming the basis of the priority claim of the present application.
"Segment Descriptor Cache for Microprocessors (A SEGMENT DESCRIPT
OR CATCH FORA MICROPROCES
SOR) "specification, a segment descriptor cache is used to drive the descriptor out of the segment descriptor register and the segment descriptor register It may hold descriptors that were previously fetched, tied, and protection tested so that it can be loaded directly into a file, bypassing all the work and overhead normally associated with loading segment registers. it can. FIG. 9 shows the main memory 900 that is present when the descriptor cache 920 is introduced into the microprocessor.
At each level such that the descriptor data maintained at one level, which represents the three level hierarchy of the processor data cache 910 and the processor descriptor cache 90, is consistent with the descriptor data at the previous level. It will be apparent to those skilled in the art that these mechanisms must be adopted.

【0008】後で説明するように、本発明は、記述子キ
ャッシュとデータ・キャッシュの間の可干渉性が包含ビ
ット・メカニズムにより保持される、コンピュータ用の
改良したメモリ管理装置を開示するものである。一実施
例においては、同じ整理された記述子も記述子キャッシ
ュにおいてキャッシュされることを示すデータ・キャッ
シュ・ラインに含まれている記述子に対して、データ・
キャッシュへ結合されている包含ビットがセットされ
る。したがって、包含ビットはデータ・キャッシュと記
述子キャッシュの間の関連を示す。包含ビットがセット
されているデータ・キャッシュ内のデータが変更させら
れ、修正させられ、またはスワッピ・アウトさせられる
と、記述子キャッシュ全体が常にフラッシュさせられ
て、記述子キャッシュに含まれている記述子がもはや有
効でない、または関連が有効でないという事実を反映す
る。したがって、包含ビットは記述子キャッシュとデー
タ・キャッシュの間のキャッシュ可干渉性を維持する。
そうすると、既存のハードウェア・キャッシング・メカ
ニズムが主メモリ内のデータ・キャッシュと記述子表の
間のキャッシュの可干渉性を維持する。
As will be explained below, the present invention discloses an improved memory management device for a computer in which the coherency between the descriptor cache and the data cache is preserved by the inclusion bit mechanism. is there. In one embodiment, for the descriptors contained in the data cache line indicating that the same organized descriptors are also cached in the descriptor cache, the data
The inclusion bit associated with the cache is set. Therefore, the inclusion bit indicates the association between the data cache and the descriptor cache. A description contained in the descriptor cache that is always flushed when the data in the data cache that has the inclusion bit set is modified, modified, or swapped out. Reflects the fact that the child is no longer valid or the association is no longer valid. Therefore, the inclusion bit maintains cache coherency between the descriptor cache and the data cache.
The existing hardware caching mechanism then maintains cache coherency between the data cache in main memory and the descriptor table.

【0009】[0009]

【発明が解決しようとする課題】したがって、本発明の
目的は、メモリの可干渉性の高い改良したメモリ管理装
置を得ることである。本発明の別の目的は、キャッシュ
の可干渉性が高いが、セグメント記述子の性能が低下し
ない改良したメモリ管理装置を得ることである。
SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide an improved memory management device with high coherence of the memory. Another object of the present invention is to provide an improved memory management device which has a high cache coherence but does not degrade the performance of segment descriptors.

【0010】[0010]

【課題を解決するための手段】本発明は、データ・キャ
ッシュと記述子表の間の可干渉性が包含ビット・メカニ
ズムにより維持される、コンピュータ用の改良したメモ
リ管理装置を開示するものである。一実施例において
は、記述子の間の関連が指示されるように、記述子キャ
ッシュにおいてキャッシュされる別の記述子に対応する
データ・キャッシュ内の記述子に対して包含ビットがセ
ットされる。包含ビットがセットされているデータ・キ
ャッシュ内の記述子が変更されたか、スワップ・アウト
された時には、2つの記述子の間の関連がもはや有効で
はないという事実のために、記述子キャッシュの全体が
常にフラッシュさせられる。したがって、記述子キャッ
シュと、データ・キャッシュと、記述子表との間のキャ
ッシュ可干渉性がこの改良したメモリ管理装置において
保持される。ここでは、記述子キャッシュとデータキャ
ッシュの間の可干渉性を達成するためにマイクロプロセ
ッサ・メモリ区分化装置により使用するために特定の用
途を有する、マイクロプロセッサにおいてメモリ動作を
行うための改良したメモリ管理装置を開示する。以下の
説明においては、本発明を完全に理解できるようにする
ために、特定のメモリ、編成、アーキテクチャ、データ
・レート、等について述べる。しかし、それらの特定の
詳細なしに本発明を実施できることが当業者には明らか
であろう。他の場合には、本発明を不必要にあいまいに
しないようにするために、周知の回路はブロック図の態
様で示す。
SUMMARY OF THE INVENTION The present invention discloses an improved memory management device for a computer in which coherency between a data cache and a descriptor table is maintained by an inclusion bit mechanism. .. In one embodiment, the inclusion bit is set for a descriptor in the data cache that corresponds to another descriptor cached in the descriptor cache so that associations between descriptors are indicated. The entire descriptor cache due to the fact that the association between two descriptors is no longer valid when a descriptor in the data cache with the inclusion bit set is modified or swapped out. Is always flashed. Therefore, cache coherency between the descriptor cache, the data cache, and the descriptor table is preserved in this improved memory management device. Here, an improved memory for performing memory operations in a microprocessor having particular application for use by a microprocessor memory partitioning device to achieve coherency between a descriptor cache and a data cache. A management device is disclosed. In the following description, specific memories, organizations, architectures, data rates, etc. are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without those specific details. In other instances, well-known circuits are shown in block diagram form in order not to unnecessarily obscure the present invention.

【0011】[0011]

【実施例】まず、セグメント・レジスタのローディング
・プロセスがブロック図で示されている図4を参照す
る。セグメント・レジスタ・ロードは任意の区分化メモ
リ管理技術にとっての基礎であることが当業者には明ら
かである。図示のように、プロセッサがMOVE SE
G REGのような命令からのセレクタに遭遇すると、
保護されたデータをアクセスするために、より特権の少
ないプログラムがより特権のあるプログラムを使用でき
ないように、プロセッサは任意の特権妨害(Privi
lege Violation)に対してセレクタを試
験する。特権妨害が見出されないとすると、記述子表お
よびその表の中の記述子を識別するセレクタを基にし
て、8バイト記述子がメモリ/データ・キャッシュから
プロセッサにより取り出される。この記述子は特権妨害
について試験される。特権妨害が見出されなければ、記
述子は整理され、セグメントについての、サイズおよび
セグメントの場所のような情報、および制御および状態
情報を実行するプログラムのためにセグメント・レジス
タへロードできる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Referring first to FIG. 4, a segment register loading process is shown in block diagram form. Those skilled in the art will appreciate that segment register loading is the basis for any partitioned memory management technique. As shown, the processor is MOVE SE
When encountering a selector from an instruction like G REG,
To prevent protected data from being used by less privileged programs to access protected data, the processor does not allow any privilege interception (Privi).
test the selector for the legion violation). If no privilege interception is found, an 8-byte descriptor is fetched by the processor from the memory / data cache based on the descriptor table and the selector that identifies the descriptor in that table. This descriptor is tested for privilege interception. If no privilege blockages are found, the descriptors are cleaned up and information about the segment, such as size and location of the segment, and control and status information can be loaded into the segment register for the program executing.

【0012】次に、記述子キャッシュを含むセグメント
・レジスタ・ロードの装置が示されている図5を参照す
る。バスの寸法は説明のためだけのものであって、図示
の特定の詳細なしに本発明を実施できることを当業者は
理解すべきである。図5に示されているように、特権が
より低いプログラムが保護されているデータをアクセス
できないように、装置500はセレクタ501における
特権妨害を試験するためのセレクタ特権試験器510を
有する。この実現で用いているように、セグメント・セ
レクタの特権フィールドが、プログラムより大きい値を
有する(すなわち、特権がより低い)特権レベルを含む
と、セレクタはプログラムの特権レベルを無効にする。
セレクタ501が特権試験器510による試験に合格し
たとすると、セレクタは記述子アドレス発生器520へ
転送される。それから記述子アドレス発生器520は、
そのセレクタのための記述子表内の記述子の適切なアド
レスを発生する。現在は、大域記述子表とローカル記述
子表との2つの記述子表が用いられる。このアドレス発
生過程は、セレクタ501による選択を基にして表を指
定するために現在のセグメントを変更することと、実行
アドレスをセレクタのインデックス値にセットすること
を含む。実行値によって、記述子をメモリ500から取
り出して、整理器550と記述子試験器540に保持す
ることができ、記述子試験器540は記述子を検査し
て、セグメントに対するそれのアクセスを制御する。ア
クセスの妨害が起きたとすると、プロセッサに対して障
害が発生される。整理器550は記述子を図3に示され
ている内部の整理された態様へ変換する。成功した記述
子がセグメント・レジスタ560へロードされ、後で使
用するために記述子・キャッシュ570へ更新される。
Reference is now made to FIG. 5, where a segment register loading apparatus including descriptor cache is shown. Those skilled in the art should understand that the bus dimensions are for illustration purposes only and that the invention may be practiced without the specific details shown. As shown in FIG. 5, the device 500 has a selector privilege tester 510 for testing privilege disturbs in the selector 501 so that less privileged programs cannot access the protected data. As used in this implementation, if the privilege field of the segment selector contains a privilege level that has a greater value than the program (ie, less privilege), the selector overrides the program privilege level.
If selector 501 passes the test by privilege tester 510, the selector is forwarded to descriptor address generator 520. Then the descriptor address generator 520
Generate the appropriate address of the descriptor in the descriptor table for that selector. Currently, two descriptor tables are used, a global descriptor table and a local descriptor table. This address generation process includes changing the current segment to specify the table based on the selection by selector 501 and setting the execution address to the selector index value. The run value allows the descriptor to be retrieved from memory 500 and held in the organizer 550 and descriptor tester 540, which inspects the descriptor and controls its access to the segment. .. If the access is interrupted, the processor is faulted. The organizer 550 transforms the descriptors into the internal organized manner shown in FIG. Successful descriptors are loaded into segment register 560 and updated into descriptor cache 570 for later use.

【0013】次に、セレクタ記述子の動作順序を識別す
る流れ図が示されている図6を参照する。MOV Sr
eg命令におけるようにセレクタ501に遭遇させられ
ると、記述子キャッシュ570が索引される。対応する
記述子が見つかると(「ヒット」)、記述子がセレクタ
570とともに記述子キャッシュ570からセグメント
・レジスタ・ファイル560へロードさせられる。対応
する記述子が見つからないと(「ミス」)、不十分な特
権レベルのセレクタに対して障害を発生できるように、
セレクタ501が特権妨害について試験される。セレク
タ501が特権試験器510による試験に合格すると、
記述子線形アドレスを計算でき520、記述子がメモリ
530から取り出される。記述子はそれの特権レベルに
ついても試験され、どのような特権妨害に対しても障害
が発生される。記述子は整理され、整理された記述子は
セレクタ・レジスタ・ファイル560へロードされる。
整理された記述子は更新記述子キャッシュ570を更新
するために用いられる。
Reference is now made to FIG. 6, where a flow chart identifying the order of operation of the selector descriptors is shown. MOV Sr
When the selector 501 is encountered, as in the eg instruction, the descriptor cache 570 is indexed. If the corresponding descriptor is found ("hit"), the descriptor is loaded with the selector 570 from the descriptor cache 570 into the segment register file 560. Allows failure of insufficient privilege level selectors if no corresponding descriptor is found (“miss”),
Selector 501 is tested for privilege jamming. When the selector 501 passes the test by the privilege tester 510,
The descriptor linear address can be calculated 520 and the descriptor is retrieved from memory 530. The descriptor is also tested for its privilege level and is faulted for any privilege interception. The descriptors are sorted and the sorted descriptors are loaded into the selector register file 560.
The ordered descriptors are used to update the update descriptor cache 570.

【0014】次に、セレクタ記述子キャッシュの線図が
示されている図7を参照する。図には4×16のセット
連想キャッシュが示されているが、希望の機能性を達成
するために別の編成を容易に実現できることを当業者は
理解すべきである。記述子キャッシュ770はタグ・ア
レイ720と、データ・アレイ730と、最後に用いた
(「LRU」)アレイ710との3つのアレイへ分けら
れる。セレクタ・ビット[4:3]がセット数として用
いられ、記述子キャッシュへインデックスされる。各セ
ットは4つの「ウエイ」で構成され、各ウエイは希望の
エントリに対して連想的に探索される。セット内のどの
「ウエイ」が最後に用いられたかを判定するために用い
られる3ビットでLRUエントリ715が構成される。
新しいエントリが記述子キャッシュ内に置くものとする
と、性能に与える衝撃を最小にしてどのエントリを交換
できるかをそのセットのためのLRUエントリが判定す
る。
Reference is now made to FIG. 7, where a diagram of the selector descriptor cache is shown. Although a 4 × 16 set associative cache is shown in the figure, it should be understood by those skilled in the art that other organizations can be easily implemented to achieve the desired functionality. The descriptor cache 770 is divided into three arrays: a tag array 720, a data array 730, and a last used (“LRU”) array 710. Selector bits [4: 3] are used as the set number and are indexed into the descriptor cache. Each set consists of four "ways" and each way is associatively searched for the desired entry. The LRU entry 715 is made up of 3 bits used to determine which "way" in the set was last used.
If a new entry is to be placed in the descriptor cache, the LRU entry for that set determines which entry can be exchanged with minimal impact on performance.

【0015】エントリが記述子キャッシュに置かれた時
には、タグ・アレイ720からの記述子タグ740はプ
ロセッサの残りのセレクタ・ビットと特権レベルを含
む。そのタグは、エントリが有効であるかどうかを指示
する有効ビット741と、コード・セグメント・フラッ
グ(CS)742も含む。CSフラッグ742はキャッ
シュされた記述子の型を識別するために用いられる。そ
の理由は、データ・セグメントとは反対に、種々の保護
検査が行われるからである。データ・アレイ730は整
理されたセグメント記述子を含む。各整理されたセグメ
ント記述子はアクセス権751と、ベース・アドレス7
52と、リミット753とを含む。
When an entry is placed in the descriptor cache, descriptor tag 740 from tag array 720 contains the remaining selector bits and privilege level of the processor. The tag also includes a valid bit 741 indicating whether the entry is valid and a code segment flag (CS) 742. The CS flag 742 is used to identify the type of cached descriptor. The reason is that various protection checks are made as opposed to data segments. Data array 730 includes organized segment descriptors. Each organized segment descriptor has an access right 751 and a base address 7
52 and a limit 753.

【0016】次に、本発明を含むメモリ管理装置の絵画
的表現が示されている図8を参照する。図示のように、
セグメント記述子キャッシュ820が、データ・キャッ
シュ包含ビット・メカニズムを用いることにより、デー
タ・キャッシュとの可干渉性を維持する。データ・キャ
ッシュ810は、「MESI」と呼ばれる4状態符号化
プロトコルにより、主メモリにおいて記述子表800と
の可干渉性を維持する。「MESI」プロトコルは多く
の現在の世代のマイクロプロセッサ設計において用いら
れているから、ここでは説明を省略する。記述子は記述
子表800に格納される。その記述子表800は典型的
には主メモリに含まれる。記述子805は記述子表80
0からバス830を介して取り出され、データ・キャッ
シュ810へロードされる。データまたは記述子がデー
タ・キャッシュ・ライン806にロードされると、有効
ビット816がセットされて、データ・キャッシュ81
0がそのキャッシュ・ライン内に有効なデータを含んで
いることを示す。セグメント・セレクタロードに応答し
て記述子810が記述子キャッシュ820内でキャッシ
ュされると、記述子806に対応する包含ビット814
がデータ・キャッシュ810においてセットされて、デ
ータ・キャッシュ810内の記述子806が記述子キャ
ッシュ820内の記述子825に関連させられる。更
に、記述子エントリ有効ビット826がセットされて、
記述子キャッシュ820が有効なエントリを含んでいる
ことを示す。先に記述子キャッシュについて説明したよ
うに、記述子825は記述子806の試験され、整理さ
れたものである。典型的には、装置内の別のプロセッサ
(図示せず)によりバス830を介して記述子表をアク
セスし、修正できる。したがって、包含ビット814が
セットされているデータ・キャッシュ810内の記述子
806が修正され、またはスワップされると、記述子キ
ャッシュ820の全体がフラッシュされて可干渉性を常
に保持する。また、データ・キャッシュ810内の全て
の包含ビットがクリヤされて、フラッシュ後のデータ・
キャッシュ810と記述子キャッシュ820の間の分離
を示す。記述子キャッシュ820におけるフラッシュが
全てのエントリの有効ビット826をクリヤする。記述
子805が記述子表800内で修正させられたとする
と、それの対応する記述子がデータ・キャッシュ810
内で有効になることを当業者は理解すべきである。
Reference is now made to FIG. 8 where a pictorial representation of a memory management device including the present invention is shown. As shown,
The segment descriptor cache 820 maintains coherency with the data cache by using the data cache inclusion bit mechanism. The data cache 810 maintains coherency with the descriptor table 800 in main memory by means of a 4-state encoding protocol called "MESI". The "MESI" protocol is used in many current generation microprocessor designs and will not be described here. The descriptor is stored in the descriptor table 800. The descriptor table 800 is typically contained in main memory. The descriptor 805 is the descriptor table 80.
0 to be loaded into data cache 810 via bus 830. When the data or descriptor is loaded into the data cache line 806, the valid bit 816 is set and the data cache 81
0 indicates that it contains valid data in its cache line. When the descriptor 810 is cached in the descriptor cache 820 in response to a segment selector load, the inclusion bit 814 corresponding to the descriptor 806.
Is set in data cache 810 to associate descriptor 806 in data cache 810 with descriptor 825 in descriptor cache 820. In addition, the descriptor entry valid bit 826 is set,
Indicates that the descriptor cache 820 contains valid entries. The descriptor 825 is a tested and ordered version of the descriptor 806, as described above for the descriptor cache. Typically, the descriptor table may be accessed and modified via bus 830 by another processor (not shown) within the device. Therefore, when the descriptor 806 in the data cache 810 with the inclusion bit 814 set is modified or swapped, the entire descriptor cache 820 is flushed to preserve coherence at all times. Also, all included bits in the data cache 810 are cleared to ensure that the data
6 illustrates the separation between cache 810 and descriptor cache 820. Flush in descriptor cache 820 clears valid bits 826 of all entries. If descriptor 805 were modified in descriptor table 800, its corresponding descriptor would be data cache 810.
Those skilled in the art should understand that it will be effective within.

【0017】更に、図8を参照して、包含ビットがセッ
トされている任意のデータ・キャッシュ・ラインの修正
またはスワップアウトが記述子キャッシュ内のエントリ
の全てをフラッシュする。フラッシング・メカニズムは
分離されている記述子キャッシュ内の正確なエントリを
正確に示すものではないから、関連を維持することがで
きる別のエントリも分離される。したがって、フラッシ
ュすることを求められていないあるエントリがフラッシ
ュされる。これは性能に悪影響を及ぼすことがある。デ
ータ・キャッシュ・フラッシュをできるだけ制限する必
要はないことは当業者には明らかである。データ・キャ
ッシュ・ラインスワップによるフラッシュを、データ・
キャッシュ810内の交換アルゴリズムをバイアスする
ことにより、減少できる。データ・キャッシュ810は
両方向関連であって、最低の性能低下でどのエントリを
交換するかを決定するためにLRUビット(図示せず)
を維持する。図10に示すように、包含ビットは交換ア
ルゴリズムをバイアスするために用いられる。包含ビッ
トを用いるキャッシュ可干渉性メカニズムが多くのやり
方で他のメカニズムより優れていることも当業者には明
らかである。どのエントリをフラッシュするかを指示す
るためにデータ・キャッシュにポインタを用いて、デー
タ・キャッシュに追加のアドレッシング・ビットを必要
とするメカニズムよりもそれは優れている。また、それ
は、修正された記述子のアドレスが記述子キャッシュの
アドレスと比較されるように、データ・キャッシュ内の
記述子のデータ・キャッシュのアドレスを維持するメカ
ニズムよりも優れている。その技術は、データ・キャッ
シュへのエントリが修正されたときに、データ・キャッ
シュが完全なアドレスを常に維持すること、およびそれ
の各アドレスを常に比較することを典型的に必要とす
る。別の記述子キャッシュ可干渉性メカニズムはより多
くのハードウェアを典型的に必要とする。そうすると構
築できるデータ・キャッシュのサイズが小さくなる。
Further referring to FIG. 8, modifying or swapping out any data cache line with the inclusion bit set flushes all of the entries in the descriptor cache. Since the flushing mechanism does not pinpoint the exact entry in the descriptor cache that is isolated, another entry that can maintain the association is also isolated. Therefore, some entries that are not required to be flushed are flushed. This can adversely affect performance. Those skilled in the art will appreciate that the data cache flush need not be as limited as possible. Flush with data cache line swap
This can be reduced by biasing the exchange algorithm in cache 810. The data cache 810 is bidirectional and is the LRU bit (not shown) to determine which entry to exchange with the least degradation.
To maintain. As shown in FIG. 10, the inclusion bits are used to bias the exchange algorithm. It will also be apparent to those skilled in the art that the cache coherence mechanism with the inclusion bit is in many ways superior to other mechanisms. It is better than a mechanism that uses a pointer to the data cache to indicate which entry to flush and requires an additional addressing bit in the data cache. It is also superior to the mechanism of maintaining the data cache address of the descriptor in the data cache so that the modified descriptor address is compared to the descriptor cache address. The technique typically requires that the data cache always maintain a complete address and compare each of its addresses when an entry to the data cache is modified. Another descriptor cache coherency mechanism typically requires more hardware. This will reduce the size of the data cache that can be built.

【0018】なお図8を参照する。データ・キャッシュ
810における記述子に対応する有効ビットを有するデ
ータ・キャッシュ810も示されている。記述子表80
0からの記述子805がデータ・キャッシュ810にキ
ャッシュされた時には有効ビット816は常にセットさ
れる。データ・キャッシュ810内の記述子806が記
述子表800内の記述子805に対するそれの関連に関
してもはや有効でないように、記述子表800内の記述
子805が変更されるまで有効ビット816はセットさ
れたままである。更に、有効ビット816がセットされ
ると、記述子806の包含ビット814がセットされ
る、すなわち、記述子806が記述子キャッシュ820
内の記述子から分離されるものとすると、記述子キャッ
シュ820もフラッシュされる。データ・キャッシュ8
10内で有効データが実現されると、包含ビット814
がセットされている記述子806がデータ・キャッシュ
810内で変更された時と、対応する有効ビットおよび
包含ビットがセットされている記述子805が記述子表
800内で変更された時との少なくとも一方の時に、記
述子キャッシュ820が常にフラッシュされるから、記
述子キャッシュ820と記述子表800の間のメモリ可
干渉性が維持される。
Still referring to FIG. Data cache 810 is also shown having valid bits corresponding to descriptors in data cache 810. Descriptor table 80
Valid bit 816 is always set when descriptor 805 from 0 is cached in data cache 810. The valid bit 816 is set until the descriptor 805 in the descriptor table 800 is changed so that the descriptor 806 in the data cache 810 is no longer valid with respect to its association to the descriptor 805 in the descriptor table 800. It remains. Further, when the valid bit 816 is set, the inclusion bit 814 of the descriptor 806 is set, that is, the descriptor 806 is in the descriptor cache 820.
The descriptor cache 820 is also flushed, assuming it is separate from the descriptors in. Data cache 8
When valid data is realized in 10, the inclusion bit 814
At least when descriptor 806 is set in data cache 810 and when descriptor 805 is set in descriptor table 800 with the corresponding valid and inclusion bits set. At one time, the descriptor cache 820 is always flushed so that memory coherency between the descriptor cache 820 and the descriptor table 800 is maintained.

【図面の簡単な説明】[Brief description of drawings]

【図1】メモリ・アドレス変換メカニズムの絵画的表現
(a)と、セグメント・セレクタのフォーマット(b)
とを示す。
FIG. 1 is a pictorial representation of a memory address translation mechanism (a) and a segment selector format (b).
And indicates.

【図2】セグメント記述子のフォーマットを示す。FIG. 2 shows a format of a segment descriptor.

【図3】ごちゃごちゃにされたセグメント記述子を整理
するプロセスを示す。
FIG. 3 shows a process for organizing a cluttered segment descriptor.

【図4】保護されたモード・セグメント・レジスタのプ
ロセスのブロック図表現を示す。
FIG. 4 shows a block diagram representation of a protected mode segment register process.

【図5】メモリ区分化装置のブロック図表現である。FIG. 5 is a block diagram representation of a memory partitioning device.

【図6】セグメント記述子ロードのオペレーションを示
す流れ図である。
FIG. 6 is a flow chart showing the operation of a segment descriptor load.

【図7】現在実現された記述子キャッシュを示す。FIG. 7 shows a currently implemented descriptor cache.

【図8】本発明のメモリ管理装置の好適な実施例を示
す。
FIG. 8 shows a preferred embodiment of the memory management device of the present invention.

【図9】本発明において現在実現されている3レベル階
層を示す。
FIG. 9 shows a three-level hierarchy currently implemented in the present invention.

【図10】本発明において現在実現されている交換アル
ゴリズムを示す。
FIG. 10 shows a switching algorithm currently implemented in the present invention.

【符号の説明】[Explanation of symbols]

100 論理アドレス 102,132 セグメント・セレクタ 103 ベース・アドレス 105 区分化 110 線形アドレス 120 物理アドレス 100 logical address 102, 132 segment selector 103 base address 105 partitioning 110 linear address 120 physical address

───────────────────────────────────────────────────── フロントページの続き (72)発明者 プラディープ・ダベイ アメリカ合衆国 10606 ニューヨーク 州・ホワイト プレインズ・マーティン アヴェニュ ナンバー1015・25 (72)発明者 ムスタフィズ・アール・チョウドフリー アメリカ合衆国 94086 カリフォルニア 州・サニイヴェイル・ヴィセンテ ドライ ブ ナンバーエフ・1260 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Pradeep Davey United States 10606 New York White Plains Martin Avenue number 1015-25 (72) Inventor Mustafis Earl Chowdri United States 94086 Sanny Vale Vicente Dry California B Number F-1260

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 セグメント記述子を第1のフォーマット
で記憶するための複数のデータ処理装置へ結合された記
述子表と、セグメント記述子を前記第1のフォーマット
で記憶するために前記データ処理装置の1つへ結合され
るデータ・キャッシュと、セグメント記述子を第2のフ
ォーマットで記憶するために前記データ処理装置の1つ
へ結合されるセグメント記述子キャッシュとを備えるコ
ンピュータのメモリ管理装置のデータ・キャッシュとセ
グメント記述子の間のキャッシュの可干渉性を維持する
方法において、 記述子表内でセグメント記述子を第1のフォーマットで
指示するセグメント・セレクタを提供する過程と、 前記セグメント・セレクタに応答して前記記述子表から
の前記第1のフォーマットの前記セグメント記述子を検
索する過程と、 前記第1のフォーマットの前記セグメント記述子をデー
タ・キャッシュに記憶する過程と、 前記第1のフォーマットの前記セグメント記述子を第2
のフォーマットへフォーマット化する過程と、 前記第1のフォーマットの前記セグメント記述子をセグ
メント記述子キャッシュに記憶する過程と、 前記データ・キャッシュ内の前記第1のフォーマットの
前記セグメント記述子が前記セグメント記述子キャッシ
ュ内の前記第2のフォーマットの前記セグメント記述子
に関連させられていることを示すように、前記第1のフ
ォーマットの前記セグメント記述子に対応する包含ビッ
トを前記データ・キャッシュ内でセットする過程と、 前記第1のフォーマットの前記セグメント記述子が前記
データ処理装置により変更されたかどうかを検査する過
程と、 前記第1のフォーマットの前記セグメント記述子が前記
データ処理装置により変更されたなら前記セグメント記
述子キャッシュをフラッシュする過程と、を備え、それ
により、包含ビットがセットされている前記データキャ
ッシュ内のセグメント記述子がそのデータ処理装置によ
り変更された時に、前記セグメント記述子キャッシュが
常にフラッシュされる、データ・キャッシュとセグメン
ト記述子の間のキャッシュの可干渉性を維持する方法。
1. A descriptor table coupled to a plurality of data processing devices for storing segment descriptors in a first format, and a data processing device for storing segment descriptors in the first format. Of a memory management unit of a computer comprising a data cache coupled to one of the data processing units and a segment descriptor cache coupled to one of said data processing units for storing a segment descriptor in a second format. A method of maintaining cache coherency between a cache and a segment descriptor, the step of providing a segment selector pointing to a segment descriptor in a first format in a descriptor table; Responsive to retrieving the segment descriptor in the first format from the descriptor table A degree, the steps of storing the segment descriptor of the first format into the data cache, the segment descriptor of the first format second
Formatting the segment descriptor of the first format into a segment descriptor cache, the segment descriptor of the first format in the data cache being the segment description. Set an inclusion bit in the data cache corresponding to the segment descriptor of the first format to indicate that it is associated with the segment descriptor of the second format in the child cache. A step of checking whether the segment descriptor of the first format has been changed by the data processing device; and, if the segment descriptor of the first format has been changed by the data processing device, Flush segment descriptor cache A data cache, wherein the segment descriptor cache is always flushed when a segment descriptor in the data cache whose inclusion bit is set is modified by the data processing device. To maintain cache coherency between the and segment descriptors.
【請求項2】 複数のセグメントにより表されている、
コンピュータ用のメモリ装置において、 複数のエージェントから受けたセグメント・セレクタに
よりおのおの指定されている第1のフォーマットの複数
の記述子を記憶するために、前記複数のエージェントへ
結合される記述子表と、 前記第1のフォーマットの記述子をキャッシングするた
めに前記エージェントの1つへ結合されるデータ・キャ
ッシュと、 このデータキャッシュへ結合されて、前記キャッシュの
対応するセグメントを選択するために前記エージェント
により前記記述子が用いられるように、前記第1のフォ
ーマットの記述子を第2のフォーマットの記述子へフォ
ーマット化する記述子フォーマット手段と、 前記データキャッシュへ結合され、前記セグメントの1
つを選択するためにおのおの用いられる前記第2のフォ
ーマットの前記記述子をキャッシングする記述子キャッ
シュと、 前記データキャッシュへ結合され、前記データキャッシ
ュ内の前記第1のフォーマットの記述子に対応する複数
の包含ビットと、 前記データ・キャッシュ内の前記第1のフォーマットの
前記記述子が前記記述子キャッシュ内の前記第2のフォ
ーマットの前記記述子に関連させられていることを示す
ように、前記各包含ビットをセットする包含ビット・セ
ット手段と、 前記データ・キャッシュ内の前記包含ビットがセットさ
れている前記第1のフォーマットの任意の前記記述子が
前記データ処理装置により変更されたかどうかを判定す
る包含ビット検査手段と、 前記データ・キャッシュ内の前記包含ビットがセットさ
れている前記第1のフォーマットの任意の前記記述子が
変更されたなら前記記述子キャッシュをフラッシュする
記述子キャッシュ・フラッシュ手段と、を備え、それに
より、包含ビットがセットされている前記データキャッ
シュ内の第1のフォーマットの記述子が変更された時
に、前記記述子キャッシュが常にフラッシュされる、コ
ンピュータのメモリ管理装置。
2. Represented by a plurality of segments,
A descriptor table coupled to the plurality of agents for storing a plurality of descriptors of a first format each designated by a segment selector received from the plurality of agents in a memory device for a computer; A data cache coupled to one of the agents for caching descriptors of the first format, and coupled by the agent to the data cache for selecting a corresponding segment of the cache Descriptor format means for formatting the descriptors of the first format into descriptors of the second format so that descriptors are used; and one of the segments coupled to the data cache.
A descriptor cache for caching the descriptors in the second format, each of which is used to select one, and a plurality of descriptor caches coupled to the data cache and corresponding to the descriptors in the first format in the data cache. And an inclusion bit of each of said each one to indicate that said descriptor of said first format in said data cache is associated with said descriptor of said second format in said descriptor cache. Inclusion bit setting means for setting an inclusion bit, and determining whether any of the descriptors of the first format in the data cache in which the inclusion bit is set have been modified by the data processing device. An inclusion bit checking means, wherein the inclusion bit in the data cache is set A descriptor cache flush means for flushing the descriptor cache if any of the descriptors of the first format has been modified, whereby an inclusion bit is set in the data cache. A memory management device for a computer, wherein the descriptor cache is always flushed when a descriptor of the first format is changed.
JP4300599A 1991-10-16 1992-10-14 Method for maintaining coherence of cache between data cache and segment descriptor and memory device of computer Pending JPH05216766A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/777,608 US5895489A (en) 1991-10-16 1991-10-16 Memory management system including an inclusion bit for maintaining cache coherency
US777,608 1991-10-16

Publications (1)

Publication Number Publication Date
JPH05216766A true JPH05216766A (en) 1993-08-27

Family

ID=25110724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4300599A Pending JPH05216766A (en) 1991-10-16 1992-10-14 Method for maintaining coherence of cache between data cache and segment descriptor and memory device of computer

Country Status (5)

Country Link
US (1) US5895489A (en)
JP (1) JPH05216766A (en)
DE (1) DE4234695C2 (en)
FR (1) FR2682783B1 (en)
GB (1) GB2260630B (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
US6378023B1 (en) 1996-02-14 2002-04-23 Advanced Micro Devices, Inc. Interrupt descriptor cache for a microprocessor
US5926841A (en) * 1996-03-13 1999-07-20 Advanced Micro Devices, Inc. Segment descriptor cache for a processor
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
AU2257301A (en) * 1999-12-17 2001-06-25 Sun Microsystems, Inc. Method and apparatus for monitoring a cache for garbage collection
US6918020B2 (en) * 2002-08-30 2005-07-12 Intel Corporation Cache management
US8510511B2 (en) 2009-12-14 2013-08-13 International Business Machines Corporation Reducing interprocessor communications pursuant to updating of a storage key
US8918601B2 (en) * 2009-12-14 2014-12-23 International Business Machines Corporation Deferred page clearing in a multiprocessor computer system
US8930635B2 (en) * 2009-12-14 2015-01-06 International Business Machines Corporation Page invalidation processing with setting of storage key to predefined value
EP2764439B1 (en) * 2011-10-07 2019-06-26 Hewlett-Packard Enterprise Development LP Mapping persistent storage
US9608842B2 (en) * 2013-12-13 2017-03-28 Intel Corporation Providing, at least in part, at least one indication that at least one portion of data is available for processing
US10373285B2 (en) 2017-04-09 2019-08-06 Intel Corporation Coarse grain coherency
US10325341B2 (en) 2017-04-21 2019-06-18 Intel Corporation Handling pipeline submissions across many compute units

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60110056A (en) * 1983-10-31 1985-06-15 Nec Corp Dynamic changing method for memory address generation of data processing system
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
JPH087680B2 (en) * 1985-09-19 1996-01-29 日本電気株式会社 Instruction counter loading device
US5165027A (en) * 1986-01-24 1992-11-17 Intel Corporation Microprocessor breakpoint apparatus
US4860195A (en) * 1986-01-24 1989-08-22 Intel Corporation Microprocessor breakpoint apparatus
US5053944A (en) * 1986-01-24 1991-10-01 Intel Corporation Microprocessor breakpoint apparatus
DE3785897T2 (en) * 1986-02-28 1993-09-30 Nec Corp CONTROL DEVICE FOR PRELIMINARY COMMANDS.
AU603167B2 (en) * 1986-12-23 1990-11-08 Bull Hn Information Systems Inc. Segment descriptor unit
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
US4959860A (en) * 1989-02-07 1990-09-25 Compaq Computer Corporation Power-on password functions for computer system
US5144551A (en) * 1989-05-19 1992-09-01 Compaq Computer Corporation Computer memory management method utilizing segmentation and protection techniques
GB2260629B (en) * 1991-10-16 1995-07-26 Intel Corp A segment descriptor cache for a microprocessor

Also Published As

Publication number Publication date
DE4234695C2 (en) 1997-09-11
DE4234695A1 (en) 1993-04-22
US5895489A (en) 1999-04-20
GB2260630A (en) 1993-04-21
GB2260630B (en) 1995-06-28
FR2682783B1 (en) 1995-02-17
GB9216794D0 (en) 1992-09-23
FR2682783A1 (en) 1993-04-23

Similar Documents

Publication Publication Date Title
US7426626B2 (en) TLB lock indicator
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
JP3859757B2 (en) Translation table entry with cacheability attribute bit for virtual address, virtual address reference method using the bit, and virtual address reference device
US6393544B1 (en) Method and apparatus for calculating a page table index from a virtual address
EP0036110B1 (en) Cache addressing mechanism
JP5475055B2 (en) Cache memory attribute indicator with cached memory data
US6014732A (en) Cache memory with reduced access time
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US5802568A (en) Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers
US6874077B2 (en) Parallel distributed function translation lookaside buffer
US5751990A (en) Abridged virtual address cache directory
US6243791B1 (en) Method and architecture for data coherency in set-associative caches including heterogeneous cache sets having different characteristics
JPH04232551A (en) Method and apparatus for converting multiple virtaul addresses
JPH05216766A (en) Method for maintaining coherence of cache between data cache and segment descriptor and memory device of computer
US5287482A (en) Input/output cache
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
JPH05210593A (en) Memory partitioning device for microprocessor and method of loading segment descriptor to segment-register
US6434670B1 (en) Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
KR101102260B1 (en) A virtual address cache and method for sharing data using a unique task identifier
EP0526114A1 (en) A method and apparatus for performing address translation in a data processor using masked protection indirection page descriptors
JP3078303B2 (en) Cache memory control circuit
US7181587B1 (en) Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment
JP2564377B2 (en) Information processing device with cache memory
JPH1027134A (en) Address converter and processor using the converter
GB2395588A (en) Apparatus supporting multiple page sizes with address aliasing

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050621

A61 First payment of annual fees (during grant procedure)

Effective date: 20050629

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 3

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

Year of fee payment: 4

Free format text: PAYMENT UNTIL: 20090708

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

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20100708

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20120708

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

Free format text: PAYMENT UNTIL: 20130708

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250