KR101942884B1 - 새로운 저비용, 저전력 고성능 smp/asmp 다중-프로세서 시스템 - Google Patents

새로운 저비용, 저전력 고성능 smp/asmp 다중-프로세서 시스템 Download PDF

Info

Publication number
KR101942884B1
KR101942884B1 KR1020177012981A KR20177012981A KR101942884B1 KR 101942884 B1 KR101942884 B1 KR 101942884B1 KR 1020177012981 A KR1020177012981 A KR 1020177012981A KR 20177012981 A KR20177012981 A KR 20177012981A KR 101942884 B1 KR101942884 B1 KR 101942884B1
Authority
KR
South Korea
Prior art keywords
mode
processor
clock signal
asmp
delete delete
Prior art date
Application number
KR1020177012981A
Other languages
English (en)
Other versions
KR20170069269A (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
Priority claimed from US14/516,314 external-priority patent/US9952650B2/en
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20170069269A publication Critical patent/KR20170069269A/ko
Application granted granted Critical
Publication of KR101942884B1 publication Critical patent/KR101942884B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • 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/3243Power saving in microcontroller unit
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • Y02D10/126
    • Y02D10/13
    • Y02D10/171
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)

Abstract

처리 시스템은 항상 제1 클록 주파수 및 제1 공급 전압에서 먼저 프로세스하고 동작하는 복수의 프로세서를 포함한다. 적어도 하나의 프로세서는, 제1 및 제2 프로세서가 대칭형 다중-처리(SMP)를 제공하는 결과를 낳는 제1 클록 주파수 및 제 1 공급 전압에서 또는 제1 및 제2 프로세서가 비대칭형 다중-처리(ASMP)를 제공하는 결과를 낳는 제2 클록 주파수 및 제2 공급 전압에서 동작하도록 동적으로 스위칭 가능하다. 제1 클록 주파수 및 제1 공급 전압에서 항상 동작하는 제3 프로세서가 포함될 수 있다. 전력 소모 및/또는 성능을 개선하기 위해 적어도 하나의 스위칭 가능한 프로세서를 언제 스위칭 할지를 결정하기 위한 다양한 기준이 사용될 수 있다. 컨트롤러는 스위칭 가능한 프로세서에 대해 두 모드 사이에서 제어 및 고속 스위칭을 가능하게 한다. SMP와 ASMP 간에 스위치를 위한 스위칭 명령을 수신하면, 연속된 또는 일련의 동작이 스위칭 가능한 프로세서 및 캐시 메모리로의 전압 공급 및 CPU/메모리 클록을 제어하기 위해 수행된다.

Description

