WO2015034082A1 - メモリ制御回路およびキャッシュメモリ - Google Patents

メモリ制御回路およびキャッシュメモリ Download PDF

Info

Publication number
WO2015034082A1
WO2015034082A1 PCT/JP2014/073634 JP2014073634W WO2015034082A1 WO 2015034082 A1 WO2015034082 A1 WO 2015034082A1 JP 2014073634 W JP2014073634 W JP 2014073634W WO 2015034082 A1 WO2015034082 A1 WO 2015034082A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
memory
data
local buffer
control circuit
Prior art date
Application number
PCT/JP2014/073634
Other languages
English (en)
French (fr)
Inventor
紘希 野口
藤田 忍
Original Assignee
株式会社 東芝
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 株式会社 東芝 filed Critical 株式会社 東芝
Publication of WO2015034082A1 publication Critical patent/WO2015034082A1/ja
Priority to US15/059,842 priority Critical patent/US9786342B2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1655Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • Embodiments described herein relate generally to a memory control circuit that controls a cache memory and a cache memory that includes the memory control circuit.
  • prefetch and row buffer are known.
  • Prefetch is a method of predicting data that will be required in the future and transferring data between different layers in advance. If the prediction of data required in the future by prefetching matches, the time required for data transfer can be shortened, and the time for the processor to wait for data can be shortened.
  • the row buffer is also called “History buffer”, and it is a technique that stores the most recently accessed data in the buffer and realizes high-speed data access when the same address is accessed.
  • Prefetch is a technique of hiding latency by moving data to an upper hierarchy, and has no latency hiding effect in the same hierarchy.
  • the row buffer is effective for accessing data accessed in the past, but is not effective for accessing a new address.
  • the problem to be solved by the present invention is to provide a memory control circuit and a cache memory that can quickly respond to an access request.
  • a local buffer when there is a read request for a specific address of the cache memory, a local buffer that reads and stores data at an address different from the specific address from the cache memory; A control unit for controlling access to the cache memory and the local buffer, The local buffer has a memory capacity smaller than that of the cache memory and can be accessed at high speed, and a memory control circuit is provided that stores a part of the data stored in the cache memory in an overlapping manner.
  • FIG. 1 is a block diagram showing a schematic configuration of a cache memory 1 according to an embodiment.
  • the graph which shows the relationship between the number of entries of the local buffer 5, and the hit rate of an address.
  • FIG. 2 is a block diagram showing an example of an internal configuration of a memory cell array 2 and a local buffer 5 in the cache memory 1 of FIG. 7 is a flowchart showing an example of processing operation of the cache controller 6;
  • A) is a figure explaining the outline of a current read-out system
  • (b) is a figure which shows the current waveform which flows into magnetoresistive effect element AP and P in a current read-out system,
  • (c) is a figure explaining the outline of a voltage read-out system.
  • FIG. 8 is a timing chart when performing read-out of the cache memory 1 and pre-read using the local buffer 5 using the circuit of FIG. 7.
  • FIG. 4 is a timing chart when data reading and prefetching are performed from the cache memory 1 by one high operation of a word line.
  • the schematic layout figure which shows an example of three-dimensional lamination
  • FIG. 1 is a block diagram showing a schematic configuration of a cache memory 1 according to an embodiment.
  • the cache memory 1 of FIG. 1 includes a memory cell array (cache array unit) 2, a row decoder 3, a sense amplifier 4, a local buffer 5, a cache controller (control unit) 6, and an I / O controller 7. ing.
  • the cache memory 1 of FIG. 1 at least the local buffer 5 and the cache controller 6 correspond to the memory control circuit.
  • the memory cell array 2 includes memory cells arranged vertically and horizontally that have a higher access speed than a main memory (not shown).
  • nonvolatile memory cells are used as memory cells.
  • SRAM Static RAM
  • SRAM Static RAM
  • SRAM static RAM
  • the SRAM has a large standby power and is not suitable for portable information devices that require low power consumption.
  • the SRAM has a large area per bit, and increasing the memory capacity causes an increase in power consumption and a decrease in operating speed.
  • the reason why the operation speed is lowered is that when the area of the memory cell array 2 is increased, the wiring becomes longer and wiring delay occurs, and it takes time to drive the word line, and high-speed reading becomes difficult.
  • the increase in wiring capacitance increases the leakage current and increases the power consumption.
  • MRAM Magneticoresistive RAM
  • MRAM has a small area per bit and can be mounted with about 10 times the memory capacity with the same circuit area compared to SRAM cells.
  • the MRAM employs a mechanism for holding data with a minute resistance change, the read time is slower than that of the SRAM. For this reason, the waiting time from when the processor makes an access request until data is acquired becomes long, and the processor may be stalled.
  • the local buffer 5 is provided to achieve both high capacity and high speed performance.
  • the local buffer 5 is configured using a memory cell (for example, SRAM) faster than the MRAM cell. It is assumed that the memory capacity of the local buffer 5 is smaller than the memory capacity of the cache memory 1.
  • the local buffer 5 may have the same cell structure as the memory cell array 2. Even with the same cell structure, the local buffer 5 has a memory capacity much smaller than that of the memory cell array 2, and therefore, the wiring delay is reduced. Further, since the number of memory cells connected to one word line is small, the driving capability of the word line can be increased. Therefore, for example, even if the local buffer 5 and the memory cell array 2 are configured by MRAM cells having the same cell structure, the local buffer 5 can operate at a higher speed than the memory cell array 2.
  • the local buffer 5 is provided in the same memory hierarchy as the cache memory 1. Therefore, when the processor designates a specific address and makes an access (read) request to the cache memory 1, an address different from the address is newly generated and data is read from the cache memory 1, The read data is stored in the local buffer 5.
  • the different address is, for example, an address next to the address at which the processor has made a read request.
  • the unit of data read at one address is not particularly limited, but is 512 bits, which is the same unit as the cache line, for example.
  • the cache controller 6 issues an address for accessing the local buffer 5.
  • the cache controller 6 generates a new address by incrementing or decrementing, for example, the address requested by the processor.
  • the newly generated address is an address that the processor is supposed to make an access request in the future, and is an address that is prefetched.
  • SPEC CPU2006 which is a performance evaluation software suite for computer hardware based on Standard Performance Evaluation (SPEC)
  • SPEC Standard Performance Evaluation
  • FIG. 2 is a graph showing the relationship between the memory capacity of the local buffer 5, that is, the number of entries and the address hit rate. This graph is the result estimated by SPEC CPU2006 mentioned above. As shown in FIG. 2, when the number of entries in the local buffer 5 is 5, it has been confirmed that the speed can be increased by a rate of about 20%, that is, one access every five times.
  • the local buffer 5 becomes full immediately because the memory capacity, that is, the number of entries is limited.
  • the local buffer 5 becomes full, it is desirable to delete old data in order and replace it with new data. Since the data stored in the local buffer 5 is basically also stored in the cache memory 1, even if the data is erased from the local buffer 5, no operational inconvenience occurs. Further, when the number of entries in the local buffer 5 is increased, the wiring length is increased, and the drive capability of the word line and the like is also lowered, so that the access speed is lowered. Therefore, it is not desirable to increase the number of entries in the local buffer 5 too much.
  • the number of entries in the local buffer 5 is 5 will be described.
  • five data prefetched at the time of access for the past five times are stored in the local buffer 5.
  • the prefetching succeeds, and the local buffer Data is read from 5 at high speed.
  • the prefetching fails and the data is read from the cache memory 1.
  • an address that is expected to be accessed in the future is predicted, the corresponding data is prefetched from the cache memory 1, and the oldest data in the local buffer 5 is erased. And then store.
  • the method for predicting an address that is expected to be accessed in the future from the address requested for access is based on the history information of the past addresses requested for access in addition to the address increment and decrement described above.
  • Various methods such as a method for predicting the above are conceivable. For example, by configuring the cache controller 6 with an FPGA (Field ⁇ Programmable Gate Array), the algorithm for determining the prefetch address may be arbitrarily changed afterwards.
  • FPGA Field ⁇ Programmable Gate Array
  • the prefetch address may be one or plural.
  • the graph of FIG. 2 shows an example in which incremented addresses are prefetched one by one and stored in the local buffer 5. If the prefetching is successful, the latency of the cache memory 1 can be greatly reduced, and the instruction execution efficiency of the processor can be greatly improved. Further, by using a nonvolatile memory for the cache memory 1, in addition to the effect that the hit rate can be improved in the first place, the hit rate can be further improved by the local buffer 5. Therefore, the cache memory 1 using the conventional SRAM In comparison, the memory access speed can be greatly improved.
  • the data corresponding to the prefetch address may not be stored in the cache memory 1. .
  • an access request to the low-order memory is not issued and prefetching is not performed.
  • the reason for this is that when accessing the low-order memory for prefetching, it takes time to acquire data, which may cause processing delay of the processor. If access to the low-order memory can be performed at high speed, an access request may be issued to the low-order memory.
  • the cache controller 6 does not always perform address read-ahead control using the local buffer 5. For example, when access to the cache memory 1 is concentrated, the cache controller 6 does not perform address prefetching, that is, does not add data to the local buffer 5, and gives priority to the address requested to be accessed. And may be processed.
  • a counter for monitoring the hit rate is provided in the local buffer 5, and for example, the cache controller 6 detects the ratio (hit rate) between the number of accesses to the cache memory 1 and the number of pre-read hits, and hits When the rate falls below a predetermined threshold (for example, ten consecutive misses), address prefetching may be temporarily stopped so that data is not added to the local buffer 5.
  • a predetermined threshold for example, ten consecutive misses
  • FIG. 3 is a block diagram showing an example of the internal configuration of the memory cell array 2 and the local buffer 5 in the cache memory 1 of FIG.
  • the memory cell array 2 includes a first tag unit 11 and a first data unit 12.
  • the first tag unit 11 includes a first address storage unit 13 that stores an address corresponding to data in the cache memory 1 and whether or not the address requested to access matches the address of the data in the cache memory 1.
  • a first tag comparison unit 14 for comparison.
  • the first data unit 12 stores data divided into a plurality of ways, for example.
  • the data stored in the first data unit 12 is data stored in a low-order memory (lower memory) of the cache memory 1 or data to be stored in the low-order memory in the future.
  • the local buffer 5 includes a second tag unit 15 and a second data unit 16.
  • the second tag unit 15 includes a second address storage unit 17 that stores an address corresponding to the data in the local buffer 5, and whether or not the address requested to access matches the address of the data in the local buffer 5.
  • Data stored in the second data unit 16 is data stored also in the cache memory 1.
  • the processor designates a certain address [39: 0] and issues a read request
  • the higher-order bits [39:18] of the address are input to the first tag comparison unit 14 in the first tag unit 11. Then, it is compared whether or not it matches the address stored in the first address storage unit 13 in the first tag unit 11.
  • the first tag comparison section 14 compares the address of the data stored in each of these ways. If the addresses match, the data of the matched way is read from the memory cell array 2.
  • the number of data bits in one way is 512 bits, and 512 bits of data are output at one address.
  • the address requested to be accessed is also input to the second tag unit 15 in the local buffer 5 and is compared with the address corresponding to the data in the local buffer 5 by the second tag comparison unit 18. If the two addresses match, the corresponding data in the local buffer 5 is read.
  • the local buffer 5 Since the local buffer 5 has a higher operating speed than the memory cell array 2 in the cache memory 1, the data read from the local buffer 5 is transmitted to the processor in preference to the data read from the memory cell array 2. Is done.
  • FIG. 4 is a flowchart showing an example of processing operation of the cache controller 6.
  • an access request from a processor is received (step S1).
  • the access request in this case is a read request for a certain address.
  • step S2 it is determined whether or not the data at this address is stored in the local buffer 5 (step S2). If it is stored, it is determined that there is a hit, and the corresponding data is read from the local buffer 5 and transmitted to the processor (step S3). In this case, data reading at a higher speed than reading from the cache memory 1 is realized.
  • step S2 If it is determined in step S2 that it is not stored in the local buffer 5, an access request is made to the memory cell array 2 in the cache memory 1 (step S4). Next, it is determined whether or not the address requested to be accessed matches in the first tag comparison unit 14 (step S5). If they match, it is determined that the memory cell array 2 is hit, and the memory cell array 2 The corresponding data is read (step S6), and the data of the next address of the address requested to be accessed is read from the memory cell array 2 and stored in the local buffer 5 (step S7).
  • step S8 If it is determined in step S5 that they do not match, an access request is made to the low-order memory (lower memory) (step S8).
  • the magnetoresistive effect element in the MRAM cell changes in resistance value depending on whether data stored is 0 or 1.
  • a method for detecting the resistance value of the magnetoresistive effect element there are a current reading method for detecting a current flowing through the magnetoresistive effect element and a voltage reading method for detecting a voltage at one end of a capacitor connected in series to the magnetoresistive effect element. is there.
  • FIG. 5A is a diagram for explaining the outline of the current reading method
  • FIG. 5B is a diagram showing a current waveform flowing through the magnetoresistive effect elements AP and P in the current reading method
  • FIG. 5C is a voltage reading method
  • FIG. 5D is a diagram showing a waveform of a current flowing through the magnetoresistive effect elements AP and P in the voltage reading method.
  • one of the magnetoresistive effect element AP and the magnetoresistive effect element P has a high resistance, and the other has a low resistance.
  • the sense amplifier 4 can correctly detect the value of each data bit by sequentially reading the voltage at one end of the capacitors C1 and C2 connected to each bit line.
  • the capacitors C1 and C2 include at least one of a capacitor intentionally manufactured using a conductive material and a capacitor indirectly formed by parasitic capacitance, wiring capacitance, or the like. Therefore, for example, it is possible to use a capacitance due to wiring without using an intentionally produced capacitor.
  • FIG. 6A is a circuit diagram illustrating an example of the 1T-1R type
  • FIG. 6B is a circuit diagram illustrating an example of the 2T-2R type.
  • 6A includes an MRAM cell 31 having a magnetoresistive effect element AP, a reference cell 32 having a reference resistance Ref, a transfer gate 33 provided on a bit line through which a current from the MRAM cell 31 flows,
  • the local capacity (first capacity) CBL connected to one end of the transfer gate 33, the global capacity (second capacity) CGL connected to the other end of the transfer gate 33, and the current from the reference cell 32 are A transfer gate 34 provided on the flowing reference bit line, a local capacitor CREF connected to one end of the transfer gate 34, a global capacitor C / GL connected to the other end of the transfer gate 34, a bit line and a reference And a sense amplifier 4 connected to the bit line.
  • the circuit of FIG. 6B is provided on a pair of MRAM cells 31 and 35 having magnetoresistive elements AP and P having different resistance values, and a pair of bit lines through which currents from the MRAM cells 31 and 35 flow.
  • Capacitors CGL and C / GL, and a sense amplifier 4 connected to a pair of bit lines.
  • the voltage at one end of the capacitor obtained by synthesizing the local capacitor CBL and the global capacitor CGL for storing charges according to the current flowing through the magnetoresistive effect element AP in one MRAM cell 31 is obtained.
  • the data 0 and 1 are determined by comparing with a voltage at one end of a capacitor obtained by synthesizing the local capacitor Cref and the global capacitor C / GL that accumulates charges according to the current flowing through the reference resistor Ref in the reference cell 32.
  • the reference resistance Ref has an intermediate resistance value between a high resistance and a low resistance that can be taken by the magnetoresistive effect element AP, whether the resistance value of the magnetoresistive effect element AP is larger or smaller than the resistance value of the reference resistance 0 or 1 is determined.
  • the resistance values of the magnetoresistive effect elements AP and P in the MRAM cells 31 and 35 connected to the pair of bit lines are reversed, and the respective magnetoresistances Data 0 and 1 are determined by comparing the voltage at one end of each capacitor that accumulates electric charge corresponding to the current flowing through the effect elements AP and P with each other.
  • data is read out differentially using a pair of bit lines, so that data can be read out at a higher speed than in the 1T-1R type.
  • Capacitors C1 and C2 shown in FIG. 5 (b) are capacitors obtained by synthesizing the local capacitors CBL and C / BL and the global capacitors CGL and C / GL shown in FIGS. 6 (a) and 6 (b).
  • the local capacitors CBL and C / BL are the total of parasitic capacitances and individual capacitors provided for each bit line.
  • the global capacitors CGL and C / GL are shown to be provided for each bit line in FIGS. 6A and 6B, but actually, a plurality of bit lines are provided. It is the capacity shared by.
  • FIG. 7 is a peripheral circuit diagram of a bit line, a column selection circuit, and a global capacitor in the 1T-1R type, and shows a circuit configuration for one byte.
  • the circuit in FIG. 7 includes a transfer gate group 41 that selects a source line and transfer gate groups 42 and 43 that select a bit line, which correspond to a column selection circuit.
  • the transfer gate groups 42 and 43 for selecting the bit lines correspond to the transfer gate group (first bit line selection unit) 42 for selecting the bit line corresponding to the address requested by the processor and the address to be pre-read.
  • the transfer gate group (second bit line selection unit) 43 is included, and global capacitors CGL1 and CGL2 are connected to the other end sides of the transfer gate groups 42 and 43, respectively.
  • the global capacitors CGL1 and CGL2 are shared by a plurality of bit lines, and are added to the selected bit line.
  • the electric charge due to the current flowing through the magnetoresistive effect element in the MRAM cell is accumulated (charged or discharged) in a capacitor obtained by adding the local capacitance and the global capacitance provided for each source line or bit line.
  • the column selection signal CSL1 selects one of the transfer gate groups 42 that selects the bit line corresponding to the address requested by the processor.
  • the column selection signal CSL2 selects one of the transfer gate groups 43 that select the bit line corresponding to the address to be prefetched.
  • the voltage of the bit line selected by the column selection signal CSL1 is sensed by the sense amplifier 4 when the sense enable signal SE1 is high.
  • the voltage of the bit line selected by the column selection signal CSL2 is sensed by the sense amplifier 4 when the sense enable signal SE2 is high.
  • FIG. 8 is a timing chart when the cache memory 1 is read using the circuit of FIG. 7 and the prefetch using the local buffer 5 is performed.
  • the processor designates a certain address and issues a read request, first the column selection signal CS1 is set high (time t1), and then the word line corresponding to the specified address is set high (time t2). As a result, a current starts to flow through the magnetoresistive element of the MRAM cell corresponding to the corresponding address (time t3).
  • the cache controller 6 sets the column selection signal CSL2 to high in order to prefetch the next address after the address designated by the processor (time t6), and then sets the word line corresponding to this address to high (time t6). Time t7). As a result, current starts to flow through the magnetoresistive element of the MRAM cell corresponding to the corresponding address (time t8).
  • FIG. 9 is a timing chart in the case where data reading from the cache memory 1 and prefetching are performed by one high operation of the word line.
  • FIG. 9 shows an example in which the word line corresponding to the address requested to be read from the processor is the same as the word line corresponding to the pre-read address.
  • both the column selection signals CS1 and CS2 are set high, and the corresponding bit line is discharged in advance for reading (reset).
  • the corresponding word line is set high.
  • current begins to flow through both the magnetoresistive element corresponding to the address requested by the processor and the magnetoresistive element corresponding to the address to be read ahead, and the corresponding bit line is charged. (Time t3). Note that the corresponding bit line may be charged in advance for reading, and discharging from the bit line may be performed by passing a current through the magnetoresistive element.
  • the sense enable signal SE1 is set high, the voltage of the bit line corresponding to the address requested by the processor is taken into the sense amplifier 4, and the data is output. This data is transferred to the processor.
  • the sense enable signal SE2 is set high, the voltage of the bit line corresponding to the address to be prefetched is taken into the sense amplifier 4, and data is output. This data is transferred to the local buffer 5.
  • the same word line means that the number of decoding processes of the row decoder 3 that decodes the address and generates a word line selection signal can be reduced, and the power consumption of the row decoder 3 can also be reduced.
  • FIG. 10 is a diagram showing a breakdown of power consumption per read request by the processor.
  • the power consumption is 1) the power consumption of the row selection circuit, that is, the row decoder 3 and the power consumption for driving the word line, 2) the power consumption of the bit line and the sense amplifier 4, and 3) the power consumption of the input / output buffer.
  • power consumption for driving the sub-array refers to a circuit block other than the above-described circuit blocks 1) to 3) in the cache memory 1.
  • the power of 1) in FIG. 10 can be reduced. As a result, approximately 30% of the power required for the look-ahead can be reduced.
  • the internal configuration of the cache memory 1 has been described. However, even if the chip on which the cache memory 1 is mounted and the chip on which the processor is mounted are connected by TSV (Through Silicon Via), three-dimensional stacking is performed. Good.
  • FIG. 11 is a schematic layout diagram showing an example of three-dimensional stacking.
  • a chip 51 on which each part in the cache memory 1 of FIG. 1 is mounted and a chip 52 on which a processor and its peripheral circuits are mounted are connected by TSVs 53 and 54.
  • the chip 52 includes a multi-core processor 55, a primary cache memory 56 having an instruction cache and a data cache, a memory controller 57, and a streaming buffer 58.
  • the streaming buffer 58 is a buffer for storing prefetched data.
  • Either of these two chips 51 and 52 may be arranged above. Also, some circuit blocks in each chip may be mounted on another chip.
  • the small-capacity and high-speed local buffer 5 is provided separately from the cache memory 1 and a read request is made from the processor to the cache memory 1, Since data of different addresses are prefetched from the cache memory 1 and stored in the local buffer 5, when a read request is subsequently issued from the processor, the address at which the read request is made is stored in the local buffer 5. As a result, data can be read faster than the cache memory 1.
  • prefetching is performed without increasing the number of times of driving the word line and the number of times of decoding of the row decoder 3. Power consumption can be reduced.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

[課題]アクセス要求に対する応答を迅速に行う。 [解決手段]メモリ制御回路は、キャッシュメモリ1の特定アドレスに対する読み出し要求があった場合に、特定アドレスとは異なるアドレスのデータをキャッシュメモリから読み出して格納するローカルバッファ5と、キャッシュメモリおよびローカルバッファに対するアクセスを制御する制御部と、を備える。ローカルバッファは、キャッシュメモリよりも記憶容量が小さくて高速アクセスが可能で、かつ、キャッシュメモリに記憶されているデータの一部を重複して記憶する。

Description

メモリ制御回路およびキャッシュメモリ
 本発明の実施形態は、キャッシュメモリを制御するメモリ制御回路と、メモリ制御回路を内蔵するキャッシュメモリとに関する。
 アクセス速度が遅い、すなわちレイテンシの大きいメモリ(例えば、メインメモリ)にプロセッサがデータをロードする際のレイテンシを隠蔽する技術として、プリフェッチとロウバッファ(Row Buffer)が知られている。
 プリフェッチは、将来必要となるデータを予測して、あらかじめ異なる階層間でデータ転送しておくという手法である。プリフェッチによって将来必要となるデータの予測が一致すると、データ転送に必要な時間を短縮でき、プロセッサがデータを待つ時間を短縮できる。
 ロウバッファは、History bufferとも呼ばれ、直近でアクセスしたデータをバッファに格納しておき、同じアドレスにアクセスがあった時に高速にデータアクセスを実現するという手法である。
 プリフェッチでは、データ転送を先行して行うため、プリフェッチの予測が失敗した時のオーバーヘッドが大きい。また、プリフェッチは、上位階層にデータを移す事でレイテンシを隠ぺいする手法であり、同一階層内でのレイテンシの隠ぺい効果はない。ロウバッファは、過去にアクセスしたデータへのアクセスには効果があるが、新たなアドレスへのアクセスには効果がない。
 本発明が解決しようとする課題は、アクセス要求に対する応答を迅速に行うことが可能なメモリ制御回路およびキャッシュメモリを提供することにある。
 本実施形態では、キャッシュメモリの特定アドレスに対する読み出し要求があった場合に、前記特定アドレスとは異なるアドレスのデータを前記キャッシュメモリから読み出して格納するローカルバッファと、
 前記キャッシュメモリおよび前記ローカルバッファに対するアクセスを制御する制御部と、を備え、
 前記ローカルバッファは、前記キャッシュメモリよりも記憶容量が小さくて高速アクセスが可能で、かつ、前記キャッシュメモリに記憶されているデータの一部を重複して記憶するメモリ制御回路が提供される。
一実施形態に係るキャッシュメモリ1の概略構成を示すブロック図。 ローカルバッファ5のエントリ数とアドレスのヒット率との関係を示すグラフ。 図1のキャッシュメモリ1内のメモリセルアレイ2とローカルバッファ5の内部構成の一例を示すブロック図。 キャッシュコントローラ6の処理動作の一例を示すフローチャート。 (a)は電流読み出し方式の概略を説明する図、(b)は電流読み出し方式における磁気抵抗効果素子AP,Pに流れる電流波形を示す図、(c)は電圧読み出し方式の概略を説明する図、(d)は電圧読み出し方式における磁気抵抗効果素子AP,Pに流れる電流波形を示す図。 (a)は1T-1Rタイプの一例を示す回路図、(b)は2T-2Rタイプの一例を示す回路図。 1T-1Rタイプにおけるビット線、カラム選択回路およびグローバル容量の周辺回路図。 図7の回路を用いてキャッシュメモリ1の読み出しとローカルバッファ5を用いた先読みを行う場合のタイミング図。 ワード線の一回のハイ動作でキャッシュメモリ1からのデータ読み出しと先読みとを行う場合のタイミング図。 プロセッサによる読み出し要求の1回当たりの消費電力の内訳を示す図。 3次元積層化の一例を示す概略的なレイアウト図。
 以下、図面を参照しながら、本発明の一実施形態について説明する。
 図1は一実施形態に係るキャッシュメモリ1の概略構成を示すブロック図である。図1のキャッシュメモリ1は、メモリセルアレイ(キャッシュアレイ部)2と、ロウデコーダ3と、センスアンプ4と、ローカルバッファ5と、キャッシュコントローラ(制御部)6と、I/Oコントローラ7とを備えている。図1のキャッシュメモリ1のうち、少なくともローカルバッファ5とキャッシュコントローラ6がメモリ制御回路に該当する。
 メモリセルアレイ2は、不図示のメインメモリよりもアクセス速度が高速なメモリセルを縦横に配置したものである。本実施形態は、メモリセルとして不揮発性メモリセルを用いている。SRAM(Static RAM)を用いないのは、SRAMは待機電力が大きく、低消費電力が求められる携帯情報機器には向かないためである。また、SRAMは、1ビット当たりの面積が大きく、メモリ容量を増やそうとすると、消費電力の増大と動作速度の低下を引き起こす。動作速度が低下するのは、メモリセルアレイ2の面積が大きくなると、配線が長くなって配線遅延が起き、またワード線の駆動にも時間がかかり、高速な読み出しが困難になるためである。また、配線容量の増大により、リーク電流が増えて、消費電力が増大してしまう。
 本実施形態は、不揮発性メモリの中でも、とりわけMRAM(Magnetoresistive RAM)を用いることを念頭に置いている。MRAMは、NANDフラッシュメモリ等の他の不揮発性メモリと比べて、書換耐性に優れ、動作速度も速く、高集積化が可能という特徴を有する。
 MRAMは、1ビット当たりの面積が小さく、SRAMセルに比べて、10倍程度のメモリ容量を同じ回路面積で実装可能である。ところが、MRAMは、微小な抵抗変化でデータを保持する仕組みを採用するため、SRAMに比べると、読み出し時間が遅い。このため、プロセッサがアクセス要求をしてからデータを取得するまでの待機時間が長くなり、プロセッサのストールが発生してしまうおそれがある。
 また、一般に、大容量化と高速性能を両立させることは困難であり、大容量化を優先させると動作速度が低下し、動作速度を向上させると大容量化が実現できなくなるというように、メモリ容量と動作速度はトレードオフの関係にある。そこで、本実施形態では、ローカルバッファ5を設けて、大容量化と高速性能との両立を図っている。
 ローカルバッファ5は、MRAMセルよりも高速なメモリセル(例えば、SRAM)を用いて構成されている。ローカルバッファ5のメモリ容量は、キャッシュメモリ1のメモリ容量よりも小さいことを想定している。
 なお、ローカルバッファ5は、メモリセルアレイ2と同じセル構造で構成してもよい。
同じセル構造であっても、ローカルバッファ5は、メモリセルアレイ2よりもはるかにメモリ容量が小さいため、配線遅延が少なくなる。また、一つのワード線に接続されるメモリセルの数も少ないため、ワード線の駆動能力を高めることができる。よって、例えば、ローカルバッファ5とメモリセルアレイ2を、同じセル構造のMRAMセル等で構成しても、ローカルバッファ5はメモリセルアレイ2よりも高速動作が可能である。
 ローカルバッファ5は、キャッシュメモリ1と同じメモリ階層内に設けられている。したがって、プロセッサが、特定のアドレスを指定してキャッシュメモリ1に対してアクセス(読み出し)要求を行うと、そのアドレスとは異なるアドレスが新たに生成されて、キャッシュメモリ1からデータが読み出され、読み出されたデータはローカルバッファ5に格納される。異なるアドレスとは、例えば、プロセッサが読み出し要求を行ったアドレスの次のアドレスである。一つのアドレスで読み出されるデータの単位は特に限定されないが、例えばキャッシュラインと同じ単位である512ビットである。
 ローカルバッファ5にアクセスするためのアドレスの発行は、キャッシュコントローラ6が行う。キャッシュコントローラ6は、プロセッサがアクセス要求をしたアドレスを、例えばインクリメントまたはディクリメントして新たなアドレスを生成する。
 新たに生成されるアドレスは、プロセッサが今後アクセス要求をすると思われるアドレスであり、先読みするアドレスである。本発明者がStandard Performance Evaluation (SPEC)によるコンピュータ・ハードウェア向け性能評価ソフトウェア・スイートであるSPEC CPU2006にて見積もったところ、アドレスインクリメントで新たなアドレスを生成したところ、全アクセスのうち10%~30%で、アクセスの高速化が図れた。
 図2はローカルバッファ5のメモリ容量すなわちエントリ数とアドレスのヒット率との関係を示すグラフである。このグラフは、上述したSPEC CPU2006で見積もった結果である。図2に示すように、ローカルバッファ5のエントリ数が5の場合、約20%の割合、すなわち5回に1回のアクセスで、高速化が図れることが確認できた。
 ローカルバッファ5は、メモリ容量すなわちエントリ数が限られているため、すぐに満杯になってしまう。ローカルバッファ5が満杯になった場合は、古いデータから順に消去して、新しいデータと入れ替えるようにするのが望ましい。ローカルバッファ5に格納されているデータは、基本的には、キャッシュメモリ1にも格納されているため、ローカルバッファ5からデータを消去しても、動作上の不都合は起きない。また、ローカルバッファ5のエントリ数を増やすと、配線長が長くなり、またワード線等のドライブ能力も低下するため、アクセス速度が低下してしまう。よって、ローカルバッファ5のエントリ数をあまり増やすのは望ましくない。
 例えば、ローカルバッファ5のエントリ数が5の例について説明する。この場合、過去5回分のアクセス時に先読みされた5つのデータがローカルバッファ5に格納されている。次に、プロセッサからのアクセス要求が来たとき、アクセス要求のあったアドレスがローカルバッファ5内の5つのデータに対応する5つのアドレスのいずれかと一致していれば、先読みは成功し、ローカルバッファ5からデータが高速に読み出される。
 一方、アクセス要求のあったアドレスがローカルバッファ5内のデータに対応するいずれのアドレスとも一致しない場合は、先読みは失敗し、キャッシュメモリ1からデータが読み出される。この場合、アクセス要求のあったアドレスに基づいて、将来アクセスがあると思われるアドレスを予測してキャッシュメモリ1から対応するデータを先読みして、このデータをローカルバッファ5内の最も古いデータを消去した上で格納する。
 なお、アクセス要求のあったアドレスから、将来アクセスがあると思われるアドレスを予測する手法は、上述したアドレスのインクリメントやディクリメントの他に、アクセス要求をした過去のアドレスの履歴情報に基づいてアドレスを予測する手法など、種々の手法が考えられる。例えば、キャッシュコントローラ6をFPGA(Field Programmable Gate Array)で構成することで、先読みのアドレスを決定するアルゴリズムを事後的に任意に変更可能としてもよい。
 また、先読みするアドレスは、1個でもよいし、複数個でもよい。図2のグラフは、インクリメントされたアドレスを一つずつ先読みしてローカルバッファ5に格納する例を示している。先読みが成功すると、キャッシュメモリ1のレイテンシを大幅に削減でき、プロセッサの命令実行効率を大きく改善できる。また、キャッシュメモリ1に不揮発性メモリを使用することで、そもそものヒット率が向上できる効果に加えて、ローカルバッファ5によるさらなるヒット率の向上が図れるため、従来のSRAMを用いたキャッシュメモリ1と比べて、メモリのアクセス速度を大幅に向上できる。
 プロセッサから読み出し要求のあったアドレスに対応するデータがキャッシュメモリ1に格納されていない場合、すなわちキャッシュミスした場合は、先読みは行わずに、このキャッシュメモリ1よりも低次のキャッシュメモリまたはメインメモリ(以下、低次メモリ)に対してアクセス要求を出す。
 また、プロセッサから読み出し要求のあったアドレスに対応するデータをキャッシュメモリ1から読み出すとともに、先読みアドレスを発行した場合に、この先読みアドレスに対応するデータがキャッシュメモリ1に格納されていないことも考えられる。この場合は、低次メモリへのアクセス要求は出さずに先読みを行わない。このようにする理由は、先読みのために低次メモリにアクセスすると、データを取得するのに時間がかかってしまい、プロセッサの処理遅延が生じてしまうおそれがあるためである。なお、低次メモリへのアクセスが高速に行える場合は、低次メモリにアクセス要求を出してもよい。
 キャッシュコントローラ6は、ローカルバッファ5を用いたアドレスの先読み制御を常に行うとは限らない。例えば、キャッシュコントローラ6は、キャッシュメモリ1へのアクセスが集中している場合は、アドレスの先読みを実行せず、すなわちローカルバッファ5へのデータ追加を行わずに、アクセス要求のあったアドレスを優先して処理してもよい。
 また、ローカルバッファ5内にヒット率を監視するカウンタを設けて、例えばキャッシュコントローラ6にて、キャッシュメモリ1へのアクセス回数と、先読みのヒット数との割合(ヒット率)を検出して、ヒット率が所定の閾値より下がった場合(例えば、10回連続ミスなど)、アドレスの先読みを一時的に中止し、ローカルバッファ5へのデータ追加を行わないようにしてもよい。
 これは、OS制御によるプログラムやプロセスの切替時にキャッシュメモリ1へのアクセスのパターンが不安定になるためであり、アクセスのパターンが不安定な時期は先読みを一時的に中断すれば、無駄な電力の消費を抑制することができる。
 図3は図1のキャッシュメモリ1内のメモリセルアレイ2とローカルバッファ5の内部構成の一例を示すブロック図である。
 図3に示すように、メモリセルアレイ2は、第1タグ部11と、第1データ部12とを有する。第1タグ部11は、キャッシュメモリ1内のデータに対応するアドレスを格納する第1アドレス格納部13と、アクセス要求のあったアドレスがキャッシュメモリ1内のデータのアドレスと一致するか否かを比較する第1タグ比較部14とを有する。第1データ部12は、例えば複数のウェイに分けてデータを格納する。第1データ部12に格納されるデータは、このキャッシュメモリ1の低次メモリ(下位メモリ)に格納されているデータか、あるいは低次メモリに将来格納されるべきデータである。
 ローカルバッファ5も同様に、第2タグ部15と、第2データ部16とを有する。第2タグ部15は、ローカルバッファ5内のデータに対応するアドレスを格納する第2アドレス格納部17と、アクセス要求のあったアドレスがローカルバッファ5内のデータのアドレスと一致するか否かを比較する第2タグ比較部18とを有する。第2データ部16に格納されるデータは、キャッシュメモリ1にも格納されているデータである。
 図3において、プロセッサがあるアドレス[39:0]を指定して読み出し要求を行うと、そのアドレスの上位側ビット[39:18]が第1タグ部11内の第1タグ比較部14に入力されて、第1タグ部11内の第1アドレス格納部13に格納されているアドレスと一致するか否かが比較される。図3の例では、第1データ部12内には4つのウェイが設けられているため、第1タグ比較部14は、これらウェイのそれぞれに格納されたデータのアドレスと比較する。アドレスが一致すると、一致したウェイのデータがメモリセルアレイ2から読み出されることになる。図3の例では、一つのウェイのデータビット数は512ビットであり、一つのアドレスで512ビットのデータが出力される。
 また、アクセス要求のあったアドレスは、ローカルバッファ5内の第2タグ部15にも入力されて、第2タグ比較部18にて、ローカルバッファ5内のデータに対応するアドレスと比較される。そして、両アドレスが一致する場合は、ローカルバッファ5内の対応データが読み出される。
 ローカルバッファ5は、キャッシュメモリ1内のメモリセルアレイ2よりも動作速度が速いため、ローカルバッファ5から読み出されたデータは、メモリセルアレイ2から読み出されたデータよりも優先して、プロセッサに伝送される。
 一方、アクセス要求のあったアドレスがローカルバッファ5内のアドレスと一致しなかった場合、すなわちローカルバッファ5にヒットしなかった場合、アクセス要求のあったアドレスの例えば次のアドレスのデータがキャッシュメモリ1から読み出されて、ローカルバッファ5に格納される。
 図4はキャッシュコントローラ6の処理動作の一例を示すフローチャートである。まず、プロセッサからのアクセス要求を受け取る(ステップS1)。この場合のアクセス要求は、あるアドレスに対する読み出し要求である。
 次に、このアドレスのデータがローカルバッファ5に格納されているか否かを判定する(ステップS2)。もし、格納されていれば、ヒットしたと判断して、ローカルバッファ5から対応データを読み出して、プロセッサに伝送する(ステップS3)。この場合、キャッシュメモリ1から読み出すよりも、高速のデータ読み出しが実現される。
 上述したステップS2で、ローカルバッファ5に格納されていないと判定されると、キャッシュメモリ1内のメモリセルアレイ2に対してアクセス要求を行う(ステップS4)。次に、アクセス要求のあったアドレスが第1タグ比較部14で一致したか否かを判定し(ステップS5)、一致した場合は、メモリセルアレイ2にヒットしたと判断して、メモリセルアレイ2から対応データを読み出すとともに(ステップS6)、アクセス要求のあったアドレスの例えば次のアドレスのデータをメモリセルアレイ2から読み出して、ローカルバッファ5に格納する(ステップS7)。
 一方、上述したステップS5で、一致しないと判定されると、低次メモリ(下位メモリ)に対してアクセス要求を行う(ステップS8)。
 メモリセルアレイ2がMRAMセルで構成されている場合、MRAMセル内の磁気抵抗効果素子は、記憶するデータが0か1かによって、磁気抵抗効果素子の抵抗値が変化する。磁気抵抗効果素子の抵抗値を検出する手法として、磁気抵抗効果素子に流れる電流を検出する電流読み出し方式と、磁気抵抗効果素子に直列接続されたキャパシタの一端側電圧を検出する電圧読み出し方式とがある。
 図5(a)は電流読み出し方式の概略を説明する図、図5(b)は電流読み出し方式における磁気抵抗効果素子AP,Pに流れる電流波形を示す図、図5(c)は電圧読み出し方式の概略を説明する図、図5(d)は電圧読み出し方式における磁気抵抗効果素子AP,Pに流れる電流波形を示す図である。これらの図において、磁気抵抗効果素子APと磁気抵抗効果素子Pの一方は高抵抗で、他方は低抵抗である。
 図5(b)と図5(d)を比較すればわかるように、電圧読み出し方式では、磁気抵抗効果素子AP,Pに流れる電流に応じた電荷が、磁気抵抗効果素子AP,Pに直列接続されたキャパシタC1,C2に蓄積される。このため、磁気抵抗効果素子AP,Pの抵抗値によりキャパシタC1,C2に蓄積された電荷量が変化し、それに応じてキャパシタC1,C2の一端側の電圧が変化する。よって、キャパシタC1,C2の一端側の電圧を検出することで、磁気抵抗効果素子AP,Pの抵抗値を把握できる。センスアンプ4は、各ビット線に接続されたキャパシタC1,C2の一端側電圧を順に読み出すことで、各データビットの値を正しく検出できる。ここで、キャパシタC1,C2は、導電材料を用いて意図的に作製されたキャパシタと、寄生容量や配線容量等により間接的に形成されたキャパシタとの少なくとも一方を含んでいる。したがって、例えば、意図的に作製されたキャパシタを用いずに配線によるキャパシタンスを用いることも可能である。
 電流読み出し方式の場合、磁気抵抗効果素子AP,Pを瞬間的に流れる電流を検出する必要があるため、図5(b)に示すように、2つの磁気抵抗効果素子AP,P間を流れる電流差が小さく、読み出しマージンが狭いのに対し、電圧読み出し方式の場合、キャパシタC1,C2にて電流を積算した結果を電圧として読み出すため、図5(d)に示すように読み出しマージンを拡大でき、より信頼性の高いデータ読み出しを実現できる。
 MRAMセルを含むメモリセルアレイ2の構成として、1T-1Rタイプと2T-2Rタイプがある。図6(a)は1T-1Rタイプの一例を示す回路図、図6(b)は2T-2Rタイプの一例を示す回路図である。
 図6(a)の回路は、磁気抵抗効果素子APを有するMRAMセル31と、参照抵抗Refを有する参照セル32と、MRAMセル31からの電流が流れるビット線上に設けられるトランスファゲート33と、このトランスファゲート33の一端側に接続されるローカル容量(第1の容量)CBLと、トランスファゲート33の他端側に接続されるグローバル容量(第2の容量)CGLと、参照セル32からの電流が流れる参照ビット線上に設けられるトランスファゲート34と、このトランスファゲート34の一端側に接続されるローカル容量CREFと、トランスファゲート34の他端側に接続されるグローバル容量C/GLと、ビット線および参照ビット線に接続されるセンスアンプ4とを有する。
 図6(b)の回路は、互いに異なる抵抗値の磁気抵抗効果素子AP,Pを有する一対のMRAMセル31,35と、各MRAMセル31,35からの電流が流れる一対のビット線上に設けられる一対のトランスファゲート33,34と、これら一対のトランスファゲート33,34の一端側に接続されるローカル容量CBL、C/BLと、これら一対のトランスファゲート33,34の他端側に接続されるグローバル容量CGL、C/GLと、一対のビット線に接続されるセンスアンプ4とを有する。
 図6(a)の1T-1Rタイプでは、一つのMRAMセル31内の磁気抵抗効果素子APを流れる電流に応じた電荷を蓄積するローカル容量CBLとグローバル容量CGLを合成したキャパシタの一端側電圧を、参照セル32内の参照抵抗Refを流れる電流に応じた電荷を蓄積するローカル容量Crefとグローバル容量C/GLを合成したキャパシタの一端側電圧と比較して、データ0と1を決定する。参照抵抗Refは、磁気抵抗効果素子APが取り得る高抵抗と低抵抗との中間の抵抗値を有するため、磁気抵抗効果素子APの抵抗値が参照抵抗の抵抗値より大きいか小さいかで、データ0または1が決まる。
 図6(b)の2T-2Rタイプでは、一対のビット線のそれぞれに接続されたMRAMセル31,35内の磁気抵抗効果素子AP,Pの抵抗値を互いに逆にしておき、それぞれの磁気抵抗効果素子AP,Pを流れる電流に応じた電荷を蓄積する各キャパシタの一端側電圧を互いに比較して、データ0と1を決定する。このように、2T-2Rタイプでは、一対のビット線を用いて差動でデータを読み出すため、1T-1Rタイプよりも高速にデータを読み出すことができる。
 図5(b)に示したキャパシタC1,C2は、図6(a)および図6(b)のローカル容量CBL、C/BLとグローバル容量CGL、C/GLを合成した容量である。ローカル容量CBL、C/BLは、ビット線ごとに設けられる寄生容量や個別の容量を合算した容量である。これに対して、グローバル容量CGL、C/GLは、図6(a)および図6(b)では、各ビット線ごとに設けられるように図示されているが、実際には、複数のビット線で共用される容量である。
 図7は、1T-1Rタイプにおけるビット線、カラム選択回路およびグローバル容量の周辺回路図であり、1バイト分の回路構成を示している。図7の回路は、ソース線を選択するトランスファゲート群41と、ビット線を選択するトランスファゲート群42,43とを有し、これらはカラム選択回路に相当する。ビット線を選択するトランスファゲート群42,43は、プロセッサから読み出し要求のあったアドレスに対応するビット線を選択するトランスファゲート群(第1ビット線選択部)42と、先読みをするアドレスに対応するトランスファゲート群(第2ビット線選択部)43とを含んでおり、トランスファゲート群42,43の他端側には、それぞれグローバル容量CGL1、CGL2が接続されている。グローバル容量CGL1、CGL2は、複数のビット線で共有されるものであり、選択されたビット線に付加される。MRAMセル内の磁気抵抗効果素子を流れる電流による電荷が、各ソース線またはビット線ごとに設けられるローカル容量とグローバル容量を合算したキャパシタに蓄積(充電又は放電)される。
 カラム選択信号CSL1は、プロセッサから読み出し要求のあったアドレスに対応するビット線を選択するトランスファゲート群42のうち一つを選択する。カラム選択信号CSL2は、先読みをするアドレスに対応するビット線を選択するトランスファゲート群43のうち一つを選択する。
 カラム選択信号CSL1で選択したビット線の電圧は、センスイネーブル信号SE1がハイのときにセンスアンプ4にてセンスされる。また、カラム選択信号CSL2で選択したビット線の電圧は、センスイネーブル信号SE2がハイのときにセンスアンプ4にてセンスされる。
 図8は図7の回路を用いてキャッシュメモリ1の読み出しとローカルバッファ5を用いた先読みを行う場合のタイミング図である。プロセッサがあるアドレスを指定して読み出し要求を行うと、まず、カラム選択信号CS1をハイにし(時刻t1)、次に、指定されたアドレスに対応するワード線をハイにする(時刻t2)。これにより、該当するアドレスに対応するMRAMセルの磁気抵抗効果素子に電流が流れ始める(時刻t3)。
 その後、センスイネーブル信号SE1をハイにすると、センスアンプ4からデータが出力される(時刻t4~t5)。このデータは、プロセッサに転送される。
 次に、キャッシュコントローラ6は、プロセッサが指定したアドレスの次のアドレスを先読みするために、カラム選択信号CSL2をハイにし(時刻t6)、次に、このアドレスに対応するワード線をハイにする(時刻t7)。これにより、該当するアドレスに対応するMRAMセルの磁気抵抗効果素子に電流が流れ始める(時刻t8)。
 その後、センスイネーブル信号SE2をハイにすると、センスアンプ4からデータが出力される(時刻t9~t10)。このデータは、ローカルバッファ5に転送される。
 図8のタイミング図では、キャッシュメモリ1からデータを読み出した後に、先読み用に再度キャッシュメモリ1からデータを読み出す場合、それぞれ別個にワード線をハイにしている。ワード線をロウからハイにするには、電力を消費することから、できれば一回のハイ動作で、先読みまで済ませるのが望ましい。そのためには、プロセッサからアクセス要求のあったアドレスと先読みをするアドレスとが同じワード線上にある必要がある。
 キャッシュラインの単位が512ビットの場合、一つのワード線には、例えば512×4=2048ビット分のメモリセルが接続されている。よって、512ビット単位でデータの読み出しをする場合は、同じワード線に接続された残り1~3単位分のデータを先読みすることができる。
 図9はワード線の一回のハイ動作でキャッシュメモリ1からのデータ読み出しと先読みとを行う場合のタイミング図である。図9では、プロセッサから読み出し要求のあったアドレスに対応するワード線と、先読みをするアドレスに対応するワード線とが同じ場合の例を示している。
 図9の時刻t1で、カラム選択信号CS1,CS2をともにハイにし、対応するビット線に対して予め読み出しのための放電を行っておく(リセット)。次に、時刻t2で、対応するワード線をハイにする。これにより、プロセッサから読み出し要求のあったアドレスに対応する磁気抵抗効果素子と、先読みをするアドレスに対応する磁気抵抗効果素子とに、ともに電流が流れ始め、対応するビット線に対して充電が行われる(時刻t3)。なお、対応するビット線に対して予め読み出しのための充電を行っておき、磁気抵抗効果素子に電流を流すことにより当該ビット線からの放電が行われるようにしても良い。
 その後、時刻t4で、センスイネーブル信号SE1をハイにして、プロセッサから読み出し要求のあったアドレスに対応するビット線の電圧をセンスアンプ4に取り込んで、データを出力する。このデータは、プロセッサに転送される。
 引き続いて、時刻t5で、センスイネーブル信号SE2をハイにして、先読みをするアドレスに対応するビット線の電圧をセンスアンプ4に取り込んで、データを出力する。このデータは、ローカルバッファ5に転送される。
 このように、プロセッサから読み出し要求のあったアドレスと先読みをするアドレスとが同じワード線上にある場合は、ワード線を1回だけハイにすることで、これら2つのアドレスのデータを連続して読み出すことができ、ワード線を駆動する回数を減らせることから、消費電力の削減できるとともに、連続読み出しによるアクセスの高速化が図れる。
また、ワード線が同じということは、アドレスをデコードしてワード線選択用の信号を生成するロウデコーダ3のデコード処理の回数も削減できることを意味し、ロウデコーダ3の消費電力も削減できる。
 図10はプロセッサによる読み出し要求の1回当たりの消費電力の内訳を示す図である。消費電力は、1)行選択回路すなわちロウデコーダ3の消費電力とワード線駆動のための消費電力、2)ビット線の駆動とセンスアンプ4の消費電力、3)入出力バッファの消費電力、4)サブアレイを駆動するための消費電力とを含んでいる。ここで、サブアレイとは、キャッシュメモリ1内の上述した1)~3)の回路ブロック以外の回路ブロックを指す。
 プロセッサから読み出し要求のあったアドレスと先読みするアドレスとを同一ワード線上に配置して、ワード線の駆動回数とロウデコーダ3のデコード回数を削減することで、図10の1)の電力を削減でき、これにより、先読みに必要な電力の約30%近くを削減できることになる。
 上述した実施形態では、キャッシュメモリ1の内部構成を説明したが、キャッシュメモリ1を実装したチップとプロセッサを実装したチップとをTSV(Through Silicon Via)で接続して3次元積層化を行ってもよい。
 図11は3次元積層化の一例を示す概略的なレイアウト図である。図11では、図1のキャッシュメモリ1内の各部が実装されたチップ51と、プロセッサおよびその周辺回路が実装されたチップ52とをTSV53、54で接続している。チップ52には、マルチコア構成のプロセッサ55と、命令キャッシュおよびデータキャッシュを有する1次キャッシュメモリ56と、メモリコントローラ57と、ストリーミングバッファ58とが実装されている。ここで、ストリーミングバッファ58は、プリフェッチしたデータを格納するバッファである。
 これら2つのチップ51,52のどちらを上方に配置してもよい。また、各チップ内の一部の回路ブロックを、他のチップに実装しても構わない。
 このように、本実施形態では、キャッシュメモリ1とは別個に、小容量で高速のローカルバッファ5を設けて、プロセッサからキャッシュメモリ1に対して読み出し要求を行うと、その読み出し要求をしたアドレスとは異なるアドレスのデータをキャッシュメモリ1から先読みして、ローカルバッファ5に格納するため、その後にプロセッサから読み出し要求があったときに、その読み出し要求があったアドレスがローカルバッファ5内に格納されていれば、キャッシュメモリ1よりも高速にデータの読み出しが可能となる。
 また、プロセッサから読み出し要求のあったアドレスと、先読みするアドレスとが同じワード線上に位置するようにすることで、ワード線の駆動回数とロウデコーダ3のデコード回数とを増やさずに先読みを行うことができ、消費電力の削減を図れる。
 本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。

Claims (14)

  1.  キャッシュメモリの特定アドレスに対する読み出し要求があった場合に、前記特定アドレスとは異なるアドレスのデータを前記キャッシュメモリから読み出して格納するローカルバッファと、
     前記キャッシュメモリおよび前記ローカルバッファに対するアクセスを制御する制御部と、を備え、
     前記ローカルバッファは、前記キャッシュメモリよりも記憶容量が小さくて高速アクセスが可能で、かつ、前記キャッシュメモリに記憶されているデータの一部を重複して記憶するメモリ制御回路。
  2.  前記キャッシュメモリは、磁気抵抗効果素子の抵抗変化をデータの記憶に利用する複数のMRAM(Magnetoresistive RAM)セルを含んでおり、
     前記磁気抵抗効果素子に直列接続されるキャパシタと、
     前記磁気抵抗効果素子に流れる電流に応じて変化する前記キャパシタの両電極間の電圧により、前記データの論理を検出するセンスアンプと、を備える請求項1に記載のメモリ制御回路。
  3.  前記制御部は、前記特定アドレスに対応するMRAMセル内の磁気抵抗効果素子と前記異なるアドレスに対応するMRAMセル内の磁気抵抗効果素子とに同時に電流を流して、それぞれ対応する前記キャパシタを充電又は放電する請求項2に記載のメモリ制御回路。
  4.  前記制御部は、前記特定アドレスに対応する前記キャパシタの両電極間電圧を読み出すためのイネーブル信号と、前記異なるアドレスのそれぞれに対応する前記キャパシタの両電極間電圧を順に読み出すための1以上のイネーブル信号とを、順に前記センスアンプに送って、順にデータを読み出す請求項3に記載のメモリ制御回路。
  5.  前記キャパシタは、
     ビット線ごとに設けられる第1の容量と、
     複数のビット線ごとに設けられ、前記複数のビット線の中から選択されたビット線に接続される第2の容量と、を有する請求項2に記載のメモリ制御回路。
  6.  第1方向に配列された複数のMRAMセルごとに設けられ、前記第1方向に交差する第2方向に配列される複数のビット線と、
     前記第2方向に配列される複数のMRAMセルごとに設けられ、前記第1方向に配列される複数のワード線と、
     前記複数のビット線の中から一つを選択するビット線選択回路と、を備え、
     前記第2の容量は、前記ビット線選択回路で選択されたビット線に付加される請求項5に記載のメモリ制御回路。
  7.  前記異なるアドレスは、前記特定アドレスに対応するワード線と同じワード線にて選択されるアドレスを含み、
     前記ビット線選択回路は、
     前記特定アドレスに対応するビット線を選択する第1ビット線選択部と、
     前記異なるアドレスのそれぞれに対応するビット線を選択する1以上の第2ビット線選択部と、を有し、
     前記第2の容量は、前記第1ビット線選択部と前記1以上の第2ビット線選択部とのそれぞれごとに設けられる請求項5に記載のメモリ制御回路。
  8.  前記制御部は、前記特定のアドレス以外に、プロセッサから読み出し要求アドレスを受けている場合は、前記異なるアドレスのデータを前記キャッシュメモリから読み出して前記ローカルバッファに格納する処理を一時的に中止する請求項1に記載のメモリ制御回路。
  9.  前記制御部は、プロセッサにより読み出し要求されたアドレスの履歴情報に基づいて、前記異なるアドレスを決定する請求項1に記載のメモリ制御回路。
  10.  前記制御部は、前記異なるアドレスに対応するデータを前記ローカルバッファに格納した後に、プロセッサが前記異なるアドレスに対する読み出し要求を行った確率が所定の閾値よりも低い場合には、前記異なるアドレスのデータを前記キャッシュメモリから読み出して前記ローカルバッファに格納する処理を一時的に中止する請求項1に記載のメモリ制御回路。
  11.  前記制御部は、前記異なるアドレスを設定するアルゴリズムを事後的に変更可能なようにFPGA(Field Programmable Gate Array)を備える請求項1に記載のメモリ制御回路。
  12.  前記ローカルバッファに格納されるデータに対応する前記異なるアドレスは、少なくとも前記特定アドレスの次のアドレスを含む請求項1に記載のメモリ制御回路。
  13.  前記ローカルバッファは、前記キャッシュメモリのセル構造と同じセル構造を有する請求項1に記載のメモリ制御回路。
  14.  低次のメモリよりもアクセス速度が高速で、かつ前記低次のメモリに格納されるべきデータの少なくとも一部を格納するキャッシュアレイ部と、
     前記キャッシュアレイ部の特定アドレスに対する読み出し要求があった場合に、前記特定アドレスとは異なるアドレスのデータを前記キャッシュアレイ部から読み出して格納するローカルバッファと、
     前記キャッシュアレイ部および前記ローカルバッファに対するアクセスを制御する制御部と、を備え、
     前記ローカルバッファは、前記キャッシュアレイ部よりも記憶容量が小さくて高速アクセスが可能で、かつ、前記キャッシュアレイ部に記憶されているデータの一部を重複して記憶するキャッシュメモリ。
PCT/JP2014/073634 2013-09-06 2014-09-08 メモリ制御回路およびキャッシュメモリ WO2015034082A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/059,842 US9786342B2 (en) 2013-09-06 2016-03-03 Memory control circuit and cache memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-185695 2013-09-06
JP2013185695A JP6130758B2 (ja) 2013-09-06 2013-09-06 メモリ制御回路およびキャッシュメモリ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/059,842 Continuation US9786342B2 (en) 2013-09-06 2016-03-03 Memory control circuit and cache memory

Publications (1)

Publication Number Publication Date
WO2015034082A1 true WO2015034082A1 (ja) 2015-03-12

Family

ID=52628539

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/073634 WO2015034082A1 (ja) 2013-09-06 2014-09-08 メモリ制御回路およびキャッシュメモリ

Country Status (3)

Country Link
US (1) US9786342B2 (ja)
JP (1) JP6130758B2 (ja)
WO (1) WO2015034082A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3179375A1 (en) * 2015-12-08 2017-06-14 VIA Alliance Semiconductor Co., Ltd. Processor with programmable prefetcher
CN107844430A (zh) * 2016-09-20 2018-03-27 东芝存储器株式会社 存储器系统和处理器系统
JP2022544948A (ja) * 2019-08-14 2022-10-24 スーパーメム,アイエヌシー. コンピューティングメモリシステム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6627629B2 (ja) * 2016-04-14 2020-01-08 富士通株式会社 演算処理装置、および演算処理装置の制御方法
EP3316146B1 (en) * 2016-10-28 2020-07-22 VIA Alliance Semiconductor Co., Ltd. Processor with programmable prefetcher
US10067875B2 (en) * 2016-11-14 2018-09-04 Via Alliance Semiconductor Co., Ltd. Processor with instruction cache that performs zero clock retires
US10078581B2 (en) * 2016-11-14 2018-09-18 Via Alliance Semiconductor Co., Ltd. Processor with instruction cache that performs zero clock retires
KR20220002265A (ko) * 2019-02-16 2022-01-06 고쿠리츠다이가쿠호진 도호쿠다이가쿠 디바이스, 센서 노드, 액세스 콘트롤러, 데이터 전송 방법 및 마이크로 콘트롤러에서의 처리 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167520A (ja) * 1997-12-04 1999-06-22 Nec Corp プリフェッチ制御装置
JP2001101075A (ja) * 1999-09-28 2001-04-13 Hitachi Ltd ディスク記憶装置
JP2001331793A (ja) * 2000-05-22 2001-11-30 Fuji Xerox Co Ltd 画像処理装置及びキャッシュメモリ
JP2002163150A (ja) * 2000-11-28 2002-06-07 Toshiba Corp プロセッサ
JP2005084999A (ja) * 2003-09-09 2005-03-31 Seiko Epson Corp キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP2011192345A (ja) * 2010-03-15 2011-09-29 Fujitsu Ltd スピン注入型mram、並びにその書き込み方法及び読み出し方法
JP2012203487A (ja) * 2011-03-24 2012-10-22 Toshiba Corp キャッシュシステムおよび処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821238B2 (ja) * 1987-11-12 1996-03-04 三菱電機株式会社 半導体記憶装置
US5261066A (en) 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
JPH05196695A (ja) 1991-12-19 1993-08-06 Ando Electric Co Ltd Icテスタ用テストパターン発生メモリユニット
JP2918531B1 (ja) 1998-03-13 1999-07-12 三菱電機株式会社 キャッシュメモリ制御装置
US6415355B1 (en) 1998-05-11 2002-07-02 Kabushiki Kaisha Toshiba Combined disk array controller and cache control method for parity generation mode and data restoration mode
JPH11327796A (ja) * 1998-05-11 1999-11-30 Toshiba Corp ディスクアレイ制御装置及び同装置に適用されるキャッシュ制御方法
JP2001134439A (ja) 1999-11-05 2001-05-18 Seiko Epson Corp キャッシュ予測プリロード装置、マイクロコンピュータ及び電子機器
KR100373849B1 (ko) * 2000-03-13 2003-02-26 삼성전자주식회사 어소시어티브 캐시 메모리
JP4020573B2 (ja) * 2000-07-27 2007-12-12 富士通株式会社 磁性メモリデバイス、および磁性メモリデバイスにおけるデータ読み出し方法
JP3594081B2 (ja) * 2001-01-23 2004-11-24 日本電気株式会社 情報処理装置
US20050086435A1 (en) 2003-09-09 2005-04-21 Seiko Epson Corporation Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
JP2012014787A (ja) 2010-06-30 2012-01-19 Sony Corp 記憶装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167520A (ja) * 1997-12-04 1999-06-22 Nec Corp プリフェッチ制御装置
JP2001101075A (ja) * 1999-09-28 2001-04-13 Hitachi Ltd ディスク記憶装置
JP2001331793A (ja) * 2000-05-22 2001-11-30 Fuji Xerox Co Ltd 画像処理装置及びキャッシュメモリ
JP2002163150A (ja) * 2000-11-28 2002-06-07 Toshiba Corp プロセッサ
JP2005084999A (ja) * 2003-09-09 2005-03-31 Seiko Epson Corp キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP2011192345A (ja) * 2010-03-15 2011-09-29 Fujitsu Ltd スピン注入型mram、並びにその書き込み方法及び読み出し方法
JP2012203487A (ja) * 2011-03-24 2012-10-22 Toshiba Corp キャッシュシステムおよび処理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3179375A1 (en) * 2015-12-08 2017-06-14 VIA Alliance Semiconductor Co., Ltd. Processor with programmable prefetcher
CN108829615A (zh) * 2015-12-08 2018-11-16 上海兆芯集成电路有限公司 具有可编程预取器的处理器
CN108829615B (zh) * 2015-12-08 2020-12-15 上海兆芯集成电路有限公司 具有可编程预取器的处理器
CN107844430A (zh) * 2016-09-20 2018-03-27 东芝存储器株式会社 存储器系统和处理器系统
CN107844430B (zh) * 2016-09-20 2021-07-30 东芝存储器株式会社 存储器系统和处理器系统
JP2022544948A (ja) * 2019-08-14 2022-10-24 スーパーメム,アイエヌシー. コンピューティングメモリシステム

Also Published As

Publication number Publication date
US20160189761A1 (en) 2016-06-30
US9786342B2 (en) 2017-10-10
JP6130758B2 (ja) 2017-05-17
JP2015052940A (ja) 2015-03-19

Similar Documents

Publication Publication Date Title
JP6130758B2 (ja) メモリ制御回路およびキャッシュメモリ
US9552256B2 (en) Semiconductor memory device including non-volatile memory, cache memory, and computer system
US11107520B2 (en) Apparatuses and methods for shift decisions
JP5492324B1 (ja) プロセッサシステム
US20100153646A1 (en) Memory hierarchy with non-volatile filter and victim caches
US9575891B2 (en) Sidecar SRAM for high granularity in floor plan aspect ratio
US9786389B2 (en) Memory system
US10496546B2 (en) Cache memory and processor system
US11656777B2 (en) Memory system and operating method thereof
US20230221895A1 (en) Memory system and operating method of memory system storing doorbell information in the buffer memory
WO2020231604A1 (en) Processor-side transaction context memory interface systems and methods
US11474726B2 (en) Memory system, memory controller, and operation method thereof
CN111949567A (zh) 存储器侧事务背景存储器接口系统及方法
US11899584B2 (en) System setting operating frequency of random access memory based on cache hit ratio and operating method thereof
US11461232B2 (en) Memory system and operating method of memory system
US11416401B2 (en) Memory system and operating method thereof
US11755248B2 (en) Memory system and operating method of memory system
US20230205687A1 (en) Controller and operating method thereof
US11599476B2 (en) Memory system and operating method thereof
US11675712B2 (en) Memory system, memory controller, and operation method of memory system
US20230195193A1 (en) Controller executing activation mode or low power mode based on state of multiple sub-circuits and operating method thereof
US20230195343A1 (en) Memory system for executing a target operation based on a program state of a super memory block and operating method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14842382

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14842382

Country of ref document: EP

Kind code of ref document: A1