WO1993017386A1 - Cache memory apparatus - Google Patents

Cache memory apparatus Download PDF

Info

Publication number
WO1993017386A1
WO1993017386A1 PCT/JP1993/000252 JP9300252W WO9317386A1 WO 1993017386 A1 WO1993017386 A1 WO 1993017386A1 JP 9300252 W JP9300252 W JP 9300252W WO 9317386 A1 WO9317386 A1 WO 9317386A1
Authority
WO
WIPO (PCT)
Prior art keywords
address information
cache
data
cache memory
match
Prior art date
Application number
PCT/JP1993/000252
Other languages
English (en)
French (fr)
Inventor
Kazuhiko Maki
Original Assignee
Oki Electric Industry Co., 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 Oki Electric Industry Co., Ltd. filed Critical Oki Electric Industry Co., Ltd.
Priority to DE69330875T priority Critical patent/DE69330875T2/de
Priority to JP51470293A priority patent/JP3614428B2/ja
Priority to US08/295,685 priority patent/US5754814A/en
Priority to EP93904367A priority patent/EP0628912B1/en
Publication of WO1993017386A1 publication Critical patent/WO1993017386A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

Definitions

  • the present invention relates to a cache memory device used for high-speed data reading in an information processing device such as a microprocessor (hereinafter referred to as an MPU).
  • an MPU microprocessor
  • Background Technology Cache memory devices are widely used to improve the processing speed of information processing devices.
  • the technology relating to this cache memory device has been described in, for example, the following literature.
  • Reference 2 shows the basic configuration of a conventional cache memory device.
  • a conventional cache memory device has a memory (called a cache memory) that operates at high speed by reducing the capacity compared to the external memory attached outside the cache memory device. Stores data that is frequently read, stores the data at the time of the read request, and if it is in the cache memory, reads the requested data from the cache memory to perform high-speed reading. If not, Normal reading is performed by reading the requested data from an external memory external to the cache memory device.
  • a cache memory stores data that is frequently read, stores the data at the time of the read request, and if it is in the cache memory, reads the requested data from the cache memory to perform high-speed reading. If not, Normal reading is performed by reading the requested data from an external memory external to the cache memory device.
  • FIG. 2 is a basic circuit diagram of a conventional cache memory device.
  • the cache memory device 50 is provided with a cache corresponding to a cache address CA from a data read requester 1 (hereinafter referred to as a cache requester) such as a central processing unit (hereinafter referred to as a CPU) provided in the information processing device. It outputs a CD and is composed of a control circuit 10 for controlling the internal circuits of the cache memory device 50, a small-capacity high-speed random access memory (hereinafter referred to as RAM), and the like.
  • Cache data memory 1 Cache data memory composed of small-capacity, high-speed RAM, etc.
  • the cache tag memory 11 stores a part of the data address stored in the cache data memory 12, and includes an address terminal A, a data input / output terminal (hereinafter referred to as IZO terminal) D, and a control circuit. It has a write enable terminal WE activated by 10, a terminal VA i and a terminal VA e activated by the control circuit 10.
  • the cache data memory 12 stores frequently read data, and includes an address terminal A, an IZO terminal D, and a write enable terminal W activated by the control circuit 10.
  • the match detection circuit 13 is a circuit that detects a mismatch Z between two pieces of information that are input when the enable terminal E is activated, and outputs a hit signal HIT when there is a match.
  • the enable signal E is activated by the hit signal HIT
  • the register 14 for storing the cache address CA and the enable terminal E is activated by the hit signal HIT.
  • the address terminals A of the cache tag memory 11 and the cache data memory 12 are connected to the output side of the register 14 for storing the cache address CA via the tristate buffer 17 and the IA bus 22, respectively.
  • the upper address (a—b—1) of the cache address CA is supplied to the I / O terminal D of the cache memory memory 11 via the tri-state buffer 18 and to the match detection circuit 13 .
  • the terminal VA o of the cache tag memory 11 is connected to the enable terminal E of the match detection circuit 13 via the AND gate 19 controlled by the control circuit 10.
  • the cache memory 1 2 I ZO terminal D is connected to the ID bus 23, and the ID bus 23 is connected to the input side of the register 15.
  • the output side of the register 14 is connected to an external register 16 whose count enable terminal CE is activated by the control circuit 10.
  • the external register 16 has a function of storing the total number of bits a ( ⁇ address EA) of the cache address CA output from the register 14 when the terminal CE is activated.
  • the external memory 30 has, in addition to the address terminal A, a data output terminal D and a terminal D—WAIT for putting the cache memory device 50 in a wait state (waiting state).
  • D is connected to the ID bus 23 via the 3-state buffer 21, and the terminal D—WEIT is connected to the input side of the control circuit 10.
  • FIG. 3 is a diagram for explaining the storage contents of the cache tag memory 11.
  • the cache tag memory 11 includes an address (tag) TAG and a valid bit (valid bit).
  • the tags TAG are, to some extent, grouped together to reduce hardware requirements. This grouped number is called the number of lines (or the number of blocks).
  • one group consists of four nights. In other words, one group except for the lower two bits of the quiche address CA having the same bits, for example, "0... ()" Is defined as one group.
  • the cache address CA is supplied from the cache requester 1, it is temporarily stored in the register 14 and then read out and the data corresponding to the cache address CA is stored in the cache data memory 12.
  • the register 14 is output to the IA bus 22 via the tri-state buffer 17 and the cache address CA matches the contents of the cache tag memory 11 and the Z mismatch is detected by the match detection circuit. If a match (hereinafter referred to as "hit") is detected in 13 and the hit signal HIT is output from the match detection circuit 13 and supplied to the control circuit 10 and the rice of the registers 14 and 15 is output. It is given to one bull terminal E.
  • the hit signal HIT is input to the control circuit 10, 3 ⁇ 4.
  • the output of the control circuit 10 activates the write enable terminals WE of the cache tag memory 11 and the cache data memory 12, and the lower (b + 1) of the cache address CA The specified data in the cache data memory 12 is read onto the ID bus 23.
  • the data read to the ID bus 23 is output from the register 15 to the cache requester 1 as a cache data CD.
  • miss hit the data corresponding to the cache address C A requested by the cache requester 1 is not in the cache data memory 12 (hereinafter referred to as “miss hit”), it is activated by the output of the control circuit 10.
  • the total number of bits a (EA) of CA is sent to the address terminal A of the external memory 30, and the storage data corresponding to the total number of bits a is read from the data output terminal D of the external memory 30. .
  • the read data is sent to the cache data memory 12 via the tri-state buffer 21 and is transmitted to the cache data memory 12.
  • the data is output to the cache requester 1 in the form of a cache data CD via the ID bus 23 and the register 15.
  • FIG. 4 is a timing chart 25 showing the operation of the cache memory device 50 of FIG.
  • m, n + 1, ... indicate addresses.
  • Mishit penalty time refers to the amount of time a CD is The time until it takes effect.
  • ⁇ + 1 " ⁇ - ⁇ 0 (binary representation).
  • Fig. 3 it is equivalent to four addresses per line.
  • the external memory 30 can be accessed in two cycles. Evening TAGs include valid bits, but there is only one bit for each tag data.
  • the last two bits of the external register 16 in Figure 2 are counters, and the cache address is set by a miss hit. The value of CA is loaded and the lower two bits are cleared to "0".
  • the simplest possible method for updating the cache data memory 12 after a mis-hit and returning the true cache data CD to the cache requester 1 is as shown in Fig. 4. If the error occurs, the data should be read from a certain address in the line containing the address. For example, as shown in Fig. 4, if the configuration is for four addresses per line, "xx-'x OO", " ⁇ - ⁇ ',” ⁇ - ⁇ 10 ”,“ ⁇ : ... ⁇ 1 Data is read in the order of "1". During this time, the cache data memory 1 2 is used for updating (writing), so even if the cache data CD is written first, it is valid (valid). do not become.
  • FIG. 6 is a circuit diagram of the cache memory device 5I. Common elements are denoted by common reference numerals.
  • the cache memory device 51 has a configuration using a DRAM page mode.
  • the basic difference from the cache memory device 51 in FIG. 2 is that the output of the counter in the external register 16 is incremented by 1 in the adder 35 and input to the selector 36. The point is that the output of the selector 36 is input to the counter.
  • Reference numeral 40 in FIG. 5 indicates a connection state.
  • Cache address CA from cache requester 1 consists of tag TAG, line address LA, and in-line address IA, which are stored in register 14 from the most significant bit (MSB) to the least significant bit (LSB). Stored for.
  • One of the in-line address IA and the output of the adder 35 is selected by the selector 36 and input to the counter in the external register 16.
  • the external memory 30 is composed of a DRAM.
  • an external address signal strobe signal (hereinafter referred to as “address”) is provided between the external memory 30 and the control circuit 10.
  • RAS N where N represents an opposite phase)
  • a column strobe signal a strobe signal
  • CAS N strobe signal
  • S10 memory control signal of a wait signal rate.
  • the DRAM page mode by adding one after another while CAS N pulses "L" level R.AS N, a ⁇ over de performing high-speed read and write operations.
  • R.AS N pulses "L" level R.AS N
  • a ⁇ over de performing high-speed read and write operations while the bit line level is kept at "L" level or "H” level while the RAS N is at “L” level, the operation of the CAS system is continuously returned, and Write or read is performed.
  • FIG. 6 is a timing chart showing the operation of FIG.
  • the evening chart consists of 4 data per line.
  • CK is clock
  • N is when the lower two bits are "0".
  • the tag TAG in the register 14 and the data output terminal D of the cache tag memory 11 are set.
  • the match detection circuit 13 detects whether the data read from 0 matches Z mismatch. In the case of a mismatch, a mishit occurs, so the tag TAG in register 14 is stored in external register 16 via connection 40, and the output of external register 16 is connected to external memory 3 via connection 40. Input to address terminal A of 0. Then, in the page mode, data is read out at high speed from the data terminal D of the external memory 30 according to the memory control signal S 10, input to the data input terminal Di of the cache data memory 12, and the cache data memory 12 is read. Is read in the form of cache data CD from the output terminal D0 This can reduce the miss hit penalty time.
  • each of the cache memory devices 50 and 51 has the following problems.
  • the miss hit penalty time required for reading the data is long.
  • the cache memory device 51 shown in FIG. 5 it takes several clocks to read the first one because the DRAM, which constitutes the external memory 30 and the like, cannot keep up with the burst transfer speed. After reading the first one, as shown in Fig. 6, four data are read.
  • the burst transfer access mode must be exited once, and a new missit must be executed. Wasted time until the first data on the line arrived ing.
  • the hit rate decreases. For this reason, it was still difficult to obtain technically satisfactory cache memory.
  • An object of the present invention is to provide a cache memory that solves the problems of the prior art, that is, the problem that the miss hit penalty time is long without increasing the amount of hardware and that the hit rate is low.
  • the present invention provides a first cache memory for storing upper address information of address information corresponding to desired data, and a plurality of lower addresses belonging to the upper address information. Information, a second cache memory for storing a plurality of data corresponding to the plurality of lower address information, upper address information of input address information, and upper address information stored in the first cache memory.
  • a first detection circuit that detects a match and responds to a match detection result of the first match detection circuit
  • a register for taking in the input address information and generating a plurality of pieces of address information belonging to upper address information 12 of the input address information only when the detection circuit detects a mismatch.
  • the upper address information of the address information is controlled to be written to the first cache memory according to a plurality of pieces of address information belonging to the upper address information, and the lower address information of the address information and the address information of the external memory are controlled.
  • a control circuit that controls to write a plurality of data corresponding to the second cache memory to the second cache memory; a second match detection circuit that detects a match between the address information generated by the register and the input address information; In response to the match detection results of the first and second match detection circuits, when the first match detection circuit detects a match, the input address information output from the second cache memory is The corresponding data is output, and when the second match detection circuit detects a match, the input address output from the external memory is output.
  • FIG. 1 is a circuit diagram of a cache memory device showing a first embodiment of the present invention
  • FIG. 2 is a circuit diagram of a cache memory device showing a conventional first embodiment
  • FIG. 4 is a timing chart showing the operation of the cache memory device of FIG. 2
  • FIG. 5 is a circuit diagram of the cache memory device showing the second conventional example
  • FIG. 6 is a timing chart showing the operation of the cache memory device of FIG. 5
  • FIG. 7 is a timing chart showing the operation of the cache memory device of FIG. 1, and FIG.
  • FIG. 8 is a second embodiment of the present invention.
  • FIG. 9 is a circuit diagram of a cache memory device showing an example, FIG. 9 is a timing chart showing the operation of the cache memory device of FIG. 8,
  • FIG. 10 is a circuit diagram of a cache memory device showing a third embodiment of the present invention,
  • FIG. 11 is a timing chart showing the operation of the cache memory device of FIG. 10
  • FIG. 13 is a circuit diagram of a cache memory device showing a fourth embodiment of the present invention,
  • FIG. 13 is a timing chart showing the operation of the cache memory device of FIG. 12, and
  • FIG. 14 is a fifth embodiment of the present invention.
  • FIG. 15 is a circuit diagram of a cache memory device showing an embodiment,
  • FIG. 15 is a timing chart showing the operation of the cache memory device of FIG.
  • FIG. 14 is a cache memory device showing a sixth embodiment of the present invention.
  • FIG. 17 is a timing chart showing the operation of the cache memory device of FIG. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 is a circuit diagram of a cache memory device showing a first embodiment of the present invention.
  • This cache memory device 100 is the same as the cache memory device 50 shown in FIG. 2 except that a coincidence detection circuit 150 and an OR gate 15 1 are added.
  • the match detection circuit 150 operates when the enable signal E is activated by the output signal of the control circuit 110 when the cache data is updated due to a miss.
  • the match detection circuit 150 has a total address a of the cache address CA from the register 114 and an address for writing data from the external memory 130 to the cache memory 112 (all bits a ) Is detected.
  • the OR gate 1501 calculates the logical sum of the output of the match detection circuit 150 and the tag hit signal TAG ⁇ HIT output from the match detection circuit 113, and detects the match detection circuit 150. It has a function to activate the enable terminal E of the register 115 when the result matches.
  • the control circuit 110 When the control circuit 110 receives the tag hit signal TAG ⁇ HIT from the match detection circuit 113, the control circuit 110 outputs the cache update signal S110a to turn on the tri-state buffers 120, 121 and the external circuit.
  • the read data output from the data output terminal D of the memory 130 is output to the ID bus 123.
  • the read data output on the ID bus 123 is taken into the enabled register 115 by the OR gate 151, and is returned to the cache requester 1 as cache data CD.
  • the match detection circuit 150 detects a match at the time of cache update due to a miss, the OR gate 151 bypasses the data read from the external memory 130 and sends the cache requester 1 Even it has a function to output as a cached CD.
  • the cache address CA is written to the register 114. If the cache is not in the cache update state, the tri-state buffer 117 is turned on by the cache update signal S110a output from the control circuit 110.
  • the transmitted cache address CA is sent to the IA bus 122.
  • the cache data memory 112 receives the address of the specified tag and line among the addresses on the IA bus 122, for example, the lower (b + 1) at the address terminal A, and designates it with that address.
  • the stored data is output from the I / 0 terminal D to the ID bus 123.
  • the address of the specified evening address L 0 g 2 (total evening number) b
  • the data stored in the cache tag memory 111 is read from the IZ ⁇ terminal D, and the match detection circuit 113 detects match / mismatch with the given tag.
  • the result is that the contents of the cache tag memory 111 indicated by the terminal VA o of the cache tag memory 111 are in the read state (not the cache renewal state) and the cache tag memory 111 Is valid, the result of the match detection by the match detection circuit 113 enabled via the AND gate 124 is valid, and the tag hit signal from the input detection circuit 113 is valid.
  • TAG ⁇ HIT is output and supplied to the control circuit 110.
  • the evening hit signal TAGHIT is generated through the OR gate 151 to indicate that the contents of the ID bus 123 are valid. Return the hit signal HIT to the cache requester 1 and enable writing to the register 115 by the hit signal HIT. Furthermore, in order to receive the cache address CA from the next cache requester 1, the writing to the register 1 14 is also enabled.
  • the tag hit signal TAG ⁇ HIT output from the match detection circuit 113 indicates a mismatch state, a miss occurs, and from the next cycle, the cache data memory 112 changes the cache update state. Enter the state.
  • the control circuit 110 sets the tristate buffer 1 by the cache update signal SI0a in order to enable the fetch of data from the external memory 130.
  • Turn on 20 and 12 I activate the count enable pin CE of the external register i 16 as the address supply source to the IA bus 122, and supply the read data supply to the ID bus 123 To external memory 130.
  • the contents of the external register 1 16 are always rewritten at the time of a miss hit.
  • the terminal D-WAIT power of the external memory 130 which indicates that the external read data is valid, becomes "L" level. Since the cache update signal SI0a output from the control circuit 110 is at the "H" level, the control circuit 110 has the cache memory 111 and the cache memory 111 each.
  • the feature of the present embodiment is that, in addition to the cache update operation described above, when cache data is updated, write data to the cache data memory 112 is passed, if requested by the cache requester 1, to bypass it.
  • the match detection circuit 150 is enabled by the output of the control circuit 110, and the match detection circuit 150 allows the contents of the register 114 and the external register 116 to be updated. Detects a match / mismatch with the contents.
  • the detection result is ORed with the evening hit signal TAG ⁇ HIT output from the match detection circuit 113 at the OR gate 151, and the hit signal HIT is generated and the cache requester is generated.
  • the register 1 15 is enabled and is output to the data cache requester 1 read from the external memory 130 to the ID bus 123.
  • the cache memory device 100 updates the cache tag memory 111 and the cache data memory 112. Enter the work.
  • the signal TAG—HIT is set to the “L” state indicating that the match detection result of the match detection circuit 113 does not match.
  • the control circuit 110 sets the match detection circuit 150 and the external register 116 to the enabled state and the cache signal in response to the state of the signal TA.G—HIT.
  • the memory 1 1 1 and the cache memory 1 1 2 to the write enabled state.
  • the cache address CA ("xx01") is taken as it is.
  • the match detection circuit 150 receives address data 9 EA based on the cache address CA and the cache address taken into the external register 116.
  • the lower two bits of the external register 1116 are countdown, and Evening EA counts up one by one in response to writing one line to cache memory i 11, 11 12, so in clock 4 address data EA is “xx 0 power, followed by clocks 5, 6, 7 Changes to "X-X10", “x ⁇ x11", "X: X00", respectively. Therefore, the cache address CA of the match detection circuit 150 and the address data EA —The match detection result matches at clock 4. 'The match detection circuit enables registers 114, 115.
  • the external memory 130 is connected to the external register 116.
  • the data based on the generated address data EA "x to xO1" is output.This data is passed to the cache requester 101 as the cache data CD via the register 115 and the cache data memory 111. It is also updated and written to 2. Also, the cache requester 101 is registered in register 114. Is enabled, so send n + 2 ("x to x10") as the next cache address CA. At clock 5, the cache memory device 100 has a line containing n + 1. The cache corresponding to the generated address data "xx10" is updated and written to the cache data memory 112 by the external register 116.
  • n + 2 is stored, and the tag “x to X” has not been updated and written in the cache tag memory 111, so that the match detection circuit 113 determines that there is no match.
  • n + 2 of the cache address CA is input to the match detection circuit 150.
  • the match detection circuit 1 5 0 uses the same address data as n + 2 as the other input. Therefore, a match is detected, and registers 1 1, 4, and 1 5 are enabled and the cache address CA requested by the cache requester 101 corresponds to n12. Cache data memory 1 1 2 and register 1 1 5 Has been passed to the cache requester 101.
  • n + 3 is an addressless sequence that is continuous with n + 2 in the same manner as the relationship between n and n + 2, the same operation as clock 5 is performed at clock 6.
  • n + 4 ("Y to Y 0 0") 'is input as cache data CA.
  • the address n + 4 matches the tag stored in the cache memory 111, and is the address for the fourth writing to the tag "" generated in the external register 116. Since the data "x to x00" also does not match, the enable state of the registers 114 and 115 is released. However, at this time, " ⁇ ...
  • the cache data update operation can be put into a waiting state when the cache requester 1 receives a byte request.
  • This is the cache data memory device 200 shown in FIG. FIG. 8 is a circuit diagram of the cache memory device 200.
  • the cache memory device 200 has three AND gates 201, 202, 203 is added.
  • the AND gate 201 logically ANDs the signal indicating the wait request state of the cache requester 1 with the output signal from the control circuit 110, and outputs the result to the cache tag memory 111 and the cache. Input to each light enable terminal WE of data memory 112.
  • the AND gate 2 1 1 and the write enable pin WE of the cache memory 1 1 and 2 are activated.
  • the AND gate 202 calculates the logical product of the signal indicating the request status from the cache requester 1 and the output signal from the control circuit 110, and outputs the result to the count enable of the external register 116. Input to terminal CE.
  • the AND gate 201 counts the value of the external register 116.
  • Enable pin CE CE AND gate 203 outputs a signal indicating the wait request status from cache requester 1 and the output signal of OR gate 151 (signal indicating the HIT status of cache data)
  • the result of the AND operation is input to the enable terminal E of the registers 114 and 115.
  • the AND gate 203 receives the wait request from the cache requester 1 Register 1 1 4, 1 when the cache end address CA matches the tag in the cache tag memory 111 or when the cache address CA matches the data in the external register 116. 15 Activate the enable terminal E of 1. Therefore, when the cache requester 1 makes a wait request, writing of data to the cache tag memory 111 and cache data memory 112 and reading of the external register 116 from the external memory 130 are requested. Output of the data address and the cache data CD Storage in the storage device 115 is prohibited, and the entire cache data update process of the cache memory device 200 is in a wait state.
  • FIG. 9 is a timing chart showing the operation of the cache memory device 200 of FIG.
  • the cache data CD m is still stored.
  • the external register 1 16 also stores n + 1. Further, each of the write enable terminals WE of the cache tag memory 111 and the cache data memory 112 remains at the "L" level and is not activated.
  • FIG. 10 is a circuit diagram of the cache memory device 300 of the third embodiment.
  • the cache memory device 300 has a plurality of coincidence detecting circuits provided corresponding to the plurality of buffers 301 and the buffers 301. 3 0 2, multiple tri-state buffers 3 0 4 provided corresponding to buffer 3 0 1, 3-state buffer 3 2 AND gate 3 0 3, OR gate 3 0 5 and 3 5 1 Is provided.
  • Each of the registers 310 1 is an address read from the external memory 130, data and a signal output from the control circuit 110. Set flags are stored in one set.
  • the buffer 301 is activated.
  • three buffers 301 buffers 0, I, 2) are provided. This is 4 addresses per line, and the update for the cache is performed for one line. Therefore, the number is sufficient for updating, and is not limited to three.
  • Three match detection circuits 302 are also provided corresponding to the buffer 301, activated in accordance with the valid flag signal V from the corresponding buffer 301, and the cache address output from the register 114. A match between the CA and the address stored in the buffer 301 is detected.
  • each match detection circuit 302 controls the operation of the corresponding tri-state buffer 304, and is input to the OR gate 305.
  • the OR gate 305 takes the logical sum of the respective match detection circuits 302, inputs the result signal to the OR gate 351, and outputs the tri-state buffer 322 with the inverted signal of the result signal.
  • the operation control of 1 is performed.
  • Three 3-state buffers 304 are provided corresponding to the match detection circuit 302, and each of them corresponds to the match detection result of the corresponding match detection circuit 302.
  • the data stored in the buffer 301 is output to the ID bus 123, respectively.
  • the tristate buffer 3.21 outputs the data stored in the external memory 130 to the ID bus 123 in response to the inverted signal of the output of the OR gate 305.
  • the OR gate 351 is a three-input OR gate to which as an input, in addition to the output of the ⁇ R gate 305, the match detection results of the match detection circuits 113 and 150 are input. The logical sum of these three signals is taken, and the resulting output becomes the input of AND gate 303.
  • the AND gate 303 also receives a write signal WEIT from the cache requester ⁇ , and inputs the result of the OR operation into the registers 114 and 115 to the respective enable terminals E.
  • WEIT write signal
  • a miss occurs (tag HI is "0"), and the cache memory device 300 starts updating cache data.
  • cache requester 1 is in an inactive state.
  • the cache data update operation was not performed during the wait state.
  • the external memory 130 data is not transmitted by the clock 4 in the wait state.
  • the data is written to the cache data memory 112.
  • the data is input to the register 115 via the tri-state buffer 32 1.
  • cache requester 1 cannot receive the cache data input to register 115 because cache requester 1 is still in the wait state.
  • one of the registers 310 is activated by an output signal from the control circuit 110 to transfer the address output from the external memory 130 and the data corresponding to the address.
  • buffer 301 for example, buffer 0
  • the reset flag is validated by the output signal from the control circuit 110. (Valid).
  • the cache requester again requests the same address as clock 4.
  • one of the plurality of match detection circuits 302 detects a match.
  • the tri-state buffer 3 21 is deactivated via the buffer 3 0 5, and the address requested from the register 3 0 1 (buffer 0) to the ID bus 12 3 via the tri-state buffer 3 4 4 To output At this time, the data corresponding to the next address is written to the cache data memory 112, and the same address and data are written to the buffer 301 (for example, buffer 1). In this way, even though the address from the cache requester 1 and the timing of writing to the cache memory 1 12 are out of sync, the buffer 301 (for example, The cache data CD is output to the cache requester 1 from cuff 2).
  • FIG. 12 is a circuit diagram of the cache memory device 400.
  • the cache memory device 400 has a buffering monitoring circuit 401 added thereto.
  • the buffering monitoring circuit 401 checks whether or not the cache data to be updated when the cache requester 1 is in the wait state is the data to be stored in the buffer 301, and checks the buffer 301 of the predetermined storage destination (the Since only two buffers 301 are shown in Fig. 12, they are stored in the buffer 0 or the buffer 1) and invalidate the data in the buffer 30 I that is no longer needed.
  • the coffering monitoring circuit 4 is a wait signal WAIT, the output signal (detection result) of each match detection circuit 150, 302, the output of the external register 116, and the output of the control circuit 110
  • An output signal for activating the write enable terminals of the cache tag memory 111 and the cache data memory 112 is input, a signal for activating the buffer 301 and data stored in the buffer 301.
  • the buffering monitoring circuit 401 sets conditions for storing data in the buffer 301 (buffers 0 and 1) and conditions for invalidating the stored data, for example, as follows.
  • buffer 1 contains data rh2. Written. In this way, when the conditions (1) to (4) are satisfied, new writing and invalidation of data are performed.
  • FIG. 14 is a circuit diagram of a cache memory device 500 showing a fifth embodiment of the present invention. Elements common to those in the cache memory device 100 of FIG. Is attached.
  • This cache memory device 500 is the same as the cache memory device of FIG. 51 As in the case of 1, it operates as an instruction cache memory provided in the command generation unit such as the MPU.
  • the line address following the misaddressed line address is used.
  • Mishit determination means 560 for determining whether a dress also misses, and whether data (instruction) newly read during cache update is required (for example, whether there is a branch instruction or not) If the next line address is also a miss and its contents are needed (if there is no branch instruction), then the next line address is also updated.
  • Update means 580 and AND gate 574 force are added.
  • the mishit determination means 560 includes a selector 561 provided on the output side of the register 114, an adder 562 for incrementing the output of the selector 561 by +1 and an adder 562. And a register 563 which is rewritten by the output of 62 and output to the selector 561.
  • the necessity judging means 570 obtains the logical sum of the decoder 571 for decoding the data read from the data output terminal D of the external memory 130 and the output of the decoder 571
  • An OR gate 572 and a flag 573 composed of a delayed flip-flop for temporarily holding the output of the OR gate 572 are provided.
  • the AND gate 5 7 4 is the tag detection signal TAG-HIT output from the match detection circuit 1 13, the signal HIT • E output from the control circuit 110, and the output signal from the control circuit 110. and outputs a hit signal HIT to logically ANDed write enable signal S 1 0 b that.
  • the write enable signal SIO b activates the inverted write enable terminals WEN provided in the cache tag memory 111 and the cache data memory 112, respectively.
  • Selector that selects the output of 1 14 and updates the contents of 1 16 58i, and an adder 582 that increments the output of the external address 1 16 by +1 and feeds it back to the selector 58 1.
  • 540 indicates a connection state.
  • FIG. I5 is a timing chart showing the operation of the cache memory device 500.
  • N in FIG. 15 indicates a case where the lower two bits are "00".
  • the prerequisite for this timing chart is that the required cache address C A (that is, the address) is the address! !
  • the instructions up to n + 5 and the instruction n + 7 are not branch instructions, but the instruction n + 6 is a branch instruction.
  • the type of branch of, for example, the CPU on the cache address requesting side that uses this cache memory is a delayed branch, and the n + 6 branch instruction branches to m. Therefore, the execution order is n, n + 1, ..., n + 6, n + 7, m. Address for cache memory! !
  • Mis-hits are performed up to n + 10 and m to m + 3, and hits are performed until m + 4 to m + 10. Also, access to the external memory 130 uses the DRAM page mode, and it takes two clocks CK until the first data arrives, so that it is possible to check up to the next line address.
  • n ⁇ 1 of the cache address CA when supplied from the cache requester 1, it is stored in the register 114, and the contents and the cache tag are then stored.
  • the data in the cache data memory 112 corresponding to the address n-1 is read from the data output terminal Do and returned to the cache requester 1 as a cache data CD.
  • the cache memory is empty (wait state). Due to the specifications of the external memory 30, data arrives only after two clocks CK. Time t 4 is the same. During this time, the mishit determination means 560 checks whether or not the following line address also misses.
  • the signal HIT ⁇ E output from the control circuit 110 becomes the "L" level.
  • Selector 561 is normally directed to register 114, but only to register 563 during the signal HITE ⁇ E force "L" level.
  • register 563 the value to be given to cache tag memory 111 is always incremented by +1 in adder 562, so the line address following in the wait state is missed. Can be checked.
  • the tag hit signal TAG • HIT output from the match detection circuit 113 during this time is invalid for the requested cache address CA, and is masked by the AND gate 574 by the i-th signal H ⁇ ⁇ ⁇ . Is applied.
  • the line address that originally caused the mishit and the two subsequent line addresses will be updated at the same time.
  • the address for the cache memory 1 1 2 is the cache address C A
  • the address EA is sent from the external register 116 to the external memory 130, the data is read from the data output terminal D of the external memory 130, and the cache tag memory 111 and the cache data are read. Evening data 1 1 2 and the tag TAG are updated.
  • the counter portion corresponding to the in-line address IA of the external register 116 is incremented by the adder 535 to prepare for the next update.
  • the selector 536 is directed to the adder 535.
  • register 1 14 contains the newly requested cache address CA, n + 1. From time t7 to t10 thereafter, the same operation as time t5 and t6 is performed.
  • the last address in the line that originally caused the miss is updated. Basically, the same operation as at time t5 is performed, but in addition to this, it is determined by the necessity determining means 570 whether or not to update a subsequent line.
  • the line address following at time t3 is mishit.
  • the result of decoding by the decoder 571 whether or not there is a branch instruction in the line address that is being updated is determined when writing to the cache data memory 112 (time t5, t7 , t 9, til), the signal HIT ⁇ E output from the control circuit 110 is stored in the flag 573 reset when the signal HIT ⁇ E is at the “L” level. Therefore, at the time til, the OR of the value of the flag 573 and the decoded result is obtained by the OR gate 572 to determine whether or not the branch order is within the mis-hit line address. it can. In this case, Since there was no branch instruction in the line address, the value incremented by the adder 582 is loaded into the external register 116, and the subsequent line address is updated.
  • the operation at time t 12 is the same as that at time t 6. Further, the operation from time t 13 to t i 9 is the same as the operation from time t 5 to t 11. At time t 19, it is known that, at time t 4, the next line address also mishits.However, at time t 17, the branching instruction is detected by the necessity determination means 570 at time t 17. Since the contents of the flag 570 are "1", the next update is not performed, and the access to the external memory 130 is stopped here.
  • the operation is the same as at time t12. However, at this time t20, the cache address CA stored in the register 114 is the address m generated by the branch instruction which was in the address n + 6. After time t 21, the operation is the same as after cache update cycle time t 2 generated by the request from cache requester 1.
  • the fifth embodiment has the following advantages.
  • the line address at which the mishit occurred due to the mishit determination means 560 is checked whether the next line address also misses, and if the necessity determining means 570 finds that the actual address of the mishit line is necessary (for example, if there is no branch instruction, Since the next line address is continuously updated by the updating means 580, the hit rate can be improved.
  • the writing to the cache memory 111 and the writing to the cache memory 111 are performed independently.
  • the cache tag memory 111 is used to check the hit / miss hit of the next line address even while data is being written to the cache memory 112 due to a miss. This is made possible by the cache memory device 600 of the sixth embodiment shown in FIG.
  • FIG. 16 is a circuit diagram of the cache memory device 600.
  • the control circuit 110 controls the cache tag memory 111 based on the match detection results of the match detection circuit 501 and the match detection circuit 61. 1 and the write data memory 112 output write enable signals TWE and DWE that independently enable writing.
  • the OR gate 602 is added to the cache memory device 600.
  • the match detection circuit 6001 detects a match between the tag TA and the line address LA of the cache address CA and the tag TAG and the line address LA of the cache address stored in the external register 116, and a match is detected.
  • the write matching signal WA-MAT is output to the control circuit 110. In other words, it detects whether the requested address has been output from the external memory.
  • the control circuit 110 outputs the write enable signal DWE to the cache memory 1 1 2 in response to the write matching signal WA-MAT, and outputs it to the cache tag memory 1 1 1 once every 1 line. Only outputs the write enable signal TWE to the cache tag memory 111.
  • the OR gate 6002 has a HIT-V signal output from the control circuit 110 in response to the D-WAIT signal indicating that the data in the external memory 130 is valid, and an AND gate 5 7 It takes the logical OR with 4 and outputs the result as a HIT signal to the cache requester. .
  • FIG. 17 is an operation timing chart showing the operation of the cache memory device 600.
  • one line has four addresses, and that access to the external memory 130 is valid two clocks after the first one and valid one clock after the continuous address.
  • the cache address CA of the request to the cache memory device 600 is mishit from n to n + 7, and is an execution example when a branch instruction is at n + 6.
  • n-1 is passed to the cache evening memory 1 1 1 as it is.
  • n becomes mishit, and the next time t 4 accesses the external memory 130, so this n is taken into the external register 1 16 via the updating means 580, and The update of Cache de Night starts.
  • the match detection circuit 6001 checks whether or not the data of the requested address has been read from the external memory 130.
  • the cache address CA of the request is n + 1, so that the address n stored in the external register 1 16 and the lower 1 bit (IA ) Is incremented by one
  • the match detection circuit 6001 detects a match and outputs a WA-MAT signal to the control circuit 110. Further, since the external memory 130 is in the read state, the D-WAIT signal is also output to the control circuit 110.
  • the control circuit 110 reads the requested address correctly using the WA-MAT signal and the D-WAIT signal.
  • the HIT-V signal is output to generate a HIT signal to notify the cache requester that the request is made.
  • the update means 580 At time t6 as an update period of the cache data memory 112, the update means 580 generates a line address next to n, that is, n + 4. Check the hit state. In this example, n + 4 is also regarded as a miss. The result of the miss is stored in a register (not shown). At time t12, the result of the mishit may be sent to the control circuit 110.At time t12, the update of the line of the address n is completed, and the control circuit outputs the write enable signal DWE together with the fourth output of the write enable signal DWE. Outputs write enable signal TWE.
  • the necessity determining means 570 is n ⁇ ! Since the branch instruction is not detected at 1 + 3, the update is continued.
  • the update of the line of n + 4 is performed.
  • the necessity discriminating means 470 detects that n + 6 is a branch order, and outputs this detection result to the control circuit 110.
  • the control circuit 1I0 performs the same operation as described above for the branch destination m.
  • the cache memory device of the present invention has been described in the six embodiments, but the circuits and operation timings shown in each embodiment can be variously changed as long as the same operation is possible.
  • You. INDUSTRIAL APPLICABILITY As described in detail above, according to the first embodiment of the present invention, means for passing written data to a cache requester while updating cache data due to a miss. The hit ratio improves the hit rate and shortens the miss hit penalty time. According to the second embodiment of the present invention, in the first embodiment, the means for interrupting the update of the cache data in response to the wait request of the cache requester is provided, so that the entire system having the cache memory device is provided. As a result, the operability is improved.
  • a means for interrupting the output of cache data to the cache requester of the cache data and a buffer means for storing the updated cache data in the input state.
  • the cache data updated in response to the Eight request can be accessed without interrupting the update of the cache data, and the cache data updated in the Eight state can be accessed, and the operability is improved as compared with the second embodiment.
  • the third embodiment means for judging the necessity of storing cache data is provided for an object to be stored in the provided buffer means, and a necessary cache data is provided. Since only one night is stored in the buffer means, an effect similar to that of the third embodiment can be obtained with a smaller amount of hardware than in the third embodiment.
  • the next line address data following the line address data of the miscached data is also hit.
  • Means means for determining whether the contents of the data being updated during the update of the cache data are required, and contents of the data updated by the determining means are required; and If the next line address data is a mis-hit, a means for continuously updating the next line address data is provided, so that the time until the next cache address update is used and the next line address data is updated.
  • the hit status of the next line address data can be determined, and if the address being updated does not have a branch order, the next line address data is updated continuously. The operation rate and hit rate of the memory device are improved, and the miss hit penalty time is shortened.
  • the cache data memory and the cache tag memory are controlled by independent write enable signals and read from the requested cache memory and the external memory. Even if the control circuit controls the cache data memory and the cache tag memory with independent write enable signals, the write request is written correctly to the cache requester. Since the HIT signal indicating that the cache address has been updated is output, the cache tag memory is used to update the cache address during the cache update memory update period. And obtain the same effect as in the fifth embodiment. It can be.

Description

明 細 書 キャッシュメモリ装置 技 術 分 野 本発明はマイクロプロセッサ (以下 MPUと称する) 等の情報処理装 置におけるデ一夕の高速読出しに用いられるキヤッシュメモリ装置に関 する。 背 景 技 術 キャッシュメモリ装置は情報処理装置の処理速度向上のため、 広く利 用されている。 このキャッシュメモリ装置に関する技術は、 例えば、 次 のような文献に記載されるものがあった。
文献 1 ; H a r o 1 d S. S t o n e著 「高性能コンピュータ了一キ テクチヤ」 (平 1 — 3 - 3 0) 丸善㈱、 P. 2 3 - 4 2 文献 2 ; 日経エレクトロニクス [ 4 3 4 ] . ( 1 9 8 7 - 1 1 — 1 6 ) 日経 B P社、 P. 1 5 9.- 1 7 4
文献し 2には従来のキャッシュメモリ装置の基本的な構成が示され ている。 従来のキャッシュメモリ装置は、 キャッシュメモリ装置の外部 につけられた外部メモリに比べて、 小容量とすることで高速な動作をす るメモリ (これをキャッシュメモリという) を設け、 このキャッシュメ モリ内に読出し頻度が高いデー夕を格納し、 読出し要求のあつたデ一夕 力、 キャッシュメモリ内にあればキャッシュメモリから要求のデ一夕を 読出すことで高速な読出しを行レ、、 キャッシュメモリ内になければ、 キ ャッシュメモリ装置に外付けされた外部メモリから要求のデ一夕を読出 すことで通常の読出しを行うものである。 以下に、 そのキャッシュメモ リ装置の具体的な構成とその動作を説明する。
第 2図は従来のキヤッシュメモリ装置の基本的な回路図である。
このキャッシュメモリ装置 5 0は情報処理装置内に設けられる中央処 理装置 (以下、 C P Uという) 等のデータの読出し要求者 1 (以下キヤ ッシュ要求者という) からのキヤッシュアドレス C Aに応じたキヤッシ ュデ一夕 C Dを出力するものであり、 該キャッシュメモリ装置 5 0の内 部回路を制御するコントロール回路 1 0、 小容量高速のランダム ·ァク セス · メモリ (以下、 R AMという) 等で構成されるキャッシュ夕グメ モリ 1 1、 小容量高速の RAM等で構成されるキャッシュデータメモリ
1 2、 及び一致検出回路 1 3を備えている。 キャッシュタグメモリ 1 1 は、 キャッシュデータメモリ 1 2に格納したデ一夕のアドレスの一部を 格納するもので、 アドレス端子 A、 データ入/出力端子 (以下、 I ZO 端子という) D、 コントロール回路 1 0により活性化されるライトイネ —ブル端子 WE、 該コントロール回路 1 0により活性化される端子 VA i及び端子 V A eを有している。 キャッシュデータメモリ 1 2は、 読出 し頻度の高いデータを格納するもので、 アドレス端子 A、 I ZO端子 D、 及びコントロール回路 1 0により活性化されるライトイネーブル端子 W
Eを有している。 一致検出回路 1 3は、 ィネーブル端子 Eが活性化され ると入力される 2つの情報のナ致 Z不一致を検出し、 一致の時にはヒッ P 卜信号 H I Tを出力する回路である。
また、 このキャッシュメモリ装置 5 ひには、 ヒッ ト信号 H I Tにより イネ一ブル端子 Eが活性化されてキヤッシュアドレス C Aを格納するレ ジス夕 1 4と、 ヒッ ト信号 H I Tによりィネーブル端子 Eが活性化され ると I Dバス 2 3上のキヤッシュデータ C Dを格納するレジスタ 1 5と、 コントロール回路 1 0によりカウントイネーブル端子 C Eが活性化され たア ドレス E Aを格納する外部レジス夕 1 6 と、 該コン トロール回路 1 0により制御される 卜ライステートバッファ 1 7, 1 8, 2 0, 2 1 及び ANDゲー卜 1 9と、 I Aバス 2 2と力 \ 設けられている。
キャッシュアドレス CAを格納するレジスタ 1 4の出力側には、 トラ イステートノくッファ 1 7及び I Aバス 2 2を介して、 キャッシュタグメ モリ 1 1及びキヤッシュデータメモリ 1 2の各ァドレス端子 Aがそれぞ れ接続されている。 レジスタ 1 4から、 キャッシュア ドレス C Aの全 ビッ ト数 aが I Aバス 2 2へ出力され、 その全ビッ ト数 aのうちの、 L 0 g2 (全夕グ数) = bがキャッシュタグメモリ 1 1のァ ドレス端子 Aに供給され、 下位 (b + 1 ) (但し、 l =L o g2 (ライン数) ) が キャッシュデータメモリ 1 2のアドレス端子 Aへ供給され、 さらに上位 (a - b - 1 ) がー致検出回路 1 3へ供給される。 キッシュアドレス C Aの上位 ( a— b— 1 ) は、 トライステートバッファ 1 8を介して、 キ ャ ッシュ夕グメモリ 1 1の I 0端子 Dに供給されると共に、 一致検出 回路 1 3へ供給される。 キャッシュタグメモリ 1 1の端子 VA oは、 コ ントロール回路 1 0で制御される ANDゲート 1 9を介して、 一致検出 回路 1 3のィネーブル端子 Eに接続されている。
キャッシュデ一夕メモリ 1 2 I ZO端子 Dは、 I Dバス 2 3に接続 され、 その I Dバス 2 3がレジス夕 1 5の入力側に接続されている。 レ ジス夕 1 4の出力側には、 コントロール回路 1 0によりカウントイネー ブル端子 CEが活性化される外部レジス夕 1 6が接続されている。 外部 レジス夕 1 6は、 端子 CEが活性化されると、 レジスタ 1 4から出力さ れるキヤッシュアドレス C Aの全ビッ ト数 a (-ァドレス E A) を格納 する機能を有し、 その出力側が、 卜ライステートバッファ 2 1を介して I Aバス 2 2に接続されると共に、 大容量低速の RAM等で構成される 外部メモリ 3 0のアドレス端子 Aに接続されている。 外部メモリ 3 0は、 アドレス端子 Aの他に、 データ出力端子 D、 及びキャッシュメモリ装置 5 0をウェイ卜状態 (待ち状態) にするための端子 D— WA I T等を有 し、 該データ出力端子 Dがトライステ一トバッファ 2 1を介して I Dバ ス 2 3に接続されると共に、 該端子 D— W E I Tがコントロール回路 1 0の入力側に接続されている。
第 3図は、 キャッシュタグメモリ 1 1の記憶内容を説明する図である。 キャッシュタグメモリ 1 1は、 アドレス (タグ) T A Gと有効ビッ ト (バリッ ドビッ ト) 等からなる。 タグ T A Gは、 ハードウェア量を減ら すために、 ある程度、 了ドレスをグループ化して付けられている。 この グループ化された数をライン数 (またはブロック数) といい、 了ドレス の近いものをまとめるのが一股的である。 第 3図においては、 1グルー プに 4つのデ一夕としている。 つまり、 キッシュアドレス C Aの下位 2 ビッ トを除く ビッ トが同じもの、 例えば " 0 ··· () " のデ一夕を 1 グルー プとしている。
次に、 第 2図に示すキャッシュメモリ装置 5 0の動作を説明する。 キヤッシュ要求者 1からキヤッシュアドレス C Aが供給されると、 そ れがレジスタ 1 4に一時格納された後、 読出されてそのキヤッシュアド レス C Aに対応するデータがキヤ.ッシュデータメモリ 1 2に格納されて いるか否か (即ち、 ヒッ トか否か) を調べる。 つまり、 レジスタ 1 4か らトライステートバッファ 1 7を介して I Aバス 2 2へ出力され.たキッ シュアドレス C Aと、 キャッシュタグメ乇リ 1 1の内容との一致 Z不一 致が一致検出回路 1 3で検出され、 一致 (以下ヒッ トという) ならば、 該一致検出回路 1 3からヒッ ト信号 H I Tが出力され、 コントロール回 路 1 0に与えられると共に、 レジス夕 1 4, 1 5のイネ一ブル端子 Eに 与えられる。 ヒッ ト信号 H I Tがコントロール回路 1 0に入力されると、 ¾.
該コント口一ル回路 1 0の出力によってキャッシュタグメモリ 1 1及び キャ ッシュデータメモリ 1 2の各ライ トイネーブル端子 W Eが活性化さ れ、 キッシュァドレス C Aのうちの下位 (b + 1 ) により指定される該 キャッシュデータメモリ 1 2内のデータが I Dバス 2 3へ読出される。
5 この I Dバス 2 3に読出されたデータは、 レジスタ 1 5からキャッシュ デ一夕 C Dとしてキヤッシュ要求者 1へ出力される。
一方、 キャ ッシュ要求者 1から要求されたキヤッシュアドレス C Aに 対応するデータがキャッシュデータメモリ 1 2内になければ (以下ミス ヒッ 卜という) 、 コントロール回路 1 0の出力によって活性化される外
10 部レジス夕 1 6により、 レジスタ 1 4から出力されたキヤシュアドレス
C Aの全ビッ ト数 a ( E A ) が外部メモリ 3 0のアドレス端子 Aへ送ら れ、 その全ビッ ト数 aに対応した記憶データが該外部メモリ 3 0のデー 夕出力端子 Dから読出される。 この読出されたデータは、 トライステー 卜バッファ 2 1を介してキヤッシュデータメモリ 1 2へ送られて該キヤ
15 ッシュデータメモリ 1 2の内容が更新された後、 I Dバス 2 3及びレジ ス夕 1 5を介してキヤッシュデ一夕 C Dの形でキャッシュ要求者 1へ出 力される。
このように、 ミスヒッ トの場合、 ミスヒッ トしたア ドレスを含む 1 ラ イン分のデータが外部メモリ 3 Qから読出され、 キャッシュ于'一夕メモ 20 リ 1 2の内容が更新される。 ここで、 ミスヒッ トしてからキャッシュデ 一夕メモリ 1 2の内容を更新し、 真のキャッシュデータ C Dをキヤッシ ュ要求者 1へ返す方法には、 従来次のような第 1 , 第 2の方法がある。 ( 1 ) 第 1 の方法
第 4図は第 2図のキヤッシュメモリ装置 5 0の動作を示すタイ ミ ング 25 チャートである。 図中、 m, n + 1 , …はア ドレスを示す。 ミスヒッ 卜ペナルティ時間とは、 ミスヒッ 卜してからキヤッシュデ一夕 C Dが有 効になるまでの時間をいう。
第 4図において、 η+ 1 = "χ— χ 0 (2進数表現) とする。 第 3図に示すように 1ライン 4アドレス分としている。 なお、 外部メモリ 30は、 2サイクルでアクセスできるものとしている。 夕グ TAGには、 バリッ ドビッ 卜を含むが、 1タグデータに対して 1ビッ トしかない。 4 回の書込み (ライト) とも、 タグデータ (= "X…: X" ) を書込むが、 バリッ トビッ トにバリッ 卜情報を書くのは最後の 1回のみである。 第 2 図の外部レジス夕 1 6の下位 2ビッ トは、 カウンタになっており、 ミス ヒッ トによってキャッシュアドレス C Aの値がロードされ、 その下位 2 ビッ トは "ひ 0" にクリアされる。
ミスヒットしてからキャッシュデ一夕メモリ 1 2を更新し、 キヤッシ ュ要求者 1へ真のキヤッシュデータ C Dを返す方法として、 最も単純に 考えられる方法は、 第 4図に示すように、 ミスヒットが発生したら、 こ のァドレスが含まれるラインのうち、 ある決まったァドレスからデータ を読出 (リード) してくるようにすることである。 例えば、 第 4図に示 すように 1ライン 4アドレス分の構成であれば、 "xx—'x O O" , "χ— χθ Γ' , "χ〜χ 1 0" , "χ:… χ 1 1 " という順にデータを 読込む。 この間、 キャッシュデ一夕メモリ 1 2は更新 (書込み) のため に使用されるので、 キヤッシュ 一夕 CDが先に書込まれたとしてもバ リッ ド (有効) にならない。
(2) 第 2の方法
メモリインタリーブ方式やダイナミック RAM (以下、 DRAMとい う) の特性を生かしたアクセス方法 (ページモードゃスタティックカラ 厶等) により、 バースト転送をサポートすることによってミスヒッ ドぺ ナルティ時間を短くすることも考えられる。 その構成例第 5図に示す。 第 6図はキャッシュメモリ装置 5 Iの回路図であり、 第 2図中の要素 と共通の要素には共通の符号が付されている。
このキャッシュメモリ装置 5 1は、 DRAMページモードを使った構 成である。 第 2図のキャッシュメモリ装置 5 1 と基本的に異なる点は、 外部レジス夕 1 6内のカウン夕の出力が加算器 3 5で + 1インクリ メン 卜 (増分) されてセレクタ 3 6に入力し、 そのセレクタ 3 6の出力が該 カウン夕に入力するようになっている点である。 なお、 第 5図の符号 4 0は、 結線状態を示す。
キヤッシュ要求者 1からのキャッシュアドレス C Aは、 タグ TAG、 ラインアドレス LA、 及びライン内アドレス I Aより構成され、 それら がレジスタ 1 4内に最上位ビッ ト (MS B) から最下位ビッ ト (L S B) へ向けて格納される。 そして、 ライン内アドレス I Aと加算器 3 5の出 力とのいずれか一方が、 セレクタ 3 6で選択されて外部レジスタ 1 6内 のカウン夕に入力されるようになっている。 また、 外部メモリ 3 0は、 DRAMで構成され、 それをページモードで動作させるために、 該外部 メモリ 3 0とコントロール回路 1 0との間で、 口一 'アドレス ' スト口 ーブ信号 (以下、 RASN という。 但し、 Nは逆相を表わす) 、 コラム •了ドレス · ストローブ信号 (以下、 CASN とレ、う) 、 及びウェイ ト 信号率のメモリコントロール信号 S 1 0が授受される。
DRAMページモードとは、 R.ASN を " L" レベルのまま CASN パルスを次々 と加えることにより、 高速の読出し 書込み動作を行う乇 ードである。 このモードでは、 RASN の "L" レベル状態でビッ ト線 レベルを "L" レベルあるいは "H" レベル状態にしたまま、 CAS系 の動作を連続的に橾返し、 任意のビッ ト線への書込みあるいは読出しを 行うようになっている。
第 6図は第 5図の動作を示すタイ ミ ングチャートである。 この夕イ ミ ングチャートでは、 1 ライン 4データで構成されている。 CKはクロッ ク、 nは下位 2ビッ 卜が " 0 " である場合である。
第 5図のキャッシュメモリ装置 5 1では、 要求されたキャッシュァド レス C Aがレジスタ 1 4に格納されると、 そのレジス夕 1 4内のタグ T A Gと、 キャッシュタグメモリ 1 1のデータ出力端子 D 0から読出され たデータとが、 一致検出回路 1 3で一致 Z不一致の検出が行われる。 不 —致のときにはミスヒッ トとなるので、 レジスタ 1 4内のタグ T A Gが 結線 4 0を介して外部レジスタ 1 6に格納され、 その外部レジスタ 1 6 の出力が結線 4 0を介して外部メモリ 3 0のアドレス端子 Aに入力され る。 すると、 メモリコントロール信号 S 1 0により、 ページモードで、 外部メモリ 3 0のデータ端子 Dからデータが高速に読出されてキヤッシ ュデータメモリ 1 2のデータ入力端子 D iに入力され、 該キヤッシュデ —タメモリ 1 2の出力端子 D 0からキャッシュデータ C Dの形で読出さ れる。 これにより、 ミスヒッ トペナルティ時間を短縮できる。
しかしな力 ら、 上記のキャッシュメモリ装置 5 0及び 5 1では各々、 次のような課題があった。
第 2図に示すキャッシュメモリ装置 5 0ではミスヒッ ト時にミスヒッ トしたデ一夕をキャッシュデータメモリ 1 2に書込むための時間が長い ため、 データの読出しにかかるミスヒッ トペナルティ時間が長い。 第 5図に示すキャッシュメモリ.装置 5 1では、 外部メモリ 3 0等を構 成する D R AMの方がバースト転送速度に追いついていないため、 最初 の 1つを読込むまでに数クロックかかる。 最初の 1つを読込んだ後には 第 6図に示すように、 4データ分を読んでくる。
キャッシュメモリ装置 5 1では、 ミスヒッ トを起こしたァドレスの含 まれるラインの次のラインが綜けて必要な場合であっても、 一度バース 卜転送アクセスモードを抜けて、 また新たにミスヒッ トを起こしてライ ンのうちの最初のデータが到達するまで、 無駄な時間を費やしてしまつ ている。 つまり、 ミスヒッ トしたラインのデ一夕を更新するときに、 そ の後の連続したァドレスのデ一夕がミスヒッ 卜することが分っていても、 必ず一定のラインのデータしか更新しないため、 ヒッ ト率が低下すると いう間題がある。 そのため、 未だ技術的に充分満足のゆくキャッシュメ モリを得ることが困難であった。
本発明は、 前記従来技術が持っていた課題として、 ハードウ ア量を 膨大させることなく ミスヒッ トペナルティ時間が長い、 及びヒッ ト率が 低いといつた点について解決したキヤッシュメモリを提供するものであ る o 発 明 の 開 示 本発明は前記課題を解決するため、 所望のデータに対応するァドレス 情報の上位ァドレス情報を格納する第 1のキャッシュメモリと、 前記上 位ァドレス情報に属する複数の下位ァドレス情報と、 前記複数の下位了 ドレス情報に対応する複数のデータを格納する第 2のキャッシュメモリ と、 入力されるァドレス情報の上位ァドレス情報と前記第 1のキヤッシ ュメモリに格納された上位ァドレス情報とを比較し、 一致を検出する第 1の検出回路と、 前記第 1の一致検出回路の一致検出結果に応答し、 該 第 1の検出回路が不一致を検出した時のみ、 前記入力されたァドレス情 報を取込むとともに、 前記入力されたァドレス情報の上位ァドレス情報 1 2に属する複数のアドレス情報を生成するレジスタと、 前記第 1の一 致検出回路の一致検出結果に応答し、 該第 1の一致検出回路が一致を検 出した時は、 前記第 2のキヤッシュメモリから前記入力されたァドレス 情報に対応するデータを読み出すよう制御し、 該第 1の一致検出回路が 不一致を検出した時は、 前記レジス夕で生成された前記ァドレス情報の 上位ァドレス情報に属する複数のァドレス情報に応じて該ァドレス情報 の上位ァドレス情報を前記第 1のキャッシュメモリに書込むよう制御す るとともに、 該ァドレス情報の下位ァドレス情報及び外部メモリの該ァ ドレス情報に対応する複数のデータを前記第 2のキヤッシュメモリに書 込むよう制御する制御回路と、 前記レジスタが生成したアドレス情報と 前記入力されたァドレス情報の一致を検出する第 2の一致検出回路と、 前記第 1及び第 2の一致検出回路の一致検出結果に応答し、 該第 1の一 致検出回路が一致を検出した時には、 前記第 2のキャッシュメモリから 出力された前記入力されたァドレス情報に対応するデータを出力し、 該 第 2の一致検出回路が一致を検出した時には前記外部メモリから出力さ れた該入力されたァドレス情報に対応するデータを出力し、 該第 1及び 第 2の一致検出回路がともに不一致を検出した時には該入力されたァド レス情報に対応するデータを出力しない出力回路とを設けたことを特徴 とする。 図面の簡単な説明 第 1図は本発明の第 1の実施例を示すキヤッシュメモリ装置の回路図、 第 2図は従来の第 1の実施例を示すキヤッシュメモリ装置の回路図、 第 3図はキャッシュタグメモリの記憶内容を説明する図、 第 4図は第 2図 のキヤツユシメモリ装置の動作を示すタイミングチャート、 第 5図は従 来の第 2の実施例を示すキヤッシュメモリ装置の回路図、 第 6図は第 5 図のキヤッシュメモリ装置の動作を示すタイミングチヤ一ト、 第 7図は 第 1図のキヤッシュメモリ装置の動作を示すタイミングチヤ一ト、 第 8 図は本発明の第 2の実施例を示すキャッシュメモリ装置の回路図、 第 9 図は第 8図のキャッシュメモリ装置の動作を示すタイミングチャート、 第 1 0図は本発明の第 3の実施例を示すキャッシュメモリ装置の回路図、 第 1 1図は第 1 0図のキヤッシュメモリ装置の動作を示すタイミングチ ャ一ト、 第 1 2図は本発明の第 4の実施例を示すキヤッシュメモリ装置 の回路図、 第 1 3図は第 1 2図のキャッシュメモリ装置の動作を示す夕 ィミングチヤ一卜、 第 1 4図は本発明の第 5の実施例を示すキヤッシュ メモリ装置の回路図、 第 1 5図は第 1 4図のキャッシュメモリ装置の動 作を示すタイミングチャート、 第 1 6図は本発明の第 6の実施例を示す キャッシュメモリ装置の回路図、 第 1 7図は第 1 6図のキャッシュメモ リ装置の動作を示すタイミングチャートである。 発明を実施するための最良の形態 第 1図は本発明の第 1の実施例を示すキヤッシュメモリ装置の回路図 である。
このキャッシュメモリ装置 1 0 0は第 2図に示したキャッシュメモリ 装置 5 0において、 一致検出回路 1 5 0と O Rゲート 1 5 1 とが付加さ れている。 一致検出回路 1 5 0はミスヒッ 卜によるキヤッシュデ一タメ モリの更新時に、 コントロール回路 1 1 0の出力信号によって、 イネ一 ブル端子 Eが活性化されて動作する。 一致検出回路 1 5 0はレジス夕 1 1 4からのキャッシュアドレス C Aの全ビッ ト数 aと、 外部メモリ 1 3 0からキヤシュデ一夕メモリ 1 1 2へデータを書込むァドレス (全 ビッ ト数 a ) との一致を検出する機能を有する。 O Rゲート 1 5 1は、 一致検出回路 1 5 0の出力と、 一致検出回路 1 1 3から出力されるタグ ヒッ ト信号 T A G · H I Tとの論理和を求め、 該一致検出回路 1 5 0の 検出結果が一致のときにレジスタ 1 1 5のィネーブル端子 Eを活性化す る機能を有している。 コントロール回路 1 1 0は、 一致検出回路 1 1 3からタグヒッ ト信号 TAG■ H I Tを入力すると、 キヤッシュ更新信号 S 1 0 aを出力して トライステートバッファ 1 20, 1 2 1をオン状態にし、 外部メモリ 1 3 0のデータ出力端子 Dから出力された読出しデータを、 I Dバス 1 23へ出力させる。 I Dバス 1 23上に出力された読出しデータは、 ORゲート 1 5 1によってイネ一ブル状態となったレジスタ 1 1 5に取 込まれ、 キヤッシュデータ CDとしてキヤッシュ要求者 1へ返される。 つまり、 ORゲート 1 5 1は、 ミスヒッ トによるキャッシュ更新時に、 一致検出回路 1 50の検出結果が一致であれば、 外部メモリ 1 30から 読出されたデータをバイパスして、 キャッシュ要求者 1に対してもキヤ ッシュデ一夕 CDとして出力する機能を有している。
次に、 第 1図に示すキャッシュメモリ装置 1 00の動作を第 6図を参 照しつつ説明する。
第 6図は、 第 1図のキャッシュメモリ装置 200の動作を示すタイミ ングチャートである。 この第 6図において、 n+l= "x〜x0 1"、 n + 4= "Y— Y 00 " とする。 そして、 1ライン 4アドレス分として いる。 なお、 外部メモリ 1 30は、 バースト転送により、 連続アドレス なら、 最初のみ 1ゥヱイ卜で読めるものとしている。 ノくリツ ドビッ トは、 最後の書込みで 1が書かれる。 ま.た、 外部レジスタ 1 1 6の下位 2ビッ トは、 カウントイネ一ブル端子 CEにより活性化されるカウンタになつ ている。
第 1図において、 キヤッシュ要求者 1から必要なデータのキヤッシュ 了ドレス C Αが供給されると、 そのキヤッシュアドレス C Aがレジスタ 1 1 4に書込まれる。 キャッシュ更新状態でなければ、 コントロール回 路 1 1 0から出力されるキャッシュ更新信号 S 1 0 aによってトライス テートバッファ 1 1 7がオン状態となっているので、 レジスタ 1 1 4に 齊込まれたキヤッシュアドレス C Aが I Aバス 1 2 2へ送られる。 キヤ ッシュデータメモリ 1 1 2は、 I Aバス 1 2 2上のァドレスのうち、 特 定されるタグとラインのァドレス、 例えば下位 (b + 1 ) をァドレス端 子 Aで受け取り、 そのァドレスで指定された記憶データを I / 0端子 D より I Dバス 1 2 3へ出力する。
同時に、 キャッシュデータメモリ 1 1 2に格納されているデータが、 要求されたキヤッシュアドレス C Aのものかを検証するために、 特定さ れる夕グのァドレス L 0 g 2 (全夕グ数) = bに対するキャッシユタグ メモリ 1 1 1の記憶データが I Z〇端子 Dより読出され、 一致検出回路 1 1 3により、 与えられたタグとの一致 不一致の検出が行われる。 こ の結果は、 キャッシュデ一夕メモリ 1 1 2力 リード状態 (キャッシュ更 新状態ではない) で、 かつキャッシュタグメモリ 1 1 1の端子 V A oに よって示される該キャッシュタグメモリ 1 1 1の内容が有効であれば、 A N Dゲ一卜 1 2 4を介してィネーブル状態となった一致検出回路 1 1 3による一致検出の結果が有効であり、 該ー ¾検出回路 1 1 3からタグ ヒッ ト信号 T A G · H I Tが出力されてコントロール回路 1 1 0へ供給 される。
このとき、 一致検出回路 1 1 3の検出結果が一致であれば、 I Dバス 1 2 3の内容が有効であることを示すため、 夕グヒッ ト信号 T A G · H I Tが O Rゲート 1 5 1を通して生成されたヒッ ド信号 H I Tをキヤッ シュ要求者 1へ返すと共に、 該ヒッ ト信号 H I Tによってレジスタ 1 1 5への書込みを有効にする。 さらに次のキヤッシュ要求者 1からのキヤ ッシュアドレス C Aを受け取るため、 レジス夕 1 1 4への書込みをも有 効にする。 これに対し、 一致検出回路 1 1 3から出力されるタグヒッ ト 信号 T A G · H I Tが不一致状態を示すときには、 ミスヒッ トとなり、 次のサィクルから、 キャッシュデ一夕メモリ 1 1 2がキャッシュ更新状 態に入る。
キャッシュデータメモリ 1 1 2が更新状態に入ると、 コントロール回 路 1 1 0は、 外部メモリ 1 3 0からのデータの取り込みを可能にする ため、 キャッシュ更斩信号 S I 0 aによって卜ライステートバッファ 1 2 0 , 1 2 Iをオン状態にすると共に、 I Aバス 1 2 2へのアドレス 供給源である外部レジスタ i 1 6のカウントイネーブル端子 C Eを活性 化し、 I Dバス 1 2 3への読出しデータ供給源を外部メモリ 1 3 0にす る。 外部レジス夕 1 1 6の内容は、 ミスヒッ ト時には必ず書き換えられ このとき、 外部読出しデータが有効なタイミングであることを示す外 部メモリ 1 3 0の端子 D— WA I T力 " L " レベルとなり、 コントロー ル回路 1 1 0から出力されるキャッシュ更斩信号 S I 0 aが " H " レ ベルであるので、 該コントロール回路 1 1 0はキャッシュ夕グメモリ 1 1 1及びキヤッシュデ一夕メモリ 1 1 2の各ライ トイネーブル端子 WEを所定の周期で活性化する。 外部レジスタ 1 1 6の下位 2ビッ トは カウンタになっているので、 キャッシュタグメモリ 1 1 1及'びキヤッシ ュデータメモリ 1 1 2の各ライトイネーブル端子 WEが活性化されると きに、 該外部レジスタ 1 1 6のカウントイネ一ブル端子 C Eも活性化さ れて該カウン夕がカウントアップ.する。
これが n回 (例えば 4回) 繰り返され、 ミスヒッ トしたラインァドレ スのデ一夕が全て書き換えられる。 これにより、 外部メモリ 1 3 0のデ ータ出力端子 Dよりデータを読出し、 その読出されたデータがトライス テートバッファ 1 2 1を介してキヤッシュデータメモリ 1 1 2の I ZO 端子 Dへ送られ、 キャッシュ更新が行われる。 また、 コント口一ル回路 1 1 0は、 4回目にのみ有効であることをキャッシュタグメモリ 1 1 1 の端子 V A〖に書込む。 以上のキャッシュ更新動作は、 従来の第 2図の キャッシュメモリ装置 5 0 と同様である。
本実施例の特徴は、 前記のキャッシュ更新動作に加えて、 キャッシュ データ更新中に、 キャッシュデータメモリ 1 1 2への書込みデータを、 キヤッシュ要求者 1から要求されれば、 それをバイパスして渡すように している。 つまり、 キャッシュ更新状態時に、 コントロール回路 1 1 0 の出力によって一致検出回路 1 5 0がィネーブル状態となり、 該一致検 出回路 1 5 0により、 レジス夕 1 1 4の内容と外部レジスタ 1 1 6の内 容との一致/不一致を検出する。 この検出結果と、 一致検出回路 1 1 3 から出力された夕グヒッ ト信号 T A G · H I Tとが、 O Rゲ一ト 1 5 1 で論理和が取られ、 ヒッ ト信号 H I Tが生成されてキャッシュ要求者 1 へ返されると共に、 レジスタ 1 1 5がイネ一ブルとなり、 外部メモリ 1 3 0から I Dバス 1 2 3へ読出されたデ一タカ キヤッシュ要求者 1 へ出力される。
これを、 笫 7図によって説明するとクロック 2においてキヤッシュア ドレス C Aの n + 1がミスヒッ トし、 キャッシュメモリ装置 1 0 0はキ ャッシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2の更新動 作に入る。 この時、 信号 T A G— H I Tは一致検出回路 1 1 3の一致検 出結果が不一致を示す " L " 状態となる。 クロック 3においてコント口 ール回路 1 1 0は、 この信号 T A .G— H I Tの状態に応答して一致検出 回路 1 5 0及び外部レジス夕 1 1 6をイネ一ブル状態にかつ、 キヤッシ ュ夕グメモリ 1 1 1及びキヤッシュデ一夕メモリ 1 1 2をライ トイネー ブル状態にする。 外部レジス夕 1 1 6には、 キャッシュア ドレス C A ( " x x 0 1 " ) がそのまま取り込まれる。 一致検出回路 1 5 0には キャッシュア ドレス C Aと外部レジス夕 1 1 6に取込まれたキヤッシュ アドレスに基づく、 アドレスデータ 9 E Aが入力される。 ここで、 外部 レジス夕 1 1 6の下位 2 ビッ トはカウン夕になっており、 ァドレスデ一 夕 E Aはキヤッシュメモリ i 1 1 , 1 1 2への 1ライン分の書込みに応 じて 1づっカウントアツプするためクロック 4ではァドレスデータ E A は " x x 0 である力、 続くクロック 5, 6, 7にはそれぞれ " X -X 1 0 " , "x〜x 1 1 " , "X:… X 0 0 " と変化する。 よって、 一 致検出回路 1 5 0のキヤッシュアドレス C Aとァドレスデータ E Aとの —致検出結果はクロック 4で一致となる。 'このため、 一致検出回路はレ ジス夕 1 1 4, 1 1 5をイネ一ブルとする。 外部メモリ 1 3 0は外部レ ジスタ 1 1 6で生成されたアドレスデータ E A "x〜x O 1 " に基づく データを出力する。 このデータは、 レジスタ 1 1 5を介してキャッシュ データ CDとして、 キャッシュ要求者 1 0 1に渡すとともにキャッシュ データメモリ 1 1 2にも更新書込みされる。 また、 キャッシュ要求者 1 0 1はレジスタ 1 1 4がイネ一ブルとなっているので、 次のキヤッシ ユアドレス C Aとして n+2 ( "x〜x 1 0" ) を送る。 クロック 5に おいて、 キヤッシュメモリ装置 1 0 0は n+ 1を含むラインのキヤッシ ュデ一夕の更新を行っており、 外部レジス夕 1 1 6によって、 生成され たアドレスデータ "x-x 1 0" に対応するデータをキャッシュデータ メモリ 1 1 2に更新書込みしている。 ここで、 レジス夕 1 1 4には n + 2が格納されており、 キャッシュタグメモリ 1 1 1にはまだタグ " x〜 X" が更新書込みされていない で、 一致検出回路 1 1 3は不一致とな るが、 一致検出回路 1 5 0及び外部レジスタ 1 1 &はィネーブル状態を 保っため、 キャッシュァドレス CAの n + 2が一致検出回路 1 5 0へ入 力される。 この時、 一致検出回路 1 5 0はもう一方の入力として、 n + 2と同じァドレスデータを入力しているので一致を検出し、 レジスタ 1 1 4, 1 1 5をィネーブル状態に保つ。 なお、 キャッシュ要求者 1 0 1が要求したキヤッシュアドレス C Aが n十 2に対応するデ一夕はキヤ ッシュデータメモリ 1 1 2への書込みとともに、 レジスタ 1 1 5を介し てキャッシュ要求者 1 0 1へ渡たされている。 また、 キャッシュ要求者 はレジスタ 1 1 4がイネ一ブル状態なので次のキャッシュデータ C Aと して n + 3 ( "x-x 1 1 " ) を送る。 n + 3は nと n + 2の関係と同 様に n + 2に連続するァドレスデ一夕なので、 クロック 6においてクロ ック 5と同様な作業がされる。 ただし、 クロック 7においてキャッシュ データ CAとして n + 4 ( "Y〜Y 0 0 " )' が入力される。 n + 4はキ ャッシュ夕グメモリ 1 1 1内に格納されたタグと一致になるとともに、 外部レジス夕 1 1 6で生成されたタグ "ズ… " に対する 4回目の書込 みをするためのアドレスデータ "x〜x 0 0 " とも不一致となるので、 レジスタ 1 1 4, 1 1 5のィネーブル状態は解除される。 但し、 この時 既に外部レジス夕 1 1 6から、 外部メモリ 1 3 0へはァドレスデータ E Aとして "χ···χ 0 0 " が送られ、 キャッシュデータメモリ 1 1 2及び レジスタ 1 1 5へはァドレスデ一夕 "χ···χ 0 0 " に対するデ一夕が送 られているので、 キヤッシュデータ CDとして "x〜x 0 0" に対する データが要求者 1 0 1へはレジスタ 1 1 5を介して送られている。 また、 " X… X " のキャッシュタグメモリ 1 1 1への書込みもクロック 7の夕 ィ ミ ングで行っている。 クロック 8ではクロック 2と同様な作業を行い、 ここでまた、 タグの不一致が生ずると、 クロック 9以降は前述と同様な 更新作業に入る。 .
第 2の実施例
本発叨の第 1の実施例のキャッシュメモリ装置 1 0 0において、 キヤ ッシュ要求者 1から、 ゥヱイ ト要求があった時に、 キャッシュデータ更 新動作を待ち状態とすることを可能としたのが第 8図に示すキャッシュ データメモリ装置 2 0 0である。 第 8図はキャッシュメモリ装置 2 0 0 の回路図である。 第 1の実施例のキヤッシュメモリ装置 1 0 0に对して キャッシュメモリ装置 2 0 0には、 3つの ANDゲ一卜 2 0 1 , 2 0 2, 2 0 3が付加されている。 A N Dゲート 2 0 1はキャッシュ要求者 1力、 らのウェイト要求伏態を示す信号をコントロール回路 1 1 0からの出力 信号との論理積をとつて、 その結果をキャッシュタグメモリ 1 1 1及び キャッシュデータメモリ 1 1 2の各ライ トイネ一ブル端子 WEに入力す る。 つまり、 AN Dゲート 2 0 1はキャッシュ要求者 1がゥヱイト要求 しておらず、 かつ、 キャッシュタグメモリ 1 1 1及びキャッシュデータ メモリ 1 1 2へ書込み要求が出された時に、 キャッシュタグメモリ 1 1 1及びキャッシュデ一夕メモリ 1 1 2のライトイネーブル端子 WEを活 性化する。 A N Dゲート 2 0 2は、 キャッシュ要求者 1からのゥヱイト 要求状態を示す信号とコントロール回路 1 1 0からの出力信号との論理 積をとつてその結果を、 外部レジスタ 1 1 6のカウントイネ一ブル端子 C Eに入力する。 つまり、 A N Dゲート 2 0 1はキヤッシュ要求者 1が ウェイト要求しておらず、 かつ、 外部レジスタ 1 1 6のカウントを " Γ' だけ加算する要求が出された時に、 外部レジスタ 1 1 6のカウントイネ —ブル端子 C Eを活性化する。 AN Dゲート 2 0 3はキャッシュ要求者 1からのウェイ ト要求状態を示す信号と O Rゲート 1 5 1の出力信号 (キャッシュデータの H I T状態を示す信号) との論理積をとつて、 そ の結果をレジス夕 1 1 4 , 1 1 5のイネ一ブル端子 Eに入力する。 つま り、 A N Dゲート 2 0 3は、 キヤ.ッシュ要求者 1がウェイ ト要求してお らず、 かつ、 キャッシュ了ドレス C Aとキャッシュタグメモリ 1 1 1内 のタグと一致した時か、 キャッシュアドレス C Aと外部レジスタ 1 1 6 のデータが一致した時に、 レジスタ 1 1 4 , 1 1 5のイネ一ブル端子 E を活 1生化する。 従って、 キャッシュ要求者 1がウェイ ト要求をすること により、 キャッシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2へのデータの書込み、 外部レジスタ 1 1 6の外部メモリ 1 3 0からの 読出しが要求されたデータァドレスの出力、 キヤッシュデータ C Dのレ ジス夕 1 1 5への格納が禁止され、 キャッシュメモリ装置 2 0 0のキヤ ッシュデータの更新処理全体が待ち状態となる。
次に、 第 8図に示すキャッシュメモリ装置 2 0 0の動作を第 9図で説 明する。 第 9図は第 8図のキヤッシュメモリ装置 2 0 0の動作を示すタ イミ ングチャートである。
第 9図において、 キヤッシュ要求者 1がゥヱイ ト要求をしているク口 ック 2〜4の間はレジスタ 1 1 4, 1 1 5は不活性化となり、 それぞれ、 キャッシュアドレス C A = n + 1、 キャッシュデータ C D = mを格納し たままである。 また、 外部レジスタ 1 1 6も n + 1を格納したままであ る。 さらに、 キヤシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2の各ライ トイネーブル端子 W Eは " L " レベルのままで活性化さ れない。
第 3の実施例
本発明の第 1の実施例のキャッシュメモリ装置 1 0 0において、 キヤ ッシュデータの更新時にキヤッシュ要求者 1からウェイ 卜の要求が生じ た場合にも、 キャッシュデータの更新を行う力、 ウェイ ト状態の時に更 新されたデータに対しても容易にアクセスできるようにしたのが、 第 1 0図に示す第 3の実施例のキヤッシュメモリ装置 3 0 0である。 第 1 0図は第 3の実施例のキヤッシ メモリ装置 3 0 0の回路図である。 第 1の実施例のキヤッシュメモリ装置 1 0 0に対して、 キャッシュメモ リ装置 3 0 0は複数個のバッファ 3 0 1 , バッファ 3 0 1に対応して設 けられた複数個の一致検出回路 3 0 2、 バッファ 3 0 1に対応して設け られた複数個のトライステートバッファ 3 0 4、 トライステ一トノくッフ ァ 3 2 し A N Dゲート 3 0 3、 O Rゲート 3 0 5と 3 5 1が設けられ ている。 レジスタ 3 0 1各々は外部メモリ 1 3 0から読出されたァドレ ス、 データ及びコントロール回路 1 1 0から出力される信号であるバリ ッ トフラグが 1セッ 卜で格納されている。 このコントロール回路 1 1 0 から出力される信号がイネ一ブル端子 Eに入力することによって、 バッ ファ 3 0 1は活性化する。 本実施例においてバッファ 3 0 1は 3つ (バ ッファ 0 , I, 2 ) 用意されている。 これは 1ライン 4アドレスで、 キ ャッシュデ一夕の更新は 1ライン分行うことから、 更新に充分適用でき る数としたためで、 3つに限るものではない。 一致検出回路 3 0 2もバ ッファ 3 0 1に対応して 3つ用意され、 対応するバッファ 3 0 1からの バリッ 卜フラグ信号 Vに応じて活性化し、 レジスタ 1 1 4から出力され たキヤッシュアドレス C Aとノくッファ 3 0 1に格納されたァドレスとの 一致検出を行う。 一致検出の結果、 各一致検出回路 3 0 2に出力は、 そ れぞれ対応するトライステートバッファ 3 0 4の動作制御を行うととも に、 O Rゲート 3 0 5に入力される。 O Rゲ一ト 3 0 5は、 各一致検出 回路 3 0 2の論理和をとり、 その結果信号を O Rゲート 3 5 1に入力す るとともに、 その結果信号の反転信号にてトライステートバッファ 3 2 1の動作制御を行う。 トライステ一トバッファ 3 0 4は一致検出回路 3 0 2に対応して 3つ用意され、 各対応する一致検出回路 3 0 2の一致検 出の結果に応じて、 各対応する。
バッファ 3 0 1に格納されたデータを I Dバス 1 2 3にそれぞれ出力 する。 トライステ一卜バッファ 3.2 1は O Rゲ一ト 3 0 5の出力の反転 信号に応じて、 外部メモリ 1 3 0に格納されたデータを I Dバス 1 2 3 に出力する。 O Rゲート 3 5 1は入力として〇Rゲート 3 0 5の出力の 他に、 一致検出回路 1 1 3及び 1 5 0の一致検出結果が入力される 3入 力 O Rゲートである。 この 3つの信号の論理和をとつて、 その結果の出 力は A N Dゲ一ト 3 0 3の入力となる。 A NDゲ一ト 3 0 3にはキヤッ シュ要求者〖からのゥヱイト信号 W E I Tも入力され、 論和積の結果を レジスタ 1 1 4 , 1 1 5をそれぞれのィネーブル端子 Eに入力する。 次に、 第 1 0図に示すキヤッシュメモリ装置 3 0 0の動作を第 1 1図 にて説明する。 第 1 1図は、 第 1 0図のキヤッシュメモリ装置 3 0 0の 動作を示すタイ ミ ングチヤ一卜である。
第 1 1図において、 クロック 2において、 ミスヒッ ト (タグ H I丁が " 0 " ) となり、 キャッシュメモリ装置 3 0 0はキャッシュデータの更 新作業を開始する。 しかし、 クロック 2において、 キャッシュ要求者 1 がゥヱイ 卜状態となっている。 第 2の実施例ではゥヱイ ト状態の間はキ ャッシュデータ更新作業は行われなかったが、 この第 3の実施例におい ては、 ウェイ ト状態中のクロック 4にて、 外部メモリ 1 3 0データが出 力されると、 キャッシュデータメモリ 1 1 2へそのデータが書込まれる 。 これと同時に、 そのデータはトライステートバッファ 3 2 1を介して レジス夕 1 1 5に入力される。 クロック 4においてはキヤッシュ要求者 1はまだウェイ ト状態のため、 レジスタ 1 1 5に入力されたキャッシュ データを受け取れない。 ただし、 クロック 4において、 コントロール回 路 1 1 0からの出力信号によってレジス夕 3 0 1の 1つを活性化して外 部メモリ 1 3 0からの出力であるァドレスと、 そのァドレスに対応する データをバッファ 3 0 1 (例えばバッファ 0 ) に格納する。 この時、 レ ジス夕 3 0 1 (バッファ 0 ) にはァドレス及び、 そのァドレスに対応す るデータの他に、 コントロール回.路 1 1 0からの出力信号によって、 ノく リ ッ トフラグがバリ ッ ト (有効) になる。 クロック 5において、 キヤッ シュ要求者は再びクロック 4 と同じアドレスを要求する。 この時、 クロ ック 4の際、 レジス夕 3 0 1 に要求するァドレスとデータが格納されて いるため、 複数の一致検出回路 3 0 2のうち 1つは一致を検出するので、 O Rゲ一卜 3 0 5を介して卜ライステ一トバッファ 3 2 1を非動作状態 とし、 卜ライステートバッファ 3 0 4を介して、 レジスタ 3 0 1 (バッ ファ 0 ) から I Dバス 1 2 3に要求するァドレスのデ一夕を出力する。 なお、 この時、 キャッシュデータメモリ 1 1 2には、 次のアドレスに対 応するデータが書込まれて、 バッファ 3 0 1 (例えばバッファ 1 ) にも 同様のアドレス、 データが書込まれる。 この様にして、 以降も、 キヤッ シュ要求者 1からのアドレスとキャッシュデ一夕メモリ 1 1 2への書込 みのタイミングがずれているにもかかわらず、 ノくッファ 3 0 1 (例えば ノくッファ し 2 ) からキャッシュデータ C Dがキャッシュ要求者 1に出 力される。
第 4の実施例
第 3の実施例において、 必要と思われる時だけバッファ 3 0 1にァド レス、 データを書込むようにしたのが、 第 1 2図に示す第 4の実施例の キャッシュメモリ装置 4 0 0である。 第 1 2図はキャッシュメモリ装置 4 0 0の回路図である。
第 3の実施例のキヤッシュメモリ装 3 0 0に対して、 キャッシュメモ リ装置 4 0 0はバッファリング監視回路 4 0 1が付加されている。 バッ フアリング監視回路 4 0 1はキヤッシュ要求者 1がウェイト状態の時に 更新するキヤシュデータがバッファ 3 0 1に格納すべきデータか否かを チヱックし、 所定の格納先のバッファ 3 0 1 (第 1 2図ではバッファ 3 0 1は 2つしか示されていないので、 ノ ッファ 0あるいはバッファ 1 ) に格納するとともに、 不要になつ.たバッファ 3 0 Iのデータを無効にす るものである。 ノくッファリング監視回路 4 ひ 1はウェイト信号 WA I T、 各一致検出回路 1 5 0、 3 0 2の出力信号 (検出.結果) 、 外部レジス夕 1 1 6の出力、 及びコントロール回路 1 1 0のキヤッシュタグメモリ 1 1 1及びキャッシュデータメモリ 1 1 2のライトイネーブル端子を活 性化する出力信号が入力され、 バッファ 3 0 1を活性化^"る信号及びバ ッファ 3 0 1に格納されたデータの有効性を示すハリッ ドフラグを出力 する。 次に、 第 1 2図に示すキヤッシュメモリ装置 4 0 0の動作を第 1 3図 にて説明する。 第 1 3図は第 1 2図のキヤッシュメモリ装置 4 0 0の動 作を示すタイミングチヤ一トである。
くッフアリング監視回路 4 0 1は、 ッファ 3 0 1 (バッファ 0と 1 ) にデータを格納する条件及び格納したデータを無効にする条件を例えば、 次のようにしている。
① バッファ 0に格納する条件
"キヤッシュデータメモリへの書込みをしているデータのァドレスの 下位 1 ビッ トが 0 "
かつ
"バッファ 0自身に格納されたデータが無効"
かつ
"バイパス H I丁で、 キャッシュ要求者 1がウェイ ト状態であるか、 ファ 1が H I Tでキヤ シュ要求者 1がウェイ 卜状態である。 " ② バッファ 1 に格納する条件
"キヤッシュデ一夕メモリへの書込みをしているデータのァドレスの 下位 1 ビッ トが
かつ
"バッファ 1 自身に格納された.データが無効"
かつ
"バイパス H I Tで、 キャッシュ要求者 1がゥヱイ 卜状態である力、、 ッファ 0が H ΓΤでキャッシュ要求者 1がウェイ ト状態である。 " ③ バッファ 0に格納したデータを無効にする条件
"キャッシュデータメモリへの書込みをしているデータのァドレスの 下位 1 ビッ 卜が 0 "
かつ "バイパス H I Tかバッファ 0 H I Tでともにキヤッシュ要求者 1が ウェイト状態でない"
④ バッファ 1に格納したデータを無効にする条件
"キヤッシュデータメモリへの書込みをしているデータのァドレスの 下位 1 ビッ 卜が 1 "
- かつ
"バイパス H I Tかバッファ 1 H I Tでともにキヤッシュ要求者 1が ウェイ 卜伏態でない。 "
クロック 2において、 ミスヒットが発生し、 キャッシュデータメモリ 1 1 2の更新が行われるが、 クロック 4において、 外部メモリ 1 3 0か らデ一夕が読出される I Dバス 1 2 3にデータ n + 1が生ずる (バイパ ス H I T状態) 。 クロック 4ではキヤッシュ要求者 1.はゥヱイト状態で ある。 また、 ァドレスデ一夕 n + 1の下位 1 ビッ トが、 例えば " 0 " な らば、 前記①の条件を満たすため、 バッファ 0にデータ n + 1が書込ま れる。 クロック 5ではバッファ 0の H I Tが発生するが、 この時はまだ、 キャッシュ要求者 1はウェイ卜状態のため、 バッファ 0のデ一夕は無効 にならない。 しかし、 ②の条件が満たされるため (データ n + 1の下位 1 ビッ トを " 0 " としたのでそれに続くデータ n + 2の下位 1 ビッ トは " 1 " ) 、 バッファ 1にデータ r h 2が書込まれる。 このようにして、 前記①〜④の条件を満たす場合に、 新たな書込みやデータの無効を行つ ていく。
第 5の実施例
第 1 4図は、 本発明の第 5の実施例を示すキヤッシュメモリ装置 5 0 0の回路図であり、 第 1図のキヤッシュメモリ装置 1 0 0中の要素 と共通の要素には共通の符号が付されている。
このキャッシュメモリ装置 5 0 0は、 第 5図のキャッシュメモリ装置 5 1 と同様に、 M P U等の命合発生部に設けられる命令キヤッシュメモ リとして動作するもので、 キヤッシュ更新時においてキヤッシュメモリ がウェイ 卜状態のときにミスヒッ トしたラインァドレスに続く次のライ ンア ドレスもミスヒッ 卜するか否かを判定するミスヒッ ト判定手段 5 6 0と、 キャッシュ更新中に新たに読んできたデータ (命令) が必要 とされるか否か (例えば、 分岐命令があるか否か) を判別する必要性判 別手段 5 7 0と、 次のラインアドレスもミスヒッ トであってその内容が 必要とされるならば (分岐命令がなければ) 、 続けて次のラインァドレ スも更新する更新手段 5 8 0と A N Dゲート 5 7 4力 付加されてい る。
ミスヒッ ト判定手段 5 6 0は、 レジス夕 1 1 4の出力側に設けられた セレクタ 5 6 1 と、 該セレクタ 5 6 1の出力を + 1インクリメントする 加算器 5 6 2と、 該加算器 5 6 2の出力によって内容が書き換えられて セレクタ 5 6 1へ出力するレジスタ 5 6 3とで、 構成されている。 必要 性判別手段 5 7 0は、 外部メモリ 1 3 0のデータ出力端子 Dから読出さ れたデ一夕をデコ一ドするデコーダ 5 7 1 と、 該デコーダ 5 7 1の出力 の論理和を取る O Rゲート 5 7 2と、 該 O Rゲート 5 7 2の出力を一時 保持する遅延型フリップフ口ップからなるフラグ 5 7 3とを備えている。 A N Dゲー卜 5 7 4は一致検出 1¾路 1 1 3から出力されるタグヒッ 卜信 号 T A G - H I T , コントロール回路 1 1 0から出力される信号 H I T • E、 及び該コントロール回路 1 1 0から出力されるライ トイネーブル 信号 S 1 0 b の論理積を求めてヒッ ト信号 H I Tを出力する。 ライ トイ ネーブル信号 S I O b は、 キャッシュタグメモリ 1 1 1及びキャッシュ データメモリ 1 1 2にそれぞれ設けられた反転ライ トイネーブル端子 W E N をそれぞれ活性化する信号である。 更新手段 5 8 0は、 レジス夕
1 1 4の出力を選択して外部レジス夕 1 1 6の内容を更新するセレクタ 58 iと、 該外部ァドレス 1 1 6の出力を+ 1インクリメントして該セ レクタ 58 1にフィードバックする加算器 582とを、 備えている。 な お、 540は結線状態を示す。
次に、 第 1 4図キャッシュメモリ装置 500の動作を第 1 5図を参照 しつつ説明する。
第 i 5図は、 キャッシュメモリ装置 500の動作を示すタイミングチ ヤー卜である。 この第 1 5図中の nは、 下位 2ビッ 卜が "00" である 場合を示す。 このタイミングチャートの前提条件は、 要求されるキヤッ シュアドレス C A (つまり命合) のうち、 アドレス!!〜 n + 5までの命 合と n + 7の命令は分岐命合ではないが、 n + 6の命合が分岐命令であ る。 このキャッシュメモリを使うキャッシュアドレス要求側の例えば C PUの分岐のタイプは、 遅延分岐で行われ、 n+ 6の分岐命令が mに分 岐する。 そのため、 実行順序は、 n, n+ 1, …, n+ 6, n+ 7, m となる。 キャッシュメモリに対してアドレス!!〜 n+ 1 0までと m〜m +3まではミスヒッ 卜し、 m+4〜m+ 1 0まではヒッ 卜する。 また、 外部メモリ 1 30へのアクセスは DRAMのページモードを使用し、 最 初のデ一夕が到達するまで、 2クロック CKかかるため、 2つ先のライ ンァドレスまでチエツクできるものとする。
まず、 第 1 5図の時刻 t 1に いて、 キャッシュ要求者 1からキヤ ッシュアドレス C Aのうちの n— 1が供給されると、 それがレジスタ 1 1 4に格納された後、 その内容とキャッシュタグメモリ 1 1 1内のァ ドレスとがー致検出回路 1 1 3で一致 Z不一致の検出が行われる。 ここ では、 一致するので、 アドレス n— 1に対応するキャッシュデータメモ リ 1 1 2内のデ一夕がデータ出力端子 Doから読出され、 キャッシュデ 一夕 CDとしてキヤッシュ要求者 1へ返される。
時刻 t 2において、 キャッシュァドレス C Aとして nが供給されると、 一致検出回路 1 1 3の検出結果によってミスヒッ トとなる。 そのため、 キャ ッシュメモリ装置 5 0 0は次から更新モードへ移る。 そして、 外部 メモリ 1 3 0へのァ ドレス E Aを送出するレジス夕 1 1 6に、 ミスヒッ トを起こしたァドレス nがセレクタ 5 8 1を通して書込まれる。 セレク 夕 5 8 1 は、 常時、 レジス夕 1 1 4の方を向いている。
時刻 t 3では、 キャ ッシュメモリにとっては空き状態 (ウェイ ト状態) である。 外部メモリ 3 0の仕様により、 2クロック C K後にしかデータ が到達しない。 時刻 t 4 も同じである。 この間、 ミスヒッ ト判定手段 5 6 0は、 続くラインァドレスもミスヒッ トするか否かを調べる。
即ち、 時刻 t 3, t 4のゥヱイ 卜状態のとき、 コントロール回路 1 1 0 から出力される信号 H I T · E力 " L " レベルになる。 セレクタ 5 6 1 は通常、 レジス夕 1 1 4の方を向いているが、 信号 H I T · E力 " L " レベルの間だけ、 レジスタ 5 6 3の方を向く。 このレジスタ 5 6 3では、 常に、 キャッシュタグメモリ 1 1 1 に与えるべき値を加算器 5 6 2で + 1インクリ メントした値を取り込んでいるため、 ウェイ ト状態のときに 続くラインァドレスがミスヒッ トか否かを調べられることができる。 な お、 この間に一致検出回路 1 1 3から出力されるタグヒッ ト信号 T A G • H I Tは、 要求されたキヤッシュアドレス C Aに対して無効なので、 i 号 H Ι Τ · Εによって A N Dゲート 5 7 4でマスクをかけてある。 こ の結果、 時刻 t 3及び t 4 ともミスヒッ トしたため、 もともとミスヒッ トを起こしたラインァドレスとそれに続く 2つのラインアドレスも、 同 時に更新する予定になる。
時刻 t 5において、 もともとミスヒッ トを起こしたキヤッシュア ドレ ス C Aのデータが到達したため、 キャッシュデータメモリ 1 1 2及びキ ャッシュ夕グメモリ 1 1 1はライ ト状態になる。 通常、 キャッシュデ一 夕メモリ 1 1 2に対してのァドレスはキヤッシュアドレス C Aであるが、
一 2 書込み時は、 外部レジス夕 1 1 6から外部メモリ 1 3 0へのアドレス E Aが送出され、 外部メモリ 1 3 0のデータ出力端子 Dからデータが読出 され、 キャッシュタグメモリ 1 1 1及びキャッシュデ一夕メモリ 1 1 2 のデ一夕とタグ TA Gが更新される。 このとき、 外部レジスタ 1 1 6の ライン内ァドレス I Aに対応するカウンタ部分が加算器 5 3 5でインク リメントされ、 次のデ一夕の更新に備える。 ラインアドレスの更新期間 中は、 セレクタ 5 3 6が加算器 5 3 5の方を向いている。
時刻 t 6において、 一致検出回路 1 1 3が一致状態を検出するので、 キャッシュメモリがヒッ ト状態となり、 キャッシュデータメモリ 1 1 2 のデータ出力端子 D 0から読出された nのキヤッシュデ一夕 C Dがキヤ ッシュ要求者 1へ返され、 レジスタ 1 1 4には新たに要求されたキヤッ シュアドレス C Aの n + 1が書込まれる。 その後の時刻 t 7〜t 1 0は、 時刻 t 5, t 6と同様の動作をする。
時刻 t l 1において、 もともとミスヒッ トを起こしたライン内の最後 のァドレスを更新する。 基本的には、 時刻 t 5と同様の動作をするが、 この他に、 必要性判別手段 5 7 0によって続くラインの更新を行うか否 かの判定を行う。
即ち、 時刻 t 3において続くラインアドレスはミスヒッ卜することが わかっている。 ここで、 今更斩し.ているラインアドレスの中に分岐命令 があるか否かをデコーダ 5 7 1でデコードした結果が、 キャッシュデー 夕メモリ 1 1 2へのライト時 (時刻 t 5 , t 7 , t 9 , t i l ) のとき、 コントロール回路 1 1 0から出力される信号 H I T · Eが " L " レベル のときにリセッ トされたフラグ 5 7 3に格納されている。 そのため、 時 刻 t i lでは、 このフラグ 5 7 3の値とデコード結果とを O Rゲート 5 7 2によって論理和を求めることにより、 分岐命合がミスヒッ トしたラ インアドレス内にあつたか否かを判定できる。 ここでは、 ミスヒッ トし たラインア ドレス内に分岐命令がなかったので、 加算器 5 8 2によって インク リ メ ン トした値を外部レジスタ 1 1 6にロードし、 次から続くラ ィンァ ドレスを更新する。
II 刻 t 1 2は時刻 t 6と同様の動作である。 さらに、 時刻 t 1 3〜 t i 9は、 時刻 t 5〜 t 1 1 と同様の動作である。 時刻 t 1 9のとき、 今 度は時刻 t 4において、 この次のラインァドレスもミスヒッ トすること がわかっているが、 時刻 t 1 7において必要性判別手段 5 7 0によって 分岐命令が検出されたため、 フラグ 5 7 0の内容が " 1 " になっている ので、 次の更新を行わず、 ここで外部メモリ 1 3 0へのアクセスを取り 止める。
時刻 t 2 0では、 時刻 t 1 2と同様の動作である。 ただ、 この時刻 t 2 0において、 レジスタ 1 1 4に格納されるキャッシュアドレス C Aは、 n + 6ァドレスにあった分岐命令によって発生したァドレス mである。 時刻 t 2 1以降は、 キヤッシュ要求者 1からの要求によって発生したキ ャッシュ更新サイクル時刻 t 2以降と同様の動作となる。
この第 5の実施例では、 次のような利点を有している。
本実施例では、 ミスヒッ トしてから最初のデータが到達するまでのキ ャッシュメモリがひまな間 (ウェイ ト状態の間) に、 ミスヒッ ト判定手 段 5 6 0により、 ミスヒッ トを起こしたラインアドレスの次のラインァ ドレスもミスヒッ トするか否かを調べ、 必要性判別手段 5 7 0により、 実際にミスヒッ トしたラインの迚続ァドレスが必要であることが判れば (例えば、 分岐命令がなければ) 、 更新手段 5 8 0によって次のライン ァドレスも続けて更新するようにしているので、 ヒッ ト率を向上できる。 第 6の実施例
第 5の実施例のキャッシュメモリ装置 6 0 0において、 キャッシュデ 一夕メモリ 1 1 2とキャ ッ シュ メモリ 1 1 1 の書込みをそれぞれ独立 して行わせることにより、 ミスヒッ 卜によるキャッシュデ一夕メモリ 1 1 2へのデータの書込み最中でも、 キャッシュタグメモリ 1 1 1を利 用して次のライン了ドレスのヒッ ト/ ミスヒッ トを調べることを可能に したのが第 1 6図に示す第 6の実施例のキヤッシュメモリ装置 6 0 0で あ 。
第 1 6図はキャッシュメモリ装置 6 0 0の回路図である。 第 1 4図に 示すキャッシュメモリ装置 5 0 0に対し、 一致検出回路 5 0 1 と一致検 出回路 6 0 1の一致検出結果に基づいて、 コントロール回路 1 1 0が、 キヤシュタグメモリ 1 1 1及びキヤッシュデータメモリ 1 1 2をそれぞ れ独立して書込みを許可するライトイネーブル信号 TWE、 DWEを出 力している。 また、 キャッシュメモリ装置 6 0 0は O Rゲート 6 0 2が 付加されている。 一致検出回路 6 0 1は、 キャッシュアドレス C Aの夕 グ TA G及びラインアドレス L Aと外部レジスタ 1 1 6に格納されたキ ャッシュアドレスのタグ T A G及びラインァドレス L Aの一致を検出し、 一致が検出された場合は、 コントロール回路 1 1 0へ書込みマッチング 信号 WA— MA Tを出力する。 つまり、 外部メモリから要求のアドレス が出力されているかどうかを検出するものである。 コントロール回路 1 1 0は、 書込みマッチング信号 WA— MA Tに応じて、 キャッシュデ 一夕メモリ 1 1 2へライトイネ ブル信号 DWEを出力し、 キャッシュ タグメモリ 1 1 1へ 1ラインデ一夕ごとに 1回だけ、 キャッシュタグメ モリ 1 1 1へのライトイネーブル信号 TWEを出力する。 O Rゲ一ト 6 0 2は外部メモリ 1 3 0のデータが有効であることを示す D— WA I T 信号に応じて、 コントロール回路 1 1 0から出力される H I T— V信号 と AN Dゲート 5 7 4との論理和をとり、 その結果をキャッシュ要求者 に H I T信号として出力するものである。 .
次に、 第 1 6図のキャッシュメモリ装置 6 0 0の動作を第 1 7図を用 いて説明する。 第 1 7図はキャッシュメモリ装置 6 0 0の動作を示す動 作夕イ ミ ングチヤ一トである。 第 1 7図において、 1 ライン 4了ドレス とし、 外部メモリ 1 3 0へのアクセスは最初のものは 2クロック後に有 効、 連続ア ドレスならば 1 クロック後に有効になるものとしている。 ま た、 キヤッシュメモリ装置 6 0 0に対する要求のキヤッシュアドレス C Aは nから n + 7まではミスヒッ トし、 n + 6に分岐命令が るときの 実行例である。
時刻 t 1において、 要求のアドレスである n— 1はヒッ トしたため、 キヤッシュ夕グメモリ 1 1 1へは n— 1がそのまま渡される。 時刻 t 2 において、 nがミスヒッ トとなり、 次の時刻 t 4から外部メモリ 1 3 0 へアクセスする為、 この nは更新手段 5 8 0を介して外部レジスタ 1 1 6に取込まれ、 nに対するキヤッシュデ一夕の更新が開始される。 時刻 7〜 1 2において、 最初にキャッシュデータの更新を起こしたアドレス nと同じラインの n + 1 , n + 2 , n + 3のヒッ ト状態を調べ、 全てミ スヒッ トであるから外部メモリから続いて n +し n + 2, n + 3のデ 一夕が送られ、 ライ トイネーブル信号 DW Eに応じてキヤッシュデータ メモリ 1 1 2へ n + 1 , n + 2 , n + 3の書込みを行う。 この時、 一致 検出回路 6 0 1は外部メモリ 1 3 0から要求のァドレスのデータが読出 されているか否かを調べる。 例; ^ば時刻 t 7においては要求のキヤッシ ユアドレス C Aが n + 1であるので、 外部レジスタ 1 1 6に格納された 了ドレス n力、 加算回路 4 3 5によって、 下位 1 ビッ ト ( I A ) を 1だ けインクリメン卜した時に、 一致検出回路 6 0 1は一致を検出し、 WA 一 M A T信号をコントロール回路 1 1 0に出力する。 また、 外部メモリ 1 3 0は読出し状態となっているので、 D— WA I T信号もコントロー ル回路 1 1 0に対して出力されている。 コントロール回路 1 1 0は、 W A— M A T信号と D - WA I T信号により要求のァドレスが正しく読出 されることをキヤッシュ要求者に通達するため H I T— V信号を出力し、 H I T信号を生成する。 このキャッシュデータメモリ 1 1 2の更新期間 として時刻 t 6において、 更新手段 5 8 0により、 nの次のラインァド レス、 つまり n + 4が生成され、 キャッシュタグメモリ 1 1 1に対し、 n + 4の.ヒッ ト伏態をチエツクする。 本例においては n + 4もミスヒッ 卜としている。 このミスヒッ トの結果は図示せぬレジスタに格納する。 また、 ミスヒッ トの結果をコントロール回路 1 1 0に送るようにしても よい時刻 t 1 2において、 アドレス nのラインの更新が終了し、 コント ロール回路はライトイネーブル信号 D WEの 4回目の出力とともにライ トイネーブル信号 TWEを出力する。 また、 必要性判別手段 5 7 0は n 〜! 1 + 3には分岐命令を検出しないので、 更新作業は継続して行われる。 よって、 n + 4のラインの更新が行われる。 時刻 t 1 7において、 n + 6は分岐命合であることを、 必要性判別手段 4 7 0が検出し、 この検出 結果をコントロール回路 1 1 0へ対して出力する。 コントロール回路 1 I 0は n + 4のラインの更新が終了した後の時刻 t 2 1にて、 分岐先の mに対し、 上記と同様な動作を行う。
以上のように、 6つの実施例にて、 本発明のキャッシュメモリ装置を 説明したが、 各実施例に示す回路及び動作タイミングは同様の動作が可 能であれば、 種々へ変更可能であ.る。 産業上の利用可能性 . 以上詳細に説明したように、 本発明の第 1の実施例によれば、 ミスヒ ッ トによるキャッシュデータ更新中に、 書込んでいるデータをキヤッシ ュ要求者に渡せる手段を設けたので、 ヒッ ト率が向上するとともにミス ヒッ トペナルティ時間が短縮する。 本発明の第 2の実施例によれば、 第 1の実施例においてキヤッシュ要 求者のウェイ 卜要求に対してキヤッシュデ一夕の更新を中断する手段を 設けたので、 キヤッシュメモリ装置を有するシステム全体としての動作 性が向上する。
本発明の第 3の実施例によれば、 第 1の実施例において、 キャッシュ
"要求者のゥヱイ ト要求に対して、 キャッシュデータのキヤッシュ要求者 へのキャッシュデータの出力を中断する手段と、 ゥヱイ ト状態時に更新 したキヤッシュデ一夕を格納しておくバッファ手段とを設けたので、 ゥ エイ ト要求に対してキャッシュデータの更新を中断することなく、 かつ、 ゥヱイ ト状態時に更新されたキヤッシュデータに対してもアクセス可能 となり、 第 2の実施例より動作性が向上する。
本発明の第 4の実施例によれば、 第 3の実施例において、 設けたバッ ファ手段に格納する対象に対して、 キャッシュデータの格納の必要性を 判断する手段を設けて、 必要なキヤッシュデ一夕のみをバッファ手段に 格納するようにしたので、 第 3の実施例に比べて、 少ないハード量で、 第 3の実施例と同様な効果が得られる。
'第 5の実施例によれば、 ミスヒッ トによるキヤッシュデ一夕更新中に、 ミスヒッ トしたキヤッシュデ一夕のラインァドレスデータに続く次のラ ィンァドレスデータもミスヒッ ト.するか否かを判定する手段と、 キヤッ シュデータ更新中に更新しているデータの内容が必要とされるか否かを 判別する手段と、 この判別手段によって更新しているデ一夕の内容が必 要とされ、 かつ、 次のラインアドレスデータがミスヒッ 卜であつたなら ば、 続けて次のラインアドレスデータも更新する手段を設けたので、 キ ャッシュデ一夕の更新までの時間を利用して次ラインァドレスデ一夕の ヒッ ト状態を判定でき、 更新中のァドレスに分岐命合等がなければ、 次 ラインァドレスデータを続けて更新するようにしたので、 キヤッシュメ モリ装置の稼動率及びヒッ ト率がより向上し、 ミスヒッ トペナルティ時 間が短かくなる。
第 6の実施例によれば、 第 5の実施例のキヤッシュメモリ装置におい て、 キャッシュデータメモリとキャッシュタグメモリをそれぞれ独立の ライトイネーブル信号で制御するとともに要求のキヤッシュメモリと外 部メモリから読出されているメモリとの一致を検出する一致検出回路を 設け、 コントロール回路が、 キャッシュデータメモリとキャッシュタグ メモリをそれぞれ独立したライトイネーブル信号によつて制御しても、 キヤッシュ要求者には正しく書込みが行われていることを示す H I T信 号を出力するようにしたので、 キヤッシュデ一夕メモリの更新期間中に キャッシュタグメモリを利用して、 更新中のキヤッシュアドレスのデー 夕に続くキャッシュアドレスのヒッ ト状態を判定でき、 第 5の実施例と 同様な効果を得ることができる。

Claims

請 求 の 範 囲
1 . 所望のデータに対応するァドレス情報の上位ァドレス情報を格納す る第 1のキヤッシュメモリと、
前記上位ァドレス情報に属する複数の下位ァドレス情報と、 前記複数 の下位ァドレス情報に対応する複数のデータを格納する第 2のキヤッシ ュメモリ と、
入力されるァドレス情報の上位ァドレス情報と前記第 1のキャッシュ メモリに格納された上位ァドレス情報とを比較し、 一致を検出する第 1 の一致検出回路と、
前記第 1の一致検出回路の一致検出結果に応答し、 該第 1の検出回路 が不一致を検出した時のみ前記入力されたァドレス情報を取込むととも に、 前記入力されたァドレス情報の上位ァドレス情報 1 2に属する複数 のァドレス情報を生成するレジス夕と、
前記第 1の一致検出回路の一致検出結果に応答し、 該第 1の一致検出 回路が一致を検出した時は、 前記第 2のキャッシュメモリから前記入力 されたァドレス情報に対応するデータを読み出すよう制御し、 該第 1の —致検出回路が不一致を検出した時は、 前記レジス夕で生成された前記 ァドレス情報の上位ァドレス情報に属する複数のァドレス情報に応じて 該ァドレス情報の上位ァドレス情報を前記第 1のキャッシュメモリに書 込むよう制御するとともに、 該ァドレス情報の下位ァドレス情報及び外 部メモリの該ァドレス情報に対応する複数のデータを前記第 2のキヤッ シュメモリに書込むよう制御する制御回路と、
前記レジス夕が生成したァドレス情報と前記入力されたァドレス情報 の一致を検出する第 2の一致検出回路と、
前記第 1及び第 2の一致検出回路の一致検出結果に応答し、 該第 1の 一致検出回路が一致を検出した時には、 前記第 2のキヤッシュメモリか ら出力された前記入力されたァドレス情報に対応するデー夕を出力し、 該第 2の一致検出回路が一致を検出した時には前記外部メモリから出力 された該入力されたァドレス情報に対応するデータを出力し、 該第 1及 び第 2の一致検出回路がともに不一致を検出した時には該入力されたァ ドレス情報に対応するデ一夕を出力しない出力回路とを設けたことを特 徵とするキヤッシュメモリ装置。
補正された請求の範囲
[1993年 8月 11日(11.08.93)国際事務局受理;出顧当初の請求の範囲 1は補正された;新しい 請求の範囲 2, 3, 4, 5, 6, 7及び 8が加えられた。 は頁)〗
1 . 所望のデータに対応するァドレス情報の上位ァドレス情報を格納す る第 1のキャッシュメモリと、
前記上位アドレス情報に対応する複数の下位ア ドレス情報と、 前記 複数の下位ァドレス情報に対 する複数のデータを格納する第 2のキヤ ッシュメモリと、
入力される入力ァドレス情報の上位ァドレス情報と前記第 1 のキヤッ シユメモリに格納された上位ァドレス情報とを比較し、 一致を検出する る第 1 の一致検出回路と、
前記第 1 の一致検出回路の一致検出結果に応答し、 該第 1 の一致検 出回路が不一致を検出した時のみ前記入力ァドレス情報を格納するレ ジス夕と、
前記第 1の一致検出回路の一致検出結果に応答し、 該第 1の一致検 出回路が一致を検出した時は、 前記第 2のキャッシュメモリから前記 入力ァドレス情報に対応するデータを読み出すよう制御し、 該第 1 の 一致検出回路が不一致を検出した時は、 前記レジスタに格納された格 納ァドレス情報に応じて該格納ァ.ドレス情報の上位ァドレス情報を前 記第 1 のキャッシュメモリに書き込むよう制御するとともに、 該格納 ァドレス情報の下位ァドレス情報及び外部メモリの該格納ァドレス情 報に対応するデータを前記第 2のキャッシュメモリに書き込むよう制 御する制御回路と、
前記格納ァドレス情報と前記入力ァドレス情報の一致を検出する第
2の一致検出回路と、
前記第 1及び第 2の一致検出回路の一致検出結果に応答し、 該第 1 の一致検出回路が一致を検出した時には、 前記第 2のキャッシュメモ リから前記入力ァドレス情報に対応するデータを出力し、 該第 2の一 致検出回路が一致を検出した時には前記外部メモリか 該入力ァド レス情報に対応するデータを出力し、 該第 1及び第 2の一致検出回路 がともに不一致を検出した時には該入力ァドレス情報に対応するデー 夕を出力しない出力回路とを設けたことを特徴とするキャッシュメモ リ装置。
2 . 請求項 1記載のキャッシュメモリ装置において、 停止信号に応答 して前記第 1及び第 2のキャッシュメモリへの書き込み及び前記出力 回路からの出力を停止させる停止制御回路を設けたことを特徴とする キャッシュメモリ装置。
3 . 請求項 2記載のキャッシュメモリ装置において、 前記格納アドレ ス情報と該格納ァドレス情報に対応する、 前記外部メモリから読み出 されたデータとを対応させて順次格納する複数の格納回路と、 前記複数の格納回路に各々対応して設けられ、 前記入力ァドレス情 報と該複数の格納回路に格納された前記ァドレス情報とを比較し、 一 致を検出する複数の第 3の一致検 Λ回路と、
前記複数の第 3の一致検出回路に各々対応して設けられ、 一致が検 出された該第 3の一致検出回路に対応する前記格納回路に格納された データを前記出力回路に転送するゲート回路とを設けたことを特徴と するキャッシュメモリ装置。
4 . 請求項 3記載のキャッシュメモリ装置において、 前記第 1、 第 2 及び複数の第 3の一致検出回路の一致検出結果に応答し、 該各一致検 出回路のうち、 何れか 1つが一致を検出した時のみ、 前記出力回路の 出力を許可する出力許可回路を設けたことを特徴とするキヤッシュメ モリ装置。
5 . 請求項 4記載のキャッシュメモリ装置において、 前記第〗及び第 2の一致検出回路の一致検出結果及び前記停止信号の応答状態に応じて、 前記複数の格納回路へのデータの格納及び該複数の格納回路に格納さ れているデータの無効を決定する監視回路を設けたことを特徴とする キャッシュメモリ装置。
6 . 所望のデータに対応するアドレス情報の上位アドレス情報を格納 する第 1 のキヤシュメモリと、
前記上位ァドレス情報に属する複数の下位ァドレス情報と、 前記複 数の下位ァドレス情報に対応する複数のデータを格納する第 2のキヤ ッシュメモリと、
入力される入力アドレス情報の上位アドレス情報と前記第 1 のキヤ ッシュメモリに格納された上位ァドレス情報とを比較し、 一致を検出 する第 1 の一致検出回路と、 ·
前記第 1 の一致検出回路の一致挨出結果に応答し、 該第 1 の一致検 出回路が不一致を検出した時のみ前記入力ァドレス情報を格納すると ともに、 該入力アドレス情報の上位アドレス情報に対応する複数の下 位ァドレス情報を順次生成するレジスタと、
前記第 1 の一致検出回路の不一致の検出に応じて前記入力ァドレス 情報の上位ァドレス情報に 1 だけ増加する次上位ァドレス生成回路と、 前記次上位ァドレス生成回路で生成された次上位ァドレス情報に基 づく一致検出結果が不一致の時、 前記レジスタに格納された格納アド レス情報の上位ァドレス情報に 1 だけ増加した更新上位ァドレス情報 を生成して該レジス夕に転送するレジスタ格納データ更新回路と、 前記更新上位ァドレス情報に対応する複数の更新下位ァドレス情報 及び前記外部メモリの該複数の更新下位ァドレス情報に対応する複数 のデータを前記第 2のキャッシュメモリへ書き込む必要について判定 する判定回路と、
前記第 1の一致検出回路の一致検出結果及び前記判定回路の判定結 果に応答し、 該第 1 の一致検出回路が一致を検出した時は、 前記第 2 のキャッシュメモリから前記入力アドレス情報に対応するデータを読 'み出すよう制街し、 該第〗 の一致検出回路が不一致を検出した時は、 前記格鈉アドレス情報の上位アドレス情報を前記第 1 のキャッシュメ モリに書き込むよう制御するとともに、 該格納ァドレス情報に対応す る複数の下位ァドレス情報及び前記外部メモリの該格納ァドレス情報 に対応する複数のデータを前記第 2のキャッシュメモリに書き込むよ う制御し、 該判定回路がデータの書き込みを必要と判定した時は、 前 記更新上位アドレス情報を第 1のキャッシュメモリに書き込むよう制 御するとともに、 該更新上位ァドレス情報に対応する複数の更新下位 ァドレス情報及び該外部メモリの該更新下位ァドレス情報に対応する データを前記第 2のキャッシュメモリに書き込むよう制御する制御回 路とを設けたことを特徴とするキャッシュメモリ装置。
7 . 請求項 6記載のキャッシュメモリ装置において、 前記制御回路は 前記第 1及び第 2のキャッシュメモリへの書き込み許可を異なる書き 込み許可信号にて制^し、 該第 ·2のキャッシュメモリへの書き込み許 可時、 該第 1のキャッシュメモリに格納された上位ァドレス情報と前 記次上位ァドレス情報の比較を前記第 1 の一致検出回路で行うことを 特徴とするキャッシュメモリ装置。
8 . 請求項 7記載のキャッシュメモリ装置において、 前記入力アドレ ス情報の上位ァドレス情報と前記格納ァドレス情報の上位ァドレス情 報との一致を検出し、 一致が検出されたときのみ前記制御回路へ前記 第 1及び第 2のキャッシュメモリへの書き込み許可信号をそれぞれ出 力するよう指示する指示信号を出力する第 2の一致検出回路を有する ことを特徴とするキャッシュメモリ装置。
第 1 9条に基づく説明害 請求の範 Θ第 1項は入力ざれ 入力ァ F 'レス情報の上位ァドレス情報に応じて第一及び 第二のキャ シュメモリの格納情報及び格钠デ一夕を更斩している時 入力ァドレス情報 に対応するデータを出力可能とする梅成を明確にした。
特許出顆 βΚ¾61-5357号公報(弓 ί用例) は必須とするデータブロックが、 バッファメ モリに存在しな 時、 主 装匱から必要とするデータプロ、 クが転送ざれてくるまでの 空き ^fflに必要とするデータブロ^クに 1ブロック分の 7ドレスを加算し ¾:アドレスに対 するブリフ X チを忏ぅものである。
本 II明は人力ァト"レス情報と第一及び第二のキャ シュメモリに更新しているデータの 7ドレス情報が一致しお埸合に更斩して るデ一夕を出力するようにし fcことで、 データ の読み出しもよ 高速に忏ぇる幼果がある。
ft求の範囲第 2項は ft求の範囲第 1項記载のキヤ ¾シュメモリ装 で 第一及び第二のキ ャッシュメモリへの番き込み及びデータの出力を f?止させる梅成を明 ¾にした。
it求の範囲第 3項は it求の範囲第 2 ^载のキヤツシュメモリ装 で、 複数の格納回路と この格鈉回路に対応する複数の一致接出回路を設けて, 第一及び第二のキャ シュメモリ を更斩 て る時に更 済みのデータに対しても読み出しを可讒とする «)δを明確にし fc o
.ft求の 囲第 4項は ft求の链囲第 3¾£栽 キヤ シュメモリ裝 atで、 データの出力を制 する構成も B月瘍に 。
饞求の接屈第 5項は ft求の範囲第 4項 IE载のキヤ シュメモリ装 Sで、 所定の条件を演た すデータ み の格 »回路に格納しておくことを監視する »成 明 «に O fe o
统求の ¾SB¾6項ほ入力ざれ fc入力ァト "レス情報の上位ァト"レスに応じて、 第一及び 第二のキャ シュメモリ t§¾情鑲及び格納データの更斩が必要となつす c時, Zの更斩 ¾ 理が完了するまでの時 Hflに入力ァドレスほ報の上位ァ卜-レス情報に く次上位ァト"レス情 報が第一のキャ シュメモリに格納されているかどうかも調査し、 この講査の ¾rft、 第一 ぬキヤ シュメモリに格 ざれて^なはれぱ、 次上 ァドしス情報に応じ fcデ一夕も第一 及び第二のキャ シュメモリへ格納するか否かを判定するようにし 成を明確にし Tc。
It求 範囲 ¾?瓖は諳求の ¾囲¾6項記載のキヤ シュメモリ装 Sで、 第二のキャ^シュ メモリの格執データの更斩時に、 次上位ァドレス锖接が第一のキャ シュメモリに揞 ftざ れて ( るかどうか ΫΙ1資可能とする: St成を明港に 。
錄求の範囲 ¾8項は接求ぬ範證第 7¾£载のキャ シュメモリ装置で、 第一及び第二のキ ヤ ^シュメモりへの耆き込みを |¾示する ¾成を明確にし 。
PCT/JP1993/000252 1992-02-28 1993-03-01 Cache memory apparatus WO1993017386A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE69330875T DE69330875T2 (de) 1992-02-28 1993-03-01 Cachespeichervorrichtung.
JP51470293A JP3614428B2 (ja) 1992-02-28 1993-03-01 キャッシュメモリ装置
US08/295,685 US5754814A (en) 1992-02-28 1993-03-01 Cache memory apparatus for reading data corresponding to input address information
EP93904367A EP0628912B1 (en) 1992-02-28 1993-03-01 Cache memory apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP4/41774 1992-02-28
JP4177492 1992-02-28

Publications (1)

Publication Number Publication Date
WO1993017386A1 true WO1993017386A1 (en) 1993-09-02

Family

ID=12617728

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1993/000252 WO1993017386A1 (en) 1992-02-28 1993-03-01 Cache memory apparatus

Country Status (5)

Country Link
US (2) US5754814A (ja)
EP (2) EP0943998B1 (ja)
JP (1) JP3614428B2 (ja)
DE (2) DE69334046T2 (ja)
WO (1) WO1993017386A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862358A (en) * 1994-12-20 1999-01-19 Digital Equipment Corporation Method and apparatus for reducing the apparent read latency when connecting busses with fixed read reply timeouts to CPUs with write-back caches
TW440761B (en) * 1999-05-06 2001-06-16 Ind Tech Res Inst The cache device and method
US7146469B2 (en) * 2002-10-24 2006-12-05 Sony Corporation Method, apparatus, and system for improving memory access speed

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS615357A (ja) * 1984-06-07 1986-01-11 Fujitsu Ltd デ−タ処理装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2011134B (en) * 1977-12-22 1982-07-07 Honeywell Inf Systems Data processing systems
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
JPS6272041A (ja) * 1985-09-25 1987-04-02 Nec Corp キヤツシユメモリ制御装置
KR950006590B1 (ko) * 1986-11-14 1995-06-19 가부시기가이샤 히다찌세이사꾸쇼 캐시 메모리를 갖는 마이크로 프로세서
CA1300758C (en) * 1988-03-07 1992-05-12 Colin H. Cramm Mechanism for lock-up free cache operation with a remote address translation unit
JPH0778735B2 (ja) * 1988-12-05 1995-08-23 松下電器産業株式会社 キャッシュ装置と命令読出し装置
JPH0359741A (ja) * 1989-07-28 1991-03-14 Mitsubishi Electric Corp キャッシュメモリ
US5123108A (en) * 1989-09-11 1992-06-16 Wang Laboratories, Inc. Improved cpu pipeline having register file bypass and working register bypass on update/access address compare
US5463760A (en) * 1990-09-07 1995-10-31 Nec Corporation Break function in-circuit emulator for a microprocessor with a cache memory
US5485589A (en) * 1991-12-31 1996-01-16 Dell Usa, L.P. Predictive addressing architecture
DE69324508T2 (de) * 1992-01-22 1999-12-23 Enhanced Memory Systems Inc DRAM mit integrierten Registern

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS615357A (ja) * 1984-06-07 1986-01-11 Fujitsu Ltd デ−タ処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0628912A4 *

Also Published As

Publication number Publication date
US5754814A (en) 1998-05-19
JP3614428B2 (ja) 2005-01-26
EP0943998B1 (en) 2006-07-12
EP0628912B1 (en) 2001-10-04
EP0628912A1 (en) 1994-12-14
DE69330875T2 (de) 2002-04-11
US5634104A (en) 1997-05-27
DE69334046D1 (de) 2006-08-24
DE69330875D1 (de) 2001-11-08
DE69334046T2 (de) 2007-02-08
EP0943998A2 (en) 1999-09-22
EP0943998A3 (en) 2000-09-13
EP0628912A4 (en) 1995-10-11

Similar Documents

Publication Publication Date Title
US5388247A (en) History buffer control to reduce unnecessary allocations in a memory stream buffer
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US9268708B2 (en) Level one data cache line lock and enhanced snoop protocol during cache victims and writebacks to maintain level one data cache and level two cache coherence
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
US11237905B2 (en) Pipelined read-modify-write operations in cache memory
US8117395B1 (en) Multi-stage pipeline for cache access
JPS62262160A (ja) 書込みバツフア装置
JPH0659976A (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6665767B1 (en) Programmer initiated cache block operations
US6408363B1 (en) Speculative pre-flush of data in an out-of-order execution processor system
JPH09237223A (ja) バスブリッジを用いたコンピュータシステム
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
US6643766B1 (en) Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor
US6976130B2 (en) Cache controller unit architecture and applied method
KR100282118B1 (ko) 하이스루풋단일포트다중갱신유니트태그제어기
JPH03172947A (ja) マイクロコンピュータ・システム
WO1993017386A1 (en) Cache memory apparatus
JPH02110646A (ja) メモリの先行読出し装置
JP3729832B2 (ja) キャッシュメモリ装置
JP3761890B2 (ja) キャッシュメモリ装置
JPH07234819A (ja) キャッシュメモリ
JPH02301843A (ja) プリフェッチ制御方法およびプリフェッチ制御装置
JP3757768B2 (ja) ベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式
JPH07152650A (ja) キャッシュ制御装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 08295685

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1993904367

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1993904367

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1993904367

Country of ref document: EP