TWI550413B - 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 - Google Patents
用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 Download PDFInfo
- Publication number
- TWI550413B TWI550413B TW103120160A TW103120160A TWI550413B TW I550413 B TWI550413 B TW I550413B TW 103120160 A TW103120160 A TW 103120160A TW 103120160 A TW103120160 A TW 103120160A TW I550413 B TWI550413 B TW I550413B
- Authority
- TW
- Taiwan
- Prior art keywords
- core
- memory
- performance
- processor
- logic
- Prior art date
Links
- 230000008901 benefit Effects 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 64
- 238000004891 communication Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3404—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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/461—Saving or restoring of program or task context
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明之揭示係大致有關電子學之領域。更具體而言,本發明之一實施例係有關將異質多處理器運算平台中之應用程式排程之技術。
為了改善效能,某些運算系統包含多個處理器。然而,多處理器運算系統的擴展受到電力之限制。亦即,當將更多的處理器加入一系統時,電力消耗將增加。此外,額外的電力消耗將產生更多的熱。因此,熱及電力要求可能限制了多處理器運算系統的擴展。
本發明說明了用來將異質多處理器運算平台中之應用程式排程之方法及裝置。在一實施例中,在一些計數器及/或表中儲存(且追蹤)一處理器的複數個處理器核心的
與效能(例如,執行效能及/或電力消耗效能)有關之資訊。該處理器中之邏輯根據該被儲存之資訊決定哪一處理器核心應執行一應用程式。也申請其他實施例之專利範圍,且揭示該等其他實施例。
100,500,600‧‧‧運算系統
102,102-1~102-N,502,602,604‧‧‧處理器
104,112,504‧‧‧互連網路
106,106-1~106-M‧‧‧處理器核心
108‧‧‧共用式快取記憶體
110‧‧‧路由器
114,512,610,612‧‧‧記憶體
116,116-1‧‧‧第1階(L1)及/或第2階(L2)快取記憶體
120‧‧‧邏輯
122‧‧‧計數器
124,124-1‧‧‧效能歷史表
202‧‧‧提取單元
204‧‧‧解碼單元
206‧‧‧排程單元
208‧‧‧執行單元
210‧‧‧引退單元
214‧‧‧匯流排單元
503‧‧‧電腦網路
506,620‧‧‧晶片組
508,606,608‧‧‧記憶體控制中心
510‧‧‧記憶體控制器
514‧‧‧圖形介面
516‧‧‧顯示裝置
518‧‧‧控制中心介面
520‧‧‧輸入/輸出控制中心
522,640,644‧‧‧匯流排
524‧‧‧周邊裝置橋接器
526‧‧‧音訊裝置
528‧‧‧磁碟機
530‧‧‧網路介面裝置
616,618,626,628,630,632,637,641‧‧‧點對點介面電路
614,622,624‧‧‧點對點介面
634‧‧‧圖形電路
636‧‧‧圖形介面
642‧‧‧匯流排橋接器
643‧‧‧輸入/輸出裝置
645‧‧‧鍵盤/滑鼠
646‧‧‧通訊裝置
647‧‧‧音訊輸入/輸出裝置
648‧‧‧資料儲存裝置
649‧‧‧程式碼
前文中已參照各附圖而提供了實施方式。在該等圖式中,代號最左方的數字識別該代號首次出現的圖式。在不同的圖式中使用相同的代號時,係標示類似的或相同的項目。
第1、5、及6圖示出可被用來實施本發明中述及的各實施例的運算系統的實施例之方塊圖。
第2圖示出根據一實施例的運算系統的處理器核心及其他組件的一些部分之方塊圖。
第3-4圖示出根據某些實施例之流程圖。
在下文的說明中,述及了許多特定細節,以便提供對各實施例的徹底了解。然而,可在沒有這些特定細節的情形下實施本發明的各實施例。在其他的情形中,並未詳述習知的方法、程序、組件、及電路,以便不會模糊了本發明的特定實施例。此外,可使用諸如半導體積體電路("硬體")、被組織成一或多個程式之電腦可讀取的指令("軟體")、或硬體及軟體的某一組合等的各種方式執行
本發明的該等實施例之各種態樣。在本發明的揭示中,提及"邏輯"時將意指硬體、軟體、或硬體及軟體的某一組合。此外,在本說明書的說明中,對"指令"及"微運算"(uop)的使用是可互換的。
由於諸如用於伺服器及用戶端平台的晶片多處理器(Chip Multiprocessor;簡稱CMP)的日漸普及,所以異質CMP開始獲得重視。例如,較小的處理器核心可提供較佳的效能/瓦特優勢。因而將一些較小的處理器核心加入一些較大的處理器核心可能是有吸引力的。如本發明所述,異質CMP包含在效能、面積、及/或功率消耗上不同的一組核心。此種平台有機會可將運算資源對應到各種應用程式,因而可在某些實施例中實現效能及功率效率(power efficiency)。
然而,異質CMP平台設計中之一個關鍵性挑戰是應用程式的排程,亦即,將效能及/或功率效率最佳化的各應用程式至該複數個處理器核心之對應。為了達到此一目的,一實施例係有關:將各應用程式動態地排程到(諸如單一積體電路(Integrated Circuit;簡稱IC)晶片/晶粒上的)一些異質核心。在一實施例中,可將兩個組件用來將應用程式排程。第一,可提供一處理器核心模型化預測試探法(processor core modeling prediction heuristics)。第二,可將一排程邏輯用來根據該核心模型化預測試探法而將一些應用程式排程到各異質處理器核心。
可將本發明述及的該等技術用於諸如參照第1圖及5-
6圖所述的處理器等的具有效能狀態設定之任何類型的處理器。更具體而言,第1圖示出根據本發明的一實施例的運算系統100之方塊圖。系統100可包含一或多個處理器102-1至102-N(在本說明書中一般被稱為"各處理器102"或"處理器102")。該等處理器102可經由一互連網路或匯流排104而通訊。每一處理器可包含各種組件,但是為了顧及清晰,只參照處理器102-1而說明該等組件中之某些組件。因此,其餘處理器102-2至102-N中之每一處理器可包含與參照處理器102-1所述的組件相同或類似之組件。
在一實施例中,處理器102-1可包含一或多個處理器核心106-1至106-M(在本說明書中被稱為"各核心106",或更一般被"核心106")、一共用式快取記憶體108、及/或一路由器110。可在積體電路(IC)單晶片上實施該等處理器核心106。此外,該晶片可包含一或多個共用式及/或私有快取記憶體(諸如快取記憶體108)、匯流排或互連(諸如匯流排或互連網路112、記憶體控制器(諸如參照第5及6圖所述的那些記憶體控制器)、或其他組件。此外,該等核心106可以是異質的(例如,如本發明所述,具有不同的尺寸、效能特性、電力消耗特性等的特性)。
在一實施例中,路由器110可被用於處理器102-1及/或系統100的各組件間之通訊。此外,處理器102-1可包含一個以上的路由器110。此外,可使該等多個路由器
110進行通訊,而使資料能夠在處理器102-1之內或之外的各組件之間傳送。
共用式快取記憶體108可儲存被處理器102-1的諸如該等核心106等的一或多個組件利用之資料(例如,其中包括指令)。例如,共用式快取記憶體108可在本地緩衝儲存一記憶體114中儲存之資料,以供處理器102的各組件可進行較快速的存取。在一實施例中,快取記憶體108可包括一中間階快取記憶體(諸如一第2階(L2)、一第3階(L3)、一第4階(L4)、或其他階的快取記憶體)、一最後階快取記憶體(Last Level Cache;簡稱LLC)、及/或以上各項之組合。此外,處理器102-1的各組件可經由一匯流排(例如,匯流排112)及/或一記憶體控制器或記憶體控制中心而與共用式快取記憶體108直接通訊。如第1圖所示,在某些實施例中,該等核心106中之一或多個核心可包含一第1階(L1)及/或第2階(L2)快取記憶體116-1(在本說明書中一般被稱為"L1/L2快取記憶體116")。在各實施例中,L1及/或L2快取記憶體116可以是私有的或被共用的。
在一實施例中,如將於下文中參照第2-4圖而進一步說明的,該等核心中之每一核心可包含用來協助將各應用程式指定給該系統中之各處理器核心之一邏輯120。例如,可根據一或多個計數器122(諸如用來指示該系統中之一或多個其他核心的效能之一或多個效能計數器)中儲存之資訊而(諸如由一作業系統(Operating System;簡
稱OS))指定該等應用程式。亦可根據可被用來作為索引而檢索一表(諸如一效能歷史表(Performance History Table;簡稱PHT)124-1)之一程序識別碼(ID)而(諸如由該OS)指定該等應用程式。該表可被儲存在共用式記憶體(諸如記憶體114及/或共用式快取記憶體108)或處理器102或核心106(例如,PHT 124-1)中之諸如一私有快取記憶體(例如,L1/L2快取記憶體116)等的一專用儲存裝置。如將於下文中參照諸如第2-4圖而進一步說明的,於將各應用程式排程時,該表可將資訊,提示提供給該作業系統(OS)。在某些實施例中,可將該OS及應用程式儲存在記憶體114(或第5圖所示之記憶體512及第6圖所示之記憶體610/612)。
第2圖示出根據本發明的一實施例的運算系統的處理器核心106及其他組件的一些部分之方塊圖。在一實施例中,第2圖所示之箭頭示出指令通過核心106之流動方向。可在諸如參照第1圖所述的一單一積體電路晶片(或晶粒)中實施一或多個處理器核心(諸如處理器核心106)。此外,該晶片可包含一或多個共用式及/或私有快取記憶體(例如,第1圖所示之快取記憶體106及108)、一些互連(例如,第1圖所示之互連104及/或112)、邏輯120、一或多個計數器、一些記憶體控制器、或其他組件。
如第2圖所示,處理器核心106可包含一提取單元202,用以提取指令(其中包括具有條件分支之指令)以
供核心106執行。可自諸如記憶體114及/或參照第4及5圖述及的記憶體裝置等的任何儲存裝置提取該等指令。核心106亦可包含一解碼單元204,用以將被提取的指令解碼。例如,解碼單元204可將被提取的指令解碼為複數個微運算(micro-operation)。此外,核心106可包含一排程單元206。在被解碼的指令(例如,自解碼單元204接收的指令)已準備好可供派發之前,例如,在取得被解碼的指令之所有來源值之前,排程單元206可執行與該等指令相關聯的各種操作。在一實施例中,排程單元206可將被解碼的指令排程且/或將被解碼的指令發出(或派發)到一執行單元208以供執行。在指令被解碼(例如,被解碼單元204解碼)且被派發(例如,被排程單元206派發)之後,執行單元208可執行該等被派發的指令。在一實施例中,執行單元208可包括一個以上的執行單元。執行單元208亦可執行諸如加法、減法、乘法、及/或除法等的各種算術運算,且可包含一或多個算術邏輯單元(Arithmetic Logic Unit;簡稱ALU)。在一實施例中,一共處理器(圖中未示出)可配合執行單元208而執行各種算術運算。
此外,執行單元208可以非循序方式執行各指令。因此,在一實施例中,處理器核心106可以是一非循序處理器核心。核心106亦可包含一引退單元210。在提交(commit)了被執行的指令之後,引退單元210可引退該等指令。在一實施例中,被執行的指令之引退可能導致:
處理器狀態被自指令之執行提交;以及該等指令使用的實體暫存器被解除分配等的程序。
核心106亦可包含一匯流排單元214,用以啟動處理器核心106的各組件與其他組件(諸如參照第1圖所述的該等組件)之間經由一或多個匯流排(例如,匯流排104及/或102)的通訊。核心106亦可包含一或多個計數器122,用以儲存核心106的其中包括(參照第1及3-4圖所述的)邏輯120的各組件所存取之資料。
此外,在某些實施例中,邏輯120不只是追蹤應用程式的效能,而且在該應用程式係在該系統中之另一核心被執行時,也(諸如根據該等計數器122中儲存的值而)預測該應用程式的執行及/或電力消耗效能。可將該資訊提供給OS,且該OS可根據諸如電力、效能、能量臨界值、及以上各項的組合等的各種臨界值執行排程。例如,該OS及/或邏輯120可比較所考慮的該等處理器核心之各種執行或電力消耗效能資料,且(根據本發明述及的各種臨界值)作出與哪一核心將提供較佳的執行或電力消耗效能有關之決定。
根據一實施例,可使用一基於簽章(signature)的方法。例如,每一應用程式可在該系統中之一或多個核心上被執行,且應用程式效能統計資料可被儲存在該PHT中。效能統計資料可包括每一指令的週期數(Cycles Per Instruction;簡稱CPI)及每一指令的未命中數(Misses Per Instruction;簡稱MPI)等的效能統計資料。例如,
如樣本表1所示,每一表條目可具有三或四個欄位。第一欄位指示程序識別碼,第二欄位被用來儲存該應用程式在大核心上被執行時的CPI,且最後的欄位儲存該應用程式在小核心上被執行時的效能。當該應用程式的執行環境被切換到另一核心時,邏輯120可取得新資訊,且更新PHT 124。
PHT 124的大小可以是相當小的。例如,如果只使用CPI,則每一條目的位元組數目是儲存該歷史資訊所需的記憶體容量。PHT 124亦可被儲存在該應用程式之程序控制區塊(Process Control Block;簡稱PCB),且/或於該應用程式被排程執行時可被載入另一記憶體(例如,PHT 124、快取記憶體116、記憶體114、或快取記憶體108等)。該方法可被延伸到一程序之外,且可被用於一程序內之各熱點(hotspot)。
如第3圖所示,一旦建立了該PHT之後,每當該應用程式被排程執行時,邏輯120自該PHT讀取資訊,並將提示提供給該OS,以供該OS根據一些預定度量(諸如電力/效能等的度量)而訂出最佳的排程政策。
請參閱第3圖,圖中示出根據一實施例的基於簽章的模型化預測試探法之流程圖。在某些實施例中,可將參照第1-2及5-6圖所述的各組件用來執行參照第3圖所述的一或多個操作。
請參閱第1-3圖,在一操作302中,於環境切換(context switch)時,(諸如自一程序控制區塊或本發明述及的另一位置)載入應用程式。在一操作304中,邏輯120自PHT讀取資訊。在操作306中,根據該PHT資訊而決定該程序是對一大處理器核心或小處理器核心(諸如在效能或電力消耗上)是最佳的。然後在操作308中,(於根據諸如邏輯120決定的電力消耗及/或效能考慮的一實施例中)將該資訊傳送到OS。在一操作310中,邏輯120(諸如根據操作306中之該最新決定)收集進一步的歷史資訊,且更新該PHT資訊。
請參閱第4圖,圖中示出根據一實施例的基於效能的模型化預測試探法之流程圖。在某些實施例中,可將參照第1-2及5-6圖所述的各組件用來執行參照第4圖所述的一或多個操作。
請參閱第1-2及4圖,在一操作402中,於環境切換時,(諸如自一程序控制區塊或本發明述及的另一位置)載入應用程式。在一操作404中,邏輯120讀取效能計數器(諸如計數器122)中儲存之值。在操作406中,根據該效能計數器資訊而決定該程序是對一大處理器核心或小處理器核心(諸如在效能或電力消耗上)是最佳的。然後
在操作408中,(於根據諸如邏輯120決定的電力消耗及/或效能考慮的一實施例中)將該資訊傳送到OS。在一操作410中,邏輯120(諸如根據操作406中之該最新決定)收集進一步的歷史資訊,且更新該效能計數器(諸如計數器122)。
在一基於效能計數器之方法中,根據某些實施例,可使用一動態模型,該動態模型可在一應用程式正在一大核心上被執行時有效地預測該應用程式在一小核心上之效能,且可作反向的預測。該方法使用效能計數器(諸如計數器122),且根據下列方程式而預測效能:小核心中之週期數=((大核心中之週期數-大核心中之停頓週期數)*小核心之發出寬度/大核心之發出寬度*乘法因子)+(大核心中之L1未命中*小核心之L1未命中損失)+(大核心中之L2未命中*小核心之L2未命中損失)
在一實施例中,可根據L2未命中以及載入/儲存指令的數目而以經驗方式推導出該乘法因子。在某些實施例中,大核心可具有數目為小核心所具有的兩倍之載入/儲存單元。此外,在某些實施例中,由於缺少在某些工作負載中觀測到的記憶體層級平行性,所以有顯著L2未命中的應用程式可能無法受益於大核心的非循序本質。
大核心中之週期數=((小核心中之週期數-小核心中之停頓週期數)*大核心之發出寬度/小核心之發出寬度)/(1-停頓因子)
可在大核心上執行該等應用程式一次,且收集停頓週
期數及總週期數效能資料,而推導出停頓因子。此外,某些平台可包含各種效能計數器,用以識別由於諸如快取記憶體未命中及浮點停頓等的長延遲時間操作而造成的停頓。這些停頓被用於邏輯120時,再配合諸如被引退的載入/儲存指令及L2未命中計數器等的其他計數器,可協助預測該應用程式若在另一核心上執行時的效能。縱然該等平台中並無特定的記憶體停頓計數器,也可以使用該等平台中之其他停頓計數器估計該等停頓。
關於排程,某些實施例可根據邏輯120提供的效能資訊而將各應用程式對應到大其小核心,其方式如下:(1)對於單一應用程式而言,如果大核心與小核心間之效能比率大於一可程式值,則將該應用程式排程到該大核心;否則,將該應用程式排程到該小核心。該可程式值可被儲存在該核心,且可根據各種電力/效能度量而使用一些機器狀態暫存器(Machine State Register;簡稱MSR)寫入該可程式值;(2)對於多個應用程式而言,諸如有需要被排程的N個應用程式時,將根據該等N個應用程式的大核心與小核心之效能比率而將各應用程式排序。前面N/2個應用程式(例如,具有最大增益的應用程式)被排程到該大核心,且後面N/2個應用程式被排程到該小核心。
在某些實施例中,可使用下列計數器(例如,計數器122)中之一或多個計數器:(1)核心時脈週期:該計數器計算該核心處於
現用狀態而執行指令的週期之數目;(2)被引退的指令:該計數器計算該核心在特定時間樣本期間引退的指令之數目;(3)L2未命中:該計數器計算未命中L2的記憶體參照(memory reference)之數目;(4)排程器停頓:該計數器計算該小核心無法將指令排程的週期之數目(亦可根據該小核心中之L2未命中及L2未命中延遲時間之乘積而推導出該計數);(5)資源停頓:該計數器計算由於諸如保留區(reservation station)等的資源之無法取得或長延遲時間未命中等的因素而導致該大核心停頓的週期之數目;及/或(6)分支停頓:該計數器計算由於分支錯誤預測而損失的週期之總數目。
第5圖示出根據本發明的一實施例的運算系統500之方塊圖。運算系統500可包含經由一互連網路(或匯流排)504而通訊之一或多個中央處理單元(Central Processing Unit;簡稱CPU)502或處理器。該等處理器502可包括一般用途處理器、網路處理器(該網路處理器處理經由一電腦網路503而傳送的資料)、或其他類型的處理器(其中包括精簡指令集電腦(Reduced Instruction Set Computer;簡稱RISC)處理器或複雜指令集電腦(Complex Instruction Set Computer;簡稱CISC)處理器))。此外,處理器502可具有單一或多個核心的設
計。具有多個核心設計之處理器502可將不同類型的處理器核心整合到相同的積體電路(IC)晶粒中。此外,可將有多個核心設計之處理器502實施為對稱式或非對稱式多處理器。在一實施例中,該等處理器502中之一或多個處理器可相同於或類似於第1圖所示之該等處理器102。例如,該等處理器502中之一或多個處理器可包含參照第1-4圖所述之核心106。此外,可以運算系統500的一或多個組件執行參照第1-4圖所述的該等操作。
一晶片組506亦可與互連網路504通訊。晶片組506可包含一記憶體控制中心(Memory Control Hub;簡稱MCH)508。MCH 808可包含與一記憶體512通訊之一記憶體控制器510(記憶體512可相同於或類似於第1圖所示之記憶體114)。記憶體512可儲存可被CPU 502或運算系統500中包含的任何其他裝置執行的其中包括指令序列之資料。在本發明的一實施例中,記憶體512可包括一或多個諸如隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(Synchronous DRAM;簡稱SDRAM)、靜態機存取記憶體(Static RAM;簡稱SRAM)、或其他類型的儲存裝置等的揮發性儲存(或記憶體)裝置。亦可使用諸如硬碟等的非揮發性記憶體。諸如多個CPU及/或多個系統記憶體等的額外之裝置可經由互連網路504而通訊。
MCH 508亦可包含與一顯示裝置516通訊之一圖形介面514。在本發明的一實施例中,圖形介面514可經由一
加速圖形埠(Accelerated Graphics Port;簡稱AGP)而與顯示裝置516通訊。在本發明的一實施例中,顯示裝置516(諸如一平板顯示器)可經由諸如一信號轉換器而與圖形介面514通訊,該信號轉換器將諸如視訊記憶體或系統記憶體等的一儲存裝置中儲存的影像之數位表示法轉換為將被該顯示器516解譯及顯示之顯示信號。該顯示裝置產生的該等顯示信號可先通過各種控制裝置,然後才被顯示器516解譯且隨即在顯示器516上顯示。
一控制中心介面518可讓MCH 508與一輸入/輸出控制中心(Input/output Control Hub;簡稱ICH)520通訊。ICH 520可將一介面提供給與運算系統500通訊之一或多個輸入/輸出(I/O)裝置。ICH 520可經由諸如一周邊組件互連(Peripheral Component Interconnect;簡稱PCI)橋接器、一通用序列匯流排(Universal Serial Bus;簡稱USB)控制器、或其他類型的周邊裝置橋接器或控制器等的一周邊裝置橋接器(或控制器)524而與一匯流排522通訊。橋接器524可提供CPU 502與各周邊裝置間之一資料路徑。可使用其他類型的拓撲。此外,多個匯流排可諸如經由多個橋接器或控制器而與ICH 520通訊。此外,在本發明的各實施例中,與ICH 520通訊的其他周邊裝置可包括一或多個整合式磁碟電子介面(Integrated Drive Electronics;簡稱IDE)或小型電腦系統介面(Small Computer System Interface;簡稱SCSI)硬碟機、一或多個USB埠、一鍵盤、一滑鼠、一或多個
平行埠、一或多個序列埠、一或多個軟碟機、以及數位輸出支援(例如,數位視訊介面(Digital Video Interface;簡稱DVI)、或其他裝置。
匯流排522可與一音訊裝置526、一或多個磁碟機528、以及一網路介面裝置530(該網路介面裝置530係與電腦網路503通訊)。其他裝置亦可經由匯流排522而通訊。此外,在本發明之某些實施例中,各種組件(例如,網路介面裝置530)可與MCH 508通訊。此外,處理器502及MCH 508可被合併,而構成一單晶片。此外,在本發明的其他實施例中,圖形加速器516可被包含在MCH 508中。
此外,運算系統500可包含揮發性及/或非揮發性記憶體(或儲存裝置)。例如,非揮發性記憶體可包括下列各項中之一或多項:唯讀記憶體(Read Only Memory;簡稱ROM)、可程式唯讀記憶體(Programmable ROM;簡稱PROM)、可抹除可程式唯讀記憶體(Erasable PROM;簡稱EPROM)、電氣可抹除可程式唯讀記憶體(Electrically EPROM;簡稱EEPROM)、磁碟機(例如528)、軟碟、唯讀光碟(Compact Disk ROM;簡稱CD-ROM)、數位多功能光碟(Digital Versatile Disk;簡稱DVD)、快閃記憶體、磁光碟、或可儲存電子資料(例如,其中包括指令)的其他類型之非揮發性機器可讀取的媒體。
第6圖示出根據本發明的一實施例而被配置成點對點
(Point-to-Point;簡稱PtP)組態之一運算系統600。第6圖尤其示出以一些點對點介面將處理器、記憶體、及輸入/輸出裝置互連之一系統。系統600的一或多個組件可執行參照第1-5圖所述之該等操作。
如第6圖所示,系統600可包含數個處理器,而為了顧及圖式的清晰,圖中只示出兩個處理器602及604。處理器602及604可分別包含一本地記憶體控制中心(MCH)606及608,用以進行與記憶體610及612間之通訊。記憶體610及/或612可儲存諸如參照第5圖的記憶體512所述之各種資料。
在一實施例中,處理器602及604可以是參照第5圖所述的該等處理器502中之一處理器。處理器602及604可分別使用點對點介面電路616及618而經由一點對點介面614交換資料。此外,處理器602及604可分別使用點對點介面電路626、628、630、及632而經由個別的點對點介面622及624與一晶片組620交換資料。晶片組620可進一步使用諸如一點對點介面電路637以經由一圖形介面636而與一圖形電路634交換資料。
本發明的至少一實施例可提供於處理器602及604內。例如,第1-5圖所示之該等核心106可被設置在處理器602及604內。然而,本發明之其他實施例可在第6圖所示之系統600內存在有其他的電路、邏輯單元、或裝置。此外,本發明的其他實施例可能被分佈了第6圖所示之數個電路、邏輯單元、或裝置。
晶片組620可使用一點對點介面電路641與一匯流排640通訊。匯流排640可與諸如一匯流排橋接器642及一些I/O裝置643等的一或多個裝置通訊。匯流排橋接器642可經由一匯流排644而與諸如一鍵盤/滑鼠645、一些通訊裝置646(例如,可與電腦網路503通訊的數據機、網路介面裝置、或其他通訊裝置)、音訊I/O裝置647、及/或資料儲存裝置648等的其他裝置通訊。資料儲存裝置648可儲存處理器602及/或604可執行的程式碼649。
在本發明之各實施例中,可將本發明參照諸如第1-6圖所述之該等操作實施為硬體(例如,邏輯電路)、軟體、韌體、或以上各項之組合,且可以電腦程式產品之形式提供以上各項或其組合,例如,該電腦程式產品包括儲存了用來將電腦程式化成執行本發明述及的程序的指令(或軟體程序)之(諸如非暫時性)機器可讀取的或電腦可讀取的媒體。該機器可讀取的媒體可包括諸如參照第1-6圖所述之儲存裝置等的儲存裝置。
此外,可以電腦程式產品之形式下載此種電腦可讀取的媒體,其中可經由一通訊鏈路(例如,一匯流排、一數據機、或一網路連接)且利用載波或其他傳播媒介中提供之資料信號而將程式自一遠端電腦(例如,一伺服器)傳輸到提出要求的電腦(例如,一用戶端電腦)。
在本說明書中提及"一個實施例"或"一實施例"時,意指參照該一或多個實施例述及的一特定的特性、結構、或特徵可被包含在至少一實施方式中。在本說明書的各處中
出現詞語"在一實施例中"時,可以或並不會都參照到相同的實施例。
此外,在說明及申請專利範圍中,可使用術語"被耦合"及"被連接"以及其衍生詞。在本發明之某些實施例中,"被連接"可被用來指示兩個或更多個元件相互在實體上或電性上直接接觸。"被耦合"可意指:兩個或更多個元件在實體上或電性上直接接觸。然而,"被耦合"亦可意指:兩個或更多個元件可能沒有相互直接接觸,但仍然可相互配合或作用。
因此,雖然已以與結構特徵及/或方法行動有關的語文說明了本發明之實施例,但是我們應可了解:所申請之專利標的物可不限於本說明書中述及的該等特定的特徵或行動。更確切地說,係以實施所申請之專利標的物之樣本形式揭示該等特定的特徵或行動。
100‧‧‧運算系統
102-1~-102-N‧‧‧處理器
104‧‧‧互連網路
106~106-M‧‧‧處理器核心
108‧‧‧共用式快取記憶體
110‧‧‧路由器
112‧‧‧互連網路
114‧‧‧記憶體
116-1‧‧‧第1階(L1)及/或第2階(L2)快取記憶體
124-1‧‧‧效能歷史表
Claims (4)
- 一種晶片多處理器,包括:複數個異質處理器核心,包含至少一或多個大核心及一或多個小核心,其中該一或多個小核心相較於該一或該些多個大核心具有效能/瓦特優勢;儲存單元,用以當程序在該一或多個大核心上或在該一或多個小核心上執行時,儲存用於該程序的歷史資訊;以及邏輯,用以基於效能及電力臨界值,排程用於在該一或多個大核心之一者,或在該一或多個小核心之一者上執行的該程序;其中,該邏輯係用於提供該歷史資訊至作業系統以排程該程序,且用於更新該歷史資訊。
- 如申請專利範圍第1項之晶片多處理器,其中,該邏輯係回應於環境切換,用於提供該歷史資訊至作業系統且用於更新該歷史資訊。
- 如申請專利範圍第2項之晶片多處理器,其中,該邏輯收集進一步的歷史資訊,以基於收集的資訊更新儲存的該歷史資訊。
- 如申請專利範圍第1項之晶片多處理器,其中,該邏輯係每當該程序被環境切換至其他核心大小時,收集進一步的歷史資訊,以更新儲存的該歷史資訊。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/890,653 US9268611B2 (en) | 2010-09-25 | 2010-09-25 | Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201437828A TW201437828A (zh) | 2014-10-01 |
TWI550413B true TWI550413B (zh) | 2016-09-21 |
Family
ID=45871864
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105119960A TWI603207B (zh) | 2010-09-25 | 2011-09-26 | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 |
TW100134629A TWI450104B (zh) | 2010-09-25 | 2011-09-26 | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 |
TW103120160A TWI550413B (zh) | 2010-09-25 | 2011-09-26 | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105119960A TWI603207B (zh) | 2010-09-25 | 2011-09-26 | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 |
TW100134629A TWI450104B (zh) | 2010-09-25 | 2011-09-26 | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9268611B2 (zh) |
JP (1) | JP5774707B2 (zh) |
KR (2) | KR101561496B1 (zh) |
CN (1) | CN103119580B (zh) |
BR (1) | BR112013006483A2 (zh) |
DE (1) | DE112011103216T5 (zh) |
GB (1) | GB2497449B (zh) |
TW (3) | TWI603207B (zh) |
WO (1) | WO2012040684A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI742964B (zh) * | 2016-12-31 | 2021-10-11 | 美商英特爾股份有限公司 | 用於異質計算之系統,方法,及設備 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8397088B1 (en) | 2009-07-21 | 2013-03-12 | The Research Foundation Of State University Of New York | Apparatus and method for efficient estimation of the energy dissipation of processor based systems |
WO2013162589A1 (en) * | 2012-04-27 | 2013-10-31 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
WO2013178864A1 (en) * | 2012-05-29 | 2013-12-05 | Nokia Corporation | A method and apparatus for deferring processor selection |
WO2013177765A1 (en) | 2012-05-30 | 2013-12-05 | Intel Corporation | Runtime dispatching among heterogeneous group of processors |
KR102001414B1 (ko) | 2012-09-27 | 2019-07-18 | 삼성전자주식회사 | 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법 |
US9037889B2 (en) | 2012-09-28 | 2015-05-19 | Intel Corporation | Apparatus and method for determining the number of execution cores to keep active in a processor |
US9619284B2 (en) | 2012-10-04 | 2017-04-11 | Intel Corporation | Dynamically switching a workload between heterogeneous cores of a processor |
US8949659B2 (en) | 2012-10-18 | 2015-02-03 | International Business Machines Corporation | Scheduling workloads based on detected hardware errors |
CN111522585A (zh) * | 2012-12-28 | 2020-08-11 | 英特尔公司 | 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择 |
US9442559B2 (en) | 2013-03-14 | 2016-09-13 | Intel Corporation | Exploiting process variation in a multicore processor |
US9727345B2 (en) | 2013-03-15 | 2017-08-08 | Intel Corporation | Method for booting a heterogeneous system and presenting a symmetric core view |
KR101553649B1 (ko) | 2013-05-13 | 2015-09-16 | 삼성전자 주식회사 | 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법 |
KR102110812B1 (ko) * | 2013-05-30 | 2020-05-14 | 삼성전자 주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법 |
WO2014204437A2 (en) * | 2013-06-18 | 2014-12-24 | Empire Technology Development Llc | Tracking core-level instruction set capabilities in a chip multiprocessor |
US20150220340A1 (en) * | 2013-10-04 | 2015-08-06 | Rajkishore Barik | Techniques for heterogeneous core assignment |
CN103645954B (zh) * | 2013-11-21 | 2018-12-14 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
CN103646006B (zh) * | 2013-11-26 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种处理器的调度方法、装置和系统 |
JP6260303B2 (ja) | 2014-01-29 | 2018-01-17 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN103942103A (zh) * | 2014-04-16 | 2014-07-23 | 乐视致新电子科技(天津)有限公司 | 多核体系中处理器调度策略的生成方法及装置、调度系统 |
WO2015165045A1 (zh) * | 2014-04-29 | 2015-11-05 | 华为技术有限公司 | 一种功率控制方法及装置 |
KR102197874B1 (ko) | 2014-09-01 | 2021-01-05 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법 |
KR102354848B1 (ko) | 2014-11-28 | 2022-01-21 | 삼성전자주식회사 | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 |
US10101786B2 (en) * | 2014-12-22 | 2018-10-16 | Intel Corporation | Holistic global performance and power management |
US10133602B2 (en) * | 2015-02-19 | 2018-11-20 | Oracle International Corporation | Adaptive contention-aware thread placement for parallel runtime systems |
CN104809078B (zh) * | 2015-04-14 | 2019-05-14 | 苏州中晟宏芯信息科技有限公司 | 基于退出退让机制的共享高速缓存硬件资源访问方法 |
US11003565B2 (en) | 2015-04-21 | 2021-05-11 | Hewlett-Packard Development Company, L.P. | Performance change predictions |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US10303488B2 (en) * | 2016-03-30 | 2019-05-28 | Sony Interactive Entertainment Inc. | Real-time adjustment of application-specific operating parameters for backwards compatibility |
US10296074B2 (en) * | 2016-08-12 | 2019-05-21 | Qualcomm Incorporated | Fine-grained power optimization for heterogeneous parallel constructs |
US11513805B2 (en) * | 2016-08-19 | 2022-11-29 | Wisconsin Alumni Research Foundation | Computer architecture with synergistic heterogeneous processors |
FR3056786B1 (fr) * | 2016-09-29 | 2019-11-22 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procede de gestion des taches de calcul sur un processeur multi-cœurs fonctionnellement asymetrique |
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 |
US11281586B2 (en) | 2017-05-09 | 2022-03-22 | Andes Technology Corporation | Processor and way prediction method thereof |
US10628223B2 (en) * | 2017-08-22 | 2020-04-21 | Amrita Vishwa Vidyapeetham | Optimized allocation of tasks in heterogeneous computing systems |
CN109937410B (zh) * | 2017-10-25 | 2021-02-23 | 华为技术有限公司 | 核心调度方法和终端 |
US11138037B2 (en) | 2017-11-02 | 2021-10-05 | Mediatek Inc. | Switch policy for hybrid scheduling in multi-processor systems |
US10812416B2 (en) * | 2017-12-27 | 2020-10-20 | International Business Machines Corporation | Reduced number of counters for reliable messaging |
US11347679B2 (en) | 2018-02-08 | 2022-05-31 | Alibaba Group Holding Limited | Hybrid system-on-chip for power and performance prediction and control |
CN108664285A (zh) * | 2018-05-10 | 2018-10-16 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
TWI698798B (zh) * | 2018-10-22 | 2020-07-11 | 致茂電子股份有限公司 | 一種多核心運算裝置及其運作方法 |
US10649688B1 (en) * | 2018-11-01 | 2020-05-12 | Intel Corporation | Precise longitudinal monitoring of memory operations |
KR102552954B1 (ko) * | 2018-11-07 | 2023-07-06 | 삼성전자주식회사 | 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 |
GB2583103B (en) * | 2019-04-16 | 2022-11-16 | Siemens Ind Software Inc | Tracing instruction execution |
US11544105B2 (en) * | 2019-09-11 | 2023-01-03 | Google Llc | Recommendations for scheduling jobs on distributed computing devices |
TWI791929B (zh) * | 2019-11-28 | 2023-02-11 | 瑞昱半導體股份有限公司 | 通用分析裝置與方法 |
US20210182194A1 (en) * | 2020-12-26 | 2021-06-17 | Intel Corporation | Processor unit resource exhaustion detection and remediation |
CN113609126B (zh) * | 2021-07-06 | 2022-03-11 | 无锡四维时空信息科技有限公司 | 一种众源时空数据的一体化存储管理方法及系统 |
CN118170503A (zh) * | 2022-12-02 | 2024-06-11 | 华为技术有限公司 | 一种异构处理器及相关调度方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200638267A (en) * | 2005-04-22 | 2006-11-01 | Chi Mei Comm Systems Inc | Method for adjusting CPU speed of an electronic appliance |
TW200703116A (en) * | 2005-07-01 | 2007-01-16 | Hon Hai Prec Ind Co Ltd | Method for estimating CPU power |
US7254812B1 (en) * | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
US20090055826A1 (en) * | 2007-08-21 | 2009-02-26 | Kerry Bernstein | Multicore Processor Having Storage for Core-Specific Operational Data |
US20090055122A1 (en) * | 2007-08-24 | 2009-02-26 | International Business Machines Corportation | On-Chip Frequency Response Measurement |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2683344B1 (fr) * | 1991-10-30 | 1996-09-20 | Bull Sa | Systeme multiprocesseur avec moyens microprogrammes pour la repartition des processus aux processeurs. |
GB2272085A (en) | 1992-10-30 | 1994-05-04 | Tao Systems Ltd | Data processing system and operating system. |
JPH09167141A (ja) | 1995-12-18 | 1997-06-24 | Hitachi Ltd | 負荷分散制御方法 |
US6298370B1 (en) | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US6134675A (en) | 1998-01-14 | 2000-10-17 | Motorola Inc. | Method of testing multi-core processors and multi-core processor testing device |
US6021076A (en) | 1998-07-16 | 2000-02-01 | Rambus Inc | Apparatus and method for thermal regulation in memory subsystems |
US6161188A (en) | 1998-11-17 | 2000-12-12 | Ip-First, L.L.C. | Microprocessor having fuse control and selection of clock multiplier |
US6728892B1 (en) | 1999-09-15 | 2004-04-27 | Koninklijke Philips Electronics N.V. | Method for conserving power in a can microcontroller and a can microcontroller that implements this method |
JP2001175627A (ja) * | 1999-12-21 | 2001-06-29 | Toshiba Corp | 分散処理計算機システム |
US7165257B2 (en) | 2000-02-08 | 2007-01-16 | Mips Technologies, Inc. | Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts |
US7032119B2 (en) | 2000-09-27 | 2006-04-18 | Amphus, Inc. | Dynamic power and workload management for multi-server system |
US20030070013A1 (en) | 2000-10-27 | 2003-04-10 | Daniel Hansson | Method and apparatus for reducing power consumption in a digital processor |
US7140016B2 (en) | 2000-11-29 | 2006-11-21 | Texas Instruments Incorporated | Media accelerator quality of service |
JP3817449B2 (ja) | 2001-07-30 | 2006-09-06 | 株式会社ルネサステクノロジ | データ処理装置 |
EP1306632A1 (en) * | 2001-10-25 | 2003-05-02 | Shell Internationale Researchmaatschappij B.V. | Process for liquefying natural gas and producing liquid hydrocarbons |
US6804632B2 (en) | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US6907548B2 (en) | 2002-01-02 | 2005-06-14 | Intel Corporation | Automatic testing for multi-core architecture |
US20040006729A1 (en) | 2002-07-03 | 2004-01-08 | Pendurkar Rajesh Y. | Hierarchical test methodology for multi-core chips |
KR100498487B1 (ko) | 2003-02-08 | 2005-07-01 | 삼성전자주식회사 | 고속제어회로 및 저속·저전력 제어회로를 구비하는프로세서 |
JP4090908B2 (ja) | 2003-02-21 | 2008-05-28 | シャープ株式会社 | 画像処理装置および画像形成装置 |
DE10313605B4 (de) | 2003-03-26 | 2009-03-19 | Qimonda Ag | Vorrichtung und Verfahren zum Steuern mehrerer Speicherbausteine |
US7093147B2 (en) | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7673784B2 (en) * | 2003-12-09 | 2010-03-09 | Swagelok Company | High production welding fixture |
US7197652B2 (en) | 2003-12-22 | 2007-03-27 | International Business Machines Corporation | Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring |
EP1555595A3 (en) | 2004-01-13 | 2011-11-23 | LG Electronics, Inc. | Apparatus for controlling power of processor having a plurality of cores and control method of the same |
US7984442B2 (en) | 2004-01-29 | 2011-07-19 | Klingman Edwin E | Intelligent memory device multilevel ASCII interpreter |
US20050204346A1 (en) * | 2004-03-09 | 2005-09-15 | Intel Corporation | Using sampling data for program phase detection |
JP3862715B2 (ja) | 2004-06-01 | 2006-12-27 | 株式会社ソニー・コンピュータエンタテインメント | タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム |
JP4197672B2 (ja) | 2004-09-30 | 2008-12-17 | 株式会社東芝 | マルチプロセッサ計算機及びプログラム |
US7788670B2 (en) * | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US20060168571A1 (en) * | 2005-01-27 | 2006-07-27 | International Business Machines Corporation | System and method for optimized task scheduling in a heterogeneous data processing system |
US20060212677A1 (en) | 2005-03-15 | 2006-09-21 | Intel Corporation | Multicore processor having active and inactive execution cores |
CN100527089C (zh) | 2005-04-27 | 2009-08-12 | 松下电器产业株式会社 | 信息处理装置中的功率控制装置 |
JP4367856B2 (ja) | 2005-07-07 | 2009-11-18 | レノボ シンガポール プライヴェート リミテッド | プロセス制御システム及びその制御方法 |
US7694107B2 (en) * | 2005-08-18 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units |
US7412353B2 (en) | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
TW200805047A (en) | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
US20070198981A1 (en) | 2006-02-17 | 2007-08-23 | Jacobs Paul E | System and method for multi-processor application support |
US7596430B2 (en) | 2006-05-03 | 2009-09-29 | International Business Machines Corporation | Selection of processor cores for optimal thermal performance |
US7406407B2 (en) | 2006-06-01 | 2008-07-29 | Microsoft Corporation | Virtual machine for operating N-core application on M-core processor |
US20070294693A1 (en) | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Scheduling thread execution among a plurality of processors based on evaluation of memory access data |
US7493477B2 (en) | 2006-06-30 | 2009-02-17 | Intel Corporation | Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold |
JP2008090546A (ja) | 2006-09-29 | 2008-04-17 | Toshiba Corp | マルチプロセッサシステム |
US7463992B2 (en) | 2006-09-29 | 2008-12-09 | Intel Corporation | Method and system to self-test single and multi-core CPU systems |
US7596714B2 (en) | 2006-11-20 | 2009-09-29 | Intel Corporation | Methods and apparatus to manage throttling in computing environments |
US8819699B2 (en) * | 2006-12-29 | 2014-08-26 | Intel Corporation | Controlling virtual machines based on performance counters |
US8022685B2 (en) | 2007-02-06 | 2011-09-20 | International Business Machines Corporation | Temperature dependent voltage source compensation |
US7865750B2 (en) | 2007-02-06 | 2011-01-04 | International Business Machines Corporation | Fan speed control from adaptive voltage supply |
US7714635B2 (en) | 2007-02-06 | 2010-05-11 | International Business Machines Corporation | Digital adaptive voltage supply |
US7936153B2 (en) | 2007-02-06 | 2011-05-03 | International Business Machines Corporation | On-chip adaptive voltage compensation |
US7895454B2 (en) | 2007-02-06 | 2011-02-22 | International Business Machines Corporation | Instruction dependent dynamic voltage compensation |
US7971035B2 (en) | 2007-02-06 | 2011-06-28 | International Business Machines Corporation | Using temperature data for instruction thread direction |
US8615767B2 (en) | 2007-02-06 | 2013-12-24 | International Business Machines Corporation | Using IR drop data for instruction thread direction |
US7779235B2 (en) * | 2007-02-06 | 2010-08-17 | International Business Machines Corporation | Using performance data for instruction thread direction |
US7560945B2 (en) | 2007-02-06 | 2009-07-14 | International Business Machines Corporation | Integrated circuit failure prediction |
US8161482B1 (en) * | 2007-04-13 | 2012-04-17 | Marvell International Ltd. | Power optimization for multi-core devices |
WO2009002880A1 (en) * | 2007-06-22 | 2008-12-31 | Biofuelbox Corporation | Vessels and methods for synthesis of biofuel |
US7561770B2 (en) * | 2007-07-30 | 2009-07-14 | Hewlett-Packard Development Company, L.P. | Microresonator systems and methods of fabricating the same |
US8001338B2 (en) | 2007-08-21 | 2011-08-16 | Microsoft Corporation | Multi-level DRAM controller to manage access to DRAM |
US8005880B2 (en) | 2007-08-24 | 2011-08-23 | International Business Machines Corporation | Half width counting leading zero circuit |
US8185572B2 (en) | 2007-08-24 | 2012-05-22 | International Business Machines Corporation | Data correction circuit |
US20090210740A1 (en) * | 2008-02-14 | 2009-08-20 | Song Huang | Off-chip access workload characterization methodology for optimizing computing efficiency |
US8332865B2 (en) | 2008-02-21 | 2012-12-11 | International Business Machines Corporation | Adjunct processor load balancing |
US20090288092A1 (en) * | 2008-05-15 | 2009-11-19 | Hiroaki Yamaoka | Systems and Methods for Improving the Reliability of a Multi-Core Processor |
US8276145B2 (en) * | 2008-06-27 | 2012-09-25 | Microsoft Corporation | Protected mode scheduling of operations |
JP2010039923A (ja) * | 2008-08-07 | 2010-02-18 | Hitachi Ltd | 情報処理装置 |
US8661129B2 (en) * | 2008-11-05 | 2014-02-25 | Xerox Corporation | System and method for decentralized job scheduling and distributed execution in a network of multifunction devices |
US8161304B2 (en) | 2009-01-20 | 2012-04-17 | Microsoft Corporation | Power management for large memory subsystems |
US8572581B2 (en) * | 2009-03-26 | 2013-10-29 | Microsoft Corporation | Measurement and reporting of performance event rates |
US8055805B2 (en) | 2009-03-31 | 2011-11-08 | Intel Corporation | Opportunistic improvement of MMIO request handling based on target reporting of space requirements |
JP5091912B2 (ja) * | 2009-05-21 | 2012-12-05 | 株式会社東芝 | マルチコアプロセッサシステム |
US8924975B2 (en) * | 2009-07-23 | 2014-12-30 | Empire Technology Development Llc | Core selection for applications running on multiprocessor systems based on core and application characteristics |
-
2010
- 2010-09-25 US US12/890,653 patent/US9268611B2/en active Active
-
2011
- 2011-09-24 CN CN201180046075.8A patent/CN103119580B/zh not_active Expired - Fee Related
- 2011-09-24 BR BR112013006483A patent/BR112013006483A2/pt not_active Application Discontinuation
- 2011-09-24 KR KR1020137007312A patent/KR101561496B1/ko active IP Right Grant
- 2011-09-24 JP JP2013529449A patent/JP5774707B2/ja not_active Expired - Fee Related
- 2011-09-24 WO PCT/US2011/053177 patent/WO2012040684A2/en active Application Filing
- 2011-09-24 GB GB1303285.9A patent/GB2497449B/en not_active Expired - Fee Related
- 2011-09-24 KR KR1020147024707A patent/KR20140114074A/ko not_active Application Discontinuation
- 2011-09-24 DE DE112011103216T patent/DE112011103216T5/de not_active Withdrawn
- 2011-09-26 TW TW105119960A patent/TWI603207B/zh not_active IP Right Cessation
- 2011-09-26 TW TW100134629A patent/TWI450104B/zh not_active IP Right Cessation
- 2011-09-26 TW TW103120160A patent/TWI550413B/zh not_active IP Right Cessation
-
2016
- 2016-01-13 US US14/995,198 patent/US20160132354A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7254812B1 (en) * | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
TW200638267A (en) * | 2005-04-22 | 2006-11-01 | Chi Mei Comm Systems Inc | Method for adjusting CPU speed of an electronic appliance |
TW200703116A (en) * | 2005-07-01 | 2007-01-16 | Hon Hai Prec Ind Co Ltd | Method for estimating CPU power |
US20090055826A1 (en) * | 2007-08-21 | 2009-02-26 | Kerry Bernstein | Multicore Processor Having Storage for Core-Specific Operational Data |
US20090055122A1 (en) * | 2007-08-24 | 2009-02-26 | International Business Machines Corportation | On-Chip Frequency Response Measurement |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI742964B (zh) * | 2016-12-31 | 2021-10-11 | 美商英特爾股份有限公司 | 用於異質計算之系統,方法,及設備 |
US11416281B2 (en) | 2016-12-31 | 2022-08-16 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
US11693691B2 (en) | 2016-12-31 | 2023-07-04 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
Also Published As
Publication number | Publication date |
---|---|
US20160132354A1 (en) | 2016-05-12 |
DE112011103216T5 (de) | 2013-07-04 |
GB2497449B (en) | 2019-02-20 |
BR112013006483A2 (pt) | 2016-07-26 |
WO2012040684A2 (en) | 2012-03-29 |
GB2497449A (en) | 2013-06-12 |
KR20140114074A (ko) | 2014-09-25 |
US9268611B2 (en) | 2016-02-23 |
US20120079235A1 (en) | 2012-03-29 |
TW201229781A (en) | 2012-07-16 |
WO2012040684A3 (en) | 2012-06-07 |
TW201437828A (zh) | 2014-10-01 |
TW201714103A (en) | 2017-04-16 |
TWI450104B (zh) | 2014-08-21 |
TWI603207B (zh) | 2017-10-21 |
GB201303285D0 (en) | 2013-04-10 |
KR20130062999A (ko) | 2013-06-13 |
CN103119580B (zh) | 2016-08-17 |
CN103119580A (zh) | 2013-05-22 |
JP2013537346A (ja) | 2013-09-30 |
KR101561496B1 (ko) | 2015-10-20 |
JP5774707B2 (ja) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI550413B (zh) | 用於最大預測的效能增益之異質多處理器運算平台中之應用程式排程 | |
Barroso | The price of performance: An economic case for chip multiprocessing | |
US10156884B2 (en) | Local power gate (LPG) interfaces for power-aware operations | |
US9069671B2 (en) | Gather and scatter operations in multi-level memory hierarchy | |
TWI454905B (zh) | 在多核心平台中之受限制的啓動技術 | |
TW201337771A (zh) | 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統 | |
US20170003725A1 (en) | Internal communication interconnect scalability | |
TWI512629B (zh) | 用於表格驅動之多重被動跳脫平台被動熱管理之設備及方法、計算系統及電腦可讀媒體 | |
US8918446B2 (en) | Reducing power consumption in multi-precision floating point multipliers | |
US9684541B2 (en) | Method and apparatus for determining thread execution parallelism | |
JP5881198B2 (ja) | 優先度ベースのインテリジェントプラットフォームの受動的熱管理 | |
Pandey et al. | Performance analysis of intel ivy bridge and intel broadwell microarchitectures using intel vtune amplifier software | |
Bielby | Ultra low power cooperative branch prediction | |
Bouvry et al. | Energy Efficiency and High‐Performance Computing | |
Jacob | The Case for VLIW-CMP as a Building Block for Exascale | |
Desenfans et al. | Design and implementation of a multi-core embedded real-time operating system kernel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |