KR20110102449A - 비대칭 멀티프로세서 상에서의 적응형 스레드 스케줄링을 위한 장치 및 방법들 - Google Patents

비대칭 멀티프로세서 상에서의 적응형 스레드 스케줄링을 위한 장치 및 방법들 Download PDF

Info

Publication number
KR20110102449A
KR20110102449A KR1020117015868A KR20117015868A KR20110102449A KR 20110102449 A KR20110102449 A KR 20110102449A KR 1020117015868 A KR1020117015868 A KR 1020117015868A KR 20117015868 A KR20117015868 A KR 20117015868A KR 20110102449 A KR20110102449 A KR 20110102449A
Authority
KR
South Korea
Prior art keywords
cores
leakage current
core
thread
scheduling
Prior art date
Application number
KR1020117015868A
Other languages
English (en)
Other versions
KR101284776B1 (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 콸콤 인코포레이티드
Publication of KR20110102449A publication Critical patent/KR20110102449A/ko
Application granted granted Critical
Publication of KR101284776B1 publication Critical patent/KR101284776B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

시스템 에너지를 감소시키기 위한 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 기법들이 설명된다. 일 실시예에서, 스레드 스케줄러는 복수의 코어들과 연관된 누설 전류 정보를 수신한다. 누설 전류 정보는 복수의 코어들 중 하나 상에서 스레드를 스케줄링하여 시스템 에너지 사용을 감소시키기 위해서 사용된다. 센서들의 온 칩 교정 또한 설명된다.

Description

비대칭 멀티프로세서 상에서의 적응형 스레드 스케줄링을 위한 장치 및 방법들{APPARATUS AND METHODS FOR ADAPTIVE THREAD SCHEDULING ON ASYMMETRIC MULTIPROCESSOR}
본 발명은 일반적으로 저전력 소비로 요구되는 성능을 달성하기 위해서 누설 전류 및 동적 전력에 기초하여 비대칭 멀티프로세서 시스템에서 스레드 스케줄링을 적응시키기 위한 기법들에 관한 것이다.
셀 폰들, 랩톱 컵퓨터들, 개인용 데이터 보조기(PDA)들 등과 같은 많은 휴대용 제품(product)들은 통신 및 멀티미디어 프로그램들과 같은 프로그램들을 실행하는 프로세싱 시스템을 이용한다. 이러한 제품들에 대한 프로세싱 시스템은 다수의 프로세서들, 명령들 및 데이터를 저장하기 위한 메모리, 제어기들, 통신 인터페이스들과 같은 주변 디바이스들 및 예를 들어, 단일 칩 상에서 구성되는 고정 함수 로직 블록들을 포함할 수 있다. 이와 동시에, 휴대용 제품들은 프로세싱 시스템으로부터 높은 성능 동작들을 지원하도록 종종 요구되는 배터리들의 형태로 제한된 에너지 소스를 가진다. 배터리 수명을 증가시키기 위해서, 가능한 경우, 감소된 전력 레벨들로 이러한 동작들을 수행하는 것이 바람직하다. 많은 개인용 컴퓨터는 전체 에너지 소비를 감소시키기 위해서 저전력 드레인에서 높은 성능 동작들을 지원하도록 개발된다.
프로세싱 시스템의 내부에서, 다수의 프로세서들은 비디오, 그래픽들 또는 통신 프로세싱과 같은 특정 시스템 함수 또는 프로세스와 상이하고 이에 최적화될 수 있는 다수의 프로세서들 사이의 선택적 로드 밸런싱을 허용하는 비대칭 멀티프로세싱 구조와 같은 다수의 상이한 구조들로 구성될 수 있다. 프로세싱 함수들은 선택된 프로세서들 상에서의 실행을 위해서 스케줄링되는 다수의 스레드들 또는 태스크들로 분배될 수 있다. 스레드는 다른 스레드와 동시에 실행할 수 있는 명령들의 최소의 개별 스케줄링가능한 프로세스 또는 시퀀스로 간주된다. 본 발명의 맥락에서, 스레드 및 태스크는 상호 교환가능하게 사용될 수 있다. 태스크들 또는 스레드들은 예를 들어, 시스템 함수들과 연관된 성능 요건들을 충족시키기 위해서, 연산 시스템(OS) 스케줄러에 의해 프로세서에 일반적으로 할당되는 서브-함수들일 수 있다. 태스크를 실행하는 것과 연관된 전력이 주파수, 스위칭 커패시턴스 및 공급 전압 제곱의 함수이므로, 전력 사용을 감소시키는 것은 일반적으로 이러한 변수들 중 적어도 하나의 감소를 요구한다. 더 완전하게 전력 사용을 최적화하기 위해서, 많은 프로세싱 시스템들은 전력 사용의 하나 이상의 회로 도메인들에서 주파수 및 동작 전압 상에서의 제어를 가진다. 휴대용 디바이스들 상에서 동작하는 비디오, 그래픽들 및 통신과 같은 다양한 기능들의 요구되는 특성으로 인하여, 다수의 프로세서들은 제품의 요건들을 충족시키기 위해서 기가헤르츠 주파수들에서 동작하도록 요구될 수 있다. 프로세싱 시스템에 대한 기능적 수요가 달라지므로, 동작 주파수는 일반적으로 기존의 시스템 요건들에 적응된다. 유사한 방식으로, 전압을 감소시키는 것은 전력 뿐만 아니라 영향을 받는 로직 및 메모리 디바이스들의 동작 주파수에 영향을 미치고, 이는 이후 주파수가 어떻게 제어되는지에 영향을 미친다.
회로 밀도가 각각의 새로운 기술 생성과 더불어 증가함에 따라, 유휴(idle) 또는 대기(standby) 상태들 동안의 전력 손실 또한 증가하였다. 또한, 회로 누설 전류는 증가하는 회로 밀도들과 더불어 증가하여 더욱더 상당한 전력 손실의 소스가 되는 경향이 있다. 더 높은 클럭 주파수들을 허용하는 증가되는 밀도들 및 더 짧은 회로 디바이스 지연들을 달성하기 위해서, 내부 회로 디바이스들의 스레쉬홀드 전압(threshold voltage)은 전형적으로 감소된다. 스레쉬홀드 전압을 감소시키는 것은 일반적으로 누설 전류를 증가시키고, 이는 또한 프로세스 변화들 및 온도에 의해 영향을 받는다. 높은 밀도 칩의 에너지 사용의 상당한 부분은 누설 전류에 기인할 수 있다.
동작 시스템 스케줄러 레벨에서, 멀티프로세싱 시스템에서의 태스크 할당은 일관된 프로세스 특성들(P)로 제조되는, 그리고 정적 그리고 공칭 동작 전압(V) 및 공칭 온도(T) 내에서 동작하는 칩들을 가지는 공칭 동작 환경(통상적으로, 공칭 PVT 환경이라 지칭됨) 내에서 조차 어려운 문제이다. 태스크들을 할당하는 문제는 휴대용 디바이스들의 특성으로 인하여 훨씬 더 어려워질 수 있는데, 그 이유는 그들이 상이한 프로세스들로 제조되는 다수의 칩들을 사용할 수 있고, 그리고 칩들 내의 그리고 칩들 간의 프로세스 특성들의 폭 넓은 변화들을 경험할 수도 있고, 제어가능할 수 있는 상이한 동작 전압들을 사용할 수도 있으며, 주위 온도의 폭 넓은 변화들을 겪을 수도 있다. PVT의 변화들은 일반적으로, 동적 그리고 정적 누설 전력을 포함하는 칩의 전력 이용에 극적인 영향을 미친다.
본 발명의 실시예는 시스템 에너지를 감소시키기 위한 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 방법을 다룬다. 스레드 스케줄러는 상기 복수의 코어들과 연관된 누설 전류 정보를 수신한다. 상기 누설 전류 정보는 상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하여 시스템 에너지 사용을 감소시키기 위해서 사용된다.
본 발명의 다른 실시예는 시스템 에너지를 감소시키기 위한 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 장치를 다룬다. 상기 복수의 코어들과 연관된 복수의 센서들은 누설 전류 정보를 제공한다. 복수의 코어들은 적응형 스레드 스케줄러를 실행시키고, 각각의 코어는 상기 코어에 할당될 상기 태스크에 의존하는 할당된 동작 주파수 및 소스 전압 레벨을 가진다. 상기 적응형 스레드 스케줄러는 상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하여 시스템 에너지 사용을 감소시키기 위해서 상기 누설 전류 정보를 사용한다.
본 발명의 다른 실시예는 컨텐츠들이 비대칭 멀티프로세서로 하여금 시스템 에너지를 감소시키기 위한 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 방법을 수행하도록 하는 컴퓨터 판독가능 저장 매체를 다룬다. 스레드 스케줄러는 상기 복수의 코어들과 연관된 누설 전류 정보를 수신한다. 상기 누설 전류 정보는 상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하여 시스템 에너지 사용을 감소시키기 위해서 사용된다.
본 발명의 다른 실시예들은 다음의 상세한 설명으로부터 당업자에게 명백해질 것이고, 여기서 본 발명의 다양한 실시예들은 예로서 도시되고 설명된다. 구현될 바와 같이, 본 발명은 다른 그리고 상이한 실시예들에서 구현될 수 있고, 그 몇몇의 세부사항들은 모두 본 발명에서 벗어나지 않고, 다양한 그 외의 점들에 있어서 수정할 수 있다. 따라서, 도면들 및 상세한 설명은 제한이 아닌 사실상 예시로서 간주될 것이다.
도 1은 예시적인 무선 통신 시스템을 도시한다.
도 2a는 예시적인 듀얼 프로세서 코어에 대한 낮은 온도를 가지는 특정 프로세스(P), 전압(V), 온도(T)의 PVT 환경을 도시하는 전력 대 동작 주파수의 그래프를 도시한다.
도 2b는 도 2a의 듀얼 프로세서 코어에 대한 높은 온도를 가지는 PVT 환경을 도시하는 전력 대 동작 주파수의 그래프를 도시한다.
도 3은 예시적인 비대칭 멀티프로세서 시스템 온 칩을 도시하는 블록 다이어그램이다.
도 4a는 예시적인 제 1 센서 회로를 도시하는 블록 다이어그램이다.
도 4b는 예시적인 제 2 센서 회로를 도시하는 블록 다이어그램이다.
도 4c는 예시적인 제 3 센서 회로를 도시하는 블록 다이어그램이다.
도 5는 예시적인 온 칩 센서 교정 프로세스에 대한 흐름도이다.
도 6a는 예시적인 센서 폴링 배경 프로세스에 대한 흐름도이다.
도 6b는 누설 전류 정보에 적어도 부분적으로 기초하는 예시적인 제 1 적응형 스레드 스케줄링 프로세스에 대한 흐름도이다.
도 7a는 예시적인 듀얼 프로세서 코어에 대한 낮은 온도를 가지는 프로세스(P), 전압(V), 온도(T)를 도시하는 전력 대 동작 주파수의 그래프를 도시한다.
도 7b는 도 7a의 예시적인 듀얼 프로세서 코어에 대한 높은 온도를 가지는 PVT 환경을 도시하는 전력 대 동작 주파수의 그래프를 도시한다.
도 8은 누설 전류 정보에 적어도 부분적으로 기초하는 예시적인 제 2 적응형 스레드 스케줄링 프로세스에 대한 흐름도이다.
도 9는 다양한 센서 출력들로부터의 정적 누설 전류 및 동적 전력을 결정하기 위한 예시적인 센서 폴링 프로세스에 대한 흐름도이다.
첨부된 도면들과 관련하여 아래에서 설명되는 상세한 설명은 본 발명의 다양한 예시적인 실시예들의 설명으로서 의도되고, 오직 본 발명이 실시될 수 있는 실시예들만을 나타내는 것으로 의도되지 않는다. 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 특정 세부사항들을 포함한다. 그러나, 본 발명이 이러한 특정 세부사항들 없이 실시될 수 있다는 것은 당업자에게 명백할 것이다. 일부 경우들에서, 잘-알려져 있는 구조들 및 컴포넌트들은 본 발명의 개념들을 모호하게 하는 것을 회피하기 위해서 블록 다이어그램 형태로 도시된다.
본 발명의 교시내용들에 따른 동작에 기초하여 동작되기 위한 또는 본 발명의 교시내용들에 따른 동작들을 수행하기 위한 컴퓨터 프로그램 코드 또는 "프로그램 코드"는 C, C++, JAVA®, Smalltalk, JavaScript®, Visual Basic®, TSQL, Perl과 같은 고급 프로그래밍 언어로 또는 다양한 다른 프로그래밍 언어들로 기록될 수 있다. 타겟 프로세서 아키텍처에 대한 프로그램들은 원시(native) 어셈블러 언어로 직접 기록될 수도 있다. 원시 어셈블러 프로그램은 기계 레벨 바이너리 명령들의 명령 연상 표현들을 사용한다. 여기에서 사용되는 컴퓨터 판독가능 저장 매체에 저장된 프로그램 코드 또는 프로그램들은 그 포맷이 프로세서에 의해 이해가능한 객체 코드와 같은 기계 언어 코드를 지칭한다.
도 1은 본 발명의 실시예가 바람직하게 사용될 수 있는 예시적인 무선 통신 시스템(100)을 도시한다. 예시를 위해서, 도 1은 3개의 원격 유닛들(120, 130 및 150) 및 2개의 기지국들(140)을 도시한다. 또한, 도 1은 기지국들(140) 및 원격 유닛들(120, 130 및 150)로부터의 순방향 링크 신호들(180) 및 원격 유닛들(120, 130 및 150)로부터 기지국들(140)로의 역방향 신호들(190)을 도시한다. 공통 무선 통신 시스템들은 더 많은 원격 유닛들 및 기지국들을 가질 수 있다는 것이 인식될 것이다. 원격 유닛들(120, 130 및 150)은 본 발명을 구현하도록 적응된 컴포넌트들(125A, 125B 및 125C)에 의해 표현되는 바와 같이 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들 또는 이 둘 모두를 포함한다. 예를 들어, 컴포넌트들(125A, 125B 및 125C)은 아래에서 추가적으로 논의되는 바와 같은 센서들, 프로세서들 및 적응형 스레드 스케줄링 소프트웨어를 포함할 수 있다.
도 1에서, 원격 유닛(120)은 모바일 전화로 도시되고, 원격 유닛(130)은 휴대용 컴퓨터로 도시되며, 원격 유닛(150)은 무선 로컬 루프 시스템 내의 고정 위치 원격 유닛으로 도시된다. 예로서, 원격 유닛들은 대안적으로 셀 폰들, 페이저(pager)들, 워키 토키(walkie talkie)들, 핸드-헬드 개인용 통신 시스템(PCS) 유닛들, 개인용 데이터 보조기들과 같은 휴대용 데이터 유닛들 또는 미터 판독 장비와 같은 고정 위치 데이터 유닛들일 수 있다. 도 1이 본 발명의 교시내용들에 따른 원격 유닛들을 도시하지만, 본 발명은 이러한 예시적인 도시된 유닛들에 제한되지 않는다. 본 발명의 실시예들은 정적 누설 전류 및 동적 전력이 아래에서 더 상세하게 설명되는 바와 같이 결정될 수 있는 둘 이상의 프로세서들 및 센서들을 가지는 임의의 디바이스에서 적합하게 사용될 수 있다.
도 2a는 예시적인 듀얼 프로세서 코어에 대한 낮은 온도(TL)를 가지는 프로세스(P), 전압(V), 온도(T)의 PVTL 환경을 도시하는 밀리와트(mW) 단위의 전력(204) 대 메가헤르츠(MHz) 단위의 동작 주파수(206)의 그래프(200)를 도시한다. 코어-A에 대한 동적 전력 대 주파수(PvF) 곡선(208) 및 코어-B에 대한 PvF 곡선(210)은 전력 포인트들(212 및 214)에서 각각 시작한다. 전력 포인트들(212 및 214)은 PVTL 환경에서의, 코어-A 및 코어-B 각각에 대한 정적 누설 전력이다. 특히, 코어-A는 전력 포인트(212)에 의해 표시되는 바와 같이 코어-B보다 더 높은 누설 전력을 가지지만, 코어-B보다 주파수(F1)를 초과하는 높은 주파수들에서 동작 당 더 적은 동적 전력을 사용한다. 코어-B는 전력 포인트(214)에 의해 표시되는 바와 같은 더 낮은 누설 전력을 가지며, 코어-A에 비해 F1 미만의 더 낮은 주파수들에서 더 효율적이다. 크로스오버 포인트(P1, F1)(220)는 듀얼 코어들에 대한 동작 주파수 및 PVT 환경에 의존하여 코어-A에 또는 코어-B에 태스크들을 할당하기 위해서 고려될 크로스오버 결정 포인트를 표현한다.
도 2b는 도 2a의 듀얼 프로세서 코어에 대한 높은 온도(TH)를 가지는 PVTR 환경을 도시하는 전력(254) 대 동작 주파수(256)의 그래프(250)를 도시한다. 코어-A에 대한 동적 PvF 곡선(258) 및 코어-B에 대한 PvF 곡선(260)은 전력 포인트들(262 및 264)에서 각각 시작한다. 전력 포인트들(262 및 264)은 PVTH 환경에서의 코어-A 및 코어-B 각각에 대한 정적 누설 전력이며, 여기서 TH > TL이다. 특히, 코어-A는 전력 포인트(262)에 의해 표시되는 바와 같이 코어-B보다 더 높은 누설 전력을 가지지만, 코어-B보다 주파수(F2)를 초과하는 높은 주파수들에서 동작 당 더 적은 동적 전력을 사용한다. 코어-B는 전력 포인트(264)에 의해 표시되는 바와 같은 더 낮은 누설 전력을 가지며, 코어-A에 비해 F2 미만의 더 낮은 주파수들에서 더 효율적이다. 크로스오버 포인트(P2, F2)(270)는 듀얼 코어들에 대한 동작 주파수 및 PVT 환경에 의존하여 코어-A에 또는 코어-B에 태스크들을 할당하기 위해서 고려될 다른 결정 포인트를 표현한다.
그래프들(200 및 250)의 비교는 그래프(250)와 연관된 더 높은 온도가 크로스오버 포인트(P2, F2)(270)로 하여금 크로스오버 포인트(P1, F1)(220)보다 더 높은 전력 레벨(P2 > P1) 및 더 낮은 주파수(F2 < F1)에 있게 되도록 야기한다는 것을 표시한다. 2개의 그래프들(200 및 250)에 의해 특성화되는 예시적인 듀얼 프로세서 코어에 대하여, 코어-B에 크로스오버 주파수(crossover frequency)(F1 또는 F2) 미만의 선택된 동작 주파수를 가지는 태스크들을 할당함으로써, 그리고 코어-A에 태스크들을 할당하기 위해서 크로스오버 포인트 주파수 이상의 선택된 태스크 동작 주파수들에 대하여 더 낮은 전력 사용이 일반적으로 획득될 것이다.
도 2a 및 2b에서 평가되는 듀얼 코어들은 2개의 상이한 제조 프로세스들을 위해서 설계될 수 있다. 예를 들어, 코어-A는 높은 성능을 달성하기 위해서 낮은 전압 스레쉬홀드(lo-Vt) 트랜지스터 프로세스로 주로 제조될 수 있지만, 증가되는 누설 전류 비용으로 제조될 수 있다. 코어-B는 낮은 누설 전류를 가지는 우수한 성능을 달성하기 위해서 높은 스레쉬홀드(hi-Vt) 트랜지스터 프로세스로 주로 제조될 수 있다. 또한, 2개의 코어들 중 하나는 예를 들어, 타이밍 크리티컬(critical) 경로 회로들 내의 hi-Vt 및 lo-Vt 트랜지스터들의 혼합(mix)으로 제조될 수 있다. 본 발명의 기법들은 전술된 제조 설계들 중 임의의 것을 포함하는 하나 이상의 프로세스들로 제조되는 코어들 뿐만 아니라 본 발명의 원리들이 지금 또는 추후에 적용가능한 다른 것들에 적용가능하다.
도 3은 예시적인 비대칭 멀티프로세서 시스템 온 칩(SoC)(300)을 도시한다. 도 3에 도시되는 특정 구성은 예시일 뿐이며, 본 발명의 기법들은 다수의 칩들 및 도 3에 도시되는 것보다 더 많거나 더 적은 주파수 및 전압 제어가능한 전력 도메인들을 가지는 칩들로 구성되는 다른 시스템 구성들에 적용가능하다는 것에 유의해야 한다. 예시적인 비대칭 멀티프로세서 SoC(300)는 중앙 처리 장치 A(CPU-A)(304), CPU-B(306), 공동 메모리 1(SMEM-1)(308), SMEM-2(310), 디지털 신호 프로세서 A(DSP-A)(312), DSP-A(312), DSP-B(314), 제어기(316), 고정 함수 로직(318) 및 센서들(320-326)을 포함한다. 센서들(320-326)은 예를 들어, 비대칭 멀티프로세서 SoC(300)에 대한 크로스오버 포인트 정보에 응답하여, CPU-A(304), CPU-B(306), DSP-A(312) 및 DSP-B(314)와 같은 다양한 코어들 상에서의 태스크 할당들에 영향을 미칠 수 있으며, 제어기(316) 및 고정 함수 로직(318) 상에서의 동작에 영향을 미칠 수 있는 조건들을 모니터링하도록 배치된다. OS 스케줄러(305)와 같은 동작 시스템(OS) 스케줄러는 멀티프로세서 시스템 내의 프로세서들 중 하나 이상에서 동작할 수 있다. 스케줄러는 아래에서 더 상세하게 설명되는 바와 같이, PVT 동작 공간에 걸쳐 멀티프로세서 시스템의 상대적인 전력 및 성능 곡선들에 기초하여 프로세서들 상에서 실행하기 위해서 태스크들을 스케줄링할 것이다.
도 4a는 예시적인 제 1 센서 회로(400)를 도시하는 블록 다이어그램이다. 제 1 센서 회로(400)는 직류 누설 전류 센서(404), 디지털 컨버터(406) 및 출력(410) 상에서 누설 전류 값을 출력하는 인터페이스 포트(408)를 포함한다. 다양한 타입들의 누설 전류 센서들은 직류 누설 전류 센서(404)에 대하여 사용될 수 있다. 이러한 누설 센서 회로는 여기에 참조로 포함되는 IEEE 2004 Symposium on VLSI Circuits digest of technical papers의 페이지들 250 및 251의 D. H. Kim, K. Roy, S. Hsu, R. K. Krishnamurthy 및 S, Borkar에 의한 "An On-Die CMOS Leakage Current Sensor for Measuring Process Variation in Sub-90nm generations"에 설명된다. 사용되는 누설 전류 센서 타입에 기초하여, 적절한 디지털 컨버터는 디지털 컨버터(406)에 대하여 선택된다. 또한, 출력(410) 상의 누설 전류 값은 아래에서 더 상세하게 설명되는 바와 같이 교정 프로세스에서 이용된다. 누설 전류 값은 예를 들어, 특정 전압 및 주파수 제어가능한 전력 도메인이 상기 제어가능한 전력 도메인에 대하여 제로 헤르츠(Hz)에서의 주파수를 사용하는 유휴 또는 저전력 상태에 있는 경우, 칩 동작 동안 모니터링될 수 있다.
도 4b는 예시적인 제 2 센서 회로(430)를 도시하는 블록 다이어그램이다. 제 2 센서 회로(430)는 링 오실레이터(434), 주파수 카운터(436), 인터페이스 포트(438) 및 출력(440)을 포함한다. 링 오실레이터(434)는 그것이 연관된 조정가능한 전력 도메인에 대한 누설 전류를 결정하기 위해서 연관되는 제어가능한 전력 도메인에서 사용되는 트랜지스터들로 구성될 수 있다. 예를 들어, 링 오실레이터는 대개 CPU-A(304)에서 사용될 수 있고 CPU-A(304)와 연관되는 누설 전류가 결정될 수 있는 주파수를 사용하여 동작할 수 있는 높은 스레쉬홀드 전압 트랜지스터들로 구성될 수 있다. 링 오실레이터 출력(435)은 누설 전류를 표현하는 주파수 카운트를 결정하기 위해서 고정된 측정 주기 동안 주파수 카운터(436)에서 카운팅되는 발진 파형으로 구성된다. 주파수 카운트는 출력을 위한 인터페이스 포트(438)에 의해 선택된다.
다른 실시예에서, 다수의 링 오실레이터들은 코어에서 사용되는 트랜지스터들의 타입에 기초하여 이용될 수 있다. 예를 들어, 낮은 스레쉬홀드 전압 트랜지스터들 및 높은 스레쉬홀드 전압 트랜지스터들의 결합으로 구성되는 코어에서, 2개의 링 오실레이터들이 이용될 수 있다. 하나의 링 오실레이터는 높은 스레쉬홀드 전압 트랜지스터들로 구성되고, 다른 링 오실레이터는 높은 스레쉬홀드 전압 트랜지스터들로 구성된다. 이 둘 모두의 링 오실레이터들은 연관된 코어에 대한 누설 전류 정보를 제공하여 측정 및 판독될 것이다. 다른 실시예에서, 제 2 센서 회로(430)의 설계는 일반적으로 중복될 수 있지만, 누설 전류 정보를 결정하기 위해서 이용되었고 프로세스 변화들을 게이징(gauge)하기 위해서 사용되었던 것과는 상이한 트랜지스터들의 세트로 구성될 수 있다.
도 4c는 예시적인 제 3 센서 회로(470)를 도시하는 블록 다이어그램이다. 제 3 센서 회로(470)는 전압 센서(474), 온도 센서(476), 디지털 컨버터(478), 인터페이스 포트(480) 및 출력(484)을 포함한다. 전압 센서(474) 및 온도 센서(476)는 예를 들어, CPU-A(304)과 같은 제어가능한 전력 도메인에 대한 전압 및 온도 각각과 연관된 전압 레벨을 각각 생성할 수 있다. 이 둘 모두의 센서들의 출력 전압 레벨들은 디지털 컨버터로의 아날로그의 사용과 같은 디지털 컨버터(478)에서의 디지털 포맷으로 변환되고, 측정된 센서 타입 및 그 위치에 따라 태깅(tag)될 수 있다. 이후, 변환된 전압 및 온도 값들은 인터페이스 포트(440)에 의해 출력을 위해서 선택된다.
도 5는 온 칩 센서 교정 프로세스(500)에 대한 흐름도이다. 프로세스(500)는 테스팅 구성에서 환경 온도를 조정하기 위해서 출력을 제어할 수도 있는 멀티-프로세서 OS의 프레임워크 내에서 동작하는 소프트웨어 프로시저 또는 프로시저들에서 구현될 수 있다. 프로세스(500)는 교정되는 칩 외부의 동작 환경을 세팅하는 단계, 온 칩 센서 값들을 판독하는 단계, 판독 센서 값들을 평가하는 단계, 크로스오버 결정 포인트들을 결정하는 단계, 칩 또는 시스템이 의도된 애플리케이션에 대하여 동작가능한지의 여부를 결정하는 단계를 포함한다. 또한, 프로세스(500)는 제품 시스템 테스팅 동안 실행될 수 있으며, 여기서 환경 온도는 제어되지 않을 수 있다. 이러한 경우, 교정 프로세스는 제로 헤르츠로 세팅된 코어의 선택가능한 동작 주파수들 모두를 사용하여 다수의 온도 센서들로부터 테스트 시간에 기존의 온도를 샘플링하고, 수용가능한 허용치(tolerance) 내에 있는 판독물(reading)들 사이의 평균 온도를 발견하기 위해서 다수의 온도 센서 판독물들을 비교하며, 이에 따라 교정 프로세스를 조정한다. 또한, 센서들은 추후 시스템 사용에서 발생하는 제품 동작 조건들 동안 획득되는 새로운 판독물들에 기초하여 재교정될 수 있다.
블록(502)에서, 초기 환경 온도, 동작 전압 및 동작 주파수는 도 3의 CPU-A(304)와 같은 제어가능한 전력 도메인에 대하여 세팅된다. 예를 들어, 낮은 온도, 낮은 동작 전압 및 제로 주파수는 도 2a의 전력 포인트(212)와 연관될 수 있는 바와 같이, 누설 전류 정적 전력 값을 결정하기 위해서 세팅될 수 있다. 블록(504)에서, 센서 또는 센서들은 폴링되며, 판독물들은 측정된 센서들의 타입에 그리고 테스트 하의 제어가능한 전력 도메인에 따라 태깅되고, 아래에서 더 상세하게 설명되는 바와 같이, 추후 평가를 위해 저장된다. 예를 들어, 도 3의 센서(320)는 판독, 태깅되고, 판독물은 저장된다. 블록(506)에서, 센서 값들은 기대 값들 예를 들어, 최소 그리고 최대 기대 값들과 비교된다. 결정 블록(508)에서, 센서 값들이 수용가능한 범위 내에 있는지의 여부가 결정된다. 센서 값들이 수용가능한 범위 내에 있는 경우, 프로세스(500)는 결정 블록(510)으로 진행한다. 결정 블록(510)에서, 모든 선택된 제어가능한 전력 도메인들이 교정되는지의 여부가 결정된다. 모든 선택된 제어가능 전력 도메인들이 교정되었을 경우, 프로세스(500)는 결정 블록(512)으로 진행한다. 결정 블록(512)에서, 모든 세팅가능한 조건들이 평가되었는지의 여부가 결정된다. 모든 세팅가능한 조건들이 평가되었을 경우, 센서 교정 프로세스는 블록(516)으로 진행한다. 블록(516)에서, 크로스오버 결정 포인트들의 테이블 또는 테이블들은 적절한 코어 결합들, PVT 특성들 및 선택된 주파수들에 대하여 생성된다. 블록(518)에서, 센서 교정 프로세스 종료되고, 시스템 동작들은 인에이블링될 수 있다. 인에이블링된 이후, 도 3의 OS 스케줄러(305)는 아래에서 더 상세하게 설명되는 바와 같이 다양한 교정된 센서 판독물들을 사용하여 다양한 코어들 상에서의 스레드들을 스케줄링할 수 있다.
결정 블록(508)을 참조하여, 센서 값들이 수용가능한 범위 내에 있지 않는 경우, 프로세스(500)는 블록(520)으로 진행한다. 블록(520)에서, 제어가능한 전력 도메인은 수용가능하지 않은 센서 값 또는 값들을 가지는 것으로 마킹(mark)된다. 결정 블록(522)에서, 시스템이 현재 애플리케이션에 대하여 여전히 사용가능한지의 여부가 결정된다. 시스템이 현재 애플리케이션에 대하여 여전히 사용가능한 경우, 프로세스(500)는 블록(524)으로 진행한다. 블록(524)에서, OS 스케줄러(305)에는 하드웨어 손실이 통지된다. 예를 들어, 결함 허용(fault tolerant) 시스템에서, 하나의 CPU를 오프라인시키고, 파워 오프하는 것은 시스템 동작들에 대하여 수용가능할 수 있다. 시스템이 현재 애플리케이션에 대하여 사용가능하지 않은 경우, 프로세스(500)는 블록(526)으로 진행한다. 결정 블록(526)에서, 시스템은 예를 들어, 배터리 동작을 요구하지 않는 데스크톱 시스템과 같은 다른 애플리케이션들에 대하여 사용가능한지의 여부가 결정된다. 시스템이 다른 애플리케이션들에 대하여 사용가능한 경우, 프로세스(500)는 블록(528)으로 진행한다. 블록(528)에서, 일부분은 센서 값들에 따라 비닝(bin)하기 위해서 마킹된다. 예를 들어, 일부분들은 센서들에 의해 제공되는 누설 전류 정보의 범위들에 따라 비닝될 수 있다. 시스템이 다른 애플리케이션들에 대하여 사용가능하지 않은 경우, 프로세스(500)는 블록(530)으로 진행한다. 블록(530)에서, 사용자에게 시스템 실패가 통지된다.
결정 블록(510)을 참조하면, 모든 선택된 제어가능한 전력 도메인들이 교정되지 않았다고 결정되는 경우, 프로세스(500)는 블록(530)으로 진행한다. 블록(530)에서, CPU-B(306)와 같은 새로운 제어가능한 전력 도메인은 도 3의 센서(321)의 센서 교정을 위해서 선택된다. 프로세스(500)는 필요한 경우, 초기 제어가능한 전력 도메인에 대한 센서들의 교정에 이용되는 것과 비교가능한 세팅으로새로운 제어가능한 전력 도메인에 대한 환경 온도, 동작 전압 및 동작 주파수를 조정하기 위해서 블록(502)으로 리턴한다.
결정 블록(512)을 참조하면, 모든 세팅가능한 조건들이 평가되지 않았다고 결정되는 경우, 프로세스(500)는 블록(534)로 진행한다. 블록(534)에서, 새로운 평가 상태로 세팅될 조건들이 마킹되며, 프로세스(500)는 새로운 조건들을 세팅하기 위해서 블록(502)으로 리턴한다.
도 6a는 예시적인 센서 폴링 배경 프로세스(600)에 대한 흐름도이다. 프로세스(600)는 멀티-프로세서 OS의 프레임워크 내에서 동작하는 소프트웨어 프로시저 또는 프로시저들에서 구현될 수 있다. 시스템 동작 동안, 센서들은 예를 들어, 특정 시간 기간들에서 또는 다양한 제어가능한 전력 도메인들에 태스크들을 할당하기 전에 폴링된다. 블록(504)에서, 센서들은 폴링되며, 판독물들은 대응하는 제어가능한 전력 도메인들로 태깅되며, 추후 평가를 위해 저장된다. 결정 블록(604)에서, 임의의 크로스오버 포인트가 업데이트될 필요가 있는지의 여부가 결정된다. 예를 들어, 환경 온도는 도 2a 및 도 2b의 그래프들(200 및 250)로 도시되는 바와 같이 크로스오버 포인트들에 영향을 미치는 휴대용 디바이스에 대하여 급격히 변화할 수 있다. 크로스오버 포인트가 업데이트될 필요가 있는 경우, 배경 프로세스(600)는 블록(606)으로 진행한다. 블록(606)에서, 적절한 크로스오버 포인트 또는 포인트들이 업데이트된다. 결정 블록(604)을 참조하면, 어떤 크로스오버 포인트들도 업데이트될 필요가 없는 경우, 배경 프로세스(600)는 결정 블록(608)으로 진행한다. 결정 블록(608)에서, 다음의 센서 폴링을 위한 시간인지의 여부가 결정된다. 다음의 센서 폴링을 위한 시간인 경우, 배경 프로세스(600)는 블록(504)으로 진행한다. 다음의 센서 폴링을 위한 시간이 아닌 경우, 배경 프로세스(600)는 센서 폴링 시간에 도달할 때까지 대기한다. 배경 프로세스(600)가 동작 중에 있는 동안, 다른 시스템 동작들은 제품 동작 요건들을 계속 충족시킨다.
도 6b는 누설 전류 정보에 적어도 부분적으로 기초하는 예시적인 제 1 적응형 스레드 스케줄링 프로세스(650)에 대한 흐름도이다. 프로세스(650)는 도 3의 OS 스케줄러(305)와 같은 멀티-프로세서 OS의 프레임워크 내에서 동작하는 소프트웨어 프로시저 또는 프로시저들에서 구현될 수 있다. 프로세스(650)는 태스크가 도 3의 CPU-A(304) 및 CPU-B(306)와 같은 2개의 프로세서 코어들 중 하나에 할당될 수 있는 예시적인 경우에 대하여 도시된다. 멀티-프로세서 OS 스케줄러 등은 태스크가 할당될 것이라고 결정한다. 블록(604)에서, 할당될 태스크는 태스크를 실행시키기 위한 적절한 동작 전압 및 주파수를 결정하기 위해서 평가된다. 블록(606)에서, 태스크의 선택된 동작 주파수는 태스크를 할당할 제어가능한 전력 도메인을 결정하기 위해서 사용되는 입력들 중 하나로서 태스크 할당에 이용가능한 제어가능한 전력 도메인들에 대한 크로스오버 결정 포인트 값들과 비교된다. 블록(608)에서, 태스크의 선택된 주파수가 적절한 크로스오버 주파수보다 적은지의 여부가 결정된다. 태스크의 주파수가 적은 경우, 프로세스(650)는 블록(610)으로 진행한다. 블록(610)에서, 태스크는 CPU-B(306)와 같은 제 1 코어 제어가능한 전력 도메인에 할당된다. 태스크의 주파수가 적절한 크로스오버 주파수보다 크거나 동일한 경우, 프로세스(650)는 블록(612)으로 진행한다. 블록(612)에서, 태스크는 CPU-A(304)와 같은 제 2 코어 제어가능한 전력 도메인에 할당된다. 결정 블록(614)에서, 할당될 임의의 다른 태스크들이 존재하는지의 여부가 결정된다. 할당될 추가적인 태스크들이 존재하는 경우, 프로세스(650)는 블록(604)으로 리턴한다. 할당될 어떤 추가적인 태스크들도 없는 경우, 프로세스(650)는 호출 루틴(calling routine)으로 리턴한다. 적응형 스레드 스케줄링 프로세스는 3개 이상의 코어들로 스케일러블(scalable)하다. 3개 이상의 조정가능한 전력 도메인들의 경우, 다수의 크로스오버 포인트들은 태스크들의 할당을 결정할 때 평가될 수 있다.
도 7a는 예시적인 듀얼 프로세서 코어에 대한 낮은 온도(TL)를 가지는 프로세스(P), 전압(V), 온도(T)의 PVTL 환경을 도시하는 밀리와트(mW) 단위의 전력(704) 대 메가헤르츠(MHz) 단위의 동작 주파수(706)의 그래프(700)를 도시한다. 코어-A에 대한 동적 전력 대 주파수(PvF) 곡선(708) 및 코어-B에 대한 PvF 곡선(710)은 전력 포인트들(712 및 714)에서 각각 시작한다. 전력 포인트들(712 및 714)은 특정 PVTL 조건에서 코어-A 및 코어-B 각각에 대한 정적 누설 전력이다. 특히, 코어-A는 전력 포인트(712)에 의해 표시되는 바와 같은 대략 25mW의 코어-B보다 더 높은 누설 전력을 가지지만, 코어-B보다 주파수(F1)를 초과하는 높은 주파수들에서 동작 당 더 적은 동적 전력을 사용한다. 코어-B는 전력 포인트(714)에 의해 표시되는 바와 같은 대략 10mW의 더 낮은 누설 전력을 가지며, 코어-A에 비해 F1 미만의 더 낮은 주파수들에서 더 효율적이다. 크로스오버 포인트(P1, F1)(720)는 듀얼 코어들에 대한 동작 주파수 및 PVT 환경에 의존하여 코어-A에 또는 코어-B에 태스크들을 할당하기 위해서 고려될 수 있는 크로스오버 포인트를 표현한다.
도 7b는 도 7a의 예시적인 듀얼 프로세서 코어에 대한 높은 온도(TH)를 가지는 PVTH 환경을 도시하는 전력(754) 대 동작 주파수(756)의 그래프(750)를 도시한다. 코어-A에 대한 동적 PvF 곡선(758)및 코어-B에 대한 PvF 곡선(760)은 전력 포인트들(762 및 764)에서 각각 시작한다. 전력 포인트들(762 및 764)은 PVTH 조건에서의 코어-A 및 코어-B 각각에 대한 정적 누설 전력이며, 여기서 TH > TL이다. 특히, 코어-A는 전력 포인트(762)에 의해 표시되는 바와 같이 코어-B보다 대략 35mW의 더 높은 누설 전력을 가지지만, 코어-B보다 주파수(F2)를 초과하는 높은 주파수들에서 동작 당 더 적은 동적 전력을 사용한다. 코어-B는 전력 포인트(764)에 의해 표시되는 바와 같은 대략 20mW의 더 낮은 누설 전력을 가지며, 코어-A에 비해 F2 미만의 더 낮은 주파수들에서 더 효율적이다. 크로스오버 포인트(P2, F2)(770)는 듀얼 코어들에 대한 동작 주파수 및 PVT 환경에 의존하여 코어-A에 또는 코어-B에 태스크들을 할당하기 위해서 고려될 수 있는 다른 결정 포인트를 표현한다.
일 예로서, 특정 태스크는 도 7a에 도시되는 바와 같은 특성들을 가지는 2개의 프로세서 코어들 중 하나에 할당될 것이다. 특정 태스크는 요건들을 충족시키기 위해서 각각의 코어 상에서 주파수 x(Fx)를 요구한다. 또한, 주파수(Fx)는 이 둘 모두의 코어들에 대한 최소 코어 전압 소스를 요구한다. 도 7a에서 도시되는 바와 같은 동작 온도(TL) 및 주파수(Fx)에서, 코어-A는 포인트(Px ,A,L, Fx)(722)와 연관된 동적 전력(Px ,A,L)을 나타낼 것이고, 코어-B는 포인트(Px ,B,L, Fx)(724)와 연관된 동적 전력(Px,B,L, Fx)을 나타낸다. 이러한 특정 태스크에 대하여, 코어-A 전력은 예를 들어, 25mW+35mW = 6OmW와 동일한 누설 전력(PL ,A,L) 플러스 동적 전력(PD ,A,L)을 포함한다. 코어-B 전력은 PL ,B,L + PD ,B,L = 10mW + 40mW = 50mW와 동일하다. 이러한 분석에 기초하여, 이러한 특정 태스크는 그것이 크로스오버 포인트(720)를 초과하고, 코어-A의 동적 전력(35mW)보다 더 높은 동적 전력 컴포넌트(40mW)를 가질지라도, 코어-B에 할당되어야 한다. 포인트(712)에서의 코어-A에 대한 누설 전력은 이러한 특정 태스크가 어디에 할당될 것인지를 결정할 때 상당한 전력을 기여한다.
분석은 도 7b에 도시되는 바와 같이 더 높은 온도(TH)(TH>TL)에서 재고된다. 동작 온도(TH) 및 주파수(Fx)에서, 코어-A는 포인트(Px ,A,H, Fx)(772)와 연관된 동적 전력(Px ,A,H)을 나타낼 것이고, 코어-B는 포인트(Px ,B,H, Fx)(772)와 연관된 동적 전력(Px,B,H)을 나타낸다. 이러한 특정 태스크에 대하여, 코어-A 전력은 TH에서, 35mW+45mW = 8OmW와 동일한 누설 전력(PL ,A,H) 플러스 동적 전력(PD ,A,H)을 포함한다. 코어-B 전력은 PL ,B,H + PD ,B,H = 20mW+80mW = 10OmW와 동일하다. 이러한 분석에 기초하여, 이러한 특정 태스크는 코어-A에 할당되어야 한다. 더 높은 온도에서, 코어-B의 동적 전력 컴포넌트는 이러한 특정 태스크가 어디에 할당될 것인지를 결정할 때 상당한 기여를 한다.
도 7a 및 7b에 도시되는 바와 같은 분석에 기초하여, 스케줄링 알고리즘은 선형-시스템 최적화에 기초하여 사용될 수 있다. 예를 들어, 온도 "t"에서의 코어-i에 대한 전력은 누설 전력(PL ,i,t) 플러스 동적 전력(PD,i,t)와 동일한 Pi ,t이다. 모든 코어들에 대한 전력은 Pcores ,t = Σ Pi ,t이다.
동적 전력은 수식 (1)에 의해 일반적으로 결정(govern)되는 코어 공급 전압(V), 동작 주파수(F) 및 스위칭 커패시턴스(C)에 의존한다.
Figure pct00001
(1)
여기서, V는 동작 전압이고, F는 동작 주파수이며, C는 평가되는 제어가능한 전력 도메인의 스위칭 커패시턴스를 표현하는 상수이다. 코어에 할당될 각각의 태스크는 요건들을 충족시키기 위해서 소프트웨어에 의해 결정되는 상기 코어에 대한 최소 주파수(F)에서 동작하도록 요구된다. 또한, 공급 전압은 특정된 주파수(F)에서 코어를 동작시키는데 충분한 전력을 제공하는 동안 전력을 감소시키기 위해서 소프트웨어에 의해 결정된다. 스위칭 커패시턴스는 제품 릴리스(release) 이전에 설계 및 제조 프로세스에 의해 결정된다. 따라서, 동적 전력은 센서들을 필요로 하지 않고 동작 시스템 스케줄러에 의해 근사화되는 계산된 값일 수 있다.
누설 전력이 온도 및 프로세스에 강력하게 의존하므로, 센서들은 스케줄러로 누설 정보를 제공하는데 사용된다. 센서 입력에 기초하여 누설 전력을 근사화하고, 특정 주파수(F) 및 전압(V)에서의 태스크가 할당될 각각의 코어에 대한 동적 전력을 계산함으로써, 스케줄러는 최저 전력 레이팅(rating)을 가지는 코어를 선택할 수 있다. 적응형 스케줄링 방식을 이용함으로써, 칩 수명들에 따라 변하는 누설 전류의 영향들이 고려될 수도 있다. 또한, 결함 허용 메커니즘으로서, 적응형 스케줄링 방식은 누설 전류로 하여금 수용가능한 범위를 초과하여 증가하게 하는 임의의 온 칩 실패(failure)를 고려할 수 있다.
도 8은 누설 전류 정보에 적어도 부분적으로 기초하는 예시적인 제 2 적응형 스레드 스케줄링 프로세스(800)에 대한 흐름도이다. 프로세스(800)는 도 3의 OS 스케줄러(305)와 같은 멀티-프로세서 OS의 프레임워크 내에서 동작하는 소프트웨어 프로시저 또는 프로시저들에서 구현될 수 있다. 복수의 코어들 중 하나에 할당될 태스크는 고려 중인 코어들에 대한 동작 주파수(F) 및 전압(V)에 대하여 평가된다. 블록(804)에서, 동적 전력은 할당된 주파수(F), 전압(V) 및 특정된 스위칭 값(C)에서 코어에 대하여 계산된다. 블록(806)에서, 누설 측정과 연관된 코어 센서들이 판독된다. 블록(808)에서, 코어 누설 전력은 센서 판독물들로부터 추론된다. 블록(810)에서, 추론된 누설 전력은 코어 전력을 발견하기 위해서 동적 전력에 추가된다. 결정 블록(812)에서, 이러한 태스크가 할당될 코어들에 대한 코어 전력이 계산되었는지의 여부가 결정된다. 이러한 태스크가 할당될 코어들에 대한 전력이 계산되지 않은 경우, 프로세스(800)는 다른 코어를 평가하기 위해서 블록(804)으로 리턴한다. 프로세스(800)는 이러한 태스크 할당에 대하여 고려될 모든 코어들이 평가될 때까지 계속된다. 이러한 태스크 할당에 대하여 고려될 코어들에 대한 개별 코어 전력이 평가되었으면, 프로세스(800)는 블록(814)으로 진행한다. 블록(814)에서, 태스크는 최저 코어 전력을 가지는 코어에 할당된다. 결정 블록(816)에서, 할당될 더 많은 태스크들이 존재하는지의 여부가 결정된다. 할당될 더 많은 태스크들이 존재하는 경우, 프로세스(800)는 결정 블록(812)으로 리턴한다. 더 이상 할당될 태스크들이 존재하지 않는 경우, 프로세스(800)는 호출 루틴으로 리턴한다.
도 9는 다양한 센서 출력들로부터 정적 누설 전류 및 동적 전력을 결정하기 위한 예시적인 센서 폴링 프로세스(900)에 대한 흐름도이다. 프로세스(900)는 멀티-프로세서 OS의 프레임워크 내에서 동작하는 소프트웨어 프로시저 또는 프로시저들에서 구현될 수 있다. 시스템 프로세스는 블록(504)으로 하여금 센서들을 폴링하는 것을 인에이블링한다. 블록(904)에서, 도 4c의 전압 센서(474)와 같은 전압 센서가 판독된다. 블록(906)에서, 도 4c의 온도 센서(476)와 같은 온도 센서가 판독된다. 블록(908)에서, 주파수 카운트 값은 도 4b의 주파수 카운터(436)와 같은 주파수 카운트로부터 판독된다. 블록(910)에서, 판독되는 센서 값들은 센싱된 조건들을 표현하는 디지털 값들과 같은 프로세서 판독가능 값들로 변환된다. 판독물들은 대응하는 제어가능한 전력 도메인으로 태깅되고, 저장된다. 블록(910)은 하드웨어 또는 소프트웨어 제어 하에서, 판독, 변환 및 태깅될 센서를 개별적으로 선택할 수 있다.
누설 전류는 예를 들어, 소스 누설 전류 및 게이트 누설 전류로의 드레인과 같은 다양한 인자들에 기인할 수 있다. 누설 전류의 주요한 형태는 사용되는 프로세스 기술에 따라 일반적으로 달라진다. 기존의 프로세스들에서의 누설 전류의 최대 소스들 중 하나는 소스 누설 전류로의 드레인이다. 여기에 참조로 포함되는 2004년 9월의 IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 12, No. 9에서 L. T. Clark, M. Morrow, 및 W. Brown에 의한 "Reverse-Body Bias and Supply Collapse for Low Effective Standby Power"에 설명되는 바와 같이, 소스 누설 전류(Ioff)로의 드레인은 수식 2를 이용하여 대략 계산될 수 있다.
Figure pct00002
(2)
여기서, Vt는 스레쉬홀드 전압이고, S는 수식 3으로부터 결정되는 서브스레쉬홀드 전압 스윙(swing)이다.
Figure pct00003
(3)
여기서, k는 볼츠만(Boltzmann) 상수이고, T는 Kelvin 단위의 동작 온도이며, q는 기본 전하이고, CD는 공핍층 커패시턴스이며, COX는 누설 전류(Ioff)로 하여금 평가되는 제어가능한 전력 도메인을 제조하는데 사용되는 온도 및 프로세스에 의존하게 하는 게이트 옥사이드 커패시턴스이다. 예를 들어, 도 9의 블록(504)에서 제공되고, 수식들 2 및 3을 이용하는, 특정 온도 센서 판독물에 기초하여, 누설 전류 정보가 추정될 수 있다. 또한, 누설 전류는 도 5의 교정 프로세스(500)와 관련하여 설명되는 바와 같이, 이전의 교정에 기초할 수 있고, 여기서 도 9의 블록(908)에서 제공되는 바와 같은 주파수 카운트 값은 누설 전류 측정들에 대하여 교정될 수 있다. 또한, 도 9의 블록(904)에 의해 제공되는 전압 판독물들은 누설 전류 정보를 결정하는데 그리고 동적 전력 이용을 결정하거나 또는 검증하는데 사용될 수도 있다.
여기에서 기재된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 엘리먼트들 및 컴포넌트들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그램가능한 게이트 어레이(FPGA) 또는 다른 프로그램가능한 로직 컴포넌트들, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 여기에서 설명되는 기능들을 수행하도록 설계되는 이들 임의의 조합으로 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 이러한 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 또한, 프로세서는 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 요구되는 애플리케이션에 적절한 이러한 임의의 다른 구성과 같은 컴퓨팅 컴포넌트들의 조합으로서 구현될 수도 있다.
여기에서 기재되는 실시예들과 관련하여 설명되는 방법들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이 둘의 조합에서 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드디스크, 휴대용 디스크, CD-ROM, 또는 당해 기술에서 공지된 컴퓨터 판독가능 저장 매체의 임의의 다른 형태로서 상주할 수 있다. 컴퓨터 판독가능 저장 매체는 프로세서가 컴퓨터 판독가능 저장 매체로부터 정보를 판독할 수 있고, 컴퓨터 판독가능 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링될 수 있다. 대안적으로, 컴퓨터 판독가능 저장 매체는 프로세서의 내부에 있을 수 있다.
본 발명은 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 예시적인 실시예들의 맥락에서 기재되지만, 폭 넓고 다양한 구현들이 당업자에 의해 상기 논의 및 아래에서 설명하는 청구항들과 일관되게 사용될 수 있다는 것이 인식될 것이다.

Claims (20)

  1. 시스템 에너지를 감소시키기 위한 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 방법으로서,
    스레드 스케줄러에서 상기 복수의 코어들과 연관된 누설 전류 정보를 수신하는 단계; 및
    상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하여 시스템 에너지 사용을 감소시키기 위해서 상기 누설 전류 정보를 사용하는 단계를 포함하는,
    적응형 스레드 스케줄링을 위한 방법.
  2. 제 1 항에 있어서,
    상기 복수의 코어들과 연관된 상기 누설 전류 정보를 결정하기 위해서 상기 복수의 코어들에서 복수의 직류 누설 전류 센서들을 판독하는 단계를 더 포함하는,
    적응형 스레드 스케줄링을 위한 방법.
  3. 제 1 항에 있어서,
    대응하는 코어들과 연관된 동작 온도들을 결정하기 위해서 복수의 온도 센서들을 판독하는 단계, 및 상기 코어들과 연관된 동작 온도들 및 사전 결정된 프로세스 상수들에 기초하여, 상기 복수의 코어들과 연관된 상기 누설 전류 정보를 계산하는 단계를 더 포함하는,
    적응형 스레드 스케줄링을 위한 방법.
  4. 제 3 항에 있어서,
    상기 누설 전류 정보는
    Figure pct00004
    에 따라 계산되고,
    여기서, Ioff는 상기 누설 전류 정보이고, Vt는 스레쉬홀드 전압이며, S는
    Figure pct00005
    에 따른 서브스레쉬홀드 전압 스윙(swing)이고,
    여기서, k는 볼츠만(Boltzmann) 상수이고, T는 켈빈(Kelvin) 단위의 동작 온도이며, q는 기본 전하이고, CD는 공핍층 커패시턴스이며, COX는 게이트 옥사이드 커패시턴스이고, Vt, k, q, CD 및 COX는 사전 결정된 프로세스 상수들인,
    적응형 스레드 스케줄링을 위한 방법.
  5. 제 1 항에 있어서,
    상기 복수의 코어들에서 복수의 주파수 센서들을 판독하는 단계를 더 포함하고,
    상기 주파수 센서들 중 적어도 하나는 연관된 코어에서 이용되는 트랜지스터들로 구성되는 링 오실레이터이며,
    상기 링 오실레이터의 동작 주파수는 상기 연관된 코어에 대한 상기 누설 전류 정보를 결정하기 위해서 측정 및 판독되는,
    적응형 스레드 스케줄링을 위한 방법.
  6. 제 1 항에 있어서,
    상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하는 것은,
    상기 복수의 코어들과 연관된 적어도 하나의 크로스오버 주파수를 결정하는 것; 그리고
    상기 복수의 코어들의 상기 다른 코어들보다 더 낮은 할당된 주파수에서 더 낮은 누설 전류 및 더 높은 효율성을 가지는 상기 복수의 코어들 중 하나 상에서 상기 스레드를 스케줄링하는 것을 포함하는,
    적응형 스레드 스케줄링을 위한 방법.
  7. 제 1 항에 있어서,
    상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하는 것은,
    할당될 상기 스레드에 대한 할당된 주파수 및 전압에서 상기 복수의 코어들에 대한 동적 전력을 계산하는 것;
    상기 누설 전류 정보에 기초하여 상기 복수의 코어들에 대한 누설 전력을 결정하는 것; 그리고
    최저 코어 전력으로 상기 코어에 상기 스레드를 할당하는 것을 포함하는,
    적응형 스레드 스케줄링을 위한 방법.
  8. 제 1 항에 있어서,
    특정 환경 온도에서 기대 센서 값들과 센서 판독물(reading)들의 비교에 기초하여 상기 복수의 코어들과 연관된 누설 전류 정보를 제공하기 위해서 이용되는 온 칩 센서들을 교정하는 단계를 더 포함하는,
    적응형 스레드 스케줄링을 위한 방법.
  9. 제 8 항에 있어서,
    센서 판독물이 현재 애플리케이션에 대한 기대 센서 값을 충족시키지 않지만, 다른 애플리케이션에 대한 기대 센서 값을 충족시킨다고 결정하는 단계; 및
    상기 다른 애플리케이션에서의 사용을 위한 부분을 비닝(bin)하는 단계를 더 포함하는,
    적응형 스레드 스케줄링을 위한 방법.
  10. 제 8 항에 있어서,
    상기 특정 환경 온도가 온도들의 특정된 범위 내에 있는 온도에 대한 쿼럼(quorum)을 발견하기 위해서 제로 헤르츠로 세팅된 코어 동작 주파수를 사용하여 다수의 온도 센서들을 판독함으로써 결정되는,
    적응형 스레드 스케줄링을 위한 방법.
  11. 시스템 에너지를 감소시키기 위한 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 장치로서,
    누설 전류 정보를 제공하기 위한 상기 복수의 코어들과 연관된 복수의 센서들; 및
    적응형 스레드 스케줄러를 실행시키는 복수의 코어들 ― 각각의 코어는 상기 코어에 할당될 상기 태스크에 의존하는 할당된 동작 주파수 및 소스 전압 레벨을 가지고, 상기 적응형 스레드 스케줄러는 상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하여 시스템 에너지 사용을 감소시키기 위해서 상기 누설 전류 정보를 사용함 ―
    적응형 스레드 스케줄링을 위한 장치.
  12. 제 11 항에 있어서,
    상기 복수의 센서들은 상기 누설 전류 정보를 제공하기 위해서 누설 전류의 직류 판독물(direct reading)을 제공하는 적어도 하나의 센서를 포함하는,
    적응형 스레드 스케줄링을 위한 장치.
  13. 제 11 항에 있어서,
    상기 복수의 센서들은 연관된 코어에서 이용되는 트랜지스터들로 구성되는 링 오실레이터인 적어도 하나의 센서를 포함하고,
    상기 링 오실레이터의 동작 주파수는 상기 연관된 코어에 대한 상기 누설 전류 정보를 결정하기 위해서 측정 및 판독되는,
    적응형 스레드 스케줄링을 위한 장치.
  14. 컨텐츠들이 비대칭 멀티프로세서로 하여금 시스템 에너지를 감소시키기 위한 복수의 코어들 상에서의 적응형 스레드 스케줄링을 위한 방법을 수행하도록 하는 컴퓨터 판독가능 저장 매체로서,
    스레드 스케줄러에서 상기 복수의 코어들과 연관된 누설 전류 정보를 수신하는 단계; 및
    상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하여 시스템 에너지 사용을 감소시키기 위해서 상기 누설 전류 정보를 사용하는 단계를 수행하도록 하기 위한 프로그램을 가지는,
    컴퓨터 판독가능 저장 매체.
  15. 제 14 항에 있어서,
    상기 복수의 코어들과 연관된 상기 누설 전류 정보를 결정하기 위해서 상기 복수의 코어들에서 복수의 직류 누설 전류 센서들을 판독하는 단계를 더 포함하는,
    컴퓨터 판독가능 저장 매체.
  16. 제 14 항에 있어서,
    대응하는 코어들과 연관된 동작 온도들을 결정하기 위해서 복수의 온도 센서들을 판독하는 단계, 및 상기 코어들과 연관된 동작 온도들 및 사전 결정된 프로세스 상수들에 기초하여, 상기 복수의 코어들과 연관된 상기 누설 전류 정보를 계산하는 단계를 더 포함하는,
    컴퓨터 판독가능 저장 매체.
  17. 제 14 항에 있어서,
    상기 복수의 코어들에서 복수의 주파수 센서들을 판독하는 단계를 더 포함하고,
    상기 주파수 센서들 중 적어도 하나는 연관된 코어에서 이용되는 트랜지스터들로 구성되는 링 오실레이터이며,
    상기 링 오실레이터의 동작 주파수는 상기 연관된 코어에 대한 상기 누설 전류 정보를 결정하기 위해서 측정 및 판독되는,
    컴퓨터 판독가능 저장 매체.
  18. 제 14 항에 있어서,
    상기 복수의 코어들 중 하나 상에서 스레드를 스케줄링하는 것은,
    할당될 상기 스레드에 대한 할당된 주파수 및 전압에서 상기 복수의 코어들에 대한 동적 전력을 계산하는 것;
    상기 누설 전류 정보에 기초하여 상기 복수의 코어들에 대한 누설 전력을 결정하는 것; 그리고
    최저 코어 전력으로 상기 코어에 상기 스레드를 할당하는 것을 포함하는,
    컴퓨터 판독가능 저장 매체.
  19. 제 14 항에 있어서,
    특정 환경 온도에서 기대 센서 값들과 센서 판독물(reading)들의 비교에 기초하여 상기 복수의 코어들과 연관된 누설 전류 정보를 제공하기 위해서 이용되는 온 칩 센서들을 교정하는 단계를 더 포함하는,
    컴퓨터 판독가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 특정 환경 온도가 온도들의 특정된 범위 내에 있는 온도에 대한 쿼럼(quorum)을 발견하기 위해서 제로 헤르츠로 세팅된 코어 동작 주파수를 사용하여 다수의 온도 센서들을 판독함으로써 결정되는,
    컴퓨터 판독가능 저장 매체.
KR1020117015868A 2008-12-11 2009-12-11 비대칭 멀티프로세서 상에서의 적응형 스레드 스케줄링을 위한 장치 및 방법들 KR101284776B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/333,063 US9043795B2 (en) 2008-12-11 2008-12-11 Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
US12/333,063 2008-12-11
PCT/US2009/067654 WO2010068855A2 (en) 2008-12-11 2009-12-11 Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor

Publications (2)

Publication Number Publication Date
KR20110102449A true KR20110102449A (ko) 2011-09-16
KR101284776B1 KR101284776B1 (ko) 2013-07-23

Family

ID=42242143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117015868A KR101284776B1 (ko) 2008-12-11 2009-12-11 비대칭 멀티프로세서 상에서의 적응형 스레드 스케줄링을 위한 장치 및 방법들

Country Status (7)

Country Link
US (1) US9043795B2 (ko)
EP (1) EP2374048A2 (ko)
JP (3) JP5283759B2 (ko)
KR (1) KR101284776B1 (ko)
CN (1) CN102246117B (ko)
TW (1) TW201035745A (ko)
WO (1) WO2010068855A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101534449B1 (ko) * 2011-09-21 2015-07-06 퀄컴 인코포레이티드 이기종 멀티 코어 프로세서에서의 열 에너지 생성을 관리하는 시스템 및 방법
KR101534450B1 (ko) * 2011-10-12 2015-07-06 퀄컴 인코포레이티드 누설 전류 측정으로부터 열 관리 폴리시를 결정하는 시스템 및 방법
KR20150084799A (ko) * 2012-10-19 2015-07-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 동적 기능 파티셔닝에 의한 에너지 관리

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090309243A1 (en) * 2008-06-11 2009-12-17 Nvidia Corporation Multi-core integrated circuits having asymmetric performance between cores
US20110213998A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213950A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US9043795B2 (en) * 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
WO2012036954A2 (en) * 2010-09-15 2012-03-22 Rambus Inc. Scheduling amongst multiple processors
CN103229123B (zh) * 2010-11-25 2016-08-31 飞思卡尔半导体公司 在多核处理器内管理功率的方法及装置
US20120284729A1 (en) * 2011-05-03 2012-11-08 Microsoft Corporation Processor state-based thread scheduling
US8799693B2 (en) 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US9098309B2 (en) 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
US20130086395A1 (en) * 2011-09-30 2013-04-04 Qualcomm Incorporated Multi-Core Microprocessor Reliability Optimization
US9442773B2 (en) * 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US9569278B2 (en) 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
KR101885857B1 (ko) * 2012-01-04 2018-08-06 삼성전자주식회사 온도 관리 회로, 이를 포함하는 시스템 온 칩 및 온도 관리 방법
US20130185581A1 (en) * 2012-01-18 2013-07-18 Qualcomm Incorporated Efficient Code Dispatch Based on Performance and Energy Consumption
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
US8943252B2 (en) 2012-08-16 2015-01-27 Microsoft Corporation Latency sensitive software interrupt and thread scheduling
US9037889B2 (en) * 2012-09-28 2015-05-19 Intel Corporation Apparatus and method for determining the number of execution cores to keep active in a processor
US8996902B2 (en) 2012-10-23 2015-03-31 Qualcomm Incorporated Modal workload scheduling in a heterogeneous multi-processor system on a chip
JP6202842B2 (ja) * 2013-03-18 2017-09-27 キヤノン株式会社 半導体集積回路および制御方法
US10151786B2 (en) * 2013-09-09 2018-12-11 Advanced Micro Devices, Inc. Estimating leakage currents based on rates of temperature overages or power overages
US9703613B2 (en) * 2013-12-20 2017-07-11 Qualcomm Incorporated Multi-core dynamic workload management using native and dynamic parameters
US9851771B2 (en) * 2013-12-28 2017-12-26 Intel Corporation Dynamic power measurement and estimation to improve memory subsystem power performance
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US9582012B2 (en) * 2014-04-08 2017-02-28 Qualcomm Incorporated Energy efficiency aware thermal management in a multi-processor system on a chip
US9557797B2 (en) 2014-05-20 2017-01-31 Qualcomm Incorporated Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
US9519041B2 (en) 2014-08-21 2016-12-13 Qualcomm Incorporated System and method for providing an accurate and cost-effective current sensor calibration
US9898071B2 (en) * 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US9939328B2 (en) * 2015-03-12 2018-04-10 Qualcomm Incorporated Systems, apparatus, and methods for temperature detection
JP6205401B2 (ja) * 2015-03-13 2017-09-27 聯發科技股▲ふん▼有限公司Mediatek Inc. 電力管理方法及び電力管理方法を適用する電力供給システム
JP6481585B2 (ja) * 2015-10-20 2019-03-13 株式会社デンソー 並列化方法、並列化ツール、車載装置
US10298236B2 (en) * 2015-10-29 2019-05-21 The Regents Of The University Of California On-chip aging sensor and counterfeit integrated circuit detection method
US9733685B2 (en) * 2015-12-14 2017-08-15 International Business Machines Corporation Temperature-aware microprocessor voltage management
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
CN106227639A (zh) * 2016-07-25 2016-12-14 张升泽 多核芯片电压计算方法及系统
CN106155862A (zh) * 2016-07-25 2016-11-23 张升泽 电子芯片内的电流计算方法及系统
CN106294063A (zh) * 2016-07-26 2017-01-04 张升泽 基于芯片的温度控制方法及系统
US10372495B2 (en) 2017-02-17 2019-08-06 Qualcomm Incorporated Circuits and methods providing thread assignment for a multi-core processor
US11073884B2 (en) * 2017-11-15 2021-07-27 International Business Machines Corporation On-chip supply noise voltage reduction or mitigation using local detection loops
US20200317370A1 (en) * 2019-04-05 2020-10-08 United Technologies Corporation Aircraft component repair system and process
US11703927B2 (en) * 2020-03-27 2023-07-18 Intel Corporation Leakage degradation control and measurement

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2998944B2 (ja) 1991-12-19 2000-01-17 シャープ株式会社 リングオシレータ
JP2006120175A (ja) 2000-06-16 2006-05-11 Renesas Technology Corp 半導体集積回路装置
US6986066B2 (en) 2001-01-05 2006-01-10 International Business Machines Corporation Computer system having low energy consumption
JP2002288150A (ja) 2001-03-28 2002-10-04 Matsushita Electric Ind Co Ltd 半導体集積回路装置
US7212022B2 (en) 2002-04-16 2007-05-01 Transmeta Corporation System and method for measuring time dependent dielectric breakdown with a ring oscillator
JP2003323417A (ja) 2002-04-30 2003-11-14 Matsushita Electric Ind Co Ltd 半導体集積回路装置
JP2004280378A (ja) 2003-03-14 2004-10-07 Handotai Rikougaku Kenkyu Center:Kk 半導体装置
US6954706B2 (en) 2003-08-20 2005-10-11 Hewlett-Packard Development Company, L.P. Method for measuring integrated circuit processor power demand and associated system
JP2005157620A (ja) 2003-11-25 2005-06-16 Matsushita Electric Ind Co Ltd 半導体集積回路
US20050228967A1 (en) 2004-03-16 2005-10-13 Sony Computer Entertainment Inc. Methods and apparatus for reducing power dissipation in a multi-processor system
US7176508B2 (en) * 2004-07-27 2007-02-13 International Business Machines Corporation Temperature sensor for high power very large scale integration circuits
JP3914230B2 (ja) 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
US20060174683A1 (en) * 2005-02-07 2006-08-10 Ulrich Bonne Functionalized field effect transistor sensor with self checking
JP4630122B2 (ja) * 2005-05-11 2011-02-09 株式会社アドバンテスト 試験装置、及び試験方法
JP2006319153A (ja) 2005-05-13 2006-11-24 Sony Corp 半導体集積回路及びその制御方法
KR101108397B1 (ko) 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
US7265639B2 (en) * 2005-08-05 2007-09-04 International Business Machines Corporation Methods and apparatus for ring oscillator based MOSFET gate capacitance measurements
US7412353B2 (en) 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
JP2007148952A (ja) 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
WO2007141870A1 (ja) 2006-06-09 2007-12-13 Fujitsu Limited 温度センサ用リングオシレータ、温度センサ回路及びこれを備える半導体装置
GB2457752B (en) 2006-06-30 2010-05-05 Intel Corp Leakage power estimation
US20080127192A1 (en) 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
JP5170086B2 (ja) 2007-04-10 2013-03-27 富士通セミコンダクター株式会社 リーク電流検出回路、ボディバイアス制御回路、半導体装置及び半導体装置の試験方法
US8076946B1 (en) * 2007-05-21 2011-12-13 Marvell Israel (Misl) Ltd. Leakage calibration
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US7991574B2 (en) * 2008-01-29 2011-08-02 International Business Machines Corporation Techniques for filtering systematic differences from wafer evaluation parameters
US7916571B2 (en) * 2008-05-21 2011-03-29 Qualcomm Incorporated Apparatus for implementing multiple integrated circuits using different gate oxide thicknesses on a single integrated circuit die
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
US9043795B2 (en) * 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101534449B1 (ko) * 2011-09-21 2015-07-06 퀄컴 인코포레이티드 이기종 멀티 코어 프로세서에서의 열 에너지 생성을 관리하는 시스템 및 방법
KR101534450B1 (ko) * 2011-10-12 2015-07-06 퀄컴 인코포레이티드 누설 전류 측정으로부터 열 관리 폴리시를 결정하는 시스템 및 방법
KR20150084799A (ko) * 2012-10-19 2015-07-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 동적 기능 파티셔닝에 의한 에너지 관리

Also Published As

Publication number Publication date
JP5735038B2 (ja) 2015-06-17
JP6019160B2 (ja) 2016-11-02
US9043795B2 (en) 2015-05-26
JP2013214313A (ja) 2013-10-17
TW201035745A (en) 2010-10-01
JP2015158938A (ja) 2015-09-03
CN102246117A (zh) 2011-11-16
WO2010068855A3 (en) 2011-01-27
US20100153954A1 (en) 2010-06-17
JP5283759B2 (ja) 2013-09-04
KR101284776B1 (ko) 2013-07-23
CN102246117B (zh) 2016-04-13
JP2012511788A (ja) 2012-05-24
EP2374048A2 (en) 2011-10-12
WO2010068855A2 (en) 2010-06-17

Similar Documents

Publication Publication Date Title
KR101284776B1 (ko) 비대칭 멀티프로세서 상에서의 적응형 스레드 스케줄링을 위한 장치 및 방법들
US8531225B1 (en) Configurable critical path emulator
US9323320B2 (en) Weighted control in a voltage scaling system
Myers et al. A subthreshold ARM cortex-M0+ subsystem in 65 nm CMOS for WSN applications with 14 power domains, 10T SRAM, and integrated voltage regulator
US20130311792A1 (en) Voltage scaling architecture on system-on-chip platform
US20130117589A1 (en) Stability control in a voltage scaling system
US20130117582A1 (en) Offline communication in a voltage scaling system
US8063692B2 (en) Semiconductor integrated circuit
EP3321769A1 (en) Managing power on integrated circuits using power islands
JP2010534890A (ja) 命令利用に基づいた、適応電圧スケーリングのための方法と装置
EP3036598B1 (en) Power signal interface
US8008967B2 (en) Power supply voltage adjusting device
Zu et al. T i-states: Processor power management in the temperature inversion region
Truesdell et al. A 6–140-nW 11 Hz–8.2-kHz DVFS RISC-V microprocessor using scalable dynamic leakage-suppression logic
US20110172984A1 (en) Efficiency of static core turn-off in a system-on-a-chip with variation
US9829952B2 (en) Processor that has its operating frequency controlled in view of power consumption during operation and semiconductor device including the same
US20240047966A1 (en) Systems, devices and methods for power management and power estimation
Akgün et al. Power-aware computing systems on FPGAs: a survey
Golanbari et al. Runtime adjustment of IoT system-on-chips for minimum energy operation
Kweon et al. An efficient power-aware scheduling algorithm in real time system
Liu et al. A Sub-$\mu $ W Energy-Performance-Aware IoT SoC With a Triple-Mode Power Management Unit for System Performance Scaling, Fast DVFS, and Energy Minimization
Widhalm et al. Undervolting on wireless sensor nodes: A critical perspective
Chang et al. MORAS: An energy-scalable system using adaptive voltage scaling
Burciu et al. Energy Consumption Analysis of a Network of Sensors and Energy Consumption Optimization Methods
Garg et al. Implementation of Analytical Tool for Power Analysis in Multi Core Modem

Legal Events

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

Payment date: 20160629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 6