JP3189282B2 - Memory predictive access device - Google Patents
Memory predictive access deviceInfo
- Publication number
- JP3189282B2 JP3189282B2 JP01688491A JP1688491A JP3189282B2 JP 3189282 B2 JP3189282 B2 JP 3189282B2 JP 01688491 A JP01688491 A JP 01688491A JP 1688491 A JP1688491 A JP 1688491A JP 3189282 B2 JP3189282 B2 JP 3189282B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- line
- read
- holding means
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 238000007562 laser obscuration time method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 102200091804 rs104894738 Human genes 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は情報処理装置機器等で一
般的に用いられるメモリ機構のアクセス方式に関し、特
に、ランダムにアドレスを指定してアクセスするメモリ
について連続するリクエスト間の指定アドレスの相関関
係を利用して後方リクエストの指定するアドレスを予測
することによりメモリアクセスの効率化を図るメモリ予
測アクセス装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an access method of a memory mechanism generally used in information processing equipment and the like, and more particularly, to a method of correlating specified addresses between consecutive requests for a memory accessed by specifying an address at random. The present invention relates to a memory prediction access device for improving the efficiency of memory access by predicting an address specified by a backward request using a relationship.
【0002】[0002]
【従来の技術】従来、ランダムにアドレスを指定してア
クセスを行なうメモリアクセス方式に於いては、メモリ
読み出し時には、リクエスト元がメモリに対してアドレ
ス及びその他の必要なリクエスト情報を送ってメモリか
らの読み出しを行ない、読み出しデータが確定し、これ
らがリクエスト元に返却されて初めてリクエスト元は次
のメモリアクセスを起動することができた。2. Description of the Related Art Conventionally, in a memory access method in which an address is specified at random and accessed, at the time of reading a memory, a request source sends an address and other necessary request information to the memory to send the address from the memory. The reading was performed, the read data was determined, and these were returned to the request source. The request source was able to start the next memory access only after the data was returned to the request source.
【0003】図6は従来例のブロック図であり、リクエ
スト元300がメモリ330をアクセスする装置を示し
たものである。FIG. 6 is a block diagram of a conventional example, and shows a device in which a request source 300 accesses a memory 330.
【0004】リクエスト元300はライト時、線302
よりリクエストアドレスを、線303よりライト指定値
として“1”を、線304より当該ライトデータを送出
する。また、リクエスト元300はリード時、線302
よりリクエストアドレスを、線303よりライト指定値
として“0”を送出し、線351より当該リードデータ
を受け取る。[0004] When the request source 300 writes, the line 302
The request address is sent from the line 303 as "1" as a write designation value, and the write data is sent out from the line 304. Also, the request source 300 reads the line 302
Then, the request address is transmitted as “0” as a write designation value from the line 303, and the read data is received from the line 351.
【0005】ライト指定フラグ320は1ビットのレジ
スタで構成され、線303からライト指定値を受け、線
321に中継している。ライトデータレジスタ325は
線304からライトデータを受け、線326に中継して
いる。[0005] The write designation flag 320 is formed of a 1-bit register, receives a write designation value from the line 303, and relays it to the line 321. Write data register 325 receives write data from line 304 and relays it to line 326.
【0006】メモリユニット310はメモリ330,ア
ドレスレジスタ345,リードデータレジスタ350を
含んでいる。メモリ330は線346でアドレスを、線
321でリード/ライトを指定され、リード時には指定
されたアドレスから読み出しを行なって線331にリー
ドデータを出力し、ライト時には線326から受けたラ
イトデータを指定されたアドレスに書き込む。アドレス
レジスタ345は線302からのリクエストアドレスを
受けて保持し、線346を介してメモリ330に対して
アドレスを指定している。リードデータレジスタ350
は線331からのリードデータを受け、線351に中継
している。尚、各レジスタ320,325,345,3
50は各タイミングを指定する単相のクロックに同期し
て動作するものである。The memory unit 310 includes a memory 330, an address register 345, and a read data register 350. In the memory 330, an address is designated by a line 346, and read / write is designated by a line 321. At the time of reading, data is read from the designated address and output as read data to a line 331. At the time of writing, the write data received from the line 326 is designated. Write to the specified address. The address register 345 receives and holds the request address from the line 302, and specifies the address to the memory 330 via the line 346. Read data register 350
Receives read data from the line 331 and relays it to the line 351. The registers 320, 325, 345, 3
Numeral 50 operates in synchronization with a single-phase clock that specifies each timing.
【0007】次に図6に示した従来例の動作を説明す
る。今、例えば、リクエスト元300が図7に示すよう
に、アドレスAへのリードアクセス,アドレスA+1へ
のリードアクセス,アドレスA+2へのリードアクセ
ス,アドレスBへのライトアクセス,アドレスA+4へ
のライトアクセス,アドレスCへのリードアクセスを順
次行なったとする。この時、実行されることになるアク
セスのアドレス,リード/ライト,アクセス順は図8に
示すものとなる。Next, the operation of the conventional example shown in FIG. 6 will be described. Now, for example, as shown in FIG. 7, the request source 300 performs a read access to the address A, a read access to the address A + 1, a read access to the address A + 2, a write access to the address B, a write access to the address A + 4, It is assumed that read accesses to the address C are sequentially performed. At this time, the address, read / write, and access order of the access to be executed are as shown in FIG.
【0008】この一連のアクセスが実行された場合、図
6の各部は図9のタイミングチャートに示すように動作
する。即ち、タイミングt0に於いてはリクエスト元3
00から線302にアドレスAが、線303にライト指
定値として“0”が送出され、タイミングt1に於いて
はライト指定フラグ320に“0”が、アドレスレジス
タ345にアドレスAが保持され、タイミングt2に於
いてはリードデータレジスタ350にリードデータ
(A)が保持され、リクエスト元300に線351を介
してリードデータ(A)が取り込まれる。続く、タイミ
ングt3に於いてはリクエスト元300は線302にア
ドレスA+1を、線303にライト指定値として“0”
を送出する。タイミングt4に於いてはライト指定フラ
グ320に“0”が、アドレスレジスタ345にアドレ
スA+1が保持され、タイミングt5に於いてはリード
データレジスタ350にリードデータ(A+1)が保持
され、保持されたリードデータ(A+1)がリクエスト
元300に取り込まれる。タイミングt7に於いてはリ
クエスト元300から線302にアドレスA+2が、線
303にライト指定値として“0”が送出され、タイミ
ングt8に於いてはライト指定フラグ320に“0”
が、アドレスレジスタ345にアドレスA+2が保持さ
れ、タイミングt9に於いてはリードデータレジスタ3
50にデータ(A+2)が保持され、保持されたリード
データ(A+2)がリクエスト元300に取り込まれ
る。When this series of accesses is executed, each unit in FIG. 6 operates as shown in the timing chart of FIG. That is, at the timing t0, the request source 3
From 00, the address A is sent to the line 302, the write designation value "0" is sent to the line 303, and at the timing t1, "0" is held in the write designation flag 320 and the address A is held in the address register 345. At t2, the read data (A) is held in the read data register 350, and the read data (A) is taken into the request source 300 via the line 351. At the subsequent timing t3, the request source 300 sets the address A + 1 on the line 302 and “0” as the write designation value on the line 303.
Is sent. At the timing t4, "0" is held in the write designation flag 320, the address A + 1 is held in the address register 345, and at the timing t5, the read data (A + 1) is held in the read data register 350, and the held read is held. The data (A + 1) is taken into the request source 300. At the timing t7, the address A + 2 is sent from the request source 300 to the line 302, and “0” is sent to the line 303 as the write designation value. At the timing t8, the write designation flag 320 is set to “0”.
However, the address A + 2 is held in the address register 345, and at the timing t9, the read data register 3
The data (A + 2) is held in 50, and the held read data (A + 2) is taken into the request source 300.
【0009】タイミングt10に於いてはリクエスト元
300は線302にアドレスBを、線303にライト指
定値として“1”を、線304にライトデータW(B)
を送出し、ライト指定フラグ320に“1”を、アドレ
スレジスタ345にアドレスBを、ライトデータレジス
タ325にライトデータW(B)を保持させる。タイミ
ングt11に於いては、メモリ330のアドレスBへの
ライトデータW(B)の書き込みが行なわれると共に、
リクエスト元300から線302にアドレスA+4が、
線303にライト指定値として“1”が、線304にラ
イトデータW(A+4)が送出され、ライト指定フラグ
320に“1”が、アドレスレジスタ345にアドレス
A+4が、ライトデータレジスタ325にライトデータ
W(A+4)が保持される。タイミングt12に於いて
は、メモリ330のアドレスA+4へのライトデータW
(A+4)の書き込みが行なわれると共に、リクエスト
元300から線302にアドレスCが、線303にライ
ト指定値として“0”が送出される。続くタイミングt
13ではライト指定フラグ320に“0”が、アドレス
レジスタ345にアドレスCが保持され、次のタイミン
グt14でリードデータレジスタ350にリードデータ
(C)が保持され、リクエスト元300は線351より
リードデータ(C)を取り込む。ここで、リクエスト元
300はライトアクセス時には次のアクセスを直ちに開
始できるが、リードアクセス時にはリードデータが返る
まで、次のアクセスを開始できない点に着目する必要が
ある。以上が従来例の動作説明である。At timing t10, the request source 300 sends the address B to the line 302, "1" as the write designation value to the line 303, and the write data W (B) to the line 304.
Is transmitted, and the write designation flag 320 holds “1”, the address register 345 holds the address B, and the write data register 325 holds the write data W (B). At timing t11, the write data W (B) is written to the address B of the memory 330, and
Address A + 4 from the request source 300 to the line 302,
“1” is sent as a write designation value to line 303, write data W (A + 4) is sent to line 304, “1” is written to write designation flag 320, address A + 4 is written to address register 345, and write data is written to write data register 325. W (A + 4) is held. At timing t12, the write data W to the address A + 4 of the memory 330 is written.
The writing of (A + 4) is performed, and the address C is transmitted from the request source 300 to the line 302 and “0” is transmitted to the line 303 as a write designation value. Subsequent timing t
At 13, “0” is held in the write designation flag 320, the address C is held in the address register 345, the read data (C) is held in the read data register 350 at the next timing t 14, and the read source 300 Capture (C). Here, it should be noted that the request source 300 can immediately start the next access at the time of a write access, but cannot start the next access at the time of a read access until read data is returned. The above is the description of the operation of the conventional example.
【0010】[0010]
【発明が解決しようとする課題】上述した従来例は、ラ
ンダムにアドレスを指定してアクセスを行なう機能を実
現するため、アクセス毎にリクエスト元から供給される
メモリアドレスを適当な経路で中継してメモリアドレス
指定に用いる方式を採っている。一方、実際のメモリア
クセスはキャッシュメモリ方式の普及、各種DMA転
送,各種ブロック転送等により連続したアドレスを順番
に読み出す形式のアクセスが非常に高い頻度で生じてお
り、後続のリクエストアドレスが先行のリクエストアド
レスの次のアドレスになる相関関係は非常に強く、その
意味で次のアドレスを高い確率で予測可能といえよう。
しかし、上述した従来方式では、次のアドレスを非常に
高い確率で予測できるにもかかわらず、如何なるアドレ
ス指定にも対処しなければならない必要性から、如何な
る場合に於いてもリクエストアドレスの到着を待ってか
らそのリクエストアドレスを用いてメモリアクセスを開
始していた。ここで、従来例にも示したように、通常リ
クエスト元がリクエストアドレスを送出し、次のリクエ
スト処理に移行するのは、早くてもリードデータを受け
取ってからというのが一般的で、これを考え合わせる
と、メモリのアクセス動作は図9のタイミングチャート
に示したように常に離散的になってしまい、アクセス速
度を高速化することが難しいという問題があった。ま
た、このような問題点に対処するため、単純に高速のメ
モリ素子でメモリ部を構成して強引に高速化を図った
り、キャッシュメモリ方式を採用するということが従来
より行なわれている。しかしながら、これらの方法に於
いては、そのハードウェアが非常に高価であったり、大
量の付加機構を必要としたり、制御が非常に難解であっ
たりするという新たな問題に直面する。In the above-described conventional example, in order to realize a function of performing an access by designating an address at random, a memory address supplied from a request source for each access is relayed through an appropriate route. The method used for memory addressing is adopted. On the other hand, in actual memory access, an access of a format in which consecutive addresses are sequentially read by the spread of the cache memory system, various DMA transfers, various block transfers, and the like occurs at a very high frequency. The correlation that becomes the next address of the address is very strong, and in that sense it can be said that the next address can be predicted with high probability.
However, in the above-described conventional method, although the next address can be predicted with a very high probability, it is necessary to deal with any address specification, so that in any case, it is necessary to wait for the arrival of the request address. After that, memory access was started using the request address. Here, as shown in the conventional example, the request source usually sends out the request address, and the process of moving to the next request process is generally performed at the earliest after the read data is received. Considering this, there is a problem that the access operation of the memory is always discrete as shown in the timing chart of FIG. 9, and it is difficult to increase the access speed. In order to cope with such a problem, it has been conventionally practiced to simply configure the memory section with a high-speed memory element to forcibly increase the speed, or to adopt a cache memory system. However, these methods face new problems in that the hardware is very expensive, requires a large amount of additional mechanisms, and is very difficult to control.
【0011】本発明の目的は簡単,安価なハードウェア
構成でアクセス速度を高速化できるようにすることにあ
る。An object of the present invention is to make it possible to increase the access speed with a simple and inexpensive hardware configuration.
【0012】[0012]
【課題を解決するための手段】本発明は上記目的を達成
すると共に、ブロック読み出しを高速化するため、ラン
ダムにメモリのアドレスを指定してアクセスを行なう形
式のメモリ装置に於いて、リクエスト元からのメモリア
ドレスを上位部分と下位部分とに分けて保持する機能と
該保持したメモリアドレスの下位部分をインクリメント
する機能とを備えたアドレス保持手段と、該アドレス保
持手段に保持されているメモリアドレスによって読み出
された前記メモリの内容を保持するリードデータ保持手
段と、前記アドレス保持手段に保持されているアドレス
が前記リクエスト元からのアドレスの前記下位部分に相
当する部分を歩進させた結果と一致する場合はヒット報
告を出力し、不一致の場合はミスヒット報告を出力する
比較手段と、リードアクセス時、前記比較手段がヒット
報告を出力した場合は前記リクエスト元に前記リードデ
ータ保持手段に保持されているデータを取り込ませ、更
に、前記リードデータ保持手段に前記アドレス保持手段
が保持しているメモリアドレスが示すデータを取り込ま
せ、その後、前記アドレス保持手段が保持しているメモ
リアドレスの下位部分をインクリメントし、前記比較手
段がミスヒット報告を出力した場合は前記アドレス保持
手段に前記リクエスト元からのメモリアドレスを取り込
ませ、更に、前記リードデータ保持手段に前記アドレス
保持手段が保持しているメモリアドレスが示すデータを
取り込ませ、その後、前記アドレス保持手段が保持して
いるメモリアドレスの下位部分をインクリメントする制
御手段とを有する。また、本発明は、制御手段が、ライ
トアクセス時、前記リクエスト元からのアドレスを前記
アドレス保持手段に取り込ませ、該アドレス保持手段が
取り込んだアドレスに従って前記メモリへの書き込みを
行なう構成を有する。 SUMMARY OF THE INVENTION The present invention achieves the above object and , in order to speed up block reading, in a memory device of a type in which a memory address is randomly specified and accessed, a Address holding means having a function of holding the memory address of the memory address separately in an upper part and a lower part, and a function of incrementing the lower part of the held memory address , and a memory address held in the address holding means. Read data holding means for holding the read contents of the memory, and an address held by the address holding means
Matches the lower part of the address from the requestor.
Hit report if it matches the result of stepping up the corresponding part
Outputs tell, and <br/> comparison means in case of discrepancy of outputting the miss reports, read access, the read data holding means to said request source when outputting the comparison means Gahi Tsu preparative Report Fetching the held data, further causing the read data holding means to fetch the data indicated by the memory address held by the address holding means, and then reading the lower order of the memory address held by the address holding means. incrementing portion, when outputting the comparison means Gami Suhitto report was incorporated memory address from the request source to said address holding means, further, the address holding means to the read data holding means holds The data indicated by the memory address is fetched, and then the memory address held by the address holding means is read. Control increments the lower part of the less
Control means. Further, the present invention has a configuration in which the control means causes the address from the request source to be taken into the address holding means at the time of write access, and writes to the memory in accordance with the address taken by the address holding means .
【0013】[0013]
【作用】リードアクセス時、比較手段がヒット報告を出
力している場合(アドレス保持手段に保持されているア
ドレスがリクエスト元からのアドレスの下位部分に相当
する部分を歩進させた結果と一致する場合)はリクエス
ト元にリードデータ保持手段が保持しているデータを取
り込ませ、更に、リードデータ保持手段にアドレス保持
手段が保持しているメモリアドレスが示すデータを取り
込ませ、その後、アドレス保持手段の内容をインクリメ
ントする。従って、次のリードアクセスに於いて、前回
アクセスしたメモリアドレスの次のアドレスがアクセス
された場合は、既にリードデータ保持手段に今回アクセ
スするリードデータが保持されていることになるので、
アクセスを高速化することができる。ここで、アドレス
保持手段は、リクエスト元からのメモリアドレスを上位
部分と下位部分とに分けて保持し、インクリメント時に
は下位部分のみを歩進する。従って、アドレス保持手段
に或るブロックの末尾のアドレスが保持されている時に
インクリメントが行なわれると、アドレス保持手段は上
記或るブロックの先頭のアドレスを示すものとなる。ま
た、比較手段はアドレス保持手段に保持されているアド
レスがリクエスト元からのアドレスの下位部分に相当す
る部分を歩進させた結果と一致する場合はヒット報告を
出力し、不一致の場合はミスヒット報告を出力する。従
って、上記或るブロックの末尾のアドレスの次に上記或
るブロックの先頭のアドレスをリードアクセスする場合
も、リードデータ保持手段にはブロックの末尾のアドレ
スに対するアクセスが完了した時点で上記或るブロック
の先頭のアドレスのデータが保持されていることになる
ので、連続するアドレスをアクセスする場合と同様にア
クセスを高速化することができる。[Action] during a read access, which is held in the case (address holding means that outputs the comparison means Gahi Tsu door report A
The dress corresponds to the lower part of the address from the request source
In the case where the result coincides with the result obtained by incrementing the portion to be read, the data held by the read data holding means is fetched to the request source, and the read data holding means indicates the memory address held by the address holding means. The data is fetched, and then the content of the address holding means is incremented. Therefore, in the next read access, if the next address of the previously accessed memory address is accessed, the read data to be accessed this time is already held in the read data holding means.
Access can be speeded up. Here, the address holding means places the memory address from the request source in a higher order.
A part is held separately from a lower part, and when incrementing, only the lower part is advanced. Therefore, if the increment is performed when the address at the end of a certain block is held in the address holding means, the address holding means indicates the head address of the certain block. The comparing means outputs a hit report if the address held in the address holding means matches the result of incrementing the lower part of the address from the request source, and outputs a hit report if the address does not match. Print a report. Therefore, also in the case of performing a read access to the head address of the certain block next to the end address of the certain block, the read data holding unit stores the certain block at the time when the access to the end address of the block is completed. Since the data at the first address of the data is held, the access can be speeded up as in the case of accessing consecutive addresses.
【0014】[0014]
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。図1は本発明の前提となる技術を説明
するためのブロック図であり、リクエスト元100がメ
モリ130をアクセスする装置の構成を示したものであ
る。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 illustrates the technology underlying the present invention.
FIG. 2 is a block diagram illustrating a configuration of a device in which a request source 100 accesses a memory 130.
【0015】リクエスト元100はメモリアクセス開始
時、線101よりアクセス開始指定値として“1”を出
力する。ライト時には、更に、線102よりリクエスト
アドレスを、線103よりライト指定値として“1”
を、線104より当該ライトデータを送出する。リード
時には、更に、線102よりリクエストアドレスを、線
103よりライト指定値として“0”を送出し、その
後、線161からヒット報告を受けたら、線151より
当該リードデータを受取る。また、アクセス開始時でな
い場合は、線101よりアクセス開始指定値として
“0”を送出すると共に、線102よりライト指定値と
して“0”を送出する。When the memory access is started, the request source 100 outputs "1" as the access start designation value from the line 101. At the time of writing, the request address is further set to “1” from line 102 as a write designation value from line 103.
Is transmitted from the line 104 via the write data. At the time of reading, the request address is further transmitted from the line 102 and “0” is transmitted as the write designation value from the line 103. Thereafter, when a hit report is received from the line 161, the read data is received from the line 151. When the access is not to be started, “0” is transmitted as an access start designation value from the line 101, and “0” is transmitted as a write designation value from the line 102.
【0016】ライト指定フラグ120は1ビットのレジ
スタから構成され、線103からのライト指定値を受
け、線121に中継する。ライトデータレジスタ125
は線104からライトデータを受け、線126に中継す
る。尚、ライト指定フラグ120,ライトデータレジス
タ125はタイミング調整用のレジスタである。The write designation flag 120 is made up of a 1-bit register, receives the write designation value from the line 103, and relays it to the line 121. Write data register 125
Receives write data from line 104 and relays to line 126. The write designation flag 120 and the write data register 125 are registers for adjusting timing.
【0017】メモリユニット110はメモリ130,ア
ドレスレジスタ部140,リードデータレジスタ15
0,比較器160,ライト指定履歴フラグ170,論理
和ゲート180を含んでいる。The memory unit 110 includes a memory 130, an address register 140, and a read data register 15.
0, a comparator 160, a write designation history flag 170, and an OR gate 180.
【0018】メモリ130は線146からアドレスを、
線121からライト,リードの指定を受け、リード時に
は指定されたアドレスから読み出しを行なって線131
にリードデータを出力し、ライト時には線126から受
けたライトデータを指定されたアドレスに書き込む。Memory 130 receives the address from line 146,
Write / read designation is received from the line 121, and at the time of reading, reading is performed from the designated address and the line 131 is read.
The write data is output to the designated address at the time of writing.
【0019】アドレスレジスタ部140は内部に線14
6を介してメモリ130に対して指定するアドレスを保
持するアドレスレジスタ145を有している。そして、
線101からアクセス開始指示を受けた時点(アクセス
開始指定値が“1”になった時点)で、線103からラ
イト指定値として“1”を受けている場合または線16
1からミスヒット報告を受けている場合には線102か
らアドレスレジスタ145にリクエストアドレスを取り
込ませ、線161からヒット報告を受けている場合はア
ドレスレジスタ145をインクリメントする。また、線
101からアクセス開始指示を受けた時点で、線103
からライト指定値として“1”を受けておらず、線16
1からのミスヒット報告に起因してアドレスレジスタ1
45に線102からのリクエストアドレスを取り込ませ
た場合は、そのタイミングで線147よりアドレス再格
納報告として“1”を出力し、次のタイミングで当該ア
ドレスレジスタ145をインクリメントする。The address register 140 has a line 14 inside.
6 has an address register 145 for holding an address designated to the memory 130 through the address register 6. And
When the access start instruction is received from the line 101 (when the designated access start value becomes “1”), “1” is received as the write designated value from the line 103 or the line 16
If a mishit report is received from 1, the request address is taken into the address register 145 from the line 102, and if a hit report is received from the line 161, the address register 145 is incremented. Further, when the access start instruction is received from the line 101,
Has not received “1” as the write designation value from
Address register 1 due to a mishit report from
When the request address from the line 102 is taken into 45, "1" is output from the line 147 as an address re-storage report at that timing, and the address register 145 is incremented at the next timing.
【0020】リードデータレジスタ150は線181か
らのメモリ読み出し指示によりストローブされ、線13
1からのリードデータを線151に中継する。比較器1
60は線146上のメモリアドレスと線102上のメモ
リアドレスとの比較を行ない、線146上のメモリアド
レスが線102上のメモリアドレスの次のメモリアドレ
スとなっていることに関し、肯定的な結果を検出した場
合はヒット報告の値“1”を、否定的な結果を検出した
場合はヒット報告の値“0”を、ヒット情報として線1
61に出力する。但し、線171からイネーブル情報と
して“1”が入力されていない場合は必ずヒット情報と
して値“0”即ちミスヒット報告を出力する。ライト指
定履歴フラグ170は1ビットのレジスタで構成され、
線181からのメモリ読み出し指示によりストローブさ
れて線121からライト指定を受け、この極性を反転さ
せた値を線171に出力する。論理和ゲート180は線
147からのアドレス再格納報告か、線101からのア
クセス開始指定の何れかが有効化した場合に線181よ
りメモリ読み出し指示を出力する。従って、アドレスレ
ジスタ145に保持されているアドレスが、リードデー
タレジスタ150に保持されているデータが格納されて
いたアドレスの次のアドレスである場合、ライト指定履
歴フラグ170の出力はイネーブルとなる。尚、各レジ
スタ120,125,145,150,170はタイミ
ングを指定する単相のクロックに同期して動作する。The read data register 150 is strobed by a memory read instruction from a line 181,
1 is relayed to the line 151. Comparator 1
60 compares the memory address on line 146 with the memory address on line 102, with a positive result as the memory address on line 146 is the next memory address after the memory address on line 102. Is detected, a hit report value “1” is used as the hit information, and if a negative result is detected, the hit report value “0” is used as the hit information.
61. However, when "1" is not input as enable information from the line 171, a value "0", that is, a mishit report is always output as hit information. The write designation history flag 170 is composed of a 1-bit register.
It is strobed by a memory read instruction from a line 181 and receives a write designation from a line 121, and outputs a value whose polarity is inverted to a line 171. The OR gate 180 outputs a memory read instruction from the line 181 when either the address re-storage report from the line 147 or the access start designation from the line 101 is validated. Therefore, when the address held in the address register 145 is the next address after the address where the data held in the read data register 150 is stored, the output of the write designation history flag 170 is enabled. The registers 120, 125, 145, 150, and 170 operate in synchronization with a single-phase clock that specifies timing.
【0021】次に動作を説明する。ここでは、前述した
従来例との比較のため、リクエスト元100が図7に示
すアクセスを順次行なった場合の動作を説明する。この
時、実行されることになるアクセスのアドレス,リード
/ライト,アクセス順が図8に示すものとなるのは、前
述の通りである。[0021] to explain the operation to the next. Here, for comparison with the above-described conventional example, an operation in the case where the request source 100 sequentially performs the access shown in FIG. 7 will be described. At this time, the address, read / write, and access order of the access to be executed are as shown in FIG. 8 as described above.
【0022】この一連のアクセスが実行された場合には
図1の各部は図2のタイミングチャートに示す動作を行
なう。尚、図2のタイミングチャートは説明を判り易く
するため、上記した一連のアクセス実行の開始時点に於
いては、ライト指定フラグ120には“0”が保持さ
れ、線147にもアドレス再格納報告はないものとし、
アドレスレジスタ145,リードデータレジスタ150
及びライト指定履歴フラグ170は、前アクセスがアド
レスA−1からの読み出しで、これを完了した時点での
値を引き継ぎ、それぞれアドレスA+1,アドレスAか
ら読み出したデータ(A)及び“0”を保持しているも
のとする。When this series of accesses is executed, each section in FIG. 1 performs the operation shown in the timing chart of FIG. Incidentally, in the timing chart of FIG. 2, at the start of the above-described series of access execution, "0" is held in the write designation flag 120 and the address re-store Shall not be
Address register 145, read data register 150
The write designation history flag 170 is a read from the address A-1 in the previous access, takes over the value at the time of completion of the read, and holds the data (A) and “0” read from the address A + 1 and the address A, respectively. It is assumed that
【0023】先ず、リクエスト元100がタイミングt
0でアドレスAからの読み出しを開始し、アクセス開始
指定値,リクエストアドレス値及びライト指定値として
線101,102,103にそれぞれ“1”,アドレス
A及び“0”を出力する。これを受けて、比較器160
は線146上のアドレスレジスタ145が保持している
アドレスと線102からのリクエストアドレスとの比較
を行なう。この場合、線146,102上のアドレスは
それぞれA+1,Aで、線146上のアドレスが線10
2上のアドレスの次のアドレスになっており、また、ラ
イト指定履歴フラグ170の出力であるイネーブル情報
も“1”を示しているので、比較器160はヒット報告
を線161に出力する。線161にヒット報告が出力さ
れることにより、リクエスト元100はリードデータレ
ジスタ150に保持されているデータがメモリ130の
アドレスAから読み出されたデータであることを検出す
る。First, when the request source 100 is at the timing t
At 0, reading from address A is started, and "1", address A, and "0" are output to lines 101, 102, and 103, respectively, as access start designation values, request address values, and write designation values. In response, the comparator 160
Compares the address held by the address register 145 on the line 146 with the request address from the line 102. In this case, the addresses on lines 146 and 102 are A + 1 and A, respectively, and the address on line 146 is
Since the address is the address next to the address on the line 2 and the enable information output from the write designation history flag 170 also indicates “1”, the comparator 160 outputs a hit report to the line 161. By outputting the hit report to the line 161, the request source 100 detects that the data held in the read data register 150 is the data read from the address A of the memory 130.
【0024】タイミングt0からタイミングt1への変
化時、単相のクロックに同期して、リクエスト元100
は線151から所望のリードデータ(A)を取込み、リ
ードデータレジスタ150は線181にメモリ読み出し
指示が出力されていることから、それまでメモリ130
のアドレスA+1から読み出されていたリードデータ
(A+1)を取込み、ライト指定履歴フラグ170は線
181にメモリ読み出し指示が出力されていることから
それまでメモリ130に対してリードを指定していた線
121上の値“0”を取り込み、ライト指定フラグ12
0は線103上のライト指定値“0”を取り込み、アド
レスレジスタ部140は線161にヒット報告が出力さ
れていることからアドレスレジスタ145の内容をイン
クリメントしてA+2にする。At the time of transition from timing t0 to timing t1, the request source 100 is synchronized with the single-phase clock.
Takes in the desired read data (A) from the line 151, and the read data register 150 outputs the memory read instruction to the line 181.
The read data (A + 1) that has been read from the address A + 1 of the memory 130 is fetched, and the write designation history flag 170 indicates that the memory read instruction has been output on the line 181, and thus the line that previously designated the memory 130 for the read was read. The value “0” on the line 121 is fetched and the write designation flag 12
0 takes in the write designation value “0” on the line 103, and the address register unit 140 increments the content of the address register 145 to A + 2 since the hit report is output on the line 161.
【0025】タイミングt1に於いては、リクエスト元
100は次のアクセスとしてのアドレスA+1からの読
み出しを開始し、アクセス開始指定値,リクエストアド
レス及びライト指定値として線101,102及び10
3にそれぞれ“1”,アドレスA+1及び“0”を出力
する。これにより、タイミングt0と同様な、比較器1
60による比較が行なわれ、比較結果がリクエスト元1
00へ線161により報告される。リクエスト元100
は線161からの報告に基づいてリードデータレジスタ
150に保持されている内容がメモリ130のアドレス
A+1から読み出されたデータであるか否かの検出を行
なうが、ここでもやはり肯定的な結果を検出する。At timing t1, the request source 100 starts reading from the address A + 1 as the next access, and sets the lines 101, 102 and 10 as the access start designated value, the request address and the write designated value.
3 outputs "1", address A + 1 and "0", respectively. Thereby, the comparator 1 similar to the timing t0
60, and the comparison result is request source 1
Reported on line 161 to 00. Request source 100
Detects whether the content held in the read data register 150 is the data read from the address A + 1 of the memory 130 based on the report from the line 161. To detect.
【0026】タイミングt1からタイミングt2への変
化時、単相のクロックに同期して、リクエスト元100
はタイミングt1に於いて開始されたアクセスに対する
リードデータ(A+1)を取り込み、リードデータレジ
スタ150は線181にメモリ読み出し指示が出力され
ていることからそれまでメモリ130のアドレスA+2
から読み出されていたリードデータ(A+2)を取り込
み、ライト指定履歴フラグ170は線181にメモリ読
み出し指示が出力されていることからそれまでメモリ1
30に対してリードを指定していた線121上の値
“0”を取り込み、ライト指定フラグ120は線103
上のライト指定値“0”を取り込み、アドレスレジスタ
部140は線161にヒット報告が出力されていること
からアドレスレジスタ145の内容をインクリメントし
てA+3にする。At the time of transition from timing t1 to timing t2, the request source 100 is synchronized with the single-phase clock.
Fetches the read data (A + 1) for the access started at the timing t1, and the read data register 150 outputs the address A + 2 of the memory 130 since the memory read instruction is output on the line 181.
The read data (A + 2) that has been read from the memory 1 is fetched, and the write designation history flag 170 changes to the memory 1
The value “0” on the line 121 for which the read has been designated for the line 30 is fetched, and the write designation flag 120 is set for the line 103.
The upper write designation value "0" is fetched, and the address register unit 140 increments the content of the address register 145 to A + 3 since the hit report is output on the line 161.
【0027】次のタイミングt2に於いてはアクセスを
行なわないので、リクエスト元100は線101にアク
セス開始指定値として“0”を、線103にライト指定
値として“0”を送出する。At the next timing t2, since no access is made, the request source 100 sends "0" as the access start designation value to the line 101 and "0" as the write designation value to the line 103.
【0028】タイミングt2からタイミングt3への変
化時は、アクセス開始指定値が“0”であることから、
アドレスレジスタ145の内容,リードデータレジスタ
150の内容は変化しない。At the time of transition from timing t2 to timing t3, the access start designation value is "0".
The contents of the address register 145 and the contents of the read data register 150 do not change.
【0029】また、タイミングt3に於いてはタイミン
グt0,t1と同様の動作が行なわれる。At timing t3, the same operation as at timings t0 and t1 is performed.
【0030】タイミングt3からタイミングt4への変
化時に於いては、タイミングt0からタイミングt1へ
の変化時と同様の動作が行なわれる。At the time of change from timing t3 to timing t4, the same operation as at the time of change from timing t0 to timing t1 is performed.
【0031】タイミングt4に於いてはアドレスBに対
する書き込みが開始され、リクエスト元100がアクセ
ス開始指定値,リクエストアドレス値,ライト指定値及
びライトデータ値として線101,102,103及び
104へ“1”,B,“1”,W(B)を出力する。At timing t4, writing to the address B is started, and the request source 100 sets the access start designated value, the request address value, the write designated value, and the write data value to "1" on the lines 101, 102, 103 and 104. , B, “1”, W (B).
【0032】タイミングt4からタイミングt5への変
化時、アドレスレジスタ部140は線103からのライ
ト指定値が“1”であるので、アドレスレジスタ145
に線102からのアドレスBを取り込ませる。また、こ
れと同時に、ライト指定フラグ120,ライトデータレ
ジスタ125及びライト指定履歴フラグ170には、そ
れぞれ線103からのライト指定値“1”,線104か
らのライトデータW(B)及びそれまでライト指定フラ
グ120が保持していたライト指定値“0”が格納され
る。At the time of transition from the timing t4 to the timing t5, the address register unit 140 sets the address register 145 because the write designation value from the line 103 is "1".
Fetches the address B from the line 102. At the same time, the write designation flag 120, the write data register 125, and the write designation history flag 170 indicate the write designation value “1” from the line 103, the write data W (B) from the line 104, and the The write designation value “0” held by the designation flag 120 is stored.
【0033】次のタイミングt5に於いてはリクエスト
元100はメモリ130のアドレスBに対する書き込み
が行なわれている間に、次のアクセスであるアドレスA
+4に対する書き込みを開始する。即ち、リクエスト元
100はアクセス開始指定値,リクエストアドレス,ラ
イト指定値及びライトデータとして線101,102,
103及び104へ“1”,A+4,“1”,W(A+
4)を出力する。At the next timing t5, the request source 100 writes the address B of the memory 130 while the address A is the next access.
Start writing to +4. That is, the request source 100 receives the lines 101 and 102 as the access start designated value, the request address, the write designated value, and the write data.
"1", A + 4, "1", W (A +
4) is output.
【0034】タイミングt5からタイミングt6への変
化時、線103からのライト指定値が“1”であるの
で、アドレスレジスタ部140はアドレスレジスタ14
5に線102からのアドレスA+4を取り込ませる。ま
た、これと同時に、ライト指定フラグ120,ライトデ
ータレジスタ125及びライト指定履歴フラグ170に
は、それぞれ線103からのライト指定値,線104か
らのライトデータW(A+4)及びそれまでライト指定
フラグ120に保持されていたライト指定値“1”が格
納される。また、リードデータレジスタ150にも或る
データが取り込まれる。At the time of the transition from the timing t5 to the timing t6, the write register value from the line 103 is "1".
5 causes address A + 4 from line 102 to be fetched. At the same time, the write designation flag 120, the write data register 125, and the write designation history flag 170 respectively contain the write designation value from the line 103, the write data W (A + 4) from the line 104, and the write designation flag 120 up to that point. Is stored as the designated write value "1". Also, certain data is taken into the read data register 150.
【0035】タイミングt6に於いては、リクエスト元
100がアドレスCからの読み出しを開始し、タイミン
グt0,t1,t3と同様にアクセス開始指定値,リー
ドアドレス及びライト指定値として線101,102及
び103にそれぞれ“1”,C及び“0”を出力する。
比較器160は線171からイネーブル情報が加えられ
ていないので、ミスヒット報告を線161に出力する。
この時点でリクエスト元100は線161からのミスヒ
ット報告により、リードデータレジスタ150に保持さ
れているデータ(タイミングt5からタイミングt6へ
の変化時に取り込まれたデータ)がメモリ130のアド
レスCから読み出されたデータでないことを検出する
と、リードデータの取り込みは行なわず、線161から
ヒット報告が返されるまで、線102及び線103にリ
クエストアドレス値C及びライト指定値“0”を出力し
た状態で待ち状態になる。At the timing t6, the request source 100 starts reading from the address C, and similarly to the timings t0, t1, and t3, the lines 101, 102, and 103 serve as the access start designation value, the read address, and the write designation value. Output “1”, C and “0”, respectively.
Comparator 160 outputs a miss hit report on line 161 since no enable information has been added from line 171.
At this time, the request source 100 reads the data (data fetched at the time of transition from the timing t5 to the timing t6) held in the read data register 150 from the address C of the memory 130 due to the mishit report from the line 161. When it is detected that the data is not the read data, the read data is not taken in, and the request address value C and the write designation value “0” are output to the lines 102 and 103 until the hit report is returned from the line 161. State.
【0036】タイミングt6からタイミングt7への変
化時に於いては、アドレスレジスタ部140は線161
からミスヒット報告を受けているので、線102からの
リクエストアドレス値Cを単相のクロックに同期してア
ドレスレジスタ145に取り込ませる。このリクエスト
アドレス値Cの取り込みはミスヒット報告に起因するも
のであるので、アドレスレジスタ部140はそのタイミ
ングt7で線147よりアドレス再格納報告として
“1”を出力し、次のタイミングt8で当該アドレスレ
ジスタ145をインクリメントするよう動作する。At the time of transition from the timing t6 to the timing t7, the address register section 140
, The request address value C from the line 102 is taken into the address register 145 in synchronization with the single-phase clock. Since the fetch of the request address value C is caused by the mishit report, the address register unit 140 outputs “1” as the address re-storage report from the line 147 at the timing t7, and outputs the address at the next timing t8. It operates to increment the register 145.
【0037】タイミングt7に於いては、リクエスト元
100は線161からヒット報告が返らないため、待ち
状態を続行する。即ち、リクエスト元100はアクセス
開始指定値,リクエストアドレス値及びライト指定値と
して線101,102及び103へ“0”,C,“0”
を送出する。尚、この時、ライト指定履歴フラグ170
の出力は“0”であり、比較器160はミスヒット報告
を出力するので、リクエスト元100はリードデータレ
ジスタ150に格納されているデータは無効であると判
断し、それを取り込むことはない。At the timing t7, the request source 100 does not return a hit report from the line 161, so that the waiting state is continued. That is, the request source 100 sends “0”, C, “0” to the lines 101, 102, and 103 as the access start designated value, the request address value, and the write designated value.
Is sent. At this time, the write designation history flag 170
Is "0", and the comparator 160 outputs a mishit report. Therefore, the request source 100 determines that the data stored in the read data register 150 is invalid and does not take in the data.
【0038】タイミングt7からタイミングt8への変
化点では、アドレスレジスタ部140は前タイミングか
ら引き継いだ一連の手順として前述の通りアドレスレジ
スタ145をインクリメントするよう動作する。また、
アドレスレジスタ部140から線147へ出力されてい
るアドレス再格納報告が“1”となっていることにより
論理和ゲート180から出力されているメモリ読み出し
指示によってリードデータレジスタ150及びライト指
定履歴フラグ170はストローブされ、線131に読み
出されていたアドレスCからのリードデータ(C)及び
線121に出力されていたライト指定値“0”を取り込
む。At the transition point from the timing t7 to the timing t8, the address register section 140 operates to increment the address register 145 as described above as a series of procedures inherited from the previous timing. Also,
Since the address re-storage report output from the address register unit 140 to the line 147 is “1”, the read data register 150 and the write designation history flag 170 are changed according to the memory read instruction output from the OR gate 180. The read data (C) from the address C that has been strobed and read on the line 131 and the write designation value “0” output on the line 121 are fetched.
【0039】次のタイミングt8に於いては、リクエス
ト元100はタイミングt7と同様にアクセス開始指定
値,リクエストアドレス及びライト指定値として線10
1,102及び103にそれぞれ“0”,C,“0”を
出力する。この状態はタイミングt0,t1,t3での
状態と同様の状態であり、比較器160による比較以下
同様の動作が行なわれる。後は、タイミングt8からタ
イミングt9への変化時にリクエスト元100がリード
データレジスタ150に保持されている内容を取り込め
ば、図7に示した一連のアクセスが完了する。At the next timing t8, the request source 100 sets the access start designation value, the request address, and the write designation value to the line 10 in the same manner as at the timing t7.
"0", C and "0" are output to 1, 102 and 103, respectively. This state is the same as the state at timings t0, t1, and t3, and the same operation is performed after the comparison by the comparator 160. Thereafter, when the request source 100 captures the contents held in the read data register 150 when the timing changes from the timing t8 to the timing t9, a series of accesses shown in FIG. 7 is completed.
【0040】次に図1,図3〜図5を参照して本発明の
実施例を説明する。図3は本実施例を実施する際に使用
するアドレスレジスタ145の構成例を示すブロック
図、図4は本実施例を実施する際に使用する比較器16
0の構成例を示すブロック図、図5は本実施例の動作説
明図である。[0040] Next Figure 1, of the present invention with reference to FIGS. 3 to 5
The real施例described. FIG. 3 is a block diagram showing a configuration example of an address register 145 used when implementing the present embodiment, and FIG. 4 is a comparator 16 used when implementing the present embodiment.
0 is a block diagram showing a configuration example of FIG. 5, and FIG. 5 is an operation explanatory diagram of the present embodiment.
【0041】本実施例はキャッシュメモリ方式等に於け
るブロック読み出しを想定している。キャッシュメモリ
方式に於いては、リード時にミスヒットが発生すると、
主記憶装置からミスヒットしたアドレスを含むブロック
の読み出しを行なう。ここで、方式によってはブロック
の先頭からではなく、図5に示すように、ミスヒットし
たアドレスから巡回的にブロックを読み出すものがあ
る。これは、一刻も早く必要なデータをリクエスト側に
返却するためである。本実施例はこのようなブロック読
み出しを高速に行なうことができるようにするものであ
る。This embodiment assumes block reading in a cache memory system or the like. In the cache memory system, if a mishit occurs during reading,
A block including a mishit address is read from the main storage device. Here, depending on the method, there is a method in which a block is read not from the head of the block but cyclically from a mishit address as shown in FIG. This is to return necessary data to the request side as soon as possible. In the present embodiment, such block reading can be performed at high speed.
【0042】アドレスレジスタ145は図3に示すよう
に、上位部分145−1と下位部分145−2とに分か
れ、上位部分145−1にはブロック読み出しを行なう
ブロックのブロックアドレスEが、下位部分145−1
にはブロック内アドレスが格納される。そして、インク
リメント時、下位部分145−2のみを歩進するよう構
成されている。尚、下位部分145−2のビット数nは
キャッシュメモリのブロックサイズによって定まる。下
位部分145−2はその内容がオール“1”の時(ブロ
ックの末尾のアドレスの時)に歩進されると、その内容
をオール“0”(ブロックの先頭アドレス)にするもの
である。尚、図1と同一符号は同一部分を表している。As shown in FIG. 3, the address register 145 is divided into an upper part 145-1 and a lower part 145-2. In the upper part 145-1, a block address E of a block to be read is stored. -1
Stores the address in the block. Then, at the time of increment, only the lower part 145-2 is advanced. The bit number n of the lower part 145-2 is determined by the block size of the cache memory. When the contents of the lower part 145-2 are advanced when the contents are all "1" (at the end address of the block), the contents are made all "0" (the head address of the block). The same reference numerals as those in FIG. 1 indicate the same parts.
【0043】比較器160は図4に示すように、リクエ
スト元100から線102に送出されたリクエストアド
レスの下位nビットを+1して線991に出力する歩進
器900と、線911上のアドレスとアドレスレジスタ
145の出力である線146上のアドレスとが一致した
場合、その出力信号を“1”とする一致検出器910
と、一致検出器910の出力信号とライト指定履歴フラ
グ170から線171に出力されるイネーブル情報との
論理積をとり、線161にヒット情報を出力するアンド
ゲート920とから構成されている。尚、歩進器900
は線102上のリクエストアドレスの下位nビットがオ
ール“1”の場合は、下位nビットをオール“0”にす
るものである。As shown in FIG. 4, the comparator 160 includes a stepper 900 for adding 1 to the lower n bits of the request address sent from the request source 100 to the line 102 and outputting the result to a line 991, and an address on a line 911. When the address matches the address on the line 146 that is the output of the address register 145, the match detector 910 sets the output signal to "1".
And an AND gate 920 that ANDs the output signal of the match detector 910 and the enable information output from the write designation history flag 170 to the line 171 and outputs hit information to the line 161. In addition, the stepper 900
When the lower n bits of the request address on the line 102 are all "1", the lower n bits are all "0".
【0044】リクエスト元100はキャッシュメモリの
リード時にミスヒットが発生すると、先ず、線101,
102及び103にアクセス開始指定値,リクエストア
ドレス,ライト指定値としてそれぞれ“1”,ミスヒッ
トしたアドレスα及び“0”を出力し、ミスヒットした
アドレスαからのデータの読み出しを開始する。When a mishit occurs at the time of reading the cache memory, the request source 100 first receives the line 101,
The access start designation value, the request address, and the write designation value of “1”, the missed address α and “0” are output to 102 and 103, and the reading of data from the missed address α is started.
【0045】これを受けて比較器160がヒット報告を
線161に出力した場合は、リードデータレジスタ15
0にはアドレスαから読み出したデータが格納されてい
ることになるので、リクエスト元100は線151から
リードデータ(α)を読み出す。また、リードデータレ
ジスタ150は前述したと同様にメモリ130のアドレ
スα+1から読み出されているデータ(α+1)を取り
込み、アドレスレジスタ部140はアドレスレジスタ1
45の下位部分145−2の内容を歩進し、α+2にす
る。その後、リクエスト元100は線101,102及
び103にアクセス開始指定値,リクエストアドレス,
ライト指定値としてそれぞれ“1”,α+1,“0”を
出力し、ミスヒットしたアドレスの次のアドレスα+1
からのデータの読み出しを開始する。In response to this, when the comparator 160 outputs a hit report to the line 161, the read data register 15
Since the data read from the address α is stored in 0, the request source 100 reads the read data (α) from the line 151. The read data register 150 fetches the data (α + 1) read from the address α + 1 of the memory 130 in the same manner as described above, and the address register 140 stores the address register 1
The content of the lower part 145-2 of 45 is incremented to α + 2. Thereafter, the request source 100 sets the access start designation value, the request address,
“1”, α + 1, and “0” are output as the write specification values, and the address α + 1 next to the mis-hit address is output.
Start reading data from.
【0046】また、比較器160がミスヒット報告を出
力した場合はリクエスト元100はリードデータレジス
タ150に格納されているデータはアドレスαから読み
出したデータではないと判断してデータの取り込みは行
なわず、線161からヒット報告が返されるまで、線1
02及び線103にリクエストアドレスα及びライト指
定値として“0”を出力した状態で待ち状態となる。ま
た、アドレスレジスタ部140は比較器160からミス
ヒット報告を受けているので、線102上のリクエスト
アドレスαをアドレスレジスタ145に取り込ませる。
このリクエストアドレスαの取込みはミスヒット報告に
起因するものであるので、アドレスレジスタ部140は
そのタイミングで線147よりアドレス再格納報告とし
て“1”を出力し、次のタイミングでアドレスレジスタ
145の下位部分145−2をインクリメントするよう
動作する。線147よりアドレス再格納報告として
“1”が出力されると、論理和ゲート180からメモリ
読み出し指示が出力され、これにより、リードデータレ
ジスタ150はメモリ130のアドレスαから線131
に読み出されているリードデータ(α)を取り込む。そ
の後、アドレスレジスタ部140は前タイミングから引
き継いだ一連の手順としてアドレスレジスタ145の下
位部分145−2をインクリメントし、その内容をα+
1にする。これにより、比較器160はヒット報告を線
161に出力し、ヒット報告を受けることにより、タク
エスト元100は線151よりリードデータ(α)を取
り込み、その後、線101,102及び103にアクセ
ス開始指定値,リクエストアドレス,ライト指定値とし
てそれぞれ“1”,α+1,“0”を出力し、ミスヒッ
トしたアドレスの次のアドレスα+1からのデータの読
み出しを開始する。When the comparator 160 outputs a mishit report, the request source 100 determines that the data stored in the read data register 150 is not the data read from the address α, and does not take in the data. , Until line 161 returns a hit report
In the state where “0” is output as the request address α and the write designation value to the line 02 and the line 103, a wait state is set. Further, since the address register unit 140 has received the mishit report from the comparator 160, the address register unit 140 loads the request address α on the line 102 into the address register 145.
Since the fetch of the request address α is caused by the mishit report, the address register unit 140 outputs “1” as the address re-storage report from the line 147 at that timing, and the lower order of the address register 145 at the next timing. Operate to increment portion 145-2. When "1" is output from the line 147 as the address re-storage report, a memory read instruction is output from the OR gate 180, whereby the read data register 150 reads the line 131 from the address α of the memory 130.
And the read data (α) that has been read out. Thereafter, the address register unit 140 increments the lower part 145-2 of the address register 145 as a series of procedures inherited from the previous timing, and increments the content by α +
Set to 1. As a result, the comparator 160 outputs a hit report to the line 161, and upon receiving the hit report, the request source 100 fetches the read data (α) from the line 151, and then specifies access start to the lines 101, 102 and 103 “1”, α + 1, and “0” are output as the value, the request address, and the write designation value, respectively, and reading of data from the address α + 1 next to the mishit address is started.
【0047】以下前述したと同様にしてメモリ130か
らアドレスα+1,α+2,…の内容が順次読み出され
る。そして、リクエスト元100が線101,102及
び103にそれぞれアクセス開始指定値,リクエストア
ドレス値及びライト指示値としてそれぞれ“1”,ミス
ヒットしたアドレスを含むブロックの末尾のアドレスβ
の1つ前のアドレスβ−1及び“0”を出力し、アドレ
スβ−1に対するデータの読み出しを開始すると、線1
46,102上のアドレスはそれぞれβ,β−1である
ので、線146上のアドレスと線102上のアドレスを
+1した線911上のアドレスとが一致した場合、その
出力信号を“1”とする一致検出器910はその出力信
号を“1”とする。即ち、比較器160からヒット報告
が出力されることになる。The contents of the addresses α + 1, α + 2,... Are sequentially read from the memory 130 in the same manner as described above. Then, the request source 100 sets the access start designation value, the request address value, and the write instruction value to “1” on the lines 101, 102, and 103, respectively, and the end address β of the block including the mishit address.
Is output immediately before the address β-1 and “0”, and reading of data from the address β-1 is started.
Since the addresses on the lines 46 and 102 are β and β-1, respectively, if the address on the line 146 and the address on the line 911 obtained by adding +1 to the address on the line 102, the output signal is set to “1”. The coincidence detector 910 sets the output signal to “1”. That is, a hit report is output from the comparator 160.
【0048】比較器160からヒット報告が出力される
と、リクエスト元100はメモリ130のアドレスβ−
1から読み出されたリードデータ(β−1)を読み取
る。また、リードデータレジスタ150は前述したと同
様にメモリ130のアドレスβから読み出されているリ
ードデータ(β)を取り込み、アドレスレジスタ部14
0はアドレスレジスタ145の下位部分145−2を歩
進する。ここで、アドレスレジスタ145は下位部分1
45−2がオール“1”の場合、歩進時、それをオール
“0”にするものであるので、アドレスレジスタ145
の内容はミスヒットしたアドレスを含むブロックの先頭
アドレスγとなる。When the hit report is output from the comparator 160, the request source 100 sends the address β-
Read the read data (β-1) read from No. 1. The read data register 150 fetches the read data (β) read from the address β of the memory 130 in the same manner as described above, and
0 increments the lower part 145-2 of the address register 145. Here, the address register 145 stores the lower part 1
When the data 45-2 is all "1", it is set to all "0" at the time of stepping.
Is the head address γ of the block including the address where the miss occurred.
【0049】次にリクエスト元100は線101,10
2及び103にアクセス開始指定値,リクエストアドレ
ス及びライト指示値としてそれぞれ“1”,β及び
“0”を出力し、アドレスβに対する読み出しを開始す
る。この場合も、アドレスレジスタ145の内容がブロ
ックの先頭アドレスγ、線102上のリクエストアドレ
スがブロックの末尾アドレスとなっていることから、比
較器160から線161にヒット報告が出力され、リク
エスト元100はメモリ130のアドレスβから読み出
されたリードデータ(β)を取り込む。また、リードデ
ータレジスタ150も前述したと同様にメモリ130の
アドレスγから読み出されているリードデータ(γ)を
取り込み、アドレスレジスタ部140はアドレスレジス
タ145の下位部分145−2を歩進してその内容をγ
+1にする。Next, the request source 100 is the line 101, 10
"1", ".beta." And "0" are output as access start designation values, request addresses, and write instruction values to Nos. 2 and 103, respectively, and reading from address .beta. Is started. Also in this case, since the contents of the address register 145 are the head address γ of the block and the request address on the line 102 is the end address of the block, a hit report is output from the comparator 160 to the line 161 and the request source 100 is output. Captures the read data (β) read from the address β of the memory 130. The read data register 150 also takes in the read data (γ) read from the address γ of the memory 130 in the same manner as described above, and the address register section 140 steps down the lower part 145-2 of the address register 145. The content is γ
Set to +1.
【0050】次にリクエスト元100は線101,10
2及び103にアクセス開始指定値,リクエストアドレ
ス及びライト指示値としてそれぞれ“1”,γ,“0”
を出力し、ブロックの先頭アドレスγに対する読み出し
を開始する。この場合も、アドレスレジスタ145の内
容がγ+1、線102上のリクエストアドレスがγとな
っていることから、比較器160からヒット報告が出力
され、リクエスト元100はメモリ130のアドレスγ
から読み出されたリードデータ(γ)を線151を介し
て取り込む。以下、リクエスト元100はミスヒットし
たアドレスの1つ前のアドレスβ−1に対する読み出し
が完了するまで、前述したと同様の動作を行なう。この
ように、本実施例によれば、ブロックの末尾のアドレス
の次にブロックの先頭のアドレスをリードアクセスする
場合も、連続したアドレスをリードアクセスする場合と
同様に、末尾のアドレスに対するリードアクセスが完了
した時点で次にアクセスする先頭のアドレスのデータが
リードデータレジスタ150に保持されているので、ア
クセスを高速化できる。Next, the request source 100 is the line 101, 10
2 and 103 are “1”, γ, and “0” as the access start designation value, request address, and write instruction value, respectively.
And starts reading data from the start address γ of the block. Also in this case, since the content of the address register 145 is γ + 1 and the request address on the line 102 is γ, a hit report is output from the comparator 160, and the request source 100 receives the address γ of the memory 130.
Is read via the line 151. Thereafter, the request source 100 performs the same operation as described above until the reading for the address β-1 immediately before the mishit address is completed. As described above, according to the present embodiment, the read access to the tail address is performed in the same manner as the read access to the continuous address when the read access is performed to the head address of the block after the tail address of the block. At the time of completion, the data of the first address to be accessed next is held in the read data register 150, so that the access can be speeded up.
【0051】[0051]
【発明の効果】以上説明したように、本発明は、リード
アクセス時、比較手段がヒット報告を出力している場合
(アドレス保持手段に保持されているアドレスがリクエ
スト元からのアドレスの下位部分に相当する部分を歩進
させた結果と一致する場合)はリクエスト元にリードデ
ータ保持手段が保持しているデータを取り込ませ、更
に、リードデータ保持手段にアドレス保持手段が保持し
ているメモリアドレスが示すデータを取り込ませ、その
後、アドレス保持手段の内容をインクリメントするよう
にしたものであり、前回アクセスしたメモリアドレスの
次のアドレスをアクセスする場合は、既にリードデータ
保持手段に今回アクセスするリードデータが保持されて
いることになるので、後続リードアドレスが先行リード
アドレスの次のアドレスになる可能性が非常に高いこと
を考えれば、非常に高い確率で見掛け上、メモリアクセ
スタイムを殆ど0とし、メモリアクセスの高速化を図る
ことができる効果がある。また、本発明は高速のメモリ
素子でメモリ部を構成して強引に高速化を図ったり、キ
ャッシュメモリ方式をとったりする従来例に迫る、或い
は場合によってはそれらを凌駕する性能を、比較手段を
設けたり、アドレス保持手段にインクリメント機能を設
けたりするといった簡単なハードウェアを追加するだけ
で実現できるので、ハードウェアをそれらとは比べ物に
ならないほど経済的に実現できると共に制御ロジックを
単純なものにすることができる効果がある。ここで、ア
ドレス保持手段は、リクエスト元からのメモリアドレス
を上位部分と下位部分とに分けて保持し、インクリメン
ト時には下位部分のみをインクリメントし、比較手段は
アドレス保持手段に保持されているアドレスがリクエス
ト元からのアドレスの上記下位部分に相当する部分を歩
進させた結果に一致した場合、ヒット報告を出力するも
のであるので、或るブロックの末尾のアドレスの次にブ
ロックの先頭のアドレスをアクセスする場合、連続した
アドレスをアクセスする場合と同様に、見掛け上、メモ
リアクセスタイムをなくし、高速アクセスを行なうこと
ができる効果がある。As described above, according to the present invention, during the read access, if you are outputs the comparison means Gahi Tsu theft report
(The address held in the address holding means is
Increment the part corresponding to the lower part of the address from the strike source
If the result matches the result), the request source reads the data held by the read data holding means, and further causes the read data holding means to read the data indicated by the memory address held by the address holding means. After that, the content of the address holding means is incremented, and when the next address of the memory address previously accessed is accessed, the read data to be accessed this time is already held in the read data holding means. Therefore, considering that there is a very high possibility that the subsequent read address will be the next address of the preceding read address, the apparent memory access time is set to almost 0 with a very high probability, and the speed of memory access is increased. There is an effect that can be. In addition, the present invention provides a comparison means for achieving a performance that approaches the conventional example of forcibly increasing the speed by configuring the memory unit with a high-speed memory element and forcibly increasing the speed or adopting a cache memory system, or in some cases, exceeding the performance. Or simple addition of hardware such as providing an increment function to the address holding means, so that the hardware can be implemented economically as compared with them and the control logic is simplified. There is an effect that can be. Here, the address holding means is a memory address from the request source.
Is divided into an upper part and a lower part, and at the time of increment, only the lower part is incremented. The comparing means walks the part where the address held in the address holding means corresponds to the lower part of the address from the request source. If it matches the result of the forward, it outputs a hit report, so when accessing the head address of the block next to the end address of a certain block, as in the case of accessing consecutive addresses, Apparently, there is an effect that the memory access time can be eliminated and high-speed access can be performed.
【図1】本発明の前提となる技術及び本発明の実施例を
説明するためのブロック図である。FIG. 1 is a diagram showing a technology which is a premise of the present invention and embodiments of the present invention.
It is a block diagram for explaining .
【図2】図1の動作を示すタイミングチャートである。FIG. 2 is a timing chart showing the operation of FIG.
【図3】本発明の実施例を実施する際に使用するアドレ
スレジスタの構成例を示すブロック図である。3 is a block diagram showing a configuration example of the address register used in implementing real施例of the present invention.
【図4】本発明の実施例を実施する際に使用する比較器
の構成例を示すブロック図である。4 is a block diagram showing a configuration example of a comparator for use in carrying out the actual施例of the present invention.
【図5】本発明の実施例の動作説明図である。FIG. 5 is an explanatory view of the operation of the real施例of the present invention.
【図6】従来例のブロック図である。FIG. 6 is a block diagram of a conventional example.
【図7】一連のアクセスを示す図である。FIG. 7 is a diagram showing a series of accesses.
【図8】図7のアクセスをアドレス空間上で表現した図
である。8 is a diagram expressing the access of FIG. 7 in an address space.
【図9】従来例のタイミングチャートである。FIG. 9 is a timing chart of a conventional example.
100,300…リクエスト元 110,310…メモリユニット 120,320…ライト指定フラグ 125,325…ライトデータレジスタ 130,330…メモリ 140…アドレスレジスタ部 145,345…アドレスレジスタ 150,350…リードデータレジスタ 160…比較器 170…ライト指定履歴フラグ 180…論理和ゲート 900…歩進器 910…一致検出器 920…アンドゲート 100, 300 ... request source 110, 310 ... memory unit 120, 320 ... write designation flag 125, 325 ... write data register 130, 330 ... memory 140 ... address register section 145, 345 ... address register 150, 350 ... read data register 160 ... Comparator 170 ... Write designation history flag 180 ... OR gate 900 ... Step device 910 ... Match detector 920 ... And gate
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/10 G06F 13/16 - 13/18 G11C 7/00,11/34 G11C 11/41,11/401 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 7 , DB name) G06F 12/00-12/10 G06F 13/16-13/18 G11C 7/00, 11/34 G11C 11 / 41,11 / 401
Claims (2)
アクセスを行なう形式のメモリ装置に於いて、 リクエスト元からのメモリアドレスを上位部分と下位部
分とに分けて保持する機能と該保持したメモリアドレス
の下位部分をインクリメントする機能とを備えたアドレ
ス保持手段と、 該アドレス保持手段に保持されているメモリアドレスに
よって読み出された前記メモリの内容を保持するリード
データ保持手段と、前記アドレス保持手段に保持されているアドレスが前記
リクエスト元からのアドレスの前記下位部分に相当する
部分を歩進させた結果と一致する場合はヒット報告を出
力し、不一致の場合はミスヒット報告を出力する 比較手
段と、 リードアクセス時、前記比較手段がヒット報告を出力し
た場合は前記リクエスト元に前記リードデータ保持手段
に保持されているデータを取り込ませ、更に、前記リー
ドデータ保持手段に前記アドレス保持手段が保持してい
るメモリアドレスが示すデータを取り込ませ、その後、
前記アドレス保持手段が保持しているメモリアドレスの
下位部分をインクリメントし、前記比較手段がミスヒッ
ト報告を出力した場合は前記アドレス保持手段に前記リ
クエスト元からのメモリアドレスを取り込ませ、更に、
前記リードデータ保持手段に前記アドレス保持手段が保
持しているメモリアドレスが示すデータを取り込ませ、
その後、前記アドレス保持手段が保持しているメモリア
ドレスの下位部分をインクリメントする制御手段とを有
することを特徴とするメモリ予測アクセス装置。1. A method of randomly specifying a memory address
In a memory device that performs access, the memory address from the request source isUpper part and lower part
Divided into minutesFunction to be held and memory address to be held
The lower part ofAddress with the function of incrementing
Storage means, and a memory address stored in the address storage means.
Therefore, a read that holds the read contents of the memory
Data holding means;The address held in the address holding means is the address
Corresponds to the lower part of the address from the request source
If it matches the result of stepping up, issue a hit report
Output a mishit report if they do not match Comparison hand
StepWhen, At the time of read access, the comparing meansButOutput a credit report
The read data holding means
Data stored in the
Address data holding means,
The data indicated by the memory address
The memory address held by the address holding meansof
Lower partAnd the comparing meansIsShit
When a report is output, the address is held in the address holding means.
Incorporate the memory address from the quest source,
The address holding means holds the read data holding means.
Fetch the data indicated by the memory address
Thereafter, the memory address held by the address holding means is stored.
dressThe lower part ofIncrementWith control means
DoMemory predictive access characterized by the following:apparatus.
記リクエスト元からのアドレスを前記アドレス保持手段
に取り込ませ、該アドレス保持手段が取り込んだアドレ
スに従って前記メモリへの書き込みを行なう構成を有す
ることを特徴とする請求項1記載のメモリ予測アクセス
装置。Wherein said control means, during a write access, the address from the request source incorporated into said address holding means, having a configuration in which writing to the memory according to the address captured by the said address holding means
Memory prospective access according to claim 1, wherein the that
Equipment .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01688491A JP3189282B2 (en) | 1991-01-18 | 1991-01-18 | Memory predictive access device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01688491A JP3189282B2 (en) | 1991-01-18 | 1991-01-18 | Memory predictive access device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04236643A JPH04236643A (en) | 1992-08-25 |
| JP3189282B2 true JP3189282B2 (en) | 2001-07-16 |
Family
ID=11928599
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP01688491A Expired - Fee Related JP3189282B2 (en) | 1991-01-18 | 1991-01-18 | Memory predictive access device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3189282B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6516909B2 (en) | 2000-06-14 | 2003-02-11 | Honda Giken Kogyo Kabushiki Kaisha | Piping structure for brake hose for motorcycles |
-
1991
- 1991-01-18 JP JP01688491A patent/JP3189282B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6516909B2 (en) | 2000-06-14 | 2003-02-11 | Honda Giken Kogyo Kabushiki Kaisha | Piping structure for brake hose for motorcycles |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH04236643A (en) | 1992-08-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH03127147A (en) | Information processing system | |
| KR930022210A (en) | Cache miss buffer | |
| US6760835B1 (en) | Instruction branch mispredict streaming | |
| EP0543487B1 (en) | Method and cache memory controller for fetching data for a CPU that further reduces CPU idle time | |
| US5497470A (en) | Method and apparatus for providing a high through put cache tag controller | |
| JP4097883B2 (en) | Data transfer apparatus and method | |
| JP3189282B2 (en) | Memory predictive access device | |
| JPS601655B2 (en) | Data prefetch method | |
| EP0943998B1 (en) | Cache memory apparatus | |
| JP3729832B2 (en) | Cache memory device | |
| JP3169878B2 (en) | Memory control circuit | |
| JPH0115900B2 (en) | ||
| US6223257B1 (en) | Instruction cache address generation technique having reduced delays in fetching missed data | |
| JPS6391756A (en) | Partial write instruction processing system for storage device | |
| JP2536651B2 (en) | Exception address buffer management method | |
| JP3372873B2 (en) | Microprocessor with main memory prefetch mechanism | |
| JP3761890B2 (en) | Cache memory device | |
| JP3270215B2 (en) | Cache device | |
| JP2818562B2 (en) | Address translation circuit | |
| JPH0535583A (en) | Memory access system | |
| JPH1185613A (en) | Cache memory | |
| JPH03241442A (en) | Store buffer control system | |
| JP3147456B2 (en) | Cache memory system | |
| JPH0721133A (en) | Information processing equipment | |
| JPH02156351A (en) | Cache memory device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |