KR101858159B1 - 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템 - Google Patents

멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR101858159B1
KR101858159B1 KR1020120048455A KR20120048455A KR101858159B1 KR 101858159 B1 KR101858159 B1 KR 101858159B1 KR 1020120048455 A KR1020120048455 A KR 1020120048455A KR 20120048455 A KR20120048455 A KR 20120048455A KR 101858159 B1 KR101858159 B1 KR 101858159B1
Authority
KR
South Korea
Prior art keywords
cpu
cache controller
cache
system bus
communication channel
Prior art date
Application number
KR1020120048455A
Other languages
English (en)
Other versions
KR20130125039A (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 KR1020120048455A priority Critical patent/KR101858159B1/ko
Priority to US13/741,717 priority patent/US8949534B2/en
Priority to JP2013089640A priority patent/JP5905408B2/ja
Priority to DE102013104198A priority patent/DE102013104198A1/de
Priority to TW102114736A priority patent/TWI601065B/zh
Priority to CN201310168083.0A priority patent/CN103389961B/zh
Publication of KR20130125039A publication Critical patent/KR20130125039A/ko
Priority to US14/604,832 priority patent/US9606920B2/en
Application granted granted Critical
Publication of KR101858159B1 publication Critical patent/KR101858159B1/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
    • 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
    • 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
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

멀티-CPU 시스템은 적어도 하나의 제1CPU 코어에 접속된 제1 L2 캐시 컨트롤러를 포함하는 제1CPU와, 적어도 하나의 제2CPU 코어에 접속된 제2 L2 캐시 컨트롤러를 포함하는 제2CPU를 포함하며, 상기 제1CPU와 상기 제2CPU는 상기 제2CPU에 집적된 L2 캐시의 적어도 일부를 물리적으로 공유한다.

Description

멀티-CPU 시스템과 이를 포함하는 컴퓨팅 시스템{MULTI-CPU SYSTEM AND COMPUTING SYSTEM HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 멀티-CPU 시스템(multi-CPU system)에 관한 것으로, 특히 두 개의 CPU들에 의해 물리적으로 공유되는 L2 캐시를 포함하는 멀티-CPU 시스템과 이를 포함하는 컴퓨팅 시스템에 관한 것이다.
시스템 온 칩(system on chip(SoC))의 성능을 높이기 위해, 상기 SoC에 구현된 CPU(central processing unit)의 동작 주파수를 높이는 회로 및/또는 방법이 연구되어 왔다.
상기 CPU의 동작 주파수를 높이기 위한 접근이 한계에 이르면서, 상기 CPU에 포함된 파이프라인 스테이지(pipeline stage)의 수를 늘리면서 상기 CPU의 동작 주파수를 높이는 구조적 접근이 시도되어 왔다.
그러나, CPU의 동작 주파수가 높아짐에 따라, 상기 CPU의 전력 소모도 증가한다. 따라서, 상기 동작 주파수와 상기 전력 소모를 적절히 조절하기 위해, 동적 주파수 및 전압 스케일링(dynamic frequency and voltage scaling(DVFS))이 상기 CPU에 적용되고 있다.
본 발명이 이루고자 하는 기술적인 과제는 CPU 스케일링 시에 L2 캐시의 일관성(coherency)을 유지하기 위한 스누핑(snooping) 동작의 오버헤드(overhead)와 상기 L2 캐시의 콜드-스타트(cold-start)를 제거할 수 있는 멀티-CPU 시스템과 이를 포함하는 컴퓨팅 시스템을 제공하는 것이다.
또한, 두 개의 CPU들에 의해 물리적으로 공유되는 L2 캐시를 포함하는 멀티-CPU 시스템과 이를 포함하는 컴퓨팅 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 멀티-CPU 시스템은 적어도 하나의 제1CPU(central processing unit) 코어에 접속된 제1캐시 컨트롤러를 포함하는 제1CPU와, 적어도 하나의 제2CPU 코어에 접속된 제2캐시 컨트롤러를 포함하는 제2CPU를 포함하며, 상기 제1CPU와 상기 제2CPU는 상기 제2CPU에 집적된 기능 블록의 적어도 일부를 물리적으로 공유한다.
실시 예에 따라, 상기 제1캐시 컨트롤러와 상기 제2캐시 컨트롤러 각각이 L2 캐시 컨트롤러일 때, 상기 기능 블록은 L2 캐시일 수 있다.
다른 실시 예에 따라, 상기 제1캐시 컨트롤러와 상기 제2캐시 컨트롤러 각각이 L3 캐시 컨트롤러일 때, 상기 기능 블록은 L3 캐시일 수 있다.
상기 멀티-CPU 시스템은 시스템 버스와, 상기 시스템 버스와 상기 제1캐시 컨트롤러 사이에 접속된 제1통신 채널과, 상기 시스템 버스와 상기 제2캐시 컨트롤러 사이에 접속된 제2통신 채널을 더 포함한다.
상기 제1CPU로부터 상기 제2CPU로의 CPU 스케일링 동안, 상기 제1CPU는 상기 제1통신 채널을 통해 스누핑 동작(snooping operation)을 수행하지 않을 수 있다.
상기 제2CPU로부터 상기 제1CPU로의 CPU 스케일링 동안, 상기 제2CPU는 상기 기능 블록의 나머지 일부에 대해서만 상기 제2통신 채널을 통해 스누핑 동작을 수행할 수 있다.
상기 멀티-CPU 시스템은 시스템 온 칩(system on chip)으로 구현될 수 있다.
상기 제1CPU는 수직적 전기적 비아들(vertical electrical vias)을 통해 상기 기능 블록의 상기 적어도 일부를 공유할 수 있다.
상기 기능 블록의 상기 적어도 일부는 상기 제1캐시 컨트롤러와 상기 제2컨트롤러에 의해 선택적으로 액세스되고, 상기 기능 블록의 나머지 일부는 상기 제2캐시 컨트롤러에 의해서만 액세스된다.
본 발명의 다른 실시 예에 따른 멀티-CPU 시스템은 적어도 하나의 제1CPU 코어에 접속된 제1캐시 컨트롤러를 포함하는 제1CPU와, 적어도 하나의 제2CPU 코어에 접속된 제2캐시 컨트롤러를 포함하는 제2CPU를 포함하며, 상기 제1CPU와 상기 제2CPU는 상기 제2CPU에 집적된 기능 블록의 적어도 일부를 물리적으로 공유한다.
상기 기능 블록의 상기 적어도 일부는 메모리 셀 어레이와, 상기 제1CPU의 제1지시 신호와 상기 제2CPU의 지시 신호 중의 적어도 하나에 기초하여 선택 신호를 출력하는 전력 관리 유닛과, 상기 선택 신호에 따라 상기 제1캐시 컨트롤러로부터 출력된 제1액세스 신호들 또는 상기 제2캐시 컨트롤러로부터 출력된 제2액세스 신호들을 상기 메모리 셀 어레이로 전송하는 선택기를 포함한다.
상기 기능 블록의 상기 적어도 일부는 상기 제1캐시 컨트롤러와 상기 제2컨트롤러에 의해 선택적으로 액세스되고, 상기 기능 블록의 나머지 일부는 상기 제2캐시 컨트롤러에 의해서만 액세스된다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 시스템 버스와, 상기 시스템 버스를 통하여 메모리와 통신하는 멀티-CPU를 포함하며, 상기 멀티-CPU는 적어도 하나의 제1CPU 코어에 접속된 제1 L2캐시 컨트롤러를 포함하는 제1CPU와, 적어도 하나의 제2CPU 코어에 접속된 제2 L2캐시 컨트롤러를 포함하는 제2CPU를 포함하며, 상기 제1CPU와 상기 제2CPU는 상기 제2CPU에 집적된 L2 캐시의 적어도 일부를 물리적으로 공유한다.
상기 시스템 버스는 상기 멀티-CPU의 내부 또는 외부에 구현될 수 있다.
상기 컴퓨팅 시스템은 휴대용 장치로 구현될 수 있다.
본 발명의 실시 예에 따른 CPU들을 포함하는 멀티-CPU 시스템은 L2 캐시의 적어도 일부를 상기 CPU들이 물리적으로 공유함에 따라, 상기 멀티-CPU 시스템의 면적을 감소시킬 수 있는 효과가 있다.
또한, 상기 멀티-CPU 시스템에서 CPU 스케일링이 수행될 때, 스누핑 동작의 오버헤드를 제거하거나 또는 감소시킬 수 있는 효과가 있다.
상기 멀티-CPU 시스템에서 CPU 스케일링이 수행될 때, L2 캐시의 콜드-스타트를 제거할 수 있는 효과가 있다.
또한, 상기 멀티-CPU 시스템에서 L2 캐시의 적어도 일부가 CPU들이 물리적으로 공유됨에 따라 대량의 데이터 전송이 가능한 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1a는 본 발명의 일 실시 예에 따른 멀티-CPU(central processing unit) 시스템의 개략적인 블록도를 나타낸다.
도 1b는 도 1a의 멀티-CPU 시스템을 포함하는 컴퓨팅 시스템의 블록도를 나타낸다.
도 2는 도 1a의 제2CPU에 집적된 L2 캐시의 개략적인 블록도를 나타낸다.
도 3은 독립적으로 제어가능한 도 1a의 멀티-CPU의 전력 영역들을 나타내는 블록도이다.
도 4는 도 1a의 멀티-CPU의 CPU 스케일링의 일 실시 예를 설명하기 위한 개념도를 나타낸다.
도 5는 도 4에 도시된 CPU 스케일링을 설명하기 위한 플로우차트이다.
도 6은 도 1a의 멀티-CPU의 CPU 스케일링의 다른 실시 예를 설명하기 위한 개념도를 나타낸다.
도 7은 도 6에 도시된 CPU 스케일링을 설명하기 위한 플로우차트이다.
도 8은 본 발명의 다른 실시 예에 따른 멀티-CPU 시스템의 개략적인 블록도를 나타낸다.
도 9는 본 발명의 실시 예에 따른 보드 어셈블리의 블록도를 나타낸다.
도 10은 본 발명의 실시 예에 따른 컴퓨터 플랫폼을 나타낸다.
도 11은 본 발명의 실시 예에 따른 멀티-CPU 시스템을 포함하는 컴퓨팅 시스템의 일 실시 예를 나타낸다.
도 12는 본 발명의 실시 예에 따른 멀티-CPU 시스템을 제조하는 방법을 설명하기 위한 플로우차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1a는 본 발명의 일 실시 예에 따른 멀티-CPU(central processing unit) 시스템의 개략적인 블록도를 나타낸다.
도 1a를 참조하면, 멀티-CPU 시스템(100)은 시스템 버스(101), 멀티-CPU (103), 및 메모리 컨트롤러(105)를 포함한다. 여기서, 멀티-CPU 시스템(100)은 하나의 시스템 온 칩(system on chip(SoC))으로 구현될 수 있다. 예컨대, 멀티-CPU 시스템(100)은 하나의 마스크(mask)를 이용하여 구현될 수 있다.
멀티-CPU(103)는 제1CPU(110)와 제2CPU(120)을 포함할 수 있다. 실시 예에 따라 멀티-CPU(103)는 전력 관리 유닛(power management unit(PMU); 150)을 더 포함할 수 있다.
도 1a에서는 설명의 편의를 위해, 두 개의 CPU들(110과 120)을 포함하는 멀티-CPU(103)가 도시되어 있으나, 본 발명의 개념은 두 개 이상의 CPU들을 포함하는 멀티-CPU에 그대로 적용될 수 있다.
제1CPU(110)는 적어도 하나의 제1CPU 코어(111과 113)와 제1 L2(level 2) 캐시 컨트롤러(115)를 포함할 수 있다. 따라서, 제1CPU(110)는 멀티-코어 CPU로 구현될 수 있다.
적어도 하나의 제1CPU 코어(111과 113)는 L1(level 1) 캐시, 예컨대 명령 캐시(instruction cache)와 데이터 캐시(data cache)를 포함할 수 있다. 적어도 하나의 제1CPU 코어(111과 113)는 제1 L2(level 2) 캐시 컨트롤러(115)와 통신을 위한 주변 회로를 더 포함할 수 있다.
제1 L2 캐시 컨트롤러(115)는 제1통신 채널(CH1)을 통하여 시스템 버스(101)와 인터페이싱하는 제1인터페이스 블록(117)을 포함할 수 있다.
제2CPU(120)는 적어도 하나의 제2CPU 코어(121과 123), 제2 L2 캐시 컨트롤러(125), 및 적어도 하나의 L2 캐시(130과 140)를 포함할 수 있다. 따라서, 제2CPU (120)는 멀티-코어 CPU로 구현될 수 있다.
적어도 하나의 제2CPU 코어(121과 123)는 L1 캐시, 예컨대 명령 캐시와 데이터 캐시를 포함할 수 있다. 적어도 하나의 제2CPU 코어(121과 123)는 제2 L2 캐시 컨트롤러(125)와 통신을 위한 주변 회로를 더 포함할 수 있다.
제2 L2 캐시 컨트롤러(125)는 제2통신 채널(CH2)을 통하여 시스템 버스(101)와 인터페이싱하는 제2인터페이스 블록(127)을 포함할 수 있다.
이때, 제1 L2 캐시 컨트롤러(115)와 제2 L2 캐시 컨트롤러(125)는 구조적으로 서로 독립적으로 구현되고 독립적으로 동작할 수 있다. 따라서, 각 L2 캐시 컨트롤러(115와 125)가 시스템 버스(101)와 통신하기 위해서는, 별도의 통신 채널 (CH1과 CH2)이 필요하다.
적어도 하나의 L2 캐시(130과 140)의 적어도 일부(133과 143)는 제1CPU(110)와 물리적으로 공유된다. 따라서, 적어도 일부(133과 143)는 제1CPU(110)와 제2CPU (120)에 의해 선택적으로 액세스(access)될 수 있다. 즉, 제1CPU(110)와 제2CPU (120) 각각은 적어도 일부(133과 143)를 배타적으로 사용할 수 있다. 여기서, "액세스"는 라이트(write) 동작 또는 리드(read) 동작을 위해 필요한 동작을 의미할 수 있다.
적어도 하나의 L2 캐시(130과 140)의 나머지 일부(131과 141)는 제2CPU (120), 예컨대 제2 L2 캐시 컨트롤러(125)에 의해서만 액세스되거나 또는 배타적으로 사용될 수 있다.
제2 L2 캐시 컨트롤러(125)는 적어도 일부(133과 143)와 나머지 일부(131과 141)를 동시에 액세스할 수 있다. 그러나, 적어도 일부(133과 143)는 제1 L2 캐시 컨트롤러(115)와 제2 L2 캐시 컨트롤러(125)에 의해 동시에 액세스될 수 없다.
PMU(150)는 CPU들(110과 120) 각각으로 공급되는 전력을 독립적으로 제어할 수 있다.
PUM(150)는, 제1CPU(110)로부터 출력된 제1지시 신호(IND1)와 제2CPU(120)로부터 출력된 제2지시 신호(IND2) 중에서 적어도 하나에 기초하여, 제1제어 신호들 (CTR1), 제2제어 신호들(CTR2), 및/또는 선택 신호(SEL)를 출력할 수 있다.
각 지시 신호(IND1과 IND2)는 시스템 버스(101)를 통하여 PUM(150)로 공급될 수 있다. 선택 신호(SEL)는 하나 또는 그 이상의 신호들을 포함할 수 있다.
제1제어 신호들(CTR1)에 기초하여, 제1CPU(110)는 전력 공급 및/또는 리셋을 전력 영역(power domain)별로 독립적으로 제어할 수 있다.
제2제어 신호들(CTR2)에 기초하여, 제2CPU(120)는 전력 공급 및/또는 리셋을 전력 영역별로 독립적으로 제어할 수 있다.
또한, 제1CPU(110)와 제2CPU(120)는 선택 신호(SEL)에 응답하여 CPU 스케일링(scaling), 즉 CPU들(110과 120) 사이의 스위칭을 제어할 수 있다.
도 1a에서는 설명의 편의를 위하여, 각 L2 캐시(130과 140)의 적어도 일부 (133과 143)가 각 CPU(110과 120)에 의해 물리적으로 공유되는 구조가 도시되어 있으나, 본 발명의 기술적 사상은 L2 캐시 대신에 L3 (level 3) 캐시가 물리적으로 공유되는 구조에도 적용될 수 있다.
즉, 각 CPU(110과 120)는 제2CPU(120)에 구현된 기능 블록, 예컨대 L2 캐시 또는 L3 캐시의 적어도 일부를 물리적으로 공유할 수 있다. 상기 기능 블록이 L3 캐시일 때, 각 L2 캐시 컨트롤러는 L3 캐시 컨트롤러로 대체될 수 있다.
각 CPU(110과 120)는 각 통신 채널(CH1과 CH2)과 시스템 버스(101)를 통하여 메모리 컨트롤러(105)와 통신할 수 있다. 메모리 컨트롤러(105)는 멀티-CPU 시스템에 접속된 메모리(미 도시)를 액세스할 수 있다.
도 1a에서는 설명의 편의를 위해, 각 요소(element; 101과 103)가 멀티-CPU (103)의 외부에 도시되어 있으나, 각 요소(101과 103)는 멀티-CPU(103)의 내부에 구현될 수도 있다.
도 1b는 도 1a의 멀티-CPU 시스템을 포함하는 컴퓨팅 시스템의 블록도를 나타낸다.
도 1b를 참조하면, 상기 컴퓨팅 시스템은 멀티-CPU 시스템(100)과 메모리 (107)를 포함할 수 있다. 상술한 바와 같이, 메모리 컨트롤러(105)는 멀티-CPU 시스템(100)과 메모리(107) 사이의 데이터 통신을 제어(또는 인터페이싱)할 수 있다.
도 2는 도 1a의 제2CPU에 집적된 L2 캐시의 블록도를 나타낸다.
도 1a와 도 2에 도시된 바와 같이, L2 캐시(130)는 비-공유 영역인 전용 영역(131)과 공유 영역(133)을 포함한다. 물론, L2 캐시(140)는 전용 영역(141)과 공유 영역(143)을 포함한다. 각 L2 캐시(130와 140)의 구조는 실질적으로 동일하므로, 설명의 편의를 위해 도 2에서는 L2 캐시(130)만을 도시하여 설명한다.
상술한 바와 같이, 전용 영역(131)은 제2 L2 캐시 컨트롤러(125)에 의해서만 액세스될 수 있고, 공유 영역(133)은 선택 신호(SEL)에 따라 제1 L2 캐시 컨트롤러 (115)와 제2 L2 캐시 컨트롤러(125) 중에서 어느 하나가 선택적으로 액세스할 수 있다.
도 2에서는 설명의 편의를 위해 제1선택기(160)와 제2선택기(161)가 공유 영역(133)의 외부에 도시되어 있으나, 제1선택기(160)와 제2선택기(161)는 공유 영역 (133)의 내부에 구현될 수 있다. 예컨대, 제1선택기(160)는 멀티플렉서 (multiplexer)로 구현될 수 있고, 제2선택기(161)는 디멀티플렉서(demultiplexer)로 구현될 수 있다.
실시 예에 따라, 제2선택기(161)는 그 자체가 구현되지 않을 수도 있다.
제1 L2 캐시 컨트롤러(115)가 공유 영역(133)을 액세스하고자 할 때, 제1선택기(160)는 선택 신호(SEL)에 응답하여 제1 L2 캐시 컨트롤러(115)로부터 출력된 제1액세스 신호들(ACC1)을 공유 영역(133)의 입력 포트(IN1)로 전송한다.
예컨대, 제1 L2 캐시 컨트롤러(115)가 공유 영역(133)에 데이터를 라이트할 때, 제1액세스 신호들(ACC1)(예컨대, 상기 데이터를 메모리 셀 어레이(133-1)에 라이트하기 위해 필요한 데이터와 필요한 제어 신호들)은 제1선택기(160)를 통하여 제1입력 포트(IN1)로 전송된다.
제1 L2 캐시 컨트롤러(115)가 공유 영역(133)에 저장된 데이터를 리드할 때, 제1액세스 신호들(ACC1)(예컨대, 상기 데이터를 메모리 셀 어레이(133-1)로부터 리드하기 위해 필요한 제어 신호들)은 제1선택기(160)를 통하여 제1입력 포트(IN1)로 전송되고, 공유 영역(133)의 제1출력 포트(OUT1)로부터 출력된 데이터는 제2선택기 (161)를 통하여 제1 L2 캐시 컨트롤러(115)로 전송된다.
제2선택기(161)가 구현되지 않을 경우, 제1출력 포트(OUT1)로부터 출력된 데이터는 제1 L2 캐시 컨트롤러(115)로 직접 전송될 수 있다.
반대로, 제2 L2 캐시 컨트롤러(125)가 공유 영역(133)을 액세스하고자 할 때, 제1선택기(160)는 선택 신호(SEL)에 응답하여 제2 L2 캐시 컨트롤러(125)로부터 출력된 제2액세스 신호들(ACC2)을 제1입력 포트(IN1)로 전송한다.
예컨대, 제2 L2 캐시 컨트롤러(125)가 공유 영역(133)에 데이터를 라이트할 때, 제2액세스 신호들(ACC2)(예컨대, 상기 데이터를 메모리 셀 어레이(133-1)에 라이트하기 위해 필요한 데이터와 필요한 제어 신호들)은 제1선택기(160)를 통하여 제1입력 포트(IN1)로 전송된다.
제2 L2 캐시 컨트롤러(125)가 공유 영역(133)에 저장된 데이터를 리드할 때, 제2액세스 신호들(ACC2)(예컨대, 상기 데이터를 메모리 셀 어레이(133-1)로부터 리드하기 위해 필요한 제어 신호들)은 제2선택기(160)를 통하여 제1입력 포트(IN1)로 전송되고, 제1출력 포트(OUT1)를 통하여 출력된 데이터는 제2선택기(161)를 통하여 제2 L2 캐시 컨트롤러(125)로 전송된다.
제2선택기(161)가 구현되지 않을 경우, 제1출력 포트(OUT1)로부터 출력된 데이터는 제2 L2 캐시 컨트롤러(125)로 직접 전송될 수 있다.
제2 L2 캐시 컨트롤러(125)가 전용 영역(131)에 데이터를 라이트할 때, 제2 L2 캐시 컨트롤러(125)로부터 출력된 제3액세스 신호들(ACC3)(예컨대, 상기 데이터를 메모리 셀 어레이(133-1)에 라이트하기 위해 필요한 데이터와 필요한 제어 신호들)은 전용 영역(131)의 제2입력 포트(IN2)로 입력된다.
제2 L2 캐시 컨트롤러(125)가 전용 영역(131)에 저장된 데이터를 리드할 때, 제3액세스 신호들(ACC3)(예컨대, 상기 데이터를 메모리 셀 어레이(133-1)로부터 리드하기 위해 필요한 제어 신호들)은 제2입력 포트(IN2)로 직접 전송되고, 전용 영역(131)의 제2출력 포트(OUT2)를 통하여 출력된 데이터는 제2 L2 캐시 컨트롤러 (125)로 직접 전송된다.
도 3은 독립적으로 제어가능한 도 1의 멀티-CPU의 전력 영역들을 나타내는 블록도이다.
도 1과 도 3을 참조하면, 제1CPU(110)는 전력 영역들(111, 113, 및 115)을 포함한다. 제1제어 신호들(CTR1-1~CTR1-3, 집합적으로 "CTR1") 각각은 전력 영역들 (111, 113, 및 115) 각각으로 공급된다.
제1제어 신호들(CTR1-1, CTR1-2, 및 CTR1-3) 각각에 따라, 전력 영역들(111, 113, 및 115) 각각으로 공급되는 전력 및/또는 전력 영역들(111, 113, 및 115) 각각의 리셋이 독립적으로 제어될 수 있다.
또한, 제1인터페이스 블록(117)이 별도의 전력 영역으로 정의될 때, 별도의 제어 신호가 제1인터페이스 블록(117)으로 공급될 수도 있다. 상기 별도의 제어 신호는 제1제어 신호들(CTR1)에 포함될 수 있다.
제2CPU(120)는 전력 영역들(121, 123, 125, 131, 133, 141, 및 143)을 포함한다. 제2제어 신호들(CTR2-1~CTR2-7, 집합적으로 "CTR2") 각각은 전력 영역(121, 123, 125, 131, 133, 141, 및 143) 각각으로 공급된다.
제2제어 신호들(CTR2-1~CTR2-7) 각각에 따라, 전력 영역들(121, 123, 125, 131, 133, 141, 및 143) 각각으로 공급되는 전력 및/또는 전력 영역들(121, 123, 125, 131, 133, 141, 및 143) 각각의 리셋이 독립적으로 제어될 수 있다.
또한, 제2인터페이스 블록(127)이 별도의 전력 영역으로 정의될 때, 별도의 제어 신호는 제2인터페이스 블록(127)으로 공급될 수 있다. 상기 별도의 제어 신호는 제2제어 신호들(CTR2)에 포함될 수 있다.
도 3에서는 제어 신호들(CTR2-5와 CTR2-6)이 제2제어 신호들(CTR2)에 포함된 예가 도시되어 있으나, 실시 예에 따라 제어 신호들(CTR2-5와 CTR2-6)이 제1제어 신호들(CTR1)에 포함될 수도 있다.
도 4는 도 1a의 멀티-CPU의 CPU 스케일링의 일 실시 예를 설명하기 위한 개념도를 나타낸다.
도 4의 (a)와, 도 4의 (b)는 작은 CPU(110)로부터 큰 CPU(120)로의 CPU 스케일링 과정들을 나타낸다.
이하 설명의 편의를 위해, 제1CPU(110)는 작은(small) CPU라 하고, 제2CPU (120)는 큰(big) CPU라 한다.
낮은 워크로드(low workload)에서, 작은 CPU(110)는 최고 성능에 비해 낮은 성능을 갖더라도 최고 MIPS/mW(millions of instructions per second per milliwatt)를 가질 수 있다. 따라서, 작은 CPU(110)는 전력-구동 CPU(power-driven CPU)로서 사용될 수 있다.
높은(high) 워크로드에서, 큰 CPU(120)는 최고 MIPS/mW에 비해 낮은 MIPS/mW를 갖더라도 최고 성능을 가질 수 있다. 따라서, 큰 CPU(120)는 성능-구동 CPU (performance-driven CPU)로서 사용될 수 있다.
여기서, CPU 스케일링(CPU scaling)은 동일 전압에서 작은 CPU(110)로부터 큰 CPU(120)로 스위칭하는 동작 또는 큰 CPU(120)로부터 작은 CPU(110)로 스위칭하는 동작을 의미한다.
즉, CPU 스케일링은 전압을 변화시키지 않고도 전력 소모에 대한 워크로드 수행 능력(예컨대, MIPS/mW)을 변화시키거나 또는 하나의 CPU 명령(CPU instruction)을 실행하기 위해 필요한 에너지의 양을 변화시킬 수 있다.
도 4의 (a)에 도시된 바와 같이, 작은 CPU(110)가 동작 중일 때, 작은 CPU (110)의 각 전력 영역(111~115, 필요에 따라서는 117을 포함)은 파워-온 상태 (POWER ON)이고, 큰 CPU(120)의 각 전력 영역(121~125, 131, 및 141, 필요에 따라서는 127을 포함)은 파워-오프 상태(POWER OFF)이다.
이때, 제1 L2 캐시 컨트롤러(115)는 각 선택기(160과 161)를 통하여 적어도 하나의 공유 영역(133과 143)을 액세스할 수 있다.
제1CPU(110)에서 실행중인 적어도 하나의 일(job)의 워크로드(workload)가 증가하면, 작은 CPU(110)로부터 큰 CPU(120)로 CPU 스케일링(또는 스위칭)을 수행하기 위해 제1CPU(110)의 제1코어(111)는 제1지시 신호(IND1)를 제1통신 채널(CH1)과 시스템 버스(101)를 통하여 PMU(150)로 전송한다.
PMU(150)는, 제1지시 신호(IND1)에 응답하여, 제1제어 신호들(CTR1), 제2제어 신호들(CTR2), 및 선택 신호(SEL)를 출력한다.
따라서, 작은 CPU(110)의 전력 영역들(111, 113, 및 115) 각각은 제1제어 신호들(CTR1) 각각에 응답하여 상기 일(job)에 대한 동작을 멈춘다.
이와 동시에, 큰 CPU(110)의 전력 영역들(121, 123, 125, 131, 및 141) 각각은 제2제어 신호들(CTR2-1~4, 및 CTR2-6) 각각에 응답하여 상기 일에 대한 동작을 이어받을 수 있다.
작은 CPU(110)에 의해 사용되던 적어도 하나의 공유 영역(133과 143)은 큰 CPU(120)의 L2 캐시(130)의 서브셋(subset)으로 사용될 수 있으므로, 작은 CPU (110)는 제1채널(CH1)을 통해 스누핑 동작(snooping operation)을 수행하지 않아도 된다.
또한, 큰 CPU(120)는 적어도 하나의 L2 캐시(130과 140)에 대한 콜드-스타트 (cold-start)를 하지 않아도 되므로, 큰 CPU(120)는 CPU 스케일링(또는 CPU 스위칭) 직후에 곧바로 최고 성능을 발휘할 수 있다.
적어도 하나의 L2 캐시(130과 140)의 적어도 하나의 전용 부분(131과 141)은 전력 영역들(121, 123, 및 125)과 함께 준비(ready) 상태로 될 수 있다.
작은 CPU(110)로부터 큰 CPU(120)로의 CPU 스케일링 동안, 적어도 하나의 공유 영역(133과 143)으로 공급되는 전력은 그대로 유지된다.
또한, 작은 CPU(110)로부터 큰 CPU(120)로의 CPU 스케일링 동안, 제2 L2 캐시 컨트롤러(125)가 각 선택기(160과 161)를 통하여 적어도 하나의 공유 영역(133과 143)을 액세스할 수 있도록 각 선택기(160과 161)는 스위치된다.
도 4의 (b)에 도시된 바와 같이, 작은 CPU(110)로부터 큰 CPU(120)로의 CPU 스케일링 직후, 작은 CPU(110)의 각 전력 영역(111~115)은 파워-오프 상태(POWER OFF)로 되고, 큰 CPU(120)의 각 전력 영역(121~125, 131, 및 141)은 파워-온 상태 (POWER ON)로 된다.
만일, 멀티-CPU 시스템(100)이 스누핑 동작을 지원하지 않을 때, 제1CPU (110)는 적어도 하나의 공유 영역(133과 143)에 저장되고 ECC(error correction code)를 포함하지 않는 데이터를 요소들(CH1, 101, 및 105)을 통하여 메모리(107)로 전송(또는 플러싱(flushing))한다. 그 후, 제2CPU(120)는 메모리(107)에 저장된 데이터를 요소들(105, 101, 및 CH2)을 통하여 리드한 후, 리드된 데이터에 ECC를 부가하고, ECC 부가된 데이터를 적어도 하나의 공유 영역(133과 143)에 저장할 수 있다.
도 5는 도 4에 도시된 CPU 스케일링을 설명하기 위한 플로우차트이다.
도 1a부터 도 5를 참조하면, 작은 CPU(110)가 동작하는 동안(S110), 작은 CPU(110)로부터 큰 CPU(120)로의 CPU 스케일링이 수행되면, 제1채널(CH1)을 통한 스누핑 동작 없이 작은 CPU(110)의 동작은 멈추고 큰 CPU(120)의 동작은 시작된다 (S120). 즉, 작은 CPU(110)로부터 큰 CPU(120)로 전환(switch)된다.
실시 예에 따라, 작은 CPU(110)가 적어도 하나의 공유 영역(133과 143)에 저장된 데이터를 메모리(107)로 전송하면, 큰 CPU(120)는 필요할 때에 메모리(107)에 저장된 상기 데이터를 읽어올 수 있다.
도 6은 도 1a의 멀티-CPU의 CPU 스케일링의 다른 실시 예를 설명하기 위한 개념도를 나타낸다.
도 6의 (a)부터 도 6의 (d)는 큰 CPU(120)로부터 작은 CPU(110)로의 CPU 스케일링 과정들을 나타낸다.
도 1a부터 도 3, 및 도 6을 참조하면, 도 6의 (a)에 도시된 바와 같이 큰 CPU(120)가 동작할 때, 작은 CPU(110)의 각 전력 영역(111, 113, 및 115)은 파워-오프 상태(POWER-OFF)이고 큰 CPU(120)의 각 전력 영역(121, 123, 125, 131, 133, 141, 및 143)은 파워-온 상태(POWER-ON)이다.
이때, 제2 L2 캐시 컨트롤러(125)는 적어도 하나의 공유 영역(133과 143)을 액세스할 수 있다.
큰 CPU(120)로부터 작은 CPU(110)로 CPU 스케일링을 위해, 큰 CPU(120)의 제1코어(121)는 제2지시 신호(IND2)를 제2통신 채널(CH2)과 시스템 버스(101)를 통하여 PMU(150)로 출력한다.
PMU(150)는 제2지시 신호(IND2)에 응답하여 제1제어 신호들(CTR1), 제2제어 신호들(CTR2), 및 선택 신호(SEL)를 출력한다.
선택 신호(SEL)에 응답하여, 각 선택기(160과 161)는 적어도 하나의 공유 영역(133과 143)과 제2 L1 캐시 컨트롤러(115) 사이의 통신 채널을 형성한다.
도 6의 (b)에 도시된 바와 같이, 작은 CPU(110)의 각 전력 영역(111~115)은 제1제어 신호들(CTR1) 각각에 응답하여 파워-온 상태(POWER ON)로 되고, 큰 CPU (120)의 각 전력 영역(121~125, 130, 및 140)은 파워-온 상태(POWER ON)를 유지한다.
이때, 큰 CPU(120)의 전력 영역들(121~125) 중에서 적어도 하나의 전력 영역의 데이터는 적어도 하나의 L2 캐시(130과 140)로 업데이트되고, 큰 CPU(120)는 제2통신 채널(CH2)을 통해 스누핑 동작을 계속 수행하면서 적어도 하나의 전용 영역 (133과 143)에 대한 플러싱 동작(flushing operation)을 수행한다. 상기 플러싱 동작에 따른 데이터는 요소들(CH2, 101, 및 105)을 통하여 메모리(107)로 전송될 수 있다.
도 6의 (c)에 도시된 바와 같이, 플로싱 동작이 수행되는 동안, 큰 CPU(120)의 각 전역 영역(121과 123)은 제2제어 신호들(CTR2) 중에서 대응되는 제어 신호들 각각에 응답하여 파워-오프 상태(POWER OFF)로 된다.
상기 플로싱 동작이 완료되면, 도 6의 (d)에 도시된 바와 같이, 큰 CPU (120)의 각 전역 영역(125, 131, 및 141)은 제2제어 신호들(CTR2) 중에서 대응되는 제어 신호들 각각에 응답하여 파워-오프 상태(POWER OFF)로 된다.
따라서, CPU 스케일링이 완료되면, 작은 CPU(110)의 제1 L2 캐시 컨트롤러 (115)는 각 선택기(160과 161)를 통하여 적어도 하나의 공유 영역(133과 143)을 액세스할 수 있다.
도 6의 (a)부터 도 6의 (d)에 도시된 바와 같이, CPU 스케일링 동안, 적어도 하나의 공유 영역(133과 143)으로 공급되는 각 전력은 그대로 유지된다.
또한, CPU 스케일링 동안, 적어도 하나의 공유 영역(133과 143)은 제2통신 채널(CH2)을 통해 스누핑 동작을 수행하지 않는다. 즉, 적어도 하나의 공유 영역 (133과 143)이 각 CPU(110과 120)에 의해 물리적으로 공유되므로, 스누핑 동작이 수행되는 전체 영역은 감소하는 이점이 있다.
도 7은 도 6에 도시된 CPU 스케일링을 설명하기 위한 플로우차트이다.
도 6과 도 7을 참조하면, 큰 CPU(120)가 동작하는 동안(S210), CPU 스케일링이 수행되더라도 큰 CPU(120)는 적어도 하나의 전용 영역(131과 141)에 대해서만 제2통신 채널(CH2)을 통해 스누핑 동작을 수행할 수 있다(S220).
상기 CPU 스케일링이 완료되면, 동작 대상 CPU는 큰 CPU(120)로부터 작은 CPU(110)로 전환된다(S230).
도 8은 본 발명의 다른 실시 예에 따른 멀티-CPU 시스템의 개략적인 블록도를 나타낸다.
도 8을 참조하면, 상기 멀티-CPU 시스템은 제1CPU(110-1)와 제2CPU(120-1)를 포함한다. 도 8의 (a)는 상기 멀티-CPU 시스템의 정면도를 나타내고, 도 8의 (b)는 상기 멀티-CPU 시스템은 평면도를 나타낸다.
도 8의 (a)와 도 8의 (b)에 도시된 바와 같이, 제1CPU(110-1)는 제2CPU(120-1) 위에 적층(stack)된다.
제1CPU(110-1)와 제2CPU(120-1)는 서로 다른 칩(chip) 또는 다이(die)로 구현될 수 있다. 제2CPU(120-1)에 구현된 적어도 하나의 공유 영역(133과 143)은 수직적 전기적 비아들(vertical electrical vias), 예컨대 TSV들(through silicon vias)을 통하여 제1CPU(110-1)에 접속된다.
제1CPU(110-1)의 구조는 도 1a의 제1CPU(110)의 구조와 실질적으로 동일하고, 제2CPU(120-1)의 구조는 도 1a의 제2CPU(120)의 구조와 실질적으로 동일하다. 이때, 도 1a의 PMU(150)에 대응되는 PMU는 제2CPU(120-1)에 구현될 수 있다.
도 9는 본 발명의 실시 예에 따른 보드 어셈블리의 블록도를 나타낸다.
도 9를 참조하면, 보드 어셈블리(200)는 제1CPU(110-2), 제CPU(120-2), 적어도 하나의 공유 영역(133과 143), PMU(150), 버스(210), 및 메모리(220)를 포함한다.
도 1a, 도 8, 및 도 9를 참조하면, 적어도 하나의 공유 영역(133과 143)은 제1CPU(110-2)와 제2CPU(120-2)와는 별도로 구현될 수 있다.
적어도 하나의 공유 영역(133과 143)을 제외하면, 도 1a의 제1CPU(110)의 구조와 동작은 도 9의 제1CPU(110-2)의 구조와 동작과 실질적으로 동일하고 도 1a의 제2CPU(120)의 구조와 동작은 도 9의 제2CPU(120-2)의 구조와 동작과 실질적으로 동일하다.
제1 L2 캐시 컨트롤러(115) 또는 제1인터페이스 블록(117)은 제1통신 채널 (CH1)을 통하여 버스(210)와 통신할 수 있다.
제2 L2 캐시 컨트롤러(125) 또는 제2인터페이스 블록(127)은 제2통신 채널 (CH2)을 통하여 버스(210)와 통신할 수 있다.
각 제1통신 채널(CH1과 CH2)은 전기적 통신 채널 또는 광학적 통신 채널로 구현될 수 있다.
각 L2 캐시 컨트롤러(115와 125)는 적어도 하나의 공유 영역(133과 143)을 선택적으로 액세스할 수 있다.
도 10은 본 발명의 실시 예에 따른 컴퓨터 플랫폼을 나타낸다.
도 10을 참조하면, 컴퓨터 플랫폼(300)은 컴퓨팅 시스템과 같은 전자 장치에 사용될 수 있다. 상기 전자 장치는 PC(personal computer), 디지털 TV, 또는 휴대용 장치(portable device)로 구현될 수 있다.
상기 휴대용 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰 (smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book) 등으로 구현될 수 있다.
컴퓨터 플랫폼(300)은 멀티-CPU 시스템(100), 인터페이스 블록(320), 및 메모리(330)를 포함한다.
실시 예에 따라, 컴퓨터 플랫폼(300)은 무선 인터페이스 블록(340)과 디스플레이(350) 중에서 적어도 하나를 더 포함할 수 있다.
멀티-CPU 시스템(100)은 인터페이스 블록(320)을 통하여 메모리(330), 무선 인터페이스 블록(340), 또는 디스플레이(350)와 통신할 수 있다.
인터페이스 블록(320)은 다양한 인터페이스 제어 기능들을 수행할 수 있는 하나 또는 그 이상의 회로 블록들을 포함한다. 상기 제어 기능들은 메모리 액세스 제어, 그래픽 제어, 입출력 인터페이스 제어, 또는 무선 네트워크 액세스 제어, 등을 포함한다.
상기 회로 블록들 각각은 별도의 독립적인 칩으로 구현되거나, 멀티-CPU 시스템(100)의 일부로서 구현되거나, 또는 멀티-CPU 시스템(100)의 내부에 구현될 수 있다.
메모리(330)는 인터페이스 블록(320)을 통하여 멀티-CPU 시스템(100)과 데이터를 주거나 받을 수 있다.
무선 인터페이스 블록(340)은 안테나를 통하여 컴퓨터 플랫폼(300)을 무선 네트워크, 예컨대 이동 통신 네트워크 또는 무선 LAN(local area network)에 접속시킬 수 있다.
도 11은 본 발명의 실시 예에 따른 멀티-CPU 시스템을 포함하는 컴퓨팅 시스템의 일 실시 예를 나타낸다.
도 11을 참조하면, 컴퓨팅 시스템(400)은 PC, 데이터 서버, 랩탑 컴퓨터, 또는 휴대용 장치로 구현될 수 있다.
컴퓨팅 시스템(400)은 멀티-CPU 시스템(100), 파워 소스(420), 메모리(430), 입출력 포트들(440), 확장 카드(450), 네트워크 장치(460), 및 디스플레이(470)를 포함할 수 있다. 실시 예에 따라. 컴퓨팅 시스템(400)은 카메라 모듈(480)을 더 포함할 수 있다.
멀티-CPU 시스템(100)은 요소들(420~480) 중에서 적어도 하나의 동작을 제어할 수 있다.
파워 소스(420)는 요소들(103, 및 430~480) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.
메모리(430)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 실시 예에 따라, 메모리(430)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 멀티-CPU 시스템(100)에 집적(또는 내장)될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 멀티-CPU 시스템(100)과 메모리(430) 사이에 별도로 구현될 수 있다.
입출력 포트들(440)은 컴퓨팅 시스템(400)으로 데이터를 전송하거나 또는 컴퓨팅 시스템(400)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다.
예컨대, 입출력 포트들(440)은 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트 중에서 적어도 하나를 포함할 수 있다.
확장 카드(450)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(450)는 SIM(Subscriber Identification Module) 카드 또는 USIM(Universal Subscriber Identity Module) 카드일 수 있다.
네트워크 장치(460)는 컴퓨팅 시스템(400)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미할 수 있다.
디스플레이(470)는 메모리(430), 입출력 포트들(440), 확장 카드(450), 또는 네트워크 장치(460)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(480)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(480)로부터 출력된 전기적인 이미지는 메모리 (430), 또는 확장 카드(450)에 저장될 수 있다. 또한, 카메라 모듈(480)로부터 출력된 전기적인 이미지는 멀티-CPU 시스템(100)의 제어에 따라 디스플레이(470)를 통하여 디스플레이될 수 있다.
도 10과 도 11에는 멀티-CPU 시스템(100)이 각 컴퓨팅 시스템(300 또는 400)의 요소로서 도시되어 있으나, 실시 예에 따라 멀티-CPU 시스템(100)은 멀티-CPU (103) 또는 보드 어셈블리(200)로 대체될 수 있다.
이 경우, 각 컴퓨팅 시스템(300 또는 400)의 구조는 멀티-CPU(103) 또는 보드 어셈블리(200)에 적합하게 변경될 수 있다.
도 12는 본 발명의 실시 예에 따른 멀티-CPU 시스템을 제조하는 방법을 설명하기 위한 플로우차트이다.
도 1a와 도 12를 참조하면, 반도체 기판이 준비된다(S310). 상기 반도체 기판 위에 적어도 하나의 제1CPU 코어(111과 113)에 접속된 제1 L2캐시 컨트롤러(115)를 포함하는 제1CPU(110)와, 적어도 하나의 제2CPU 코어(121과 123)에 접속된 제2 L2캐시 컨트롤러(125)를 포함하는 제2CPU(120)가 형성된다(S320).
제1CPU(110)와 제2CPU(120)의 오버랩 영역(133과 143)에, 제1 L2캐시 컨트롤러(115)와 제2 L2캐시 컨트롤러(125)에 의해 선택적으로 액세스 가능한 공유 L2 캐시가 형성된다.
상기 반도체 기판 위에, 시스템 버스(101), 시스템 버스(101)와 제1캐시 컨트롤러(115) 사이에 제1통신 채널(CH1), 및 시스템 버스(101)와 제2캐시 컨트롤러(125) 사이에 제2통신 채널(CH2)이 형성된다.
실시 예에 따라, S310단계와 S320단계는 동시에 구현될 수도 있고 서로 다른 시간에 구현될 수도 있다.
도 8에 도시된 바와 같이, 제1CPU(110-1)와 제2CPU(120-1)가 서로 다른 칩 또는 다이에 형성된 후, 제1CPU(110-1)와 제2CPU(120-1)가 적어도 하나의 공유 영역(133과 143)을 공유할 수 있도록 수직적 전기적 비아들(TSV)을 통하여 서로 접속될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; 멀티-CPU 시스템
101; 시스템 버스
103; 멀티-CPU
110; 제1CPU
111과 113; CPU 코어
115; L2 캐시 컨트롤러
117; 제1인터페이스 블록
120; 제2CPU
121과 123; CPU 코어
125; L2 캐시 컨트롤러
130과 140; L2 캐시
131과 141; L2 캐시의 전용 영역
133과 143; L2 캐시의 공유 영역
127; 제2인터페이스 블록
210; 버스
220; 메모리

Claims (18)

  1. 적어도 하나의 제1CPU(central processing unit) 코어에 접속된 제1캐시 컨트롤러를 포함하는 제1CPU; 및
    적어도 하나의 제2CPU 코어에 접속된 제2캐시 컨트롤러를 포함하는 제2CPU를 포함하며,
    상기 제1CPU와 상기 제2CPU는 상기 제2CPU에 집적된 기능 블록의 적어도 일부를 물리적으로 공유하는 멀티-CPU 시스템.
  2. 제1항에 있어서,
    상기 제1캐시 컨트롤러와 상기 제2캐시 컨트롤러 각각은 L2 캐시 컨트롤러이고,
    상기 기능 블록은 L2 캐시인 멀티-CPU 시스템.
  3. 제1항에 있어서,
    상기 제1캐시 컨트롤러와 상기 제2캐시 컨트롤러 각각은 L3 캐시 컨트롤러이고,
    상기 기능 블록은 L3 캐시인 멀티-CPU 시스템.
  4. 제1항에 있어서, 상기 멀티-CPU 시스템은,
    시스템 버스;
    상기 시스템 버스와 상기 제1캐시 컨트롤러 사이에 접속된 제1통신 채널; 및
    상기 시스템 버스와 상기 제2캐시 컨트롤러 사이에 접속된 제2통신 채널을 더 포함하는 멀티-CPU 시스템.
  5. 제4항에 있어서,
    상기 제1CPU로부터 상기 제2CPU로의 CPU 스케일링 동안,
    상기 제1CPU는 상기 제1통신 채널을 통해 스누핑 동작(snooping operation)을 수행하지 않는 멀티-CPU 시스템.
  6. 제4항에 있어서,
    상기 제2CPU로부터 상기 제1CPU로의 CPU 스케일링 동안,
    상기 제2CPU는 상기 기능 블록의 나머지 일부에 대해서만 상기 제2통신 채널을 통해 스누핑 동작을 수행하는 멀티-CPU 시스템.
  7. 제4항에 있어서,
    상기 멀티-CPU 시스템은 시스템 온 칩(system on chip)으로 구현되는 멀티-CPU 시스템.
  8. 제1항에 있어서,
    상기 제1CPU는 수직적 전기적 비아들(vertical electrical vias)을 통해 상기 기능 블록의 상기 적어도 일부를 공유하는 멀티-CPU 시스템.
  9. 제1항에 있어서,
    상기 기능 블록의 상기 적어도 일부는 상기 제1캐시 컨트롤러와 상기 제2캐시 컨트롤러에 의해 선택적으로 액세스되고,
    상기 기능 블록의 나머지 일부는 상기 제2캐시 컨트롤러에 의해서만 액세스되는 멀티-CPU 시스템.
  10. 적어도 하나의 제1CPU(central processing unit) 코어에 접속된 제1캐시 컨트롤러를 포함하는 제1CPU; 및
    적어도 하나의 제2CPU 코어에 접속된 제2캐시 컨트롤러를 포함하는 제2CPU를 포함하며,
    상기 제1CPU와 상기 제2CPU는 상기 제2CPU에 집적된 기능 블록의 적어도 일부를 물리적으로 공유하고,
    상기 기능 블록의 상기 적어도 일부는,
    메모리 셀 어레이;
    상기 제1CPU의 제1지시 신호와 상기 제2CPU의 지시 신호 중의 적어도 하나에 기초하여 선택 신호를 출력하는 전력 관리 유닛; 및
    상기 선택 신호에 따라 상기 제1캐시 컨트롤러로부터 출력된 제1액세스 신호들 또는 상기 제2캐시 컨트롤러로부터 출력된 제2액세스 신호들을 상기 메모리 셀 어레이로 전송하는 선택기를 포함하는 멀티-CPU 시스템.
  11. 제10항에 있어서,
    상기 기능 블록의 상기 적어도 일부는 상기 제1캐시 컨트롤러와 상기 제2캐시 컨트롤러에 의해 선택적으로 액세스되고,
    상기 기능 블록의 나머지 일부는 상기 제2캐시 컨트롤러에 의해서만 액세스되는 멀티-CPU 시스템.
  12. 시스템 버스; 및
    상기 시스템 버스를 통하여 메모리와 통신하는 멀티-CPU를 포함하며,
    상기 멀티-CPU는,
    적어도 하나의 제1CPU(central processing unit) 코어에 접속된 제1 L2캐시 컨트롤러를 포함하는 제1CPU; 및
    적어도 하나의 제2CPU 코어에 접속된 제2 L2캐시 컨트롤러를 포함하는 제2CPU를 포함하며,
    상기 제1CPU와 상기 제2CPU는 상기 제2CPU에 집적된 L2 캐시의 적어도 일부를 물리적으로 공유하는 컴퓨팅 시스템.
  13. 제12항에 있어서, 상기 멀티-CPU는,
    상기 시스템 버스와 상기 제1 L2캐시 컨트롤러 사이에 접속된 제1통신 채널; 및
    상기 시스템 버스와 상기 제2L2 캐시 컨트롤러 사이에 접속된 제2통신 채널을 더 포함하는 컴퓨팅 시스템.
  14. 제12항에 있어서,
    상기 제1CPU로부터 상기 제2CPU로의 CPU 스케일링 동안,
    상기 제1CPU는 상기 시스템 버스를 통해 스누핑 동작을 수행하지 않는 컴퓨팅 시스템.
  15. 제12항에 있어서,
    상기 제1CPU로부터 상기 제2CPU로의 CPU 스케일링 동안,
    상기 제2CPU는 상기 L2캐시를 콜드-스타트(cold-start)하지 않는 컴퓨팅 시스템.
  16. 제12항에 있어서,
    상기 멀티-CPU는,
    상기 제1CPU의 제1지시 신호와 상기 제2CPU의 지시 신호 중의 적어도 하나에 기초하여 선택 신호를 출력하는 전력 관리 유닛을 더 포함하고,
    상기 L2 캐시의 상기 적어도 일부는,
    메모리 셀 어레이; 및
    상기 선택 신호에 따라 상기 제1 L2캐시 컨트롤러로부터 출력된 제1액세스 신호들 또는 상기 제2 L2캐시 컨트롤러로부터 출력된 제2액세스 신호들을 상기 메모리 셀 어레이로 전송하는 선택기를 포함하는 컴퓨팅 시스템.
  17. 제12항에 있어서,
    상기 시스템 버스는 상기 멀티-CPU의 내부 또는 외부에 구현된 컴퓨팅 시스템.
  18. 제12항에 있어서,
    상기 컴퓨팅 시스템은 휴대용 장치로 구현되는 컴퓨팅 시스템.
KR1020120048455A 2012-05-08 2012-05-08 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템 KR101858159B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020120048455A KR101858159B1 (ko) 2012-05-08 2012-05-08 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
US13/741,717 US8949534B2 (en) 2012-05-08 2013-01-15 Multi-CPU system and computing system having the same
JP2013089640A JP5905408B2 (ja) 2012-05-08 2013-04-22 マルチcpuシステムとそれを含むコンピューティングシステム
DE102013104198A DE102013104198A1 (de) 2012-05-08 2013-04-25 Multi-CPU-System und Computersystem mit demselben
TW102114736A TWI601065B (zh) 2012-05-08 2013-04-25 多cpu系統以及具有該多cpu系統的計算系統
CN201310168083.0A CN103389961B (zh) 2012-05-08 2013-05-06 多cpu系统以及具有多cpu系统的计算系统
US14/604,832 US9606920B2 (en) 2012-05-08 2015-01-26 Multi-CPU system and computing system having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120048455A KR101858159B1 (ko) 2012-05-08 2012-05-08 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20130125039A KR20130125039A (ko) 2013-11-18
KR101858159B1 true KR101858159B1 (ko) 2018-06-28

Family

ID=49475645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120048455A KR101858159B1 (ko) 2012-05-08 2012-05-08 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템

Country Status (6)

Country Link
US (2) US8949534B2 (ko)
JP (1) JP5905408B2 (ko)
KR (1) KR101858159B1 (ko)
CN (1) CN103389961B (ko)
DE (1) DE102013104198A1 (ko)
TW (1) TWI601065B (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11126379B2 (en) 2019-11-25 2021-09-21 SK Hynix Inc. Memory system
US11194520B2 (en) 2017-10-27 2021-12-07 SK Hynix Inc. Memory system and operating method thereof
US11366763B2 (en) 2019-02-27 2022-06-21 SK Hynix Inc. Controller including cache memory, memory system, and operating method thereof
US11436148B2 (en) 2020-06-30 2022-09-06 SK Hynix Inc. Memory controller and method of operating the same
US11449235B2 (en) 2020-06-25 2022-09-20 SK Hynix Inc. Storage device for processing merged transactions and method of operating the same
US11494313B2 (en) 2020-04-13 2022-11-08 SK Hynix Inc. Cache memory including dedicated areas, storage device and method for storing data in the dedicated areas of the cache memory
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
US11599464B2 (en) 2020-05-21 2023-03-07 SK Hynix Inc. Memory controller and method of operating the same
US11934309B2 (en) 2020-04-13 2024-03-19 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014051545A1 (en) * 2012-09-25 2014-04-03 Arijit Raychowdhury Digitally phase locked low dropout regulator
DE102013106699B3 (de) * 2013-06-26 2014-02-27 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem mit einem Abwesenheitsmodus
KR20150050135A (ko) * 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
CN103823712B (zh) * 2014-03-17 2017-05-10 杭州华三通信技术有限公司 一种多cpu虚拟机系统的数据流处理方法和装置
KR102164099B1 (ko) * 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US20150370707A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated Disunited shared-information and private-information caches
JP6074463B2 (ja) * 2015-07-01 2017-02-01 株式会社東芝 プロセッサシステム、メモリ制御回路およびメモリシステム
FR3043476B1 (fr) * 2015-11-05 2018-09-28 Dolphin Integration Systeme et procede de gestion d'alimentation
US9871020B1 (en) 2016-07-14 2018-01-16 Globalfoundries Inc. Through silicon via sharing in a 3D integrated circuit
EP3491740B1 (en) * 2016-08-01 2021-07-21 Tsvlink Corporation A multiple channel cache memory and system memory device
US10275280B2 (en) 2016-08-10 2019-04-30 International Business Machines Corporation Reserving a core of a processor complex for a critical task
US10248457B2 (en) 2016-08-10 2019-04-02 International Business Machines Corporation Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task
US10223164B2 (en) 2016-10-24 2019-03-05 International Business Machines Corporation Execution of critical tasks based on the number of available processing entities
US10248464B2 (en) 2016-10-24 2019-04-02 International Business Machines Corporation Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex
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
CN108170255B (zh) * 2018-01-24 2020-07-03 苏州国芯科技股份有限公司 一种控制装置
CN110688331B (zh) * 2018-07-05 2021-08-17 珠海全志科技股份有限公司 一种SoC芯片及读取数据的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037658A1 (en) 2007-07-31 2009-02-05 Krishnakanth Sistla Providing an inclusive shared cache among multiple core-cache clusters
US20090083493A1 (en) 2007-09-21 2009-03-26 Mips Technologies, Inc. Support for multiple coherence domains
JP2010180156A (ja) 2009-02-05 2010-08-19 Chiba Univ 1,2−ジオールからの低級飽和アルデヒド製造方法
JP2010534377A (ja) 2007-07-20 2010-11-04 インテル・コーポレーション 低電力モード中にキャッシュされた情報を保存する技術

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6434672B1 (en) 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
EP1182559B1 (en) 2000-08-21 2009-01-21 Texas Instruments Incorporated Improved microprocessor
JP2004179442A (ja) * 2002-11-28 2004-06-24 Renesas Technology Corp マルチチップモジュール
US7349285B2 (en) * 2005-02-02 2008-03-25 Texas Instruments Incorporated Dual port memory unit using a single port memory core
US8028131B2 (en) * 2006-11-29 2011-09-27 Intel Corporation System and method for aggregating core-cache clusters in order to produce multi-core processors
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
US8433851B2 (en) 2007-08-16 2013-04-30 International Business Machines Corporation Reducing wiring congestion in a cache subsystem utilizing sectored caches with discontiguous addressing
JP2010003042A (ja) * 2008-06-19 2010-01-07 Koyo Electronics Ind Co Ltd マルチcpuシステムおよびプログラマブルコントローラ
US20110238925A1 (en) 2008-10-02 2011-09-29 Dan Robinson Cache controller and method of operation
KR101017068B1 (ko) 2008-11-25 2011-02-25 서울대학교산학협력단 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법
KR101215732B1 (ko) 2010-11-05 2013-01-09 구기승 릴 포장 카세트
US8793686B2 (en) * 2011-06-08 2014-07-29 Microsoft Corporation Operating system decoupled heterogeneous computing
US9158693B2 (en) * 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010534377A (ja) 2007-07-20 2010-11-04 インテル・コーポレーション 低電力モード中にキャッシュされた情報を保存する技術
US20090037658A1 (en) 2007-07-31 2009-02-05 Krishnakanth Sistla Providing an inclusive shared cache among multiple core-cache clusters
US20090083493A1 (en) 2007-09-21 2009-03-26 Mips Technologies, Inc. Support for multiple coherence domains
JP2010180156A (ja) 2009-02-05 2010-08-19 Chiba Univ 1,2−ジオールからの低級飽和アルデヒド製造方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194520B2 (en) 2017-10-27 2021-12-07 SK Hynix Inc. Memory system and operating method thereof
US11366763B2 (en) 2019-02-27 2022-06-21 SK Hynix Inc. Controller including cache memory, memory system, and operating method thereof
US11126379B2 (en) 2019-11-25 2021-09-21 SK Hynix Inc. Memory system
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
US11494313B2 (en) 2020-04-13 2022-11-08 SK Hynix Inc. Cache memory including dedicated areas, storage device and method for storing data in the dedicated areas of the cache memory
US11934309B2 (en) 2020-04-13 2024-03-19 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
US11599464B2 (en) 2020-05-21 2023-03-07 SK Hynix Inc. Memory controller and method of operating the same
US11449235B2 (en) 2020-06-25 2022-09-20 SK Hynix Inc. Storage device for processing merged transactions and method of operating the same
US11436148B2 (en) 2020-06-30 2022-09-06 SK Hynix Inc. Memory controller and method of operating the same

Also Published As

Publication number Publication date
CN103389961B (zh) 2017-10-27
US20130304992A1 (en) 2013-11-14
CN103389961A (zh) 2013-11-13
DE102013104198A1 (de) 2013-11-14
KR20130125039A (ko) 2013-11-18
TW201403465A (zh) 2014-01-16
JP2013235576A (ja) 2013-11-21
TWI601065B (zh) 2017-10-01
US9606920B2 (en) 2017-03-28
JP5905408B2 (ja) 2016-04-20
US8949534B2 (en) 2015-02-03
US20150143048A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
KR101858159B1 (ko) 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
US10705588B2 (en) Enabling a non-core domain to control memory bandwidth in a processor
US9569279B2 (en) Heterogeneous multiprocessor design for power-efficient and area-efficient computing
US10991446B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
CN1936876B (zh) 数据处理系统和数据处理器
US8122233B2 (en) Information processing device
KR101543581B1 (ko) 시스템 온 칩 및 이를 포함하는 전자 시스템
KR20150050135A (ko) 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US8621159B2 (en) Shared access memory scheme
TW201211756A (en) System and method for power optimization
US20150052410A1 (en) System on chip for debugging a cluster regardless of power state of the cluster, method of operating the same, and system having the same
US8046565B2 (en) Accelerator load balancing with dynamic frequency and voltage reduction
KR20160125137A (ko) 애플리케이션 프로세서와 시스템 온 칩
KR102161689B1 (ko) L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들
US20130219123A1 (en) Multi-core processor sharing l1 cache
CN110741359A (zh) 改变共享总线上集成电路的从属标识的系统和方法
KR20230127824A (ko) 시스템 온 칩, 그것의 버스 파워 게이팅 방법 및 시스템
JP5704669B2 (ja) 半導体装置
KR101267611B1 (ko) 고속무선통신모뎀에서 외부 장치에 저장된 펌웨어 실행 방법
JP2013192239A (ja) 半導体集積回路
CN115657937A (zh) 存储芯片、控制方法及电子设备
JP2012094171A (ja) 携帯電話
JP2009187585A (ja) スタンバイモードからの復帰処理方法
JP2006031263A (ja) 半導体装置
JP2011022937A (ja) アダプタ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right