KR100516290B1 - 낮은 에너지 소모를 갖는 컴퓨터 시스템 - Google Patents

낮은 에너지 소모를 갖는 컴퓨터 시스템 Download PDF

Info

Publication number
KR100516290B1
KR100516290B1 KR10-2003-7008649A KR20037008649A KR100516290B1 KR 100516290 B1 KR100516290 B1 KR 100516290B1 KR 20037008649 A KR20037008649 A KR 20037008649A KR 100516290 B1 KR100516290 B1 KR 100516290B1
Authority
KR
South Korea
Prior art keywords
processing
task
processing units
given task
interrupt
Prior art date
Application number
KR10-2003-7008649A
Other languages
English (en)
Other versions
KR20030066768A (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 KR20030066768A publication Critical patent/KR20030066768A/ko
Application granted granted Critical
Publication of KR100516290B1 publication Critical patent/KR100516290B1/ko

Links

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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • 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
    • 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
    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0287Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment
    • H04W52/0293Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment having a sub-controller with a low clock frequency switching on and off a main controller with a high clock frequency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

컴퓨팅 시스템의 에너지 소모는 두 개 이상의 프로세싱 유닛을 다양한 에너지 효율성 및 다양한 처리 기능과 통합함으로써 감소된다. 스케쥴러는 I/O 공간으로부터의 인터럽트(들)를 인터셉트하고, 인터럽트를 작업에 결정하며, 작업의 에너지 및 성능 속성을 검색하고, 작업이 시기 적절히 실행되며 최소의 에너지를 소모하도록 프로세싱 유닛 상에서의 실행을 위해 작업을 스케쥴링한다.

Description

낮은 에너지 소모를 갖는 컴퓨터 시스템{COMPUTER SYSTEM HAVING LOW ENERGY CONSUMPTION}
본 발명은 일반적으로는 컴퓨터 시스템에 관한 것이고, 보다 세부적으로는 낮은 에너지 소모를 갖는 컴퓨터 시스템에 관한 것이다.
최근에 퍼베이시브 디바이스(pervasive device, PvDs)가 점점 인기를 얻게 되었다. 어떤 작업에 의해 요구되는 계산 복잡도가 증가함에 따라 이 디바이스의 무선 기능도 증가하고 있다. 통상적으로 퍼베이시브 디바이스는 배터리에 의해 전원 공급되기(powered) 때문에 퍼베이시브 디바이스의 성공에의 주요 장애물은 에너지 소모이다. 일반적으로, 퍼베이시브 디바이스에서의 배터리는 퍼베이시브 디바이스의 사용(들)에 따라 한 시간 내지 1년까지 지속할 수 있다. 퍼베이시브 디바이스가 음성 인식을 위해 및/또는 고속 무선 접속을 지원하기 위해 사용된다면, 에너지 소모가 상당히 증가하는 것은 불가피할 것이다. 이는 보통 이러한 작업에 의해 요구되는 초당 백만 개의 인스트럭션(MID)을 지원하는 고성능 프로세싱 유닛이 필요하다는 것이다. 불행히도, 성능이 증가함에 따라 에너지 효율은 감소한다. 본 명세서에서 사용되는 "에너지 효율"이라는 구는 작업당 쥴(joules-per-task)(JPT)(및 등가)을 가리킨다.
현재의 퍼베이시브 디바이스가 모든 고성능 및 복잡한 작업을 수행할 수 있음에도 불구하고, 통상적인 퍼베이시브 디바이스 수명의 대부분은 시간 레지스터를 업데이트하고, 무선 기지국과 주기적으로 위치 정보를 교환하고, 주위 온도를 샘플링하고, GPS 위치 스탬프를 로깅하고, 어드레스 북 엔트리를 인출하고, 스크린 버퍼를 업데이트하고, 키패드 입력을 탐지하는 등과 같은 간단한 저성능을 수행하는데 사용된다. 고성능 프로세서 상에서 이러한 단순한 작업을 실행하는 것은 JPT의 견지에서 극도로 비효율적이다.
그래서, 프로세싱 유닛을 에너지를 고려하는 방식으로 실행하려는 다수의 시도가 있었다. 예를 들면, 몇몇 프로세서 제조업자들(가령, T. R. Halfhill, "Transmeta Breaks x86 Low-Power Barrier", Microprocessor Report, p. 1, Feb. 2000 및 S. Liebson, "Xscale(StrongARM-2) Muscles In", Microprocessor Report, p. 1, Feb. 2000 참조)은 전압 스케일링(voltage scaling)(가령, Brodersen et al., "Low Power Digital CMOS Design", Kluwer Academic Publisher, 1995 참조)이라고도 알려져 있는 공급 전압 및 주파수를 직렬로 변경함으로써 싸이클 당 에너지 소모가 조정될 수 있는 더 에너지 효율적인 장치를 생산했다. 그러나, 이 프로세싱 유닛이 얼마나 천천히 실행하게 될 수 있는 지, 더 정확히는, 얼마나 낮은 공급 전압이 구동될 수 있는 지에는 제한이 있다. 그러므로, 프로세싱 유닛이 주로 간단한 저성능 작업을 실행하기 위해 사용된다면, 특정적으로 이러한 간단한 작업을 실행하도록 고안된 프로세싱 유닛이보다 상당히 많은 에너지를 소모할 것이다.
이에 더하여, 몇몇 이동 전화 및 휴대용 라디오 제조업자들(가령, U.S. 미국 특허 제 5,487,181호 및 미국 특허 제 5,058,203호 참조)은 빈번한 루틴 함수를 수행하는 데 덜 에너지 효율적인 메인 프로세서를 오프로드(offload)하는 에너지 효율적인 주문형 반도체(applicaion specific integrated circuits, ASIC)를 사용할 것을 제안하였다. 그러나, 에너지 소모를 감소시키기 위한 이 접근법은 사용자에게 높은 수준의 융통성을 제공하도록 의도되는 더 일반적이며 더 구성적인 컴퓨팅 플랫폼을 위해서는 접합하지 않다. 상당히 융통성 있는 컴퓨팅 시스템에서 사용자는 기능성을 변경하고, 플라이 상에 새로운 피쳐(가령, 데스크탑 사용자 패러다임)를 설치할 수 있다. 제안된 종래의 해결책은 융통성 있는 시스템이 아니다. 오히려 그들은 특정적이며 한정된 기능을 갖는 시스템이다.
따라서, 사용자에 의한 시스템 기능성 요구와는 무관하게 낮은 에너지 소모를 가지며 평가(evaluation) 및 그 후속 실행을 위한 새로운 애플리케이션 코드를 가장 에너지 효율적인 방식으로 다운로드할 수 있는 일반적이고 구성적인 컴퓨팅 플랫폼에 대한 요구가 여전히 존재한다.
본 발명은 이제 다음 도면에서 묘사되는 바람직한 실시예에 관해 단지 예로서 설명될 것이다.
도 1은 본 발명의 예시적인 실시예에 따른 저 에너지 소모형 컴퓨터 시스템(100)을 도시하는 블록도,
도 2는 본 발명의 예시적인 실시예에 따라 작업 속성 목록을 도시하는 다이어그램,
도 3은 본 발명의 예시적인 실시예에 따라 프로세서 속성 목록을 도시하는 다이어그램,
도 4는 본 발명의 예시적인 실시예에 따라 스케쥴링 장치 SCH에 의한 작업 스케쥴링을 도시하는 순서도,
도 5는 본 발명의 예시적인 실시예에 따라 Pj(즉, 처리 유닛 P1 또는 P2)에 의한 작업 처리를 도시하는 순서도.
발명의 개요
따라서, 본 발명은 일반적이며 상당히 구성적인 컴퓨팅 시스템에서 감소된 에너지 소모를 제공한다. 본 발명으로부터 이익을 얻을 타겟 컴퓨팅 시스템의 몇몇의 예는 가령, 개인용 휴대용 단말기(PDAs), 핸드헬드 컴퓨터, 포켓 컴퓨터, 휴대 전화, 랩탑 컴퓨터, 착용(wearable) 컴퓨터 등을 포함한다. 이에 더하여, 본 발명은 높은 수준의 사용자 융통성(가령, 사용자가 새로운 애플리케이션을 다운로드하고, 그 자신의 애플리케이션을 생성하고/생성하거나 자신의 필요에 따라 시스템을 맞춤 제작하는 시스템)을 위해 고안되는 컴퓨팅 시스템에 특히 응용 가능하다.
본 발명의 제 1 측면에 따라 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 서로 다른 에너지 효율성을 갖고, 적어도 작업의 처리 요구사항 및 해당 처리 기능에 기초하여 작업을 실행하게 되는 적어도 두 개의 프로세싱 유닛을 포함한다. 스케쥴러는 최소량의 에너지를 소모하도록 주어진 작업을 적어도 두 개의 프로세싱 유닛이 중 하나에 의한 실행을 위해 스케쥴링하고, 주어진 작업의 요구사항 및 해당 처리 기능에 기초하여 적어도 두 개의 프로세싱 유닛이 중 하나가 주어직 작업의 실행을 수용할 수 없다는 것을 나타낼 때, 적어도 두 개의 프로세싱 유닛이 중 다른 하나에 의한 실행을 위해 주어진 작업을 다시 스케쥴링하게 된다.
처리 요구사항은 주어진 작업이 완료될 종료 시각을 포함하는 것이 바람직하다. 스케쥴러는 적어도 두 개의 프로세싱 유닛이 아니라 하나의 하드웨어 부품 내에 서 구현되는 함수인 것이 더 바람직하다. 바람직한 실시예에서, 적어도 두 개의 프로세싱 유닛이 중 하나는 스케쥴러는 포함한다. 스케쥴러는 더 나아가 적어도 두 개의 프로세싱 유닛이 및 주변 디바이스로부터의 인터럽트를 차단하도록 되는 것이 적절하다.
본 발명의 바람직한 실시예에 따르면, 적어도 두 개의 프로세싱 유닛이 메모리 공간을 공유한다. 적어도 두 개의 프로세싱 유닛이 입/출력 공간을 공유하는 것이 적절하다. 적어도 두 개의 프로세싱 유닛이 입/출력 공간을 공유하며, 스케쥴러 및 적어도 두 개의 프로세싱 유닛이 메모리 공간을 공유하는 것은 더 바람직하다.
바람직한 실시예에서, 컴퓨터 시스템은 컴퓨터 시스템은 스케쥴링된 작업의 적어도 일부의 처리 요구사항 중 적어도 일부를 저장하게 되는 작업 속성 저장을 더 포함한다. 바람직한 실시예에서, 결정은 스케쥴러 또는 적어도 두 개의 프로세싱 유닛이 중 하나에 의해 이루어진다. 이에 더하여, 적어도 두 개의 프로세싱 유닛은 실행을 위한 작업을 수락하거나 거부하게 되는 것이 적절하다. 처리 요구사항은 주어진 작업을 실행하기 위해 요구되는 처리 기능을 포함하는 것이 더 적절하다.
본 발명의 제 2 측면에 따라 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 복수 개의 프로세싱 유닛을 포함한다. 복수 개의 프로세싱 유닛의 각각은 자체 상에서 작업을 실행하게 된다. 복수 개의 프로세싱 유닛 중 적어도 두 개는 서로 다른 에너지 효율성을 갖는다. 주어진 작업 중 하나가 상기 복수 개의 프로세싱 유닛 중 하나에 의해 수락되고 실행되거나, 주어진 작업이 복수 개의 프로세싱 유닛의 모두에 의해 거부될 때까지 주어진 작업의 실행을 수락하거나 거부하기 위해 부분적 내림순 에너지 효율성으로 복수 개의 프로세싱 유닛을 질의함으로써 복수 개의 프로세싱 유닛 중 하나에 의한 실행을 위해 주어진 작업을 스케쥴링하게 된다.
상기 스케쥴러는 적어도 하나의 사전 정의된 조건에 기초하여 부분적인 순서로부터 복수 개의 프로세싱 유닛 중 어느 것을 제외하게도 되는 것이 바람직하다.
본 발명의 제 3 측면에 따라 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 서로 다른 에너지 효율성을 갖고, 스케쥴링된 작업의 처리 요구사항 및 해당 처리 기능에 따라 스케쥴링된 작업을 수락하거나 거부하게 되는 적어도 두 개의 프로세싱 유닛을 포함한다. 적어도 두 개의 프로세싱 유닛은 적어도 수락되는 스케쥴링된 작업을 실행하게도 된다. 스케쥴러는 적어도 두 개의 프로세싱 유닛 중 하나에 의한 실행을 위해 주어진 작업을 스케쥴링해서 최소의 에너지를 사용하게 되고, 적어도 두 개의 프로세싱 유닛 중 하나가 주어진 작업의 실행을 거부할 때 적어도 두 개의 프로세싱 유닛 중 다른 하나에 의한 실행을 위해 주어진 작업을 다시 스케쥴링하게 된다.
본 발명의 제 4 측면에 따라 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 복수 개의 프로세싱 유닛을 포함한다. 복수 개의 프로세싱 유닛의 각각은 자체 상에서 작업을 실행하게 된다. 복수 개의 프로세싱 유닛 중 적어도 두 개는 서로 다른 에너지 효율성을 갖는다. 프로세서 속성 표는 복수 개의 프로세서 중 적어도 일부를 위한 처리 기능 정보를 저장하고, 처리 기능 정보가 변경할 때 동적으로 처리 기능 정보를 업데이트 하게 된다. 스케쥴러는 주어진 작업을 위해 복수 개의 프로세서 중 하나가 주어진 작업에 대한 작업 처리 요구 사항에 관한 적절한 처리 기능을 소유한다는 것이 발견될 때까지 프로세서 속성 표로부터의 처리 기능 정보 중 적어도 일부를 내림순의 에너지 효율성의 부분적 순서 및 엄격한 순서 중 하나로 검색하게 된다. 스케쥴러는 또한 복수 개의 프로세서 중 하나에 의한 실행을 위해 주어진 작업을 스케쥴링하게 된다.
상기 컴퓨터 시스템은 인터럽트와 연관되는 적어도 하나의 함수를 수행하게되는 적어도 하나의 기능 블록을 더 포함하는 것이 더 적합하다.
상기 컴퓨터 시스템은 작업에 의해 사용되는 적어도 하나의 함수를 수행하게 되는 적어도 하나의 기능 블록을 더 포함하는 것이 바람직하다.
본 발명은 저 에너지 소모형 컴퓨터 시스템에 관한 것이다. 본 발명이 다양한 하드웨어, 소프트웨어, 펌웨어, 전용 프로세싱 유닛 또는 그들의 조합으로 구현될 수 있다는 것이 이해되어야 한다. 본 발명은 하드웨어와 소프트웨어의 조합으로 구성되는 것이 바람직하다. 소프트웨어는 프로그램 저장 장치 상에서 실체적으로 구현되는 응용 프로그램으로서 구현될 수 있다. 응용 프로그램은 어떤 적합한 구조를 포함하는 머신으로 업로드되고 그것에 의해 실행될 수 있다. 머신은 중앙 프로세싱 유닛(CPUs), 램(RAM) 및 입/출력(I/O) 인터페이스(들)와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에서 구현되는 것이 바람직하다. 컴퓨터 플랫폼은 또한 운영 체제 및/또는 마이크로 인스트럭션 코드를 포함할 수 있다. 본 명세서에서 개시되는 다양한 처리 및 함수는 마이크로 인스트럭션 코드의 일부이거나 또는 운영체제를 통해 실행되는 응용 프로그램의 일부 (또는 그 조합)일 수 있다. 이에 더하여, 컴퓨터 플랫폼에 추가적인 데이터 저장 장치 및 프린트 장치와 같은 다양한 다른 주변 장치가 접속될 수 있다.
첨부 도면에서 도시되는 구성하는 시스템 구성요소 및 방법 단계들 중 몇몇은 소프트웨어로 구현될 수 있기 때문에, 시스템 구성요소(또는 처리 단계) 간의 실제의 접속은 발명이 프로그래밍되는 방식에 따라 다를 수 있다는 것을 더 이해해야 한다.
본 발명의 명백한 이해를 돕기 위해, 이제, 본 명세서에서 사용되는 용어의 정의가 제공될 것이다. "프로세싱 유닛"라는 용어는 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서 또는 인스트럭션을 실행할 수 있는 다른 디바이스로서 정의된다. 선행 요소들의 임의의 조합 역시 사용될 수 있다. 또한, "기능 블록"이라는 용어는 하나 이상의 특정 기능을 수행할 수도 있으나 인스트럭션을 실행할 수는 없고 그 기능도 변경될 수 없는 디지털 또는 혼합 신호 회로로서 정의된다. 주문형 반도체(ASIC), 고속 푸리에 변환(FFT) 및 조합 회로가 본 발명을 위한 기능 블록으로 간주된다. 프로세싱 유닛은 기능 장치일 수 없고, 기능 장치가 프로세싱 유닛일 수 없다는 것을 올바르게 인식해야 한다. 더 나아가, "작업"이라는 용어는 독립적으로, 다른 작업과 동시에 또는 홀로 실행되는 코드 부분으로 정의된다. 이 정의를 사용하면, 가령, 애플리케이션, 스레드(threads), 인터럽트 서비스 루틴 및 운영 체제 커널이 작업으로서 간주될 수 있다.
도 1은 본 발명의 예시적인 실시예에 따른 저 에너지 소모형 컴퓨터 시스템(100)을 도시하는 블록도이다. 컴퓨터 시스템(100)은 두 개의 프로세싱 유닛, P1 및 P2(이하에서 일반적으로 "프로세싱 유닛 Pj"라고도 칭해짐)와 스케쥴링 장치 SCH를 포함한다. P1 및 P2는 작업을 실행한다. P1은 최고 에너지 효율적 프로세싱 유닛이지만 낮은 컴퓨팅 성능을 갖는다. P2는 최저 에너지 효율적 프로세싱 유닛이지만 높은 컴퓨팅 성능을 갖는다. I/O 공간 및 두 개의 프로세싱 유닛로부터의 모든 인터럽트는 SCH에 제공된다. MEM은 메모리 공간이고, I/O는 I/O 공간이다. BUSP1, BUSP2, BUSMEM 및 BUSI/O는 제각기 P1 버스로의 스케쥴러, P2 버스로의 스케쥴러, 메모리 버스로의 스케쥴러 그리고 I/O 버스로의 스케쥴러이다. BCMEM 및 BCI/O는 각각 메모리 버스 제어기 그리고 I/O 버스 제어기이다. 본 발명의 바람직한 실시예에서, 프로세싱 유닛 P1 및 P2는 동시에 실행되며, 각각의 프로세싱 유닛은 자체 상에서 실행하는 멀티테스킹 운영 체제를 갖는다.
SCH가 도 1의 예시적인 실시예에서 분리된 기능 블록으로서 구현되지만, SCH의 기능은 다른 프로세싱 유닛(가령, P1 및/또는 P2)들의 일부, 소프트웨어 프로그램(들), 또는 그들의 조합으로서의 구현될 수 있다는 것을 인식해야 한다. 가령, SHC는 하드웨어 구성요소(가령, 임의의 기능 블록 또는 프로세싱 유닛) 내의 함수(소프트웨어, 일련의 로직 구성요소 등)로 구현될 수 있다.
이제 컴퓨터 시스템(100)의 동작의 간단한 설명이 제공될 것이다. SCH는 모든 인터럽트 신호를 차단하고, 인터럽트를 작업 식별 번호(TID)로 결정하고, 그 후 프로세싱 유닛 P1 및 P2와 작업의 실행을 협상하고 시기 적절하게 작업을 실행하고 완료할 최저 에너지 소모 프로세싱 유닛을 선택한다. SCH 및 Pj로 하여금 이러한 협상을 수행하기 위하여, 현재 작업에 대한 특정 특징들은 알려져야 한다. 이 특징들 및 다른 작업 관련 정보는 작업 속성 목록에 제공된다. 도 2는 본 발명에 따른 작업 속성 목록을 도시하는 다이어그램이다. 인터럽트 시에 특정 작업 속성을 검색하는 것이 SCH의 역할이다. 도 2를 참조하여 예시적인 작업 속성이 도시되며 이하에서 더 상세히 설명되어 있다.
TID는 현재 작업의 작업 식별 번호이다. NP는 그 작업을 실행할 수 있는 프로세싱 유닛의 번호이다. PTID,1은 그 작업을 실행할 수 있는 가장 에너지 효율적인 프로세싱 유닛의 ID이다. CPSTID,1는 시기 적절하게 작업을 실행하는 데 필요한 최악의 경우의 프로세싱 유닛 싸이클의 개수이다. ADDRTID,1은 작업의 위치의 어드레스이다. PTID,i는 작업을 실행할 수 있는 i번 째 최고 에너지 효율적인 프로세싱 유닛이며, 여기서 1≤i≤NP이다. CPSTID,1은 시기 적절하게 작업을 실행하는 데 필요한 최악의 경우의 프로세싱 유닛 싸이클의 개수이다. ADDRTID,i는 작업의 위치의 어드레스이다. PTID,NP는 작업을 실행할 수 있는 NP 프로세싱 유닛 중 최저 에너지 효율적인 프로세싱 유닛이다. CPSTID,NP는 최악의 경우 시기 적절하게 작업을 실행하는 데 필요한 프로세싱 유닛 싸이클의 개수이다. ADDRTID,NP는 작업의 위치의 어드레스이다. 원칙적으로 ADDR은 프로세싱 유닛이 동일한 구조가 아니라면 각각의 프로세싱 유닛에 대해 다를 수 있다는 것에 유념하라. 예를 들어, 두 개의 서로 다른 프로세싱 유닛이 서로 다른 인스트럭션 세트를 갖고/갖거나 하나의 프로세싱 유닛은 32 비트 구조를 갖는데 다른 프로세싱 유닛이 8 비트 구조를 갖는다는 것도 드물지는 드물지는 않다.
CPS는 최악의 경우의 값을 나타낸다는 것에 유념하라. 예를 들면, 사용자가 데이트북(DateBook) 엔트리의 수를 열거하는 데이트북 애플리케이션을 시작한다고 가정하라. 해당 작업은 1초여 동안 비지(busy)이고, 그 후는 유휴(idle) 모드일 것이며, 이제 엔트리를 갖는 데이트북 목록이 디스플레이 상에서 보인다. 그 후, 사용자는 더 상세한 정보를 원하는 엔트리를 선택한다. 이어서, 작업은 데이터베이스로부터 정보를 인출하고, 그 정보를 디스플레이 상에 디스플레이하고, 유휴 모드로 리턴한다. 그러므로, CPS는 다음과 같은 작업과 관련해 설명될 수 있는데, CPS는 작업에 대해 필요한 프로세싱 유닛의 속도 성능을 나타내어 사용자 입력 요청에 반응하고, 데이터베이스로부터의 정보를 인출하며, 마지막으로 그 정보를 디스플레이 상에 디스플레이한다. 그러나, 대부분의 시간 동안 작업은 유휴 모드에 있다.
SCH는 속성 목록에서 프로세싱 유닛이 열거된 순서대로 프로세싱 유닛 P1 및 P2와 협상할 것이다. 그래서, 도 2의 예시적인 작업 속성 목록에 관해 SCH는 최고 에너지 효율적인 프로세싱 유닛 PTID,1와 협상할 것이다. 그 후, PTID,1은 자신이 주어진 초당 요구 싸이클 CPS에 대한 제한 하에서 문제의 작업을 처리할 수 있는지를 신속히 판단할 것이다. 그 후, PTID,1은 작업을 수락하거나 거부할 것이다. PTID,1이 작업을 거부하거나, 잠시 후에 PTID,1가 자신이 예정 시간 내에 작업을 완수할 수 없을 것이라고 판단한다면, PTID,1은 SCH를 인터럽트한다. 그 후 SCH는 열거된 프로세싱 유닛 중 하나가 작업을 수락하거나 모든 열거된 프로세싱 유닛이 시도를 끝낼 때까지 속성 목록에서 다음 프로세싱 유닛(와의 협상을)를 시도할 것이다.
작업 속성 목록은 수락/거부 결정이 실행될 주어진 작업의 처리 요구사항 및 주어진 작업을 실행할 프로세서의 처리 기능에 기초하도록 의도된다는 것이 인식되어야 한다. 처리 요구사항은 가령, 작업을 실행하는 데 필요한 최소 처리 용량과, 작업이 실행되어야 하는 마감(deadline) 시각과, 데이터 경로의 특정 비트폭 등을 포함할 수 있다. 처리 기능은 현재 이용 가능한 처리 용량, 데이터 경로의 현재의 비트폭 등을 포함할 수 있다.
주어진 프로세서가 주어진 작업을 실행할 수 있는 지에 대한 실제의 판단은 작업을 수락하도록 요청되는 프로세서에 의해 또는 SCH에 의해 이루어질 수 있다. 이러한 판단이 작업의 처리 요구사항 및 프로세서의 처리 기능에 기초하여 이루어지며, 처리 요구사항은 작업 속성 목록에 설명되고, 처리 기능은 프로세서에 의해서만 액세스 가능하거나, 일반적으로 공유된 프로세서 속성 목록으로부터 스케쥴러에 의해서도 액세스 가능한 것이 바람직하다. 도 3은 SCH에 의한 액세스에 적합한 프로세서 속성 목록을 도시하는 다이어그램이다. 도 3에서, N은 프로세싱 유닛의 개수이고, CPSj는 프로세서 j의 현재 최대 이용 가능한 처리 용량이며, 여기서 1<=j<=N이다. 프로세서 속성 목록은 프로세서가 새로운 작업을 수락하거나 또는 작업을 종료하는 때에 제각기의 프로세서에 의해 동적으로 업데이트되어서 속성 목록에서의 값이 제각기 프로세서의 즉시의(near instantaneous) 처리 기능을 나타내도록 한다. 물론, 처리 요구사항 및/또는 처리 기능 중 몇몇은 미래의 참조를 위해 작업 속성 및 프로세서 속성 목록이 아닌 저장 구조에 저장될 수도 있다.
이해를 돕기 위해, 다음 가정/조건이 인터럽트에 관해 부과된다. SCH는 한번에 하나씩 I/O 인터럽트를 처리한다. I/O 인터럽트는 또 다른 I/O 인터럽트의 처리를 선취(preempt)할 수 없고, I/O 인터럽트는 프로세서 인터럽트의 처리를 선취할 수도 없다. I/O 인터럽트는 그것들이 수신되는 순서로 큐잉된다(queued). 프로세서 인터럽트는 I/O 인터럽트보다 우선한다.
도 4는 본 발명에 따라, SCH에 의한 작업 스케쥴링을 도시하는 순서도이다. 인터럽트를 수신하면, 그 카테고리가 결정된다(단계(310)). 인터럽트가 I/O 인터럽트라면, 그 도착 순서에 따라 큐잉된다(단계(315)).
그 후, SCH의 상태가 유휴 상태인지가 판단된다(단계(316)). 유휴 상태가 아니라면(즉, SCH의 상태가 비지라면) SCH는 대기 모드에 들어간다(단계(317)). 대기 모드에서, 단계(315)와 관련하여 이상에서 설명한 바와 같이 SCH는 I/O 인터럽트의 큐잉을 허용하지만 다른 I/O 인터럽트를 실행할 수 없다. 그러나, SCH가 유휴 상태에 있다면, SCH는 큐에서 디폴트로는 방금 수신된 I/O 인터럽트인 다음 인터럽트를 검색하는 것으로 진행한다(단계(319)).
인터럽트는 인터럽트 벡터 표에 질의하는 SCH에 의해 작업 속성 목록 어드레스로 결정된다(단계(320)). 그 후 작업을 위한 작업 속성이 검색된다(단계(325)). 그 후 SCH는 현재의 I/O 인터럽트와 (작업 ID, TID로) 연관되는 작업을 수락 또는 거부하기 위해 속성 록록에서 열거되는 첫 번째 프로세싱 유닛에 요청을 넘긴다. 단계(319~330) 동안, SCH는 비지 상태에 있다. 단계(330)를 수행하면, SCH는 대기 모드에 들어간다(단계(317)). 근본적으로는, SCH가 대기 상태에 있는 동안 SHC는 현재의 프로세싱 유닛이 현재의 I/O 인터럽트와 연관된 (작업 ID, TID를 갖는) 작업을 수락 또는 거부할 지의 응답을 대기한다.
현재의 프로세싱 유닛은 이상에서 명시한 바와 같이 I/O 타입 인터럽트보다 우선하는 프로세서 인터럽트를 생성함으로써 SCH에 응답한다. 그래서, 수신된 인터럽트의 카테고리를 프로세서 인터럽트로서 결정(단계(310))하면, 즉시 프로세서 인터럽트가 처리된다. SCH는 인터럽트 함수, IF_Acept에 대해 프로세싱 유닛 PTID,i를 질의한다(단계(340)). 인터럽트 함수 IF_Accept는 프로세싱 유닛이 작업을 수락하면 참의 논리(Boolen) 값을 그리고 프로세싱 유닛이 작업을 거부하면 거짓의 논리 값을 리턴한다. 이어서, 인터럽트 함수가 리턴한 논리값이 참인지 거짓인지 판단한다.
IF_Accept가 참이면, SCH는 유휴 상태에 리턴한다(단계(352)). 그 다음, SCH는 큐에 I/O 인터럽트가 더 있는 지 검사한다(단계(360)). 큐에 인터럽트가 더 없다면, SCH는 단순히 다른 I/O 인터럽트를 대기하는 대기 모드로 들어간다(단계(361)). 그렇지 않고 인터럽트가 더 있다면, 방법은 큐 안의 다음 I/O 인터럽트가 검색되는 단계(318)로 리턴한다.
IF_Accept가 거짓이면, i의 값은 1만큼 증가하고(단계(355)) 방법은 단계(330)으로 리턴한다. (그래서, 현재의 I/O와 연관되는(작업 ID, TID를 갖는) 작업을 수락 또는 거부하기 위해 속성 목록에서 열거되는 다음 프로세싱 유닛에 요청을 넘길 수 있게 된다).
도 5는 Pj(즉, 프로세싱 유닛은 P1 또는 P2)에 의한 작업 처리를 도시하는 순서도이다. 이해를 돕기 위해, 특정 가정이 다음과 같이 이루어진다. 프로세싱 유닛은 두 개의 방법으로, 즉, SCH에 의해 그리고 프로세서의 로컬 OS 타이머에 의해 인터럽트될 수 있다. SCH로부터의 인터럽트는 항상 즉시 실행된다. 타이머 인터럽트도 프로세싱 유닛 Pj가 SCH로부터의 인터럽트를 실행하고 있는 경우만 제외하고는 항상 즉시 처리된다. SCH 인터럽트의 서비스 시간은 OS 마스터 타이머 인터럽트 간격 T보다 훨씬 빠르다. OS 코드는 국부적으로 저장되고, 즉, OS는 공유된 메모리 공간 MEM에는 위치하지 않는다.
도 4를 참조하면, SCH는 한번에 하나씩 I/O 인터럽트 소스를 처리하고 인터럽트는 SCH가 하나 이상의 프로세싱 유닛와 차례로 협상하게 하는 것을 볼 수 있다. 그래서, SCH는 한번에 하나씩 프로세싱 유닛와 협상하고 그러므로, 어느 주어진 시간에는 SCH로부터의 최대 하나의 인터럽트가 프로세싱 유닛 중 하나에 의해 실행되고 있다. 프로세싱 유닛이 SCH로부터의 현재의 인터럽트를 완전히 실행할 때까지 SCH가 또 다른 인터럽트를 만들 수 없기 때문에 SCH로부터의 인터럽트는 프로세싱 유닛에서는 큐잉될 수 없다.
이제, Pj에서의 작업 허가의 간단한 설명이 제공되며, 그 후에 도 5에 관한더 상세한 설명이 주어질 것이다. 프로세싱 유닛 Pj가 인터럽트를 수신하면, 프로세싱 유닛 Pj는 인터럽트의 기원(origin)(즉, SCH로부터 온 것인지 또는 프로세싱 유닛 Pj의 로컬 OS 타이머에 의한 것인지)을 정한다. 인터럽트가 SCH 인터럽트라면, 프로세싱 유닛 Pj는 현재의 상태를 로컬 메모리에 저장하고 인터럽트를 실행한다. 그래서, SCH로부터의 인터럽트는 임의의 다른 현재 실행하는 작업을 선취할 수 있다. SCH 인터럽트 작업으로부터 리턴하면, 프로세싱 유닛 Pj는 선취된 작업의 실행을 재개한다. 프로세싱 유닛 Pj가 SCH 인터럽트를 실행하고 있는 동안, 인터럽트는 디스에이블 된다. SCH 인터럽트가 실행되는 동안 타이머 인터럽트가 발생한다면, 타이머 인터럽트는 SCH 인터럽트의 완료 때까지 실행되지 않을 것이다.
도 5로 돌아가면, 프로세싱 유닛 Pj가 인터럽트를 수신할 때, 먼저, 인터럽트의 기원을 정한다(단계(410)). SCH 인터럽트를 수신하면, 프로세싱 유닛 Pj는 인터럽트를 디스에이블시키고, 현재의 프로그램 컨텍스트를 저장한다(단계(415)). 그 후, 프로세싱 유닛 Pj는 TID 허가 검사를 위해 필요한, 적절한 TID 속성을 검색할 것이다(단계(420)). 적절한 TID 속성은 Pj와 연관되는 CPS 처리 요구사항을 포함한다. 작업 속성 표의 어드레스는 SCH에 의해 (가령, 도 4에서 단계(325)에서) 공유 버퍼를 통해 프로세싱 유닛에 전달될 수 있다. 그 후, TID 허가 검사가 수행된다(단계(425)). TID 허가 검사는 가령, 이하에서 상세히 설명되는 수학식(1)의 사용에 의해 수행될 수 있다. 그 후, 허가 검사의 결과가 TID의 거부인지 수락인지의 여부가 결정된다(단계(430)). 결과가 수락된다면, TID가 등록되고, 작업 포인터 ADDR은 타이머 체인에 삽입되며, 타임 슬라이스는 TID를 위해 할당되고(단계(435)) 방법은 단계(440)로 진행한다. 그렇지 않으면, 방법은 간단히 단계(440)로 진행한다.
단계(440)에서, SCH는 SCH를 인터럽트하고 SCH에 의해 액세스될 수 있는 공유 버퍼 내에 논리 결과를 저장함으로써 허가 검사의 출력 (즉, 프로세싱 유닛 Pj의 결정)을 알린다. 그 후, 프로세싱 유닛 Pj는 인터럽트를 다시 인에이블시키고, 작업 컨텍스트를 복구한다(단계(455)).
단계(435)에서, 시간 슬라이스를 할당하는 것에 있어서, (단계(420)에서 검색되는) 작업의 요구된 계산 용량(CPS) 및 프로세싱 유닛 Pj의 현재의 부하에 기초하여 동일하게 계산된다. 예로서, 시간 슬라이스를 계산하는 하나의 방법이 이하에서 설명되는 수학식(2)으로 표현되어 있다.
단계(410)에서, 수신된 인터럽트가 타이머 인터럽트라고 판단되면, 현재의 작업 문맥은 저장되고(단계(450)), 시간 체인에서의 다음 작업이 로딩되며(단계(475)), 로컬 타이머는 다음 작업을 위해 할당되는 시간 슬라이스에 따라 인터럽트하도록 프로그래밍된다(단계(480)). 그래서, 등록된 작업은 순차적으로 실행된다. 시간 체인에서의 마지막 작업이 실행되면, 작업이 실행을 위해 주기적으로 로딩되는 다음 마스터 타이머 간격 T에서 인터럽트하도록 타이머가 프로그래밍된다. 임의의 등록된 작업이 필요하다면(가령, 사용자가 애플리케이션을 사용하고 있지 않다면) 유휴 모드로 들어갈 수 있고, 그래서 프로세서가 가능한 많은 에너지를 절약하는 슬립 모드에 들어가게 해서 일시적으로 타이머 체인 밖으로 나올 수 있다는 것에 유념하라.
단계(425)의 허가 검사에 있어서, 자체 상에서 실행하는 K개의 작업을 현재 갖는 프로세싱 유닛 Pj를 가정하자. 이제 SCH가 참작을 위해 Pj에 제공하는 새로운 작업 TIDK+1을 고려하자. TIDK+1가 적어도 CPSTIDK+1의 계산 용량을 필요로 한다는 것을 새로운 작업 속성 목록으로부터 알 수 있다. 그래서, Pj 상에서 허가될 새로운 작업 TIDK+1을 위해 수학식(1)에서의 표현이 충족되어야 하는데, 여기서, CPSCLK는 프로세싱 유닛의 클럭 주파수이고, CPSOS는 운영 체제에 할당된 CPS이며, CPSSCH는 SCH와 상호 작용하기 위해 할당되는 CPS이며(즉, 허가 루틴은 이 할당의 일부를 소모하고), CPSTIDk는 Pj 상에서 현재 실행하는 k번 째 작업을 위해 할당되는 CPS이다. 수학식(1)에서 모든 파라메터는 Pj로 특정되므로 "Pj" 첨자는 생략하였다는 것에 유념하라.
많은 경우 작업의 필요한 CPS의 결정이 프로그래머에 의한 실험에 기반한다는 것에 주목해야 한다. 그 CPS가 조정될 수 있는 이른바 조절판(Throttle) 작업 실행이 있는 경우, 타겟 프로세싱 유닛 상에서 작업을 시작하는 것이 작업의 요구된 CPS를 결정하는 하나의 방법이다. 먼저, 최대 CPS는 작업에 이용 가능하고, 즉, CPSmax=CPSCLK-CPSOS-CPSSCH-CPSTHROTTLE(=0)이다. 그 후, 프로그래머는 조절판 CPS를 점진적으로 증가시켜서 문제 작업의 이용 가능한 CPS를 감소시킨다. 이 방식으로, 프로그래머는 새로운 작업이 더 이상 만족스러운 방식으로 동작하지 않는 때를 결정할 수 있다.
시간 슬라이스에 있어서, K개의 실행할 작업을 갖는 프로세싱 유닛 Pj를 다시 고려하자. 이제, SCH가 참작을 위해 Pj 상에 제공하는 새로운 작업 TIDK+1을 고려하자. 각각의 작업 TIDK가 로컬 OS에 의해 관리되며, 로컬 타이머의 적당한 프로그래밍에 의해 용이하게 되는 마스터 시간 간격 T로 실행된다고 가정하자. 이제, Pj가 작업을 허용한다고 가정하면, 새로운 작업 TIDK+1은 도 2에 따라 시간 슬라이스 ΔTK+1에 할당될 것이다.
본 발명은 작업을 실행하도록 스케쥴링되는 프로세싱 유닛이 최소량의 에너지를 소모하는 프로세싱 유닛이 아니라 대신에 두번째, 세번째 등의 최소 에너지 소모 장치가 되도록 구현되었다는 것에 유념해야 한다. 즉, 궁극적 목적은 실제로 최고 에너지 효율적인 프로세싱 유닛을 선택하는 것이지만, 관련 기술에서 보통의 당업자에 의해 쉽게 확인할 수 있는 바와 같이 다양한 이유 때문에 다른 "인접하는(neighboring)" 에너지 효율성의 프로세싱 유닛이 선택될 수 있다. 가령, 최고 에너지 효율적인 프로세싱 유닛이 또 다른 작업을 처리하는 데 바쁠 수 있고 또는 스케쥴링 때문에, 두 번째, 세 번째 또는 N번 째의 최고 에너지 효율적 프로세싱 유닛을 사용하는 것이 가치 있을 수 있다. 그래서, 프로세싱 유닛은 실행을 위해 주어진 작업을 수락하거나 거부하기 위해 내림순의 에너지 효율성의 부분적 순서에 따라 질의될 수 있다. 부분적 순서는 일부의 프로세싱 유닛이 에너지 효율성에 관한 순서와 무관하게 선택될 수 있고 그 고려사항 모두 또는 임의의 조합이 제외될 수 있다는 것을 의미한다. 본 명세서에서 제공되는 본 발명의 교시 덕택에, 당업자들은 본 발명의 범위를 유지하며 낮은 에너지 소모에 관한 작업 스케쥴링의 이 및 다른 변형, 변경 및 확장을 그려낼 것이다.
본 명세서에서 설명되는 선행하는 프로세싱 유닛은 가령, 마이크로 프로세서, 마이크로 제어기, 디지털 신호 프로세서(DSPs) 또는 인스트럭션을 실행할 수 있는 임의의 다른 장치일 수 있다. 게다가, 선행 요소들의 임의의 조합도 사용될 수 있다.

Claims (10)

  1. 컴퓨터 시스템에 있어서,
    서로 다른 에너지 효율성을 갖고, 적어도 작업의 처리 요구사항 및 해당 처리 기능에 기초하여 작업을 실행하는 적어도 두 개의 프로세싱 유닛와,
    최소량의 에너지를 소모하도록 주어진 작업을 상기 적어도 두 개의 프로세싱 유닛 중 하나에 의한 실행을 위해 스케쥴링하고, 상기 적어도 두 개의 프로세싱 유닛 중 상기 하나가 상기 주어진 작업의 상기 처리 요구사항 및 상기 해당 처리 기능에 기초하여 상기 주어진 작업의 실행을 수용할 수 없다고 판단되면, 상기 주어진 작업을 상기 적어도 두 개의 프로세싱 유닛 중 다른 하나에 의한 실행을 위해 다시 스케쥴링하는 스케쥴러
    를 포함하는 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 스케쥴러는 상기 주어진 작업의 상기 실행을 수락하거나 거부하기 위해 상기 주어진 작업 중 하나가 상기 적어도 두 개의 프로세싱 유닛 중 상기 하나에 의해 수락 또는 실행되거나 상기 주어진 작업이 상기 적어도 두 개의 프로세싱 유닛 중 다른 것에 의해 거부될 때까지 상기 적어도 두 개의 프로세싱 유닛을 에너지 효율성 내림순의 부분적 순서로 질의함으로써 주어진 작업이 상기 적어도 두 개의 프로세싱 유닛에 중 하나에 의해 실행되도록 스케쥴링하는 컴퓨터 시스템.
  3. 제 2 항에 있어서,
    상기 스케쥴러는 적어도 하나의 사전 정의된 조건에 기초하는 상기 부분적 순서로부터 상기 적어도 두 개의 프로세싱 유닛 중 임의의 것을 배제하는 컴퓨터 시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 적어도 두 개의 프로세서 중 적어도 하나에 대한 처리 기능 정보를 저장하고, 상기 처리 기능 정보가 변할 때 상기 처리 기능 정보를 동적으로 업데이트하게 되는 프로세서 속성 표를 더 포함하는 컴퓨터 시스템.
  5. 제 4 항에 있어서,
    상기 스케쥴러는 주어진 작업을 위해 적어도 두 개의 프로세서 중 하나가 상기 주어진 작업에 대한 작업 처리 요구사항에 관해 적절한 처리 기능을 소유하고 있다는 것이 발견될 때까지 감소하는 에너지 효율성의 부분적 순서 및 엄격한 순서 중 하나로 상기 프로세서 속성 표로부터 상기 처리 기능 정보의 적어도 일부를 검색하고 상기 적어도 두 개의 프로세서 중 상기 하나에 의한 실행을 위해 상기 주어진 작업을 스케쥴링하는
    컴퓨터 시스템.
  6. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 스케쥴러는 상기 적어도 두 개의 프로세싱 유닛 및 주변 장치로부터의 인터럽트를 인터셉트하는 컴퓨터 시스템.
  7. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 스케쥴링된 작업의 처리 요구 사항 중 적어도 일부를 저장하는 작업 속성 저장부를 더 포함하는 컴퓨터 시스템.
  8. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 처리 요구 사항은 상기 주어진 작업이 완료될 종료 시각을 포함하는 컴퓨터 시스템.
  9. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 판단은 상기 스케쥴러에 의해 이루어지는 컴퓨터 시스템.
  10. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 판단은 상기 적어도 프로세싱 유닛 중 상기 하나에 의해 이루어지는 컴 퓨터 시스템.
KR10-2003-7008649A 2001-01-05 2001-12-21 낮은 에너지 소모를 갖는 컴퓨터 시스템 KR100516290B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/755,861 US6986066B2 (en) 2001-01-05 2001-01-05 Computer system having low energy consumption
US09/755,861 2001-01-05
PCT/GB2001/005714 WO2002054198A2 (en) 2001-01-05 2001-12-21 Computer system having low energy consumption

Publications (2)

Publication Number Publication Date
KR20030066768A KR20030066768A (ko) 2003-08-09
KR100516290B1 true KR100516290B1 (ko) 2005-09-21

Family

ID=25040965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7008649A KR100516290B1 (ko) 2001-01-05 2001-12-21 낮은 에너지 소모를 갖는 컴퓨터 시스템

Country Status (10)

Country Link
US (1) US6986066B2 (ko)
EP (1) EP1381932B1 (ko)
JP (1) JP3790743B2 (ko)
KR (1) KR100516290B1 (ko)
CN (1) CN1258128C (ko)
AT (1) ATE295566T1 (ko)
AU (1) AU2002217289A1 (ko)
DE (1) DE60110847T2 (ko)
TW (1) TW546558B (ko)
WO (1) WO2002054198A2 (ko)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030100340A1 (en) * 2001-03-16 2003-05-29 Cupps Bryan T. Novel personal electronics device with thermal management
US20030163601A1 (en) * 2001-03-16 2003-08-28 Cupps Bryan T. Novel personal electronics device with common application platform
US20030153354A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with keypad application
US7216242B2 (en) * 2001-03-16 2007-05-08 Dualcor Technologies, Inc. Personal electronics device with appliance drive features
US20030153353A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with simultaneous multi-processor operation
US7231531B2 (en) * 2001-03-16 2007-06-12 Dualcor Technologies, Inc. Personal electronics device with a dual core processor
US7184003B2 (en) * 2001-03-16 2007-02-27 Dualcor Technologies, Inc. Personal electronics device with display switching
US20020173344A1 (en) * 2001-03-16 2002-11-21 Cupps Bryan T. Novel personal electronics device
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
US7100060B2 (en) * 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources
US7111089B2 (en) * 2002-12-23 2006-09-19 Motorola, Inc. Programmable scheduler for digital signal processor
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
DE602004029729D1 (de) * 2003-08-07 2010-12-02 Panasonic Corp Integrierte Prozessorschaltung mit mehreren Prozessoren welche lokale Speicher haben sowie Mittel um DMA-Zugriffe auf diese Speicher zu synchronisieren
US20050060385A1 (en) * 2003-09-15 2005-03-17 Gupta Vivek G. Method and apparatus for sharing a GPRS module with two computing devices
US7194643B2 (en) * 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
JP3830491B2 (ja) * 2004-03-29 2006-10-04 株式会社ソニー・コンピュータエンタテインメント プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
MXPA05003582A (es) 2004-04-01 2006-05-25 United Parcel Service Inc Sistemas integrados y metodos de manejo de tareas para ejecutar operaciones basadas en reglas.
US7152171B2 (en) * 2004-04-28 2006-12-19 Microsoft Corporation Task-oriented processing as an auxiliary to primary computing environments
US20080140921A1 (en) * 2004-06-10 2008-06-12 Sehat Sutardja Externally removable non-volatile semiconductor memory module for hard disk drives
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7617359B2 (en) * 2004-06-10 2009-11-10 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US7788427B1 (en) 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US7730335B2 (en) * 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
CN100474214C (zh) * 2004-08-05 2009-04-01 松下电器产业株式会社 信息处理装置
US20060064606A1 (en) * 2004-09-21 2006-03-23 International Business Machines Corporation A method and apparatus for controlling power consumption in an integrated circuit
US20060200651A1 (en) * 2005-03-03 2006-09-07 Collopy Thomas K Method and apparatus for power reduction utilizing heterogeneously-multi-pipelined processor
US7600135B2 (en) * 2005-04-14 2009-10-06 Mips Technologies, Inc. Apparatus and method for software specified power management performance using low power virtual threads
US7627770B2 (en) * 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US20060265712A1 (en) * 2005-05-18 2006-11-23 Docomo Communications Laboratories Usa, Inc. Methods for supporting intra-document parallelism in XSLT processing on devices with multiple processors
US20060294401A1 (en) * 2005-06-24 2006-12-28 Dell Products L.P. Power management of multiple processors
US8255745B2 (en) * 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US8375247B2 (en) * 2005-08-29 2013-02-12 The Invention Science Fund I, Llc Handling processor computational errors
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US8214191B2 (en) 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US20070050608A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporatin Of The State Of Delaware Hardware-generated and historically-based execution optimization
US7539852B2 (en) 2005-08-29 2009-05-26 Searete, Llc Processor resource management
US8181004B2 (en) * 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US7653834B2 (en) * 2005-08-29 2010-01-26 Searete, Llc Power sparing synchronous apparatus
US8423824B2 (en) 2005-08-29 2013-04-16 The Invention Science Fund I, Llc Power sparing synchronous apparatus
US8516300B2 (en) 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US20070094435A1 (en) * 2005-10-25 2007-04-26 Fry Walter G Computer docking system and method
WO2007077516A1 (en) * 2006-01-06 2007-07-12 Koninklijke Philips Electronics, N.V. Power aware dynamic scheduling in multiprocessor system employing voltage islands
CN100550766C (zh) * 2006-01-24 2009-10-14 华为技术有限公司 预定任务执行方法和管理任务执行方法、及其终端设备
US20070198981A1 (en) * 2006-02-17 2007-08-23 Jacobs Paul E System and method for multi-processor application support
JP4800837B2 (ja) * 2006-05-22 2011-10-26 株式会社日立製作所 計算機システム、その消費電力低減方法、及びそのプログラム
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
JP4119945B2 (ja) * 2006-08-24 2008-07-16 ネットクリアスシステムズ株式会社 タスク処理装置
US20080127192A1 (en) * 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
US8201165B2 (en) * 2007-01-02 2012-06-12 International Business Machines Corporation Virtualizing the execution of homogeneous parallel systems on heterogeneous multiprocessor platforms
DE102007007345A1 (de) * 2007-02-14 2008-08-21 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Anordnung zum Bereitstellen eines drahtlosen Mesh-Netzwerks
US10339227B1 (en) 2007-06-08 2019-07-02 Google Llc Data center design
US20090125010A1 (en) * 2007-07-06 2009-05-14 Sharkey Hugh R Uterine Therapy Device and Method
US8069354B2 (en) 2007-08-14 2011-11-29 Mips Technologies, Inc. Power management for system having one or more integrated circuits
US8032681B2 (en) * 2007-09-06 2011-10-04 Intel Corporation Processor selection for an interrupt based on willingness to accept the interrupt and on priority
US8395621B2 (en) * 2008-02-12 2013-03-12 Accenture Global Services Limited System for providing strategies for increasing efficiency of data centers
US8635625B2 (en) * 2008-04-04 2014-01-21 International Business Machines Corporation Power-aware workload allocation in performance-managed computing environments
US7779191B2 (en) * 2008-07-29 2010-08-17 Nvidia Corporation Platform-based idle-time processing
US9043795B2 (en) * 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
US7653826B1 (en) 2009-01-20 2010-01-26 International Business Machines Corporation Method and apparatus for query optimization and management of sleepy drives
US8178997B2 (en) 2009-06-15 2012-05-15 Google Inc. Supplying grid ancillary services using controllable loads
US8239699B2 (en) * 2009-06-26 2012-08-07 Intel Corporation Method and apparatus for performing energy-efficient network packet processing in a multi processor core system
CN101604264B (zh) * 2009-07-08 2012-07-25 深圳先进技术研究院 超级计算机的任务调度方法及系统
US8423799B2 (en) * 2009-11-30 2013-04-16 International Business Machines Corporation Managing accelerators of a computing environment
US8776066B2 (en) * 2009-11-30 2014-07-08 International Business Machines Corporation Managing task execution on accelerators
JP5621287B2 (ja) * 2010-03-17 2014-11-12 富士通株式会社 負荷分散システムおよびコンピュータプログラム
US8279597B2 (en) 2010-05-27 2012-10-02 International Business Machines Corporation Heatsink allowing in-situ maintenance in a stackable module
US8174826B2 (en) 2010-05-27 2012-05-08 International Business Machines Corporation Liquid cooling system for stackable modules in energy-efficient computing systems
US8358503B2 (en) 2010-05-28 2013-01-22 International Business Machines Corporation Stackable module for energy-efficient computing systems
US8179674B2 (en) 2010-05-28 2012-05-15 International Business Machines Corporation Scalable space-optimized and energy-efficient computing system
EP2737385A1 (en) 2011-07-25 2014-06-04 Servergy, Inc. Method and system for building a low power computer system
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
CN102508714A (zh) * 2011-11-03 2012-06-20 南京邮电大学 一种云计算中基于绿色计算的虚拟机调度方法
US9009500B1 (en) 2012-01-18 2015-04-14 Google Inc. Method of correlating power in a data center by fitting a function to a plurality of pairs of actual power draw values and estimated power draw values determined from monitored CPU utilization of a statistical sample of computers in the data center
US9489067B2 (en) 2012-08-17 2016-11-08 Qualcomm Incorporated Scalable touchscreen processing with realtime role negotiation among asymmetric processing cores
US9424212B2 (en) 2013-06-13 2016-08-23 Microsoft Technology Licensing, Llc Operating system-managed interrupt steering in multiprocessor systems
CN103677212A (zh) * 2013-12-12 2014-03-26 中南林业科技大学 一种基于cps的低功耗实时数据处理的方法
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
CN105094283A (zh) * 2015-07-23 2015-11-25 上海新储集成电路有限公司 一种超低功耗且高性能的微处理器及其运行方法
CN108710538B (zh) * 2018-05-14 2023-06-02 中国平安人寿保险股份有限公司 一种线程配置方法、计算机可读存储介质及终端设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0778785B2 (ja) * 1986-03-29 1995-08-23 株式会社東芝 プロセッサ選択方法
JPH0642691B2 (ja) * 1988-05-21 1994-06-01 富士通株式会社 移動電話端末
US5142684A (en) 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
JP2970262B2 (ja) * 1992-09-30 1999-11-02 日本電気株式会社 プログラムディスパッチ方式
US5487181A (en) * 1992-10-28 1996-01-23 Ericsson Ge Mobile Communications Inc. Low power architecture for portable and mobile two-way radios
US5790817A (en) 1996-09-25 1998-08-04 Advanced Micro Devices, Inc. Configurable digital wireless and wired communications system architecture for implementing baseband functionality
US6314447B1 (en) * 1999-10-04 2001-11-06 Sony Corporation System uses local registry and load balancing procedure for identifying processing capabilities of a remote device to perform a processing task
US6501999B1 (en) * 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching

Also Published As

Publication number Publication date
CN1596392A (zh) 2005-03-16
WO2002054198A2 (en) 2002-07-11
KR20030066768A (ko) 2003-08-09
US6986066B2 (en) 2006-01-10
TW546558B (en) 2003-08-11
EP1381932B1 (en) 2005-05-11
CN1258128C (zh) 2006-05-31
WO2002054198A3 (en) 2003-11-13
US20020124196A1 (en) 2002-09-05
ATE295566T1 (de) 2005-05-15
DE60110847D1 (de) 2005-06-16
DE60110847T2 (de) 2006-02-23
JP3790743B2 (ja) 2006-06-28
AU2002217289A1 (en) 2002-07-16
JP2004530181A (ja) 2004-09-30
EP1381932A2 (en) 2004-01-21

Similar Documents

Publication Publication Date Title
KR100516290B1 (ko) 낮은 에너지 소모를 갖는 컴퓨터 시스템
US8423799B2 (en) Managing accelerators of a computing environment
US7360106B2 (en) Power-saving processing unit, power-saving processing method and program record medium
US8032891B2 (en) Energy-aware scheduling of application execution
KR101522081B1 (ko) 프로세서에서 스레드들을 실행하는 시스템 및 방법
US8381004B2 (en) Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US6367074B1 (en) Operation of a system
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US8074087B2 (en) Configuring processors and loads for power management
KR20060096186A (ko) 프로세서 및 정보처리 방법
JP2002501248A (ja) 埋込みシステム
US7111182B2 (en) Thread scheduling mechanisms for processor resource power management
WO2012036954A2 (en) Scheduling amongst multiple processors
US20090133020A1 (en) Method for Managing Hardware Resource Usage by Application Programs Within a Computer System
US20030172250A1 (en) Multidispatch cpu integrated circuit having virtualized and modular resources and adjustable dispatch priority
Alsafrjalani et al. Dynamic scheduling for reduced energy in configuration-subsetted heterogeneous multicore systems
US20090172684A1 (en) Small low power embedded system and preemption avoidance method thereof
EP1405171A1 (en) Method and apparatus to use task priority to scale processor performance
JP2003140787A (ja) 電力制御装置及び方法並びに電力制御プログラム
JPH08314740A (ja) プロセスディスパッチ方法
WO1992003783A1 (en) Method of implementing kernel functions

Legal Events

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

Payment date: 20120824

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130827

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee