KR102317248B1 - Cache management apparatus and method of using partial reconfiguration - Google Patents

Cache management apparatus and method of using partial reconfiguration Download PDF

Info

Publication number
KR102317248B1
KR102317248B1 KR1020140030971A KR20140030971A KR102317248B1 KR 102317248 B1 KR102317248 B1 KR 102317248B1 KR 1020140030971 A KR1020140030971 A KR 1020140030971A KR 20140030971 A KR20140030971 A KR 20140030971A KR 102317248 B1 KR102317248 B1 KR 102317248B1
Authority
KR
South Korea
Prior art keywords
cache
centralized access
access area
sets
ways
Prior art date
Application number
KR1020140030971A
Other languages
Korean (ko)
Other versions
KR20150108148A (en
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 KR1020140030971A priority Critical patent/KR102317248B1/en
Publication of KR20150108148A publication Critical patent/KR20150108148A/en
Application granted granted Critical
Publication of KR102317248B1 publication Critical patent/KR102317248B1/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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

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

Abstract

캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법을 개시한다. n-웨이(way) 세트 연관 캐시의 형태를 재구성 캐시 제어 장치에 있어서, 캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 하는 모니터링부와 상기 집중 접근 영역에 해당되는 세트들의 수와 상기 캐시의 웨이(way) 수에 기초하여 상기 캐시를 부분적으로 재구성하는 재구성부 및 상기 집중 접근 영역에 매핑되는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당하는 할당부를 포함한다.Disclosed are a cache control apparatus and a cache management method using partially associative reconfiguration of a cache. In the cache control apparatus for reconfiguring the form of an n-way set associative cache, a monitoring unit for monitoring a centralized access region composed of intensively used sets among sets included in a cache and the centralized access region Allocating the address space of the main memory mapped to the centralized access area and the reconfiguration unit partially reconfiguring the cache based on the number of sets corresponding to and the number of ways of the cache to the reconfigured portion of the cache Includes allotment.

Description

캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법{CACHE MANAGEMENT APPARATUS AND METHOD OF USING PARTIAL RECONFIGURATION} CACHE MANAGEMENT APPARATUS AND METHOD OF USING PARTIAL RECONFIGURATION

본 발명은 캐시 제어 장치 및 그 방법에 관한 것으로 구체적으로, 멀티코어 마이크플랫폼에서 이용되는 캐시 제어 장치 및 그 방법에 관한 것이다.
The present invention relates to a cache control apparatus and method, and more particularly, to a cache control apparatus and method used in a multicore microphone platform.

캐시(CACHE)는 컴퓨터의 프로세서 및 메인 메모리 사이에 위치하여, 프로세서에 대응하는 속도로 동작하는 고속의 메모리이다. 캐시는 메인 메모리 내에 저장된 데이터의 일부를 저장할 수 있고, 캐시 내에 저장된 데이터는 메인 메모리 내에 저장된 데이터에 비해 더 빠르게 접근될 수 있다. 이러한 캐시를 이용하면 빠른 속도의 프로세서 및 느린 속도의 메인 메모리 간의 속도 차이에 의해 발생하는 병목 현상을 완화시킬 수 있다.The cache (CACHE) is located between the processor and the main memory of the computer, and is a high-speed memory operating at a speed corresponding to the processor. The cache may store a portion of data stored in the main memory, and the data stored in the cache may be accessed faster than data stored in the main memory. Using such a cache can alleviate the bottleneck caused by the speed difference between the fast processor and the slow main memory.

캐시는 컴퓨터 시스템의 성능에 큰 영향을 준다. 최근 공정 기술의 발달로 TSV(Through Silicon Via)를 이용하여 DRAM, PCRAM 등 여러 종류의 메모리를 캐시로 사용하려는 연구가 활발히 진행되고 있어, 추후 캐시의 크기는 계속 증가할 전망이다. 여러 가지 어플리케이션의 메모리 접근 패턴을 수용하기 위해서는 크기가 큰 캐시가 필요하지만 캐시 크기의 증가는 회로 면적과 소비 전력의 증가를 야기하기 때문에 적절한 크기로 설계를 하여야 한다. Cache has a huge impact on the performance of a computer system. Recently, with the development of process technology, research to use various types of memory such as DRAM and PCRAM as a cache using TSV (Through Silicon Via) is being actively conducted, and the size of the cache is expected to continue to increase in the future. In order to accommodate the memory access patterns of various applications, a large cache is required, but since an increase in the cache size causes an increase in circuit area and power consumption, an appropriate size must be designed.

크기가 큰 캐시의 엔트리 활용도를 관찰하여 보면 모든 영역의 세트가 고루 사용되지 않고 특정 영역의 세트들이 집중적으로 사용되어 데이터 미스가 발생하는 것을 알 수 있다. 또한 특정 영역의 세트는 데이터의 공간적 지역성 (Spatial locality) 때문에 공간적 상관관계를 가진다. By observing the utilization of entries in a large cache, it can be seen that data misses occur because sets of specific regions are not used evenly, and sets of specific regions are used intensively. Also, a set of specific regions has a spatial correlation due to the spatial locality of the data.

캐시의 데이터 미스가 발생하는 현상을 해결하기 위해서 일반적으로 캐시는 집합 연관(Set Associative)사상 방법을 사용한다. 집합 연관 사상 캐시에는 메인 메모리의 각 블록이 배치될 수 있는 고정된 수만큼의 위치(예컨대, 최소 2개)가 존재한다. 즉, 메모리의 각 블록당 n개의 배치 가능한 위치를 갖는 집합연관 캐시를 n-way 집합연관 캐시라고 부른다. In order to solve the phenomenon of data miss in the cache, the cache generally uses a set associative mapping method. In the aggregate associative mapping cache, there is a fixed number of locations (eg, at least two) in which each block of main memory can be placed. That is, an aggregation associative cache having n placeable locations for each block of memory is called an n-way aggregation associative cache.

n-way 집합연관 캐시는 각각 n개의 블록으로 이루어진 다수의 집합들로 구성되어 있다. 메인 메모리상의 각 블록은 인덱스 필드에 의해서 캐시 상의 하나의 집합으로 사상되고, 집합내의 모든 엔트리들은 프로세서로부터 요청 받은 데이터와 일치하는 것을 찾기 위해 비교된다. The n-way aggregation associative cache is composed of multiple sets of n blocks each. Each block in main memory is mapped into a set in the cache by an index field, and all entries in the set are compared to find a match for the data requested by the processor.

하지만, 연관이 많아지면 동시에 일치하는 엔트리를 찾기 위해 접근하는 엔트리 숫자가 늘어나 캐시의 소비 전력이 높아지고, 서칭 레이턴시(Searching Latency)가 늘어나는 문제가 있다. 이 때문에, 높은 캐시 효율을 기대하기는 어려운 실정이다.
However, as the number of associations increases, the number of entries simultaneously accessed to find matching entries increases, which increases cache power consumption and increases the searching latency. For this reason, it is difficult to expect high cache efficiency.

본 발명의 일실시예 에서는 용량이 큰 캐시 메모리의 특정 엔트리만 집중적으로 사용되어 캐시 메모리의 많은 부분이 쓰이지 않고 낭비되는 현상을 완화시키는 것을 목적으로 한다.In one embodiment of the present invention, only a specific entry of a large-capacity cache memory is intensively used, and thus a large portion of the cache memory is not used and is wasted.

아울러, 집중 접근되는 캐시의 세트(set) 수와 캐시의 웨이(way)수에 기초하여 캐시를 부분적으로 재구성함으로써 캐시의 미스율(Miss Rate)을 감소시키는 캐시 제어 장치 및 캐시 관리 방법을 제공한다. In addition, there are provided a cache control apparatus and a cache management method for reducing a miss rate of a cache by partially reconfiguring a cache based on the number of cache sets and the number of ways of the cache to be accessed intensively.

본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
Objects of the present invention are not limited to the objects mentioned above, and other objects not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 면에 따른 n-웨이(way) 세트 연관 캐시의 형태를 재구성 캐시 제어 장치는 n-웨이(way)(n은 1이상의 자연수) 세트 연관 캐시의 형태를 재구성 캐시 제어 장치에 있어서, 캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 하는 모니터링부, 상기 집중 접근 영역에 해당되는 세트들의 수와 상기 캐시의 웨이(way) 수에 기초하여 상기 캐시를 부분적으로 재구성하는 재구성부 및 상기 집중 접근 영역에 매핑되는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당하는 할당부를 포함한다.In order to achieve the object of the present invention described above, the cache control apparatus reconfigures the form of an n-way set associative cache according to an aspect of the present invention is an n-way (n is a natural number greater than or equal to 1) set associative cache In the cache control apparatus for reconfiguring the form of, a monitoring unit for monitoring a centralized access region composed of sets that are intensively used among sets included in a cache, the number of sets corresponding to the centralized access region and the cache and a reconfiguration unit for partially reconfiguring the cache based on the number of ways of , and an allocator for allocating an address space of a main memory mapped to the centralized access area to the reconstructed portion of the cache.

재구성부는 상기 캐시의 n-웨이 중 적어도 하나의 웨이를 임의로 선택하여, 선택된 상기 웨이를 상기 집중 접근 영역에 해당되는 세트들의 수에 기초하여 재구성한다.The reconstruction unit arbitrarily selects at least one way from among the n-ways of the cache, and reconstructs the selected way based on the number of sets corresponding to the centralized access area.

할당부는 상기 집중 접근 세트의 미스율(miss rate)이 기 설정된 미스율 이상인 경우, 상기 집중 접근 영역에 해당되는 세트에 저장되는 데이터를 프로세서 코어로부터 요청 받은 데이터로 교체한다.When the miss rate of the centralized access set is equal to or greater than a preset miss rate, the allocator replaces data stored in the set corresponding to the centralized access area with data requested by the processor core.

할당부는 상기 집중 접근 영역에 해당되는 세트에 매핑되는 메인 메모리의 어드레스 중 데이터 경합을 야기하는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당한다.The allocator allocates an address space of the main memory that causes data contention among addresses of the main memory mapped to the set corresponding to the centralized access area as the reconstructed part of the cache.

본 발명의 다른 일면에 따른 n-웨이(way) 세트 연관 캐시의 형태를 재구성 캐시 제어 방법에 있어서, 상기 캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 하는 단계, 상기 집중 접근 영역에 해당되는 세트들의 수와 상기 캐시의 웨이(way) 수에 기초하여 상기 캐시를 부분적으로 재구성하는 단계 및 상기 집중 접근 영역에 매핑되는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당하는 단계를 포함한다.In the cache control method for reconfiguring the form of an n-way set associative cache according to another aspect of the present invention, a centralized access area composed of sets that are used intensively among sets included in the cache is monitored. step, partially reconfiguring the cache based on the number of sets corresponding to the centralized access region and the number of ways of the cache, and reconfiguring the address space of the main memory mapped to the centralized access region of the cache and allocating to the reconstructed part.

캐시를 부분적으로 재구성하는 단계는 상기 캐시의 n-웨이 중 적어도 하나 이상의 웨이를 임의로 선택하는 단계 및 선택된 상기 웨이들을 상기 집중 접근 영역에 해당되는 세트들의 수에 기초하여 재구성하는 단계를 포함한다.Partially reconfiguring the cache includes randomly selecting at least one way from among the n-ways of the cache and reconfiguring the selected ways based on the number of sets corresponding to the centralized access area.

메인 메모리의 어드레스 공간에 할당하는 단계는 상기 집중 접근 영역에 해당되는 세트들의 수의 미스율(miss rate)을 획득하는 단계 및 획득된 상기 집중 접근 영역에 해당되는 세트들의 미스율이 기 설정된 미스율 이상인 경우, 상기 집중 접근 영역에 해당되는 세트들에 저장되는 데이터를 프로세서로부터 요청 받은 데이터로 교체하는 단계를 포함한다.
The allocating to the address space of the main memory includes: obtaining a miss rate of the number of sets corresponding to the centralized access region; and when the obtained miss rate of sets corresponding to the centralized access region is greater than or equal to a preset miss rate and replacing data stored in sets corresponding to the centralized access area with data requested by the processor.

이상 상술한 바와 같은 본 발명에 따르면, 캐시를 부분적으로 재구성함으로써 캐시의 미스율을 감소시키는 효과가 있다. According to the present invention as described above, there is an effect of reducing the miss rate of the cache by partially reconfiguring the cache.

아울러, 재구성된 캐시에 실제 데이터 경합을 야기하는 메인 메모리의 어드레스 공간을 할당함으로써, 오버헤드 및 전력소비를 감소시켜 컴퓨터 시스템의 성능을 향상시키는 이점이 있다.
In addition, by allocating the address space of the main memory causing actual data contention to the reconfigured cache, overhead and power consumption are reduced, thereby improving the performance of the computer system.

도 1은 본 발명의 일면에 따른 캐시 제어 장치를 포함한 멀티 코어 프로세서 시스템을 개략적으로 나타낸 도면이다.
도 2는 캐시의 구성을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 캐시 제어 장치의 구성도 이다.
도 4는 본 발명의 일 실시예에 따른 캐시와 메인 메모리 매핑 예를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따라 캐시를 부분적으로 재구성한 것을 나타낸 도면이다.
도 6은 본 발명의 실시예에 따라 캐시의 재구성된 부분에 실제 데이터 경합을 야기 하는 어드레스 공간을 할당하는 예를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 캐시 관리 방법을 나타낸 순서도이다.
1 is a diagram schematically illustrating a multi-core processor system including a cache control device according to an embodiment of the present invention.
2 is a diagram showing the configuration of a cache.
3 is a block diagram of a cache control apparatus according to an embodiment of the present invention.
4 is a diagram illustrating an example of cache and main memory mapping according to an embodiment of the present invention.
5 is a diagram illustrating a partially reconfigured cache according to an embodiment of the present invention.
6 is a diagram illustrating an example of allocating an address space causing actual data contention to a reconfigured portion of a cache according to an embodiment of the present invention.
7 is a flowchart illustrating a cache management method according to an embodiment of the present invention.

본 발명에서는 캐시의 활용도를 높이기 위해, 캐시에 집중 접근 영역이 발생 이 발생하면, 상기 집중 접근 영역에 포함된 세트(set)의 수와 상기 캐시의 웨이(way)수에 기초하여 상기 캐시를 부분적으로 재구성함으로써, 캐시의 미스율(Miss Rate)을 감소시키는 캐시 제어 장치 및 캐시 관리 방법에 관한 것이다.In the present invention, in order to increase the utilization of the cache, when a centralized access region occurs in the cache, the cache is partially restored based on the number of sets included in the centralized access region and the number of ways in the cache. The present invention relates to a cache control apparatus and a cache management method for reducing a cache miss rate by reconfiguring the cache as .

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 용이하게 이해할 수 있도록 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. 이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be embodied in various different forms, only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided so that those who have it can easily understand the scope of the invention, and the present invention is defined by the description of the claims. On the other hand, the terms used herein are for the purpose of describing the embodiments and are not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, "comprises" or "comprising" refers to the presence or addition is not excluded. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. First, in adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as possible even though they are indicated on different drawings. Also, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.

도 1은 본 발명의 일 실시 예에 따른 캐시 제어 장치를 포함한 멀티 코어 프로세서 시스템을 개략적으로 나타낸 도면이다. 1 is a diagram schematically illustrating a multi-core processor system including a cache control apparatus according to an embodiment of the present invention.

도 1은 멀티 코어 프로세서(100) 시스템의 예시를 나타낸 도면이고, 도 1에 도시된 블록의 물리적인 위치를 한정하지는 않는다. 설계 선택은 예컨대, 하드웨어 크기 및 복잡성 대 성능, 열 에너지 및 방열, 프로세서 속도, 전체 스루풋 (overall throughput) 등의 고려에 의해 조정될 수 있다. 멀티 코어 프로세서 (100) 는 적합한 컴퓨팅 환경, 이를테면 개인용 컴퓨터 (PC) 에 제공될 수 있음을 당업자는 인식할 수 있다. 1 is a diagram illustrating an example of a multi-core processor 100 system, and the physical location of the blocks shown in FIG. 1 is not limited. Design choices may be tuned by considerations of, for example, hardware size and complexity versus performance, thermal energy and heat dissipation, processor speed, overall throughput, and the like. Those skilled in the art will appreciate that the multi-core processor 100 may be provided in a suitable computing environment, such as a personal computer (PC).

도 1에 도시된 바와 같이, 멀티 코어 프로세서 시스템은 멀티코어 프로세어(100) 및 메인 메모리(140)을 포함하고, 멀티코어 프로세서(100)는 프로세서 코어 어레이 (110), 캐시(120), 캐시 제어 장치(130)를 포함한다. As shown in FIG. 1 , the multi-core processor system includes a multi-core processor 100 and a main memory 140 , and the multi-core processor 100 includes a processor core array 110 , a cache 120 , and a cache. a control device 130 .

멀티 코어 프로세서(100) 시스템은 프로세서 코어 어레이(110)를 갖는 단일 집적 회로를 포함할 수 있다. The multi-core processor 100 system may include a single integrated circuit having a processor core array 110 .

프로세서 코어 어레이 (110) 는 복수의 프로세서 코어(111(1)~111(N))들을 포함한다. 각 프로세서 코어(111(1)~111(N))는 마이크로 프로세서 (μP), 마이크로 제어기 (μC), 디지털 신호 프로세서 (DSP), 또는 이들의 임의의 조합을 비한정적으로 포함하는 임의의 원하는 구성을 가질 수 있다. 따라서, 각각의 프로세서 코어(111(1)~111(N))는, 산술 논리 장치 (ALU), 부동 소수점 장치 (FPU), 디지털 신호 처리 (DSP) 코어, 레지스터, 누산기 (accumulator) 등과 같은 다른 기능 블록뿐만 아니라 프로그램 명령들을 실행하기 위한 로직 (logic) 을 포함할 수 있다. 각각의 프로세서 코어(111(1)~111(N))들의 전부 또는 단지 일부는 캐시 메모리 (미도시) 를 포함할 수 있다.The processor core array 110 includes a plurality of processor cores 111(1) to 111(N). Each processor core 111(1) - 111(N) may comprise any desired configuration including, but not limited to, a microprocessor (μP), microcontroller (μC), digital signal processor (DSP), or any combination thereof. can have Thus, each of the processor cores 111(1)-111(N) can be configured with an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing (DSP) core, a register, an accumulator, etc. It may include logic for executing program instructions as well as functional blocks. All or only a portion of each of the processor cores 111 ( 1 ) to 111 (N) may include a cache memory (not shown).

캐시(120)는 프로세서 코어(111(1)~111(N))들로부터 요청 받는 명령이나 프로그램들이 저장되는 고속 기억 장치이다. 따라서 프로세서 코어(111(1)~111(N))는 캐시(120)에 접근하여 자주 사용하는 데이터나 프로그램 명령을 검색한다. 캐시(120)에는 프로세서 코어(111(1)~111(N))에서 자주 접근하는 데이터나 프로그램 명령이 저장 되어, 프로세서 코어(111(1)~111(N))들이 필요한 데이터를 즉각적으로 사용 할 수 있도록 한다.The cache 120 is a high-speed storage device in which instructions or programs requested from the processor cores 111(1) to 111(N) are stored. Accordingly, the processor cores 111 ( 1 ) to 111 (N) access the cache 120 to retrieve frequently used data or program instructions. In the cache 120, data or program instructions frequently accessed by the processor cores 111(1) to 111(N) are stored, and the processor cores 111(1) to 111(N) can use the necessary data immediately. make it possible

캐시(120)는 휘발성 또는 비 휘발성의 메모리 디바이스로 구현될 수 있다. 예컨대, 캐시(120)는 예컨대, 동적 랜덤 액세스 메모리("DRAM") 디바이스, 정적 랜덤 액세스 메모리 ("SRAM") 디바이스, 또는 플래시 메모리 디바이스로 구현될 수 있다. 캐시(120)는 프로세서 코어(111(1)~111(N))들 중 일부 또는 전부에 의해 공유될 수 있다. The cache 120 may be implemented as a volatile or non-volatile memory device. For example, cache 120 may be implemented as, for example, a dynamic random access memory (“DRAM”) device, a static random access memory (“SRAM”) device, or a flash memory device. The cache 120 may be shared by some or all of the processor cores 111 ( 1 ) to 111 (N).

프로세서 코어(111(1)~111(N))에 의해서 요구되는 데이터를 캐시(120)에서 찾을 수 있다면, 이를 적중(hit)이라고 부른다. 반면, 프로세서 코어(111(1)~111(N))에 의해서 요구되는 데이터를 캐시(120)에서 찾을 수 없다면 이를 미스 (miss)라고 부른다. 미스가 발생 하면, 프로세서 코어(111(1)~111(N))는 필요한 데이터를 포함하는 블록을 찾기 위해 메인 메모리(140)에 접근한다.If data required by the processor cores 111(1) to 111(N) can be found in the cache 120, it is called a hit. On the other hand, if the data required by the processor cores 111(1) to 111(N) cannot be found in the cache 120, this is called a miss. When a miss occurs, the processor cores 111(1) to 111(N) access the main memory 140 to find a block containing the necessary data.

캐시(120)의 적중률(hit rate)은 캐시(120)에서 찾을 수 있는 프로세서 코어(111(1)~111(N))의 접근 비율이며, 적중률은 캐시(120)의 성능을 평가하는데 이용된다. 미스율(miss rate)은 캐시(120)에서 찾을 수 없는 프로세서 코어(111(1)~111(N))의 접근 비율을 말한다.The hit rate of the cache 120 is the access rate of the processor cores 111(1) to 111(N) that can be found in the cache 120 , and the hit rate is used to evaluate the performance of the cache 120 . . The miss rate refers to an access rate of the processor cores 111(1) to 111(N) that cannot be found in the cache 120 .

캐시 제어 장치(130)는 캐시(120)의 미스율(miss rate)을 감소 시키기 위해,The cache control device 130 to reduce the miss rate of the cache 120,

캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 하여, 상기 집중 접근 영역에 할당된 세트들의 수와 상기 캐시의 웨이(way) 수에 기초하여 상기 캐시를 부분적으로 재구성한다. 아울러, 캐시 제어 장치(130)는 상기 집중 접근 영역에 매핑되는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당한다.Monitoring a centralized access region composed of intensively used sets among sets included in the cache, and selecting the cache based on the number of sets allocated to the centralized access region and the number of ways in the cache. partially reconstructed. In addition, the cache control apparatus 130 allocates the address space of the main memory mapped to the centralized access area to the reconfigured portion of the cache.

메인 메모리(140)는 프로세서 코어(111(1)~111(N))구동에 필요한 프로그램 및 각종 데이터 및 명령어를 저장한다. 메인 메모리(140)는 DRAM 디바이스 또는 SRAM 디바이스와 같은 휘발성 메모리, 읽기 전용 메모리 (ROM) 디바이스 또는 플래시 메모리 디바이스와 같은 비휘발성 메모리, 데이터 저장 디바이스 이를테면 자기 디스크 저장 장치 (예컨대, 하드디스크 드라이브 또는 HDD), 테이프 저장 장치, 광학 저장 장치 (예컨대, 컴팩트 디스크 또는 CD, 디지털 다기능 디스크 또는 DVD) 또는 착탈식, 비착탈식, 휘발성 또는 비휘발성일 수 있는 다른 머신 판독가능 저장 매체들을 비한정적으로 포함하는 임의의 적합한 형태의 메모리이다.The main memory 140 stores programs and various data and instructions necessary for driving the processor cores 111(1) to 111(N). Main memory 140 is a volatile memory such as a DRAM device or SRAM device, a non-volatile memory such as a read-only memory (ROM) device or a flash memory device, a data storage device such as a magnetic disk storage device (eg, a hard disk drive or HDD). , tape storage devices, optical storage devices (eg, compact disks or CDs, digital versatile disks or DVDs), or any suitable form of memory.

본 발명의 실시예에 대한 이해를 돕기 위해, 도 2를 이용하여 캐시동작에 대해 보다 구체적으로 설명한다. In order to help the understanding of the embodiment of the present invention, the cache operation will be described in more detail with reference to FIG. 2 .

도 2는 캐시의 구성을 나타낸 도면이다. 캐시(120)는 인덱스 선택부(210), 캐시 태그 어레이(220), 비교부(230), 캐시 데이터 어레이(240), 데이터 선택부(240) 및 멀티플렉서(MUltipleXer; 이하 MUX)(260)를 포함한다.2 is a diagram showing the configuration of a cache. The cache 120 includes an index selection unit 210 , a cache tag array 220 , a comparison unit 230 , a cache data array 240 , a data selection unit 240 , and a multiplexer (MUltipleXer; hereinafter MUX) 260 . include

캐시(120)에 대한 프로세서 코어(111(1)~111(N))의 접근은 데이터 블록(block) 단위로 이루어질 수 있다. 구체적으로, 캐시(120) 접근의 단위는 데이터 블록일 수 있고, 캐시(120)는 하나 이상의 데이터 블록들을 저장할 수 있다. 기본적으로 데이터 블록은 메인 메모리(140) 내에 저장된다. 캐시(120)가 특정한 데이터 블록들을 저장함에 있어서, 캐시(120)가 사용하는 전체의 슬롯들 중 특정한 슬롯들에게로만 상기의 특정한 데이터 블록의 저장이 제한될 수 있다. 구체적으로, 데이터 블록을 저장하는 메인 메모리(140)의 어드레스 공간(address space)은 데이터 블록의 어드레스에 기반하여 캐시(120)로 매핑될 수 있다.The access of the processor cores 111( 1 ) to 111(N) to the cache 120 may be performed in units of data blocks. Specifically, a unit of access to the cache 120 may be a data block, and the cache 120 may store one or more data blocks. Basically, data blocks are stored in the main memory 140 . When the cache 120 stores specific data blocks, the storage of the specific data block may be limited only to specific slots among all slots used by the cache 120 . Specifically, an address space of the main memory 140 that stores the data block may be mapped to the cache 120 based on the address of the data block.

인덱스 선택부(210)는 캐시로의 입력과 캐시의 출력 단위의 크기에 맞춰 프로세서 코어(111(1)~111(N))로부터 접근 요청된 데이터 어드레스(10) 중 인덱스 필드(14)의 위치를 조정한다. 구체적으로, 인덱스 선택부(210)는 입출력 단위의 크기에 따라, 프로세서 코어(111(1)~111(N))로부터 요청 받은 데이터 어드레스(10) 상에서 인덱스(14)로 사용될 비트의 위치를 선택한다. The index selector 210 determines the position of the index field 14 among the data addresses 10 requested to be accessed from the processor cores 111(1) to 111(N) according to the size of the input to the cache and the output unit of the cache. to adjust Specifically, the index selector 210 selects the position of the bit to be used as the index 14 on the data address 10 requested from the processor cores 111(1) to 111(N) according to the size of the input/output unit. do.

프로세서 코어(111(1)~111(N))로부터 접근 요청된 데이터 어드레스(10)는 태그 필드(12), 인덱스 필드(14) 및 오프세트 필드(16)를 포함한다.The data address 10 requested access from the processor cores 111 ( 1 ) to 111 (N) includes a tag field 12 , an index field 14 , and an offset field 16 .

태그 필드(12)는 인덱스 필드(14)에 의해 사상된 캐시(120) 상의 위치에 저장된 데이터 블록이 현재 접근하려는 어드레스의 데이터 블록과 매칭되는지를 식별하기 위해 사용된다.The tag field 12 is used to identify whether the data block stored in the location on the cache 120 mapped by the index field 14 matches the data block of the address currently being accessed.

인덱스 필드(14)는 메인 메모리(140)의 데이터 블록이 캐시(120) 상에 사상될 위치를 결정한다. 여기서, 위치는 캐시(120)의 하나 이상의 세트들 중 인덱스 필드(14)에 대응하는 하나의 세트를 나타낼 수 있다. 예컨대, 인덱스 필드(14)가 i 비트(bit)라면, 캐시(120) 상에 데이터 블록이 사상될 수 있는 위치(set)의 개수는 2i개일 수 있다. 구체적으로, 데이터 어드레스(10)의 인덱스 필드(14)의 값이 x 라면, 데이터 블록은 캐시의 x 번째 세트에 사상될 수 있다. 전술한 태그 필드(12) 및 인덱스 필드(14)에 의해 캐시 내에 저장된 데이터 블록들이 메인 메모리의 어드레스 공간 중 어느 어드레스의 데이터 블록인지가 식별될 수 있다.The index field 14 determines where a block of data in the main memory 140 is mapped onto the cache 120 . Here, the location may indicate one set corresponding to the index field 14 among one or more sets of the cache 120 . For example, if the index field 14 is an i bit, the number of positions (sets) to which a data block can be mapped on the cache 120 may be 2i. Specifically, if the value of the index field 14 of the data address 10 is x, the data block may be mapped to the x-th set of the cache. By the above-described tag field 12 and index field 14, data blocks stored in the cache can be identified at which addresses in the address space of the main memory.

오프세트 필드(16)는 인덱스 필드(14) 및 태그 필드(312) 외의 나머지 최하위 비트들일 수 있다. 오프세트 필드(16)는 메인 메모리(140) 어드레스 공간의 위치를 나타내는 어드레스의 비트들 중 데이터 블록 및 캐시 상의 위치 간의 사상에 무관한 비트들 일 수 있다. 오프세트 필드(16)의 크기는 캐시의 접근 단위인 데이터 블록의 크기에 대응할 수 있다. 예컨대, 오프세트 필드(16)가 j 비트라면, 데이터 블록의 크기는 2 j 바이트(byte), n2 j 바이트(byte) 또는 2 j 워드(word) 등일 수 있다. 상기의 설명에서, i, j 및 n은 각각 0 이상의 정수일 수 있다.The offset field 16 may be the remaining least significant bits other than the index field 14 and the tag field 312 . The offset field 16 may be bits of an address indicating a location in the address space of the main memory 140 that are independent of a mapping between a location on a data block and a cache. The size of the offset field 16 may correspond to the size of a data block that is an access unit of the cache. For example, if the offset field 16 is j bits, the size of the data block is 2 j bytes, n2 j bytes, or 2 j It may be a word or the like. In the above description, i, j and n may each be an integer of 0 or more.

데이터 어드레스(10)의 크기, 태그 필드(12)의 크기, 인덱스 필드(14)의 크기 및 오프세트(16)의 크기는 캐시 또는 캐시를 포함하는 컴퓨터 시스템에 의존적으로 결정될 수 있다.The size of the data address 10, the size of the tag field 12, the size of the index field 14, and the size of the offset 16 may be determined depending on the cache or the computer system including the cache.

데이터 어드레스(10) 중 인덱스 필드(14)에 의해 캐시 데이터 어레이(250) 내의 세트들 중 메인 메모리(140)의 데이터 블록에 대응하는 세트가 결정된다. 인덱스 필드(14)에 의해 캐시 데이터 어레이(250) 내의 세트가 결정되면 선택된 세트의 웨이들 중 하나의 웨이가 데이터 블록에 대한 접근을 위해 사용될 수 있다. 여기서, 접근은 데이터 블록의 저장을 포함할 수 있다. 예컨대, 데이터 블록은 인덱스 필드(14)에 의해 결정되는 세트의 웨이들 중 비어있는 웨이 또는 캐시 정책에 의해 선택된 웨이에 저장될 수 있다.A set corresponding to a data block of the main memory 140 among sets in the cache data array 250 is determined by the index field 14 of the data address 10 . When the set in the cache data array 250 is determined by the index field 14, one of the ways of the selected set may be used for accessing the data block. Here, the access may include the storage of data blocks. For example, the data block may be stored in an empty way among the set of ways determined by the index field 14 or a way selected by the cache policy.

캐시 태그 어레이(220)는 메인 메모리의 데이터 블록에 대한 태그를 저장한다. 캐시 태그 어레이(220)는 M개의 세트들(sets) 및 N개의 웨이(way)로 구분될 수 있다. 구체적으로, 데이터 어드레스(10) 중 인덱스 필드(14)에 의해 캐시 태그 어레이(220) 내의 세트들 중 데이터 블록에 대응하는 세트가 결정된다. 예컨대, 캐시 태그 어레이(220)의 i 번째 행의 j 번째 열에는 캐시 데이터 어레이(220)의 i-세트의 j-웨이에 저장된 데이터 블록에 대한 태그(12)가 저장된다.The cache tag array 220 stores tags for data blocks in the main memory. The cache tag array 220 may be divided into M sets and N ways. Specifically, a set corresponding to a data block among sets in the cache tag array 220 is determined by the index field 14 of the data address 10 . For example, the tag 12 for the data block stored in the j-way of the i-set of the cache data array 220 is stored in the j-th column of the i-th row of the cache tag array 220 .

비교부(230)는 캐시 태그 어레이(220)에 저장된 태그들 및 데이터 어드레스(10)의 태그 필드(12) 값들을 비교한다. 예컨대, 데이터 어드레스(10)의 인덱스 필드(14)에 의해 결정된 캐시 태그 어레이(220)의 세트가 제1 세트(221)라고 가정하면, 비교기(230)는 캐시 태그 어레이(220)의 제1 세트(221)의 N 개의 웨이들에 저장된 태그들에 대하여, 저장된 태그들의 각각의 값 및 데이터 블록 어드레스(10)의 태그 필드(12) 값을 비교한다. 상기의 비교는 저장된 태그들에 대하여 동시에 이루어질 수 있다. 만약, 비교결과로 제1 세트(221)의 N 개의 웨이들 중 하나인 제2 웨이에 저장된 태그와 데이터 어드레스(10)의 태그 필드(12)의 값이 동일하다면, 캐시 적중(hit)이 발생한다. 반면, 상기의 비교의 결과로서, 제1 세트(221)의 N 개의 웨이에 저장된 태그들의 값들 중 데이터 블록 어드레스(10)의 태그 필드(12) 값과 동일한 값이 없다면 캐시 미스(miss)가 발생한다.The comparison unit 230 compares the tags stored in the cache tag array 220 and the tag field 12 values of the data address 10 . For example, assuming that the set of the cache tag array 220 determined by the index field 14 of the data address 10 is the first set 221 , the comparator 230 is the first set of the cache tag array 220 . For the tags stored in the N ways of 221 , each value of the stored tags and the value of the tag field 12 of the data block address 10 are compared. The above comparison can be made simultaneously for the stored tags. If, as a result of comparison, the tag stored in the second way, which is one of the N ways of the first set 221 , and the value of the tag field 12 of the data address 10 are the same, a cache hit occurs. do. On the other hand, as a result of the above comparison, if there is no value equal to the value of the tag field 12 of the data block address 10 among the values of the tags stored in the N ways of the first set 221, a cache miss occurs. do.

데이터 선택부(240)는 비교부(230)로부터 얻은 비교 결과 및 캐시 히트 조건에 대해 논리 곱 연산 AND를 수행하여 얻은 결과를 통해 캐시 적중이 발생하였는지 여부를 결정한다. 데이터 선택부(240)는 캐시 연관에 따라 캐시 데이터 어레이(250)의 출력을 제어한다. 구체적으로, 데이터 선택부(240)에 의해 캐시 데이터 어레이(240)의 선택된 세트의 복수의 웨이들 중 적어도 하나의 웨이를 출력할 수 있고, 상기 적어도 하나의 웨이의 개수는 캐시의 연관수에 의해 결정될 수 있다. The data selection unit 240 determines whether a cache hit has occurred based on the result obtained by performing the logical AND operation on the comparison result obtained from the comparison unit 230 and the cache hit condition. The data selection unit 240 controls the output of the cache data array 250 according to the cache association. Specifically, at least one way among a plurality of ways of a selected set of the cache data array 240 may be output by the data selection unit 240 , and the number of the at least one way depends on the number of associations of the cache. can be decided.

캐시 데이터 어레이(250) 내의 세트들 중 인덱스 필드(14)에 의해 메인 메모리(140)의 데이터 블록에 대응하는 세트가 결정된다. 캐시 데이터 어레이(250) 내의 세트가 결정되면 선택된 세트의 웨이들 중 하나가 데이터 블록에 대한 접근을 위해 사용된다. 캐시 데이터 어레이(250)는 m개의 행 및 n개의 열로 구분될 수 있다. 일 예에서 캐시 데이터 어레이(250)의 I 번째 행은 I-세트에 대응할 수 있고, J 번째 열은 J-웨이에 대응할 수 있다. A set corresponding to a data block of the main memory 140 is determined by the index field 14 among sets in the cache data array 250 . Once the set in the cache data array 250 is determined, one of the ways of the selected set is used for access to the data block. The cache data array 250 may be divided into m rows and n columns. In one example, an I-th row of the cache data array 250 may correspond to an I-set, and a J-th column may correspond to a J-way.

MUX(260)는 데이터 선택부(240)로부터 캐시 적중 신호를 획득하면, 인덱스 선택부(210)에 의해 선택된 세트의 하나 이상의 웨이들 중 데이터 선택부(240)의 신호에 의해 지정된 웨이를 출력하여 프로세서 코어(111(1)~111(N))로 전달한다. 반면, MUX(260)는 데이터 선택부(240)로부터 캐시 미스 신호를 획득하면, MUX(260)는 데이터 어드레스(10)에 대한 메인 메모리(140)로 접근 신호를 출력한다.When the MUX 260 obtains a cache hit signal from the data selector 240, the MUX 260 outputs a way designated by the signal of the data selector 240 among one or more ways of the set selected by the index selector 210, It is transferred to the processor cores 111(1) to 111(N). On the other hand, when the MUX 260 obtains a cache miss signal from the data selector 240 , the MUX 260 outputs an access signal to the main memory 140 for the data address 10 .

도 3은 본 발명의 일실시예에 따른 캐시 제어 장치의 구성도이다. 3 is a block diagram of a cache control apparatus according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 캐시(120)의 미스율(miss rate)을 감소시키기 위한 캐시 제어 장치(130)는 모니터링부(131), 재구성부(133) 및 할당부(135)를 포함한다.As shown in FIG. 3 , the cache control device 130 for reducing the miss rate of the cache 120 includes a monitoring unit 131 , a reconfiguration unit 133 , and an allocator 135 .

모니터링부(131)는 캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 한다. 여기서 집중 접근 영역이란, 캐시에 포함된 세트들(sets)의 접근빈도가 기 설정된 접근빈도 이상인 세트를 의미 할 수 있다.The monitoring unit 131 monitors a centralized access area composed of intensively used sets among sets included in the cache. Here, the centralized access area may mean a set in which the access frequency of sets included in the cache is equal to or greater than a preset access frequency.

재구성부(133)는 모니터링부(131)로부터 집중 접근 영역에 해당되는 세트의 수와 캐시의 웨이(way)수에 기초하여 캐시를 부분적으로 재구성한다. 예컨대, 재구성부(133)는 캐시의 n-웨이(n은 1이상의 자연수) 중 하나의 웨이를 임의로 선택하여, 선택된 상기 웨이를 상기 집중 접근 영역에 해당되는 세트의 수로 재구성하거나, 캐시의 n-웨이 중 적어도 하나 이상의 웨이를 임의로 선택하여, 선택된 상기 웨이들을 상기 집중 접근 영역에 해당되는 세트의 수로 재구성한다.The reconfiguration unit 133 partially reconfigures the cache based on the number of sets corresponding to the centralized access area and the number of ways of the cache from the monitoring unit 131 . For example, the reconfiguration unit 133 arbitrarily selects one way from among n-ways of the cache (n is a natural number greater than or equal to 1) and reconstructs the selected way into the number of sets corresponding to the centralized access area, or n-ways of the cache At least one way is randomly selected among the ways, and the selected ways are reconstructed into the number of sets corresponding to the centralized access area.

할당부(135)는 상기 집중 접근 영역에 해당되는 세트에 매핑되는 메인 메모리의 어드레스 공간 중 데이터 경합을 야기하는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 매핑한다.The allocator 135 maps the address space of the main memory that causes data contention among the address spaces of the main memory mapped to the set corresponding to the centralized access area to the reconstructed part of the cache.

도 4는 본 발명의 일 실시예에 따른 캐시와 메인 메모리 매핑 예를 나타낸 도면이다. 4 is a diagram illustrating an example of cache and main memory mapping according to an embodiment of the present invention.

도 4에는 일실시예로서, 4-웨이 연관 캐시(4-way associative cache)(410) 및 상기 4-웨이 연관 캐시(410) 에 포함된 세트들(sets)을 메인 메모리(420)의 어드레스 공간으로 매핑한 예가 도시된다. 4 shows, as an embodiment, a 4-way associative cache 410 and sets included in the 4-way associative cache 410 in the address space of the main memory 420 . An example of mapping to .

실시예에 따라 모니터링부(131)를 통해 캐시(410)에 포함된 세트들로 프로세서 코어(111(1)~111(N))의 접근 빈도를 모니터링 하면, 캐시(410)에 포함된 모든 세트로 프로세서 코어(111(1)~111(N))가 접근 하지 않고 특정 세트들(411)에만 집중적으로 프로세서 코어(111(1)~111(N))의 접근이 이루어 지는 것을 알 수 있다. 모니터링부(131)는 캐시에 포함된 세트들(sets)의 프로세서 코어(111(1)~111(N))로부터의 접근빈도 등을 모니터링 하여, 상기 접근빈도가 기 설정된 접근빈도 이상인 세트로 구성되는 집중 접근 영역(411) 발생여부를 판단한다. 일반적으로, 집중 접근 영역(411)에 할당되는 메인 메모리 데이터의 공간적 지역성(Spatial locality)에 의한 공간적 상관관계 때문에 집중 접근 영역(411)을 구성하는 셋들은 인접하여 위치한다.According to an embodiment, when the access frequency of the processor cores 111(1) to 111(N) is monitored with the sets included in the cache 410 through the monitoring unit 131 , all sets included in the cache 410 are monitored. It can be seen that the processor cores 111(1) to 111(N) do not access the processor cores 111(1) to 111(N), and the processor cores 111(1) to 111(N) are intensively accessed only on specific sets 411. The monitoring unit 131 monitors the access frequencies from the processor cores 111(1) to 111(N) of the sets included in the cache, and consists of sets in which the access frequency is equal to or greater than a preset access frequency. It is determined whether the concentrated access area 411 is generated. In general, sets constituting the centralized access region 411 are located adjacent to each other because of spatial correlation due to spatial locality of main memory data allocated to the centralized access region 411 .

집중 접근 영역(411)들을 메인 메모리(420)의 어드레스 공간에 매핑시켜 보면, 집중 접근 영역(411)을 구성하는 셋의 수에 따라 일정한 간격을 가지고 메인 메모리 어드레스 공간(MAS0(0~128), MAS1(1024+1~1024+128), MAS2(2048+1~2048+128))에 매핑되는 것을 알 수 있다. When the centralized access regions 411 are mapped to the address space of the main memory 420, the main memory address spaces MAS0 (0 to 128), It can be seen that it is mapped to MAS1 (1024+1 to 1024+128) and MAS2 (2048+1 to 2048+128).

도 4에 도시된 실시예에 따른 4-웨이 연관 캐시(410)의 경우, 메인 메모리(140)의 각 어드레스 공간은 캐시(410)에 매핑 될 때, 4개의 선택 가능한 캐시의 태그(tag)를 가진다. In the case of the 4-way associative cache 410 according to the embodiment shown in Fig. 4, when each address space of the main memory 140 is mapped to the cache 410, the tags of the four selectable caches are have

도 5는 본 발명의 일 실시예에 따라 캐시를 부분적으로 재구성한 것을 나타낸 도면이다. 5 is a diagram illustrating a partially reconfigured cache according to an embodiment of the present invention.

캐시 제어 장치(130)는 캐시의 미스율(miss rate)을 감소 시키기 위해, 집중 접근 영역(510)을 구성하는 세트의 수와 상기 캐시의 웨이(way)수에 기초하여 상기 캐시를 부분적으로 재구성한다. The cache control device 130 partially reconfigures the cache based on the number of sets constituting the centralized access area 510 and the number of ways of the cache in order to reduce a miss rate of the cache. .

이때, 재구성부(133)는 상기 캐시의 n-웨이 중 하나의 웨이를 임의로 선택하여, 선택된 상기 웨이를 상기 집중 접근 영역(510)을 구성하는 세트의 수로 재구성 할 수 있다. 예컨대, 재구성부(133)는 도 5에 도시된 바와 같이 4-웨이 부분연관 캐시에서 4개의 웨이 중 하나의 웨이(예컨대, 4 웨이)를 임의로 선택하여 집중 접근 영역(510)을 구성하는 세트의 개수에 맞추어 선택된 웨이를 재구성 한다. 구체적으로, 도시된 실시예에서 재구성부(133)는 9개의 세트들로 구성된 하나의 웨이를 선택하여, 집중 접근 영역(510)을 구성하는 세트의 수 (예컨대, 3개) 에 따라 3개의 웨이(520)로 재구성한다. In this case, the reconfiguration unit 133 may arbitrarily select one way from among the n-ways of the cache and reconfigure the selected way as the number of sets constituting the centralized access area 510 . For example, as shown in FIG. 5 , the reconfiguration unit 133 arbitrarily selects one way (eg, 4 way) from among the four ways in the 4-way partially associative cache, and sets the centralized access area 510 by selecting the Reconstructs the selected way according to the number. Specifically, in the illustrated embodiment, the reconstruction unit 133 selects one way consisting of nine sets, and three ways according to the number (eg, three) of sets constituting the centralized access area 510 . (520) is reconstructed.

재구성 된 캐시의 형태는 집중 접근 영역(510)의 성질에 따라 달라질 수 있다. 여기서, 집중 접근 영역(510)의 성질이란 집중 접근 영역(510)에 해당하는 세트의 수를 의미한다. 도시된 실시예에서는 집중 접근 영역(510)에 해당하는 세트의 수가 3이므로, 재구성된 부분(520)은 하나의 웨이에 3개의 세트를 가지게 구성하여 총 3개의 연관(associativity)을 가진다.The form of the reconfigured cache may vary depending on the nature of the centralized access region 510 . Here, the property of the concentrated access area 510 means the number of sets corresponding to the concentrated access area 510 . In the illustrated embodiment, since the number of sets corresponding to the centralized access area 510 is three, the reconstructed part 520 is configured to have three sets in one way, and thus has a total of three associations.

다른 실시예로서, 8개의 세트로 구성된 웨이 중 집중 접근 영역에 해당하는 세트의 수가 2개인 경우, 재구성부(133)는 임의의 선택된 웨이를 재구성 할 때, 한 개의 웨이에 포함된 8개의 세트를 집중 접근 영역을 구성하는 세트의 수인 2개의 세트로 재구성한다. 그러면, 2개의 세트로 구성된 4개의 웨이로 캐시가 재구성된다. 이때, 캐시의 재구성된 부분은 하나의 웨이에 2개의 세트를 가지게 구성하여 총 2개의 연관을 가진다. 실시예에서, 재구성 되기 위해 선택되는 웨이의 수는 캐시 설계 시 캐시의 연관 수 및 웨이에 포함되는 세트의 수에 따라 임의로 설정 가능하다.As another embodiment, when the number of sets corresponding to the centralized access area among the eight sets of ways is two, the reconfiguration unit 133 reconstructs an arbitrary selected way, eight sets included in one way. It is reconstructed into two sets, which is the number of sets constituting the centralized access area. Then, the cache is reconfigured into 4 ways composed of 2 sets. At this time, the reconfigured portion of the cache is configured to have two sets in one way and thus has a total of two associations. In an embodiment, the number of ways selected to be reconfigured may be arbitrarily set according to the number of associations of the cache and the number of sets included in the way when designing the cache.

또한, 재구성부(133)는 상기 캐시의 n-웨이 중 적어도 하나 이상의 웨이를 임의로 선택하여, 선택된 상기 웨이들을 상기 집중 접근 영역에 해당하는 세트의 수로 재구성 할 수 있다. 예컨대, 4웨이 9세트 캐시에서 3개의 세트에 해당하는 집중 접근 영역이 발생하면, 재구성부(133)는 임의의 두 개의 웨이를 선택하여 선택된 웨이 각각을 집중 접근 영역을 구성하는 세트의 수인 3개로 재구성 할 수 있다. 실시예에서, 재구성부(133)에 의해 선택된 2개의 웨이는 총 6개의 웨이로 재구성된다. 따라서, 재구성부(133)에 의한 부분적 재구성 이후, 캐시는 총 9개의 웨이를 가지게 된다.Also, the reconfiguration unit 133 may arbitrarily select at least one way from among the n-ways of the cache and reconfigure the selected ways into the number of sets corresponding to the centralized access area. For example, when a centralized access area corresponding to three sets is generated in a 4-way 9-set cache, the reconfiguration unit 133 selects two arbitrary ways and converts each selected way to three, which is the number of sets constituting the centralized access area. can be reconstructed. In an embodiment, the two ways selected by the reconstruction unit 133 are reconstructed into a total of six ways. Accordingly, after the partial reconstruction by the reconfiguration unit 133, the cache has a total of 9 ways.

도 6은 본 발명의 실시예에 따라 캐시의 재구성된 부분에 실제 데이터 경합을 야기하는 어드레스 공간을 할당하는 예를 나타낸 도면이다. 6 is a diagram illustrating an example of allocating an address space causing actual data contention to a reconstructed portion of a cache according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 메인 메모리(610)의 어드레스 공간은 집중 접근 영역을 구성하는 세트에 매핑되는 어드레스 공간(MAS0 ~ MAS5)을 포함한다.As shown in FIG. 6 , the address space of the main memory 610 includes address spaces MAS0 to MAS5 mapped to sets constituting the centralized access area.

접근 영역을 구성하는 세트에 매핑되는 어드레스 공간(MAS0 ~ MAS5)은 실제로 접근이 많아서 캐시에서 심한 데이터 경합을 야기하는 어드레스 공간(MAS0, MAS3)과 데이터 경합이 심하지 않은 어드레스 공간(MAS1, MAS2, MAS4, MAS5)을 포함한다. The address spaces (MAS0 ~ MAS5) mapped to the sets constituting the access area are the address spaces (MAS0, MAS3) that cause severe data contention in the cache because there are actually many accesses, and the address spaces (MAS1, MAS2, MAS4) where data contention is not severe (MAS1, MAS2, MAS4). , MAS5).

캐시 메모리(620)의 저장 공간은 심한 데이터 경합을 야기하는 어드레스 공간(MAS0, MAS3)이 매핑되는 부분(621)과 그 외의 어드레스 공간(MAS1, MAS2, MAS4, MAS5)이 매핑되는 부분(623)을 포함한다. 심한 데이터 경합을 야기하는 어드레스 공간(MAS0, MAS3)이 매핑되는 부분(621)은 재구성부(133)에 의해 재구성된 부분(60)을 포함한다.The storage space of the cache memory 620 includes a portion 621 to which address spaces MAS0 and MAS3 causing severe data contention are mapped, and a portion 623 to which other address spaces MAS1, MAS2, MAS4, and MAS5 are mapped. includes The portion 621 to which the address spaces MAS0 and MAS3 causing severe data contention are mapped includes the portion 60 reconstructed by the reconstruction unit 133 .

실시예에서 재구성부(133)는 9개의 세트들이 포함된 한 개의 웨이를 선택하여 접근 영역에 해당하는 세트의 수(3개)에 따라, 한 개의 웨이를 3개의 웨이로 재구성한다. 때문에 재구성된 부분(60)에 도시된 바와 같이, 재구성부(133)에 의해 선택된 하나의 웨이는 3개의 세트를 가진 3개의 웨이로 재구성된다. In an embodiment, the reconstruction unit 133 selects one way including nine sets and reconstructs one way into three ways according to the number of sets (three) corresponding to the access area. Therefore, as shown in the reconstructed part 60, one way selected by the reconstruction unit 133 is reconstructed into three ways having three sets.

본 발명의 실시예에 따라, 실제로 데이터 접근이 많아서 경합이 심한 지역의 메인 메모리(610) 어드레스 공간(MAS0, MAS3)이 캐시(620)에 매핑될 때, 데이터 경합이 심한 메인 메모리 어드레스(MAS0, MAS3)는 캐시(620)의 재구성된 부분(60)을 포함하는 캐시(620)의 저장 공간(621)에 매핑된다. 메인 메모리(610) 어드레스 공간(MAS0, MAS3)이 캐시(620)에 매핑될 때, 할당되는 캐시(620)의 웨이 수가 증가한다. According to an embodiment of the present invention, when the address spaces (MAS0, MAS3) of the main memory 610 in an area where there is a lot of data contention due to actually many data accesses are mapped to the cache 620, the main memory addresses MAS0, MAS3 is mapped to the storage space 621 of the cache 620 containing the reconstructed portion 60 of the cache 620 . When the address spaces MAS0 and MAS3 of the main memory 610 are mapped to the cache 620 , the number of ways in the allocated cache 620 increases.

구체적으로, 실시예에서는 메인 메모리(610) 어드레스 공간(MAS0, MAS3)이 캐시(620)에 매핑될 때 4웨이에서 6웨이로 데이터 경합이 심한 메인 메모리 어드레스(MAS0, MAS3)에 매핑되는 태그가 증가한다. 캐시의 재구성으로 인해 증가되는 태그 때문에, 프로세서 코어(111(1)~111(N))로부터 많은 요청을 받는 데이터를 캐시에 저장함으로써, 캐시의 미스율을 감소 시킬 수 있다. Specifically, in the embodiment, when the address spaces (MAS0, MAS3) of the main memory 610 are mapped to the cache 620, the tags mapped to the main memory addresses (MAS0, MAS3) with severe data contention from the 4 way to the 6 way are increases Because of the tag increase due to the reconfiguration of the cache, the cache miss rate can be reduced by storing data that receives many requests from the processor cores 111(1) to 111(N) in the cache.

또한, 캐시의 미스율을 감소시키기 위해 할당부(135)는 메인 메모리(610) 어드레스 공간을 선별적으로 캐시의 재구성된 부분(60)에 할당한다. 구체적으로, 할당부(135)는 재구성된 부분(60)을 실제 데이터 경합을 야기하는 어드레스 공간(MAS0, MAS3))에 할당한다. 아울러, 할당부(135)는 캐시의 미스율을 감소 시키기 위해 캐시(620)의 교체 정책을 수정하여 집중 접근 세트들 중 특정 세트가 기 설정된 미스율을 초과할 경우 상기 특정 세트에 저장되는 데이터를 교체한다. In addition, in order to reduce the miss rate of the cache, the allocator 135 selectively allocates the address space of the main memory 610 to the reconfigured portion 60 of the cache. Specifically, the allocator 135 allocates the reconstructed part 60 to the address spaces MAS0 and MAS3 that actually cause data contention. In addition, the allocator 135 modifies the replacement policy of the cache 620 in order to reduce the miss rate of the cache, and when a specific set among the centralized access sets exceeds a preset miss rate, the data stored in the specific set is replaced. .

여기서, 캐시(620)의 교체 정책(Replacement Policy)이란 캐시의 모든 세트가 데이터로 채워져 있는 상태에서 프로세서 코어(111(1)~111(N))가 캐시에 접근하여 원하는 데이터를 찾을 수 없는 미스일 때, 캐시의 특정 세트에서 데이터를 제거하고 메인 메모리(140)에서 새로운 데이터 블록을 가져오는 것이다. 캐시 미스가 발생한 경우에, 접근하려는 데이터 블록은 우선 캐시 내에 저장될 수 있다. 캐시 내에 상기의 데이터 블록의 저장을 위해 사용될 수 있는 공간들 중 빈 공간이 없으면, 상기의 데이터 블록은 캐시 내에 이미 저장된 다른 데이터 블록과 교체 되어야 한다. 캐시 미스로 인한 교체를 통해 캐시에서 방출되는 데이터 블록을 희생자(victim)로 칭한다. 희생자는 캐시의 교체 정책(Replacement Policy)에 따라 결정될 수 있다. 캐시의 어느 세트에서 데이터를 제거할지 결정하는 방식이 교체 정책(Replacement Policy)이다. 일반적인 교체정책에는 LRU(Least Recently Used), LFU(Least Frequently Used), FIFO(First in First out), Random 등이 있다. Here, the replacement policy of the cache 620 is a miss in which the processor cores 111(1) to 111(N) access the cache and cannot find the desired data in a state in which all sets of the cache are filled with data. When , data is removed from a specific set of cache and a new block of data is fetched from main memory 140 . When a cache miss occurs, a data block to be accessed may be first stored in the cache. If there is no empty space among the spaces available for storage of the data block in the cache, the data block must be replaced with another data block already stored in the cache. A block of data that is released from the cache through replacement due to a cache miss is called a victim. The victim may be determined according to the cache's replacement policy. The method of determining which set in the cache to remove data from is the replacement policy. Typical replacement policies include Least Recently Used (LRU), Least Frequently Used (LFU), First in First out (FIFO), and Random.

아울러, 할당부(135)는 경합이 심한 지역을 제외한 집중 접근 영역에 해당되는 세트에 매핑되는 메인 메모리의 어드레스 공간 (MAS1, MAS2, MAS4, MAS5)은 캐시의 재구성되지 않은 다른 세트(623)에 매핑할 수 있다. In addition, the allocator 135 determines that the address space (MAS1, MAS2, MAS4, MAS5) of the main memory mapped to the set corresponding to the centralized access area excluding the high contention area is in another set 623 that is not reconfigured in the cache. can be mapped.

결과적으로, 할당부(135)는 데이터 경합이 심한 지역의 메인 메모리 공간(MAS0, MAS3)을 캐시의 재구성된 부분(60)을 포함하는 영역(621)에 할당 함으로써, 재구성 이전보다 각 메인 메모리 공간에 할당 되는 캐시의 웨이를 증가시킴으로써, 캐시의 미스율을 감소시킨다.As a result, the allocator 135 allocates the main memory spaces MAS0 and MAS3 in the region where data contention is severe to the region 621 including the reconfigured portion 60 of the cache, so that each main memory space is greater than before the reconfiguration. By increasing the cache way allocated to , the cache miss rate is reduced.

도 7은 본 발명의 일 실시예에 따른 캐시 관리 방법을 나타낸 순서도이다. 이하, 도 7을 이용하여 본 발명의 일 실시예에 따른 캐시 관리 방법에 대해 보다 구체적으로 설명한다. 7 is a flowchart illustrating a cache management method according to an embodiment of the present invention. Hereinafter, a cache management method according to an embodiment of the present invention will be described in more detail with reference to FIG. 7 .

모니터링부(131)는 캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 한다(S710). 예컨대, 단계 S710 에서 모니터링부(131)는 일정 시간 동안 캐시에 포함된 각 세트들에 대한 사용패턴을 모니터링 하기 위해, 모니터링부(131)은 캐시에 포함된 세트들(sets)로의 프로세서 코어(111(1)~111(N))의 접근빈도를 모니터링할 수 있다. The monitoring unit 131 monitors the centralized access area composed of intensively used sets among sets included in the cache (S710). For example, in step S710 , the monitoring unit 131 monitors a usage pattern for each set included in the cache for a predetermined time, and the monitoring unit 131 converts the processor core 111 to sets included in the cache. (1)~111(N)) access frequency can be monitored.

모니터링부(131)는 상기 집중적으로 사용되는 세트들로 구성된 집중 접근 영역이 발생하는지 판단한다(S720). 예컨대, 단계 S720 에서 모니터링부(131)은 접근빈도가 기 설정된 접근빈도 이상인 집중 접근 영역이 발생하는지 판단한다. The monitoring unit 131 determines whether an intensive access area composed of the intensively used sets occurs (S720). For example, in step S720, the monitoring unit 131 determines whether an intensive access area having an access frequency equal to or greater than a preset access frequency occurs.

재구성부(133)는 상기 집중 접근 영역에 해당되는 세트들의 수와 상기 캐시의 웨이(way) 수에 기초하여 상기 캐시를 부분적으로 재구성한다(S730). 예컨대, 단계 S730 에서 재구성부(133)는 상기 집중 접근 영역에 해당되는 세트들의 수와 상기 캐시의 웨이(way)수에 기초하여 상기 캐시를 부분적으로 재구성한다. 이때, 재구성부(133)는 상기 캐시의 n-웨이 중 하나 또는 복수개의 웨이를 임의로 선택하여 선택된 상기 웨이를 상기 집중 접근 영역에 해당되는 세트들의 수로 재구성한다.The reconfiguration unit 133 partially reconfigures the cache based on the number of sets corresponding to the centralized access area and the number of ways of the cache (S730). For example, in step S730, the reconfiguration unit 133 partially reconfigures the cache based on the number of sets corresponding to the centralized access area and the number of ways of the cache. In this case, the reconfiguration unit 133 arbitrarily selects one or a plurality of ways from among the n-ways of the cache and reconstructs the selected way into the number of sets corresponding to the centralized access area.

할당부(135)는 상기 집중 접근 영역에 해당되는 세트들에 매핑되는 메인 메모리의 어드레스 중 데이터 경합을 야기하는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당한다(S740). 이때, 단계 S740에서 할당부(135)는 상기 집중 접근 세트의 미스율(miss rate)을 획득하여, 획득된 상기 집중 접근 세트의 미스율이 기 설정된 미스율 이상인 경우, 상기 집중 접근 세트에 저장되는 데이터를 프로세서 코어(111(1)~111(N))로부터 요청 받은 데이터로 교체할 수 있다. The allocator 135 allocates the address space of the main memory that causes data contention among addresses of the main memory mapped to sets corresponding to the centralized access area to the reconfigured part of the cache (S740). At this time, in step S740, the allocator 135 obtains a miss rate of the centralized access set, and when the obtained miss rate of the centralized access set is greater than or equal to a preset miss rate, the data stored in the centralized access set is processed by the processor It can be replaced with data requested from the cores 111(1) to 111(N).

도 1 내지 도 6을 참조하여 전술된 설명은 도 7의 실시예에서도 적용될 수 있다. 중복되는 설명은 생략한다.The description described above with reference to FIGS. 1 to 6 may also be applied to the embodiment of FIG. 7 . A duplicate description will be omitted.

본 발명의 일실시예에 따른 캐시 제어 장치 및 그 방법은 집중 접근 영역에 해당되는 세트의 수와 상기 캐시의 웨이(way)수에 기초하여 상기 캐시를 부분적으로 재구성 함으로써 캐시의 미스율을 감소 시키는 이점을 제공한다.The cache control apparatus and method according to an embodiment of the present invention have the advantage of reducing the miss rate of the cache by partially reconfiguring the cache based on the number of sets corresponding to the centralized access area and the number of ways of the cache. provides

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구의 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those of ordinary skill in the art to which the present invention pertains will understand that the present invention may be embodied in other specific forms without changing the technical spirit or essential features thereof. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The scope of protection of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the claims and their equivalent concepts should be construed as being included in the scope of the present invention.


Claims (7)

n-웨이(way)(n은 1이상의 자연수) 세트 연관 캐시의 형태를 재구성하는 캐시 제어 장치에 있어서,
캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 하는 모니터링부;
상기 집중 접근 영역에 해당되는 세트들의 수와 상기 캐시의 웨이(way) 수에 기초하여 상기 캐시를 부분적으로 재구성하는 재구성부 및
상기 집중 접근 영역에 매핑되는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당하는 할당부를 포함하고,
상기 재구성부는
상기 캐시의 n-웨이 중 적어도 하나의 웨이를 임의로 선택하여, 선택된 상기 웨이를 상기 집중 접근 영역에 해당되는 세트들의 수에 기초하여 재구성하기 위해,
상기 집중 접근 영역에 해당되는 세트들의 수가 m개인 경우, 상기 캐시의 n-웨이 중에서 선택된 웨이를 m개의 웨이로 재구성하는 캐시 제어 장치.
In the cache control apparatus for reconfiguring the form of an n-way (n is a natural number greater than or equal to 1) set associative cache,
a monitoring unit for monitoring a centralized access area composed of intensively used sets among sets included in the cache;
a reconfiguration unit for partially reconfiguring the cache based on the number of sets corresponding to the centralized access area and the number of ways of the cache; and
an allocator for allocating the address space of the main memory mapped to the centralized access area to the reconstructed part of the cache;
The reconstruction unit
to randomly select at least one way from among the n-ways of the cache and reconstruct the selected way based on the number of sets corresponding to the centralized access area;
When the number of sets corresponding to the centralized access area is m, the cache control apparatus reconfigures a selected way from among the n-ways of the cache into m ways.
삭제delete 제 1 항에 있어서, 상기 할당부는
상기 집중 접근 영역에 해당하는 세트들의 미스율(miss rate)이 기 설정된 미스율 이상인 경우, 상기 집중 접근 영역에 해당되는 세트에 저장되는 데이터를 프로세서 코어로부터 요청 받은 데이터로 교체하는 것
인 캐시 제어 장치.
The method of claim 1, wherein the allocator
When the miss rate of sets corresponding to the centralized access area is equal to or greater than a preset miss rate, replacing data stored in the set corresponding to the centralized access area with data requested from the processor core
In-cache control unit.
제 1항에 있어서, 상기 할당부는
상기 집중 접근 영역에 해당되는 세트에 매핑되는 메인 메모리의 어드레스 중 데이터 경합을 야기하는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당하는 것
인 캐시 제어 장치.
The method of claim 1, wherein the allocator
Allocating an address space of the main memory that causes data contention among addresses of the main memory mapped to the set corresponding to the centralized access area as the reconstructed part of the cache.
In-cache control unit.
n-웨이(way) 세트 연관 캐시의 형태를 재구성하는 캐시 관리 방법에 있어서,
상기 캐시에 포함된 세트들(sets) 중 집중적으로 사용되는 세트들로 구성된 집중 접근 영역을 모니터링 하는 단계;
상기 집중 접근 영역에 해당되는 세트들의 수와 상기 캐시의 웨이(way) 수에 기초하여 상기 캐시를 부분적으로 재구성하는 단계 및
상기 집중 접근 영역에 매핑되는 메인 메모리의 어드레스 공간을 상기 캐시의 재구성된 부분으로 할당하는 단계를 포함하고,
상기 캐시를 부분적으로 재구성하는 단계는,
상기 캐시의 n-웨이 중 적어도 하나 이상의 웨이를 임의로 선택하여, 선택된 상기 웨이들을 상기 집중 접근 영역에 해당되는 세트들의 수를 기초로 재구성하기 위해,
상기 집중 접근 영역에 해당되는 세트들의 수가 m개인 경우, 상기 캐시의 n-웨이 중에서 선택된 웨이를 m개의 웨이로 재구성하는 단계인 것인 캐시 관리 방법.
A cache management method for reconfiguring the form of an n-way set associative cache, comprising:
monitoring a centralized access region composed of intensively used sets among sets included in the cache;
partially reconfiguring the cache based on the number of sets corresponding to the centralized access area and the number of ways of the cache; and
allocating an address space of a main memory mapped to the centralized access region to a reconstructed portion of the cache;
Partially reconfiguring the cache includes:
In order to randomly select at least one way from among the n-ways of the cache, and to reconstruct the selected ways based on the number of sets corresponding to the centralized access area,
and when the number of sets corresponding to the centralized access area is m, reconfiguring the selected way from among the n-ways of the cache into m ways.
삭제delete 제 5 항에 있어서, 상기 메인 메모리의 어드레스 공간에 할당하는 단계는
상기 집중 접근 영역에 해당되는 세트들의 미스율(miss rate)을 획득하는 단계 및
획득된 상기 집중 접근 영역에 해당되는 세트들의 미스율이 기 설정된 미스율 이상인 경우, 상기 집중 접근 영역에 해당되는 세트들에 저장되는 데이터를 프로세서로부터 요청 받은 데이터로 교체하는 단계
를 포함하는 것인 캐시 관리 방법.
6. The method of claim 5, wherein the allocating to an address space of the main memory comprises:
obtaining a miss rate of sets corresponding to the concentrated access area; and
When the obtained miss rate of sets corresponding to the centralized access area is equal to or greater than a preset miss rate, replacing data stored in sets corresponding to the centralized access area with data requested by the processor;
A cache management method comprising a.
KR1020140030971A 2014-03-17 2014-03-17 Cache management apparatus and method of using partial reconfiguration KR102317248B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140030971A KR102317248B1 (en) 2014-03-17 2014-03-17 Cache management apparatus and method of using partial reconfiguration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140030971A KR102317248B1 (en) 2014-03-17 2014-03-17 Cache management apparatus and method of using partial reconfiguration

Publications (2)

Publication Number Publication Date
KR20150108148A KR20150108148A (en) 2015-09-25
KR102317248B1 true KR102317248B1 (en) 2021-10-26

Family

ID=54246265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140030971A KR102317248B1 (en) 2014-03-17 2014-03-17 Cache management apparatus and method of using partial reconfiguration

Country Status (1)

Country Link
KR (1) KR102317248B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271723A1 (en) 2005-04-29 2006-11-30 Giuseppe Visalli Cache memory system
WO2013113206A1 (en) * 2012-02-01 2013-08-08 中兴通讯股份有限公司 Smart cache and smart terminal

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266409B2 (en) * 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same
KR101711945B1 (en) * 2010-01-06 2017-03-03 주식회사 태진인포텍 Memory management method using the multi-level buffer cache management policy
CN102859504B (en) * 2010-04-21 2015-11-25 英派尔科技开发有限公司 Copy the method and system of data and obtain the method for data trnascription
US20120290793A1 (en) * 2011-05-10 2012-11-15 Jaewoong Chung Efficient tag storage for large data caches
KR101474842B1 (en) * 2013-05-16 2014-12-19 이화여자대학교 산학협력단 Method for replacing cache memory blocks with for lower amount of write traffic and information processing apparatus having cache subsystem using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271723A1 (en) 2005-04-29 2006-11-30 Giuseppe Visalli Cache memory system
WO2013113206A1 (en) * 2012-02-01 2013-08-08 中兴通讯股份有限公司 Smart cache and smart terminal

Also Published As

Publication number Publication date
KR20150108148A (en) 2015-09-25

Similar Documents

Publication Publication Date Title
JP6752292B2 (en) Scaled set dueling of cache replacement policies
KR101826073B1 (en) Cache operations for memory management
US20160357674A1 (en) Unified Online Cache Monitoring and Optimization
US11294808B2 (en) Adaptive cache
KR102414157B1 (en) hybrid cache
KR101373925B1 (en) Allocating processor cores with cache memory associativity
US20150039833A1 (en) Management of caches
KR20060049710A (en) An apparatus and method for partitioning a shared cache of a chip multi-processor
US10915459B2 (en) Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes
Hameed et al. Simultaneously optimizing DRAM cache hit latency and miss rate via novel set mapping policies
JP5597306B2 (en) Sectorized cache with high storage efficiency
Gaur et al. Base-victim compression: An opportunistic cache compression architecture
Syu et al. High-endurance hybrid cache design in CMP architecture with cache partitioning and access-aware policy
US20170357596A1 (en) Dynamically adjustable inclusion bias for inclusive caches
US8589627B2 (en) Partially sectored cache
US7702875B1 (en) System and method for memory compression
US11151039B2 (en) Apparatus and method for maintaining cache coherence data for memory blocks of different size granularities using a snoop filter storage comprising an n-way set associative storage structure
Hameed et al. Adaptive cache management for a combined SRAM and DRAM cache hierarchy for multi-cores
US20180165202A1 (en) Tag and data organization in large memory caches
KR102317248B1 (en) Cache management apparatus and method of using partial reconfiguration
Agarwal et al. Improving the performance of hybrid caches using partitioned victim caching
KR101591583B1 (en) Method and apparatus for caching
Valls et al. The tag filter cache: An energy-efficient approach
KR101490072B1 (en) Apparatus and method for power control of cache
Tanabe et al. Future irregular computing with memory accelerators

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant