KR20060134185A - 프로세싱 태스크 스케줄링을 이용하는 열 관리를 달성하기위한 방법들 및 장치 - Google Patents
프로세싱 태스크 스케줄링을 이용하는 열 관리를 달성하기위한 방법들 및 장치 Download PDFInfo
- Publication number
- KR20060134185A KR20060134185A KR1020067022624A KR20067022624A KR20060134185A KR 20060134185 A KR20060134185 A KR 20060134185A KR 1020067022624 A KR1020067022624 A KR 1020067022624A KR 20067022624 A KR20067022624 A KR 20067022624A KR 20060134185 A KR20060134185 A KR 20060134185A
- Authority
- KR
- South Korea
- Prior art keywords
- tasks
- processing
- thermal
- component
- task
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 241
- 238000000034 method Methods 0.000 title claims abstract description 92
- 230000015654 memory Effects 0.000 claims description 107
- 238000001816 cooling Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 13
- 239000004065 semiconductor Substances 0.000 claims description 5
- 238000011156 evaluation Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000004088 simulation Methods 0.000 claims description 3
- 239000000758 substrate Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013021 overheating Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101710179734 6,7-dimethyl-8-ribityllumazine synthase 2 Proteins 0.000 description 1
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 101710186609 Lipoyl synthase 2 Proteins 0.000 description 1
- 101710122908 Lipoyl synthase 2, chloroplastic Proteins 0.000 description 1
- 101710101072 Lipoyl synthase 2, mitochondrial Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- MDPILPRLPQYEEN-UHFFFAOYSA-N aluminium arsenide Chemical compound [As]#[Al] MDPILPRLPQYEEN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002019 doping agent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000746 purification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/1221—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to power consumption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Cooling Or The Like Of Semiconductors Or Solid State Devices (AREA)
- General Factory Administration (AREA)
- Investigating Or Analyzing Materials Using Thermal Means (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 컴퓨팅 환경에서 열 관리를 수행하는 장치 및 방법들을 제공한다. 일 실시형태에서, 열 속성들은 작업들 및/또는 처리 구성요소들과 관련되고, 작업들은 구성요소들에 의해 처리되도록 스케줄링되어 열 경계가 초과되지 않는다. 또 다른 실시형태에서, 뜨거운 대기행렬 및 차가운 대기행렬이 선택된 작업들에 대해 제공되고, 처리 구성요소들은, 열 경계가 초과되지 않도록 작업들을 적절한 대기행렬로부터 선택할 수 있다.
태스크, 메모리, 대기행렬, 열 경계
Description
본 발명은, 처리 환경에서 열 관리를 수행하고, 구체적으로, 명령과 태스크들을 효과적으로 할당함으로써 열점들(thermal hot spots)을 감소시키기 위한 방법들 및 장치에 관한 것이다.
컴퓨팅 시스템들은 더욱 복잡해지고 있으며, 구성요소 크기를 감소시키고 컴퓨터 칩에 디바이스(device)들을 집적함과 아울러, 더 높은 처리 속도들을 달성하고 있다. 이러한 진전들은, 실시간, 멀티미디어 게이밍(gaming) 및 다른 연산 집약적 어플리케이션들(computation-intensive applications)과 같은 많은 어플리케이션들의 성공에 중요하다. 종종, 컴퓨팅 시스템들은 처리 효율을 증가시키기 위해 병렬로 (또는 적어도 협력하여) 동작하는 다중 프로세서들을 내장한다.
열은, 구성요소들과 디바이스들이 명령 및 태스크들과 같은 작업들을 수행함에 따라 생성된다. 과도한 열은 컴퓨터 칩과 같은 전기적 구성요소의 처리 능력에 악영향을 줄 수 있다. 예를 들어, 칩의 한 영역이 연산 집약적 태스크들을 수행한다면, 상기 영역은 상당히 가열될 수 있고 칩의 나머지 부분과 관련된 열점을 형성 할 수 있다. 열점이 열 경계를 초과한다면, 칩의 상기 영역 내의 구성요소들 또는 디바이스들의 성능은 감소되고, 또는 칩이 손상되거나 파괴될 수 있다.
과거에는, 다양한 해결책들이 과열 문제를 해결하기 위해 이용되어 왔다. 기계적인 해결책은 열 싱크(heat sink)를 컴퓨터 칩에 부착시키는 것이다. 그러나, 열 싱크들은 부피가 크고 열을 칩으로부터 칩을 둘러싸는 공간으로 방출한다. 칩이 개인 컴퓨터 캐비넷과 같은 엔클로져(enclosure) 내에 저장될 때, 이러한 열은, 공간을 차지하고 원하지 않는 소음을 발생시키는 팬(fan)들에 의해 제거되어야 한다.
다른 더욱 복잡한 열 관리 구조들이 또한 존재한다. 예를 들어, 하나의 해결책으로, 온도 센서들은 프로세서와 같은 중요한 회로 요소들 상에 배치될 수 있고, 팬들은 관련된 시스템 엔클로져 내에 실장될 수 있다. 온도 센서들이 특정 온도에 도달되었다는 것을 가리킬 때, 팬들이 켜지고, 프로세서를 냉각시키기 위해 시스템 엔클로져를 통한 기류를 증가시킨다. 선택적으로, 온도 센서들이 미리 정해진 온도를 초과함을 가리킬 때, 처리 환경이 정지되도록 하는 알람(alarm)이 생성될 수 있다. 센서들은 종종 열점으로부터 떨어져 위치된다. 불행하게도, 이러한 피드백 방법은 과열을 방지하기에 너무 느리거나 신뢰성이 없게 기능할 수 있다.
열 관리를 수행하는 또 다른 방법은 소프트웨어를 이용한다. 예를 들어, 구성요소의 시계를 느리게 하여 작업들 사이의 냉각 시간을 연장하는 것이다. 하나의 통상적인 시스템은 감압 메커니즘을 이용하여 명령 캐시로부터 명령 버퍼로의 명령 추출 속도(instruction fetch rate)를 제어한다. 추출 속도를 감소시키는 것은 열의 생성을 저하시킨다. 훨씬 더 철저한 방법은 프로세서를 정지하고 냉각시키는 것 이다. 불행하게도, 이러한 기술들 모두는, 구성요소가 동작하는 속도에 직접 영향을 주고, 실시간 처리 요구를 만족시키지 못할 수 있다.
그러므로, 추가적인 하드웨어 또는 비효율적인 소프트웨어 루틴들을 방지하고 열 관리를 달성하기 위한 새로운 방법들 및 장치에 대한 요구가 있다.
본 발명의 실시형태에 따르면, 열 스케줄링 방법들이 제공된다. 바람직한 실시형태에서, 구성요소는 열 경계를 가지고, 상기 방법은 구성요소에 의해 수행되어질 복수의 작업들을 제공하는 단계를 포함한다. 작업들을 열 속성과 관련시키는 열 정보가 제공된다. 열 속성은 작업의 수행 동안 구성요소에 의해 생성되거나 일어날 것으로 예상되는 열량과 관련된 값을 나타낸다. 작업들이 수행되는 순서는 열 속성에 근거하여 스케줄링되어 열 경계가 초과되지 않는다.
일 실시예에서, 상기 방법은 온도 감지 수단을 이용하여 열 속성을 측정하는 단계를 더 포함한다. 또 다른 실시예에서, 상기 방법은 구성요소의 전력 소비에 근거하여 열 속성을 평가하는 단계를 더 포함한다. 열 속성은 다른 방법들로 평가될 수 있다. 일 실시형태에서, 평가하는 단계는 구성요소의 회로 시뮬레이션을 수행하는 단계를 포함한다. 또 다른 실시형태에서, 평가하는 단계는 구성요소의 전력 밀도를 결정하는 단계를 포함한다.
또 다른 실시예에서, 상기 방법은 구성요소가 작업들을 수행 순서로 실행시키는 단계를 포함한다. 더욱 바람직하게는, 구성요소는 복수의 처리 디바이스들을 포함하고, 열 속성은 작업들을 실행시키는 선택된 처리 디바이스들의 총 열 속성이다.
또 다른 실시예에서, 구성요소는 복수의 처리 디바이스들을 포함하고, 처리 디바이스들 각각은 개별적인 열 경계를 가지며, 열 속성은 각각이 처리 디바이스들 중 하나와 관련된 복수의 개별 열 속성들을 포함한다. 이러한 경우에, 상기 방법은 작업들을 실행시키기 위해 처리 디바이스들 중 적어도 일부를 선택하는 단계를 포함하는 것이 바람직하다. 선택된 디바이스들이 탐지되고, 작업들이 선택된 디바이스들 사이에서 루팅(routing)되어 개별적인 열 경계들이 초과되지 않는다. 선택적인 실시예에서, 구성요소는 복수의 처리 디바이스들을 포함하고, 열 속성은 복수의 처리 디바이스들 사이에 할당된다.
또 다른 실시예에서, 열 속성을 결정하는 단계는, (i) 구성요소의 전력 소비를 결정하는 단계; (ii) 구성요소의 풋프린트(footprint; 크기)를 결정하는 단계; (iii) 면적 당 전력 소비를 얻기 위해 전력 소비를 풋프린트로 나누는 단계; 및 (iv) 면적 당 전력 소비에 열 평가 상수를 곱하는 단계;를 포함할 수 있다. 또 다른 실시예에서, 상기 방법은 냉각 속성을 결정하는 단계를 더 포함하고, 작업들을 스케줄링하는 단계는 열 속성과 함께 냉각 속성을 포함한다.
또 다른 바람직한 실시형태에서, 방법은 처음에 일련의 작업들을 가진 프로그램 코드를 얻고, 하나 이상의 작업들과 관련된 열 속성들을 결정한다. 구성요소의 열 경계가 또한 결정된다. 작업들은 열 속성들에 따라 구성요소에 의해 실행을 위해 스케줄링되어 열 경계는 초과되지 않는다.
일 실시예에서, 구성요소가 선택된 작업을 실행시킴에 따라 열 속성들은 생성될 것으로 예상되는 열량을 설명한다. 또 다른 실시예에서, 열 속성들은 한 주기의 시간에 걸쳐 생성된 열량을 설명한다. 또 다른 실시예에서, 열 속성들은 (a) 구성요소의 전력 소비, 및 (b) 구성요소의 전력 밀도 중 적어도 하나를 설명한다.
또 다른 실시예에서, 상기 방법은 구성요소가 작업들을 실행시키는 단계를 포함한다. 구성요소의 온도는 실행 동안 탐지된다. 열 경계가 초과된다면, 작업들은 다시 스케줄링된다.
또 다른 실시예에서, 상기 방법은 작업들 각각에서 수행되어질 태스크들의 개수를 셈으로써 열 속성들을 평가하는 단계를 더 포함한다.
또 다른 실시예에서, 구성요소는 복수의 처리 디바이스들을 포함한다. 이러한 경우에, 상기 방법은 바람직하게는 선택된 작업들의 동작 실행을 선택된 처리 디바이스들에 의해 탐지하는 단계를 포함한다. 선택된 디바이스들의 동작 주파수가 결정된다. 동작 주파수는 컴파일러에 보고된다.
또 다른 실시예에서, 상기 방법은 컴퓨팅 디바이스에 대한 냉각 속성을 결정하는 단계를 포함한다. 컴퓨팅 디바이스는 구성요소를 포함한다. 작업들을 스케줄링하는 단계는 냉각 속성과 열 속성에 따라 수행된다. 냉각 속성은 컴퓨팅 디바이스의 패키징의 유형에 근거할 수 있다. 냉각 속성은 또한 컴퓨팅 디바이스의 냉각 수단에 근거할 수 있다. 이 경우, 냉각 수단이 하나의 상태를 가지면, 냉각 속성은 고정된다. 냉각 수단이 복수의 상태들을 가지면, 냉각 속성은 동적이다.
본 발명의 다른 실시형태들에 따르면, 처리 시스템들 및 방법들은 컴퓨팅 환경에서 작업들을 다루기 위해 제공된다. 처리 시스템의 일 실시형태에서, 작업들은 컴퓨팅 디바이스의 일부분인 구성요소에 의해 수행된다. 적어도 하나의 열 속성이 제공된다. 속성은 구성요소 및 선택된 작업과 관련된다. 속성은 작업을 수행한 이후의 구성요소의 온도의 변화를 가리킨다.
일 실시예에서, 처리 시스템은 스케줄러를 포함한다. 스케줄러는 열 속성에 따라 작업들 중 적어도 하나를 구성요소에 할당할 수 있다. 일 실시형태에서, 스케줄러는 선택된 작업을 열 속성에 따라 저장 위치로부터 검색하도록 동작가능하다. 또 다른 경우에, 구성요소는 부 구성요소들을 포함하고, 스케줄러는 단순 스케줄러이며, 열 속성은 구성요소와 관련되고 부 구성요소들과 관련되지 않은 총 열 속성이다. 또 다른 경우에, 구성요소는 부 구성요소들을 포함하고, 스케줄러는 고등 스케줄러이며, 열 속성은 부 구성요소들의 적어도 일부와 관련된다.
또 다른 실시예에서, 구성요소는 처리 디바이스이고 스케줄러는 처리 디바이스와 통합된다. 또 다른 실시예에서, 선택된 작업은 태스크를 포함하고 열 속성은 태스크 열 속성이다. 이 경우에, 태스크 열 속성은 (a) 구성요소의 동작 주파수, (b) 구성요소의 열 속성, 및 (c) 냉각 속성 중 적어도 하나에 근거하는 것이 바람직하다.
또 다른 실시예에서, 작업들 중 적어도 일부는 우선순위를 포함한다. 이러한 경우에, 시스템은 복수의 우선순위 대기행렬들을 포함하고, 각각의 우선순위 대기행렬은 제 1 세트의 작업들을 저장하기 위한 제 1 (즉, 뜨거운) 대기행렬 및 제 2 세트의 작업들을 저장하기 위한 제 2 (즉, 차가운) 대기행렬을 포함한다. 바람직하게는, 상기 시스템은 스케줄러를 더 포함한다. 스케줄러는 작업들의 우선순위들 및 열 속성에 근거하여 작업들 중 적어도 일부를 선택된 우선순위 대기행렬에서 뜨겁거나 차가운 대기행렬로 할당하도록 동작가능하다. 더욱 바람직하게는, 스케줄러는, 선택된 작업의 열 속성 및 우선순위에 따라, 작업들 중 선택된 하나를 선택된 우선순위 대기행렬의 뜨거운 대기행렬 또는 차가운 대기행렬로부터 검색하도록 동작가능하다.
본 발명의 태양에 따른 처리 시스템의 또 다른 실시형태에서, 스케줄러, 제 1 및 제 2 작업들, 및 복수의 프로세서들이 제공된다. 스케줄러는 제 1 및 제 2 작업들을 포함하는 작업들을 관리한다. 제 1 작업은 동작 경계를 초과하는 열 속성을 가진다. 제 2 작업은 동작 경계를 초과하지 않는 열 속성을 가진다. 프로세서들은 작업들을 실행할 수 있다. 각각의 프로세서는 열 경계를 가진다.
일 실시예에서, 선택된 프로세서의 열 경계가 초과되지 않는다면, 상기 프로세서는 제 1 및 제 2 작업들 중 적어도 하나를 얻고 실행할 수 있다. 또 다른 실시예에서, 선택된 프로세서의 열 경계가 초과되지 않는다면, 프로세서는 제 1 작업을 얻는다. 또 다른 실시예에서, 선택된 프로세서의 열 경계가 초과된다면, 프로세서는 제 2 작업을 얻고 실행하도록 동작가능하다.
또 다른 실시예에서, 프로세서들은 프로세서들의 온도들을 탐지하거나 평가하기 위한 온도 감지 수단을 포함한다. 바람직하게는, 프로세서들은 온도 값을 온도 감지 수단으로부터 수신하고 디지털 온도 값을 제공하도록 작동가능한 아날로그-디지털 변환기를 포함한다.
또 다른 실시예에서, 선택된 프로세서는 복수의 부 프로세서들을 포함한다. 바람직하게는, 선택된 프로세서는 선택된 프로세서와 관련되고 부 프로세서들과 관련되지 않은 총 열 속성을 가진다. 선택적으로, 각각의 부 프로세서는 다른 부 프로세서들의 구성요소 열 속성들과 구별되는 구성요소 열 속성을 가지는 것이 바람직하다.
본 발명의 태양에 따라, 컴퓨팅 환경에서 작업들을 수행하는 바람직한 방법이 제공된다. 상기 방법은 제 1 작업을 저장하는 단계 및 제 2 작업을 저장하는 단계를 포함한다. 상기 작업들은 작업들의 열 속성들에 근거하여 저장된다. 상기 방법은 프로세서의 열 속성에 따라 작업들 중 적어도 하나를 검색하는 단계를 더 포함한다.
바람직하게는, 프로세서의 열 경계가 초과되지 않는다면, 작업들 중 적어도 하나가 검색될 수 있다. 더욱 바람직하게는, 제 1 작업만이 검색된다. 프로세서의 열 경계가 초과된다면, 제 2 작업이 바람직하게 검색된다.
상기 방법은 바람직하게는 제 1 및 제 2 작업들의 우선순위들을 결정하는 단계 및 복수의 우선순위 대기행렬들을 제공하는 단계들을 포함한다. 이 경우에, 우선순위 대기행렬들은 제 1 및 제 2 대기행렬들을 가진다. 제 1 작업은 제 1 작업의 우선순위에 근거하여 제 1 대기행렬들 중 하나에 저장되고, 제 2 작업은 제 2 작업의 우선순위에 근거하여 제 2 대기행렬들 중 하나에 저장된다.
또 다른 실시예에서, 상기 방법은 구성요소 열 속성을 프로세서와 관련시키는 단계를 더 포함한다. 이 경우에, 작업을 검색하는 단계는 구성요소 열 속성의 현재 상태를 평가하는 단계 및 구성요소 열 속성에 근거하여 작업을 선택하는 단계를 포함한다.
본 발명의 태양에 따르면, 또 다른 바람직한, 작업들을 수행하는 방법은 프로세서의 온도가 열 경계를 초과하는 지 여부를 결정하는 단계를 포함한다. 열 경계가 초과되지 않는다면, 상기 방법은 제 1 작업이 이용가능한 지 여부를 결정한다. 제 1 작업은 프로세서의 실행시 온도를 유지하거나 증가시킬 가능성이 있다. 제 1 작업은 이용가능하다면 실행된다. 열 경계가 초과된다면, 상기 방법은 제 2 작업이 이용가능한 지 여부를 결정한다. 제 2 작업은 프로세서의 실행시 온도를 감소시킬 가능성이 있다. 제 2 작업은 이용가능하다면 실행된다.
일 실시예에서, 차가운 대기행렬 작업이 이용가능하지 않다면, 상기 방법은 무연산(nop; no operation)을 실행하는 것이 바람직하다. 또 다른 실시예에서, 상기 방법은 우선순위 레벨을 결정하는 단계를 포함하고, 제 1 작업이 우선순위 레벨의 우선순위 대기행렬로부터 이용가능한 지 여부를 결정하고, 제 1 작업이 우선순위 대기행렬로부터 이용가능하지 않다면, 제 2 작업이 우선순위 대기행렬로부터 이용가능한 지 여부를 결정한다.
본 발명의 태양에 따른 또 다른 실시형태에서, 처리 장치가 제공된다. 처리 장치는 열 속성들과 관련된 처리 작업들을 수행할 수 있다. 처리 장치는 메모리 및 복수의 처리 디바이스들을 포함한다. 메모리는 제 1 및 제 2 작업들을 저장하기 위한 것이다. 제 1 작업은 동작 경계를 초과하는 열 속성을 가진다. 제 2 작업은 동작 경계를 초과하지 않는 열 속성을 가진다. 처리 디바이스들은 작업들을 실행할 수 있다. 처리 디바이스들 중 적어도 일부는 열 경계 및 메모리에 대한 접근을 가진다. 적어도 선택된 처리 디바이스는 처리 요소, 처리 유닛 또는 부 처리 유닛을 포함한다. 선택된 처리 디바이스의 열 경계가 초과되지 않는다면, 선택된 처리 디바이스는 제 1 작업을 처리를 위해 메모리로부터 얻을 수 있다. 선택된 처리 디바이스의 열 경계가 초과된다면, 선택된 처리 디바이스는 제 2 작업을 처리를 위해 메모리로부터 얻을 수 있다.
일 실시예에서, 처리 디바이스들 중 적어도 일부는 처리 요소들이다. 바람직하게는, 처리 요소들 중 적어도 일부는 적어도 하나의 부 처리 유닛을 포함한다. 이 경우에, 부 처리 유닛들은 부동 소수점 유닛, 정수 유닛 및 부동 소수점 및 정수 유닛들과 관련된 레지스터를 포함할 수 있다. 더욱 구체적으로, 부 처리 유닛들은 로컬 스토어(local store)를 더 포함한다.
또 다른 실시예에서, 처리 요소들 중 적어도 일부는 처리 유닛 및 처리 유닛과 관련된 복수의 부 처리 유닛들을 더 포함한다. 이 경우에, 부 처리 유닛들 각각은 로컬 스토어를 포함하는 것이 바람직하다.
또 다른 실시예에서, 처리 디바이스들 중 제 1 처리 디바이스는 제 1 처리 디바이스의 열 경계에 따라 처리 디바이스들 중 제 2 처리 디바이스와 작업들을 교환하도록 작동가능하다.
또 다른 실시예에서, 선택된 처리 디바이스는 부 처리 유닛을 포함하고 메모리는 부 처리 유닛 내에 로컬 스토어를 포함한다. 이러한 경우에, 로컬 스토어는 제 1 작업을 관리하기 위한 제 1 대기행렬 및 제 2 작업을 관리하기 위한 제 2 대기행렬을 포함할 수 있다. 제 1 및 제 2 작업들은 시간 공유 배열로 메모리 내에 유지될 수 있다.
본 발명의 태양들에 따른 선택적인 실시예에서, 한 쌍의 메모리들이 있다. 일 실시예에서, 메모리들 중 제 1 메모리는 동작 경계를 초과하는 열 속성들을 가지는 제 1 세트의 작업들을 관리하기 위한 제 1 대기행렬을 포함하고, 메모리들 중 제 2 메모리는 동작 경계를 초과하지 않는 열 속성들을 가지는 제 2 세트의 작업들을 관리하기 위한 제 2 대기행렬을 포함한다. 선택된 처리 디바이스의 열 경계가 초과되지 않는다면, 상기 처리 디바이스는 처리를 위해 제 1 세트의 작업들 중 적어도 하나를 얻을 수 있다. 열 경계가 초과된다면, 처리 디바이스는 처리를 위해 제 2 세트의 작업들 중 적어도 하나를 얻을 수 있다. 또 다른 실시예에서, 제 1 및 제 2 작업들을 저장하기 위한 한 쌍의 메모리들이 있고, 제 1 작업은 동작 경계를 초과하는 열 속성을 가지고 제 2 작업은 동작 경계를 초과하지 않는 열 속성을 가진다. 선택된 처리 디바이스의 열 경계가 초과되지 않는다면, 상기 처리 디바이스는 처리를 위해 제 1 작업을 제 1 또는 제 2 메모리로부터 얻을 수 있다. 열 경계가 초과된다면, 처리 디바이스는 제 2 작업을 처리를 위해 제 1 또는 제 2 메모리로부터 얻을 수 있다.
본 발명의 태양들에 따르면, 태스크들을 처리하는 방법이 제공된다. 상기 방법은 속성에 근거한 구성요소에 의한 실행을 위해 복수의 태스크들 중 선택된 하나를 포함한다. 각각의 태스크에 대한 속성은 관련된 태스크의 실행 이후의 구성요소의 온도에 관한 것이다. 선택된 태스크가 그 다음에 실행된다.
바람직하게는, 속성은, 관련된 태스크의 실행 이후의 구성요소의 온도의 예상되는 증가 또는 감소에 관한 것이다. 예상되는 증가 또는 감소는 구성요소의 전력 밀도에 근거한다. 태스크들은 메모리 내의 적어도 하나의 대기행렬 내에 저장될 수 있다. 선택적으로, 태스크들은 메모리 내의 적어도 2개의 대기행렬들 내에 저장될 수 있다. 하나의 대기행렬은 속성들이 조건에 부합하는 태스크들을 저장한다. 또 다른 대기 행렬은 속성들이 조건에 부합하지 않는 태스크들을 저장한다. 조건은 속성이 경계를 초과하는 것이다. 태스크는 또한 구성요소의 현재 온도에 근거하여 선택될 수 있다. 태스크들은 실행 이전에 메모리 내의 다른 주소들에 저장될 수 있다. 태스크들은 또한 실행 이전에 메모리의 같은 주소에 다른 시간들에 저장될 수 있다. 바람직하게는, 구성요소는 프로세서이다.
본 발명의 다른 태양들에 따르면, 처리될 태스크들을 저장하기 위한 메모리 및 메모리 내에 저장된 태스크들을 처리하는 구성요소를 포함하는, 태스크들을 처리하기 위한 시스템이 제공된다. 태스크들은 속성들과 관련된다. 각각의 태스크에 대한 속성은 관련된 태스크를 처리한 이후의 구성요소의 온도에 관한 것이다. 태스크들 중 하나는 속성에 근거하여 구성요소에 의해 처리되기 위해 선택된다.
속성은 선택된 태스크의 처리 이후의 구성요소의 온도의 예상되는 증가 또는 감소에 관한 것이 바람직하다. 예상되는 증가 또는 감소는 구성요소의 전력 밀도에 근거할 수 있다. 태스크들은 메모리 내의 적어도 하나의 대기행렬 내에 저장될 수 있다. 태스크들은 또한 메모리 내의 적어도 2개의 대기행렬들 내에 저장될 수 있다. 이러한 경우에, 하나의 대기행렬은 속성들이 조건에 부합하는 태스크들을 저장하고 또 다른 대기행렬은 속성들이 조건에 부합하지 않는 태스크들을 저장한다. 조건은 속성이 경계를 초과하는 것일 수 있다.
메모리는 메모리의 2개의 분리된 집합들을 포함하는 것이 바람직하다. 메모리의 하나의 집합은 속성들이 조건에 부합하는 태스크들을 저장하고 메모리의 다른 집합은 속성들이 조건에 부합하지 않는 태스크들을 저장한다. 메모리의 2개의 분리된 집합은 다른 시간 주기들에서 같은 메모리 주소에 저장될 수 있다. 메모리의 2개의 분리된 집합들은 다른 메모리 주소들에 있을 수 있다. 이러한 경우에, 메모리의 2개의 분리된 집합들은 같은 반도체 디바이스 내에 있을 수 있거나, 다른 반도체 디바이스들에 있을 수 있다.
바람직하게는, 구성요소는 온도 센서를 포함한다. 이러한 경우에, 태스크는 온도 센서의 출력에 근거하여 선택될 수 있다. 시스템은 태스크들을 처리할 수 있는 제 2 구성요소를 또한 포함한다. 하나 이상의 태스크들이 태스크를 처리한 이후의 각각의 구성요소의 예상되는 온도에 근거하여 각각의 구성요소에 대해 선택될 수 있다. 시스템은 또한 구성요소에 대한 하나 이상의 태스크들을 선택하는 스케줄러를 포함한다.
도 1은 본 발명의 태양들에 따른 다양한 조합들로 그룹화되는 구성요소들을 도시한다.
도 2a-b는 컴퓨팅 디바이스들에 대해 시간에 대한 온도의 그래프를 도시한다.
도 3a는 본 발명의 태양들에 따른 처리 요소(PE; processing element)의 예 시적 구조를 도시하는 개략도이다.
도 3b는 본 발명의 태양들에 따른 PE들의 멀티프로세싱 시스템의 예시적 구조를 도시하는 개략도이다.
도 4는 본 발명의 태양들에 따른 부 처리 유닛(SPU; sub-processing unit)의 예시적 구조를 도시하는 개략도이다.
도 5는 본 발명의 태양들에 따른 다중-대기행렬 스케줄링을 도시하는 개략도이다.
도 6은 본 발명의 태양들에 따른 예시적 동적 스케줄링 프로세스를 도시하는 순서도이다.
도 7은 본 발명의 태양들에 따른 다중-대기행렬 스케줄링을 도시하는 개략도이다.
도 8은 본 발명의 태양들에 따른 예시적 동적 스케줄링 프로세스를 도시하는 순서도이다.
도 9a-c는 본 발명의 태양들에 따른 태스크 마이그레이션(task migration)을 도시하는 개략도들이다.
도 10a-b는 본 발명의 태양들에 따른 구성요소들 및 구성요소들과 관련된 열 값들을 도시한다.
도 11은 본 발명의 태양들에 따른 컴파일러 기능을 도시한다.
도면에 도시된 본 발명의 바람직한 실시형태들을 도시함에 있어서, 구체적인 전문용어가 명확성을 위해 이용될 것이다. 그러나, 본 발명은 선택된 특정 용어들에 제한되지 않으며, 각각의 특정 용어는 유사한 목적을 달성하기 위해 유사한 방법으로 동작하는 모든 기술적인 균등물들을 포함한다.
도 3a는 본 발명의 태양들에 따라 이용될 수 있는 기본 처리 모듈 또는 처리 요소(PE; 300)의 블록도를 도시한다. 도 3a에 도시된 것처럼, PE(300)는 I/O 인터페이스(302), 처리 유닛(PU; 304), 직접 메모리 액세스 제어기(DMAC; direct memory acess controller; 306), 및 복수의 부 처리 유닛(SPU; sub-processing unit; 308)들, 즉 SPU들(308a-308d)을 포함한다. 4개의 SPU들(308a-d)이 도시되지만, PE(300)은 임의의 개수의 이러한 디바이스들을 포함할 수 있다. 국부 (또는 내부) PE 버스(320)는 PU(304), SPU(308)들, I/O 인터페이스(302), DMAC(306) 및 메모리 인터페이스(310) 사이에 데이터 및 어플리케이션(application)들을 전송한다. 로컬 PE 버스(320)는 통상의 아키텍쳐(architecture)를 가질 수 있거나 패킷 스위치 네트워크(packet switch network)로서 이용될 수 있다. 패킷 스위치 네트워크로서의 이용은 더 많은 하드웨어를 필요로 하지만 이용가능한 대역폭을 증가시킨다.
PE(300)는 디지털 로직을 이용하기 위해 다양한 방법들을 사용하여 구성될 수 있다. PE(300)는 실리콘 기판 상의 CMOS를 이용하는 단일 집적 회로로서 구성되는 것이 바람직하다. PE(300)는 면밀하게 높은 대역폭 메모리 접속(322)을 통하여 메모리(330)와 관련된다. 메모리(330)는 바람직하게는 PE(300)에 대한 주 메모리로서 기능한다. 메모리(330)는 바람직하게는 동적 랜덤 액세스 메모리(DRAM; dynamic random access memory)일 지라도, 메모리(330)는 정적 랜덤 액세스 메모리(static random access memory; SRAM), 자기 랜덤 액세스 메모리(magnetic random access memory; MRAM), 광 메모리, 홀로그래픽 메모리(holographic memory) 등과 같은 다른 수단을 이용하여 취급될 수 있다. DMAC(306) 및 메모리 인터페이스(310)는 메모리(330)와 PE(300)의 SPU(308) 및 PU(304) 사이의 데이터 전송을 일으킨다.
PU(304)는 데이터 및 어플리케이션(application)들의 스탠드-얼론(stand-alone) 처리를 가능하게 하는 표준 프로세서일 수 있다. 작업에서, PU(304)는 SPU(308)들에 의해 데이터 및 어플리케이션들의 처리를 스케줄링하고 조정한다. SPU(308)들은 바람직하게는 단일 명령, 다중 데이터 프로세서(single instruction, multiple data(SIMD) processor)들이다. PU(304)의 제어 하에, SPU(308)들은 데이터 및 어플리케이션들의 처리를 병렬적이고 독립적인 방식으로 수행할 수 있다. DMAC(306)는 공유 메모리(330) 내에 저장된 데이터 및 어플리케이션들로의 PU(304) 및 SPU(308)들에 의한 접근들을 제어한다. 바람직하게는, PE(300)과 같은 많은 PE들이 함께 결합하거나, 논리적으로 서로 관련되어 향상된 처리 전력을 제공한다.
도 3b는 본 발명의 태양들에 따라 동작할 수 있는 복수의 PE들(PE1, PE2, PE3, PE4; 350)로 이루어진 처리 아키텍쳐를 도시한다. 바람직하게는, PE(350)들이 단일 칩 상에 있다. PE(350)들은 도 3a의 PE(300)과 관련하여 이상에서 논의된 PU 및/또는 SPU들과 같은 서브시스템들을 포함하거나 포함하지 않을 수 있다. PE(350)들은 필요한 처리의 유형들에 따라 동일하거나 다른 유형들일 수 있다. 예를 들어, PE(350)들은 일반적인 마이크로프로세서들, 디지털 신호 프로세서들, 그래픽스 프로세서들 등일 수 있다.
PE(350)들은 공유 버스(352)에 연결되어 있는 것이 바람직하다. 메모리 제어기 또는 DMAC(356)는 메모리 버스(354)를 통해 공유 버스(352)에 연결될 수 있다. DMAC(356)는, 메모리(330)와 관련되어 이상에서 논의된 유형들 중 하나일 수 있는 메모리(358)에 연결된다. I/O 제어기(362) 또한 I/O 버스(360)를 통하여 공유 버스(352)에 연결될 수 있다. I/O 제어기(362)는 프레임 버퍼들, 디스크 드라이브들 등과 같은 하나 이상의 I/O 디바이스들(364)에 연결될 수 있다. 이상의 처리 모듈들 및 아키텍쳐들은 단지 예시적이고, 본 발명의 다양한 태양들은 다른 구조들을 이용하여 실시될 수 있고, 2003년 2월 25일에 배포된 "광역 네트워크들을 위한 컴퓨터 아키텍쳐에 대한 메모리 보호 시스템 및 방법"이라고 제목이 붙여진 미국특허 제6526491호, 및 "광역 네트워크들에 대한 컴퓨터 아키텍쳐 및 소프트웨어 셀들"이라고 제목이 붙여진 미국특허출원 제09/816004호에 개시된 유형들의 멀티프로세서 시스템들을 포함하지만, 이에 제한되지 않는다.
도 4는 본 발명의 태양들에 따라 실시될 수 있는 SPU(400)의 구조 및 기능을 도시한다. SPU(400)는 로컬 스토어(402), 레지스터들(404), 하나 이상의 부동 소수점 유닛들(406) 및 하나 이상의 정수 유닛들(408)을 포함하는 것이 바람직하다. SPU(400)의 구성요소들은 이하에서 논의된 것처럼 서브구성요소들로 이루어진다. 필요한 처리 전력에 따라, 다소의 개수의 부동 소수점 유닛들(FPUs; floating point units; 406) 및 정수 유닛들(IUs; integer units; 408)이 이용될 수 있다. 바람직한 실시형태에서, 로컬 스토어(402)는 적어도 128 킬로바이트의 스토리지(storage)를 포함하고, 레지스터들(404)의 용량은 128 × 128 비트이다. 부동 소 수점 유닛들(406)은 초당 적어도 320억 부동 소수점 작업들의 속도(32 GFLOPS)로 작동하는 것이 바람직하고, 정수 유닛들(408)은 초당 적어도 320억 작업들의 속도(32 GOPS)로 작동하는 것이 바람직하다.
로컬 스토어(402)는 캐시 메모리가 아닌 것이 바람직하다. SPU(400)에 대한 캐시 일관성 지원은 불필요하다. 대신에, 로컬 스토어(402)는 SRAM으로서 구성되는 것이 바람직하다. PU(204)는, PU(204)에 의해 초기화된 직접 메모리 액세스에 대한 캐시 일관성 지원을 필요로 할 수 있다. 캐시 일관성 지원은 SPU(400)에 의해 초기화되는 직접 메모리 액세스, 또는 외부 디바이스들로 및 외부 디바이스들로부터의 액세스들에 대해 필요하지 않다.
SPU(400)는, 버스 인터페이스(Bus I/F; bus interface; 412)를 통하여 어플리케이션들 및 데이터를 SPU(400)로 및 SPU(400)으로부터 전송하기 위한 버스(410)를 더 포함한다. 바람직한 실시형태에서, 버스(410)는 1,024 비트 폭이다. SPU(400)는 내부 버스들(414, 416 및 418)을 더 포함한다. 바람직한 실시형태에서, 버스(414)는 256 비트의 폭을 가지고 로컬 스토어(402) 및 레지스터들(404) 사이의 통신을 제공한다. 버스들(416 및 418)은 레지스터들(404)과 부동 소수점 유닛들(406) 사이, 및 레지스터들(404) 및 정수 유닛들(408) 사이의 통신들을 제공한다. 바람직한 실시형태에서, 레지스터들(404)로부터 부동 소수점 또는 정수 유닛들로의 버스들(416 및 418)의 폭은 384 비트이고, 부동 소수점 또는 정수 유닛들로부터 레지스터들(404)로의 버스들(416 및 418)의 폭은 128 비트이다. 레지스터들(404)로부터 부동 소수점 유닛들(406) 및 정수 유닛들(408)로의 버스들의 더 큰 폭은 처리 동안의 레지스터들(404)로부터의 더 큰 데이터 흐름을 수용한다. 일 실시예에서, 최대 3개의 단어들은 각각의 계산에 대해 필요하다. 그러나, 각각의 계산 결과는 통상적으로 한 단어만이다.
도 1은 기판(100) 상 또는 내에 형성된 구성요소들(102)을 도시한다. 기판(100) 및 구성요소들(102)은 컴퓨터 칩의 일부 또는 모두를 포함할 수 있다. 구성요소들(102)은 논리 디바이스들 또는 다른 회로일 수 있다. 기판(100)의 영역 내의 하나 이상의 구성요소들(102)은 유닛(104)과 함께 관련될 수 있다. 유닛들(104)의 유닛들(104) 및 그룹들(106)은 PE들(300), PU들(304), SPU들(308), PE들(350) 또는 그의 서브구성요소들을 형성하도록 서로 관련될 수 있다. 예를 들어, 한 그룹의 유닛들(106)은 SPU(400)를 포함할 수 있고, 그룹(106) 내의 유닛들(104)은 로컬 스토어(402), 레지스터들(404), FPU(406), 정수 유닛(408) 및 버스 I/F(412)를 포함할 수 있다. 각각의 유닛(104)은 DRAM 메모리 셀들, 로직 게이트들, 버퍼들 등과 같은 다른 유닛들(104) 및 구성요소들(102)을 포함할 수 있다. 구성요소들(102), 유닛들(104) 및 그룹들(106)은 다양한 레벨들로 복잡하지만, 용어 "구성요소"는 대부분의 베이직 빌딩 블록(basic building block)들(즉, 트랜지스터 및 커패시터들)로부터 PE(300) 또는 PE(350) 및 전체 컴퓨터 칩 자체까지의 전체 레벨들에서 디바이스들을 참조하도록 이용된다. 전형적으로, 구성요소들은 기판(100) 상의 상보성 금속 산화막 반도체(CMOS; complementary metal oxide semiconductor)를 이용한 집적 회로들로서 구성된다. 기판(100)은 바람직하게는 실리콘 기판이다. 기판(100)에 대한 선택적인 재료들은 갈륨 아세나이드, 갈륨 알루미늄 아세나이드 및 다양한 도 펀트(dopant)들을 이용한 Ⅲ-B 화합물들을 포함하고, 이에 제한되지 않는다. 구성요소들(102)은 초전도 재료, 즉, 초고속 단자속 양자 로직을 이용하여 실시될 수 있다.
구성요소들은 처리 명령들 또는 태스크들(즉, 일련의 명령들)과 같은 작업들을 수행할지라도, 종종 열을 발생시킨다. 본 명세서에서 사용되는 것처럼, 용어들 "작업" 또는 "태스크들"은 수행되어질 활동들과 관련되고, 명령들, 태스크들 및 단일 또는 복수의 단계들의 프로그램들을 포함하지만 이에 제한되지 않는다.
발명의 일 태양에서, 구성요소에 의해 수행되어질 작업들은 열 속성과 관련되어, 열 속성의 값은 상기 작업을 수행할 때 상기 구성요소에 의해 생성되는 것으로 예상되는 열량에 관한 것이다. 바람직하게는, 열 속성은 또한 시간에 근거한다. 예를 들어, 속성의 값은 고정된 주기의 시간에 걸쳐서 생성된 열량을 나타낼 수 있다.
열 속성은 측정되거나 평가될 수 있다. 예를 들어, 온도계 또는 다른 온도 감지 디바이스는 특정 작업을 수행함에 따라 유닛의 온도를 측정하도록 이용될 수 있다.
열 속성은 구성요소들의 전력 소비에 근거하여 평가되는 것이 바람직하다. 예를 들어, 일부 구성요소들은 작동하는 데에 더 많은 전력을 필요로 하고 더 높은 열 속성을 가진다. 다른 구성요소들은 동일한 전력 소비를 가질 수 있지만 더욱 촘촘히 포장되어, 간격을 둔 구성요소들보다 더 많은 열을 생성하는 경향이 있다. 이와 관련하여, 열 속성은 양쪽의 요소들에 근거하여 평가될 수 있고, 이 경우에 열 속성은 구성요소들의 구성요소 또는 그룹들의 전력 밀도에 근거한다. 그러므로, 일부의 경우들에서는, 구성요소가 작업, 한 주기의 시간에 걸쳐 생성되는 열량, 구성요소의 일반적 전력 소비, 구성요소의 전력 밀도, 및 구성요소들의 관련 (즉, 물리적이거나 논리적으로 관련된) 그룹들의 전력 밀도를 실행함에 따라, 열 속성은 생성될 것으로 예상되는 열을 반사할 수 있다. 칩의 효과적인 열 관리를 달성하기 위해, 각각의 구성요소에 대해 전력 소비를 스케줄링하는 것이 바람직하다. 구성요소 전력 소비는 칩 개발 동안 평가될 수 있다. 예를 들어, 칩, 서브시스템 및/또는 각각의 구성요소들의 회로 시뮬레이션이, 수행될 수 있다.
바람직하게는, 열 속성들은 특정 구성요소들과 더 관련된다. 예를 들어, 정수 추가 작업과 같은 작업이 정수 유닛(408)을 포함한다면, 열 속성은 구체적으로 정수 유닛(408)과 관련될 수 있다. 유사하게, 부동 소수점 작업의 열 속성은 특히 부동 소수점 유닛(406)과 관련될 수 있다. 다른 작업들은, 로컬 스토어(402)로부터 레지스터(404)로 이동하는 데이터와 같은 한 세트의 구성요소들을 포함할 수 있다. 여전히 다른 작업들이 구성요소들 모두를 포함할 수 있거나 특정 세트의 구성요소들에 기인하기 어려울 수 있다. 예를 들어, 3-D 그림을 렌더링하는 것은 SPU(400) 내에 구성요소들 모두를 포함할 수 있고, 이 경우에 열 속성은 SPU(400) 내의 구성요소들 모두에 인가된다. 선택적으로, 얼마나 많은 열이 작업 수행시 각각의 구성요소들에 의해 생성될 지를 예상하는 것이 어려울 수 있고, 이 경우에 작업에 대한 열 속성은 일반적으로 한 그룹의 구성요소들에 할당될 수 있다. 표 1은 한 표본 세트의 작업들, 구성요소들 및 열 속성들을 도시한다.
작업 | 열 속성 | 구성요소(들) |
3-D 렌더링 | 12 | SPU(400) |
정수 추가 | 3 | IU(408) |
부동 소수점 추가 | 7 | FPU(406) |
메모리 이동 | 2 | 스토어(402), 레지스터들(404) |
바람직한 실시예에서, 주어진 구성요소 (또는 세트의 구성요소들)에 대한 열 속성은 다음과 같이 계산될 수 있다: TA = k * (P/S)
열 속성(TA)은 구성요소의 전력 밀도, 또는 구성요소의 크기 또는 풋프린트(S)에 의해 나누어진 전력 소비(P)에 열 평가에 대해 사용되어진 요소 또는 상수(k)를 곱한 것과 동등하다.
본 발명의 일 태양에 따르면, 프로그램 컴파일러는 구성요소를 과열로부터 방지하기 위해 열 속성을 이용한다. 컴파일러는 소프트웨어, 펌웨어, 하드웨어 또는 이상의 조합으로 실시될 수 있다. 컴파일러는 (PE(300) 또는 PE(350)과 같은) 처리 요소 또는 서브구성요소와 관련될 수 있다. 도 11은 본 발명의 태양들에 따라 컴파일러 기능을 도시한다. 당업자에게 잘 알려져 있듯이, 컴파일러들은 소스 코드를 수신하고 컴퓨팅 시스템에서 실행될 수 있는 객체 코드를 생성한다. 본 발명의 태양들에 따르면, 컴파일러는 작업들 및/또는 구성요소들과 관련된 열 속성들뿐만 아니라 소스 코드를 수신한다. 컴파일러는 열 속성들에 근거한 객체 코드를 생성하는 것이 바람직하다. 컴파일러는 명령들의 개수를 셈으로써 편집을 관리함에 따라, 컴파일러에 의해 편집된 객체 코드의 열 속성은 정적으로 평가된다. 향상된 열 속성 결정은 프로파일러를 이용하여 만들어지는 것이 바람직하고, 상기 프로파일러는 명령들의 동적 실행을 셀 수 있고 각각의 구성요소의 동작 주파수를 보고할 수 있는 실행 모니터이다. 프로파일러는 컴파일러에 더욱 정확한 열 평가들을 제공할 수 있고, 열적으로 최적화된 객체 코드 생성을 일으킨다.
도 2a-b는 처리의 악화 또는 구성요소들에 대한 손상을 방지하기 위해 컴파일러 또는 다른 명령 스케줄러가 작업들을 어떻게 관리할 수 있는 지를 도시한다. 설명을 위하여, 열 경계(Tmax)는 초과되기에 바람직하지 않은 온도를 나타내는 것으로 가정한다. 삼각 부분들 A, B, C은 구성요소에 의해 수행되는 명령들을 나타낸다. 예를 들어, 부분들 A 및 B은 상당한 열량을 생성하는 계산적으로 집약적인 명령들 또는 태스크들을 나타내고, 부분 C은 계산적으로 집약적이지 않고 A 또는 B의 열량만큼 생성하지 않는다. 더욱 구체적으로, 태스크들 A, B 및 C은 전체 계산 (2*3)+(4*5)+(6+7)의 부분들로 가정하고, 태스크 A는 (2*3)을 나타내고, 태스크 B는 (4*5)를 나타내고 태스크 C는 (6+7)을 나타낸다. 도 2a에 도시된 것처럼, 태스크들이 A, B, C의 순서로 수행될 때, 온도는 Tmax를 초과할 수 있다. 여기서, A 및 B가 연속적으로 수행되기 때문에, 열 경계(Tmax)가 돌파된다.
컴파일러가 특정 명령들에 대하여 어떻게 순서를 매기는 지에 관하여 종종 결정권을 가지는 것이 당업자에게 공지되어 있다. 본 발명의 바람직한 실시형태에 따르면, 컴파일러는 작업들의 열 속성들에 근거하여 스케줄의 순서를 다시 선택적으로 매길 수 있다. 바람직하게는, 컴파일러는 작업들 A, B 또는 C 중 어느 것이 컴파일러와 관련된 열 속성을 가지는지 여부를 초기에 결정한다. 열 속성을 가진다면, 컴파일러는 Tmax가 초과되는 것을 방지하는 순서를 이용하여 작업들을 객체 코드 내로 선택적으로 편집할 수 있다. 이상의 실시예에서, 컴파일러는 궁극적인 결과를 변화시키지 않고 방정식이 계산되는 순서를 변화시킬 수 있다. 예를 들어, 컴파일러는 A, C 및 B의 순서로 작업들을 스케줄링할 수 있다. 그러므로, 도 2b에 도시된 것처럼, 명령들의 순서가 변화될 때, 온도는 Tmax를 초과하지 않는다.
열 경계(Tmax)는 반드시 정지 온도일 필요는 없다. 대신에, Tmax는 관련 작동 파라미터들에 근거한 선택된 디자인 기준일 수 있다.
게다가, 작업들의 순서를 다시 매길 때, 컴파일러는 계산들을 행하는 구성요소들의 트랙을 유지하는 것이 바람직하다. 예를 들어, 일련의 작업들은 (FPU(406)과 같은) SPU(400)의 일부분이 과열되도록 하고 (FPU(408)과 같은) SPU의 다른 부분들이 냉각되도록 한다. 컴파일러는 바람직하게는 작업들을 스케줄링하도록 시도함으로써 이러한 문제점을 어드레스(address)하여 작업들이 SPU의 다양한 구성요소들 사이에서 평등하게 분배된다. 구성요소들이 열 속성들을 이용하여 프로그램의 작업들을 수행함에 따라 컴파일러가 이를 행하는 방식은 구성요소들의 온도를 추적하고 시뮬레이팅(simulating)하는 것이다. 예를 들어, 구성요소 X는 클락 사이클 당 2 열 속성 포인트들의 속도로 냉각되고 과열되기 전에 8 열 속성 포인트들의 경계를 가지는 것으로 가정한다. 상기 구성요소와 관련된 작업이 사이클 당 5 포인트들의 열 속성을 가진다면, 작업이 한 행당 3번 수행되었을 경우, 구성요소가 과열되는 것으로 가정한다(제 1 사이클 이후의 5-2 포인트들은 3의 현재 열 인덱스를 일으키고; 제 2 사이클 이후의 5-2 포인트들은 6의 총 현재 열 인덱스에 대해 또 다른 3 포인트들을 추가하고; 제 2 사이클 이후의 5-2 포인트들은 9의 총 현재 열 인덱스에 대해 또 다른 3 포인트들을 추가한다). 구성요소 X가 이러한 스케줄링으로 과열되는 것이 탐지되면, 구성요소 X가 비활성인채로 남아 냉각되는 반면 컴파일러는 또 다른 구성요소에 의해 수행되어질 작업을 스케줄링하도록 시도한다.
선택적으로, 컴파일러는, 구성요소가 냉각되는 것으로 예상되는 속도보다 낮은 열 속성을 가진 다른 작업을 선택하도록 시도할 수 있다. 예를 들어, 컴파일러가, 구성요소 X가 작업들의 현재 스케줄로 과열될 수 있다고 결정한다면, 컴파일러는, (구성요소가 사이클당 2 열 속성들의 속도로 냉각되도록 하는) 1의 열 속성을 가진 작업을 5의 열 속성을 가진 작업들 사이에 배치하도록 시도할 수 있다.
구성요소들이 다른 구성요소들에 의해 포함되는 정도까지, 컴파일러는 더 큰 구성요소의 열 속성을, 서브구성요소들로, 또는 서브구성요소들로부터 페어런트구성요소로 할당한다. 예를 들어, 도 10a에 도시된 것처럼, 각각의 구성요소들이 2, 3, 2 및 7의 열 속성들을 가지는 작업들을 동시에 수행하고 있다면, 이러한 작업들 모두에 대한 SPU에 대한 열 속성은 14로 고려될 수 있다. 반면에, 전체 SPU(400)로 인한 열 속성은 각각의 구성요소들에 할당될 수 있다. 도 10b에 도시된 것처럼, 3-D 렌더링의 열 속성이 12이고 전체 SPU로 인한 것이라면, 상기 값은 SPU(400) 이내의 구성요소들에 균등하게 할당될 수 있다. 컨테이너 관계, 논리 함수들 및 물리적 근사에 의해 관련된 구성요소들 사이의 할당들을 포함하여, 할당의 다른 변화들이 가능하다.
다양한 구성요소들의 열 값들은 각각의 구성요소들의 즉각적인 작업들만을 반영하지 않고, 시간에 걸쳐 누적하고 세트들의 구성요소들에 대해 합쳐질 수 있다. 이러한 요소들을 고려하면, 컴파일러는 열 경계(Tmax)를 방지하기 위해 작업들을 효과적으로 스케줄링할 수 있다.
바람직하게는, 냉각 속성은 다양한 구성요소들을 포함하는 컴퓨터 칩과 관련된다. 냉각 속성은 컴퓨터 칩의 냉각 시스템의 특정 특징들에 의존한다. 예를 들어, 냉각 속성은 칩 패키징 및 (열 싱크(heat sink) 또는 팬(fan)과 같은) 냉각기에 의존하는 것이 바람직하다. 냉각 시스템이 냉각기에 대한 하나의 상태만을 가진다면(즉, 항상 1세트 회전 속도로 팬을 동작시킨다면), 냉각 속성은 고정될 것이다. 냉각 시스템의 상태가 팬의 회전 속도를 변화시킴으로써 변경될 수 있다면, 냉각 속성은 동적인 것이 바람직하고, 냉각 시스템이 냉각기의 동작 상태를 변화시킬 때 결정되거나 갱신될 수 있다. 일 실시형태에서, 컴파일러는 냉각기의 전형적인 동작 상태에 근거하여 계산된 고정된 냉각 속성을 이용한다. 컴파일러는 특정 구성요소들에 속하는 작업들의 밀도를 계산할 때 냉각 속성을 이용한다. 더욱 바람직하게는, 컴파일러는 칩 패키징의 열 분산 능력들에서 인수분해된다. 또 다른 실시형태에서, 컴파일러 또는 프로파일러는 동적 냉각 속성을 이용하여 컴파일러가 객체 코드 생성을 수행하는 것을 돕는다. 표 2는, 열 및 냉각 속성들에 근거하여 주어진 정수 유닛(IU; integer unit; 408) 및 주어진 로컬 스토어(LS; local store; 402)에 의해 처리될 정수 작업에 대한 예시적 스케줄을 도시한다.
명령 번호 | 명령을 처리하는 구성요소 | IU | LS |
1 | LS | 0 | 2 |
2 | IU | 3 | 1 |
3 | LS | 2 | 3 |
4 | IU | 5 | 2 |
5 | nop | 4 | 1 |
6 | IU | 7 | 0 |
7 | IU | 10 | 0 |
8 | Other | 9 | 0 |
9 | nop | 8 | 0 |
10 | nop | 7 | 0 |
... | ... | ... | ... |
이상의 세트의 명령들에 대해, IU(408)의 열 속성은 3이고, 칩의 냉각 속성은 1이며, IU(408)의 열 경계는 10이라고 가정하자. 가장 좌측에 있는 열은 명령 번호를 가리키고, 두번째 열은 어느 구성요소가 명령을 처리하는 지를 가리키며, 표 2의 우측의 2개의 열들은 명령을 처리한 이후의 구성요소의 생성된 열 또는 온도를 도시한다. 예를 들어, 명령 1은 LS에 의해 처리되거나 실시되고, IU가 0으로 남아 있는 동안 2의 열 값을 일으킨다. 명령 2가 IU에 의해 동작된 이후에, IU는 3의 열 값을 가지고, LS는 1의 열 값으로 냉각된다. 무연산(nop; no operation)인 명령 5가 될 때까지 처리가 계속된다. 이것은 IU 및 LS가 어느 정도 냉각되는 것을 허용한다. IU는 명령들 6 및 7을 처리하여, 열 값을 경계까지 상승시킨다. 경계를 초과하는 것을 방지하기 위해, 다른 구성요소("Other")는 다음의 명령을 처리하는 것이 바람직하다. 예를 들어, 프로파일러는 IU 및 LS에 의한 명령들의 실행을 탐지할 수 있고 정보를 컴파일러에 보고할 수 있다. 컴파일러는 또 다른 IU에 의해 처리된 명령 8을 가지기 위해 열 속성들 및 냉각 속성과 관련하여 이러한 정보를 사용할 수 있다.
도 5는 본 발명의 태양들에 따른 멀티-대기행렬 스케줄링 방법론(500)을 도시한다. 도 5에 도시된 것처럼, 스케줄러(502)는 2개의 대기행렬들과 관련된 것이 바람직하다. 편리를 위하여, 제 1 대기행렬은 "뜨거운 대기행렬(504)"로서 칭해지고 제 2 대기행렬은 "차가운 대기행렬(506)"로서 칭해진다. 대기행렬들(504, 506)은 메모리 내의 데이터 구조들 또는 연속적이거나 불연속적인 집합과 같은 많은 다른 방법들로 이용될 수 있다. SPU(400)들을 이용한 일 실시예에서, 대기행렬들(504, 506)은 SPU(400)들의 외부에서 실시된다. 대기행렬들(504, 506)은 메모리(330)( 또는 메모리(358))와 관련하여 PU(304) 또는 PE(300)의 외부에서 실시될 수 있다. 또 다른 실시예에서, 대기행렬들(504, 506)은 SPU(400)들의 외부에서 실시된다. 바람직하게는, 대기행렬들(504, 506)은 로컬 스토어(402) 또는 레지스터들(404)과 관련하여 실시될 수 있다. 예를 들어, 뜨거운 대기행렬(504)은 제 1 SPU(400)의 로컬 스토어(402)와 관련하여 실시될 수 있고 차가운 대기행렬(506)은 제 2 SPU(400)의 로컬 스토어(402)와 관련하여 실시될 수 있다. SPU(400)가 복수의 로컬 스토어들(402)을 포함하는 경우에는, 냉각된 대기행렬(506)이 같은 SPU(400) 내의 로컬 스토어들(402)의 제 2 로컬 스토어 내에 저장될 수 있는 반면에 뜨거운 대기행렬(504)은 로컬 스토어들(402)의 제 1 대기행렬 내에 저장될 수 있다. 선택적으로, 양쪽의 뜨거운 대기행렬(504) 및 차가운 대기행렬(506)은 같은 로컬 스토어(402) 또는 SPU(400)의 외부 또는 PE(300)의 외부의 동일한 메모리 내에서 실시될 수 있다. 대기행렬들(504, 506)이 레지스터들(404)을 경유하여 실시된다면, 다양한 대안들이 가능하다. 한 경우에서, 뜨거운 대기행렬(504)은 제 1 SPU(400)의 레지스터(404)를 경유하여 실시될 수 있고 냉각된 대기행렬(506)은 제 2 SPU(400)의 레지스터(404)를 경유하여 실시될 수 있다. 대기행렬들(504, 506)은 시간공유 배열에서 실시될 수 있고, 예를 들어 대기행렬들(504, 506) 중 하나는 제 1 주기 시간 동안 메모리 내에 저장되고, 그 다음에 대기행렬들(504, 506)의 다른 하나는 제 2 주기 시간 동안 메모리 내에 저장된다.
스케줄러(502)는, 열 속성들에 따라 명령들, 태스크들 또는 다른 작업들과 함께 뜨거운 대기행렬(504) 및 냉각된 대기행렬(506)을 정주(populate)시킬 수 있다. 바람직하게는, 스케줄러(502)는 열 속성들을 함유하는 룩-업 테이블(look-up table)에 대한 액세스를 가진다. 스케줄러(502)는 실행 작업 전 및/또는 동안 동작할 수 있다. 스케줄러(502)는 구성요소의 현재 온도에 따라 태스크를 뜨거운 대기행렬(504) 또는 차가운 대기행렬(506)로부터 선택할 수 있다. 바람직한 실시예에서, 디바이스의 현재 온도가 동작 경계를 초과하지 않는 한, 스케줄러(502)는 임의의 태스크를 뜨거운 또는 차가운 대기행렬들(504, 506)로부터 선택할 수 있다. 또 다른 바람직한 실시예에서, 동작 경계가 초과되지 않고 뜨거운 태스크와 차가운 태스크 모두가 이용가능하다면, 스케줄러(502)는 태스크들을 차가운 대기행렬(506)로부터 선택하기 전에 태스크들을 뜨거운 대기행렬(504)로부터 선택한다. 일례로서, 다수의 작업들을 필요로 하는 부동 소수점 명령들 또는 태스크들은 상대적으로 높거나 양수인 열 속성 값과 관련될 수 있다. 이러한 작업들은, 태스크들(H1...HN)에 의해 보여지는 것처럼 뜨거운 대기행렬(504) 내에 배치된다. 정수 명령들 및 단일 작업 태스크들과 같은 다른 작업들은 상대적으로 낮거나 음인 열 속성과 관련될 수 있다. 이러한 작업들은, 태스크들(C1...CN)에 의해 보여지는 것처럼, 냉각된 대기행렬(506) 내에 배치된다. 태스크의 열 속성은 정보를 컴파일러 및/또는 프로파일러로부터 이용하여 결정되는 것이 바람직하고, 컴파일러 또는 프로파일러는 태스크를 수행하는 각각의 구성요소의 동작 주파수를 보고할 수 있다. 더욱 바람직하게는, 태스크의 열 속성은 구성요소의 동작 주파수(즉, 사용 주파수), 구성요소의 열 속성 및 냉각 속성을 포함한다. 일 실시형태에 따르면, 단순 스케줄러만이 SPU(400)과 같은 서브구성요소들을 가지는 구성요소의 전체 열 속성을 이용한다. 또 다른 실시형태에 따르면, 고등 스케줄러는 LS(402), FPU(406) 및 IU(408)과 같은 SPU의 서브구성요소들의 열 속성들을 관리한다. 표 3은 3-D 태스크 및 MPEG-2 태스크에 대해 주어진 SPU에서 IU, FPU 및 LS에 대한 열 속성들을 도시한다.
태스크 | IU | FPU | LS | 총합(SPU) |
3-D | 3 | 7 | 2 | 12 |
MPEG-2 | 2 | 0 | 0 | 2 |
SPU에 대한 총 열 속성을 보기만 하는 단순 스케줄러는, SPU의 열 경계를 초과할 수 있는 12의 값을 가진다. 그러므로, 단순 스케줄러는 SPU에 의한 실행에 대해 MPEG-2 태스크를 선택하기만 할 수 있다. 반대로, 고등 스케줄러는 SPU의 서브구성요소들을 탐지하는 것이 바람직하다. 이러한 경우에, 고등 스케줄러는 서브구성요소가 열 경계를 초과하지 않음을 알 수 있기 때문에, 3-D 태스크가 선택될 수 있다. 선택적으로, 스케줄은 태스크들 내에서 태스크들 또는 작업들을 다시 순서매김할 수 있어, MPEG-2 태스크는 특정 단계에서 수행되고, 냉각시키기 위한 FPU 시간이 제공된다. 이러한 유연성으로 인해 서브구성요소들, 구성요소들 및/또는 전체 멀티프로세싱 시스템이 과열 없이 작동가능하게 된다.
당업자에게 명확한 것처럼, 스케줄러(502)는 하드웨어, 펌웨어, 또는 소프트웨어에서 실시될 수 있다. 바람직하게는, 스케줄러(502)는 하드웨어-기반이고 PU(204)에서 실시된다. 또 다른 바람직한 대안으로서, 스케줄러(502)는 전체 컴퓨팅 디바이스의 작업 시스템의 일부로서 소프트웨어-기반이다. 뜨거운 대기행렬(504) 및 차가운 대기행렬(506)은 버스(508)를 통하여 프로그램 실행 동안 하나 이상의 PE들(PE1...PEN), PU들(PU1...PUN), 및/또는 SPU들(SPU1...SPUN)에 접근할 수 있는 것이 바람직하다. 일 실시형태에 따르면, 각각의 PE, PU 및/또는 SPU는 온도를 탐지하거나 현재 온도를 평가하기 위해 온도 센서들(온도 감지 수단)을 포함하는 것이 바람직하다. 또 다른 실시형태에 따르면, 각각의 PE는 온도의 디지털 평가를 제공하기 위해 열 센서 및 아날로그-디지털 A/D 변환기를 포함한다. PE 상의 각각의 커널(kernel)은 언제나 아라비아 숫자의 온도를 판독할 수 있는 것이 바람직하다. PE들, PU들 및 SPU들 각각은 구성요소마다 다를 수 있는 열 경계(Tmax)를 가진다. 열 센서들이 이용가능하지 않다면, 현재 온도는 태스크의 열 속성 및 현재 냉각 속성에 의해 계산될 수 있다.
스케줄러(502)는 대기행렬들을 이용하지 않고 작업들을 또한 관리할 수 있다. 작업들은 메모리 내에 저장될 수 있고 스케줄러(502)는 열 속성들에 따라 작업들 중 일부를 프로세서들로 할당할 수 있다. 예를 들어, 2개의 작업들이 있다면, 스케줄러는 열 속성들에 근거하여 2개의 작업들을 2개의 분리된 처리 요소들(300) (또는 다른 처리 디바이스들)에 할당할 수 있다. 작업들은 분리된 메모리들 (또는 단일 메모리의 분리된 부분들)에 저장될 수 있다. 제 1 작업은 제 1 메모리 (또는 단일 메모리의 제 1 부분) 내에 저장될 수 있고, 제 2 작업은 제 2 메모리 (또는 단일 메모리의 제 2 부분) 내에 저장될 수 있다. 동시에 2개의 작업들을 저장할 필요는 없으며; 상기 작업들은 다른 시간 주기들 (또는 고정되거나 변화가능한 연속적이거나 불연속적인 주기들) 동안 동일하거나 다른 메모리 내에 저장될 수 있다. 2개의 메모리들은 특정 열 속성들과 관련된 특정 작업들에 제한된 전용 메모리들일 필요는 없다. 그러므로, 제 1 메모리( 또는 단일 메모리의 제 1 부분)는 제 2 작업을 저장할 수 있고, 제 2 메모리( 또는 단일 메모리의 제 2 부분)는 제 1 작업을 저장할 수 있다. 유사하게, 제 1 및 제 2 대기행렬들(504, 506)은 유사한 방식으로 동작할 수 있다.
도 6은 작업들을 얻고 처리하기 위한 바람직한 방법의 순서도(600)를 도시한다. 단계 602에서, PE, PU 또는 SPU는 PE, PU 또는 SPU의 현재 온도가 열 경계(Tmax)를 초과하는 지 여부를 결정한다. Tmax가 초과되지 않는다면, 다음의 처리는 단계 604로 진행되고, Tmax가 초과된다면, 처리는 단계 608로 진행된다. 단계 604에서, 작업이 뜨거운 대기행렬(504)로부터 이용가능한 지 여부가 결정된다. 작업이 이용가능하다면, 처리는 단계 606로 진행되고, 작업이 이용가능하지 않다면, 처리는 단계 608로 진행된다. 단계 606에서, PE, PU 또는 SPU는 "뜨거운" 작업을 얻고 실행시킨다. 작업이 완료되면, 처리는 단계 602로 되돌아 간다. 단계 608에서, 작업이 차가운 대기행렬(506)로부터 이용가능한 지 여부가 결정된다. 작업이 이용가능하다면, 처리는 단계 610으로 진행된다. 작업이 이용가능하지 않다면, 처리는 단계 612로 진행된다. 단계 610에서, PE, PU, SPU는 "냉각된" 작업을 얻고 실행시킨다. 작업이 완료될 때, 처리는 단계 602로 되돌아 간다. 태스크들이 처리에 대해 이용가능하지 않다면, 처리는, 단계 602로 되돌아 오기 전에 한 주기의 시간(즉, 예정된 개수의 사이클들) 동안 단계 612에서 "무연산"을 수행할 수 있다. 선택적으로, 도 5와 관련하여 이상에서 논의된 것처럼, 뜨거운 태스크 및 차가운 태스크 모두 이용가능하고 Tmax가 초과되지 않는다면, 뜨거운 태스크 또는 차가운 태스크가 선택될 수 있다. 그러므로, 순서도(600)에 의해 도시된 것처럼, 처리 디바이스들은 태스크들을 뜨거운 대기행렬(504) 및 차가운 대기행렬(506)로부터 선택함으로써 열점들 및 과열을 방지할 수 있다. 이러한 처리는 하나 이상의 처리 디바이스들에 의해 동시에 수행될 수 있어, 클락 속도를 변경하거나 처리 디바이스들을 정지시키지 않고 명령들 및 태스크들을 실행시킬 수 있다.
도 7에 도시된 것처럼, 우선순위 대기행렬들을 이용하여 뜨거운 대기행렬 및 차가운 대기행렬을 함께 이용할 수 있다. 도 7에서, 멀티-대기행렬 스케줄링 방법론(540)이 제공된다. 다른 우선순위 레벨들 및 다른 개수들의 대기행렬들이 이용될지라도, 스케줄러(542)는 3개의 우선순위 대기행렬들, 높은 우선순위 대기행렬(544), 중간 우선순위 대기행렬(546) 및 낮은 우선순위 대기행렬(548)과 관련된다. 스케줄러(542)는 스케줄러(502)와 관련하여 이상에서 논의된 것처럼 동작한다. 우선순위 대기행렬들(544, 546 및 548) 각각은 도 5와 관련하여 이상에서 논의된 방식으로 생성되고 동작하는 뜨거운 대기행렬 및 차가운 대기행렬을 포함하는 것이 바람직하다. 예를 들어, 높은 우선순위 대기행렬(544)은 태스크들(H1H...HNH)을 취급하기 위한 뜨거운 대기행렬 및 태스크들(C1H...CNH)을 취급하기 위한 차가운 대기행렬을 가진다. 유사하게, 중간 우선순위 대기행렬은 태스크들(H1M...HNM)을 취급하기 위한 뜨거운 대기행렬 및 태스크들(C1M...CNM)을 취급하기 위한 차가운 대기행렬을 가진다. 낮은 우선순위 대기행렬은 태스크들(H1L...HNL)을 취급하기 위한 뜨거운 대기행렬 및 태스크들(C1L...CNL)을 취급하기 위한 차가운 대기행렬을 가진다.
도 8은, 우선순위 대기행렬들을 이용할 때 작업들을 얻고 처리하기 위한 바람직한 방법의 순서도(800)를 도시한다. 초기에, 단계 801에서, PE, PU 또는 SPU는, 예를 들어, 높은 우선순위 대기행렬(544), 중간 우선순위 대기행렬(546) 또는 낮은 우선순위 대기행렬(548) 중 어느 우선순위 대기행렬을 필요로 하는 지를 결정한다. 단계 802에서, PE, PU 또는 SPU는, PE, PU 또는 SPU의 현재 온도가 열 경계(Tmax)를 넘는지 여부를 결정한다. Tmax가 초과되지 않는다면, 처리는 다음에 단계 804로 진행되고, Tmax가 초과되지 않는다면, 처리는 단계 808로 진행된다. 단계 804에서, 작업은 선택된 우선순위 대기행렬의 뜨거운 대기행렬(504)로부터 이용가능한 지 여부가 결정된다. 작업이 이용가능하다면, 처리는 단계 806으로 진행되고, 작업이 이용가능하지 않다면, 처리는 단계 808로 진행된다. 단계 806에서, PE, PU 또는 SPU는 "뜨거운" 작업을 얻고 실행시킨다. 작업의 완료시에, 처리는 단계 801로 되돌아간다. 단계 808에서, 작업이 선택된 우선순위 대기행렬의 냉각된 대기행렬(506)로부터 이용가능한 지 여부가 결정된다. 작업이 이용가능하다면, 처리는 단계 810으로 진행되고, 작업이 이용가능하지 않다면, 처리는 단계 812로 진행된다. 단계 810에서, PE, PU 또는 SPU는 "냉각된" 작업을 얻고 실행시킨다. 작업의 완료시에, 처리는 단계 801로 되돌아간다. 태스크들이 처리에 대해 이용가능하지 않다면, 처리는 단계 801로 되돌아 가기 전에 단계 812에서 정지된다. 선택적으로, 뜨거운 태스크 및 차가운 태스크 모두가 주어진 우선순위 레벨에 대해 이용가능하고 Tmax가 초과되지 않는다면, 뜨거운 태스크 또는 차가운 태스크는 주어진 우선순위 레벨에 대해 선택될 수 있다. 그러므로, 순서도(800)에 의해 도시된 것처럼, 처리 구성요소들은, 실행시간 동안 다양한 우선순위 대기행렬들(544, 546 및 548)의 뜨거운 대기행렬 및 차가운 대기행렬로부터 태스크들을 선택함으로써 열점들 및 과열을 방지할 수 있다. 이러한 처리는 하나 이상의 처리 구성요소들에 의해 동시에 수행될 수 있어, 클락 속도를 변경하거나 처리 구성요소들을 정지시키지 않고 명령들 및 태스크들을 실행시킬 수 있다. 선택적으로, 처리 디바이스가 너무 뜨거워지고 Tmax의 근처에 있거나 Tmax를 초과한다면, 처리 디바이스는 작업들을 (예를 들어, 중간 우선순위 대기행렬(546) 또는 낮은 우선순위 대기행렬(548)과 같은) 더 낮은 우선순위 대기행렬로부터 선택할 수 있고/또는 작업들의 열 속성들에도 불구하고 감소된 클락 사이클로 작업들을 실행시킬 수 있다. 이러한 더 낮은 우선순위 태스크들은 감소된 클락 사이클에서 수행될 수 있다.
몇몇 상황들에서, 구성요소는 작업(예를 들면, 태스크)을 실행하기 전에 열 경계(Tmax)보다 온도가 낮을 수 있지만, 태스크 실행 동안 Tmax를 초과할 수 있다. 과거에는, 이러한 존재는 구성요소를 정지시키고 냉각시킬 필요가 있다. 그러나, 이러한 문제점을 나타내고 멀티프로세서 환경들에 특히 적합한 기술이 개발되어 오고 있다.
도 9a는 한 그룹의 태스크들을 실행시키는 복수의 PE들을 도시한다. 이 실시예에서, PE 2는 태스크 1의 처리 동안 과열된다고 가정한다. 태스크 1을, PE 2로부터, 예를 들어 태스크들 2 및 3과 같은 다른 태스크들을 동작시킬 수 있는 다른 프로세서들 중 하나로 움직일 수 있다. 다른 태스크들은 바람직하게는 더 낮은 우선순위 태스크들이고 그 다음에 태스크는 현재 PE 2에 의해 수행된다.
도 9b에 도시된 것처럼, 예를 들어 태스크 3과 같은 다른 프로세서 내의 태스크는, "교환"되어 예를 들어, 적절한 대기행렬( 또는 다른 프로세서)로 보내질 수 있다. 그러므로, PE 3이 태스크 1을 완료하는 동안 PE 2는 태스크를 수행하지 않는다. 선택적으로, 2개의 프로세서들은 태스크들을 교환할 수 있어 PE 2는 도 9c에 도시된 것처럼 더 낮은 우선순위 태스크를 수행한다. 도 9c에 도시된 것처럼, (1) 초기에 PE 2 및 PE 3은, 예를 들어 500 MHz의 표준 클락 속도로 동작할 수 있다. 그 다음에, (2) 높은 우선순위 태스크 1을 동작시키는 동안 PE 2가 뜨거워진다면, 태스크는 PE 3의 더 낮은 우선순위 태스크 3과 교환될 수 있다. 마지막으로, (3) 더 낮은 우선순위 태스크 3은 (예를 들어, 250 MHz의) 더 느리거나 감소된 클락 속도로 수행되어, PE 3이 500 MHz의 표준 클락 속도로 태스크 1을 계속 수행하는 동안 PE 2가 냉각될 수 있다. 더 높은 우선순위 태스크를 수행하기 위해 (예를 들어, 650 MHz까지) 클락 속도를 증가시키는 것이 또한 가능하다. 표준적인, 증가되고 감소된 클락 속도들은 단순히 예시적이고, 특정 아키텍쳐의 프로세서, 서브프로세서 및/또는 멀티프로세싱 시스템의 최대 클락 속도에 따라 변화할 수 있다. 최악의 경우의 시나리오(scenario)에서, 과열 프로세서는 온도가 만족스러운 레벨에 도달할 때까지 작업들을 정지시킬 수 있다. 그러나, 멀티프로세서 시스템 내의 다른 프로세서들은 처리를 계속하여 실시간 작업들 및 다른 임계 작업들이 즉시 수행된다. PE들이 도 9a 내지 c에서 도시되는 반면에, PU들 및 SPU들, 또는 다양한 처리 디바이스들의 조합들을 이용하여 동일한 작업들을 수행할 수 있다. 예를 들어, 과열 SPU(308)는 높은 우선순위 태스크를, 태스크를 제 2 SPU(308)에 재할당할 수 있는 PU(304)에 보낼 수 있다. 유사하게, PU(304)는 제 2 SPU(308)의 더 낮은 우선순위 태스크를 취할 수 있고 상기 태스크를 제 1 SPU(308)에 할당할 수 있다. 제 1 SPU(308)가 냉각된다면, 높은 우선순위 및/또는 "뜨거운" 태스크들을 정상 클락 속도에서 처리하는 것을 재개할 수 있다.
본 명세서의 발명이 특정 실시형태들과 관련하여 기술되었을 지라도, 이러한 실시형태들은 본 발명의 원리들 및 응용예들을 도시하는 것에 지나지 않는다. 다양한 변형예들이 예시적인 실시형태들에 행해질 수 있고 다른 배열들이 첨부된 청구범위에 의해 정의된 것처럼 본 발명의 사상과 범위로부터 벗어나지 않게 고안될 수 있다.
본 발명은, 처리 환경에서 명령들 및 태스크들을 효과적으로 할당함으로써 열점들을 감소시키기 위한 기술에 적용될 수 있다.
Claims (89)
- 열 경계(thermal threshold)를 갖는 구성요소에 의해 수행되는 작업들을 스케줄링하는 방법으로서,상기 구성요소에 의해 수행되는 복수의 작업들을 제공하는 단계;상기 작업들을, 상기 작업들의 수행 동안 상기 구성요소에 의해 생성되거나 초래될 것으로 예상되는 열량과 관련된 값을 나타내는 열 속성과 관련짓는 단계; 및상기 열 경계를 초과하지 않도록 상기 열 속성에 근거한 수행의 순서로 상기 작업들을 스케줄링하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 열 속성을 온도 감지 수단을 이용하여 측정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 구성요소의 전력 소비에 근거하여 상기 열 속성을 평가하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 3 항에 있어서, 상기 열 속성을 평가하는 단계는 상기 구성요소의 회로 시뮬레이션을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 3 항에 있어서, 상기 열 속성을 평가하는 단계는 상기 구성요소의 전력 밀도를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 구성요소가 상기 작업들을 수행의 순서로 실행시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 6 항에 있어서, 상기 구성요소는 복수의 처리 디바이스(device)들을 포함하고 상기 열 속성은 상기 작업들을 실행시키는 처리 디바이스들 중 선택된 처리 디바이스들의 총 열 속성인 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 구성요소는 복수의 처리 디바이스들을 포함하고, 상기 처리 디바이스들 각각은 개별 열 경계를 가지며, 상기 열 속성은 복수의 개별 열 속성들을 포함하고, 각각의 개별 열 속성은 상기 처리 디바이스들 중 하나와 관련지어지는 것을 특징으로 하는 방법.
- 제 8 항에 있어서,상기 작업들을 실행하도록 상기 처리 디바이스들 중 적어도 일부를 선택하는 단계;상기 선택된 처리 디바이스들을 탐지하는 단계; 및상기 개별 열 경계들이 초과되지 않도록 상기 작업들을 상기 선택된 처리 디바이스들 사이에서 루팅(routing)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 구성요소는 복수의 처리 디바이스들을 포함하고 상기 열 속성은 상기 복수의 처리 디바이스들 사이에 할당되는 것을 특징으로 하는 방법.
- 제 1 항에 있어서,(i) 상기 구성요소의 전력 소비를 결정하는 단계;(ii) 상기 구성요소의 풋프린트(footprint)를 결정하는 단계;(iii) 영역 당 전력 소비를 얻기 위해 상기 구성요소의 전력 소비를 상기 구성요소의 풋프린트로 나누는 단계; 및(iv) 상기 영역 당 전력 소비에 열 평가 상수를 곱하는 단계;에 의해 상기 열 속성을 결정하는 단계를 더 포함하는 것을 특징으로 방법.
- 제 1 항에 있어서,냉각 속성을 결정하는 단계;를 더 포함하고,상기 작업들을 스케줄링하는 단계는 상기 열 속성과 함께 상기 냉각 속성을 포함하는 것을 특징으로 하는 방법.
- 일련의 작업들을 포함하는 프로그램 코드를 얻는 단계;하나 이상의 작업들과 관련지어진 열 속성들을 결정하는 단계;구성요소에 대한 열 경계를 결정하는 단계; 및상기 열 경계를 초과하지 않도록 상기 열 속성들을 따라 상기 구성요소에 의한 작업들의 실행을 스케줄링하는 단계를 포함하는 것을 특징으로 하는 열 스케줄링 방법.
- 제 13 항에 있어서, 상기 열 속성들은, 상기 구성요소가 선택된 작업을 실행시킴에 따라 생성될 것으로 예상되는 열량을 설명하는 것을 특징으로 하는 열 스케줄링 방법.
- 제 13 항에 있어서, 상기 열 속성들은 1 주기 시간에 걸쳐서 생성된 열량을 설명하는 것을 특징으로 하는 열 스케줄링 방법.
- 제 13 항에 있어서, 상기 열 속성들은 상기 구성요소의 전력 소비 및 상기 구성요소의 전력 밀도 중 적어도 하나를 설명하는 것을 특징으로 하는 열 스케줄링 방법.
- 제 13 항에 있어서,상기 구성요소가 상기 작업들을 실행하는 단계;실행 동안 상기 구성요소의 온도를 탐지하는 단계; 및상기 열 경계가 초과된다면 상기 작업들을 다시 스케줄링하는 단계를 더 포함하는 것을 특징으로 하는 열 스케줄링 방법.
- 제 13 항에 있어서, 상기 작업들 각각에서 수행되는 태스크들의 개수를 셈으로써 상기 열 속성들을 평가하는 단계를 더 포함하는 것을 특징으로 하는 열 스케줄링 방법.
- 제 13 항에 있어서, 상기 구성요소는 복수의 처리 디바이스들을 포함하고, 상기 방법은:상기 처리 디바이스들 중 선택된 처리 디바이스들에 의해 상기 작업들 중 선택된 작업들의 동적 실행을 탐지하는 단계;상기 선택된 처리 디바이스들의 동작 주파수를 결정하는 단계; 및상기 선택된 처리 디바이스들의 동작 주파수를 컴파일러에 보고하는 단계를 더 포함하는 것을 특징으로 하는 열 스케줄링 방법.
- 제 13 항에 있어서,상기 구성요소를 포함하는 컴퓨팅 디바이스에 대한 냉각 속성을 결정하는 단계;를 더 포함하고,상기 작업들을 스케줄링하는 단계는 상기 냉각 속성 및 상기 열 속성에 따라 수행되는 것을 특징으로 하는 열 스케줄링 방법.
- 제 20 항에 있어서, 상기 냉각 속성은 상기 컴퓨팅 디바이스의 한 유형의 패키징(packaging)에 근거한 것을 특징으로 하는 열 스케줄링 방법.
- 제 21 항에 있어서, 상기 냉각 속성은 상기 컴퓨팅 디바이스의 냉각 수단에 더 근거한 것을 특징으로 하는 열 스케줄링 방법.
- 제 22 항에 있어서,상기 냉각 수단이 하나의 상태를 가진다면, 상기 냉각 속성이 고정되고;상기 냉각 수단이 복수의 상태들을 가진다면, 상기 냉각 속성이 동적인 것을 특징으로 하는 열 스케줄링 방법.
- 구성요소를 포함하는 컴퓨팅 디바이스;상기 구성요소에 의해 수행되는 복수의 작업들; 및상기 구성요소 및 상기 작업들 중 선택된 작업과 관련지어진 적어도 하나의 열 속성을 포함하는 처리 시스템으로서,상기 열 속성은 상기 선택된 작업의 수행 이후의 상기 구성요소의 온도 변화를 가리키는 것을 특징으로 하는 처리 시스템.
- 제 24 항에 있어서, 상기 작업들 중 적어도 하나를 상기 열 속성에 따라 상기 구성요소에 할당하도록 작동가능한 스케줄러(scheduler)를 더 포함하는 것을 특징으로 하는 처리 시스템.
- 제 25 항에 있어서, 상기 스케줄러는 상기 작업들 중 선택된 작업을 상기 열 속성에 따라 저장 위치로부터 검색하도록 작동가능한 것을 특징으로 하는 처리 시스템.
- 제 25 항에 있어서, 상기 구성요소는 복수의 부 구성요소들을 포함하고, 상기 스케줄러는 단순 스케줄러이며, 상기 열 속성은 상기 구성요소와 관련되고 상기 복수의 부 구성요소들과 관련되지 않은 총 열 속성인 것을 특징으로 하는 처리 시스템.
- 제 25 항에 있어서, 상기 구성요소는 복수의 부 구성요소들을 포함하고, 상 기 스케줄러는 고등 스케줄러이며, 상기 열 속성은 상기 부 구성요소들의 적어도 일부와 더 관련된 것을 특징으로 하는 처리 시스템.
- 제 25 항에 있어서, 상기 구성요소는 처리 디바이스이고 상기 스케줄러는 처리 디바이스와 통합되는 것을 특징으로 하는 처리 시스템.
- 제 24 항에 있어서, 상기 선택된 작업은 태스크를 포함하고, 상기 열 속성은 태스크 열 속성인 것을 특징으로 하는 처리 시스템.
- 제 30 항에 있어서, 상기 태스크 열 속성은 상기 구성요소의 동작 주파수, 상기 구성요소의 열 속성, 및 냉각 속성에 근거한 것을 특징으로 하는 처리 시스템.
- 제 24 항에 있어서, 상기 작업들 중 적어도 일부는 우선순위를 포함하고, 상기 시스템은:복수의 우선순위 대기행렬들을 포함하고,각각의 우선순위 대기행렬은, 제 1 세트의 작업들을 저장하기 위한 제 1 대기행렬, 및 제 2 세트의 작업들을 저장하기 위한 제 2 대기행렬을 포함하는 것을 특징으로 하는 처리 시스템.
- 제 32 항에 있어서, 상기 작업들의 우선순위들 및 상기 열 속성에 근거하여, 상기 작업들 중 적어도 일부를 상기 우선순위 대기행렬들 중 선택된 우선순위 대기행렬 내의 제 1 대기행렬 또는 제 2 대기행렬에 할당하는 것을 특징으로 하는 처리 시스템.
- 제 33 항에 있어서, 상기 스케줄러는, 상기 작업들 중 선택된 작업을, 상기 열 속성 및 상기 선택된 작업의 우선순위에 따라 상기 선택된 우선순위 대기 행렬의 제 1 대기행렬 또는 제 2 대기행렬로부터 검색하도록 동작가능한 것을 특징으로 하는 처리 시스템.
- 동작 경계를 초과하는 제 1 열 속성을 가진 제 1 작업;동작 경계를 초과하지 않는 제 2 열 속성을 가진 제 2 작업;상기 열 속성들에 근거한 상기 제 1 및 제 2 작업들을 포함하는 복수의 작업들을 관리하기 위한 스케줄러; 및복수의 프로세서들 각각이 열 경계를 가지며 상기 복수의 작업들을 실행시키기 위한 상기 복수의 프로세서들을 포함하는 것을 특징으로 하는 처리 시스템.
- 제 35 항에 있어서, 상기 복수의 프로세서들 중 선택된 프로세서의 열 경계가 초과되지 않는다면, 상기 선택된 프로세서는 상기 제 1 작업 및 상기 제 2 작업 중 적어도 하나를 얻고 실행시키도록 동작가능한 것을 특징으로 하는 처리 시스템.
- 제 36 항에 있어서, 상기 선택된 프로세서의 상기 열 경계가 초과되지 않는다면, 상기 선택된 프로세서는 상기 제 1 작업을 얻는 것을 특징으로 하는 처리 시스템.
- 제 35 항에 있어서, 상기 복수의 프로세서들 중 선택된 프로세서의 열 경계가 초과된다면, 상기 선택된 프로세서는 상기 제 2 작업을 얻고 실행시키도록 동작가능한 것을 특징으로 하는 처리 시스템.
- 제 35 항에 있어서, 상기 프로세서들은 상기 프로세서들의 온도들을 탐지하거나 평가하기 위한 온도 감지 수단을 포함하는 것을 특징으로 하는 처리 시스템.
- 제 39 항에 있어서, 각각의 프로세서는, 온도 값을 상기 온도 감지 수단으로부터 수신하고 디지털 온도 값을 제공하도록 동작가능한 아날로그-디지털 변환기를 더 포함하는 것을 특징으로 하는 처리 시스템.
- 제 35 항에 있어서, 상기 프로세서들 중 선택된 프로세서는 복수의 부 프로세서들을 포함하는 것을 특징으로 하는 처리 시스템.
- 제 41 항에 있어서, 상기 선택된 프로세서는, 상기 선택된 프로세서와 관련 되고 상기 부 프로세서들과 관련되지 않은 총 열 속성을 갖는 것을 특징으로 하는 처리 시스템.
- 제 41 항에 있어서, 각각의 부 프로세서는 다른 부 프로세서들의 구성요소 열 속성과 구별되는 구성요소 열 속성을 갖는 것을 특징으로 하는 처리 시스템.
- 제 1 작업의 열 속성에 근거하여 상기 제 1 작업을 저장하는 단계;상기 제 2 작업의 열 속성에 근거하여 제 2 작업을 저장하는 단계; 및상기 제 1 및 제 2 작업들 중 적어도 하나를 프로세서의 열 경계에 따라 검색하는 단계를 포함하는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 제 44 항에 있어서, 상기 프로세서의 열 경계가 초과되지 않는다면, 상기 제 1 작업 및 상기 제 2 작업 중 적어도 하나가 검색되는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 제 45 항에 있어서, 상기 제 1 작업만이 검색되는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 제 44 항에 있어서, 상기 프로세서의 열 경계가 초과된다면, 상기 제 2 작업 이 검색되는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 제 44 항에 있어서,상기 제 1 작업의 우선순위를 결정하는 단계;상기 제 2 작업의 우선순위를 결정하는 단계; 및우선순위 대기행렬들 각각이 제 1 대기행렬 및 제 2 대기행렬을 포함하며, 복수의 상기 우선순위 대기행렬들을 제공하는 단계를 더 포함하고,상기 제 1 작업은 상기 제 1 작업의 우선순위에 근거하여 상기 제 1 대기행렬들 중 하나 내에 저장되고, 상기 제 2 작업은 상기 제 2 작업의 우선순위에 근거하여 상기 제 2 대기행렬들 중 하나 내에 저장되는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 제 44 항에 있어서,구성요소 열 속성을 상기 프로세서와 관련짓는 단계를 더 포함하고,상기 적어도 하나의 작업을 검색하는 단계는 상기 구성요소 열 속성의 현재 상태를 평가하는 단계 및 상기 구성요소 열 속성에 근거하여 상기 적어도 하나의 작업을 선택하는 단계를 포함하는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 프로세서의 온도가 열 경계를 초과하는 지 여부를 결정하고;(i) 열 경계가 초과되지 않는다면:상기 프로세서의 실행시 온도를 유지하거나 증가시킬 가능성이 있는 제 1 작업이 이용가능한 지 여부를 결정하고;상기 제 1 작업이 이용가능하다면, 상기 제 1 작업을 실행시키고;(ii) 상기 열 경계가 초과된다면:상기 프로세서의 실행시 온도를 감소시킬 가능성이 있는 제 2 작업이 이용가능한 지 여부를 결정하고;상기 제 2 작업이 이용가능하다면, 상기 제 2 작업을 실행시키는 단계를 포함하는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 제 50 항에 있어서, 상기 제 2 작업이 이용가능하지 않다면 무연산(nop; no operation)을 수행하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 제 50 항에 있어서,우선순위 레벨(level)을 결정하는 단계;상기 제 1 작업이 상기 우선순위 레벨의 우선순위 대기행렬로부터 이용가능한 지 여부를 결정하는 단계; 및상기 제 1 작업이 상기 우선순위 대기행렬로부터 이용가능하지 않다면, 상기 제 2 작업이 상기 우선순위 대기행렬로부터 이용가능한 지 여부를 결정하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨팅 환경에서 작업들을 수행하는 방법.
- 동작 경계를 초과하는 열 속성을 갖는 제 1 작업, 및 상기 동작 경계를 초과하지 않는 열 속성을 갖는 제 2 작업을 저장하기 위한 메모리; 및처리 디바이스들 중 적어도 선택된 하나는 처리 요소, 처리 유닛 또는 부 처리 유닛을 포함하고, 상기 처리 디바이스들 중 적어도 일부는 열 경계 및 메모리에 대한 액세스(access)를 갖으며, 상기 제 1 및 제 2 작업들을 실행시키기 위한 복수의 상기 처리 디바이스들을 포함하는, 열 속성들과 관련된 처리 작업들을 위한 처리 장치로서,상기 선택된 처리 디바이스의 열 경계가 초과되지 않는다면, 상기 선택된 처리 디바이스는 처리를 위해 상기 제 1 작업을 상기 메모리로부터 얻도록 동작가능하고, 상기 선택된 처리 디바이스의 열 경계가 초과된다면, 상기 선택된 처리 디바이스는 처리를 위해 상기 제 2 작업을 상기 메모리로부터 얻도록 동작가능한 것을 특징으로 하는 처리 장치.
- 제 53 항에 있어서, 상기 처리 디바이스들의 적어도 일부는 처리 요소들인 것을 특징으로 하는 처리 장치.
- 제 54 항에 있어서, 상기 처리 요소들의 적어도 일부는 적어도 하나의 부 처리 유닛을 더 포함하는 것을 특징으로 하는 처리 장치.
- 제 55 항에 있어서, 각각의 부 처리 유닛은 부동 소수점 유닛, 정수 유닛, 및 상기 부동 소수점 유닛 및 상기 정수 유닛과 관련된 레지스터를 포함하는 것을 특징으로 하는 처리 장치.
- 제 56 항에 있어서, 각각의 부 처리 유닛은 로컬 스토어(local store)를 더 포함하는 것을 특징으로 하는 처리 장치.
- 제 54 항에 있어서, 상기 처리 요소들의 적어도 일부는 처리 유닛 및 상기 처리 유닛과 관련된 복수의 부 처리 유닛들을 더 포함하는 것을 특징으로 하는 처리 장치.
- 제 58 항에 있어서, 상기 부 처리 유닛들 각각은 로컬 스토어를 더 포함하는 것을 특징으로 하는 처리 장치.
- 제 53 항에 있어서, 상기 처리 디바이스들 중 제 1 처리 디바이스는, 상기 제 1 처리 디바이스의 열 경계에 따라 상기 처리 디바이스들 중 제 2 처리 디바이스와 함께 작업들을 교환하도록 동작가능한 것을 특징으로 하는 처리 장치.
- 제 53 항에 있어서, 상기 선택된 처리 장치는 부 처리 유닛을 포함하고, 상 기 메모리는 상기 부 처리 유닛 내의 로컬 스토어를 포함하는 것을 특징으로 하는 처리 장치.
- 제 61 항에 있어서, 상기 로컬 스토어는 상기 제 1 작업을 관리하기 위한 제 1 대기행렬 및 상기 제 2 작업을 관리하기 위한 제 2 대기행렬을 포함하는 것을 특징으로 하는 처리 장치.
- 제 53 항에 있어서, 상기 제 1 및 제 2 작업들은 시간공유 배열 내의 메모리 내에서 유지되는 것을 특징으로 하는 처리 장치.
- 동작 경계를 초과하는 열 속성을 갖는 제 1 작업 및 상기 동작 경계를 초과하지 않는 열 속성을 갖는 제 2 작업을 저장하기 위한 제 1 및 제 2 메모리들; 및처리 디바이스들 중 적어도 선택된 하나는 처리 요소, 처리 유닛 또는 부 처리 유닛을 포함하고, 상기 처리 디바이스들 중 적어도 일부는 열 경계 및 상기 제 1 및 제 2 메모리들에 대한 접근을 가지며, 상기 제 1 및 제 2 작업들을 실행시키기 위한 복수의 처리 디바이스들을 포함하는, 열 속성들과 관련된 작업들을 처리하기 위한 처리 장치로서,상기 선택된 처리 장치의 열 경계가 초과되지 않는다면, 상기 선택된 처리 디바이스는 처리를 위해 상기 제 1 작업을 상기 제 1 메모리 또는 상기 제 2 메모리로부터 얻고,상기 선택된 처리 디바이스의 열 경계가 초과된다면, 상기 선택된 처리 디바이스는 처리를 위해 상기 제 2 작업을 상기 제 1 메모리 또는 상기 제 2 메모리로부터 얻는 것을 특징으로 하는 처리 장치.
- 제 1 메모리는 제 1 세트의 작업들을 관리하기 위한 제 1 대기행렬을 포함하고, 제 2 메모리는 제 2 세트의 작업들을 관리하기 위한 제 2 대기행렬을 포함하며, 상기 제 1 세트의 작업들은 동작 경계를 초과하는 열 속성을 가지고, 상기 제 2 세트의 작업들은 상기 동작 경계를 초과하지 않는 열 속성을 가지며, 상기 제 1 및 제 2 세트들의 작업들을 저장하기 위한 상기 제 1 및 제 2 메모리들; 및처리 디바이스들 중 적어도 선택된 하나는 처리 요소, 처리 유닛 또는 부 처리 유닛을 포함하고, 상기 처리 디바이스들 중 적어도 일부는 열 경계, 및 상기 제 1 및 제 2 메모리에 대한 접근을 가지며, 상기 제 1 및 제 2 세트들의 작업들을 실행시키기 위한 복수의 상기 처리 디바이스들을 포함하는, 열 속성들과 관련된 작업들을 처리하기 위한 처리 장치로서,상기 선택된 처리 디바이스의 열 경계가 초과되지 않는다면, 상기 선택된 처리 디바이스는 처리를 위해 상기 제 1 세트의 작업들 중 적어도 하나를 얻고, 상기 선택된 처리 디바이스의 열 경계가 초과된다면, 상기 선택된 처리 디바이스는 처리를 위해 상기 제 2 세트의 작업들 중 적어도 하나를 얻는 것을 특징으로 하는 처리 장치.
- 속성에 근거하여 구성요소에 의한 실행을 위해 복수의 태스크들 중 하나를 선택하는 단계; 및상기 선택된 태스크를 실행시키는 단계를 포함하는 태스크들을 처리하는 방법으로서,각각의 태스크에 대한 상기 속성은 관련된 태스크의 실행 이후의 상기 구성요소의 온도에 관한 것인 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 속성은 상기 관련된 태스크의 실행 이후의 상기 구성요소의 온도의 예상되는 증가 또는 감소에 관한 것인 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 67 항에 있어서, 상기 예상되는 증가 또는 감소는 상기 구성요소의 전력 밀도에 근거한 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 태스크들은 메모리 내의 적어도 하나의 대기행렬에 저장되는 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 태스크들은 메모리 내의 적어도 2개의 대기행렬들에 저장되고, 하나의 대기행렬은 속성들이 조건에 부합하는 태스크들을 저장하고 또 다른 대기행렬은 속성들이 상기 조건에 부합하지 않는 태스크들을 저장하는 것 을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 조건은 상기 속성이 경계를 초과하는 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 태스크는 또한 상기 구성요소의 현재 온도에 근거하여 선택되는 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 태스크들은 실행 이전에 메모리 내의 다른 주소들에 저장되는 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 태스크들은 실행 이전에 메모리 내의 같은 주소 내에서 다른 시간들에 저장되는 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 제 66 항에 있어서, 상기 구성요소는 프로세서인 것을 특징으로 하는, 태스크들을 처리하는 방법.
- 처리될 태스크들을 저장하기 위한 메모리; 및상기 메모리 내에 저장된 태스크들을 처리하는 구성요소를 포함하는, 태스크들을 처리하기 위한 시스템으로서,상기 태스크들은 속성들과 관련되고, 각각의 태스크에 대한 속성은 상기 관련된 태스크를 처리한 이후의 상기 구성요소의 온도에 관한 것이며, 상기 태스크들 중 하나는 상기 속성에 근거하여 상기 구성요소에 의한 처리를 위해 선택되는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 76 항에 있어서, 상기 속성은 상기 선택된 태스크의 처리 이후의 상기 구성요소의 온도의 예상된 증가 또는 감소에 관한 것인 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 77 항에 있어서, 상기 예상된 증가 또는 감소는 상기 구성요소의 전력 밀도에 근거한 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 76 항에 있어서, 상기 태스크들은 메모리 내의 적어도 하나의 대기행렬에 저장되는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 76 항에 있어서, 상기 태스크들은 메모리 내의 적어도 2개의 대기행렬들에 저장되고, 하나의 대기행렬은 속성들이 조건에 부합하는 태스크들을 저장하며, 또 다른 대기행렬은 속성들이 상기 조건에 부합하지 않는 태스크들을 저장하는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 80 항에 있어서, 상기 조건은 상기 속성이 경계를 초과하는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 76 항에 있어서, 상기 메모리는 메모리의 2개의 분리된 집합들을 포함하고, 메모리의 하나의 집합은 속성들이 조건에 부합하는 태스크들을 저장하며, 메모리의 또 다른 집합은 속성들이 상기 조건에 부합하지 않는 태스크들을 저장하는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 82 항에 있어서, 메모리의 상기 2개의 분리된 집합들은 같은 메모리 주소에서 다른 시간 주기들에 저장되는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 82 항에 있어서, 메모리의 상기 2개의 분리된 집합들은 다른 메모리 주소들에 있는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 84 항에 있어서, 메모리의 상기 2개의 분리된 집합들은 같은 반도체 디바이스 내에 있는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 82 항에 있어서, 메모리의 상기 2개의 분리된 집합들은 다른 반도체 디바이스들 내에 있는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 76 항에 있어서, 상기 구성요소는 온도 센서를 포함하고 상기 태스크는 상기 온도 센서의 출력에 근거하여 선택되는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 76 항에 있어서, 상기 태스크들을 처리할 수 있는 제 2 구성요소를 포함하고, 상기 태스크들 중 하나 이상이 상기 태스크를 처리한 이후의 각각의 구성요소의 예상되는 온도에 근거하여 각각의 구성요소에 대해 선택되는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
- 제 76 항에 있어서, 상기 태스크들 중 하나 이상을 상기 구성요소에 대해 선택하는 스케줄러를 더 포함하는 것을 특징으로 하는, 태스크들을 처리하기 위한 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/812,177 | 2004-03-29 | ||
US10/812,177 US8224639B2 (en) | 2004-03-29 | 2004-03-29 | Methods and apparatus for achieving thermal management using processing task scheduling |
PCT/JP2005/006523 WO2005096150A1 (en) | 2004-03-29 | 2005-03-28 | Methods and apparatus for achieving thermal management using processing task scheduling |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060134185A true KR20060134185A (ko) | 2006-12-27 |
KR101120215B1 KR101120215B1 (ko) | 2012-03-16 |
Family
ID=34962549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067022624A KR101120215B1 (ko) | 2004-03-29 | 2005-03-28 | 프로세싱 태스크 스케줄링을 이용하는 열 관리를 달성하기위한 방법들 및 장치 |
Country Status (9)
Country | Link |
---|---|
US (3) | US8224639B2 (ko) |
EP (1) | EP1730635B1 (ko) |
JP (1) | JP4053547B2 (ko) |
KR (1) | KR101120215B1 (ko) |
CN (1) | CN100504790C (ko) |
AT (1) | ATE387663T1 (ko) |
DE (1) | DE602005005035T2 (ko) |
TW (1) | TW200602885A (ko) |
WO (1) | WO2005096150A1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160042003A (ko) * | 2013-08-08 | 2016-04-18 | 퀄컴 인코포레이티드 | 와트당 최적 성능을 위한 지능형 멀티코어 제어 |
KR20160121022A (ko) * | 2015-04-09 | 2016-10-19 | 에스케이하이닉스 주식회사 | NoC 반도체 장치의 태스크 매핑 방법 |
KR20190068156A (ko) * | 2017-12-08 | 2019-06-18 | 한국전자통신연구원 | 그래픽 처리 장치 및 이의 동작 방법 |
US10345890B2 (en) | 2013-12-10 | 2019-07-09 | Huawei Device Co., Ltd. | Task management method and device |
KR20200009426A (ko) * | 2018-07-19 | 2020-01-30 | 주식회사 다이얼로그 세미컨덕터 코리아 | 전원을 효율적으로 관리하기 위한 소프트웨어 운영 방법 및 이를 이용한 장치 |
Families Citing this family (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174194B2 (en) * | 2000-10-24 | 2007-02-06 | Texas Instruments Incorporated | Temperature field controlled scheduling for processing systems |
JP4152348B2 (ja) * | 2004-06-03 | 2008-09-17 | 株式会社ソニー・コンピュータエンタテインメント | 電子デバイス冷却装置、電子デバイスシステムおよび電子デバイス冷却方法 |
JP3781758B2 (ja) * | 2004-06-04 | 2006-05-31 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサ、プロセッサシステム、温度推定装置、情報処理装置および温度推定方法 |
US7347621B2 (en) * | 2004-07-16 | 2008-03-25 | International Business Machines Corporation | Method and system for real-time estimation and prediction of the thermal state of a microprocessor unit |
JP3914230B2 (ja) * | 2004-11-04 | 2007-05-16 | 株式会社東芝 | プロセッサシステム及びその制御方法 |
US7454631B1 (en) * | 2005-03-11 | 2008-11-18 | Sun Microsystems, Inc. | Method and apparatus for controlling power consumption in multiprocessor chip |
US7395174B2 (en) * | 2005-11-29 | 2008-07-01 | International Business Machines Corporation | Generation of software thermal profiles executed on a set of processors using thermal sampling |
US7460932B2 (en) * | 2005-11-29 | 2008-12-02 | International Business Machines Corporation | Support of deep power savings mode and partial good in a thermal management system |
US7480586B2 (en) * | 2005-11-29 | 2009-01-20 | International Business Machines Corporation | Thermal interrupt generation |
US7848901B2 (en) * | 2005-11-29 | 2010-12-07 | International Business Machines Corporation | Tracing thermal data via performance monitoring |
US7512513B2 (en) * | 2005-11-29 | 2009-03-31 | International Business Machines Corporation | Thermal throttling control for testing of real-time software |
US7376532B2 (en) | 2005-11-29 | 2008-05-20 | International Business Machines Corporation | Maximal temperature logging |
US7681053B2 (en) * | 2005-11-29 | 2010-03-16 | International Business Machines Corporation | Thermal throttle control with minimal impact to interrupt latency |
US7386414B2 (en) * | 2005-11-29 | 2008-06-10 | International Business Machines Corporation | Generation of hardware thermal profiles for a set of processors |
US7512530B2 (en) * | 2005-11-29 | 2009-03-31 | International Business Machines Corporation | Generation of software thermal profiles for applications in a simulated environment |
US7490017B2 (en) * | 2005-11-29 | 2009-02-10 | International Business Machines Corporation | Analytical generation of software thermal profiles |
US7721128B2 (en) * | 2005-11-29 | 2010-05-18 | International Business Machines Corporation | Implementation of thermal throttling logic |
US7603576B2 (en) * | 2005-11-29 | 2009-10-13 | International Business Machines Corporation | Hysteresis in thermal throttling |
US20070124618A1 (en) * | 2005-11-29 | 2007-05-31 | Aguilar Maximino Jr | Optimizing power and performance using software and hardware thermal profiles |
US7698089B2 (en) * | 2005-11-29 | 2010-04-13 | International Business Machines Corporation | Generation of software thermal profiles executed on a set of processors using processor activity |
KR101342372B1 (ko) * | 2006-01-23 | 2013-12-16 | 엘지전자 주식회사 | 단말 및 그 단말에서의 장치관리 스케줄링 방법 |
KR20070108432A (ko) * | 2006-01-23 | 2007-11-12 | 엘지전자 주식회사 | 장치관리 스케줄링 방법 |
US8104037B2 (en) | 2006-01-23 | 2012-01-24 | Lg Electronics Inc. | Terminal and method for performing device management scheduled based on threshold |
WO2007083973A1 (en) * | 2006-01-23 | 2007-07-26 | Lg Electronics Inc. | Terminal and method for performing device management scheduled based on threshold |
KR101349805B1 (ko) | 2006-01-25 | 2014-01-10 | 엘지전자 주식회사 | 트랩 메커니즘을 이용한 장치관리 스케줄링 방법 및 그단말 |
US7421601B2 (en) * | 2006-02-17 | 2008-09-02 | International Business Machines Corporation | Method and system for controlling power in a chip through a power-performance monitor and control unit |
US7552346B2 (en) * | 2006-05-03 | 2009-06-23 | International Business Machines Corporation | Dynamically adapting software for reducing a thermal state of a processor core based on its thermal index |
US7596430B2 (en) * | 2006-05-03 | 2009-09-29 | International Business Machines Corporation | Selection of processor cores for optimal thermal performance |
US8037893B2 (en) * | 2006-05-03 | 2011-10-18 | International Business Machines Corporation | Optimizing thermal performance using thermal flow analysis |
JP5151203B2 (ja) * | 2007-03-26 | 2013-02-27 | 日本電気株式会社 | ジョブスケジューリング装置及びジョブスケジューリング方法 |
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 |
US8445913B2 (en) | 2007-10-30 | 2013-05-21 | Spansion Llc | Metal-insulator-metal (MIM) device and method of formation thereof |
US8027798B2 (en) * | 2007-11-08 | 2011-09-27 | International Business Machines Corporation | Digital thermal sensor test implementation without using main core voltage supply |
US7870370B2 (en) * | 2007-12-19 | 2011-01-11 | International Business Machines Corporation | Determining thermal characteristics of instruction sets |
JP4804490B2 (ja) * | 2008-02-18 | 2011-11-02 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム |
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 |
US7757233B2 (en) * | 2008-07-10 | 2010-07-13 | International Business Machines Corporation | Controlling a computer system having a processor including a plurality of cores |
JP5309815B2 (ja) | 2008-09-09 | 2013-10-09 | 富士通株式会社 | 電力供給管理装置および電力供給管理方法 |
US8566539B2 (en) * | 2009-01-14 | 2013-10-22 | International Business Machines Corporation | Managing thermal condition of a memory |
US8321057B2 (en) * | 2009-03-12 | 2012-11-27 | Red Hat, Inc. | Infrastructure for adaptive environmental control for equipment in a bounded area |
US8311683B2 (en) | 2009-04-29 | 2012-11-13 | International Business Machines Corporation | Processor cooling management |
JP2011022940A (ja) * | 2009-07-17 | 2011-02-03 | Nec Corp | 情報処理装置および情報処理方法並びにプログラム |
US8631411B1 (en) | 2009-07-21 | 2014-01-14 | The Research Foundation For The State University Of New York | Energy aware processing load distribution system and method |
TWI430077B (zh) | 2009-09-30 | 2014-03-11 | Ibm | 用於電腦系統的風扇控制系統與方法 |
TWI394033B (zh) * | 2009-10-30 | 2013-04-21 | Ibm | 用於不同高度之電腦系統的風扇控制系統與方法 |
US8887171B2 (en) * | 2009-12-28 | 2014-11-11 | Intel Corporation | Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection |
US8495604B2 (en) * | 2009-12-30 | 2013-07-23 | International Business Machines Corporation | Dynamically distribute a multi-dimensional work set across a multi-core system |
JP5531679B2 (ja) | 2010-03-04 | 2014-06-25 | 日本電気株式会社 | Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム |
US8484495B2 (en) * | 2010-03-25 | 2013-07-09 | International Business Machines Corporation | Power management in a multi-processor computer system |
US8776069B2 (en) * | 2010-12-07 | 2014-07-08 | International Business Machines Corporation | Energy and performance optimizing job scheduling |
US9207730B2 (en) * | 2011-06-02 | 2015-12-08 | Apple Inc. | Multi-level thermal management in an electronic device |
US8688289B2 (en) * | 2011-07-07 | 2014-04-01 | Qualcomm Incorporated | Method and system for preempting thermal load by proactive load steering |
US8516460B2 (en) * | 2011-08-02 | 2013-08-20 | International Business Machines Corporation | Real-time temperature sensitive machine level code compilation and execution |
US8688883B2 (en) * | 2011-09-08 | 2014-04-01 | Intel Corporation | Increasing turbo mode residency of a processor |
DE112012006200T5 (de) * | 2012-06-29 | 2014-12-31 | Hewlett Packard Development Company, L.P. | Disponieren thermisch priorisierter Rechenanwendungen |
WO2014006450A1 (en) * | 2012-07-03 | 2014-01-09 | Freescale Semiconductor, Inc. | Method and apparatus for managing a thermal budget of at least a part of a processing system |
US9329648B2 (en) * | 2012-07-17 | 2016-05-03 | International Business Machines Corporation | Performance management of subsystems in a server by effective usage of resources |
TWI463833B (zh) * | 2012-10-31 | 2014-12-01 | Delta Electronics Inc | 感測器資料的快取裝置及其快取方法 |
US9152471B2 (en) * | 2012-12-12 | 2015-10-06 | International Business Machines Corporation | System performance using cooling configuration information |
US10528385B2 (en) | 2012-12-13 | 2020-01-07 | Microsoft Technology Licensing, Llc | Task completion through inter-application communication |
US9313162B2 (en) | 2012-12-13 | 2016-04-12 | Microsoft Technology Licensing, Llc | Task completion in email using third party app |
US20140173602A1 (en) * | 2012-12-14 | 2014-06-19 | Microsoft Corporation | Matching Opportunity to Context |
US9535708B2 (en) * | 2012-12-21 | 2017-01-03 | Cisco Technology Inc. | Rate-controlling of heat generating data processing operations |
TWI617988B (zh) | 2013-01-31 | 2018-03-11 | 聯想企業解決方案(新加坡)有限公司 | 根據處理器位置之熱條件進行排程的電腦系統與方法 |
US9342443B2 (en) * | 2013-03-15 | 2016-05-17 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
US9557792B1 (en) | 2013-05-31 | 2017-01-31 | Amazon Technologies, Inc. | Datacenter power management optimizations |
US9588555B2 (en) * | 2013-08-22 | 2017-03-07 | Globalfoundries Inc. | Managing cooling operations in a parallel computer comprising a plurality of compute nodes |
JP6201530B2 (ja) | 2013-08-30 | 2017-09-27 | 富士通株式会社 | 情報処理システム、ジョブ管理装置、ジョブ管理装置の制御プログラム、及び、情報処理システムの制御方法 |
KR20150050135A (ko) | 2013-10-31 | 2015-05-08 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 |
US9244747B2 (en) * | 2014-03-13 | 2016-01-26 | Qualcomm Incorporated | System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication |
US9530174B2 (en) | 2014-05-30 | 2016-12-27 | Apple Inc. | Selective GPU throttling |
US9436628B2 (en) | 2014-05-30 | 2016-09-06 | Apple Inc. | Thermal mitigation using selective I/O throttling |
DK3123260T3 (da) * | 2014-12-31 | 2021-06-14 | Sz Dji Technology Co Ltd | Selektiv behandling af sensordata |
US10054994B2 (en) | 2015-04-04 | 2018-08-21 | Indian Institute Of Technology Bombay | Non-uniform intensity mapping using high performance enterprise computing system |
US9760402B2 (en) * | 2015-07-23 | 2017-09-12 | Dell Products L.P. | Systems and methods for input/output traffic shaping for optimal performance under thermal constraints |
US9465664B1 (en) * | 2015-09-09 | 2016-10-11 | Honeywell International Inc. | Systems and methods for allocation of environmentally regulated slack |
CN106873545A (zh) * | 2015-12-14 | 2017-06-20 | 重庆森坦科技有限公司 | 一种基于fpga的实时多任务调度系统 |
WO2017131667A1 (en) * | 2016-01-27 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Core characterization for processor cores |
US10452437B2 (en) * | 2016-06-24 | 2019-10-22 | Advanced Micro Devices, Inc. | Temperature-aware task scheduling and proactive power management |
US9753773B1 (en) | 2016-10-19 | 2017-09-05 | International Business Machines Corporation | Performance-based multi-mode task dispatching in a multi-processor core system for extreme temperature avoidance |
US9747139B1 (en) | 2016-10-19 | 2017-08-29 | International Business Machines Corporation | Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance |
US11107021B2 (en) | 2016-11-06 | 2021-08-31 | Microsoft Technology Licensing, Llc | Presenting and manipulating task items |
CN106656796B (zh) * | 2016-11-11 | 2020-04-24 | 中国人民解放军国防科学技术大学 | 一种基于温度等级的超前阶梯式缓冲区调节方法 |
KR102643797B1 (ko) * | 2017-01-10 | 2024-03-05 | 삼성전자주식회사 | 동적 발열 관리 방법 |
US11742038B2 (en) | 2017-08-11 | 2023-08-29 | Advanced Micro Devices, Inc. | Method and apparatus for providing wear leveling |
US11551990B2 (en) * | 2017-08-11 | 2023-01-10 | Advanced Micro Devices, Inc. | Method and apparatus for providing thermal wear leveling |
US11435813B2 (en) | 2018-08-29 | 2022-09-06 | Advanced Micro Devices, Inc. | Neural network power management in a multi-GPU system |
US11175952B2 (en) | 2020-02-21 | 2021-11-16 | International Business Machines Corporation | Leveraging thermal profiles of processing tasks to dynamically schedule execution of the processing tasks |
CN113687980B (zh) * | 2020-05-19 | 2024-03-01 | 北京京东乾石科技有限公司 | 异常数据自恢复方法、系统、电子设备和可读存储介质 |
US11740953B2 (en) | 2021-01-22 | 2023-08-29 | Google Llc | Solder joint damage-prevention mode for a computing device |
US20220300324A1 (en) * | 2021-03-19 | 2022-09-22 | Mediatek Inc. | Thermal-aware task scheduling |
Family Cites Families (197)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3576544A (en) | 1968-10-18 | 1971-04-27 | Ibm | Storage protection system |
JPS5412643Y2 (ko) | 1971-08-12 | 1979-06-02 | ||
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
JPS54146555U (ko) | 1978-04-03 | 1979-10-12 | ||
JPS576952Y2 (ko) | 1978-12-01 | 1982-02-09 | ||
US4314349A (en) | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
JPS6319058Y2 (ko) | 1980-01-17 | 1988-05-27 | ||
US4332009A (en) | 1980-01-21 | 1982-05-25 | Mostek Corporation | Memory protection system |
JPS56111962U (ko) | 1980-01-30 | 1981-08-29 | ||
JPS56123051U (ko) | 1980-02-15 | 1981-09-18 | ||
US4430705A (en) | 1980-05-23 | 1984-02-07 | International Business Machines Corp. | Authorization mechanism for establishing addressability to information in another address space |
US4414624A (en) | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
JPS57176456A (en) | 1981-04-22 | 1982-10-29 | Fanuc Ltd | Data processing system |
DE3171379D1 (en) | 1981-04-28 | 1985-08-22 | Ibm | Bus arrangement for interconnectiong circuit chips |
JPS63758Y2 (ko) | 1981-04-30 | 1988-01-09 | ||
AU542447B2 (en) | 1982-02-27 | 1985-02-21 | Fujitsu Limited | System for controlling key storage unit |
JPS5920074U (ja) | 1982-07-28 | 1984-02-07 | 住友電気工業株式会社 | 圧電効果を利用した開閉弁 |
JPS5958700A (ja) | 1982-09-29 | 1984-04-04 | Fujitsu Ltd | 記憶保護判定方式 |
US4545016A (en) | 1983-01-07 | 1985-10-01 | Tandy Corporation | Memory management system |
US4622631B1 (en) | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
US5159700A (en) | 1984-01-16 | 1992-10-27 | Texas Instruments Incorporated | Substrate with optical communication systems between chips mounted thereon and monolithic integration of optical I/O on silicon substrates |
JPS61180352U (ko) | 1985-04-25 | 1986-11-11 | ||
US4732446A (en) | 1985-10-02 | 1988-03-22 | Lamar Gipson | Electrical circuit and optical data buss |
AU571377B2 (en) | 1985-11-13 | 1988-04-14 | Fujitsu Limited | Main storage access control system |
US5274797A (en) | 1986-05-30 | 1993-12-28 | Bull Hn Information Systems Inc. | Multiprocessor system with centralized initialization, testing and monitoring of the system and providing centralized timing |
JPS6241986A (ja) | 1986-08-29 | 1987-02-23 | Hitachi Ltd | オイルフリースクリユー圧縮機結合体 |
JPS6365222A (ja) | 1986-09-03 | 1988-03-23 | Tokyo Tatsuno Co Ltd | 触媒燃焼装置 |
US4816989A (en) | 1987-04-15 | 1989-03-28 | Allied-Signal Inc. | Synchronizer for a fault tolerant multiple node processing system |
JP2960415B2 (ja) | 1987-05-22 | 1999-10-06 | 株式会社日立製作所 | 記憶保護方法および装置 |
JPS6412364U (ko) | 1987-07-11 | 1989-01-23 | ||
JPH0719704Y2 (ja) | 1987-07-31 | 1995-05-10 | シャープ株式会社 | 生産ラインの生産管理装置 |
JPH0612333Y2 (ja) | 1987-12-28 | 1994-03-30 | 株式会社ゼクセル | 車両用熱焼式ヒータの燃焼器 |
JP2677589B2 (ja) | 1988-02-26 | 1997-11-17 | 株式会社東芝 | 携帯可能電子装置およびicチップ |
US5056000A (en) | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
US4939682A (en) | 1988-07-15 | 1990-07-03 | The Boeing Company | Integrated electro-optic arithmetic/logic unit and method for making the same |
EP0369052A1 (en) | 1988-11-17 | 1990-05-23 | International Business Machines Corporation | Data base access system |
JPH02210542A (ja) | 1989-02-10 | 1990-08-21 | Fujitsu Ltd | 仮想計算機システムにおける実行制御方式 |
US5222239A (en) | 1989-07-28 | 1993-06-22 | Prof. Michael H. Davis | Process and apparatus for reducing power usage microprocessor devices operating from stored energy sources |
EP0424618A3 (en) | 1989-10-24 | 1992-11-19 | International Business Machines Corporation | Input/output system |
US5037173A (en) | 1989-11-22 | 1991-08-06 | Texas Instruments Incorporated | Optical interconnection network |
CA2073185A1 (en) | 1990-01-05 | 1991-07-06 | Won S. Kim | Parallel processor memory system |
US5357632A (en) | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
US5396635A (en) | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
CA2044689A1 (en) | 1990-06-15 | 1991-12-16 | Roger E. Tipley | Multilevel inclusion in multilevel cache hierarchies |
US5093879A (en) | 1990-06-22 | 1992-03-03 | International Business Machines Corporation | Electro-optical connectors |
US5144691A (en) | 1990-07-20 | 1992-09-01 | Cray Research, Inc. | Computer signal interconnect apparatus |
US5303369A (en) | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
EP0481735A3 (en) | 1990-10-19 | 1993-01-13 | Array Technology Corporation | Address protection circuit |
US5630162A (en) | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
US5590345A (en) | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
KR940004404B1 (ko) | 1990-11-30 | 1994-05-25 | 삼성전자 주식회사 | 불휘발성 반도체 메모리장치 |
US5131054A (en) | 1991-01-09 | 1992-07-14 | Thinking Machines Corporation | Character recognition system using massively parallel computer that identifies a query character using degree of similarity with plurality of training characters of known identity |
JPH04284754A (ja) | 1991-03-14 | 1992-10-09 | Fujitsu Ltd | Atm交換装置 |
JPH04288643A (ja) | 1991-03-18 | 1992-10-13 | Nec Corp | マルチプロセッサシステムのメモリマッピング方式 |
US5519875A (en) | 1991-08-08 | 1996-05-21 | Hitachi, Ltd. | Distributed processing system for modules, each having modularized objects |
US5404563A (en) | 1991-08-28 | 1995-04-04 | International Business Machines Corporation | Scheduling normally interchangeable facilities in multiprocessor computer systems |
US5361370A (en) | 1991-10-24 | 1994-11-01 | Intel Corporation | Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port |
JP3364937B2 (ja) | 1991-11-29 | 2003-01-08 | 株式会社日立製作所 | 並列演算装置 |
US5268973A (en) | 1992-01-21 | 1993-12-07 | The University Of Texas System | Wafer-scale optical bus |
JPH05242057A (ja) | 1992-02-27 | 1993-09-21 | Sanyo Electric Co Ltd | マルチプロセッサシステムの起動方式 |
JPH05257907A (ja) | 1992-03-11 | 1993-10-08 | Hitachi Ltd | オンチップマルチプロセッサシステム |
JPH05324589A (ja) | 1992-03-25 | 1993-12-07 | Nippon Sheet Glass Co Ltd | 並列コンピュータ装置および光結合装置 |
US5452401A (en) * | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5394524A (en) | 1992-08-07 | 1995-02-28 | International Business Machines Corporation | Method and apparatus for processing two graphics data streams in parallel |
EP0610583A1 (en) | 1993-02-08 | 1994-08-17 | International Business Machines Corporation | Multizone relocation facility computer memory system |
US5619671A (en) | 1993-04-19 | 1997-04-08 | International Business Machines Corporation | Method and apparatus for providing token controlled access to protected pages of memory |
JPH07168726A (ja) * | 1993-12-16 | 1995-07-04 | Matsushita Electric Ind Co Ltd | 電子計算機及びマルチプロセスオペレーティングシステムのスケジューリング方法 |
US5745778A (en) | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
GB2287555A (en) | 1994-02-25 | 1995-09-20 | Motorola Gmbh | An adjustable clock generator system. |
US5487146A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
US5815403A (en) | 1994-04-19 | 1998-09-29 | Lsi Logic Corporation | Fail-safe distributive processing method for producing a highest fitness cell placement for an integrated circuit chip |
JPH07287064A (ja) | 1994-04-20 | 1995-10-31 | Mitsubishi Electric Corp | レーダ信号処理装置 |
EP0683451B1 (en) | 1994-05-09 | 2004-02-25 | Canon Kabushiki Kaisha | Power supply control method in multi-task environment |
US5513337A (en) | 1994-05-25 | 1996-04-30 | Intel Corporation | System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type |
JPH0816531A (ja) | 1994-06-28 | 1996-01-19 | Hitachi Ltd | プロセススケジュール方式 |
JPH0883257A (ja) | 1994-09-13 | 1996-03-26 | Hitachi Ltd | 並列コンピュータシステムのプロセス実行最適化方法 |
JPH08161283A (ja) | 1994-12-07 | 1996-06-21 | Sony Corp | 複数プロセツサシステム |
US5754436A (en) | 1994-12-22 | 1998-05-19 | Texas Instruments Incorporated | Adaptive power management processes, circuits and systems |
JPH08180018A (ja) | 1994-12-26 | 1996-07-12 | Toshiba Corp | 分散処理システム及び分散処理方法 |
US6192479B1 (en) | 1995-01-19 | 2001-02-20 | Texas Instruments Incorporated | Data processing with progressive, adaptive, CPU-driven power management |
US5715184A (en) | 1995-01-23 | 1998-02-03 | Motorola, Inc. | Method of parallel simulation of standard cells on a distributed computer system |
JPH08212178A (ja) | 1995-02-08 | 1996-08-20 | Hitachi Ltd | 並列計算機 |
JP2731742B2 (ja) | 1995-02-28 | 1998-03-25 | 甲府日本電気株式会社 | クラスタ構成の並列計算機 |
CA2170468A1 (en) | 1995-02-28 | 1996-08-29 | Noriyuki Ando | Multi-processor system with virtually addressable communication registers and controlling method thereof |
JPH08249261A (ja) | 1995-03-08 | 1996-09-27 | Mitsubishi Electric Corp | メッセージ管理システム |
DE19508723A1 (de) | 1995-03-10 | 1996-09-12 | Siemens Ag | Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz |
US5850534A (en) | 1995-06-05 | 1998-12-15 | Advanced Micro Devices, Inc. | Method and apparatus for reducing cache snooping overhead in a multilevel cache system |
JPH09138716A (ja) | 1995-11-14 | 1997-05-27 | Toshiba Corp | 電子計算機 |
US6331856B1 (en) | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
JP3786993B2 (ja) | 1995-12-14 | 2006-06-21 | 株式会社日立製作所 | データ記憶ユニット及び該ユニットを用いたデータ記憶装置 |
US6886167B1 (en) | 1995-12-27 | 2005-04-26 | International Business Machines Corporation | Method and system for migrating an object between a split status and a merged status |
JPH09198361A (ja) | 1996-01-23 | 1997-07-31 | Kofu Nippon Denki Kk | マルチプロセッサシステム |
US5729712A (en) | 1996-01-26 | 1998-03-17 | Unisys Corporation | Smart fill system for multiple cache network |
US5761516A (en) | 1996-05-03 | 1998-06-02 | Lsi Logic Corporation | Single chip multiprocessor architecture with internal task switching synchronization bus |
US5940870A (en) | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
JPH09311839A (ja) | 1996-05-21 | 1997-12-02 | Hitachi Ltd | データ共用方式 |
US5724551A (en) | 1996-05-23 | 1998-03-03 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers |
US5900019A (en) | 1996-05-23 | 1999-05-04 | International Business Machines Corporation | Apparatus for protecting memory storage blocks from I/O accesses |
US5787309A (en) | 1996-05-23 | 1998-07-28 | International Business Machines Corporation | Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits |
US5740409A (en) | 1996-07-01 | 1998-04-14 | Sun Microsystems, Inc. | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities |
AT1751U1 (de) | 1996-09-30 | 1997-10-27 | Kuehn Eva | Koordinations-system |
JPH10126771A (ja) | 1996-10-15 | 1998-05-15 | Toshiba Corp | 画像データ転送システムにおける画像データ送出レート制御方法および画像データ転送方法 |
JP3567354B2 (ja) | 1996-12-26 | 2004-09-22 | 株式会社リコー | マルチプロセッサシステムおよび命令作成装置 |
JP3421526B2 (ja) | 1997-02-14 | 2003-06-30 | モトローラ株式会社 | デ−タ処理装置 |
US6424988B2 (en) | 1997-02-19 | 2002-07-23 | Unisys Corporation | Multicomputer system |
US6192514B1 (en) | 1997-02-19 | 2001-02-20 | Unisys Corporation | Multicomputer system |
US6289434B1 (en) | 1997-02-28 | 2001-09-11 | Cognigine Corporation | Apparatus and method of implementing systems on silicon using dynamic-adaptive run-time reconfigurable circuits for processing multiple, independent data and control streams of varying rates |
JP3681026B2 (ja) | 1997-03-27 | 2005-08-10 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
JP3739888B2 (ja) | 1997-03-27 | 2006-01-25 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
US6212605B1 (en) | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Eviction override for larx-reserved addresses |
JPH1139215A (ja) | 1997-05-22 | 1999-02-12 | Matsushita Electric Ind Co Ltd | キャッシュメモリおよびキャッシュメモリを制御する方法 |
JPH10334055A (ja) | 1997-06-03 | 1998-12-18 | Sony Corp | マルチプロセッサ・システム |
JPH10340165A (ja) | 1997-06-09 | 1998-12-22 | Canon Inc | 情報処理装置及びその方法並びにメモリ媒体 |
JP3490256B2 (ja) | 1997-06-12 | 2004-01-26 | 三菱電機株式会社 | エージェント方式 |
US5892966A (en) | 1997-06-27 | 1999-04-06 | Sun Microsystems, Inc. | Processor complex for executing multimedia functions |
US6360303B1 (en) | 1997-09-30 | 2002-03-19 | Compaq Computer Corporation | Partitioning memory shared by multiple processors of a distributed processing system |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6209065B1 (en) | 1997-10-24 | 2001-03-27 | Compaq Computer Corporation | Mechanism for optimizing generation of commit-signals in a distributed shared-memory system |
US6002409A (en) | 1997-10-29 | 1999-12-14 | Cirrus Logic, Inc. | Arbitration for shared graphics processing resources |
US6542926B2 (en) | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
US6965974B1 (en) | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
US6173389B1 (en) | 1997-12-04 | 2001-01-09 | Billions Of Operations Per Second, Inc. | Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor |
JPH11202988A (ja) | 1998-01-13 | 1999-07-30 | Hitachi Ltd | システム消費電力制御方法 |
JPH11232247A (ja) | 1998-02-10 | 1999-08-27 | Hitachi Ltd | データフロー計算機およびデータフロー制御方法 |
US6008685A (en) * | 1998-03-25 | 1999-12-28 | Mosaic Design Labs, Inc. | Solid state temperature measurement |
US6167430A (en) | 1998-05-12 | 2000-12-26 | Unisys Corporation | Multicomputer with distributed directory and operating system |
JPH11338833A (ja) | 1998-05-22 | 1999-12-10 | Hitachi Ltd | マルチプロセッサ型コントローラ及びスケーラブルコントローラシステム |
US6947987B2 (en) | 1998-05-29 | 2005-09-20 | Ncr Corporation | Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes |
US6336187B1 (en) | 1998-06-12 | 2002-01-01 | International Business Machines Corp. | Storage system with data-dependent security |
US6209066B1 (en) | 1998-06-30 | 2001-03-27 | Sun Microsystems, Inc. | Method and apparatus for memory allocation in a multi-threaded virtual machine |
JP3224782B2 (ja) | 1998-08-03 | 2001-11-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 処理分担動的変更方法及びコンピュータ |
US6141762A (en) | 1998-08-03 | 2000-10-31 | Nicol; Christopher J. | Power reduction in a multiprocessor digital signal processor based on processor load |
JP2000132529A (ja) | 1998-10-23 | 2000-05-12 | Sony Corp | 並列処理装置、並列処理方法および記録媒体 |
US6643708B1 (en) | 1998-10-29 | 2003-11-04 | International Business Machines Corporation | Systems, methods and computer program products for chaining Java servlets across networks |
US6633563B1 (en) | 1999-03-02 | 2003-10-14 | Nortel Networks Limited | Assigning cell data to one of several processors provided in a data switch |
JP3790060B2 (ja) | 1999-01-29 | 2006-06-28 | 株式会社山武 | 演算処理装置 |
US6341338B1 (en) | 1999-02-04 | 2002-01-22 | Sun Microsystems, Inc. | Protocol for coordinating the distribution of shared memory |
JP4123621B2 (ja) | 1999-02-16 | 2008-07-23 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法 |
US6480941B1 (en) | 1999-02-23 | 2002-11-12 | International Business Machines Corporation | Secure partitioning of shared memory based multiprocessor system |
US6753878B1 (en) | 1999-03-08 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Parallel pipelined merge engines |
US6647208B1 (en) | 1999-03-18 | 2003-11-11 | Massachusetts Institute Of Technology | Hybrid electronic/optical switch system |
US6345362B1 (en) | 1999-04-06 | 2002-02-05 | International Business Machines Corporation | Managing Vt for reduced power using a status table |
US6477170B1 (en) | 1999-05-21 | 2002-11-05 | Advanced Micro Devices, Inc. | Method and apparatus for interfacing between systems operating under different clock regimes with interlocking to prevent overwriting of data |
EP1065592B1 (en) | 1999-06-25 | 2008-07-23 | Canon Research Centre France S.A. | Shared management of data objects in a communication network |
US6467012B1 (en) | 1999-07-08 | 2002-10-15 | International Business Machines Corporation | Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors |
US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6198245B1 (en) * | 1999-09-20 | 2001-03-06 | O2 Micro International Ltd. | Look-ahead closed-loop thermal management |
EP1096360B1 (en) | 1999-10-25 | 2004-09-22 | Texas Instruments Incorporated | Intelligent power management for distributed processing systems |
JP4049957B2 (ja) | 1999-10-29 | 2008-02-20 | 富士ゼロックス株式会社 | マルチプロセッサシステム |
US6577311B1 (en) | 1999-12-16 | 2003-06-10 | Picture Iq Corporation | Techniques for automatically providing a high-resolution rendering of a low resolution digital image in a distributed network |
US6564328B1 (en) | 1999-12-23 | 2003-05-13 | Intel Corporation | Microprocessor with digital power throttle |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
JP2001195230A (ja) | 2000-01-14 | 2001-07-19 | Mitsubishi Electric Corp | 描画処理システム、及び描画演算を行う半導体集積回路 |
US6694336B1 (en) | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
US6807620B1 (en) | 2000-02-11 | 2004-10-19 | Sony Computer Entertainment Inc. | Game system with graphics processor |
KR100319708B1 (ko) | 2000-02-11 | 2002-01-09 | 전주식 | 방향 분리 이중 링 구조의 분산된 공유 메모리 다중프로세서 시스템 |
US6799207B1 (en) | 2000-04-10 | 2004-09-28 | International Business Machines Corporation | Method and system for downloading software managed trees in a network processing system |
JP2002064145A (ja) | 2000-06-09 | 2002-02-28 | Fujitsu Ltd | 冗長素子を備える集積回路チップ、マルチプロセッサおよびその製法 |
JP4640880B2 (ja) | 2000-07-14 | 2011-03-02 | 国立大学法人東京工業大学 | マイクロプロセッサシステム |
US6269043B1 (en) | 2000-07-31 | 2001-07-31 | Cisco Technology, Inc. | Power conservation system employing a snooze mode |
EP1182552A3 (en) | 2000-08-21 | 2003-10-01 | Texas Instruments France | Dynamic hardware configuration for energy management systems using task attributes |
EP1182556B1 (en) | 2000-08-21 | 2009-08-19 | Texas Instruments France | Task based adaptive profiling and debugging |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US6625737B1 (en) | 2000-09-20 | 2003-09-23 | Mips Technologies Inc. | System for prediction and control of power consumption in digital system |
JP2002098594A (ja) * | 2000-09-25 | 2002-04-05 | Toshiba Corp | 温度センサ装置 |
US20030069985A1 (en) | 2000-10-02 | 2003-04-10 | Eduardo Perez | Computer readable media for storing video data |
US7174194B2 (en) * | 2000-10-24 | 2007-02-06 | Texas Instruments Incorporated | Temperature field controlled scheduling for processing systems |
ATE492840T1 (de) | 2000-10-31 | 2011-01-15 | Millennial Net Inc | Vernetztes verarbeitungssystem mit optimiertem leistungswirkungsgrad |
US6631440B2 (en) * | 2000-11-30 | 2003-10-07 | Hewlett-Packard Development Company | Method and apparatus for scheduling memory calibrations based on transactions |
US6865631B2 (en) | 2000-12-14 | 2005-03-08 | International Business Machines Corporation | Reduction of interrupts in remote procedure calls |
US6779049B2 (en) | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US7020871B2 (en) | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US6748501B2 (en) | 2000-12-30 | 2004-06-08 | International Business Machines Corporation | Microprocessor reservation mechanism for a hashed address system |
US6779045B2 (en) | 2001-03-21 | 2004-08-17 | Intel Corporation | System and apparatus for increasing the number of operations per transmission for a media management system |
US7233998B2 (en) | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6922726B2 (en) | 2001-03-23 | 2005-07-26 | International Business Machines Corporation | Web accessibility service apparatus and method |
JP2003167751A (ja) | 2001-04-24 | 2003-06-13 | Ricoh Co Ltd | プロセッサ処理方法およびプロセッサシステム |
US6901522B2 (en) | 2001-06-07 | 2005-05-31 | Intel Corporation | System and method for reducing power consumption in multiprocessor system |
JP3610930B2 (ja) | 2001-07-12 | 2005-01-19 | 株式会社デンソー | オペレーティングシステム、プログラム、車両用電子制御装置 |
US20030055969A1 (en) | 2001-09-17 | 2003-03-20 | International Business Machines Corporation | System and method for performing power management on a distributed system |
JP4050027B2 (ja) * | 2001-09-28 | 2008-02-20 | 株式会社日立製作所 | 情報処理装置及び情報処理装置の制御方法 |
US20030079151A1 (en) | 2001-10-18 | 2003-04-24 | International Business Machines Corporation | Energy-aware workload distribution |
US7203943B2 (en) | 2001-10-31 | 2007-04-10 | Avaya Technology Corp. | Dynamic allocation of processing tasks using variable performance hardware platforms |
US6804632B2 (en) | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US7318164B2 (en) | 2001-12-13 | 2008-01-08 | International Business Machines Corporation | Conserving energy in a data processing system by selectively powering down processors |
US6775787B2 (en) | 2002-01-02 | 2004-08-10 | Intel Corporation | Instruction scheduling based on power estimation |
US7096145B2 (en) | 2002-01-02 | 2006-08-22 | Intel Corporation | Deterministic power-estimation for thermal control |
JP2003256067A (ja) | 2002-03-01 | 2003-09-10 | Mitsubishi Electric Corp | 省電力制御方式及び省電力制御方法及びプログラム及び記録媒体 |
WO2003083693A1 (fr) | 2002-04-03 | 2003-10-09 | Fujitsu Limited | Planificateur de taches dans un systeme de traitement distribue |
US6948082B2 (en) | 2002-05-17 | 2005-09-20 | International Business Machines Corporation | Method and apparatus for software-assisted thermal management for electronic systems |
US7254812B1 (en) | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
US7086058B2 (en) | 2002-06-06 | 2006-08-01 | International Business Machines Corporation | Method and apparatus to eliminate processor core hot spots |
US7100060B2 (en) | 2002-06-26 | 2006-08-29 | Intel Corporation | Techniques for utilization of asymmetric secondary processing resources |
JP3673245B2 (ja) | 2002-06-28 | 2005-07-20 | 株式会社東芝 | 情報処理装置および同装置における電源制御方法 |
JP2004103347A (ja) | 2002-09-09 | 2004-04-02 | Sumitomo Wiring Syst Ltd | コネクタ |
JP4934954B2 (ja) * | 2003-10-15 | 2012-05-23 | 日亜化学工業株式会社 | ヒートシンク及びヒートシンクを備えた半導体装置 |
-
2004
- 2004-03-29 US US10/812,177 patent/US8224639B2/en active Active
-
2005
- 2005-03-25 JP JP2005088403A patent/JP4053547B2/ja active Active
- 2005-03-28 CN CNB2005800103859A patent/CN100504790C/zh active Active
- 2005-03-28 WO PCT/JP2005/006523 patent/WO2005096150A1/en active IP Right Grant
- 2005-03-28 KR KR1020067022624A patent/KR101120215B1/ko not_active IP Right Cessation
- 2005-03-28 AT AT05727578T patent/ATE387663T1/de not_active IP Right Cessation
- 2005-03-28 EP EP05727578A patent/EP1730635B1/en active Active
- 2005-03-28 DE DE602005005035T patent/DE602005005035T2/de active Active
- 2005-03-29 TW TW094109855A patent/TW200602885A/zh not_active IP Right Cessation
-
2012
- 2012-05-16 US US13/473,033 patent/US8751212B2/en not_active Expired - Lifetime
-
2014
- 2014-05-02 US US14/268,433 patent/US9183051B2/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160042003A (ko) * | 2013-08-08 | 2016-04-18 | 퀄컴 인코포레이티드 | 와트당 최적 성능을 위한 지능형 멀티코어 제어 |
US10345890B2 (en) | 2013-12-10 | 2019-07-09 | Huawei Device Co., Ltd. | Task management method and device |
US11209894B2 (en) | 2013-12-10 | 2021-12-28 | Huawei Device Co., Ltd. | Task management method and device |
US11662802B2 (en) | 2013-12-10 | 2023-05-30 | Huawei Device Co., Ltd. | Task management method and device |
KR20160121022A (ko) * | 2015-04-09 | 2016-10-19 | 에스케이하이닉스 주식회사 | NoC 반도체 장치의 태스크 매핑 방법 |
KR20190068156A (ko) * | 2017-12-08 | 2019-06-18 | 한국전자통신연구원 | 그래픽 처리 장치 및 이의 동작 방법 |
KR20200009426A (ko) * | 2018-07-19 | 2020-01-30 | 주식회사 다이얼로그 세미컨덕터 코리아 | 전원을 효율적으로 관리하기 위한 소프트웨어 운영 방법 및 이를 이용한 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP1730635B1 (en) | 2008-02-27 |
EP1730635A2 (en) | 2006-12-13 |
TW200602885A (en) | 2006-01-16 |
ATE387663T1 (de) | 2008-03-15 |
US20120266174A1 (en) | 2012-10-18 |
DE602005005035T2 (de) | 2009-03-19 |
WO2005096150B1 (en) | 2006-01-26 |
US20140245314A1 (en) | 2014-08-28 |
JP2005285123A (ja) | 2005-10-13 |
TWI345155B (ko) | 2011-07-11 |
US20050216222A1 (en) | 2005-09-29 |
US9183051B2 (en) | 2015-11-10 |
US8751212B2 (en) | 2014-06-10 |
JP4053547B2 (ja) | 2008-02-27 |
CN100504790C (zh) | 2009-06-24 |
CN1938687A (zh) | 2007-03-28 |
DE602005005035D1 (de) | 2008-04-10 |
KR101120215B1 (ko) | 2012-03-16 |
US8224639B2 (en) | 2012-07-17 |
WO2005096150A1 (en) | 2005-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101120215B1 (ko) | 프로세싱 태스크 스케줄링을 이용하는 열 관리를 달성하기위한 방법들 및 장치 | |
US7360102B2 (en) | Methods and apparatus for achieving thermal management using processor manipulation | |
US20240029488A1 (en) | Power management based on frame slicing | |
US8566539B2 (en) | Managing thermal condition of a memory | |
US9063785B2 (en) | Temperature-based thread scheduling | |
US20060107262A1 (en) | Power consumption-based thread scheduling | |
KR101655137B1 (ko) | 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링 | |
US7962774B2 (en) | Over-provisioned multicore processor | |
US7784050B2 (en) | Temperature management system for a multiple core chip | |
JP2006318477A (ja) | ロジカルパーティショニングされた処理環境におけるリソース管理のための方法および装置 | |
US20130158892A1 (en) | Method for selecting a resource from a plurality of processing resources so that the probable times to failure of the resources evolve in a substantially identical manner | |
JP2005284625A (ja) | プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法 | |
Stavrou et al. | Thermal-aware scheduling for future chip multiprocessors | |
Ekhtiyari et al. | A temperature-aware and energy-efficient fuzzy technique to schedule tasks in heterogeneous MPSoC systems | |
Lee et al. | GOP-level dynamic thermal management in MPEG-2 decoding | |
Wang et al. | Efficient task partitioning and scheduling for thermal management in multicore processors | |
JP2010039923A (ja) | 情報処理装置 | |
Ayoub et al. | Cool and save: cooling aware dynamic workload scheduling in multi-socket cpu systems | |
Ofori-Attah et al. | A survey of system level power management schemes in the dark-silicon era for many-core architectures | |
Zhou et al. | Temperature-aware register reallocation for register file power-density minimization | |
Kim et al. | Register-relocation: a thermal-aware renaming method for reducing temperature of a register file | |
Raghu et al. | Thermal-aware power migration in many-core processors | |
Kim et al. | Thermalaware Register File based on Heat Transfer | |
JP2005285117A (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 | ||
FPAY | Annual fee payment |
Payment date: 20150119 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |