KR102161689B1 - L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들 - Google Patents

L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들 Download PDF

Info

Publication number
KR102161689B1
KR102161689B1 KR1020130152783A KR20130152783A KR102161689B1 KR 102161689 B1 KR102161689 B1 KR 102161689B1 KR 1020130152783 A KR1020130152783 A KR 1020130152783A KR 20130152783 A KR20130152783 A KR 20130152783A KR 102161689 B1 KR102161689 B1 KR 102161689B1
Authority
KR
South Korea
Prior art keywords
cache
cores
shared
core cpu
cpu system
Prior art date
Application number
KR1020130152783A
Other languages
English (en)
Other versions
KR20150067433A (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 KR1020130152783A priority Critical patent/KR102161689B1/ko
Priority to US14/340,215 priority patent/US9817759B2/en
Publication of KR20150067433A publication Critical patent/KR20150067433A/ko
Application granted granted Critical
Publication of KR102161689B1 publication Critical patent/KR102161689B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors

Landscapes

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

Abstract

멀티-코어 CPU 시스템은 공유 L2 캐시와, 액세스 제어 로직 회로와, 각각이 상기 액세스 제어 로직 회로를 통해 상기 공유 L2 캐시를 액세스하는 코어들과, 상기 코어들 중에서 작동 코어들의 개수를 지시하는 지시 신호에 응답하여, 상기 공유 L2 캐시의 크기를 조절하는 크기 조절 회로를 포함한다.

Description

L2 캐시 특성을 조절할 수 있는 멀티-코어 CPU 시스템, 이의 동작 방법, 및 이를 포함하는 장치들{MULTI-CORE CPU SYSTEM FOR ADJUSTING L2 CACHE CHARACTER, METHOD THEREOF, AND DEVICES HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 멀티-코어 CPU 시스템에 관한 것으로, 특히 작동 코어들의 배치 위치에 따라 상기 작동 코어들이 액세스할 수 있는 L2 캐시 크기와 레이턴시를 포함하는 특성들을 조절할 수 있는 멀티-코어 CPU 시스템, 이의 동작 방법, 및 이를 포함하는 장치들에 관한 것이다.
캐시(cache)는 CPU가 메인 메모리를 액세스하는 평균 시간을 줄이기 위해 사용되는 메모리이다. 캐시는 메인 메모리에서 자주 사용되는 데이터의 위치를 저장한다.
캐시는 그 구현 위치에 따라 L1 캐시와 L2 캐시로 나누어질 수 있다. 상기 L2 캐시의 크기가 증가함에 따라 상기 L2 캐시를 액세스하는 코어의 레이턴시도 증가한다.
또한, L2 캐시의 크기는 코어들의 개수가 증가함에 따라 증가하므로, 상기 L2 캐시를 액세스하는 코어들 각각의 레이턴시도 증가한다. 상기 레이턴시가 증가하면 상기 코어들을 포함하는 멀티 코어 CPU 시스템의 성능도 감소한다.
본 발명이 이루고자 하는 기술적인 과제는 작동 코어들의 배치 위치에 따라 상기 작동 코어들이 액세스할 수 있는 L2 캐시의 특성들(예컨대, L2 캐시의 크기와 레이턴시)를 조절할 수 있는 멀티-코어 CPU 시스템, 이의 동작 방법, 및 이를 포함하는 장치들을 제공하는 것이다.
본 발명의 실시 예에 따른 멀티-코어 CPU 시스템은 공유 L2 캐시와, 액세스 제어 로직 회로와, 각각이 상기 액세스 제어 로직 회로를 통해 상기 공유 L2 캐시를 액세스하는 코어들과, 상기 코어들 중에서 작동 코어들의 개수를 지시하는 지시 신호에 응답하여, 상기 공유 L2 캐시의 크기를 조절하는 크기 조절 회로를 포함한다.
실시 예에 따라, 상기 공유 L2 캐시가 L2 캐시 영역들을 포함할 때, 상기 크기 조절 회로는, 상기 공유 L2 캐시의 크기를 조절하기 위해, 상기 L2 캐시 영역들로 공급되는 전력들을 제어할 수 있다.
다른 실시 예에 따라, 상기 공유 L2 캐시가 L2 캐시 영역들을 포함할 때, 상기 크기 조절 회로는, 상기 공유 L2 캐시의 크기를 조절하기 위해, 상기 L2 캐시 영역들 사이의 접속들을 제어할 수 있다.
또 다른 실시 예에 따라, 상기 크기 조절 회로는 상기 공유 L2 캐시와 상기 코어들 각각의 사이의 거리들에 기초하여 상기 공유 L2 캐시의 크기를 조절할 수 있다.
또 다른 실시 예에 따라, 상기 공유 L2 캐시가 L2 캐시 영역들을 포함할 때, 상기 크기 조절 회로는, 상기 L2 캐시 영역들 각각과 상기 작동 코어들 각각의 사이의 레이턴시에 기초하여, 상기 L2 캐시 영역들 중에서 적어도 하나의 영역을 상기 작동 코어들에게 할당할 수 있다.
상기 크기 조절 회로는 상기 코어들 모두가 작동할 때 상기 공유 L2 캐시의 모든 영역을 상기 코어들 모두가 액세스할 수 있도록 할당하고, 상기 코어들 중에서 일부의 코어들만이 작동할 때 상기 L2 캐시의 일부 영역만을 상기 일부의 코어들만이 액세스할 수 있도록 할당한다.
상기 코어들 모두가 작동할 때의 상기 공유 L2 캐시와 상기 액세스 제어 로직 회로 사이의 제1레이턴시는 상기 일부의 코어들만이 작동할 때의 상기 공유 L2 캐시와 상기 액세스 제어 로직 회로 사이의 제2레이턴시보다 큰다.
본 발명의 실시 예에 따른 시스템 온 칩은 상기 멀티-코어 CPU 프로세서와, 상기 멀티-코어 CPU 프로세서의 제어에 따라, 상기 공유 L2 캐시와 외부 메모리 사이에서 주고받는 데이터를 제어하는 메모리 컨트롤러를 포함한다.
상기 공유 L2 캐시가 L2 캐시 영역들을 포함할 때, 상기 크기 조절 회로는, 상기 공유 L2 캐시의 크기를 조절하기 위해, 상기 L2 캐시 영역들로 공급되는 전력들을 제어하거나, 상기 L2 캐시 영역들로 공급되는 클락들을 제어하거나, 상기 L2 캐시 영역들 사이의 접속들을 제어할 수 있다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 상기 시스템 온 칩을 포함할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 상기 멀티-코어 CPU 프로세서와, 외부 메모리와, 상기 멀티-코어 CPU 프로세서의 제어에 따라, 상기 공유 L2 캐시와 상기 메모리 사이에서 주고받는 데이터를 제어하는 메모리 컨트롤러를 포함한다.
상기 컴퓨팅 시스템은 랩탑 컴퓨터, 스마트 폰, 태블릿 PC, 모바일 인터넷 장치, 인터넷 태블릿, 및 웨어러블 컴퓨터 중에서 어느 하나일 수 있다.
본 발명의 실시 예에 따른, 공유 L2 캐시와 각각이 상기 공유 L2 캐시를 공유하는 코어들을 포함하는 멀티-코어 CPU 시스템의 동작 방법은 상기 코어들 모두가 작동할 때 상기 공유 L2 캐시의 모든 영역을 상기 코어들 각각이 액세스하는 단계와, 상기 코어들 중에서 일부의 코어들만이 작동할 때 상기 L2 캐시의 일부 영역만을 상기 일부의 코어들 각각이 액세스하는 단계를 포함한다.
상기 L2 캐시의 일부 영역은 상기 일부의 코어들 각각의 배치 위치에 따라 결정될 수 있다.
본 발명의 실시 예에 따른 멀티-코어 CPU 시스템은 작동 코어들의 배치 위치에 따라 상기 작동 코어들이 액세스할 수 있는 L2 캐시의 특성들(예컨대, L2 캐시의 크기와 레이턴시)를 조절할 수 있는 효과가 있다.
또한, 본 발명의 실시 예에 따른 멀티-코어 CPU 시스템은, 전체 코어들 중에서 일부의 코어들만이 동작할 때, 레이턴시를 고려하여 L2 캐시의 특정 영역만을 상기 일부 코어들이 액세스할 수 있는 액세스 영역으로 할당할 수 있으므로, 상기 멀티-코어 CPU 시스템의 레이턴시를 감소시켜 상기 멀티-코어 CPU 시스템의 전체적인 성능을 향상시킬 수 있는 효과가 있다.
또한, 본 발명의 실시 예에 따른 멀티-코어 CPU 시스템은, 전체 코어들 중에서 일부의 코어들만이 동작할 때, 데이터 처리에 필요한 파이프라인의 개수를 줄일 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 멀티-코어 CPU 시스템의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 멀티-코어 CPU 시스템의 작동 코어들의 개수와 L2 캐시의 크기와의 관계를 설명하는 개념도의 일 실시 예이다.
도 3은 도 1에 도시된 멀티-코어 CPU 시스템의 작동 코어들의 개수와 L2 캐시의 크기와의 관계를 설명하는 개념도의 다른 실시 예이다.
도 4는 본 발명의 다른 실시 예에 따른 멀티-코어 CPU 시스템의 개략적인 블록도를 나타낸다.
도 5는 도 1 또는 도 4에 도시된 멀티-코어 CPU 시스템의 동작을 설명하기 위한 플로우차트이다.
도 6은 도 1 또는 도 4에 도시된 멀티-코어 CPU 시스템을 포함하는 컴퓨팅 시스템의 개략적인 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 멀티-코어 CPU 시스템의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 멀티-코어 CPU 시스템(100A)은 복수의 코어들(110-1~110-4), 액세스 제어 로직 회로(120), 및 공유 L2 캐시(130A)를 포함한다. 다른 실시 예에 따라, 멀티-코어 CPU 시스템(100A)은 공유 L2 캐시(130A)의 크기를 조절하는 기능을 수행할 수 있는 전력 관리 유닛(power management unit(PMU); 140)을 더 포함할 수 있다.
도 1에서는 설명의 편의를 위해, 4개의 코어들(110-1~110-4)과, 2개의 L2 캐시 영역들(130-1과 130-2)을 포함하는 공유 L2 캐시(130A)가 도시되었으나, 본 발명의 기술적 사상, 즉 작동 코어들의 개수에 따라 공유 L2 캐시(130A)의 크기 및/또는 레이턴시를 조절하는 기술은 멀티-코어 CPU 시스템에 구현된 코어들의 개수와 공유 L2 캐시의 L2 캐시 영역들의 개수에 한정되는 것은 아니다.
복수의 코어들(110-1~110-4) 각각은 액세스 제어 로직 회로(120)를 통해 공유 L2 캐시(130A)를 액세스할 수 있다. 실시 예에 따라, 복수의 코어들(110-1~110-4) 각각은 서로 다른 파워 도메인(power domain)에 구현될 수 있다.
복수의 코어들(110-1~110-4) 각각의 성능과 크기는 설계 사양에 따라 다양하게 변경될 수 있다.
PMU(140)는, 코어들(110-1~110-4) 중에서 작동하는 코어들(이하 '작동 코어들'이라 한다)의 개수를 지시하는 지시 신호(SEL)에 응답하여, 공유 L2 캐시(130A)의 크기를 조절하는 크기 조절 회로의 기능을 수행할 수 있다.
실시 예에 따라, 제1코어(110-1)는 지시 신호(SEL)의 제어에 관련된 제어 신호에 응답하여 지시 신호(SEL)를 PMU(140)로 전송할 수 있다. 다른 실시 예에 따라, 지시 신호(SEL)는 다른 제어 회로(미 도시)로부터 출력될 수 있다.
PMU(140)는, 지시 신호(SEL)에 응답하여, 각 코어(110-1~110-4)로 공급되는 각 전력과 각 L2 캐시 영역(130-1과 130-2)으로 공급되는 각 전력을 제어할 수 있다. 예컨대, PMU(140)는, 지시 신호(SEL)에 응답하여, 각 제어 신호(CTRL1~CTRL6)를 각 구성 요소(110-1~110-4, 130-1, 및 130-2)로 출력할 수 있다.
실시 예에 따라, 각 구성 요소(110-1~110-4, 130-1, 및 130-2)는 각 제어 신호(CTRL1~CTRL6)에 응답하여 각 구성 요소(110-1~110-4, 130-1, 및 130-2)로 대응되는 전력을 공급하거나 차단할 수 있다.
다른 실시 예에 따라, 각 제어 신호(CTRL1~CTRL6)는 각 구성 요소(110-1~110-4, 130-1, 및 130-2)로 공급되는 전력 그 자체를 의미할 수 있다.
또 다른 실시 예에 따라, 각 제어 신호(CTRL1~CTRL6)는 각 구성 요소(110-1~110-4, 130-1, 및 130-2)로 공급되는 클락을 의미할 수 있다. 이때, 멀티-코어 CPU 시스템(100A)은, 지시 신호(SEL)에 응답하여, 각 제어 신호(CTRL1~CTRL6)를 생성하기 위한 클락 관리 유닛(clock management unit)을 더 포함할 수 있다. 상기 클락 관리 유닛은 크기 조절 회로에 포함될 수 있다.
따라서, 각 L2 캐시 영역(130-1과 130-2)으로 공급되는 각 전력(또는 각 클락)이 온(ON) 또는 오프(OFF) 됨에 따라 공유 L2 캐시(130A)의 크기는 조절될 수 있다.
도 2는 도 1에 도시된 멀티-코어 CPU 시스템의 작동 코어들의 개수와 L2 캐시의 크기와의 관계를 설명하는 개념도의 일 실시 예이다.
4개의 코어들(110-1~110-4) 중에서 2개의 코어들(110-1과 110-2)만이 작동할 때, 멀티-코어 CPU 시스템(100A)의 작동은 도 1과 도 2를 참조하여 설명된다.
도 2의 (a)에 도시된 바와 같이, PMU(140)의 제어에 따라, 2개의 코어들 (110-1과 110-2) 각각으로 전력이 공급되고 2개의 코어들(110-3과 110-4) 각각으로 전력이 공급되지 않는다.
또한, PMU(140)의 제어에 따라, 제1 L2 캐시 영역(130-1, 이하 "L2-1 캐시"이라 한다)으로 전력이 공급되고 제2 L2 캐시 영역(130-2, 이하 "L2-2 캐시"라 한다)으로 전력이 공급되지 않는다.
각 코어(110-1과 110-2)와 액세스 제어 로직 회로(120)의 관점에서 볼 때, L2-1 캐시(130-1)와 액세스 제어 로직 회로(120)와의 거리가 가까우므로, 레이턴시는 작게 구현된다.
도 2의 (b)에 도시된 바와 같이, 각 코어(110-1과 110-2)와 L2-1 캐시(130-1) 사이의 레이턴시(LT1)는 2클락 사이클로 정의된다고 가정한다.
즉, L2-1 캐시(130-1)와 L2-2 캐시(130-2)가 공급되는 전력(또는 클락)에 따라 물리적으로 분리됨에 따라, 공유 L2 캐시(130A)의 전체 RC 지연은 감소할 수 있다.
도 3은 도 1에 도시된 멀티-코어 CPU 시스템의 작동 코어들의 개수와 L2 캐시의 크기와의 관계를 설명하는 개념도의 다른 실시 예이다.
4개의 코어들(110-1~110-4) 모두가 작동할 때, 멀티-코어 CPU 시스템(100A)의 작동은 도 1과 도 3을 참조하여 설명된다.
도 3의 (a)에 도시된 바와 같이, PMU(140)의 제어에 따라, 4개의 코어들 (110-1~110-4) 각각으로 대응되는 전력이 공급된다. 또한, PMU(140)의 제어에 따라, L2-1 캐시(130-1)와 L2-2 캐시(130-2)로 전력이 공급된다.
도 3의 (b)에 도시된 바와 같이, 각 코어(110-1~110-4)와 공유 L2 캐시 (130A) 사이의 레이턴시(LT2)는 3클락 사이클로 정의된다고 가정한다. 즉, L2-1 캐시(130-1)와 L2-2 캐시(130-2)가 공급되는 전력에 따라 물리적으로 서로 접속됨에 따라, 공유 L2 캐시(130A)의 전체 RC 지연은 증가할 수 있다.
도 2의 (b)와 도 3의 (b)에서, "D"는 라우팅 지연(routing delay)을 나타내고, "F/F"은 클락(CLK)에 따라 라이트 동작 또는 리드 동작을 수행하기 위해 데이터를 처리하는 래치(lath)를 의미한다.
각 레이턴시(LT1과 LT2)는 공유 L2 캐시(130A)의 크기에 따라 레이턴시가 변화되는 것을 개념적으로 설명하기 위해 예시된 것으로 선택된 것에 불과하다.
도 4는 본 발명의 다른 실시 예에 따른 멀티-코어 CPU 시스템의 개략적인 블록도를 나타낸다.
도 4를 참조하면, 멀티-코어 CPU 시스템(100B)은 복수의 코어들(110-1~110-4), 액세스 제어 로직 회로(120), 및 공유 L2 캐시(130B)를 포함한다.
다른 실시 예에 따라, 멀티-코어 CPU 시스템(100B)은 공유 L2 캐시(130B)의 크기를 조절할 수 있는 크기 조절 회로를 더 포함할 수 있다. 상기 크기 조절 회로는 PMU(140)와 스위치 신호 생성기(150)를 포함할 수 있다. 멀티-코어 CPU 시스템 (100B)은 클락의 공급을 제어하는 클락 제어 유닛(clock management unit)을 더 포함할 수 있다. 이 경우, 상기 클락 제어 유닛은 상기 크기 조절 회로에 포함될 수 있다.
복수의 코어들(110-1~110-4) 각각은 액세스 제어 로직 회로(120)를 통해 공유 L2 캐시(130B)를 액세스할 수 있다.
PMU(140)는, 코어들(110-1~110-4) 중에서 작동 코어들의 개수를 지시하는 지시 신호(SEL)에 응답하여, 각 코어(110-1~110-4)로 공급되는 각 전력을 제어할 수 있다. 예컨대, PMU(140)는, 지시 신호(SEL)에 응답하여, 각 제어 신호 (CTRL1~CTRL4)를 각 코어(110-1~110-4)로 출력할 수 있다. 이때, PMU(140)는 공유 L2 캐시(130B)로의 전력 공급을 제어할 수 있다.
실시 예에 따라, 각 코어(110-1~110-4)는 각 제어 신호(CTRL1~CTRL4)에 응답하여 각 코어(110-1~110-4)로 전력을 공급하거나 또는 차단할 수 있다.
다른 실시 예에 따라, 각 제어 신호(CTRL1~CTRL4)는 각 코어(110-1~110-4)로 공급되는 전력 그 자체를 의미할 수 있다. 또 다른 실시 예에 따라, 각 코어(110-1~110-4)로 공급되는 클락은 상기 클락 제어 유닛으로부터 출력될 수 있다. 이때, 지시 신호(SEL)는 상기 클락 제어 유닛으로 공급될 수 있다.
스위치 신호 생성기(150)는, 지시 신호(SEL)에 응답하여, L2-1 캐시(130-1)와 L2-2 캐시(130-2)의 접속을 제어할 수 있는 스위칭 신호(SW)를 공유 L2 캐시 (130B)의 스위칭 블록(130-3)으로 전송할 수 있다.
공유 L2 캐시(130B)에 포함된 스위칭 블록(130-3)은 L2-1 캐시(130-1)와 L2-2 캐시(130-2) 사이의 접속을 제어할 수 있다. 스위칭 블록(130-3)은 스위치들을 포함할 수 있다.
도 2와 도 4를 참조하면, PMU(140)의 제어에 따라, 2개의 코어들(110-1과 110-2) 각각으로 전력이 공급되고 2개의 코어들(110-3과 110-4) 각각으로 전력이 공급되지 않는다. 이때, 스위칭 블록(130-3)은, 스위칭 신호(SW)에 응답하여, L2-1 캐시(130-1)와 L2-2 캐시(130-2)를 서로 분리시킨다.
2개의 코어들(110-1과 110-2) 각각은 액세스 제어 로직 회로(120)를 통해 L2-1 캐시(130-1)를 액세스할 수 있다.
도 3과 도 4를 참조하면, PMU(140)의 제어에 따라, 4의 코어들(110-1~110-4) 각각으로 전력이 공급되고, 스위칭 블록(130-3)은 스위칭 신호(SW)에 응답하여 L2-1 캐시(130-1)와 L2-2 캐시(130-2)를 서로 접속시킨다.
4개의 코어들(110-1~110-4) 각각은 액세스 제어 로직 회로(120)를 통해 L2-1 캐시(130-1) 및/또는 L2-2 캐시(130-2)를 액세스할 수 있다.
도 5는 도 1 또는 도 4에 도시된 멀티-코어 CPU 시스템의 동작을 설명하기 위한 플로우차트이다.
도 1부터 도 5를 참조하면, 사용자 또는 제1코어(110-1)에 의해 작동 모드가 선택될 수 있다(S110). 상기 작동 모드는 복수의 코어들(110-1~110-4) 중에서 몇 개의 코어(들)을 작동시킬지를 선택하는 모드로 정의될 수 있다. 상기 작동 모드에 상응하는 지시 신호(SEL)가 생성된다.
PMU(140)는 지시 신호(SEL)에 응답하여 복수의 코어들(110-1~110-4) 중에서 일부의 코어들(110-1과 110-2)만이 작동하는지를 판단한다(S120).
일부의 코어들(110-1과 110-2)만이 작동할 때, 크기 조절 회로의 기능을 수행할 수 있는 도 1의 PMU(140) 또는 도 4의 구성 요소들(140과 150)은 공유 L2 캐시(130A)에 포함된 복수의 L2 캐시 영역들(130-1과 130-2) 중에서 작동 코어들 (110-1과 110-2)에 가까운 곳에 배치된 캐시 영역(130-1)을 일부의 코어들(110-1과 110-2) 각각이 액세스할 수 있는 액세스 영역으로 할당할 수 있다(S130).
그러나, 복수의 코어들(110-1~110-4) 모두가 작동할 때, 크기 조절 회로의 기능을 수행할 수 있는 도 1의 PMU(140) 또는 도 4의 구성 요소들(140과 150)은 공유 L2 캐시(130B)에 포함된 복수의 L2 캐시 영역들(130-1과 130-2) 모두를 복수의 코어들(110-1~110-4) 각각이 액세스할 수 있는 액세스 영역으로 할당할 수 있다 (S140).
도 6은 도 1 또는 도 4에 도시된 멀티-코어 CPU 시스템을 포함하는 컴퓨팅 시스템의 개략적인 블록도이다.
도 1부터 도 6을 참조하면, 컴퓨팅 시스템(200)은 멀티코어 CPU 시스템 (100A 또는 100B, 집합적으로 "100"), 인터페이스 블록(210), 외부 메모리(220), 디스플레이(230), 및 무선 인터페이스 블록(240)을 포함한다.
컴퓨팅 시스템(200)은 PC, 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다. 상기 휴대용 전자 장치는 랩탑 컴퓨터, 스마트 폰, 태블릿 PC, 모바일 인터넷 장치, 인터넷 태블릿, 또는 웨어러블 컴퓨터로 구현될 수 있다.
멀티코어 CPU 시스템(100)은 인터페이스 블록(210)을 통해 외부 메모리 (220), 디스플레이(230), 및 무선 인터페이스 블록(240)과 데이터를 주거나 받을 수 있다.
인터페이스 블록(210)은 외부 메모리(220)를 제어할 수 있는 메모리 컨트롤로와 디스플레이(230)를 제어할 수 있는 디스플레이 컨트롤러를 포함할 수 있다.
외부 메모리(220)는 DRAM과 같은 휘발성 메모리 또는 플래시 메모리와 같은 불휘발성 메모리로 구현될 수 있다. 무선 인터페이스 블록(240)은 무선 통신 네트워크를 통해 외부 컴퓨팅 장치와 데이터를 주거나 받을 수 있다.
집적 회로, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서, 또는 모바일 애플리케이션 프로세서는 멀티코어 CPU 시스템(100)과 인터페이스 블록 (210)을 포함할 수 있다.
본 명세서에서는 공유 L2 캐시(130A 또는 130B)의 크기가 동작 코어들의 개수에 따라 조절되는 실시 예로서 전력 공급의 제어, 클락 공급의 제어, 및 스위칭 동작을 도시하였으나, 공유 L2 캐시(130A 또는 130B)의 크기를 조절하는 방법은 다양하게 변형될 수 있다.
또한, 공유 L2 캐시(130A 또는 130B)의 크기가 감소함에 따라 라우팅 지연이 감소하고, 공유 L2 캐시(130A 또는 130B)에 포함된 메모리 셀의 비트-라인 로딩이 감소하여 레이턴시가 감소한다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100, 100A, 및 100B; 멀티 코어 CPU 시스템
110-1~110-4; 코어들
120; 액세스 제어 로직 회로
130; 공유 L2 캐시
130-1; 제1 L2 캐시 영역
130-2; 제2 L2 캐시 영역
130; 스위칭 블록
140; 전력 관리 유닛
150; 스위칭 신호 생성기

Claims (10)

  1. 복수의 스위칭 블록을 포함하는 공유 L2 캐시;
    액세스 제어 로직 회로;
    각각이 상기 액세스 제어 로직 회로를 통해 상기 공유 L2 캐시를 액세스하는 코어들; 및
    상기 코어들 중에서 작동 코어들의 개수를 지시하는 지시 신호에 응답하여, 상기 공유 L2 캐시의 크기를 조절하는 크기 조절 회로를 포함하고,
    상기 크기 조절 회로는
    상기 지시 신호에 응답하여 상기 공유 L2캐시에 스위칭 신호를 전송하고,
    상기 스위칭 블록은 상기 코어들 중 상기 작동 코어와 나머지 코어들을 서로 분리하는 멀티-코어 CPU 시스템.
  2. 제1항에 있어서,
    상기 공유 L2 캐시가 L2 캐시 영역들을 포함할 때,
    상기 크기 조절 회로는, 상기 공유 L2 캐시의 크기를 조절하기 위해, 상기 L2 캐시 영역들로 공급되는 전력들을 제어하는 멀티-코어 CPU 시스템.
  3. 제1항에 있어서,
    상기 공유 L2 캐시가 L2 캐시 영역들을 포함할 때,
    상기 크기 조절 회로는, 상기 공유 L2 캐시의 크기를 조절하기 위해, 상기 L2 캐시 영역들 사이의 접속들을 제어하는 멀티-코어 CPU 시스템.
  4. 제1항에 있어서,
    상기 크기 조절 회로는 상기 공유 L2 캐시와 상기 코어들 각각의 사이의 거리들에 기초하여 상기 공유 L2 캐시의 크기를 조절하는 멀티-코어 CPU 시스템.
  5. 제1항에 있어서,
    상기 공유 L2 캐시가 L2 캐시 영역들을 포함할 때,
    상기 크기 조절 회로는, 상기 L2 캐시 영역들 각각과 상기 작동 코어들 각각의 사이의 레이턴시에 기초하여, 상기 L2 캐시 영역들 중에서 적어도 하나의 영역을 상기 작동 코어들에게 할당하는 멀티-코어 CPU 시스템.
  6. 제1항에 있어서, 상기 크기 조절 회로는,
    상기 코어들 모두가 작동할 때 상기 공유 L2 캐시의 모든 영역을 상기 코어들 모두가 액세스할 수 있도록 할당하고,
    상기 코어들 중에서 일부의 코어들만이 작동할 때 상기 L2 캐시의 일부 영역만을 상기 일부의 코어들만이 액세스할 수 있도록 할당하는 멀티-코어 CPU 시스템.
  7. 제6항에 있어서,
    상기 코어들 모두가 작동할 때의 상기 공유 L2 캐시와 상기 액세스 제어 로직 회로 사이의 제1레이턴시는 상기 일부의 코어들만이 작동할 때의 상기 공유 L2 캐시와 상기 액세스 제어 로직 회로 사이의 제2레이턴시보다 큰 멀티-코어 CPU 시스템.
  8. 제1항의 상기 멀티-코어 CPU 프로세서; 및
    상기 멀티-코어 CPU 프로세서의 제어에 따라, 상기 공유 L2 캐시와 외부 메모리 사이에서 주고받는 데이터를 제어하는 메모리 컨트롤러를 포함하는 시스템 온 칩.
  9. 제1항의 상기 멀티-코어 CPU 프로세서;
    메모리; 및
    상기 멀티-코어 CPU 프로세서의 제어에 따라, 상기 공유 L2 캐시와 상기 메모리 사이에서 주고받는 데이터를 제어하는 메모리 컨트롤러를 포함하는 컴퓨팅 시스템.
  10. 공유 L2 캐시와 각각이 상기 공유 L2 캐시를 공유하는 코어들을 포함하는 멀티-코어 CPU 시스템의 동작 방법에 있어서,
    상기 코어들 모두가 작동할 때 상기 공유 L2 캐시의 모든 영역을 상기 코어들 각각이 액세스하는 단계; 및
    상기 코어들 중에서 일부의 코어들만이 작동할 때 상기 공유 L2 캐시의 일부 영역만을 상기 일부의 코어들 각각이 액세스하는 단계를 포함하고,
    상기 멀티-코어 CPU 시스템은
    상기 코어들 중 작동 코어의 개수에 따라 상기 공유 L2캐시로 스위칭 신호를 전송하는 PMU를 포함하고,
    상기 공유 L2캐시는
    상기 스위칭 신호에 따라 상기 공유 L2캐시의 상기 일부 영역과 나머지 영역을 분리하는 스위칭 블록을 포함하는 멀티-코어 CPU 시스템의 동작 방법.
KR1020130152783A 2013-12-10 2013-12-10 L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들 KR102161689B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130152783A KR102161689B1 (ko) 2013-12-10 2013-12-10 L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들
US14/340,215 US9817759B2 (en) 2013-12-10 2014-07-24 Multi-core CPU system for adjusting L2 cache character, method thereof, and devices having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130152783A KR102161689B1 (ko) 2013-12-10 2013-12-10 L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들

Publications (2)

Publication Number Publication Date
KR20150067433A KR20150067433A (ko) 2015-06-18
KR102161689B1 true KR102161689B1 (ko) 2020-10-05

Family

ID=53271300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130152783A KR102161689B1 (ko) 2013-12-10 2013-12-10 L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들

Country Status (2)

Country Link
US (1) US9817759B2 (ko)
KR (1) KR102161689B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10147464B1 (en) * 2017-06-20 2018-12-04 Apple Inc. Managing power state in one power domain based on power states in another power domain
CN108763011B (zh) * 2018-03-27 2021-09-07 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) SoC芯片核数检测方法、装置、系统及存储介质
US11307988B2 (en) * 2018-10-15 2022-04-19 Texas Instruments Incorporated Configurable cache for multi-endpoint heterogeneous coherent system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060171244A1 (en) * 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
US20120159074A1 (en) * 2011-12-23 2012-06-21 Sodhi Inder M Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US6226722B1 (en) * 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
JP2001209578A (ja) 2000-01-26 2001-08-03 Nec Kofu Ltd メモリ更新履歴管理方式
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
JP2002229848A (ja) 2001-02-05 2002-08-16 Hitachi Ltd 共有メモリを備えたプロセッサシステム
US6871264B2 (en) * 2002-03-06 2005-03-22 Hewlett-Packard Development Company, L.P. System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
US20060248287A1 (en) * 2005-04-29 2006-11-02 Ibm Corporation Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures
US7805706B1 (en) * 2005-06-21 2010-09-28 Unisys Corporation Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers
US7600145B2 (en) * 2005-10-26 2009-10-06 Intel Corporation Clustered variations-aware architecture
JP2009528610A (ja) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
US8001338B2 (en) * 2007-08-21 2011-08-16 Microsoft Corporation Multi-level DRAM controller to manage access to DRAM
US8230177B2 (en) * 2009-05-28 2012-07-24 Oracle America, Inc. Store prefetching via store queue lookahead
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
KR101232561B1 (ko) * 2011-02-07 2013-02-12 고려대학교 산학협력단 임베디드 멀티 코어 프로세서의 태스크 스케쥴링 및 캐쉬 메모리 리사이징 장치 및 방법
US9158693B2 (en) * 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8843709B2 (en) * 2011-11-28 2014-09-23 Mediatek Inc. Method and apparatus for performing dynamic configuration
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
KR20130095378A (ko) * 2012-02-20 2013-08-28 삼성전자주식회사 레벨 1 캐시를 공유하는 멀티-코어 프로세서 및 이를 포함하는 장치들
US20150026406A1 (en) * 2013-07-19 2015-01-22 Advanced Micro Devices, Inc. Size adjusting caches by way
US20150026407A1 (en) * 2013-07-19 2015-01-22 Advanced Micro Devices, Inc. Size adjusting caches based on processor power mode
US9280471B2 (en) * 2013-11-15 2016-03-08 Apple Inc. Mechanism for sharing private caches in a SoC

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060171244A1 (en) * 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
US20120159074A1 (en) * 2011-12-23 2012-06-21 Sodhi Inder M Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance

Also Published As

Publication number Publication date
US9817759B2 (en) 2017-11-14
KR20150067433A (ko) 2015-06-18
US20150161047A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
US9606920B2 (en) Multi-CPU system and computing system having the same
US10566075B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
EP2936325B1 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
CN106354656B (zh) 用于存储管理的方法和系统
CN104798008B (zh) 控制处理器的可配置的峰值性能极限
US20140040532A1 (en) Stacked memory device with helper processor
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
KR20170016848A (ko) 프로세서 디바이스 전력 소비를 관리하는 시스템들 및 방법들
US9250682B2 (en) Distributed power management for multi-core processors
US9747038B2 (en) Systems and methods for a hybrid parallel-serial memory access
KR20210038313A (ko) 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경
EP3159804A1 (en) Chip interconnection method, chip and device
JP2017519294A (ja) フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc)
KR102161689B1 (ko) L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들
CN112988388A (zh) 一种内存页管理方法及计算设备
CN114817120A (zh) 一种跨域数据共享方法、系统级芯片、电子设备及介质
US20170285730A1 (en) Coordinating power management between virtual machines
CN113094326A (zh) 处理器控制的可编程逻辑器件修改
KR102116984B1 (ko) 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
KR20200011731A (ko) 메모리 장치 및 프로세싱 시스템
KR102031952B1 (ko) 메모리 장치 및 메모리 장치의 동작방법
TWI763158B (zh) 記憶體共享
US20220326962A1 (en) Accelerator capable of executing fast dynamic change in acceleration type
KR101267611B1 (ko) 고속무선통신모뎀에서 외부 장치에 저장된 펌웨어 실행 방법
Okazaki et al. Universal optical multi-drop bus for heterogeneous memory architecture

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