JP3116215B2 - How to control double directory virtual cache - Google Patents
How to control double directory virtual cacheInfo
- Publication number
- JP3116215B2 JP3116215B2 JP08342315A JP34231596A JP3116215B2 JP 3116215 B2 JP3116215 B2 JP 3116215B2 JP 08342315 A JP08342315 A JP 08342315A JP 34231596 A JP34231596 A JP 34231596A JP 3116215 B2 JP3116215 B2 JP 3116215B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- tag
- virtual
- entry
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
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
【0001】[0001]
【発明の属する技術分野】本発明はアドレス変換動作を
行なうことなく、仮想アドレスを使用して直接アクセス
することを可能にした二重ディレクトリ−仮想キャッシ
ュの制御方法に関する。The present invention relates without performing address conversion operation, dual directory to allow direct access using a virtual address - relates to the control method of the virtual cache.
【0002】[0002]
【従来の技術】一般に、マイクロプロセッサの遂行能力
を向上させる手段としてキャッシュシステムが使用され
ている。特に仮想アドレスを物理的アドレスに変換して
変換された物理的アドレスを使用してキャッシュをアク
セスすることに要求される時間を減少させることにあっ
て仮想キャッシュの重要性が漸次増加されている。この
ような仮想キャッシュは高性能システム、特に、高性能
マイクロプロセッサで内部貯蔵装置として使用されるこ
とができる。2. Description of the Related Art Generally, a cache system is used as a means for improving the performance of a microprocessor. In particular, the importance of virtual caches has been gradually increased in translating virtual addresses into physical addresses and reducing the time required to access the cache using the translated physical addresses. Such a virtual cache can be used as an internal storage in high performance systems, especially high performance microprocessors.
【0003】一般に、キャッシュはマイクロプロセッサ
の性能を向上させ、特に、データ貯蔵装置の効率を増加
させるために使用される仮想キャッシュとして、この仮
想アドレスは内部で使用される反面外部メモリをアクセ
スするためには物理的アドレスに変換されなければなら
ない。また、変換された物理的アドレスを使用して内部
及び外部キャッシュがアクセスされられる。Generally, a cache is used as a virtual cache used to improve the performance of a microprocessor and, in particular, to increase the efficiency of a data storage device. This virtual address is used internally but accesses an external memory. Must be translated to a physical address. Also, the internal and external caches are accessed using the translated physical addresses.
【0004】一般に、外部キャッシュは物理的アドレス
を通じてアクセスされるようになっている。しかし、物
理的アドレスを使用して内部キャッシュをアクセスしな
ければならない場合、アドレス変換動作が遂行されなけ
ればならないがこれは結局アクセス時間を増加させるこ
とになる。Generally, an external cache is accessed through a physical address. However, if the internal cache needs to be accessed using a physical address, an address translation operation must be performed, which increases the access time.
【0005】このような問題点を解決するために仮想ア
ドレスを使用して直接内部キャッシュをアクセスできる
仮想キャッシュが使用されている。このような仮想キャ
ッシュにあって、内部データ同一性(consiste
ncy)が保障されなければならないし、内部キャッシ
ュは外部キャッシュまたメモリの変化に従って外側から
監視しなければならない。In order to solve such a problem, a virtual cache that can directly access an internal cache using a virtual address is used. In such a virtual cache, the internal data identity (consistent)
ncy) must be guaranteed and the internal cache must be monitored from the outside according to changes in the external cache or memory.
【0006】図1に従来のマイクロプロセッサシステム
の構成図が図示されている。図面のように従来のマイク
ロプロセッサシステムは性能向上のために内部キャッシ
ュ(1)及び外部キャッシュ(2)をもつ2−レベルキ
ャッシュシステムを使用している。外部キャッシュ
(2)が使用される場合、外部メモリは相対的に高容
量、ローコストであるが内部キャッシュ(1)に比べ長
いアクセス時間をもつことになる。内部キャッシュ
(1)が使用される場合、内部メモリは高価であるがマ
イクロプロセッサの高速動作を可能にする高速動作を遂
行する。FIG. 1 shows a configuration diagram of a conventional microprocessor system. As shown, the conventional microprocessor system uses a two-level cache system having an internal cache (1) and an external cache (2) to improve performance. When the external cache (2) is used, the external memory has a relatively high capacity and low cost, but has a longer access time than the internal cache (1). When the internal cache (1) is used, the internal memory is expensive but performs high-speed operations that enable high-speed operation of the microprocessor.
【0007】図2は図1のプロセッサを使用したマルチ
プロセッサの一例を図示している。図面のように、マル
チプロセッサシステムはバスマスターの他のプロセッサ
の動作もまた考慮しなければならない。これを遂行する
ためにマルチプロセッサシステムは外部バス上のモニタ
リング動作を要求するがこれをバススヌーピング(bu
ssnooping)または簡単にスヌーピングと称す
る。このスヌーピングはマルチプロセッサシステムでデ
ータ同一性にあってとても重要である。FIG. 2 shows an example of a multiprocessor using the processor of FIG. As shown, the multiprocessor system must also consider the operation of the other processors of the bus master. To accomplish this, the multiprocessor system requires a monitoring operation on an external bus, which is referred to as bus snooping (bu).
ssnooping or simply snooping. This snooping is very important for data identity in multiprocessor systems.
【0008】図3は内部キャッシュのような仮想キャッ
シュを使用するプロセッサで仮想アドレス及び物理的ア
ドレスを使用する仮想キャッシュアクセスの概念図であ
り、図面のように仮想メモリを使用することになる。仮
想アドレス(VA)を物理的アドレス(PA)に変換し
て変換された物理的アドレスを使用して内部キャッシュ
をアクセスする時間と比較する時、仮想アドレス(V
A)を使用して直接内部キャッシュをアクセスする時間
が著しく減少する。FIG. 3 is a conceptual diagram of a virtual cache access using a virtual address and a physical address in a processor using a virtual cache such as an internal cache, and a virtual memory is used as shown in the drawing. When the virtual address (VA) is converted into the physical address (PA) and compared with the time for accessing the internal cache using the converted physical address, the virtual address (V) is used.
The time to access the internal cache directly using A) is significantly reduced.
【0009】しかし、仮想アドレスを使用して直接内部
キャッシュをアクセスする場合、外部バス上では物理的
アドレス(PA)により動作がなることによりバススヌ−
ピングが発生してシステム内のアクセス時間が増加する
問題点が発生する。However, when the internal cache is directly accessed using the virtual address, the bus snooping is performed because the operation is performed by the physical address (PA) on the external bus.
Ping occurs, and the access time in the system increases.
【0010】[0010]
【発明が解決しようとする課題】上記問題点を解決する
ために案出した本発明は関連システムの物理的キャッシ
ュ使用を許容しながらマイクロアクセス時間を減少させ
てプロセッサの性能を増加させられる二重ディレクトリ
−仮想キャッシュの制御方法を提供することにその目的
がある。SUMMARY OF THE INVENTION In order to solve the above-mentioned problems, the present invention has been developed to reduce the micro access time and increase the performance of the processor while allowing the use of the physical cache of the related system. It is an object to provide a directory-virtual cache control method .
【0011】[0011]
【課題を解決するための手段】前記目的を達成するため
に、本発明の二重ディレクトリー仮想キャッシュの制御
方法は、バスモニタリングロジック回路を具備したマイ
クロプロセッサからの要請に応答して仮想アドレスによ
りキャッシュメモリをアクセスする方法において、上記
仮想アドレスに該当する仮想タグが第1メモリに貯蔵さ
れているかを検査してヒット信号又はミス信号を発生す
るステップ;前記ヒット信号が発生した場合、データを
貯蔵する第2メモリ内のキャッシュラインの状態を決定
するステップ;上記キャッシュラインの状態が有効の場
合、リード又はライト動作を遂行するステップ;上記キ
ャッシュラインの状態が無効の場合、仮想アドレスを物
理的アドレスに変換するステップ;上記変換するステッ
プで得られた物理的アドレスに該当する物理的タグが第
3メモリ内に貯蔵されているかを決定するステップ;上
記第3メモリ内に上記変換するステップで得られた物理
的アドレスに該当する物理的タグが存在すれば上記物理
的タグの状態情報を上記第1メモリに複写してリード又
はライト動作を遂行するステップ;上記第3メモリ内に
該当物理的アドレスが存在しない場合やミス信号が発生
される場合、上記第1メモリ内で代替されるエントリを
選択するステップ;上記第1メモリ内で代替されるエン
トリと相応するエントリが上記第3メモリ内に存在する
かを決定するステップ;及び上記第3メモリ内に上記代
替されるエントリと相応するエントリが存在すれば、外
部メモリから新たなキャッシュラインを読み込み、リー
ド又はライト動作するステップ;上記第3メモリ内に上
記代替されるエントリと相応するエントリが存在してい
なければ、代替される他のエントリを上記第3メモリで
再選択し、上記再選択したエントリにより上記第1メモ
リ内で代替される該当エントリを選択して外部メモリか
ら新たなキャッシュラインを読み込み、リード又はライ
ト動作を遂行するステップを包含してなることを特徴と
する。SUMMARY OF THE INVENTION To achieve the above object, a method for controlling a dual directory virtual cache according to the present invention is provided. The method for controlling a virtual cache includes a virtual address in response to a request from a microprocessor having a bus monitoring logic circuit. a method of accessing a catcher Sshumemori, step virtual tag corresponding to the virtual address to generate a hit signal or a miss signal by checking whether the stored in the first memory; if said hit signal is generated, stored data Determining the state of the cache line in the second memory to be performed; performing the read or write operation if the state of the cache line is valid; and changing the virtual address to the physical address if the state of the cache line is invalid Converting to; the physics obtained in the above converting step Determining whether a physical tag corresponding to the address is stored in the third memory; if there is a physical tag corresponding to the physical address obtained in the converting step in the third memory, Performing a read or write operation by copying state information of a physical tag to the first memory; if the corresponding physical address does not exist in the third memory or a miss signal is generated, the first Selecting a replacement entry in the memory; determining whether an entry corresponding to the replacement entry in the first memory exists in the third memory; and the replacement in the third memory. if there is an entry corresponding with the entries, read the new cache line from the external memory, read or write operation to step; on If an entry corresponding to the replacement entry does not exist in the third memory, another replacement entry is re-selected in the third memory, and the replacement is performed in the first memory by the re-selected entry. Selecting a corresponding entry, reading a new cache line from the external memory, and performing a read or write operation.
【0012】[0012]
【0013】[0013]
【0014】[0014]
【発明の実施の形態】以下、添付した図4乃至図6を参
照して本発明を詳細に説明すると次の通りである。先
に、図4は本発明による二重ディレクトリー仮想キャッ
シュの構成図である。図面のように、本発明による内部
キャッシュは大きく3個に区分されられる。即ち、本発
明による内部キャッシュは物理的タグメモリ(以下、P
−タグメモリという)(41)、仮想タグメモリ(以
下、V−タグメモリという)(42)及びデータメモリ
(43)で構成されている。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to FIGS. First, FIG. 4 is a configuration diagram of the dual directory virtual cache according to the present invention. As shown in the drawing, the internal cache according to the present invention is roughly divided into three. That is, the internal cache according to the present invention is a physical tag memory (hereinafter referred to as P
-A tag memory) (41), a virtual tag memory (hereinafter referred to as a V-tag memory) (42), and a data memory (43).
【0015】通常、CPUは仮想アドレスを使用してV
−タグメモリ(42)をアクセスして、バススヌーピン
グ動作を遂行するために、CPU内のバスモニタリング
ロジックは物理的アドレスを使用してP−タグメモリ
(41)をアクセスする。利用可能な実際データをもつ
メモリ(43)はV−タグメモリ(42)と並列に仮想
アドレスを通じてCPUによりアクセスされる。Normally, the CPU uses the virtual address to
-To access the tag memory (42) and perform the bus snooping operation, the bus monitoring logic in the CPU accesses the P-tag memory (41) using the physical address. The memory (43) with the available actual data is accessed by the CPU through virtual addresses in parallel with the V-tag memory (42).
【0016】バススヌ−ピングを担当するP-タグメモリ
(41)は内部キャッシュ内のアドレスとバス上のアドレ
スを可能な限り早く比較してデ−タをアクセスする。CP
Uニ迅速に応答するためにV-タグメモリ(42)はデ−タメ
モリ(43)と共にCPUによりアクセスされる。The P-tag memory (41) responsible for bus snooping accesses the data by comparing the address in the internal cache with the address on the bus as soon as possible. CP
In order to respond quickly, the V-tag memory (42) is accessed by the CPU together with the data memory (43).
【0017】P-タグメモリ(41) はデータメモリ(43)
内の各ラインについてのタグをもつ(キャッシュライン
はキャッシュとメモリ間で一度に伝送できるデ−タの大
きさを有し、タグはキャッシュデ−タがアドレスに該当
するか否かを示すデ−タであり、普通上位アドレスに該
当する。)各タグはデ−タメモリ(43)にあるデ−タと
唯一に対応可能するようにする情報をもっている。P-タ
グメモリ(41)はデ−タメモリ(43)についてのポイン
タ−(pointer)テ−ブルで構成されるからV-タグメモ
リ(42)とデ−タメモリ(43)とは同一な連関性(asso
ciativity)をもたなければならないという必要はな
い。The P-tag memory (41) is a data memory (43)
(A cache line has the size of data that can be transmitted between the cache and the memory at one time, and the tag indicates whether or not the cache data corresponds to an address). Each tag has information that can uniquely correspond to data in the data memory (43). Since the P-tag memory (41) is composed of a pointer table for the data memory (43), the V-tag memory (42) and the data memory (43) have the same association ( asso
It is not necessary to have ciativity).
【0018】キャッシュの各ラインについてのデータの
ツルーステート(true state)はP−タグメ
モリ(41)で維持される。V−タグメモリ(42)
も、又、各ラインについて若干の情報を維持する。しか
し、有効データがV−タグメモリ(42)では無効(i
nvalid)であると表示されることもできる。これ
は特定な事件、即ち文脈交換(taskswitch)
やページテーブルを変換させる事件が生じる場合V−タ
グ項目を無効にしなければならないからである。これは
仮想で物理的に住所マッピング(mapping)関係
が無効になることを意味しプロセッサがデータをアクセ
スする以前に検証過程を経なければならない。The true state of the data for each line of the cache is maintained in a P-tag memory (41). V-tag memory (42)
Also maintain some information for each line. However, if the valid data is invalid in the V-tag memory (42) (i
nvalid). This is a specific case, ie, taskswitch.
This is because the V-tag item must be invalidated when an event that causes the conversion of the page table or the page table occurs. This means that a virtual and physical address mapping relationship is invalidated, and the processor must go through a verification process before accessing data.
【0019】従って、V−タグメモリ(42)では2種
類のミスが発生することになるがその一つはデータが存
在しないことから発生する“no matchmis
s”で、他の一つはデータが有効であるが、仮想アドレ
スを新たにマッピングさせなければならない“無効ミス
(invalidmiss)”である。各々のタグメモ
リ(41及び42)は仮想アドレスを物理的アドレスと
連結させるポインター情報を持っている。Therefore, two kinds of mistakes occur in the V-tag memory (42), one of which is "no matchmis" which occurs due to the absence of data.
s ", the other is an" invalidmiss "in which the data is valid but the virtual address must be newly mapped. Each tag memory (41 and 42) stores the virtual address in the physical address. It has pointer information to be linked to the target address.
【0020】本発明によるCPUはV−タグメモリ(4
2)及びデータメモリ(43)にアクセスを要請する。
この時、無効ミスが発生すれば、仮想アドレスから物理
的アドレスへのアドレス変換が発生する。変換した物理
的アドレスはP−タグメモリ(41)に貯蔵される。デ
ータメモリ(43)内に該当データがあると判明されれ
ば、P−タグメモリ(41)内の状態情報はV−タグメ
モリ(42)内の特定位置に複写される。上記のように
することにより、無効ミスがヒット(hit)のように
処理される。The CPU according to the present invention comprises a V-tag memory (4
2) and request access to the data memory (43).
At this time, if an invalid miss occurs, address conversion from a virtual address to a physical address occurs. The converted physical address is stored in the P-tag memory (41). If it is determined that the corresponding data exists in the data memory (43), the status information in the P-tag memory (41) is copied to a specific position in the V-tag memory (42). In this way, an invalid miss is processed like a hit.
【0021】ノーマッチが発生すると、物理的アドレス
がアドレス変換により得られ、cpuはそれが、P−タ
グメモリ(41)にあるか否かを検査する。P−タグメ
モリ(41)内に物理的アドレスが存在していなければ
cpuは、新しい項目を選択し、前の項目を新しく選択
した項目で置換し、外部メモリから新しいデータをコー
ルした後タグメモリ(41)及び(42)を更新する。When a no match occurs, the physical address is obtained by address translation and cpu checks whether it is in the P-tag memory (41). If no physical address is present in the P-tag memory (41), the cpu selects a new item, replaces the previous item with the newly selected item, calls the new data from external memory, and then calls the tag memory. (41) and (42) are updated.
【0022】スヌーピング(モニタリング)ロジック回
路はバス上のすべてのアドレスをP−タグメモリ(4
1)と比較してP−タグメモリ(41)に該当するアド
レスがある場合、次のような多様な事件がスヌーピング
ロジックで発生できる。 1)データを無効にして、P−タグメモリ(41)及び
V−タグメモリ(42)内の項目を無効にする。The snooping (monitoring) logic circuit stores all addresses on the bus in the P-tag memory (4).
If there is a corresponding address in the P-tag memory 41 compared to 1), the following various events can occur in the snooping logic. 1) Invalidate the data and invalidate the items in the P-tag memory (41) and the V-tag memory (42).
【0023】2)データを外部に駆動しなければならな
い場合、P−タグメモリ(41)のポインターを使用し
てデータを外部に駆動して必要な場合キャッシュライン
の状態をその駆動と関連されるように変化させる。 3)外部バスのデータを読み込んだキャッシュラインの
状態を変化させながらデータメモリを更新する。2) When data must be driven externally, the data is driven externally using the pointer of the P-tag memory (41), and the state of the cache line is related to the driving when necessary. To change. 3) Update the data memory while changing the state of the cache line from which the data on the external bus has been read.
【0024】本発明による二重ディレクトリ仮想キャッ
シュを図5及び図6を通じて詳細に説明する。はじめ
に、図5はプロセッサの要請に応答して動作する本発明
の二重ディレクトリ仮想キャッシュを説明している。The dual directory virtual cache according to the present invention will be described in detail with reference to FIGS. First, FIG. 5 illustrates the dual directory virtual cache of the present invention that operates in response to a processor request.
【0025】cpuはV−タグメモリ(42)に仮想アドレ
スが貯蔵されているかを検査する。即ち仮想アドレスを
使用してヒット/ミスが検査される(ステップ(以下段
階という)51)。cpuからの要請に該当する仮想アド
レスがV−タグメモリに貯蔵されていれば、ヒット信号
が発生されて該当キャッシュラインの状態が検査される
(段階52)。キャッシュラインの状態が有効であれば、
従来のリード又はライト動作がcpuの要請により遂行
される(段階56乃至60)。キャッシュラインの状態が無
効であれば、仮想アドレスはTLB(translation look-asi
de buffer)により物理的アドレスに変換されて(段階5
3)、変換した物理的アドレスはP−タグメモリで検査
される(段階54)。P−タグメモリに該当する物理的タ
グが存在すれば、該当P−タグが表示する状態情報がV
−タグエントリに複写され(段階55)、上記のリード又
はライト動作が遂行される(段階56)。The cpu checks whether a virtual address is stored in the V-tag memory (42). That is, the hit / miss is checked using the virtual address (step (hereinafter referred to as “step”).
Floor)) 51) . If the virtual address corresponding to the request from the cpu is stored in the V-tag memory, a hit signal is generated and the state of the corresponding cache line is checked (step 52). If the state of the cache line is valid,
A conventional read or write operation is performed at the request of the cpu (steps 56 to 60). If the state of the cache line is invalid, the virtual address is TLB (translation look-asi
de buffer) to convert to a physical address (step 5
3) The translated physical address is checked in a P-tag memory (step 54). If the corresponding physical tag exists in the P-tag memory, the status information displayed by the corresponding P-tag is V
Copied to the tag entry (step 55) and the above read or write operation is performed (step 56).
【0026】P−タグメモリに該当する物理的タグが存
在しなかったり(段階54)、ミス信号が発生すれば
(段階51)、cpuはV−タグメモリで代替されるエ
ントリを選択し(段階61)、P−タグメモリ内に該当
エントリ(ポインターと関連された)が存在するかを決
定する(段階62)。P−タグメモリ内に該当エントリ
が存在すれば、cpuはキャッシュラインが無効である
か、キャッシュラインが変更されたかを検査する(段階
65)。キャッシュラインが無効でありすでに変更され
たことなら、cpuは該当キャッシュラインを外部メモ
リに記録(write)する(段階66)。If there is no corresponding physical tag in the P-tag memory (step 54) or a miss signal is generated (step 51), cpu selects an entry to be replaced in the V-tag memory (step 51). 61) determining whether there is a corresponding entry (associated with a pointer) in the P-tag memory (step 62); If the corresponding entry exists in the P-tag memory, cpu checks whether the cache line is invalid or the cache line has been changed (step 65). If the cache line is invalid and has been changed, cpu writes the corresponding cache line to the external memory (step 66).
【0027】P−タグメモリに該当エントリが存在して
いなければcpuは代替されるエントリをP−タグメモ
リで再び選択し(段階63)、選択したP−タグエント
リと相応するV−タグエントリをV−タグメモリで選択
して(段階64)、選択したV−タグエントリについて
上記段階(65及び66)を遂行する。このようにし
て、cpuは外部データを使用してV−タグ及びP−タ
グメモリを更新し、リード、ライト動作を遂行する(段
階56乃至60)。If the corresponding entry does not exist in the P-tag memory, cpu selects an alternative entry again in the P-tag memory (step 63), and selects a V-tag entry corresponding to the selected P-tag entry. A selection is made in the V-tag memory (step 64), and the above steps (65 and 66) are performed for the selected V-tag entry. Thus, the cpu updates the V-tag and P-tag memories using the external data, and performs the read and write operations (steps 56 to 60).
【0028】図6はバスモニタリングロジック回路の要
請に応答して動作する本発明の二重ディレクトリー仮想
キャッシュを説明している。図面のように、バスモニタ
リングロジック回路は入力された物理的アドレスに該当
するタグがP−タグメモリに存在するかを検査する(段
階81)。該当タグが存在するなら、バスモニタリング
ロジック回路はバス動作を検査する(段階82)。FIG. 6 illustrates a dual directory virtual cache of the present invention that operates in response to a request from a bus monitoring logic circuit. As shown, the bus monitoring logic circuit checks whether a tag corresponding to the input physical address exists in the P-tag memory (step 81). If the corresponding tag exists, the bus monitoring logic circuit checks the bus operation (step 82).
【0029】リード動作の場合、無効(invali
d;I),変更(modification:M)及び
共有(share:S)のようなキャッシュラインの状
態によりキャッシュメモリに貯蔵されたデータが外部バ
スに提供され、一般のモニタリングロジック回路により
キャッシュメモリのリード動作が遂行されるとき提供さ
れたキャッシュラインの状態が変えられる。即ち、要請
されたキャッシュラインの状態が変更(M)なら、デー
タは外部メモリに書かれて要請したキャッシュラインの
状態は共有(S)になる(段階85及び86)。In the case of a read operation, invalid (invalid
d; data stored in the cache memory are provided to an external bus according to the state of the cache line such as I), modification (M) and sharing (S: S), and the cache memory is read by a general monitoring logic circuit. When the operation is performed, the state of the provided cache line is changed. That is, if the requested state of the cache line is changed (M), the data is written to the external memory and the state of the requested cache line is shared (S) (steps 85 and 86).
【0030】ライト動作の場合、キャッシュメモリに貯
蔵されたデータは無効でなければならない。しかし、キ
ャッシュラインの状態によりライトバック(write
−back)動作が遂行されられる(段階83)。特
に、キャッシュラインの状態が変更(M)状態の場合、
該当データは外部メモリにライトバックされ、変更
(M)状態が更新された情報を持つからその状態は無効
(I)状態に変化になる。In the case of a write operation, data stored in the cache memory must be invalid. However, depending on the state of the cache line, write back (write
-Back) operation is performed (step 83). In particular, when the state of the cache line is changed (M),
The corresponding data is written back to the external memory, and since the changed (M) state has updated information, the state changes to the invalid (I) state.
【0031】更に、P−タグメモリ内のエントリが無効
状態になる時、V−タグメモリ内の該当エントリも又P
−タグポインターを用いて無効(I)状態に変更しなけ
ればならない。Further, when an entry in the P-tag memory becomes invalid, the corresponding entry in the V-tag memory also becomes P-tag.
It must be changed to the invalid (I) state using the tag pointer.
【0032】[0032]
【発明の効果】上記のような本発明は内部キャッシュメ
モリに物理的アドレスタグメモリをもつ仮想アドレスタ
グメモリを提供することによりアドレス変換の所要時間
を最小化してマイクロプロセッサの性能を向上させる。
本発明は例示的に説明されたが、添付の請求範囲のよう
に本発明の分野及び精神に逸脱なしに通常の知識を持つ
者により変更、付加及び代替が可能である。As described above, the present invention provides a virtual address tag memory having a physical address tag memory in the internal cache memory, thereby minimizing the time required for address translation and improving the performance of the microprocessor.
Although the present invention has been described by way of example, modifications, additions and substitutions may be made by those of ordinary skill without departing from the scope and spirit of the invention, as set forth in the appended claims.
【図面の簡単な説明】[Brief description of the drawings]
【図1】従来のマイクロプロセッサシステムの構成図で
ある。FIG. 1 is a configuration diagram of a conventional microprocessor system.
【図2】図1のプロセッサを使用したマルチプロセッサ
の一例を図示した図である。FIG. 2 is a diagram illustrating an example of a multiprocessor using the processor of FIG. 1;
【図3】内部キャッシュのような仮想キャッシュを使用
するプロセッサで仮想アドレス及び物理的アドレスを使
用する仮想キャッシュアクセスの概念図である。FIG. 3 is a conceptual diagram of a virtual cache access using a virtual address and a physical address in a processor using a virtual cache such as an internal cache.
【図4】本発明による二重ディレクトリー仮想キャッシ
ュの構成図である。FIG. 4 is a configuration diagram of a dual directory virtual cache according to the present invention;
【図5】プロセッサの要請に応答して動作する本発明の
二重ディレクトリー仮想キャッシュを説明する図であ
る。FIG. 5 illustrates a dual directory virtual cache of the present invention that operates in response to a processor request;
【図6】バースモニタリングロジック回路の要請に応答
して動作する本発明の二重ディレクトリー仮想キャッシ
ュを説明する図である。FIG. 6 illustrates a dual directory virtual cache of the present invention that operates in response to a request from a berth monitoring logic circuit.
41 P−タグメモリ 42 V−タグメモリ 43 データメモリ 41 P-tag memory 42 V-tag memory 43 Data memory
フロントページの続き (56)参考文献 特開 昭62−266634(JP,A) 特開 平2−150938(JP,A) 特開 平2−234245(JP,A) 特開 平5−216756(JP,A) 特開 平2−21342(JP,A) 特開 平5−204756(JP,A) 特開 平4−328655(JP,A) 特開 平4−235648(JP,A) 特開 平3−142644(JP,A) 特開 平1−288940(JP,A) 特開 昭62−214453(JP,A) 特開 昭61−246850(JP,A) 特開 昭50−72542(JP,A) 特開 平4−322340(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12 Continuation of the front page (56) References JP-A-62-266634 (JP, A) JP-A-2-150938 (JP, A) JP-A-2-234245 (JP, A) JP-A-5-216756 (JP) JP-A-2-21342 (JP, A) JP-A-5-204756 (JP, A) JP-A-4-328655 (JP, A) JP-A-4-235648 (JP, A) JP-A-1-288940 (JP, A) JP-A-62-214453 (JP, A) JP-A-61-246850 (JP, A) JP-A-50-72542 (JP, A) A) JP-A-4-322340 (JP, A) (58) Fields investigated (Int. Cl. 7 , DB name) G06F 12/08-12/12
Claims (4)
たマイクロプロセッサからの要請に応答して仮想アドレ
スによりキャッシュメモリをアクセスする方法におい
て、 上記仮想アドレスに該当する仮想タグが第1メモリに貯
蔵されているかを検査してヒット信号又はミス信号を発
生するステップ; 前記ヒット信号が発生した場合、データを貯蔵する第2
メモリ内のキャッシュラインの状態を決定するステッ
プ; 上記キャッシュラインの状態が有効の場合、リード又は
ライト動作を遂行するステップ; 上記キャッシュラインの状態が無効の場合、仮想アドレ
スを物理的アドレスに変換するステップ; 上記変換するステップで得られた物理的アドレスに該当
する物理的タグが第3メモリ内に貯蔵されているかを決
定するステップ; 上記第3メモリ内に上記変換するステップで得られた物
理的アドレスに該当する物理的タグが存在すれば上記物
理的タグの状態情報を上記第1メモリに複写してリード
又はライト動作を遂行するステップ; 上記第3メモリ内に該当物理的アドレスが存在しない場
合やミス信号が発生される場合、上記第1メモリ内で代
替されるエントリを選択するステップ; 上記第1メモリ内で代替されるエントリと相応するエン
トリが上記第3メモリ内に存在するかを決定するステッ
プ;及び上記第3メモリ内に上記代替されるエントリと
相応するエントリが存在すれば、外部メモリから新たな
キャッシュラインを読み込み、リード又はライト動作す
るステップ; 上記第3メモリ内に上記代替されるエントリと相応する
エントリが存在していなければ、代替される他のエント
リを上記第3メモリで再選択し、上記再選択したエント
リにより上記第1メモリ内で代替される該当エントリを
選択して外部メモリから新たなキャッシュラインを読み
込み、リード又はライト動作を遂行するステップを包含
してなることを特徴とする二重ディレクトリー仮想キャ
ッシュの制御方法。1. A method for accessing a key catcher Sshumemori by the virtual address in response to a request from the microprocessor provided with the bus monitoring logic circuit, or virtual tag corresponding to the virtual address is stored in the first memory Generating a hit signal or a miss signal by examining the data; if the hit signal is generated, storing a second data
Determining a state of a cache line in the memory; performing a read or write operation if the state of the cache line is valid; converting a virtual address to a physical address if the state of the cache line is invalid Determining whether the physical tag corresponding to the physical address obtained in the converting step is stored in a third memory; and storing the physical tag obtained in the converting step in the third memory. Copying the status information of the physical tag to the first memory if the physical tag corresponding to the address exists, and performing a read or write operation; if the physical address does not exist in the third memory; Selecting a replacement entry in the first memory when a miss signal or a miss signal is generated; Entry corresponding to an entry to be replaced in the memory step to determine present in the third memory; if there is an entry corresponding to an entry that is the alternative to and the third memory, an external memory Reading a new cache line and performing a read or write operation; if an entry corresponding to the replacement entry does not exist in the third memory, another replacement entry is reselected in the third memory. And a step of selecting a corresponding entry to be substituted in the first memory by the reselected entry, reading a new cache line from the external memory, and performing a read or write operation. How to control dual directory virtual caches.
記バスモニタリングロジック回路によりアクセスされる
ことを特徴とする二重ディレクトリー仮想キャッシュの
制御方法。2. The method according to claim 1, wherein the third memory is accessed by the bus monitoring logic circuit using a physical address on a bus .
状態情報を変化させ、上記仮想タグの状態情報は上記物
理的タグの変化した状態情報により変化されることを特
徴とする二重ディレクトリー仮想キャッシュの制御方
法。3. The bus monitoring logic circuit according to claim 2, wherein the bus monitoring logic circuit changes state information of the physical tag, and the state information of the virtual tag is changed by the changed state information of the physical tag. Characteristic control method of double directory virtual cache.
させるポインタ−情報を持っていることを特徴とする二
重ディレクトリー仮想キャッシュの制御方法。4. The method of claim 2, wherein the third memory has pointer information that associates the physical tag with the virtual tag.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1995P41977 | 1995-11-17 | ||
| KR1019950041977A KR970029072A (en) | 1995-11-17 | 1995-11-17 | Dual Directory Virtual Cache and Its Control Method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1091521A JPH1091521A (en) | 1998-04-10 |
| JP3116215B2 true JP3116215B2 (en) | 2000-12-11 |
Family
ID=19434528
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP08342315A Expired - Fee Related JP3116215B2 (en) | 1995-11-17 | 1996-11-18 | How to control double directory virtual cache |
Country Status (4)
| Country | Link |
|---|---|
| JP (1) | JP3116215B2 (en) |
| KR (1) | KR970029072A (en) |
| GB (1) | GB2307319B (en) |
| TW (1) | TW324800B (en) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6598128B1 (en) * | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US7139877B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing speculative load operation from a stack memory cache |
| US7136990B2 (en) | 2003-01-16 | 2006-11-14 | Ip-First, Llc. | Fast POP operation from RAM cache using cache row value stack |
| US7191291B2 (en) * | 2003-01-16 | 2007-03-13 | Ip-First, Llc | Microprocessor with variable latency stack cache |
| US7139876B2 (en) | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache |
| US8612690B2 (en) * | 2012-01-17 | 2013-12-17 | Qualcomm Incorporated | Method for filtering traffic to a physically-tagged data cache |
| US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
| US10606762B2 (en) | 2017-06-16 | 2020-03-31 | International Business Machines Corporation | Sharing virtual and real translations in a virtual cache |
| US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB8823077D0 (en) * | 1988-09-30 | 1988-11-09 | Int Computers Ltd | Data processing apparatus |
| GB2260429B (en) * | 1991-10-11 | 1995-05-24 | Intel Corp | Versatile cache memory |
| EP0651332B1 (en) * | 1993-10-29 | 2001-07-18 | Advanced Micro Devices, Inc. | Linearly addressable microprocessor cache |
-
1995
- 1995-11-17 KR KR1019950041977A patent/KR970029072A/en not_active Abandoned
-
1996
- 1996-11-18 GB GB9623913A patent/GB2307319B/en not_active Expired - Fee Related
- 1996-11-18 JP JP08342315A patent/JP3116215B2/en not_active Expired - Fee Related
- 1996-11-21 TW TW085114360A patent/TW324800B/en active
Also Published As
| Publication number | Publication date |
|---|---|
| JPH1091521A (en) | 1998-04-10 |
| GB2307319A (en) | 1997-05-21 |
| TW324800B (en) | 1998-01-11 |
| KR970029072A (en) | 1997-06-26 |
| GB2307319B (en) | 2000-05-31 |
| GB9623913D0 (en) | 1997-01-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7653789B2 (en) | Multiprocessor system that supports both coherent and non-coherent memory accesses | |
| KR930004430B1 (en) | Apparatus for maintaining consistency in a multiprocessor computer system using caching | |
| US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
| US5860146A (en) | Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces | |
| US5996048A (en) | Inclusion vector architecture for a level two cache | |
| US5960463A (en) | Cache controller with table walk logic tightly coupled to second level access logic | |
| JPH03142644A (en) | Cache memory control system | |
| JPH0743670B2 (en) | Store-through cache management system | |
| JPS6135584B2 (en) | ||
| KR20010101694A (en) | Techniques for improving memory access in a virtual memory system | |
| JPH08272693A (en) | Conversion table entry provided with cache possibility attribute bit regarding virtual address as well as method and apparatus for reference of said virtual address using said bit | |
| US7093080B2 (en) | Method and apparatus for coherent memory structure of heterogeneous processor systems | |
| US11561898B1 (en) | Address expansion | |
| JP4266629B2 (en) | Bus interface selection by page table attribute | |
| JP3116215B2 (en) | How to control double directory virtual cache | |
| US20060236070A1 (en) | System and method for reducing the number of translation buffer invalidates an operating system needs to issue | |
| JP3295436B2 (en) | Microprocessor cache consistency | |
| JPH10501914A (en) | Shared cache memory device | |
| CN117099087A (en) | Apparatus and method for processing a store request | |
| US20050091459A1 (en) | Flexible mechanism for enforcing coherency among caching structures | |
| JP3626609B2 (en) | Multiprocessor system | |
| US20020002659A1 (en) | System and method for improving directory lookup speed | |
| JPH03230238A (en) | Cache memory control system | |
| JP2976980B2 (en) | Cache control method | |
| JP3507314B2 (en) | Memory controller and computer system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S633 | Written request for registration of reclamation of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313633 |
|
| R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
| R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
| S633 | Written request for registration of reclamation of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313633 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
| R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |