JPH086851A - Cache memory controller - Google Patents

Cache memory controller

Info

Publication number
JPH086851A
JPH086851A JP6134696A JP13469694A JPH086851A JP H086851 A JPH086851 A JP H086851A JP 6134696 A JP6134696 A JP 6134696A JP 13469694 A JP13469694 A JP 13469694A JP H086851 A JPH086851 A JP H086851A
Authority
JP
Japan
Prior art keywords
line
cache memory
information
data
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6134696A
Other languages
Japanese (ja)
Inventor
Hiroaki Komaki
広昭 古牧
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6134696A priority Critical patent/JPH086851A/en
Publication of JPH086851A publication Critical patent/JPH086851A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】大容量のキャッシュメモリ中のダーティエント
リを高速に検索する。 【構成】メインメモリ12のデータの一部を保持するキャ
ッシュメモリ13の更新情報を検索するキャッシュメモリ
制御装置において、該キャッシュメモリ13のライン領域
毎に設けられ、該ライン領域がメインメモリの対応デー
タと異なる更新されたデータを保持する際に、その直前
にデータが更新されたライン領域の情報を示すライン情
報を記憶する線形リスト構成情報格納領域13cと、上記
線形リスト構成情報格納領域13cに記憶される最新の更
新されたライン領域の情報を示すルート情報を記憶する
ルート処理部14dと、上記ルート処理部14dのルート情
報と上記線形リスト構成情報格納領域13cのライン情報
とに基づいて上記キャッシュメモリ13のライン領域を線
形リスト状に検索し、各該当ラインのデータを上記メイ
ンメモリへ書戻すフラッシュ処理を実行する制御回路14
aとを備える。
(57) [Summary] [Purpose] A dirty entry in a large capacity cache memory is searched at high speed. In a cache memory control device for retrieving update information of a cache memory 13 that holds a part of data in a main memory 12, the line area is provided for each line area of the cache memory 13, and the line area corresponds to the corresponding data of the main memory. When the updated data different from the above is held, the linear list configuration information storage area 13c for storing the line information indicating the information of the line area for which the data is updated immediately before and the linear list configuration information storage area 13c are stored. The route processing unit 14d that stores route information indicating the latest updated line area information, and the cache based on the route information of the route processing unit 14d and the line information of the linear list configuration information storage area 13c. The line area of the memory 13 is searched in a linear list, and the data of each corresponding line is written back to the main memory. The control circuit executes Interview process 14
a.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、比較的大規模なキャッ
シュメモリを使用した計算機システムに適用され、該キ
ャッシュメモリの更新情報を検索するキャッシュメモリ
制御装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a cache memory control device which is applied to a computer system using a relatively large scale cache memory and retrieves update information of the cache memory.

【0002】[0002]

【従来の技術】電子計算機システムにおいて、プロセッ
サの処理能力が大きく向上した現在では、比較的低速で
動作するメインメモリとプロセッサとの間でのデータ転
送速度の差異がデータ処理上のネックとなっている。そ
こで、プロセッサとメインメモリとの間に比較的高速で
動作可能なキャッシュメモリを介在させ、プロセッサは
キャッシュメモリに対してアクセスを行なわせること
で、その処理能力を充分に発揮することができるように
なる。
2. Description of the Related Art In an electronic computer system, at present, the processing capability of a processor is greatly improved, and a difference in data transfer rate between a main memory operating at a relatively low speed and a processor becomes a bottleneck in data processing. There is. Therefore, by interposing a cache memory that can operate at a relatively high speed between the processor and the main memory, and allowing the processor to access the cache memory, it is possible to fully demonstrate its processing capability. Become.

【0003】しかるに、キャッシュメモリを備えた計算
機システムでは、プロセッサからの書込みデータが一旦
キャッシュメモリ内に蓄えられるため、メインメモリ内
に最新のデータが反映されない期間が生ずる。そして、
このメインメモリ内に最新のデータが反映されていない
状態でプロセッサあるいはキャッシュメモリに障害が発
生した際にも最新データの消失を最小限に止めるために
は、キャッシュメモリ内のダーティエントリ(更新項
目)を適宜消去してキャッシュメモリ内のデータとメイ
ンメモリ内のデータの内容を一致させておく必要があ
り、キャッシュメモリ内の上記ダーティエントリをサー
チする機能が必要である。
However, in a computer system equipped with a cache memory, since the write data from the processor is temporarily stored in the cache memory, there is a period in which the latest data is not reflected in the main memory. And
In order to minimize the loss of the latest data even when a processor or cache memory fails while the latest data is not reflected in this main memory, dirty entries (update items) in the cache memory Need to be erased as appropriate to match the contents of the data in the cache memory and the data in the main memory, and the function of searching the dirty entry in the cache memory is required.

【0004】従来のキャッシュメモリの構成では図14
に示すように例えばライン単位で設定される各キャッシ
ュ項目に1対1で対応して項目部分のダーティ(更新)
/クリーン(未更新)の情報が格納されたタグ領域が設
けられており、ソフトウェアによって全てのタグ領域を
順次走査してダーティエントリを検索する。図14中、
「ラインNo.」はキャッシュメモリ内における各ブロ
ックの配置を示すライン情報を示し、また「キャッシュ
エントリ」は実際に当該ラインに配置されている情報を
示すものであり、図中ではそのエントリ内のデータがダ
ーティなのかクリーンなのかを示す。さらに、「タグ領
域」は計算機システムに依存した、キャッシュメモリ操
作に必要なビット列を格納する領域であり、この中にあ
るダーティ/クリーンビットはタグ領域に対応するキャ
ッシュエントリがダーティかどうかを示すものである。
FIG. 14 shows the configuration of the conventional cache memory.
As shown in, for example, each cache item set on a line-by-line basis has a one-to-one correspondence with dirty (update) of the item part
/ A tag area is stored in which clean (unupdated) information is stored, and all tag areas are sequentially scanned by software to search for dirty entries. In FIG.
The “line No.” indicates line information indicating the arrangement of each block in the cache memory, and the “cache entry” indicates information actually arranged on the line. Indicates whether the data is dirty or clean. Furthermore, the "tag area" is an area that stores a bit string required for cache memory operation depending on the computer system, and the dirty / clean bit in this area indicates whether the cache entry corresponding to the tag area is dirty. Is.

【0005】[0005]

【発明が解決しようとする課題】上記図14に示した従
来の方法では、キャッシュメモリ内のタグ領域全てをソ
フトウェアによって順次走査してダーティエントリを検
索するため、ダーティエントリの検索処理に時間がかか
る。この傾向は、キャッシュメモリの容量すなわち走査
領域が広いほど顕著であり、一方、キャッシュメモリは
年々広域化の一途を辿っているので、検索に要する時間
はこれからさらに増大するものと思われる。
According to the conventional method shown in FIG. 14, the dirty entry search process takes time because all the tag areas in the cache memory are sequentially scanned by software to search for the dirty entry. . This tendency is more remarkable as the capacity of the cache memory, that is, the wider the scanning area is. On the other hand, since the cache memory is becoming wider year by year, the time required for the search is expected to further increase.

【0006】本発明は上記のような実情に鑑みてなされ
たもので、その目的とするところは、容量の大きなキャ
ッシュメモリであってもダーティエントリをより高速に
検索することが可能なキャッシュメモリ制御装置を提供
することにある。
The present invention has been made in view of the above situation, and an object of the present invention is to control a cache memory capable of retrieving a dirty entry at a higher speed even if the cache memory has a large capacity. To provide a device.

【0007】[0007]

【課題を解決するための手段】すなわち本発明は、メイ
ンメモリのデータの一部を保持するキャッシュメモリの
更新情報を検索するキャッシュメモリ制御装置におい
て、該キャッシュメモリのライン領域毎に設けられ、該
ライン領域がメインメモリの対応データと異なる更新さ
れたデータを保持する際に、その直前にデータが更新さ
れたライン領域の情報を示すライン情報を記憶する更新
記憶手段と、上記更新記憶手段に記憶される最新の更新
されたライン領域の情報を示すルート情報を記憶するル
ート記憶手段と、上記ルート記憶手段のルート情報と上
記更新記憶手段のライン情報とに基づいて上記キャッシ
ュメモリのライン領域を線形リスト状に検索し、各該当
ラインのデータを上記メインメモリへ書戻すフラッシュ
処理を実行するキャッシュ制御手段とを備えるようにし
たものである。
That is, the present invention provides a cache memory control device for retrieving update information of a cache memory holding a part of data in a main memory, the cache memory control device being provided for each line area of the cache memory. When the line area holds updated data different from the corresponding data in the main memory, update storage means for storing line information indicating the information of the line area whose data was updated immediately before, and the update storage means. A route storage unit that stores route information indicating the latest updated line region information, and a line region of the cache memory is linearly based on the route information of the route storage unit and the line information of the update storage unit. A cache that executes a flash process that searches in a list and writes the data of each applicable line back to the main memory. It is obtained by so and a shoe controller.

【0008】[0008]

【作用】上記のような構成とすることにより、必要なラ
イン領域のみ線形リスト状に検索するため、容量の大き
なキャッシュメモリであってもダーティエントリをより
高速に検索することが可能となる。
With the above structure, only the necessary line areas are searched in the form of a linear list, so that even a cache memory with a large capacity can be searched for dirty entries at a higher speed.

【0009】[0009]

【実施例】【Example】

[第1実施例]以下本発明をキャッシュメモリの全領域
を対象としてその制御を行なう制御装置に適用した場合
の第1実施例について図面を参照して説明する。
[First Embodiment] A first embodiment in which the present invention is applied to a control device for controlling the entire area of a cache memory will be described below with reference to the drawings.

【0010】図1はその回路構成を示すもので、11は演
算を実行するCPU、12はバス接続されたメインメモ
リ、13は上記CPU11と上記メインメモリ12が接続され
たバスとの間に介在されたキャッシュメモリである。
FIG. 1 shows the circuit configuration thereof. 11 is a CPU for executing calculations, 12 is a bus-connected main memory, and 13 is interposed between the CPU 11 and the bus to which the main memory 12 is connected. Is the cache memory that has been created.

【0011】キャッシュメモリ13は、CPU11の書込み
によって上記メインメモリ12のデータの一部を保持する
データ領域13a、このキャッシュメモリ13の操作に必要
なビット列を格納する領域であるタグ領域13b及び各キ
ャッシュエントリ毎に追加された情報であり、その直前
にダーティとなった他のライン情報を格納する領域であ
る線形リスト構成情報格納領域13cを有する。
The cache memory 13 has a data area 13a for holding a part of the data in the main memory 12 by writing by the CPU 11, a tag area 13b for storing a bit string required for the operation of the cache memory 13 and each cache. It has a linear list configuration information storage area 13c which is information added for each entry and which is an area for storing other dirty line information immediately before that.

【0012】そして、このキャッシュメモリ13のタグ領
域13b及び線形リスト構成情報格納領域13cを制御する
ものとして、キャッシュメモリ制御回路14が設けられ
る。このキャッシュメモリ制御回路14は、線形リストの
構成および線形リストを用いたフラッシュ処理を実現す
るための制御回路14a、上記タグ領域13bの書込み/読
出しに用いられるタグ情報バッファ14、上記線形リスト
構成情報格納領域13cの書込み/読出しに用いられるリ
スト情報バッファ14c及び、線形リストの構築、フラッ
シュ処理操作のための作業領域であるルート処理部14d
を有する。
A cache memory control circuit 14 is provided to control the tag area 13b and the linear list configuration information storage area 13c of the cache memory 13. The cache memory control circuit 14 includes a control circuit 14a for realizing a configuration of a linear list and a flash process using the linear list, a tag information buffer 14 used for writing / reading the tag area 13b, and the linear list configuration information. A list information buffer 14c used for writing / reading the storage area 13c and a route processing section 14d which is a work area for constructing a linear list and a flash processing operation.
Have.

【0013】次に上記第1実施例の具体的な動作につい
て説明する。図2(A)は線形リストによるダーティエ
ントリの検索を行なう上記キャッシュメモリ13の具体構
成を例示するものである。図中、「ライン番号(N
o.)」は各キャッシュエントリのラインを、「キャッ
シュエントリ」はデータ自身を示し、共に上記データ領
域13aを構成するものであるが、図2(A)ではそのデ
ータがキャッシュに格納されてから更新されたかどうか
をダーティ(更新)/クリーン(未更新)として表記し
てある。ここで括弧内の回数値は、各データが更新され
た時の順番を示している。また、「タグ領域」は上述し
た如く計算機システムに依存した、キャッシュメモリ13
操作に必要なビット列を格納する領域であり、「線形リ
スト」は、各キャッシュエントリ毎に追加された情報で
あり、ダーティとなったキャッシュエントリの1つ前に
ダーティとなった他のライン領域の情報を示している。
図中のヌル(Null)は初期値を示す。
Next, the specific operation of the first embodiment will be described. FIG. 2A exemplifies a specific configuration of the cache memory 13 that searches for a dirty entry using a linear list. In the figure, "Line number (N
o. ) ”Indicates the line of each cache entry, and“ cache entry ”indicates the data itself, and together form the data area 13a. In FIG. 2A, the data is stored in the cache and then updated. Whether or not it is shown as dirty (updated) / clean (not updated). Here, the number of times value in parentheses indicates the order when each data is updated. Also, the "tag area" depends on the computer system as described above, and the cache memory 13
The "linear list" is an area for storing a bit string necessary for operation, and is the information added for each cache entry, and is for the other line area that is dirty immediately before the dirty cache entry. Shows information.
Null in the figure indicates an initial value.

【0014】また、図2(B)に示す「ルート」は、上
記キャッシュメモリ制御回路14のルート処理部14dの具
体構成を例示するもので、線形リストを構築するための
作業領域として、具体的には1ラインの配置情報を格納
できるメモリで構成される。
The "route" shown in FIG. 2 (B) exemplifies a specific configuration of the route processing unit 14d of the cache memory control circuit 14, which is specifically used as a work area for constructing a linear list. Is composed of a memory capable of storing arrangement information of one line.

【0015】図3に線形リストの構築処理内容を示すフ
ローチャートを、図4に線形リストを基にしたダーティ
エントリの検索処理内容を示すフローチャートをそれぞ
れ示す。
FIG. 3 is a flowchart showing the contents of the processing for constructing the linear list, and FIG. 4 is a flowchart showing the contents of the processing for retrieving the dirty entry based on the linear list.

【0016】CPU11がキャッシュメモリ13のデータ領
域13aへデータを書込む際には、前回ダーティとなった
キャッシュエントリのライン情報であるルートの値を現
キャッシュラインに対応した線形リスト構成情報格納領
域に保存し、ルートを現ラインのライン番号で更新す
る。この一連の操作を図3に示す。すなわち、図3で
は、ダーティとなった現ラインの線形リスト構成情報格
納領域13c該当部分をルート処理部14dの内容で更新設
定し(ステップA1 )、次いでルート処理部14dの内容
をダーティとなった現ラインのラインNo.で更新設定
する(ステップA2)というものである。
When the CPU 11 writes data to the data area 13a of the cache memory 13, the value of the route, which is the line information of the cache entry that was dirty last time, is stored in the linear list configuration information storage area corresponding to the current cache line. Save and update route with line number of current line. This series of operations is shown in FIG. That is, in FIG. 3, the relevant portion of the linear list configuration information storage area 13c of the dirty current line is updated and set with the contents of the route processing unit 14d (step A1), and then the contents of the route processing unit 14d are changed to dirty. The line number of the current line. The update setting is performed at step A2.

【0017】以上の処理内容について具体的に図2に沿
って動作を追認するものとする。ルート処理部14dには
初期値としてヌル(Null)情報が格納されており、
例えばキャッシュメモリ13のデータ領域13aのラインN
o.3が最初にダーティとなると、ルート処理部14dの
内容が同キャッシュエントリのラインNo.である
“3”に更新される。続いてルート処理部14dの最初の
格納内容であるヌル情報が代わってラインNo.3の線
形リスト構成情報格納領域13cに格納される。
The operation of the above processing contents will be specifically confirmed with reference to FIG. Null information is stored as an initial value in the route processing unit 14d,
For example, the line N of the data area 13a of the cache memory 13
o. When 3 is first dirty, the contents of the route processing unit 14d indicate that the line number of the same cache entry. Is updated to “3”. Then, the null information, which is the first stored content of the route processing unit 14d, replaces the line number. No. 3 linear list configuration information storage area 13c.

