JPH0469748A - Logical cache memory - Google Patents

Logical cache memory

Info

Publication number
JPH0469748A
JPH0469748A JP2183029A JP18302990A JPH0469748A JP H0469748 A JPH0469748 A JP H0469748A JP 2183029 A JP2183029 A JP 2183029A JP 18302990 A JP18302990 A JP 18302990A JP H0469748 A JPH0469748 A JP H0469748A
Authority
JP
Japan
Prior art keywords
address
logical
block
cache
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2183029A
Other languages
Japanese (ja)
Inventor
Shuichi Hanatani
花谷 修一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2183029A priority Critical patent/JPH0469748A/en
Publication of JPH0469748A publication Critical patent/JPH0469748A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To improve the system performance by checking whether a block loaded by referring to a physical tag by a real address of a block load request exists on a cache already or not, so that the same block is not subjected to mapping to plural compartments. CONSTITUTION:Logical tags 8, 9 are read out by an offset part of a logical address register 14, and hold a logical page address with respect to a block registered in a cache. Also, physical tags 12, 14 are read out by an offset part of a real address register 20 for holding a real address, and hold an effective bit V and a real page address P with respect to the block registered in the cache. In such a state, a controller 28 executes the control so that the same block on a real address space is not subjected to mapping to plural compartments by referring to the real address logical tags 8, 9 of block load at the time of block load to a cache memory 4 actuated by a mishit of the logical tags 8, 9. In such a way, the system performance is improved.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は論理キャッシュメモリに関する。[Detailed description of the invention] [Industrial application field] The present invention relates to logical cache memories.

〔従来の技術〕[Conventional technology]

メモリアクセスを高速化する手段として、メモリの写し
をプロセッサ内に持ち、高速のRAMによって構成され
るキャッシュメモリが使われている。
As a means of speeding up memory access, a cache memory is used, which has a copy of the memory within the processor and is comprised of high-speed RAM.

伝統的なキャッシュメモリは、メモリとのマツピングの
単位であるブロックを実アドレスで管理し、このための
物理タグを実アドレスで索引するのが一般的であり、実
アドレスキャッシュと呼ばれる。しかし、この実アドレ
スキャッシュでは、実アドレスを求めるために、−旦、
論理アドレスから実アドレスへのアドレス変換を行う必
要がある。
In traditional cache memory, blocks, which are units of mapping with memory, are managed using real addresses, and physical tags for this are generally indexed using real addresses, and are called real address caches. However, in this real address cache, in order to find the real address,
It is necessary to perform address translation from a logical address to a real address.

そこで近年、ブロックを論理アドレスで管理するための
論理タグを有して、論理アドレスのままで索引する論理
キャッシュメモリが出現した。論理キャッシュメモリは
、ヒツトしたときにアドレス変換を伴わない分だけ有利
であるといえる。
Therefore, in recent years, logical cache memories have appeared that have logical tags for managing blocks using logical addresses and index the blocks using the logical addresses. It can be said that the logical cache memory is advantageous because it does not involve address translation when a hit occurs.

論理キャッシュメモリは例えば第6図に示すように、タ
スクAの論理アドレス40000番地のブロックとタス
クBの論理アドレス20000番地のブロックが同じ実
アドレス空間上の3000番地のプロ・ツクを共をする
場合、論理キャッシュメモリ上にタスクAの40000
番地ブロックとタスクBの20000番地ブロックがそ
れぞれ別々のコンパートメントに格納されているものと
すると、タスクAの実行結果は、論理キャッシュメモリ
上のタスクBのコンパートメントに格納されるブロック
には反映されないために、タスクAの実行後にタスクB
の実行を行うと、タスクBはタスクAの実行結果が反映
されない古いデータを論理キヤ・ソシュメモリから読出
すことになる。
For example, in the logical cache memory, as shown in FIG. 6, when the block at logical address 40000 of task A and the block at logical address 20000 of task B share the block at address 3000 in the same real address space. , 40000 of task A on the logical cache memory
Assuming that the address block and the 20000 address block of task B are stored in separate compartments, the execution results of task A will not be reflected in the block stored in the compartment of task B on the logical cache memory. , task B after executing task A
When task B executes , task B reads old data that does not reflect the execution result of task A from the logical storage memory.

従ってこの問題を解決するために、従来の論理キャッシ
ュメモリでは、次のような手段が用いられてきた。
Therefore, in order to solve this problem, the following means have been used in conventional logical cache memories.

