JPH071489B2 - Computer device and method for detecting and correcting data inconsistency in a cache data array in a computer device - Google Patents

Computer device and method for detecting and correcting data inconsistency in a cache data array in a computer device

Info

Publication number
JPH071489B2
JPH071489B2 JP63247551A JP24755188A JPH071489B2 JP H071489 B2 JPH071489 B2 JP H071489B2 JP 63247551 A JP63247551 A JP 63247551A JP 24755188 A JP24755188 A JP 24755188A JP H071489 B2 JPH071489 B2 JP H071489B2
Authority
JP
Japan
Prior art keywords
virtual
cache
memory
address
virtual address
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
JP63247551A
Other languages
Japanese (ja)
Other versions
JPH01108651A (en
Inventor
ウイリアム・ヴアン・ルー
ジヨン・ワトキンス
ジヨセフ・モラン
ウイリアム・シヤノン
レイ・チエン
Original Assignee
サン・マイクロシステムズ・インコーポレーテツド
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 サン・マイクロシステムズ・インコーポレーテツド filed Critical サン・マイクロシステムズ・インコーポレーテツド
Publication of JPH01108651A publication Critical patent/JPH01108651A/en
Publication of JPH071489B2 publication Critical patent/JPH071489B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

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)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、各ユーザーがマルチ稼動プロセスを持つこと
ができるようにするオペレーテイングシステムを含む、
書戻しキヤツシユを有するマルチユーザーオペレーテイ
ングシステムにおいて仮想アドレツシングを用いるワー
クステーシヨンにおけるハードウエアおよびソフトウエ
アのある改良に関するものである。これに関連して、説
明の便宜上、特定のマルチユーザー、マルチ稼動プロセ
スオペレーテイングシステム、すなわち、Unix(商標)
(ユニツクス)オペレーテイングシステムに関連して本
発明を説明することにする。しかし、本発明ユニツクス
オペレーテイングシステムに関連して使用することに限
定されるものではなく、特許請求の範囲を、ユニツクス
オペレーテイングシステムのみに使用できる本発明をカ
バーするものと解すべきではない。
DETAILED DESCRIPTION OF THE INVENTION Industrial Field of the Invention The present invention includes an operating system that allows each user to have multiple operating processes.
It relates to certain improvements in hardware and software in workstations using virtual addressing in a multi-user operating system with write-back cache. In this regard, for convenience of explanation, a specific multi-user, multi-operating process operating system, namely Unix (TM)
The invention will be described in the context of a (units) operating system. However, it is not limited to use in connection with the present invention operating system, and the claims are not to be construed as covering the present invention, which may be used only in a unit operating system. .

〔従来の技術〕[Conventional technology]

ユニックスをベースとするワークステーションにおいて
は、構成要素の1つとして仮想アドレス書戻し(write
back)キャッシュを含むことによりシステムの性能を大
幅に向上できる。しかし、そのようなシステムにおいて
は、エイリアスアドレス(すなわち、実メモリ中の同じ
物理アドレスへマップする2以上の仮想アドレス)のサ
ポートが問題となる。
On Unix-based workstations, one of the building blocks is virtual address writeback.
back) By including a cache, system performance can be greatly improved. However, in such systems, support for alias addresses (ie, two or more virtual addresses that map to the same physical address in real memory) becomes a problem.

相互にはエイリアスである2つの仮想アドレス(2つの
エイリアスアドレス)の一方を介して行われる書戻しキ
ャッシュへの任意のデータ更新は、他方のエイリアスア
ドレスからは、(2つのエイリアスアドレス自体は一致
していないのであるから)見えないのである。
Any data update to the write-back cache through one of two virtual addresses (two alias addresses) that are aliases of each other will result in the other alias address (the two alias addresses themselves I can't see it.

更に詳しく言えば、仮想アドレスの利用により、エイリ
アシング、すなわち、複数の仮想アドレスを同一の物理
アドレスへマップすることが可能となる。ページマッピ
ングの限定なしに直接マップされる仮想アドレス書戻し
キヤツシュが用いられると、任意の2つの仮想アドレス
は任意の2つのキヤツシュ場所を占ることができ、か
つ、同一の物理アドレスへマップされる。キヤツシュブ
ロックが修正されても、任意のキヤツシュ場所の相互間
では、データの一貫性を保つためにチェックをすること
が通常できない。一方のキヤツシュ場所での変化が、他
方のキヤツシュ場所から見えないとき、データの一貫性
は失われる結果とになる。最終的には、主メモリの物理
アドレスにおけるデータには、CPUやI/O装置によりキャ
ッシュメモリに対して行われた修正の一部のみが、含ま
れるだけとなるという不都合を生じる。
More specifically, the use of virtual addresses allows aliasing, that is, mapping of multiple virtual addresses to the same physical address. If a virtual address writeback cache is used that is directly mapped without page mapping limitation, any two virtual addresses can occupy any two cache locations and are mapped to the same physical address. . Even if the cache block is modified, it is usually not possible to check between any of the cache locations to keep the data consistent. When changes at one cache location are not visible at the other cache location, the result is inconsistent data. Eventually, the data at the physical address of the main memory only contains a part of the modifications made to the cache memory by the CPU or I / O device, which is a disadvantage.

〔発明の概要〕[Outline of Invention]

本発明においては、上記問題は、エイリアスを取扱うた
めに2種類の戦略を組合わせることにより解決される。
In the present invention, the above problem is solved by combining two strategies for dealing with aliases.

第1の戦略は、エイリアスアドレスの下位アドレスビッ
トが同一であつて、キヤツシユの寸法を(最小として)
モジユロするようにエイリアスアドレスを作成すること
である。この戦略は、核により、または全面的に核で発
生されたエイリアスアドレスを用いる全てのユーザープ
ログラムに適用できる。この戦略に対するそれらのエイ
リアスアドレスは、核に対する修正により発生され、ユ
ーザープログラムには見ることができない。そのように
して発生されたエイリアスアドレスは、直接マツプされ
た(一方向にセツトされた関連)キヤツシユ内、または
多方向にセツトされた関連キヤツシユ内の同じキヤツシ
ユセツト内、の同じキヤツシユブロツクへマツプする。
そうすると、このキヤツシユブロツク(またはキヤツシ
ユセツト)内でのデータの一貫性を保証するために、エ
イリアスハードウエア検出ロジツクが用いられる。
The first strategy is that the lower address bits of the alias address are the same and the size of the cache is (minimum).
It is to create an alias address so that it can be changed. This strategy can be applied to all user programs that use alias addresses generated by the kernel or entirely in the kernel. Those alias addresses for this strategy are generated by modifications to the kernel and are not visible to user programs. The alias address so generated maps directly to the same cache within the mapped cache (one-way set association) or within the same set of multidirectional set association caches. .
The alias hardware detection logic is then used to ensure data consistency within this cache (or cache set).

第2の戦略は、下位のアドレスビツト中で一致させるこ
とができない、ユーザープログラムではなく、オペレー
テイングシステム内のそれらのエイリアスアドレスをカ
バーする。それらは、仮想アドレツシングを用いるワー
クステーシヨンにより採用されるメモリ管理ユニツト
(MMU)内の「キヤツシユしない」ページとしてそれの
ページを割当てることにより取扱われる。
The second strategy covers those alias addresses in the operating system that are not user programs that cannot be matched in the lower address bits. They are handled by assigning their pages as "non-cacheable" pages in the memory management unit (MMU) employed by workstations using virtual addressing.

〔実施例〕〔Example〕

以下、図面を参照して本発明を詳しく説明する。 Hereinafter, the present invention will be described in detail with reference to the drawings.

第1図は、本発明が実現される仮想アドレスを用いる典
型的なワークステーシヨンの機能的なブロツク図であ
る。
FIG. 1 is a functional block diagram of a typical workstation using virtual addresses in which the present invention is implemented.

とくに、そのワークステーシヨンはマイクロプロセツサ
すなわち中央処理装置(CPU)11と、キヤツシユデータ
アレイ19と、キヤツシユタグアレイ23と、キヤツシユヒ
ツト比較器25と、メモリ管理ユニツト(MMU)27と、主
メモリ31と、書戻しバツフフア39と、ワークステーシヨ
ン制御ロジツク40とを含む。そのワークステーシヨン
は、希望によつては、コンテキストトIDレジスタ32と、
キヤツシユフラツシユロジツク33と、直接仮想メモリア
クセス(DVMA)ロジツク35とと、マルチプレクサ37とを
含むこともできる。
In particular, the workstation is a microprocessor or central processing unit (CPU) 11, a cache data array 19, a cache tag array 23, a cache comparator 25, a memory management unit (MMU) 27, and a main memory. 31 includes a write back buffer 39 and a work station control logic 40. The workstation, if desired, has a context ID register 32,
A cache flash logic 33, a direct virtual memory access (DVMA) logic 35, and a multiplexer 37 may also be included.

上記の素子に加えて、本発明を実現するために、マルチ
プレクサ45と、エイリアス検出ロジツク47と、エイリア
ス検出制御ロジツク49と、実アドレスレジスタ51とを更
に必要とする。上記素子は、仮想アドレス書戻しキヤツ
シユを利用する従来の技術に固有の諸問題なしにエイリ
アスアドレスをサポートする。
In addition to the above elements, a multiplexer 45, an alias detection logic 47, an alias detection control logic 49, and a real address register 51 are further required to implement the present invention. The device supports alias addresses without the problems inherent in the prior art that utilizes virtual address writeback caches.

各前記素子について、オペレーテイングシステムの核に
ついて行わなければならない変更を含めて、かつ、本発
明に独特の部品にとくに重点をおいて、説明することに
する。
Each of these elements will be described, including the changes that must be made to the core of the operating system, and with particular emphasis on the parts unique to the present invention.

ワークステーシヨンの必要な素子についての説明 CPU11は、メモリおよびおそらくは他の装置内の命令と
データを(アドレスの翻訳に続いて)アドレスするため
にバスサイクルを生ずる。CPUアドレス自体は、仮想コ
ンテキスト内の命令またはデータのバイトを独特に識別
する、寸法が(A)ビツトの仮想アドレスである。バス
サイクルは、バスサイクルを独特に識別する1つまたは
複数の制御フイールドにより特徴づけることができる。
とくに、「タイプ」フイールドはもちろん、読出し/書
込み指示子が求められる。そのフイールドは、バスサイ
クルのためのアクセス優先権(すなわち、「スーパーバ
イザ」または「ユーザー」のアクセス優先権)はもちろ
ん、メモリの命令とデータのアドレス空間を識別する。
仮想アドレツシングを有し、マルチユーザーオペレーテ
イングシステムをサポートできるワークステーシヨンに
おいて利用できるCPUはMC 68020である。
DESCRIPTION OF REQUIRED DEVICES FOR WORKSTATION The CPU 11 causes bus cycles to address instructions and data (following address translation) in memory and possibly other devices. The CPU address itself is a virtual address of size (A) bits that uniquely identifies a byte of instruction or data within the virtual context. A bus cycle can be characterized by one or more control fields that uniquely identify the bus cycle.
In particular, read / write indicators are required, as well as "type" fields. The field identifies the instruction and data address space of the memory as well as the access priority for the bus cycle (ie, "supervisor" or "user" access priority).
MC 68020 is a CPU that can be used in a workstation that has virtual addressing and can support a multi-user operating system.

書戻しキヤツシユを有する第1図に示す仮想アドレスワ
ークステーシヨンにおける別の必要な素子は、仮想アド
レスキヤツシユデータアレイ19である。これは2個の
データブロツクのアレイとして構成される。各データブ
ロツクは2個のバイトを含む。各ブロツク内の2
イトは下位のM個のアドレスビツトにより独特に識別さ
れる。2個の各ブロツクは、次の下位のN個のアドレ
スビツトによりアレイ素子として独特にアドレスされ
る。仮想アドレスキヤツシユとして、キヤツシユ内の
(N+M)ビツトのアドレツシングバイトは(A+C)
ビツトの仮想アドレス空間からのものである。(下記の
ように、(C)ビツトは選択により用いられるコンテキ
ストIDレジスタ32からのコテキストビツトである。)
(N+M)ビツトは、翻訳されない(P)個のページビ
ツトに、仮想ページアドレスを定める(A+C−P)ビ
ツトからの付加された仮想ビツトである。
Another necessary element in the virtual address workstation shown in FIG. 1 having a write-back cache is the virtual address cache data array 19. It is organized as an array of 2N data blocks. Each data block contains 2 M bytes. 2 M bytes in each block is uniquely identified by a lower M address bits. Each of the 2 N blocks is uniquely addressed as an array element by the next N lower address bits. As the virtual address cache, the addressing byte of the (N + M) bit in the cache is (A + C).
It is from the bit's virtual address space. (As described below, the (C) bit is the context bit from the context ID register 32 used by the selection.)
The (N + M) bit is an added virtual bit from the (A + CP) bit that defines the virtual page address to the (P) untranslated page bits.

ここで説明する仮想アドレスキヤツシユデータアレイ19
は「直接マツプされる」キヤツシユ、または「一方向セ
ツト連想」キヤツシユである。このキヤツシユ構成を本
発明の説明のために用いるが、それは発明の範囲を限定
することを意味するものではなく、多方向セツト連想キ
ヤツシユに関連して使用することもできる。
Virtual address cache data array 19 described here
Is a "mapped directly" cache or a "one way set association" cache. This cache configuration is used for the purposes of explaining the present invention, but it is not meant to limit the scope of the invention and may be used in connection with a multi-directional set associative cache.

第1図に示されている別の要求される素子は、キヤツシ
ユデータアレイ19内の各データブロツクごとに1つのタ
グアレイ素子を有する仮想アドレスキヤツシユタグアレ
イ23である。したがつて、タグアレイは2個の素子を
含む。第3図に示すように、各素子は有効ビツト(V)
と、修正されるビツト(M)と、2つの保護ビツト
(P)と、仮想アドレスフイールド(VA、希望によりC
X)とを有する。保護ビツト(P)はスーパーバイザ保
護ビツト(Supvsr Prot)と書込み許可ビツトで構成さ
れる。仮想アドレスフイールドの内容は、キヤツシユタ
グとデータアレイをアドレスするために用いられる下位
アドレスビツトとともに、(A+C)ビツトの全仮想ア
ドレス空間を独特に識別する。すなわち、タグ仮想アド
レスフイールドは(A+C)−(M+N)個の仮想アド
レスビツトを含まなければならない。
Another required element shown in FIG. 1 is a virtual address cache tag array 23 with one tag array element for each data block in the cache data array 19. Therefore, the tag array includes 2 N elements. As shown in FIG. 3, each element has an effective bit (V).
, Modified bit (M), two protection bits (P), virtual address field (VA, C if desired)
X) and. The protection bit (P) is composed of a supervisor protection bit (Supvsr Prot) and a write permission bit. The contents of the virtual address field uniquely identify the entire virtual address space of the (A + C) bit, as well as the cache tag and the lower address bits used to address the data array. That is, the tag virtual address field must include (A + C)-(M + N) virtual address bits.

キヤツシユ「ヒツト」ロジツク25は、仮想アクセスアド
レスを仮想アドレスキヤツシユタグアドレスフイールド
の内容と比較する。アクセスアドレス内では、下位のM
ビツトがブロツク内のバイトをアドレスし、次の下位の
Nビツトがキヤツシユ内のブロツクをアドレスし、残り
の((A+C)−(M+N))ビツトが、キヤツシユ
「ヒツト」サイクルの一部として、タグ仮想アドレスフ
イールドと比較する。
The cache "hit" logic 25 compares the virtual access address with the contents of the virtual address cache tag address field. Within the access address, the lower M
The bit addresses the byte in the block, the next lower N bits address the block in the cache, and the remaining ((A + C)-(M + N)) bits are tagged as part of the cache "hit" cycle. Compare with virtual address field.

キヤツシユ「ヒツト」ロジツクは、オペレーテイングシ
ステムを共用するシステムに対して、ユーザー命令とデ
ータおよびスーパーバイザ命令とデータに対するアクセ
スを識別せねばならない。それらの要求を満す「ヒッ
ト」の定義が第2a図に示されている。その図には比較器
20と、アンゲート22と、オアゲート24と、アンドゲート
26とが示れている。
The cache "hit" logic must identify access to user instructions and data and supervisor instructions and data to systems that share an operating system. The definition of a "hit" that meets those requirements is shown in Figure 2a. The figure shows a comparator
20, Angate 22, Orgate 24, Andgate
26 is shown.

仮想空間内のアドレスを物理アドレスへ翻訳するMMU27
は別の要求される素子である。MMU27は寸法が(2
バイトのページを基にして構成される。それらのページ
は寸法が(2)バイトのセグメントとしてまとめられ
る。ページ内でのアドレツシングには(P)ビツトを必
要とする。それらの(P)ビツトは翻訳を要しない物理
アドレスビツトである。MMU27の役割は仮想ページアド
レスビツト((A+C−P)または(A−P))を(M
M)ビツトの物理ページアドレスへ翻訳することであ
る。そうすると、複合物理アドレスは(MM)ページアド
レスビツトである。この場合、ページ当りのビツト数は
(P)ビツトである。
MMU27 that translates addresses in virtual space to physical addresses
Is another required element. The size of MMU27 is (2 P )
It is constructed based on pages of bytes. The pages are organized into segments of size (2 S ) bytes. In-page addressing requires a (P) bit. Those (P) bits are physical address bits that do not require translation. The role of MMU27 is to set the virtual page address bit ((A + C-P) or (A-P)) to (M
M) Translate to the physical page address of the bit. Then, the composite physical address is the (MM) page address bit. In this case, the number of bits per page is (P) bits.

MMU27は保護チエツクのため、すなわち、アクセスバス
サイクルの優先権をページに割当てられた保護と比較す
るための場所である。この点を示すために、ページへ割
当てることができる2種類の保護、すなわち、スーパー
バイザ/ユーザーアクセス識別子と書込み保護/書込み
許可識別子がある。本発明はそのような種類の保護に限
定されるものではないが、このページ保護が与えられる
と、「ユーザー」優先権バスサイクルが「スーパーバイ
ザ」保護を有するページをアクセスするか、「書込み」
バスサイクルが「書込み保護」指示を有するページをア
クセスするならば、「保護の侵害」が行われる結果とな
ることがある。
The MMU 27 is a place for protection checking, ie, comparing access bus cycle priorities with the protection assigned to a page. To illustrate this, there are two types of protection that can be assigned to a page: a supervisor / user access identifier and a write protect / write permission identifier. Although the invention is not limited to such kind of protection, given this page protection, a "user" priority bus cycle accesses a page with "supervisor" protection or "write".
If a bus cycle accesses a page that has a "write protect" indication, a "breach of protection" may result.

MMUを介するMMU保護チエツクの適用が第2c図に示されて
いる。この図にはインバータ28と、アンドゲート30a,30
bと、オアゲート34と、アンドゲート36とが示されてい
る。また、仮想アドレス書戻しキヤツシユで保護チエツ
クの概念を、MMUをアクセスしないキヤツシユのみCPUサ
イクルまで拡張できる。そのようなキヤツシユオンリー
保護ロジツクが第2b図に示されている。この図にはイン
バータ42と、アンドゲート44a,44bと、オアゲート46
と、アンドゲート48とが示されている。
The application of the MMU protection check via the MMU is shown in Figure 2c. In this figure, an inverter 28 and AND gates 30a, 30
b, OR gate 34 and AND gate 36 are shown. Also, the concept of protection check with virtual address write-back cache can be extended to CPU cycles only for cache that does not access MMU. Such a cache-only protection logic is shown in Figure 2b. This figure shows an inverter 42, AND gates 44a and 44b, and an OR gate 46.
And AND gate 48 are shown.

また、第1図には、物理アドレス空間内でアドレスでき
る主メモリ31も示されている。主メモリアクセスの制御
はワークステーシヨン制御ロジツク40を介して行われ
る。
Also shown in FIG. 1 is a main memory 31 which can be addressed in the physical address space. Control of main memory access is performed via the workstation control logic 40.

書戻しバツフア39は、キヤツシユデータアレイ19からロ
ードされたキヤツシユデータの1ブロツクを含むレジス
タである。既存のキヤツシユブロツクを移動させる時に
は書込みバツフア39へ常にロードされる。これはキヤツ
シユブロツクを新しい内容で更新する必要で行わせるこ
とができ、またはブロツクをフラツシユしなければなら
ないために行うことができる。いずれの場合にも、出戻
しキヤツシユにおいては、既存のキヤツシユブロツクに
対するキヤツシユタグの状態は、このブロツクをメモリ
へ書戻すべきかどうかを決定する。下記のように、ブロ
ツクが有効で、修正されれたことをタグが示したとする
と、キヤツシユブロツクが移動させられる時に、ブロツ
ク内容をメモリ31へ書戻さなければならない。そのデー
タがメモリへ書込まれる前に書戻しバツフア39がそのデ
ータを一時的に保持する。
The write-back buffer 39 is a register containing one block of cache data loaded from the cache data array 19. When moving an existing cache block it is always loaded into the write buffer 39. This can be done because the cache block needs to be updated with new content, or because the block has to be flushed. In either case, in the revert cache, the state of the cache tag for an existing cache block determines whether this block should be written back to memory. If the tag indicates that the block is valid and has been modified, as described below, the block contents must be written back to memory 31 when the cache block is moved. A write-back buffer 39 temporarily holds the data before it is written to memory.

ワークステーシヨン制御ロジツク40は、第1図に示され
ているワークステーシヨン素子の全体の動作を制御す
る。好適な実施例においては、制御ロジツク40はいくつ
かの状態マシンとして構成される。それらの状態マシン
は第4図および第6〜8図に示されている。それらの状
態マシンについては、エイリアス検出制御ロジツク49の
説明とともに以下に詳しく説明することにする。そのエ
イリアス検出制御ロジツク49も、好適な実施例において
は、ワークステーシヨン制御ロジツクに統合できる。
A work station control logic 40 controls the overall operation of the work station element shown in FIG. In the preferred embodiment, the control logic 40 is configured as several state machines. Those state machines are shown in FIGS. 4 and 6-8. These state machines will be described in detail below along with a description of the alias detection control logic 49. The alias detection control logic 49 can also be integrated into the workstation control logic in the preferred embodiment.

ワークステーシヨンの選択的な素子の説明 コンテキストIDレジスタ32は、仮想コンテキストまたは
仮想プロセスを識別する別の仮想アドレスビツトを含む
選択的な外部アドレスレジスタである。Cビツトと含む
そのレジスタは全部で(2**C)アクテイブユーザー
プロセスを識別する。全部の仮想アドレス空間の寸法は
2**(A+C)である。
Description of Selective Elements of the Workstation The context ID register 32 is an optional external address register that contains another virtual address bit that identifies a virtual context or process. The register, including the C bit, identifies in total (2 ** C) active user processes. The size of the entire virtual address space is 2 ** (A + C).

2**(A+C)のこの仮想アドレス空間における重要
な部品は、オペレーテイングシステムにより占められる
仮想アドレススペースである。オペレーテイングシステ
ムは全てのユーザープロセスに共通であるから、アクテ
イブな全てのユーザープロセススにわたつて共通のアド
レス空間に割当てられる。すなわち、(C)コンテキス
トビツトは、オペレーテイングシステム内のページのア
ドレスを修飾するのに何の意味も持たない。それより
も、アクテイブな各コンテキストに対して、オペレーテ
イングシステムは、仮想アドレス空間の(2**A)バ
イトのトツプにおける共通の排他的領域内にあると仮定
される。ユーザーページはこの領域内に含れないことが
ある。したがつて、2種類のユーザープロセスに対する
オペレーテイングシステムページアドレスは同一であ
り、2つのプロセスに対するプロセスは異なる。オペレ
ーテイングシステム内の全てのページは「スーパーバイ
ザ」保護を有するものとしてマークされる。
An important part of this virtual address space of 2 ** (A + C) is the virtual address space occupied by the operating system. Since the operating system is common to all user processes, it is assigned to a common address space across all active user processes. That is, the (C) context bit has no meaning in modifying the address of a page in the operating system. Rather, for each active context, the operating system is assumed to be in a common exclusive area in the top of the virtual address space (2 ** A) bytes. User pages may not be included in this area. Therefore, the operating system page addresses for the two types of user processes are the same, and the processes for the two processes are different. All pages in the operating system are marked as having "supervisor" protection.

本発明を利用できる種類のワークステーシヨンは、仮想
アドレスを再び割当てる時に、選択されたブロツクを仮
想キヤツシユから除去するためにキヤツシユフラツシユ
ロジツク333を含むこともできる。
A workstation of the type that can utilize the present invention can also include a cache flash logic 333 to remove selected blocks from the virtual cache when reassigning virtual addresses.

この明細書においては、キヤツシユフラツシユロジツク
33は、仮想アドレス、書戻しキヤツシユシステムにおけ
る部品としての役割を示すことだけを説明する。ある範
囲のアドレス(たとえば、仮想ページアドレス)を再び
割当てるものとすると、その範囲内からのアドレスの全
ての例を、新しいアドレス割当てを行うことができるよ
うになる前に、キヤツシユから除去、または「フラツシ
ユ」せねばならない。キヤツシユブロツクのタグ内の有
効ビツトを無効にし、ブロツクが修正されたとすれば、
そのブロツクをメモリへ書戻すことにによりキヤツシユ
ブロツクが「フラツシュれる」。
In this specification, the cache flash cache logic
33 will only explain that it shows the virtual address, its role as a part in the write-back cache system. Given that a range of addresses (eg, virtual page addresses) is to be reallocated, all instances of addresses from that range are removed from the cache before the new address allocation can be made, or ""Flushu". If you disable the valid bit in the tag of the cache block and the block is fixed,
By writing the block back to the memory, the cache block "flashes".

バスサイクルのソースとしてのCPU11に加えて、ワーク
ステーシヨンは、DVMAロジツク35のような、1つまたは
複数の外部入力/出力(I/O)装置を含むことができ
る。それらの外部I/O装置はバスサイクルを生ずること
ができる。それらのバスサイクルは、仮想アドレス空の
1つまたは複数の「種類」をアクセスするのにCPUと並
列に行う。CPU11またはDVMAロジツク35からの仮想アド
レスは、コンテキストIDレジスタ32内のアドレスととも
に、アクセスアドレスと呼ばれる。
In addition to the CPU 11 as a source of bus cycles, the workstation can include one or more external input / output (I / O) devices, such as the DVMA logic 35. Those external I / O devices can produce bus cycles. These bus cycles are performed in parallel with the CPU to access one or more "types" of virtual address space. The virtual address from the CPU 11 or the DVMA logic 35, together with the address in the context ID register 32, is called an access address.

別の選択的な素子はデータバスバツフア37である。好適
な実施例においては、そのデータバスバツフアは、32ビ
ツトバスと64ビツトバスの間のデータの流れを制御する
ために2つのバツフアとして実現される。それらのバツ
フアは、CPUデータバスが32ビツトで、キヤツシユデー
タアレイデータバスが64ビツトの時に必要とされる。
Another optional element is the data bus buffer 37. In the preferred embodiment, the data bus buffer is implemented as two buffers to control the flow of data between the 32-bit bus and the 64-bit bus. These buffers are needed when the CPU data bus is 32 bits and the cache data array data bus is 64 bits.

本発明のワークステーシヨンに独特の素子についての説
明 上記のように、本発明においては、エイリアスアドレス
から生ずるデータ一貫性の問題を解決するために、2種
類の戦略が利用される。両方の戦略は、データの一貫性
を確保するために、オペレーテイングシステムと特殊な
キヤツシユハードウエアと相互作用することを必要とす
る。
Description of Elements Unique to the Workstation of the Invention As noted above, in the present invention, two strategies are utilized to solve the data consistency problem that results from alias addresses. Both strategies require interacting with the operating system and specialized cache hardware to ensure data consistency.

第1の戦略は、同じデータへマツプする全てのエイリア
スアドレスの下位アドレスビツトを一致させて、データ
をキヤツシユするものとすると、それらのアドレスが同
じキヤツシユ場所を用いるようにしなければならないこ
とを要する。本発明は、キヤツシユを「ミスする」メモ
リアクセスにおけるエイリアスアドレスを検出し、全て
のエイリアスアドレスが同じキヤツシユ場所内の一貫す
るデータを指すようにキヤツシユデータ更新を制御する
ために、実アドレス比較器であるエイリアス検出ロジツ
ク47を利用する。
The first strategy requires that the lower address bits of all alias addresses that map to the same data be matched so that the data is cached, so that those addresses must use the same cache location. The present invention detects real-time address comparators to detect alias addresses in memory accesses that "miss" the cache, and to control cache data updates so that all alias addresses point to consistent data within the same cache location. The alias detection logic 47 is used.

この第1の戦略を実現する核アドレスオペレーシヨンモ
ジユールは、エイリアスアドレスの下位アドレスビツト
を一致させるから、同じキヤツシユ場所を使用すること
をエイリアスアドレスは保証される。キヤツシユの寸法
が2のデータブロツクであるとすると(各データブロ
ツクは2バイト)、エイリアスアドレスの少くとも下
位(N+M)ビツトを一致させねばならない。これは同
じプロセス内のエイリアスアドレスと、プロセス間のエ
イリアスアドレスにも適用される。この要求を満す限り
は、直接マツプされるキヤツシユにおいては、エイリア
スアドレスは同じキヤツシユブロツクへマツプし、多方
向セツト連想キヤツシユにおいてはエイリアスアドレス
は同じキヤツシユセツトへマツプする。第2の戦略は、
MMU27中の各ページについて定められる「キヤツシユし
ない」ビツトを使用することにより、データがキヤツシ
ユされることを阻止する。いいかえると、MMU27中の各
ページ記述子は「キヤツシユしない」ビツトを有する。
そのビツトは、そのページからの命令とデータをキヤツ
シユに書込むことができるかどうかを制御する。この制
御ビツトがあるページについてセツトされるものとする
と、このページに対する全てのデータアクセスがメモリ
に対しては、またはメモリから、直接に行われ、キヤツ
シユをバイパスする。キヤツシユのバイパスにおいて
は、仮想キヤツシユデータの一貫性の問題が避けられ
る。
Since the nuclear address operation module that implements this first strategy matches the lower address bits of the alias address, the alias address is guaranteed to use the same cache location. If the cache size is 2 M data blocks (each data block is 2 N bytes), then at least the lower (N + M) bits of the alias address must match. This also applies to alias addresses within the same process and aliases between processes. As long as this requirement is satisfied, the alias address maps to the same cache block in the cache that is mapped directly, and the alias address maps to the same cache set in the multi-way set associative cache. The second strategy is
Prevents data from being cached by using the "not cached" bit defined for each page in the MMU27. In other words, each page descriptor in MMU 27 has a "not cached" bit.
The bit controls whether the instructions and data from that page can be written to the cache. If this control bit is set for a page, all data accesses to this page will be made directly to or from the memory, bypassing the cache. In bypassing the cache, the issue of virtual cache data consistency is avoided.

エイリアスドレツシングが可能であるから、1つのMMU
ページエントリイにおいてあるページが「キヤツシユし
ない」とマークされるものとすると、全てのエイリアス
ページエントリイにおいて「キヤツシユしない」とマー
クせねばならない。さもないとデータの一貫性は保証さ
れない。
Alias dressing is possible, so one MMU
If a page in a page entry is marked as "not cached", then all alias page entries must be marked as "not cached". Otherwise, data consistency cannot be guaranteed.

ユーザープロセスのためのエイリアスアドレス発生は核
を介して制御されるから、エイリアスアドレスの間でデ
ータの一貫性を確保するために、全てのユーザープロセ
スは第1の戦略を利用する。しかし、オペレーテイング
システムに対するあるアドレスは、第1の戦略のアドレ
ツシング要求を満たすために変更することはできない。
その代りに、それらのシステムエイリアスアドレスは、
第2の戦略、すなわち、「キヤツシユしない」ページへ
の割当てにより取扱われる。
Since alias address generation for user processes is controlled via the kernel, all user processes utilize the first strategy to ensure data consistency between alias addresses. However, some addresses for the operating system cannot be changed to meet the addressing requirements of the first strategy.
Instead, their system alias addresses are
It is handled by the second strategy, namely the assignment to the "no cache" page.

以下に、2つの戦略の組合わせを用いて、直接マツプさ
れる仮想アドレス書戻しキヤツシユにおけるデータの一
貫性を生ずるために必要とされるものについて機能的に
説明する。
The following is a functional description of what is needed to produce data consistency in a directly mapped virtual address writeback cache using a combination of two strategies.

CPU11またはDVMA35のメモリアクセスサイクルがキヤツ
シユを「ミスした」とすると、アクセス仮想アドレスが
MMUにより翻訳される。MMUの翻訳は、アクセスされるペ
ージが「キヤツシユしない」ページかどうか、アクセス
が保護の侵害を有するかどうかを決定する。アクセスが
有効で、キヤツシユできるページに対するものであると
すると、アクセスアドレスに対応するキヤツシユブロツ
クでキヤツシユが更新される。
If the memory access cycle of CPU11 or DVMA35 "misses" the cache, the access virtual address is
Translated by MMU. The MMU's translation determines whether the page being accessed is a "non-cacheable" page and whether the access has a breach of protection. If the access is valid and it is for a page that can be cached, the cache is updated with the cache block corresponding to the access address.

アクセスアドレスに対応する場所におけるキヤツシユの
現在の内容を調べて可能なエイリアスアドレスを検出す
る。現在のキヤツシユブロツクが有効で、修正されたと
すると、キヤツシユブロツクの翻訳されるアドレスを翻
訳されるアクセスアドレスと比較して有効なデータのソ
ースを判定してキヤツシユを更新する。
Look up the current contents of the cache at the location corresponding to the access address to find possible alias addresses. If the current cache block is valid and has been modified, then the translated address of the cache block is compared to the translated access address to determine the source of valid data and update the cache.

エイリアス検出ロジツク47により行われる実アドレス比
較は、翻訳されたバスサイクルアクセスを実アドレスレ
ジスタ51から、および翻訳されるキヤツシユアドレスを
MMU27から、入力としてとる。
The real address comparison performed by the alias detection logic 47 includes the translated bus cycle access from the real address register 51 and the translated cache address.
Taken as input from MMU27.

現在のキヤツシユブロツクが有効であり、翻訳されたア
ドレス相互が等しいとすると、アクセスアドレスとキヤ
ツシユブロツクアドレスはエイリアスである。キヤツシ
ユブロツクが修正されたとすると、現在のキヤツシユデ
ータは最も現在のデータであり、このアドレスにおける
主メモリデータは古い。
If the current cache block is valid and the translated addresses are the same, then the access address and the cache block address are aliases. If the cache block was modified, the current cache data is the most current data and the main memory data at this address is old.

翻訳されたアドレス相互は等しいが、キヤツシユブロツ
クが修正されないとすると、古いキヤツシユデータとメ
モリデータは同一であり、いずれもキヤツシユ更新のた
めのソースとして使用できる。
The translated addresses are equal to each other, but if the cache block is not modified, the old cache data and the memory data are the same and both can be used as sources for cache updates.

有効なブロツクデータのソースがひとたび決定される
と、アクセスサイイクルを終らることができる。読出し
サイクルにおいては、キヤツシユ更新に続いて、バスサ
イクルはデータを、実現に応じてソースまたはキヤツシ
ユから直接戻す。書込みサイクルにおいては、アクセス
データをキヤツシユへ書込むことができる。キヤツシユ
寸法の更とキヤツシユデータの整列は実現に依存する。
Once the source of valid block data has been determined, the access cycle can be terminated. In the read cycle, following the cache update, the bus cycle returns data directly from the source or cache depending on the implementation. In the write cycle, access data can be written to the cache. Changing the cache size and aligning the cache data is implementation dependent.

データの一貫性を保証するために、ページへのどのよう
な書込みも、そのページへの全ての関係(読出しまたは
書込み)はこの制約を固守する。
To ensure data consistency, any write to a page, all relationships to that page (read or write) adhere to this constraint.

エイリアス検出ロジツク47を含むアドレス路の好適な実
施例を第3図に示す。第3図に示すように、アドレス路
は、仮想アドレス書戻しキヤツシユにおけるアドレス制
御をサポートする基本素子を含む。エイリアスアドレス
サポートのために、仮想アドレス(CXおよびVA)とキヤ
ツシユブロツク有効ビツト(V)のための仮想アドレス
レジスタ52(VAR)と、仮想アドレスと仮想アドレスレ
ジスタを多重化するマルチプレクサ45と、実アドレスレ
ジスタ51と、エイリアス検出ロジツク47と、アンドゲー
ト53(VARからの有効ビツトとエイリアス検出ロジツク
出力を入力として有する)と、実アドレス一致が検出さ
れた時にセツトされるアドレス一致フリツプフロツプ55
も必要とされる。
A preferred embodiment of the address path including the alias detection logic 47 is shown in FIG. As shown in FIG. 3, the address path includes the basic elements that support address control in the virtual address writeback cache. A virtual address register 52 (VAR) for virtual addresses (CX and VA) and a cache block valid bit (V) for alias address support, a multiplexer 45 for multiplexing the virtual address and the virtual address register, and Address register 51, alias detect logic 47, AND gate 53 (having valid bit from VAR and alias detect logic output as inputs), and address match flip-flop 55 that is set when a real address match is detected.
Is also needed.

キヤツシユ19から主メモリ31へのデータ路は2つの64ビ
ツトバス56,58を介する。CPUデータ路60は32ビツトであ
つて、D(31:0)として示される。読出しバスサイクル
では、2つの3ビツトバツフア37のうちいずれが64ビツ
トキヤツシユデータバス56からのデータを32ビツトCPU
データバス60へ置くことを可能にするかをキヤツシユア
ドレスビツトA(2)が選択する。エイリアス検出ロジ
ツク49は読出しサイクルキヤツシユミス(キヤツシユま
たはメモリ)におけるデータのソースを制御し、書込み
サイクルキヤツシユミスでキヤツシユがメモリデータで
更新されるかどうかを制御する(第6図,第7図のデー
タ状態マシン)。
The data path from the cache 19 to the main memory 31 is via two 64-bit buses 56,58. CPU data path 60 is 32 bits and is shown as D (31: 0). In the read bus cycle, which of the two 3-bit buffers 37 is a 32-bit CPU is a 64-bit cache and the data from the data bus 56 is a 32-bit CPU.
The cache address bit A (2) selects whether it can be placed on the data bus 60. The alias detection logic 49 controls the source of the data in the read cycle cache miss (cache or memory) and controls whether the cache is updated with the memory data in the write cycle cache miss (FIGS. 6 and 7). Data state machine).

第3図と第5図においては、図の不必要な混乱を避ける
ために、全ての制御線を示しているわけではない。しか
し、本発明を適切に動作させるために必要な制御線は、
第4図および第6図乃第8図に示す状態マシンの流れ図
から確かめることができる。
Not all control lines are shown in FIGS. 3 and 5 to avoid unnecessary confusion in the figures. However, the control lines needed to operate the invention properly are:
This can be seen from the flow diagram of the state machine shown in FIGS. 4 and 6-8.

流れ図においては下記の省略を用いている。The following abbreviations are used in the flow charts.

MUX−マルチプレクサ45 Sel−選択 VA−仮想アドレス RA−実アドレス OE−出力イネイブル Ack−確認応答 Cache Hit?−キヤツシユ「ヒツト」ロジツク25がキヤツ
シユヒツトを検出したか(第2a図) Cache Protect Violation?−制御ロジツク40がキヤツシ
ユ保護侵害を検出したか(第2b図) Memory Busy?−メモリビジーがアサートされたか MMU Protect Viol?−制御ロジツク40がMMU保護侵害を検
出するか(第2c図) RAR−実アドレスレジスタ51 CLK−クロツク Adr−アドレス Mem Adr Strobe−メモリ31アドレスストローブ VAR−仮想アドレスレジスタ Mem Adr Ack?−メモリアドレス確認応答がメモリ31によ
りアサートされたか Mem Data Strobe 0?−メモリデータストロープ0がアサ
ートれたか Mem Date Ack 0?−メモリデータ確認応答0がアサート
されたか Mem Date Strobe 1?−メモリデータストローブ1がアサ
ートされたか Mem Data Ack 1?−メモリデータ確認応答1がアサート
されたか Clk Write Back Buffer−クロツク書戻しバツフア39 Real Adr Match?−実アドレス一致が検出れたか(フリ
ツプフロツプ55) Don′t Catch Page?−制御ロジツク40がMMU27からキヤ
ツシユしないページを検出したか CPU Read Cycle?−CPU11が読出しサイクルにあるか Clk Date Reg−クロツクデータレジスタ61 Valid and Modified Write Back Data?−制御ロジツク4
0が有効ビツト(V)と修正されたビツト(M)を検出
したか Write to Don′t Cache Page−制御ロジツク40がキヤツ
シユしないページへのCPU書込みを検出したか Start No Cache Write?−制御ロジツク40がキヤツシユ
書込み無しスタートをアサートしたか Start Write Back Cycle?−制御ロジツク40が書戻しサ
イイクルスタートをアサートしたか 第9図乃至第11図に示すタイミング図においても類似の
省略が用いられる。
MUX-Multiplexer 45 Sel-Selection VA-Virtual address RA-Real address OE-Output enable Ack-Acknowledgment Cache Hit? -Cash "Hit" Did 25 detect a cache (Fig. 2a) Cache Protect Violation?-Control Did the logic 40 detect the cache protection violation (Fig. 2b) Memory Busy?-Was memory busy asserted? MMU Protect Viol?-Whether the control logic 40 detects the MMU protection violation (Fig. 2c) RAR-Real address Register 51 CLK-Clock Adr-Address Mem Adr Strobe-Memory 31 Address Strobe VAR-Virtual Address Register Mem Adr Ack? -Memory Address Acknowledge was asserted by Memory 31 Mem Data Strobe 0? -Memory Data Strobe 0 asserted Mem Date Ack 0?-Was memory data acknowledge 0 asserted? Mem Date Strobe 1?-Memory data strobe 1 was asserted. Sart or not Mem Data Ack 1? -Memory data acknowledgment 1 was asserted Clk Write Back Buffer-Clock write-back buffer 39 Real Adr Match? -Are real address match detected (flip-flop 55) Don't Catch Page? − Whether the control logic 40 detects a page that is not cached from the MMU 27 CPU Read Cycle? − Whether the CPU 11 is in the read cycle Clk Date Reg − Clock data register 61 Valid and Modified Write Back Data? − Control logic 4
0 is valid bit (V) and modified bit (M) detected Write to Don't Cache Page-Control logic 40 detected CPU write to uncached page Start No Cache Write? -Control logic 40 asserted cache no write start? Start Write Back Cycle?-Whether control logic 40 asserted write back cycle start A similar omission is used in the timing diagrams shown in FIGS. 9-11.

第4a図と第4b図に示すアドレス状態マシンは、キヤツシ
ユのアドレス取扱い部に関連する制御のあるものを定め
る。実アドレス一致フリツプフロツプ55のクロツキング
により本発明は統合される(状態(o))。状態(w)
中に、メモリ31からの全てのブロツクデータの成功した
転送に続いて、状態(w)の間にキヤツシユタグ23が有
効なものとして書込まれる。
The address state machine shown in Figures 4a and 4b defines some of the controls associated with the address handling portion of the cache. The present invention is integrated by the clocking of the real address matching flip-flop 55 (state (o)). State (w)
Following successful transfer of all block data from memory 31, cache tag 23 is written as valid during state (w).

第6a図と第6b図および第7a図乃至第7d図に示すデータ状
態マシンは、キヤツシユのデータ転送部分に関連するあ
る制御を定める。図示のように、状態(g)の後で、キ
ヤツシユしないページへの書込みについてのテストが行
われる。メモリへのこの書込みの取扱いが、データ状態
マシンにおける次の状態(i,dw)の経路に示されてい
る。状態(o)に続いて、キヤツシユしないページアク
セス(この時には読出しデータに対して)についてテス
トが行われる。キヤツシユしない読出しの制御は、状態
(q.nr)および(u.nr)まで、非実アドレス一致路をと
る。ここで、キヤツシユしないページについてのテスト
が状態(s.nr)と(w.nr)におけるキヤツシユ更新を禁
示する。
The data state machine shown in Figures 6a and 6b and Figures 7a to 7d defines certain controls associated with the data transfer portion of the cache. As shown, after state (g), a test for writing to an uncached page is performed. The handling of this write to memory is shown in the next state (i, dw) path in the data state machine. Following state (o), a non-cacheable page access (for read data at this time) is tested. The read control without cache takes a non-real address coincidence path up to the states (q.nr) and (u.nr). Here, the test for non-cacheable pages prohibits cache updates in states (s.nr) and (w.nr).

第8図に示す書戻し状態マシンはメモリへの書戻しサイ
クルの制御を定める。書戻し制御とデータ路はキヤツシ
ユアクセス制御およびデータ路とは独立しているから、
そのサイクルはCPUキヤツシユアクセスと並列に実行で
きる。下記のように、「Memory Busy」信号は、前の書
戻しサイクルが終るまでアドレスおよびデータ状態マシ
ンを待機させる。
The writeback state machine shown in FIG. 8 defines the control of the writeback cycle to memory. Since the write-back control and the data path are independent of the cache access control and the data path,
The cycle can be executed in parallel with the CPU cache access. The "Memory Busy" signal causes the address and data state machines to wait until the end of the previous writeback cycle, as described below.

第9a図に示す書込みキヤツシユミスタイミング図は、キ
ヤツシユをミスするメモリ内のキヤツシユできるページ
へのCPU書込みバスサイクルの全体のタイミングを定め
る。キヤツシユヒツトと保護チエツクがこの図のサイク
ル(c)で起る。
The write cache miss timing diagram shown in Figure 9a defines the overall timing of a CPU write bus cycle to a cacheable page in memory that misses cache. A cache hit and a protection check occur in cycle (c) of this figure.

ミス取扱いシーケンスの部分が、サイクル(i)と
(m)における、書戻しバツフア39へ置きかえられる現
在のキヤツシユブロツクのローデイングを含む。現在の
キヤツシユブロツクのための翻訳されたアドレスもサイ
クル(o)において実アドレスレジスタ51へロードされ
る。サイクル(o)においては実アドレス一致ラツチ
(フリツプフロツプ55)もクロツクされる。現在のキヤ
ツシユブロツクが有効で、前のCPU(またはDVMA)書込
みサイクルから修正されたとすると、第11b図のメモリ
データバスタイミング図と第8図の書戻し状態マシンに
示されるように、そのキヤツシユブロツクは書戻しバス
サイクルにおいてメモリ31へ書込まれる。
Part of the mishandling sequence involves the loading of the current cache block that will be replaced by the writeback buffer 39 in cycles (i) and (m). The translated address for the current cache is also loaded into real address register 51 in cycle (o). In cycle (o), the real address match latch (flip-flop 55) is also clocked. Assuming that the current cache block is valid and modified from the previous CPU (or DVMA) write cycle, that cache will be as shown in the memory data bus timing diagram of Figure 11b and the writeback state machine of Figure 8. The cache block is written to the memory 31 in the write-back bus cycle.

アクテイブ実アドレス一致ラツチ(フリツプフロツプ5
5)はエイリアスアドレス一致を意味する。エイリアス
一致がなければ、CPU書込みデータが、ブロツク読出し
メモリバスサイクルの第1のデータ転送においてメモリ
から戻されたブロツクデータと一緒にされる。サイクル
(q)〜(u)の間は、CPU書込み出力イネイブル制御
バツフア37は、CPUにより書込むべきバイトのみに対し
てアクテイブであり、データレジスタ出力イネイブル制
御データレジスタ61は他の全てのバイトに対してアアク
テイブである。第2のデータ転送中、サイクル(w)は
全てのバイトに対するデータレジスタ出力イネイブルが
アクテイブである。
Active real address match latch (flip-flop 5
5) means alias address match. If there is no alias match, the CPU write data is merged with the block data returned from memory in the first data transfer of the block read memory bus cycle. During cycles (q) to (u), the CPU write output enable control buffer 37 is active only for bytes to be written by the CPU, and the data register output enable control data register 61 is for all other bytes. On the other hand, it is active. During the second data transfer, in cycle (w), the data register output enable for all bytes is active.

エイリアス一致が存在するものとすると、CPUデータは
状態(s)においてデータキヤツシユへ書込まれ、メモ
リ31からのデータは無視される。
Assuming there is an alias match, the CPU data is written to the data cache in state (s) and the data from memory 31 is ignored.

第9b図に示されているキヤツシユしないページへの書込
みは、キヤツシユしないページへのアクセスに対するメ
モリへのCPU書込みバスサイクルの全体のタイミングを
定める。サイクル(c)で起るキヤツシユヒツトはミス
(ヒツトなし)を常に指示する。
The non-cache page write shown in Figure 9b defines the overall timing of a CPU write bus cycle to memory for an access to the non-cache page. The cache hit that occurs in cycle (c) always indicates a miss (no hit).

キヤツシユしないページへの書込みのケースは、キヤツ
シユがCPUまたはメモリデータにより更新されない点
が、キヤツシユできるページについてのキヤツシユミス
のケースとは異なる。メモリを直接更新するために、実
現は特殊なメモリバスサイクルを用いる。そのメモリバ
スサイクルはキヤツシユしないページへの書込みサイク
ル(第11c図)と呼ばれる。この場合には実アドレス一
致ラツチは意味を持たないことに注目されたい。
The case of writing to a non-cacheable page is different from the case of cache miss for a cacheable page in that the cache is not updated by the CPU or memory data. The implementation uses special memory bus cycles to update the memory directly. The memory bus cycle is called a non-cache page write cycle (Fig. 11c). Note that in this case the real address match latch has no meaning.

第10a図に示されている読出しキヤツシユミスタイミン
グ図は、キヤツシユをミスするメモリ内のキヤツシユ可
能なページへのCPU読出しバスサイクルの全体のタイミ
ングを定める。キヤツシユヒツトおよび保護チエツク
は、この図ではサイクル(c)で起る。
The read cache miss timing diagram shown in Figure 10a defines the overall timing of a CPU read bus cycle to a cacheable page in memory that misses cache. The cachet and protective checks occur in cycle (c) in this figure.

ミス取扱いシーケンスの一部が、サイクル(i)と
(m)において、書戻しバツフア39へ置きかえられる現
在のキヤツシユブロツクのローデイングを含む。現在の
キヤツシユブロツクに対する翻訳されたアドレスも実ア
ドレスレジスタ51へロードされる(サイクル(o))。
サイクル(o)においては実アドレス一致ラツチ(フリ
ツプフロツプ55)もクロツクされる。現在のキヤツシユ
ブロツクが有効で、前のCPU(またはDVMA)書込みサイ
クルから修正されたとすると、第11b図のメモリデータ
バスタイミングと第8図の書戻し状態マシンに示されて
いるように、そのキヤツシユブロツクは書戻しサイクル
でメモリ31へ書戻される。
Part of the mishandling sequence involves the loading of the current cache block that is replaced in writeback buffer 39 in cycles (i) and (m). The translated address for the current cache block is also loaded into the real address register 51 (cycle (o)).
In cycle (o), the real address match latch (flip-flop 55) is also clocked. Assuming the current cache is valid and has been modified from the previous CPU (or DVMA) write cycle, then as shown in the memory data bus timing of FIG. 11b and the writeback state machine of FIG. The cache block is written back to the memory 31 in the write-back cycle.