【0018】続いてデータ領域13aのラインNo.2が
ダーティとなると、ルート処理部14dの現情報“3”が
ラインNo.2の線形リスト構成情報格納領域13cへ格
納される。続いてルート処理部14dの内容が同キャッシ
ュエントリのラインNo.である“2”に更新される。
Then, the line number of the data area 13a. When 2 becomes dirty, the current information "3" of the route processing unit 14d indicates the line number. It is stored in the second linear list configuration information storage area 13c. Then, the contents of the route processing unit 14d are the line number of the same cache entry. Is updated to "2".

【0019】このような操作を繰返すことで図2に示す
に如く例えば合計5箇所のキャッシュエントリがダーテ
ィとなった時点で、次にキャッシュメモリ13のフラッシ
ュ処理を行なうものとする。
As shown in FIG. 2, for example, when a total of 5 cache entries become dirty by repeating such operations, the cache memory 13 is flushed next.

【0020】キャッシュメモリ13のフラッシュ処理を行
なうには、図4に示す如く最初にルート処理部14dの値
を参照し(ステップB1 )、その値がヌルであるか否か
の判断を行なう(ステップB2 )。ヌルであればフラッ
シュ処理を終了し、そうでなければルート処理部14dに
よって示されるラインのフラッシュ処理へ進み(ステッ
プB3 )、そのラインをフラッシュし(ステップB4
)、対応する線形リスト構成情報格納領域13cの内容
でルート処理部14dを更新した(ステップB5 )後に、
線形リスト構成情報格納領域13cの当該ラインをヌル情
報で更新する(ステップB6 )。
In order to perform the flush processing of the cache memory 13, first, as shown in FIG. 4, the value of the route processing unit 14d is referred to (step B1) and it is judged whether or not the value is null (step). B2). If it is null, the flash process is terminated. If not, the process proceeds to the flash process of the line indicated by the route processing unit 14d (step B3), and the line is flashed (step B4).
), After updating the route processing unit 14d with the contents of the corresponding linear list configuration information storage area 13c (step B5),
The line in the linear list configuration information storage area 13c is updated with null information (step B6).

【0021】以上の処理内容についても具体的に図2に
沿って動作を追認するものとする。キャッシュメモリ13
のデータ領域13aのフラッシュ処理のためにダーティエ
ントリを検索するには、最初にルート処理部14dの内容
を参照する(ステップB1 )。ルート処理部14dの値が
ヌルであると判断すると(ステップB2 )その時点でこ
のフラッシュ処理を終了するが、ここでは最初にルート
処理部14dが示した値が“6”であるため、ラインN
o.6のフラッシュ操作へ進む(ステップB3 )。
Regarding the above processing contents, the operation will be specifically confirmed in accordance with FIG. Cache memory 13
In order to retrieve the dirty entry for the flash processing of the data area 13a, the contents of the route processing section 14d are first referred to (step B1). When it is determined that the value of the route processing unit 14d is null (step B2), the flash process is terminated at that point. However, since the value initially shown by the route processing unit 14d is "6", the line N
o. Proceed to flash operation 6 (step B3).

【0022】ラインNo.6のラインをフラッシュ処理
し(ステップB4 )、次にフラッシュ処理するキャッシ
ュエントリのラインNo.である、線形リスト構成情報
格納領域13cの内容“1”でルート処理部14dを更新設
定してから(ステップB5 )、線形リスト構成情報格納
領域13cの当該ラインをヌルで初期化する(ステップB
6 )。
Line No. The line No. 6 is flushed (step B4), and the line number of the cache entry to be flushed next. That is, after updating and setting the route processing unit 14d with the content "1" of the linear list configuration information storage area 13c (step B5), the line in the linear list configuration information storage area 13c is initialized with null (step B).
6).

【0023】続いてラインNo.1のキャッシュライン
をフラッシュし、次にフラッシュ処理するキャッシュエ
ントリのラインNo.である、線形リスト構成情報格納
領域13cの内容“5”でルート処理部14dを初期化して
からヌルによる線形リスト構成情報格納領域13cの初期
化を行なう。
Subsequently, the line No. The cache line of No. 1 is flushed, and the line number of the cache entry to be flushed next. That is, the route processing unit 14d is initialized with the content "5" of the linear list configuration information storage area 13c, and then the linear list configuration information storage area 13c is initialized by null.

【0024】以上のようなフラッシュ処理の操作をルー
ト処理部14dからヌルが戻るまで繰返すことにより、キ
ャッシュメモリ13のデータ領域13aにおけるダーティエ
ントリを全てフラッシュ処理することができる。
By repeating the above-described flush processing operation from the route processing unit 14d until null returns, all the dirty entries in the data area 13a of the cache memory 13 can be flushed.

【0025】[第2実施例]以下本発明をキャッシュメ
モリ内のある特定された限定範囲のダーティエントリの
みを対象としてその制御を行なう制御装置に適用した場
合の第2実施例について図面を参照して説明する。
[Second Embodiment] A second embodiment in which the present invention is applied to a control device for controlling only dirty entries within a specified limited range in a cache memory will be described below with reference to the drawings. Explain.

【0026】図5はその回路構成を示すもので、基本的
には上記図1に示したものと同様であるので、同一部分
には同一符号を付してその説明は省略する。しかして、
キャッシュメモリ制御回路内には、制御回路14a、タグ
情報バッファ14b、リスト情報バッファ14c及びルート
処理部14dの他に、フラッシュ処理中のライン位置を示
す現ラインポインタ14e、フラッシュ処理を行なうライ
ンの直前のフラッシュ範囲外ダーティライン位置を示す
バックアップポインタ14f、フラッシュ処理するキャッ
シュメモリの領域の終了ライン位置を示す終了ラインポ
インタ(図では「Uラインポインタ」と示す)14g、フ
ラッシュ処理するキャッシュメモリの領域の開始ライン
を示す開始ラインポインタ(図では「Lラインポイン
タ」と示す)14hを有する。
FIG. 5 shows a circuit configuration thereof, which is basically the same as that shown in FIG. 1, so that the same portions are denoted by the same reference numerals and the description thereof will be omitted. Then
In the cache memory control circuit, in addition to the control circuit 14a, the tag information buffer 14b, the list information buffer 14c, and the route processing unit 14d, the current line pointer 14e indicating the line position during the flush process, and the line immediately before the flush process Backup pointer 14f indicating the dirty line position outside the flash range, end line pointer (indicated as "U line pointer" in the figure) 14g indicating the end line position of the cache memory area to be flushed, and the cache memory area to be flushed It has a start line pointer 14h (indicated as "L line pointer" in the figure) indicating the start line.

【0027】次に上記第1実施例の具体的な動作につい
て説明する。図6(A)は線形リストによるダーティエ
ントリの検索を行なう上記キャッシュメモリ13の具体構
成を例示するものである。図中、「ライン番号(N
o.)」は各キャッシュエントリのラインを、「キャッ
シュエントリ」はデータ自身を示し、共に上記データ領
域13aを構成するものであるが、図6(A)ではそのデ
ータがキャッシュに格納されてから更新されたかどうか
をダーティ(更新)/クリーン(未更新)として表記し
てある。ここで括弧内の回数値は、各データが更新され
た時の順番を示している。また、「タグ領域」13bは上
述した如く計算機システムに依存した、キャッシュメモ
リ13操作に必要なビット列を格納する領域であり、「線
形リスト」13cは、各キャッシュエントリ毎に追加され
たライン情報であり、ダーティな状態にあるキャッシュ
エントリの線形リストを構成するための直前にダーティ
となったライン領域の情報が格納される。図中のヌル
(Null)は初期値を示す。
Next, the specific operation of the first embodiment will be described. FIG. 6A exemplifies a specific configuration of the cache memory 13 that searches for a dirty entry using a linear list. In the figure, "Line number (N
o. ) ”Indicates the line of each cache entry, and“ cache entry ”indicates the data itself, and together form the data area 13a. In FIG. 6A, the data is stored in the cache and then updated. Whether or not it is shown as dirty (updated) / clean (not updated). Here, the number of times value in parentheses indicates the order when each data is updated. The "tag area" 13b is an area for storing a bit string required for operating the cache memory 13 depending on the computer system as described above, and the "linear list" 13c is line information added for each cache entry. Yes, information about the line area that was dirty immediately before it is used to form a linear list of cache entries that are dirty is stored. Null in the figure indicates an initial value.

【0028】また、図6(B)に示す「ルート」は、上
記キャッシュメモリ制御回路14のルート処理部14dの具
体構成を例示するもので、線形リストを構築するための
作業領域として、具体的には1ラインの配置情報を格納
できるメモリで構成される。
The "route" shown in FIG. 6 (B) exemplifies a specific configuration of the route processing unit 14d of the cache memory control circuit 14, which is specifically used as a work area for constructing a linear list. Is composed of a memory capable of storing arrangement information of one line.

【0029】CPU11がキャッシュメモリ13のデータ領
域13aへデータを書込む際には、前回ダーティとなった
キャッシュエントリのライン情報であるルートの値を現
キャッシュラインに対応した線形リスト構成情報格納領
域に保存し、ルートを現ラインのライン番号で更新す
る。この一連の操作を図7に示す。
When the CPU 11 writes data to the data area 13a of the cache memory 13, the value of the route, which is the line information of the cache entry that was dirty last time, is stored in the linear list configuration information storage area corresponding to the current cache line. Save and update route with line number of current line. This series of operations is shown in FIG.

【0030】すなわち、図7は上記線形リスト構成情報
格納領域13cを構築するための処理内容を示すものであ
り、まずダーティとなった現ラインの線形リスト構成情
報格納領域13c該当部分をルート処理部14dの内容で更
新設定し(ステップC1 )、次いでルート処理部14dの
内容をダーティとなった現ラインのラインNo.で更新
設定する(ステップC2 )というものである。
That is, FIG. 7 shows the processing contents for constructing the above-mentioned linear list configuration information storage area 13c. First, the corresponding portion of the linear list configuration information storage area 13c of the dirty current line is processed by the route processing section. 14d is updated and set (step C1), and then the contents of the route processing section 14d are changed to the dirty line No. The update setting is performed at step C2.

【0031】以上の処理内容について具体的に図6に沿
って動作を追認するものとする。ルート処理部14dには
初期値としてヌル(Null)情報が格納されており、
例えばキャッシュメモリ13のデータ領域13aのラインN
o.3が最初にダーティとなると、ルート処理部14dの
内容が同キャッシュエントリのラインNo.である
“3”に更新される。続いてルート処理部14dの最初の
格納内容であるヌル情報が代わってラインNo.3の線
形リスト構成情報格納領域13cに格納される。
The operation of the above processing contents will be specifically confirmed with reference to FIG. Null information is stored as an initial value in the route processing unit 14d,
For example, the line N of the data area 13a of the cache memory 13
o. When 3 is first dirty, the contents of the route processing unit 14d indicate that the line number of the same cache entry. Is updated to “3”. Then, the null information, which is the first stored content of the route processing unit 14d, replaces the line number. No. 3 linear list configuration information storage area 13c.

【0032】続いてデータ領域13aのラインNo.2が
ダーティとなると、ルート処理部14dの現情報“3”が
ラインNo.2の線形リスト構成情報格納領域13cへ格
納される。続いてルート処理部14dの内容が同キャッシ
ュエントリのラインNo.である“2”に更新される。
Then, the line number of the data area 13a. When 2 becomes dirty, the current information "3" of the route processing unit 14d indicates the line number. It is stored in the second linear list configuration information storage area 13c. Then, the contents of the route processing unit 14d are the line number of the same cache entry. Is updated to "2".

【0033】このような操作を繰返すことで図6に示す
に如く例えば合計5箇所のキャッシュエントリがダーテ
ィとなった時点で、次にキャッシュメモリ13の範囲を限
定したフラッシュ処理を行なうものとする。
As shown in FIG. 6, by repeating such operations, for example, when a total of five cache entries become dirty, the flush process with the limited range of the cache memory 13 is performed next.

【0034】しかるに、範囲限定のフラッシュ処理を実
行した後に、この範囲限定のフラッシュ処理前に最後に
ダーティとなったキャッシュエントリから連続した線形
リスト構成情報格納領域13cを構築するためには、該最
後にダーティとなったキャッシュエントリのライン情報
を保存しておかなければならない。そのために、限定範
囲内のダーティエントリ検索では、限定範囲の開始ライ
ン位置を記憶する開始ラインポインタ14h、同終了ライ
ン位置を記憶する終了ラインポインタ14g、フラッシュ
処理中のライン情報を記憶する現ラインポインタ14e及
びライン情報をバックアップするためのバックアップポ
インタ14fをキャッシュメモリ制御回路14内に設けるも
のである。
However, in order to construct the continuous linear list configuration information storage area 13c from the cache entry that became the last dirty after executing the range-limited flash processing, before executing this range-limited flush processing, The line information of the dirty cache entry must be saved in. Therefore, in the dirty entry search within the limited range, the start line pointer 14h that stores the start line position of the limited range, the end line pointer 14g that stores the end line position of the limited range, and the current line pointer that stores the line information during the flush process A backup pointer 14f for backing up 14e and line information is provided in the cache memory control circuit 14.

【0035】図8(A)は線形リスト構成情報格納領域
13cにしたがった範囲限定でのダーティエントリの検索
を行なう上記キャッシュメモリ13の具体構成を例示する
ものである。ここでは、フラッシュ処理の範囲を限定す
るものとして、例えばラインNo.1とラインNo.2
のみをフラッシュ処理するものとする。
FIG. 8A shows a linear list configuration information storage area.
13 illustrates a specific configuration of the cache memory 13 that searches for dirty entries in a limited range according to 13c. Here, for example, the line No. is set to limit the range of the flash process. 1 and line No. Two
Only the flash shall be processed.

【0036】また、この図8(A)のキャッシュメモリ
13の内容に対応した現ラインポインタ14e、バックアッ
プポインタ14fの記憶内容の具体構成を図8(B),
(C)に例示する。
Further, the cache memory of FIG. 8 (A)
FIG. 8B shows a specific configuration of the stored contents of the current line pointer 14e and the backup pointer 14f corresponding to the contents of FIG.
An example is shown in (C).

【0037】以下、図9により上記のようにして構築し
た線形リスト構成情報格納領域13cを基にしたダーティ
エントリの検索及びキャッシュメモリ13の限定された範
囲を対象とするフラッシュ処理について述べる。
The dirty entry search based on the linear list configuration information storage area 13c constructed as described above and the flush processing for the limited range of the cache memory 13 will be described below with reference to FIG.

【0038】その処理当初には、まず初期設定として最
初にルート処理部14dの値による現ラインポインタ14e
の更新(ステップD1 )及びバックアップポインタ14f
のヌルによる初期化(ステップD2 )を行ない、以後の
フラッシュ処理操作は全て現ラインポインタ14eを使用
して行なうものとする。
At the beginning of the process, the current line pointer 14e based on the value of the route processing unit 14d is first set as an initialization.
Update (step D1) and backup pointer 14f
The null initialization (step D2) is performed, and all the subsequent flash processing operations are performed using the current line pointer 14e.

【0039】すなわち、現ラインポインタ14eの値を参
照し(ステップD3 )、その値がヌルであるか否か判断
するもので(ステップD4 )、ヌルであればキャッシュ
フラッシュを終了し、そうでなければ現ラインポインタ
14eの示すキャッシュメモリ13のライン領域の線形リス
ト構成情報格納領域13cからライン情報を読出し、これ
をあらたに現ラインポインタ14eに更新設定する(ステ
ップD5 )。
That is, the value of the current line pointer 14e is referred to (step D3) and it is judged whether or not the value is null (step D4). If it is null, the cache flush is ended, and otherwise. Current line pointer
Line information is read from the linear list configuration information storage area 13c of the line area of the cache memory 13 shown by 14e, and this is newly updated and set in the current line pointer 14e (step D5).

【0040】続いてこの更新設定した現ラインポインタ
14eのライン情報が開始ラインポインタ14h及び終了ラ
インポインタ14gで指定される範囲内にあるか否か判断
し(ステップD6 )、範囲外であればこの現ラインポイ
ンタ14eのライン情報をバックアップポインタ14fに更
新設定した後(ステップD7 )、上記ステップD5 と同
様にこの現ラインポインタ14eの示すキャッシュメモリ
13のライン領域の線形リスト構成情報格納領域13cから
ライン情報を読出し、これをあらたに現ラインポインタ
14eに更新設定し(ステップD8 )、再び上記ステップ
D3 からの処理を繰返す。
Next, this updated and set current line pointer
It is judged whether or not the line information of 14e is within the range specified by the start line pointer 14h and the end line pointer 14g (step D6). If it is out of the range, the line information of the current line pointer 14e is set to the backup pointer 14f. After the update is set (step D7), the cache memory indicated by the current line pointer 14e is displayed as in step D5.
The line information is read from the linear list configuration information storage area 13c of the 13 line areas, and the current line pointer is newly read.
14e is updated and set (step D8), and the processing from step D3 is repeated again.

【0041】また、上記ステップD6 で現ラインポイン
タ14eのライン情報が開始ラインポインタ14h及び終了
ラインポインタ14gで指定される範囲内にあると判断し
た際には、キャッシュメモリ13の当該ラインをフラッシ
ュ処理し(ステップD9 )、このフラッシュ処理した当
該ラインの線形リスト構成情報格納領域13cのライン情
報で現ラインポインタ14eを更新設定した後に(ステッ
プD10)、該線形リスト構成情報格納領域13cをヌルに
より更新設定する(ステップD11)。
If it is determined in step D6 that the line information of the current line pointer 14e is within the range specified by the start line pointer 14h and the end line pointer 14g, the line in the cache memory 13 is flushed. Then, after the current line pointer 14e is updated and set with the line information of the linear list configuration information storage area 13c of the flash-processed line (step D10), the linear list configuration information storage area 13c is updated with null. Set (step D11).

【0042】その後、バックアップポインタ14fの示す
値がヌルであるか否か判断し(ステップD12)、ヌルで
なければバックアップポインタ14fの内容が示すキャッ
シュメモリ13の当該ラインの線形リスト構成情報格納領
域13cを現ラインポインタ14eの値で更新した後(ステ
ップD14)、上記ステップD3 からの処理に戻る。
Thereafter, it is judged whether or not the value indicated by the backup pointer 14f is null (step D12), and if it is not null, the linear list configuration information storage area 13c of the relevant line of the cache memory 13 indicated by the content of the backup pointer 14f. Is updated with the value of the current line pointer 14e (step D14), and the process returns to step D3.

【0043】また、ステップD12でバックアップポイン
タ14fの内容がヌルであった場合には、最後にダーティ
となったキャッシュメモリのライン領域が上記開始ライ
ンポインタ14h及び終了ラインポインタ14gで指定され
る指定範囲内に含まれていたことを示すので、現ライン
ポインタ14eの値でルート処理部14dを更新し、最後に
ダーティとなったライン情報を更新した後(ステップD
13)、上記ステップD3 からの処理に戻る。
If the content of the backup pointer 14f is null in step D12, the last dirty line area of the cache memory is designated by the start line pointer 14h and the end line pointer 14g. Since it indicates that the line information has been included in the route information, the route processing unit 14d is updated with the value of the current line pointer 14e, and the last dirty line information is updated (step D
13) and returns to the processing from step D3.

【0044】以上の処理内容についても具体的に図8に
沿って動作を追認するものとする。キャッシュメモリ13
のデータ領域13aのフラッシュ処理のためにダーティエ
ントリを検索するには、検索を開始するキャッシュメモ
リのライン領域のラインNo.“6”をルート処理部14
dから現ラインポインタ14eへコピーし(ステップD1
)、バックアップポインタ14fの内容をヌルで初期化
する(ステップD2 )。
Regarding the above processing contents, the operation will be specifically confirmed in accordance with FIG. Cache memory 13
In order to search for a dirty entry for the flash processing of the data area 13a, the line number of the line area of the cache memory where the search is started. “6” is route processing unit 14
Copy from d to current line pointer 14e (step D1
), The contents of the backup pointer 14f are initialized to null (step D2).

【0045】次にルート処理部14dの内容を参照して値
がヌルであればこのフラッシュ処理を終了するが、最初
に現ラインポインタ14eの示す値が“6”であるため、
これを判断し(ステップD4 )、さらにこのラインN
o.6のライン領域が指定範囲外であることを判断して
(ステップD6 )、現キャッシュラインのラインNo.
“6”をバックアップポインタ14fに退避させ(ステッ
プD7 )、対応する線形リストのライン情報“1”で現
ラインポインタ14eを更新する(ステップD8 )。
Next, referring to the contents of the route processing unit 14d, if the value is null, the flashing process is terminated, but first, since the value indicated by the current line pointer 14e is "6",
This is judged (step D4), and this line N
o. It is judged that the line area of No. 6 is out of the specified range (step D6), and the line No. of the current cache line.
"6" is saved in the backup pointer 14f (step D7), and the current line pointer 14e is updated with the line information "1" of the corresponding linear list (step D8).

【0046】次いで、キャッシュメモリのフラッシュ処
理のために次のダーティエントリを検索するべく、現ラ
インポインタ14eの内容を参照し(ステップD3 )、現
ラインポインタ14eの値が“1”であるためキャッシュ
メモリ13のラインNo.1のライン領域の操作へ進む。
Then, in order to retrieve the next dirty entry for the cache memory flush process, the contents of the current line pointer 14e are referred to (step D3), and since the value of the current line pointer 14e is "1", the cache is cached. Line No. of memory 13 Proceed to the operation of the 1 line area.

【0047】現ラインが指定範囲内であるためにこれを
判断し(ステップD6 )、ラインNo.1のライン領域
のフラッシュ処理を実行し(ステップD9 )、このライ
ンNo.1の対応する線形リストの内容“5”で現ライ
ンポインタ14eを更新し(ステップD10)、さらに該線
形リストの内容をヌルで更新した後(ステップD11)、
現在のバックアップの値が“6”であるのでこれがヌル
でないと判断してから(ステップD12)、ラインNo.
6のライン領域の線形リストを現ラインポインタ14eの
示す“5”で更新する。
This is judged because the current line is within the specified range (step D6), and the line No. The flash processing of the line area of No. 1 is executed (step D9). After updating the current line pointer 14e with the content "5" of the corresponding linear list of 1 (step D10), and further updating the content of the linear list with null (step D11),
Since the current backup value is "6", it is determined that this is not null (step D12), and then the line number.
The linear list of the line area 6 is updated with "5" indicated by the current line pointer 14e.

【0048】このような操作を線形リストからヌルが戻
るまで繰返すことにより、指定された範囲内、ここでは
ラインNo.1とラインNo.2にある全てのダーティ
エントリをフラッシュ処理することができるようにな
る。
By repeating such an operation from the linear list until a null is returned, within the designated range, in this case, the line number. 1 and line No. Now all dirty entries in 2 can be flushed.

【0049】[第3実施例]以下本発明の第3実施例に
ついて図面を参照して説明する。図10はその回路構成
を示すもので、21は演算を実行するCPU、22はバス接
続されたメインメモリ、23は上記CPU21と上記メイン
メモリ22が接続されたバスとの間に介在されたキャッシ
ュメモリである。
[Third Embodiment] A third embodiment of the present invention will be described below with reference to the drawings. FIG. 10 shows the circuit configuration thereof. 21 is a CPU for executing an operation, 22 is a main memory connected to a bus, and 23 is a cache interposed between the CPU 21 and a bus connected to the main memory 22. It is a memory.

【0050】キャッシュメモリ23は、CPU21の書込み
によって上記メインメモリ22のデータの一部を保持する
データ領域23aと、このキャッシュメモリ23の操作に必
要なビット列を格納する領域であるタグ領域23bとを有
する。
The cache memory 23 has a data area 23a for holding a part of the data in the main memory 22 by writing by the CPU 21 and a tag area 23b for storing a bit string required for the operation of the cache memory 23. Have.