その第1は、複数のコンパートメントから構成するセッ
トアソシアティブ方式でなく、単一のコンパートメント
からなるダイレクトマツプ方式を採用することである。
The first is to adopt a direct map method consisting of a single compartment rather than a set associative method consisting of multiple compartments.

その第2は、タスクが切換わる毎に論理キャッシュメモ
リの全エツトりをフラッシュ(無効化)する方法である
The second method is to flush (invalidate) all entries in the logical cache memory every time a task is switched.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

上述のダイレクトマツプ方式では、キャッシュの高いヒ
ツト率が得られないことの他にキャッシュ容量の制限が
加わるという欠点がある。
The above-mentioned direct map method has the drawback of not only not being able to obtain a high cache hit rate but also of being limited in cache capacity.

すなわち、アドレス変換テーブルの更新や他系プロセッ
サ又は入出力装置からのDMAによるメモリの更新を自
動的に論理キャッシュメモリに反映させるためには、こ
れを実アドレスによって監視し対応する論理キャッシュ
メモリ上のブロックをフラッシュ(無効化)しなければ
ならない。このためには、論理タグの他に物理タグを合
わせ持ち、論理アドレスと実アドレスが同じ値を持つオ
フセット部(ページ内アドレス)で各々のタグを読出す
ようにすることによって論理タグと物理タグを対応づけ
る必要がある。
In other words, in order to automatically reflect updates to the address translation table and memory updates by DMA from other processors or input/output devices to the logical cache memory, these are monitored using real addresses and the corresponding updates to the logical cache memory are performed. Blocks must be flushed (invalidated). To do this, it is possible to read both logical and physical tags by having physical tags in addition to logical tags, and reading each tag at an offset section (intra-page address) where the logical address and real address have the same value. It is necessary to match.

従って、キャッシュのエントリアドレスはこのオフセッ
ト部によって行われなければならないため、実アドレス
によるオートフラ・ンシュ機能を有するダイレクトマツ
プ論理キヤ・ソシュメモリの容量はページサイズ以」二
にはできないという欠点がある。
Therefore, since the entry address of the cache must be determined by this offset section, there is a drawback that the capacity of the direct map logical cache memory having an auto-flush function using real addresses cannot be made smaller than the page size.

又タスクが切換わる毎に論理キヤ・ソシュメモリの全エ
ツトりをフラッシュ(無効化)する方法では、タスクス
イッチに長時間を要すばかりでなく全エツトりをクリア
することによるキヤ・ソシュヒット率の低下もシステム
性能の低下をまね(要因となる。
Furthermore, with the method of flushing (invalidating) all the entries in the logical cache memory each time a task is switched, not only does it take a long time to switch tasks, but the cache hit rate decreases due to clearing all the entries. It also imitates (and causes) a decline in system performance.

〔課題を解決するための手段〕[Means to solve the problem]

本発明のメモリは、メモリの写しを格納するキャッシュ
メモリへのマツピングの単位であるブロックを論理アド
レスで管理し、複数のコンパートメントから構成される
セットアソシアティブ論理キャッシュメモリにおいて、 前記複数のコンパートメントをアドレスのオフセット部
で読出しタスク毎に割付けられたタスクIDと論理ペー
ジアドレスとをキーとして索引する論理タグと、 前記同じアドレスのオフセット部で読出し実ページアド
レスをキーとして索引する前記論理タグに対応した物理
タグと、 前記論理タグのミスヒツトによって起動されるキャッシ
ュメモリへのブロックロード時において、該ブロックロ
ードの実アドレスで前記物理タグを参照することにより
、実アドレス空間上の同一ブロックを複数のコンパート
メントにはマツピングしないように制御するコントロー
ラとを有することを特徴とする。
The memory of the present invention manages blocks, which are units of mapping to a cache memory storing copies of memory, using logical addresses, and in a set-associative logical cache memory composed of a plurality of compartments, the plurality of compartments are managed by addresses. A logical tag that is indexed using a task ID and logical page address assigned to each read task in an offset section as a key, and a physical tag corresponding to the logical tag that is indexed using a read real page address as a key in an offset section of the same address. and, when loading a block into the cache memory triggered by a miss in the logical tag, the same block in the real address space is mapped into multiple compartments by referencing the physical tag with the real address of the block load. The invention is characterized in that it has a controller that controls not to do so.

〔実施例〕〔Example〕

次に、本発明について図面を参照して説明する。 Next, the present invention will be explained with reference to the drawings.

第1図は本発明の一実施例のブロック図である。FIG. 1 is a block diagram of one embodiment of the present invention.

1はメモリ、−点破線で示す2は論理キャッシュメモリ
を含む第1プロセツサで坐り、3は第1プロセツサ2と
同構成の第2プロセツザを示し、それぞれアドレスバス
101及びデータバス102に接続されて互いにデータ
のやり取りを行う。
1 is a memory, 2 indicated by a dashed line indicates a first processor including a logical cache memory, and 3 indicates a second processor having the same configuration as the first processor 2, and is connected to an address bus 101 and a data bus 102, respectively. Exchange data with each other.

第1プロセツサ2は、命令又はデータの要求元であるリ
クエスタ5と、リクエスタ5の出力する論理アドレスに
従って即座に演算部6にデータを出力するように構成さ
れる論理キャッシュメモリ4と、論理キャッシュメモリ
4がメモリアクセスを必要としたとき論理アドレスを物
理アドレスに変換するためのTLBを含むアドレス変換
部7とからなる。
The first processor 2 includes a requester 5 that requests instructions or data, a logical cache memory 4 configured to immediately output data to an arithmetic unit 6 according to a logical address output by the requester 5, and a logical cache memory. 4 comprises an address conversion unit 7 including a TLB for converting a logical address into a physical address when memory access is required.

論理キャッシュメモリ4は、本実施例では2ケのコンパ
ートメントから構成され2ケの論理タグ8.9.2ケの
データアレイ10.11及び2ケの物理タグ12.13
を含む。
In this embodiment, the logical cache memory 4 is composed of two compartments, including two logical tags 8, 9, 2 data arrays 10, 11, and 2 physical tags 12, 13.
including.

論理タグ8,9は論理アドレスを保持する論理アドレス
レジスタ14のオフセット部で読出され、第2図のよう
に、キャッシュに登録されたブロックに対して有効ビッ
ト、タスクID、セグメントテーブルナンバーSおよび
ページテーブルナンバーPからなる論理ページアドレス
を保持する。
The logical tags 8 and 9 are read at the offset part of the logical address register 14 that holds the logical address, and as shown in FIG. Holds a logical page address consisting of table number P.

ブロックがキャッシュに登録されているか否かは、アド
レスコンパレータ16,17によって論理アドレスレジ
スタ14上の索引アドレスと論理タグ8,9内の内容と
の比較によって判定される。
Whether or not a block is registered in the cache is determined by address comparators 16 and 17 comparing the index address on the logical address register 14 and the contents in the logical tags 8 and 9.

データアレイ10.11は、それぞれ論理タグ8.9に
対応してそのブロックアドレスのデータが格納される。
Data arrays 10.11 each store data corresponding to block addresses corresponding to logical tags 8.9.

従って、アドレスコンパレータ16.17で登録アドレ
スと索引アドレスの一致が検出されると、対応するコン
パートメントがら選択回路15を介してデータが読出し
データレジスタ18に読出される。
Therefore, when the address comparators 16 and 17 detect a match between the registered address and the index address, data is read out from the corresponding compartment to the read data register 18 via the selection circuit 15.

物理タグ12.13は実アドレスを保持する実アドレス
レジスタ20のオフセット部で読出され、第3図のよう
に、キャッシュに登録されたブロックに対して、有効ビ
ットVと実ページアドレスPを保持する。
The physical tag 12.13 is read at the offset part of the real address register 20 that holds the real address, and holds the valid bit V and real page address P for the block registered in the cache, as shown in FIG. .

実アドレス及び論理アドレスともそのオフセット部はペ
ージ内アドレスを示し同一の値である。
The offset portion of both the real address and the logical address indicates an address within the page and has the same value.

従って物理タグ12.13はそれぞれ論理タグ8゜9の
論理アドレスの内容に対応した実アドレスを保持させる
ことができる。
Therefore, each of the physical tags 12 and 13 can hold a real address corresponding to the content of the logical address of the logical tag 8.9.

アドレスバス101上のアドレスの指すブロックがキャ
ッシュに登録されているか否かは、アドレスバス101
の値を実アドレスレジスタ20に取り込んだ後に物理タ
グ12.13を読出し、アドレスコンパレータ22,2
3によって実アドレスレジスタ20上の索引アドレスと
の比較によって判定される。判定結果はそれぞれフリッ
プフロップ24.25に保持され、索引アドレスのオフ
セット部はフラッシュアドレスレジスタ21に保持され
る。
The address bus 101 determines whether the block pointed to by the address on the address bus 101 is registered in the cache.
After loading the value into the real address register 20, the physical tag 12.13 is read, and the address comparators 22, 2
3 is determined by comparison with the index address on the real address register 20. The judgment results are held in flip-flops 24 and 25, and the offset portion of the index address is held in the flash address register 21.

次にフリップフロップ24.25の指示に従い、論理タ
グ8,9及び物理タグ12.13のそれぞれ選択回路2
6.27を介してフラッシュアドレスレジスタ21の指
すブロックのを効ビットVをリセットするように構成さ
れる。
Next, according to the instructions of the flip-flops 24.25, the selection circuits 2 of the logical tags 8, 9 and the physical tags 12.13, respectively.
6.27 to reset the valid bit V of the block pointed to by the flash address register 21.

以上のように構成された論理キャッシュメモリは第4図
のフローチャートのように動作し、この制御シーケンス
をコントローラ28で実現する。
The logical cache memory configured as described above operates as shown in the flowchart of FIG. 4, and this control sequence is realized by the controller 28.

すなわち第4図において、リクエスタ5よりメモリアク
セス要求が発生したならば、その論理アドレスを一旦論
理アドレスレジスタ14にセットする。もし、そのメモ
リアクセス要求がリードリクエストであれば論理タグ8
,9を参照し、アドレスコンパレータ16又は17によ
って一致、すなわちキャツシュヒツトが検出されたなら
ば、対応するデータをデータアレイ10又は11から読
出し演算部16に供給する。
That is, in FIG. 4, when a memory access request is generated from the requester 5, the logical address thereof is temporarily set in the logical address register 14. If the memory access request is a read request, logical tag 8
.

一方、アドレスコンパレータ16,17のいずれにおい
ても一致が検出されなかった場合は、キャッシュミスヒ
ツトとなり、2ケのコンバートメントのいずれのブロッ
クを追い出すかを決定する。この追い出しアルゴリズム
は従来から存在するLRU法又はFIFO法が使用され
る。
On the other hand, if a match is not detected in either of the address comparators 16 and 17, a cache miss occurs, and it is determined which of the two conversion blocks should be evicted. As this eviction algorithm, the conventional LRU method or FIFO method is used.

次に、論理アドレスレジスタ14上の論理アドレスはア
ドレス変換部7で実アドレスに変換される。このときア
ドレス変換部7内にあるTLBにすでにアドレス変換テ
ーブルが存在しているときは、そのTLBを索引するこ
とによって即座にアドレス変換が可能である。
Next, the logical address on the logical address register 14 is converted into a real address by the address conversion section 7. At this time, if an address translation table already exists in the TLB in the address translation unit 7, address translation can be performed immediately by indexing that TLB.

もしTLBにアドレス変換テーブルが存在しなければ、
メモリ1上のアドレス変換テーブルをTLBに展開した
後、アドレス変換を実行する。
If the TLB does not have an address translation table,
After expanding the address translation table on memory 1 into TLB, address translation is executed.

そして変換された実アドレスをアドレスバス101上に
出力し、これを実アドレスレジスタ20にセットし、物
理タグ12.13を索引する。
Then, the converted real address is output onto the address bus 101, set in the real address register 20, and the physical tags 12 and 13 are indexed.

アドレスコンパレータ22,23のいずれにおいても一
致がなければ、ブロックロードしようとしているブロッ
クは論理キャッシュ4上に存在しないことを示すが、ア
ドレスコンパレータ22又は23によって一致が検出さ
れたならばブロックロードしようとしているブロックが
すでに別の論理アドレスで登録されていることを示す。
If there is no match in either of the address comparators 22 or 23, it indicates that the block to be loaded does not exist on the logical cache 4, but if a match is detected by the address comparators 22 or 23, the block to be loaded does not exist in the logical cache 4. Indicates that the current block is already registered with another logical address.

このとき、このブロックの登録を一旦無効化(フラッシ
ュ)する。
At this time, the registration of this block is once invalidated (flushed).

このためには、すでに述べたようにフラッシュするキャ
ッシュのエントリアドレスをフラッシュアドレスレジス
タ21に保持し、物理タグ12゜13のヒツト情報を示
すフリッププロップ24又は25の指示に従い、論理タ
グ8,9及び物理タグ12.13のフラッシュアドレス
レジスタ21の指すブロックの有効ビットVをリセット
する。
To do this, as described above, the entry address of the cache to be flushed is held in the flash address register 21, and the logical tags 8, 9 and The valid bit V of the block pointed to by the flash address register 21 of the physical tag 12.13 is reset.

以上のキャッシュブロック無効化処理を待ってから、メ
モリ1に対しブロックロード要求を行う。ブロックデー
タはメモリ1からデータバス102に出力され、ライト
データレジスタ19に一旦保持された後、前述の追い出
しブロックの後にブロックロードする。又対応する論理
タグ8゜9及び物理タグ12.13に新たなアドレスを
登録する。次に、データアレイ10.11上の新たなブ
ロックからデータを読出しデータレジスタ18に読出し
、演算部6に供給される。
After waiting for the above cache block invalidation processing, a block load request is made to the memory 1. The block data is outputted from the memory 1 to the data bus 102, and after being temporarily held in the write data register 19, the block is loaded after the aforementioned evicted block. Also, a new address is registered in the corresponding logical tag 8.9 and physical tag 12.13. Next, data is read from the new block on the data array 10.11 to the data register 18, and is supplied to the arithmetic unit 6.

メモリアクセス要求がライドリクエストの場合は、一般
のキャッシュ制御におけるライドリクエスト処理と変わ
るところはない。すなわち、論理タグ8,9を索引し、
ヒツトであればヒツトしたブロックに演算部6からのラ
イトデータをライトデータレジスタ19を介して書込む
。ミスヒツトのときは、このキャッシュへの書き込みは
抑止されるが、ヒツト、ミスヒツトにかかわらずメモリ
1への書き込み動作が実行される。
If the memory access request is a ride request, there is no difference from ride request processing in general cache control. That is, index logical tags 8 and 9,
If it is a hit, the write data from the arithmetic unit 6 is written into the hit block via the write data register 19. When there is a miss, writing to this cache is inhibited, but the write operation to the memory 1 is executed regardless of whether it is a hit or a miss.

すなわち、アドレス変換部7によって論理アドレスが実
アドレスに変換され、TLBを索引した結果がミスヒツ
トであればメモリ1上のアドレス変換テーブルをTLB
に展開した上でアドレス変換が行われる。そして、求め
た実アドレスによってメモリ1に対し演算部6からのラ
イトデータをそれぞれアドレスバス101.データバス
102を介してメモリ1に書込む。
That is, if the logical address is converted into a real address by the address conversion unit 7, and the result of indexing the TLB is a miss, the address conversion table in the memory 1 is converted to the TLB.
Address translation is performed after the expansion. Then, write data from the arithmetic unit 6 to the memory 1 is sent to the address bus 101 . Write to memory 1 via data bus 102.

ところで、論理キャッシュメモリの場合はアトレス変換
テーブルの更新がある度に対応するページの論理キャッ
シュ内のデータを無効化しなければならない。このとき
追い出しページの実ページアドレスをアドレスバス10
1に出力し、これを実アドレスレジスタ20に取り込む
ことによって物理タグ12.13を参照し、対応するブ
ロックが論理キャッシュメモリ4内に存在すれば、前述
の手順によってこれを無効化するように制御する。
By the way, in the case of a logical cache memory, the data in the logical cache of the corresponding page must be invalidated every time the address translation table is updated. At this time, the real page address of the evicted page is sent to address bus 10.
1, and by taking this into the real address register 20, the physical tag 12.13 is referenced, and if the corresponding block exists in the logical cache memory 4, it is controlled to be invalidated by the above-mentioned procedure. do.

更に他系のCPUや入出力装置のDMAによるメモリラ
イトが発生したとき、対応するブロックが自CPU内の
キャッシュに存在したならば、このブロックを無効化し
なければならない。このと・きもアドレスバス101に
出力されたライトアドレスを監視し、これを実アドレス
レジスタ20に取り込むことによって物理タグ12.1
3を参照し、対応するブロックが論理キャッシュメモリ
4内に存在すれば前述の手順によってこれを無効化する
ように制御する。
Furthermore, when a memory write occurs by DMA of a CPU or an input/output device of another system, if a corresponding block exists in the cache of the own CPU, this block must be invalidated. At this time as well, the write address output to the address bus 101 is monitored, and by taking it into the real address register 20, the physical tag 12.1
3, if the corresponding block exists in the logical cache memory 4, it is controlled to be invalidated by the above-mentioned procedure.

以上の実施例における説明は、ライトメモリアクセスに
対してキャッシュにも書込むと同時にメモリ1にも書込
みを行うライトスル一方式のキャッシュメモリに対して
行った。しかし書き戻し方式(コピーパック方式)のキ
ャッシュメモリに対しても、ブロックロード時において
そのブロックロード実アドレスで物理タグ12.13を
参照し、別の論理アドレスで登録されているブロックを
検出したならば、これをメモリ1上に退避又は無効化す
ることにより、実アドレス空間」二の同一ブロックを複
数のコンパートメントにはマツピングしないように制御
できる。この様子を第5図のフローチャートに示す。
The above embodiment has been described with respect to a write-through type cache memory in which data is written to the cache and also written to the memory 1 at the same time in response to a write memory access. However, even for write-back method (copy pack method) cache memory, if when loading a block, physical tag 12.13 is referenced at the block load real address and a block registered at a different logical address is detected. For example, by saving or invalidating this in the memory 1, it is possible to control so that the same block in the real address space 2 is not mapped to multiple compartments. This situation is shown in the flowchart of FIG.

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発明は、複数のコンパートメント
をアドレスのオフセット部で読出し、タスク毎に割付け
られたタスクIDと論理ページアドレスとをキーとして
索引する論理タグと、同じアドレスのオフセット部で読
出し実アドレスをキーとして索引する物理タグとを対応
付けて持ち、論理タグのミスヒツトによって起動される
キャッシュメモリへのブロックロード時において、その
ブロックロードリクエストの実アドレスで物理タグを参
照してロードしようとするブロックがすでに別の論理ア
ドレスでキャッシュ上に存在するが否かを調べた上で、
同一のブロックを複数のコンパートメントにはマツピン
グしないように制御することによって、論理キャッシュ
メモリに伴うマツピング上の問題点を解決することが可
能となる。
As explained above, the present invention reads a plurality of compartments using the offset part of the address, uses a logical tag that indexes the task ID and logical page address assigned to each task as keys, and executes reading using the offset part of the same address. It has a physical tag that is indexed using an address as a key, and when loading a block to the cache memory that is triggered by a logical tag mishit, attempts to load by referring to the physical tag using the real address of the block load request. After checking whether the block already exists in the cache at another logical address,
By controlling the mapping so that the same block is not mapped to multiple compartments, it is possible to solve mapping problems associated with logical cache memories.

この結果、複数のコンパートメントからなる大容量のセ
ットアソシアティブ論理キャッシュメモリが構成でき、
しかもタスクの切換え毎のキャッシュ全エン) IJの
無効化を必要とせずして構成できるため、これによるタ
スクスイッチ時間の高速化が図られシステム性能の向」
二ができるという効果がある。
As a result, a large capacity set-associative logical cache memory consisting of multiple compartments can be configured.
In addition, since it can be configured without the need to disable the IJ (all the cache data every time a task is switched), this speeds up the task switching time and improves system performance.
This has the effect of doing two things.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明のブロック図、第2図は論理タグの内容
を示す図、第3図は物理タグの内容を示す図、第4図は
ライトスル一方式キャッシュメモリにおける本発明の制
御方式を示すフローチャート、第5図はコピーバック方
式キャッシュメモリにおける本発明の制御方式を示すフ
ローチャー1− 、第6図は2ケのタスクが実アドレス
空間上の同一ブロックを共有する場合の例を示す図であ
る。 1・・・メモリ、2・・・第1プロセツサ、3・・・第
2プロセツサ、4・・・論理キャッシュメモリ、5・・
・リクエスタ、6・・・演算部、7・・・アドレス変換
部、8゜9・・・論理タグ1.10.11・・・データ
アレイ、12゜13・・・物理タグ、14・・・論理ア
ドレスレジスタ、15.26.27・・・選択回路、1
6.17,22゜23・・・アドレスコンパレータ、1
8・・・読出シデータレジスタ、19・・・ライトデー
タレジスタ、20・・・実アドレスレジスタ、21・・
・フラッシュアドレスレジスタ、24.25・・・フリ
ップフロップ、28・・・コントローラ。
FIG. 1 is a block diagram of the present invention, FIG. 2 is a diagram showing the contents of a logical tag, FIG. 3 is a diagram showing the contents of a physical tag, and FIG. 4 is a diagram showing the control method of the present invention in a write-through cache memory. 5 is a flowchart showing the control method of the present invention in a copy-back cache memory, and FIG. 6 is a diagram showing an example of a case where two tasks share the same block in the real address space. It is. DESCRIPTION OF SYMBOLS 1... Memory, 2... First processor, 3... Second processor, 4... Logical cache memory, 5...
・Requester, 6... Arithmetic unit, 7... Address conversion unit, 8゜9... Logical tag 1.10.11... Data array, 12゜13... Physical tag, 14... Logical address register, 15.26.27... selection circuit, 1
6.17,22゜23...address comparator, 1
8...Read data register, 19...Write data register, 20...Real address register, 21...
-Flash address register, 24.25...Flip-flop, 28...Controller.

Claims (1)

【特許請求の範囲】 メモリの写しを格納するキャッシュメモリへのマッピン
グの単位であるブロックを論理アドレスで管理し、複数
のコンパートメントから構成されるセットアソシアティ
ブ論理キャッシュメモリにおいて、 前記複数のコンパートメントをアドレスのオフセット部
で読出しタスク毎に割付けられたタスクIDと論理ペー
ジアドレスとをキーとして索引する論理タグと、 前記同じアドレスのオフセット部で読出し実ページアド
レスをキーとして索引する前記論理タグに対応した物理
タグと、 前記論理タグのミスヒットによって起動されるキャッシ
ュメモリへのブロックロード時において、該ブロックロ
ードの実アドレスで前記物理タグを参照することにより
、実アドレス空間上の同一ブロックを複数のコンパート
メントにはマッピングしないように制御するコントロー
ラとを有することを特徴とする論理キャッシュメモリ。
[Scope of Claims] In a set-associative logical cache memory consisting of a plurality of compartments, a block, which is a unit of mapping to a cache memory that stores a copy of the memory, is managed by a logical address, and the plurality of compartments are managed by an address. A logical tag that is indexed using a task ID and logical page address assigned to each read task in an offset section as a key, and a physical tag corresponding to the logical tag that is indexed using a read real page address as a key in an offset section of the same address. and, when loading a block into the cache memory triggered by a miss in the logical tag, the same block in the real address space is stored in multiple compartments by referencing the physical tag with the real address of the block load. A logical cache memory comprising: a controller that controls mapping so as not to perform mapping.
JP2183029A 1990-07-11 1990-07-11 Logical cache memory Pending JPH0469748A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2183029A JPH0469748A (en) 1990-07-11 1990-07-11 Logical cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2183029A JPH0469748A (en) 1990-07-11 1990-07-11 Logical cache memory

Publications (1)

Publication Number Publication Date
JPH0469748A true JPH0469748A (en) 1992-03-04

Family

ID=16128496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2183029A Pending JPH0469748A (en) 1990-07-11 1990-07-11 Logical cache memory

Country Status (1)

Country Link
JP (1) JPH0469748A (en)

Similar Documents

Publication Publication Date Title
US6370622B1 (en) Method and apparatus for curious and column caching
US6647466B2 (en) Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
EP0780769B1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US5893144A (en) Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
KR102448124B1 (en) Cache accessed using virtual addresses
EP0945805B1 (en) A cache coherency mechanism
US4774654A (en) Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US5802582A (en) Explicit coherence using split-phase controls
US8782348B2 (en) Microprocessor cache line evict array
US20070136535A1 (en) System and Method for Reducing Unnecessary Cache Operations
JP2000250812A (en) Memory cache system and managing method therefor
JPH0743670B2 (en) Store-through cache management system
KR19980079433A (en) Method and system for implementing cache coherency mechanism for use in non-cache cache hierarchy
JP3262519B2 (en) Method and system for enhancing processor memory performance by removing old lines in second level cache
WO2013186694A2 (en) System and method for data classification and efficient virtual cache coherence without reverse translation
JP2007533014A (en) System and method for canceling write back processing when snoop push processing and snoop kill processing occur simultaneously in write back cache
JP7139719B2 (en) Information processing device, arithmetic processing device, and control method for information processing device
US8688952B2 (en) Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB
WO2006040689A1 (en) Implementation and management of moveable buffers in cache system
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
JP2001249846A (en) Cache memory device and data processing system
JPH0469748A (en) Logical cache memory
JPH086852A (en) Cache control method
JP2019096307A (en) Data storage for plural data types