アクテイブ実アドレス一致ラツチ(フリツプフロツプ5
5)はエイリアスアドレス一致を意味する。エイリアス
アドレス一致がないとすると、状態(q)〜(u)にお
いてアクテイブである制御信号「CPU読出し出力イネイ
ブル」によりイネイブルされるバツフア37を介してデー
タをCPUへバイパスすることと、状態(e)においてキ
ヤツシユを更新することを同時に行うことにより、デー
タはCPUへ読込まれる。メモリは、ブロツク読出しメモ
リバスサイクルの初めの64ビツト転送と、次の64ビツト
転送において「ミスしたデータ」を常に戻すように構成
される。CPU読出しバスサイクルデータが戻された後
で、メモリからの第2のデータ転送でキヤツシユが更新
されている間にCPUは内部サイクルを実行できる。
Active real address match latch (flip-flop 5
5) means alias address match. If there is no alias address match, data is bypassed to the CPU via the buffer 37 enabled by the control signal "CPU read output enable" which is active in the states (q) to (u), and the state (e) Data is read into the CPU by updating the cache at the same time. The memory is configured to always return "missing data" on the first 64 bit transfer and the next 64 bit transfer of a block read memory bus cycle. After the CPU read bus cycle data is returned, the CPU can perform internal cycles while the cache is being updated on the second data transfer from memory.

エリリアスアドレス一致が存在したとすると、データは
キヤツシユ19からCPU11へ直接読出され、メモリ31から
のデータは無視される。
Assuming there is an ellirias address match, the data is read directly from the cache 19 to the CPU 11 and the data from the memory 31 is ignored.

第10b図に示すキヤツシユしないページタイミングから
の読出しは、キヤツシユしないページへのアクセスのた
めのメモリに対するCPU読出しバスサイクルの全体のタ
イミングを定める。状態(c)で起るキヤツシユヒツト
はミス(ヒツトなし)を常に指示する。
The read from non-cache page timing shown in Figure 10b defines the overall timing of the CPU read bus cycle to memory for access to non-cache pages. The cache hit that occurs in state (c) always indicates a miss (no hit).

キヤツシユしないページからの読出しのケースは、キヤ
ツシユがメモリデータで更新されない点が、キヤツシユ
できるページからの読出しに対するキヤツシユミスのケ
ースとは異なる。実現は、キヤツシユミスのケースと同
じブロツク読出しメモリバスサイクルを用いる(下のメ
モリデータバスタイミング参照)。実アドレス一致ラツ
チ(フリツプフロツプ55)はこのケースに対しては何の
意味も持たない。
The case of reading from a non-cacheable page differs from the case of cache miss to a read from a cacheable page in that the cache is not updated with memory data. The implementation uses the same block read memory bus cycle as the cache-miss case (see memory data bus timing below). The real address match latch (flip-flop 55) has no meaning for this case.

第11a図乃至第11c図に示すメモリデータバスタイミング
はブロツク読出しサイクルと、書戻しサイクルと、キヤ
ツシユしないページへの書込みバスサイクルとの各タイ
ミングをそれぞれ示すものである。キヤツシユブロツク
の寸法は128ビツトであるから、各キヤツシユブロツク
更新は2回のデータ転送を要する。前記のように、CPU1
1によりアドレスされるデータを含む64ビツトは、ブロ
ツク読出しバスサイクルの初めの転送で常に戻される。
「Memory Busy」制御信号は、前の書戻しサイクルを終
ることができるまで次のキヤツシユミスサイクルのスタ
ートを禁止するために用いられている間アクテイブであ
る。
The memory data bus timings shown in FIGS. 11a to 11c show the timings of the block read cycle, the write back cycle, and the write bus cycle to the uncached page, respectively. Since the size of the cache block is 128 bits, each cache update requires two data transfers. As mentioned above, CPU1
The 64 bits containing the data addressed by 1 are always returned on the first transfer of a block read bus cycle.
The "Memory Busy" control signal is active while it is used to inhibit the start of the next cache miss cycle until the previous writeback cycle can be completed.

キヤツシユしないページバスサイクルへの書込みにおい
ては、サイクルのアドレス転送段階中に送られた8ビツ
トバイトマークフイールドが、データの8バイトのう
ち、データ段階中に、どれがメモリ31において更新され
るかを定める。
When writing to a page bus cycle that is not cached, the 8-bit byte mark field sent during the address transfer stage of the cycle indicates which of the 8 bytes of data is updated in the memory 31 during the data stage. Establish.

以上説明したハードウエアに加えて、エイリアスドレツ
シングをサポートするために、下記の2つの基本的なや
り方でオペレーテイングシステムの核を修正せねばなら
ない。
In addition to the hardware described above, in order to support aliased dressing, one must modify the core of the operating system in two basic ways:

1)ユーザーエイリアスアドレスを発生するオペレーテ
イングシステムユーテイリテイは、エイリアスアドレス
の下位(N+M)アドレスビツトが、最少限、一致せね
ばならないことを求める規則に合致することを保護する
ために修正せねばならない。
1) The operating system utility that generates the user alias address must be modified to protect that the lower (N + M) address bits of the alias address meet a rule that, at a minimum, must match. I won't.

2)下位(N+M)ビツトの一致を求める規則に合致さ
せることができないオペレーテイングシステム内のエイ
リアスアドレスの例を、「キヤツシユしない」ページへ
割当てねばならない。
2) An example of an alias address in the operating system that cannot match the rule for matching lower (N + M) bits must be assigned to the "no cache" page.

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

第1図は書戻しキヤツシユを有する仮想アドレスを利用
するワークステーシヨンの主な部品を示すブロツク図、
第2a図はキヤツシユ「ヒツト」ロジツクの略図、第2b図
はキヤツシユ保護の侵害を検出する回路の概略ブロツク
図、第2c図はMMU保護の侵害を検出する回路の概略ブロ
ツク図、第3図は本発明のエイリアス検出ロジツクによ
り利用されるアドレス路を示す詳細なブロツク図、第4a
図および第4b図は仮想アドレス書戻しキヤツシユのアド
レツシングに関連するある制御の状態マシン実現の流れ
図、第5図は本発明のエイリアス検出ロジツクにより利
用されるデータ路を示す詳細なブロツク図、第6a図と6b
図は仮想アドレス書戻しキヤツシユとの間のデータ転送
に関連するある制御の状態マシン実現の流れ図(状態
(a)〜(o))、第7a図は実アドレス一致が存在する
時のデータ路を実現するための状態マシンの流れ図(状
態(q)〜(u))、第7b図はCPU書込みバスサイクル
中に実アドレス一致が存在しない時のデータ路を実現す
るための状態マシンの流れ図(状態(q)(y))、第
7c図はCPU読出しバスサイクル中に実アドレス一致が存
在しない時のデータ路を実現するための状態マシンの流
れ図(状態(q)〜(y))、第7d図はMMUがキヤツシ
ユページをしない時にCPU書込みバスサイクル中のデー
タ路を実現するための状態マシンの流れ図、第8図はメ
モリへの書戻しバスサイクルを制御する状態マシン実現
の流れ図、第9a図はMMUがキヤツシユできるページを示
す時にCPU書込みバスサイクルのための最良のケースに
対するタイミング図、第9b図はMMUがキヤツシユしない
ページを示す時にCPU書込みバスサイクルの最良のケー
スに対するタイミング図、第10a図はMMUがキヤツシユで
きるページを示す時にCPU書込みバスサイクルのための
最良のケースに対するタイミング図、第10b図はMMUがキ
ヤツシユしないページを示す時にCPU書込みバスサイク
ルの最良のケースに対するタイミング図、第11a図はブ
ロツク読出しサイクルを実現するメモリバスサイクルの
タイミング図、第11b図は書戻しサイクルを実現するメ
モリバスサイクルのタイミング図、第11c図はキヤツシ
ユしないページへの書込みを実行するメモリバスサイク
ルのタイミング図である。 11……中央処理装置、19……キヤツシユデータアレイ、
23……キヤツシユタグアレイ、25……キヤツシユヒツト
比較器、27……メモリ管理ユニツト(MMU)、31……主
メモリ、32……コンテキスト識別レジスタ、33……キヤ
ツシユフラツシユロジツク、35……直接仮想メモリアク
セス(DVMA)ロジツク、37,45……マルチプレクサ、39
……書戻しバツフア、40……ワークステーシヨン制御ロ
ジツク、47,49……エイリアス検出制御ロジツク、51…
…実アドレスレジスタ、52,54……仮想アドレスレジス
タ、60……比較器、61……クロツクデータレジスタ。
FIG. 1 is a block diagram showing the main parts of a workstation using a virtual address with a write-back cache,
Fig. 2a is a schematic diagram of the cache "hit" logic, Fig. 2b is a schematic block diagram of the circuit for detecting the violation of the cache protection, Fig. 2c is a schematic block diagram of the circuit for detecting the violation of the MMU protection, and Fig. 3 is 4a, a detailed block diagram showing the address paths utilized by the alias detection logic of the present invention.
Figures 4a and 4b are a flow chart of the implementation of a state machine of some control related to the addressing of the virtual address writeback cache, and Figure 5 is a detailed block diagram showing the data paths utilized by the alias detection logic of the present invention. Figure and 6b
The figure is a flow chart (states (a) to (o)) of the state machine realization of some control related to the data transfer to and from the virtual address writeback cache, and Figure 7a shows the data path when a real address match exists. Flowchart of state machine for realization (states (q) to (u)), FIG. 7b shows flow chart of state machine for realization of data path when real address match does not exist during CPU write bus cycle (state (Q) (y)), the
Figure 7c is a flow chart of the state machine (states (q) to (y)) for implementing the data path when there is no real address match during the CPU read bus cycle, and Figure 7d is the MMU does not cache pages. Sometimes a state machine flow diagram for implementing a data path during a CPU write bus cycle, Figure 8 a state machine implementation flow diagram for controlling a write-back bus cycle to memory, and Figure 9a shows the pages that the MMU can cache. Sometimes a timing diagram for the best case for a CPU write bus cycle, Figure 9b shows a page where the MMU does not cache, and a timing diagram for the best case for a CPU write bus cycle, Figure 10a shows a page where the MMU can cache. Sometimes a timing diagram for the best case for a CPU write bus cycle, Figure 10b shows a CPU write when the MMU shows pages that are not cached Figure 11a shows the timing diagram of the memory bus cycle that realizes the block read cycle, Fig. 11b shows the timing diagram of the memory bus cycle that realizes the write-back cycle, and Fig. 11c does not cache. FIG. 9 is a timing diagram of a memory bus cycle for performing a page write. 11: Central processing unit, 19: Cash data array,
23 …… Cache tag array, 25 …… Cache hit comparator, 27 …… Memory management unit (MMU), 31 …… Main memory, 32 …… Context identification register, 33 …… Cache flash logic, 35… … Direct virtual memory access (DVMA) logic, 37,45 …… Multiplexer, 39
...... Write-back buffer, 40 …… Work station control logic, 47,49 …… Alias detection control logic, 51 ・ ・ ・
… Real address register, 52,54 …… Virtual address register, 60 …… Comparator, 61 …… Clock data register.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジヨセフ・モラン アメリカ合衆国95054カリフオルニア州・ サンタ クララ・ワイルドウツド ウエ イ・544 (72)発明者 ウイリアム・シヤノン アメリカ合衆国94022カリフオルニア州・ ロス アルトス・トリアノン ウエイ・ 261 (72)発明者 レイ・チエン アメリカ合衆国95014カリフオルニア州・ クーパーチノ・サマーセツト コート・ 10402 (56)参考文献 特開 昭63−53889(JP,A) 特開 昭54−148329(JP,A) ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Gioseph Moran United States 95054 Santa Clara Wildwood Way 544 California (72) Inventor William Canon United States 94022 Los Altos Trianon Way 261 California (72) ) Inventor Ray Chien USA 95014 California State Cooperchino Summerset Court 10402 (56) Reference JP-A-63-53889 (JP, A) JP-A-54-148329 (JP, A)

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】オペレーティングシステムが、実行中の少
なくとも1つのプロセスのために資源を割当て且つエイ
リアスアドレスを使用しており、 前記プロセスおよび前記オペレーティングシステムを実
行する中央処理装置(CPU)と、 この中央処理装置(CPU)に結合されていて、キャッシ
ュされている仮想メモリブロックを特定する、仮想アド
レス・キャッシュタグアレイ(CTA)と、 前記中央処理装置(CPU)に結合されていて、前記の特
定された仮想メモリブロックをキャッシュする、仮想ア
ドレス・書戻しキャッシュデータアレイ(CDA)と、 前記中央処理装置(CPU)に結合されていて、仮想アド
レスを物理アドレスに翻訳するメモリ管理ユニット(MM
U)と、 前記中央処理装置(CPU)に結合されていて、現在常駐
状態の仮想メモリページを格納する主メモリ(MM)と、 前記中央処理装置(CPU)および前記キャッシュタグア
レイ(CTA)に結合されていて、キャッシュヒットを検
出する、キャッシュヒット検出器(CHD)と、 前記中央処理装置(CPU),前記キャッシュタグアレイ
(CTA),前記キャッシュデータアレイ(CDA),前記メ
モリ管理ユニット(MMU),前記主メモリ(MM),前記
キャッシュヒット検出器(CHD)に結合されてそれらの
動作を制御する、処理器制御ロジックと を備えるコンピュータ装置において、 a) 第1の仮想アドレスと第2の仮想アドレスとが、
相互にエイリアスであるが、下記する所定の仮想アドレ
ス・セットには属していない場合には、前記オペレーテ
ィングシステムは、前記第1の仮想アドレスと第2の仮
想アドレスを、それらの下位のn+mビット部分につい
て等しくさせ、これにより、第1の仮想メモリ位置と第
2の仮想メモリ位置のキャッシュ動作に、1つのキャッ
シュ位置が使用され、 前記第1の仮想アドレスと第2の仮想アドレスとは、第
1の仮想メモリページとそのメモリページ内の第1の仮
想メモリ位置との特定、および、第2の仮想メモリペー
ジとそのメモリページ内の第2の仮想メモリ位置との特
定をそれぞれ行う、第1および第2の複数の仮想アドレ
スビットから成り、 前記第1の仮想アドレスと第2の仮想アドレスとは、前
記主メモリ(MM)のメモリページとそのメモリページ内
のメモリ位置とを特定する複数の物理アドレスビットで
構成される同一の物理アドレスに、翻訳されるものであ
り、 前記所定の仮想アドレス・セットは、前記オペレーティ
ングシステムのアドレス空間の仮想アドレスの所定のサ
ブセットを含み、その所定のサブセットに含まれる各仮
想アドレスは、その所定のサブセット中の他の何れかの
仮想アドレスとエイリアスであり、 前記キャッシュタグアレイ(CTA)は、キャッシュされ
ているn個の仮想メモリブロックを特定するn個のキャ
ッシュ タグ エントリイを有し、前記キャッシュデー
タアレイ(CDA)は、m個のキャッシュ位置がそれぞれ
あるn個のキャッシュブロックを有して前記n個の仮想
メモリブロックを有しており、 b) 仮想メモリページが、前記所定の仮想アドレス・
セットの1つの仮想アドレスにより特定される少なくと
も1つの仮想アドレス位置を、含んでいる場合には、前
記メモリ管理ユニット(MMU)は、上記の仮想メモリペ
ージを、キャッシュしないページとしてマークを付し、
もって、マークされた仮想メモリページの仮想メモリブ
ロックのキャッシュ動作を禁止し、そのマークされた仮
想メモリページの全てのデータアクセスが、前記キャッ
シュデータアレイ(CDA)をバイパスさせて前記主メモ
リ(MM)との間で直接に行われる ことを特徴とするコンピュータ装置。
1. A central processing unit (CPU) executing an operating system, allocating resources and using alias addresses for at least one running process, and a central processing unit (CPU) for executing the process and the operating system. A virtual address cache tag array (CTA) coupled to a processing unit (CPU) for identifying cached virtual memory blocks, and coupled to the central processing unit (CPU) for identification A virtual address / writeback cache data array (CDA) that caches a virtual memory block, and a memory management unit (MM) that is coupled to the central processing unit (CPU) and translates a virtual address into a physical address.
U), a main memory (MM) that is coupled to the central processing unit (CPU), and stores a currently resident virtual memory page, and the central processing unit (CPU) and the cache tag array (CTA). A cache hit detector (CHD) that is coupled to detect a cache hit, the central processing unit (CPU), the cache tag array (CTA), the cache data array (CDA), the memory management unit (MMU). ), The main memory (MM), and the processor control logic coupled to the cache hit detector (CHD) to control their operations: a) a first virtual address and a second virtual address; Virtual address is
If they are aliases to each other, but do not belong to a given set of virtual addresses as described below, the operating system assigns the first virtual address and the second virtual address to their lower n + m bit parts. , So that one cache location is used for cache operations of the first virtual memory location and the second virtual memory location, and the first virtual address and the second virtual address are Identifying a second virtual memory page and a second virtual memory location within the memory page, respectively. The second virtual address comprises a second plurality of virtual address bits, and the first virtual address and the second virtual address are memory pages of the main memory (MM). And a predetermined virtual address set is translated into the same physical address composed of a plurality of physical address bits that identify the memory location within the memory page and the predetermined virtual address set. Of each virtual address in the given subset is an alias with any other virtual address in the given subset, and the cache tag array (CTA) is a cache The cache data array (CDA) has n cache blocks each having m cache positions, and the cache data array (CDA) has n cache blocks that specify n virtual memory blocks. B) virtual memory pages, wherein Virtual address
The memory management unit (MMU) marks the virtual memory page as a non-cacheable page if it includes at least one virtual address location specified by one virtual address of the set;
Therefore, the cache operation of the virtual memory block of the marked virtual memory page is prohibited, and all data accesses of the marked virtual memory page bypass the cache data array (CDA) and the main memory (MM). A computer device characterized in that it is performed directly between and.
【請求項2】特許請求の範囲第1項記載のコンピュータ
装置において、前記メモリ管理ユニット(MMU)は、前
記所定の仮想アドレス・セットの1つの仮想アドレスに
より特定される少なくとも1つの仮想アドレス位置を含
む前記仮想メモリページに、その仮想メモリページ用の
ページ記述子内にビットをセットすることによってマー
クを付し、対応の仮想メモリページを記述する仮想メモ
リ用ページ記述子は前記メモリ管理ユニット(MMU)に
複数含まれている、ことを特徴とするコンピュータ装
置。
2. The computer apparatus according to claim 1, wherein the memory management unit (MMU) is configured to identify at least one virtual address position specified by one virtual address of the predetermined virtual address set. The containing virtual memory page is marked by setting a bit in the page descriptor for the virtual memory page, and the virtual memory page descriptor describing the corresponding virtual memory page is the memory management unit (MMU). ) Is included in a plurality of computer devices.
【請求項3】オペレーティングシステムが、実行中の少
なくとも1つのプロセスのために資源を割当て且つエイ
リアスアドレスを使用しており、 前記プロセスおよび前記オペレーティングシステムを実
行する中央処理装置(CPU)と、 この中央処理装置(CPU)に結合されていて、キャッシ
ュされている仮想メモリブロックを特定する、仮想アド
レス・キャッシュタグアレイ(CTA)と、 前記中央処理装置(CPU)に結合されていて、前記の特
定された仮想メモリブロックをキャッシュする、仮想ア
ドレス・書戻しキャッシュデータアレイ(CDA)と、 前記中央処理装置(CPU)に結合されていて、仮想アド
レスを物理アドレスに翻訳するメモリ管理ユット(MM
U)と、 前記中央処理装置(CPU)に結合されていて、現在常駐
状態の仮想メモリページを格納する主メモリ(MM)と、 前記中央処理装置(CPU)および前記キャッシュタグア
レイ(CTA)に結合されていて、キャッシュヒットを検
出する、キャッシュヒット検出器(CHD)と、 前記中央処理装置(CPU),前記キャッシュタグアレイ
(CTA),前記キャッシュデータアレイ(CDA),前記メ
モリ管理ユニット(MMU),前記主メモリ(MM),前記
キャッシュヒット検出器(CHD)に結合されてそれらの
動作を制御する、処理器制御ロジックと を備えるコンピュータ装置において、前記キャッシュデ
ータアレイ(CDA)のデータの不一致を検出して修正す
る方法であって、 a) 第1の仮想アドレスと第2の仮想アドレスとが、
相互にエイリアスであるが、下記する所定の仮想アドレ
ス・セットには属していない場合には、前記第1の仮想
アドレスと第2の仮想アドレスを、それらの下位のn+
mビット部分が等しくなるよう変更するステップを備
え、これにより、第1の仮想メモリ位置と第2の仮想メ
モリ位置のキャッシュ動作に、1つのキャッシュ位置が
使用され、 前記第1の仮想アドレスと第2の仮想アドレスとは、第
1の仮想メモリページとそのメモリページ内の第1の仮
想メモリ位置との特定、および、第2の仮想メモリペー
ジとそのメモリページ内の第2の仮想メモリ位置との特
定をそれぞれ行う、第1および第2の複数の仮想アドレ
スビットから成り、 前記第1の仮想アドレスと第2の仮想アドレスとは、前
記主メモリ(MM)のメモリページとそのメモリページ内
のメモリ位置とを特定する複数の物理アドレスビットで
構成される同一の物理アドレスに、翻訳されるものであ
り、 前記所定の仮想アドレス・セットは、前記オペレーティ
ングシステムのアドレス空間の仮想アドレスの所定のサ
ブセットを含み、その所定のサブセットに含まれる各仮
想アドレスは、その所定のサブセット中の他の何れかの
仮想アドレスとエイリアスであり、 前記キャッシュグクアレイ(CTA)は、キャッシュされ
ているn個の仮想メモリブロックを特定するn個のキャ
ッシュ タグ エントリイを有し、前記キャッシュデー
タアレイ(CDA)は、m個のキャッシュ位置がそれぞれ
あるn個のキャッシュブロックを有して前記n個の仮想
メモリブロックを有しており、 b) 仮想メモリページが、前記所定の仮想アドレス・
セットの1つの仮想アドレスにより特定される少なくと
も1つの仮想アドレス位置を、含んでいる場合には、上
記の仮想メモリページを、キャッシュしないページとし
てマークを付すマキーング・ステップを備え、もって、
マークされた仮想メモリページの仮想メモリブロックの
キャッシュ動作を禁止し、そのマークされた仮想メモリ
ページの全てのデータアクセスが、前記キャッシュデー
タアレイ(CDA)をバイパスさせて前記主メモリ(MM)
との間で直接に行われる ことを特徴とする、コンピュータ装置においてキャッシ
ュデータアレイ内のデータの不一致を検出して修正する
方法。
3. A central processing unit (CPU) executing resources for an at least one process running and using an alias address, the central processing unit (CPU) executing the process and the operating system, A virtual address cache tag array (CTA) coupled to a processing unit (CPU) for identifying cached virtual memory blocks, and coupled to the central processing unit (CPU) for identification A virtual address / writeback cache data array (CDA) for caching virtual memory blocks, and a memory management unit (MM) that is coupled to the central processing unit (CPU) and translates virtual addresses into physical addresses.
U), a main memory (MM) that is coupled to the central processing unit (CPU), and stores a currently resident virtual memory page, and the central processing unit (CPU) and the cache tag array (CTA). A cache hit detector (CHD) that is coupled to detect a cache hit, the central processing unit (CPU), the cache tag array (CTA), the cache data array (CDA), the memory management unit (MMU). ), The main memory (MM), and a processor control logic coupled to the cache hit detector (CHD) to control their operation, and a data mismatch of the cache data array (CDA). A method of detecting and correcting the following: a) the first virtual address and the second virtual address are
If they are aliases to each other, but do not belong to the predetermined virtual address set described below, the first virtual address and the second virtual address are assigned to their lower n +
modifying the m-bit portions to be equal so that one cache location is used for cache operations of the first virtual memory location and the second virtual memory location, and the first virtual address and the second virtual memory location are used. The second virtual address is the identification of the first virtual memory page and the first virtual memory location within the memory page, and the second virtual memory page and the second virtual memory location within the memory page. Each of the first virtual address and the second virtual address, and the first virtual address and the second virtual address are the memory page of the main memory (MM) and the memory page in the memory page. Is translated into the same physical address composed of a plurality of physical address bits identifying a memory location, and the predetermined virtual address set is A predetermined subset of virtual addresses in the operating system's address space, each virtual address in the predetermined subset is an alias with any other virtual address in the predetermined subset; (CTA) has n cache tag entries that identify n cached virtual memory blocks, and the cache data array (CDA) has n cache blocks each having m cache positions. With n virtual memory blocks, and b) the virtual memory page has the predetermined virtual address
Comprising a make-up step of marking said virtual memory page as a non-cacheable page if it contains at least one virtual address location identified by one virtual address of the set, and
The cache operation of the virtual memory block of the marked virtual memory page is prohibited, and all data accesses of the marked virtual memory page bypass the cache data array (CDA) and the main memory (MM).
A method for detecting and correcting a data discrepancy in a cache data array in a computer device, which is characterized by being directly performed between the computer device and the computer.
【請求項4】特許請求の範囲第3項記載の方法におい
て、前記マーキング・ステップは、前記メモリ管理ユニ
ット(MMU)内の前記仮想メモリページ用のページ記述
子内にビットをセットすることを含み、対応の仮想メモ
リページを記述する仮想メモリ用ページ記述子は前記メ
モリ管理ユニット(MMU)に複数含まれていることをこ
とを特徴とする、コンピュータ装置においてキャッシュ
データアレイ内のデータの不一致を検出して修正する方
法。
4. The method according to claim 3, wherein the marking step comprises setting a bit in a page descriptor for the virtual memory page in the memory management unit (MMU). A plurality of virtual memory page descriptors describing corresponding virtual memory pages are included in the memory management unit (MMU), and a data mismatch in the cache data array in the computer device is detected. And how to fix.
JP63247551A 1987-10-02 1988-10-03 Computer device and method for detecting and correcting data inconsistency in a cache data array in a computer device Expired - Fee Related JPH071489B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10463587A 1987-10-02 1987-10-02
US104.635 1987-10-02

Publications (2)

Publication Number Publication Date
JPH01108651A JPH01108651A (en) 1989-04-25
JPH071489B2 true JPH071489B2 (en) 1995-01-11

Family

ID=22301527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63247551A Expired - Fee Related JPH071489B2 (en) 1987-10-02 1988-10-03 Computer device and method for detecting and correcting data inconsistency in a cache data array in a computer device

Country Status (7)

Country Link
JP (1) JPH071489B2 (en)
AU (1) AU609519B2 (en)
CA (1) CA1301354C (en)
DE (1) DE3832758C2 (en)
FR (1) FR2621408A1 (en)
GB (1) GB2210479B (en)
HK (1) HK95493A (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276798A (en) * 1990-09-14 1994-01-04 Hughes Aircraft Company Multifunction high performance graphics rendering processor
US5813046A (en) * 1993-11-09 1998-09-22 GMD--Forschungszentrum Informationstechnik GmbH Virtually indexable cache memory supporting synonyms
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
US6189074B1 (en) * 1997-03-19 2001-02-13 Advanced Micro Devices, Inc. Mechanism for storing system level attributes in a translation lookaside buffer
US6446189B1 (en) 1999-06-01 2002-09-03 Advanced Micro Devices, Inc. Computer system including a novel address translation mechanism
US6510508B1 (en) 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6665788B1 (en) 2001-07-13 2003-12-16 Advanced Micro Devices, Inc. Reducing latency for a relocation cache lookup and address mapping in a distributed memory system
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
US11853231B2 (en) 2021-06-24 2023-12-26 Ati Technologies Ulc Transmission of address translation type packets

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54148329A (en) * 1978-05-15 1979-11-20 Toshiba Corp Buffer memory control system and information processor containing buffer memory
JPS595482A (en) * 1982-06-30 1984-01-12 Fujitsu Ltd Cache buffer controlling system
JPS62145341A (en) * 1985-12-20 1987-06-29 Fujitsu Ltd Cache memory system
EP0282213A3 (en) * 1987-03-09 1991-04-24 AT&T Corp. Concurrent context memory management unit

Also Published As

Publication number Publication date
GB2210479A (en) 1989-06-07
AU609519B2 (en) 1991-05-02
DE3832758C2 (en) 1996-05-30
JPH01108651A (en) 1989-04-25
FR2621408A1 (en) 1989-04-07
HK95493A (en) 1993-09-24
GB8819017D0 (en) 1988-09-14
DE3832758A1 (en) 1989-04-13
GB2210479B (en) 1992-06-17
FR2621408B1 (en) 1994-04-22
AU2242288A (en) 1989-04-06
CA1301354C (en) 1992-05-19

Similar Documents

Publication Publication Date Title
US5119290A (en) Alias address support
JP2684196B2 (en) Workstation
CA2414438C (en) System and method for semaphore and atomic operation management in a multiprocessor
US7360054B2 (en) Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems
US6742104B2 (en) Master/slave processing system with shared translation lookaside buffer
US7073044B2 (en) Method and apparatus for sharing TLB entries
US7197585B2 (en) Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
US5463739A (en) Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
US6907494B2 (en) Method and system of managing virtualized physical memory in a memory controller and processor system
US6904490B2 (en) Method and system of managing virtualized physical memory in a multi-processor system
WO1996012227A1 (en) An address queue capable of tracking memory dependencies
EP0766177A1 (en) Information handling system including effective address translation for one or more auxiliary processors
EP0726523A2 (en) Method for maintaining memory coherency in a computer system having a cache
US6742103B2 (en) Processing system with shared translation lookaside buffer
US7552254B1 (en) Associating address space identifiers with active contexts
US7552255B1 (en) Dynamically partitioning pipeline resources
US20020156989A1 (en) Method for sharing a translation lookaside buffer between CPUs
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
US6647468B1 (en) Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
JPH071489B2 (en) Computer device and method for detecting and correcting data inconsistency in a cache data array in a computer device
JP2000339221A (en) System and method for invalidating entry of conversion device
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation
JPS6237752A (en) Multiple bus system possessing microprocessor having separate instruction, data interface and cash
EP1262875A1 (en) Master/slave processing system with shared translation lookaside buffer

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees