KR20150001218A - 캐시 메모리 제어 방법 및 그 장치 - Google Patents

캐시 메모리 제어 방법 및 그 장치 Download PDF

Info

Publication number
KR20150001218A
KR20150001218A KR20130074061A KR20130074061A KR20150001218A KR 20150001218 A KR20150001218 A KR 20150001218A KR 20130074061 A KR20130074061 A KR 20130074061A KR 20130074061 A KR20130074061 A KR 20130074061A KR 20150001218 A KR20150001218 A KR 20150001218A
Authority
KR
South Korea
Prior art keywords
cache
processor
processor core
way
memory
Prior art date
Application number
KR20130074061A
Other languages
English (en)
Other versions
KR102027573B1 (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 KR1020130074061A priority Critical patent/KR102027573B1/ko
Priority to US14/300,942 priority patent/US20150006935A1/en
Publication of KR20150001218A publication Critical patent/KR20150001218A/ko
Application granted granted Critical
Publication of KR102027573B1 publication Critical patent/KR102027573B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

프로세서의 동작 상태에 기반한 전력 제어를 통하여 캐시 메모리를 제어하는 장치 및 방법이 개시된다. 캐시 메모리 제어 방법은, 프로세서 코어에서 수행되는 알고리즘에 상응하여 프로세서 코어의 상태를 나타내는 프로세서 동작 모드를 추출하는 단계와, 프로세서 동작 모드에 따라 프로세서 코어와 연동하는 캐시를 제어하는 단계를 포함한다. 또한, 캐시 메모리 제어 방법을 수행하는 프로세서는, 프로세서 코어와, 프로세서 코어에서 수행되는 명령어를 저장하는 캐시와, 프로세서 코어에서 수행되는 알고리즘에 상응하여 결정되는 프로세서 코어의 상태를 나타내는 프로세서 동작 모드에 따라 캐시를 제어하는 캐시 제어부를 포함한다. 따라서, 프로세서 동작 모드에 기반하여 선택된 집합에 포함된 태그 메모리 및 선택된 웨이 메모리만을 활성화함으로써 캐시에서 소모되는 전력을 감소시킬 수 있다.

Description

캐시 메모리 제어 방법 및 그 장치{METHOD FOR CONTROLLING CACHE MEMORY AND APPARATUS THEREOF}
본 발명은 캐시 메모리의 제어에 관한 것으로, 더욱 상세하게는 프로세서의 동작 상태에 기반한 전력 제어를 통하여 캐시 메모리를 제어하는 장치 및 방법에 관한 것이다.
정보 통신 기술의 발달에 따라 유비쿼터스 환경이 확대되어 모바일 기기는 보다 고성능화 되어가고 있고, 이와 함께 내장형 프로세서의 고성능화가 요구되고 있다. 또한, 프로세서와 메모리간의 성능차가 점점 커짐에 따라 더 많은 캐시(Cache) 메모리가 요구되고 있다.
프로세서가 수행할 작업은 다수의 명령어(Instruction)의 조합으로 규정된다. 즉, 명령어가 메모리에 저장되어 있고, 프로세서에 명령어들이 순차적으로(Sequentially) 입력되어 매 클럭 사이클마다 프로세서가 특정 연산을 행하게 된다.
프로세서는 기본적으로 프로세서 코어(Core), TLB(Translation Lookaside Buffer) 및 캐시(Cache)로 이루어져 있다.
TLB(Translation Lookaside Buffer)는 운영체제 기반의 어플리케이션 구동을 위하여 가상 어드레스를 물리 어드레스로 변환하는 기능을 하며, 캐시는 외부 메모리에 저장되어 있는 명령어를 칩 내부에 잠시 저장함으로써 프로세서가 명령어를 읽고 쓰는 속도를 증대시키는 역할을 한다.
프로세서 코어는 외부 메모리에서 데이터를 읽어오기 위해서 10~100 사이클의 상당한 시간이 소모되는데, 이것은 프로세서 코어가 작업을 하지 않는 Idle 상태에서 장시간 머무르게 되는 요인이 된다.
캐시는 프로세서 코어가 사용할 명령어를 프로세서 코어에 직접적으로 연결된 칩내의 메모리에 저장한 유닛이다. 캐시를 사용하는 이유는 외부 메모리는 수 Gbytes(256 Gbytes이상)이상의 대용량의 명령어를 저장할 수 있는 반면, 칩 내부에 구현할 수 있는 메모리는 수 Mbytes 수준이기 때문이다. 즉, 캐시는 외부의 대용량 메모리를 칩 내부에 잠시 저장하는 역할을 한다.
따라서, 캐시는 프로세서의 성능에 상당한 영향을 미치게 된다. 프로세서 코어가 특정 명령어를 요구할 때, 캐시에 프로세서 코어가 요구하는 명령어가 없으면 외부 메모리에서 읽어와야 하기 때문에 외부 메모리에서 읽어 오는 동안 캐시는 Idle 상태가 되며, 매 요청 시 프로세서 코어는 Address를 캐시에 보내게 되며, 캐시는 내부에 저장된 명령어 코드에 대한 Index로 해당하는 Address 이용하여 찾아 프로세서 코어에 명령어 코드를 보내게 된다.
프로세서가 낮은 주파수로 동작이 된다면, 캐시는 많은 용량을 필요치 않게 되고 더 낮은 주파수에서는 프로세서의 명령어 요청이 올 때마다 외부 메모리에서 명령어 코드를 읽어 올 수도 있다.
반면, 프로세서가 고성능으로 동작이 된다면 캐시의 성능 또한 높아야 하기에 많은 저장 용량과 외부 메모리와의 통신 횟수를 줄이는 기능이 요구된다. 또한, 동작 주파수가 다변적인 프로세서에 사용되는 캐시는 프로세서의 성능에 따라 최적의 구조를 가질 필요가 있으며, 이러한 캐시의 구조는 프로세서의 성능 저하를 감소시키고 전력을 소모를 줄일 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 캐시의 전력 모드를 제어함으로써 캐시에서 소모되는 전력을 감소시키는 장치를 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 캐시의 전력 모드를 제어함으로써 캐시에서 소모되는 전력을 감소시키는 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 프로세서는, 프로세서 코어와, 프로세서 코어에서 수행되는 명령어를 저장하는 캐시와, 프로세서 코어에서 수행되는 알고리즘에 상응하여 결정되는 프로세서 코어의 상태를 나타내는 프로세서 동작 모드에 따라 캐시를 제어하는 캐시 제어부를 포함한다.
여기에서, 상기 캐시 제어부는, 프로세서 동작 모드에 따라 캐시에 할당되는 전력을 제어할 수 있다.
여기에서, 상기 캐시 제어부는, 프로세서 동작 모드에 기반하여 집합 개수(Set Number) 및 웨이 개수(Way Number)를 생성할 수 있다.
여기에서, 상기 캐시는, 집합 개수에 기반하는 태그 메모리를 이용하여 집합을 선택하는 집합 연관 제어 모듈과, 웨이 개수에 기반하여 웨이 메모리를 선택하는 웨이 제어 모듈을 포함할 수 있다.
여기에서, 상기 캐시 제어부는, 캐시에서 선택된 집합에 포함되는 선택된 웨이 메모리에 전력을 제공할 수 있다.
여기에서, 상기 캐시는, 캐시 제어부에 의해 전력이 제공된 집합에 포함되는 웨이 메모리에 대한 정보를 프로세서 코어에 전달할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 캐시 메모리 제어 방법은, 프로세서 코어에서 수행되는 알고리즘에 상응하여 프로세서 코어의 상태를 나타내는 프로세서 동작 모드를 추출하는 단계와, 프로세서 동작 모드에 따라 프로세서 코어와 연동하는 캐시를 제어하는 단계를 포함한다.
여기에서, 상기 캐시를 제어하는 단계는, 프로세서 동작 모드에 따라 캐시에 할당되는 전력을 제어할 수 있다.
여기에서, 상기 캐시를 제어하는 단계는, 프로세서 동작 모드에 기반하여 집합 개수(Set Number) 및 웨이 개수(Way Number)를 생성하여 캐시에 전달함으로써 캐시를 제어할 수 있다.
여기에서, 상기 캐시를 제어하는 단계는, 집합 개수에 기반하는 태그 메모리를 이용하여 집합을 선택하고, 웨이 개수에 기반하여 웨이 메모리를 선택하며, 캐시에서 선택된 상기 집합에 포함된 선택된 웨이 메모리에 전력을 제공할 수 있다.
여기에서, 상기 캐시 메모리 제어 방법은, 전력이 제공된 집합에 포함되는 웨이 메모리에 대한 정보를 프로세서 코어에 전달하는 단계를 더 포함할 수 있다.
상기와 같은 본 발명의 실시예에 따른 캐시 메모리 제어 방법 및 장치는, 프로세서 코어의 상태를 나타내는 프로세서 동작 모드에 기반하여 선택된 집합에 포함된 태그 메모리 및 선택된 웨이 메모리만을 활성화함으로써 캐시에서 소모되는 전력을 감소시킬 수 있다.
또한, 프로세서 동작 모드를 고려하여 캐시의 전력 모드를 제어하기 때문에 프로세서 코어의 성능 저하를 막을 수 있다.
도 1은 본 발명의 실시예에 따른 캐시에 대한 제어를 수행하는 프로세서를 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따른 캐시의 구조를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 캐시에 대한 제어를 설명하기 위한 예시도이다.
도 4는 본 발명의 실시예에 따른 캐시 메모리 제어 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 캐시에 대한 제어를 수행하는 프로세서를 설명하기 위한 개념도이다.
먼저, 프로세서는 외부 저장장치에 보관된 명령어를 읽어 명령어를 분석하여 명령어가 지정하는 피연산자(operand)를 이용한 특정 연산(operation)을 수행하여 다시 외부 저장장치에 저장함으로써 저장된 프로그램에 의해 특정 기능을 수행하는 장치를 의미할 수 있다.
도 1을 참조하면, 본 발명의 실시예에 따른 프로세서는 프로세서 코어(100), 캐시 제어부(200) 및 캐시(300)를 포함하며, 프로세서 코어(100), 캐시 제어부(200) 및 캐시(300) 상호 간의 정보 교환을 통하여 캐시(300)를 효과적으로 제어할 수 있다.
본 발명의 실시예에 따르면, 캐시 제어부(200)가 프로세서 코어(100)의 상태에 따라 캐시(300)의 전력 모드를 제어함으로써 프로세서의 성능을 유지함과 동시에 캐시(300)에서 소모되는 전력을 감소시킬 수 있다.
캐시(300)는 프로세서 코어(100)에서 수행되는 명령어를 저장할 수 있다. 캐시(300)는 일반적으로 SRAM(Static RAM) 구조로 캐시(300)에서 소모하는 전력은 데이터를 유지하는 정적 상태에서 기본적으로 소모되는 정적 에너지 소모와 캐시(300)에 대한 액세스가 발생할 경우 액세스를 위하여 소모되는 동적 에너지 소모로 구분될 수 있다. 예컨대, 캐시(300)에서 데이터를 읽어 오기 위해서는 우선 해당 태그 어레이와 데이터 어레이를 프리차지(precharge)시켜 데이터를 빠르게 읽어 올 수 있는 상태로 만들어야 한다.
프로세서 코어(100)는 구현되는 알고리즘에 따른 연산을 수행할 수 있다. 특히, 프로세서 코어(100)는 해당 알고리즘을 수행하기 전에 프로세서에서 수행되는 알고리즘의 수행에 필요한 프로세서 코어(100)의 성능을 파악할 수 있다. 즉, 프로세서 코어(100)는 수행되는 알고리즘에 상응하여 결정되는 프로세서 코어(100)의 상태를 나타내는 프로세서 동작 모드를 결정할 수 있다. 또한, 프로세서 코어(100)는 프로세서 동작 모드에 대한 정보를 캐시 제어부(200)에 전달할 수 있다.
캐시 제어부(200)는 프로세서 코어(100)에서 수행되는 알고리즘에 상응하여 결정되는 프로세서 코어(100)의 상태를 나타내는 프로세서 동작 모드에 따라 캐시(300)를 제어할 수 있다. 즉, 캐시 제어부(200)는 프로세서 동작 모드를 파악하고, 프로세서 동작 모드에 기반하여 캐시(300)의 전력 모드를 제어할 수 있다.
캐시 제어부(200)는 프로세서 동작 모드에 기반하여 집합 개수(Set Number) 및 웨이 개수(Way Number)를 생성할 수 있다.
캐시(300)는 집합 개수(Set Number)에 기반하는 태그 메모리를 이용하여 집합을 선택하고, 웨이 개수(Way Number)에 기반하여 웨이 메모리를 선택할 수 있다.
따라서, 캐시 제어부(200)는 집합 개수(Set Number) 및 웨이 개수(Way Number)에 기반하여 선택되는 집합에 포함되는 웨이 메모리에 전력을 제공할 수 있다.
예를 들어, 본 발명의 실시예에 따른 캐시 제어부(200)에 의해 제어되는 캐시(300)는 N-way Set Associative 구조를 가질 수 있다. N-way Set Associative 구조는 특정 address 집합(Set)에 명령어와 명령어 주소를 최대 N 개 저장할 수 있다는 것을 의미할 수 있다. 즉, N-way Set Associative 구조를 가진 캐시(300)는 프로세서 코어(100)가 요청하는 명령어의 address를 받아 분석하여 해당 집합에 저장된 N개의 명령어와 명령어 주소를 읽어 프로세서 코어(100)가 요청한 address와 명령어 주소가 일치하는 명령어를 프로세서 코어(100)로 보낼 수 있다. 다만, 본 발명의 실시예에 따른 캐시(300)는 N-way Set Associative 구조를 가진 것에 한정되는 것은 아니다.
따라서, N-way Set Associative 구조를 가진 캐시(300)에 저장될 수 있는 집합 개수(Set Number)와 웨이 개수(Way Number)를 조절함으로써 캐시(300)의 용량을 낮출 수 있고, 이를 통하여 캐시(300)의 전력 소모를 줄일 수 있다.
여기서, 집합 개수(Set Number)는 캐시(300)가 태그 메모리를 이용하여 특정 집합들을 찾을 수 있도록 하는 수로 집합 개수(Set Number)가 적을수록 적은 캐시(300) 용량을 사용할 수 있다. 또한, 웨이 개수(Way Number)는 캐시(300)가 특정 웨이들을 찾을 수 있도록 하는 수를 의미할 수 있다.
또한, 캐시(300)는, 캐시 제어부(200)에 의해 전력이 제공된 집합에 포함되는 웨이 메모리에 대한 정보를 프로세서 코어(100)에 전달할 수 있다.
도 2는 본 발명의 실시예에 따른 캐시의 구조를 설명하기 위한 블록도이고, 도 3은 본 발명의 실시예에 따른 캐시에 대한 제어를 설명하기 위한 예시도이다.
도 2를 참조하면, 본 발명의 실시예에 따른 캐시는 태그 메모리(Tag Memory), 웨이 메모리(Way Memory) 및 업데이트 메모리(Update Memory)(370)로 구성될 수 있다. 또한, 캐시는 집합 연관 제어 모듈(350), 웨이 제어 모듈(360)을 포함할 수 있다.
태그 메모리는 명령어에 대한 주소를 저장하고, 웨이 메모리는 명령어를 저장하며, 업데이트 메모리(370)는 명령어가 프로세서 코어(100)에 의해 변경되었는지에 대한 정보를 저장한다.
여기서, 태그 메모리와 웨이 메모리는 적어도 하나의 집합(Set)(310, 320, 330, 340)으로 구분될 수 있다. 예를 들어, 1개의 태그 메모리와 4개의 웨이 메모리가 하나의 집합(Set)으로 구성될 수 있다. 여기서, 제1 집합 태그 메모리에 따른 집합(Set)을 제1 집합(310), 제2 집합 태그 메모리에 따른 집합(Set)을 제2 집합(320), 제3 집합 태그 메모리에 따른 집합(Set)을 제3 집합(330), 제4 집합 태그 메모리에 따른 집합(Set)을 제4 집합(340)으로 구분할 수 있고, 각각의 집합은 4개의 웨이 메모리를 포함할 수 있다.
즉, 도 2를 참조하면, 캐시(300)는 4개의 집합(Set)(310, 320, 330, 340)으로 구성될 수 있다. 다만, 본 발명은 캐시(300)를 구성하는 집합(Set)의 개수 및 집합(Set)의 구성을 특별히 제한하는 것은 아니다.
집합 연관 제어 모듈(350)은 캐시 제어부(200)에서 생성된 집합 개수(Set Number)를 수신할 수 있고, 집합 개수(Set Number)에 기반하는 태그 메모리를 이용하여 집합(Set)을 선택할 수 있다.
또한, 웨이 제어 모듈(360)은 캐시 제어부(200)에서 생성된 웨이 개수(Way Number)를 수신할 수 있고, 웨이 개수(Way Number)에 기반하여 웨이 메모리를 선택할 수 있다.
도 3을 참조하여, 집합(Set) 및 웨이 메모리에 대한 선택을 더욱 상세하게 설명한다. 도 3에 따른 캐시(300)는 제1 태그 메모리에 따른 제1 집합(310)과 제2 태그 메모리에 따른 제2 집합(320)으로 구분될 수 있으며, 각각의 집합(Set)은 4개의 웨이 메모리를 포함할 수 있다.
예를 들어, 집합 연관 제어 모듈(350)은 캐시 제어부(200)로부터 수신한 집합 개수(Set Number)와 프로세서 코어(100)로부터 수신한 Address 정보 중에서 4-bit를 이용하여 집합 개수(Set Number)에 따라 상위 1-bit를 0으로 만들어 {0, Address[2:0]} 값을 태그 메모리로 보낼 수 있다.
이러한 경우, 상위 1-bit가 1일 때 활성화되는 태그 메모리는 선택되지 않기 때문에, 결론적으로 제1 집합(310)의 태그 메모리와 웨이 메모리만이 선택될 수 있다.
또한, 웨이 제어 모듈(360)은 캐시 제어부(200)로부터 웨이 개수(Way Number)를 수신하고, 이에 기반하여 4개의 웨이 메모리 중에서 특정 웨이 메모리를 선택할 수 있다. 예를 들어, 제1 집합(310)에 포함된 제 1 웨이 메모리와 제2 웨이 메모리가 선택될 수 있다.
결론적으로, 캐시(300)는 제1 집합(310)에 포함된 메모리 중에서 제1 집합 태그 메모리, 제1 웨이 메모리 및 제2 웨이 메모리만을 사용할 수 있다. 즉, 캐시 제어부(200)는 집합 연관 제어 모듈(350)과 웨이 제어 모듈(360)에 의해 선택된 집합에 포함된 태그 메모리 및 선택된 웨이 메모리에 전력을 제공할 수 있다.
이러한 방식을 통하여 프로세서 코어(100)의 상태를 나타내는 프로세서 동작 모드에 기반하여 집합 개수(Set Number) 및 웨이 개수(Way Number)을 생성하고, 생성된 집합 개수(Set Number) 및 웨이 개수(Way Number)에 기반하여 선택된 집합에 포함된 태그 메모리 및 선택된 웨이 메모리만을 활성화함으로써 캐시(300)에서 소모되는 전력을 감소시킬 수 있다.
또한, 프로세서 동작 모드를 고려하여 캐시(300)의 전력 모드를 제어하기 때문에 프로세서 코어(100)의 성능 저하를 막을 수 있다.
상술한 바와 같이 프로세서 동작 모드에 기반하여 캐시(300)의 전력 모드를 제어할 수 있는 본 발명의 실시예에 따른 프로세서를 구성하는 구성부는 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
도 4는 본 발명의 실시예에 따른 캐시 메모리 제어 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 본 발명의 실시예에 따른 캐시 메모리 제어 방법은 프로세서 코어(100)의 상태를 나타내는 프로세서 동작 모드를 추출하고, 프로세서 동작 모드에 따라 프로세서 코어(100)와 연동하는 캐시(300)를 제어할 수 있다.
본 발명의 실시예에 따른 캐시 메모리 제어 방법은 N-way Set Associative 구조를 가진 캐시(300)에 적용될 수 있다. 여기서, N-way Set Associative 구조는 특정 address 집합(Set)에 명령어와 명령어 주소를 최대 N 개 저장할 수 있다는 것을 의미할 수 있다. 다만, 본 발명의 실시예 따른 캐시 메모리 제어 방법의 적용은 N-way Set Associative 구조를 가진 캐시(300)에 한정되는 것은 아니다.
먼저, 프로세서 동작 모드가 프로세서 코어(100)에 의해 추출될 수 있다(S410). 여기서, 프로세서 동작 모드는 프로세서 코어(100)의 성능에 기반하여 프로세서 코어(100)에서 수행되는 알고리즘에 상응하여 결정되는 프로세서 코어(100)의 상태에 대한 정보를 의미할 수 있다.
프로세서 동작 모드에 기반하여 집합 개수(Set Number) 및 웨이 개수(Way Number)를 생성할 수 있다(S420). 여기서, 집합 개수(Set Number)는 캐시(300)가 태그 메모리를 이용하여 특정 집합들을 찾을 수 있도록 하는 수로 집합 개수(Set Number)가 적을수록 적은 캐시(300) 용량을 사용할 수 있다. 또한, 웨이 개수(Way Number)는 캐시(300)가 특정 웨이들을 찾을 수 있도록 하는 수를 의미할 수 있다.
집합 개수(Set Number) 및 웨이 개수(Way Number)를 캐시(300)에 전송할 수 있다(S430). 즉, 캐시(300)는 수신한 집합 개수(Set Number) 및 웨이 개수(Way Number)를 이용하여 활성이 필요한 태그 메모리 및 웨이 메모리를 선택할 수 있다(S440). 즉, 집합 개수(Set Number)에 기반하는 태그 메모리를 이용하여 집합(Set)을 선택하고, 웨이 개수(Way Number)에 기반하여 웨이 메모리를 선택할 수 있다.
결론적으로, 선택된 태그 메모리 및 선택된 웨이 메모리에 전력을 제공하여 활성화할 수 있다. 즉, 집합 개수(Set Number)와 웨이 개수(Way Number)를 조절함으로써 캐시(300)의 용량을 낮출 수 있고, 이를 통하여 캐시(300)의 전력 소모를 줄일 수 있다.
더 나아가, 전력이 제공된 집합(Set)에 포함되는 웨이 메모리에 대한 정보를 프로세서 코어(100)에 전달할 수 있다.
한편, 본 발명의 실시예에 따른 캐시 메모리 제어 방법은 상술한 캐시 제어부(200)가 장착된 프로세서에 의해 수행될 수 있다. 또한, 캐시 메모리 제어 방법은 프로세서 동작 모드를 고려하여 캐시(300)의 전력 모드를 제어하기 때문에 프로세서 코어(100)의 성능 저하를 막을 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 프로세서 코어 200: 캐시 제어부
300: 캐시 310: 제1 집합
320: 제2 집합 330: 제3 집합
340: 제4 집합 350: 집합 연관 제어 모듈
360: 웨이 제어 모듈 370: 업데이트 메모리

Claims (11)

  1. 프로세서 코어;
    상기 프로세서 코어에서 수행되는 명령어를 저장하는 캐시; 및
    상기 프로세서 코어에서 수행되는 알고리즘에 상응하여 결정되는 상기 프로세서 코어의 상태를 나타내는 프로세서 동작 모드에 따라 상기 캐시를 제어하는 캐시 제어부를 포함하는 프로세서.
  2. 청구항 1에 있어서,
    상기 캐시 제어부는
    상기 프로세서 동작 모드에 따라 상기 캐시에 할당되는 전력을 제어하는 것을 특징으로 하는 프로세서.
  3. 청구항 1에 있어서,
    상기 캐시 제어부는
    상기 프로세서 동작 모드에 기반하여 집합 개수(Set Number) 및 웨이 개수(Way Number)를 생성하는 것을 특징으로 하는 프로세서.
  4. 청구항 3에 있어서,
    상기 캐시는
    상기 집합 개수에 기반하는 태그 메모리를 이용하여 집합을 선택하는 집합 연관 제어 모듈; 및
    상기 웨이 개수에 기반하여 웨이 메모리를 선택하는 웨이 제어 모듈을 포함하는 것을 특징으로 하는 프로세서.
  5. 청구항 4에 있어서,
    상기 캐시 제어부는
    상기 캐시에서 선택된 상기 집합에 포함되는 선택된 상기 웨이 메모리에 전력을 제공하는 것을 특징으로 하는 프로세서.
  6. 청구항 5에 있어서,
    상기 캐시는
    상기 캐시 제어부에 의해 전력이 제공된 상기 집합에 포함되는 선택된 상기 웨이 메모리에 대한 정보를 상기 프로세서 코어에 전달하는 것을 특징으로 하는 프로세서.
  7. 프로세서 코어에서 수행되는 알고리즘에 상응하여 상기 프로세서 코어의 상태를 나타내는 프로세서 동작 모드를 추출하는 단계;
    상기 프로세서 동작 모드에 따라 상기 프로세서 코어와 연동하는 캐시를 제어하는 단계를 포함하는 캐시 메모리 제어 방법.
  8. 청구항 7에 있어서,
    상기 캐시를 제어하는 단계는
    상기 프로세서 동작 모드에 따라 상기 캐시에 할당되는 전력을 제어하는 것을 특징으로 하는 캐시 메모리 제어 방법.
  9. 청구항 7에 있어서,
    상기 캐시를 제어하는 단계는
    상기 프로세서 동작 모드에 기반하여 집합 개수(Set Number) 및 웨이 개수(Way Number)를 생성하여 상기 캐시에 전달함으로써 상기 캐시를 제어하는 것을 특징으로 하는 캐시 메모리 제어 방법.
  10. 청구항 9에 있어서,
    상기 캐시를 제어하는 단계는
    상기 집합 개수에 기반하는 태그 메모리를 이용하여 집합을 선택하고, 상기 웨이 개수에 기반하여 웨이 메모리를 선택하며, 상기 캐시에서 선택된 상기 집합에 포함된 선택된 상기 웨이 메모리에 전력을 제공하는 것을 특징으로 하는 캐시 메모리 제어 방법.
  11. 청구항 10에 있어서,
    전력이 제공된 상기 집합에 포함되는 선택된 상기 웨이 메모리에 대한 정보를 상기 프로세서 코어에 전달하는 단계를 더 포함하는 것을 특징으로 하는 캐시 메모리 제어 방법.
KR1020130074061A 2013-06-26 2013-06-26 캐시 메모리 제어 방법 및 그 장치 KR102027573B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130074061A KR102027573B1 (ko) 2013-06-26 2013-06-26 캐시 메모리 제어 방법 및 그 장치
US14/300,942 US20150006935A1 (en) 2013-06-26 2014-06-10 Method for controlling cache memory and apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130074061A KR102027573B1 (ko) 2013-06-26 2013-06-26 캐시 메모리 제어 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20150001218A true KR20150001218A (ko) 2015-01-06
KR102027573B1 KR102027573B1 (ko) 2019-11-04

Family

ID=52116899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130074061A KR102027573B1 (ko) 2013-06-26 2013-06-26 캐시 메모리 제어 방법 및 그 장치

Country Status (2)

Country Link
US (1) US20150006935A1 (ko)
KR (1) KR102027573B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629411B1 (ko) 2015-02-03 2016-06-10 한국전자통신연구원 레벨0 캐시 제어 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246499A1 (en) * 2004-04-30 2005-11-03 Nec Corporation Cache memory with the number of operated ways being changed according to access pattern
US20070043965A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
US20110113215A1 (en) * 2006-03-02 2011-05-12 Nxp B.V. Method and apparatus for dynamic resizing of cache partitions based on the execution phase of tasks
US20110283124A1 (en) * 2010-05-11 2011-11-17 Alexander Branover Method and apparatus for cache control

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984311B2 (en) * 2011-12-30 2015-03-17 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic C0-state cache resizing
US9183144B2 (en) * 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246499A1 (en) * 2004-04-30 2005-11-03 Nec Corporation Cache memory with the number of operated ways being changed according to access pattern
US20070043965A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
US20110113215A1 (en) * 2006-03-02 2011-05-12 Nxp B.V. Method and apparatus for dynamic resizing of cache partitions based on the execution phase of tasks
US20110283124A1 (en) * 2010-05-11 2011-11-17 Alexander Branover Method and apparatus for cache control

Also Published As

Publication number Publication date
US20150006935A1 (en) 2015-01-01
KR102027573B1 (ko) 2019-11-04

Similar Documents

Publication Publication Date Title
US8250332B2 (en) Partitioned replacement for cache memory
EP0952524B1 (en) Multi-way cache apparatus and method
CN101346701A (zh) 降低正在被供电的存储体的数量
US8954676B2 (en) Cache with scratch pad memory structure and processor including the cache
CN110554973B (zh) 用户空闲模式下的存储页面回收
KR20160125887A (ko) 메모리 관리
CN109219804A (zh) 非易失内存访问方法、装置和系统
EP4060505A1 (en) Techniques for near data acceleration for a multi-core architecture
WO2012033662A2 (en) Memory controller and method for tuned address mapping
JP5954112B2 (ja) メモリ装置、演算処理装置、及びキャッシュメモリ制御方法
CN108597551A (zh) 读密集型大数据处理的内存刷新方法和系统
KR20210037216A (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
CN101739359A (zh) 存储装置、移动终端及数据访问方法、调频方法
KR20230048560A (ko) 적응형 메모리 트랜잭션 스케줄링
Gil et al. Reconfigurable cache implemented on an fpga
CN109521949A (zh) 一种基于混合便签式存储器的感知写频率数据分配方法
US10725928B1 (en) Translation lookaside buffer invalidation by range
KR20150001218A (ko) 캐시 메모리 제어 방법 및 그 장치
US6862675B1 (en) Microprocessor and device including memory units with different physical addresses
EP2093669B1 (en) Apparatus and method for processing data
US20220121576A1 (en) Reduce Data Traffic between Cache and Memory via Data Access of Variable Sizes
CN107526528B (zh) 一种片上低延迟存储器的实现机制
JP2003131945A (ja) キャッシュメモリ装置
US11003591B2 (en) Arithmetic processor, information processing device and control method of arithmetic processor
KR101831226B1 (ko) 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant