KR102612947B1 - Method and apparatus for controlling unified L2 cache-TLB memory - Google Patents
Method and apparatus for controlling unified L2 cache-TLB memory Download PDFInfo
- Publication number
- KR102612947B1 KR102612947B1 KR1020210041985A KR20210041985A KR102612947B1 KR 102612947 B1 KR102612947 B1 KR 102612947B1 KR 1020210041985 A KR1020210041985 A KR 1020210041985A KR 20210041985 A KR20210041985 A KR 20210041985A KR 102612947 B1 KR102612947 B1 KR 102612947B1
- Authority
- KR
- South Korea
- Prior art keywords
- capacity
- cache
- index buffer
- conversion index
- translation
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000006243 chemical reaction Methods 0.000 claims abstract description 83
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 238000005265 energy consumption Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
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
본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법 및 장치는, L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하는 코어에서 동작되는 어플리케이션의 특성을 기반으로 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경함으로써, L2 변환 색인 버퍼 실패율의 감소로 인해 소모되는 에너지를 감소시킬 수 있고, L2 변환 색인 버퍼 실패로 인한 메인 메모리 접근의 감소로 인해 소모되는 메인 메모리의 에너지를 감소시킬 수 있다.A method and device for controlling an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention is an L2 cache-translation index buffer in which an L2 cache and an L2 translation lookaside buffer (TLB) are integrated into one. By dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer based on the characteristics of the application running on the core including memory, energy consumed due to a decrease in the L2 conversion index buffer failure rate can be reduced, and the L2 conversion index buffer can be reduced. The energy consumed in main memory can be reduced due to a reduction in main memory access due to conversion index buffer failure.
Description
본 발명은 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법 및 장치에 관한 것으로서, 더욱 상세하게는 코어 내에 내장된 L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)의 용량을 제어하는, 방법 및 장치에 관한 것이다.The present invention relates to a method and device for controlling an integrated L2 cache-translation lookaside buffer memory, and more specifically, to controlling the capacity of the L2 cache and the L2 translation lookaside buffer (TLB) built into the core. , methods and devices.
도 1은 종래의 CPU 구조를 설명하기 위한 도면이고, 도 2는 도 1에 도시한 CPU 구조에서의 어플리케이션별 실패율을 설명하기 위한 도면이다.FIG. 1 is a diagram for explaining a conventional CPU structure, and FIG. 2 is a diagram for explaining the failure rate for each application in the CPU structure shown in FIG. 1.
종래의 CPU, GPU 등은 도 1에 도시된 바와 같이, L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)가 계층적으로 구성되어 있다. 일반적으로 변환 색인 버퍼와 캐시의 용량은 "L1 변환 색인 버퍼 < L1 캐시 < L2 변환 색인 버퍼 < L2 캐시 < L3 캐시"와 같다.As shown in Figure 1, conventional CPUs, GPUs, etc. have an L2 cache and an L2 translation lookaside buffer (TLB) hierarchically organized. In general, the capacity of the translation index buffer and cache is equal to "L1 translation index buffer < L1 cache < L2 translation index buffer < L2 cache < L3 cache."
도 2에 도시된 바와 같이, 코어에서 동작되는 어플리케이션들은 다양한 아키텍처 접근 특성을 가지고 있다. blackscholes와 같은 어플리케이션은 변환 색인 버퍼 및 캐시 실패율(miss rate)이 낮고, 워킹 셋 크기(working set size)가 작기 때문에, 메인 메모리 접근이 많지 않은 특성을 가지고 있다. 반면, canneal 및 streamcluster와 같은 어플리케이션들의 경우, 워킹 셋 크기가 크기 때문에, 대용량의 데이터를 접근하려는 특성으로 인해 L2 변환 색인 버퍼 및 L2 캐시 실패율이 매우 높은 양상을 가지게 된다. 그리고, canneal 및 streamcluster와 같은 어플리케이션들의 경우, 캐시 및 변환 색인 버퍼 실패로 인한 메모리 접근이 많아짐에 따라 에너지 소모가 대폭 증가하게 된다. 즉, 고정된 용량을 가지는 L2 변환 색인 버퍼 및 L2 캐시를 사용함에 따라, 어플리케이션의 성능이 저하되는 현상이 발생하게 된다.As shown in Figure 2, applications running on the core have various architectural access characteristics. Applications such as blackscholes have low conversion index buffer and cache miss rates and a small working set size, so they do not require many main memory accesses. On the other hand, in the case of applications such as canneal and streamcluster, the working set size is large and the L2 conversion index buffer and L2 cache failure rate is very high due to the characteristic of accessing large amounts of data. And, in the case of applications such as canneal and streamcluster, energy consumption increases significantly as memory accesses increase due to cache and translation index buffer failures. In other words, as the L2 conversion index buffer and L2 cache with fixed capacity are used, the performance of the application deteriorates.
본 발명이 이루고자 하는 목적은, L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하는 코어에서 동작되는 어플리케이션의 특성을 기반으로 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경하는, 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법 및 장치를 제공하는 데 있다.The purpose of the present invention is to achieve L2 based on the characteristics of an application running on a core that includes an L2 cache-translation index buffer memory in which an L2 cache and an L2 translation lookaside buffer (TLB) are integrated into one. The object is to provide a control method and device for an integrated L2 cache-translation index buffer memory that dynamically changes the capacity of the cache and the capacity of the L2 translation index buffer.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.Other unspecified objects of the present invention can be additionally considered within the scope that can be easily inferred from the following detailed description and its effects.
상기의 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법은, 코어(core)를 포함하는 하나 이상의 프로세서를 포함하는 제어 장치의 제어 방법으로서, 상기 코어는, L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하며, 상기 프로세서가, 상기 코어에서 동작되는 어플리케이션의 접근 특성을 획득하는 단계; 및 상기 프로세서가, 상기 어플리케이션의 접근 특성을 기반으로 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하는 단계;를 포함한다.A control method of an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention for achieving the above object is a control method of a control device including one or more processors including a core, wherein the core includes an L2 cache-translation lookaside buffer memory in which an L2 cache and an L2 translation lookaside buffer (TLB) are integrated into one, and the processor acquires access characteristics of an application running on the core. step; and dynamically changing, by the processor, the capacity of the L2 cache and the capacity of the L2 conversion index buffer based on the access characteristics of the application.
여기서, 상기 동적 변경 단계는, 미리 설정된 복수개의 용량 구성 환경 중에서 상기 어플리케이션의 접근 특성을 기반으로 하나를 선택하고, 선택된 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하는 것으로 이루어질 수 있다.Here, the dynamic change step selects one of a plurality of preset capacity configuration environments based on the access characteristics of the application, and dynamically changes the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the selected capacity configuration environment. This can be done by changing it to .
여기서, 상기 복수개의 용량 구성 환경은, 상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 작은 제1 용량 구성 환경; 상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량과 동일한 제2 용량 구성 환경; 및 상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 큰 제3 용량 구성 환경;을 포함할 수 있다.Here, the plurality of capacity configuration environments include: a first capacity configuration environment in which the capacity of the L2 conversion index buffer is smaller than the capacity of the L2 cache; a second capacity configuration environment in which the capacity of the L2 conversion index buffer is equal to the capacity of the L2 cache; and a third capacity configuration environment in which the capacity of the L2 conversion index buffer is larger than the capacity of the L2 cache.
여기서, 상기 제3 용량 구성 환경은, 상기 L2 캐시의 용량이 0 KB로 이루어질 수 있다.Here, in the third capacity configuration environment, the capacity of the L2 cache may be 0 KB.
여기서, 상기 제1 용량 구성 환경은, 32 KB의 용량을 가지는 상기 L2 변환 색인 버퍼 및 256 KB의 용량을 가지는 상기 L2 캐시로 이루어지고, 상기 제2 용량 구성 환경은, 128 KB의 용량을 가지는 상기 L2 변환 색인 버퍼, 128 KB의 용량을 가지는 상기 L2 캐시 및 32 KB의 용량을 가지는 쓰기 버퍼로 이루어지며, 상기 제3 용량 구성 환경은, 256 KB의 용량을 가지는 상기 L2 변환 색인 버퍼 및 32 KB의 용량을 가지는 쓰기 버퍼로 이루어질 수 있다.Here, the first capacity configuration environment consists of the L2 conversion index buffer with a capacity of 32 KB and the L2 cache with a capacity of 256 KB, and the second capacity configuration environment includes the L2 conversion index buffer with a capacity of 256 KB. It consists of an L2 translation index buffer, the L2 cache with a capacity of 128 KB, and a write buffer with a capacity of 32 KB, and the third capacity configuration environment includes the L2 translation index buffer with a capacity of 256 KB and a write buffer with a capacity of 32 KB. It may be composed of a write buffer with capacity.
여기서, 상기 동적 변경 단계는, 상기 어플리케이션의 접근 특성이 미리 설정된 제1 임계값보다 작은 횟수가 미리 설정된 기준 횟수보다 많으면, 상기 제1 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하고, 상기 어플리케이션의 접근 특성이 상기 제1 임계값보다 크고 미리 설정된 제2 임계값보다 작은 횟수가 상기 기준 횟수보다 많으면, 상기 제2 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하며, 상기 어플리케이션의 접근 특성이 상기 제2 임계값보다 큰 횟수가 상기 기준 횟수보다 많으면, 상기 제3 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하고, 상기 제1 용량 구성 환경, 상기 제2 용량 구성 환경 및 상기 제3 용량 구성 환경 중 하나에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량이 동적으로 변경되면, 상기 제1 임계값 및 상기 제2 임계값 중 적어도 하나와 상기 어플리케이션의 접근 특성을 비교한 횟수를 초기화하는 것으로 이루어질 수 있다.Here, in the dynamic change step, if the number of times that the access characteristic of the application is smaller than the preset first threshold is greater than the preset reference number, the capacity of the L2 cache and the L2 conversion index buffer are changed according to the first capacity configuration environment. The capacity of the L2 cache is dynamically changed, and if the number of times the access characteristic of the application is greater than the first threshold and less than the preset second threshold is greater than the reference number, the capacity of the L2 cache is determined according to the second capacity configuration environment. and dynamically change the capacity of the L2 conversion index buffer, and if the number of times that the access characteristic of the application is greater than the second threshold is greater than the reference number, the capacity of the L2 cache and the Dynamically change the capacity of the L2 translation index buffer, and change the capacity of the L2 cache and the capacity of the L2 translation index buffer according to one of the first capacity configuration environment, the second capacity configuration environment, and the third capacity configuration environment. When dynamically changed, the number of times the access characteristics of the application are compared with at least one of the first threshold and the second threshold may be initialized.
여기서, 상기 어플리케이션의 접근 특성은, L2 캐시 실패율(miss rate)을 포함할 수 있다.Here, the access characteristics of the application may include the L2 cache miss rate.
여기서, 상기 L2 캐시-변환 색인 버퍼 메모리는, 서로 다른 구조를 가지는 복수개의 메모리를 포함할 수 있다.Here, the L2 cache-conversion index buffer memory may include a plurality of memories having different structures.
상기의 기술적 과제를 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 프로그램은 컴퓨터 판독 가능한 저장 매체에 저장되어 상기한 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법 중 어느 하나를 컴퓨터에서 실행시킨다.A computer program according to a preferred embodiment of the present invention for achieving the above technical problem is stored in a computer-readable storage medium and executes any one of the above-described integrated L2 cache-conversion index buffer memory control methods on the computer.
상기의 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치는, L2 캐시(cache)의 용량과 L2 변환 색인 버퍼(translation lookaside buffer, TLB)의 용량을 동적으로 변경하는 제어 장치로서, 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하기 위한 하나 이상의 프로그램을 저장하는 메모리; 및 코어(core)를 포함하고, 상기 메모리에 저장된 상기 하나 이상의 프로그램에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하기 위한 동작을 수행하는 하나 이상의 프로세서;를 포함하고, 상기 코어는, 상기 L2 캐시와 상기 L2 변환 색인 버퍼가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하며, 상기 프로세서는, 상기 코어에서 동작되는 어플리케이션의 접근 특성을 획득하고, 상기 어플리케이션의 접근 특성을 기반으로 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경한다.In order to achieve the above object, a control device for an integrated L2 cache-translation lookaside buffer memory according to a preferred embodiment of the present invention adjusts the capacity of the L2 cache and the capacity of the L2 translation lookaside buffer (TLB). A control device for dynamically changing, comprising: a memory storing one or more programs for dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer; And one or more processors, including a core, and performing an operation to dynamically change the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the one or more programs stored in the memory, The core includes an L2 cache-conversion index buffer memory in which the L2 cache and the L2 conversion index buffer are integrated into one, and the processor acquires access characteristics of an application running on the core and determines the access characteristics of the application. Based on this, the capacity of the L2 cache and the capacity of the L2 conversion index buffer are dynamically changed.
여기서, 상기 프로세서는, 미리 설정된 복수개의 용량 구성 환경 중에서 상기 어플리케이션의 접근 특성을 기반으로 하나를 선택하고, 선택된 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경할 수 있다.Here, the processor selects one of a plurality of preset capacity configuration environments based on the access characteristics of the application, and dynamically changes the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the selected capacity configuration environment. You can.
여기서, 상기 복수개의 용량 구성 환경은, 상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 작은 제1 용량 구성 환경; 상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량과 동일한 제2 용량 구성 환경; 및 상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 큰 제3 용량 구성 환경;을 포함할 수 있다.Here, the plurality of capacity configuration environments include: a first capacity configuration environment in which the capacity of the L2 conversion index buffer is smaller than the capacity of the L2 cache; a second capacity configuration environment in which the capacity of the L2 conversion index buffer is equal to the capacity of the L2 cache; and a third capacity configuration environment in which the capacity of the L2 conversion index buffer is larger than the capacity of the L2 cache.
여기서, 상기 프로세서는, 상기 어플리케이션의 접근 특성이 미리 설정된 제1 임계값보다 작은 횟수가 미리 설정된 기준 횟수보다 많으면, 상기 제1 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하고, 상기 어플리케이션의 접근 특성이 상기 제1 임계값보다 크고 미리 설정된 제2 임계값보다 작은 횟수가 상기 기준 횟수보다 많으면, 상기 제2 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하며, 상기 어플리케이션의 접근 특성이 상기 제2 임계값보다 큰 횟수가 상기 기준 횟수보다 많으면, 상기 제3 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하고, 상기 제1 용량 구성 환경, 상기 제2 용량 구성 환경 및 상기 제3 용량 구성 환경 중 하나에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량이 동적으로 변경되면, 상기 제1 임계값 및 상기 제2 임계값 중 적어도 하나와 상기 어플리케이션의 접근 특성을 비교한 횟수를 초기화할 수 있다.Here, if the number of times that the access characteristic of the application is smaller than the first preset threshold is greater than the preset reference number, the processor determines the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the first capacity configuration environment. Dynamically changes, and if the number of times that the access characteristics of the application are greater than the first threshold and less than the preset second threshold is greater than the reference number, the capacity of the L2 cache and the The capacity of the L2 conversion index buffer is dynamically changed, and if the number of times the access characteristic of the application is greater than the second threshold is greater than the reference number, the capacity of the L2 cache and the L2 conversion are determined according to the third capacity configuration environment. The capacity of the index buffer is dynamically changed, and the capacity of the L2 cache and the capacity of the L2 translation index buffer are dynamically changed according to one of the first capacity configuration environment, the second capacity configuration environment, and the third capacity configuration environment. When changed, the number of times the access characteristics of the application are compared with at least one of the first threshold and the second threshold can be initialized.
본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법 및 장치에 의하면, L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하는 코어에서 동작되는 어플리케이션의 특성을 기반으로 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경함으로써, L2 변환 색인 버퍼 실패율의 감소로 인해 소모되는 에너지를 감소시킬 수 있고, L2 변환 색인 버퍼 실패로 인한 메인 메모리 접근의 감소로 인해 소모되는 메인 메모리의 에너지를 감소시킬 수 있다.According to a control method and device for an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention, an L2 cache-translation index in which an L2 cache and an L2 translation lookaside buffer (TLB) are integrated into one. By dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer based on the characteristics of the application running on the core including the buffer memory, energy consumed due to a decrease in the L2 conversion index buffer failure rate can be reduced. The energy consumed in main memory can be reduced due to a reduction in main memory access due to L2 conversion index buffer failure.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.
도 1은 종래의 CPU 구조를 설명하기 위한 도면이다.
도 2는 도 1에 도시한 CPU 구조에서의 어플리케이션별 실패율을 설명하기 위한 도면이다.
도 3은 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치를 설명하기 위한 블록도이다.
도 4는 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법을 설명하기 흐름도이다.
도 5는 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 일례를 설명하기 위한 도면이다.
도 6은 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 성능을 설명하기 위한 도면으로, 어플리케이션별 L2 변환 색인 버퍼 실패율을 나타낸다.
도 7은 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 성능을 설명하기 위한 도면으로, 어플리케이션별 에너지 소비를 나타낸다.
도 8은 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 성능을 설명하기 위한 도면으로, 어플리케이션별 메모리 접근 에너지 소비를 나타낸다.1 is a diagram for explaining a conventional CPU structure.
FIG. 2 is a diagram for explaining the failure rate for each application in the CPU structure shown in FIG. 1.
Figure 3 is a block diagram for explaining a control device of an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention.
Figure 4 is a flowchart illustrating a control method of an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention.
Figure 5 is a diagram for explaining an example of a capacity control operation of an L2 cache-translation index buffer memory according to a preferred embodiment of the present invention.
Figure 6 is a diagram for explaining the performance of the capacity control operation of the L2 cache-translation index buffer memory according to a preferred embodiment of the present invention, and shows the L2 conversion index buffer failure rate for each application.
Figure 7 is a diagram for explaining the performance of a capacity control operation of an L2 cache-translation index buffer memory according to a preferred embodiment of the present invention, and shows energy consumption for each application.
Figure 8 is a diagram for explaining the performance of a capacity control operation of an L2 cache-translation index buffer memory according to a preferred embodiment of the present invention, and shows memory access energy consumption for each application.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 게시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings. The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the disclosure of the present invention is complete and to provide a general understanding of the technical field to which the present invention pertains. It is provided to fully inform those with knowledge of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings that can be commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.
본 명세서에서 "제1", "제2" 등의 용어는 하나의 구성 요소를 다른 구성 요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예컨대, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.In this specification, terms such as “first” and “second” are used to distinguish one component from another component, and the scope of rights should not be limited by these terms. For example, a first component may be named a second component, and similarly, the second component may also be named a first component.
본 명세서에서 각 단계들에 있어 식별부호(예컨대, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In this specification, identification codes (e.g., a, b, c, etc.) for each step are used for convenience of explanation. The identification codes do not describe the order of each step, and each step is clearly ordered in a specific order in context. Unless specified, it may occur differently from the specified order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the opposite order.
본 명세서에서, "가진다", "가질 수 있다", "포함한다" 또는 "포함할 수 있다" 등의 표현은 해당 특징(예컨대, 수치, 기능, 동작, 또는 부품 등의 구성 요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this specification, expressions such as “have,” “may have,” “includes,” or “may include” indicate the presence of the corresponding feature (e.g., a numerical value, function, operation, or component such as a part). indicates, does not rule out the presence of additional features.
이하에서 첨부한 도면을 참조하여 본 발명에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법 및 장치의 바람직한 실시예에 대해 상세하게 설명한다.Hereinafter, a preferred embodiment of a control method and device for an integrated L2 cache-translation index buffer memory according to the present invention will be described in detail with reference to the attached drawings.
먼저, 도 3을 참조하여 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치에 대하여 설명한다.First, a control device for an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention will be described with reference to FIG. 3.
도 3은 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치를 설명하기 위한 블록도이다.Figure 3 is a block diagram for explaining a control device of an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention.
도 3을 참조하면, 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치(이하 '제어 장치'라 한다)(100)는 L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하는 코어에서 동작되는 어플리케이션의 특성을 기반으로 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경한다.Referring to Figure 3, the control device (hereinafter referred to as 'control device') 100 of the integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention includes an L2 cache and an L2 translation index buffer. The capacity of the L2 cache and the capacity of the L2 translation index buffer are dynamically changed based on the characteristics of the application running on the core that includes the L2 cache-translation index buffer memory (lookaside buffer, TLB) integrated into one.
이를 위해, 제어 장치(100)는 하나 이상의 프로세서(110), 컴퓨터 판독 가능한 저장 매체(130) 및 통신 버스(150)를 포함할 수 있다.To this end, the
프로세서(110)는 하나 이상의 코어(core)를 포함하며, 제어 장치(100)가 동작하도록 제어할 수 있다. 예컨대, 프로세서(110)는 컴퓨터 판독 가능한 저장 매체(130)에 저장된 하나 이상의 프로그램(131)을 실행할 수 있다. 하나 이상의 프로그램(131)은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 컴퓨터 실행 가능 명령어는 프로세서(110)에 의해 실행되는 경우 제어 장치(100)로 하여금 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경하기 위한 동작을 수행하도록 구성될 수 있다.The processor 110 includes one or more cores and can control the
여기서, 코어는 L2 캐시와 L2 변환 색인 버퍼가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함할 수 있다. 이때, L2 캐시-변환 색인 버퍼 메모리는 서로 다른 구조를 가지는 복수개의 메모리를 포함할 수 있다. 예컨대, L2 캐시-변환 색인 버퍼 메모리는 SRAM(static random access memory)과 MRAM(magnetic random access memory) 등과 같은 에너지 효율적인 메모리 셀을 하이브리드한 메모리를 포함할 수 있다.Here, the core may include an L2 cache-conversion index buffer memory in which an L2 cache and an L2 conversion index buffer are integrated into one. At this time, the L2 cache-conversion index buffer memory may include a plurality of memories with different structures. For example, the L2 cache-translation index buffer memory may include a hybrid memory of energy-efficient memory cells such as static random access memory (SRAM) and magnetic random access memory (MRAM).
컴퓨터 판독 가능한 저장 매체(130)는 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경하기 위한 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능한 저장 매체(130)에 저장된 프로그램(131)은 프로세서(110)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능한 저장 매체(130)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 제어 장치(100)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-readable storage medium 130 is configured to store computer-executable instructions or program code, program data, and/or other suitable forms of information for dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer. The
통신 버스(150)는 프로세서(110), 컴퓨터 판독 가능한 저장 매체(130)를 포함하여 제어 장치(100)의 다른 다양한 컴포넌트들을 상호 연결한다.
제어 장치(100)는 또한 하나 이상의 입출력 장치를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(170) 및 하나 이상의 통신 인터페이스(190)를 포함할 수 있다. 입출력 인터페이스(170) 및 통신 인터페이스(190)는 통신 버스(150)에 연결된다. 입출력 장치(도시하지 않음)는 입출력 인터페이스(170)를 통해 제어 장치(100)의 다른 컴포넌트들에 연결될 수 있다.
그러면, 도 4를 참조하여 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법에 대하여 설명한다.Next, a control method of the integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention will be described with reference to FIG. 4.
도 4는 본 발명의 바람직한 실시예에 따른 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법을 설명하기 흐름도이다.Figure 4 is a flowchart illustrating a control method of an integrated L2 cache-translation index buffer memory according to a preferred embodiment of the present invention.
도 4를 참조하면, 제어 장치(100)의 프로세서(110)는 코어에서 동작되는 어플리케이션의 접근 특성을 획득할 수 있다(S110).Referring to FIG. 4, the processor 110 of the
여기서, 어플리케이션의 접근 특성은 L2 캐시 실패율(miss rate), L2 변환 색인 버퍼 실패율 등을 포함할 수 있다.Here, the access characteristics of the application may include L2 cache miss rate, L2 conversion index buffer miss rate, etc.
이후, 프로세서(110)는 어플리케이션의 접근 특성을 기반으로 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경할 수 있다(S130).Thereafter, the processor 110 may dynamically change the capacity of the L2 cache and the capacity of the L2 conversion index buffer based on the access characteristics of the application (S130).
즉, 프로세서(110)는 미리 설정된 복수개의 용량 구성 환경 중에서 어플리케이션의 접근 특성을 기반으로 하나를 선택하고, 선택된 용량 구성 환경에 따라 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경할 수 있다.That is, the processor 110 selects one of a plurality of preset capacity configuration environments based on the access characteristics of the application, and dynamically changes the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the selected capacity configuration environment. .
여기서, 복수개의 용량 구성 환경은 L2 변환 색인 버퍼의 용량이 L2 캐시의 용량보다 작은 제1 용량 구성 환경, L2 변환 색인 버퍼의 용량이 L2 캐시의 용량과 동일한 제2 용량 구성 환경, 및 L2 변환 색인 버퍼의 용량이 L2 캐시의 용량보다 큰 제3 용량 구성 환경을 포함할 수 있다. 이때, 제3 용량 구성 환경은 L2 캐시의 용량이 0 KB로 이루어질 수 있다.Here, the plurality of capacity configuration environments include a first capacity configuration environment in which the capacity of the L2 translation index buffer is smaller than the capacity of the L2 cache, a second capacity configuration environment in which the capacity of the L2 translation index buffer is the same as the capacity of the L2 cache, and an L2 translation index. A third capacity configuration environment may be included in which the buffer capacity is larger than the L2 cache capacity. At this time, the third capacity configuration environment may have an L2 cache capacity of 0 KB.
예컨대, 복수개의 용량 구성 환경은 아래의 [표 1]과 같이 이루어질 수 있다.For example, a plurality of capacity configuration environments can be configured as shown in [Table 1] below.
용량 구성 환경Capacity Configuration Environment
제1 용량 구성 환경Primary Capacity Configuration Environment
제2 용량 구성 환경Secondary Capacity Configuration Environment
제3 용량 구성 환경Tertiary Capacity Configuration Environment
L2 변환 색인 버퍼L2 conversion index buffer
32 KB
32 KB
128 KB
128KB
256 KB
256KB
L2 캐시L2 cache
256 KB
256KB
128 KB
128KB
-
-
쓰기 버퍼write buffer
-
-
32 KB
32 KB
32 KB
32 KB
보다 자세히 설명하면, 프로세서(110)는 어플리케이션의 접근 특성이 미리 설정된 제1 임계값보다 작은 횟수가 미리 설정된 기준 횟수보다 많으면, 제1 용량 구성 환경에 따라 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경할 수 있다.In more detail, if the number of times the access characteristic of the application is smaller than the first preset threshold is greater than the preset reference number, the processor 110 controls the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the first capacity configuration environment. can be changed dynamically.
그리고, 프로세서(110)는 어플리케이션의 접근 특성이 제1 임계값보다 크고 미리 설정된 제2 임계값보다 작은 횟수가 기준 횟수보다 많으면, 제2 용량 구성 환경에 따라 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경할 수 있다.And, if the access characteristics of the application are greater than the first threshold and the number of times less than the preset second threshold is greater than the reference number, the processor 110 determines the capacity of the L2 cache and the L2 conversion index buffer according to the second capacity configuration environment. Capacity can be changed dynamically.
그리고, 프로세서(110)는 어플리케이션의 접근 특성이 제2 임계값보다 큰 횟수가 기준 횟수보다 많으면, 제3 용량 구성 환경에 따라 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경할 수 있다.Additionally, if the number of times the access characteristics of the application are greater than the second threshold is greater than the reference number, the processor 110 may dynamically change the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the third capacity configuration environment.
아울러, 프로세서(110)는 제1 용량 구성 환경, 제2 용량 구성 환경, 및 제3 용량 구성 환경 중 하나에 따라 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량이 동적으로 변경되면, 제1 임계값 및 제2 임계값 중 적어도 하나와 어플리케이션의 접근 특성을 비교한 횟수를 초기화할 수 있다.In addition, when the capacity of the L2 cache and the capacity of the L2 translation index buffer are dynamically changed according to one of the first capacity configuration environment, the second capacity configuration environment, and the third capacity configuration environment, the processor 110 sets the first threshold value. and the number of times the access characteristics of the application are compared with at least one of the second threshold values may be initialized.
여기서, 어플리케이션의 접근 특성이 "L2 캐시 실패율"인 경우, 제1 임계값은 "0.5(50%)"로 설정되고, 제2 임계값은 "0.8(80%)"로 설정될 수 있다.Here, when the access characteristic of the application is “L2 cache failure rate”, the first threshold may be set to “0.5 (50%)” and the second threshold may be set to “0.8 (80%)”.
그러면, 도 5를 참조하여 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 일례에 대하여 설명한다.Next, an example of a capacity control operation of an L2 cache-translation index buffer memory according to a preferred embodiment of the present invention will be described with reference to FIG. 5.
도 5는 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 일례를 설명하기 위한 도면이다.Figure 5 is a diagram for explaining an example of a capacity control operation of an L2 cache-translation index buffer memory according to a preferred embodiment of the present invention.
도 5를 참조하면, 본 발명은 코어에서 동작되는 어플리케이션의 L2 변환 색인 버퍼 및 L2 캐시 접근 특성(실패율 등)을 고려하여, L2 변환 색인 버퍼와 L2 캐시를 동적으로 파티셔닝(partitioning)할 수 있다.Referring to FIG. 5, the present invention can dynamically partition the L2 conversion index buffer and L2 cache by considering the L2 conversion index buffer and L2 cache access characteristics (failure rate, etc.) of the application running on the core.
여기서, 코어에 포함된 L2 캐시-변환 색인 버퍼 메모리는 SRAM과 MRAM을 하이브리드한 구조로 이루어질 수 있다. MRAM은 SRAM과 비슷한 읽기 성능을 가지지만, 에너지 소모가 훨씬 적은 특성을 가지고 있다.Here, the L2 cache-conversion index buffer memory included in the core may have a hybrid structure of SRAM and MRAM. MRAM has similar read performance to SRAM, but consumes much less energy.
본 발명에 따른 L2 변환 색인 버퍼와 L2 캐시의 파티셔닝은 아래와 같이 설정된 3개의 환경에 따라 이루어질 수 있으며, 아래와 같은 알고리즘에 의해 동작될 수 있다.Partitioning of the L2 conversion index buffer and L2 cache according to the present invention can be performed according to the three environments set as follows and can be operated by the algorithm below.
< 3개의 환경 >< 3 environments >
Baseline Config : 제1 용량 구성 환경(L2 TLB : 32 KB, L2 cache : 256 KB, Write Buffer : 0)Baseline Config: First capacity configuration environment (L2 TLB: 32 KB, L2 cache: 256 KB, Write Buffer: 0)
Half-L2$ Config : 제2 용량 구성 환경(L2 TLB : 128 KB, L2 cache : 128 KB, Write Buffer : 32 KB)Half-L2$ Config: Second capacity configuration environment (L2 TLB: 128 KB, L2 cache: 128 KB, Write Buffer: 32 KB)
Bypass-L2$ Config : 제3 용량 구성 환경(L2 TLB : 256 KB, L2 cache : 0, Write Buffer : 32 KB)Bypass-L2$ Config: Third capacity configuration environment (L2 TLB: 256 KB, L2 cache: 0, Write Buffer: 32 KB)
< 알고리즘 >< Algorithm >
1. 특정 epoch T 마다 어플리케이션의 L2 캐시 실패율(L2$ miss rate)을 모니터링1. Monitor the L2 cache miss rate (L2$ miss rate) of the application for each specific epoch T
2. if (L2$ miss rate < thresholdlow)2. if (L2$ miss rate < threshold low )
then Baseline Config Counter++;then Baseline Config Counter++;
else if (L2$ miss rate > thresholdlow)else if (L2$ miss rate > threshold low )
if (L2$ miss rate < thresholdhigh)if (L2$ miss rate < threshold high )
then Half-L2$ Config Counter++;then Half-L2$ Config Counter++;
else if (L2$ missrate > thresholdhigh)else if (L2$ missrate > threshold high )
then Bypass-L2$ Config Counter++;then Bypass-L2$ Config Counter++;
3. 모든 비트(bit)가 "1111"이면, 해당 환경에 따라 L2 변환 색인 버퍼와 L2 캐시의 파티셔닝이 적용되고, 4 비트로 구성된 모든 카운터(Baseline Config Counter, Half-L2$ Config Counter, 및 Bypass-L2$ Config Counter)를 리셋(reset)함.3. If all bits are "1111", partitioning of the L2 conversion index buffer and L2 cache is applied according to the environment, and all counters consisting of 4 bits (Baseline Config Counter, Half-L2$ Config Counter, and Bypass- Reset L2$ Config Counter.
4. 1번부터 반복함4. Repeat from step 1
여기서, thresholdlow는 제1 임계값을 나타내는 것으로, "0.5(50%)"로 설정될 수 있다. thresholdhigh는 제2 임계값을 나타내는 것으로, "0.8(80%)"로 설정될 수 있다.Here, threshold low represents the first threshold and can be set to “0.5 (50%)”. threshold high represents the second threshold and can be set to “0.8 (80%)”.
그러면, 도 6 내지 도 8을 참조하여 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 성능에 대하여 설명한다.Next, the performance of the capacity control operation of the L2 cache-translation index buffer memory according to the preferred embodiment of the present invention will be described with reference to FIGS. 6 to 8.
도 6은 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 성능을 설명하기 위한 도면으로, 어플리케이션별 L2 변환 색인 버퍼 실패율을 나타내고, 도 7은 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 성능을 설명하기 위한 도면으로, 어플리케이션별 에너지 소비를 나타내며, 도 8은 본 발명의 바람직한 실시예에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 성능을 설명하기 위한 도면으로, 어플리케이션별 메모리 접근 에너지 소비를 나타낸다.Figure 6 is a diagram for explaining the performance of the capacity control operation of the L2 cache-translation index buffer memory according to a preferred embodiment of the present invention, showing the L2 conversion index buffer failure rate for each application, and Figure 7 is a preferred embodiment of the present invention. This is a diagram to explain the performance of the capacity control operation of the L2 cache-conversion index buffer memory according to , showing energy consumption for each application, and Figure 8 shows the capacity control of the L2 cache-conversion index buffer memory according to a preferred embodiment of the present invention. This diagram is intended to explain operational performance and shows memory access energy consumption for each application.
도 6 내지 도 8에 도시된 "Baseline"은 종래의 구조(L2 캐시와 L2 변환 색인 버퍼가 고정된 용량을 가지는 구조)를 나타내며, "Proposed"는 본 발명에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작이 적용되는 구조(어플리케이션의 접근 특성을 기반으로 L2 캐시의 용량과 L2 변환 색인 버퍼의 용량을 동적으로 변경하는 구조)를 나타낸다.“Baseline” shown in FIGS. 6 to 8 represents a conventional structure (a structure in which the L2 cache and the L2 translation index buffer have fixed capacities), and “Proposed” represents the L2 cache-translation index buffer memory according to the present invention. Indicates the structure to which the capacity control operation is applied (a structure that dynamically changes the capacity of the L2 cache and the capacity of the L2 conversion index buffer based on the access characteristics of the application).
도 6을 참조하면, 본 발명에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 적용 시, canneal과 같은 어플리케이션은 L2 변환 색인 버퍼 실패율을 50% 수준에서 27% 수준으로 절반 가량 낮아지고, streamcluster와 같은 어플리케이션은 L2 변환 색인 버퍼 실패율이 거의 0% 수준으로 낮추어지는 것을 확인할 수 있다.Referring to FIG. 6, when applying the capacity control operation of the L2 cache-conversion index buffer memory according to the present invention, the L2 conversion index buffer failure rate of applications such as canneal is reduced by about half from 50% to 27%, and streamcluster Applications such as can confirm that the L2 conversion index buffer failure rate is reduced to almost 0%.
도 7을 참조하면, 본 발명에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 적용 시, L2 변환 색인 버퍼 실패율의 감소로 인해 소모되는 에너지가 감소되는 것을 확인할 수 있다.Referring to FIG. 7, it can be seen that when applying the capacity control operation of the L2 cache-translation index buffer memory according to the present invention, the energy consumed is reduced due to a decrease in the L2 conversion index buffer failure rate.
또한, 도 8을 참조하면, 본 발명에 따른 L2 캐시-변환 색인 버퍼 메모리의 용량 제어 동작의 적용 시, L2 변환 색인 버퍼 실패로 인한 메인 메모리 접근의 감소로 인해 소모되는 메인 메모리의 에너지가 감소되는 것을 확인할 수 있다.In addition, referring to FIG. 8, when applying the capacity control operation of the L2 cache-translation index buffer memory according to the present invention, the energy of the main memory consumed due to a decrease in main memory access due to L2 conversion index buffer failure is reduced. You can check that.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 저장 매체에 기록될 수 있다. 컴퓨터 판독 가능한 저장 매체는 실행을 위해 프로세서에 명령어를 제공하는데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예컨대, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.Operations according to the present embodiments may be implemented in the form of program instructions that can be performed through various computer means and recorded on a computer-readable storage medium. A computer-readable storage medium refers to any medium that participates in providing instructions to a processor for execution. A computer-readable storage medium may include program instructions, data files, data structures, or combinations thereof. For example, there may be magnetic media, optical recording media, memory, etc. A computer program may be distributed over networked computer systems so that computer-readable code can be stored and executed in a distributed manner. Functional programs, codes, and code segments for implementing this embodiment can be easily deduced by programmers in the technical field to which this embodiment belongs.
본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.These embodiments are intended to explain the technical idea of the present embodiment, and the scope of the technical idea of the present embodiment is not limited by these examples. The scope of protection of this embodiment should be interpreted in accordance with the claims below, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of rights of this embodiment.
100 : 제어 장치,
110 : 프로세서,
130 : 컴퓨터 판독 가능한 저장 매체,
131 : 프로그램,
150 : 통신 버스,
170 : 입출력 인터페이스,
190 : 통신 인터페이스100: control device,
110: processor,
130: computer-readable storage medium,
131: program,
150: communication bus,
170: input/output interface,
190: communication interface
Claims (13)
상기 코어는, L2 캐시(cache)와 L2 변환 색인 버퍼(translation lookaside buffer, TLB)가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하며,
상기 프로세서가, 상기 코어에서 동작되는 어플리케이션의 접근 특성을 획득하는 단계; 및
상기 프로세서가, 상기 어플리케이션의 접근 특성을 기반으로 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하는 단계;를 포함하되,
상기 동적으로 변경하는 단계는, 미리 설정된 복수개의 용량 구성 환경 중에서 상기 어플리케이션의 접근 특성을 미리 설정된 제1 임계값 및 제2 임계값 중 적어도 하나와 비교하여 하나를 선택하고, 선택된 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하며,
상기 복수개의 용량 구성 환경 중 하나에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량이 동적으로 변경되면, 상기 제1 임계값 및 상기 제2 임계값 중 적어도 하나와 상기 어플리케이션의 접근 특성을 비교한 횟수를 초기화하는 것으로 이루어지는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법.A method in which a control device including one or more processors including a core controls an integrated L2 cache-translation index buffer memory,
The core includes an L2 cache-translation lookaside buffer memory in which an L2 cache and an L2 translation lookaside buffer (TLB) are integrated into one,
Obtaining, by the processor, access characteristics of an application running on the core; and
Including, by the processor, dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer based on the access characteristics of the application,
The dynamically changing step includes selecting one of a plurality of preset capacity configuration environments by comparing the access characteristics of the application with at least one of a preset first threshold and a second threshold, and selecting one according to the selected capacity configuration environment. Dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer,
When the capacity of the L2 cache and the capacity of the L2 conversion index buffer are dynamically changed according to one of the plurality of capacity configuration environments, at least one of the first threshold value and the second threshold value and the access characteristics of the application are changed. Consists of initializing the number of comparisons,
Control method of integrated L2 cache-translation index buffer memory.
상기 복수개의 용량 구성 환경은,
상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 작은 제1 용량 구성 환경;
상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량과 동일한 제2 용량 구성 환경; 및
상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 큰 제3 용량 구성 환경;
을 포함하는 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법.In paragraph 1:
The plurality of capacity configuration environments are,
a first capacity configuration environment in which the capacity of the L2 conversion index buffer is smaller than the capacity of the L2 cache;
a second capacity configuration environment in which the capacity of the L2 conversion index buffer is equal to the capacity of the L2 cache; and
a third capacity configuration environment in which the capacity of the L2 conversion index buffer is larger than the capacity of the L2 cache;
A control method of an integrated L2 cache-translation index buffer memory comprising.
상기 제3 용량 구성 환경은,
상기 L2 캐시의 용량이 0 KB로 이루어지는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법.In paragraph 3,
The third capacity configuration environment is,
The capacity of the L2 cache is 0 KB,
Control method of integrated L2 cache-translation index buffer memory.
상기 제1 용량 구성 환경은,
32 KB의 용량을 가지는 상기 L2 변환 색인 버퍼 및 256 KB의 용량을 가지는 상기 L2 캐시로 이루어지고,
상기 제2 용량 구성 환경은,
128 KB의 용량을 가지는 상기 L2 변환 색인 버퍼, 128 KB의 용량을 가지는 상기 L2 캐시 및 32 KB의 용량을 가지는 쓰기 버퍼로 이루어지며,
상기 제3 용량 구성 환경은,
256 KB의 용량을 가지는 상기 L2 변환 색인 버퍼 및 32 KB의 용량을 가지는 쓰기 버퍼로 이루어지는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법.In paragraph 4,
The first capacity configuration environment is,
It consists of the L2 conversion index buffer with a capacity of 32 KB and the L2 cache with a capacity of 256 KB,
The second capacity configuration environment is,
It consists of the L2 conversion index buffer with a capacity of 128 KB, the L2 cache with a capacity of 128 KB, and a write buffer with a capacity of 32 KB,
The third capacity configuration environment is,
Consisting of the L2 conversion index buffer with a capacity of 256 KB and a write buffer with a capacity of 32 KB,
Control method of integrated L2 cache-translation index buffer memory.
상기 동적으로 변경하는 단계는,
상기 어플리케이션의 접근 특성이 미리 설정된 제1 임계값보다 작은 횟수가 미리 설정된 기준 횟수보다 많으면, 상기 제1 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하고,
상기 어플리케이션의 접근 특성이 상기 제1 임계값보다 크고 미리 설정된 제2 임계값보다 작은 횟수가 상기 기준 횟수보다 많으면, 상기 제2 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하며,
상기 어플리케이션의 접근 특성이 상기 제2 임계값보다 큰 횟수가 상기 기준 횟수보다 많으면, 상기 제3 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하는 것으로 이루어지는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법.In paragraph 3,
The dynamically changing step is,
If the number of times that the access characteristics of the application are smaller than a preset first threshold is greater than the preset reference number, dynamically change the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the first capacity configuration environment,
If the access characteristic of the application is greater than the first threshold and the number of times less than the preset second threshold is greater than the reference number, the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the second capacity configuration environment. changes dynamically,
When the number of times that the access characteristic of the application is greater than the second threshold is greater than the reference number, the capacity of the L2 cache and the capacity of the L2 conversion index buffer are dynamically changed according to the third capacity configuration environment.
Control method of integrated L2 cache-translation index buffer memory.
상기 어플리케이션의 접근 특성은,
L2 캐시 실패율(miss rate)을 포함하는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법.In paragraph 1:
The access characteristics of the application are,
Including L2 cache miss rate,
Control method of integrated L2 cache-translation index buffer memory.
상기 L2 캐시-변환 색인 버퍼 메모리는,
서로 다른 구조를 가지는 복수개의 메모리를 포함하는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 방법.In paragraph 1:
The L2 cache-translation index buffer memory,
Containing a plurality of memories with different structures,
Control method of integrated L2 cache-translation index buffer memory.
상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하기 위한 하나 이상의 프로그램을 저장하는 메모리; 및
코어(core)를 포함하고, 상기 메모리에 저장된 상기 하나 이상의 프로그램에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하기 위한 동작을 수행하는 하나 이상의 프로세서;를 포함하고,
상기 코어는, 상기 L2 캐시와 상기 L2 변환 색인 버퍼가 하나로 통합된 L2 캐시-변환 색인 버퍼 메모리를 포함하며,
상기 프로세서는, 상기 코어에서 동작되는 어플리케이션의 접근 특성을 획득하고, 상기 어플리케이션의 접근 특성을 기반으로 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하되,
상기 프로세서는, 미리 설정된 복수개의 용량 구성 환경 중에서 상기 어플리케이션의 접근 특성을 미리 설정된 제1 임계값 및 제2 임계값 중 적어도 하나와 비교하여 하나를 선택하고, 선택된 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하며,
상기 복수개의 용량 구성 환경 중 하나에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량이 동적으로 변경되면, 상기 제1 임계값 및 상기 제2 임계값 중 적어도 하나와 상기 어플리케이션의 접근 특성을 비교한 횟수를 초기화하는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치.A control device that dynamically changes the capacity of the L2 cache and the capacity of the L2 translation lookaside buffer (TLB),
a memory storing one or more programs for dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer; and
One or more processors including a core and performing an operation to dynamically change the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the one or more programs stored in the memory,
The core includes an L2 cache-translation index buffer memory in which the L2 cache and the L2 translation index buffer are integrated into one,
The processor acquires the access characteristics of the application running on the core and dynamically changes the capacity of the L2 cache and the capacity of the L2 conversion index buffer based on the access characteristics of the application,
The processor selects one of a plurality of preset capacity configuration environments by comparing the access characteristics of the application with at least one of a preset first threshold and a second threshold, and configures the L2 cache according to the selected capacity configuration environment. Dynamically change the capacity and capacity of the L2 conversion index buffer,
When the capacity of the L2 cache and the capacity of the L2 conversion index buffer are dynamically changed according to one of the plurality of capacity configuration environments, at least one of the first threshold value and the second threshold value and the access characteristics of the application are changed. To reset the number of comparisons,
Control unit for integrated L2 cache-translation index buffer memory.
상기 복수개의 용량 구성 환경은,
상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 작은 제1 용량 구성 환경;
상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량과 동일한 제2 용량 구성 환경; 및
상기 L2 변환 색인 버퍼의 용량이 상기 L2 캐시의 용량보다 큰 제3 용량 구성 환경;
을 포함하는 통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치.In paragraph 10:
The plurality of capacity configuration environments are:
a first capacity configuration environment in which the capacity of the L2 conversion index buffer is smaller than the capacity of the L2 cache;
a second capacity configuration environment in which the capacity of the L2 conversion index buffer is equal to the capacity of the L2 cache; and
a third capacity configuration environment in which the capacity of the L2 conversion index buffer is larger than the capacity of the L2 cache;
Control unit of integrated L2 cache-translation index buffer memory comprising.
상기 프로세서는,
상기 어플리케이션의 접근 특성이 미리 설정된 제1 임계값보다 작은 횟수가 미리 설정된 기준 횟수보다 많으면, 상기 제1 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하고,
상기 어플리케이션의 접근 특성이 상기 제1 임계값보다 크고 미리 설정된 제2 임계값보다 작은 횟수가 상기 기준 횟수보다 많으면, 상기 제2 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하며,
상기 어플리케이션의 접근 특성이 상기 제2 임계값보다 큰 횟수가 상기 기준 횟수보다 많으면, 상기 제3 용량 구성 환경에 따라 상기 L2 캐시의 용량과 상기 L2 변환 색인 버퍼의 용량을 동적으로 변경하는,
통합 L2 캐시-변환 색인 버퍼 메모리의 제어 장치.
In paragraph 12:
The processor,
If the number of times that the access characteristics of the application are smaller than a preset first threshold is greater than the preset reference number, dynamically change the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the first capacity configuration environment,
If the access characteristic of the application is greater than the first threshold and the number of times less than the preset second threshold is greater than the reference number, the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the second capacity configuration environment. changes dynamically,
If the number of times that the access characteristic of the application is greater than the second threshold is greater than the reference number, dynamically changing the capacity of the L2 cache and the capacity of the L2 conversion index buffer according to the third capacity configuration environment.
Control unit for integrated L2 cache-translation index buffer memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210041985A KR102612947B1 (en) | 2021-03-31 | 2021-03-31 | Method and apparatus for controlling unified L2 cache-TLB memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210041985A KR102612947B1 (en) | 2021-03-31 | 2021-03-31 | Method and apparatus for controlling unified L2 cache-TLB memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220135813A KR20220135813A (en) | 2022-10-07 |
KR102612947B1 true KR102612947B1 (en) | 2023-12-11 |
Family
ID=83595537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210041985A KR102612947B1 (en) | 2021-03-31 | 2021-03-31 | Method and apparatus for controlling unified L2 cache-TLB memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102612947B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020062418A1 (en) * | 1998-08-31 | 2002-05-23 | International Business Machines Corporation | Partition of on-chip memory buffer for cache |
US20190087350A1 (en) * | 2017-09-15 | 2019-03-21 | Board Of Regents, The University Of Texas System | Intelligently partitioning data cache to allocate space for translation entries |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255190B2 (en) * | 2015-12-17 | 2019-04-09 | Advanced Micro Devices, Inc. | Hybrid cache |
-
2021
- 2021-03-31 KR KR1020210041985A patent/KR102612947B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020062418A1 (en) * | 1998-08-31 | 2002-05-23 | International Business Machines Corporation | Partition of on-chip memory buffer for cache |
US20190087350A1 (en) * | 2017-09-15 | 2019-03-21 | Board Of Regents, The University Of Texas System | Intelligently partitioning data cache to allocate space for translation entries |
Also Published As
Publication number | Publication date |
---|---|
KR20220135813A (en) | 2022-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102088403B1 (en) | Storage device, computer system comprising the same, and operating method thereof | |
KR101761044B1 (en) | Power conservation by way of memory channel shutdown | |
US10452539B2 (en) | Simulator for enterprise-scale simulations on hybrid main memory systems | |
Lucas et al. | Sparkk: Quality-scalable approximate storage in DRAM | |
KR20120058352A (en) | Hybrid Memory System and Management Method there-of | |
KR20170138765A (en) | Memory device, memory module and operating method of memory device | |
US20170228191A1 (en) | Systems and methods for suppressing latency in non-volatile solid state devices | |
US20110258367A1 (en) | Memory system, control method thereof, and information processing apparatus | |
KR101944378B1 (en) | A method of dynamic cache sizing in a memeory device and a processor comprising the method thereof | |
US9619165B1 (en) | Convertible leaf memory mapping | |
US11270749B2 (en) | Storage device and method for operating storage device | |
US20210173574A1 (en) | Allocating variable media types of memory devices in a memory system | |
CN110597742A (en) | Improved storage model for computer system with persistent system memory | |
US20120017052A1 (en) | Information Handling System Universal Memory Wear Leveling System and Method | |
US9411674B2 (en) | Providing hardware resources having different reliabilities for use by an application | |
KR102612947B1 (en) | Method and apparatus for controlling unified L2 cache-TLB memory | |
KR20180022538A (en) | System and method for pre-conditioning a storage device | |
CN111459400B (en) | Method and apparatus for pipeline-based access management in storage servers | |
WO2018235149A1 (en) | Storage device and method for managing storage regions | |
Greenspan | LLAMA-automatic memory allocations: an LLVM pass and library for automatically determining memory allocations | |
CN110147670A (en) | Persistence method for protecting EMS memory between a kind of process working in kernel state | |
KR102088193B1 (en) | Storage device, computer system comprising the same, and operating method thereof | |
US8756193B2 (en) | System and method for persisting object pointers | |
KR20160056446A (en) | Data storage device and operating method thereof | |
KR101831226B1 (en) | Apparatus for controlling cache using next-generation memory and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |