KR101863590B1 - Cache memory apparatus and method having function of saving energy for refresh - Google Patents

Cache memory apparatus and method having function of saving energy for refresh Download PDF

Info

Publication number
KR101863590B1
KR101863590B1 KR1020160161010A KR20160161010A KR101863590B1 KR 101863590 B1 KR101863590 B1 KR 101863590B1 KR 1020160161010 A KR1020160161010 A KR 1020160161010A KR 20160161010 A KR20160161010 A KR 20160161010A KR 101863590 B1 KR101863590 B1 KR 101863590B1
Authority
KR
South Korea
Prior art keywords
cache
refresh
data
sub
line data
Prior art date
Application number
KR1020160161010A
Other languages
Korean (ko)
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 경북대학교 산학협력단
Priority to KR1020160161010A priority Critical patent/KR101863590B1/en
Application granted granted Critical
Publication of KR101863590B1 publication Critical patent/KR101863590B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • 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

Landscapes

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

Abstract

The present invention relates to a cache memory device and a method thereof. The cache memory device has a cache memory which is configured to compress cache data line by line and store the cache data compressed in each line in different storage areas in a divided manner, execute a refresh process only in the storage areas storing the compressed cache line data, and minimize the execution of the refresh process, thereby reducing the power consumption. According to the present invention, the cache memory device with a refresh power consumption reduction function includes: the cache memory which stores the cache data in the unit of cache lines, is configured to include multiple sub-arrays in a predetermined size while storing the data in the unit of cache lines, and stores the cache line data in different sub-arrays in a divided manner; and a cache management module which compresses the cache data in the unit of cache lines, divides the cache data in a preset size unit, stores the divided cache data to different and individual sub-arrays in the memory array in a divided manner, calls compressed in the cache line data are divided and stored in the sub-arrays in the memory array when accessing the cache data, executes a compression restoration process for the accessed cache data, and executes a refresh process only in the sub-arrays in the corresponding memory array storing the cache line data used as a refresh target when executing the refresh operation.

Description

리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치 및 그 방법{Cache memory apparatus and method having function of saving energy for refresh}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a cache memory apparatus having a refresh power-

본 발명은 캐시 메모리장치에 관한 것으로, 캐시 데이터를 라인 단위로 압축하여 서로 다른 저장 영역에 분할 저장하도록 캐시 메모리를 구성하고, 압축된 캐시 라인 데이터가 저장된 저장 영역에 대해서만 리프레시 처리를 수행함으로써, 리프레시 수행을 최소화하여 이에 따른 소비전력을 절감할 수 있도록 해 주는 캐시 메모리장치 및 그 방법에 관한 것이다. The present invention relates to a cache memory device, in which a cache memory is configured to compress cache data in units of lines and to divide and store the cache data in different storage areas, and to perform refresh processing only on storage areas in which compressed cache line data are stored, And more particularly, to a cache memory device and a method thereof that can minimize power consumption and thereby reduce power consumption.

캐시 메모리는 메인 메모리로부터 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치로서, 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다. A cache memory is a buffer-type high-speed storage device filled with commands or programs read from main memory, and is an area in which frequently accessed data or program commands are stored for immediate use without repeatedly searching.

최근 프로세서의 성능이 향상됨에 따라 프로세서 코어와 메인 메모리 간의 병목 현상(bottleneck)을 줄이기 위한 캐시 메모리의 중요성은 날로 커지고 있다.As the performance of recent processors has improved, the importance of cache memory to reduce bottlenecks between processor cores and main memory has been increasing.

또한, 캐시 메모리의 활용도가 점점 높아지고, 캐시의 용량이 점점 커지면서 구조가 갈수록 복잡해짐에 따라 캐시가 전체 칩의 전력 소모에 미치는 영향도 커지고 있다.In addition, as the utilization of the cache memory becomes higher and the capacity of the cache becomes larger and more complicated, the influence of the cache on the power consumption of the entire chip is also increasing.

특히, 최근에는 프로세서 혹은 ASIC의 다이 내부나 패키지 안에 내장된 축전기 방식의 DRAM 형태로 구성되는 eDRAM(Embedded DRAM) 기반의 캐시 메모리가 적용되어 이용되고 있다.Particularly, eDRAM (Embedded DRAM) -based cache memory, which is a capacitor type DRAM built in a die or a package of a processor or an ASIC, is recently applied.

상기한 eDRAM 기반의 캐시 메모리는 SRAM에 비해 밀도가 높아 면적대비 용량이 크기 때문에 좀 더 많은 메모리를 내장해 사용할 수 있으나, 데이터를 유지하기 위해 주기적으로 리프레시(refresh) 동작을 수행하여야만 한다. Since the eDRAM-based cache memory has a higher density than the SRAM and has a larger capacity than the SRAM, more memory can be used, but a refresh operation must be periodically performed to maintain data.

이러한 동적 메모리 장치에서의 리프레시 동작은 전력 소모를 증가시키며, 리프레시 동작이 많을수록 레이턴시(Latency) 및 소모되는 파워가 증가하여 데이터 입출력 속도 및 에너지의 효율성을 저하시키는 문제를 야기한다. The refresh operation in the dynamic memory device increases the power consumption, and the more the refresh operation, the more the latency and the consumed power increase, which causes a problem of lowering the data input / output speed and energy efficiency.

1. 한국공개특허 제10-2016-0111643호 (명칭: 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법)1. Korean Patent Publication No. 10-2016-0111643 (titled Dynamic memory device using page residence information of conversion index buffer and its selective refresh method) 2. 한국등록특허 제10-1436442호 (명칭 : 읽기 및 쓰기 접근에 다른 선택적 리프레시 기능을 구비한 동적 메모리 장치 및 그 선택적 리프레쉬 방법)2. Korean Registered Patent No. 10-1436442 (name: dynamic memory device with optional selective refresh function for read and write access and its selective refresh method)

이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로, 라인 단위의 캐시 데이터를 압축한 후 이를 분할하여 서로 다른 저장 영역에 나누어 저장하고, 이후 사용된 저장 영역에 대해서만 리프레시 처리를 수행함으로써, 최소의 리프레시 동작을 통해 리프레시에 따른 소비전력을 절감할 수 있도록 해 주는 캐시 메모리장치 및 그 방법을 제공함에 기술적 목적이 있다. Accordingly, the present invention has been made in view of the above circumstances, and it is an object of the present invention to provide a method and apparatus for compressing cache data in units of lines and dividing them into different storage areas, The present invention provides a cache memory device and a method thereof that can reduce power consumption according to refreshing through a refresh operation of a cache memory.

상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 캐시 데이터를 캐시 라인 단위로 저장하되, 캐시 라인 단위의 데이터를 저장하는 메모리 어레이는 일정 크기를 갖는 다수개 서브 어레이로 구성되어 캐시 라인 데이터를 서로 다른 서브 어레이에 분할 저장하도록 구성되는 캐시 메모리와, 캐시 데이터를 캐시 라인 단위로 압축하여 기 설정된 크기 단위로 분할한 후, 이를 메모리 어레이의 서로 다른 서브 어레이에 각각 나누어 저장함과 더불어, 캐시 라인 데이터 접근시에는 해당 메모리 어레이의 서브 어레이에 분할 저장된 압축 캐시 라인 데이터를 호출하여 이에 대한 압축 복원처리를 수행하며, 리프레시 수행시에는 리프레시 대상 캐시 라인 데이터가 저장된 해당 메모리 어레이의 서브 어레이에 대해서만 리프레시 처리를 수행하도록 구성되는 캐시 관리 모듈을 포함하여 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치가 제공된다.According to an aspect of the present invention, a memory array for storing cache data in units of cache lines and storing data in units of cache lines includes a plurality of subarrays having a predetermined size, A cache memory configured to divide and store cache data in units of cache lines and to divide the cache data in units of predetermined sizes and to divide the cache data into different subarrays in a memory array, When accessing the memory array, the compressed cache line data divided and stored in the subarray of the memory array is called to perform decompression processing on the compressed cache line data. In the refresh execution, only the subarrays of the memory array in which the refresh target cache line data is stored are refreshed Configure to perform Is a cache memory device having a refresh power savings features, characterized in that comprising: a cache management module is provided.

또한, 상기 하나의 메모리 어레이를 구성하는 다수의 서브 어레이는 동시 접근이 가능하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치가 제공된다.A cache memory device having a refresh power saving function is provided, wherein a plurality of subarrays constituting the one memory array are configured to be accessible simultaneously.

또한, 상기 캐시 메모리는 eDRAM(Embedded Dynamic Random Access Memory) 으로 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치가 제공된다.Also, the cache memory is configured by eDRAM (Embedded Dynamic Random Access Memory), and a cache memory device having a refresh power saving function is provided.

또한, 상기 각 서브 어레이에 대해 일대일 대응되도록 멀티플렉서가 결합되어 구성되고, 리프레시 수행시 캐시 관리 모듈은 리프레시 신호를 해당 메모리 어레이를 구성하는 모든 서브 어레이의 멀티플렉서로 동시에 제공함과 더불어, 해당 메모리 어레이에 저장된 압축된 캐시 라인 데이터 크기에 대응되는 서브 어레이 개수를 확인하여 압축된 캐시 라인 데이터가 저장된 서브 어레이와 결합된 멀티플렉서에 대해서만 리프레시 선택 신호를 제공함으로써, 리프레시 신호와 리프레시 선택신호가 모두 입력되는 멀티플렉서와 결합된 서브 어레이만 리프레시 동작을 수행하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치가 제공된다.In addition, a multiplexer is coupled so as to correspond one-to-one with respect to each of the sub-arrays. In performing the refresh, the cache management module simultaneously provides a refresh signal to the multiplexers of all sub-arrays constituting the memory array, The number of subarrays corresponding to the compressed cache line data size is checked and the refresh selection signal is provided only to the multiplexer associated with the subarray storing the compressed cache line data so that the refresh signal and the refresh selection signal are both input to the multiplexer Wherein the cache memory device is configured to perform a refresh operation only in a sub-array having a refresh power consumption.

또한, 메모리 어레이는 캐시 라인 데이터 크기와 동일한 크기의 저장 영역을 갖도록 구성되고, 메모리 어레이를 구성하는 N개의 서브 어레이는 메모리 어레이 저장 영역을 N 분할한 저장영역을 갖도록 설정되면서 일정한 저장 순서를 갖도록 구성되며, 캐시 관리 모듈은 압축된 캐시 라인 데이터를 서브 어레이의 저장 영역 크기 단위로 나누어 서브 어레이에 기 설정된 저장 순서대로 순차 저장하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치가 제공된다.In addition, the memory array is configured to have a storage area equal in size to the size of the cache line data, and the N subarrays constituting the memory array are configured to have a storage area in which the memory array storage area is divided into N areas, And the cache management module divides the compressed cache line data into sub-array storage area units and sequentially stores the compressed cache line data in a sub-array in a predetermined storage order. do.

또한, 상기 캐리 관리 모듈은 캐시 라인별 압축 데이터 크기에 대응되는 서브 어레이 사용정보가 저장되는 캐시 테이블을 구비하여 구성되고, 캐시 라인 데이터 압축처리 후, 압축된 캐시 라인 데이터를 저장할 수 있는 저장 영역에 대응되는 서브 어레이 개수를 산출하고, 산출된 서브 어레이 개수에 대응되는 서브 어레이 사용정보를 생성하여 캐시 테이블에 저장하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치가 제공된다.In addition, the carry management module includes a cache table in which sub-array usage information corresponding to the compressed data size for each cache line is stored. After the cache line data compression process, the carry management module includes a storage area Arrays corresponding to the calculated number of subarrays, and stores the generated subarray usage information in the cache table. The cache memory device has a function of saving the refresh power consumption.

또한, 상기 캐시 테이블에서 서브 어레이 사용정보는 압축된 캐시 라인 데이터가 저장되어 있는 서브 어레이 개수로서, N개 서브 어레이를 서로 다른 형태로 표현할 수 있는 비트 데이터로 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치가 제공된다.In the cache table, the sub-array usage information is composed of bit data capable of representing N sub-arrays in different forms, wherein the number of sub-arrays in which the compressed cache line data is stored, A cache memory device having a function is provided.

또한, 상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 캐시 메모리와 프로세서 사이에 결합되는 캐시 관리모듈을 통해 프로세서로부터의 요청에 따라 캐시 메모리에 캐시 데이터를 저장 및 호출함과 더불어, 캐시 메모리에 대한 리프레시 동작을 수행하는 캐시 메모리 장치의 리프레시 소비 전력 절감 방법에 있어서, 캐시 관리모듈은 프로세서로부터의 캐시 데이터 저장요구에 따라 캐시 라인 단위로 캐시 데이터를 압축하고, 압축된 캐시 라인 데이터를 캐시 메모리의 캐시 라인 데이터 크기 저장영역을 갖는 메모리 어레이에 저장하되, 압축된 캐시 라인 데이터는 해당 메모리 어레이 저장영역을 N 분할한 서브 어레이의 저장 영역 크기 단위로 분할하여, 해당 메모리 어레이를 구성하는 N개의 서브 어레이에 기 설정된 순서대로 순차 저장하는 캐시 데이터 저장단계와, 캐시 관리모듈에서 프로세서로부터의 캐시 데이터 접근요구에 따라 해당 메모리 어레이의 서브 어레이에 분할 저장된 압축 캐시 라인 데이터를 호출하여 이에 대한 압축 복원처리를 수행한 후 프로세서로 제공하는 캐시 데이터 접근단계 및, 캐시 관리모듈에서 프로세서로부터의 리프레시 요구에 따라 리프레시 대상 캐시 라인 데이터가 저장된 해당 메모리 어레이의 서브 어레이에 대해서만 리프레시 처리를 수행하는 리프레시 단계를 포함하여 구성되는 것을 특징으로 하는 캐시 메모리 장치의 리프레시 소비 전력 절감 방법이 제공된다.According to an aspect of the present invention, there is provided a cache management module coupled between a cache memory and a processor for storing and retrieving cache data in a cache memory in response to a request from a processor, The cache management module compresses cache data on a cache line by cache line basis in response to a cache data storage request from a processor and stores the compressed cache line data in a cache memory The compressed cache line data is divided into storage area size units of the sub-array in which the corresponding memory array storage area is divided into N sub-arrays, and the N sub-arrays serving as the memory array Sequentially store the array in a predetermined order Storing cache data stored in a subarray of the memory array in response to a cache data access request from a processor in a cache management module, performing decompression processing on the compressed cache line data, and providing cache data And a refresh step of performing refresh processing only on a sub-array of the memory array in which the refresh target cache line data is stored in accordance with the refresh request from the processor in the cache management module. A refresh power saving method is provided.

또한, 상기 캐시 관리모듈은 압축된 캐시 라인 데이터 크기에 대응되는 서브 어레이 개수를 산출하고, 산출된 서브 어레이 개수에 대응되는 서브 어레이 사용정보를 생성함과 더불어, 캐시 라인별 서브 어레이 사용정보로 이루어지는 캐시 테이블을 생성하여 관리하는 것을 특징으로 하는 캐시 메모리 장치에서의 리프레시 소비 전력 절감 방법이 제공된다.In addition, the cache management module may calculate the number of subarrays corresponding to the compressed cache line data size, generate subarray usage information corresponding to the calculated number of subarrays, And a cache table is generated and managed in the cache memory device.

또한, 상기 캐시 테이블에서 서브 어레이 사용정보는 압축된 캐시 라인 데이터가 저장되어 있는 서브 어레이 개수로서, N개 서브 어레이를 서로 다른 형태로 표현할 수 있는 비트 데이터로 구성되는 것을 특징으로 하는 캐시 메모리 장치에서의 리프레시 소비 전력 절감 방법이 제공된다.The sub-array usage information in the cache table may include the number of sub-arrays in which compressed cache line data is stored, and bit data that can represent N sub-arrays in different forms. There is provided a method for reducing refresh power consumption.

또한, 상기 캐시 데이터 접근단계는 캐시 관리모듈에서 상기 캐시 테이블을 통해 해당 캐시 라인에 대한 서브 어레이 개수를 확인하는 단계와, 서브 어레이 개수에 해당하는 서브 어레이로만 동시 접근하여 접근된 서브 어레이로부터 분할 저장된 캐시 라인 데이터를 호출하여 조합함으로써 하나의 압축된 캐시 라인 데이터를 생성하는 단계 및, 압축된 캐시 라인 데이터를 압축 복원처리하는 단계를 포함하여 구성되는 것을 특징으로 하는 캐시 메모리 장치에서의 리프레시 소비 전력 절감 방법이 제공된다.The cache data accessing step may include a step of checking the number of sub-arrays for the cache line through the cache table in the cache management module, a step of accessing the sub-arrays corresponding to the number of sub-arrays, Generating one compressed cache line data by calling and combining the cache line data; and compressing and decompressing the compressed cache line data to reduce the refresh power consumption in the cache memory device. Method is provided.

또한, 상기 리프레시 단계는 상기 캐시 관리모듈에서 프로세서로부터의 리프레시 요청에 대해 리프레시 대상 캐시 라인 데이터가 저장된 메모리 어레이의 모든 서브 어레이로 리프레시 신호를 제공하는 단계와, 캐시 관리모듈에서 캐시 테이블을 통해 리프레시될 캐시 라인에 대한 서브 어레이 개수를 확인하는 단계, 서브 어레이 개수에 해당하는 서브 어레이로만 리프레시 선택신호를 제공하는 단계 및, 리프레시 신호와 리프레시 선택신호가 모두 입력된 서브 어레이에 대해서만 리프레시 동작을 수행하는 단계를 포함하여 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 방법이 제공된다.The refresh step may further include the steps of providing a refresh signal to all sub-arrays of the memory array in which the refresh target cache line data is stored for the refresh request from the processor in the cache management module, The method comprising the steps of: determining a number of subarrays for the cache line; providing a refresh selection signal only to the subarrays corresponding to the number of subarrays; performing a refresh operation only on the subarrays to which both the refresh signal and the refresh selection signal are input The method of reducing power consumption of a refreshing power supply is provided.

본 발명에 의하면 라인 단위의 캐시 데이터를 압축한 후 이를 분할하여 서로 다른 저장 영역에 나누어 저장하고, 이후 압축된 캐시 데이터가 저장된 영역에 대해서만 리프레시 처리를 수행함으로써, 최소의 리프레시 동작을 통해 리프레시에 따른 소비전력을 절감할 수 있게 된다. According to the present invention, cache data on a line-by-line basis is compressed, divided and stored in different storage areas, and then only the area where the compressed cache data is stored is subjected to refresh processing, Power consumption can be reduced.

이에 따라 본 발명에 따른 캐시 메모리 장치를 채용하여 구성되는 프로세서의 사용데이터 입출력 속도 및 소비전력의 효율성을 향상시킬 수 있다. Accordingly, the efficiency of use data input / output speed and power consumption of the processor configured by employing the cache memory device according to the present invention can be improved.

도1은 본 발명의 일 실시예에 따른 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치의 구성을 설명하기 위한 도면.
도2와 도3은 도1에 도시된 캐시 메모리(20)의 구조를 설명하기 도면.
도4는 도1에 도시된 캐시 관리 모듈(30)의 내부구성을 기능적으로 분리하여 나타낸 블록구성도.
도5 내지 도7은 도1에 도시된 리프레시 소비전력 절감 기능을 갖는 캐시 메모리장치의 캐시 데이터 저장, 캐시 데이터 접근 및 리프레시 동작을 설명하기 위한 흐름도.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a diagram for explaining a configuration of a cache memory device having a refresh power-saving function according to an embodiment of the present invention; FIG.
2 and 3 are diagrams for explaining the structure of the cache memory 20 shown in FIG.
FIG. 4 is a block diagram showing the internal structure of the cache management module 30 shown in FIG. 1 functionally separated. FIG.
5 to 7 are flowcharts for explaining cache data storage, cache data access, and refresh operation of the cache memory device having the refresh power-saving function shown in FIG.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas. Also, the purpose or effect of the present invention should not be construed as limiting the scope of the present invention, since it does not mean that a specific embodiment should include all or only such effect.

한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present invention should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It should be understood that the singular " include "or" have "are to be construed as including a stated feature, number, step, operation, component, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present invention.

도 1은 본 발명의 일 실시예에 따른 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치의 구성을 설명하기 위한 도면이다.1 is a diagram for explaining a configuration of a cache memory device having a refresh power consumption reduction function according to an embodiment of the present invention.

도1에 도시된 바와 같이 본 발명에 따른 리프레시 소비전력 절감 기능을 갖는 캐시 메모리장치는 프로세서(10)와 캐시 메모리(20) 사이에 캐시 관리모듈(30)를 구비하여 구성된다. 이때, 상기 프로세서(10)는 일반적인 데스크 탑이나, 랩탑 및 모바일 컴퓨팅 시스템 등의 캐시 메모리를 이용하는 각종 장치에 구비되는 프로세서가 될 수 있다. 또한, 상기 캐시 관리모듈(30)과 캐시 메모리(20)는 하나의 캐시 메모리장치로서, 상기 프로세서(10)와 독립적으로 구성되거나 또는 프로세서(10 내에 집적화되어 구비될 수 있음은 물론이다. As shown in FIG. 1, a cache memory device having a refresh power saving function according to the present invention includes a cache management module 30 between a processor 10 and a cache memory 20. At this time, the processor 10 may be a processor included in various devices using a cache memory such as a general desktop, a laptop, and a mobile computing system. The cache management module 30 and the cache memory 20 are one cache memory device and may be configured independently of the processor 10 or may be integrated in the processor 10.

상기 캐시 메모리(20)는 캐시 데이터를 저장하기 위한 것으로, eDRAM(Embedded Dynamic Random Access Memory)으로 구성된다. 상기 캐시 메모리(20)는 캐시 데이터를 라인 크기 단위로 저장한다. 이때, 라인 크기 단위의 캐시 데이터 (이하, "캐시 라인 데이터" 라 칭함)은 압축된 후, 일정 크기로 분할되어 서로 다른 저장 영역(이하 도2의 서브 어레이)에 나누어 저장된다. 또한, 캐시 라인 데이터는 기 설정된 주소 공간을 갖는 태그 영역과 데이터 영역을 포함한다. The cache memory 20 is for storing cache data and is composed of eDRAM (Embedded Dynamic Random Access Memory). The cache memory 20 stores cache data on a line-by-line basis. At this time, the cache data (hereinafter referred to as "cache line data") on a line-by-line basis is divided into a plurality of different storage areas (hereinafter, sub-arrays shown in FIG. Further, the cache line data includes a tag area and a data area having a predetermined address space.

상기 캐시 관리모듈(30)은 프로세서(10)로부터의 캐시 데이터 저장요구에 대해 라인 단위의 캐시 라인 데이터를 압축한 후, 일정 크기 단위로 나누어 캐시 메모리(20)에 저장한다.The cache management module 30 compresses cache line data for each line in response to a cache data storage request from the processor 10, divides the cache line data in units of a predetermined size, and stores the data in the cache memory 20.

또한, 상기 캐시 관리모듈(30)은 프로세서(10)로부터의 캐시 데이터 호출요구에 대해 프로세서(10)로부터 받은 주소와 태그가 일치하는 캐시라인이 있는지를 확인하고, 태그가 일치하는 캐시 라인이 있는 경우에 캐시 메모리(20)에 압축 저장된 해당 캐시 라인 데이터를 호출하여 압축 해제한 후 이를 프로세서(10)로 제공한다.The cache management module 30 checks whether there is a cache line whose tag matches the address received from the processor 10 in response to a cache data call request from the processor 10, It calls and decompresses the corresponding cache line data stored in the cache memory 20, and provides the decompressed cache line data to the processor 10.

또한, 상기 캐시 관리모듈(30)은 프로세서(10)로부터의 리프레시 요구에 대해 프로세서(10)로부터 받은 주소와 태그가 일치하는 리프레시 대상 캐시 라인에 대해 캐시 메모리(20)에서 압축 저장된 해당 캐시 라인 데이터가 저장된 저장 영역에 대해서만 리프레시 동작을 수행하도록 구성된다.The cache management module 30 may be configured to cache cache line data that are stored in the cache memory 20 for the refresh target cache line whose tag matches the address received from the processor 10 for a refresh request from the processor 10 Is configured to perform the refresh operation only for the storage area where the storage area is stored.

도2는 도1에 도시된 캐시 메모리(20)의 구조를 설명하기 도면이다.2 is a view for explaining the structure of the cache memory 20 shown in FIG.

도2에 도시된 바와 같이, 캐시 메모리(20)는 다수의 메모리 뱅크(MB)로 구성되어 한 개의 캐시 리퀘스트에 대해 오직 하나의 메모리 뱅크(MB)만 접근되도록 구성된다. 여기서, 각 메모리 뱅크(MB)들은 동시에 병렬적으로 접근될 수도 있다. As shown in FIG. 2, the cache memory 20 is composed of a plurality of memory banks (MB), and is configured to access only one memory bank (MB) for one cache request. Here, each memory bank (MB) may be simultaneously accessed in parallel.

또한, 메모리 뱅크(MB)들 역시 여러개의 메모리 서브 뱅크(SB)로 나뉘어지며, 메모리 서브 뱅크(SB) 역시 한 번 접근시 오직 한 개의 메모리 서브 뱅크(SB)만 접근되도록 구성된다. Also, the memory banks (MB) are divided into a plurality of memory subbanks (SB), and the memory subbanks (SB) are configured so that only one memory subb bank (SB) is accessed at a time of one access.

또한, 상기 메모리 서브 뱅크(SB)는 캐시 라인 데이터 크기의 저장 영역을 갖는 다수의 메모리 어레이(MA)로 구성되며, 이 역시 한 번 접근시 오직 한 개의 메모리 어레이(MA)만 접근되도록 구성된다. In addition, the memory sub-bank SB is composed of a plurality of memory arrays MA having a storage area of a cache line data size, which is also configured so that only one memory array MA is accessed at a time of access.

또한, 상기 메모리 어레이(MA)는 일정 크기의 저장 영역을 갖는 N개( 이하, N은 자연수)의 서브 어레이(SA)로 구성되고, 서브 어레이(SA)는 메모리 어레이(MA)의 저장 영역을 N 분할한 크기로 저장 영역이 설정된다. 서브 어레이(SA)의 수는 캐시 라인 데이터의 분할 수와 연동하여 다양하게 변경하여 설정할 수 있다. 예컨대, 하나의 메모리 어레이(MA)를 구성하는 서브 어레이(SA)의 총 개수는 4의 배수로 설정될 수 있다. 도2에서 메모리 어레이(MA)는 제1 내지 제4의 4개 서브 어레이(SA1, SA2, SA3, SA4)로 구성되어 있다.The memory array MA is composed of N sub-arrays SA having a storage area of a predetermined size (hereinafter, N is a natural number), and the sub-array SA is a storage area of the memory array MA The storage area is set to the size of N divided. The number of subarrays SA can be varied and set in conjunction with the number of divisions of cache line data. For example, the total number of subarrays SA constituting one memory array MA can be set to a multiple of four. In FIG. 2, the memory array MA is composed of four first to fourth subarrays SA1, SA2, SA3, and SA4.

그리고, 하나의 메모리 어레이(MA) 접근에 대해 해당 메모리 어레이(MA)를 구성하는 모든 서브 어레이(SA)가 동시 접근되도록 구성된다. And, for one memory array (MA) access, all subarrays (SA) constituting the memory array (MA) are configured to be accessed simultaneously.

또한, 상기 서브 어레이(SA)는 일정한 데이터 저장 순서를 갖도록 구성된다. 예컨대, 압축된 캐시 라인 데이터가 3개의 서브 어레이에 나누어 저장되는 경우, 압축된 캐시 라인 데이터의 처음 부분에 해당하는 제1 압축 데이터는 제1 서브 어레이(SA1)에 저장되고, 두번째 부분에 해당하는 제2 압축 데이터는 제2 서브 어레이(SA2)에 저장되며, 마지막 부분에 해당하는 제3 압축 데이터는 제3 서브 어레이(SA3)에 순차 저장된다. In addition, the subarrays SA are configured to have a constant data storage order. For example, when the compressed cache line data is divided into three subarrays, the first compressed data corresponding to the first portion of the compressed cache line data is stored in the first subarray SA1, The second compressed data is stored in the second sub-array SA2, and the third compressed data corresponding to the last portion is sequentially stored in the third sub-array SA3.

또한, 상기 각 서브 어레이에 대해서는 도3에 도시된 바와 같이 제1 내지 제4 멀티플렉서(MUX1,MUX2,MUX3,MUX4)가 일대일 대응되게 결합되어 구성된다. 이때, 제1 내지 제4 멀티플렉서(MUX1,MUX2,MUX3,MUX4)는 캐시 관리모듈(30)로부터 인가되는 리프레시 신호(refresh)와 리프레시 선택신호(select)가 모두 입력되는 경우에 한하여 해당 서브 어레이를 리프레시 대상으로 설정한다. As shown in FIG. 3, the first through fourth multiplexers MUX1, MUX2, MUX3, and MUX4 correspond to each other in a one-to-one correspondence. At this time, the first to fourth multiplexers MUX1, MUX2, MUX3, and MUX4 are turned on only when a refresh signal (refresh) and a refresh selection signal (select) applied from the cache management module 30 are input, Set it as a refresh target.

도4는 도1에 도시된 캐시 관리모듈(30)의 내부구성을 기능적으로 블럭화하여 나타낸 도면이다.FIG. 4 is a functional block diagram of the internal structure of the cache management module 30 shown in FIG.

도4에 도시된 바와 같이 캐시 관리모듈(30)은 압축 처리부(31)와 압축 복원부(32), 캐시 테이블 저장부(33) 및, 제어부(34)를 포함하여 구성된다.As shown in FIG. 4, the cache management module 30 includes a compression processing unit 31, a decompression unit 32, a cache table storage unit 33, and a control unit 34.

압축 처리부(31)는 프로세서(10)로부터 저장 요청되는 캐시 데이터에 대해 기 설정된 캐시 라인 크기 단위로 일련의 압축처리를 수행한다. 이때, 압축 알고리즘은 특정 알고리즘에 한정되지 않고 다양한 알고리즘이 사용될 수 있다. 예컨대, 허프만 코딩이나 base-delta-immediate 등의 압축 방법이 이용될 수 있다.The compression processing unit 31 performs a series of compression processing on the cache data requested to be saved from the processor 10 in units of a predetermined cache line size. At this time, the compression algorithm is not limited to a specific algorithm but various algorithms can be used. For example, compression methods such as Huffman coding or base-delta-immediate may be used.

또한, 상기 압축 처리부(31)는 캐시 라인 데이터에 대한 압축 데이터 크기에 대응되는 압축 정보를 상기 제어부(34)로 제공한다. 예컨대, 64Byte 크기의 캐시 라인 데이터는 해당 캐시 라인 데이터에 따라 최소 1 Byte 에서 최대 64Byte 의 다앙한 크기의 데이터로 압축될 수 있다. The compression processing unit 31 provides the control unit 34 with compression information corresponding to the compressed data size of the cache line data. For example, cache line data having a size of 64 bytes can be compressed into data having a size of at least 1 byte and a maximum size of 64 bytes according to the cache line data.

압축 복원부(32)는 압축된 캐시 라인 데이터를 상기 압축 처리부(31)의 압축 알고리즘에 대응하는 압축 복원 알고리즘을 이용하여 압축 처리전의 원래 캐시 라인 크기의 데이터로 복원한다.The decompression unit 32 restores the compressed cache line data to the data of the original cache line size before the compression processing by using the compression restoration algorithm corresponding to the compression algorithm of the compression processing unit 31. [

캐시 테이블 저장부(33)는 캐시 라인 태그별 압축된 캐시 라인 데이터가 저장되는 서브어레이 사용정보 즉, 서브어레이 개수정보가 저장된다. 이때, 상기 서브 어레이 개수정보는 하나의 메모리 어레이를 구성하는 N개의 서브 어레이를 서로 다른 형태로 표현할 수 있는 비트 데이터로 구성될 수 있다. 예컨대, 하나의 메모리 어레이가 4개의 서브 어레이로 구성되는 경우, 4가지의 서로 다른 표현이 가능한 2비트 데이터로 서브어레이 개수정보가 구성된다. The cache table storage unit 33 stores sub-array usage information, that is, sub-array number information, in which compressed cache line data for each cache line tag is stored. At this time, the sub-array number information may be composed of bit data capable of representing N sub-arrays constituting one memory array in different forms. For example, when one memory array is composed of four subarrays, the subarray number information is composed of two bits of data capable of expressing four different types.

제어부(34)는 상기 프로세서(10)로부터의 캐시 데이터 저장요구에 대해 상기 압축 처리부(31)를 통해 압축된 캐시 라인 데이터를 상기 캐시 메모리(20)의 해당 메모리 어레이(MA)에 저장한다. 이때, 제어부(34)는 압축 처리부(31)로부터 제공되는 압축 데이터 크기 정보를 근거로 압축된 캐시 라인 데이터를 저장할 수 있는 저장 영역에 대응되는 서브 어레이(SA) 개수를 산출하고, 산출된 서브 어레이 개수에 대응되는 서브 어레이 사용정보를 생성하여 캐시 테이블에 저장한다. The control unit 34 stores the cache line data compressed through the compression processing unit 31 in the memory array MA of the cache memory 20 in response to a cache data storage request from the processor 10. [ At this time, the control unit 34 calculates the number of sub-arrays (SA) corresponding to the storage area where the compressed cache line data can be stored based on the compressed data size information provided from the compression processing unit 31, Array usage information corresponding to the number of sub-arrays is generated and stored in the cache table.

또한, 제어부(34)는 압축 처리부(31)를 통해 압축된 캐시 라인 데이터를 서브 어레이(SA)의 저장 영역 크기 단위로 나누어 서브 어레이(SA)에 기 설정된 저장 순서대로 순차 저장하도록 구성된다. The control unit 34 divides the cache line data compressed through the compression processing unit 31 by the storage area size of the sub array SA and sequentially stores the cache line data in the sub array SA in a predetermined storage order.

예를 들면, 캐시 라인 크기가 64Byte 인 경우, 메모리 어레이는 16Byte의 4개 서브 어레이로 구성될 수 있으며, 64Byte 의 캐시 라인 데이터는 압축처리 후 그 크기에 대응하여 필요한 서브 어레이(SA) 수에 따라 제1 내지 제4의 4개 압축 범위로 나뉘어질 수 있다. For example, when the cache line size is 64 bytes, the memory array may be composed of four sub-arrays of 16 bytes, and the 64-byte cache line data is compressed according to the number of subarrays And can be divided into the first to fourth compression ranges.

즉, 제1 압축 범위는 압축 데이터의 크기가 0Byte 이상 ~ 16Byte 미만이고, 제2 압축 범위는 압축 데이터의 크기가 16 Byte 이상 ~ 32Byte 미만이며, 제3 압축 범위는 압축 데이터의 크기가 32 Byte 이상 ~ 48Byte 미만이고, 제4 압축 범위는 압축 데이터의 크기가 48 Byte 이상 ~ 64Byte 이하의 범위로 설정된다.  That is, the size of the compressed data in the first compression range is greater than or equal to 0 bytes and less than 16 bytes, the size of the compressed data in the second compression range is in the range of 16 bytes or more to less than 32 Bytes, To 48 bytes and the compression range of the fourth compression range is set to a range of 48 bytes or more to 64 bytes or less.

그리고, 제어부(34)는 제1 압축 범위에 해당하는 압축 캐시 라인 데이터에 대해서는 1개의 서브 어레이만 필요하므로 "00", 제2 압축 범위에 대해서는 2개의 서브 어레이가 필요하므로 "01", 제3 압축범위에 대해서는 3개의 서브 어레이가 필요하므로 "10", 제4 압축범위에 대해서는 4개의 서브 어레이가 필요하므로 "11" 의 2비트로 구성되는 서브 어레이 개수정보를 생성하여 캐시 테이블을 관리한다. Since the control unit 34 requires only one sub-array for the compressed cache line data corresponding to the first compression range and needs to have two sub-arrays for the second compression range, the control unit 34 sets "01" Since three subarrays are required for the compression range, "10" is required for the fourth compression range, and four subarrays are required for the fourth compression range, so that the subarray number information composed of two bits of "11" is generated to manage the cache table.

또한, 상기 제어부(34)는 상기 프로세서(10)로부터의 캐시 라인 접근 요구에 대해 캐시 테이블을 참조하여 해당 캐시 라인 데이터가 압축 저장된 서브 어레이(SA)로부터 압축된 캐시 라인 데이터를 호출한 후 이를 압축 복원부(32)로 제공하고, 이에 대해 압축 복원부(32)로부터 제공되는 압축전 상태로 복원된 캐시 라인 데이터를 프로세서(10)로 제공한다. The control unit 34 refers to the cache table for the cache line access request from the processor 10 and calls the cache line data compressed from the subarray SA in which the cache line data is stored in compression, To the restoring unit 32, and provides the cache line data restored to the pre-compression state provided from the decompression restoring unit 32 to the processor 10. [

또한, 상기 제어부(34)는 상기 프로세서(10)로부터의 리프레시 요구에 대해 캐시 테이블을 참조하여 압축된 리프레시 대상 캐시 라인 데이터가 실제 저장된 서브 어레이(SA)에 대해서만 리프레시 선택신호(select)를 제공함으로써, 리프레시 대상 캐시 라인 데이터가 저장된 서브 어레이(SA)에 대해서만 리프레시 동작을 수행한다.The control unit 34 refers to the cache table for the refresh request from the processor 10 and provides the refresh selection signal select only to the sub array SA in which the compressed refresh target cache line data is actually stored , The refresh operation is performed only on the subarray (SA) in which the refresh target cache line data is stored.

즉, 도3을 참고하면 해당 캐시 라인이 저장된 메모리 어레이(MA)의 제1 내지 제4 서브 어레이(SA1 ~ SA4)와 결합되는 제1 내지 제4 멀티플렉서(MUX1 ~ MUX4)로 리프레시(refresh) 신호가 모두 인가되고, 실제 압축된 캐시 라인 데이터가 분할 저장된 서브 어레이(SA)의 멀티플렉서(MUX)로만 리프레시 선택신호(select)가 인가된다. 따라서, 리프레시 신호(refresh)와 리프레시 선택신호(select)가 모두 입력되는 멀티플렉서와 결합된 서브 어레이(SA)만이 리프레시 대상으로 최종 결정된다. Referring to FIG. 3, the first to fourth multiplexers MUX1 to MUX4, which are coupled to the first to fourth subarrays SA1 to SA4 of the memory array MA in which the corresponding cache line is stored, And the refresh selection signal select is applied only to the multiplexer (MUX) of the sub array SA in which the actually compressed cache line data is divided and stored. Therefore, only the sub-array SA coupled with the multiplexer into which both the refresh signal (refresh) and the refresh selection signal (select) are inputted is finally determined as the refresh target.

이어, 상기한 구성으로 된 리프레시 소비전력 절감 기능을 갖는 캐시 메모리장치의 동작을 도5 내지 도7에 도시된 흐름도를 참조하여 설명한다.Next, the operation of the cache memory device having the above-described configuration with the refresh power consumption reduction function will be described with reference to the flowcharts shown in FIGS. 5 to 7. FIG.

기본적으로 본 발명에 따른 리프레시 소비전력 절감 기능을 갖는 캐시 메모리장치의 동작은 캐시 데이터 저장 과정(도5)과, 캐시 데이터 접근 과정(도6) 및, 캐시 데이터 리프레시 과정(도7)을 포함하여 구성된다.Basically, the operation of the cache memory device having the refresh power saving function according to the present invention includes a cache data storing process (FIG. 5), a cache data accessing process (FIG. 6), and a cache data refreshing process .

도5에 도시된 바와 같이 캐시 데이터 저장 과정은 프로세서(10)로부터 캐시 데이터 저장 요구가 있게 되면(ST110), 제어부(34)는 캐시 데이터를 캐시라인 단위로 압축한다(ST120).As shown in FIG. 5, when a cache data storage request is received from the processor 10 (ST110), the controller 34 compresses the cache data in units of cache lines (ST120).

그리고, 제어부(34)는 압축된 캐시 라인 데이터의 크기에 대응하여 사용 요구되는 서브 어레이 개수를 산출하고, 이를 근거로 캐시 테이블을 업데이트한다(ST130,ST140). Then, the controller 34 calculates the number of sub-arrays to be used corresponding to the size of the compressed cache line data, and updates the cache table based on the calculated number of sub-arrays (ST140, ST140).

또한, 제어부(34)는 압축된 캐시 라인 데이터를 분할하여 해당 캐시 메모리(33)의 메모리 어레이에 저장하되, 해당 메모리 어레이를 구성하는 서브 어레이에 기 설정된 저장 순서에 따라 순차로 나누어 저장한다(ST150). In addition, the controller 34 divides the compressed cache line data and stores the divided data in the memory array of the cache memory 33. The controller 34 sequentially stores the divided data in the sub-arrays constituting the memory array in accordance with a preset storage order (ST150 ).

하기 표1은 압축 캐시 라인 데이터 크기에 따른 서브 어레이 개수를 예시한 것으로, 원본 캐시 라인 데이터의 크기가 64Byte 이고, 메모리 어레이(MA)는 16Byte 저장 영역을 갖는 4개의 서브 어레이(SA)로 이루어지는 구성에 대한 것이다. Table 1 below illustrates the number of subarrays according to the size of compressed cache line data. The size of original cache line data is 64 bytes, and the memory array MA is composed of 4 subarrays (SA) having 16 byte storage areas. Lt; / RTI >

압축된 캐시라인 데이터Compressed cache line data 사용되는 서브어레이의 개수Number of sub-arrays used 0Byte ~ 16Byte 미만 0Byte ~ 16Byte 1One 16Byte ~ 32Byte 미만Less than 16Byte ~ 32Byte 22 32Byte ~ 48Byte 미만Less than 32Byte ~ 48Byte 33 48Byte ~ 64Byte 미만48Byte ~ 64Byte 44

즉, 캐시 라인 데이터를 압축한 후, 이를 서브 어레이 저장 영역 크기 단위로 분할하여 나누어 저장함으로써, 독립적으로 제어가 가능한 캐시 라인 데이터에 대한 저장 영역을 최소화하게 된다. That is, after compressing the cache line data, the cache line data is divided and divided into sub-array storage area units, thereby minimizing the storage area for independently controllable cache line data.

도6에 도시된 바와 같이 캐시 데이터 접근 과정은, 캐시 라인 데이터가 압축되어 캐시 메모리(20)에 저장된 상태에서, 프로세서(10)로부터 캐시 데이터 접근 요구가 있게 되면, 제어부(34)는 캐시 테이블을 통해 해당 캐시 라인 데이터가 실제 저장된 서브 어레이 개수정보를 확인한다(ST210, ST220).6, when the cache data access request is received from the processor 10 in a state where the cache line data is compressed and stored in the cache memory 20, the control unit 34 reads the cache table Array number information that actually stores the cache line data (ST210, ST220).

이어, 제어부(34)는 해당 캐시 라인 데이터가 압축 저장된 메모리 어레이에 접근하되, 실제 캐시 라인 데이터가 저장된 해당 서브 어레이 개수 만큼 서브 어레이 저장 순서에 따라 순차 또는 동시 접근하여 분할 저장된 캐시 라인 데이터를 호출함과 더불어, 이들을 조합함으로써 하나의 압축된 캐시 라인 데이터를 생성하고, 압축 복원부(32)를 통해 이에 대한 압축 복원처리를 수행한다(ST230 ~ST250).Next, the controller 34 accesses the memory array in which the corresponding cache line data is stored, and calls the cache line data divided and stored by sequentially or simultaneously approaching the sub-array storing order by the number of the corresponding sub-array in which the actual cache line data is stored And combines them to generate one compressed cache line data, and performs compression decompression processing on the compressed cache line data through the decompression unit 32 (ST230 to ST250).

그리고, 제어부(34)는 원래 캐시 라인 크기로 압축 복원된 캐시 라인 데이터를 프로세서(10)로 제공한다(ST260).Then, the controller 34 provides the cache line data decompressed to the original cache line size to the processor 10 (ST260).

도7에 도시된 바와 같이 캐시 데이터 리프레시 과정은, 캐시 라인 데이터가 압축되어 캐시 메모리(20)에 저장된 상태에서, 프로세서(10)로부터 캐시 데이터 리프레시 요구가 있게 되면, 제어부(34)는 캐시 테이블을 통해 리프레시 대상 캐시 라인에 대해 해당 캐시 라인 데이터가 실제 저장된 서브 어레이 개수정보를 확인한다(ST310, ST320).7, when a cache data refresh request is issued from the processor 10 in a state where the cache line data is compressed and stored in the cache memory 20, the control unit 34 reads the cache table Array number information in which the corresponding cache line data is actually stored with respect to the refresh target cache line (ST310 and ST320).

이어, 제어부(34)는 리프레시 대상 캐시 라인 데이터가 저장된 메모리 어레이(MA)로 리프레시 신호(refresh)를 제공함과 더불어, 캐시 라인에 대해 해당 캐시 라인 데이터가 실제 저장된 서브 어레이 개수만큼 리프레시 선택신호(select)를 생성하여 해당 캐시 라인 데이터가 저장된 서브 어레이(SA)로 각각 제공한다(ST330, ST340). 이때, 제어부(34)는 도3에서 해당 서브 어레이(SA)에 결합된 멀티플렉서(MUX)로 리프레시 신호(refresh)와 리프레시 선택신호(select)를 제공함으로써, 실제 캐시 라인 데이터가 저장된 서브 어레이(SA)들에 대해서만 리프레시 동작을 수행하게 된다. The control unit 34 provides a refresh signal refresh to the memory array MA in which the cache line data to be refreshed is stored and outputs a refresh selection signal select And provides them to the subarrays SA in which the corresponding cache line data is stored (ST330 and ST340). At this time, the controller 34 provides a refresh signal and a refresh selection signal (select) to a multiplexer (MUX) coupled to the sub-array SA in FIG. 3, Only the refresh operation is performed.

따라서, 종래 캐시 라인 데이터를 메모리 어레이(MA)에 그대로 저장하는 캐시 메모리 장치에 비하여 보다 적은 저장 영역에 대한 리프레시 동작을 수행하게 되므로 리프레시 에너지가 절감되는 효과가 있다. Therefore, the refresh operation is performed for a smaller storage area than the cache memory device in which the conventional cache line data is stored in the memory array MA as it is, thereby reducing the refresh energy.

10 : 프로세서, 20 : 캐시 메모리,
30 : 캐시 관리 모듈,
31 : 압축 처리부, 32 : 압축 복원부,
33 : 캐시 테이블 저장부, 34 : 제어부.
10: processor, 20: cache memory,
30: cache management module,
31: compression processing unit, 32: compression decompression unit,
33: cache table storage unit, 34: control unit.

Claims (12)

캐시 데이터의 저장을 요청하고 상기 저장된 캐시 데이터를 호출하는 프로세서;
상기 프로세서의 요청에 따라 캐시 데이터를 캐시 라인 단위로 저장하되, 캐시 라인 단위의 데이터를 저장하는 메모리 어레이는 일정 크기를 갖는 다수개 서브 어레이로 구성되어 캐시 라인 데이터를 서로 다른 서브 어레이에 분할 저장하도록 구성되는 캐시 메모리; 및
캐시 데이터를 캐시 라인 단위로 압축하여 기 설정된 크기 단위로 분할한 후, 이를 메모리 어레이의 서로 다른 서브 어레이에 각각 나누어 저장함과 더불어, 상기 프로세서의 호출에 따라 캐시 라인 데이터 접근시에는 해당 메모리 어레이의 서브 어레이에 분할 저장된 압축 캐시 라인 데이터를 호출하여 이에 대한 압축 복원처리를 수행하는 캐시 관리 모듈;을 포함하고,
상기 캐시 관리 모듈은,
상기 프로세서의 리프레시 명령에 따라 상기 프로세서로 수신한 주소와 태그가 일치하는 리프레시 대상 캐시 라인 데이터가 저장된 서브 어레이에 대해 리프레시 신호와 리프레시 선택신호가 모두 인가되는 경우 상기 리프레시 대상 캐시 라인 데이터가 저장된 서브 어레이에 대해서만 리프레시 처리를 수행하는, 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치.
A processor for requesting storage of cache data and calling the stored cache data;
The memory array, which stores cache data in units of cache lines in response to a request from the processor, is composed of a plurality of subarrays having a predetermined size, and the cache line data is divided and stored in different subarrays A cache memory configured; And
The cache data is divided into units of a predetermined size by compressing the cache data in units of cache lines and then divided into different subarrays of the memory array and stored in the subarrays of the memory array, And a cache management module for calling compression cache line data divided and stored in the array to perform a decompression process on the compressed cache line data,
The cache management module comprising:
When a refresh signal and a refresh selection signal are both applied to a sub array in which refresh target cache line data having the same tag as an address received by the processor is stored in accordance with a refresh command of the processor, The cache memory device having a refresh power saving function.
제1항에 있어서,
하나의 메모리 어레이를 구성하는 다수의 서브 어레이는 동시 접근이 가능하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치.
The method according to claim 1,
And a plurality of subarrays constituting one memory array are configured to be able to access simultaneously.
제1항에 있어서,
상기 캐시 메모리는 eDRAM(Embedded Dynamic Random Access Memory)으로 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치.
The method according to claim 1,
Wherein the cache memory is comprised of eDRAM (Embedded Dynamic Random Access Memory).
제1항에 있어서,
상기 각 서브 어레이에 대해 일대일 대응되도록 멀티플렉서가 결합되어 구성되고,
리프레시 수행시 캐시 관리 모듈은 상기 리프레시 신호를 해당 메모리 어레이를 구성하는 모든 서브 어레이의 멀티플렉서로 동시에 제공함과 더불어, 해당 메모리 어레이에 저장된 압축된 캐시 라인 데이터 크기에 대응되는 서브 어레이 개수를 확인하여 압축된 캐시 라인 데이터가 저장된 서브 어레이와 결합된 멀티플렉서에 대해서만 리프레시 선택 신호를 제공함으로써, 상기 리프레시 신호와 상기 리프레시 선택신호가 모두 입력되는 멀티플렉서와 결합된 서브 어레이만 리프레시 동작을 수행하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치.
The method according to claim 1,
A multiplexer is coupled and configured to correspond one-to-one to the sub-arrays,
The cache management module simultaneously provides the refresh signal to the multiplexers of all the subarrays constituting the memory array and checks the number of subarrays corresponding to the size of the compressed cache line data stored in the memory array, Only the sub-arrays combined with the multiplexer into which both the refresh signal and the refresh selection signal are inputted are configured to perform the refresh operation by providing the refresh selection signal only to the multiplexer combined with the sub-array in which the cache line data is stored A cache memory device having a refresh power saving function.
제1항에 있어서,
메모리 어레이는 캐시 라인 데이터 크기와 동일한 크기의 저장 영역을 갖도록 구성되고,
메모리 어레이를 구성하는 N개의 서브 어레이는 메모리 어레이 저장 영역을 N 분할한 크기의 저장 영역을 갖도록 설정되면서, 일정한 저장 순서를 갖도록 구성되며,
캐시 관리 모듈은 압축된 캐시 라인 데이터를 서브 어레이의 저장 영역 크기 단위로 나누어 서브 어레이에 기 설정된 저장 순서대로 순차 저장하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치.
The method according to claim 1,
The memory array is configured to have a storage area equal in size to the cache line data size,
The N subarrays constituting the memory array are configured to have a predetermined storage order while being set to have a storage area of a size obtained by dividing the memory array storage area by N,
Wherein the cache management module is configured to divide the compressed cache line data into units of storage area size of the sub-array, and sequentially store the compressed cache line data in the sub-array in a preset storage order.
제1항에 있어서,
상기 캐시 관리 모듈은 캐시 라인별 압축 데이터 크기에 대응되는 서브 어레이 사용정보가 저장되는 캐시 테이블을 구비하여 구성되고,
캐시 라인 데이터 압축처리 후, 압축된 캐시 라인 데이터를 저장할 수 있는 저장 영역에 대응되는 서브 어레이 개수를 산출하고, 산출된 서브 어레이 개수에 대응되는 서브 어레이 사용정보를 생성하여 캐시 테이블에 저장하도록 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치.
The method according to claim 1,
Wherein the cache management module includes a cache table in which sub-array usage information corresponding to a size of compressed data for each cache line is stored,
After the cache line data compression processing, the number of subarrays corresponding to the storage area capable of storing the compressed cache line data is calculated, and the subarray usage information corresponding to the calculated number of subarrays is generated and stored in the cache table Wherein the cache memory device has a refresh power consumption reduction function.
제6항에 있어서,
상기 캐시 테이블에서 서브 어레이 사용정보는 압축된 캐시 라인 데이터가 저장되어 있는 서브 어레이 개수로서, N개 서브 어레이를 서로 다른 형태로 표현할 수 있는 비트 데이터로 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 기능을 갖는 캐시 메모리장치.
The method according to claim 6,
Wherein the sub-array usage information in the cache table is a number of sub-arrays in which compressed cache line data is stored, and bit data capable of representing N sub-arrays in different forms. / RTI >
캐시 메모리와 프로세서 사이에 결합되는 캐시 관리모듈을 통해 프로세서로부터의 요청에 따라 캐시 메모리에 캐시 데이터를 저장 및 호출함과 더불어, 캐시 메모리에 대한 리프레시 동작을 수행하는 캐시 메모리 장치의 리프레시 소비 전력 절감 방법에 있어서,
캐시 관리모듈은 상기 프로세서로부터의 캐시 데이터 저장요구에 따라 캐시 라인 단위로 캐시 데이터를 압축하고, 압축된 캐시 라인 데이터를 캐시 메모리의 캐시 라인 데이터 크기 저장영역을 갖는 메모리 어레이에 저장하되, 압축된 캐시 라인 데이터는 해당 메모리 어레이 저장영역을 N 분할한 서브 어레이의 저장 영역 크기 단위로 분할하여, 해당 메모리 어레이를 구성하는 N개의 서브 어레이에 기 설정된 순서대로 순차 저장하는 캐시 데이터 저장단계와,
상기 캐시 관리모듈에서 상기 프로세서로부터의 캐시 데이터 접근요구에 따라 해당 메모리 어레이의 서브 어레이로부터 분할 저장된 압축 캐시 라인 데이터를 호출하여 이에 대한 압축 복원처리를 수행한 후 프로세서로 제공하는 캐시 데이터 접근단계 및,
상기 캐시 관리모듈에서 상기 프로세서로부터의 리프레시 요구에 따라 상기 프로세서가 수신한 주소와 태그가 일치하는 리프레시 대상 캐시 라인 데이터가 저장된 서브 어레이에 대해 리프레시 신호와 리프레시 선택신호가 모두 인가되는 경우 상기 리프레시 대상 캐시 라인 데이터가 저장된 서브 어레이에 대해서만 리프레시 처리를 수행하는 리프레시 단계를 포함하여 구성되는 것을 특징으로 하는 캐시 메모리 장치의 리프레시 소비 전력 절감 방법.
A method for saving refresh power consumption of a cache memory device performing a refresh operation on a cache memory in addition to storing and recalling cache data in a cache memory in response to a request from the processor through a cache management module coupled between the cache memory and the processor In this case,
The cache management module compresses the cache data in units of cache lines in response to a cache data storage request from the processor and stores the compressed cache line data in a memory array having a cache line data size storage area of the cache memory, A cache data storage step of dividing the memory array storage area into N storage sub-arrays divided into N storage sub-arrays and sequentially storing the N sub-arrays constituting the memory array in a predetermined order;
A cache data access step of causing the cache management module to call decompression cache line data divided and stored from a subarray of the memory array according to a cache data access request from the processor,
When the cache management module receives a refresh signal and a refresh selection signal for a sub-array in which refresh target cache line data having a tag identical to an address received by the processor is stored in response to a refresh request from the processor, And a refresh step of performing refresh processing only on the sub-array in which the line data is stored.
제8항에 있어서,
상기 캐시 관리모듈은 압축된 캐시 라인 데이터 크기에 대응되는 서브 어레이 개수를 산출하고, 산출된 서브 어레이 개수에 대응되는 서브 어레이 사용정보를 생성함과 더불어,
캐시 라인별 서브 어레이 사용정보로 이루어지는 캐시 테이블을 생성하여 관리하는 것을 특징으로 하는 캐시 메모리 장치에서의 리프레시 소비 전력 절감 방법.
9. The method of claim 8,
Wherein the cache management module calculates the number of subarrays corresponding to the compressed cache line data size and generates subarray usage information corresponding to the calculated number of subarrays,
And a cache table including sub-array usage information for each cache line is generated and managed.
제9항에 있어서,
상기 캐시 테이블에서 서브 어레이 사용정보는 압축된 캐시 라인 데이터가 저장되어 있는 서브 어레이 개수로서, N개 서브 어레이를 서로 다른 형태로 표현할 수 있는 비트 데이터로 구성되는 것을 특징으로 하는 캐시 메모리 장치에서의 리프레시 소비 전력 절감 방법.
10. The method of claim 9,
Wherein the sub-array usage information in the cache table is the number of sub-arrays in which compressed cache line data is stored, and bit data capable of representing N sub-arrays in different forms. How to save power consumption.
제9항에 있어서,
상기 캐시 데이터 접근단계는 캐시 관리모듈에서 상기 캐시 테이블을 통해 해당 캐시 라인에 대한 서브 어레이 개수를 확인하는 단계와, 서브 어레이 개수에 해당하는 서브 어레이로만 동시 접근하여 접근된 서브 어레이로부터 분할 저장된 캐시 라인 데이터를 호출하여 조합함으로써 하나의 압축된 캐시 라인 데이터를 생성하는 단계 및, 압축된 캐시 라인 데이터를 압축 복원처리하는 단계를 포함하여 구성되는 것을 특징으로 하는 캐시 메모리 장치에서의 리프레시 소비 전력 절감 방법.
10. The method of claim 9,
The cache data accessing step includes: checking a number of sub-arrays for a corresponding cache line through the cache table in a cache management module; checking a number of sub-arrays corresponding to the number of sub- Generating one compressed cache line data by calling and combining the data; and decompressing the compressed cache line data. ≪ Desc / Clms Page number 19 >
제9항에 있어서,
상기 리프레시 단계는 상기 캐시 관리모듈에서 프로세서로부터의 리프레시 요청에 대해 리프레시 대상 캐시 라인 데이터가 저장된 메모리 어레이의 모든 서브 어레이로 상기 리프레시 신호를 제공하는 단계와, 캐시 관리모듈에서 캐시 테이블을 통해 리프레시될 캐시 라인에 대한 서브 어레이 개수를 확인하는 단계, 서브 어레이 개수에 해당하는 서브 어레이로만 리프레시 선택신호를 제공하는 단계 및, 상기 리프레시 신호와 상기 리프레시 선택신호가 모두 입력된 서브 어레이에 대해서만 리프레시 동작을 수행하는 단계를 포함하여 구성되는 것을 특징으로 하는 리프레시 소비 전력 절감 방법.
10. The method of claim 9,
Wherein the refresh step comprises the steps of: providing the refresh signal to all sub-arrays of a memory array in which the refresh target cache line data is stored for a refresh request from the processor in the cache management module; A step of providing a refresh selection signal only to the subarrays corresponding to the number of subarrays, and a step of performing a refresh operation only on the subarrays to which both the refresh signal and the refresh selection signal are inputted Wherein the step of controlling the refresh power consumption comprises the steps of:
KR1020160161010A 2016-11-30 2016-11-30 Cache memory apparatus and method having function of saving energy for refresh KR101863590B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160161010A KR101863590B1 (en) 2016-11-30 2016-11-30 Cache memory apparatus and method having function of saving energy for refresh

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160161010A KR101863590B1 (en) 2016-11-30 2016-11-30 Cache memory apparatus and method having function of saving energy for refresh

Publications (1)

Publication Number Publication Date
KR101863590B1 true KR101863590B1 (en) 2018-07-02

Family

ID=62914255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160161010A KR101863590B1 (en) 2016-11-30 2016-11-30 Cache memory apparatus and method having function of saving energy for refresh

Country Status (1)

Country Link
KR (1) KR101863590B1 (en)

Similar Documents

Publication Publication Date Title
KR102048762B1 (en) Method, device and system for refreshing dynamic random access memory(dram)
US10223273B2 (en) Memory access method, storage-class memory, and computer system
KR101477849B1 (en) Independently controllable and reconfigurable virtual memory devices in memory modules that are pin-compatible with standard memory modules
KR101665611B1 (en) Computer system and method of memory management
US10019375B2 (en) Cache device and semiconductor device including a tag memory storing absence, compression and write state information
US10061709B2 (en) Systems and methods for accessing memory
TW201737095A (en) Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
CN104714903A (en) Storage system
US10048868B2 (en) Replacement of a block with a compressed block to increase capacity of a memory-side cache
US20210056030A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines
JPWO2015114829A1 (en) Information processing device
KR20220036752A (en) Memory device for processing row-hammer refresh operation and method of opertating thereof
AU2014301874B2 (en) Data writing method and memory system
KR101863590B1 (en) Cache memory apparatus and method having function of saving energy for refresh
WO2024087559A1 (en) Memory access method and system, and apparatus and electronic device
US20210200679A1 (en) System and method for mixed tile-aware and tile-unaware traffic through a tile-based address aperture
JPH10260896A (en) Semiconductor device
Gulur et al. Row-buffer reorganization: simultaneously improving performance and reducing energy in drams
CN102073604A (en) Method, device and system for controlling read and write of synchronous dynamic memory
WO2022160321A1 (en) Method and apparatus for accessing memory
US20150006935A1 (en) Method for controlling cache memory and apparatus for the same
CN116529821A (en) Method and system for refreshing memory of portable computing device
CN117075798A (en) eMMC array read operation data alignment control device and control method thereof
KR20160110690A (en) Method for DRAM Memory Address Mapping and Memory System Using the Method
TW202121178A (en) Device and method for controlling data reading and writing

Legal Events

Date Code Title Description
GRNT Written decision to grant