TWI484329B - 動態核心切換 - Google Patents
動態核心切換 Download PDFInfo
- Publication number
- TWI484329B TWI484329B TW097131838A TW97131838A TWI484329B TW I484329 B TWI484329 B TW I484329B TW 097131838 A TW097131838 A TW 097131838A TW 97131838 A TW97131838 A TW 97131838A TW I484329 B TWI484329 B TW I484329B
- Authority
- TW
- Taiwan
- Prior art keywords
- core
- asymmetric
- module
- application
- asymmetric core
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims description 100
- 230000008859 change Effects 0.000 claims description 45
- 230000007704 transition Effects 0.000 claims description 40
- 239000003292 glue Substances 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 25
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000003466 anti-cipated effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 95
- 238000004590 computer program Methods 0.000 description 61
- 238000010586 diagram Methods 0.000 description 18
- 230000000977 initiatory effect Effects 0.000 description 18
- 238000012544 monitoring process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012508 change request Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000005693 optoelectronics Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000000415 inactivating effect Effects 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000035699 permeability Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Classifications
-
- 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/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- 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/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Telephone Function (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明涉及行動計算裝置,更具體而言係涉及動態地切換行動計算裝置的多核處理系統的核心。
此處所提供的背景描述僅用於概括地呈現本發明的上下文。在本背景部分中所描述的當前署名的發明人的工作,以及不能以其他方式被做為申請時的先前技術的這些描述中的一些方面不能明示或暗示地看作是本發明的先前技術。
諸如行動電話、MP3播放器、全球定位系統(GPS)裝置等之類的行動計算裝置通常是用線路電力和電池電力兩者來供電的。行動計算裝置通常包括處理器、記憶體和顯示裝置,它們在操作期間會消耗電力。處理器一般執行較不處理密集的簡單應用,也執行較為處理密集的複雜應用。因此,處理器的諸如處理速度之類的能力通常被選擇以符合將會執行的最高處理密集的應用的性能要求。
行動計算裝置的一個顯著限制係涉及裝置在不進行再充電的情況下利用電池可操作的時間量。使用符合處理密集型應用的性能要求的高速處理器一般會增大電力消耗,這對應著相對較短的電池壽命。
現在參考圖1A和圖1B,一些桌上型電腦和膝上型電腦使用多個處理器積體電路(IC)或者具有多個核心的單一處理器IC。這些系統可為不同類型。此處所使用的術語「處理器」用來代表具有一個或多個處理核心的IC。多核處理器指的是具有兩個或更多個處理核心的IC、系統單晶片(SOC)或系統級封裝(SIP)。
在圖1A中,表示了包括主處理器2和一個或多個次處理器3的非對稱多處理器(MP)系統1。非對稱MP系統1也可被實現為具有主核心和次核心的單一IC或SOC。主處理器2具有與次處理器3不同的指令集架構(ISA)。作業系統(OS)可在主處理器2上運作。應用可在次處理器3上運作。次處理器3不運作OS的線程,並且對於OS排程器來說可能是不可見的。與即
時OS(RTOS)的OS驅動器介面可在次處理器3上運作。關鍵功能可被卸載到次處理器3,以節約電力並減小主處理器2的工作週期。僅為示例,非對稱MP系統1可用於專用處理(例如,視訊、3D圖形等)。由於在應用被執行時除了主處理器2之外次處理器3也可運作,因此非對稱MP系統1可能消耗大量電力。
在圖1B中,對稱MP系統5可包括N個相同的處理器,其中N是大於1的整數。對稱MP系統5也可實現為具有N個相同核心的單一IC或SOC。N可與對稱MP系統5的處理負載成比例。該N個處理器使用相同的ISA。該N個處理器對於OS排程器來說可為可見的。該N個處理器對包括記憶體和輸入/輸出(I/O)的系統資源可具有透通的存取。取決於處理負載,該N個處理器中的一個或多個可用於執行應用。對稱MP系統5的高成本和高電力消耗傾向使得這種架構不適合於較低成本的行動裝置。
一種系統包括第一非對稱核心、第二非對稱核心和核心切換模組。第一非對稱核心在系統於第一模式中操作時執行應用,並且在系統於第二模式中操作時不活動。第二非對稱核心在系統於第二模式中操作時執行應用。核心切換模組在第一模式和第二模式之間切換系統的操作。核心切換模組在接收到第一控制信號後選擇性地停止第一非對稱核心對應用的處理。核心切換模組將第一非對稱核心的第一狀態轉移到第二非對稱核心。第二非對稱核心在第二模式中繼續執行應用。
在另一特徵中,第一控制信號指示中斷是失能的。
在另一特徵中,當第二非對稱核心在第二模式期間繼續執行應用時,第二非對稱核心在沒有指令轉換的情況下執行指令。
在其他特徵中,該系統進一步包括向應用提供服務的OS。核心切換模組對OS透通地在第一非對稱核心和第二非對稱核心之間切換應用的執行。
在其他特徵中,第一非對稱核心的第一最大速度大於第二非對稱核心的第二最大速度。第一非對稱核心以大於預定頻率的頻率來操作。第二非對稱核心以小於預定頻率的頻率來操作。第一非對稱核心的第一最大操作
功率級別大於第二非對稱核心的第二最大操作功率級別。
在其他特徵中,第一非對稱核心使用第一ISA。第二非對稱核心使用第二ISA。第一ISA與第二ISA相容。第一ISA的第一指令集是第二ISA的第二指令集的超集。第一集包括較第二集更多的指令。
在其他特徵中,OS包括系統核心。核心切換模組在系統核心的級別之上來執行。
在其他特徵中,該系統進一步包括監管器模組。核心切換模組與監管器模組集成。
在其他特徵中,當核心切換模組選擇性地停止第一非對稱核心對應用的處理時,核心切換模組儲存第一狀態。核心切換模組對第二非對稱核心加電並利用第一狀態來初始化第二非對稱核心。在第二非對稱核心繼續執行應用之後,中斷被致能。當第二非對稱核心加電時,核心切換模組關閉第一非對稱核心。在第一非對稱核心被關閉之後,不向第一非對稱核心提供電力,或向第一非對稱核心提供待機電力。
在其他特徵中,該系統進一步包括與第一非對稱核心通信的第2級(L2)快取。在第一非對稱核心被關閉之後,不向L2快取提供電力,或向L2快取提供待機電力。
在其他特徵中,當第二非對稱核心未能加電時,核心切換模組利用第一狀態來初始化第一非對稱核心。第一非對稱核心在第一模式中繼續執行應用並且中斷被致能。
在其他特徵中,核心切換模組在第二模式和第一模式之間切換系統的操作。核心切換模組在接收到第一控制信號之後選擇性地停止第二非對稱核心對應用的處理。核心切換模組將第二非對稱核心的第二狀態轉移到第一非對稱核心。第一非對稱核心在第一模式中繼續執行應用。第一控制信號指示出中斷是失能的。
在另一特徵中,當第一非對稱核心在第一模式期間繼續執行應用時,指令是在沒有指令轉換的情況下被執行的。
在其他特徵中,該系統進一步包括向應用提供服務的OS。核心切換模組對OS透通地在第二非對稱核心和第一非對稱核心之間切換應用的執行。
在其他特徵中,當核心切換模組選擇性地停止第二非對稱核心對應用的處理時,核心切換模組儲存第二狀態。核心切換模組對第一非對稱核心加電並利用第二狀態來初始化第一非對稱核心。在第一非對稱核心繼續執行應用之後,中斷被致能。
在其他特徵中,該系統進一步包括與第一非對稱核心通信的L2快取。在第一非對稱核心加電之後,向L2快取提供電力。
在其他特徵中,當第一非對稱核心加電時,核心切換模組關閉第二非對稱核心。在第二非對稱核心被關閉之後,不向第二非對稱核心提供電力,或向第二非對稱核心提供待機電力。
在其他特徵中,當第一非對稱核心未能加電時,核心切換模組利用第二狀態來初始化第二非對稱核心。第二非對稱核心在第二模式中繼續執行應用,並且中斷被致能。
在另一特徵中,該系統進一步包括核心簡檔模組,其根據核心利用率、資源利用率、和應用的性能的至少其中之一來產生第二控制信號。
在其他特徵中,該系統進一步包括核心改變序列(CCS)模組,其根據第二控制信號來啟動CCS。核心切換模組根據CCS在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行。
在其他特徵中,CCS模組在應用對第二非對稱核心的核心利用率大於或等於第一預定閾值時啟動CCS。CCS模組在應用對第二非對稱核心的核心利用率大於或等於第二預定閾值達到第一預定時段時啟動CCS。CCS模組在第二非對稱核心的預期核心利用率大於或等於第三預定閾值時啟動CCS。預期核心利用率是根據應用的類型和應用的執行歷史的至少其中之一來確定的。CCS模組在應用對第一非對稱核心的核心利用率小於或等於第四預定閾值時啟動CCS。CCS模組在應用對第一非對稱核心的核心利用率小於或等於第五預定閾值達到第二預定時段時啟動CCS。
在另一特徵中,CCS模組根據第一非對稱核心和第二非對稱核心的其中之一所執行的應用的類型、應用的數目和指令的類型的至少其中之一來啟動CCS。
在另一特徵中,核心簡檔模組根據在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行的次數來產生第二控制信號。
在其他特徵中,該系統進一步包括電力控制模組,其控制系統的電力消耗,並且根據第二控制信號和電力消耗來產生第三控制信號。該系統進一步包括CCS模組,其根據第三控制信號來啟動CCS。核心切換模組根據CCS在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行。
在另一特徵中,該系統進一步包括頻率改變序列(FCS)模組,其根據第二控制信號來啟動FCS,並且根據FCS來選擇第一非對稱核心和第二非對稱核心的至少其中之一的操作頻率。
在另一特徵中,該系統進一步包括電壓改變序列(VCS)模組,其根據第二控制信號來啟動VCS,並且根據VCS來選擇第一非對稱核心和第二非對稱核心的至少其中之一的供電電壓。
在另一特徵中,該系統進一步包括電力管理模組,其當系統在第一模式和第二模式之間切換操作時失能中斷,並且當系統在第二模式和第一模式之間切換操作時失能中斷。
在其他特徵中,該系統進一步包括複數個第一非對稱核心。當系統在第一模式中操作時,核心切換模組根據CCS來選擇性地啟動和解除啟動一個以上的該複數個第一非對稱核心。
在另一特徵中,該系統進一步包括膠合邏輯模組,其選擇性地與核心切換模組通信、接收中斷、接收來自應用的第一信號、並將中斷和第一信號路由發送到第一非對稱核心和第二非對稱核心中由核心切換模組啟動的那一個。
在另一特徵中,一種SOC包括該系統。
在另一特徵中,一種SIP包括該系統。
在其他特徵中,一種方法包括當在第一模式中操作時利用第一非對稱核心來執行應用。當在第二模式中操作時,第一非對稱核心不活動。該方法進一步包括利用核心切換模組在第一模式和第二模式之間切換操作。該
方法進一步包括在接收到第一控制信號後利用核心切換模組選擇性地停止第一非對稱核心對應用的處理。該方法進一步包括利用核心切換模組將第一非對稱核心的第一狀態轉移到第二非對稱核心,並且利用第二非對稱核心在第二模式中繼續執行應用。
在另一特徵中,該方法進一步包括使中斷失能並經由第一控制信號指示出中斷是失能的。
在另一特徵中,該方法進一步包括當第二非對稱核心在第二模式期間繼續執行應用時,在沒有指令轉換的情況下執行指令。
在另一特徵中,該方法進一步包括經由OS向應用提供服務,並且利用核心切換模組來對OS透通地在第一非對稱核心和第二非對稱核心之間切換應用的執行。
在其他特徵中,該方法進一步包括以第一最大速度選擇性地操作第一非對稱核心,以及以第二最大速度選擇性地操作第二非對稱核心。第一最大速度大於第二最大速度。該方法進一步包括以第一最大操作功率級別選擇性地操作第一非對稱核心,以及以第二最大操作功率級別選擇性地操作第二非對稱核心。第一最大操作功率級別大於第二最大操作功率級別。該方法進一步包括以大於預定頻率的頻率選擇性地操作第一非對稱核心,以及以小於預定頻率的頻率選擇性地操作第二非對稱核心。
在其他特徵中,該方法進一步包括利用第一ISA來操作第一非對稱核心,以及利用第二ISA來操作第二非對稱核心。第一ISA與第二ISA相容。該方法進一步包括利用第一ISA的第一指令集來操作第一非對稱核心,以及利用第二ISA的第二指令集來操作第二非對稱核心。第一集是第二集的超集。第一集包括較第二集更多的指令。
在另一特徵中,該方法進一步包括提供OS的系統核心,並且在系統核心的級別之上執行核心切換模組。
在另一特徵中,該方法進一步包括提供一監管器模組,並將核心切換模組與監管器模組集成。
在其他特徵中,該方法進一步包括在核心切換模組選擇性停止第一非對稱核心對應用的處理時,儲存第一狀態。該方法進一步包括對第二非對
稱核心加電並利用第一狀態來初始化第二非對稱核心。該方法進一步包括在第二非對稱核心繼續執行應用之後,致能中斷。該方法進一步包括在第二非對稱核心加電時關閉第一非對稱核心,並且在第一非對稱核心被關閉之後,不向第一非對稱核心提供電力,或向第一非對稱核心提供待機電力。
在其他特徵中,該方法進一步包括提供一L2快取。當第一非對稱核心活動時,第一非對稱核心與L2快取通信。該方法進一步包括在第一非對稱核心被關閉之後,不向L2快取提供電力,或向L2快取提供待機電力。
在另一特徵中,該方法進一步包括在第二非對稱核心未能加電時利用第一狀態來初始化第一非對稱核心,利用第一非對稱核心在第一模式中繼續執行應用,並且致能中斷。
在另一特徵中,該方法進一步包括利用核心切換模組在第二模式和第一模式之間切換操作,在接收到指示出中斷失能的第一控制信號之後利用核心切換模組選擇性地停止第二非對稱核心對應用的處理,利用核心切換模組將第二非對稱核心的第二狀態轉移到第一非對稱核心,並且利用第一非對稱核心在第一模式中繼續執行應用。
在另一特徵中,該方法進一步包括當第一非對稱核心在第一模式期間繼續執行應用時,在沒有指令轉換的情況下執行指令。
在另一特徵中,該方法進一步包括經由OS向應用提供服務,並且利用核心切換模組對OS透通地在第二非對稱核心和第一非對稱核心之間切換應用的執行。
在其他特徵中,該方法進一步包括在核心切換模組選擇性地停止第二非對稱核心對應用的處理時,儲存第二狀態。該方法進一步包括對第一非對稱核心加電並利用第二狀態來初始化第一非對稱核心。該方法進一步包括在第一非對稱核心繼續執行應用之後,致能中斷。
在其他特徵中,該方法進一步包括提供一L2快取。當第一非對稱核心活動時,第一非對稱核心與L2快取通信。該方法進一步包括在第一非對稱核心加電之後,向L2快取提供電力。
在其他特徵中,該方法進一步包括在第一非對稱核心加電時關閉第二非對稱核心,並且在第二非對稱核心被關閉之後,不向第二非對稱核心提
供電力,或向第二非對稱核心提供待機電力。
在另一特徵中,該方法進一步包括在第一非對稱核心未能加電時,利用第二狀態來初始化第二非對稱核心,利用第二非對稱核心在第二模式中繼續執行應用,並且致能中斷。
在另一特徵中,該方法進一步包括根據應用的核心利用率、資源利用率和性能的至少其中之一來產生第二控制信號。
在另一特徵中,該方法進一步包括根據第二控制信號來起始CCS,並且利用核心切換模組根據CCS在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行。
在其他特徵中,該方法進一步包括在應用對第二非對稱核心的核心利用率大於或等於第一預定閾值時啟動CCS。該方法進一步包括在應用對第二非對稱核心的核心利用率大於或等於第二預定閾值達到第一預定時段時起始CCS。該方法進一步包括在應用對第一非對稱核心的核心利用率小於或等於第三預定閾值時起始CCS。該方法進一步包括在應用對第一非對稱核心的核心利用率小於或等於第四預定閾值達到第一預定時段時起始CCS。
在另一特徵中,該方法進一步包括根據應用的類型和應用的執行歷史的至少其中之一來確定預期核心利用率,並且在第二非對稱核心的預期核心利用率大於或等於預定閾值時起始CCS。
在另一特徵中,該方法進一步包括根據第一非對稱核心和第二非對稱核心的其中之一所執行的應用的數目、第一非對稱核心和第二非對稱核心的其中之一所執行的應用的類型、以及第一非對稱核心和第二非對稱核心的其中之一所執行的指令的類型來起始CCS。
在另一特徵中,該方法進一步包括根據在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行的次數來產生第二控制信號。
在另一特徵中,該方法進一步包括控制電力消耗,根據第二控制信號和電力消耗來產生第三控制信號,根據第三控制信號來起始CCS,並且利
用核心切換模組根據CCS在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行。
在另一特徵中,該方法進一步包括根據第二控制信號來起始FCS,並且根據FCS來選擇第一非對稱核心和第二非對稱核心的至少其中之一的操作頻率。
在另一特徵中,該方法進一步包括根據第二控制信號來起始VCS,並且根據VCS來選擇第一非對稱核心和第二非對稱核心的至少其中之一的供電電壓。
在另一特徵中,該方法進一步包括提供複數個第一非對稱核心,並且利用核心切換模組,當在第一模式中操作時,根據CCS來選擇性地啟動和解除啟動一個以上的該複數個第一非對稱核心。
在另一特徵中,該方法進一步包括提供一膠合邏輯模組、利用膠合邏輯模組選擇性地與核心切換模組通信、經由膠合邏輯模組接收中斷、經由膠合邏輯模組接收來自應用的第一信號、並且利用膠合邏輯模組將中斷和第一信號路由發送到第一非對稱核心和第二非對稱核心中由核心切換模組啟動的那一個。
在另一特徵中,該方法進一步包括在SOC和SIP的其中之一提供第一非對稱核心和第二非對稱核心以及核心切換模組。
在其他特徵中,一種系統包括第一核心裝置,用於當系統在第一模式中操作時執行應用。第一非對稱核心裝置當系統在第二模式中操作時不活動。該系統進一步包括第二非對稱核心裝置,用於當系統在第二模式中操作時執行應用。該系統進一步包括核心切換裝置,用於在第一模式和第二模式之間切換操作。核心切換裝置在接收到第一控制信號後選擇性地停止第一非對稱核心裝置對應用的處理。核心切換裝置將第一非對稱核心裝置的第一狀態轉移到第二非對稱核心裝置。第二非對稱核心裝置在第二模式中繼續執行應用。
在另一特徵中,第一控制信號指示中斷是失能的。
在另一特徵中,當第二非對稱核心裝置在第二模式期間繼續執行應用時,第二非對稱核心裝置在沒有指令轉換的情況下執行指令。
在其他特徵中,該系統進一步包括向應用提供服務的OS。核心切換裝置對OS透通地在第一非對稱核心裝置和第二非對稱核心裝置之間切換應用的執行。
在其他特徵中,第一非對稱核心裝置的第一最大速度大於第二非對稱核心裝置的第二最大速度。第一非對稱核心裝置以大於預定頻率的頻率來操作。第二非對稱核心裝置以小於預定頻率的頻率來操作。第一非對稱核心裝置的第一最大操作功率級別大於第二非對稱核心裝置的第二最大操作功率級別。
在其他特徵中,第一非對稱核心裝置使用第一ISA。第二非對稱核心裝置使用第二ISA。第一ISA與第二ISA相容。第一ISA的第一指令集是第二ISA的第二指令集的超集。第一集包括較第二集更多的指令。
在其他特徵中,OS包括系統核心。核心切換裝置在系統核心的級別之上執行。
在其他特徵中,該系統進一步包括用於切換核心的監管器裝置。核心切換裝置與監管器裝置集成。
在其他特徵中,當核心切換裝置選擇性地停止第一非對稱核心裝置對應用的處理時,核心切換裝置儲存第一狀態。核心切換裝置對第二非對稱核心裝置加電並利用第一狀態來初始化第二非對稱核心裝置。在第二非對稱核心裝置繼續執行應用之後,中斷被致能。當第二非對稱核心裝置加電時,核心切換裝置關閉第一非對稱核心裝置。在第一非對稱核心裝置關閉之後,不向第一非對稱核心裝置提供電力,或向第一非對稱核心裝置提供待機電力。
在其他特徵中,該系統進一步包括L2快取裝置,用於快取第一非對稱核心裝置的指令和資料。在第一非對稱核心裝置關閉之後,不向L2快取裝置提供電力,或向L2快取裝置提供待機電力。
在其他特徵中,當第二非對稱核心裝置未能加電時,核心切換裝置利用第一狀態來初始化第一非對稱核心裝置。第一非對稱核心裝置在第一模式中繼續執行應用並且中斷被致能。
在其他特徵中,核心切換裝置在第二模式和第一模式之間切換系統的
操作。核心切換裝置在接收到指示中斷失能的第一控制信號之後選擇性地停止第二非對稱核心裝置對應用的處理。核心切換裝置將第二非對稱核心裝置的第二狀態轉移到第一非對稱核心裝置。第一非對稱核心裝置在第一模式中繼續執行應用。
在另一特徵中,當第一非對稱核心裝置在第一模式期間繼續執行應用時,指令是在沒有指令轉換的情況下被執行的。
在其他特徵中,該系統進一步包括向應用提供服務的OS。核心切換裝置對OS透通地在第二非對稱核心裝置和第一非對稱核心裝置之間切換應用的執行。
在其他特徵中,當核心切換裝置選擇性地停止第二非對稱核心裝置對應用的處理時,核心切換裝置儲存第二狀態。核心切換裝置對第一非對稱核心裝置加電並利用第二狀態來初始化第一非對稱核心裝置。在第一非對稱核心裝置繼續執行應用之後,中斷被致能。
在其他特徵中,該系統進一步包括L2快取裝置,用於快取第一非對稱核心裝置的指令和資料。在第一非對稱核心裝置加電之後,向L2快取裝置提供電力。
在其他特徵中,當第一非對稱核心裝置加電時,核心切換裝置關閉第二非對稱核心裝置。在第二非對稱核心裝置被關閉之後,不向第二非對稱核心裝置提供電力,或向第二非對稱核心裝置提供待機電力。
在其他特徵中,當第一非對稱核心裝置未能加電時,核心切換裝置利用第二狀態來初始化第二非對稱核心裝置。第二非對稱核心裝置在第二模式中繼續執行應用,並且中斷被致能。
在另一特徵中,該系統進一步包括核心簡檔裝置,用於根據核心利用率、資源利用率、和應用的性能的至少其中之一來產生第二控制信號。
在其他特徵中,該系統進一步包括CCS裝置,用於根據第二控制信號來起始CCS。核心切換裝置根據CCS在第一非對稱核心裝置和第二非對稱核心裝置的其中之一與第一非對稱核心裝置和第二非對稱核心裝置中的另一個之間,切換應用的執行。
在其他特徵中,CCS裝置在應用對第二非對稱核心裝置的核心利用率
大於或等於第一預定閾值時起始CCS。CCS裝置在應用對第二非對稱核心裝置的核心利用率大於或等於第二預定閾值達到第一預定時段時起始CCS。CCS裝置在第二非對稱核心裝置的預期核心利用率大於或等於第三預定閾值時起始CCS。預期核心利用率是根據應用的類型和應用的執行歷史的至少其中之一來確定的。CCS裝置在應用對第一非對稱核心裝置的核心利用率小於或等於第四預定閾值時起始CCS。CCS裝置在應用對第一非對稱核心裝置的核心利用率小於或等於第五預定閾值達到第二預定時段時起始CCS。
在另一特徵中,CCS裝置根據第一非對稱核心裝置和第二非對稱核心裝置的其中之一所執行的應用的類型、應用的數目和指令的類型的至少其中之一來起始CCS。
在另一特徵中,核心簡檔裝置根據在第一非對稱核心裝置和第二非對稱核心裝置的其中之一與第一非對稱核心裝置和第二非對稱核心裝置中的另一個之間,切換應用的執行的次數來產生第二控制信號。
在其他特徵中,該系統進一步包括電力控制裝置,用於控制系統的電力消耗,並且用於根據第二控制信號和電力消耗來產生第三控制信號。該系統進一步包括CCS裝置,其根據第三控制信號來起始CCS。核心切換裝置根據CCS在第一非對稱核心裝置和第二非對稱核心裝置的其中之一與第一非對稱核心裝置和第二非對稱核心裝置中的另一個之間,切換應用的執行。
在另一特徵中,該系統進一步包括FCS裝置,用於根據第二控制信號來起始FCS,並且用於根據FCS來選擇第一非對稱核心裝置和第二非對稱核心裝置的至少其中之一的操作頻率。
在另一特徵中,該系統進一步包括VCS裝置,用於根據第二控制信號來起始VCS,並且根據VCS來選擇第一非對稱核心裝置和第二非對稱核心裝置的至少其中之一的供電電壓。
在另一特徵中,該系統進一步包括電力管理裝置,用於在系統在第一模式和第二模式之間切換操作時使中斷失能,並且用於在系統在第二模式和第一模式之間切換操作時使中斷失能。
在其他特徵中,該系統進一步包括複數個第一非對稱核心裝置。當系統在第一模式中操作時,核心切換裝置根據CCS來選擇性地啟動和解除啟動一個以上的該複數個第一非對稱核心裝置。
在其他特徵中,該系統進一步包括膠合邏輯裝置,用於選擇性地與核心切換裝置通信。膠合邏輯裝置接收中斷、接收來自應用的第一信號、並將中斷和第一信號路由發送到第一非對稱核心裝置和第二非對稱核心裝置中由核心切換裝置啟動的那一個。
在另一特徵中,一種SOC包括該系統。
在另一特徵中,一種SIP包括該系統。
在其他特徵中,一種儲存在電腦可讀媒體上並由處理器所執行的電腦程式包括當在第一模式中操作時利用第一非對稱核心來執行應用。當在第二模式中操作時,第一非對稱核心不活動。該電腦程式進一步包括利用核心切換模組在第一模式和第二模式之間切換操作。該電腦程式進一步包括在接收到第一控制信號後利用核心切換模組選擇性地停止第一非對稱核心對應用的處理。該電腦程式進一步包括利用核心切換模組將第一非對稱核心的第一狀態轉移到第二非對稱核心,並且利用第二非對稱核心在第二模式中繼續執行應用。
在另一特徵中,該電腦程式進一步包括使中斷失能並經由第一控制信號指示出中斷是失能的。
在另一特徵中,該電腦程式進一步包括當第二非對稱核心在第二模式期間繼續執行應用時,在沒有指令轉換的情況下執行指令。
在另一特徵中,該電腦程式進一步包括經由OS向應用提供服務,並且利用核心切換模組來對OS透通地在第一非對稱核心和第二非對稱核心之間切換應用的執行。
在其他特徵中,該電腦程式進一步包括以第一最大速度選擇性地操作第一非對稱核心,以及以第二最大速度選擇性地操作第二非對稱核心。第一最大速度大於第二最大速度。該電腦程式進一步包括以第一最大操作功率級別選擇性地操作第一非對稱核心,以及以第二最大操作功率級別選擇性地操作第二非對稱核心。第一最大操作功率級別大於第二最大操作功率
級別。該電腦程式進一步包括以大於預定頻率的頻率選擇性地操作第一非對稱核心,以及以小於預定頻率的頻率選擇性地操作第二非對稱核心。
在其他特徵中,該電腦程式進一步包括利用第一ISA來操作第一非對稱核心,以及利用第二ISA來操作第二非對稱核心。第一ISA與第二ISA相容。該電腦程式進一步包括利用第一ISA的第一指令集來操作第一非對稱核心,以及利用第二ISA的第二指令集來操作第二非對稱核心。第一集是第二集的超集。第一集包括較第二集更多的指令。
在另一特徵中,該電腦程式進一步包括提供OS的系統核心,並且在系統核心的級別之上執行核心切換模組。
在另一特徵中,該電腦程式進一步包括提供一監管器模組,並將核心切換模組與監管器模組集成。
在其他特徵中,該電腦程式進一步包括在核心切換模組選擇性地停止第一非對稱核心對應用的處理時,儲存第一狀態。該電腦程式進一步包括對第二非對稱核心加電並利用第一狀態來初始化第二非對稱核心。該電腦程式進一步包括在第二非對稱核心繼續執行應用之後,致能中斷。該電腦程式進一步包括在第二非對稱核心加電時關閉第一非對稱核心,並且在第一非對稱核心關閉之後,不向第一非對稱核心提供電力,或者向第一非對稱核心提供待機電力。
在其他特徵中,該電腦程式進一步包括提供一L2快取。當第一非對稱核心活動時,第一非對稱核心與L2快取通信。該電腦程式進一步包括在第一非對稱核心關閉之後,不向L2快取提供電力,或者向L2快取提供待機電力。
在另一特徵中,該電腦程式進一步包括在第二非對稱核心未能加電時利用第一狀態來初始化第一非對稱核心,利用第一非對稱核心在第一模式中繼續執行應用,並且致能中斷。
在另一特徵中,該電腦程式進一步包括利用核心切換模組在第二模式和第一模式之間切換操作、在接收到指示出中斷失能的第一控制信號之後利用核心切換模組選擇性地停止第二非對稱核心對應用的處理、利用核心切換模組將第二非對稱核心的第二狀態轉移到第一非對稱核心、並且別用第一非對稱核心在第一模式中繼續執行應用。
在另一特徵中,該電腦程式進一步包括當第一非對稱核心在第一模式期間繼續執行應用時,在沒有指令轉換的情況下執行指令。
在另一特徵中,該電腦程式進一步包括經由OS向應用提供服務,並且利用核心切換模組對OS透通地在第二非對稱核心和第一非對稱核心之間切換應用的執行。
在其他特徵中,該電腦程式進一步包括在核心切換模組選擇性地停止第二非對稱核心對應用的處理時,儲存第二狀態。該電腦程式進一步包括對第一非對稱核心加電並利用第二狀態來初始化第一非對稱核心。該電腦程式進一步包括在第一非對稱核心繼續執行應用之後,致能中斷。
在其他特徵中,該電腦程式進一步包括提供一L2快取。當第一非對稱核心活動時,第一非對稱核心與L2快取通信。該電腦程式進一步包括在第一非對稱核心加電之後,向L2快取提供電力。
在其他特徵中,該電腦程式進一步包括在第一非對稱核心加電時關閉第二非對稱核心,並且在第二非對稱核心關閉之後,不向第二非對稱核心提供電力,或者向第二非對稱核心提供待機電力。
在另一特徵中,該電腦程式進一步包括在第一非對稱核心未能加電時,利用第二狀態來初始化第二非對稱核心,利用第二非對稱核心在第二模式中繼續執行應用,並且致能中斷。
在另一特徵中,該電腦程式進一步包括根據核心利用率、資源利用率、和應用的性能的至少其中之一來產生第二控制信號。
在另一特徵中,該電腦程式進一步包括根據第二控制信號來起始CCS,並且利用核心切換模組根據CCS在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行。
在其他特徵中,該電腦程式進一步包括在應用對第二非對稱核心的核心利用率大於或等於第一預定閾值時起始CCS。該電腦程式進一步包括在應用對第二非對稱核心的核心利用率大於或等於第二預定閾值並持續第一預定時段時起始CCS。該電腦程式進一步包括在應用對第一非對稱核心的核心利用率小於或等於第三預定閾值時起始CCS。該電腦程式進一步包括
在應用對第一非對稱核心的核心利用率小於或等於第四預定閾值並持續第一預定時段時起始CCS。
在另一特徵中,該電腦程式進一步包括根據應用的類型和應用的執行歷史的至少其中之一來確定預期核心利用率,並且在第二非對稱核心的預期核心利用率大於或等於預定閾值時起始CCS。
在另一特徵中,該電腦程式進一步包括根據第一非對稱核心和第二非對稱核心的其中之一所執行的應用的數目、第一非對稱核心和第二非對稱核心的其中之一所執行的應用的類型、以及第一非對稱核心和第二非對稱核心的其中之一所執行的指令的類型來起始CCS。
在另一特徵中,該電腦程式進一步包括根據在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行的次數來產生第二控制信號。
在另一特徵中,該電腦程式進一步包括控制電力消耗,根據第二控制信號和電力消耗來產生第三控制信號,根據第三控制信號來起始CCS,並且利用核心切換模組根據CCS在第一非對稱核心和第二非對稱核心的其中之一與第一非對稱核心和第二非對稱核心中的另一個之間,切換應用的執行。
在另一特徵中,該電腦程式進一步包括根據第二控制信號來起始FCS,並且根據FCS來選擇第一非對稱核心和第二非對稱核心的至少其中之一的操作頻率。
在另一特徵中,該電腦程式進一步包括根據第二控制信號來起始VCS,並且根據VCS來選擇第一非對稱核心和第二非對稱核心的至少其中之一的供電電壓。
在另一特徵中,該電腦程式進一步包括提供複數個第一非對稱核心,並且利用核心切換模組,當在第一模式中操作時,根據CCS來選擇性地啟動和解除啟動一個以上的該複數個第一非對稱核心。
在另一特徵中,該電腦程式進一步包括提供一膠合邏輯模組,利用膠合邏輯模組選擇性地與核心切換模組通信、經由膠合邏輯模組接收中斷、經由膠合邏輯模組接收來自應用的第一信號、並且利用膠合邏輯模組將中
斷和第一信號路由發送到第一非對稱核心和第二非對稱核心中由核心切換模組所啟動的那一個。
在其他特徵中,一種核心切換系統包括模式切換模組、核心啟動模組、和狀態轉移模組。模式切換模組接收切換信號以在第一模式和第二模式之間切換操作。在第一模式期間,與應用相關的指令由第一非對稱核心所執行,並且第二非對稱核心不活動。在第二模式期間,指令由第二非對稱核心所執行,並且第一非對稱核心不活動。核心啟動模組在中斷失能之後停止第一非對稱核心對應用的處理。狀態轉移模組將第一非對稱核心的狀態轉移到第二非對稱核心。核心啟動模組允許第二非對稱核心繼續執行指令並且致能中斷。
在另一特徵中,當第二非對稱核心在第二模式期間繼續執行指令時,第二非對稱核心是在沒有指令轉換的情況下執行指令的。
在另一特徵中,第一非對稱核心的第一最大速度和第一最大操作功率級別分別大於第二非對稱核心的第二最大速度和第二最大操作功率級別。
在另一特徵中,當第二非對稱核心繼續執行指令時,核心啟動模組不向第一非對稱核心提供電力,或向第一非對稱核心提供待機電力。
在其他特徵中,該核心切換系統進一步包括核心簡檔模組,其根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、以及指令的至少其中之一來產生用於執行應用的預期指令執行率。核心簡檔模組根據預期指令執行率來產生切換信號。
在其他特徵中,該核心切換系統進一步包括CCS模組,其根據切換信號來產生CCS。核心啟動模組根據CCS來對第一非對稱核心和第二非對稱核心的其中之一加電並關閉第一非對稱核心和第二非對稱核心中的另一個。
在其他特徵中,一種裝置包括記憶體和核心切換模組。記憶體儲存向應用提供服務的OS,該OS包括系統核心。核心切換模組在第一模式和第二模式之間切換操作。在第一模式期間,與應用相關的指令由第一非對稱核心執行,並且第二非對稱核心不活動。在第二模式期間,指令由第二非對稱核心執行,並且第一非對稱核心不活動。核心切換模組在高於系統核
心的級別之上操作。
在另一特徵中,核心切換模組對OS透通地在第一模式和第二模式之間切換。
在其他特徵中,核心切換模組包括模式切換模組、核心啟動模組、和狀態轉移模組。模式切換模組接收切換信號以在第一模式和第二模式之間切換操作。核心啟動模組在中斷失能之後停止第一非對稱核心對應用的處理。狀態轉移模組將第一非對稱核心的狀態轉移到第二非對稱核心。核心啟動模組允許第二非對稱核心繼續執行指令並且致能中斷。
在另一特徵中,當第二非對稱核心在第二模式期間繼續執行指令時,指令是在沒有指令轉換的情況下被執行的。
在另一特徵中,第一非對稱核心的第一最大速度和第一最大操作功率級別分別大於第二非對稱核心的第二最大速度和第二最大操作功率級別。
在另一特徵中,當第二非對稱核心繼續執行指令時,核心切換模組不向第一非對稱核心提供電力,或者向第一非對稱核心提供待機電力。
在其他特徵中,該核心切換系統進一步包括核心簡檔模組,其根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生用於執行應用的預期指令執行率。核心切換模組根據預期指令執行率在第一模式和第二模式的其中之一與第一模式和第二模式中的另一個之間切換操作。
在其他特徵中,該核心切換系統進一步包括CCS模組,其根據第一非對稱核心和第二非對稱核心的其中之一每週期所執行的資料快取缺失率、指令快取缺失率、指令的至少其中之一來產生CCS。核心切換模組根據CCS來對第一非對稱核心和第二非對稱核心的其中之一加電並關閉第一非對稱核心和第二非對稱核心中的另一個。
在其他特徵中,一種方法包括在第一模式期間,當第二非對稱核心不活動時,利用第一非對稱核心執行與應用相關的指令,以及在第二模式期間,當第一非對稱核心不活動時,利用第二非對稱核心執行指令。該方法進一步包括接收切換信號以在第一模式和第二模式之間切換操作。該方法進一步包括根據切換信號在第一模式期間使中斷失能。該方法進一步包括在中斷失能之後停止第一非對稱核心對應用的處理。該方法進一步包括將
第一非對稱核心的狀態轉移到第二非對稱核心,從而允許第二非對稱核心繼續執行指令並且致能中斷。
在另一特徵中,該方法進一步包括當第二非對稱核心繼續執行指令時,在沒有指令轉換的情況下執行指令。
在其他特徵中,該方法進一步包括提供具有第一最大速度和第一最大操作功率級別的第一非對稱核心,以及提供具有第二最大速度和第二最大操作功率級別的第二非對稱核心。第一最大速度和第一最大操作功率級別分別大於第二最大速度和第二最大操作功率級別。
在另一特徵中,該方法進一步包括當第二非對稱核心繼續執行指令時,不向第一非對稱核心提供電力,或者向第一非對稱核心提供待機電力。
在其他特徵中,該方法進一步包括根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生用於執行應用的預期指令執行率。該方法進一步包括根據預期指令執行率來產生切換信號。
在另一特徵中,該方法進一步包括根據切換信號來產生CCS、根據CCS來對第一非對稱核心和第二非對稱核心的其中之一加電、並且根據CCS來關閉第一非對稱核心和第二非對稱核心中的另一個。
在其他特徵中,一種方法包括儲存向應用提供服務包括系統核心的OS,以及在第一模式期間,當第二非對稱核心不活動時,利用第一非對稱核心執行與應用相關的指令。該方法進一步包括在第二模式期間,當第一非對稱核心不活動時,利用第二非對稱核心來執行指令。該方法進一步包括利用核心切換模組在第一模式和第二模式之間切換操作,以及在高於系統核心的級別之上操作核心切換模組。
在另一特徵中,該方法進一步包括對OS透通地在第一模式和第二模式之間切換。
在另一特徵中,該方法進一步包括接收切換信號以在第一模式和第二模式之間切換操作,在中斷失能之後停止第一非對稱核心對應用的處理、將第一非對稱核心的狀態轉移到第二非對稱核心,從而允許第二非對稱核心繼續執行指令並且致能中斷。
在另一特徵中,該方法進一步包括當第二非對稱核心在第二模式期間繼續執行指令時,在沒有指令轉換的情況下執行指令。
在其他特徵中,該方法進一步包括提供具有第一最大速度和第一最大操作功率級別的第一非對稱核心,以及提供具有第二最大速度和第二最大操作功率級別的第二非對稱核心。第一最大速度和第一最大操作功率級別分別大於第二最大速度和第二最大操作功率級別。
在另一特徵中,該方法進一步包括當第二非對稱核心繼續執行指令時,不向第一非對稱核心提供電力,或向第一非對稱核心提供待機電力。
在其他特徵中,該方法進一步包括根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生用於執行應用的預期指令執行率。該方法進一步包括根據預期指令執行率在第一模式和第二模式的其中之一與第一模式和第二模式中的另一個之間切換操作。
在另一特徵中,該方法進一步包括根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生CCS,根據CCS來對第一非對稱核心和第二非對稱核心的其中之一加電,並且根據CCS來關閉第一非對稱核心和第二非對稱核心中的另一個。
在其他特徵中,一種核心切換系統包括模式切換裝置,用於切換操作模式。模式切換裝置接收切換信號以在第一模式和第二模式之間切換。在第一模式期間,與應用相關的指令由用於執行指令的第一非對稱核心裝置來執行,並且用於執行指令的第二非對稱核心裝置不活動。在第二模式期間,指令由第二非對稱核心裝置來執行,並且第一非對稱核心裝置不活動。該系統進一步包括核心啟動裝置,用於啟動第一非對稱核心裝置和第二非對稱核心裝置。核心啟動裝置在中斷失能之後停止第一非對稱核心裝置對應用的處理。該系統進一步包括狀態轉移裝置,用於將第一非對稱核心裝置的狀態轉移到第二非對稱核心裝置。核心啟動裝置允許第二非對稱核心裝置繼續執行指令並且致能中斷。
在另一特徵中,當第二非對稱核心裝置在第二模式期間繼續執行指令時,指令是在沒有指令轉換的情況下被執行的。
在另一特徵中,第一非對稱核心裝置的第一最大速度和第一最大操作功率級別分別大於第二非對稱核心裝置的第二最大速度和第二最大操作功率級別。
在另一特徵中,當第二非對稱核心裝置繼續執行指令時,核心啟動裝置不向第一非對稱核心裝置提供電力,或向第一非對稱核心裝置提供待機電力。
在另一特徵中,該核心切換系統進一步包括核心簡檔裝置,用於根據第一非對稱核心裝置每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生用於執行應用的預期指令執行率,並且用於根據預期指令執行率來產生切換信號。
在其他特徵中,該核心切換系統進一步包括CCS裝置,用於根據切換信號來產生CCS。核心啟動裝置根據CCS來對第一非對稱核心裝置和第二非對稱核心裝置的其中之一加電並關閉第一非對稱核心裝置和第二非對稱核心裝置中的另一個。
在其他特徵中,一種裝置包括記憶體,其儲存向應用提供服務的OS,該OS包括系統核心。該系統進一步包括核心切換裝置,用於在第一模式和第二模式之間切換操作。在第一模式期間,與應用相關的指令由用於執行應用的第一非對稱核心裝置來執行,並且用於執行應用的第二非對稱核心裝置不活動。在第二模式期間,指令由第二非對稱核心裝置來執行,並且第一非對稱核心裝置不活動。核心切換裝置在高於系統核心的級別之上操作。
在另一特徵中,核心切換裝置對OS透通地在第一模式和第二模式之間切換。
在其他特徵中,核心切換裝置包括模式切換裝置,用於接收切換信號以在第一模式和第二模式之間切換操作。核心切換裝置進一步包括核心啟動裝置,用於在中斷失能之後停止第一非對稱核心裝置對應用的處理。核心切換裝置進一步包括狀態轉移裝置,用於將第一非對稱核心裝置的狀態轉移到第二非對稱核心裝置。核心啟動裝置允許第二非對稱核心裝置繼續執行指令並且致能中斷。
在另一特徵中,當第二非對稱核心裝置在第二模式期間繼續執行指令時,指令是在沒有指令轉換的情況下執行的。
在另一特徵中,第一非對稱核心裝置的第一最大速度和第一最大操作功率級別分別大於第二非對稱核心裝置的第二最大速度和第二最大操作功率級別。
在另一特徵中,當第二非對稱核心裝置繼續執行指令時,核心切換裝置不向第一非對稱核心裝置提供電力,或向第一非對稱核心裝置提供待機電力。
在其他特徵中,該裝置進一步包括核心簡檔裝置,用於根據第一非對稱核心裝置每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生用於執行應用的預期指令執行率。核心切換裝置根據預期指令執行率在第一模式和第二模式的其中之一與第一模式和第二模式中的另一個之間切換。
在其他特徵中,該裝置進一步包括CCS裝置,用於根據第一非對稱核心裝置每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生CCS。核心切換裝置根據CCS來對第一非對稱核心裝置和第二非對稱核心裝置的其中之一加電並關閉第一非對稱核心裝置和第二非對稱核心裝置中的另一個。
在其他特徵中,一種儲存在電腦可讀媒體上並由處理器所執行的電腦程式包括在第一模式期間,當第二非對稱核心不活動時,利用第一非對稱核心來執行與應用相關的指令,以及在第二模式期間,當第一非對稱核心不活動時,利用第二非對稱核心來執行指令。該方法進一步包括接收切換信號以在第一模式和第二模式之間切換操作。該方法進一步包括根據切換信號在第一模式期間使中斷失能。該方法進一步包括在中斷失能之後停止第一非對稱核心對應用的處理。該方法進一步包括將第一非對稱核心的狀態轉移到第二非對稱核心,從而允許第二非對稱核心繼續執行指令並且致能中斷。
在另一特徵中,該電腦程式進一步包括在第二模式期間,當第二非對稱核心繼續執行指令時,在沒有指令轉換的情況下執行指令。
在其他特徵中,該電腦程式進一步包括提供具有第一最大速度和第一最大操作功率級別的第一非對稱核心,以及提供具有第二最大速度和第二最大操作功率級別的第二非對稱核心。第一最大速度和第一最大操作功率級別分別大於第二最大速度和第二最大操作功率級別。
在另一特徵中,該電腦程式進一步包括當第二非對稱核心繼續執行指令時,不向第一非對稱核心提供電力,或向第一非對稱核心提供待機電力。
在其他特徵中,該電腦程式進一步包括根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生用於執行應用的預期指令執行率。該電腦程式進一步包括根據預期指令執行率來產生切換信號。
在另一特徵中,該電腦程式進一步包括根據切換信號來產生CCS,根據CCS來對第一非對稱核心和第二非對稱核心的其中之一加電,並且根據CCS來關閉第一非對稱核心和第二非對稱核心中的另一個。
在其他特徵中,一種儲存在電腦可讀媒體上並由處理器所執行的電腦程式包括儲存向應用提供服務包括系統核心的OS,以及在第一模式期間,當第二非對稱核心不活動時,利用第一非對稱核心來執行與應用相關的指令。該方法進一步包括在第二模式期間,當第一非對稱核心不活動時,利用第二非對稱核心執行指令。該方法進一步包括利用核心切換模組在第一模式和第二模式之間切換操作,以及在高於系統核心的級別之上操作核心切換模組。
在另一特徵中,該電腦程式進一步包括對OS透通地在第一模式和第二模式之間切換。
在另一特徵中,該電腦程式進一步包括接收切換信號以在第一模式和第二模式之間切換操作、在中斷失能之後停止第一非對稱核心對應用的處理、將第一非對稱核心的狀態轉移到第二非對稱核心、從而允許第二非對稱核心繼續執行指令並且致能中斷。
在另一特徵中,該電腦程式進一步包括當第二非對稱核心在第二模式期間繼續執行指令時,在沒有指令轉換的情況下執行指令。
在其他特徵中,該電腦程式進一步包括提供具有第一最大速度和第一
最大操作功率級別的第一非對稱核心,以及提供具有第二最大速度和第二最大操作功率級別的第二非對稱核心。第一最大速度和第一最大操作功率級別分別大於第二最大速度和第二最大操作功率級別。
在另一特徵中,該電腦程式進一步包括當第二非對稱核心繼續執行指令時,不向第一非對稱核心提供電力,或向第一非對稱核心提供待機電力。
在其他特徵中,該電腦程式進一步包括根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生用於執行應用的預期指令執行率。該電腦程式進一步包括根據預期指令執行率在第一模式和第二模式的其中之一與第一模式和第二模式中的另一個之間切換操作。
在另一特徵中,該電腦程式進一步包括根據第一非對稱核心每週期所執行的資料快取缺失率、指令快取缺失率、和指令的至少其中之一來產生CCS,根據CCS來對第一非對稱核心和第二非對稱核心的其中之一加電,並且根據CCS來關閉第一非對稱核心和第二非對稱核心中的另一個。
根據以下所提供的詳細描述,本發明的其他應用領域將變得清楚。應當理解,詳細描述和具體示例僅用於說明的目的,而並非意圖限制本發明的範圍。
以下描述在本質上僅為示例性的,並且絕不意圖限制本發明、其應用或使用。為了清楚起見,在圖式中將使用相同標號來標識類似元件。此處所使用的術語「A、B和C的至少其中之一」應當理解為指的是使用非排他邏輯或的邏輯(A或B或C)。應當瞭解,可以不同的順序來執行方法中的步驟而不改變本發明的原理。
此處所使用的術語模組指的是執行一個或多個軟體或韌體程式的特殊應用積體電路(ASIC)、電子電路、處理器(共用的、專用的或者群組的)和記憶體、組合邏輯電路、及/或提供所描述功能性的其他合適元件。
大多數行動計算裝置執行具有不同級別的複雜度及/或處理要求的應用。一些應用可利用單核、低速處理器來高效地執行,而其他應用可利用
單核、高速處理器來高效地執行。僅為示例,低速處理器可在小於或等於500兆赫(MHz)的速度下操作,而高速處理器可在大於或等於1千兆赫(GHz)的速度下操作。也可使用其他速度閾值。
大多數行動計算裝置目前都只使用一個單核處理器。使用單核處理器來執行所有類型的應用要求電力-性能折衷。例如,使用單核、低速處理器可在犧牲性能的情況下提高電力節省並延長電池壽命。某些處理密集型應用可能運作緩慢,或者根本不運作。相反地,使用單核、高速處理器可提高性能,同時卻縮短電池壽命,因為高速處理器即使在執行要求較低處理速度的應用時也會消耗較多電力。
依據本發明,利用具有低速、低功率(LP)核心和高速、高功率(HP)核心的多核處理系統,可在行動裝置中達到增進的電力節省和增進的性能。LP核心和HP核心可實現在同一IC或SOC上,或者實現為組合成SIP的多個分離IC。如以下將進一步詳細描述的,多核處理系統取決於所執行的應用的類型、處理負載、及/或此處所描述的其他因素,在LP核心和HP核心之間動態地切換。
現在參考圖2,行動裝置可包括非對稱MP系統10,其包括LP核心12和HP核心16。LP核心12的ISA可不同於HP核心16的ISA。例如,HP核心16可執行浮點指令,而LP核心12則可能不執行浮點指令。此外,LP核心12和HP核心16(以下稱為核心)具有不同的性能和能力(例如,不同的處理速度、電力消耗等)。或者,兩者可使用相同的ISA。
依據本發明,非對稱MP系統10是透過達成LP核心12和HP核心16之間的相容性而以偽對稱方式來操作的。LP核心12和HP核心16之間的相容性可透過許多方式來達成。例如,LP核心12和HP核心16可使用相同或相似的關鍵核心暫存器/介面;LP核心12可使用暫存器映射;及/或LP核心12可使用與HP核心16的指令集相同的指令集,或者可使用與HP核心16的指令集的子集的指令集。
因此,OS和應用在LP核心12和HP核心16兩者上都可運作。非對稱MP系統10取決於處理負載和正在執行的應用的類型來在LP核心12和HP核心16之間動態地切換,以依需要來提高電力節省並改善性能。非對
稱MP系統10可用於通用處理(GPP)。
本發明使用核心變形來最佳化電力消耗並改善性能。核心變形包括對MP系統的核心的適應及動態切換。具體而言,低功率核心和高功率核心是以安全且透通的方式而針對OS及/或應用來切換的。換言之,OS和應用可不察覺哪個核心目前正在執行處理負載。
核心變形可最佳化電池壽命和性能。例如,當處理負載低時,使用LP核心來運作應用可延長電池壽命。另一方面,當處理負載高時,使用HP核心來運作應用可提供高性能。透過依需要在LP核心和HP核心之間動態切換,可最佳化電力消耗和性能兩者。
在核心變形中,根據系統負載來動態地致能(即啟動)或失能(即解除啟動)核心。系統負載可部分地根據資源利用率和應用所需的性能來確定。在一些實現方式中,每次只可有一個核心是活動的(即正在執行應用)。當一個核心活動時,其他核心可為失能的(即解除啟動)以節省電力。其他核心可以許多方式來失能。例如,其他核心可置於待機模式中,其中,其他核心的時鐘頻率及/或供電電壓可降低到低於當核心活動時的數值。或者,可透過斷開對核心的電力供應來完全關閉其他核心。
當執行從一個核心切換到另一個時,活動的核心可透通地運作OS和應用。具體而言,當執行從一個核心切換到另一個時,該另一個核心在無需轉換的情況下執行指令。因此,核心的切換對於OS和應用來說是透通或者不可見的,OS和應用繼續運作,就如同系統包括單個核心而不是多個核心一般。核心變形可用於包括一個LP核心和一個HP核心的多核系統中。當應用需要較一個HP核心所提供的性能還要更高的性能時,可使用多個HP核心。
雖然在本發明中始終以行動計算裝置為示例來討論動態核心切換,但動態核心切換也可用於包括桌上型電腦、伺服器等在內的其他計算系統中,以減小電力消耗。
在詳細論述之前,先給出對於圖式的簡要概述。圖3A和圖3B表示了具有LP核心和HP核心的多核處理系統。圖3C表示了切換多核處理系統的核心的控制模組。圖3D表示了控制模組的核心利用率模組。圖4表示了
用於操作多核處理系統的方法。圖5表示了用於切換多核處理系統的核心的另一系統。圖6和圖7表示了用於操作多核處理系統的方法。圖8A和圖8B表示了當在核心變形期間核心切換時操作一個核心的膠合邏輯模組。圖9A表示了使用核心切換模組來動態切換核心的電力管理系統。圖9B表示了使用核心切換模組來動態切換核心的電力管理系統。圖9C表示了示例性的核心切換模組。圖10表示了用於利用核心切換模組來動態切換核心的方法的步驟。
現在參考圖3A,表示了依據本發明的處理系統20。處理系統20包括具有快取26的HP核心24和具有快取30的LP核心28。處理系統20可在HP核心24和LP核心28之間切換,以減小電力消耗,同時仍依需要支援高速處理。處理系統20可用於延長以電池電力操作的行動裝置的電池壽命。HP核心24和LP核心28都可運作相同的作業系統及/或應用。此外,HP核心24和LP核心28都可執行彼此的指令、狀態及/或線程並繼續處理。
在HP模式中,HP核心24處於活動狀態中並處理線程。LP核心28在HP模式期間也可操作。換言之,LP核心28在HP模式的全部或部分的期間可處於活動狀態中。然而,為了減小功率,在HP核心24處於活動狀態中時,LP核心28可在非活動狀態中操作。
在LP模式中,LP核心28在活動狀態中操作並處理線程,而HP核心24處於非活動狀態中。非活動核心可完全關閉(未供應電力)。或者,包括較活動功率級別更低的功率級別的待機電力可提供給處於非活動狀態中的核心,以允許更迅速地轉變為活動狀態。
HP核心24和LP核心28可使用相同或相似的作業系統。LP核心28可使用與HP核心24的ISA相同的ISA,或者使用HP核心24的ISA的子集的ISA。HP核心24和LP核心28可能能夠運作相同的代碼及/或應用,儘管運作的速度不同。HP核心24和LP核心28可具有相同或相似的架構。HP核心24可具有較LP核心28更多的處理能力(例如,疊流、級等)。在從LP模式轉換到HP模式以及從HP模式轉換到LP模式時,HP核心24和LP核心28都可臨時在活動狀態中操作。
諸如揮發性記憶體及/或非揮發性記憶體之類的記憶體40儲存第一應
用42-1、42-2、...、和42-P(統稱為第一應用42)、第二應用44-1、44-2、...、和44-Q(統稱為第二應用44)、及/或第三應用46-1、46-2、...、和46-R(統稱為第三應用46),其中P、Q和R是大於零的整數。第一應用42可包括在操作期間要求相對較低的處理速度的應用,並且可在LP模式或HP模式期間執行。換言之,第一應用42可包括一般不那麼處理密集的應用。然而,如果足夠數目的第一應用42被同時執行,那麼處理系統20可需要轉換到HP模式並在HP模式中操作。
第二應用44可包括要求中等處理速度(例如,平均起來通常高於第一應用42並低於第三應用46)的應用。取決於各種情況,第二應用44可要求低處理速度、中等處理速度、或高處理速度。第三應用46可為傾向要求高處理速度的應用,並且可在HP模式中最佳地執行。HP核心24和LP核心28都可能能夠運作所有三種類型的應用。或者,某些應用可限於僅利用HP核心24來運作。
可提供一控制模組34來選擇性地控制HP模式和LP模式之間的轉換。控制模組34可接收來自另一模組或裝置的模式改變請求信號。控制模組34可監視指令、狀態、線程、及/或與轉移有關的資訊,諸如暫存器、狀態、檢查點、及/或程式計數器的轉移。一旦轉移完成,控制模組34可將HP核心24和LP核心28的其中之一轉換到非活動狀態。
可透過多種方式來封裝處理系統20。例如,處理系統20的HP核心24和LP核心28都可選擇性地實現為SOC。或者,處理系統20可被封裝為多個晶片,這多個晶片被配置為SIP或配置在印刷電路板(PCB)上。還可設想其他封裝方法。
現在參考圖3B,處理系統20包括HP核心24、LP核心28、共用的暫存器檔112、和控制模組114。可利用高洩漏/高速程序來製造HP核心24。可利用低洩漏/低速程序來製造LP核心28。HP核心24和LP核心28分別包括電晶體106和110。HP核心24的電晶體106在活動狀態中操作期間傾向較LP核心28的電晶體110要消耗更多的電力。在某些實現方式中,電晶體106可較電晶體110具有更高的洩漏電流。電晶體106可具有一大小係大於電晶體110的大小。電晶體106的閘極可大於電晶體110的閘極。
HP核心24的閘極數可大於LP核心28的閘極數。
HP核心24可具有較LP核心28更複雜的架構。例如,LP核心28可具有較HP核心24更小的寬度及/或深度。寬度可由平行的疊流的數目來界定。HP核心24可包括PHP
個平行的疊流142,而LP核心28可包括PLP
個平行的疊流146。在某些實現方式中,PLP
可小於PHP
。PLP
可為大於或等於零的整數。當PLP
=0時,LP核心28不包括任何平行的疊流。深度可由級數來界定。HP核心24可包括SHP
級144,而LP核心28可包括SLP
級148。在某些實現方式中,SLP
可小於SHP
。SLP
可為大於或等於一的整數。
暫存器檔112可在HP核心24和LP核心28之間共用。或者,HP核心24和LP核心28的每一個可具有一暫存器檔。暫存器檔112的內容可從即將解除啟動的活動核心轉移到即將啟動的非活動核心。暫存器檔112可將預定的位址位置用於暫存器、檢查點及/或程式計數器。例如,分別被HP核心24及/或LP核心28所使用的暫存器、檢查點及/或程式計數器可儲存在暫存器檔112中的相同位置中。因此,從一個核心轉換到另一核心時,HP核心24和LP核心28在可定位特定的暫存器、檢查點及/或程式計數器。暫存器檔112可在分別為HP核心24和LP核心28每一個中的暫存器檔(圖中未示)之外。線程可包括單線程及/或多線程。
控制模組114可選擇性地控制HP模式和LP模式之間的轉換。控制模組114可接收來自另一模組或裝置的模式改變請求信號。控制模組114可監視指令、狀態、線程及/或與轉移有關的資訊,諸如暫存器、狀態、檢查點及/或程式計數器的轉移。一旦轉移完成,控制模組114可將HP核心24和LP核心28的其中之一轉換到非活動狀態。HP核心24、LP核心28、暫存器檔112及/或控制模組114可實現為SOC 130。
HP核心24可包括快取26,而LP核心28可包括快取30。快取26的大小可大於快取30。快取26可消耗較快取30更多的電力。僅為示例,快取26可包括四路快取,而快取30可包括直接映射快取。僅為示例,HP核心24可在大於或等於1 GHz的速度下操作,而LP核心28可在小於或等於500 MHz的速度下操作。
現在參考圖3C,控制模組114可包括以下模組的一個或多個來管理處
理系統的操作。控制模組114可包括性能簡檔模組116、閒置簡檔模組118、核心簡檔模組120、線程轉移模組122、及/或快取監視模組124。
性能簡檔模組116可監視正被HP核心24和LP核心28所執行的應用的性能並且可產生系統負載的簡檔。具體而言,性能簡檔模組116可動態地檢測工作負載的類型(例如,系統負載是CPU傾向的、記憶體傾向的、或兩者皆有)。此外,當HP核心24和LP核心28的時鐘頻率及/或供電電壓改變時,性能簡檔模組116可檢測性能瓶頸。
閒置簡檔模組118可監視CPU利用率並確定用於操作HP核心24和LP核心28的最低可能時鐘頻率及/或供電電壓。閒置簡檔模組118可根據工作負載使對性能的影響最小化,同時為具有高閒置工作週期的工作負載節省電力。
此外,當HP核心24和LP核心28不活動時,閒置簡檔模組118可用於分別維持HP核心24和LP核心28中的較低功率級別。例如,閒置簡檔模組118可操作電源供應器以提供較活動操作功率級別較低(但較無電力要高)並且足以允許非活動的核心迅速轉換到活動狀態的低功率級別。
當HP核心24和LP核心28執行應用時,快取監視模組124可監視快取缺失率。例如,快取監視模組124可監視HP核心24和LP核心28的指令快取缺失率和資料快取缺失率。
核心簡檔模組120可分析由性能簡檔模組116、閒置簡檔模組118、及/或快取監視模組124所產生的資訊。根據該資訊,核心簡檔模組120可在應用正被執行時監視HP核心24和LP核心28的核心利用率。核心簡檔模組120可指示出核心利用率何時等於或低於某些預定的閾值。當需要從LP模式切換到HP模式或從HP模式切換到LP模式以最佳化電力消耗和性能時,核心簡檔模組120可產生模式改變信號。電力管理系統可利用該模式改變信號來判定是否依請求來改變模式。
更具體而言,核心簡檔模組120可分別監視HP核心24和LP核心28的處理速度。當HP核心24開始以低於第一預定閾值的第一處理速度操作時,核心簡檔模組120可指示需要將操作切換到LP核心28。當LP核心28開始以高於第二預定閾值的第二處理速度操作時,核心簡檔模組120可指
示需要將操作切換到HP核心24。
第一預定閾值和第二預定閾值可為相等或不相等(以提供磁滯作用)。換言之,第一預定閾值可低於第二預定閾值。第一處理速度和第二處理速度可在第一時段和第二時段期間取平均,以防止在處理速度瞬時改變期間切換。第一時段和第二時段可設定為不同的時段,以促進或延遲切換。第一時段、第二時段、第一預定閾值、和第二預定閾值可由程式設計師預設或者可由使用者界定。如此,使用者可控制包括處理系統20的裝置的電力耗散。當核心切換時,線程轉移模組122促進HP核心24和LP核心28之間的線程轉移。
現在參考圖3D,核心簡檔模組120可監視系統負載。例如,HP核心24和LP核心28的一個或多個核心參數可被監視,以提供核心利用率的指示。例如,核心簡檔模組120可監視處理速度、頁面檔案使用率、輸入/輸出負載、線程數、快取使用率、及/或應用類型。CPU使用率可表示每單位時間的操作數目與核心容量的比率。頁面檔案使用率可表示頁面檔的數目與頁面檔的最大數目的比率。線程數可為活動線程的數目。
核心簡檔模組120可使用單一線程。換言之,到HP核心24的轉換可發生在LP核心28的CPU使用率在預定時段期間高於預定百分比時、頁面檔案使用率大於預定頁面檔案數目時、或線程數大於預定線程數目時。核心簡檔模組120還可將多個標準組合成更複雜的條件。僅為示例,核心簡檔模組120可要求在預定時段期間LP核心28的處理速度高於最大速度的預定百分比,並且輸入/輸出負載大於預定的值。也可使用磁滯作用。還可設想其他組合。
現在參考圖4,表示了用於操作處理系統20的示例性方法300。控制開始於方塊304,並且前進到方塊306。在方塊306中,控制確定當前操作模式。如果步驟306等於HP,控制則繼續進行步驟308,並判定模式信號是否設定為LP模式。如果步驟308為是,控制則繼續進行步驟310,並且增大至LP核心28和快取30的電力。在步驟312中,控制判定LP核心28和快取30是否準備就緒。在步驟318中,控制將運作於HP核心24上的指令、狀態、線程等轉移到LP核心28。
如果步驟306等於LP,控制則繼續進行步驟328,並且判定模式信號是否設定為HP模式。如果步驟308為是,控制則繼續進行步驟330,並且增大至HP核心24和快取26的電力。在步驟332中,控制判定HP核心24和快取26是否準備就緒。在步驟338中,控制將運作於LP核心28上的指令、狀態、及/或線程轉移到HP核心24。
現在參考圖5,表示了具有HP核心和LP核心的另一個示例性系統。該系統包括LP核心200,其包括第一級(L1)快取202,以及HP核心204,其包括L1快取206。LP核心200和HP核心204可經由匯流排205通信。可提供一高速記憶體210。高速記憶體210可包括靜態隨機存取記憶體(SRAM)或其他合適的高速記憶體。LP核心200和HP核心204可實現為多個分離IC並配置為SIP,或集成為一個IC或SOC。高速記憶體210也可與LP核心200和HP核心204的其中一者或兩者集成。
LP核心200和HP核心204還可具有此處所描述的屬性中的一些或全部。LP核心200可較HP核心204具有更小的核心。除了L1快取202和206之外,還可提供L2快取208。L1快取202和206可與對應的LP核心200和HP核心204集成。L2快取208可被核心200和204的其中一者或兩者使用。由於L2快取208一般傾向於具有高洩漏電流及/或電力消耗,因此如果想要,可將對L2快取的使用限於HP核心204。在某些實現方式中,HP核心204可包括多個相同的核心。
LP核心200和HP核心204可利用不同ISA執行相同OS,並且可執行相同的代碼。系統核心模組220,其為OS的元件,管理系統資源。僅為示例,OS可包括Linux或其他合適的作業系統。系統核心模組220為應用224(例如,應用224-1、224-2、...和224-P)在執行其功能時控制的資源(例如,高速記憶體210或主記憶體228、LP核心200和HP核心204、以及輸入/輸出裝置234)提供最低級別的抽象層。系統核心模組220通常透過程序間通信機制和系統呼叫來向應用224的程序提供這些資源。
在啟動期間,啟動載入器通常開始執行系統核心模組220。系統核心模組220初始化自身並且開始第一程序。然後,系統核心模組220一般回應於應用224所用來從系統核心模組220請求服務的外部事件,諸如系統呼
叫,或經由硬體元件所用來將事件告知給系統核心模組220的中斷而執行。在沒有程序可用於運作時,系統核心模組220還可執行閒置程序迴路。
可提供一電力管理系統(PMS)模組242,來管理電力消耗並且根據所監視的系統負載來起始或控制系統操作中的改變。核心簡檔模組240可監視系統負載,諸如核心負載、輸入/輸出負載、應用負載、及/或根據其他系統操作參數的負載。
例如,PMS模組242可根據需求來控制在LP核心200的不同操作頻率之間的切換。換言之,PMS模組242可根據系統負載來處理在LP核心200的T個不同操作速度的其中之一之間的轉換,其中T是大於1的整數。例如,在低負載條件下,LP核心200可最初在低於100 MHz的速度下操作。隨著系統負載增大,PMS模組242可能需要將操作速度增大到200 MHz。可以明瞭在更高速度下操作也可與更高的電力消耗相關。速度的增大可透過提高至LP核心200及/或至有關時鐘電路的供電電壓Vdd
來實現。可採用額外的速度步驟來增大LP核心200的操作速度,直到其最大處理速度。
當LP核心200達到其最高操作速度並且出現額外的系統負載時,核心簡檔模組240、PMS模組242、及/或系統核心模組220失能中斷,並且向監管器模組213或核心切換模組212產生系統呼叫,以觸發轉換。核心切換模組212可為獨立的,或者可與監管器模組213集成。核心切換模組212可回應於該系統呼叫將操作從LP核心200轉換(切換)到HP核心204,並且在轉換(切換)完成後將控制返回到系統核心模組220。
術語「監管器」一般是指允許多個作業系統同時在一主機電腦上運作的虛擬化平台。監管器可用於在一個OS操作時安全地暫停另一個OS的操作。監管器通常在系統核心之上操作。或者,監管器可在系統核心之下操作。
在本發明中,術語「監管器」指的是允許主機裝置使用多個使用同一OS的非對稱處理器的虛擬化平台。與其他的不受信任區域中的使用者應用相較,監管器是在受信任區域中來操作的。受信任區域是提供代碼隔離的安全環境,其中服務能夠安全地執行,而沒有外部中斷。監管器管理處理器之間的轉移,並且在一個非對稱處理器操作時暫停另一個非對稱處理器
的操作。或者,監管器可用於運作使用多個OS的多個非對稱處理器。
取決於核心切換模組212是否集成在監管器模組213中,監管器模組213或核心切換模組212在啟動之後從RAM或其他儲存裝置載入到高速記憶體210中。核心切換模組212在受信任區域中切換核心。當一個核心的操作暫停並移交給另一核心時,PMS模組242失能對LP核心200和HP核心204其中之一的中斷。監管器模組213及/或核心切換模組212透過隔離核心與OS和應用而提供硬體抽象,並且使得切換核心對OS和應用而言是透通的。
核心切換模組212以系統核心模組220之上的級別來操作。由於核心切換模組212以對OS和應用來說透通的方式來切換核心,因此當核心切換模組212切換核心時,OS和應用可照舊運作。
在中斷被PMS模組242所失能之後,核心切換模組212複製LP核心200的狀態,起始HP核心204,並且利用LP核心200的狀態來初始化HP核心204。在HP核心204初始化之後,核心切換模組212解除啟動LP核心200。HP核心204繼續執行應用,並且PMS模組242致能中斷。
在利用HP核心204執行指令後,系統負載可能最終減小。當系統負載減小到預定的點時,核心切換模組212可將操作從HP核心204轉換回LP核心200。可明瞭當需要相對低的處理速度時,採用核心切換的系統可受益於LP核心200的低電力消耗。當想要高速處理時,可使用HP核心204,並在處理負載充分減小時被關閉。
現在參考圖6,表示了用於操作圖5的LP核心200和HP核心204的方法的步驟。控制開始於步驟250。在步驟252中,核心簡檔模組240監視LP核心200的系統負載。在步驟256中,核心簡檔模組240判定是否有需要切換到HP核心204。如果步驟256為非,控制則返回步驟252。
如果步驟256為是,控制訊息發送到核心切換模組212。在步驟260中,核心切換模組212讀取LP核心200的狀態(指標、暫存器、運算碼、運算元、程式計數器(PC)等),並且將該狀態或表示LP核心200的狀態的資訊複製到高速記憶體210中。在步驟264中,核心切換模組212將HP核心204轉換到活動狀態。在步驟268中,核心切換模組212將來自高速記憶體210
的LP核心200的狀態載入到HP核心204中。在步驟272中,核心切換模組212將LP核心200轉換到非活動狀態。在步驟276中,HP核心204在載入到HP核心204中的狀態下繼續執行。換言之,操作在LP核心200進入非活動狀態時的那個程式計數器值之處繼續。
在步驟280中,在完成從LP核心200載入的指令後,HP核心204可開始在應用級執行。在步驟288中,核心簡檔模組240監視HP核心204的系統負載。在步驟292中,核心簡檔模組240判定是否有需要切換到LP核心200。
如果步驟292為否,控制返回到步驟288。否則,若步驟292為是,核心切換模組212在步驟296中讀取HP核心204的狀態並將該狀態或表示HP核心204狀態的資訊複製到高速記憶體210中。或者,該狀態可直接複製到要啟動的核心。在步驟300中,核心切換模組212將LP核心200轉換到活動狀態。在步驟306中,核心切換模組212將來自高速記憶體210的HP核心204的狀態載入到LP核心200中。
在步驟310中,HP核心204轉換到非活動狀態。在步驟320中,LP核心200在載入的狀態下繼續執行。在步驟324中,在完成載入的指令後,LP核心200在應用級執行,並且控制返回步驟252。
現在參考圖7,表示了用於操作LP核心200和HP核心204的另一種方法的步驟。控制開始於步驟328中。在步驟330中,控制判定LP核心200是否活動。若步驟330為是,核心簡檔模組240監視LP核心200的系統負載或速度。在步驟338中,核心簡檔模組240監視正在執行的應用的類型。在步驟342中,控制判定是否有任何應用被指定為HP類型。
當一應用指定為HP型應用時,在該應用發動時可發生到HP核心204的立即轉換。HP型應用可為程式化的及/或使用者所指定的。或者,HP應用可為根據電池充電狀態來選擇的。換言之,除了當電池較低時,該應用可預設HP核心操作。當電池較低時,該應用可強制在LP核心上操作,同時操作速度減小或根本沒有操作速度。其他應用也可專門在HP核心204上執行。
如果步驟342為否,控制則在步驟348中判定系統負載是否大於第一
閾值。如果步驟348為否,控制返回步驟330。若步驟348為是,控制繼續進行至步驟352,並且利用核心切換模組212轉換到HP核心204。在步驟356中,核心簡檔模組240監視HP核心204的系統負載。在步驟360中,控制判定系統負載是否小於第二閾值。若步驟360為否,控制返回到步驟356。若步驟360為是,控制在步驟376中轉換到LP核心200,並且控制返回到步驟330。
若步驟342為是,控制繼續進行步驟364並且利用核心切換模組212轉換到HP核心204。在步驟368中,控制判定HP型應用是否關閉或以其他方式終止。若步驟368為否,HP核心204則繼續執行HP型應用。若步驟368為是,控制繼續進行步驟372並且判定在關閉HP型應用後的系統負載是否小於第二速度閾值。若步驟372為否,控制返回到步驟372。若步驟372為是,控制在步驟376中轉換到LP核心200,並且控制返回步驟330。
當LP核心對於行動計算裝置的其餘硬體和軟體來說類似於HP核心或看起來像HP核心時,核心切換對於OS和應用可為透通的。當LP核心類似於HP核心時,無需進行任何修改或線程著色,即可針對HP核心來排程針對LP核心所排程的線程,反之亦然。換言之,應用可由任一核心來執行,而無需考慮任一核心的線程的特性。因此,核心切換對OS和應用來說變得透通。
當LP核心和HP核心具有相同或相容的關鍵核心暫存器和介面時,LP核心可類似於HP核心。關鍵核心暫存器和介面的示例包括CPUID暫存器、除錯暫存器、快取組織和控制暫存器、CP暫存器、追蹤巨集、記憶體管理單元(MMU)和性能管理單元(PMU)。此外,或者,LP核心可實現暫存器映射介面及/或微序列器,以達成與HP核心的動態相容性。或者,此外,LP核心的指令集可與HP核心的指令集相同或為HP核心的指令集的子集。
現在參考圖8A和圖8B,當核心正被核心切換模組所切換時,膠合邏輯模組380可用來每次使用(即啟動)僅一個核心。在圖8A中,膠合邏輯模組380可接收來自行動裝置的其他硬體和軟體的外部中斷(例如,IRQ和FIQ)和其他輸入(例如,追蹤巨集和除錯)。此外,當LP核心200和HP核心204正被切換時,膠合邏輯模組380可接收來自LP核心200和HP核心204的
喚醒交換信號。喚醒交換信號指示出在核心切換期間LP核心200和HP核心204的其中之一何時甦醒而另一個何時關閉。根據喚醒交換信號,膠合邏輯模組380可將中斷和其他輸入路由發送到在核心切換之後活動的LP核心200和HP核心204的其中之一。
具體而言,在圖8B中,膠合邏輯模組380可包括中斷控制和多工裝置382、追蹤巨集和除錯多工裝置384、以及多工控制模組386。中斷控制和多工裝置382可接收外部中斷,並且可根據外部中斷為LP核心200和HP核心204產生遮蔽的中斷以及等待中斷(WFI)信號。追蹤巨集和除錯多工裝置384可為LP核心200和HP核心204接收追蹤巨集和除錯輸入。
多工控制模組386可接收喚醒交換信號,並且可根據喚醒交換信號來產生多工控制信號。多工控制信號可指示出在核心切換完成之後的每一次,LP核心200和HP核心204中的哪一個活動。或者,核心切換模組可根據喚醒交換信號來控制中斷控制和多工裝置382和追蹤巨集和除錯多工裝置384。
根據多工控制信號,中斷控制和多工裝置382可將遮蔽的中斷和WFI信號路由發送到在核心被切換之後LP核心200和HP核心204其中活動的一個。追蹤巨集和除錯多工裝置384可將追蹤巨集及/或除錯信號路由發送到在核心切換之後LP核心200和HP核心204其中活動的一個。因此,LP核心200和HP核心204中每次只有一個活動並執行應用。
LP核心200和HP核心204具有對稱通信能力,因為膠合邏輯模組380與LP核心200和HP核心204對稱地通信。具體而言,由中斷控制和多工裝置382和追蹤巨集和除錯多工裝置384所產生的信號對稱地傳輸到LP核心200和HP核心204。因此,不論每次LP核心200和HP核心204中的哪一個為活動的,LP核心200和HP核心204的硬體介面和信號能力都是類似的。這致使行動裝置的其他硬體能夠與任一核心通信,而無需考慮或識別哪個核心為活動的。
此外,由於對稱通信,因此LP核心200和HP核心204的可程式化是類似的。具體而言,應用可在活動的LP核心200或HP核心204上透通地運作,而無需考慮或識別哪個核心是活動的。由膠合邏輯模組380所提供
的硬體和軟體透通性或對稱性致能硬體和軟體廠商可正常地使用、修改、開發、及/或添加產品,如同只存在一個核心一樣。
當HP核心204包括多個相同的核心時,中斷控制和多工裝置382可為各個核心產生遮蔽的中斷和WFI信號。此外,追蹤巨集和除錯多工裝置384可將追蹤巨集和除錯信號路由發送到各個核心。
現在參考圖9A和圖9B,表示了利用動態核心切換來最佳化行動裝置的電力消耗的PMS 400。在圖9A中,PMS 400包括PMS模組402、核心序列模組413、核心切換模組414和膠合邏輯模組380。在某些實現方式中,核心切換模組414可與監管器模組415集成。PMS模組402包括電力控制模組404、性能簡檔模組406、閒置簡檔模組408、OS任務簡檔模組410、和核心簡檔模組412。PMS模組402根據使用者簡檔、正在執行的應用的類型、從OS所接收的輸入以及經由各個裝置驅動器所接收到的各種硬體裝置的狀態,來管理電力消耗。
電力控制模組404可經由使用者簡檔從使用者接收與電力/性能有關的輸入。例如,使用者可在不考慮需要的電力消耗的情況下為應用指定性能級別。此外,電力控制模組404可接收來自性能簡檔模組406、閒置簡檔模組408、OS任務簡檔模組410、和核心簡檔模組412的輸入。
性能簡檔模組406可產生指示出應用的當前性能以及所需或想要的性能的輸出。例如,性能簡檔模組406可向電力控制模組404和核心簡檔模組412指示參數,這些參數包括應用的當前核心利用率、快取缺失率、以及系統負載是以記憶體傾向的、以核心為傾向的還是以I/O為傾向的。性能簡檔模組406可部分地根據從OS服務模組416、裝置驅動器模組418、和核心420所接收的輸入來產生輸出。核心420可包括LP和一個或多個HP核心。
OS服務模組416可包括系統核心輸入/輸出控制(IOCTL)模組422和排程模組424。系統核心IOCTL模組422可向電力控制模組404報告當前I/O使用率。排程模組424可排程OS任務。OS任務的示例包括任務數目、程序數目、和線程量。OS任務的排程被OS任務簡檔模組410所監視,並且報告給電力控制模組404。閒置簡檔模組408可接收來自OS服務模組416
的輸入,並且可在核心420閒置時向電力控制模組404報告。
裝置驅動器模組418可包括控制行動計算裝置的硬體裝置的裝置驅動器。例如,裝置驅動器模組418可包括電池驅動器模組426,其根據從PMS模組402所接收的信號來控制行動計算裝置的電池。電池驅動器模組426可將電池的狀態報告給電力控制模組404。
此外,裝置驅動器模組418可包括電力管理中斷控制(PMIC)模組428,其根據從PMS模組402所接收的輸入來控制硬體裝置所消耗的電力。裝置驅動器模組418可包括PMU模組430,其監視性能或資源利用率參數。資源利用率參數可包括正由核心420所執行的OS和應用的記憶體使用率、快取使用率、匯流排使用率、I/O使用率和CPU使用率。PMU模組430可將資源利用率參數報告給性能簡檔模組406。具體而言,在應用被核心420的其中之一執行時,當各種資源利用率參數跨越(即,超過或下降到低於)對應的預定閾值時,PMU模組430可進行報告。閾值可為可程式化的。
裝置驅動器模組418可進一步包括監視硬體裝置狀態的裝置逾時和狀態監視模組432。當任何硬體裝置閒置或者由於缺乏可用來執行所請求任務的充足資源而逾時時,裝置逾時和狀態監視模組432向電力控制模組404報告。電力控制模組404可關閉閒置的硬體裝置以節省電力。或者,電力控制模組404可啟動(即起始加電)額外的資源,使得硬體裝置可透過完成所請求的任務而不是逾時來表現出性能。
核心簡檔模組412、核心序列模組413、和核心切換模組414致能核心變形。核心簡檔模組412可根據應用的執行歷史或日誌來預期或預測電力/性能需求。例如,核心簡檔模組412可根據正由核心420其中活動的那一個每週期所執行的資料快取缺失率、指令快取缺失率、及/或指令,來預測應用每秒百萬指令(MIPS)的數目要求。核心簡檔模組412可從性能簡檔模組406、閒置簡檔模組408、和OS任務簡檔模組410的至少其中之一來接收歷史。根據該歷史,核心簡檔模組412可預期或預測應用可能需求的電力/性能。
當電力/性能要求改變為大於或小於閾值的值時,核心簡檔模組412可產生事件。例如,當核心利用率或快取缺失率超過各自的預定閾值時,核
心簡檔模組412可產生事件。事件是對依據電力/性能需求中的改變來切換核心的請求。此外,核心簡檔模組412可監視核心切換的頻率並產生事件以使猛移(即核心420的不必要切換)最小化。例如,核心簡檔模組412可監視在預定時段中核心420切換的次數。核心簡檔模組412可在該數目超過一動態可程式化的閾值時產生事件。當事件被接收到時,電力控制模組404可僅根據該事件來決定切換核心。或者,電力控制模組404可分析包括資源利用率(過去的、當前的、和計畫的)在內的所接收到的所有資訊並判定是否切換核心。
偶爾,儘管有該事件,電力控制模組404可無視核心簡檔模組412並決定不切換核心。例如,當行動裝置由線路電力供電並且HP核心是活動核心時,雖然該事件指示出性能要求較低,但是電力控制模組404也可不切換核心。或者,當HP核心是活動核心並且應用被指定為高性能應用時,雖然行動裝置不是由線路電力來供電的並且該事件由於電池較低而請求切換到LP核心,但是電力控制模組404也可不切換核心。
在圖9B中,核心序列模組413可包括FCS模組434、VCS模組436、和CCS模組438。當核心簡檔模組412發信事件時,電力控制模組404可對系統核心IOCTL模組422產生三種呼叫的至少其中之一:FCS呼叫、VCS呼叫、及/或CCS呼叫。系統核心IOCTL模組422接著可產生三種序列的至少其中之一:頻率改變序列、電壓改變序列、及/或核心改變序列。
根據所接收到的頻率改變序列,FCS模組434可產生改變活動核心的時鐘頻率的信號。根據所接收到的電壓改變序列,VCS模組436可產生改變活動核心的供電電壓的信號。根據所接收到的核心改變序列,CCS模組438可產生切換核心420的信號。CCS模組438可結合頻率及/或電壓改變序列來起始核心改變序列。核心改變序列減小了系統架空、系統潛伏、和核心轉換時間。現在更詳細來描述CCS模組438。
當電力控制模組404決定切換核心時,PMS模組402失能中斷並且對監管器模組415及/或核心切換模組414產生系統呼叫以切換核心420。根據系統呼叫,CCS模組438產生呼叫並且將該呼叫輸出到監管器模組415及/或核心切換模組414。監管器模組415及/或核心切換模組414切換核心
420。在核心420切換後,監管器模組415及/或核心切換模組414將控制返回到系統核心IOCTL模組422及/或OS服務模組416。然後,新啟動的核心繼續操作,並且PMS模組402致能中斷。
以下是CCS模組438何時可起始核心改變序列的一些示例。CCS模組438可在LP核心的核心利用率大於或等於高預定閾值時起始核心改變序列以從LP核心切換到HP核心。僅為示例,該高預定閾值可為某一百分比,例如80%或90%。CCS模組438可在LP核心的核心利用率大於或等於高預定閾值達到預定時段時起始核心改變序列。該預定時段可短可長。僅為示例,該預定時段可為兩秒或十秒。高預定閾值和預定時段可程式化以最佳化性能、電力並最小化不必要的核心切換。
CCS模組438可在LP核心的預期核心利用率大於或等於高預定閾值時起始核心改變序列。預期核心利用率可根據正被執行的應用的類型及/或應用的執行歷史來確定。僅為示例,由使用者標記為要求高性能的應用可啟動從LP核心到HP核心的核心切換。
CCS模組438可在HP核心的核心利用率小於或等於低預定閾值時起始核心改變序列以從HP核心切換到LP核心。僅為示例,該低預定閾值可為某一百分比,例如5%或10%。CCS模組438可在HP核心的核心利用率小於或等於高預定閾值達到預定時段時起始核心改變序列。該預定時段可短可長。僅為示例,該預定時段可為兩秒或十秒。低預定閾值和預定時段可程式化以最佳化性能、電力、並最小化不必要的核心切換。
CCS模組438可根據正由LP核心和HP核心的其中之一所執行的應用的數目來起始核心改變序列。僅為示例,當正被執行的應用的數目為10個或更多時,核心可從LP核心切換到HP核心,而當正被執行的應用的數目為10個或更少時,核心可從HP核心切換到LP核心。CCS模組438可根據應用的類型來起始核心改變序列。僅為示例,當正被執行的應用被指定為要求高性能時,核心可從LP核心切換到HP核心。最後,CCS模組438可根據被排程以由核心之一執行的指令的類型來起始核心改變序列。僅為示例,當LP核心正在執行一個應用並且被排程來執行的指令可由HP核心而不是LP核心所執行時,核心可從LP核心切換到HP核心。
更具體而言,CCS模組438可按以下方式產生切換核心420的信號。當CCS模組438接收核心改變序列時,CCS模組438向監管器模組415及/或核心切換模組414輸出呼叫。核心切換模組414依據核心改變序列來切換核心420。具體而言,核心切換模組414將活動核心的狀態轉移到非活動核心,在活動核心和非活動核心420之間執行交握,並且如下執行核心切換。
當PMS模組402失能對核心420的中斷時,核心切換模組414開始核心切換。核心切換模組414暫停對OS和應用的執行並將核心420與OS和應用隔離。核心切換模組414可儲存活動核心的狀態,包括核心暫存器、CP暫存器、堆疊指標、程式計數器、PMU事件、和MMU配置。核心切換模組414透過開啟或者增大對時鐘、L2快取(例如,若非活動核心是HP核心的情況下)和非活動核心的電力供應,來啟動非活動核心。
根據從非活動核心所接收的喚醒交換信號,核心切換模組414判定非活動核心是否在喚醒信號輸出到非活動核心之後的預定時間之內甦醒(即加電)。若非活動核心在預定時間內沒有確認(即沒有甦醒或加電),核心切換模組414則重新載入活動核心的狀態。核心切換模組414將控制返回給系統核心IOCTL模組422及/或OS服務模組416。活動核心依據重新載入的狀態來繼續執行應用,並且PMS模組402致能對活動核心的中斷。
然而,若核心切換模組414在預定時間內接收到來自非活動核心的確認,核心切換模組414將先前活動的核心的狀態轉移到新啟動的核心。核心切換模組414利用先前活動的核心的狀態來初始化新啟動的核心。在新啟動的核心初始化後,核心切換模組414透過切斷或減小對時鐘、L2快取(例如,先前活動的核心是HP核心的情況下)和先前活動的核心的電力供應,來將先前活動的核心關閉到非活動狀態。核心切換模組414將控制返回到系統核心IOCTL模組422及/或OS服務模組416。新啟動的核心依據載入的狀態繼續執行應用。PMS模組402致能對活動核心的中斷。因此,核心切換模組414以安全並與OS和應用隔離的方式來切換核心,並使得核心切換對OS和應用來說是透通的。
當核心切換模組414將操作從LP核心切換到HP核心時,OS和應用
繼續運作,就如同它們在具有提高的頻率或供電電壓的單個核心上繼續執行一樣。另一方面,當核心切換模組414將操作從HP核心切換到LP核心時,OS和應用繼續運作,就如同它們在具有降低的頻率或供電電壓的單個核心上繼續執行一樣。
核心切換模組414及/或監管器模組415可將核心切換期間核心420所交換的交握資訊傳輸給膠合邏輯模組380。交握資訊可包括指示出核心420中的哪一個活動、中斷何時失能/致能等的信號。根據交握信號,膠合邏輯模組380將中斷和來自應用的其他信號路由發送給核心420中活動的那一個。
在使用中,Core1可為LP核心,而Core2可為HP核心。行動計算裝置通常可利用Core1來執行大多數應用。Core1可在分別由頻率改變序列和電壓改變序列所指定的頻率和電壓級別上操作。頻率改變序列可包括依需要而連續地增大或減小活動核心的時鐘頻率的控制信號。電壓改變序列可包括依需要而連續地增大或減小活動核心的供電電壓的控制信號。
當要求高性能時(例如,當Core1的利用率在當前時鐘頻率和供電電壓下為最大時),FCS模組434可根據針對Core1所產生的頻率改變序列在一頻率範圍內從低到高改變Core1的時鐘頻率,直到達到Core1的最高及/或想要的操作頻率。或者,此外,VCS模組436可根據針對Core1所產生的電壓改變序列在一電壓範圍內從低到高改變Core1的供電電壓,直到達到Core1的最高及/或想要的操作供電電壓。
當應用需要更高性能時(即當Core1的利用率在最高的頻率和電壓下為最大時),核心切換模組414可開始核心切換。核心切換模組414可啟動Core2,將Core1的狀態交遞到Core2,並且關閉Core1或以其他方式使Core1不活動。具體而言,核心切換模組414可解除啟動Core1並複製Core1的狀態。然後,核心切換模組414可對Core2加電。在加電後,當Core2初始化時,核心切換模組414可將Core1的狀態交遞到Core2。即是,核心切換模組414可利用Core1的狀態來重設Core2。然後,核心切換模組414可關閉Core1。Core2可利用Core1的狀態在Core1進入非活動狀態處繼續執行應用。PMS模組402可致能中斷。排程模組424可將原本要由Core1所執行的線程排程來由Core2執行。
最初,Core2可在分別由頻率改變序列和電壓改變序列所指定的頻率和電壓級別上操作。然後,FCS模組434可依據應用所需要的性能級別在一頻率範圍內從低到高然後從高到低地改變Core2的時鐘頻率。或者,此外,VCS模組436可依據應用所需要的性能級別在一電壓範圍內從低到高然後從高到低地改變Core2的供電電壓。若HP核心包括複數個Core2,那麼隨著應用所需要的性能級別繼續變化,每個額外的Core2可啟動和解除啟動。
當應用所需的性能級別減小到Core2所表現出的性能不再是最佳化、高效、合乎需要及/或可行的級別時,核心切換模組414可切換核心。核心切換模組414可啟動Core1,將Core2的狀態交遞到Core1,並且關閉Core2或以其他方式使Core2不活動。具體而言,核心切換模組414可解除啟動Core2並複製Core2的狀態。然後,核心切換模組414可對Core1加電。在加電後,當Core1初始化時,核心切換模組414可將Core2的狀態交遞到Core1。即是,核心切換模組414可利用Core2的狀態來重設Core1。Core1可利用Core2的狀態在Core2進入非活動狀態處繼續執行應用。PMS模組402可致能中斷。然後,核心切換模組414可關閉Core2。排程模組424可將原本要由Core2所執行的線程排程來由Core1執行。
現在參考圖9C,示例性的核心切換模組414可包括模式切換模組414-1、核心啟動模組414-2、和狀態轉移模組414-3。當操作要被從LP模式切換到HP模式或從HP模式切換到LP模式時,模式切換模組414-1接收控制信號。在對當前活動的核心的中斷失能之後,核心啟動模組414-2停止對正被當前活動的核心(例如Core1)所執行的應用的處理。核心啟動模組414-2啟動當前非活動的核心(例如Core2)並且監視當前非活動的核心是否加電。在新啟動的核心(例如Core2)加電後,狀態轉移模組414-3將當前活動的核心的狀態轉移到新啟動的核心。新啟動的核心繼續對應用指令的執行,並且核心啟動模組414-2致能對新啟動核心的中斷。核心啟動模組414-2關閉Core1。
如此,核心切換模組414可動態地切換核心420並且減小電力消耗並提高行動裝置的性能。此外,由於核心切換模組414在核心420被切換時以安全且隔離的方式將一個核心的狀態交遞給另一個核心,因此核心420
的切換對於在核心420上運作的OS和應用來說是透通的。因此,核心420與現有的處理硬體是插接相容的,並且無需任何硬體修改就可替代現有的處理硬體。
現在參考圖10,表示了利用核心切換模組414來切換核心420的方法500。控制開始於步驟502。控制在步驟504中判定核心簡檔模組412是否產生了事件來切換核心420(例如,從活動核心Core1切換到非活動核心Core2)。如果步驟504的結果為否,那麼控制等待直到核心簡檔模組412產生事件來切換核心420。若步驟504的結果為是,那麼電力控制模組404在步驟506中根據當前的及/或預期的資源利用率來判定核心420是否可被切換。若步驟506的結果為否,控制忽略該事件並返回到步驟504。若步驟506的結果為是,控制則前進到步驟508。
控制在步驟508中失能中斷。在步驟510中,Core1完成任何正由Core1所執行的待處理的讀/寫(R/W)命令。控制在步驟512中向核心切換模組414產生系統管理中斷(SMI)呼叫,以切換核心420(例如解除啟動活動核心Core1並啟動非活動核心Core2)。
在步驟514中,控制儲存活動核心Core1的狀態。為了相關性,控制在步驟516中清除Core1的L1快取。在步驟518中,控制將事件發送到非活動核心Core2。控制在步驟520中判定Core2是否已透過加電並轉換到活動狀態而確認了事件。若步驟520的結果為是,控制則在步驟521中關閉或以其他方式減小至Core1的電力。在步驟522中,控制將所儲存的Core1的狀態載入到Core2中。在步驟524中,Core2在Core1被關閉處繼續執行應用。在步驟526中,控制致能中斷。控制返回到步驟504。
然而,若步驟520的結果為否(即,若Core2不確認事件並且不加電),那麼控制在步驟528中將Core1的狀態重新載入到Core1中。在步驟530中,Core1繼續執行應用。在步驟532中,控制致能中斷。控制返回到步驟504。
圖11A-11E表示了結合本發明教導的各種示例性實現方式。在圖11A中,本發明的教導可實現在行動電話858的多核控制模組中。行動電話858包括行動電話控制模組860、電源供應器862、記憶體864、儲存裝置866、
以及蜂巢式網路介面867,其可包括天線。行動電話858可包括網路介面868、麥克風870、音頻輸出872,諸如揚聲器及/或輸出插孔、顯示裝置874、以及使用者輸入裝置876,諸如鍵盤及/或點選裝置。若網路介面868包括無線區域網路介面,則可包括天線869。
行動電話控制模組860可實現依據本發明教導的多核控制模組。行動電話控制模組860可接收來自蜂巢式網路介面867、網路介面868、麥克風870、及/或使用者輸入裝置876的輸入信號。行動電話控制模組860可處理信號,包括編碼、解碼、濾波、及/或格式化,並產生輸出信號。輸出信號可傳輸到記憶體864、儲存裝置866、蜂巢式網路介面867、網路介面868、和音頻輸出872中的一個或多個。
記憶體864可包括隨機存取記憶體(RAM)及/或非揮發性記憶體。非揮發性記憶體可包括任何合適類型的半導體或固態記憶體,諸如快閃記憶體(包括NAND和NOR快閃記憶體)、相變記憶體、磁性RAM、以及其中每個記憶體單元具有多於兩個狀態的多態記憶體。儲存裝置866可包括光學儲存驅動器,例如DVD驅動器、及/或硬碟驅動器(HDD)。電源供應器862向行動電話858的元件提供電力。
在圖11B中,本發明的教導可實現在無線耳機958的多核控制模組中。無線耳機958包括耳機控制模組960、電源供應器962、記憶體964、儲存裝置966、以及基地台介面967,其可包括天線(圖中未示)。無線耳機958可包括麥克風970、音頻輸出972,諸如揚聲器及/或輸出插孔、顯示裝置974、以及使用者輸入裝置976,諸如鍵盤及/或點選裝置。
耳機控制模組960可實現依據本發明教導的多核控制模組。耳機控制模組960可接收來自基地台介面967、網路介面968、麥克風970、及/或使用者輸入裝置976的輸入信號。耳機控制模組960可處理信號,包括編碼、解碼、濾波、及/或格式化,並產生輸出信號。輸出信號可被傳輸到記憶體964、儲存裝置966、基地台介面967和音頻輸出972中的一個或多個。
記憶體964可包括RAM及/或非揮發性記憶體。非揮發性記憶體可包括任何合適類型的半導體或固態記憶體,諸如快閃記憶體(包括NAND和NOR快閃記憶體)、相變記憶體、磁性RAM以及其中每個記憶體單元具有
多於兩個狀態的多態記憶體。儲存裝置966可包括光學儲存驅動器,例如DVD驅動器、及/或HDD。電源供應器962向無線耳機958的元件提供電力。
在圖11C中,本發明的教導可實現在行動裝置989的多核控制模組中。行動裝置989可包括行動裝置控制模組990、電源供應器991、記憶體992、儲存裝置993、網路介面994、以及外部介面999。若網路介面994包括無線區域網路介面,則可包括天線(圖中未示)。
行動裝置控制模組990可實現依據本發明教導的多核控制模組。行動裝置控制模組990可接收來自網路介面994及/或外部介面999的輸入信號。外部介面999可包括USB、紅外線、及/或乙太網路。輸入信號可包括壓縮的音頻及/或視訊,並且可遵循MP3格式。此外,行動裝置控制模組990可接收來自使用者輸入996的輸入,諸如鍵盤、觸控板、或獨立的按鈕。行動裝置控制模組990可處理輸入信號,包括編碼、解碼、濾波、及/或格式化,並產生輸出信號。
行動裝置控制模組990可向音頻輸出997輸出音頻信號,並向顯示裝置998輸出視訊信號。音頻輸出997可包括揚聲器及/或輸出插孔。顯示裝置998可呈現圖形使用者介面,其可包括選單、圖示等。電源供應器991向行動裝置989的元件提供電力。記憶體992可包括RAM及/或非揮發性記憶體。
非揮發性記憶體可包括任何合適類型的半導體或固態記憶體,諸如快閃記憶體(包括NAND和NOR快閃記憶體)、相變記憶體、磁性RAM、以及其中每個記憶體單元具有多於兩個狀態的多態記憶體。儲存裝置993可包括光學儲存驅動器,例如DVD驅動器、及/或HDD。行動裝置可包括個人數位助理、媒體播放器、膝上型電腦、遊戲控制台、或其他行動計算裝置。
在圖11D中,本發明的教導可實現在GPS 1089的多核控制模組中。GPS 1089可包括GPS控制模組1090、電源供應器1091、記憶體1092、儲存裝置1093、和外部介面1099。
GPS控制模組1090可實現依據本發明教導的多核控制模組。GPS控制
模組1090可接收來自外部介面1099的輸入信號。外部介面1099可包括無線信號、USB、紅外線、及/或乙太網路。輸入信號可包括壓縮的音頻及/或視訊,並且可遵循MP3格式。此外,GPS控制模組1090可接收來自使用者輸入1096的輸入,諸如鍵盤、觸控板、或獨立的按鈕。GPS控制模組1090可處理輸入信號,包括編碼、解碼、濾波、及/或格式化,並產生輸出信號。
GPS控制模組1090可向音頻輸出1097輸出音頻信號,並向顯示裝置1098輸出視訊信號。音頻輸出1097可包括揚聲器及/或輸出插孔。顯示裝置1098可呈現圖形使用者介面,其可包括選單、圖示等。電源供應器1091向GPS 1089的元件提供電力。記憶體1092可包括RAM及/或非揮發性記憶體。
非揮發性記憶體可包括任何合適類型的半導體或固態記憶體,諸如快閃記憶體(包括NAND和NOR快閃記憶體)、相變記憶體、磁性RAM、以及其中每個記憶體單元具有多於兩個狀態的多態記憶體。儲存裝置1093可包括光學儲存驅動器,例如DVD驅動器、及/或HDD。行動裝置可包括個人數位助理、媒體播放器、膝上型電腦、遊戲控制台、或其他行動計算裝置。
在圖11E中,本發明的教導可實現在桌上型電腦及/或伺服器1100的多核控制模組1103中。桌上型電腦及/或伺服器1100可包括多核處理系統1102,其包括多核控制模組1103。桌上型電腦及/或伺服器1100可進一步包括I/O核心1104、記憶體1106、和I/O裝置1108。桌上型電腦及/或伺服器1100可由電源供應器1112供電。
多核處理系統1102、I/0核心1104、和記憶體1106可經由系統匯流排1110通信。I/O裝置1108可包括HDD、CD驅動器、DVD驅動器、顯示裝置、鍵盤、和其他I/O裝置。I/O核心1104可包括控制I/O裝置1108的I/O控制器。多核處理系統1102可執行儲存在HDD、CD驅動器、及/或DVD驅動器上的OS和應用。在多核處理系統1102執行應用時,多核控制模組1103可提供提高的電力節省和提高的性能。
本領域的技術人員現在可從以上描述中意識到本發明的廣泛教導可透過多種形式來實現。因此,雖然本發明包括具體示例,但是本發明的真實
範圍不應限制於此,因為在研究所附圖式、說明書和所附申請專利範圍之後,本領域的技術人員可明白其他修改。
1‧‧‧非對稱MP系統
2‧‧‧主處理器
3‧‧‧次處理器
5‧‧‧對稱MP系統
10‧‧‧非對稱MP系統
12‧‧‧LP核心(處理器)
16‧‧‧HP核心(處理器)
20‧‧‧處理系統
24‧‧‧HP核心
26‧‧‧快取
28‧‧‧LP核心
30‧‧‧快取
34‧‧‧控制模組
40‧‧‧記憶體
42-1、42-2、42-P‧‧‧第一應用
44-1、44-2、44-Q‧‧‧第二應用
46-1、46-2、46-R‧‧‧第三應用
106‧‧‧電晶體
110‧‧‧電晶體
112‧‧‧暫存器檔
114‧‧‧控制模組
116‧‧‧性能簡檔模組
118‧‧‧閒置簡檔模組
120‧‧‧核心簡檔模組
122‧‧‧線程轉移模組
124‧‧‧快取監視模組
130‧‧‧SOC
142‧‧‧PHP
疊流
144‧‧‧SHP
級
146‧‧‧PHP
疊流
148‧‧‧SHP
級
200‧‧‧LP核心
202‧‧‧L1快取
204‧‧‧HP核心
205‧‧‧匯流排
206‧‧‧L1快取
208‧‧‧L2快取
210‧‧‧高速記憶體
212‧‧‧核心切換模組
213‧‧‧監管器模組
220‧‧‧系統核心模組
224-1、224-2、...、224-P‧‧‧應用
228‧‧‧主記憶體
234‧‧‧I/O裝置
240‧‧‧核心簡檔模組
242‧‧‧PMS模組
250-324‧‧‧步驟
300‧‧‧方法
304-338‧‧‧步驟
328-376‧‧‧步驟
380‧‧‧膠合邏輯模組
382‧‧‧中斷控制和多工裝置
384‧‧‧追蹤巨集和除錯多工裝置
386‧‧‧多工控制模組
400‧‧‧PMS
402‧‧‧PMS模組
404‧‧‧電力控制模組
406‧‧‧性能簡檔模組
408‧‧‧閒置簡檔模組
410‧‧‧OS任務簡檔模組
412‧‧‧核心簡檔模組
413‧‧‧核心序列模組
414‧‧‧核心切換模組
414-1‧‧‧模式切換模組
414-2‧‧‧核心啟動模組
414-3‧‧‧狀態轉移模組
415‧‧‧監管器模組
416‧‧‧OS服務模組
418‧‧‧裝置驅動器模組
420‧‧‧LP和HP核心
422‧‧‧系統核心IOCTL模組
424‧‧‧排程模組
426‧‧‧電池驅動器模組
428‧‧‧PMIC模組
430‧‧‧PMU模組
432‧‧‧裝置逾時和狀態監視模組
434‧‧‧FCS模組
436‧‧‧VCS模組
438‧‧‧CCS模組
500‧‧‧方法
502-532‧‧‧步驟
858‧‧‧行動電話
860‧‧‧行動電話控制模組
862‧‧‧電源供應器
864‧‧‧記憶體
866‧‧‧儲存裝置
868‧‧‧蜂巢式網路介面
869‧‧‧天線
870‧‧‧麥克風
872‧‧‧音頻輸出
874‧‧‧顯示裝置
876‧‧‧使用者輸入
958‧‧‧無線耳機
960‧‧‧耳機控制模組
962‧‧‧電源供應器
964‧‧‧記憶體
966‧‧‧儲存裝置
967‧‧‧基地台介面
970‧‧‧麥克風
972‧‧‧音頻輸出
974‧‧‧顯示裝置
976‧‧‧使用者輸入
989‧‧‧行動裝置
990‧‧‧行動裝置控制模組
991‧‧‧電源供應器
992‧‧‧記憶體
993‧‧‧儲存裝置
994‧‧‧網路介面
996‧‧‧使用者輸入
997‧‧‧音頻輸出
998‧‧‧顯示裝置
999‧‧‧外部介面
1089‧‧‧GPS
1090‧‧‧GPS控制模組
1091‧‧‧電源供應器
1092‧‧‧記憶體
1093‧‧‧儲存裝置
1096‧‧‧使用者輸入
1097‧‧‧音頻輸出
1098‧‧‧顯示裝置
1099‧‧‧外部介面
1100‧‧‧桌上型電腦/伺服器
1102‧‧‧多核處理系統
1103‧‧‧多核控制模組
1104‧‧‧I/O核心
1106‧‧‧記憶體
1108‧‧‧I/O裝置
1110‧‧‧系統匯流排
1112‧‧‧電源供應器
從詳細描述和所附圖式中將更充分地理解本發明,其中:圖1A是依據先前技術非對稱MP系統的功能性方塊圖;圖1B是依據先前技術對稱MP系統的功能性方塊圖;圖2是依據本發明對稱MP系統的功能性方塊圖;圖3A和圖3B是依據本發明包括高功率核心和低功率核心的示例性處理系統的功能性方塊圖;圖3C是圖2A和圖2B示例性控制模組的功能性方塊圖;圖3D是圖3A示例性核心利用率監視模組的功能性方塊圖;圖4是用於操作包括高功率核心和低功率核心的處理系統的示例性方法的流程圖;圖5是具有第一核心和第二核心的另一示例性控制模組的功能性方塊圖;圖6是用於操作圖5第一核心和第二核心的示例性方法的流程圖;圖7是用於操作圖5第一核心和第二核心的另一示例性方法的流程圖;圖8A和圖8B是依據本發明示例性核心變形系統的功能性方塊圖;圖9A是依據本發明動態地切換核心的示例性電力管理系統的功能性方塊圖;圖9B是依據本發明動態地切換核心的另一示例性電力管理系統的功能性方塊圖;圖9C是示例性核心切換模組的功能性方塊圖;圖10是依據本發明用於利用與監管器模組所集成的核心切換模組來切換核心的示例性方法的流程圖;圖11A是示例性行動電話的功能性方塊圖;圖11B是與基地台通信的示例性無線耳機的功能性方塊圖;圖11C是示例性行動裝置的功能性方塊圖;圖11D是示例性GPS的功能性方塊圖;以及圖11E是桌上型電腦及/或伺服器的功能性方塊圖。
20‧‧‧處理系統
24‧‧‧HP核心
26‧‧‧快取
28‧‧‧LP核心
30‧‧‧快取
34‧‧‧控制模組
40‧‧‧記憶體
42-1、42-2、42-P‧‧‧第一應用
44-1、44-2、44-Q‧‧‧第二應用
46-1、46-2、46-R‧‧‧第三應用
Claims (53)
- 一種動態核心切換系統,包括:一第一非對稱核心,其在所述系統於一第一模式中操作時執行一應用,並且在所述系統於一第二模式中操作時不活動;一第二非對稱核心,其在所述系統於所述第二模式中操作時執行所述應用;一核心簡檔模組,其根據所述第一非對稱核心每週期所執行的一資料快取缺失率、一指令快取缺失率、以及指令的至少其中之一,來產生用於執行所述應用的一預期指令執行率;以及一核心切換模組,其根據所述預期指令執行率,在所述第一模式和所述第二模式之間切換所述系統的操作,在接收到一第一控制信號後選擇性地停止所述第一非對稱核心對所述應用的處理,並且將所述第一非對稱核心的一第一狀態轉移到所述第二非對稱核心,其中所述第二非對稱核心在所述第二模式中繼續執行所述應用。
- 依據申請專利範圍第1項所述的系統,其中,所述第一控制信號指示出中斷是失能的。
- 依據申請專利範圍第1項所述的系統,其中,當所述第二非對稱核心在所述第二模式期間繼續執行所述應用時,指令是在沒有指令轉換的情況下執行的。
- 依據申請專利範圍第1項所述的系統,進一步包括一作業系統(OS),其向所述應用提供服務,其中所述核心切換模組對所述OS透通地在所述第一非對稱核心和所述第二非對稱核心之間,切換所述應用的執行。
- 依據申請專利範圍第1項所述的系統,其中,所述第一非對稱核心的一第一最大速度大於所述第二非對稱核心的一第二最大速度。
- 依據申請專利範圍第1項所述的系統,其中,所述第一非對稱核心以大於一預定頻率的頻率來操作,並且其中所述第二非對稱核心以小於所述預定頻率的頻率來操作。
- 依據申請專利範圍第1項所述的系統,其中,所述第一非對稱核心的一第一最大操作功率級別大於所述第二非對稱核心的一第二最大操作功率級別。
- 依據申請專利範圍第1項所述的系統,其中,所述第一非對稱核心使用一第一指令集架構(ISA),並且所述第二非對稱核心使用一第二ISA,並且其中所述第一ISA與所述第二ISA相容。
- 依據申請專利範圍第8項所述的系統,其中,所述第一ISA的一第一指令集是所述第二ISA的一第二指令集的一超集,並且其中所述第一集包括較所述第二集更多的指令。
- 依據申請專利範圍第4項所述的系統,其中,所述OS包括一系統核心,並且其中所述核心切換模組在所述系統核心的一級別之上來執行。
- 依據申請專利範圍第1項所述的系統,進一步包括一監管器模組,其中所述核心切換模組與所述監管器模組集成。
- 依據申請專利範圍第1項所述的系統,其中,當所述核心切換模組選擇性地停止所述第一非對稱核心對所述應用的處理時,所述核心切換模組儲存所述第一狀態。
- 依據申請專利範圍第12項所述的系統,其中,所述核心切換模組對所述第二非對稱核心加電,並利用所述第一狀態來初始化所述第二非對稱核心。
- 依據申請專利範圍第2項所述的系統,其中,在所述第二非對稱核心繼續執行所述應用之後,所述中斷被致能。
- 依據申請專利範圍第13項所述的系統,其中,當所述第二非對稱核心加電時,所述核心切換模組關閉所述第一非對稱核心,並且其中在所述第一非對稱核心關閉之後,不向所述第一非對稱核心提供電力,或向所述第一非對稱核心提供待機電力。
- 依據申請專利範圍第15項所述的系統,進一步包括一第2級(L2)快取,其與所述第一非對稱核心通信,其中在所述第一非對稱核心關閉之後,不向所述L2快取提供電力,或向所述L2快取提供待機電力。
- 依據申請專利範圍第13項所述的系統,其中,當所述第二非對稱核心未能加電時,所述核心切換模組利用所述第一狀態來初始化所述第一非對稱核心,其中所述第一非對稱核心在所述第一模式中繼續執行所述應用,並且其中中斷被致能。
- 依據申請專利範圍第1項所述的系統,其中,所述核心切換模組在所述第二模式和所述第一模式之間切換所述系統的操作,在接收到所述第一控制信號之後選擇性地停止所述第二非對稱核心對所述應用的處理,並且將所述第二非對稱核心的一第二狀態轉移到所述第一非對稱核心,其中所述第一非對稱核心在所述第一模式中繼續執行所述應用,並且其中所述第一控制信號指示出中斷是失能的。
- 依據申請專利範圍第18項所述的系統,其中,當所述第一非對稱核心在所述第一模式期間繼續執行所述應用時,指令是在沒有指令轉換的情況下執行的。
- 依據申請專利範圍第18項所述的系統,進一步包括一OS,其向所述應用提供服務,其中所述核心切換模組對所述OS透通地在所述第二非對稱核心和所述第一非對稱核心之間切換所述應用的執行。
- 依據申請專利範圍第18項所述的系統,其中,當所述核心切換模組選擇性地停止所述第二非對稱核心對所述應用的處理時,所述核心切換模組儲存所述第二狀態。
- 依據申請專利範圍第21項所述的系統,其中,所述核心切換模組對所述第一非對稱核心加電,並利用所述第二狀態來初始化所述第一非對稱核心。
- 依據申請專利範圍第18項所述的系統,其中,在所述第一非對稱核心繼續執行所述應用之後,所述中斷被致能。
- 依據申請專利範圍第22項所述的系統,進一步包括一L2快取,其與所述第一非對稱核心通信,其中在所述第一非對稱核心加電之後,向所述L2快取提供電力。
- 依據申請專利範圍第22項所述的系統,其中, 當所述第一非對稱核心加電時,所述核心切換模組關閉所述第二非對稱核心,並且其中在所述第二非對稱核心關閉之後,不向所述第二非對稱核心提供電力,或向所述第二非對稱核心提供待機電力。
- 依據申請專利範圍第22項所述的系統,其中,當所述第一非對稱核心未能加電時,所述核心切換模組利用所述第二狀態來初始化所述第二非對稱核心,並且其中所述第二非對稱核心在所述第二模式中繼續執行所述應用,並且其中所述中斷被致能。
- 依據申請專利範圍第1項所述的系統,其中,所述核心簡檔模組根據核心利用率、資源利用率和所述應用的性能的至少其中之一來產生一第二控制信號。
- 依據申請專利範圍第27項所述的系統,進一步包括一核心改變序列(CCS)模組,其根據所述第二控制信號來啟動一CCS,其中所述核心切換模組根據所述CCS在所述第一非對稱核心和第二非對稱核心的其中之一與所述第一非對稱核心和第二非對稱核心的另一個之間,切換所述應用的執行。
- 依據申請專利範圍第28項所述的系統,其中,所述CCS模組在發生以下各項的至少其中之一時,啟動所述CCS:所述應用對所述第二非對稱核心的所述核心利用率大於或等於一第一預定閾值;所述應用對所述第二非對稱核心的所述核心利用率大於或等於一第二預定閾值達到一第一預定時段;所述第二非對稱核心的一預期核心利用率大於或等於一第三預定閾值,其中所述預期核心利用率是根據所述應用的一類型和所述應用的一執行歷史的至少其中之一來確定的;所述應用對所述第一非對稱核心的所述核心利用率小於或等於一第四預定閾值;以及所述應用對所述第一非對稱核心的所述核心利用率小於或等於一第五預定閾值達到一第二預定時段。
- 依據申請專利範圍第28項所述的系統,其中,所述CCS模組根據所述應用的一類型、應用的一數目、和指令的一類 型的至少其中之一來啟動所述CCS。
- 依據申請專利範圍第27項所述的系統,其中,所述核心簡檔模組根據在所述第一非對稱核心和第二非對稱核心的其中之一與所述第一非對稱核心和第二非對稱核心的另一個之間,切換應用的執行的次數,來產生所述第二控制信號。
- 依據申請專利範圍第27項所述的系統,進一步包括一電力控制模組,其控制所述系統的電力消耗,並且根據所述第二控制信號和所述電力消耗來產生一第三控制信號。
- 依據申請專利範圍第32項所述的系統,進一步包括一CCS模組,其根據所述第三控制信號來啟動一CCS,其中所述核心切換模組根據所述CCS在所述第一非對稱核心和第二非對稱核心的其中之一與所述第一非對稱核心和第二非對稱核心的另一個之間,切換所述應用的執行。
- 依據申請專利範圍第28項所述的系統,進一步包括一頻率改變序列(FCS)模組,其根據所述第二控制信號來啟動一FCS,並且根據所述FCS來選擇所述第一非對稱核心和第二非對稱核心的至少其中之一的一操作頻率。
- 依據申請專利範圍第28項所述的系統,進一步包括一電壓改變序列(VCS)模組,其根據所述第二控制信號來啟動一VCS,並且根據所述VCS來選擇所述第一非對稱核心和第二非對稱核心的至少其中之一的一供電電壓。
- 依據申請專利範圍第18項所述的系統,進一步包括一電力管理模組,其當所述系統在所述第一模式和所述第二模式之間切換所述操作時,使所述中斷失能,並且當所述系統在所述第二模式和所述第一模式之間切換所述操作時,使所述中斷失能。
- 依據申請專利範圍第28項所述的系統,進一步包括複數個所述第一非對稱核心,其中,當所述系統在所述第一模式中操作時,所述核心切換模組根據所述CCS來選擇性地啟動和解除啟動一個以上的該複數個所述第一非對稱核心。
- 依據申請專利範圍第1項所述的系統,進一步包括一膠合邏輯模組,其 選擇性地與所述核心切換模組通信,並且其:接收中斷;接收來自所述應用的第一信號;以及將所述中斷和所述第一信號路由發送到所述第一非對稱核心和第二非對稱核心中由所述核心切換模組所啟動的那一個。
- 一種系統單晶片(SOC),包括如申請專利範圍第1項所述的系統。
- 一種系統級封裝(SIP),包括如申請專利範圍第1項所述的系統。
- 一種核心切換系統,包括:一模式切換模組,其接收一切換信號以在一第一模式和一第二模式之間切換操作,其中,在所述第一模式期間,與應用相關的指令由一第一非對稱核心來執行,並且一第二非對稱核心不活動,其中,在所述第二模式期間,所述指令由所述第二非對稱核心來執行,並且所述第一非對稱核心不活動;一核心啟動模組,其在中斷失能之後停止所述第一非對稱核心對所述應用的處理;一狀態轉移模組,其將所述第一非對稱核心的一狀態轉移到所述第二非對稱核心,其中,所述核心啟動模組允許所述第二非對稱核心繼續執行所述指令並且所述中斷被致能;以及一核心簡檔模組,其根據所述第一非對稱核心每週期所執行的一資料快取缺失率、一指令快取缺失率、以及指令的至少其中之一,來產生用於執行所述應用的一預期指令執行率,並且根據所述預期指令執行率來產生所述切換信號。
- 依據申請專利範圍第41項所述的核心切換系統,其中,當所述第二非對稱核心在所述第二模式期間繼續執行所述指令時,所述指令是在沒有指令轉換的情況下執行的。
- 依據申請專利範圍第41項所述的核心切換系統,其中,所述第一非對稱核心的一第一最大速度和一第一最大操作功率級別分別大於所述第二非對稱核心的一第二最大速度和一第二最大操作功率 級別。
- 依據申請專利範圍第41項所述的核心切換系統,其中,當所述第二非對稱核心繼續執行所述指令時,所述核心啟動模組不向所述第一非對稱核心提供電力,或向所述第一非對稱核心提供待機電力。
- 依據申請專利範圍第41項所述的核心切換系統,進一步包括一CCS模組,其根據所述切換信號來產生一CCS,其中所述核心啟動模組根據所述CCS來對所述第一非對稱核心和第二非對稱核心的其中之一加電並關閉所述第一非對稱核心和第二非對稱核心中的另一個。
- 一種動態核心切換裝置,包括:記憶體,其儲存向應用提供服務的OS,該OS包括:一系統核心;一核心切換模組,其在一第一模式和一第二模式之間切換操作,其中在所述第一模式期間,與所述應用相關的指令由一第一非對稱核心來執行,並且一第二非對稱核心不活動,並且在所述第二模式期間,所述指令由所述第二非對稱核心來執行,並且所述第一非對稱核心不活動,並且其中,所述核心切換模組在高於所述系統核心的一級別之上來操作;以及一核心簡檔模組,其根據所述第一非對稱核心每週期所執行的一資料快取缺失率、一指令快取缺失率、和一指令的至少其中之一,來產生用於執行所述應用的一預期指令執行率。
- 依據申請專利範圍第46項所述的裝置,其中,所述核心切換模組對所述OS透通地在所述第一模式和所述第二模式之間切換操作。
- 依據申請專利範圍第46項所述的裝置,其中,所述核心切換模組包括:一模式切換模組,其接收一切換信號以在所述第一模式和所述第二模式之間切換操作;一核心啟動模組,其在中斷失能之後停止所述第一非對稱核心對所述應用的處理;以及 一狀態轉移模組,其將所述第一非對稱核心的一狀態轉移到所述第二非對稱核心,其中,所述核心啟動模組允許所述第二非對稱核心繼續執行所述指令並且致能所述中斷。
- 依據申請專利範圍第46項所述的裝置,其中,當所述第二非對稱核心在所述第二模式期間繼續執行所述指令時,所述第二非對稱核心在沒有指令轉換的情況下執行所述指令。
- 依據申請專利範圍第46項所述的裝置,其中,所述第一非對稱核心的一第一最大速度和一第一最大操作功率級別分別大於所述第二非對稱核心的一第二最大速度和一第二最大操作功率級別。
- 依據申請專利範圍第46項所述的裝置,其中,當所述第二非對稱核心繼續執行所述指令時,所述核心切換模組不向所述第一非對稱核心提供電力,或向所述第一非對稱核心提供待機電力。
- 依據申請專利範圍第46項所述的裝置,其中,所述核心切換模組根據所述預期指令執行率在所述第一模式和第二模式的其中之一與所述第一模式和第二模式中的另一個之間切換操作。
- 依據申請專利範圍第46項所述的裝置,進一步包括一CCS模組,其根據所述第一非對稱核心和第二非對稱核心的其中之一每週期所執行的一資料快取缺失率、一指令快取缺失率、和一指令的至少其中之一,來產生一CCS,其中所述核心切換模組根據所述CCS來對所述第一非對稱核心和第二非對稱核心的其中之一加電並關閉所述第一非對稱核心和第二非對稱核心中的另一個。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US96814307P | 2007-08-27 | 2007-08-27 | |
US97893607P | 2007-10-10 | 2007-10-10 | |
US98160607P | 2007-10-22 | 2007-10-22 | |
US2243108P | 2008-01-21 | 2008-01-21 | |
US2947608P | 2008-02-18 | 2008-02-18 | |
US4964108P | 2008-05-01 | 2008-05-01 | |
US5805008P | 2008-06-02 | 2008-06-02 | |
US12/145,660 US20080263324A1 (en) | 2006-08-10 | 2008-06-25 | Dynamic core switching |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200915061A TW200915061A (en) | 2009-04-01 |
TWI484329B true TWI484329B (zh) | 2015-05-11 |
Family
ID=40388111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097131838A TWI484329B (zh) | 2007-08-27 | 2008-08-20 | 動態核心切換 |
Country Status (6)
Country | Link |
---|---|
US (3) | US20080263324A1 (zh) |
EP (1) | EP2193419B1 (zh) |
JP (1) | JP5257711B2 (zh) |
CN (1) | CN101790709A (zh) |
TW (1) | TWI484329B (zh) |
WO (1) | WO2009029643A2 (zh) |
Families Citing this family (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886917B1 (en) * | 2007-04-25 | 2014-11-11 | Hewlett-Packard Development Company, L.P. | Switching to core executing OS like codes upon system call reading greater than predetermined amount of data |
US9442758B1 (en) | 2008-01-21 | 2016-09-13 | Marvell International Ltd. | Dynamic processor core switching |
US8615647B2 (en) | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US8037350B1 (en) * | 2008-04-30 | 2011-10-11 | Hewlett-Packard Development Company, L.P. | Altering a degree of redundancy used during execution of an application |
US20110213950A1 (en) * | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
US20110213947A1 (en) * | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
US20090309243A1 (en) * | 2008-06-11 | 2009-12-17 | Nvidia Corporation | Multi-core integrated circuits having asymmetric performance between cores |
US20110213998A1 (en) * | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
US9672019B2 (en) * | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9189049B2 (en) * | 2008-12-24 | 2015-11-17 | Stmicroelectronics International N.V. | Power management in a device |
US8122269B2 (en) * | 2009-01-07 | 2012-02-21 | International Business Machines Corporation | Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores |
JP4970479B2 (ja) * | 2009-03-03 | 2012-07-04 | ソニー株式会社 | 情報処理システム |
US8364857B2 (en) * | 2009-08-31 | 2013-01-29 | Qualcomm Incorporated | Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network |
US8839012B2 (en) * | 2009-09-08 | 2014-09-16 | Advanced Micro Devices, Inc. | Power management in multi-GPU systems |
US8619911B2 (en) | 2009-12-15 | 2013-12-31 | Stmicroelectronics International N.V. | Quadrature signal decoding using a driver |
US8654895B2 (en) * | 2009-12-15 | 2014-02-18 | Stmicroelectronics International N.V. | Frequency modulated signal decoding using a driver |
US8650629B2 (en) * | 2009-12-16 | 2014-02-11 | Intel Corporation | Interface logic for a multi-core system-on-a-chip (SoC) |
US8832483B1 (en) * | 2009-12-16 | 2014-09-09 | Applied Micro Cicuits Corporation | System-on-chip with power-save mode processor |
KR101651871B1 (ko) * | 2009-12-28 | 2016-09-09 | 삼성전자주식회사 | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 |
KR101640848B1 (ko) * | 2009-12-28 | 2016-07-29 | 삼성전자주식회사 | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 |
US8418187B2 (en) | 2010-03-01 | 2013-04-09 | Arm Limited | Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system |
US8533505B2 (en) | 2010-03-01 | 2013-09-10 | Arm Limited | Data processing apparatus and method for transferring workload between source and destination processing circuitry |
US20110216078A1 (en) * | 2010-03-04 | 2011-09-08 | Paul Blinzer | Method, System, and Apparatus for Processing Video and/or Graphics Data Using Multiple Processors Without Losing State Information |
US8484495B2 (en) * | 2010-03-25 | 2013-07-09 | International Business Machines Corporation | Power management in a multi-processor computer system |
EP2555112A4 (en) * | 2010-03-31 | 2014-08-13 | Fujitsu Ltd | MULTI-CYCLE PROCESSOR SYSTEM, POWER CONTROL METHOD AND PERFORMANCE CONTROL METHOD |
US9811385B2 (en) * | 2010-04-28 | 2017-11-07 | Wind River Systems, Inc. | Optimizing task management |
US8751833B2 (en) * | 2010-04-30 | 2014-06-10 | Arm Limited | Data processing system |
US8381004B2 (en) | 2010-05-26 | 2013-02-19 | International Business Machines Corporation | Optimizing energy consumption and application performance in a multi-core multi-threaded processor system |
WO2011155047A1 (ja) * | 2010-06-10 | 2011-12-15 | 富士通株式会社 | マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム |
GB2481232A (en) * | 2010-06-16 | 2011-12-21 | Advanced Risc Mach Ltd | Cache for a multiprocessor system which can treat a local access operation as a shared access operation |
US20110320766A1 (en) * | 2010-06-29 | 2011-12-29 | Youfeng Wu | Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type |
WO2012011901A1 (en) * | 2010-07-21 | 2012-01-26 | Hewlett-Packard Development Company, L.P. | Accessing a local storage device using an auxiliary processor |
CA2716646C (en) | 2010-10-14 | 2020-04-07 | Ibm Canada Limited - Ibm Canada Limitee | Coordinated approach between middleware application and sub-systems |
WO2012051972A2 (de) * | 2010-10-19 | 2012-04-26 | Conti Temic Microelectronic Gmbh | Verfahren, zur effizienten nutzung eines zwei- oder mehrkernprozessors durch ein betriebssystem |
TWI416843B (zh) * | 2010-12-29 | 2013-11-21 | Univ Nat Taiwan | 動態電源排程與即時監控系統及其方法 |
WO2012120654A1 (ja) * | 2011-03-08 | 2012-09-13 | 富士通株式会社 | タスクスケジューリング方法およびマルチコアシステム |
US8683243B2 (en) * | 2011-03-11 | 2014-03-25 | Intel Corporation | Dynamic core selection for heterogeneous multi-core systems |
US9645628B1 (en) * | 2011-05-09 | 2017-05-09 | EMC IP Holding Company LLC | Combined data storage and computing appliance that provides scalable storage in a clustered computing environment |
CN102759983A (zh) * | 2011-05-10 | 2012-10-31 | 任少华 | 具有多个工作模式的计算机及其操作系统 |
GB2491915A (en) * | 2011-06-08 | 2012-12-19 | Inst Information Industry | Super operating system for a heterogeneous computer system |
CN106020424B (zh) * | 2011-09-06 | 2019-08-06 | 英特尔公司 | 有功率效率的处理器体系结构 |
CN106095046A (zh) * | 2011-09-06 | 2016-11-09 | 英特尔公司 | 有功率效率的处理器体系结构 |
US9069553B2 (en) * | 2011-09-06 | 2015-06-30 | Marvell World Trade Ltd. | Switching tasks between heterogeneous cores |
KR101873935B1 (ko) * | 2011-09-06 | 2018-07-04 | 인텔 코포레이션 | 전력 효율적 프로세서 아키텍처 |
WO2013048468A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US8839429B2 (en) * | 2011-11-07 | 2014-09-16 | Qualcomm Incorporated | Methods, devices, and systems for detecting return-oriented programming exploits |
WO2013079988A1 (en) * | 2011-11-28 | 2013-06-06 | Freescale Semiconductor, Inc. | Integrated circuit device, asymmetric multi-core processing module, electronic device and method of managing execution of computer program code therefor |
US20130155081A1 (en) * | 2011-12-15 | 2013-06-20 | Ati Technologies Ulc | Power management in multiple processor system |
WO2013095411A1 (en) * | 2011-12-21 | 2013-06-27 | Intel Corporation | INCORPORATING ACCESS CONTROL FUNCTIONALITY INTO A SYSTEM ON A CHIP (SoC) |
US9569278B2 (en) | 2011-12-22 | 2017-02-14 | Intel Corporation | Asymmetric performance multicore architecture with same instruction set architecture |
WO2013100996A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Binary translation in asymmetric multiprocessor system |
US9348594B2 (en) * | 2011-12-29 | 2016-05-24 | Intel Corporation | Core switching acceleration in asymmetric multiprocessor system |
US9727388B2 (en) * | 2011-12-29 | 2017-08-08 | Intel Corporation | Migrating threads between asymmetric cores in a multiple core processor |
WO2013101139A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Providing an asymmetric multicore processor system transparently to an operating system |
KR101842200B1 (ko) | 2012-01-31 | 2018-03-26 | 엘지전자 주식회사 | 이동 단말기 및 그 제어방법 |
KR101880452B1 (ko) | 2012-02-06 | 2018-08-17 | 삼성전자주식회사 | 커널 수행 순서 스케줄링 방법 및 장치 |
KR101930752B1 (ko) * | 2012-02-24 | 2018-12-19 | 삼성전자 주식회사 | 멀티 코어를 포함하는 전자 기기의 전력 제어 방법 및 장치 |
WO2013154539A1 (en) * | 2012-04-10 | 2013-10-17 | Empire Technology Development Llc | Balanced processing using heterogeneous cores |
US8954797B2 (en) * | 2012-04-16 | 2015-02-10 | International Business Machines Corporation | Reconfigurable recovery modes in high availability processors |
CN102789306A (zh) * | 2012-06-11 | 2012-11-21 | 任少华 | 多模式智能计算机系统 |
US8799710B2 (en) * | 2012-06-28 | 2014-08-05 | International Business Machines Corporation | 3-D stacked multiprocessor structures and methods to enable reliable operation of processors at speeds above specified limits |
US9286116B2 (en) | 2012-07-06 | 2016-03-15 | Microsoft Technology Licensing, Llc | Multiple core real-time task execution |
US9354903B2 (en) * | 2012-07-24 | 2016-05-31 | Beijing Lenovo Software Ltd. | Control method and electronic device |
US9569279B2 (en) | 2012-07-31 | 2017-02-14 | Nvidia Corporation | Heterogeneous multiprocessor design for power-efficient and area-efficient computing |
US8766710B1 (en) | 2012-08-10 | 2014-07-01 | Cambridge Silicon Radio Limited | Integrated circuit |
US9471395B2 (en) * | 2012-08-23 | 2016-10-18 | Nvidia Corporation | Processor cluster migration techniques |
US9009508B2 (en) * | 2012-08-28 | 2015-04-14 | Advanced Micro Devices, Inc. | Mechanism for reducing interrupt latency and power consumption using heterogeneous cores |
US10554505B2 (en) | 2012-09-28 | 2020-02-04 | Intel Corporation | Managing data center resources to achieve a quality of service |
US9619284B2 (en) * | 2012-10-04 | 2017-04-11 | Intel Corporation | Dynamically switching a workload between heterogeneous cores of a processor |
CN102929713A (zh) * | 2012-10-08 | 2013-02-13 | 清华大学 | 支持多操作系统并行的松散耦合异质多核处理系统 |
US8996902B2 (en) * | 2012-10-23 | 2015-03-31 | Qualcomm Incorporated | Modal workload scheduling in a heterogeneous multi-processor system on a chip |
CN102999151B (zh) * | 2012-10-30 | 2016-09-28 | 惠州Tcl移动通信有限公司 | 降低电子设备功耗的方法以及电子设备 |
KR102005765B1 (ko) | 2012-12-17 | 2019-07-31 | 삼성전자주식회사 | 시스템-온 칩과, 이의 동작 방법 |
CN103914121B (zh) * | 2013-01-04 | 2017-04-19 | 华为技术有限公司 | 多机系统、用于优化多机系统功耗的方法及装置 |
US20150106601A1 (en) * | 2013-01-10 | 2015-04-16 | Huizhou Tcl Mobile Communication Co., Ltd | Method for Automatically Adapting Application to Suitable Multicore Processing Mode and Mobile Device |
US9367357B2 (en) * | 2013-01-18 | 2016-06-14 | Nec Corporation | Simultaneous scheduling of processes and offloading computation on many-core coprocessors |
US9086925B2 (en) * | 2013-01-18 | 2015-07-21 | Nec Laboratories America, Inc. | Methods of processing core selection for applications on manycore processors |
JP6042217B2 (ja) * | 2013-01-28 | 2016-12-14 | ルネサスエレクトロニクス株式会社 | 半導体装置、電子装置、及び半導体装置の制御方法 |
TWI507991B (zh) * | 2013-02-27 | 2015-11-11 | Rdc Semiconductor Co Ltd | 多核心處理器及其相關控制方法與電腦系統 |
US10423216B2 (en) | 2013-03-26 | 2019-09-24 | Via Technologies, Inc. | Asymmetric multi-core processor with native switching mechanism |
JP6321325B2 (ja) | 2013-04-03 | 2018-05-09 | ルネサスエレクトロニクス株式会社 | 情報処理装置および情報処理方法 |
KR102110812B1 (ko) * | 2013-05-30 | 2020-05-14 | 삼성전자 주식회사 | 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법 |
WO2014209401A1 (en) * | 2013-06-28 | 2014-12-31 | Intel Corporation | Techniques to aggregate compute, memory and input/output resources across devices |
JP2015035073A (ja) * | 2013-08-08 | 2015-02-19 | ルネサスエレクトロニクス株式会社 | 半導体装置及び半導体装置の制御方法 |
US9891936B2 (en) | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
KR102114109B1 (ko) * | 2013-10-17 | 2020-05-22 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
CN103593036B (zh) * | 2013-11-05 | 2016-05-11 | 三星半导体(中国)研究开发有限公司 | 动态调整电压/时钟频率的片上系统 |
US9563457B2 (en) | 2013-11-18 | 2017-02-07 | Bitdefender IPR Management Ltd. | Enabling a secure environment through operating system switching |
US9965279B2 (en) * | 2013-11-29 | 2018-05-08 | The Regents Of The University Of Michigan | Recording performance metrics to predict future execution of large instruction sequences on either high or low performance execution circuitry |
WO2015096001A1 (en) | 2013-12-23 | 2015-07-02 | Intel Corporation | System-on-a-chip (soc) including hybrid processor cores |
US20150200667A1 (en) * | 2014-01-15 | 2015-07-16 | Qualcomm Incorporated | Collapsible glue logic systems and methods |
CN106462212B (zh) * | 2014-03-06 | 2022-03-04 | 博能电子公司 | 腕表、锻炼期间的设备省电方法及计算机可读的分布介质 |
US10146297B2 (en) | 2014-03-06 | 2018-12-04 | Polar Electro Oy | Device power saving during exercise |
KR102326945B1 (ko) | 2014-03-14 | 2021-11-16 | 삼성전자 주식회사 | 태스크 마이그레이션 방법 및 장치 |
US9419905B2 (en) | 2014-04-04 | 2016-08-16 | International Business Machines Corporation | Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset |
KR20150136345A (ko) * | 2014-05-27 | 2015-12-07 | 삼성전자주식회사 | 태스크 그룹 전달 방법 및 이를 제공하는 전자 장치 |
KR20160004152A (ko) | 2014-07-02 | 2016-01-12 | 삼성전자주식회사 | 멀티 프로세서의 태스크(task) 우선순위 결정 방법 및 이를 구현하는 전자장치 |
US9870226B2 (en) | 2014-07-03 | 2018-01-16 | The Regents Of The University Of Michigan | Control of switching between executed mechanisms |
CN104142729B (zh) * | 2014-08-11 | 2019-04-23 | 联想(北京)有限公司 | 一种处理器的控制方法、装置和电子设备 |
CN104281243B (zh) * | 2014-09-29 | 2017-11-10 | 大唐移动通信设备有限公司 | 一种射频远端设备的处理器及处理器复位方法 |
US20160116954A1 (en) * | 2014-10-28 | 2016-04-28 | Linkedln Corporation | Dynamic adjustment of cpu operating frequency |
US9582052B2 (en) * | 2014-10-30 | 2017-02-28 | Qualcomm Incorporated | Thermal mitigation of multi-core processor |
US10015006B2 (en) * | 2014-11-05 | 2018-07-03 | Georgia Tech Research Corporation | Systems and methods for measuring side-channel signals for instruction-level events |
US9891964B2 (en) | 2014-11-19 | 2018-02-13 | International Business Machines Corporation | Network traffic processing |
US9958932B2 (en) | 2014-11-20 | 2018-05-01 | Apple Inc. | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
US9898071B2 (en) | 2014-11-20 | 2018-02-20 | Apple Inc. | Processor including multiple dissimilar processor cores |
US9563431B2 (en) | 2014-12-26 | 2017-02-07 | Intel Corporation | Techniques for cooperative execution between asymmetric processor cores |
JP6481378B2 (ja) * | 2015-01-15 | 2019-03-13 | コニカミノルタ株式会社 | 画像形成装置、同装置におけるタスク制御方法及びタスク制御プログラム |
US9690708B2 (en) | 2015-05-19 | 2017-06-27 | Qualcomm Incorporated | Real-time cache behavior forecast using hypothetical cache |
US9626295B2 (en) * | 2015-07-23 | 2017-04-18 | Qualcomm Incorporated | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring |
US20170031724A1 (en) * | 2015-07-31 | 2017-02-02 | Futurewei Technologies, Inc. | Apparatus, method, and computer program for utilizing secondary threads to assist primary threads in performing application tasks |
JP2017046084A (ja) * | 2015-08-25 | 2017-03-02 | コニカミノルタ株式会社 | 画像処理装置、制御タスクの割り当て方法及び割り当てプログラム |
JP6578824B2 (ja) * | 2015-08-31 | 2019-09-25 | コニカミノルタ株式会社 | 画像形成装置、同装置におけるタスク制御方法及びタスク制御プログラム |
US9928115B2 (en) | 2015-09-03 | 2018-03-27 | Apple Inc. | Hardware migration between dissimilar cores |
JP6500707B2 (ja) * | 2015-09-03 | 2019-04-17 | コニカミノルタ株式会社 | 画像形成装置、同装置におけるタスク制御方法及びタスク制御プログラム |
US9977488B1 (en) * | 2016-03-10 | 2018-05-22 | Changming Kong | Electronic device with smart power management system |
JP2016212907A (ja) * | 2016-08-04 | 2016-12-15 | インテル・コーポレーション | 電力効率の優れたプロセッサアーキテクチャ |
JP6409218B2 (ja) * | 2016-08-04 | 2018-10-24 | インテル・コーポレーション | 電力効率の優れたプロセッサアーキテクチャ |
FR3054902B1 (fr) * | 2016-08-04 | 2019-06-21 | Thales | Procede et dispositif de distribution de partitions sur un processeur multi-coeurs |
JP2017021811A (ja) * | 2016-08-04 | 2017-01-26 | インテル・コーポレーション | 電力効率の優れたプロセッサアーキテクチャ |
US10903665B2 (en) | 2016-11-01 | 2021-01-26 | Microsoft Technology Licensing, Llc | Usage data based battery charge or discharge time determination |
US11656666B2 (en) | 2016-11-16 | 2023-05-23 | Microsoft Technology Licensing, Llc | Dynamic power source selection, charging, and discharging |
US10488905B2 (en) | 2016-11-16 | 2019-11-26 | Microsoft Technology Licensing, Llc | Dynamic energy storage device discharging |
US10599481B2 (en) | 2017-06-04 | 2020-03-24 | Apple Inc. | Scheduler for amp architecture using a closed loop performance controller and deferred inter-processor interrupts |
US10725529B2 (en) | 2017-06-26 | 2020-07-28 | Microsoft Technology Licensing, Llc | Target based power management |
WO2019005093A1 (en) * | 2017-06-30 | 2019-01-03 | Intel Corporation | MODIFYING THE PROCESSOR FREQUENCY BASED ON AN INTERRUPTION FREQUENCY |
US10210923B2 (en) * | 2017-07-12 | 2019-02-19 | International Business Machines Corporation | Activation of memory core circuits in an integrated circuit |
US10698472B2 (en) * | 2017-10-27 | 2020-06-30 | Advanced Micro Devices, Inc. | Instruction subset implementation for low power operation |
US10713075B2 (en) | 2017-11-30 | 2020-07-14 | International Business Machines Corporation | Workload manager control of dynamic thread mode switch |
US11562288B2 (en) | 2018-09-28 | 2023-01-24 | Amazon Technologies, Inc. | Pre-warming scheme to load machine learning models |
US11436524B2 (en) * | 2018-09-28 | 2022-09-06 | Amazon Technologies, Inc. | Hosting machine learning models |
KR102692869B1 (ko) | 2019-08-05 | 2024-08-08 | 삼성전자주식회사 | 프로세서의 주파수를 제어하는 전자 장치와 이의 동작 방법 |
CN112987986B (zh) * | 2019-12-02 | 2022-08-16 | Oppo广东移动通信有限公司 | 实现游戏应用的方法、装置、存储介质及电子设备 |
DE102019135293A1 (de) * | 2019-12-19 | 2021-06-24 | Endress+Hauser Process Solutions Ag | Überwachungseinheit und Verfahren zur Überwachung der von Treibern einer Gerätezugriffseinrichtung belegten Ressourcen |
KR102166644B1 (ko) * | 2020-06-08 | 2020-10-16 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 |
CN111694402B (zh) * | 2020-06-11 | 2021-10-01 | 翱捷科技股份有限公司 | 单芯片异构系统的控制方法和可穿戴设备 |
TWI764759B (zh) * | 2021-06-11 | 2022-05-11 | 円星科技股份有限公司 | 具備可靠容限設定的電路模組 |
CN115936080A (zh) * | 2021-10-01 | 2023-04-07 | 三星电子株式会社 | 用于大规模计算的设备和方法 |
CN115509342B (zh) * | 2022-10-31 | 2023-03-10 | 南京芯驰半导体科技有限公司 | 一种多核集群之间的切换方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6513124B1 (en) * | 1998-05-20 | 2003-01-28 | International Business Machines Corporation | Method and apparatus for controlling operating speed of processor in computer |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US20040003309A1 (en) * | 2002-06-26 | 2004-01-01 | Cai Zhong-Ning | Techniques for utilization of asymmetric secondary processing resources |
TWI240163B (en) * | 2001-10-22 | 2005-09-21 | Sun Microsystems Inc | Multi core multi thread processor and method and apparatus utilizing a multi core multi thread processor |
US20060095807A1 (en) * | 2004-09-28 | 2006-05-04 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
Family Cites Families (126)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US650199A (en) * | 1900-03-02 | 1900-05-22 | Fred C Shellito | Nut-lock. |
US4425615A (en) * | 1980-11-14 | 1984-01-10 | Sperry Corporation | Hierarchical memory system having cache/disk subsystem with command queues for plural disks |
US5150465A (en) | 1988-11-30 | 1992-09-22 | Compaq Computer Corporation | Mode-selectable integrated disk drive for computer |
US5293500A (en) | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
DE69033262T2 (de) * | 1989-04-13 | 2000-02-24 | Sandisk Corp., Santa Clara | EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher |
US5440749A (en) * | 1989-08-03 | 1995-08-08 | Nanotronics Corporation | High performance, low cost microprocessor architecture |
US5455913A (en) | 1990-05-14 | 1995-10-03 | At&T Global Information Solutions Company | System and method for transferring data between independent busses |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
US5502838A (en) | 1994-04-28 | 1996-03-26 | Consilium Overseas Limited | Temperature management for integrated circuits |
GB2286267A (en) | 1994-02-03 | 1995-08-09 | Ibm | Energy-saving cache control system |
EP0667579A1 (en) | 1994-02-09 | 1995-08-16 | Ballard Synergy Corporation | Cache for optical storage device |
JPH07271513A (ja) | 1994-03-29 | 1995-10-20 | Fujitsu Ltd | ディスク制御方法及びディスク制御装置 |
US5596708A (en) * | 1994-04-04 | 1997-01-21 | At&T Global Information Solutions Company | Method and apparatus for the protection of write data in a disk array |
US5581736A (en) | 1994-07-18 | 1996-12-03 | Microsoft Corporation | Method and system for dynamically sharing RAM between virtual memory and disk cache |
US5659718A (en) * | 1994-08-19 | 1997-08-19 | Xlnt Designs, Inc. | Synchronous bus and bus interface device |
JPH0883148A (ja) | 1994-09-13 | 1996-03-26 | Nec Corp | 磁気ディスク装置 |
GB9419246D0 (en) | 1994-09-23 | 1994-11-09 | Cambridge Consultants | Data processing circuits and interfaces |
US5815726A (en) * | 1994-11-04 | 1998-09-29 | Altera Corporation | Coarse-grained look-up table architecture |
US5768164A (en) * | 1996-04-15 | 1998-06-16 | Hewlett-Packard Company | Spontaneous use display for a computing system |
US6006320A (en) | 1996-07-01 | 1999-12-21 | Sun Microsystems, Inc. | Processor architecture with independent OS resources |
US5937423A (en) * | 1996-12-26 | 1999-08-10 | Intel Corporation | Register interface for flash EEPROM memory arrays |
JP3266029B2 (ja) | 1997-01-23 | 2002-03-18 | 日本電気株式会社 | マルチプロセッサシステムにおけるディスパッチング方式、ディスパッチング方法およびディスパッチングプログラムを記録した記録媒体 |
US6035408A (en) * | 1998-01-06 | 2000-03-07 | Magnex Corp. | Portable computer with dual switchable processors for selectable power consumption |
US6058414A (en) * | 1998-01-07 | 2000-05-02 | International Business Machines Corporation | System and method for dynamic resource access in an asymmetric resource multiple processor computer system |
US6219742B1 (en) * | 1998-04-29 | 2001-04-17 | Compaq Computer Corporation | Method and apparatus for artificially generating general purpose events in an ACPI environment |
JP4324276B2 (ja) | 1998-06-03 | 2009-09-02 | 株式会社日立グローバルストレージテクノロジーズ | 磁気ディスク誤り訂正方法及び装置 |
SG83684A1 (en) * | 1998-07-07 | 2001-10-16 | Compaq Computer Corp | Computer system performing machine specific tasks before going to a low power state |
EP0974908A2 (en) * | 1998-07-24 | 2000-01-26 | Interuniversitair Microelektronica Centrum Vzw | Optimized virtual memory management for dynamic data types |
US6282614B1 (en) * | 1999-04-15 | 2001-08-28 | National Semiconductor Corporation | Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches |
US6732280B1 (en) * | 1999-07-26 | 2004-05-04 | Hewlett-Packard Development Company, L.P. | Computer system performing machine specific tasks before going to a low power state |
US6457135B1 (en) * | 1999-08-10 | 2002-09-24 | Intel Corporation | System and method for managing a plurality of processor performance states |
US6624816B1 (en) | 1999-09-10 | 2003-09-23 | Intel Corporation | Method and apparatus for scalable image processing |
US6735708B2 (en) | 1999-10-08 | 2004-05-11 | Dell Usa, L.P. | Apparatus and method for a combination personal digital assistant and network portable device |
US6501999B1 (en) | 1999-12-22 | 2002-12-31 | Intel Corporation | Multi-processor mobile computer system having one processor integrated with a chipset |
US6631474B1 (en) * | 1999-12-31 | 2003-10-07 | Intel Corporation | System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching |
US6496915B1 (en) * | 1999-12-31 | 2002-12-17 | Ilife Solutions, Inc. | Apparatus and method for reducing power consumption in an electronic data storage system |
AU2001235012A1 (en) | 2000-02-15 | 2001-08-27 | O2 Micro, Inc. | Audio controller for portable electronic devices |
US6594724B1 (en) * | 2000-03-30 | 2003-07-15 | Hitachi Global Storage Technologies Netherlands B.V. | Enhanced DASD with smaller supplementary DASD |
US6633445B1 (en) | 2000-06-09 | 2003-10-14 | Iomega Corporation | Method and apparatus for electrically coupling components in a removable cartridge |
US6968469B1 (en) * | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
JP2002007373A (ja) | 2000-06-20 | 2002-01-11 | Fujitsu Ltd | 半導体装置 |
US6785829B1 (en) | 2000-06-30 | 2004-08-31 | Intel Corporation | Multiple operating frequencies in a processor |
US6628469B1 (en) * | 2000-07-11 | 2003-09-30 | International Business Machines Corporation | Apparatus and method for low power HDD storage architecture |
US6631469B1 (en) * | 2000-07-17 | 2003-10-07 | Intel Corporation | Method and apparatus for periodic low power data exchange |
JP2002073497A (ja) | 2000-09-04 | 2002-03-12 | Sharp Corp | 情報処理装置及び情報処理方法 |
KR100353731B1 (ko) * | 2000-11-01 | 2002-09-28 | (주)니트 젠 | 일회성 지문템플릿을 이용한 사용자 인증시스템 및 방법 |
US7036138B1 (en) | 2000-11-08 | 2006-04-25 | Digeo, Inc. | Method and apparatus for scheduling broadcast information |
US6735663B2 (en) | 2000-12-18 | 2004-05-11 | Dell Products L.P. | Combination personal data assistant and personal computing device |
US6785767B2 (en) | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
US20020086719A1 (en) | 2000-12-29 | 2002-07-04 | Pankaj Kedia | Low power subsystem for portable computers |
US6986066B2 (en) * | 2001-01-05 | 2006-01-10 | International Business Machines Corporation | Computer system having low energy consumption |
US7197584B2 (en) | 2001-01-26 | 2007-03-27 | Dell Products L.P. | Removable personal digital assistant in a dual personal computer/personal digital assistant computer architecture |
US20020129288A1 (en) * | 2001-03-08 | 2002-09-12 | Loh Weng Wah | Computing device having a low power secondary processor coupled to a keyboard controller |
US6976180B2 (en) * | 2001-03-16 | 2005-12-13 | Dualcor Technologies, Inc. | Personal electronics device |
US7184003B2 (en) * | 2001-03-16 | 2007-02-27 | Dualcor Technologies, Inc. | Personal electronics device with display switching |
US7231531B2 (en) * | 2001-03-16 | 2007-06-12 | Dualcor Technologies, Inc. | Personal electronics device with a dual core processor |
US20030153354A1 (en) | 2001-03-16 | 2003-08-14 | Cupps Bryan T. | Novel personal electronics device with keypad application |
US6725336B2 (en) | 2001-04-20 | 2004-04-20 | Sun Microsystems, Inc. | Dynamically allocated cache memory for a multi-processor unit |
KR20040044182A (ko) | 2001-06-04 | 2004-05-27 | 엔시티 그룹, 인코포레이티드 | 통신네트워크의 유효 대역폭 증가 시스템 및 방법 |
US6901485B2 (en) * | 2001-06-21 | 2005-05-31 | International Business Machines Corporation | Memory directory management in a multi-node computer system |
US6925529B2 (en) * | 2001-07-12 | 2005-08-02 | International Business Machines Corporation | Data storage on a multi-tiered disk system |
US6996745B1 (en) * | 2001-09-27 | 2006-02-07 | Sun Microsystems, Inc. | Process for shutting down a CPU in a SMP configuration |
US6859856B2 (en) * | 2001-10-23 | 2005-02-22 | Flex P Industries Sdn. Bhd | Method and system for a compact flash memory controller |
US8181118B2 (en) * | 2001-11-28 | 2012-05-15 | Intel Corporation | Personal information device on a mobile computing platform |
JP2003167656A (ja) | 2001-11-29 | 2003-06-13 | Sony Corp | 携帯型情報機器 |
US6804632B2 (en) | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US6639827B2 (en) * | 2002-03-12 | 2003-10-28 | Intel Corporation | Low standby power using shadow storage |
US7424623B2 (en) | 2002-03-28 | 2008-09-09 | O2 Micro International Limited | Personal computer integrated with personal digital assistant |
JP2003323417A (ja) | 2002-04-30 | 2003-11-14 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置 |
KR100441608B1 (ko) * | 2002-05-31 | 2004-07-23 | 삼성전자주식회사 | 낸드 플래시 메모리 인터페이스 장치 |
US7269752B2 (en) | 2002-06-04 | 2007-09-11 | Lucent Technologies Inc. | Dynamically controlling power consumption within a network node |
US7082495B2 (en) * | 2002-06-27 | 2006-07-25 | Microsoft Corporation | Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory |
KR100448905B1 (ko) | 2002-07-29 | 2004-09-16 | 삼성전자주식회사 | 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치 |
JP2005539309A (ja) | 2002-09-16 | 2005-12-22 | ティギ・コーポレイション | 記憶システムアーキテクチャおよび多重キャッシュ装置 |
US6922754B2 (en) | 2002-12-09 | 2005-07-26 | Infabric Technologies, Inc. | Data-aware data flow manager |
US7080242B2 (en) * | 2002-12-19 | 2006-07-18 | Hewlett-Packard Development Company, L.P. | Instruction set reconciliation for heterogeneous symmetric-multiprocessor systems |
US6775180B2 (en) * | 2002-12-23 | 2004-08-10 | Intel Corporation | Low power state retention |
US6839801B2 (en) | 2003-01-06 | 2005-01-04 | International Business Machines Corporation | Deferred writing of data to be synchronized on magnetic tape employing a non-volatile store |
US7254730B2 (en) * | 2003-02-14 | 2007-08-07 | Intel Corporation | Method and apparatus for a user to interface with a mobile computing device |
US7080271B2 (en) | 2003-02-14 | 2006-07-18 | Intel Corporation | Non main CPU/OS based operational environment |
AU2003900764A0 (en) * | 2003-02-20 | 2003-03-06 | Secure Systems Limited | Bus bridge security system and method for computers |
EP1616331A1 (en) | 2003-04-14 | 2006-01-18 | Koninklijke Philips Electronics N.V. | Format mapping scheme for universal drive device |
US7093147B2 (en) | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7221331B2 (en) * | 2003-05-05 | 2007-05-22 | Microsoft Corporation | Method and system for auxiliary display of information for a computing device |
US7240228B2 (en) | 2003-05-05 | 2007-07-03 | Microsoft Corporation | Method and system for standby auxiliary processing of information for a computing device |
US7069388B1 (en) * | 2003-07-10 | 2006-06-27 | Analog Devices, Inc. | Cache memory data replacement strategy |
US7047387B2 (en) | 2003-07-16 | 2006-05-16 | Microsoft Corporation | Block cache size management via virtual memory manager feedback |
US7925298B2 (en) * | 2003-09-18 | 2011-04-12 | Vulcan Portals Inc. | User interface for a secondary display module of a mobile electronic device |
US20050066209A1 (en) * | 2003-09-18 | 2005-03-24 | Kee Martin J. | Portable electronic device having high and low power processors operable in a low power mode |
US7500127B2 (en) | 2003-09-18 | 2009-03-03 | Vulcan Portals Inc. | Method and apparatus for operating an electronic device in a low power mode |
JP2005134820A (ja) | 2003-10-31 | 2005-05-26 | Canon Inc | 自動焦点調整装置及びプログラム |
US7017059B2 (en) | 2003-12-12 | 2006-03-21 | Cray Canada Inc. | Methods and apparatus for replacing cooling systems in operating computers |
US20050132239A1 (en) * | 2003-12-16 | 2005-06-16 | Athas William C. | Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution |
AU2003295260A1 (en) * | 2003-12-16 | 2005-07-05 | Real Enterprise Solutions Development B.V. | Memory management in a computer system using different swapping criteria |
US20050152670A1 (en) | 2004-01-14 | 2005-07-14 | Quantum Corporation | Auxiliary memory in a tape cartridge |
US7334142B2 (en) * | 2004-01-22 | 2008-02-19 | International Business Machines Corporation | Reducing power consumption in a logically partitioned data processing system with operating system call that indicates a selected processor is unneeded for a period of time |
US7136973B2 (en) | 2004-02-04 | 2006-11-14 | Sandisk Corporation | Dual media storage device |
US7421602B2 (en) | 2004-02-13 | 2008-09-02 | Marvell World Trade Ltd. | Computer with low-power secondary processor and secondary display |
US20060050429A1 (en) | 2004-02-19 | 2006-03-09 | Gunderson Neal F | Flex spring for sealed connections |
US20070094444A1 (en) * | 2004-06-10 | 2007-04-26 | Sehat Sutardja | System with high power and low power processors and thread transfer |
US7788427B1 (en) | 2005-05-05 | 2010-08-31 | Marvell International Ltd. | Flash memory interface for disk drive |
US7634615B2 (en) | 2004-06-10 | 2009-12-15 | Marvell World Trade Ltd. | Adaptive storage system |
US7730335B2 (en) | 2004-06-10 | 2010-06-01 | Marvell World Trade Ltd. | Low power computer with main and auxiliary processors |
US7617359B2 (en) | 2004-06-10 | 2009-11-10 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
US20070083785A1 (en) * | 2004-06-10 | 2007-04-12 | Sehat Sutardja | System with high power and low power processors and thread transfer |
US7702848B2 (en) | 2004-06-10 | 2010-04-20 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
US7574541B2 (en) | 2004-08-03 | 2009-08-11 | Lsi Logic Corporation | FIFO sub-system with in-line correction |
US20060069848A1 (en) * | 2004-09-30 | 2006-03-30 | Nalawadi Rajeev K | Flash emulation using hard disk |
US20060075185A1 (en) * | 2004-10-06 | 2006-04-06 | Dell Products L.P. | Method for caching data and power conservation in an information handling system |
US7472222B2 (en) | 2004-10-12 | 2008-12-30 | Hitachi Global Storage Technologies Netherlands B.V. | HDD having both DRAM and flash memory |
US7346787B2 (en) * | 2004-12-07 | 2008-03-18 | Intel Corporation | System and method for adaptive power management |
US7882299B2 (en) | 2004-12-21 | 2011-02-01 | Sandisk Corporation | System and method for use of on-chip non-volatile memory write cache |
JP2006266511A (ja) | 2005-03-22 | 2006-10-05 | Matsushita Electric Ind Co Ltd | 製氷装置 |
US20060218324A1 (en) | 2005-03-25 | 2006-09-28 | Matsushita Electrical Industrial Co., Ltd | Systems and methods for flexible data transfers in SDIO and/or MMC |
US20060230226A1 (en) | 2005-04-12 | 2006-10-12 | M-Systems Flash Disk Pioneers, Ltd. | Hard disk drive with optional cache memory |
US7620773B2 (en) | 2005-04-15 | 2009-11-17 | Microsoft Corporation | In-line non volatile memory disk read cache and write buffer |
US7461275B2 (en) * | 2005-09-30 | 2008-12-02 | Intel Corporation | Dynamic core swapping |
EP1996993B1 (en) | 2006-01-10 | 2015-03-11 | Cupp Computing As | Dual mode power-saving computing system |
US7492368B1 (en) | 2006-01-24 | 2009-02-17 | Nvidia Corporation | Apparatus, system, and method for coalescing parallel memory requests |
US7814307B2 (en) * | 2006-03-16 | 2010-10-12 | Microsoft Corporation | Fast booting a computing device to a specialized experience |
EP1855181A2 (en) * | 2006-05-10 | 2007-11-14 | Marvell World Trade Ltd. | System with high power and low power processors and thread transfer |
US20080005462A1 (en) | 2006-06-30 | 2008-01-03 | Mosaid Technologies Incorporated | Method of configuring non-volatile memory for a hybrid disk drive |
US7717350B2 (en) * | 2006-06-30 | 2010-05-18 | Advanced Micro Devices, Inc. | Portable computing platform having multiple operating modes and heterogeneous processors |
EP2058725A3 (en) * | 2007-06-11 | 2015-07-22 | Mediatek Inc. | Method of and apparatus for reducing power consumption within an integrated circuit |
JP2011045406A (ja) | 2009-08-25 | 2011-03-10 | Hamanaka Kk | まきぐるみ手芸方法及び該方法により製作された造形物 |
JP5289267B2 (ja) | 2009-10-14 | 2013-09-11 | 大光電気株式会社 | リードスイッチ制御装置 |
-
2008
- 2008-06-25 US US12/145,660 patent/US20080263324A1/en not_active Abandoned
- 2008-06-30 US US12/215,760 patent/US9158355B2/en active Active
- 2008-08-20 TW TW097131838A patent/TWI484329B/zh active
- 2008-08-27 CN CN200880104884A patent/CN101790709A/zh active Pending
- 2008-08-27 EP EP08828151.4A patent/EP2193419B1/en active Active
- 2008-08-27 WO PCT/US2008/074416 patent/WO2009029643A2/en active Application Filing
- 2008-08-27 JP JP2010523107A patent/JP5257711B2/ja active Active
-
2015
- 2015-10-12 US US14/880,670 patent/US20160034022A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6513124B1 (en) * | 1998-05-20 | 2003-01-28 | International Business Machines Corporation | Method and apparatus for controlling operating speed of processor in computer |
TWI240163B (en) * | 2001-10-22 | 2005-09-21 | Sun Microsystems Inc | Multi core multi thread processor and method and apparatus utilizing a multi core multi thread processor |
US20040003309A1 (en) * | 2002-06-26 | 2004-01-01 | Cai Zhong-Ning | Techniques for utilization of asymmetric secondary processing resources |
US20060095807A1 (en) * | 2004-09-28 | 2006-05-04 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
Non-Patent Citations (1)
Title |
---|
Intel Virtualization Technology for Directed I/O,Intel Technology Journal,Volume 10,Issue 3,2006/8/10 * |
Also Published As
Publication number | Publication date |
---|---|
WO2009029643A2 (en) | 2009-03-05 |
EP2193419B1 (en) | 2018-10-31 |
TW200915061A (en) | 2009-04-01 |
US9158355B2 (en) | 2015-10-13 |
US20080288748A1 (en) | 2008-11-20 |
US20160034022A1 (en) | 2016-02-04 |
CN101790709A (zh) | 2010-07-28 |
US20080263324A1 (en) | 2008-10-23 |
JP5257711B2 (ja) | 2013-08-07 |
EP2193419A2 (en) | 2010-06-09 |
JP2010538371A (ja) | 2010-12-09 |
WO2009029643A3 (en) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI484329B (zh) | 動態核心切換 | |
KR101503579B1 (ko) | 가상화 시스템에서 중앙 프로세싱 유닛 전력을 제어하는 시스템 및 방법 | |
US10775875B2 (en) | Devices and methods for switching and communication among multiple operating systems and application management methods thereof | |
US9894605B2 (en) | Low-power wearable devices and methods for switching and communication among multiple operating systems and application management methods thereof | |
US9411390B2 (en) | Integrated circuit device having power domains and partitions based on use case power optimization | |
JP3213208B2 (ja) | 情報処理装置及びその制御方法 | |
US20160299559A1 (en) | Power efficient processor architecture | |
JP2015064676A (ja) | 情報処理装置、半導体装置、情報処理方法およびプログラム | |
US20090204835A1 (en) | Use methods for power optimization using an integrated circuit having power domains and partitions | |
KR100204615B1 (ko) | 정보 처리 시스템 | |
JPH11161385A (ja) | コンピュータシステムおよびそのシステムステート制御方法 | |
JP2005528664A (ja) | Cpuのパワーダウン方法及びそのための装置 | |
US7093149B2 (en) | Tiered secondary memory architecture to reduce power consumption in a portable computer system | |
JP4846862B2 (ja) | 情報処理装置および省電力制御方法 | |
WO2020068319A1 (en) | System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail | |
US7272731B2 (en) | Information handling system having reduced power consumption | |
JP5913770B2 (ja) | 回転式のディスクを備える記憶装置のパワー・ステートを制御する方法および携帯式コンピュータ | |
JP2003345474A (ja) | コンピュータシステムおよびデータ転送制御方法 | |
Vaddagir et al. | Power management |