JPH06103169A - Read data prefetching mechanism for central arithmetic processor - Google Patents

Read data prefetching mechanism for central arithmetic processor

Info

Publication number
JPH06103169A
JPH06103169A JP4249657A JP24965792A JPH06103169A JP H06103169 A JPH06103169 A JP H06103169A JP 4249657 A JP4249657 A JP 4249657A JP 24965792 A JP24965792 A JP 24965792A JP H06103169 A JPH06103169 A JP H06103169A
Authority
JP
Japan
Prior art keywords
address
register
read data
priority
addresses
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
JP4249657A
Other languages
Japanese (ja)
Inventor
Makoto Sano
誠 佐野
Masashi Futawatari
政志 二渡
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
NEC Gunma Ltd
Original Assignee
NEC Corp
NEC Gunma Ltd
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, NEC Gunma Ltd filed Critical NEC Corp
Priority to JP4249657A priority Critical patent/JPH06103169A/en
Publication of JPH06103169A publication Critical patent/JPH06103169A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To reduce the access frequency to a main storage and to improve the performance of a central arithmetic processor containing a cache by prefetching the read data based on the past access history. CONSTITUTION:An address monitoring part 9 is provided to decide the address continuity together with an address table 10 which stores the continuous addresses, a continuous address line 11 which is connected to the part 9 and the table 10, a priority control part 15 which controls the priority to leave the addresses in the table 10, a replacement request control part 16 which decides the reading destination of the read data and produced a request, and a red data buffer 17 which stores the data prefetched from a main storage 5.

Description

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

【0001】[0001]

【産業上の利用分野】本発明はキャッシュメモリを有す
る中央演算処理装置のリードデータプリフェッチ機構に
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a read data prefetch mechanism for a central processing unit having a cache memory.

【0002】[0002]

【従来の技術】従来のキャッシュメモリを有する中央演
算処理装置は、キャッシュメモリの容量を大きくするこ
とによりキャッシュヒット率を上げたり、キャッシュ・
アクセスのあったブロックのアドレス上の次のブロック
がCPUにアクセスされると予測して予めキャッシュメ
モリに取り込んでおく方式などがある。
2. Description of the Related Art A central processing unit having a conventional cache memory increases the cache hit rate by increasing the capacity of the cache memory,
There is a method of predicting that the next block on the address of the accessed block will be accessed by the CPU and prefetching it in the cache memory in advance.

【0003】[0003]

【発明が解決しようとする課題】従来の技術は、上述の
ようにしてキャッシュヒット率を上げて主記憶装置に対
するリードアクセスの頻度を下げることにより性能アッ
プを図っていたが、キャッシュメモリの大容量化は常に
コストが問題となる。またキャッシュアクセスのあった
ブロックのアドレス上の次のブロックを予めキャッシュ
メモリへ取り込んでおく方式は、主記憶メモリの局所性
による次のブロックにリードアクセスが発生する確立は
高いが、次のブロックにリードアクセスが発生しなかっ
た場合は、有効であったかもしれないデータをリプレー
スにより追出すこともあり、却って性能が悪化する場合
があるという欠点があった。
In the prior art, the performance was improved by increasing the cache hit rate and reducing the frequency of read access to the main storage device as described above, but the large capacity of the cache memory was used. There is always a problem with cost. In addition, the method of fetching the next block at the address of the block that has been cache-accessed into the cache memory in advance has a high probability that a read access will occur in the next block due to the locality of the main memory, but the next block If the read access does not occur, data that may have been valid may be replaced by replacement, which may rather deteriorate the performance.

【0004】そこで本発明の目的は、キャッシュメモリ
を大容量化することなく、また、やみくもに次のブロッ
クを予めキャッシュメモリに取込むのではなく、過去の
リードアクセスの履歴に基づいてリードテータをプリフ
ェッチしてバッファに蓄えておくことにより、主記憶装
置に対するリードアクセスの頻度を下げることにある。
Therefore, an object of the present invention is to provide a read data based on the past read access history without increasing the capacity of the cache memory and blindly fetching the next block into the cache memory in advance. By prefetching and storing in the buffer, the frequency of read access to the main storage device is reduced.

【0005】[0005]

【課題を解決するための手段】本発明はアドレス,デー
タ線および制御線で構成された主記憶バスに接続された
主記憶装置とキャッシュメモリを有する中央演算処理装
置のリードデータプリフェッチにおいて、(A)主記憶
リードアクセスが前回の主記憶リードアクセスのアドレ
スと連続したアドレスにアクセスしかつ、キャッシュメ
モリの転送単位ブロックが2つ以上のブロックに跨がっ
たことを判定するアドレス監視部と、(B)前記アドレ
ス監視部が判定した一連のアドレスを蓄えておくアドレ
スレジスタおよび前記一連のアドレスの有効性を示すバ
リッドビットおよび前記一連のアドレスを前記アドレス
レジスタに残しておく優勢順位を示すプライオリティビ
ットとから構成されたアドレステーブルと、(C)前記
優先順位をFIFO方式で管理するプライオリティ管理
部と、(D)CPULSIの主記憶リードアクセスの受
付けを行い、前記アドレステーブルの情報からリードデ
ータの読出し先を決定し、さらに前記アドレステーブル
の前記バリッドビッドのON/OFFを制御するリプレ
ース要求管理部と、(E)前記アドレステーブルの前記
アドレスレジスタに蓄えられた前記一連のアドレスに対
応するリードデータを前記主記憶装置からバーストリー
ドで読出したときに、前記リードデータを蓄えておくリ
ードデータバッファと、を備えている。
SUMMARY OF THE INVENTION The present invention provides a read data prefetch for a central processing unit having a main memory and a cache memory connected to a main memory bus composed of address, data lines and control lines. ) An address monitoring unit that determines that the main memory read access accesses an address that is continuous with the address of the previous main memory read access and that the transfer unit block of the cache memory spans two or more blocks. B) An address register for storing a series of addresses determined by the address monitoring unit, a valid bit indicating the validity of the series of addresses, and a priority bit indicating a priority order for leaving the series of addresses in the address register. And an address table composed of (D) CPU LSI main memory read access is accepted, the read destination of read data is determined from the information of the address table, and ON / OFF of the valid bid of the address table is performed. And (E) when the read data corresponding to the series of addresses stored in the address register of the address table is read from the main storage device by burst read, And a read data buffer for storing.

【0006】[0006]

【実施例】次に、本発明について図面を参照して説明す
る。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, the present invention will be described with reference to the drawings.

【0007】図1は本発明の一実施例を示すブロック図
である。同図において、1はアドレスを伝達するアドレ
ス線,2はデータを伝達するデータ線,3は主記憶バス
制御情報、例えば転送開始信号,応答信号,レディ信
号,転送終了信号等を伝達する制御線であり、これらで
主記憶バス4が構成されている。そして主記憶装置5,
中央演算処理装置6が主記憶バス4に接続されている。
FIG. 1 is a block diagram showing an embodiment of the present invention. In the figure, 1 is an address line for transmitting an address, 2 is a data line for transmitting data, 3 is a control line for transmitting main memory bus control information, for example, a transfer start signal, a response signal, a ready signal, a transfer end signal, etc. And the main memory bus 4 is composed of these. And the main memory 5,
The central processing unit 6 is connected to the main memory bus 4.

【0008】次に中央演算処理装置6の構成要素につい
て説明する。7はCPULSI,8はキャッシュメモリ
である。9はアドレス監視部で、アドレス線に接続され
ている。10はアドレステーブルで、連続アドレス線1
1によりアドレス監視部と接続されている。アドレステ
ーブル10は、プライオリティビット12とバリッドビ
ッド13とアドレスレジスタ14とから構成される。1
5はプライオリティ管理部,16はリプレース要求管理
部,17はリードデータバッファである。18はリード
データバッファ17のリードデータとアドレスレジスタ
14のアドレスとの対応をとるために、アドレスレジス
タ14のレジスタ番号を記憶しておくレジスタ番号ビッ
トである。19はFIFO方式のアドレステーブル10
において、最も古いアドレスが蓄えられるトップのアド
レスレジスタ,20は最も新しいアドレスが蓄えられる
テーブルのアドレスレジスタである。21はキャッシュ
ミスヒットが発生したことを示すミスヒット情報であ
る。
Next, the components of the central processing unit 6 will be described. Reference numeral 7 is a CPU LSI, and 8 is a cache memory. An address monitoring unit 9 is connected to the address line. 10 is an address table, which is a continuous address line 1
1 is connected to the address monitoring unit. The address table 10 includes priority bits 12, valid bids 13, and address registers 14. 1
Reference numeral 5 is a priority management unit, 16 is a replacement request management unit, and 17 is a read data buffer. Reference numeral 18 is a register number bit for storing the register number of the address register 14 in order to make the read data of the read data buffer 17 correspond to the address of the address register 14. 19 is a FIFO address table 10
, The top address register 20 in which the oldest address is stored is a table address register 20 in which the newest address is stored. Reference numeral 21 is mishit information indicating that a cache mishit has occurred.

【0009】図2はアドレス監視部の詳細を示すブロッ
ク図である。22は1回前の主記憶リードアクセスのア
ドレスを保持しておくAレジスタ,23は今回の主記憶
リードアクセスのアドレスを取込むBレジスタである。
24はアドレステーブル10に送る可能性のあるアドレ
スを一時的に蓄えておくCアドレスバッファ,25はB
レジスタのアドレスとAレジスタのアドレスを比較して
連続か否かと、2つのブロックに跨っているか否かを判
定するアドレス比較器である。26は連続アドレスであ
ることを示す連続フラグ,27は2つのブロックに跨が
ったアドレスであることを示すブロックフラグである。
FIG. 2 is a block diagram showing the details of the address monitoring unit. Reference numeral 22 is an A register for holding the address of the main memory read access one time before, and reference numeral 23 is a B register for fetching the address of the main memory read access this time.
24 is a C address buffer for temporarily storing addresses that may be sent to the address table 10, and 25 is B
It is an address comparator that compares the address of the register and the address of the A register and determines whether or not they are continuous and whether or not they span two blocks. 26 is a continuous flag indicating that the address is a continuous address, and 27 is a block flag indicating that the address spans two blocks.

【0010】図3はプライオリティ管理部の詳細を示す
ブロック図である。28はアドレステーブル10の連続
アドレスのうち、プライオリティ管理部がチェックしよ
うとしている一群の連続アドレスがいくつのアドレスよ
り成るかをカウントするテーブルカウンタ,29は新し
く取込む一群の連続アドレスがいくつのアドレスより成
るかをカウントするカウンタである。30はアドレステ
ーブルの一群の連続アドレスのうちプライオリティ管理
部がチェックしようとしている一群の連続アドレスのプ
ライオリティ値を記憶するAプライオリティレジスタ,
31は新しく取込む一群の連続アドレスにつけるプライ
オリティ値を示すBプライオリティレジスタである。3
2はテーブルカウンタ28とカウンタ29の個数を比較
して、Bプライオリティレジスタのプライオリティ値を
決定するカウント比較器である。33はプライオリティ
管理部である。
FIG. 3 is a block diagram showing details of the priority management section. 28 is a table counter that counts how many addresses a group of consecutive addresses that the priority management unit is trying to check among consecutive addresses in the address table 10, and 29 is a group of consecutive addresses that is newly fetched It is a counter that counts whether or not it consists. Reference numeral 30 denotes an A priority register that stores the priority value of a group of consecutive addresses that the priority management unit is trying to check out of the group of consecutive addresses of the address table.
Reference numeral 31 is a B priority register indicating a priority value to be added to a group of consecutive addresses to be newly fetched. Three
Reference numeral 2 is a count comparator for comparing the numbers of the table counter 28 and the counter 29 to determine the priority value of the B priority register. 33 is a priority management unit.

【0011】次に本発明の一実施例の動作について説明
する。
Next, the operation of the embodiment of the present invention will be described.

【0012】(1)まず連続アドレスの生成について説
明する。アドレス監視部9はCPULSI7が主記憶リ
ードアクセス要求を出すとアドレスをBレジスタ23に
取込む。Aレジスタ22には1回前の主記憶リードアク
セスのアドレスが取込んである。アドレス比較器25
は、Bレジスタ23にアドレスが取込まれると同時にA
レジスタ22のアドレスとBレジスタ23のアドレスを
比較して連続した(隣り合った)アドレスか否かの判定
と、2つのブロックに跨がっているか否かの判定を行
う。
(1) First, generation of continuous addresses will be described. The address monitoring unit 9 fetches the address into the B register 23 when the CPU LSI 7 issues a main memory read access request. The address of the previous main memory read access is fetched in the A register 22. Address comparator 25
At the same time that the address is taken into the B register 23
The address of the register 22 and the address of the B register 23 are compared to determine whether or not the addresses are continuous (adjacent) and whether or not the addresses are over two blocks.

【0013】(1−a)連続したアドレスでかつ2つの
ブロックに跨がっている場合には、連続フラグ26とブ
ロックフラグ27を共にONにする。Cアドレスバッフ
ァ24には予めAレジスタ22のアドレスが蓄えられて
いて、フラグが共にONになると、アドレス監視部9は
Cアドレスバッファ24のアドレスと、Bレジスタ23
のアドレスを、この順で連続アドレス線11を通してア
ドレステーブル10内のアドレスレジスタ14に書込
む。アドレス監視部9はアドレス比較器25が連続判定
とブロック判定を終了すると、連続フラグ26がONの
ときにはBレジスタ23のアドレスをAレジスタ22に
のみ移す。
(1-a) When the addresses are continuous and span two blocks, both the continuous flag 26 and the block flag 27 are turned on. The address of the A register 22 is stored in advance in the C address buffer 24, and when both flags are turned on, the address monitoring unit 9 causes the address of the C address buffer 24 and the B register 23 to be turned on.
Are written in this order to the address register 14 in the address table 10 through the continuous address line 11. When the address comparator 25 finishes the continuous determination and the block determination, the address monitoring unit 9 transfers the address of the B register 23 only to the A register 22 when the continuous flag 26 is ON.

【0014】再び主記憶リードアクセスが発生するとア
ドレス監視部9は前回と同様にアドレスをBレジスタ2
3に取込み、アドレス比較器25で連続判定を行う。既
にブロックフラグ27がONの場合には、ブロック判定
は行わず、そのままブロックフラグ27をONにしてお
く。連続と判定された場合には連続アドレス線11を通
してアドレステーブル10に書込むと同時にBレジスタ
23のアドレスをAレジスタ22にのみ移す。不連続と
判定されると、アドレス比較器25は連続フラグ26と
ブロックフラグ27を共にOFFにする。アドレス監視
部9はBレジスタ23のアドレスをAレジスタ22とC
アドレスバッファ24に移す。
When the main memory read access occurs again, the address monitoring unit 9 assigns the address to the B register 2 as in the previous time.
3, and the address comparator 25 performs continuous judgment. If the block flag 27 is already ON, the block determination is not performed and the block flag 27 is left ON as it is. If it is determined to be continuous, the address of the B register 23 is transferred to the A register 22 at the same time as writing to the address table 10 through the continuous address line 11. When it is determined that the addresses are discontinuous, the address comparator 25 turns off both the continuous flag 26 and the block flag 27. The address monitoring unit 9 sends the address of the B register 23 to the A register 22 and C
Move to address buffer 24.

【0015】(1−b)連続したアドレスでかつ2つの
ブロックに跨がっていない場合には、連続フラグ26の
みONにする。Cアドレスバッファ24には予めAレジ
スタ22のアドレスが蓄えられているので、アドレス監
視部9は連続フラグ26のみONのときにはBレジスタ
23のアドレスをAレジスタ22とCアドレスバッファ
24に移す。Cアドレスバッファ24には2つのアドレ
スが蓄えられることになる。再び主記憶リードアクセス
が発生すると、アドレス監視部9は前回と同様にアドレ
スをBレジスタ23に取込む。
(1-b) When the addresses are continuous and do not span two blocks, only the continuous flag 26 is turned ON. Since the address of the A register 22 is stored in the C address buffer 24 in advance, the address monitoring unit 9 transfers the address of the B register 23 to the A register 22 and the C address buffer 24 when only the continuous flag 26 is ON. Two addresses are stored in the C address buffer 24. When the main memory read access occurs again, the address monitoring unit 9 fetches the address into the B register 23 as in the previous case.

【0016】アドレス比較器25は連続判定とブロック
判定を行い、連続アドレスでかつブロックが2つに跨が
った場合には、ブロックフラグ27をONにして(1−
a)と同様の動作をする。連続アドレスでかつブロック
が2つに跨がっていない場合には、前回と同様の動作を
する。不連続と判定されると、アドレス監視部9は連続
フラグ26をOFFにしてCアドレスバッファ24の内
容をクリアした後にレジスタ23のアドレスをAレジス
タ22とCアドレスバッファ24に移す。
The address comparator 25 makes a continuous judgment and a block judgment. When the address is a continuous address and two blocks extend, the block flag 27 is turned on (1-
The same operation as in a) is performed. If it is a continuous address and the block does not span two, the same operation as the previous time is performed. When it is determined that the address is discontinuous, the address monitoring unit 9 turns off the continuous flag 26 to clear the contents of the C address buffer 24, and then transfers the address of the register 23 to the A register 22 and the C address buffer 24.

【0017】(1−c)アドレスが連続していない場合
には、Cアドレスバッファ24の内容をクリアした後に
Bレジウタ23のアドレスをAレジスタ22とCアドレ
スバッファ24に移す。以上説明したように、アドレス
監視部9は連続アドレス線11を通して一群の連続した
アドレスをアドレステーブル10内のアドレスレジスタ
14に書込む。
(1-c) If the addresses are not consecutive, the contents of the C address buffer 24 are cleared and then the address of the B register 23 is transferred to the A register 22 and the C address buffer 24. As described above, the address monitoring unit 9 writes a group of continuous addresses in the address register 14 in the address table 10 through the continuous address line 11.

【0018】(2)次にプライオリティ管理について説
明する。アドレステーブル10内のアドレスレジスタ1
4に一群の連続アドレスが書込まれて、ブロックフラグ
27がOFFになることにより書込みが終了すると、も
しアドレスレジスタ14が空であった場合には、トップ
のアドレスレジスタ19から順にアドレスを埋めてい
く。空でない場合には、空いているアドレスレジスタ1
4の一番トップに近いアドレスレジスタ14から順にア
ドレスを埋めていく。プライオリティ管理部15は一群
の連続アドレスに対するプライオリティビット12に同
一の極性のビットを書込む。仮にここでは“1”を書込
むとする。次に再びブロックフラグ27がONになり、
一群のアドレスが書込まれてブロックフラグ27がOF
Fになると、前回と同様に空いているアドレスレジスタ
14のうちの一番トップに近いアドレスレジスタ14か
ら順にアドレスを埋めていく。そして今回は前回と逆極
性のビットすなわち“0”を一群の連続アドレスに対す
るプライオリティビット12に書込む。以下同様に繰返
す。
(2) Next, priority management will be described. Address register 1 in address table 10
When a group of consecutive addresses is written in 4 and writing is completed by turning off the block flag 27, if the address register 14 is empty, the addresses are sequentially filled from the top address register 19. Go. If not empty, empty address register 1
The addresses are filled in order from the address register 14 closest to the top of No. 4. The priority management unit 15 writes the bit of the same polarity to the priority bit 12 for a group of consecutive addresses. Suppose here that "1" is written. Next, the block flag 27 is turned on again,
A group of addresses are written and the block flag 27 is set to OF.
When it becomes F, the addresses are sequentially filled from the address register 14 closest to the top among the vacant address registers 14 as in the previous time. Then, this time, a bit having a polarity opposite to that of the previous time, that is, "0" is written in the priority bit 12 for a group of consecutive addresses. The same is repeated thereafter.

【0019】アドレスレジスタ14が連続アドレスで埋
められて、一群の連続アドレスが書込めなくなると、プ
ライオリティ管理部15はプライオリティビット12を
参照してトップのアドレスレジスタ17の書込まれたア
ドレスと連続する一群の連続アドレスをクリアする。そ
してクリアされた領域分だけ他のアドレスレジスタ14
のアドレスをトップ側に一斉にシフトさせる。そしてテ
ール側の空いたアドレスレジスタ14に一群の連続アド
レスを埋めていく。これを書込み可能になるまで繰返
す。以上説明したようにしてプライオリティ管理部15
はアドレスレジスタ14のアドレスを管理する。
When the address register 14 is filled with consecutive addresses and a group of consecutive addresses cannot be written, the priority management unit 15 refers to the priority bit 12 and continues with the written address of the top address register 17. Clear a group of consecutive addresses. Then, the other areas of the address register 14 are cleared by the cleared area.
All addresses are shifted to the top side all at once. Then, a vacant address register 14 on the tail side is filled with a group of consecutive addresses. This is repeated until writing becomes possible. As described above, the priority management unit 15
Manages the address of the address register 14.

【0020】(3)次にリプレース要求について説明す
る。CPULSI7が主記憶リードアクセス要求を出し
て、キャッシュメモリ8にヒットし場合は、通常のキャ
ッシュリードヒットサイクルとなり、キャッシュメモリ
8からリードデータがCPULSI7に読出される。キ
ャッシュメモリ8にミスヒットした場合は、リプレース
要求管理部16はミスヒット情報21を受取り、アドレ
ステーブル10を参照する。
(3) Next, the replacement request will be described. When the CPU LSI 7 issues a main memory read access request and hits the cache memory 8, a normal cache read hit cycle occurs, and the read data is read from the cache memory 8 to the CPU LSI 7. When a miss hit occurs in the cache memory 8, the replace request management unit 16 receives the miss hit information 21 and refers to the address table 10.

【0021】(3−a)アドレスレジスタ14に主記憶
リードアクセスのアドレスが存在し、かつバリッドビッ
ト13がOFFの場合には、リプレース要求管理部16
はこの主記憶リードアクセスのアドレスを含む一群の連
続アドレスに対応するリードデータを主記憶装置5から
バーストリードする要求を主記憶バス4に出す。主記憶
装置5から読出したリードデータは、リードデータバッ
ファ17に蓄えられる。リプレース要求管理部16は連
続アドレスとリードデータバッファ17との対応をとる
ために連続アドレスが存在するアドレスレジスタ14の
レジスタ番号を、対応するリードデータが蓄えられたと
ころのレジスタ番号ビット18に書込む。
(3-a) When the main memory read access address exists in the address register 14 and the valid bit 13 is OFF, the replacement request management unit 16
Issues a request to the main memory bus 4 to burst read the read data corresponding to a group of consecutive addresses including the main memory read access address from the main memory device 5. The read data read from the main storage device 5 is stored in the read data buffer 17. The replace request management unit 16 writes the register number of the address register 14 in which the continuous address exists in order to establish the correspondence between the continuous address and the read data buffer 17, in the register number bit 18 where the corresponding read data is stored. .

【0022】連続アドレスはアドレスレジスタ14を次
々に移動することがあるので、その都度レジスタ番号ビ
ット18に、対応するアドレスが存在するレジスタ番号
を書込んでアドレスとリードデータの対応を管理する。
リードデータをリードデータバッファ17に蓄えてレジ
スタ番号の書込みが終了すると、リプレース要求管理部
16はリードデータを取込んだ連続アドレスのバリッド
ビット13をONにする。リプレース要求管理部16は
主記憶リードアクセス要求のあったリードデータをリー
ドデータバッファ17に蓄えると同時にCPULSI7
に渡し、キャッシュメモリ8にリプレースする。
Since the continuous address may move the address register 14 one after another, the register number in which the corresponding address exists is written in the register number bit 18 each time, and the correspondence between the address and the read data is managed.
When the read data is stored in the read data buffer 17 and the writing of the register number is completed, the replace request management unit 16 turns on the valid bit 13 of the continuous address in which the read data is taken. The replace request management unit 16 stores the read data for which the main memory read access request is made in the read data buffer 17, and at the same time, the CPU LSI 7
To the cache memory 8 for replacement.

【0023】(3−b)アドレスレジスタ14に主記憶
リードアクセスのアドレスが存在し、かつバリッドビッ
ト13がONの場合には、リプレース要求管理部16は
リードデータバッファ17から該当するリードデータを
読出し、CPULSI7に渡すと同時にキャッシュメモ
リ8にリプレースする。
(3-b) When the main memory read access address exists in the address register 14 and the valid bit 13 is ON, the replace request management unit 16 reads the corresponding read data from the read data buffer 17. , And then replaces it in the cache memory 8 at the same time.

【0024】(3−c)アドレスレジスタに主記憶リー
ドアクセスのアドレスが存在しない場合には、リプレー
ス要求管理部16は通常のキャッシュリードミスヒット
サイクルを行い、主記憶装置5からリードデータを読出
し、CPULSI7に渡すと同時にキャッシュメモリ8
にリプレースする。次に本発明の一実施例である請求項
2のプライオリティ管理部の動作について説明する。プ
ライオリティ管理部33は、アドレステーブル10内の
アドレスレジスタ14に一群の連続アドレスが書込まれ
ると同時にカンウンタ29でアドレスレジスタ14に書
込まれたアドレスの個数をカウントする。ブロックフラ
グ27がOFFになることにより書込みが終了したこと
を認識すると、トップのアドレスレジスタ17から順に
プライオリティビット12を読みに行き、プライオリテ
ィ値をAプライオリティレジスタ30に書込み、その同
一のプライオリティ値のついたプライオリティビット1
2の個数をテーブルカウンタ28で数える。
(3-c) If the main memory read access address does not exist in the address register, the replace request management unit 16 performs a normal cache read mishit cycle to read the read data from the main memory device 5, and the CPULSI 7 Cache memory 8 at the same time as
To replace. Next, the operation of the priority management unit according to claim 2 which is an embodiment of the present invention will be described. The priority management unit 33 counts the number of addresses written in the address register 14 by the counter 29 at the same time when a group of consecutive addresses is written in the address register 14 in the address table 10. When the completion of writing is recognized by turning off the block flag 27, the priority bit 12 is read in order from the top address register 17, the priority value is written in the A priority register 30, and the same priority value is added. Priority bit 1
The number of 2 is counted by the table counter 28.

【0025】そしてカウント比較器32でカウンタ29
のアドレスの個数とテーブルカウンタ28のアドレスの
個数を比較し、大きいか等しければBプライオリティレ
ジスタ31の値をそのままにする。最初は“1”が設定
してある。小さい場合には、Aプライオリティレジスタ
30のプライオリティにより“1”だけ大きい値をBプ
ライオリティレジスタ31につける。プライオリティビ
ット12のプライオリティ値が“0”になるまで順に繰
返す。プライオリティビット12のプライオリティ値
“0”は空のアドレスレジスタ14であることを示す。
最後に得られたBプライオリティレジスタ31の値が優
先順位となる。プライオリティビット12は値が“1”
が最も優先順位が高く、値が大きい程優先順位が低い。
Then, the counter 29 is counted by the count comparator 32.
And the number of addresses of the table counter 28 are compared, and if they are equal or larger, the value of the B priority register 31 is left unchanged. Initially, "1" is set. If it is smaller, a value larger by “1” is added to the B priority register 31 depending on the priority of the A priority register 30. The sequence is repeated until the priority value of the priority bit 12 becomes "0". The priority value “0” of the priority bit 12 indicates that the address register 14 is empty.
The value of the B priority register 31 obtained last becomes the priority order. The value of the priority bit 12 is "1"
Has the highest priority, and the higher the value, the lower the priority.

【0026】アドレステーブル10内のアドレスレジス
タ14が一杯になると、プライオリティビットの最も大
きいアドレスをクリアして、空いた領域分だけアドレス
をトップ側にシフトさせる。
When the address register 14 in the address table 10 becomes full, the address having the highest priority bit is cleared and the address is shifted to the top side by the empty area.

【0027】[0027]

【発明の効果】以上説明したように本発明は、過去の主
記憶リードアクセスの履歴に基づいてリードデータをプ
リフェッチするのでCPULSIが必要とするリードデ
ータをプリフェッチしている可能性が高い。すなわち小
容量のキャッシュメモリでも主記憶装置に対するアクセ
スの頻度が下がり、中央演算処理装置の性能が上がるこ
とが期待できるという効果を有する。
As described above, according to the present invention, since read data is prefetched based on the history of main memory read access in the past, it is highly possible that the read data required by the CPU LSI is prefetched. That is, even with a small-capacity cache memory, it is possible to expect that the frequency of access to the main storage device is reduced and the performance of the central processing unit is improved.

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

【図1】本発明の一実施例を示すブロック図である。FIG. 1 is a block diagram showing an embodiment of the present invention.

【図2】図1に示すアドレス監視部の詳細を示すブロッ
ク図である。
FIG. 2 is a block diagram showing details of an address monitoring unit shown in FIG.

【図3】図1に示すプライオリティ管理部の詳細を示す
ブロック図である。
FIG. 3 is a block diagram showing details of a priority management unit shown in FIG.

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

1 アドレス線 2 データ線 3 制御線 4 主記憶バス 5 主記憶装置 6 中央演算処理装置 7 CPULSI 8 キャッシュメモリ 9 アドレス監視部 10 アドレステーブル 11 連続アドレス線 12 プライオリティビット 13 バリッドビット 14 アドレスレジスタ 15 プライオリティ管理部 16 リプレース要求管理部 17 リードデータバッファ 18 レジスタ番号ビット 19 トップのアドレスレジスタ 20 テールのアドレスレジスタ 21 ミスヒット情報 22 Aレジスタ 23 Bレジスタ 24 Cアドレスバッファ 25 アドレス比較器 26 連続フラグ 27 ブロックフラグ 28 テーブルカウンタ 29 カウンタ 30 Aプライオリティレジスタ 31 Bプライオリティレジスタ 32 カウント比較器 33 プライオリティ管理部 1 Address Line 2 Data Line 3 Control Line 4 Main Memory Bus 5 Main Memory 6 Central Processing Unit 7 CPULSI 8 Cache Memory 9 Address Monitor 10 Address Table 11 Continuous Address Line 12 Priority Bit 13 Valid Bit 14 Address Register 15 Priority Management Part 16 replace request management part 17 read data buffer 18 register number bit 19 top address register 20 tail address register 21 mishit information 22 A register 23 B register 24 C address buffer 25 address comparator 26 continuous flag 27 block flag 28 table Counter 29 Counter 30 A Priority Register 31 B Priority Register 32 Count Comparator 33 Priority Management Unit

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 アドレス線,データ線および制御線で構
成された主記憶バスに接続された主記憶装置とキャッシ
ュメモリを有する中央演算処理装置のリードデータプリ
フェッチ機構において、(A)主記憶リードアクセスが
前回の主記憶リードアクセスのアドレスと連続したアド
レスにアクセスしかつ、キャッシュメモリの転送単位ブ
ロックが2つ以上のブロックに跨がったことを判定する
アドレス監視部と、(B)前記アドレス監視部が判定し
た一連のアドレスを蓄えておくアドレスレジスタおよび
前記一連のアドレスの有効性を示すバリッドビットおよ
び前記一連のアドレスを前記アドレスレジスタに残して
おく優勢順位を示すプライオリティビットとから構成さ
れたアドレステーブルと、(C)前記優先順位をFIF
O方式で管理するプライオリティ管理部と、(D)CP
ULSIの主記憶リードアクセスの受付けを行い、前記
アドレステーブルの情報からリードデータの読出し先を
決定し、さらに前記アドレステーブルの前記バリッドビ
ッドのON/OFFを制御するリプレース要求管理部
と、(E)前記アドレステーブルの前記アドレスレジス
タに蓄えられた前記一連のアドレスに対応するリードデ
ータを前記主記憶装置からバーストリードで読出したと
きに、前記リードデータを蓄えておくリードデータバッ
ファと、 を備えたことを特徴とした中央演算処理装置のリードデ
ータプリフェッチ機構。
1. A read data prefetch mechanism of a central processing unit having a main memory device and a cache memory connected to a main memory bus composed of address lines, data lines and control lines, wherein (A) main memory read access Accesses an address that is continuous with the address of the previous main memory read access and determines that the transfer unit block of the cache memory straddles two or more blocks, and (B) the address monitoring An address composed of an address register for storing a series of addresses determined by the section, a valid bit indicating the validity of the series of addresses, and a priority bit indicating a priority order for leaving the series of addresses in the address register. A table and (C) the priority order in the FIF
Priority management part managed by O method, and (D) CP
(E) a replace request management unit that accepts the main memory read access of the ULSI, determines the read destination of the read data from the information of the address table, and further controls ON / OFF of the valid bid of the address table; A read data buffer that stores the read data when the read data corresponding to the series of addresses stored in the address register of the address table is read from the main storage device by burst read; Read data prefetch mechanism of central processing unit.
【請求項2】 前記一連のアドレスのアドレス領域が広
い程、また領域の広さが同じ場合には新しいもの程高い
優先順位をつけるプライオリティ管理部を有した請求項
1記載の中央演算処理装置のリードデータプリフェッチ
機構。
2. The central processing unit according to claim 1, further comprising a priority management unit that gives a higher priority to a larger address area of the series of addresses or to a newer one when the area size is the same. Read data prefetch mechanism.
JP4249657A 1992-09-18 1992-09-18 Read data prefetching mechanism for central arithmetic processor Pending JPH06103169A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4249657A JPH06103169A (en) 1992-09-18 1992-09-18 Read data prefetching mechanism for central arithmetic processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4249657A JPH06103169A (en) 1992-09-18 1992-09-18 Read data prefetching mechanism for central arithmetic processor

Publications (1)

Publication Number Publication Date
JPH06103169A true JPH06103169A (en) 1994-04-15

Family

ID=17196284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4249657A Pending JPH06103169A (en) 1992-09-18 1992-09-18 Read data prefetching mechanism for central arithmetic processor

Country Status (1)

Country Link
JP (1) JPH06103169A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121443A (en) * 1993-10-01 1995-05-12 Internatl Business Mach Corp <Ibm> Information process system and its operating method
JPH0895855A (en) * 1994-09-26 1996-04-12 Nec Corp Prefetch buffer device used for arithmetic processing system
WO2001004760A1 (en) * 1999-07-07 2001-01-18 Hitachi, Ltd. Memory controller
US6341334B1 (en) 1998-03-24 2002-01-22 Mitsubishi Denki Kabushiki Kaisha Bridge method, bus bridge, and multiprocessor system
JP2008510258A (en) * 2004-08-17 2008-04-03 エヌヴィディア コーポレイション System, apparatus, and method for predicting various types of access to memory and for managing predictions associated with cache memory
US8927111B2 (en) 2007-04-06 2015-01-06 Sanyo Special Steel Co., Ltd. Surface coating material for molten zinc bath member, production method thereof, and molten zinc bath member
US9311988B2 (en) 2011-08-15 2016-04-12 Fujitsu Limited Storage control system and method, and replacing system and method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121443A (en) * 1993-10-01 1995-05-12 Internatl Business Mach Corp <Ibm> Information process system and its operating method
JPH0895855A (en) * 1994-09-26 1996-04-12 Nec Corp Prefetch buffer device used for arithmetic processing system
US6341334B1 (en) 1998-03-24 2002-01-22 Mitsubishi Denki Kabushiki Kaisha Bridge method, bus bridge, and multiprocessor system
WO2001004760A1 (en) * 1999-07-07 2001-01-18 Hitachi, Ltd. Memory controller
JP2008510258A (en) * 2004-08-17 2008-04-03 エヌヴィディア コーポレイション System, apparatus, and method for predicting various types of access to memory and for managing predictions associated with cache memory
US8927111B2 (en) 2007-04-06 2015-01-06 Sanyo Special Steel Co., Ltd. Surface coating material for molten zinc bath member, production method thereof, and molten zinc bath member
US9311988B2 (en) 2011-08-15 2016-04-12 Fujitsu Limited Storage control system and method, and replacing system and method

Similar Documents

Publication Publication Date Title
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US6542968B1 (en) System and method for managing data in an I/O cache
US6499085B2 (en) Method and system for servicing cache line in response to partial cache line request
US6453388B1 (en) Computer system having a bus interface unit for prefetching data from system memory
JP4008826B2 (en) Device for cache compression engine to increase effective cache size by on-chip cache data compression
JP4218820B2 (en) Cache system including direct mapped cache and full associative buffer, its control method and recording medium
US20030217237A1 (en) Selective memory controller access path for directory caching
EP0097790A2 (en) Apparatus for controlling storage access in a multilevel storage system
US6457105B1 (en) System and method for managing data in an asynchronous I/O cache memory
JPH06318177A (en) Method, apparatus and computer system for reducing cache miss penalty
US6321300B1 (en) Apparatus and method for dynamically reconfigurable timed flushing of a queue of coalescing write buffers
US20030126369A1 (en) Cache memory eviction policy for combining write transactions
JP4434534B2 (en) Processor system
KR100348099B1 (en) Pipeline processor and computer system and apparatus and method for executing pipeline storage instructions using a single cache access pipe stage
US6718439B1 (en) Cache memory and method of operation
US6751700B2 (en) Date processor and storage system including a set associative cache with memory aliasing
JPH06103169A (en) Read data prefetching mechanism for central arithmetic processor
US6976130B2 (en) Cache controller unit architecture and applied method
US20040153611A1 (en) Methods and apparatus for detecting an address conflict
US6516343B1 (en) Computer system and method for enhancing memory-to-memory copy transactions by utilizing multiple system control units
JP3733604B2 (en) Cache memory
JPH09218823A (en) Cache memory controller
JP2001222467A (en) Cache device
JPS6272041A (en) Cache memory controller
JP2000047942A (en) Device and method for controlling cache memory

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000111