새로운 저비용, 저전력 고성능 SMP/ASMP 다중-프로세서 시스템{NOVEL LOW COST, LOW POWER HIGH PERFORMANCE SMP/ASMP MULTIPLE-PROCESSOR SYSTEM}
본 발명은 다중 프로세서 아키텍처 및 시스템에 관련된 것이고, 특히, 다중 프로세서/코어 시스템의 적어도 하나의 프로세서/코어에서 비대칭형(asymmetric) 및 대칭형(symmetric) 다중 처리(multiprocessing) 모드 사이에서 스위칭 하는 장치 및 방법에 관한 것이다.
삭제
다중-처리 시스템(Multi-processing systems)은 데이터를 처리하고 요구되는 기능을 수행하기 위해서 복수의 프로세서(예를 들어, 중앙 처리 유닛(central preprocessing units, CPU))를 활용한다. 알 수 있는 바와 같이, "processor"라는 용어는 "CPU" 또는 "core"라는 용어의 동의어로서 사용되고 이는 당해 기술 분야에서 통상의 지식을 가진 자에 의해 쉽게 이해될 수 있다. 종래 기술에는, 이종의 다중 처리 시스템으로서 두 개의 주요한 유형, 대칭형 다중 처리(Symmetric multi-processing, SMP) 및 비대칭형 다중 처리(asymmetric multi-processing, ASMP)가 존재한다.
SMP 시스템은 통상적으로 모든 시스템 자원, 단일 동기식 L2 캐시 인터페이스(synchronous L2 cache interface)(가능하면 비동기식(asynchronous) L2)를 공유하는 것으로 특징지어지고, 프로세서들은 동일한 클록 주파수 및 클록 전압으로 제어된다. 이는 또한 일반적으로, 프로세서/코어들이 공유된 메모리 시스템(L2 캐시 및 메모리와 같은)에 동등하게 액세스 할 수 있음을 의미한다. SMP에서, 클록 주파수 및 전압은 개별적으로 조정될 수 없고, 그러므로 코어/프로세서 별로 변경될 수 없다. 게다가, L2 캐시는 모든 코어 사이에서 공유되고 L2 캐시 주파수는 코어 별로 커지지 않는다. 대부분, 모든 애플리케이션이 아니라면, SMP에서 프로세서의 작업 부하는 불균형하게 되고 이는 더 높은 전력 소비를 일으킨다. SMP는 모든 프로세서/코어를 동등하게 취급하는 것으로 특징지어질 수 있다(동등성).
반대로, ASMP 시스템은 통상적으로 프로세서에 대해서 다른 클록 주파수 및/또는 클록 전압을 개별적으로 갖는 것으로 특징지어지고, L2 캐시 클록 주파수는 독립적으로 커질 수 있다. 그러므로, 프로세서 클록 주파수 및 L2 캐시 주파수는 작업 부하에 기반하여 커질 수 있다(예를 들어, 메모리 집중 작업 부하를 위한 코어 대비 상대적으로 더 빠른 L2 캐시). 일반적으로 말하면, ASMP 시스템은 SMP 시스템보다 더 전력 효율적이지만, 추가적이고 더 복잡한 하드웨어 때문에 잠재적으로 높은 전력 소모가 유발될 수 있다. L1 캐시 실패율(miss rate)이 높을 때, 프로세서는 L2 캐시로부터 데이터를 가져온다. 요청된 관련 데이터가 L2 캐시의 낮은 클록 주파수 부에 저장되어 있으면, 프로세서는 데이터를 기다려야만 한다. 이는 높은 지연 및 높은 전력 소모를 일으킨다. ASMP는 또한 모든 프로세서/코어를 다르게 또는 비동등하게 취급하는 것으로 특징지어질 수 있다(비동등성).
도 1을 참조하면, ASMP를 사용하는 복수의 프로세서를 갖는 처리 시스템(100)의 기본 아키텍처가 도시되어 있다. 알 수 있는 바와 같이, 유사한 선행 기술이 SMP에 대해서 활용되지만, 당해 기술 분야의 통상의 지식을 가진 자에 의해 쉽게 이해될 수 있는 것처럼, 프로세서는 단일 클록 주파수로 동작하고 단일 공급 전원 레벨을 사용한다.
처리 시스템(100)은 도시된 대로, 대응하는 L2 캐시 메모리 부(120)(120a, 120b, 120c, 120d) 및 클록 도메인 크로싱(clock domain crossing, CDC) 회로(130)(130a, 130b, 130c, 130d)를 갖는 복수의 프로세서(110)(110a, 110b, 110c, 110d)를 갖는 다중-프로세서 및 캐시 서브 시스템(105)을 포함한다. 비록 네 개의 프로세서(110)(그리고 대응하는 메모리 및 회로)가 나타나 있기는 하지만, 프로세서의 개수는 더 적거나 더 많을 수 있고, 적어도 두 개는 포함한다. 알 수 있는 바와 같이, 각 프로세서(110)는 하나 이상의 중앙 처리 유닛(central processing units, CPUs)을 포함할 수 있다.
처리 시스템(100)은 프로세서, 캐시, 그리고 CDC 각각에게 전력을 공급하는 데 사용하기 위한 복수의 공급 전압 신호를 생성하기 위한 전력 관리 제어(power management control, PMIC) 회로를 더 포함한다. 마찬가지로, 클록 생성 회로(clock generation circuit)(150)는 프로세서, 캐시, 그리고 CDC 각각의 클록 동작에 사용하기 위한 다양한 미리 결정된 클록 주파수를 갖는 복수의 클록 신호를 생성한다. 알 수 있는 바와 같이, PMIC 회로는 서브시스템(105)과 동일한 기판 상에 위치되거나, 또는 다른 기판(예를 들어, 다른 IC) 상에 제공될 수 있다.
위에 기재된 것과 당해 기술분야의 통상의 지식을 가진 자에게 쉽게 이해될 수 있는 것과 같이, 별개의 SMP 및 ASMP 아키텍처/시스템 각각은 다양한 단점 또는 결점뿐만 아니라 장점 또는 이점을 갖는다. 각 유형의 시스템에 대한 복잡성 및 비용으로 인해, 설계자는 일반적으로 특정 애플리케이션에 기반하여 SMP 시스템 또는 ASMP 시스템 중 하나를 선택해야 한다. 종래 기술의 다중-프로세서 시스템은 ASMP 또는 SMP를 활용했다.
따라서, SMP 시스템 및 ASMP 시스템 모두의 기능을 다중-프로세서 코어, 캐시, 및 CDC 서브시스템의 복제 없이 동시에 제공하고 동작할 수 있는 다중 처리 시스템 또는 아키텍처가 필요하다.
일 실시예에 따르면, 제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 동작 전압을 갖는 제1 공급 전압에 따라서 수신하고 동작하도록 구성된 제1 프로세서, 그리고 상기 제1 클록 신호 또는 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 수신하고 동작하며, 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 수신하고 동작하도록 구성된 제2 프로세서를 포함하는 복수의 프로세서를 갖는 다중-프로세서 처리 시스템이 제공된다. 컨트롤러는 적어도 상기 제2 프로세서에 연결되고, 제1 모드의 동작(mode of operation) 및 제2 모드의 동작 사이에서 상기 제2 프로세서의 동작을 스위치하도록 구성되어, 상기 제1 모드의 동작일 때, 상기 제2 프로세서는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 수신하고 동작하고, 제2 모드의 동작일 때, 상기 제2 프로세서는 상기 제2 클록 신호 및 상기 제2 공급 전압에 따라서 수신하고 동작하며, 상기 제1 프로세서는 또한, 상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안에는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서만 수신하고 동작하도록 구성된다.
다른 실시예에 따르면, 복수의 제1 프로세서 및 제2 프로세서를 포함하고, 다중 처리 기능(multiprocessing functions)을 수행하도록 구성된 복수의 프로세서를 포함하는 장치가 제공된다. 컨트롤러는 제1 모드 및 제2 모드에서 상기 제2 프로세서의 동작을 제어하도록 구성된다. 상기 장치는, 상기 컨트롤러에 연결되어, 제1 클록 신호 및 제2 클록 신호를 생성하여 출력하도록 구성된 클록 생성 회로, 상기 클록 생성 회로 및 상기 제2 프로세서의 사이에 배치되고, 상기 제1 클록 신호 및 상기 제2 클록 신호를 수신하여 상기 제2 프로세서에게 출력하기 위해서 하나를 선택하도록 구성된 스위칭 회로(switching circuit)를 더 포함하고, 여기서 상기 제1 모드의 동작 동안 상기 제1 클록 신호는 상기 제2 프로세서에게 출력되고 상기 제2 모드의 동작 동안 상기 제2 클록 신호는 상기 제2 프로세서에게 출력된다. 상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안 상기 제1 클록 신호는 상기 복수의 제1 프로세서에게 입력된다. 캐시 메모리는 상기 복수의 프로세서에 연결되어 상기 복수의 프로세서의 사용을 위해서 구성되고, 클록-도메인 크로싱 및 바이패스 회로는 상기 제2 프로세서 및 상기 캐시 메모리에 연결되어, 상기 컨트롤러에 응답하며, 또한, 상기 제2 모드의 동작 동안 상기 제2 프로세서 및 상기 캐시 메모리 사이에서 클록-도메인 크로싱(clock-domain crossing, CDC) 기능을 제공하고 상기 제1 모드의 동작 동안 바이패싱(bypassing) 기능을 제공하도록 구성된다.
다른 실시예에서, 제1 프로세서가 동작하고 있는 동안에는 항상 제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 동작 전압을 갖는 제1 공급 전압에 따라서 상기 제1 프로세서를 동작시키는 단계, 모드 선택 신호를 수신하는 단계, 상기 모드 선택 신호에 응하여 제1 모드의 동작 또는 제2 모드의 동작에서 제2 프로세서를 동작시키는 단계를 포함하는 복수의 프로세서를 대칭형 다중 처리(symmetric multiprocessing, SMP) 모드 및 비대칭형 다중 처리(asymmetric multiprocessing, ASMP) 모드 사이에서 스위칭하는 방법이 제공된다. 제1 모드의 동작에서, 제2 프로세서는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 동작되고, 제2 모드의 동작에서, 제2 프로세서는 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 그리고 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 동작된다.
또 다른 실시예에서, 적어도 두 개의 프로세서가 대칭형 다중 처리(symmetric multiprocessing, SMP) 모드 또는 비대칭형 다중 처리(asymmetric multiprocessing, ASMP) 모드에서 동작하는 다중 처리 모드의 복수의 프로세서를 갖는 처리 시스템을 동작시키는 방법이 제공된다. 상기 방법은, 적어도 두 개의 프로세서를 상기 SMP 모드에서 동작시키는 단계 - 여기서 상기 적어도 두 개의 프로세서는 제1 미리 결정된 주파수를 갖는 SMP 클록 신호를 수신하고, 제1 전압을 갖는 SMP 동작 공급 전압을 수신하며, 상기 적어도 두 개의 프로세서는 제1 프로세서 및 제2 프로세서를 포함함 -, SMP 모드로부터 ASMP 모드로 스위치 하기 위한 지시를 수신하는 단계, 및 상기 적어도 두 개의 프로세서의 동작을 SMP 모드로부터 ASMP 모드로 스위칭하는 단계를 포함한다. 상기 스위칭 동작은, 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 ASMP 클록 신호를 생성하는 단계, 상기 제1 전압과 다른 제2 전압의 ASMP 동작 공급 전압을 생성하는 단계, 상기 ASMP 클록 신호 및 상기 ASMP 동작 공급 전압을 상기 제2 프로세서에게 입력하는 단계, 그리고 그 후 상기 제2 프로세서를 상기 제2 미리 결정된 주파수 및 상기 제2 전압으로 동작시키고 상기 제1 프로세서를 상기 제1 미리 결정된 주파수 및 상기 제1 전압으로 동작시키는 단계를 포함한다.
다른 실시예에 따르면, 제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 동작 전압을 갖는 제1 공급 전압에 따라서 수신하고 동작하도록 각각 구성된 제1 프로세서 및 제2 프로세서, 상기 제1 클록 신호 또는 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 수신하고 동작하고, 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 수신하고 동작하도록 구성된 제3 프로세서, 그리고
상기 제1 클록 신호 또는 상기 제1 미리 결정된 주파수와 다른 제3 미리 결정된 주파수를 갖는 제3 클록 신호에 따라서 수신하고 동작하고, 상기 제1 미리 결정된 동작 전압과 다른 제3 미리 결정된 동작 전압을 갖는 제3 공급 전압에 따라서 수신하고 동작하도록 구성된 제4 프로세서를 포함하는 복수의 프로세서를 갖는 다중-프로세서(multi-processor, MP) 처리 시스템이 제공된다. 컨트롤러는 적어도 상기 제3 프로세서 및 상기 제4 프로세서와 연결되고, 제1 모드의 동작 및 제2 모드의 동작 사이에서 상기 제3 프로세서 및 상기 제4 프로세서의 동작을 스위치하도록 구성된다. 상기 제1 모드의 동작일 때, 상기 제3 프로세서 및 상기 제4 프로세서는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 각각 수신하고 동작하고, 상기 제2 모드의 동작일 때, 상기 제3 프로세서는 상기 제2 클록 신호 및 상기 제2 공급 전압에 따라서 수신하고 동작하며, 상기 제4 프로세서는 상기 제3 클록 신호 및 상기 제3 공급 전압에 따라서 수신하고 동작한다. 상기 제1 프로세서 및 상기 제2 프로세서는 또한 상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안에는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서만 수신하고 동작하도록 구성된다.
또 다른 실시예에서, 복수의 프로세서를 대칭형 다중 처리(symmetric multiprocessing, SMP) 모드 및 비대칭형 다중 처리(asymmetric multiprocessing, ASMP) 모드 사이에서 스위칭하는 방법이 제공된다. 상기 방법은, 제1 프로세서 및 제2 프로세서의 동작 동안에는 항상 제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 동작 전압을 갖는 제1 공급 전압에 따라서 상기 제1 프로세서 및 상기 제2 프로세서를 동작시키는 단계, 모드 선택 신호를 수신하는 단계, 상기 모드 선택 신호에 응하여 제1 모드의 동작 또는 제2 모드의 동작에서 제3 프로세서 및 제4 프로세서를 동작시키는 단계를 포함한다. 상기 제1 모드의 동작에서, 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 상기 제3 프로세서 및 상기 제4 프로세서가 동작되고, 제2 모드의 동작에서, 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 그리고 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 상기 제3 프로세서가 동작되고, 상기 제1 미리 결정된 주파수와 다른 제3 미리 결정된 주파수를 갖는 제3 클록 신호에 따라서 그리고 상기 제1 미리 결정된 동작 전압과 다른 제3 미리 결정된 동작 전압을 갖는 제3 공급 전압에 따라서 상기 제4 프로세서가 동작된다.
또 다른 실시예에서, 복수의 프로세서를 갖는 다중 프로세서 시스템 내의 처리 방법이 제공된다. 상기 방법은, 상기 복수의 프로세서 내의 제1 활성 프로세서만을 사용하여 상기 다중 프로세서 시스템 내에서 처리하는 단계, 상기 다중 프로세서 시스템 내의 처리를 위해서 활성화되어야 할 제2 프로세서를 결정하는 단계, 상기 결정에 응하여, 상기 제2 프로세서를 활성화하는 단계, 대칭형 다중 처리(symmetric multiprocessing, SMP) 모드 또는 비대칭형 다중 처리(asymmetric multiprocessing, ASMP) 모드에 따라서 상기 제1 활성 프로세서 및 상기 제2 활성 프로세서를 사용하여 상기 다중 프로세서 시스템 내에서 처리하는 단계를 포함한다. 상기 SMP 모드일 때, 상기 제1 활성 프로세서 및 상기 제2 활성 프로세서는 제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 전압을 갖는 제1 공급 전압에 따라서 각각 동작하고, 상기 ASMP 모드일 때, 상기 제1 활성 프로세서는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 동작하고, 상기 제2 프로세서는 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 그리고 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 동작한다. 상기 방법은 또한, 모드 선택 신호를 수신하는 단계, 및 상기 모드 선택 신호에 따라 상기 제1 활성 프로세서 및 상기 제2 활성 프로세서의 동작을 상기 SMP 모드로부터 상기 ASMP 모드로 또는 상기 ASMP 모드로부터 상기 SMP 모드로 스위칭하는 단계를 포함한다.
다른 실시예에서, 제1 프로세서, 그리고 제2 프로세서를 포함하는 복수의 프로세서를 갖는 다중-프로세서(multi-processor, MP) 처리 시스템이 제공된다. 컨트롤러는 상기 제2 프로세서와 연결되어, 활성화/비활성화 신호에 응하여 상기 제2 프로세서를 활성화 또는 비활성화하고, 상기 제2 프로세서의 활성화 하에서, 대칭형 다중 처리(symmetric multiprocessing, SMP) 모드 또는 비대칭형 다중 처리(asymmetric multiprocessing, ASMP) 모드에 따라서 상기 제1 프로세서 또는 상기 제2 프로세서를 사용하여 상기 다중-프로세서 시스템 내에서 처리를 제어한다. 상기 SMP 모드는, 상기 제1 프로세서 및 상기 제2 프로세서가 제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 전압을 갖는 제1 공급 전압에 따라서 각각 동작하는 것으로 정의되고, 상기 ASMP 모드는, 상기 제1 프로세서가 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 동작하고, 상기 제2 프로세서가 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 그리고 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 동작하는 것으로 정의된다. 상기 컨트롤러는 또한, 모드 선택 신호를 수신하고, 상기 모드 선택 신호에 따라 상기 제1 프로세서 및 상기 제2 프로세서의 동작을 상기 SMP 모드로부터 ASMP 모드로 또는 상기 ASMP 모드로부터 상기 SMP 모드로 스위치하도록 구성된다.
본 발명 및 그 이점을 보다 완전하게 이해하기 위해, 첨부된 도면과 관련하여 취해진 다음의 설명을 참조할 것이며, 동일한 도면 부호는 유사한 대상을 나타낸다.
도 1은 비대칭형 다중처리 시스템의 선행 기술의 예시를 도시한다;
도 2는 본 개시의 특정 실시예에 따른 예시적 다중처리 시스템을 도시하는 도면이다;
도 3a, 3b, 및 3c는 본 개시에 따른 도 2에 나타난 시스템을 사용하기 위한 예시적 유한 상태 기계(FSM) 및 프로세스를 도시한다;
도 4는 본 개시에 따른 글리치리스 클록의 일 실시를 도시하는 도면이다;
도 5는 본 개시에 따른 클록 도메인 크로싱(CDC) 및 바이패스 회로의 블록도이다;
도 6은 도 2에 나타난 예시적 다중처리 시스템의 다른 실시예이다;
도 6a는 본 개시에 따른 도 6에 나타난 시스템을 사용하기 위한 유한 상태 기계의 다른 실시예를 도시한다;
도 7은 본 개시에 따른 다중처리 시스템의 다른 실시예를 도시하는 도면이다;
도 8은 SMP/ASMP 모드 스위칭을 개시하고 제어하기 위한 아키텍처(방법, 프로세스, 시스템)의 도면이다;
도 9는 본 개시에 따른 예시적 동적 모드 스위칭 방법 또는 프로세스를 도시한다;
도 10은 본 개시에 따른 다른 모드 스위칭 방법 또는 프로세스를 도시한다;
도 11은 본 개시에 따른 예시적 정적 모드 스위칭 방법 및 프로세스를 도시한다;
도 12는 본 개시의 특정 실시예에 따른 제2 다중처리 시스템을 도시하는 도면이다;
도 13은 SMP/ASMP 모드 스위칭을 개시하고 제어하기 위한 아키텍처(방법, 프로세스, 시스템)의 도면이다;
도 14a 및 14b는 도 12에 나타난 처리 시스템의 두 가지 실시예를 도시하는 간략화된 블록도이다;
도 15는 SMP/ASMP 모드에서 4개의 프로세서/코어를 갖는 시스템 내의 다중처리 구성의 다른 예시를 도시한다;
도 16은 SMP/ASMP 모드 스위칭을 개시하고 제어하기 위한 다른 아키텍처(방법, 프로세스, 시스템)의 도면이다;
도 17은 MP 시스템을 위한 대안적 실시예 또는 아키텍처를 도시한다;
도 18은 추가적인 프로세서가 작업 로딩에 기반하여 활성화되어야 할 때(또는 복수의 활성 프로세서 중 하나가 비활성화되어야 할 때를 도시하는 그래프이다; 및
도 19는 SMP/ASMP 모드 선택/스위칭 프로세스와 통합된 프로세서 추가/제거를 위한 프로세스의 일반적인 흐름도이다.
도 1부터 도 11까지, 여기에서 논의된, 그리고 도시된 다양한 실시예와, 본 명세서의 본 개시의 아래에서 설명된 원리는 단지 설명을 위한 것이며 본 발명의 범위를 어떤 방식으로든 제한하는 것으로 해석되어서는 안 된다. 당해 기술분야에서 통상의 지식을 가진 자는 여기서 설명된 원리가 적절하게 배치된 장치(들) 또는 시스템(들)의 임의의 유형으로 구현될 수 있다는 것을 이해할 것이다.
한 그룹의 프로세서/코어가 완전 SMP 시스템에서 완전 ASMP 시스템으로 동작을 전환하면, 이 SMP/ASMP 동적 스위칭 기능과 관련된 비용 및 복잡성(하드웨어/소프트웨어)이 중요할 수 있다는 것이 발견되었다. 소형 장치(예를 들어, 슈퍼 컴퓨팅 장치 및 애플리케이션과 반대되는, 모바일 애플리케이션의 모바일 장치, 핸드 헬드(handheld) 장치, 스마트폰 등)에 대해, 대부분의 사용 애플리케이션에서, 다중 처리 작업/기능이 두 개 이하의 프로세서/코어를 사용하여 적절히 다뤄질 수 있다는 것이 조사 및 테스트를 통해서 결정되었다. 이러한 대부분의 애플리케이션에서, 두 개의 프로세서/코어는 더 높은 전력 소모를 발생시키는 불균형 부하로 실행된다.
따라서 저비용, 저전력 및 고성능 다중 처리 시스템을 ASMP 방식으로 운영하는 것이 바람직할 수 있지만, 프로세서/코어의 단일 프로세서/코어(또는 서브셋)만 구성하고 서로 다른 클록 주파수 및/또는 다른 동작 공급 전압 사이에서 동적 스위칭을 가능하게 될 때, 나머지 프로세서/코어는 동일한 클록 주파수 및 동일한 공급 전압으로 구성된다. 예를 들어, 다중 프로세서 시스템이 2개의 프로세서/코어를 포함하면, 제1 프로세서/코어는 제1 클록 주파수(동적으로 변경 가능하지 않음) 및 제1 공급 전압(동적으로 변경 가능하지 않음)에서 동작하고, 제2 프로세서/코어는 상기 제1 주파수 및 제1 공급 전압(제1 프로세서/코어와 동일) 또는 다른 주파수와 다른 공급 전압 사이에서 스위치 가능하다. 이는 프로세서/코어(또는 서브세트) 중 적어도 하나가 이러한 동적 스위칭 능력을 갖는 3개 이상의 프로세서/코어를 갖는 시스템에도 적용될 수 있다.
또한 그룹 내의 모든 다른 프로세서/코어와 동일한 클록 주파수 및 공급 전압에서 동작하도록(따라서 총괄적으로 SMP 모드에서 동작) 또는 다른 프로세서/코어와 다른 클록 주파수 및 공급 전압에서 동작하도록(따라서 ASMP 모드에서 총괄적으로 동작) 프로세서/코어 그룹에서 적어도 하나의 프로세서/코어를 제어 및 선택하는 방법을 갖는 것이 바람직할 수 있다. 이러한 시스템 및 방법은 구현 비용 및 전력 소모를 감소시키고 효율성을 증가시킨다.
일반적으로, 본 출원의 도 1 내지 도 11과 관련하여 도시된 실시예는, 대칭 형 다중 처리(SMP)와 비대칭형 다중 처리(ASMP)의 두 가지 모드의 동작 사이에서 스위칭 가능한 다중 프로세서/코어를 갖는 처리 시스템을 설명한다. 시스템은 두 모드 사이에서 제어 및 스위칭을 가능하게 하는 하드웨어 장치를 포함한다. 하드웨어 내에서 운영 체제(OS) 또는 다른 소프트웨어/하드웨어로부터 SMP 및 ASMP 사이에서 스위칭 하기 위한 스위칭 명령을 수신하면, 다중 프로세서 및 메모리에 대한 클록 및 전압을 제어하기 위한 일련의 동작이 수행된다. 스위칭 명령의 생성은 로딩, 캐시 실패율, 전력 소비 이유 등과 같은 원하는 하나 이상의 인자에 기초할 수 있다. 장치는 한 모드에서 다른 모드로의 천이 동안 시스템이 고장 나지 않고, 프로세서/메모리에 대한 클록이 글리치 없이 스위치 되는 것을 보장한다. 상기 장치/방법은 소프트웨어/OS 개입을 최소화하고 더 빠른 모드 스위치 속도를 갖는다.
본 명세서에서 사용되는 용어 SMP는 일반적으로 동일한 클록(주파수) 및 동일한 전압 서플라이에서 동작하는 다중 프로세서/CPU/코어 및 공유 메모리 시스템(동일한 클록 및 전압 공급으로 동작하는 L2 캐시 메모리를 사용)을 사용하는 프로세싱을 지칭한다. ASMP라는 용어는 일반적으로 서로 다른 클록(주파수) 및/또는 전압 서플라이로 동작하는 2개 이상의 프로세서가 있는 다중 프로세서/CPU/코어를 사용하는 프로세싱을 의미한다. ASMP에서 일반적으로 프로세서는 각각 다른 L2 캐시 메모리를 사용한다. 그러나 ASMP에는 동일한 L2 캐시 메모리(이기종 ASMP라고 함) 공유를 포함할 수도 있다. 또 다른 측면에서, ASMP라는 용어는 각 프로세서/CPU/코어가 제1 클록 주파수 및 제1 공급 전압 또는 제2 클록 주파수 및 제 2 공급 전압 중 적어도 하나를 사용하여 동작하도록 구성된 다중 프로세서/CPU/코어를 사용하는 다중 처리를 지칭한다. 2개 이상의 클록/전압 조합이 고려될 수도 있다. 이 측면에서 모든 프로세서/CPU/코어(2개 이상)는 SMP 모드(모두 동일한 클록 주파수 및 전압 사용) 또는 ASMP 모드(모두 서로 다른 클록 주파수 및 전압 사용)로 동작하도록 구성될 수 있다.
알 수 있는 바와 같이, 본 발명은 또한 도 12 내지 도 19에 도시된 SMP/ASMP 시스템의 다양한 다른 실시 예를 제공하며, 이는 프로세서/코어의 서브세트(적어도 하나, 모두 보다는 적게)로만 입력되는 클록 주파수 및 공급 전압이 서로 다른 클록 주파수 및/또는 서로 다른 전압 공급 레벨을 수신하도록 동적으로 스위칭 가능하거나 프로그래밍 가능하다는 것을 제외하고, 도 1 내지 도 11과 관련하여 기술 된 것과 유사하다.
본 출원은 SMP 및 ASMP 동작 모드(예를 들어, 스위칭 명령의 생성) 사이의 모드 스위칭(동적/정적 또는 수동/지능형)을 위한 다양한 방법을 더 설명한다. 하나의 방법에서, SMP 모드는 가벼운 부하 조건 또는 L1 캐시 실패율이 높은 경우에 선택된다. ASMP는 무겁고 불균형한 부하 조건에서 선택된다. 또한 실시간으로 빠른 모드 선택을 용이하게 하는 학습 모드가 도입되었다. 전반적인 이점은, 로드 균형이 맞지 않을 때 적은 전력 소모, 적은 캐시 미스를 통한 성능이 향상, 그리고 모드를 수동 또는 지능적인 스위치 모드를 포함한다.
이제 도 2를 참조하면, 본 개시에 따른 처리 시스템(200)을 도시한 상세한 도면이 도시되어 있다. 처리 시스템(200)은, 도시된 대로, 대응하는 L2 캐시 메모리 부(220)(220a, 220b, 220c, 220d) 및 바이패스 회로(230)(230a, 230b, 230c, 230d)를 갖는 크로스-도메인 클록(cross-domain clock, CDC)과 함께 복수의 프로세서(210)(210a, 210b, 210c, 210d)를 갖는 다중-프로세서 코어 및 캐시 서브시스템(205)를 포함한다. 4개의 프로세서(210)(그리고 대응하는 메모리와 회로)가 도시되어 있지만, 프로세서의 개수는 더 적거나 많을 수 있고, 하지만 적어도 두 개를 포함할 수 있다. 알 수 있는 바와 같이, 각 프로세서(210)는 하나 이상의 중앙 처리 유닛(central processing units, CPUs) 또는 코어를 포함할 수 있다.
처리 시스템(200)은 각 프로세서, 캐시, 그리고 CDC에 전력을 공급하는 데 사용하기 위한 복수의 공급 전압 신호를 생성하기 위한 전력 관리 제어(power management control, PMIC) 회로(240)를 더 포함한다. 유사하게, 클록 생성 회로(clock generation circuit)(250)는 각 프로세서, 캐시, 그리고 CDC의 클록 동작에 사용하기 위한 다양한 미리 결정된 클록 주파수를 갖는 복수의 클록 신호를 생성한다.
일 실시예에서, PMIC 회로(240)를 제외하고, 처리 시스템(200)은 단일 집적 반도체 기판/다이(die)(또는 다중-기판 IC 패키지 내에 배치된 복수의 반도체 기판 내에) 상에 배치되거나 또는 위치된다. 다른 실시예에서, PMIC 회로(240)는 또한 단일 집적 반도체 기판/다이 상에 포함될 수 있다.
도시된 것처럼, 처리 시스템(200)은 컨트롤러(260)(모드 컨트롤러라고도 함) 및 클록 스위칭 회로(또는 모듈)(270)를 더 포함한다. 이해될 수 있는 대로, 컨트롤러(260)는 클록 생성 회로(250), PMIC 회로(240), "바이패스 회로를 갖는 CDC(230)" 그리고 클록 스위칭 회로(270)의 동작 및 기능을 제어하기 위한 다양한 제어 신호를 출력한다.
클록 생성 회로 (250)는, 모든 프로세서(210)의 동작 속도를 총괄적으로 제어하기 위한 하나의 SMP 프로세서 클록 신호(CLK), 모든 캐시 부(220)의 동작 속도를 총괄적으로 제어하기 위한 하나의 SMP 메모리 클록 신호(CLKch), 4개의 프로세서(210a, 210b, 210c, 210d) 각각의 동작 속도의 독립적인 제어를 가능하게 하는 4개의 ASMP 프로세서 클록 신호(CLK0, CLK1, CLK2, CLK3), 및 캐시 메모리 부(220a, 220b, 220c, 220d) 각각의 동작 속도의 독립적인 제어를 가능하게 하는 4개의 ASMP 메모리 클록 신호(CLKch0, CLKch1, CLKch2, CLKch3)를 포함하는, 복수의 클록 신호를 생성하기 위한 필수적 회로 및 구성요소를 포함한다. 이들 클록 중 임의의 클록은 회로(250)에 의해 글리치 없이 인에이블(enabled) 되거나 디스에이블(disabled) 된다. 클록 생성 회로(250)는 또한 컨트롤러(260)에 의한 사용을 위한 컨트롤러 클록 신호(CLK_FSM)를 생성한다.
PMIC 회로(240)는 서브시스템(205)의 각 부에 의한 사용을 위한 복수의 동작 공급 전압 또는 신호를 생성하기 위한 필수적 회로 및 구성요소를 포함한다. 도시된 바와 같이, PMIC 회로(240)는 처리 유닛의 각 그룹에 전력을 공급하는 4개의 동작 공급 전압(V0, V1, V2, V3)을 생성하여 출력한다. 즉, 동작 공급 전압(V0)은 프로세서(210a), 캐시 메모리 부(220a) 및 바이패스 회로를 갖는 CDC(230a)에 전력을 공급하고, 전압 서플라이(voltage supply)(V1)는 프로세서 (210b), 캐시 메모리 부 (220b) 및 바이패스 회로를 갖는 CDC(230b)에 전압을 공급한다. 당업자에게 이해되는 바와 같이, 프로세서/메모리가 더 높은 클록 속도로 동작 할 때, 더 높은 공급 전압으로 프로세서/메모리를 동작시키는 것이 바람직하고 필요할 수도 있다. 게다가, 코어가 사용되지 않을 때, 코어는 전력 붕괴(power collapsed) 또는 클록-디스에이블 될 수 있다.
클록 생성 회로(250)는 또한 생성된 클록 신호 각각에 대한 프로그래밍 가능성을 가능하게 하는 기능 및 회로를 포함 할 수 있음이 이해될 수 있다. 일 실시예에서, 각 클록 신호는 많은 가능한 주파수 중 하나로 프로그래밍 될 수 있다(예를 들어, CLK는 300MHz 내지 3GHz와 같은 범위에서 프로그래밍 될 수 있음). 다른 실시예에서, 특정 클록 신호 만이 프로그래밍 될 수 있고, 다른 실시예에서는 각 클록 신호의 주파수가 미리 결정되고 고정된다. 또 다른 실시예에서, 주파수는 서로에 대해 고정될 수 있지만, 그룹으로 프로그래밍 될 수 있다.
유사하게, PMIC 회로(240)는 또한 생성된 동작 전압 서플라이(V0, V1, V2, V3)각각에 프로그래밍 가능성을 제공하는 기능 및 회로를 포함 할 수 있다. 일 실시예에서, 각 공급은 많은 가능한 전압 레벨 중 하나로 프로그래밍 될 수 있다(예를 들어, 전압은 0.5 볼트와 3.3 볼트와 같은 범위 사이로 프로그래밍 될 수 있다). 다른 실시예에서, 특정 전압 전원 만이 프로그래밍 될 수 있지만, 다른 실시예에서는 각 전원의 전압 레벨이 미리 결정되고 고정된다. 또 다른 실시 예에서, 전압 레벨은 서로에 대해 고정될 수 있지만, 그룹으로 프로그래밍 될 수 있다. 도시되지는 않았지만, 다른 실시예에서, 도시된 4개에 추가하여 기본 동작 전압 서플라이가 생성될 수 있다. 이 경우, 기본 전압 서플라이 및 다른 4개가 다중화 회로에 대한 입력으로서 사용될 수 있다(클록 스위칭 회로(270)에 도시된 다중화기(272)와 유사함).
다른 실시예(미도시)에서, 각 프로세서/L2 캐시 메모리 쌍 중 하나 이상은 서로 다른 전원 전압 신호, 즉 "스플릿 레일(split-rail)" 시스템을 가질 수 있다. 이러한 시스템에서, L2 캐시 메모리 및 그에 연결된 프로세서는 서로 다른 전압 서플라이 레일을 갖는다. 알 수 있는 바와 같이, 하나 이상의(또는 모든) 쌍은 스플릿 레일 전압 서플라이를 가질 수 있다. 그러므로, 본 실시예에서, 생성된 동작 전압 서플라이 V0, V1, V2, V3 은 스플릿 될 수 있고 개별 서플라이 V0(프로세서) 및 V0(캐시) 등을 포함할 수 있다. 이들은 독립적으로 또는 하나 이상의 그룹으로 프로그래밍 될 수 있다. 본 실시예에서, 상기 시스템(200)은 CDC 회로(230)로부터 분리되거나 CDC 회로(230) 내에 포함된 전압-도메인 크로싱 회로(voltage-domain crossing circuit)(미도시)를 더 포함할 수 있다.
모드 또는 스위치 컨트롤러(260)는 유한 상태 기계(finite state machine, FSM)(262), 하나 이상의 타이머(264), 및 하나 이상의 저장 레지스터(266)(구성(configurations) 또는 상태 레지스터(status registers)와 같은)를 포함한다. 컨트롤러(260)는 스위치 명령(switch command)(SELECT_ASMP_MODE)의 표명(assertion)에 응답하는 일련의 동작(sequence of actions) 또는 프로세스를 제어하고 수행하는 기능을 한다. 그러므로, 도시된 실시예에서, 스위치 명령이 표명/비표명(unasserted)될 때, 모드의 동작이 ASMP 모드와 SMP 모드 사이에서 스위칭 된다. 다양한 방법 및 메커니즘이 스위치 명령의 생성을 위해 사용될 수 있고, 몇 가지 예는 도 8 내지도 11과 관련하여 아래에서 설명된다.
인에이블 신호(ENABLE_ASMP_CLKS, ENABLE_SMP_CLK)를 사용하여, 컨트롤러(260)는 SMP/ASMP 스위칭에 앞서, 클록을 인에이블하도록 클록 생성 모듈(250)을 제어한다. 컨트롤러(260)는 또한 스위칭에 앞서(그리고 스위칭 이후) 동작 공급 전압(V0, V1, V2, V3)을 프로그래밍 또는 변경하도록 PMIC 회로(240) 모듈을 제어한다. 일 실시예에서, 컨트롤러(260)는 PMIC 회로(240)가 프로세서의 외부에 있는 경우(예를 들면, 오프 칩), SPMI/SBI/MIPI와 같은 통신 버스 또는 인터페이스를 통해 PMIC 회로(240)와 통신할 수 있다. PMIC 회로가 외부에 있지 않으면, 다른 통신 경로가 활용될 수 있다.
스위치 명령(SELECT_ASMP_MODE)은 다양한 이벤트에 응답하여 그리고 처리 시스템(200) 내부 또는 외부의 다양한 요소에 의해 생성될 수 있음이 이해될 수 있다. 도시된 실시예에서, 스위치 명령은 다중-프로세서 코어 및 캐시 서브 시스템(205)에 저장되지만, 다른 소스에 의해 생성될 수도 있다.
SMP 클록에서 ASMP 클록으로(또는 그 반대로)의 실제 스위치가 발생하면, 컨트롤러(260)는 클록 스위칭 회로(270) 내의 다중화기(272)를 사용하여 ASMP 클록 신호를 프로세서에 선택적으로 다중화하는 ASMP 선택 신호(SELECT_ASMP_CLK)를 생성한다. 이해되는 바와 같이, ASMP 모드의 프로세서/CPU 코어(210)에 대한 클록은 CLK0, CLK1, CLK2, CLK3으로 표시되는 반면, SMP 모드의 프로세서/CPU 코어(210)에 대한 클록은 CLK로 표시된다. 따라서 SELECT_ASMP_CLK 신호는 글리치없이 사용할 클록을 선택한다. 일 실시예에서, SELECT_ASMP_CLK이 표명될 때(로직 하이(logic high) 또는 "1"), 클록 신호 CLK0, CLK1, CLK2, CLK3은 프로세서/코어(210a, 210b, 210c 및 210d)에 각각 선택되고 입력된다. SELECT_ASMP_CLK가 비표명될 때(로직 로우(logic low) 또는 "0"), 클록 CLK가 모든 프로세서/코어(210a, 210b, 210c 및 210d)에 선택되고 입력된다. 스위칭 동안의 다양한 이벤트 및 동작의 타이밍은 하나 이상의 타이머(264)의 사용으로 FSM(262)에 따름에 의해 제어된다. 아래에서 보다 상세히 설명될 바와 같이, 클록 워밍업(warm-up) 기간 및 전압 상승/하강 기간이 활용된다. 이들 값은 미리 프로그래밍되거나(pre-programmed) 미리 설정(pre-set)될 수 있고 소프트웨어 또는 다른 방법에 의해 컨트롤러의 C/S 레지스터 또는 다른 메모리 위치(미도시)에 저장 될 수 있다.
알 수 있는 바와 같이, 참조 번호를 통해 구체적으로 식별되지는 않았지만, 예를 들어 레벨 시프터(level shifter)와 같은 다양한 다른 논리 회로가 포함될 수 있다. 레벨 시프터는 일반적으로 신호가 전력 도메인을 통과할 때 활용된다.
이제 도 3a, 3b 및 3c를 참조하면, FSM(262)에 의해 수행되거나 구현되는 프로세스 또는 방법(300)이 도시된다. FSM(262)의 이러한 프로세스/기능은 서로 다른 구성, 방법 또는 구조(또는 이들의 조합) 또는 방법을 사용하여 구현될 수 있다. 예를 들어, 유한 상태 기계(예를 들어, 하드웨어 구현)로서 도시된 실시예에서 구현되었지만, 컨트롤러(206) 기능은 대안적으로 소프트웨어, 펌웨어 등을 갖는 마이크로컨트롤러(microcontroller), 및 이들의 임의의 조합을 사용하여, 또는 당업자에게 알려진 임의의 다른 방식으로 구현 될 수 있다. FSM(262)은 더 빠른 속도로 유리하게 동작하고 소프트웨어/OS 개입을 최소화한다. 예외(예를 들어, 타임 아웃 등)의 이벤트에서, 그것은 시스템 프로세서에 대한 인터럽트(interrupt)를 생성할 것이다.
도 3a, 도 3b, 및 도 3c에 도시된 바와 같이, FSM(262)의 상태도에 의해 나타낸 프로세스(300)는 다양한 상태(state) 및 천이(transition)를 포함한다. 상태 310에서, 처리 시스템(200)은 SMP 모드에서 동작한다. 스위칭 명령(SELECT_ASMP_MODE)이 수신되면, ASMP 클록이 인에이블되고 활성화되며(ASMP 클록 인에이블 신호 사용) 및 "워밍업"인 상태 320(ASMP_CLK_WU)이 진입된다. 미리 결정된 워밍업 기간(타이머)의 완료 이후에, 모든 동작 전압 서플라이 V, V0, V1, V2, V3가 미리 결정된 최대 전압 레벨(MAX)로 증가(필요한 경우)되는 상태 330(V_SMP_ASMP_RAMP_UP)이 진입된다. 미리 결정된 최대 전압 레벨(MAX)은 ASMP 모드의 처리 시스템(200)의 동작 동안 V1, V2, V3, V4가 가질 최고 전압 레벨과 동일하다(또는 더 크다). 예를 들어 4개의 프로세서가 현재 1.5 볼트(SMP 모드)로 동작하고, ASMP 모드에서 4개의 프로세서는 각각 1.2, 1.9, 1.7 및 1.7 볼트로 동작하면, 모든 작동 공급 전압 V1, V2, V3 및 V4는 1.9 볼트(또는 그 이상)로 증가한다.
이들 4개의 동작 전압 공급 전압이 미리 결정된 최대 전압(MAX)에 도달한 이후, 상태 340(SMP_ASMP_CLK_SWITCH)이 진입된다. 상태 340에서, 클록 스위칭 신호가 표명되고 프로세서(210) 및 메모리(220)의 클록(모두 CLK SMP의 주파수와 동일함)이 SMP 클록 신호에서 ASMP 클록 신호로 스위칭된다. 도시된 바와 같이, 다중화기(272)는 SMP 클록 신호(CLK) 대신 ASMP 클록 신호(CLK1, CLK2, CLK3, CLK4) 각각을 출력하도록 스위칭된다. 동시에, 바이패스 회로를 갖는 CDC(230)는 바이패스 모드로 설정되어 ASMP 클록 신호가 바이패스 회로를 갖는 CDC(230)의 클록 도메인 회로를 바이패스 할 수 있게 한다. 또한, 이 때, 클록 생성 회로(250)에 의해 생성된 SMP 클록 신호는 비활성화 될 수 있다.
이러한 이벤트가 완료된 후, 동작 공급 전압(V1, V2, V3, V4)에 대한 하강(ramp down) 절차를 트리거하는 상태 350(V_SMP_ASMP_RAMP_DN)이 진입된다. 모든 프로세서(210)(및 메모리 (220))는 최대 동작 공급 전압(상기 예에서는 1.9 볼트)으로 동작하고, ASMP 모드에서 V1, V2, V3 및 V4에 대한 요구되는 동작 공급 전압이 서로 다르기 때문에, V1, V3 및 V4의 전압 레벨은 ASMP 모드에서 요구되는 전압 레벨로 감소된다.
동작 공급 전압이 하강(예를 들어, ASMP 모드에서 각각의 프로세서에 대해 요구되는 전압 레벨로 설정)된 후, 상태 360으로 진입된다. 이 상태에서, 처리 시스템(200)은 이제 클록 및 전압 신호 조합(CLK0/V0, CLK1/V1, CLK2/V2, CLK3/V3)에 따라서 각각 동작하는 각각의 프로세서/메모리 조합, 예를 들어 210a/220a, 210b/220b, 210c/220c 및 210d/220d와 함께 ASMP 모드에서 동작한다.
서로 다른 실시 예에서, FSM(262)에 의해 수행되는 하나 이상의 단계는 생략되거나 우회될 수 있음이 이해될 수 있다. 예를 들어, 모든 전압이 동일하면, V_SMP_ASMP_RAMP_UP 및 V_SMP_ASMP_RAMP_DN 상태는 필요 없으며 생략될 수 있다. 본 예시에서, 이는 모든 모드-스위칭 대기 시간(mode-switching latency)을 감소시킨다. 몇몇 다른 실시 예에서, 클록 전압은 클록이 스위칭 되기 전에 상승(ramp-up) 되어야한다.
전술한 바와 같이, 클록 전압 및 주파수 값은 여기서 설명된 방법을 사용하여 소프트웨어/OS에 의해 미리 결정될 수 있고, 스위칭을 개시하기 전에 컨트롤러의 C/S 레지스터(또는 다른 메모리 위치)에 미리 저장되거나 프로그래밍 될 수 있다. 다른 실시 예에서, 시스템은 실시간 동작 특성들 또는 파라미터에 기초하여 동작 동안 클록 전압 및/또는 주파수 값(몇 개의 가능한 값 중 하나로부터)을 결정할 수 있다. 이러한 값(또는 이 값의 식별자)은 C/S 레지스터(또는 다른 메모리 위치)에 저장 될 수 있다.
유사한 과정이 ASMP 모드에서 SMP 모드로 스위칭 할 때도 수행된다. 상태 360에서, 처리 시스템(200)은 ASMP 모드로 동작한다. 스위칭 명령(SELECT_ASMP_MODE-unasserted)이 수신되면, SMP 클록(CLK)이 인에이블 되고 활성화되며(SMP 클록 인에이블 신호를 사용하여) "워밍업"인 상태 370(SMP_CLK_WU)이 진입된다. 미리 결정된 워밍업 기간(타이머)의 완료 이후, 모든 동작 전압 서플라이(V0, V1, V2, V3)가 미리 설정된 최대 전압 레벨(MAX)로 증가(필요한 경우)되는 상태 380(V_ASMP_SMP_RAMP_UP)이 진입된다. 미리 결정된 최대 전압 레벨은, V1, V2, V3, V4가 ASMP 모드에서 현재 공급하고 있는 최고 전압 레벨(또는 상기 레벨이 모든 레벨 V1, V2, V3, 및 V4 보다 높은, 원하는 SMP 전압 레벨(V_SMP))과 같거나 더 크다. 예를 들어 4개의 프로세서가 현재 1.2, 1.9, 1.7 및 1.7 볼트(ASMP 모드)로 동작하고 SMP 모드에서 4개의 프로세서가 각각 1.5 볼트(V_SMP)로 동작하면, 모든 동작 공급 전압(V1, V2, V3 및 V4)은 1.9 볼트(또는 그 이상)로 증가한다.
이들 4개의 동작 전압 공급 전압이 미리 결정된 최대 전압(MAX)에 도달한 이후, 상태 30(ASMP_SMP_CLK_SWITCH)이 진입된다. 이 상태 390에서, 클록 스위칭 신호가 표명되고, 프로세서(210) 및 메모리(220)의 클록(모두 SMP 클록 신호(CLK)의 주파수와 잠재적으로 다름)은 ASMP 클록 신호(CLK0, CLK1, CLK2, CLK3)로부터 SMP 클록 신호(CLK)로 스위칭 된다. 도시된 바와 같이, 다중화기(272)는 ASMP 클록 신호 대신에 SMP 클록 신호(CLK)를 출력하도록 스위칭된다. 동시에, 바이패스 회로를 갖는 CDC(230)는 바이패스 회로를 갖는 CDC(230) 내의 클록 도메인 회로를 통해 SMP 클록 신호가 진행할 수 있게 하는 클록 도메인 회로의 사용을 동작하도록 설정된다(그리고 바이패스 모드를 디스에이블 시킨다). 또한, 이때, 클록 발생 회로(250)에 의해 생성된 ASMP 클록 신호는 비활성화 될 수 있다.
이들 이벤트가 완료된 후, 동작 공급 전압(V1, V2, V3, V4)에 대한 하강 절차를 트리거하는 상태 395(V_ASMP_SMP_RAMP_DN)가 진입된다. 모든 프로세서(210)(및 메모리(220))는 최대 동작 공급 전압(상기 예시에서 1.9 볼트)으로 동작하고 및 요구되는 동작 공급 전압은 현재의 전압 레벨(이 예시에서 1.9 볼트)보다 낮은 SMP 모드에서 V_SMP(상기 예시에서 1.5 볼트)이기 때문에, 모든 동작 공급 전압(V1, V2, V3 및 V4)은 요구되는 SMP 모드(1.5 볼트)에서 V_SMP 레벨로 감소된다.
동작 공급 전압이 하강(예를 들어, SMP 모드의 각 프로세서에 대해 요구되는 SMP 전압 레벨로 설정)된 후, 상태 310이 진입된다. 이 상태에서, 처리 시스템(200)은 이제 단일 클록 및 전압 신호 조합(CLK/V_SMP)에 따라 동작하는 각각의 프로세서/메모리 조합, 예를 들어 210a/220a, 210b/220b, 210c/220c 및 210d/220d와 함께 SMP 모드에서 동작한다.
서로 다른 실시 예에서, FSM (262)에 의해 수행되는 하나 이상의 단계는 생략되거나 우회될 수 있음이 이해될 수 있다. 예를 들어, 모든 전압이 동일하면. V_ASMP_SMP_RAMP_UP 및 V_ASMP_SAMP_RAMP_DN 상태가 필요 없으며 생략될 수 있다. 이 예시에서. 이는 모드-스위칭 대기 시간을 감소시킨다. 몇몇 다른 실시예에서, 클록 전압은 클록이 스위칭 되기 전에 상승되어야 한다.
이제 도 4를 참조하면, 클록 다중화기(272)(도 2에 도시됨)의 일 회로 구현 예가 도시되어 있다. 이 실시예에서, 클록 다중화기(272)는 스위칭 동안 글리치가 없음을 의미하는 "글리치리스(glitchless)"이다. 다른 적절한 회로 구현이 클록 다중화기(272)에 활용될 수 있고, 당업자는 글리치없는 멀티플렉서 스위칭을 수행하는 다른 회로가 사용될 수 있음을 쉽게 이해할 것이다.
도 5를 참조하면, 바이패스 회로를 갖는 CDC(230)(도 2에 도시 됨) 일 실시 예가 도시되어 있다. 종래 기술의 ASMP 시스템(도 1 참조)에서, CDC 회로(130) 각각은 각각의 프로세서(210)와 L2 캐시 부(220) 사이에 배치된 2개의 비동기식(asynchronous) 클록 도메인 교차(clock domain crossing, CDC) 회로(131a, 131b)를 포함하는 것으로 이해될 것이다. 알 수 있는 바와 같이, 비동기식 CDC 회로(131)는 당해 기술 분야에 공지되어 있고, 따라서 당업자는 그러한 기능을 구현하는 방법을 이해할 것이다. 이들 CDC 회로 및/또는 이들의 기능은 당업계에서 클록 스위칭 회로 또는 프로세서와 L2 캐시 사이의 비동기식 FIFO 브리지로서 알려져 있다.
바이패스 회로를 갖는 CDC(230)는 도 5에 도시된 바와 같이. 비동기 CDC 회로(131a)에 연결된 제1 다중화기(272a), 제1 역다중화기(273a), 및 제1 바이패스 라인(231a)을 더 포함한다. 제2 다중화기(272b), 제2 역다중화기, 및 제2 바이패스라인(231b)은 도 5에 도시된 바와 같이, 비동기 CDC 회로(131b)에 연결된다. CDC 회로(230)에서 모드 간 스위칭 할 때(예를 들어 CDC 비동기 모드와 동기 바이패스 모드 사이에서), CDC 회로(230)는 잠재적인 글리치로 인한 고장을 방지하기 위해 "글리치리스" 스위칭을 수행한다.
당업자는, SMP 모드(Select_ASMP_CLK 신호가 표명되지 않음)에서, 프로세서(예를 들어, 210a)로부터의 데이터는 L2 캐시(예를 들어, 220a)로 가는 중에 비동기 CDC 회로(131a)를 바이패스하고, L2 캐시(예를 들어, 220a)로부터의 데이터는 프로세서(예를 들어, 210a)로 가는 중에 비동기 CDC 회로(131b)를 바이패스함을 이해할 수 있다. 반대로, ASMP 모드(Select_ASMP_CLK 신호가 표명되고 Cache_CLK 및 CPU_CLK 신호가 다를 수 있음)에서, 프로세서(210a)로부터의 데이터는 L2 캐시(220a)로 가는 중에 비동기 CDC 회로(131a)에 의해 처리될 것이고, L2 캐시(220a)로부터의 데이터는 프로세서 (210a)로 가는 중에 비동기 CDC 회로(131b)에 의해 처리될 것이다. 비동기 CDC 회로(131a, 131b)는 미리 정의된 시퀀스에 따라 하나의 클록 도메인에서 다른 클록 도메인으로의 데이터 전송을 보증하는 기능을 한다. 예를 들어, 먼저 수신된 데이터는 먼저 출력된다. 한 클록 도메인에서 클록과 동기되는 인커밍 데이터는 다른 클록 도메인의 클록과 다시 동기화될 것이다. 비동기 FIFO는 일반적으로 인터페이스에서 약간의 대기 시간을 갖는 데이터 버퍼를 제공한다.
동기 모드일 때, Cache_CLK은 일반적으로 CPU_CLK로부터 유도될 것이다(예를 들어, 1로 나누거나 또는 3으로 나눔). 즉, 이들은 동일할 수 있고, CPU_CLK는 보통 Cache_CLK의 정수배이다(예를 들어, CPU_CLK = 3 * Cache_CLK). 두 클록은 본질적으로 동기식이다. 일반적으로 데이터는 훨씬 적은 대기 시간으로 동기식으로 인터페이스를 통과한다.
다중화기(272a, 272b)는 도 4에 도시된 글리치리스 클록 다중화기(272)와 동일할 수 있다. 역다중화기(273a, 273b)는 본질적으로 또는 회로 차원에서 다중화기와 유사할 수 있지만, 역다중화 기능을 수행할 수 있다. 바람직한 일 실시예에서, 이들 또한 글리치리스이다(글리치리스 스위칭을 수행함).
이제 도 6을 참조하면, 본 발명에 따른 처리 시스템(200a)의 다른 실시 예를 도시한 상세한 도면이 도시되어 있다. 처리 시스템(200a)은 도 2에 도시된 처리 시스템(200)과 동일하지만, (1) CLK_0 신호는 ASMP 모드의 CLK_0 신호 및 SMP 모드의 CLK (SMP) 신호로서 기능하고, 2) CLK_ch0 신호는 ASMP 모드에서는 CLKch_0 신호로, SMP 모드에서는 CLKch(SMP) 신호로 기능한다. 이것은 프로세서/L2 캐시 쌍(210a, 220a)에 연결된 2개의 제1 다중화기(272)에 대한 필요성을 제거한다. 또한, 수정된 클록 생성 모듈(250a)은 이들 클록 신호 차이를 구현하기 위해 제공되고, 수정된 FSM(262a)도 포함된다.
알 수 있는 바와 같이, 도 6에 도시된 처리 시스템(200a)은 FSM(262a)에 의해 수행되거나 구현되는 프로세스 또는 방법(300a)을 더 포함한다. 알 수 있는 바와 같이, FSM(262a)의 프로세스/기능은 상태 기계에서 상태 360이 제거된 것을 제외하고는 FSM(262)의 프로세스/기능과 동일하다. 도 6a는 FSM(262a)을 도시하고, 3a에 도시된 FSM(262)과 비교할 때, 모든 나머지 상태들 및 천이들이 본질적으로 동일하다는 것은 쉽게 이해된다. 알 수 있는 바와 같이, FSM(262a)의 프로세스 또는 방법 흐름은 설명된 변경을 제외하고는 도 3b 및 도 3c에 도시된 FSM(262) 프로세스 또는 방법 흐름과 유사하다.
이러한 유사한 과정 또는 흐름도는 간결함을 위해 여기서 생략되었다.
이제 7을 참조하면, 본 개시에 따른 또 다른 프로세싱 시스템(200b)의 보다 구체적인 실시예를 도시한 상세한 다이어그램이 도시되어 있다. 처리 시스템(200b)은 다중-프로세서 코어 및 캐시 서브시스템(205b)이 특정 아키텍처를 포함한다는 것을 제외하고는 도 2에 도시된 처리 시스템(200)과 유사하다. 도 7은, 특정 아키텍처 - 8개의 프로세서 코어(710)(a 내지 h) 및 L2 캐시(720)(a 내지 b)의 2개의 클러스터(810)를 갖는 ARM의 빅-리틀 멀티 프로세서 서브시스템 - 에 통합 된 본 개시의 교시의 예시적 응용을 도시한다. L2 캐시의 2개의 클러스터에 기초하여, 상기 시스템(200b)은 단지 2개의 스테이지의 프로세서/L2 캐시 쌍만을 요구한다. 또한, 230, 240, 250, 260 및 270을 포함하는 여기에 도시된 다양한 구성 요소는 도 2에 도시된 구성 요소와 동일할 수 있으며, 이들은 프로세서 및 캐시 서브시스템(205b)의 특정 아키텍쳐를 고려할 때 약간의 수정을 요구할 수 있다. 이러한 변형은 당업자에게 용이하게 이해될 것이다. 또한, 도 6에 도시된 것과 같은, 다른 실시 예들에서 설명된 개념들 또한 도 7의 시스템에서 구현될 수 있다.
SMP와 ASMP 사이의 스위칭을 구현하기 위한 예시적인 컴포넌트, 하드웨어 및 방법(도 1 내지 도 8과 관련한)에 더하여, 본 개시는 모드 스위칭을 개시하고 제어하기 위한 예시적인 방법 및 과정을 추가로 설명한다.
트래픽 유형, 프로세서 대기 시간, 로드 불균형 정보 및/또는 전력 소모에 기반할 수 있는, SMP 및 ASMP 사이의 동적 모드 스위칭이 소개된다. 알 수 있는 바와 같이, 다른 요인 및 유형의 정보가 분석될 수 있고 모드를 변경(또는 유지)하기 위한 결정의 기초를 형성할 수 있다. 예를 들어 SMP 모드가 부하가 가벼운 경우 또는 부하가 크고 모든 CPU 코어가 사용될 때 및/또는 L1 캐시 실패율이 높을 때에 선택될 수 있는 반면, ASMP 모드는 과도한 부하 및/또는 불평형 부하에 대해 선택 될 수 있다.
처리 유형(예를 들어, 계산 집약적, 시간 임계 등) 또는 특정 애플리케이션 또는 애플리케이션 프로그램(예를 들어, 어떤 모드를 활용할지 선택하는 애플리케이션 프로그램)에 기초한 것과 같이, 정적(즉, 수동) 모드 스위칭 또한 구현 될 수 있다.
또한 여기 설명된 것은, 실시간으로 지능형 모드 선택을 용이하게 하는데 이용될 수 있는 학습 메커니즘 또는 프로세스이다. 예를 들어, 학습 시스템은 SMP 또는 ASMP 모드 중 어느 것이 특정 트래픽 또는 처리 시나리오에 대해 더 낮은 전력을 소모하는지 여부를 결정할 수 있다.
이제 도 8을 참조하면, SMP/ASMP 모드 스위칭을 개시하고 제어하기 위한 아키텍처(예를 들어, 방법, 프로세스, 시스템)(800)가 개념적으로 도시되어 있다. 모드 선택은 다른 정보 또는 요소뿐만 아니라 요구되는 처리 또는 애플리케이션의 유형에 기초할 수 있다. 도시된 바와 같이, 처리 또는 애플리케이션(802)은 브라우저 애플리케이션(802a), 또는 스트리밍 애플리케이션(802b), 또는 게임 애플리케이션(802c), 또는 네비게이션(802d)일 수 있다. 다른 인자/정보(804) 또한 고려될 수 있다.
예시로서, 스트리밍 애플리케이션(802b)이 다중-처리를 요구한다고 가정하면, 모드 선택 장치(810)는 그 애플리케이션과 관련된 프로세싱 태스크가 SMP 또는 ASMP 모드 중 어느 것에서 수행되어야 하는지 여부를 결정한다. 시스템 소프트웨어/OS는 이러한 결정을 내리고 결심을 한다. 시스템은 단일 프로세서를 할당하여 컨트롤러에 명령을 발행하기 위해 단일 프로세서를 할당할 수 있지만, 일반적으로 결정은 시스템-레벨/OS-레벨에서 구현된다. 이 결정은 정적 정보, 또는 동적 정보, 또는 이들의 조합에 기초할 수 있다. 일 예시에서, 모든 비디오 인코딩 애플리케이션은 SMP 모드를 사용할 것이 미리 결정될 수 있다. 또 다른 예시에서, CPU의 현재 로딩이 너무 커서 모든 CPU 코어가 활용되지 않는 한, 모든 비디오 스트리밍 어플리케이션은 ASMP 모드를 사용한다. 하나의 모드에서 다른 모드로 전환할지 여부를 결정하기 위해 다른 변형이 프로그래밍되고 활용될 수 있다.
일 실시예에서, 단일 처리 작업이 요구될 때 룩업 테이블(look-up table)이 조사(consult)될 수 있다. 다른 실시 예에서, 전력의 비교는 다중 처리 작업이 있을 때 어떤 모드를 선택하는데 사용되는 인자일 수 있다. 예를 들어 사용자가 동시에 음악을 듣고 전자 메일을 작업하는 경우, ASMP가 선택될 수 있다.
어떤 모드가 선택되어야 하는지를 결정한 후, 상기 장치(810)는 SELECT_ASMP_MODE 제어 신호(도 2 참조)에 대해 적절한 신호(예를 들어, 하이/로우)를 발행한다. 알 수 있는 바와 같이, 동작의 현재 모드는 이미 선택된 모드 일 수 있다 (이러한 경우 SELECT_ASMP_MODE 신호는 천이하지 않을 것이다).
SELECT_ASMP_MODE 신호에 따라, 상기 시스템(200)은 ASMP 모드(820) 또는 SMP 모드(830)에서 동작할 것이다. ASM 모드에서 코어1(구성요소 210a, 220a, 230a), 코어2(요소 210b, 220b, 230b), 코어3(요소 210c, 220c, 230c), 및 코어4(요소 210d, 220d, 230d) 각각은 독립적인 클록 신호/주파수 및 공급 전압으로 동작한다. SMP 모드일 때, 코어1 내지 코어4는 동일한 클록 신호/주파수 및 공급 전압으로 동작한다. SMP 및 ASMP 모드(및 모드 스위칭)에 대한 자세한 내용은 위에서 자세히 설명되었다.
이제 도 9를 참조하면, 본 개시에 따른 예시적인 모드 스위칭 방법 또는 프로세스(900)가 도시되어 있다. 상기 시스템(200)의 동작 중에, L1 캐시(프로세서 코어에 특정) 실패율은 계속해서 모니터링 된다(단계 902). 실패율은 미리 결정된 임계치와 비교된다(단계 904). 이러한 실패율이 높으면(임계치를 초과하면), 상기 프로세스는 시스템(200)의 현재 처리 모드가 ASMP인지 여부 및 다른 CPU의 로드가 무겁거나/가벼운지 여부를 결정(임계치를 사용하여)한다(단계 906). 만약 '예'라면, 시스템(200)은 ASMP 모드로부터 SMP 모드로 스위칭한다(단계 908). 만약 '아니오'라면, 시스템(200)은 ASMP 모드로 계속된다.
L1 캐시 실패율이 높지 않으면, 프로세스는 시스템(200)의 현재 처리 모드가 SMP인지 여부 및 프로세싱 부하가 무겁고 불균형한지 여부를 결정한다(단계 910). 만약 '예'라면, 시스템 (200)은 SMP 모드에서 ASMP 모드로 스위칭한다(단계 912). 만약 '아니오'라면, 시스템(200)은 SMP 모드에서 계속된다.
도 9에 도시된 프로세스(900)는 또한 선택적 지능형 학습 프로세스를 포함한다. 시스템(200)이 ASMP 모드로부터 SMP 모드(단계 908)로 또는 SMP모드로부터 ASMP 모드(단계 912)로 스위치 할 때, 스위치 결정과 관련된 시나리오 정보가 학습 시스템 데이터베이스에 기록된다(단계 920). 시나리오 정보는 모드 전환을 결정하기 위해 시스템에 의해 이용되는 정보의 일부 또는 전부일 수 있다. 도시된 예에서, 시나리오 정보는 L1 캐시 실패율 및 부하 정보(가벼움/무거움, 균형/불균형)를 포함 할 수 있다.
도 10을 참조하면, 이전의 경험으로부터의 이력 데이터(historical data) 및 지식(intelligence)에 기초한 대안적인 모드 스위칭 방법 또는 프로세스(100)의 예시가 도시되어있다. 동작 동안, 시스템(200)은 동적 시스템 정보(예를 들어, 현재 시나리오 정보)를 주기적으로 획득하고 학습 시스템 데이터베이스를 검색한다(단계 1002). 현재 시나리오 정보는 학습 시스템 데이터베이스에 저장된 시나리오 정보와 비교되어 일치가 있는지를 결정한다(단계 1004). 만약 '예'라면, 시스템(200)은 매치 시나리오 정보와 관련된 정보에 따라 ASMP 모드와 SMP 모드 사이를 스위치 한다(단계 1006). 알 수 있는 바와 같이, 이는 모드 스위치를 초래할 수 있지만, 또한 현재 모드 동작의 유지를 초래할 수도 있다. 만약 '아니오'라면, 시스템은 동적 SMP/ASMP 선택 및 학습 시스템 트레이닝(도 9에서 설명된 프로세스/방법과 같은)을 수행한다.
도 11은 본 개시에 따른 예시적인 정적 모드 스위칭 방법 또는 프로세스(1100)를 도시한다. 일반적으로, 이 프로세스는 시스템(200)이 정적 또는 "수동"정보 또는 요소(1102)에 기초하여 SMP 또는 ASMP 모드 중 어느 것에서 동작해야 하는지를 결정한다. 예를 들어, 어떤 모드가 다수의 예를 들어, 사용자 프로파일 (1102a), 또는 애플리케이션 관리 (1102b), 또는 절전 모드 (1102c) 및 기타 정보, 또는 요구 사항(1102n)과 같은, 다수의 정보 또는 요소에 기반하여 "정적으로" 할당되는지에 관해 결정할 수 있다.
시스템(200)은 적용 가능한 정보 또는 입력에 기초하여 그것이 SMP 모드 또는 ASMP 모드 중 어느 것에서 동작해야 하는지를 결정한다(1104). 예를 들어, 주어진 사용자 프로파일이 특정 모드와 연관된다면 - 즉 주어진 사용자와 연관된 처리가 항상 특정 모드에서 수행되어야 한다는 것을 의미 -, 시스템(200)은 필요하다면 처리를 위해 특정 모드로 스위치 할 것이다. 다른 예에서, 특정 애플리케이션이 항상 하나의 모드에서 수행되어야 한다면, 시스템(200)은 특정 모드에서 그 애플리케이션에 대한 처리를 수행할 것이고 필요할 경우 스위치 할 것이다. 또 다른 예에서, 시스템(200)이 절전 모드에 놓이면, 그 모드는 시스템(200)이 ASMP 또는 SMP 모드 - 전력을 절약할 모드로 프로그래밍 된 모드) - 로 동작할 것을 요구할 수 있다.
도시된 바와 같이, 시스템(200)은 처리 태스크가 SMP 모드(또는 ASMP 모드)에서 수행되어야 하는지를 결정한다. SMP 모드가 사용되어야 하고 시스템이 현재 SMP 모드에 있지 않다면, 시스템은 ASMP 모드에서 SMP 모드로 스위칭 한다(단계 1106). 유사하게, ASMP 모드가 사용되어야 하고(SMP 모드가 아닌) 시스템이 현재 SMP 모드에 있다면, 시스템은 SMP 모드에서 ASMP 모드로 스위칭 한다(단계 1108).
알 수 있는 바와 같이, 일 실시예에서, 여기에서 설명된 시스템, 프로세스, 방법 및 장치는 모바일 장치/소형 컴퓨팅 장치 또는 기지국 등에 통합되는 것을 포함하는, 이동 환경에서 활용될 수 있다. 이러한 장치는, 예를 들어 무선 신호를 송신 및/또는 수신하도록 구성될 수 있다. 상기 장치들은 임의의 적합한 최종 사용자 장치일 수 있으며, 사용자 장비(user equipment)/장치(UE), 무선 송수신 유닛(wireless transmit/receive unit, WTRU), 이동국, 고정 또는 이동 가입자 유닛, 호출기(pager), 셀룰러 전화(celluar telephone), 개인 디지털 단말(personal digital assistant, PDA), 스마트폰, 랩톱, 컴퓨터, 터치 패드, 무선 센서, 웨어러블 전자 장치 또는 소비자 전자 장치와 같은(또는 이렇게 불리는) 장치를 포함할 수 있다.
상기 장치는 장치의 다양한 처리 동작을 구현하는 적어도 하나의 처리 시스템(200)(본 명세서에서 설명됨)을 포함할 것이다. 이것은, 예를 들어 신호 코딩, 데이터 처리, 비디오/오디오 처리, 전력 제어, 입출력 처리, 또는 장치에 대해 고려되는 임의의 다른 기능을 포함할 수 있다.
또한, 처리 시스템(200)은 여기에 설명된 방법 및 교시를 지원하며, 추가적인 컴포넌트 및 프로세서(예를 들어, 마이크로컨트롤러, 디지털 신호 프로세서, 현장 프로그램 가능 게이트 어레이(field programmable gate array) 또는 주문형 집적 회로(application specific integrated circuit, AP))를 포함 할 수 있다.
처리 시스템(200)을 포함하는 장치는 또한, 적어도 하나의 안테나에 의한 송신을 위해 데이터 또는 다른 콘텐츠를 변조하도록 구성된 적어도 하나의 송수신기를 포함할 수 있다. 송수신기는 또한 적어도 하나의 안테나에 의해 수신된 데이터 또는 다른 콘텐츠를 복조하도록 구성된다. 각각의 송수신기는 무선 송신을 위한 신호 및/또는 무선으로 수신된 신호를 처리하기 위한 임의의 적절한 구조를 포함한다. 각각의 안테나는 무선 신호를 송신 및/또는 수신하기 위한 임의의 적절한 구조를 포함한다. 하나 또는 복수의 송수신기가 이 장치에 사용될 수 있으며, 하나 또는 다수의 안테나가 사용될 수 있다.
이들 장치는 또한 사용자와의 상호 작용을 용이하게 하기 위해 하나 이상의 입출력 장치를 포함할 수 있다. 각각의 입력/출력 장치는 스피커, 마이크로폰, 키패드, 키보드, 디스플레이 또는 터치 스크린과 같은, 정보를 사용자에게 제공하거나 사용자로부터 정보를 수신하기 위한 임의의 적절한 구조를 포함한다.
게다가, 이들 장치는 상술한 메모리를 이용할 수도 있고, 또는 장치에 의해 사용, 생성 또는 수집된 명령 및 데이터를 저장하기 위해서 다른 메모리를 포함할 수 있다. 예를 들어, 메모리는 처리 시스템(200)에 의해 실행되는 소프트웨어 또는 펌웨어 지시를 저장할 수 있다. 다른 메모리는 임의의 적합한 휘발성 및/또는 비 휘발성 저장 및 검색 장치를 포함할 수 있다. 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 하드 디스크, 광 디스크, 가입자 식별 모듈(SIM) 카드, 메모리 스틱, 보안 디지털(SD) 메모리 카드 등과 같은 임의의 적절한 유형의 메모리가 사용될 수 있다.
모바일/소형 컴퓨팅 장치에 관한 추가적인 세부 사항은 당업자에게 알려져 있다. 이와 같이, 그래서 세부 사항은 명확성을 위해 여기서 생략된다.
본 명세서에서 논의된, 도 12 내지도 19, 및 여기에 예시된 다양한 실시예와, 본 명세서의 본 개시 내용에 기재된 원리는 단지 설명을 위한 것이며 본 발명의 범위를 제한하는 것으로 해석되어서는 안 된다. 당업자는 여기에 설명된 원리가 임의의 유형의 적절히 배열된 장치(들) 또는 시스템(들)에서 구현될 수 있다는 것을 이해할 것이다.
일반적으로, 본 출원의 도 12 내지 19와 관련하여 도시된 실시예는, 두 가지 모드(SMP 및 ASMP)의 동작 사이에서 스위칭 가능한 다중 프로세서/코어를 갖는 프로세싱 시스템을 설명한다. 시스템은 두 모드 사이에서 제어 및 스위칭을 가능하게 하는 하드웨어 장치를 포함한다. 하드웨어 내에서, 운영 체제(operating system)(OS) 또는 다른 소프트웨어/하드웨어로부터의, SMP와 ASMP 사이를 스위칭하기 위한 스위칭 명령을 수신하면, 여러 프로세서와 메모리에 대한 클록 및 전압을 제어하기 위한 연속된 또는 일련의 동작이 수행된다. 스위칭 명령의 생성은 로딩, 캐시 실패율, 전력 소모 이유 등과 같은 요구되는, 하나 이상의 인자에 기초할 수 있다. 장치는 한 모드에서 다른 모드로의 스위칭 동안 시스템이 고장나지 않고 프로세서/메모리에 대한 클록이 글리치 없이 스위치 되도록 보장한다. 상기 장치/방법은 소프트웨어/OS 개입을 최소화하고 더 빠른 모드 스위치 속도를 갖는다.
도 12 내지도 19에 기술 된 실시예는 도 1 내지 도 11에서 설명된 실시예와 유사하지만, ASMP 모드는 일반적으로 그룹 내의 다른 코어와 동일한 클록 주파수 및 동일한 공급 전압을 사용하여 동작할 수 있는 적어도 하나의 코어(또는 그 이상, 그러나 모든 코어보다는 더 적은 코어)가 동적으로 스위칭 되거나 또는 다른 클록 주파수 및 공급 전압을 사용하도록 구성되는 코어 그룹(복수)을 사용하는 다중-처리를 말한다. 이러한 방식으로 코어 그룹은 SMP 모드 또는 ASMP 모드에서 동작하지만, 그룹 내의 적어도 하나(전부는 아님)는 서로 다른 클록 주파수 및 공급 전압을 갖는다.
알 수 있는 바와 같이, 여기서 사용되는 "코어"라는 용어는 단일 프로세서, CPU, 또는 처리 코어(processing core)를 지칭할 수 있다. 상기 정의는 또한, 다중 프로세서, CPU, 또는 처리 코어를 갖는 "코어"를 설명하거나 참조하기 위해 확장 될 수 있다. 따라서, 여기서 "코어"라는 용어의 사용은 단일 처리 요소에 한정되지 않고 동일한 처리 요소 그룹을 포함 할 수 있다. 게다가, "코어", "프로세서", 및 "CPU"라는 용어는 여기에서 서로 바꾸어 사용될 수 있다.
SMP 모드와 ASMP 모드 사이의 동적 스위칭에 추가하여, 기술된 이러한 다양한 실시예는 하나 이상의 코어가 코어 그룹 내에서 온/오프 스위치 되는 다른 방법 및 시스템에서 사용될 수 있다.
이제 도 12를 참조하면, 본 개시에 따른 처리 시스템(1200)을 도시하는 상세한 도면이 보여진다.
일반적으로, 처리 시스템(1200)은 2개의 모드: SMP 및 ASMP의 동작 사이에서 스위칭 가능한 프로세서 그룹(복수)을 포함한다. SMP 모드에서, 모든 프로세서는 동일한 클록 주파수 및 공급 전압을 사용하여 동작하지만, ASMP 모드 (후술하는 상이한 실시예들에서)에서, 적어도 하나의 제1 프로세서는 (1) 나머지 프로세서들과 다른 클록 주파수 및 공급 전압, 또는 (2) 다른 프로세서와 동일한 클록 주파수 및 공급 전압을 사용하여 동작하도록 구성된다.
시스템은 두 개의 서로 다른 클록 주파수와 공급 전압 사이에서 제1 프로세서의 제어 및 스위칭을 가능하게하는 하드웨어 장치를 포함한다. 하드웨어 내에서 운영 체제(OS) 또는 다른 소프트웨어/하드웨어로부터 SMP와 ASMP 사이를 스위칭 하기 위한 스위치 명령을 수신하면, 연속된 또는 일련의 동작이 제1 번째 프로세서와 메모리의 클록 및 전압을 제어하기 위해 수행된다. 스위칭 명령의 생성은 로딩, 캐시 실패율(cache miss rate), 전력 소모 이유 등과 같이, 요구된 하나 이상의 인자에 기초할 수 있다. 장치는 제1 프로세서가 하나의 모드에서 다른 모드로 천이 중에 실패하지 않고, 프로세서/메모리에 대한 클록이 글리치없이 스위치되는 것을 보장한다. 상기 장치/방법은 소프트웨어/OS 개입을 최소화하고 더 빠른 모드 스위치 속도를 갖는다.
처리 시스템(1200)은, 도시된 대로, 상응하는 L2 캐시 메모리 부(1220a 및 1220b), 크로스 도메인 클록(cross-domain clock, CDC) 회로(1230a), 및 바이패스 회로를 갖는 CDC(1230b)와 함께 1210a(CPU A), 1210c(CPU C), 1210d(CPU D) 및 1210b(CPU B)를 포함하는 복수의 프로세서(1210)를 갖는 다중 프로세서 코어 및 캐시 서브 시스템(1205)을 포함한다. 4개의 프로세서(1210)(및 대응하는 메모리 및 회로)가 도시되어 있지만, 프로세서의 수는 더 적거나 많을 수 있고, 하지만 적어도 2개는 포함 할 수 있다. 알 수 있는 바와 같이, 각 프로세서(1210)는 하나 이상의 프로세서를 포함 할 수 있다.
처리 시스템(1200)은 프로세서, 캐시, 및 CDC에 전력을 공급하는데 사용하기 위한 적어도 2개의 공급 전압 신호(예를 들어, V0, V1)를 생성하기 위한 전력 관리 제어(PMIC) 회로(1240)를 더 포함한다. 유사하게, 클록 생성 회로(1250)는 프로세서, 캐시, 및 CDC의 클로킹(clocking) 동작에 사용하기 위한 다양한 미리 결정된 클록 주파수를 갖는 다수의 클록 신호를 생성한다.
일 실시예에서, PMIC 회로(1240)를 제외하고, 처리 시스템(1200)은 단일 집적 반도체 기판/다이(또는 다중-기판 IC 패키지 내에 배치된 복수의 반도체 기판 내) 상에 배치되거나 위치된다. 다른 실시 예에서, PMIC 회로(1240)는 또한 단일 집적 반도체 기판/다이 상에 포함될 수 있다.
도시된 바와 같이, 처리 시스템(1200)은 또한 컨트롤러(1260)(모드 컨트롤러라고도 함) 및 클록 스위칭 회로(또는 모듈)(1270)를 포함한다. 알 수 있는 바와 같이, 컨트롤러(1260)는 클록 생성 회로(1250), PMIC 회로(1240), "바이패스 회로를 갖는 CDC"(1230b) 및 클록 스위칭 회로(1270)의 기능 및 동작을 제어하기 위한 다양한 제어 신호를 출력한다.
클록 생성 회로(1250)는 모든 프로세서(210)의 동작 속도를 총괄적으로 제어하기 위한 하나의 SMP 프로세서 클록 신호(CLK), 캐시 부(1220a)의 동작 속도를 제어하기 위한 하나의 SMP 메모리 클록 신호(CLKch), 프로세서(1210b)의 동작 속도의 독립적인 제어를 가능하게 하는 적어도 하나의 ASMP 프로세서 클록 신호(CLK0), 및 캐시 메모리 부(1220b)의 동작 속도의 독립적인 제어를 가능하게 하는 적어도 하나의 ASMP 메모리 클록 신호(CLKch0)를 포함하는, 복수의 클록 신호를 생성하기 위한 필수적 회로 및 구성 요소를 포함한다. 이들 클록 중 임의의 것이 상기 회로(1250)에 의해 글리치없이 인에이블 또는 디스에이블된다. 클록 생성 회로(1250)는 또한 컨트롤러(1260)에 의한 사용을 위한 컨트롤러 클록 신호(CLK_FSM)를 생성한다.
PMIC 회로(1240)는 서브 시스템(1205)의 각 부에 의해 사용되기 위한, 다수의 동작 공급 전압 또는 신호를 생성하기 위한 필수적 회로 및 소자를 포함한다. 도시된 바와 같이, PMIC 회로(1240)는 프로세서에 전력을 공급하는, 적어도 2개의 동작 공급 전압(V0, V1)을 생성하여 출력한다. 보여진 대로, 동작 전원 전압 V0는 프로세서 1210a, 1210c, 1210d 및 이들 프로세서에 연결된 캐시 메모리 부(1220a)에 전력을 공급한다. 동작 공급 전압 V1은 프로세서 1210b와, 그에 연결된 캐시 메모리 부(1220b), 및 바이패스 회로를 갖는 CDC(1230b) 등에 전력을 공급한다. 당업자에게 이해되는 바와 같이, 프로세서/메모리가 더 높은 클록 속도로 동작할 때, 프로세서/메모리를 더 높은 공급 전압으로 작동시키는 것이 바람직하고 필요할 수도 있다. 또한, 코어가 사용되지 않을 때, 그것의 전력이 전력 붕괴 또는 클록-디스에이블 될 수 있다. 예를 들어, 프로세서(1210b)에 대한 동작 공급 전압 V1은 디스에이블 될 수 있고 및/또는 프로세서(1210b)에 대한 클록 입력이 디스에이블 될 수 있다(예를 들어, 입력 클록 없음).
클록 생성 회로(1250)는 또한 생성된 클록 신호 각각에 대한 프로그래밍을 가능하게 하는 기능 및 회로를 포함 할 수 있다는 것이 이해될 것이다. 일 실시예에서, 클록 신호들 각각은 많은 가능한 주파수들 중 하나로 프로그래밍 될 수 있다(예를 들어, CLK는 300MHz 내지 3GHz와 같은 범위에서 프로그래밍 될 수 있다). 다른 실시예에서, 특정 클록 신호 만이 프로그래밍 될 수 있고, 다른 실시예에서는 각 클록 신호의 주파수가 미리 결정되고 고정된다. 또 다른 실시 예에서, 주파수는 서로에 대해 고정될 수 있지만, 그룹으로 프로그래밍 될 수 있다.
유사하게, PMIC 회로(1240)는 또한 생성된 동작 전압 서플라이 V0, V1 각각에 프로그래밍 가능성을 제공하는 기능 및 회로를 포함할 수 있다. 일 실시예에서, 각 서플라이는 많은 가능한 전압 레벨들 중 하나로 프로그래밍 될 수 있다(예를 들어, 전압은 0.5 볼트와 3.3 볼트와 같은 범위 사이에서 프로그래밍 될 수 있다). 다른 실시예에서, 특정 전압 전원 만이 프로그래밍 될 수 있지만, 다른 실시예에서는 각 전원의 전압 레벨이 미리 결정되고 고정된다. 또 다른 실시예에서, 전압 레벨은 서로에 대해 고정될 수 있지만, 그룹으로 프로그래밍 될 수 있다. 도시되지는 않았지만, 다른 실시예에서, 도시된 두 가지에 추가로, 기본 동작 전압 서플라이가 생성될 수 있다. 이 경우, 기본 전압 서플라이 및 다른 하나는 다중화 회로에 대한 입력으로서 사용될 수 있다(클록 스위칭 회로(1270)에 도시된 다중화기(1272)와 유사함).
모드 또는 스위치 컨트롤러(1260)는 유한 상태 기계(finite state machine, FSM)(1262), 하나 이상의 타이머 (1264), 및 하나 이상의 저장 레지스터(1266)(구성 또는 상태 레지스터와 같은)를 포함한다. 상기 컨트롤러(1260)는 스위치 명령(SELECT_ASMP_MODE)의 표명에 응답하여 일련의 동작 또는 프로세스를 제어 및 수행하는 기능을 한다. 따라서, 도시된 실시 예에서, 스위치 명령이 표명/비표명 될 때, ASMP 모드와 SMP 모드 사이에서 모드의 동작이 스위칭된다. 다양한 방법들 및 메커니즘들이 스위치 명령의 생성을 위해 사용될 수 있고, 몇몇 예는 도 13 및 도 16을 참조하여 후술된다.
인에이블 신호(ENABLE_ASMP_CLKS, ENABLE_SMP_CLK)를 사용하여, 컨트롤러(1260)는 SMP/ASMP 스위칭 이전에 클록을 인에이블하도록 클록 생성 모듈(1250)을 제어한다. 컨트롤러(1260)는 또한 스위칭 전(및 스위칭 후) 동작 공급 전압(V0, V1)을 프로그래밍 또는 변경하기 위해 PMIC 회로(1240) 모듈을 제어한다. 일 실시예에서, 컨트롤러(1260)는 PMIC 회로(1240)가 프로세서 외부(예를 들면, 오프 칩)에 있는 경우, SPMI/SBI/MIPI와 같은 통신 버스 또는 인터페이스를 통해 PMIC 회로(1240)와 통신할 수 있다. PMIC 회로가 외부에 있지 않으면, 다른 통신 경로가 이용될 수 있다.
스위치 명령(SELECT_ASMP_MODE)은 다양한 이벤트에 응답하여 그리고 처리 시스템(1200) 내부 또는 외부의 다양한 요소들에 의해 생성될 수 있다. 보여진 실시예에서, 스위치 명령은 다중-프로세서 코어 및 캐시 서브시스템(1205)으로부터 생성되지만, 다른 실시예에서 그것은 다른 소스에 의해 생성될 수 있다.
프로세서(1210b)에 대해 SMP 클록으로부터 ASMP 클록으로(및 그 반대)의 실제 스위치가 발생할 때, 컨트롤러(1260)는 클록 스위칭 회로(1270) 내의 다중화기(1272)를 사용하여 ASMP 클록 신호(CLL0)를 프로세서(1210b)에 선택적으로 다중화하는 ASMP 선택 신호(SELECT_ASMP_CLK)를 생성한다. 이해된 것과 같이, ASMP 모드의 프로세서/CPU 코어(1210b)에 대한 클록은 CLK0으로 표시되고, SMP 모드에서 나머지 프로세서/CPU 코어(1210a, 1220c, 1210d)에 대한 클록은 CLK로 표시된다. 따라서, SELECT_ASMP_CLK 신호는 프로세서(1210b)에 의해 이용될 클록(CLK0 또는 CLK)을 글리치 없이 선택한다. 일 실시예에서, SELECT_ASMP_CLK가 표명될 때(로직 하이 또는 "1"), 클록 신호 CLK0가 선택되어 프로세서/코어(1210b)에 입력된다. SELECT_ASMP_CLK가 표명되지 않을 때(로직 로우 또는 "0"), 클록 CLK가 선택되어 프로세서/코어(1210b)에 입력된다. 스위칭 동안의 다양한 이벤트 및 동작의 타이밍은 하나 이상의 타이머(1264)를 사용하여 FSM(1262)에 따라 제어된다. 보다 상세히 후술하는 바와 같이, 클록 워밍업 기간 및 전압 상승/하강 기간이 이용될 수 있다. 이 값은 미리-프로그래밍되거나 미리 설정되어 소프트웨어 또는 다른 방법에 의해서 컨트롤러 내의 C/S 레지스터 또는 다른 메모리 위치(미도시)에 저장 될 수 있다.
처리 시스템(1200)에 도시된 대부분의 구성요소는 도 2의 처리 시스템 (200)(예를 들어, 210b와 동일하거나 유사한 1210b 등)에 도시된 대응 구성 요소와 동일하거나 유사할 것이다. 알 수 있는 바와 같이, 참조 번호로 구체적으로 식별되지는 않았지만, 예를 들어 레벨 시프터와 같은 다양한 다른 논리 회로가 포함될 수 있다. 레벨 시프터는 일반적으로 신호가 전력 도메인을 통과할 때 사용된다.
CDC 회로(1230b)에 관하여, SMP 모드(Select_ASMP_CLK 신호가 표명되지 않음)에서, 프로세서(1210b)로부터의 데이터는 L2 캐시(1220b)로 가는 중 비동기 CDC 회로(131a)를 바이패스 하고, L2 캐시(1220b)로부터의 데이터는 프로세서(1210b)로가는 중 비동기 CDC 회로(131b)를 바이패스 한다는 것이 이해될 수 있다(도 5 및 CDC 회로에 대한 설명 참조). 대조적으로, ASMP 모드(Select_ASMP_CLK 신호가 표명되고 Cache_CLK 및 CPU_CLK 신호가 다를 수 있음)일 때, 프로세서(1210b)로부터의 데이터는 L2 캐시 (1220b)로 가는 중 비동기 CDC 회로(131a)에 의해 처리될 것이고, L2 캐시(1220b)로부터의 데이터는 프로세서(1210b)로 가는 중에 비동기 CDC 회로(131b)에 의해 처리될 것이다. 비동기 CDC 회로(131a, 131b)는 미리 정의된 시퀀스에 따라 하나의 클록 도메인에서 다른 클록 도메인으로의 데이터 전송을 보증하는 기능을 한다. 예를 들어, 먼저 수신된 데이터가 먼저 출력된다. 한 클록 도메인에서 클록과 동기된 인커밍 데이터는 다른 클록 도메인의 클록과 다시 동기화된다. 비동기 FIFO는 일반적으로 인터페이스에서 약간의 대기 시간을 갖는 데이터 버퍼를 제공한다.
이제 도 13을 참조하면, 시스템(1200) 내에서 SMP/ASMP 모드 스위칭을 개시하고 제어하기 위한 아키텍처(예를 들어, 방법, 프로세스, 시스템)(1300)가 개념적으로 도시되어 있다. 모드 선택은 다른 정보 또는 인자뿐만 아니라 요구되는 프로세싱 또는 애플리케이션의 유형에 기반할 수 있다. 보여진 대로, 처리 또는 애플리케이션(1302)은 브라우저 애플리케이션(1302a), 또는 스트리밍 애플리케이션(1302b), 또는 게임 애플리케이션(1302c), 또는 내비게이션(1302d) 일 수 있다. 다른 인자/정보(1304)도 또한 고려될 수 있다.
예시로서, 스트리밍 애플리케이션(1302b)이 멀티 프로세싱을 요구하는 것으로 가정하면, 모드 선택 디바이스(1310)는 그 애플리케이션과 관련된 처리 작업이 SMP 또는 ASMP 모드에서 수행되어야 하는지 여부를 결정한다. 시스템 소프트웨어/OS는이 결정을 수행하고 결정을 내린다. 시스템은 명령을 발행하기 위해 단일 프로세서를 컨트롤러에 할당할 수 있지만, 일반적으로 결정은 시스템 수준/OS 수준에서 구현된다. 이 결정은 정적 정보, 동적 정보, 또는 이들의 조합에 기초할 수 있다. 일 예시에서, 모든 비디오 인코딩 애플리케이션들이 SMP 모드를 사용할 것이 미리 결정될 수 있다. 또 다른 예시에서, 시스템의 현재 로딩이 너무 무겁고 모든 프로세서/CPU/코어가 활용되지 않는 한, 모든 비디오 스트리밍 어플리케이션은 ASMP 모드를 사용할 수 있다. 하나의 모드에서 다른 모드로 전환할지 여부를 결정하기 위해 다른 변형도 프로그래밍되고 활용될 수 있다.
일 실시예에서, 단일 처리 작업이 요구될 때 룩업 테이블이 조사될 수 있다. 다른 실시예에서, 전력의 비교는 다중 처리 작업이 있을 때 어떤 모드를 선택하는 데 사용되는 인자일 수 있다. 예를 들어 사용자가 전자 메일을 작업하고 동시에 음악을 듣는 경우, ASMP가 선택될 수 있다.
어떤 모드가 선택되어야 하는지를 결정한 후에, 상기 장치(1310)는 SELECT_ASMP_MODE 제어 신호(도 12 참조)에 대해 적절한 신호(예를 들어, 하이/로우)를 발행한다. 알 수 있는 바와 같이, 동작의 현재 모드는 이미 선택된 모드일 수 있다(그리고 이러한 경우 SELECT_ASMP_MODE 신호는 천이하지 않을 것이다).
SELECT_ASMP_MODE 신호에 따라, 시스템(1300)은 ASMP 모드(1320) 또는 SMP 모드(1330)로 동작 할 것이다. SMP 모드(1330)일 때, 코어 A(구성 요소 1210a, 1220a, 1230a), 코어 C(구성 요소 1210c, 1220a, 1230a), 코어 D(구성 요소 1210d, 1220a, 1230a), 및 코어 B(구성 요소 1210b, 1220b, 1230b)는 동일한 클록 신호/주파수 및 공급 전압(CLK / VDD)으로 동작한다. ASMP 모드(1320)일 때, 코어 B는 코어 A, C, 및 D와 다른 클록 신호/주파수 및 공급 전압(CLK2/VDD2)에 따라 동작하는 반면, 코어 A, C, 및 D는 동일한 클록 신호/주파수 및 공급 전압(CLK1/VDD1)으로 동작한다. SMP/ASMP 모드(및 모드 스위칭)의 세부 사항은 여기에 설명되어 있다.
도 13의 아키텍처(방법 또는 프로세스)(1300)의 설명 및 구성 요소는 도 8의 아키텍처(방법 또는 프로세스)(1300)에 나타난 대응하는 구성 요소와 동일하거나 유사하지만, 클록 및 전압 구성이 다르다는 것이 이해될 수 있다.
이제 도 14a 및 도 14b를 참조하면, 도 12에 나타난 처리 시스템(1200)의 대안적이고 간략화된 블록도가 도시되어 있다.
도 14A에서, 코어 A, C 및 D(1210a, 1210c, 1210d)는 하나의 동작 전압 서플라이(1405)(VDD) 및 단일 클록 신호(1410)(clk)에 연결되는 반면, 코어 B(1210b)는 동작 전압 서플라이(1415)(VDDb) 및 클록 신호(1420)(clkb)에 연결된다. 이 구성에서, VDDb 서플라이(1410)는 별도의 입/출력 단자에 의해 공급되는 별도의 전압 레일에 의해 제공될 수 있다.
도 14b에서, 코어 A, C 및 D(1210a, 1210c, 1210d)는 단일 동작 전압 서플라이(1405)(VDD) 및 단일 클록 신호(1410)(clk)에 유사하게 연결된다. 코어 B는 동작 전압 서플라이(1415)(VDDb) 및 클록 신호(1420)(clkb)에 유사하게 연결된다. 그러나, 코어 B는 전압 서플라이(1405)으로부터 유도된 동작 전압 서플라이(1430)(VDDb)에 연결된다. 전압 조정기(1440)는 VDD를 수신하여 전압 서플라이 VDDb를 생성하고, VDDb 또는 VDD 중 어느 하나를 코어 B에 출력한다(선택된 모드에 따라서). 전압 조정기 (1440)는 온-칩(on-chip) 일 수 있으며, 로우 드롭 아웃(low dropout, LDO) 전압 조정기 또는 스위치-모드 전원 공급기(switch-mode power supply, SMPS)와 같은 바이패스 모드 또는 기능(미도시)을 포함한다. 따라서, VDDb(1312)는 VDD로부터 유도된다. 바이패스 모드에서는 VDDb = VDD이다. 게다가, 전압 조정기(1440)를 디스에이블시켜서 코어 B를 셧다운(shut down)시킴으로써 VDDb가 전력 붕괴될 수 있다. 알 수 있는 바와 같이, 전압 조정기에 대한 바이패스 기능은 다중화기를 사용하여 구현될 수 있고, 상태 머신 또는 다른 소프트웨어 프로세스에 의해 제어될 수 있다.
알 수 있는 바와 같이, 일 실시예에서, 2개의 전압 서플라이(VDD, VDDb) 및 2개의 클록 신호(clk, clkb)는 도 12에 나타난 2개의 동작 전압 서플라이(V0, V1) 및 2개의 클록 신호(CLK, CLK0)이다.
SMP 및 ASMP 모드 사이의 스위칭을 구현하기 위한 도 12 내지도 14의 시스템(들)과 관련하여 상술된 예시적인 컴포넌트, 하드웨어, 및 방법에 더하여, SMP와 ASMP 사이의 모드 스위칭을 개시하고 제어하기 위한 도 8 내지도 11과 관련하여 상술된 예시적인 방법 및 프로세스도 이러한 시스템에도 적용될 수 있다. 당업자는 필요할 경우, 도 12-14에 설명된 시스템(및 이하에 기술된 시스템)에 적합하게 및/또는 적용 가능하게 할 수 있는, 예시적인 방법 및 프로세스를 용이하게 수정할 수 있을 것이다.
4개의 프로세서/코어(A, B, C, D)를 갖는 시스템의 다중 처리의 다양한 예시가 도 15에 이하에 설명된다. 이들은 단지 예시를 위한 것이며 4개보다 많거나 적은 프로세서/코어(다른 개수의 프로세서/코어) 및/또는 하나 이상의 프로세서/코어가 유휴 상태(전력 다운(powered down), 슬립 모드(slip mode) 등)인 시스템을 포함하는, 다른 구현 예, 방법, 및 기준이 활용될 수 있다. 예를 들어, 처리 요구 사항이 낮으면 하나 이상의 선택된 프로세서/코어를 종료할 수 있다. 일반적으로 말하면, 도 15는 다른 개수의 프로세서/코어(코어 A, B, C 및 D)가 ASMP 모드(1320) 또는 SMP 모드(1320)에서 활용되는 예를 도시한다. 이들 코어는 도 12의 시스템에 도시된 코어에 대응한다.
블록(1510a, 1510b 및 1510c)은 SMP 모드(1330a, 1330b, 1330c)에서 동작하는 프로세서/코어의 3개의 다른 구성을 도시한다. 유사하게, 1500a, 1500b 및 1500c는 ASMP 모드(1320a, 1320b, 1320c)에서 동작하는 프로세서/코어의 3개의 다른 구성을 도시한다.
블록 1510a는 코어 C 및 D가 셧다운되고 코어 A 및 B가 실행 중인 제1 프로세서/코어 구성을 갖는 SMP 모드에서 동작하는 시스템을 도시한다. SMP 모드에서 코어 A 및 B는 동일한 클록 주파수 및 전압 서플라이(CLK/VDD)에서 작동하고 코어 B도 CLK/VDD도 수신하도록 구성된다(예를 들어, CLK, CLKch, 및 V1은 V0과 동일 - 도 12 참조). 블록 1500a는 동일한 프로세서/코어 구성을 도시하지만, ASMP 모드이다. ASMP 모드에서 코어 A와 B는 서로 다른 클록 주파수 및 전압 서플라이로 동작한다 - CLK1/VDD1로 코어 A가 동작하고 CLK2/VDD2로 코어 B가 동작하는 경우(예를 들어, CLK0, CLKch0, 및 V1이 V0과 다르다. 도 12 참조).
블록 1510b는 코어 D가 셧다운되고 코어 A, C 및 B가 실행 중인 제2 프로세서/코어 구성을 갖는 SMP 모드에서 동작하는 시스템을 도시한다. SMP 모드에서, 코어 A, C 및 B는 동일한 클록 주파수 및 전압 서플라이(CLK/VDD)로 동작하고 코어 B도 CLK/VDD를 수신하도록 구성된다(예를 들어, CLK, CLKch 및 V1은 V0과 동일함 - 그림 12). 블록 1500b는 동일한 프로세서/코어 구성을 도시하지만, ASMP 모드이다. ASMP 모드에서 코어 A와 C는 동일한 클록 주파수 및 전압 서플라이(CLK1 / VDD1)로 동작하고 코어 B는 다른 클록 주파수 및 전압 서플라이(CLK2 / VDD2)로 동작한다(예를 들어, CLK0, CLKch0 및 V1은 V0와 다르다. 도 12 참조).
블록 1510c는 모든 코어 A, B, C 및 D가 실행 중인 제3 프로세서/코어 구성을 갖는 SMP 모드에서 동작하는 시스템을 도시한다. SMP 모드에서 코어 A, C 및 D는 동일한 클록 주파수 및 전압 서플라이(CLK/VDD)에서 동작하고 코어 B도 CLK/VDD를 수신하도록 구성된다(예를 들어, CLK, CLKch 및 V1은 V0과 동일함 - 도 12 참조). 블록 1500c는 동일한 프로세서/코어 구성을 도시하지만, ASMP 모드이다. ASMP 모드에서 코어 A, C 및 D는 동일한 클록 주파수 및 전압 서플라이(CLK1/VDD1)로 동작하고 코어 B는 다른 클록 주파수 및 전압 서플라이(CLK2/VDD2)로 동작한다(예를 들어, CLK0, CLKch0 및 V1은 V0와 다르다. 도 12 참조).
일 실시예에서, 단지 2개의 프로세서/코어가 필요할 때, 시스템은 코어 A(또는 코어 C 또는 코어 D) 및 코어 B를 활용하여 그룹이 SMP 및 ASMP 모드 사이를 스위칭 할 수 있는 유연성을 제공할 것이다. 추가 처리 능력이 필요할 때 나머지 코어 중 하나 또는 모두가 활용될 수 있다. 또한 여전히 그룹이 SMP 및 ASMP 모드 사이를 스위칭할 수 있는 유연성을 제공한다. 알 수 있는 바와 같이, SMP 모드와 ASMP 모드 사이의 스위칭은 전술된 기준 또는 정보 중 임의의 것에 응답하여 발생할 수 있다. 또한, 본 명세서에 설명된 임의의 실시예(및 CLK 및 VDD 변경)에서, SMP 및 ASMP 모드 사이를 스위치 하기 위해 구현된 방법/프로세스는 도 3A, 3B 및 3C와 관련하여 기술된 것과 동일하거나 유사 할 수 있다. 이것은 약간의 변경 또는 재배치를 필요로 할 수 있지만, 당업자는 도 3a, 도 3b, 및 도 3c를 가이드로서 사용하여 모드들 사이의 스위칭을 구현할 수 있을 것이다.
시스템(1200)의 아키텍처는 시스템(200)에 비해 SMP/ASMP 동적 스위칭과 관련된 비용 및 하드웨어/소프트웨어 복잡성을 상당 부분 감소시킨다. 예를 들어, 4개의 프로세서/코어를 갖는 MP 시스템)에서, 시스템(1200)에 따라 구성된 시스템(하나의 프로세서 만이 동적으로 구성 가능한)에 대한 추가 비용은, 시스템(200)에 따라 구성된 시스템(4 개의 프로세서 모두가 동적으로 구성 가능한)에 대한 추가 비용에 비해 3 분의 1 정도이다.
테스트와 조사는, 대부분의 경우, 두 개의 프로세서로 처리 요구 사항을 충족시킬 수 있으며 대부분의 경우 두 개의 프로세서는 불균형로드로 실행된다는 것을 밝혀 냈다. 2개의 프로세서 코어 A 및 B(도 12 및 도 15에 도시된 구성(1320a 및 1330a) 참조)로 동작하는 시스템 (1200)에서, SMP 및 ASMP 모드 사이의 적절한 스위칭은 전력 효율을 최적화 할 수 있다. 마찬가지로, 최대 성능을 위해, 4개의 프로세서 코어 A, B, C 및 D가 모두 최대 클록 주파수 및 공급 전압으로 SMP 모드에서 동작할 수 있으므로, 유연성과 전력 감소가 발생하는 동시에 필요할 때 동일한 하이 엔드 성능을 유지할 수 있다. 상기 시스템(1200)은 안드로이드/iOS/윈도우즈와 같은 모바일 고수준 운영 체제(high level operating systems, HLOS)에 대해 저비용, 저전력, 및 고성능 간의 유리한 절충점을 제공하며 중저가 시장에도 적합하다.
당업자는 도 12 내지도 15에 도시된 바와 같은 하나 이상의 "코어"(예를 들어, A, B, C, D)가 각각 각각의 코어 내에 2 이상의 프로세서를 또한 포함할 수 있음을 쉽게 이해할 것이다. 이러한 실시 예에서, 프로세서의 각 "그룹"은 별개의 엔티티(또는 "코어")로서 기능하도록 분류된다. 예를 들어, 코어 A는 3개의 프로세서를 포함할 수 있고 코어는 2개의 프로세서를 포함할 수 있다. SMP 모드에서, 5개의 프로세서는 모두 동일한 클록 주파수 및 공급 전압으로 동작한다. ASMP 모드에서, 코어 B의 프로세서는 총괄적으로 다른 클록 주파수와 공급 전압으로 스위칭 된다. 알 수 있는 바와 같이, SMP 모드와 ASMP 모드 사이를 스위칭하는 결정은, 시스템의 프로세서를 활성/비활성시키는 결정에 기반하거나 또는 적어도 부분적으로 기반하여 결정될 할 수 있다. 이는 도 18 내지 도 19와 관련하여 아래에서 더 설명된다.
이제 도 16을 참조하면, 도 13에 도시된 아키텍처(예를 들어, 방법, 프로세스, 시스템)(1300)와 유사한 대안적인 실시예(1600)가 도시되어 있다. 유사하게, 모드 선택은 다른 정보 또는 요인뿐만 아니라, 요구되는 처리 또는 애플리케이션의 유형에 기초될 수 있다.
시스템 1600 및 1300 간의 주요한 차이점은, 시스템 (1600)에는, 다른 것들 것 같이 동일한 클록 주파수 및 전압 서플라이에서(SMP 모드), 또는 다른 것 중 일부와 다른 클록 주파수 및 전압 서플라이에서(ASMP 모드) 동작하도록 동적으로 구성 가능한 둘 이상의 프로세서/코어(코어 B, 코어 E 등)가 있다는 것이다. 즉, 도 13의 시스템(1300)의 코어 B와 유사한 복수의 프로세서/코어가 존재한다.
ASMP 모드일 때, 전체 그룹은 2개의 서브 그룹(1610 및 1620)을 포함하는 것으로 분류될 수 있다. 서브 그룹(1610)에서, 서브 그룹 내의 모든 프로세서/코어 (예를 들어, 코어 A, 코어 C 등)는 단일 클록 주파수 및 전압 서플라이에서 작동한다 - 각각은 하나의 클록 주파수 및 전압 서플라이(CLK1 / VDD1)에서 동작함을 의미. 서브 그룹(1620)에서, 서브 그룹 내의 각 프로세서/코어(예를 들어, 코어 B, 코어 E 등)는 CLK1/VDD1과 다른 클록 주파수 및 전압 서플라이(예를 들어, CLK2/VDD2)에서 동작한다. 따라서, 서브 그룹(1620) 내의 프로세서/코어는 하나의 다중 클록 주파수 및 전압 서플라이(예를 들어, CLK1/VDD1, CLK2/VDD2 등)에서 동작하도록 동적으로 선택 가능하며, 반면에 서브 그룹(1610) 내의 프로세서/코어는 주어진 클록 주파수 및 전압 서플라이(CLK1/VDD2)에서 고정적으로 동작한다.
SMP 모드일때, 모든 프로세서/코어는 동일한 클록 주파수 및 전압 서플라이(CLK/VDD)에서 동작한다. 실제로, CLK/VDD는 CLK1/VDD1과 동일하다는 것이 이해될 것이다.
시스템(1300)에서와 같이, SELECT_ASMP_MODE 신호에 따라, 시스템(1600)은 ASMP 모드(1320) 또는 SMP 모드(1330)에서 동작할 것이다. SMP 모드(1330)에서, 모든 코어(예를 들어, A, B, C, E 등)는 동일한 클록 신호/주파수 및 공급 전압(CLK/VDD)으로 동작한다. ASMP 모드(1320)에서, 서브 그룹(1620) 내의 코어(예를 들어, 코어 A, C 등)는 동일한 클록 신호/주파수 및 공급 전압(CLK1/VDD1)으로 동작하지만, 서브 그룹(1620) 내의 코어(예를 들어, 코어 B 및 E 등)는 서브 그룹(1610)의 코어와 다른 클록 신호/주파수 및 공급 전압(VCLK2/VDD2)으로 동작한다. SMP/ASMP 모드(및 모드 스위칭)의 세부 사항은 본 명세서에서 설명되었다. 마찬가지로, SMP와 ASMP 모드 사이를 스위칭 하는 결정은 시스템의 프로세서를 활성화/비활성화하는 결정을 기반으로 또는 적어도 부분적으로 기반하여 결정될 수 있다. 이는 도 18 내지도 19와 관련하여 이하에서 더 설명된다.
서브 그룹(1620) 내의 모든 코어가 동일한 CLK2/VDD2에서 총괄적으로 동작하지만, 다른 실시 예에서, 이들 코어는 그룹 내의 다수의 다른 클록 주파수 및 전압 공급에서 동작하도록 개별적으로 구성될 수 있다는 것이 이해될 것이다(예를 들어, 서브 그룹(1620) 자체도 로컬 SMP 및 ASMP 모드를 가질 수 있다).
이제 도 17을 참조하면, 다른 실시예 또는 아키텍처를 나타내는 2개의 MP 시스템(1710 및 1720)이 도시되어 있다. 상기 시스템은 n이 2 이상인 다수의 다른 주파수에서 작동하도록 개별적으로 구성 가능(동적으로 스위칭 가능)한 n개의 코어를 포함한다.
시스템 (1710)은 제1 고정 클록 주파수/전압 서플라이(CLK1/VDD1)에서 동작하는 코어 A 및 C를 포함한다. 코어 D는 제2 클록 주파수/전압 서플라이(CLK2/VDD2)에서 동작하고, 코어 B는 제3 클록 주파수/전압 서플라이(CLK3/VDD3)에서 동작한다. 본 명세서의 교시에 따르면, 시스템이 SMP 모드에 있을 때, 모든 클록 주파수 및 전압 공급은 CLK1/VDD1과 동일하다. ASMP 모드에서, 클록 주파수/전압 쌍 CLK1/VDD1, CLK2/VDD2, 및 CLK3/VDD3은 동일하지 않다. 시스템(1720)은 시스템(1710)과 유사하지만 제1 고정 CLK1/VDD1에서 동작하도록 구성된 코어 E를 또한 도시한다. 따라서, 시스템 1710, 1720은 제1 그룹의 프로세서(고정 CLK1 / VDD1에서 동작함)와, 각각의 개별 프로세서가 고정 CLK1/VDD1(SMP 모드에서) 또는 다른 클록 주파수/전압 서플라이(예를 들어, CLK2/VDD2, CLK3/VDD3)에서 동작하도록 동적으로 스위칭 가능한 제 2 그룹의 프로세서를 포함한다.
알 수 있는 바와 같이, 임의의 수 n개의 개별적으로 동적으로 스위칭 가능한(CLK/VDD) 코어가 시스템(1710, 1720)에 포함될 수 있고 및/또는 임의의 수의 고정(CLK1 / VDD1) 코어가 포함될 수 있다. 구체적으로 도시되지는 않았지만, 시스템(1710, 1720)에 대한 동적 스위칭 기능은 도 12에 설명 된 것과 유사한 방식으로(당업자에게 알려진 수정을 통해) 구현 될 수 있으며, 본 문서에 설명된 다른 방식들로도 구현 될 수 있다.
도면들에서 설명되고 도시된 시스템(1200)과 관련한 다양한 동작 예시 또는 방법이 이제 아래에서 설명된다.
첫 번째 일반 동작 방식에서, 하나 또는 세 개 이상의 코어가 활성화되면, SMP 모드가 선택되고 모든 활성 프로세서는 동일한 클록 주파수 및 전압 서플라이에서 동작한다. 두 개의 코어가 활성화된 경우 활성 프로세서 중 하나는 코어 B이고 다른 활성 프로세서는 코어 A, 코어 C 또는 코어 D 중 하나이며, 필요한 경우 두 개의 활성 프로세서를 SMP 모드와 ASMP 모드 사이에서 스위딩 할 수 있다(도 9-11에 따라 및/또는 다른 도면 또는 본 명세서의 설명에 따라 기술된 프로세스 및 방법에 기반하여).
두 번째 일반 동작 방식에서, 2개의 코어가 활성인 경우(하나의 활성 코어는 코어 B), 2개의 활성 코어는 ASMP 모드로 동작하도록 구성된다. 3개 이상의 코어가 활성화되면, 활성 코어는 SMP 모드에서 작동하도록 구성된다.
세 번째 운영 방식에서, 두 개의 코어가 활성화된 경우(하나의 활성 코어는 코어 B), 두 개의 활성 코어는 최초에는 ASMP 모드에서 작동하도록 구성된다. ASMP 모드의 2개의 액티브 코어에서, 코어는(도 9-11에 따라 및/또는 다른 도면 또는 본 명세서의 설명에 따라 기술된 프로세스 및 방법에 기초하여) SMP 및 ASMP 모드 사이에서 스위칭 될 수 있다.
본 명세서에서 소개되고 설명된 다른 개념은 프로세서/코어의 로딩 및 활용에 관한 것이다. 다중 프로세서/코어 시스템에서, 모든 프로세서/코어가 항상 필요한 것은 아니다. 처리 요구 사항이 낮으면 하나 또는 소수의 프로세서만 필요할 수 있고, 높으면 더 많은 프로세서가 필요할 수 있다. 이 개념은 모드 선택 프로세스에 도입되거나 통합될 수 있거나, 또는 모드 선택 프로세스는, 적어도 부분적으로, 컴퓨팅 요구 사항을 처리하는 데 필요한 프로세서 수에 기반할 수 있다.
본 명세서에 설명된 시스템들에서, 프로세서/코어를 슬립 모드, 디스에이블 또는 셧다운에 놓기 위해 각 코어가 클록-디스에이블 및/또는 전력 붕괴될 수 있게 하는 추가적인 기능(특별히 도시되지 않음)이 제공될 수 있다. 이는 그 결과 불필요한 프로세서를 끔으로써 전력 소모를 줄이는 결과를 낳는다(적은 수의 프로세서가 처리 요구 사항을 처리 할 수 있을 때).
현재의 컴퓨팅 요구 사항을 충족시키는 데 필요한 프로세서의 수를 결정하기 위한 다양한 프로세스 또는 방법이 구현될 수 있다. 한번 이 결정이 내려지면, 이후 코어는 아래 단락에서 설명된 것과 같이 임의의 적절한 시퀀스 및/또는 우선 순위로 온/오프 스위칭 될 수 있다.
다양한 컴퓨팅 인자 및 요구 사항(예를 들어, 로딩, 대기열(queue) 길이, 작업, 스레드(thread), 종속성, CPU 요청 등)을 기반으로, 프로세서는 원할 때 켜지고 꺼질 수 있다. 도 18에 도시된 일 실시예에서, 추가 프로세서가 활성화되어야 하는지(또는 다수의 활성 프로세서들 중 하나가 비활성화되어야 하는지)의 결정은 작업 로딩(task loading)에 기초한다. 작업 부하(1810)가 증가함에 따라, 증가된 부하를 처리하기 위해 추가 프로세서를 활성화하는 것이 바람직한 포인트(업 마이그레이션 임계치(1820))에 도달된다. 업 마이그레이션 임계치(1820)에 도달되면, 다른 프로세서가 온라인 상태로 된다. 2개의 활성 프로세서를 통해, 작업 부하(1810)가 감소하기 시작하고, 현재 부하가 하나의 프로세서에 의해 처리될 수 있기 때문에 활성 프로세서 중 하나를 비활성화하는 것이 바람직한 포인트(다운 마이그레이션 임계치(1830))가 도달된다. 도시된 바와 같이, 2개의 임계치(1820, 1830)가 히스테리시스 기능을 제공하도록 설정된다.
다음의 설명은 시스템(1200)(도 12에 도시된 대로 특정 코어 A, B, C 및 D를 갖는)에 적용된 대로 이 개념을 설명한다. 처리 요구 사항이 단일 코어에 의해 충족될 수 있을 때, 코어 A, 또는 C, 또는 D 중 하나가 사용되고, 다른 코어는 셧다운된다. 처리 요구 사항이 두 개의 코어를 필요로 할 때, 코어 B가 사용되고 코어 A, 또는 C, 또는 D 중 하나가 사용되며 나머지 두 코어는 셧다운 된다. 그러나, 2개의 코어가 필요하다고 결정될 때 어떤 단일 코어가 활성이던지 간에, 활성 코어 중 하나로서 유지되어야 한다는 것을 알 수 있다. 2개의 코어가 활성인 경우(하나는 코어 B), 캐시 실패(cache miss) 또는 학습 시스템과 같은 여기에 기술된 다양한 기준이 SMP 모드와 ASMP 모드 사이에서 스위칭 할지(예를 들어, 저전력으로) 결정할 때 이용된다.
프로세싱 요구 사항이 3개의 코어를 필요로 할 때, 코어 B가 사용되고 코어 A, C, 및 D 중 2개가 사용된다. 3개의 코어가 활성인 경우(하나는 코어 B), 캐시 실패 또는 학습 시스템과 같은 여기에 기술된 다양한 기준이 SMP 모드와 ASMP 모드 사이에서 스위칭할지(예를 들어, 저전력으로) 여부를 결정하기 위해 활용될 수 있다. 마찬가지로 컴퓨팅 요구 사항이 4개의 코어가 모두 필요로 하는 경우, 필요한 경우 SMP 및 ASMP 모드 간 스위칭이 구현될 수 있다.
이제 도 19를 참조하면, SMP/ASMP 모드 선택 프로세스와 통합된 프로세서를 추가/제거하기 위한 프로세스(1900)의 일반적인 흐름도가 도시되어 있다. 사용된 특정 아키텍처(예를 들어, 코어의 수) 및 요구되는 기능 또는 애플리케이션에 따라, 다양한 재배치 또는 수정이 예시된 프로세서에 대해 이루어질 수 있다. 알 수 있는 바와 같이, 이러한 프로세서에서 이용될 수 있는 모든 단계 또는 구성 요소가 도시되어 있는 것은 아니다.
프로세스(1900)는 단일 프로세서가 동작하는 포인트로 도시된다. 단일 프로세서만 필요하면, MP 시스템은 고정 단일 CLK1/VDD1에서 SMP 모드로 동작한다(1910 단계). 프로세싱 동작 중 어떤 시점에서, 프로세싱 요구 사항의 증가를 처리하기 위해(또는 다른 이유로) 제2 프로세서가 필요한지 여부가 결정된다(단계 1915). 이 결정은 주기적으로 또는 운영 정보에 대한 응답으로 이루어질 수 있다.
다른 프로세서가 필요하다는 결정에 응답하여, 프로세스(1900)는 설계자에 의해 요구되는 대로, 3개의 가능한 경로(1920a, 1920a, 1920c) 중 하나를 따라 진행한다. 이 세 가지 경로는, 두 번째 프로세서가 활성화 될 때, 두 개의 활성 프로세서가 (1) SMP 모드(1920a), 또는 (2) ASMP 모드(1920b), 또는 (3) 작동 시스템 요구 사항 또는 프로세스 모드 선택 정보에 따른 기능, 및 SMP 모드 또는 ASMP 모드 중 하나가 선택되어야 하는지를 결정하는 모드(1920c) 중 어느 것으로 설정되는지 여부와 관련된다.
디폴트(default) SMP 모드(1920a)가 선택되면, 제2 프로세서는 자동적으로 CLK1/VDD1에 따라서 수신하고 동작하도록 구성된다(이때, 제1 프로세서도 CLK1/VDD1로 동작함). 반대로, 디폴트 ASMP 모드(1920b)가 선택되면 제2 프로세서는 CLK1/VDD1과 다른 CLK2/VDD2에 따라 수신하고 동작하도록 구성된다(반면 제1 프로세서는 CLK1/VDD1로 동작함). 세 번째 디폴트 프로세스가 선택되면(1920c), 시스템은, 두 개의 프로세서가 SMP 모드에서 또는 ASMP 모드 작동하기 시작하도록 제2 프로세서를 활성화할지 여부를 결정하기 위해 "초기" SMP/ASMP 모드 선택/스위칭 프로세스(미도시)를 수행할 것이다.
두 프로세서가 모두 활성화되고, (1) 디폴트 SMP 모드에서 동작하거나, (2) 디폴트 ASMP 모드에서 동작하거나, (3) 선택된 모드 - SMP 또는 ASMP - 에서 동작하면, 프로세스는 SMP/ASMP 모드 선택/스위칭 프로세스(단계 1930)를 계속한다. 이 프로세스에서 MP 시스템은 SMP/ASMP 모드 사이를 동적으로 스위칭할지 여부를 다양한 동작 파라미터(위에서 설명한 길이로)로부터 결정한다.
한편, 시스템은 더 많은 또는 더 적은 컴퓨팅 처리 능력 등의 필요를 계속해서 평가하고, 처리 요구 사항이 2개의 활성 프로세서 중 하나가 비활성으로 렌더링 될 수 있는 레벨에 있는지 여부를 결정할 수 있다(단계 1940). 만약 "아니오"라면, 프로세스는 선택/스위칭 프로세스(1930)를 계속 실행한다. 만약 "예"라면, 프로세스는 단일 프로세서의 이용(SMP 모드의)으로 되돌아 간다(단계 1910). 프로세스는 또한 프로세싱 요구 사항이 제3 프로세서를 필요로 하는 레벨에 있는지를 결정할 수 있다(단계 1950). 만약 "아니오"라면, 프로세스는 선택/스위칭 프로세스(1930)를 계속 실행한다. 만약 "예"라면, 프로세스는 진행하고 제3 프로세서를 활성화한다(단계 1960). 현재 활성화 된 두 개의 프로세서가 ASMP 모드에 있으면, 그들은 SMP 모드로 전환되며, 세 개의 프로세서 모두 SMP 모드에서 동작한다.
다른 실시예(도 15 및 도 16을 추가적으로 참조)에서, 프로세서 중 하나를 켜고 끄는 동안 SMP/ASMP 모드 사이를 스위칭하는 것은 1단(one-step) 또는 2단(two-step) 프로세스로 수행 될 수 있다. 예를 들어, 시스템이 도 15의 1500a에 도시된 구성(즉, 2 개의 코어를 갖는 ASMP 모드)에 따라 동작한다고 가정한다. 부하가 증가하고 운영 체제가 세 번째 프로세서가 필요하다고 판단하면, 시스템은 1500a 구성에서 1510b 구성(즉, SMP 모드의 3코어)으로 직접적으로 스위치 할 수 있다. 이는 2단 스위칭보다 빠른 1단 스위칭이다. 2단 스위칭에서, 두 개의 활성 프로세서는 먼저 SMP 모드(1단)로 스위칭 된 다음 제3 프로세서가 활성화된다. 이는 1500a에서 1510a로 전환 이후, 1510a에서 1510b로의 전환으로 설명된다. 알 수 있는 바와 같이, 1단 또는 2단 스위칭은 모드 스위칭이 적어도 프로세서의 활성화/비활성화에 응답하여 발생될 때 구현 될 수 있다.
도 2 내지 도 11(및 첨부된 텍스트)에 설명된 시스템, 프로세스, 방법 및 장치와 유사하게, 도 12 내지 도 17에 설명된 시스템, 프로세스, 방법 및 장치는 모바일 장치/소형 컴퓨팅 장치 또는 기지국 내에 통합되는 것을 포함하는, 모바일 환경에서 활용될 수 있다. 이러한 장치는 예를 들어 무선 신호를 송신 및/또는 수신하도록 구성될 수 있다. 상기 장치는 임의의 적합한 최종 사용자 장치일 수 있으며, 사용자 장비/장치(UE), 무선 송수신 유닛(WTRU), 이동국, 고정 또는 이동 가입자 유닛, 호출기, 셀룰러 전화, 개인 디지털 단말(PDA), 스마트폰, 랩톱, 컴퓨터, 터치 패드, 무선 센서, 웨어러블 전자 장치 또는 소비자 전자 장치와 같은(또는 이렇게 불리는) 장치를 포함할 수 있다.
장치는 장치의 다양한 처리 동작을 구현하는 적어도 하나의 처리 시스템(1200)(본 명세서에서 설명됨)을 포함할 것이다. 이것은 예를 들어 신호 코딩, 데이터 처리, 비디오/오디오 처리, 전력 제어, 입출력 처리 또는 장치에 대해 고려되는 임의의 다른 기능을 포함할 수 있다.
또한, 처리 시스템(1200)은 본 명세서에 설명된 방법 및 교시를 지원하며, 추가 구성 요소 및 프로세서(예를 들어, 마이크로컨트롤러, 디지털 신호 프로세서, 필드 프로그래머블 게이트 어레이 또는 주문형 집적 회로)를 포함할 수 있다.
처리 시스템(1200)을 통합하는 장치는 또한 적어도 하나의 안테나에 의한 송신을 위해 데이터 또는 다른 콘텐츠를 변조하도록 구성된 적어도 하나의 송수신기를 포함할 수 있다. 송수신기는 또한 적어도 하나의 안테나에 의해 수신된 데이터 또는 다른 콘텐츠를 복조하도록 구성된다. 각 송수신기는 무선 송신을 위한 신호를 생성 및/또는 무선으로 수신된 신호를 처리하기 위한 임의의 적절한 구조를 포함한다. 각 안테나는 무선 신호를 송신 및/또는 수신하기 위한 임의의 적절한 구조를 포함한다. 하나 또는 다수의 송수신기가 이 장치에 사용될 수 있으며, 하나 또는 다수의 안테나가 사용될 수 있다.
이들 장치는 또한 사용자와의 상호 작용을 용이하게 하기 위해 하나 이상의 입출력 장치를 포함 할 수 있다. 각 입출력 장치는 스피커, 마이크로폰, 키패드, 키보드, 디스플레이 또는 터치 스크린과 같은, 정보를 사용자에게 제공하거나 사용자로부터 정보를 수신하기 위한 임의의 적절한 구조를 포함한다.
게다가, 이들 장치는 상술한 메모리를 이용할 수도 있고, 장치에 의해 사용, 생성 또는 수집된 명령 및 데이터를 저장하기 위해 다른 메모리를 포함할 수도 있다. 예를 들어, 메모리는 처리 시스템 (1200)에 의해 실행되는 소프트웨어 또는 펌웨어 명령을 저장할 수 있다. 다른 메모리는 임의의 적합한 휘발성 및/또는 비 휘발성 저장 및 검색 장치를 포함할 수 있다. 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 하드 디스크, 광 디스크, 가입자 식별 모듈(SIM) 카드, 메모리 스틱, 보안 디지털(SD) 메모리 카드 등과 같은 임의의 적절한 유형의 메모리가 사용될 수 있다.
모바일/소형 컴퓨팅 장치에 관한 추가적인 세부 사항은 당업자에게 알려져 있다. 이와 같이, 이러한 세부 사항은 명확성을 위해 여기서 생략된다.
일부 실시 예에서, 하나 이상의 장치의 기능 또는 프로세스의 일부 또는 전부는 컴퓨터 판독 가능 프로그램 코드로 형성되고 컴퓨터 판독 가능 매체로 구현되는 컴퓨터 프로그램에 의해 구현되거나 지원된다. "컴퓨터 판독 가능 프로그램 코드"라는 문구는 소스 코드, 오브젝트 코드 및 실행 코드를 포함하는 모든 유형의 컴퓨터 코드를 포함한다. "컴퓨터 판독 가능 매체"라는 문구는 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브, CD, 디지털 비디오 디스크(DVD), 또는 임의의 다른 유형의 메모리 등과 같은, 컴퓨터에 의해 액세스 될 수 있는 임의의 유형의 비휘발성 매체를 포함한다.
이 특허 문서 전체에 걸쳐 사용된 특정 단어 및 어구의 정의를 설명하는 것이 바람직할 수 있다. 용어 "포함(include)" 및 "포함하는(comprise,)"은 그 파생물뿐만 아니라 제한없는 포함을 의미한다. "또는"이라는 용어는 포괄적이며, 및/또는의 의미를 갖는다. 본 명세서에서 사용된 "관련된(associated with)"및 "그와 관련된"이라는 어구 및 그 파생어는, 포함, 그 안에 포함, 상호연결, 내포, 내부에 포함, ~에 연결 또는 ~와 연결, ~에 연관 또는 ~와 연관, 전달될 수 있는, ~와 협력하여, 상호 배치, 병행, 병설, 나란히 놓음, 근접하여, 묶어서, 가지고 있는, 소유하고 있는 등의 의미를 갖는다. "컨트롤러"는 적어도 하나의 동작을 제어하는 임의의 장치, 시스템 또는 그 일부를 의미한다. 컨트롤러는 하드웨어, 펌웨어, 소프트웨어, 또는 이들 중 적어도 2개의 조합으로 구현될 수 있다. 임의의 특정 컨트롤러와 관련된 기능은 로컬 또는 원격으로, 중앙 집중식 또는 분산식일 수 있다.
본 개시가 특정 실시예 및 일반적으로 연관된 방법을 기술하였지만, 이들 실시예 및 방법의 변경 및 치환은 당업자에게 명백할 것이다. 따라서, 예시적인 실시예들의 위와 같은 설명은 본 개시를 한정하거나 제한하지 않는다. 다음의 청구범위에 의해 정의되는 바와 같이, 본 개시의 사상 및 범위를 벗어나지 않는 다른 변경, 대체 및 변경이 또한 가능하다.

Claims (51)

  1. 다중-프로세서(multi-processor, MP) 처리 시스템으로서,
    제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 동작 전압을 갖는 제1 공급 전압에 따라서 수신하고 동작하도록 구성된 제1 프로세서, 그리고
    상기 제1 클록 신호 또는 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 수신하고 동작하며, 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 수신하고 동작하도록 구성된 제2 프로세서
    를 포함하는 복수의 프로세서;
    적어도 상기 제2 프로세서에 연결되고, 캐시 실패율에 응하여 제1 모드의 동작(mode of operation) 및 제2 모드의 동작 사이에서 상기 제2 프로세서의 동작을 동적으로 스위치하도록 구성된 컨트롤러
    를 포함하고,
    여기서 상기 제1 모드의 동작일 때, 상기 제2 프로세서는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 수신하고 동작하고,
    상기 제2 모드의 동작일 때, 상기 제2 프로세서는 상기 제2 클록 신호 및 상기 제2 공급 전압에 따라서 수신하고 동작하며;
    여기서 상기 제1 프로세서는 또한, 상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안에는 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서만 수신하고 동작하도록 구성된, MP 처리 시스템.
  2. 제1항에 있어서,
    상기 복수의 프로세서는,
    상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안에는 모두 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서만 수신하고 동작하도록 구성된 제3 프로세서
    를 더 포함하는, MP 처리 시스템.
  3. 제2항에 있어서,
    상기 복수의 프로세서는,
    상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안에는 모두 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서만 수신하고 동작하도록 구성된 제4 프로세서
    를 더 포함하는, MP 처리 시스템.
  4. 제3항에 있어서,
    상기 복수의 프로세서는,
    상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안에는 모두 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서만 수신하고 동작하도록 각각 구성된 제5 프로세서, 제6 프로세서, 제7 프로세서, 및 제8 프로세서를 더 포함하는, MP 처리 시스템.
  5. 제1항에 있어서,
    상기 컨트롤러에 연결되고, 상기 제1 프로세서로 입력되는 상기 제1 클록 신호 및 상기 제2 클록 신호를 생성하여 출력하도록 구성된 클록 생성 회로;
    상기 컨트롤러에 연결되고, 상기 제1 공급 전압을 생성하여 상기 제1 프로세서에게 출력하고, 상기 제2 공급 전압을 생성하여 상기 제2 프로세서에게 출력하도록 구성된 동작 전압 생성 회로;
    상기 클록 생성 회로 및 상기 제2 프로세서의 사이에 배치되고, 상기 제1 클록 신호 및 상기 제2 클록 신호를 수신하고, 상기 제1 클록 신호 또는 상기 제2 클록 신호를 상기 제2 프로세서에게 출력하도록 구성된 스위칭 회로
    를 더 포함하고,
    여기서 상기 제1 모드의 동작 동안에 상기 제1 클록 신호는 상기 제2 프로세서에게 출력되고, 상기 제2 모드의 동작 동안에 상기 제2 클록 신호는 상기 제2 프로세서에게 출력되며,
    상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안에 상기 제1 클록 신호는 상기 제1 프로세서에게 출력되는, MP 처리 시스템.
  6. 제1항에 있어서,
    상기 컨트롤러에 연결되고, 상기 제2 모드의 동작일 때 상기 제2 공급 전압을 생성하여 상기 제2 프로세서에게 출력하고, 상기 제1 모드의 동작일 때 상기 제1 공급 전압을 상기 제2 프로세서에게 출력하도록 구성된 전압 조정기 회로(voltage regulator circuit)
    를 더 포함하는 MP 처리 시스템.
  7. 복수의 제1 프로세서 및 제2 프로세서를 포함하고, 다중 처리 기능(multiprocessing functions)을 수행하도록 구성된 복수의 프로세서;
    캐시 실패율에 응하여 제1 모드의 동작 및 제2 모드의 동작 사이에서 상기 제2 프로세서의 동작을 동적으로 스위치하도록 구성된 컨트롤러(controller);
    상기 컨트롤러에 연결되어, 제1 클록 신호 및 제2 클록 신호를 생성하여 출력하도록 구성된 클록 생성 회로;
    상기 클록 생성 회로 및 상기 제2 프로세서의 사이에 배치되고, 상기 제1 클록 신호 및 상기 제2 클록 신호를 수신하여 상기 제2 프로세서에게 출력하기 위해서 하나를 선택하도록 구성된 스위칭 회로(switching circuit);
    상기 복수의 프로세서에 연결되어 상기 복수의 프로세서의 사용을 위해서 구성된 캐시 메모리(cache memory); 및
    상기 제2 프로세서 및 상기 캐시 메모리에 연결되어, 상기 컨트롤러에 응답하며, 또한, 상기 제2 모드의 동작 동안 상기 제2 프로세서 및 상기 캐시 메모리 사이에서 클록-도메인 크로싱(clock-domain crossing, CDC) 기능을 제공하고 상기 제1 모드의 동작 동안 바이패싱(bypassing) 기능을 제공하도록 구성된 클록-도메인 크로싱 및 바이패스 회로
    를 포함하고,
    상기 제1 모드의 동작 동안 상기 제1 클록 신호는 상기 제2 프로세서에게 출력되고 상기 제2 모드의 동작 동안 상기 제2 클록 신호는 상기 제2 프로세서에게 출력되며,
    상기 제1 모드의 동작 및 상기 제2 모드의 동작 동안 상기 제1 클록 신호는 상기 복수의 제1 프로세서 각각에게 입력되는, 장치.
  8. 제7항에 있어서,
    상기 컨트롤러에 연결되어, 상기 제1 모드의 동작 동안 상기 복수의 제1 프로세서 및 제2 프로세서에게 제1 동작 공급 전압 신호(operating supply voltage signal)를 출력하고, 상기 제2 모드의 동작 동안 상기 복수의 제1 프로세서에게 상기 제1 동작 공급 전압 신호를 출력하고 상기 제2 프로세서에게 제2 동작 공급 전압 신호를 출력하도록 구성된 동작 전압 생성 회로(operating voltage generation circuit)
    를 더 포함하는 장치.
  9. 제7항에 있어서,
    상기 장치는 단일 반도체 기판 상에 배치되는, 장치.
  10. 제8항에 있어서,
    제1 동작 전압 신호를 수신하고, 상기 제1 동작 전압 신호로부터 제2 동작 전압 신호를 생성하고, 상기 제1 모드의 동작 동안 상기 제2 프로세서에게 입력하기 위해서 상기 제1 동작 전압 신호를 출력하며, 상기 제2 모드의 동작 동안 상기 제2 프로세서에게 입력하기 위해서 상기 제2 동작 전압 신호를 출력하도록 구성된 전압 조정기 및 바이패스 회로(voltage regulator and bypass circuit)
    를 더 포함하는 장치.
  11. 복수의 프로세서를 대칭형 다중 처리(symmetric multiprocessing, SMP) 모드 및 비대칭형 다중 처리(asymmetric multiprocessing, ASMP) 모드 사이에서 스위칭하는 방법으로서,
    제1 프로세서가 동작하고 있는 동안에는 항상 제1 미리 결정된 주파수를 갖는 제1 클록 신호 및 제1 미리 결정된 동작 전압을 갖는 제1 공급 전압에 따라서 상기 제1 프로세서를 동작시키는 단계;
    모드 선택 신호를 수신하는 단계;
    캐시 실패율에 응하여 제1 모드의 동작 또는 제2 모드의 동작에서 제2 프로세서를 동작시키는 단계
    를 포함하고,
    상기 캐시 실패율에 응하여 제1 모드의 동작 또는 제2 모드의 동작에서 제2 프로세서를 동작시키는 단계는;
    제1 모드의 동작에서, 상기 제1 클록 신호 및 상기 제1 공급 전압에 따라서 상기 제2 프로세서를 동작시키는 단계, 그리고
    제2 모드의 동작에서, 상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 제2 클록 신호에 따라서 그리고 상기 제1 미리 결정된 동작 전압과 다른 제2 미리 결정된 동작 전압을 갖는 제2 공급 전압에 따라서 상기 제2 프로세서를 동작시키는 단계
    를 포함하는, 방법.
  12. 적어도 두 개의 프로세서가 대칭형 다중 처리(symmetric multiprocessing, SMP) 모드 또는 비대칭형 다중 처리(asymmetric multiprocessing, ASMP) 모드에서 동작하는 다중 처리 모드의 복수의 프로세서를 갖는 처리 시스템을 동작시키는 방법으로서,
    적어도 두 개의 프로세서를 상기 SMP 모드에서 동작시키는 단계 - 여기서 상기 적어도 두 개의 프로세서는 제1 미리 결정된 주파수를 갖는 SMP 클록 신호를 수신하고, 제1 전압을 갖는 SMP 동작 공급 전압을 수신하며, 상기 적어도 두 개의 프로세서는 제1 프로세서 및 제2 프로세서를 포함함 -;
    SMP 모드로부터 ASMP 모드로 스위치 하기 위한 지시를 수신하는 단계; 및
    상기 적어도 두 개의 프로세서의 동작을 캐시 실패율에 응하여 SMP 모드로부터 ASMP 모드로 스위칭하는 단계
    를 포함하고,
    상기 적어도 두 개의 프로세서의 동작을 캐시 실패율에 응하여 SMP 모드로부터 ASMP 모드로 스위칭하는 단계는,
    상기 제1 미리 결정된 주파수와 다른 제2 미리 결정된 주파수를 갖는 ASMP 클록 신호를 생성하는 단계,
    상기 제1 전압과 다른 제2 전압의 ASMP 동작 공급 전압을 생성하는 단계,
    상기 ASMP 클록 신호 및 상기 ASMP 동작 공급 전압을 상기 제2 프로세서에게 입력하는 단계, 그리고
    그 후 상기 제2 프로세서를 상기 제2 미리 결정된 주파수 및 상기 제2 전압으로 동작시키고 상기 제1 프로세서를 상기 제1 미리 결정된 주파수 및 상기 제1 전압으로 동작시키는 단계
    를 포함하는, 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
KR1020177012981A 2014-10-16 2015-10-10 새로운 저비용, 저전력 고성능 smp/asmp 다중-프로세서 시스템 KR101942884B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/516,314 US9952650B2 (en) 2014-10-16 2014-10-16 Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching
US14/516,314 2014-10-16
US14/580,044 US10928882B2 (en) 2014-10-16 2014-12-22 Low cost, low power high performance SMP/ASMP multiple-processor system
US14/580,044 2014-12-22
PCT/CN2015/091655 WO2016058498A1 (en) 2014-10-16 2015-10-10 Novel low cost, low power high performance smp/asmp multiple-processor system

Publications (2)

Publication Number Publication Date
KR20170069269A KR20170069269A (ko) 2017-06-20
KR101942884B1 true KR101942884B1 (ko) 2019-01-28

Family

ID=55746127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177012981A KR101942884B1 (ko) 2014-10-16 2015-10-10 새로운 저비용, 저전력 고성능 smp/asmp 다중-프로세서 시스템

Country Status (6)

Country Link
US (1) US10928882B2 (ko)
EP (1) EP3198364B1 (ko)
JP (1) JP6611375B2 (ko)
KR (1) KR101942884B1 (ko)
CN (1) CN107077187B (ko)
WO (1) WO2016058498A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2811367A1 (en) * 2013-06-04 2014-12-10 Ericsson Modems SA A method for controlling powering of a mobile platform
US9952650B2 (en) 2014-10-16 2018-04-24 Futurewei Technologies, Inc. Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching
US10248180B2 (en) 2014-10-16 2019-04-02 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
US11398258B2 (en) 2018-04-30 2022-07-26 Invensas Llc Multi-die module with low power operation
CN112486638A (zh) * 2019-09-11 2021-03-12 百度时代网络技术(北京)有限公司 用于执行处理任务的方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138444A1 (en) * 2003-12-17 2005-06-23 Via Technologies Inc. Frequency-voltage mechanism for microprocessor power management
US20110283124A1 (en) * 2010-05-11 2011-11-17 Alexander Branover Method and apparatus for cache control
US20120060170A1 (en) * 2009-05-26 2012-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and scheduler in an operating system

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05259848A (ja) 1992-03-11 1993-10-08 Nec Corp クロック発生装置
US5774704A (en) 1996-07-29 1998-06-30 Silicon Graphics, Inc. Apparatus and method for dynamic central processing unit clock adjustment
JPH10133766A (ja) 1996-10-11 1998-05-22 Lucent Technol Inc 適応型パワーダウン・クロック制御
US5964881A (en) 1997-11-11 1999-10-12 Advanced Micro Devices System and method to control microprocessor startup to reduce power supply bulk capacitance needs
JP2002099432A (ja) 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US7100056B2 (en) 2002-08-12 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for managing processor voltage in a multi-processor computer system for optimized performance
JP2004078642A (ja) 2002-08-20 2004-03-11 Nec Engineering Ltd 割込み制御回路
JP2005196430A (ja) 2004-01-07 2005-07-21 Hiroshi Nakamura 半導体装置および半導体装置の電源電圧/クロック周波数制御方法
JP2006050888A (ja) 2004-07-02 2006-02-16 Rohm Co Ltd 電源装置、それを用いた電力増幅装置、携帯電話端末
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
JP4484757B2 (ja) 2004-12-09 2010-06-16 株式会社日立製作所 情報処理装置
US7502948B2 (en) * 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
KR101108397B1 (ko) 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
JP2007047966A (ja) 2005-08-09 2007-02-22 Canon Inc 省電力制御システム
US7562234B2 (en) 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
EP1772795A1 (en) 2005-10-10 2007-04-11 STMicroelectronics (Research & Development) Limited Fast buffer pointer across clock
JP2007148952A (ja) 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
US7263457B2 (en) 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
JP2007328461A (ja) 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
EP2031510A4 (en) 2006-06-07 2011-07-06 Hitachi Ltd INTEGRATED SEMICONDUCTOR SWITCHING
JP4837456B2 (ja) 2006-06-28 2011-12-14 パナソニック株式会社 情報処理装置
JP4231516B2 (ja) 2006-08-04 2009-03-04 株式会社日立製作所 実行コードの生成方法及びプログラム
US7870413B2 (en) 2006-08-15 2011-01-11 Mitac International Corp. Synchronization clocking scheme for small scalable multi-processor system
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
JP2008299731A (ja) 2007-06-01 2008-12-11 Panasonic Corp 半導体集積回路、情報処理システム
US7913103B2 (en) 2007-08-31 2011-03-22 Globalfoundries Inc. Method and apparatus for clock cycle stealing
JP5344190B2 (ja) 2008-03-04 2013-11-20 日本電気株式会社 半導体デバイス
US20090235108A1 (en) 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US8120342B1 (en) 2008-05-06 2012-02-21 Volterra Semiconductor Corporation Current report in current mode switching regulation
US20100073068A1 (en) 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
WO2010035315A1 (ja) 2008-09-24 2010-04-01 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
JP5293289B2 (ja) 2009-03-11 2013-09-18 富士通株式会社 マルチコアプロセッサ及びその制御方法
JP5316128B2 (ja) 2009-03-17 2013-10-16 トヨタ自動車株式会社 故障診断システム、電子制御ユニット、故障診断方法
US8190930B2 (en) 2009-03-30 2012-05-29 Intel Corporation Methods and apparatuses for controlling thread contention
JP2010271765A (ja) 2009-05-19 2010-12-02 Renesas Electronics Corp 電源電圧制御回路
DK2572302T3 (da) 2010-05-19 2021-04-26 Sanofi Aventis Deutschland Modificering af operationelle data om en proces til interaktions- og/eller interaktionsbestemmelse
WO2011161782A1 (ja) 2010-06-23 2011-12-29 富士通株式会社 マルチコアシステムおよび外部入出力バス制御方法
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US20120096292A1 (en) * 2010-10-15 2012-04-19 Mosaid Technologies Incorporated Method, system and apparatus for multi-level processing
KR101661111B1 (ko) 2010-11-23 2016-09-30 한국전자통신연구원 멀티 코어 프로세서의 전력 제어 장치 및 방법
US20130060555A1 (en) 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US8862926B2 (en) 2011-08-16 2014-10-14 Apple Inc. Hardware controlled PLL switching
JP5695766B2 (ja) 2011-09-21 2015-04-08 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアシステムエネルギー消費最適化
CN102404211A (zh) 2011-11-15 2012-04-04 北京天融信科技有限公司 一种amp架构下处理器负载均衡的实现方法及装置
JPWO2013080426A1 (ja) 2011-12-01 2015-04-27 パナソニックIpマネジメント株式会社 熱を考慮した構造を持つ集積回路装置、三次元集積回路、三次元プロセッサ装置、及びプロセススケジューラ
KR101915073B1 (ko) * 2011-12-20 2018-11-06 인텔 코포레이션 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단
US9569278B2 (en) 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
CN102609075A (zh) 2012-02-21 2012-07-25 李�一 多核处理器电源管理电路
CN102637134B (zh) 2012-04-26 2015-01-21 网经科技(苏州)有限公司 嵌入式非对称多处理架构下的软件加载与存储的方法
US8981745B2 (en) 2012-11-18 2015-03-17 Qualcomm Incorporated Method and apparatus for bypass mode low dropout (LDO) regulator
US9262177B2 (en) 2012-12-19 2016-02-16 International Business Machines Corporation Selection of a primary microprocessor for initialization of a multiprocessor system
US9110671B2 (en) 2012-12-21 2015-08-18 Advanced Micro Devices, Inc. Idle phase exit prediction
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9823719B2 (en) * 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
KR20150050880A (ko) 2013-11-01 2015-05-11 에스케이하이닉스 주식회사 전압 레귤레이터 및 바이어스 전류 조절 장치
US20150355700A1 (en) * 2014-06-10 2015-12-10 Qualcomm Incorporated Systems and methods of managing processor device power consumption
US9395797B2 (en) 2014-07-02 2016-07-19 Freescale Semiconductor, Inc. Microcontroller with multiple power modes
US10248180B2 (en) 2014-10-16 2019-04-02 Futurewei Technologies, Inc. Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system
US9952650B2 (en) 2014-10-16 2018-04-24 Futurewei Technologies, Inc. Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138444A1 (en) * 2003-12-17 2005-06-23 Via Technologies Inc. Frequency-voltage mechanism for microprocessor power management
US20120060170A1 (en) * 2009-05-26 2012-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and scheduler in an operating system
US20110283124A1 (en) * 2010-05-11 2011-11-17 Alexander Branover Method and apparatus for cache control

Also Published As

Publication number Publication date
JP6611375B2 (ja) 2019-11-27
EP3198364B1 (en) 2020-04-01
CN107077187A (zh) 2017-08-18
EP3198364A4 (en) 2017-09-20
US10928882B2 (en) 2021-02-23
CN107077187B (zh) 2021-08-03
US20160109922A1 (en) 2016-04-21
EP3198364A1 (en) 2017-08-02
JP2017532686A (ja) 2017-11-02
WO2016058498A1 (en) 2016-04-21
KR20170069269A (ko) 2017-06-20

Similar Documents

Publication Publication Date Title
JP6501430B2 (ja) マルチプロセッサの動的な非対称及び対称モードスイッチのためのハードウェア装置及び方法
CN106415521B (zh) 多处理动态非对称和对称模式切换的硬件设备和方法
KR101942884B1 (ko) 새로운 저비용, 저전력 고성능 smp/asmp 다중-프로세서 시스템
EP2674863B1 (en) Multi-cluster processing system and method of operating the same
US20160110299A1 (en) Low Power Autonomous Peripheral Management
JP6026191B2 (ja) 電力制御回路、それを含む半導体装置及び該電力制御回路の動作方法
KR20160142836A (ko) 멀티-프로세서 시스템 온 칩에서의 에너지 효율 인지 열 관리
US9268395B2 (en) Hierarchical power management circuit, power management method using the same, and system on chip including the hierarchical power management circuit
US9886081B2 (en) Managing power-down modes
US9564898B2 (en) Power switch ramp rate control using selectable daisy-chained connection of enable to power switches or daisy-chained flops providing enables
KR102012904B1 (ko) 반도체 집적회로와 그 동작 방법
KR20240034854A (ko) 페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩
JP2022548483A (ja) 低オーバーヘッド広帯域幅再構成可能な相互接続装置及び方法

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