WO2014189344A1 - 캐시 장치 및 캐시 운영 방법 - Google Patents

캐시 장치 및 캐시 운영 방법 Download PDF

Info

Publication number
WO2014189344A1
WO2014189344A1 PCT/KR2014/004679 KR2014004679W WO2014189344A1 WO 2014189344 A1 WO2014189344 A1 WO 2014189344A1 KR 2014004679 W KR2014004679 W KR 2014004679W WO 2014189344 A1 WO2014189344 A1 WO 2014189344A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
untrusted
data
trusted
replacement
Prior art date
Application number
PCT/KR2014/004679
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 WO2014189344A1 publication Critical patent/WO2014189344A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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
    • 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
    • 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

  • the present invention relates to a cache device and a cache operating method.
  • Recent high-performance processing devices as shown in Figure 1, as well as employing a number of cores (core), with a large number of layers of large cache (cache) has been evolving into a trend that each core share some .
  • FIG. 1 illustrates an example of a processing apparatus including an existing cache.
  • the first is Oracle's Oracle Ultasparc-T3, and the second is Intel's Ivy Bridge. They explicitly or implicitly show four L2 caches allocated per core, and one shared L3 cache explicitly.
  • such large multi-layer caches typically occupy more than 30-35% of the processing device area.
  • Voltage regulation can lower the power consumed by the cache, but too low a voltage can cause data reliability issues.
  • SRAM which is widely used in recent caches, has a data reliability problem that the stored data may change in writing, maintaining, or reading data due to process variations, particle strikes, and the like. .
  • the process difference shows a large reliability difference depending on the voltage. The probability that one SRAM bit loses its value increases in proportion to the exponential function of the input voltage, and when more than one value is changed, the value of the cache cannot be reliably used.
  • Maintaining the reliability of the cache is very important because the cache included in the processing device greatly affects the overall system performance. Therefore, there is a need for a method that can lower the power consumed by the cache while maintaining the reliability of the data stored in the cache memory.
  • Korean Patent No. 10-02540800000 (“Power Estimator of a Microprocessor”) discloses a configuration for improving the evaluation accuracy of power consumption at an instruction level in a microprocessor having a plurality of memories.
  • Korean Patent No. 10-07949730000 discloses a tag memory RAM unit and a cache memory RAM unit that can switch between a normal state and a low power consumption state.
  • the present invention has been made to solve the above-described problem, and an object thereof is to provide a cache device and a cache operating method which ensures data reliability and low power consumption.
  • a lower voltage is supplied than a trusted cache.
  • the data consumption is guaranteed while reducing the power consumption.
  • the cache according to an embodiment of the present invention may utilize the data redundancy of the vertical memory layer and the horizontal data redundancy on the multi-core, thereby reducing the power consumption of the cache while ensuring the reliability of the cache data. That is, in the case of clean data, when an error occurs, the data can be read and restored from another memory that duplicately stores the data, so that the reliability of the data can be guaranteed even if the voltage of the cache area where the clean data is stored is reduced. To utilize.
  • the cache divides the cache memory into two groups, stores data by dividing them according to states, and lowers the voltage of the cache storing the clean data below the existing minimum supply voltage, thereby reducing power in the system.
  • the dynamic / static supply voltages of high consumption caches can be significantly reduced.
  • FIG. 1 illustrates an example of a processing apparatus including an existing cache.
  • FIG. 2 illustrates a structure of a cache device according to an embodiment of the present invention.
  • FIG. 3 illustrates a detailed structure of a cache device according to an embodiment of the present invention.
  • 4A shows an example of a power selection switch implementation when each way of the cache is implemented in one SRAM bank.
  • 4B shows an example of a method of applying a different voltage to each way in an SRAM implemented by each bit (BIT) of the cache being interleaved.
  • FIG. 5 shows an example of a conventional PLRU tree.
  • FIG. 6 illustrates an embodiment of a dual PLRU tree in accordance with one embodiment of the present invention.
  • FIG. 7 illustrates a reliability control unit according to an embodiment of the present invention.
  • FIG. 8 to 10 illustrate a method of processing a dirty block in a process of changing a trusted cache into an untrusted cache during cache ratio adjustment according to an embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating a cache operating method according to an embodiment of the present invention.
  • Figure 12 illustrates the performance of the cache management method according to an embodiment of the present invention.
  • FIG. 2 illustrates a structure of a cache device according to an embodiment of the present invention.
  • 3 illustrates a detailed structure of a cache device according to an embodiment of the present invention.
  • the cache device 10 may duplicately store data with another cache 10 or a lower memory.
  • Processing devices that use the cache device 10 use hierarchical memory schemes and multi-core structures. Such a processing device may also be configured as a multiprocessor system in which several processing devices are used. Due to this structure, data redundancy exists in a system in which the cache device 10 according to an embodiment of the present invention is used.
  • dirty data data whose value is changed by a processing device
  • clean data data whose value is not changed
  • a lower layer in a memory layer has a higher layer. I always have data.
  • main memory duplicates all clean data in the cache.
  • the same data may be shared by multiple cores or multiple processors, and the shared data is duplicated in the cache of each core or each processing device.
  • the cache device 10 utilizes the data redundancy of the vertical memory layer and horizontal data redundancy on the multi-core, thereby reducing the power consumption of the cache while ensuring the reliability of the cache data. That is, in the case of clean data, when an error occurs, the data can be read and recovered from another memory (for example, a lower layer of memory or a cache of another core), so even if the voltage of the cache area where the clean data is stored is reduced, Reliability can be guaranteed.
  • Prior art has focused on improving the reliability of the cache itself, such as adding error correction codes to the cache or including redundant data to ensure the reliability of the cache data.
  • the embodiment of the present invention can efficiently solve the problem even if the problem of lowering the reliability of the cache occurs.
  • embodiments of the present invention reduce data reliability degradation caused by lowering the supply voltage by utilizing data redundancy, thereby reducing the power consumption of the cache.
  • the cache apparatus 10 solves the problem of the prior art for providing cache reliability by using an error detection technique with low overhead for clean data.
  • the error correction technique employed by conventional caches often required the lowest applied voltage to be maintained at a high level due to the overhead required for multiple error protection even though the error does not occur frequently.
  • the cache apparatus 10 according to an embodiment of the present invention uses an error correction technique and an error detection technique having a lower overhead than the error correction technique, thereby maintaining a high level of protection by using only an error correction technique. This adds to the added burden and solves the problem of being unable to bring the voltage below a certain level.
  • the cache device 10 is a cache area (hereinafter referred to as "trust cache 102") and clean for storing dirty data And a cache block 100 which is divided and operated as a cache area (hereinafter referred to as an untrusted cache 104) for storing data.
  • the cache device 10 may include a power supply unit 200, a replacement controller 300, a reliability controller 400, and a ratio controller 500 for controlling the cache block 100.
  • cache block 100 refers to cache memory, that is, a storage that stores cache data.
  • the cache block 100 may be implemented using SRAM, but there is no limitation on the type of memory for implementing the cache block 100.
  • a 'block' other than the cache block 100 refers to a data unit of the cache memory or data stored or to be stored in the block. Whether the cache data is clean or dirty may be determined by dirty bits present in the cache data.
  • the cache block 100 may be configured to include several ways.
  • trusted cache 102 and untrusted cache 104 may be allocated on a per-way basis.
  • four ways may be divided into a trust cache 102 and four ways may be operated as an untrusted cache 104.
  • this is for illustrative purposes, and the configuration of the cache block 100 is not limited thereto.
  • the power supply 200 may supply a lower voltage to the untrusted cache 104 than the trust cache 102.
  • the power supply unit 200 may supply the trusted cache 102 with the lowest applied voltage Vcc_MIN to guarantee the reliability of the cache data, and supply the untrusted cache 104 with a voltage lower than the lowest applied voltage. Can be.
  • untrusted cache 104 may be comprised of smaller memory cells than trust cache 102.
  • SRAM can adjust its reliability based on the size of the cell, which requires a relatively small area for smaller cells, but is less reliable and more stable for larger cells.
  • the cache device 10 having differential reliability may be implemented, which may reduce power as well as area.
  • the reliability of the cache data is guaranteed. It must be stored in a trust cache 102 that is supplied with the lowest applied voltage that it can.
  • clean data includes another memory that stores redundant data, such as a lower memory or a cache of another core, as described above, the clean data can be easily recovered even when an error such as a change in data value occurs. Even if a voltage lower than the lowest applied voltage that can guarantee reliability is stored in the untrusted cache 104, cache data reliability can be easily provided by reading and restoring data from another memory.
  • the cache device 10 may be generated by supplying a cache way storing clean data, that is, a voltage lower than the existing lowest supply voltage to the untrusted cache 104. Data corruption can be thought of as simply a cache miss.
  • the cache apparatus 10 does not need a separate operation for restoring data, thereby efficiently providing cache data reliability.
  • data stored in the trust cache 102 is detected using an error correcting code (ECC) to detect an error occurrence and correct the error, and the untrusted cache 104
  • ECC error correcting code
  • EDC error detection code
  • data that is redundantly stored in a lower layer of memory or in a cache of another core may be used instead. In this case, using the redundant data stored in the memory of the lower layer instead may be performed simply by treating the cache miss as described above.
  • the cache device 10 shares an error correction code and an error detection code by sharing one storage and writes the error correction code according to the state of data stored in the cache device 10. Can be used to determine whether to use the error detection code.
  • the cache device 10 can use the error detection code together without significantly changing a circuit for using the error correction code of the cache, and the trusted cache Even when the ratio between the 102 and the untrusted cache 104 is different, one space may record an error correction code or an error detection code, and thus may operate without a problem, thereby providing flexibility.
  • the cache device 10 uses an integrated replacement policy for the trusted cache 102 and the untrusted cache 104, and uses one dual PLRU tree. Find the Victim. Details will be described later.
  • the cache device 10 increases the number of trusted cache replacement victims or the number of untrusted cache replacement victims whenever a replacement victim occurs.
  • the cache apparatus 10 may generate a cache cache 10 based on the number of trusted cache replacement victims or the number of untrusted cache replacement victims each time the increase rate of the cache replacement victims and the untrusted cache replacement victims becomes equal to or greater than a threshold. ) And the ratio of untrusted cache 104 can be dynamically adjusted.
  • the cache device 10 allocates more cache areas than the untrusted cache 104 to the untrusted cache 104 and starts an operation, and then the number of trusted cache replacement victims has a predetermined threshold. Each time the value is exceeded, the trust cache 102 may be increased. Details will be described later.
  • the input block is divided into the trust cache 102 and the untrusted cache 104 of the cache block 100 and stored according to the state (M, O, S, E, I) do.
  • the cache block 100 may be implemented as an SRAM, and regions of the trust cache 102 and the untrusted cache 104 may be allocated for each way.
  • the state of the input block is as follows. Specifically, M (modified state) is a state in which the cache block is dirty and sole and should not be lost. Data in this state must be stored in trust cache 102.
  • O (owned state) is a state in which duplicate data exists, but write-back is required. Data in this state must be stored in trust cache 102.
  • the exclusive state (E) may be stored in the untrusted cache 104 because duplicate data exists in main memory. There is also the cost of accessing main memory.
  • the shared state (S) may be stored in the untrusted cache 104 because duplicate data exists in another cache or main memory.
  • An invalid state (I) is currently invalid.
  • the cache block may be dirty or clean, but the cache block may be discarded because it is not currently valid. That is, among valid data, M and O represent dirty data, E and S represent clean data, and I represents invalid data.
  • the data blocks are classified according to the above state and input or output to the trust cache 102 and the untrusted cache 104, and the error is corrected by the reliability control unit 400 using an error correction code or an error detection code. Or detected.
  • the reliability control unit 400 will be described in detail with reference to FIG. 7.
  • the first and second supply voltages different from each other are applied to the trusted cache 102 and the untrusted cache 104.
  • a way assigned to the untrusted cache 104 may be applied with a lower voltage than the way assigned to the trust cache 102.
  • the ratio controller 500 provides the power supply unit 200 with supply voltage information for each way.
  • the ratio controller 500 stores the number of untrusted cache replacement victims and the number of trusted cache replacement victims, respectively, based on the victim block information discarded by the trust cache 102 or the untrusted cache 104 by the replacement controller 300. And a clean counter 502 and a dirty counter 504. Each time the number of untrusted cache replacement victims or the number of trusted cache replacement victims exceeds a predetermined threshold, the trusted cache 102 and the untrusted cache 104 You can adjust the percentage of ways assigned to).
  • 4A and 4B illustrate a method of supplying different voltages to respective cache ways according to an embodiment of the present invention, respectively.
  • voltage scaling is a technique for dynamically adjusting the voltage of a circuit.
  • Cache memory is mainly implemented in SRAM, where the dynamic power of the SRAM decreases in proportion to the square function of the supply voltage, and the static power decreases in proportion to the exponential function of the voltage. Therefore, voltage scaling can be applied very effectively to lower the power of the SRAM cache.
  • Each way of the cache selects and uses a power line suitable for its reliability among two levels of power sources Vccmin and Vccmin- ⁇ applied to the circuit. Power selection of each way is possible by applying a signal to the programmable switch, regardless of what structure the cache is implemented in (eg bank interleaved or column interleaved).
  • 4A illustrates an example of a power selection switch implementation when each way of the cache is implemented in one SRAM bank.
  • FIG. 4B illustrates an example of a method of applying different voltages to each way in an SRAM implemented by interleaving each bit of the cache.
  • a method of supplying two different voltages to a cache may use a variety of methods (including commercially available techniques), and may use various methods independently of the present invention.
  • a DC / DC converter or a transistor inside an SRAM may be used to set an applied voltage.
  • FIG. 5 shows an example of a conventional PLRU tree
  • FIG. 6 shows an embodiment of a dual PLRU tree according to one embodiment of the invention.
  • the cache device 10 is not a separate replacement policy for the trust cache 102 and the untrusted cache 104, but an integrated replacement policy and one data. Can be managed using structures.
  • the replacement controller 300 may use the dual PLRU tree modified from the conventional PRU-LRU tree to determine the victim block to be replaced.
  • the conventional PLRU tree has a binary tree for each set, and each node of the tree points to the opposite side each time it is accessed, so that cache ways are used evenly. Doing.
  • the modified PLRU tree used by the cache device 10 according to an embodiment of the present invention is changed in a predetermined pattern as the ratio is changed so that the use of the way is evenly distributed.
  • the cache device 10 uses a data structure slightly modified from a conventional PLRU without having to additionally implement a separate storage and circuit for each zone according to the cache area division.
  • Trusted cache 102 and untrusted cache 104 can be integrated using a repository of.
  • a dual PLRU circuit may be implemented by adding two 9-bit counters and one comparator to a circuit for a conventional PLRU tree.
  • the trust cache stores tags and state information.
  • the replacement controller 300 of the cache apparatus 10 according to an exemplary embodiment will be described.
  • the embodiment of the figure is assumed to be an 8-way L2 cache.
  • the L2 cache device 10 When a block evicted from the upper cache L1 arrives, the L2 cache device 10 first checks the state of the data. Data in a clean state (E, S, or I) is stored in the trust cache 102, and data in a dirty state (M or O) is stored in the untrusted cache 104, where it is replaced with the corresponding block and trusted cache. There may be a replacement victim block kicked out of 102 or untrusted cache 104.
  • E, S, or I Data in a clean state
  • M or O dirty state
  • a tree-based PLRU is first described with reference to FIG. 5, and the PLRU uses a tree to find LRU blocks. Since 8-way cache was used in the embodiment, there are eight end nodes of the tree as shown.
  • each node in the tree determines the next node, and the end node that arrives is the victim to be kicked out.
  • the tree indicates that the fourth way is the victim block. Since the root node has a value of 1, it goes down to the child node on the left, and since that node's value is 0, it goes to the child node on the right.
  • the tree of FIG. 5 may be modified as shown in FIG. 6 to simultaneously perform replacement victim search of the trust cache 102 and the untrusted cache 104.
  • the ratio of trusted cache 102 to untrusted cache 104 may be dynamically adjusted as described above.
  • trusted cache 102 and untrusted cache 104 may be used.
  • the pattern can be configured to increase / decrease as symmetrically as possible.
  • the way (R, colored) used as the trust cache 102 and the way (U, unpainted) used as the untrusted cache 104 are RRUUUUUU (2: 6), in order from the first way, Assigning to the patterns of RRRUUUU (3: 5) and RRRRUUUU (4: 4) will result in an excessively high number of victims.
  • the trust cache 102 and the untrusted cache 104 are symmetric. To increase / decrease the number of replacement victims.
  • the table of FIG. 6 shows that if the ratio of trusted cache 102 and untrusted cache 104 changes, each way can be assigned using the pattern on the right side to match the ratio on the left side of the table.
  • the first row indicating that the ratio of trust cache 102 to untrusted cache 104 is 1: 7 indicates that only the first cache is allocated to the trust cache according to the pattern of RUUUUUU.
  • the ratio of the trust cache 102 and the untrusted cache 104 is 3: 5. Since the pattern at 3: 5 is RURURUUU, the way indicated by the end of the tree is also allocated to the trusted cache or the untrusted cache in the pattern of the RURURUUU.
  • the process of finding replacement victims is the same as the process in the PLRU tree of FIG. 5, with D: dirty and C: clean.
  • D dirty and C: clean.
  • C clean
  • the approach from the fifth to eighth way makes the root value 1 to point in the opposite direction, 4 Too many victims in the first way.
  • the fourth way is the only clean data storage way of the four ways on the left side of the route.
  • the way used as the trust cache 102 and the way used as the untrusted cache 104 are evenly mixed, thereby alleviating this problem.
  • the cache device 10 uses a balanced pattern to distinguish between the trusted cache 102 and the untrusted cache 104, and a dual PLRU tree that can effectively find replacement victims. By using, it is possible to solve the problem that the replacement victims in a particular way.
  • the replacement policy used by the cache device 10 and the data structure for performing the replacement policy are not limited thereto.
  • FIG. 7 illustrates a reliability control unit according to an embodiment of the present invention.
  • the reliability controller 400 may use an error correcting code (ECC) for dirty data and an error detection code (EDC) for clean data.
  • ECC error correcting code
  • EDC error detection code
  • An error correction code capable of detecting and correcting an error has a higher power consumption than an error detection code capable of only detecting an error, and thus, an untrusted cache 104 that does not need to be corrected for the reason described above.
  • the data may preferably use an error detection code instead of an error correction code.
  • the reliability control unit 400 detects an error occurrence and corrects an error using an error correction code for data stored in the trust cache 102, and untrusted.
  • the data stored in the cache 104 uses an error detection code to detect an error occurrence and, if an error occurrence is detected, generates an error notification signal so that correct data can be retrieved from another memory.
  • the error notification signal may be in the form of a cache miss signal.
  • the error correction code may be SECDED, DECTEC (2 error correct, 3 error detect), QECPED (4 error correct, 5 error detect), OECNED (8 error correct, 9 error detect), and the like.
  • the detection code a CRC or parity may be used.
  • the error correction code and the error detection code are recorded by sharing one storage, and it is determined whether to use the error correction code or the error detection code according to the state of the data.
  • the ECC / EDD calculator 410 may use the error detection code calculated by the ECC calculator 412 or the error correction code calculated by the EDC calculator 414 for the write data. It may be determined based on state information (eg, a dirty bit of data) of the data supplied to the calculator 410.
  • state information eg, a dirty bit of data
  • the stored error correction code or error detection code is compared with the newly calculated error correction code or error detection code. If it is a trust cache 102, an error correction code is calculated and the result of the comparison is used to determine whether to correct the data. If it is the untrusted cache 104, an error detection code is calculated, and the comparison result is used to determine whether to generate an error notification signal (e.g., a cache miss signal).
  • an error notification signal e.g., a cache miss signal
  • This configuration of the reliability control unit 400 can be implemented by efficiently modifying the error correction code circuit used in the existing cache without large changes.
  • the reliability control unit 400 may use an error correction code and an error detection code when a specific way is changed to a trust cache 102 or an untrusted cache 104. Can optionally be used.
  • FIG. 8 to 10 illustrate a method of processing a dirty block in a process of changing a trusted cache into an untrusted cache during cache ratio adjustment according to an embodiment of the present invention.
  • Way # 1, Way # 2, and Way # 3 are used as trust cache 102 and Way # 4 as untrusted cache 104.
  • the status bit 110 of each way indicates the state of the data.
  • the first set of status bits 110 of way # 3 indicates D as dirty data
  • the second set of status bits 110 of way # 3 indicates C as clean data.
  • the dirty state may be M, O, or E.
  • the second set of status bits 110 of way # 3 may be clean data because each set was not evenly used as way # 3 was previously changed from untrusted cache 104 to trusted cache 102.
  • FIGS. 9 and 10 illustrate two methods when the way # 3 of FIG. 8 is changed from the trust cache 102 to the untrusted cache 104 by the ratio adjuster 500. That is, FIGS. 9 and 10 illustrate a lower layer before changing to untrusted cache 104 to avoid losing data stored in trust cache 102 when changing from trust cache 102 to untrusted cache 104. Two embodiments of a method of writing back to a memory (eg, a main memory, hereinafter referred to as memory for convenience) are illustrated.
  • a memory eg, a main memory, hereinafter referred to as memory for convenience
  • the clean data is duplicated and stored in another memory such as a lower layer memory.
  • the first set of way # 3 of FIG. 8 represents dirty data, so it is sent to the memory write queue 150, written back to memory, and then the status bits. Shows that I changed to I. That is, FIG. 9 illustrates an embodiment in which dirty data of the way itself changed from the trust cache 102 to the untrusted cache 104 is exported to the memory.
  • the embodiment of FIG. 10 finds the LRU block in the first set of way # 1, way # 2, and way # 3, and exports the first set of way # 2, the corresponding LRU block, to memory instead. That is, since the LRU is found in all the ways allocated to the trust cache 102 of the set, the first set of the way # 2 is determined to be the LRU of the set. In this example, the dirty data stored in the first set of the way # 3, which is changed from the trusted cache 102 to the untrusted cache 104, is moved to the corresponding block. 10 is shown.
  • FIG. 11 is a flowchart illustrating a cache operating method according to an embodiment of the present invention.
  • a cache area (eg, a cache way) is divided into a trusted cache 102 and an untrusted cache 104 according to a predetermined ratio (S110).
  • the trusted cache 102 and the untrusted cache 104 may be distinguished according to an optimal ratio found by experimentation. That is, each application or several applications are executed by varying the ratio of the trust cache 102 and the untrusted cache 104, and find a ratio that is determined to be the most appropriate in the process.
  • the ratio may be maintained (a static method not performing the step S130 below).
  • the cache block 100 is divided into two groups, the cache miss may be increased and the performance may be degraded. Therefore, the performance ratio may be minimized by finding a ratio suitable for each application. Therefore, it may be desirable to find a ratio suitable for each application while executing the applications (a dynamic method of performing step S130 below).
  • the initial partitioning step S110 allocates more cache areas than the untrusted cache 104 to the untrusted cache 104, and then the dynamic ratio adjustment step S130 in operation. Accordingly, the trust cache 102 can be increased. This is because the untrusted cache 104 uses an error detection code with lower power consumption and lower overhead.
  • the trusted cache 102 and the untrusted cache 104 are distinguished and operated (S120).
  • data storage, power supply, and data reliability control are performed by dividing the trust cache 102 and the untrusted cache 104, and integrating when selecting data to be driven from the trust cache 102 or the untrusted cache 104.
  • Use replacement policies for example, using dual PLRU trees).
  • dirty data is stored in the trust cache 102
  • clean data is stored in the untrusted cache 104
  • a minimum applied voltage is stored in the trust cache 102 to ensure the reliability of the cache data. Supplies a voltage below the lowest applied voltage
  • trust cache 102 data detects and self-corrects an error using an error correction code
  • untrusted cache 104 data The detection code is used to detect an error, and when the error is detected, it is recovered using redundant data stored in another memory.
  • the ratio of the trusted cache 102 and the untrusted cache 104 is dynamically adjusted at every unit time (S130).
  • the unit time means that an increase rate of the number of trusted cache replacement victims or the number of untrusted cache replacement victims counted each time data is extracted from the trusted cache 102 or the untrusted cache 104 in step S120 is equal to or greater than a threshold. It means the point of becoming.
  • step S130 of dynamically adjusting the ratio may be omitted.
  • FIG 12 illustrates the performance of the cache management method according to an embodiment of the present invention.
  • the drawings are graphs of the results measured using various applications. From the graph, it can be concluded that the cache operating method according to an embodiment of the present invention can reduce the dynamic power by -15.8%, the static power by -12.0%, and the energy ⁇ delay by -12.8% when compared with the conventional lowest level. have.
  • the result is based on the voltage-reliability characteristics of a specific SRAM, which can show a big difference depending on the characteristics of the SRAM cell. The above results are very conservative for the reliability of the SRAM.
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may include both computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Communication media typically includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transmission mechanism, and includes any information delivery media.
  • a hardware system includes a processor, cache, memory, and one or more software applications and drivers related to the functions described above. can do.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 캐시에 있어, 더티(dirty) 데이터를 저장하는 신뢰 캐시; 및 클린(clean) 데이터를 저장하는 비신뢰 캐시;를 포함하되, 상기 캐시는 상기 신뢰 캐시와 상기 비신뢰 캐시에 기지정된 비율로 캐시 영역을 할당하여 동작을 시작하며, 상기 비신뢰 캐시는 상기 신뢰 캐시보다 낮은 전압이 공급되는 캐시를 제공한다.

Description

캐시 장치 및 캐시 운영 방법
본 발명은 캐시 장치 및 캐시 운영 방법에 관한 것이다.
최근의 고성능 프로세싱 장치는 도 1에 도시되어 있는 바와 같이, 여러 개의 코어(core)를 채용할 뿐 아니라, 여러 계층의 대용량 캐시(cache)를 구비하고 일부를 각 코어가 공유하는 추세로 발전하고 있다.
도 1은 기존의 캐시를 포함하는 프로세싱 장치의 예를 도시하고 있다.
첫번째 예는 오라클의 울트라스팍T3(Oracle Ultasparc-T3)이고, 두번째 예는 인텔의 아이비 브릿지(Intel Ivy Bridge)이다. 이들은 각 코어 당 할당된 4개의 L2 캐시를 명시적 또는 암시적으로 도시하고 있으며, 1개의 공유된 L3 캐시를 명시적으로 도시하고 있다.
도 1에서 볼 수 있는 바와 같이, 이러한 대용량 다계층 캐시는 프로세싱 장치 면적의 30~35%이상을 차지하는 것이 일반적이다. 면적이 큰 만큼 소모하는 전력의 비중도 높다.
전압 조정으로 캐시가 소모하는 전력을 낮출 수 있으나, 공급하는 전압을 지나치게 낮추면 데이터 신뢰도 문제가 발생한다. 예를 들어, 최근 캐시에 많이 사용되는 SRAM은 저장된 데이터가 공정 차이(process variation), 입자 충돌(particle strike) 등의 이유로 데이터를 쓰거나 유지하거나 읽는 과정에서 값이 변이될 수 있다는 데이터 신뢰도 문제를 갖는다. 특히 공정 차이는 전압에 따라 큰 신뢰성 차이를 보인다. 하나의 SRAM 비트(bit)가 값을 잃을 확률은 입력 전압의 지수 함수에 비례하여 증가하며, 어느 정도 이상의 값이 변하게 되면 해당 캐시의 값을 신뢰하여 사용할 수 없다.
따라서, 캐시의 데이터 신뢰성을 보장하기 위해서는 캐시의 신뢰성을 보장할 수 있는 최저 인가 전압(Vcc_MIN) 이상의 전압을 캐시에 공급하거나, 오류 발생시 정정할 수 있는 방법이 필요하다. 그러나 종래의 오류 정정 방법은 공간 및 시간 자원, 그리고 오류 정정에 드는 추가적인 전력 자원의 오버헤드로 인해 비효율적이라는 문제가 있다.
프로세싱 장치에 포함되는 캐시는 전체 시스템 성능에 큰 영향을 미치기 때문에, 캐시의 신뢰도 유지는 매우 중요하다. 그러므로, 캐시 메모리에 저장되는 데이터의 신뢰성을 유지하면서도 캐시가 소모하는 전력을 낮출 수 있는 방법이 필요하다.
이와 관련하여 한국등록특허 제10-02540800000호("마이크로프로세서의 파워 에스티메이터")에는 복수의 메모리를 구비한 마이크로프로세서에 있어서의 명령 레벨에서 소비 전력의 평가 정밀도를 향상시키는 구성이 개시되어 있다.
또한, 한국등록특허 제10-07949730000호("캐시 메모리 시스템")는 통상 상태와 저소비 전력 상태와의 전환이 가능한 태그 메모리 RAM부 및 캐시 메모리 RAM부가 개시되어 있다.
본 발명은 전술한 문제를 해결하기 위한 것으로서, 그 목적은 데이터 신뢰성을 보장하면서도 소모 전력이 낮은 캐시 장치 및 캐시 운영 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 제 1 측면에 따른 캐시 장치는, 프로세싱 장치에 의해 값이 변경된 더티(dirty) 데이터를 저장하는 신뢰 캐시; 및 프로세싱 장치에 의해 값이 변경되지 않은 클린(clean) 데이터를 저장하는 비신뢰 캐시를 포함하되, 상기 신뢰 캐시와 상기 비신뢰 캐시에 기지정된 비율로 캐시 영역을 할당하며, 상기 비신뢰 캐시는 상기 신뢰 캐시보다 낮은 전압이 공급된다.
상기와 같은 목적을 달성하기 위한 본 발명의 제 2 측면에 따른 캐시 운영 방법은, 기지정된 비율로 신뢰 캐시와 비신뢰 캐시에 캐시 영역을 할당하는 단계; 및 상기 신뢰 캐시에는 더티(dirty) 데이터를 저장하고, 상기 비신뢰 캐시에는 클린(clean) 데이터를 저장하는 단계를 포함하되, 상기 비신뢰 캐시는 상기 신뢰 캐시보다 낮은 전압이 공급된다.
본 발명의 실시예는 캐시 장치 및 이를 통한 캐시 운영 방법에 있어, 데이터 신뢰성을 보장하면서도 소모 전력을 낮추는 효과를 얻는다.
본 발명의 일실시예에 따른 캐시는 수직적 메모리 계층의 데이터 중복 및 멀티 코어 상의 수평적 데이터 중복을 활용하여, 캐시 데이터의 신뢰성을 보장하면서도 캐시의 소모 전력을 줄일 수 있다. 즉, 클린 데이터의 경우, 오류 발생시 해당 데이터를 중복 저장하고 있는 다른 메모리에서 해당 데이터를 읽어와 복구할 수 있으므로, 클린 데이터가 저장되는 캐시 영역의 전압을 낮추어도 데이터의 신뢰성을 보장할 수 있다는 특징을 활용한다.
본 발명의 일실시예에 따른 캐시는 캐시 메모리를 두 그룹으로 나누어 상태에 따라 구분하여 데이터를 저장하고, 클린 데이터를 저장한 캐시의 전압을 기존의 최저 공급 전압 이하로 낮춤으로써, 시스템에서의 전력 소모 비중이 큰 캐시의 동적/정적 공급 전압을 크게 낮출 수 있다.
도 1은 기존의 캐시를 포함하는 프로세싱 장치의 예를 도시함.
도 2는 본 발명의 일실시예에 따른 캐시 장치의 구조를 도시함.
도 3은 본 발명의 일실시예에 따른 캐시 장치의 상세한 구조를 도시함.
도 4a는 캐시의 각 웨이가 하나의 SRAM bank로 구현되는 경우에 전원 선택 스위치 구현의 일례를 도시함.
도 4b는 캐시의 각 비트(BIT)가 인터리브(interleaved)되어 구현된 SRAM에서 각 웨이에 상이한 전압을 인가하는 방식의 일례를 도시함.
도 5는 종래의 PLRU 트리의 예를 도시함.
도 6은 본 발명의 일실시예에 따른 듀얼 PLRU 트리의 실시예를 도시함.
도 7은 본 발명의 일실시예에 따른 신뢰성 제어부를 도시함.
도 8 내지 도 10은 본 발명의 일실시예에 따른 캐시 비율 조정 중, 신뢰 캐시를 비신뢰 캐시로 변경하는 과정에서 더티 블록을 처리하는 방법을 도시함.
도 11은 본 발명의 일실시예에 따른 캐시 운영 방법의 흐름을 도시함.
도 12는 본 발명의 일실시예에 따른 캐시 운영 방법의 성능을 도시함.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 2는 본 발명의 일실시예에 따른 캐시 장치의 구조를 도시하고 있다. 그리고, 도 3은 본 발명의 일실시예에 따른 캐시 장치의 상세한 구조를 도시하고 있다.
본 발명의 일실시예에 따른 캐시 장치(10)는 다른 캐시(10) 또는 하위 메모리와 데이터를 중복 저장할 수 있다. 캐시 장치(10)를 사용하는 프로세싱 장치는 계층적인 메모리 체계 및 멀티 코어 구조를 사용한다. 또한 이러한 프로세싱 장치는 여러 프로세싱 장치가 사용되는 멀티 프로세서 시스템으로 구성될 수 있다. 이러한 구조로 인해, 본 발명의 일실시예에 따른 캐시 장치(10)가 사용되는 시스템에서는 데이터 중복이 존재하게 된다.
예를 들어, 프로세싱 장치에 의해 값이 변경된 데이터를 더티(dirty) 데이터, 값이 변경되지 않은 데이터를 클린(clean) 데이터라고 할 때, 클린 데이터의 경우에는 메모리 계층에서 하위 계층은 상위 계층이 가진 데이터를 항상 가지고 있다. 예를 들어, 메인 메모리는 캐시에 위치한 모든 클린 데이터를 중복해서 가지고 있다.
또한, 멀티 코어 또는 멀티 프로세서 시스템으로 구성된 실시예에서는, 같은 데이터를 여러 코어 또는 여러 프로세서가 공유할 수 있으며, 공유된 데이터는 각 코어 또는 각 프로세싱 장치의 캐시에 중복 존재한다.
본 발명의 일실시예에 따른 캐시 장치(10)는 이러한 수직적 메모리 계층의 데이터 중복 및 멀티 코어 상의 수평적 데이터 중복을 활용하여, 캐시 데이터의 신뢰성을 보장하면서도 캐시의 소모 전력을 줄인다. 즉, 클린 데이터의 경우, 오류 발생시 다른 메모리(예: 하위 계층의 메모리 또는 다른 코어의 캐시)에서 해당 데이터를 읽어 들여 복구할 수 있으므로, 클린 데이터가 저장되는 캐시 영역의 전압을 낮추어도, 데이터의 신뢰성을 보장할 수 있다.
종래의 기술은 캐시 데이터의 신뢰성을 보장하기 위해, 캐시에 오류 정정 코드를 추가하거나 중복 데이터를 포함하는 등 캐시 자체의 신뢰성을 향상시키는데 초점을 맞추어왔다. 이에 반해, 본발명의 실시예는 캐시의 신뢰성을 낮추는 문제가 발생하더라도 효율적으로 이를 해결할 수 있다. 구체적으로, 본발명의 실시예는 공급 전압을 낮추어 발생하는 데이터 신뢰성 저하를 데이터 중복을 활용해 해결함으로써, 캐시의 소모 전력을 감소시킨다.
즉, 본 발명의 일실시예에 따른 캐시 장치(10)는 클린 데이터에 대해서 오버헤드가 낮은 오류 검출 기술을 사용함으로써, 캐시 신뢰성 제공을 위한 종래 기술이 갖고 있던 문제를 해결하였다. 예를 들어, 종래의 캐시가 채용하는 오류 정정 기술은 오류가 빈번하게 발생하지 않음에도 다중 오류 보호에 필요한 오버헤드로 인해 최저 인가 전압이 높은 수준으로 유지되어야 하는 경우가 많았다. 본 발명의 일실시예에 따른 캐시 장치(10)는 오류 정정 기술과, 오류 정정 기술보다 오버헤드가 낮은 오류 검출 기술을 함께 사용함으로써, 종래에 오류 정정 기술만을 사용함에 따라 높은 보호 수준을 유지하는데 추가 부담이 증가하고, 전압을 일정 수준 이하로 낮추는 것이 불가능했던 문제를 해결할 수 있다.
캐시 장치(10)한편, 도 2 및 3를 참조하면, 본 발명의 일실시예에 따른 캐시 장치(10)는 더티 데이터를 저장하는 캐시 영역(이하, ‘신뢰 캐시(102)라고 지칭함)과 클린 데이터를 저장하는 캐시 영역(이하, ‘비신뢰 캐시(104)라고 지칭함)으로 구분되어 운영되는 캐시 블럭(100)을 포함한다. 또한 캐시 장치(10)는 캐시 블럭(100)의 제어를 위해, 전원 공급부(200), 교체 제어부(300), 신뢰성 제어부(400) 및 비율 제어부(500)를 포함할 수 있다.
본발명의 실시예에서캐시 블럭(100)은 캐시 메모리, 즉, 캐시 데이터를 저장하는 저장소를 지칭한다. 본 발명의 실시예에서 캐시 블럭(100)은 SRAM을 사용하여 구현될 수 있으나, 캐시 블럭(100)을 구현하는 메모리 종류에는 제한이 없다. 또한 본발명의 실시예에서 캐시 블럭(100) 이외의 '블럭'은 캐시 메모리의 데이터 단위 또는 해당 블럭에 저장되어 있거나 저장될 데이터를 지칭한다. 캐시 데이터의 클린 및 더티 여부는 캐시 데이터에 존재하는 더티 비트로 판별할 수 있다.
캐시 블럭(100)은 여러 개의 웨이(way)를 포함하도록 구성될 수 있다. 일실시예에서, 신뢰 캐시(102)와 비신뢰 캐시(104)는 웨이별로 할당될 수 있다. 예를 들어, 8-웨이 캐시의 경우 4개의 웨이는 신뢰 캐시(102)로, 4개의 웨이는 비신뢰 캐시(104)로 구분되어 운영될 수 있다. 단, 이는 예시를 위한 것으로, 캐시 블럭(100)의 구성은 이에 한정되지 않는다.
본 발명의 일실시예에서, 전원 공급부(200)는 비신뢰 캐시(104)에 신뢰 캐시(102)보다 낮은 전압을 공급할 수 있다. 예를 들어, 전원 공급부(200)는 신뢰 캐시(102)에는 캐시 데이터의 신뢰성을 보장할 수 있는 최저 인가 전압(Vcc_MIN)을 공급하고, 비신뢰 캐시(104)에는 최저 인가 전압보다 낮은 전압을 공급할 수 있다.
본 발명의 다른 실시예에서, 비신뢰 캐시(104)는 신뢰 캐시(102)보다 작은 메모리 셀로 구성될 수 있다. SRAM은 셀의 크기에 따라 신뢰성을 조정할 수 있으며, 작은 셀의 경우 상대적으로 적은 면적이 필요하지만 신뢰성이 떨어지고 큰 셀의 경우 큰 면적이 필요하지만 더 안정적이다. 이와 같은 이종 SRAM 셀들과 선택적 전압 인가를 통하여 차등적 신뢰성을 갖는 캐시 장치(10)를 구현할 수 있으며, 이는 전력뿐만 아니라 면적까지 줄일 수 있는 효과가 있다.
본 발명의 일실시예에 따른 캐시 장치(10)를 통해 캐시를 운영할 때, 더티 데이터는 프로세싱 장치에서 값이 변경된 데이터이기 때문에 중복된 데이터가 다른 메모리에 존재하지 않으므로, 캐시 데이터의 신뢰성을 보장할 수 있는 최저 인가 전압을 공급받는 신뢰 캐시(102)에 저장되어야 한다. 반면, 클린 데이터는 전술한 바와 같이 하위 메모리 또는 다른 코어의 캐시 등 중복 데이터를 저장하고 있는 다른 메모리가 있으므로, 데이터의 값이 변경되는 등의 오류가 발생하여도 쉽게 복구가 가능하므로, 캐시 데이터의 신뢰성을 보장할 수 있는 최저 인가 전압보다 낮은 전압을 공급받는 비신뢰 캐시(104)에 저장하여도 다른 메모리로부터 데이터를 읽어와 복원함으로써 캐시 데이터 신뢰성을 용이하게 제공할 수 있다.
예를 들어, 본 발명의 일실시예에 따른 캐시 장치(10)는 클린 데이터를 저장한 캐시 웨이들, 즉, 비신뢰 캐시(104)에 기존의 최저 공급 전압보다 더 낮은 전압을 공급함에 따라 발생하는 데이터 손상을 단순히 캐시 미스(cache miss)가 발생한 것으로 간주할 수 있다.
이렇게 비신뢰 캐시(104)에 저장되어 있는 데이터에 오류 발생시 캐시 미스가 발생한 것으로 처리하면, 일반 캐시 미스와 동일하게 하위 메모리(예를 들어, 메인 메모리 또는 하위 계층의 캐시)에서 데이터를 가져옴으로써 해당 데이터를 복구할 수 있으므로, 본 발명의 일실시예에 따른 캐시 장치(10)는 데이터 복원을 위해 별도의 동작을 필요로 하지 않아, 캐시 데이터 신뢰성을 효율적으로 제공할 수 있다.
따라서, 본 발명의 일실시예에서, 신뢰 캐시(102)에 저장되어 있는 데이터는 오류 정정 코드(ECC: error correcting code)를 사용하여 오류 발생이 검출되고 오류가 정정되며, 비신뢰 캐시(104)에 저장되어 있는 데이터는 오류 발생시 오류 검출 코드(EDC: error detection code)를 사용하여 오류 발생이 검출되고, 오류 발생이 검출되면 다른 메모리에서 가져온 올바른 데이터가 대신 사용된다. 예를 들어, 하위 계층의 메모리 또는 다른 코어의 캐시에 중복 저장되어 있는 데이터가 대신 사용될 수 있다. 이때 하위 계층의 메모리에 저장되어 있는 중복 데이터를 대신 사용하는 것은 전술한 바와 같이 캐시 미스가 발생한 것으로 처리하여 간단히 수행될 수 있다.
이때, 본 발명의 일실시예에 따른 캐시 장치(10)는 오류 정정 코드 및 오류 검출 코드를 하나의 저장소를 공유하여 기록하고, 캐시 장치(10)에 저장되어 있는 데이터의 상태에 따라 오류 정정 코드를 사용할 것인지 오류 검출 코드를 사용할 것인지 결정할 수 있다.
이렇게 하나의 저장소를 공유하여 기록하므로, 본 발명의 일실시예에 따른 캐시 장치(10)는 캐시의 오류 정정 코드를 사용하기 위한 회로를 크게 변경하지 않고도 오류 검출 코드를 함께 사용할 수 있으며, 신뢰 캐시(102)와 비신뢰 캐시(104)의 비율이 달라질 때도 하나의 공간이 오류 정정 코드를 기록하기도 하고 오류 검출 코드를 기록하기도 하므로 문제없이 운영할 수 있어 유연성이 좋다.
한편, 본 발명의 일실시예에 따른 캐시 장치(10)는 신뢰 캐시(102)와 비신뢰 캐시(104)에 대해 통합 교체 정책을 사용하여, 하나의 듀얼 PLRU 트리(Dual PLRU tree)를 사용하여 교체 희생(Victim)자를 찾을 수 있다. 자세한 내용은 후술한다.
또한, 본 발명의 일실시예에 따른 캐시 장치(10)는 교체 희생자가 발생할 때마다 신뢰 캐시 교체 희생자 수 또는 비신뢰 캐시 교체 희생자 수를 증가시킨다. 그리고, 캐시 장치(10)는 캐시 교체 희생자 수 및 비신뢰 캐시 교체 희생자 수의 증가율이 임계값 이상이 되는 시점마다, 신뢰 캐시 교체 희생자 수 또는 비신뢰 캐시 교체 희생자 수에 기초하여, 신뢰 캐시(102) 및 비신뢰 캐시(104)의 비율을 동적으로 조정할 수 있다.
예를 들어, 본 발명의 일실시예에 따른 캐시 장치(10)는 비신뢰 캐시(104)에 신뢰 캐시(102)보다 많은 캐시 영역을 할당하여 동작을 시작한 후, 신뢰 캐시 교체 희생자 수가 소정의 임계값을 넘어설 때마다 신뢰 캐시(102)를 증가시킬 수 있다. 자세한 내용은 후술한다.
한편, 도 3에 도시한 바와 같이, 입력 블럭은 상태(M, O, S, E, I)에 따라, 캐시 블럭(100)의 신뢰 캐시(102)와 비신뢰 캐시(104)로 구분되어 저장된다. 전술한 바와 같이, 캐시 블럭(100)은 SRAM으로 구현될 수 있으며, 신뢰 캐시(102)와 비신뢰 캐시(104)는 웨이 별로 영역이 할당될 수 있다.
예를 들어, 상기 입력 블럭의 상태는 다음과 같다. 구체적으로, M(modified state)은 캐시 블럭이 더티(dirty)이면서 유일(sole)하여, 손실되어서는 안 되는 상태이다. 이 상태의 데이터는 신뢰 캐시(102)에 저장되어야 한다. O(owned state)는 중복 데이터가 존재하지만, 라이트백(write-back)이 필요한 상태이다. 이 상태의 데이터는 신뢰 캐시(102)에 저장되어야 한다. E(exclusive state)는 메인 메모리에 중복 데이터가 존재하므로, 비신뢰 캐시(104)에 저장될 수 있다. 또한, 메인 메모리에 접근해야 한다는 비용이 있다. S(shared state)는 다른 캐시 또는 메인 메모리에 중복 데이터가 존재하므로, 비신뢰 캐시(104)에 저장될 수 있다. I(invalid state)는 현재 유효하지 않은 상태로서, 캐시 블럭이 더티(dirty)였을 수도 있고 클린(clean)이었을 수도 있으나, 현재는 유효하지 않으므로 해당 캐시 블럭은 버려도 된다. 즉, 유효한 데이터 중 M, O는 더티 데이터를, E, S는 클린 데이터를 나타내며, I 는 유효하지 않은 데이터를 나타낸다.
이처럼, 데이터 블록은 상기의 상태에 따라 구분되어 신뢰 캐시(102)와 비신뢰 캐시(104)에 입력되거나 출력되고, 신뢰성 제어부(400)에 의해 오류 정정 코드 또는 오류 검출 코드를 사용하여 오류가 정정되거나 검출된다. 참고로, 이와 같은 신뢰성 제어부(400)의 동작에 대해서는 하기 도 7을 통해 상세히 설명하기로 한다.
한편, 신뢰 캐시(102)와 비신뢰 캐시(104)에는 서로 상이한 제 1 공급 전압과 제 2 공급 전압이 인가된다. 예를 들어, 비신뢰 캐시(104)로 할당된 웨이(way)에는 신뢰 캐시(102)로 할당된 웨이보다 낮은 전압이 인가될 수 있다.
이처럼, 비율 제어부(500)는 웨이별 공급 전압 정보를 전원 공급부(200)에 제공한다.
또한 비율 제어부(500)는 교체 제어부(300)에 의해 신뢰 캐시(102) 또는 비신뢰 캐시(104)에서 버려진 희생 블럭 정보를 기초로 비신뢰 캐시 교체 희생자 수 및 신뢰 캐시 교체 희생자 수를 각각 저장하는 클린 카운터(502)와 더티 카운터(504)를 포함할 수 있으며, 비신뢰 캐시 교체 희생자 수 또는 신뢰 캐시 교체 희생자 수가 소정의 임계값을 넘어설 때마다, 신뢰 캐시(102)와 비신뢰 캐시(104)로 할당되는 웨이의 비율을 조절할 수 있다.
도 4의 a 및 b는 각각 본 발명의 일실시예에 따른 각 캐시 웨이에 다른 전압을 공급하는 방법을 도시하고 있다.
캐시 장치(10)의 각 웨이를 동적으로 신뢰 캐시(102) 또는 비신뢰 캐시(104)로 동적으로 사용하기 위해서는 각 웨이에 다른 전압을 인가할 수 있어야 한다. 그 중 전압 스케일링(voltage scaling)은 회로의 전압을 동적으로 조절하는 기술이다. 캐시 메모리는 주로 SRAM으로 구현되며, SRAM의 동적 전력(dynamic power)는 입력 전압(supply voltage)의 제곱함수에 비례하여 줄어들고, 정적 전력(static power)는 전압의 지수 함수에 비례하여 줄어듦을 고려할 때, 전압 스케일링은 SRAM 캐시의 전력을 낮추는데 매우 효과적으로 적용될 수 있다.
캐시의 각 웨이(way)는 회로에 인가되는 두 단계의 전원(Vccmin 및 Vccmin-α) 중 자신의 신뢰도에 적합한 전원선을 선택하여 사용한다. 각 웨이의 전원 선택은 프로그래머블 스위치를에 신호를 인가함으로써 가능하며, 캐시가 어떤 구조(예를 들어, bank interleaved 혹은 column interleaved)로 구현되어 있든 구애받지 않는다.
도 4a는 캐시의 각 웨이가 하나의 SRAM bank 로 구현되는 경우에 전원 선택 스위치 구현의 일례를 도시하였다.
도 4b는 캐시의 각 비트(BIT)가 인터리브(interleaved)되어 구현된 SRAM에서 각 웨이에 상이한 전압을 인가하는 방식의 일례를 도시하였다.
예를 들어, 캐시에 상이한 두 전압을 공급하는 방법은 다양한 방법(상용화된 기술을 포함함)을 사용할 수 있으며, 본 발명과 독립적으로 여러 가지 방법을 사용할 수 있다. 예를 들어, DC/DC 컨버터를 추가하거나 SRAM 내부에서 트랜지스터를 추가하여 인가 전압을 설정하는 등의 방법을 사용할 수 있다.
도 5는 종래의 PLRU 트리의 예를 도시하고 있으며, 도 6은 본 발명의 일실시예에 따른 듀얼 PLRU 트리의 실시예를 도시하고 있다.
전술한 바와 같이, 본 발명의 일실시예에 따른 캐시 장치(10)는 신뢰 캐시(102)와 비신뢰 캐시(104)를 별도의 교체 정책(replacement policy)이 아닌, 통합 교체 정책 및 하나의 데이터 구조를 사용하여 관리할 수 있다.
예를 들어, 교체 제어부(300)는 종래의 PLRU 트리(Pseudo-LRU tree)를 변형한 듀얼 PLRU 트리를 교체될 희생자 블럭을 결정하는 데 사용할 수 있다. 도 5에 도시되어 있는 바와 같이, 종래의 PLRU 트리는 각 세트(set) 별로 이진 트리를 가지고 있고, 트리의 각 노드는 접근될 때마다 반대편을 가리키도록 해, 캐시 웨이(way)들이 고르게 사용되도록 하고 있다. 본 발명의 일실시예에 따른 캐시 장치(10)가 사용하는 변형된 PLRU 트리는 비율이 바뀜에 따라 정해진 패턴대로 변하여 웨이(way) 사용이 고르게 분포되도록 하고 있다.
이에 따라, 본 발명의 일실시예에 따른 캐시 장치(10)는 캐시 영역 구분에 따라 각 구역에 대해 별도의 저장소 및 회로를 추가 구현할 필요없이, 종래의 PLRU를 약간 변형한 데이터 구조를 사용하는 기존의 저장소를 사용하여 신뢰 캐시(102)와 비신뢰 캐시(104)를 통합 관리할 수 있다.
예를 들어, 본 발명의 일실시예에 따른 듀얼 PLRU 회로는 종래의 PLRU 트리를 위한 회로에 9비트 카운터 2개와 1개의 비교기를 추가하여 구현될 수 있다. 앞서 도 3에 도시되어 있는 바와 같이, 신뢰 캐시는 태그와 상태 정보를 저장한다.
도 3을 도 5 및 도 6과 함께 참조하여, 본 발명의 일실시예에 따른 캐시 장치(10)의 교체 제어부(300)의 구조 및 동작을 살펴본다. 설명의 편의를 위해, 도면의 실시예는 8웨이 L2 캐시라고 가정한다.
상위 캐시인 L1으로부터 쫓겨난(evicted) 블럭이 도착하면, L2 캐시 장치(10)는 해당 데이터의 상태를 먼저 검사한다. 클린 상태(E, S, 또는 I)의 데이터는 신뢰 캐시(102)에 저장되고, 더티 상태(M 도는 O)의 데이터는 비신뢰 캐시(104)에 저장되며, 이때 해당 블럭과 교체되어 신뢰 캐시(102) 또는 비신뢰 캐시(104)에서 쫓겨나는 교체 희생자(victim) 블럭이 있을 수 있다.
이러한 교체 희생자를 찾기 위해 사용하는 듀얼 PLRU의 동작을 설명하기 위해 먼저 도 5를 참조하여 트리 기반의 PLRU를 설명하면, PLRU는 트리를 사용하여 LRU 블럭을 찾아낸다. 8웨이 캐시가 실시예로 사용되었기 때문에 트리의 말단 노드는 도시되어 있는 바와 같이 8개이다.
트리의 각 노드의 값이 다음 노드를 결정하며, 그렇게 도달한 말단 노드가 쫓겨날 희생자이다. 예를 들어, 도 5의 실시예에서, 트리는 4번째 웨이가 희생자 블럭임을 나타내고 있다. 루트 노드의 값이 1이므로, 왼쪽에 있는 자식 노드로 내려가고, 해당 노드의 값이 0이므로, 오른쪽에 있는 자식 노드로 가는 식이다.
신뢰 캐시(102)와 비신뢰 캐시(104)의 교체 희생자 찾기를 동시에 수행하기 위해 도 5의 트리를 도 6과 같이 수정할 수 있다. 신뢰 캐시(102)와 비신뢰 캐시(104)의 비율은 전술한 바와 같이 동적으로 조정될 수 있는데, 이를 위해 도 6의 하단에 있는 표와 같이, 신뢰 캐시(102)와 비신뢰 캐시(104)가 되도록 대칭적으로 증가/감소하도록 하는 패턴을 구성할 수 있다.
예를 들어, 신뢰 캐시(102)로 사용하는 웨이(R, 색칠됨)와 비신뢰 캐시(104)로 사용되는 웨이(U, 색칠되지 않음)를 첫번째 웨이에서부터 순서대로 RRUUUUUU(2:6), RRRUUUUU(3:5), RRRRUUUU(4:4)의 패턴으로 할당하면, 지나치게 희생자 수가 많아질 것이지만, 도면의 표와 같은 패턴을 사용하면 신뢰 캐시(102)와 비신뢰 캐시(104)가 대칭적으로 증가/감소하므로, 교체 희생자 수를 줄일 수 있다.
도 6의 표는 신뢰 캐시(102)와 비신뢰 캐시(104)의 비율이 변하면 표의 좌측에 있는 비율에 맞게 우측에 있는 패턴을 사용하여 각 웨이를 할당할 수 있음을 보이고 있다. 예를 들어, 신뢰 캐시(102)와 비신뢰 캐시(104)의 비율이 1:7임을 나타내는 첫번째 행은 RUUUUUUU의 패턴에 따라 첫번째 캐시만 신뢰 캐시로 할당함을 나타낸다.
또한 도 6의 상단에 도시되어 있는 트리는 색칠된 웨이가 3개이므로 신뢰 캐시(102)와 비신뢰 캐시(104)의 비율이 3:5일 때를 도시하고 있음을 알 수 있는데, 하단의 표에서 3:5일 때의 패턴은 RURURUUU이므로, 트리의 말단이 나타내고 있는 웨이도 RURURUUU의 패턴으로 신뢰 캐시 또는 비신뢰 캐시로 할당되었다.
교체 희생자를 찾는 과정은 도 5의 PLRU 트리에서의 과정과 같다(단, D: 더티, C: 클린). 비율이 3:5일 때 RRRUUUUU 패턴을 사용하고 있는 도 5의 예와 비교하여 보면, 도 5에서는 5번째부터 8번째 웨이까지의 접근은 반대 방향으로 향하게 하기 위해 루트 값을 1로 만들기 때문에, 4번째 웨이에서의 희생자 수를 지나치게 증가시킨다. 4번째 웨이가 루트의 왼쪽에 있는 4개의 웨이 중 유일한 클린 데이터 저장 웨이이기 때문이다. 그러나 도 6에서와 같은 본 발명의 일실시예에서는 신뢰 캐시(102)로 사용하는 웨이와 비신뢰 캐시(104)로 사용하는 웨이가 골고루 섞여 있으므로 이러한 문제가 완화된다.
이와 같이, 본 발명의 일실시예에 따른 캐시 장치(10)는 균형잡힌 패턴을 사용하여 신뢰 캐시(102)와 비신뢰 캐시(104)를 구분하고, 교체 희생자를 효과적으로 찾아낼 수 있는 듀얼 PLRU 트리를 사용함으로써, 특정 웨이에 교체 희생자가 몰리는 문제를 해결할 수 있다.
그러나 캐시 장치(10)가 사용하는 교체 정책 및 교체 정책을 수행하기 위한 데이터 구조는 이에 제한되지 않는다.
도 7은 본 발명의 일실시예에 따른 신뢰성 제어부를 도시하고 있다.
본 발명에는 여러 가지 오류 검출 및 정정 기술이 적용 가능하다. 예를 들어, 본 발명의 일실시예에 따른 신뢰성 제어부(400)는 더티 데이터에는 오류 정정 코드(ECC: error correcting code)를 사용하고, 클린 데이터에는 오류 검출 코드(EDC: error detection code)를 사용할 수 있다. 오류를 검출하고 정정할 수 있는 오류 정정 코드는 오류를 검출만 할 수 있는 오류 검출 코드보다 전력 소모량 증가 등의 비용이 있으므로, 전술한 바와 같은 이유로 굳이 오류를 정정할 필요가 없는 비신뢰 캐시(104) 데이터는 오류 정정 코드 대신 오류 검출 코드를 사용하는 것이 바람직하다.
따라서, 전술한 바와 같이, 본 발명의 일실시예에 따른 신뢰성 제어부(400)는 신뢰 캐시(102)에 저장되어 있는 데이터는 오류 정정 코드를 사용하여 오류 발생을 검출하고 오류를 정정하며, 비신뢰 캐시(104)에 저장되어 있는 데이터는 오류 검출 코드를 사용하여 오류 발생을 검출하고, 오류 발생이 검출되면 다른 메모리에서 올바른 데이터를 가져올 수 있도록, 오류 알림 신호를 발생시킨다. 또한, 전술한 바와 같이, 오류 알림 신호는 캐시 미스 신호의 형태일 수 있다.
예를 들어, 오류 정정 코드로는 SECDED, DECTEC(2 error correct, 3 error detect), QECPED(4 error correct, 5 error detect), OECNED(8 error correct, 9 error detect) 등을 사용할 수 있으며, 오류 검출 코드로는 CRC 또는 패러티(parity) 등을 사용할 수 있다.
이때, 도시된 바와 같이, 오류 정정 코드와 오류 검출 코드를 하나의 저장소를 공유하여 기록되고, 데이터의 상태에 따라 오류 정정 코드를 사용할 것인지 오류 검출 코드를 사용할 것인지 결정된다.
데이터가 캐시에 쓰여지는 과정은 점선을 따라 ECC/EDD 산출부(410)를 거쳐서 이루어지며, 읽혀지는 과정은 실선을 따라 ECC/EDD 산출부(410)와 비교기(=), 그리고 필요에 따라 ECC 적용부(422)를 거쳐 이루어진다.
예를 들어, ECC/EDD 산출부(410)는 쓰기 데이터에 대해 ECC 산출부(412)가 산출한 오류 검출 코드를 사용할지 EDC 산출부(414)가 산출한 오류 정정 코드를 사용할지는 ECC/EDD 산출부(410)에 공급된 데이터의 상태 정보(예: 데이터의 더티 비트)를 기준으로 판단할 수 있다.
데이터를 읽을 때는, 저장되어 있는 오류 정정 코드 또는 오류 검출 코드가 새로 계산되는 오류 정정 코드 또는 오류 검출 코드와 비교된다. 신뢰 캐시(102)라면 오류 정정 코드가 계산되며, 비교 결과는 데이터를 정정할 것인지 여부를 판단하는 데 사용된다. 비신뢰 캐시(104)라면 오류 검출 코드가 계산되며, 비교 결과는 오류 알림 신호(예: 캐시 미스 신호)를 발생시킬 것인가의 여부를 판단하는 데 사용된다.
신뢰성 제어부(400)의 이러한 구성은 기존의 캐시에 사용되는 오류 정정 코드 회로를 큰 변화 없이 효율적으로 변형하여 구현할 수 있다. 또한, 이러한 구성을 통해, 본 발명의 일실시예에 따른 신뢰성 제어부(400)는 특정 웨이가 신뢰 캐시(102) 또는 비신뢰 캐시(104)로 용도가 변경될 때, 오류 정정 코드와 오류 검출 코드를 선택적으로 사용할 수 있다.
도 8 내지 도 10은 본 발명의 일실시예에 따른 캐시 비율 조정 중, 신뢰 캐시를 비신뢰 캐시로 변경하는 과정에서 더티 블록을 처리하는 방법을 도시하고 있다.
먼저 도 8을 보면, 웨이 #1, 웨이 #2, 및 웨이 #3은 신뢰 캐시(102)로, 웨이 #4는 비신뢰 캐시(104)로 쓰이고 있다. 각 웨이의 상태비트(110)는 데이터의 상태를 나타내고 있다. 예를 들어, 웨이 #3의 첫번째 세트의 상태비트(110)는 더티 데이터임을 나타내는 D를, 웨이 #3의 두번째 세트의 상태비트(110)는 클린 데이터임을 나타내는 C를 표시하고 있다. 이는 도 3에서 설명한 여러 상태 중 하나를 간략하게 표시한 것으로, 예를 들어, 더티 상태는 M, O, 또는 E일 수 있다.
웨이 #3의 두번째 세트의 상태비트(110)가 클린 데이터인 것은 웨이 #3이 이전에 비신뢰 캐시(104)에서 신뢰 캐시(102)로 변경되면서 각 세트가 골고루 사용되지 못하였기 때문일 수 있다.
도 9 및 도 10은 도 8의 웨이 #3가 비율 조정부(500)에 의해 신뢰 캐시(102)에서 비신뢰 캐시(104)로 변경될 때의 두가지 방법을 도시하고 있다. 즉, 도 9 및 도 10은 신뢰 캐시(102)에서 비신뢰 캐시(104)로 변경될 때 신뢰 캐시(102)에 저장되어 있는 데이터를 잃지 않기 위해 비신뢰 캐시(104)로 변경하기 전에 하위 계층 메모리(예: 주 메모리, 이하 편의상 메모리로 지칭)로 라이트백(write-back)하는 방법의 두가지 실시예를 도시하고 있다.
단, 웨이 #3의 두번째 세트처럼 전술한 바와 같은 이유로 신뢰 캐시(102)에 저장되어 있는 클린 데이터는 도 9 및 도 10의 두가지 실시예가 공통적으로 도시하고 있는 바와 같이, 웨이 #3을 다시 비신뢰 캐시(104)로 변경할 때 해당 세트에 대해서는 데이터 손실을 방지하기 위한 처리를 할 필요가 없다. 앞서 설명한 바와 같이 클린 데이터는 하위 계층 메모리 등 다른 메모리에 중복 저장되어 있기 때문이다.
이제 더티 데이터의 처리에 대해 도 9의 실시예를 먼저 살펴보면, 도 8의 웨이 #3의 첫번째 세트는 더티 데이터를 나타내므로, 메모리 쓰기 큐(150)로 보내, 메모리로 라이트백시킨 후, 상태 비트를 I로 변경시켰음을 도시하고 있다. 즉, 도 9는 신뢰 캐시(102)에서 비신뢰 캐시(104)로 변경되는 웨이 자체의 더티 데이터를 메모리로 내보내는 실시예를 도시하고 있다.
또다른 실시예인 도 10의 실시예는 웨이 #1, 웨이 #2, 웨이 #3의 첫번째 세트에서 LRU 블럭을 찾아, 해당 LRU 블럭인 웨이 #2의 첫번째 세트를 대신 메모리로 내보낸다. 즉, 해당 세트의 신뢰 캐시(102)에 할당된 모든 웨이들 에서 LRU를 찾은 결과, 웨이 #2의 첫번째 세트가 해당 세트의 LRU로 판정되었기 때문에, 웨이 #2의 첫번째 세트를 메모리 쓰기 큐(150)로 보내, 메모리로 라이트백시킨 후, 신뢰 캐시(102)에서 비신뢰 캐시(104)로 변경되는 웨이인 웨이 #3의 첫번째 세트에 저장되어 있던 더티 데이터를 해당 블럭으로 이동 저장하는 실시예가 도 10에 도시되어 있다.
도 11은 본 발명의 일실시예에 따른 캐시 운영 방법의 흐름을 도시하고 있다.
캐시 영역(예: 캐시 웨이)을 기지정된 비율에 따라 신뢰 캐시(102)와 비신뢰 캐시(104)로 구분한다(S110).
설계시 어플리케이션을 구동시키면서 실험하여 찾은 최적의 비율에 따라 신뢰 캐시(102)와 비신뢰 캐시(104)를 구분할 수도 있다. 즉, 각 어플리케이션 또는 여러 어플리케이션을 신뢰 캐시(102)와 비신뢰 캐시(104)의 비율을 다양하게 하여 실행시켜보고, 그 과정에서 가장 적합하다고 판단되는 비율을 찾는 것이다.
일단 최적의 비율로 신뢰 캐시(102)와 비신뢰 캐시(104)를 구분한 후에는 해당 비율을 유지할 수 있다(하기의 S130 단계를 수행하지 않는 정적인 방법).
그러나, 캐시 블럭(100)을 두개의 그룹으로 구분하면 캐시 미스가 증가하여 성능이 저하될 수 있으므로, 각 어플리케이션에 적합한 비율을 찾아 성능 저하를 최소화할 수 있다. 따라서, 어플리케이션들을 실행하면서 각 어플리케이션에 적합한 비율을 찾아가는 것이 바람직할 수 있다(하기의 S130 단계를 수행하는 동적인 방법).
예를 들어, 바람직한 실시예에서, 초기 구분 단계(S110)에서는 비신뢰 캐시(104)에 신뢰 캐시(102)보다 많은 캐시 영역을 할당한 후, 운영시의 동적 비율 조정 단계(S130)에서 필요에 따라 신뢰 캐시(102)를 늘려갈 수 있다. 비신뢰 캐시(104)가 좀더 소모 전력이 낮고 오버헤드가 낮은 오류 검출 코드를 사용하기 때문이다.
다음, 신뢰 캐시(102)와 비신뢰 캐시(104)를 구분하여 운영한다(S120). 이때, 데이터 저장, 전원 공급, 및 데이터 신뢰성 제어는 신뢰 캐시(102)와 비신뢰 캐시(104)를 구분하여 수행하되, 신뢰 캐시(102) 또는 비신뢰 캐시(104)에서 쫓겨날 데이터를 선택할 때는 통합 교체 정책(예: 듀얼 PLRU 트리 사용)을 사용한다.
즉, 신뢰 캐시(102)에는 더티(dirty) 데이터를 저장하고, 비신뢰 캐시(104)에는 클린(clean) 데이터를 저장하고, 신뢰 캐시(102)에는 캐시 데이터의 신뢰성을 보장하는 최저 인가 전압을 공급하고, 비신뢰 캐시(104)에는 최저 인가 전압보다 낮은 전압을 공급하며, 신뢰 캐시(102) 데이터는 오류 정정 코드를 사용하여 오류를 검출 및 자체 정정하고, 비신뢰 캐시(104) 데이터는 오류 검출 코드를 사용하여 오류를 검출하고 오류 발생 검출시 다른 메모리에 저장되어 있는 중복 데이터를 사용하여 복구한다.
단위 시간마다 신뢰 캐시(102)와 비신뢰 캐시(104)의 비율을 동적으로 조정한다(S130). 여기에서 단위 시간이란 상기 단계(S120)에서 신뢰 캐시(102) 또는 비신뢰 캐시(104)에서 데이터가 쫓겨날 때마다 카운팅되는 신뢰 캐시 교체 희생자 수 또는 비신뢰 캐시 교체 희생자 수의 증가율이 임계값 이상이 되는 시점을 뜻한다. 전술한 바와 같이 일실시예에서 비율을 동적으로 조정하는 단계(S130)는 생략될 수 있다.
도 12는 본 발명의 일실시예에 따른 캐시 운영 방법의 성능을 도시하고 있다.
도면은 다양한 응용 프로그램을 사용하여 측정한 결과 그래프이다. 그래프로부터 본 발명의 일실시예에 따른 캐시 운영 방법은 종래 최저 수준과 대비했을 때 동적 전력은 -15.8%, 정적 전력은 -12.0%, 에너지×지연은 -12.8% 감소시킬 수 있다는 결론을 내릴 수 있다. 해당 결과는 특정 SRAM의 voltage-reliability 특성에 기반한 것으로 SRAM cell에 특성에 따라 큰 차이를 보일 수 있으며, 위 결과는 SRAM의 reliability에 대해 매우 보수적으로 설정한 결과이다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다. 본 발명의 일 실시예의 하나 이상의 구성 요소 또는 동작을 실시하기 위하여 사용될 수 있는 컴퓨터 시스템 아키텍쳐의 일례를 설명하면, 하드웨어 시스템은 프로세서, 캐쉬, 메모리 및 상술한 기능에 관련된 하나 이상의 소프트웨어 어플리케이션 및 드라이버를 포함할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (17)

  1. 캐시 장치에 있어서,
    프로세싱 장치에 의해 값이 변경된 더티(dirty) 데이터를 저장하는 신뢰 캐시; 및
    프로세싱 장치에 의해 값이 변경되지 않은 클린(clean) 데이터를 저장하는 비신뢰 캐시를 포함하되,
    상기 신뢰 캐시와 상기 비신뢰 캐시에 기지정된 비율로 캐시 영역을 할당하며,
    상기 비신뢰 캐시는 상기 신뢰 캐시보다 낮은 전압이 공급되는 캐시 장치.
  2. 제 1 항에 있어서,
    상기 신뢰 캐시에 캐시 데이터의 신뢰성을 보장하는 기설정된 최저 인가 전압을 공급하고,
    상기 비신뢰 캐시에 상기 최저 인가 전압보다 낮은 전압을 공급하는 전원 공급부를 더 포함하는 캐시 장치.
  3. 제 1 항에 있어서,
    상기 신뢰 캐시에 저장된 데이터 또는 상기 더티 데이터에 대해서는 오류 정정 코드(ECC: error correcting code)를 사용하여 오류 발생 검출 및 오류 정정을 수행하고,
    상기 비신뢰 캐시에 저장된 데이터 또는 상기 클린 데이터에 대해서는 오류 검출 코드(EDC: error detection code)를 사용하여 오류 발생을 검출하고, 오류 발생이 검출되면 다른 메모리에 중복 저장되어 있는 데이터를 대신 사용하는 캐시 장치.
  4. 제 3 항에 있어서,
    상기 오류 정정 코드와 상기 오류 검출 코드를 하나의 저장소를 공유하여 기록하는 캐시 장치.
  5. 제 1 항에 있어서,
    상기 비신뢰 캐시에 저장되어 있는 데이터에 오류가 발생하면 캐시 미스(cache miss)가 발생한 것으로 처리하는 캐시 장치.
  6. 제 1 항에 있어서,
    상기 신뢰 캐시와 상기 비신뢰 캐시에 대해 단일 교체 정책(replacement policy)을 사용하여 교체 희생자를 찾는 캐시 장치.
  7. 제 1 항에 있어서,
    상기 신뢰 캐시와 상기 비신뢰 캐시에 대해 하나의 듀얼 PLRU 트리(Dual PLRU tree)를 사용하여 교체 희생자를 찾는 캐시 장치.
  8. 제 1 항에 있어서,
    상기 캐시 영역은 웨이(way)별로 할당되는 캐시 장치.
  9. 제 1 항에 있어서,
    상기 신뢰 캐시와 상기 비신뢰 캐시의 비율을 동적으로 조정하는 캐시 장치.
  10. 제 1 항에 있어서,
    상기 비신뢰 캐시에 상기 신뢰 캐시보다 많은 캐시 영역을 할당하여 동작을 시작하는 캐시 장치.
  11. 제 1 항에 있어서,
    교체 희생자가 발생할 때마다 신뢰 캐시 교체 희생자 수 또는 비신뢰 캐시 교체 희생자 수를 증가시키며,
    상기 캐시 교체 희생자 수 또는 상기 비신뢰 캐시 교체 희생자 수의 증가율이 임계값 이상이 되는 시점마다, 상기 신뢰 캐시 교체 희생자 수 또는 상기 비신뢰 캐시 교체 희생자 수에 기초하여, 상기 신뢰 캐시 및 상기 비신뢰 캐시의 비율을 조정하는 캐시 장치.
  12. 캐시 장치를 통한 캐시 운영 방법에 있어서,
    기지정된 비율로 신뢰 캐시와 비신뢰 캐시에 캐시 영역을 할당하는 단계; 및
    상기 신뢰 캐시에는 더티(dirty) 데이터를 저장하고, 상기 비신뢰 캐시에는 클린(clean) 데이터를 저장하는 단계;를 포함하되,
    상기 비신뢰 캐시는 상기 신뢰 캐시보다 낮은 전압이 공급되는 캐시 운영 방법.
  13. 제 12 항에 있어서,
    상기 신뢰 캐시에는 캐시 데이터의 신뢰성을 보장하는 최저 인가 전압을 공급하고, 상기 비신뢰 캐시에는 상기 최저 인가 전압보다 낮은 전압을 공급하는 캐시 운영 방법.
  14. 제 12 항에 있어서,
    상기 신뢰 캐시에 저장된 데이터 또는 상기 더티 데이터에 대해 오류 정정 코드(ECC: error correcting code)를 사용하여 오류 발생 검출 및 오류 정정을 수행하는 단계; 및
    상기 비신뢰 캐시에 저장된 데이터 또는 상기 클린 데이터에 대해 오류 검출 코드(EDC: error detection code)를 사용하여 오류 발생을 검출하고, 오류 발생이 검출되면 다른 메모리에 중복 저장되어 있는 데이터를 대신 사용하는 단계;를 포함하되,
    상기 오류 정정 코드 및 상기 오류 검출 코드는 하나의 저장소를 공유하여 기록하는 캐시 운영 방법.
  15. 제 12 항에 있어서,
    상기 신뢰 캐시와 상기 비신뢰 캐시에 대해 하나의 듀얼 PLRU 트리(Dual PLRU tree)를 사용하여 교체 희생자를 찾는 단계; 및
    교체 희생자가 발생할 때마다 신뢰 캐시 교체 희생자 수 또는 비신뢰 캐시 교체 희생자 수를 증가시키는 단계를 포함하는 캐시 운영 방법.
  16. 제 12 항에 있어서,
    상기 할당하는 단계는
    상기 비신뢰 캐시에 상기 신뢰 캐시보다 많은 캐시 영역을 할당하는 캐시 운영 방법.
  17. 제 15 항에 있어서,
    상기 신뢰 캐시 및 상기 비신뢰 캐시의 비율을 조정하는 단계;를 더 포함하되,
    상기 비율을 조정하는 단계는
    상기 캐시 교체 희생자 수 또는 상기 비신뢰 캐시 교체 희생자 수의 증가율이 임계값 이상이 되는 시점마다 수행되는 캐시 운영 방법.
PCT/KR2014/004679 2013-05-24 2014-05-26 캐시 장치 및 캐시 운영 방법 WO2014189344A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130058947A KR101475931B1 (ko) 2013-05-24 2013-05-24 캐시 및 그 운영 방법
KR10-2013-0058947 2013-05-24

Publications (1)

Publication Number Publication Date
WO2014189344A1 true WO2014189344A1 (ko) 2014-11-27

Family

ID=51933829

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/004679 WO2014189344A1 (ko) 2013-05-24 2014-05-26 캐시 장치 및 캐시 운영 방법

Country Status (2)

Country Link
KR (1) KR101475931B1 (ko)
WO (1) WO2014189344A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340205A (zh) * 2022-12-15 2023-06-27 格兰菲智能科技有限公司 访问请求处理方法以及缓存装置
CN117390072A (zh) * 2023-12-07 2024-01-12 深圳市云希谷科技有限公司 一种嵌入式系统中提高网络请求速度的方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102515417B1 (ko) * 2016-03-02 2023-03-30 한국전자통신연구원 캐시 메모리 장치 및 그것의 동작 방법
KR101939361B1 (ko) 2016-04-05 2019-01-16 울산과학기술원 비휘발성 메모리를 이용한 로깅 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234320A (ja) * 2007-03-20 2008-10-02 Fujitsu Ltd キャッシュ制御回路
JP2010526374A (ja) * 2007-05-02 2010-07-29 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 低パワーキャッシュアクセスモードを備えたデータ処理デバイス
KR20100131054A (ko) * 2009-06-05 2010-12-15 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
KR20130024212A (ko) * 2011-08-31 2013-03-08 세종대학교산학협력단 메모리 시스템 및 그 관리 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234320A (ja) * 2007-03-20 2008-10-02 Fujitsu Ltd キャッシュ制御回路
JP2010526374A (ja) * 2007-05-02 2010-07-29 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 低パワーキャッシュアクセスモードを備えたデータ処理デバイス
KR20100131054A (ko) * 2009-06-05 2010-12-15 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
KR20130024212A (ko) * 2011-08-31 2013-03-08 세종대학교산학협력단 메모리 시스템 및 그 관리 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340205A (zh) * 2022-12-15 2023-06-27 格兰菲智能科技有限公司 访问请求处理方法以及缓存装置
CN116340205B (zh) * 2022-12-15 2024-04-12 格兰菲智能科技有限公司 访问请求处理方法以及缓存装置
CN117390072A (zh) * 2023-12-07 2024-01-12 深圳市云希谷科技有限公司 一种嵌入式系统中提高网络请求速度的方法
CN117390072B (zh) * 2023-12-07 2024-03-26 深圳市云希谷科技有限公司 一种嵌入式系统中提高网络请求速度的方法

Also Published As

Publication number Publication date
KR101475931B1 (ko) 2014-12-23
KR20140137839A (ko) 2014-12-03

Similar Documents

Publication Publication Date Title
US10884940B2 (en) Method and apparatus for using compression to improve performance of low voltage caches
US10198369B2 (en) Dynamic memory remapping to reduce row-buffer conflicts
EP1310873B1 (en) Error recovery
US7996710B2 (en) Defect management for a semiconductor memory system
EP4231158A2 (en) Controller for locking of selected cache regions
RU2666241C2 (ru) Перераспределение сегментов памяти для решения проблемы фрагментации
US7877633B2 (en) Highly reliable storage system and internal network thereof
US20100153649A1 (en) Shared cache memories for multi-core processors
WO2014189344A1 (ko) 캐시 장치 및 캐시 운영 방법
TWI631569B (zh) 用於解決動態隨機存取記憶體缺陷之系統,方法及電腦程式
US20120311248A1 (en) Cache line lock for providing dynamic sparing
US20150081978A1 (en) Dynamic Sizing of Memory Caches
EP2926257B1 (en) Memory management using dynamically allocated dirty mask space
US11200114B2 (en) System and method for facilitating elastic error correction code in memory
WO2019127104A1 (zh) 高速缓存中资源调整方法、数据访问方法及装置
JP2002373115A (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US20160335181A1 (en) Shared Row Buffer System For Asymmetric Memory
WO2015141730A1 (ja) キャッシュメモリ、誤り訂正回路およびプロセッサシステム
US20110320863A1 (en) Dynamic re-allocation of cache buffer slots
JP2002318725A (ja) ディスクアレイシステム
US20150193355A1 (en) Partitioned cache replacement algorithm
Chen et al. Exploring dynamic redundancy to resuscitate faulty PCM blocks
JP2004038807A (ja) キャッシュメモリ装置およびメモリ割付方法
WO2024111952A1 (ko) 샤딩 기반의 키-값 캐싱 시스템 및 방법
CN110795279A (zh) 用于促进dram数据缓存转储和机架级电池备份的系统和方法

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: 14800484

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: 14800484

Country of ref document: EP

Kind code of ref document: A1