【0051】そして、このキャッシュメモリ23を制御す
るものとして、キャッシュメモリ制御回路24が設けられ
る。このキャッシュメモリ制御回路24は、フラッシュ処
理を実現するための統括的な制御を行なう制御回路24
a、上記CPU21への割込み要求を発生する割込み要求
発生回路24b、上記キャッシュメモリ13におけるライン
領域がメインメモリ22の対応データと異なる更新された
データを保持する際にそのライン領域を示すライン情報
をテーブルとして保持するテーブル領域24c、上記テー
ブル領域24cの書込み/読出しの際にそのポイント位置
を指示するテーブルポインタ24d及びテーブル領域24c
の記憶容量に応じたテーブルポインタ24dの指示ポイン
トの限界位置を保持する限界ポインタ24eを有する。
A cache memory control circuit 24 is provided to control the cache memory 23. The cache memory control circuit 24 is a control circuit 24 that performs overall control for realizing flash processing.
a, an interrupt request generation circuit 24b that generates an interrupt request to the CPU 21, and line information indicating the line area when the line area in the cache memory 13 holds updated data different from the corresponding data in the main memory 22. A table area 24c to be held as a table, a table pointer 24d and a table area 24c for pointing the point position when writing / reading the table area 24c.
Has a limit pointer 24e for holding the limit position of the pointing point of the table pointer 24d according to the storage capacity of the.

【0052】次に上記第3実施例の具体的な動作につい
て説明する。図11(A)はダーティエントリを有する
上記キャッシュメモリ23の状態を、図11(B)は上記
キャッシュメモリ23に対応したキャッシュメモリ制御回
路のテーブル領域24c及びテーブルポインタ24dの状態
を例示するものである。
Next, the specific operation of the third embodiment will be described. FIG. 11A illustrates the state of the cache memory 23 having dirty entries, and FIG. 11B illustrates the state of the table area 24c and the table pointer 24d of the cache memory control circuit corresponding to the cache memory 23. is there.

【0053】図11(A)中、「ライン番号(N
o.)」は各キャッシュエントリのライン位置を示して
いる。また、「キャッシュエントリ」はデータ自身を示
し、図11(A)でデータがキャッシュメモリ23に格納
されてから更新されたかどうかをダーティ(更新)/ク
リーン(未更新)として図中に表記してある。ここで、
括弧内の回数値は、各データが更新された時の順番を示
している。また、「タグ領域」23bは上述した如く計算
機システムに依存した、キャッシュメモリ23操作に必要
なビット列を格納する領域である。
In FIG. 11A, "line number (N
o. ) ”Indicates the line position of each cache entry. Further, the “cache entry” indicates the data itself, and whether or not the data has been updated after being stored in the cache memory 23 in FIG. 11A is described as dirty (update) / clean (unupdated) in the figure. is there. here,
The count value in parentheses indicates the order in which each data was updated. The "tag area" 23b is an area for storing a bit string required for operating the cache memory 23, which depends on the computer system as described above.

【0054】これに対して図11(B)のテーブル領域
24cは、ダーティエントリのライン情報を格納するため
の記憶領域であり、m個のテーブルエントリから構成さ
れ、テーブルポインタ24dが該テーブル領域24c内での
変位をポイント指示している。ここでテーブル領域24c
のテーブルエントリ数mは、キャッシュメモリ23の全ラ
イン数n分のダーティエントリを対象とした場合では
「m=n」となり、特定ライン数分のダーティエントリ
を対象とした場合では、限界ポインタ24eに設定されて
いる特定数と等しいものとなる。
On the other hand, the table area of FIG. 11 (B)
Reference numeral 24c is a storage area for storing the line information of the dirty entry, is composed of m table entries, and the table pointer 24d points the displacement within the table area 24c. Here table area 24c
The number m of table entries in the cache memory 23 is “m = n” when the number of dirty entries corresponding to the total number n of lines in the cache memory 23 is a target, and the number of dirty entries corresponding to a specific number of lines is a limit pointer 24e. It will be equal to the specified number.

【0055】図12は上記テーブル領域24cを構築する
ための処理内容を示すフローチャートであり、主として
上記制御回路24aの動作制御により実行されるものであ
る。CPU21がキャッシュメモリ23へデータを書込む際
には、テーブルポインタ24dの指示するテーブル領域24
cのテーブルエントリへダーティとなったラインNo.
を格納させ(ステップE1 )、テーブルポインタ24dを
インクリメントした後に(ステップE2 )、テーブルポ
インタ24dの値が限界ポインタ24eのポイント指示する
テーブル領域24cの特定数となったかを判定する(ステ
ップE3 )。
FIG. 12 is a flowchart showing the processing contents for constructing the table area 24c, which is mainly executed by the operation control of the control circuit 24a. When the CPU 21 writes data in the cache memory 23, the table area 24 designated by the table pointer 24d
The line number that became dirty to the table entry of c.
Is stored (step E1) and after the table pointer 24d is incremented (step E2), it is determined whether or not the value of the table pointer 24d becomes the specific number of the table area 24c pointed to by the limit pointer 24e (step E3).

【0056】限界ポインタ24eの特定数に達していない
場合であれば、このダーティエントリに関する処理は終
了するが、限界ポインタ24eの特定数に達しており、フ
ラッシュ処理を行なう範囲を超過していると判定した場
合には、CPU21からキャッシュメモリ23へこれ以上の
書込みが行なわれないように割込み要求発生回路24bか
らCPU21に対して割込み要求の信号を発生させる。こ
の割込みに対する一連の処理操作を図13に示す。
If the specified number of limit pointers 24e has not been reached, the processing for this dirty entry ends, but if the specified number of limit pointers 24e has been reached and the range for performing the flush process is exceeded. When the determination is made, the interrupt request generation circuit 24b generates an interrupt request signal to the CPU 21 so that the CPU 21 does not write any more data into the cache memory 23. A series of processing operations for this interrupt is shown in FIG.

【0057】図13は上記図12の処理により構築され
た上記テーブル領域24cに基づくキャッシュメモリ13の
フラッシュ処理その他の処理内容を示すフローチャート
であり、主として上記制御回路24aの動作制御により実
行されるものである。
FIG. 13 is a flow chart showing the contents of the flash processing of the cache memory 13 and other processing based on the table area 24c constructed by the processing of FIG. 12, which is mainly executed by the operation control of the control circuit 24a. Is.

【0058】割込み要求発生回路24bによりCPU21へ
割込み要求の信号を発生させ(ステップF1 )、CPU
21からキャッシュメモリ23へこれ以上の書込みが行なわ
れないようにした制御回路24aは、次いでテーブルポイ
ンタ24dをデクリメントした後に(ステップF2 )、テ
ーブルポインタ24dの値が“0”(図では「Null」
と示す)となったおらず、したがってまだフラッシュ処
理その他の処理が終了していないことを確認する(ステ
ップF3 )。
The interrupt request generation circuit 24b generates an interrupt request signal to the CPU 21 (step F1), and the CPU
The control circuit 24a which prevents further writing from 21 to the cache memory 23 then decrements the table pointer 24d (step F2) and then the value of the table pointer 24d becomes "0"("Null" in the figure).
It is confirmed that the flash processing and other processing have not been completed yet (step F3).

【0059】その上で制御回路24aは、このテーブルポ
インタ24dの指示ポイントに従ってテーブル領域24cか
らライン情報を読出し、このライン情報に従ったキャッ
シュメモリ23の当該ライン領域をフラッシュ処理する
(ステップF4 )。
Then, the control circuit 24a reads the line information from the table area 24c in accordance with the instruction point of the table pointer 24d, and flashes the line area of the cache memory 23 according to the line information (step F4).

【0060】その後、テーブルポインタ24dの指示ポイ
ントに従ってテーブル領域24cの当該テーブルエントリ
を初期化して“0”(Null)を設定し、再び上記ス
テップF1 からの処理を繰返す。
After that, the table entry in the table area 24c is initialized according to the instruction point of the table pointer 24d to set "0" (Null), and the processing from step F1 is repeated again.

【0061】そして、ステップF3 でテーブルポインタ
24dの値が“0”(Null)となった時点で、この図
13の処理をすべて終了するものである。上記した動作
を図11(A),(B)の内容に沿って追認するものと
する。
Then, in step F3, the table pointer
When the value of 24d becomes "0" (Null), all the processing of FIG. 13 is completed. The above-described operation will be confirmed in accordance with the contents of FIGS. 11 (A) and 11 (B).

【0062】テーブルポインタ24dには最初“0”が格
納されており、キャッシュメモリ23のラインNo.3が
最初にダーティとなると、テーブルポインタ24dによっ
て指定されたテーブル領域24cのNo.0のテーブルエ
ントリに、ダーティエントリのラインNo.であるライ
ン情報“3”が格納され(ステップE1 )、テーブルポ
インタ24dがインクリメントされて“1”となる(ステ
ップE2 )。
First, "0" is stored in the table pointer 24d, and the line No. of the cache memory 23 is stored. When 3 is first dirty, the No. 3 of the table area 24c designated by the table pointer 24d. 0 table entry, dirty entry line number. The line information "3" is stored (step E1), and the table pointer 24d is incremented to "1" (step E2).

【0063】続いてキャッシュメモリ23のラインNo.
2がダーティとなると、テーブルポインタ24dによって
指定されたテーブル領域24cのNo.1のテーブルエン
トリにダーティエントリのラインNo.であるライン情
報“2”が格納され(ステップE1 )、テーブルポイン
タ24dがインクリメントされて“2”となる(ステップ
E2 )。
Subsequently, the line No. of the cache memory 23.
2 becomes dirty, the No. of the table area 24c designated by the table pointer 24d. No. 1 table entry has a dirty entry line number. The line information "2" is stored (step E1), and the table pointer 24d is incremented to "2" (step E2).

【0064】このような操作を繰返すことで丁度図11
に示す如くキャッシュメモリ23の合計5箇所のキャッシ
ュエントリがダーティとなった時点で、テーブルポイン
タ24dの値“5”が限界ポインタ24eに予め設定されて
いる特定数“5”と等しくなったと判定されると(ステ
ップE3 )、CPU21からキャッシュメモリ23へこれ以
上の書込みが行なわれないように割込み要求発生回路24
bからCPU21に対して割込み要求の信号を発生させ
(ステップE4 )、図13によるキャッシュメモリ23の
キャッシュ処理を実行する。
By repeating such an operation, the process shown in FIG.
As shown in FIG. 6, when the cache entry of the cache memory 23 at the total of 5 places becomes dirty, it is determined that the value “5” of the table pointer 24d becomes equal to the specific number “5” preset in the limit pointer 24e. Then, (step E3), the interrupt request generation circuit 24 prevents the CPU 21 from further writing to the cache memory 23.
An interrupt request signal is generated from b to the CPU 21 (step E4), and the cache processing of the cache memory 23 shown in FIG. 13 is executed.

【0065】すなわち図13においては、まずCPU21
からキャッシュメモリ23へこれ以上の書込みが行なわれ
ないように上述した書込み抑制の割込み要求をかけた後
(ステップF1 )、続いてテーブルポインタ24dをデク
リメントする(ステップF2)。デクリメントされたテ
ーブルポインタ24dの値が“0”(Null)を示せば
(ステップF3 )、フラッシュ処理は終了となるが、こ
こでデクリメントされたテーブルポインタ24dの値は
“5”を示し、テーブル領域24cのNo.5のエントリ
No.に対応するライン情報は“6”を示すので、キャ
ッシュメモリ23のラインNo.6のライン領域をフラッ
シュ処理し(ステップF4 )、続けてテーブル領域24c
のエントリNo.5に対応するライン情報“6”を初期
化して“0”(Null)とし(ステップF5 )、再び
ステップF1 に戻る。
That is, in FIG. 13, first, the CPU 21
To the cache memory 23 to issue the above-described write suppression interrupt request (step F1), and then decrement the table pointer 24d (step F2). If the value of the decremented table pointer 24d indicates "0" (Null) (step F3), the flush process is ended, but the value of the decremented table pointer 24d indicates "5", and the table area No. 24c. Entry No. 5 Since the line information corresponding to “6” indicates “6”, the line number of the cache memory 23 is. The line area 6 is subjected to flash processing (step F4), and then the table area 24c
Entry number. The line information "6" corresponding to 5 is initialized to "0" (Null) (step F5), and the process returns to step F1.

【0066】引続き割込み要求をかけた後(ステップF
1 )に、テーブルポインタ24dをデクリメントして
“4”とし(ステップF2 )、ステップF3 を介してテ
ーブル領域24cのNo.4のエントリNo.に対応する
ライン情報“1”によりキャッシュメモリ23のラインN
o.1のライン領域をフラッシュ処理し(ステップF4
)、続けてテーブル領域24cのエントリNo.4に対
応するライン情報“1”を初期化して“0”(Nul
l)とし(ステップF5 )、再びステップF1 に戻る。
After continuously issuing an interrupt request (step F
1), the table pointer 24d is decremented to "4" (step F2), and the No. of the table area 24c is passed through step F3. No. 4 entry number. The line N of the cache memory 23 by the line information “1” corresponding to
o. 1 line area is flashed (step F4
), Followed by the entry No. of the table area 24c. The line information “1” corresponding to 4 is initialized to “0” (Nul
l) (step F5), and the process returns to step F1 again.

【0067】このような操作をテーブルポインタ24dの
値が“0”(Null)になるまで繰返すことにより、
キャッシュメモリ23内に存在するダーティエントリを高
速にフラッシュ処理することができる。
By repeating such an operation until the value of the table pointer 24d becomes "0" (Null),
The dirty entry existing in the cache memory 23 can be flashed at high speed.

【0068】なお、上記実施例ではテーブルポインタ24
dのエントリNo.4が限界ポインタ24eの特定数に達
した時点でキャッシュメモリ23のフラッシュ処理を行な
うこととしたが、特にこの限界ポインタ24eを設けず、
テーブル領域24cの全エントリNo.である値“m”と
なった時点でCPU21へ割込み要求をかけ、図13の処
理を行なうものとしてもよい。
In the above embodiment, the table pointer 24
Entry No. of d. The cache memory 23 is flushed when 4 reaches a specific number of limit pointers 24e, but this limit pointer 24e is not provided.
All entry numbers of the table area 24c. When a certain value "m" is reached, an interrupt request is issued to the CPU 21 and the processing of FIG. 13 may be performed.

【0069】[0069]

【発明の効果】以上詳記した如く本発明によれば、容量
の大きなキャッシュメモリであってもダーティエントリ
をより高速に検索することが可能なキャッシュメモリ制
御装置を提供することができる。
As described above in detail, according to the present invention, it is possible to provide a cache memory control device capable of retrieving a dirty entry at a high speed even in a large capacity cache memory.

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

【図1】本発明の第1実施例に係る回路構成を示すブロ
ック図。
FIG. 1 is a block diagram showing a circuit configuration according to a first embodiment of the present invention.

【図2】図1のキャッシュメモリ及びルート処理部の記
憶状態を例示する図。
FIG. 2 is a diagram illustrating a storage state of a cache memory and a route processing unit of FIG.

【図3】同実施例の動作を説明するためのフローチャー
ト。
FIG. 3 is a flowchart for explaining the operation of the embodiment.

【図4】同実施例の動作を説明するためのフローチャー
ト。
FIG. 4 is a flowchart for explaining the operation of the embodiment.

【図5】本発明の第2実施例に係る回路構成を示すブロ
ック図。
FIG. 5 is a block diagram showing a circuit configuration according to a second embodiment of the present invention.

【図6】図5のキャッシュメモリ及びルート処理部の記
憶状態を例示する図。
FIG. 6 is a diagram illustrating a storage state of a cache memory and a route processing unit of FIG.

【図7】同実施例の動作を説明するためのフローチャー
ト。
FIG. 7 is a flowchart for explaining the operation of the embodiment.

【図8】図5のキャッシュメモリ、現ラインポインタ及
びバックアップポインタの記憶状態を例示する図。
FIG. 8 is a diagram exemplifying a storage state of a cache memory, a current line pointer, and a backup pointer of FIG.

【図9】同実施例の動作を説明するためのフローチャー
ト。
FIG. 9 is a flowchart for explaining the operation of the embodiment.

【図10】本発明の第3実施例に係る回路構成を示すブ
ロック図。
FIG. 10 is a block diagram showing a circuit configuration according to a third embodiment of the present invention.

【図11】図10のキャッシュメモリ、テーブル領域及
びテーブルポインタの記憶状態を例示する図。
11 is a diagram exemplifying storage states of a cache memory, a table area, and a table pointer of FIG.

【図12】同実施例の動作を説明するためのフローチャ
ート。
FIG. 12 is a flowchart for explaining the operation of the embodiment.

【図13】同実施例の動作を説明するためのフローチャ
ート。
FIG. 13 is a flowchart for explaining the operation of the embodiment.

【図14】従来のキャッシュメモリの構成を例示する
図。
FIG. 14 is a diagram illustrating a configuration of a conventional cache memory.

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

11,21…CPU、12,22…メインメモリ、13,23…キャ
ッシュメモリ、13a,23a…データ領域、13b,23b…
タグ領域、13c…線形リスト構成情報格納領域、14,24
…キャッシュメモリ制御回路、14a,24a…制御回路、
14b…タグ情報バッファ、14c…リスト情報バッファ、
14d…ルート処理部、14e…現ラインポインタ、14f…
バックアップポインタ、14g…終了ラインポインタ、14
h…開始ラインポインタ、24b…割込み要求発生回路、
24c…テーブル領域、24d…テーブルポインタ、24e…
限界ポインタ。
11, 21 ... CPU, 12, 22 ... Main memory, 13, 23 ... Cache memory, 13a, 23a ... Data area, 13b, 23b ...
Tag area, 13c ... Linear list configuration information storage area, 14, 24
... Cache memory control circuit, 14a, 24a ... Control circuit,
14b ... tag information buffer, 14c ... list information buffer,
14d ... Route processing unit, 14e ... Current line pointer, 14f ...
Backup pointer, 14g ... End line pointer, 14
h ... start line pointer, 24b ... interrupt request generation circuit,
24c ... table area, 24d ... table pointer, 24e ...
Limit pointer.

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 メインメモリのデータの一部を保持する
キャッシュメモリの更新情報を検索するキャッシュメモ
リ制御装置において、 該キャッシュメモリのライン領域毎に設けられ、該ライ
ン領域がメインメモリの対応データと異なる更新された
データを保持する際に、その直前にデータが更新された
ライン領域の情報を示すライン情報を記憶する更新記憶
手段と、 上記更新記憶手段に記憶される最新の更新されたライン
領域の情報を示すルート情報を記憶するルート記憶手段
と、 上記ルート記憶手段のルート情報と上記更新記憶手段の
ライン情報とに基づいて上記キャッシュメモリのライン
領域を線形リスト状に検索し、各該当ラインのデータを
上記メインメモリへ書戻すフラッシュ処理を実行するキ
ャッシュ制御手段とを具備することを特徴とするキャッ
シュメモリ制御装置。
1. A cache memory control device for retrieving update information of a cache memory that holds a part of data in a main memory, wherein the line area is provided for each line area of the cache memory, and the line area corresponds to corresponding data in the main memory. When storing different updated data, update storage means for storing line information indicating information of the line area where the data was updated immediately before, and the latest updated line area stored in the update storage means. Route storage means for storing route information indicating the information of the above, and a line list of the cache memory is searched in a linear list based on the route information of the route storage means and the line information of the update storage means, and each corresponding line Cache control means for executing a flash process for writing back the data of the above to the main memory. A characteristic cache memory control device.
【請求項2】 フラッシュ処理するキャッシュメモリの
範囲の開始ラインを示すポイントを記憶する開始ライン
ポイント記憶手段と、 フラッシュ処理するキャッシュメモリの範囲の終了ライ
ンを示すポイントを記憶する終了ラインポイント記憶手
段とをさらに具備し、 上記キャッシュ制御手段は、上記開始ラインポイント記
憶手段と上記終了ラインポイント記憶手段の記憶内容で
示されるキャッシュメモリの範囲のみをフラッシュ処理
の対象とすることを特徴とする請求項1記載のキャッシ
ュメモリ制御装置。
2. A start line point storage means for storing a point indicating a start line of a range of cache memory to be flushed, and an end line point storage means for storing a point indicating an end line of a range of cache memory to be flushed. 3. The cache control means further includes only the range of the cache memory indicated by the stored contents of the start line point storage means and the end line point storage means as the target of the flush processing. A cache memory control device as described.
【請求項3】 上記キャッシュ制御手段は該キャッシュ
メモリのメインメモリの対応データと異なる更新された
データを保持するライン領域の数が特定値となった時点
でフラッシュ処理を実行することを特徴とする請求項1
記載のキャッシュメモリ制御装置。
3. The cache control means executes the flush process when the number of line areas holding updated data different from corresponding data in the main memory of the cache memory reaches a specific value. Claim 1
A cache memory control device as described.
【請求項4】 メインメモリのデータの一部を保持する
キャッシュメモリの更新情報を検索するキャッシュメモ
リ制御装置において、 上記キャッシュメモリのライン領域のデータがメインメ
モリの対応データと異なる更新されたデータを保持する
際にそのライン領域の情報を示すライン情報をテーブル
として記憶するテーブル記憶手段と、 上記テーブル記憶手段の最新記憶位置をポイント指示す
るポイント指示手段と、 このポイント指示手段に従って上記テーブル記憶手段に
記憶されたライン情報を読出し、そのライン情報に従っ
て上記キャッシュメモリの当該ライン領域を検索してそ
のデータを上記メインメモリへ書戻すフラッシュ処理を
実行するキャッシュ制御手段とを具備することを特徴と
するキャッシュメモリ制御装置。
4. A cache memory control device for retrieving update information of a cache memory which holds a part of data of a main memory, wherein updated line data of the cache memory is different from corresponding data of the main memory. Table storage means for storing line information indicating the information of the line area as a table when holding, point instruction means for pointing the latest storage position of the table storage means, and the table storage means according to the point instruction means A cache control means for reading the stored line information, searching the line area of the cache memory according to the line information, and executing a flash process for writing back the data to the main memory. Memory controller.
【請求項5】 上記テーブル記憶手段に記憶可能な位置
をポイント指示する限界ポイント指示手段をさらに具備
し、 上記キャッシュ制御手段は上記ポイント指示手段の指示
ポイントが上記限界ポイントの指示ポイントと等しくな
った時点でフラッシュ処理を実行することを特徴とする
請求項4記載のキャッシュメモリ制御装置。
5. The cache memory further comprises limit point designating means for designating a point that can be stored in the table storage means, and the cache control means has a point designating point of the point designating means equal to a designating point of the limit point. The cache memory control device according to claim 4, wherein a flush process is executed at a point of time.
JP6134696A 1994-06-16 1994-06-16 Cache memory controller Pending JPH086851A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6134696A JPH086851A (en) 1994-06-16 1994-06-16 Cache memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6134696A JPH086851A (en) 1994-06-16 1994-06-16 Cache memory controller

Publications (1)

Publication Number Publication Date
JPH086851A true JPH086851A (en) 1996-01-12

Family

ID=15134462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6134696A Pending JPH086851A (en) 1994-06-16 1994-06-16 Cache memory controller

Country Status (1)

Country Link
JP (1) JPH086851A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320274A (en) * 1997-03-19 1998-12-04 Toshiba Corp Cache flush device, computer system equipped with the device, and recording medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320274A (en) * 1997-03-19 1998-12-04 Toshiba Corp Cache flush device, computer system equipped with the device, and recording medium

Similar Documents

Publication Publication Date Title
CN105830039A (en) Writing information storage device, method and recording medium
JPH0668736B2 (en) Apparatus and method for providing a cache memory unit with a write operation utilizing two system clock cycles
JPS62231382A (en) Image processing method and apparatus
JP2002149491A (en) Processor memory system
JPH086851A (en) Cache memory controller
US5684995A (en) Segment division management system
JPH04251347A (en) Disk file controller and updating method
CN101297274B (en) Method for implementing command synchronization to support multi-threaded non-volatile memory file system
JPS6022376B2 (en) Cache memory control device
JP3037375B2 (en) File compression processing method
JPH0991195A (en) Block memory management device
JPH05334194A (en) Information processing equipment
JP3092663B2 (en) Main memory swapping method
JPH05108426A (en) Data file management system
JPH0793192A (en) File management method
JPH05151037A (en) Reorganization processing system for database in business processing
JPH05250243A (en) Data processing system for extended storage device
KR940005774B1 (en) Extended Memory Access Method
JPS6035692B2 (en) Buffer management method
JPS63280349A (en) File recovery method
JPH0546375A (en) Editor device
JPS6367213B2 (en)
JPH0785089A (en) Character processor
JPS63168723A (en) Data merge circuit
JPH04191926A (en) Assigned size determining method for main storage device