KR101017068B1 - 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법 - Google Patents

개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법 Download PDF

Info

Publication number
KR101017068B1
KR101017068B1 KR1020080117448A KR20080117448A KR101017068B1 KR 101017068 B1 KR101017068 B1 KR 101017068B1 KR 1020080117448 A KR1020080117448 A KR 1020080117448A KR 20080117448 A KR20080117448 A KR 20080117448A KR 101017068 B1 KR101017068 B1 KR 101017068B1
Authority
KR
South Korea
Prior art keywords
block
cache
individual
energy
caches
Prior art date
Application number
KR1020080117448A
Other languages
English (en)
Other versions
KR20100058877A (ko
Inventor
김지홍
김현희
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020080117448A priority Critical patent/KR101017068B1/ko
Publication of KR20100058877A publication Critical patent/KR20100058877A/ko
Application granted granted Critical
Publication of KR101017068B1 publication Critical patent/KR101017068B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명은 개별 L2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법에 관한 것으로, 본 발명의 일 실시 예는 개별 L2 캐시 사이에서 캐시 공유 기법을 사용함에 있어 누설 에너지를 고려함으로써 성능과 누설 에너지 소모를 동시에 향상시킬 수 있다.
칩 멀티 프로세서, 개별 L2 캐시, 캐시 공유 기법, 누설 에너지 관리

Description

개별 L2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법{Leakage-Aware Cache Sharing Technique for Chip Multiprocessors with Private L2 Caches}
본 발명은 개별 L2 캐시를 사용하는 칩 멀티 프로세서 환경에서 캐시 공유 기법 사용시 증가하는 누설 에너지를 감소시키기 위한 방법에 관한 것으로, 더욱 상세하게는 이웃 L2 캐시 블록의 비활성화 기간의 예측과, 쫓겨나는 블록 저장시 에너지 면에서의 이득과 손실을 비교하는 기술과, 비활성화 가능성 예측과, 이들 정보를 이용하여 교체될 이웃 캐시 블록을 선택하는 방법에 관한 것으로 성능 향상과 동시에 누설 에너지를 감소시키기 위한 방법에 관한 것이다.
(1) 개별 L2 캐시를 사용하는 멀티 프로세서 환경에서의 캐시 공유 기법
일반적으로 칩 멀티 프로세서 환경에서는 오프 칩 메모리 접근 시간을 줄이기 위해 여러 계층의 온 칩 캐시 메모리를 사용한다. 칩 멀티 프로세서 환경에서는 성능 향상에 크게 영향을 주는 L2 캐시의 구조로 프로세서들이 서로 캐시 공간을 공유하는 공유 캐시를 사용하거나 각각의 프로세서가 자신의 저장 공간을 갖는 개별 L2 캐시를 사용할 수 있다. 공유 L2 캐시는 큰 캐시 공간을 프로세서들이 공유하여 효율적으로 사용함으로써 오프 칩 메모리 횟수를 줄일 수 있는 반면, 개별 L2 캐시는 캐시 접근 시간이 빠른 장점이 있다. 그러나 개별 L2 캐시는 공유 L2 캐시에 비해 각 프로세서가 제한된 캐시 공간을 갖기 때문에, 캐시 공간을 효율적으로 사용하지 못하는 단점이 있다. 따라서 개별 L2 캐시를 사용하는 멀티 프로세서 환경에서는 온 칩 캐시 공간을 효율적으로 사용하여 메모리 접근 시간을 줄이기 위해 L2 캐시 공유 기법을 사용한다. 개별 L2 캐시 공유 기법에서는 L2 캐시에서 데이터 블록이 쫓겨날 때 온 칩상의 이웃 캐시에 저장함으로써, 가까운 미래에 재사용되는 경우 오프 칩 메모리에 접근하는 대신 접근 시간이 짧은 온 칩의 이웃 캐시에 접근하여 메모리 접근 시간을 줄일 수 있다.
(2) 캐시 누설 에너지 감소 기법
프로세스 기술이 90nm 이하로 발전함에 따라 전체 에너지에서 누설 에너지가 차지하는 비중이 커진다. 이러한 누설 에너지를 감소시키기 위해 캐시 블록이 비활성화되는 기간 동안 캐시 블록에 공급되는 전압을 차단함으로써 누설 에너지의 소모를 없앨 수 있다. 도 2는 캐시 블록의 한 세대 동안 비활성화되는 기간을 보여준다. 처음 캐시에서 미스가 발생하여 데이터가 캐시로 올라오면 캐시 블록의 한 세대가 시작된다. 데이터가 캐시로 올라온 후 마지막 접근 이후에 다음 미스가 발생하여 데이터가 교체될 때까지 다시 사용되지 않는 기간을 비활성 기간이라고 볼 수 있으며, 해당 기간 동안 캐시 블록을 비활성화 시켜 누설 에너지 소모를 없앨 수 있다. 마지막 접근을 판별해 내기 위해 각 캐시 블록에 카운터를 추가하고 캐시 블록에의 접근 후부터 카운터를 증가시켜, 카운터가 턴-오프-임계치(turn-off threshold)에 이르면, 임계치 동안 접근되지 않은 블록을 비활성 블록이라고 간주하여 블록을 비활성화 시킨다. 캐시 블록이 접근되면 카운터를 0으로 감소시키고 다시 증가를 시작한다.
(3) 종래 기술의 문제점
개별 L2 캐시 공유 기법은 짧은 접근 시간을 갖는 개별 캐시를 이용하면서 효율적으로 이웃 캐시 공간을 사용함으로써 오프 칩 메모리 접근 횟수를 줄여 성능 향상을 시킨다. 그러나 이와 같은 개별 L2 캐시 공유 기법을 사용하는 구조에서 누설 에너지를 줄이기 위해 캐시 누설 에너지 감소 기법을 적용하면 성능은 향상되나 누설 에너지는 캐시 공유 기법을 사용하지 않는 경우에 비해 오히려 증가하게 된다. 이는 쫓겨나는 블록이 이웃 캐시에 저장될 때, 이미 비활성 상태의 캐시 블록을 활성화 시키거나, 비활성화 가능성이 있는 블록에 다시 접근을 함으로써 블록이 비활성화 되는 것을 막기 때문에 발생하게 된다.
종래 기술의 문헌 정보
[문헌 1] J.Chang and G.S.Soh. "Cooperative Caching for Chip Multiprocessors," In International System on Computer Architecture, July 2006.
[문헌 2] S.Kaxiras, Z.Hu, and M.Martonosi. "Cache Decay: Exploiting Generational Behavior to Reduce Cache leakage Power," In International Symposium on Computer Architecture, May 2001.
본 발명의 일 실시 예는 개별 L2 캐시를 사용하는 멀티 프로세서 환경에서 캐시 공유 기법을 사용할 때 증가하는 누설 에너지 소모를 감소시키기 위한 것이다.
본 발명의 일 실시 예는 쫓겨나는 블록이 저장될 이웃 캐시를 선택할 때 누설 에너지를 고려하여 결정을 내림으로써 누설 에너지 소모를 감소시키며, 누설 에너지를 고려한 결정을 내릴 때, 이미 비활성 상태 블록의 비활성화 기간을 예측하고, 비활성 블록이 활성화되었을 때의 에너지 면에서의 이득과 손실을 비교하고, 아직 활성 상태의 블록의 비활성화 가능성을 예측하여, 캐시 블록의 비활성 상태 시간을 최대화시킴으로써 누설 에너지 소모를 감소시킬 수 있는 개별 L2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한, 본 발명의 일 실시 예에 따른 개별 L2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법은 개별 L2 캐시에서 쫓겨나는 블록을 저장할 이웃 개별 L2 캐시를 선택하는 단계; 및 상기 선택한 이웃 개별 L2 캐시에 상기 쫓겨나는 블록을 저장하는 단계를 포함하고,
상기 선택 단계는 상기 개별 L2 캐시에서 상기 쫓겨나는 블록이 저장될 이웃 개별 L2 캐시의 블록의 정보를 요청하는 단계; 상기 해당 블록이 비활성 상태 또는 활성 상태인지에 따라 상기 쫓겨나는 블록의 저장 여부를 판단하는 단계; 및 상기 쫓겨나는 블록을 상기 이웃 개별 L2 캐시의 해당 블록에 저장하는 경우 상기 요청한 개별 L2 캐시에 응답을 보내는 단계를 포함하여 이루어진다.
상기 판단 단계는 상기 해당 블록이 비활성 상태인 경우, 상기 해당 블록에 대한 비활성 기간 예측 또는 상기 해당 블록을 활성화하고 상기 쫓겨나는 블록을 저장한 경우의 에너지 이득 및 손실을 판단하는 것을 특징으로 한다.
상기 판단 단계는 상기 해당 블록이 비활성 상태에서 비활성된 후 경과된 시간이 예측된 비활성 기간보다 긴 경우, 상기 쫓겨나는 블록을 상기 이웃 개별 L2 캐시에 저장하는 것으로 판단하는 것을 특징으로 한다.
상기 예측된 비활성 기간은 각각 개별 L2 캐시의 이전 비활성화 기간들의 평균이고, 상기 해당 블록의 비활성화 상태에서 비활성화된 후 경과된 시간은 카운터를 사용하여 판단하되, 해당 캐시 블록이 비활성된 후에 상기 카운터를 0으로 감소시키고 해당 캐시 블록이 교체될 때까지 상기 카운터를 계속 증가시켜 교체될 때 카운터의 값이 경과된 시간인 것을 특징으로 한다.
상기 판단 단계는 상기 비활성 상태의 해당 블록을 활성화한 후 상기 쫓겨나는 블록을 저장하였을 때, 에너지 측면에서의 이득과 손실을 비교하여 이득이 손실보다 큰 경우 상기 해당 블록에 상기 쫓겨나는 블록을 저장하는 것으로 판단하는 것을 특징으로 한다.
상기 에너지 이득은 상기 쫓겨나는 블록이 오프 칩 메모리에 접근하는 동적 에너지와, 상기 오프 칩 메모리 접근 시간 동안 소모되는 캐시와 메모리의 누설 에너지의 합이고, 상기 에너지 손실은 상기 비활성화 상태의 해당 블록을 활성화시킴으로써 남은 비활성화 기간 동안의 누설 에너지 소모인 것을 특징으로 한다.
상기 판단 단계는 상기 해당 블록이 활성 상태인 경우, 상기 해당 블록의 비활성 가능성을 예측하고, 상기 비활성 가능성이 없는 경우 해당 캐시 블록에 상기 쫓겨나는 캐시 블록을 저장하는 것으로 판단하는 것을 특징으로 한다.
상기 판단 단계에서, 비활성 가능성에 대한 판단은 상기 해당 블록에 마지막 액세스 후 경과 시간이 비활성 가능성 판단 임계값보다 작은 경우, 상기 해당 블록의 비활성 가능성이 없다고 판단하는 것을 특징으로 한다.
상기 이웃 개별 L2 캐시는 복수인 것을 특징으로 한다.
상기 개별 L2 캐시는 상기 복수의 이웃 개별 L2 캐시에 블록의 정보를 요청하는 것을 특징으로 한다.
상기 복수의 이웃 개별 L2 캐시로부터 상기 응답을 수신한 경우, 임의로 하나의 이웃 개별 L2 캐시를 선택하여 상기 쫓겨나는 블록을 저장하는 것을 특징으로 한다.
상기 판단 단계는 상기 해당 블록의 비활성화 기간, 상기 해당 블록을 활성화하고 상기 쫓겨나는 블록을 저장한 경우의 에너지 이득 및 손실 및 상기 해당 블록의 활성화 가능성 중 하나를 기초로 상기 해당 블록에 상기 쫓겨나는 블록을 저장할지 여부를 판단하는 것을 특징으로 한다.
상기 쫓겨나는 블록을 상기 이웃 개별 L2 캐시의 해당 블록에 저장하지 않는 경우, 상기 요청한 개별 L2 캐시에 응답을 보내지 않는 것을 특징으로 한다.
상기 개별 L2 캐시와 이웃 개별 L2 캐시와의 상기 요청 및 상기 응답은 피어-투-피어 통신 라인(peer-to-peer communication line)을 통해 이루어지는 것을 특징으로 한다.
본 발명은 개별 L2 캐시를 이용하는 멀티 프로세서 환경에서 캐시 공유 기법을 사용할 때 이웃 캐시 블록의 누설 에너지 소모를 고려하여 쫓겨나는 블록이 저장될 이웃 캐시 블록을 선택함으로써, 개별 L2 캐시 공유 기법에 종래의 캐시 누설 에너지 감소 기법을 적용하였을 때의 증가하는 누설 에너지 소모를 감소시킬 수 있으며, 개별 캐시 공유 기법으로 인한 성능 향상과 함께 누설 에너지 소모를 감소시키는 효과를 갖는다.
이하, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 수 있다.
또한, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 본 발명을 가장 적절하게 표현할 수 있도록 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다.
(1) 본 발명의 일 실시 예의 전반적인 구성
도 1은 본 발명의 일 실시 예에 따른 개별 L2 캐시의 공유 시스템의 전반적인 개략도이다.
먼저 본 발명의 일 실시 예는 프로세서들(101)이 각자의 개별 명령어 L1(Instruction L1) 캐시(102), 데이터 L1 (Data L1) 캐시(103), L2 캐시(104)와 캐시 공유 관련 정보를 교환하기 위한 피어-투-피어 통신 라인(peer-to-peer communication line)(105)로 이루어진다. 개별 L2 캐시에서 데이터 블록이 쫓겨날 때 쫓겨나는 블록이 저장될 이웃 캐시를 선택하기 위해 이웃 캐시 블록의 정보를 요청(106)하는데, 이때 이웃 캐시의 해당 셋(set)에 해당하는 LRU 스택(stack)의 가장 아래 블록에 대한 정보를 얻기 위해 쫓겨나는 데이터 블록의 셋(set) 정보를 보낸다. 요청을 받은 이웃 개별 캐시 컨트롤러(106)는 해당 셋(set)의 LRU 스택(stack)의 가장 아래 블록을 확인하고, 해당 블록이 이미 비활성 상태인 경우, 블록이 비활성화 된 후 경과된 시간이 예측 비활성화 기간이 넘었거나, 혹은 비활성 블록을 활성화 한 후 쫓겨난 블록을 저장함으로써 메모리 접근을 줄인 경우 에너지 면에서 이득이 더 큰지를 판단한다. 지난 시간이 비활성화 기간을 넘었거나, 저장한 이득이 큰 경우 해당 비활성화 블록을 교체 가능한 블록으로 결정하고 교체 가능한 블록이 존재한다는 응답(107)을 보낸다. 이때, 이미 비활성 상태인 블록의 비활성화 된 후 경과 된 시간이 예측된 비활성화 기간보다 작거나, 활성화 한 후 저장함으로써 얻는 에너지 면에서의 이득이 손실보다 작다면 해당 쫓겨나는 블록을 저장하지 않기 위해 응답을 보내지 않는다. 한편, 해당 셋(set)의 LRU 스택(stack)의 가장 아래 블록이 아직 활성 블록인 경우, 비활성 가능성이 있는지 판별하기 위해 비활성 가능성 판단 임계치를 이용한다. 따라서, 마지막 접근 후 경과 된 시간이 해당 임계치보다 작은 경우, 비활성화 가능성이 없다고 판단하여 교제 가능한 블록이 존재한다는 응답(107)을 보내며, 임계치보다 큰 경우는 비활성화 가능성이 있다고 판단하여 응답을 보내지 않는다. 응답을 받은 개별 L2 캐시의 컨트롤러는 응답을 보낸 캐시들 중 임의로 하나의 캐시를 선택하여 데이터 블록을 보내 선택된 이웃 개별 캐시에 저장한다.
본 발명의 일 실시 예는 쫓겨나는 블록을 저장할 이웃 캐시를 선택하는 시점에서, 이웃 캐시 블록이 이미 비활성 상태인 경우 비활성화 기간을 예측하고, 비활성 블록을 활성화하여 쫓겨나는 블록을 저장했을 때의 에너지 면에서의 이득을 예측하는 단계, 아직 활성화 상태인 블록에 대해서는 비활성화 가능성을 예측하는 단계, 이들 결과에 따라 쫓겨나는 블록이 저장될 이웃 캐시를 선택하는 단계로 이루어진 것에 특징이 있다.
(2) 비활성 블록 선택 기준
도 3은 이웃 캐시의 블록이 이미 비활성 상태인 블록인 경우 교체 가능성을 판단하기 위한 플로우 차트를 보여준다. 캐시 블록 정보 요청을 받은 이웃 캐시들은 요청(301)과 함께 전달된 셋(set) 정보(302)를 이용하여 해당 셋의 LRU 스택의 가장 아래 있는 블록의 누설 에너지와 관련된 정보를 확인하여 요청한 캐시로 응답한다. 이때, LRU 스택의 가장 아래 있는 블록이 이미 비활성 블록인 경우, 예측된 비활성화 기간을 이용하여 꺼진 후 경과 된 시간이 예측된 비활성화 기간을 지났거나(303), 비활성 블록을 활성화하여 쫓겨난 블록을 저장한 경우 에너지 이득과 손실을 계산하여 이득이 큰 경우(305) 비활성화 블록을 활성화하고 쫓겨난 블록을 저장시키기로 결정하여 교체 가능 블록 존재 응답(304)을 보낸다. 다음에서는 비활성화 기간을 예측하는 방법과 비활성화된 블록을 활성화하고 쫓겨난 블록을 저장하였을 때 일어나는 에너지의 이득과 손실을 계산하는 방법을 설명한다.
(a) 비활성화 기간 예측
본 발명의 일 실시 예에서 이웃 캐시 블록의 비활성화 기간을 예측하기 위해 이전 비활성화 기간들의 히스토리를 이용한다. 하나의 프로그램마다 캐시 블록의 비활성화 기간이 비슷한 범위를 갖으므로, 각 개별 L2 캐시가 하나의 비활성화 기간 히스토리 레지스터를 갖으며, 캐시 블록이 교체될 때마다 해당 블록의 비활성화 기간을 이전 비활성화 기간 히스토리 레지스터 값과 평균하여 비활성화 기간 히스토리 레지스터에 저장한다. 캐시 블록이 교체될 때 해당 블록의 비활성화 기간은 캐시 누설 에너지 감소 기법에서 사용되는 카운터를 그대로 이용하되 각 캐시 블록마다 캐시 블록이 꺼진 상태인지를 나타내는 비트(bit)를 하나 추가하여 캐시 블록의 상태에 따라 카운터 값이 다른 의미를 갖도록 한다. 도 2는 각 캐시 블록의 비활성화 기간을 보여준다. 카운터는 최초에 미스(201)가 발생하면 0으로 초기화되며, 매 클럭 마다 하나씩 증가하고, 캐시 블록에 히트(202)가 발생할 때마다 0으로 다시 초기화된다. 해당 블록이 켜진 경우에는 카운터가 턴-오프-임계치(turn-off threshold, 205)에 이르는 경우 해당 블록을 비활성화시킨다. 반면, 블록이 꺼질 때 카운터 값을 0으로 감소시킨 후, 매 클럭 마다 하나씩 증가시킨다. 블록이 교체될 때 해당 블록이 꺼진 경우에는 해당 카운터가 갖는 값이 해당 블록의 비활성화 기간(206)이 된다.
(b) 블록 저장의 이득과 손실 비교
본 발명의 일 실시 예에서 이웃 캐시의 LRU 스택 가장 아래의 블록이 이미 비활성 상태인 경우, 블록을 활성화 한 후 쫓겨나는 블록을 저장하는 것에 대한 에너지 면에서의 이득과 손실을 비교한다. 이때, 이득이 큰 경우 비활성화 상태의 블록을 활성화 한 후 쫓겨나는 블록을 저장한다. 에너지 면에서의 이득은 저장된 블록이 가까운 미래에 재사용 되는 경우 오프-칩 메모리 접근을 피할 수 있으므로, 오프-칩 메모리에 접근하는 동적 에너지와 오프-칩 메모리 접근 시간 동안 소모되는 캐시와 메모리의 누설 에너지의 합으로 얻을 수 있다. 한편, 비활성 블록을 활성화하는 것으로 인한 에너지 손실은 남은 비활성화 기간 동안의 누설 에너지 소모가 된다. 이와 같은 이득이 손실보다 큰 경우 비활성 블록에 쫓겨나는 블록을 저장하는 것으로 결정한다.
이때 오프-칩 메모리에 접근하는 동적 에너지와 접근 시간, 캐시와 메모리의 누설 에너지는 일정하므로 상수를 사용하며, 남은 비활성화 기간은 예측된 비활성화 기간에서 경과된 시간을 뺌으로써 얻을 수 있다.
(3) 활성 블록 선택 기준
도 4는 이웃 캐시의 블록이 아직 활성 상태의 블록일 때, 교체 가능성을 판단하는 플로우차트를 보여준다. 본 발명의 일 실시 예에서는 이웃 캐시로부터 셋 정보(402)를 포함하여 정보 요청(401)을 받았을 때, 해당 셋의 LRU 스택 가장 아래의 블록을 확인하여 아직 활성화 상태인 경우, 활성화 상태의 블록의 비활성 가능성을 예측하여 가능성이 없는 경우 해당 캐시 블록에 쫓겨나는 캐시 블록을 저장하는 것으로 결정한다. 비활성화 가능성 예측은 턴-오프-임계치(turn-off threshold)보다 작은 비활성화 가능성 판단 임계치를 이용하여 판단한다. 마지막 접근으로부터 경과 된 시간이 비활성화 가능성 판단 예측 임계치보다 작은 경우(403), 비활성화 가능성이 없다고 판단하여 교체 가능성 존재 응답을 요청한 캐시로 보내며(404) 그렇지 않은 경우 응답을 보내지 않는다(405).
(4) 교체될 이웃 개별 캐시 선택
도 5는 개별 L2 캐시에서 블록이 쫓겨날 때 교체될 이웃 개별 캐시의 블록을 선택하는 플로우 차트를 보여준다. 본 발명의 일 실시 예에서는 개별 L2 캐시에서 쫓겨나는 블록을 저장할 이웃 L2 캐시를 결정할 때, 이웃 L2 캐시 블록에 관련된 정보를 얻기 위해 셋 정보와 함께 이웃 개별 L2 캐시에 요청을 보낸다(501). 요청을 받은 이웃 개별 L2 캐시는 위의 비활성 블록 선택 기준과 활성 블록 선택 기준을 이용하여 교체 가능성을 판단하고, 교체 가능성 블록이 존재함을 요청받은 개별 L2 캐시에 응답을 보낸다. 응답하는 이웃 개별 캐시가 존재하는 경우(502) 응답을 보낸 이웃 개별 L2 캐시로 쫓겨나는 블록을 보내어 저장한다(503). 이때, 응답을 보낸 이웃 개별 L2 캐시가 여럿인 경우 임의로 하나를 선택하여 쫓겨나는 블록을 저장한다. 그렇지 않은 경우에는 쫓겨나는 블록을 온-칩 캐시에 저장하지 않는다(504).
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서 상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
도 1은 본 발명의 전반적인 구성과 동작 과정을 나타내는 블록도.
도 2는 캐시 블록의 비활성화 기간을 설명하는 블록도.
도 3은 이웃 캐시의 블록이 이미 비활성 블록인 경우 교체 가능성을 판단하는 플로우차트.
도 4는 이웃 캐시의 블록이 아직 활성 블록인 경우 교체 가능성을 판단하는 플로우차트.
도 5는 블록이 쫓겨날 때, 이웃 캐시로의 저장 여부를 결정하는 플로우차트.

Claims (14)

  1. 개별 L2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법으로서,
    개별 L2 캐시에서 쫓겨나는 블록을 저장할 이웃 개별 L2 캐시를 선택하는 단계; 및
    상기 선택한 이웃 개별 L2 캐시에 상기 쫓겨나는 블록을 저장하는 단계를 포함하고,
    상기 선택 단계는,
    상기 개별 L2 캐시에서 상기 쫓겨나는 블록이 저장될 이웃 개별 L2 캐시의 블록의 정보를 요청하는 단계;
    상기 이웃 개별 L2 캐시의 해당 블록이 비활성 상태 또는 활성 상태인지에 따라 상기 쫓겨나는 블록의 저장 여부를 판단하는 단계; 및
    상기 쫓겨나는 블록을 상기 이웃 개별 L2 캐시의 해당 블록에 저장하는 경우 상기 요청한 개별 L2 캐시에 응답을 보내는 단계를 포함하는 캐시 공유 방법.
  2. 제 1 항에 있어서,
    상기 판단 단계는,
    상기 해당 블록이 비활성 상태인 경우, 상기 해당 블록에 대한 비활성 기간 예측 또는 상기 해당 블록을 활성화하고 상기 쫓겨나는 블록을 저장한 경우의 에너지 이득 및 손실을 판단하는 것을 특징으로 하는 캐시 공유 방법.
  3. 제 2 항에 있어서,
    상기 비활성 기간 예측은,
    상기 해당 블록이 비활성 상태에서 비활성된 후 경과된 시간이 예측된 비활성 기간보다 긴 경우, 상기 쫓겨나는 블록을 상기 이웃 개별 L2 캐시에 저장하는 것으로 판단하는 것을 특징으로 하는 캐시 공유 방법.
  4. 제 3 항에 있어서,
    상기 예측된 비활성 기간은 각각 개별 L2 캐시의 이전 비활성화 기간들의 평균이고,
    상기 해당 블록의 비활성 상태에서 비활성화된 후 경과된 시간은 카운터를 사용하여 판단하되, 상기 해당 블록이 비활성된 후에 상기 카운터를 0으로 감소시키고 상기 해당 블록이 교체될 때까지 상기 카운터를 계속 증가시켜 교체될 때 카운터의 값이 경과된 시간인 것을 특징으로 하는 캐시 공유 방법.
  5. 제 2 항에 있어서,
    상기 에너지 이득 및 손실은,
    상기 비활성 상태의 해당 블록을 활성화한 후 상기 쫓겨나는 블록을 저장하였을 때, 에너지 측면에서의 이득과 손실을 비교하여 이득이 손실보다 큰 경우 상기 해당 블록에 상기 쫓겨나는 블록을 저장하는 것으로 선택하는 것을 특징으로 하는 캐시 공유 방법.
  6. 제 5 항에 있어서,
    상기 에너지 이득은 상기 쫓겨나는 블록이 오프 칩 메모리에 접근하는 동적 에너지와, 상기 오프 칩 메모리 접근 시간 동안 소모되는 캐시와 메모리의 누설 에너지의 합이고,
    상기 에너지 손실은 상기 비활성 상태의 해당 블록을 활성화시킴으로써 남은 비활성화 기간 동안의 누설 에너지 소모인 것을 특징으로 하는 캐시 공유 방법.
  7. 제 1 항에 있어서,
    상기 판단 단계는,
    상기 해당 블록이 활성 상태인 경우, 상기 해당 블록의 비활성 가능성을 예측하고, 상기 비활성 가능성이 없는 경우 해당 캐시 블록에 상기 쫓겨나는 캐시 블록을 저장하는 것으로 판단하는 것을 특징으로 하는 캐시 공유 방법.
  8. 제 7 항에 있어서,
    상기 비활성 가능성은,
    상기 해당 블록에 마지막 액세스 후 경과 시간이 비활성 가능성 판단 임계값보다 작은 경우, 상기 해당 블록의 비활성 가능성이 없다고 판단하는 것을 특징으로 하는 캐시 공유 방법.
  9. 제 1 항에 있어서,
    상기 이웃 개별 L2 캐시는 복수인 것을 특징으로 하는 캐시 공유 방법.
  10. 제 9 항에 있어서,
    상기 개별 L2 캐시는 상기 복수의 이웃 개별 L2 캐시에 블록의 정보를 요청하는 것을 특징으로 하는 캐시 공유 방법.
  11. 제 10 항에 있어서,
    상기 복수의 이웃 개별 L2 캐시로부터 상기 응답을 수신한 경우, 임의로 하나의 이웃 개별 L2 캐시를 선택하여 상기 쫓겨나는 블록을 저장하는 것을 특징으로 하는 캐시 공유 방법.
  12. 제 1 항에 있어서,
    상기 판단 단계는,
    상기 해당 블록의 비활성 기간, 상기 해당 블록을 활성화하고 상기 쫓겨나는 블록을 저장한 경우의 에너지 이득 및 손실 및 상기 해당 블록의 비활성 가능성 중 하나를 기초로 상기 해당 블록에 상기 쫓겨나는 블록을 저장할지 여부를 판단하는 것을 특징으로 하는 캐시 공유 방법.
  13. 제 1 항에 있어서,
    상기 쫓겨나는 블록을 상기 이웃 개별 L2 캐시의 해당 블록에 저장하지 않는 경우, 상기 요청한 개별 L2 캐시에 응답을 보내지 않는 것을 특징으로 하는 캐시 공유 방법.
  14. 제 1 항에 있어서,
    상기 개별 L2 캐시와 이웃 개별 L2 캐시와의 상기 요청 및 상기 응답은 피어-투-피어 통신 라인(peer-to-peer communication line)을 통해 이루어지는 것을 특징으로 하는 캐시 공유 방법.
KR1020080117448A 2008-11-25 2008-11-25 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법 KR101017068B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080117448A KR101017068B1 (ko) 2008-11-25 2008-11-25 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080117448A KR101017068B1 (ko) 2008-11-25 2008-11-25 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법

Publications (2)

Publication Number Publication Date
KR20100058877A KR20100058877A (ko) 2010-06-04
KR101017068B1 true KR101017068B1 (ko) 2011-02-25

Family

ID=42360264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080117448A KR101017068B1 (ko) 2008-11-25 2008-11-25 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법

Country Status (1)

Country Link
KR (1) KR101017068B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101858159B1 (ko) 2012-05-08 2018-06-28 삼성전자주식회사 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039880A1 (en) 2002-08-23 2004-02-26 Vladimir Pentkovski Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7454573B2 (en) 2005-01-13 2008-11-18 International Business Machines Corporation Cost-conscious pre-emptive cache line displacement and relocation mechanisms

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039880A1 (en) 2002-08-23 2004-02-26 Vladimir Pentkovski Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7454573B2 (en) 2005-01-13 2008-11-18 International Business Machines Corporation Cost-conscious pre-emptive cache line displacement and relocation mechanisms

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문(2007)
논문(2008.3)

Also Published As

Publication number Publication date
KR20100058877A (ko) 2010-06-04

Similar Documents

Publication Publication Date Title
US9176878B2 (en) Filtering pre-fetch requests to reduce pre-fetching overhead
US7856533B2 (en) Probabilistic method for performing memory prefetching
US6282614B1 (en) Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches
US7707359B2 (en) Method and apparatus for selectively prefetching based on resource availability
US8688915B2 (en) Weighted history allocation predictor algorithm in a hybrid cache
US20130036270A1 (en) Data processing apparatus and method for powering down a cache
KR102470184B1 (ko) 캐시 테스트 영역을 기반으로 하는 프리페치를 위한 캐시 에이징 정책 선택
KR101701068B1 (ko) 비휘발성 메모리에 코드를 캐싱하는 방법들, 시스템들 및 장치
US20080244181A1 (en) Dynamic run-time cache size management
Srivastava et al. Proof of Optimality based on Greedy Algorithm for Offline Cache Replacement Algorithm.
US20080046659A1 (en) Pre-fetch controller and method thereof
WO2012030466A2 (en) Method and apparatus for fuzzy stride prefetch
KR101017068B1 (ko) 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법
WO2023173991A1 (en) Cache line compression prediction and adaptive compression
JP5298826B2 (ja) キャッシュメモリ及びプリフェッチ方法
Wen et al. Reducing cache leakage energy for hybrid SPM-cache architectures
Young et al. CRAM: efficient hardware-based memory compression for bandwidth enhancement
Kim et al. PP-cache: A partitioned power-aware instruction cache architecture
Zhang et al. Energy-aware caching
US20030014594A1 (en) Hot way caches: an energy saving technique for high performance caches
KR101024073B1 (ko) 공유 2차 캐시의 누설 에너지 관리 방법 및 장치
JP2006285727A (ja) キャッシュメモリ装置
US20230297382A1 (en) Cache line compression prediction and adaptive compression
US20240111425A1 (en) Tag and data configuration for fine-grained cache memory
Lin et al. An energy-delay efficient power management scheme for embedded system in multimedia applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140204

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150212

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200203

Year of fee payment: 10