国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      具有原生切換機(jī)制的非對(duì)稱多核心處理器的制造方法

      文檔序號(hào):6537603閱讀:200來(lái)源:國(guó)知局
      具有原生切換機(jī)制的非對(duì)稱多核心處理器的制造方法
      【專利摘要】本發(fā)明公開(kāi)具有原生切換機(jī)制的非對(duì)稱多核心處理器,包含一第一與一第二處理核心,以支援其指令集架構(gòu)的特征集合中相對(duì)應(yīng)的一第一與一第二特征子集合。受支援的該第一特征子集合少于指令集架構(gòu)的特征集合的所有特征。受支援的第一與第二特征子集合互不相同,但其結(jié)合即為指令集架構(gòu)的特征集合的所有特征。當(dāng)一執(zhí)行緒由第一核心執(zhí)行時(shí),第一核心檢測(cè)執(zhí)行緒是否嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的第一特征子集合的一特征,以做出指示由第一核心切換至第二核心用以執(zhí)行執(zhí)行緒的回應(yīng)。此不受支援的特征可為一不受支援的指令或操作模式。此切換動(dòng)作可在低效能/低功耗的核心過(guò)度使用或是在高功耗/高效能的核心利用率過(guò)低時(shí)執(zhí)行。
      【專利說(shuō)明】具有原生切換機(jī)制的非對(duì)稱多核心處理器

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明關(guān)于一種處理器,尤其是一種非對(duì)稱多核心處理器。
      [0002]本申請(qǐng)案主張2013年3月26日提出的美國(guó)臨時(shí)專利申請(qǐng)案第61/805,225號(hào)“ASYMMETRIC MULT1-CORE PROCESSOR WITH NATIVE SWITCHING MECHANISM”的優(yōu)先權(quán),其內(nèi)容整體引用為本發(fā)明的公開(kāi)內(nèi)容。

      【背景技術(shù)】
      [0003]總部位于英國(guó)劍橋的處理器授權(quán)商ARM近來(lái)提出一種稱為“大小核(big.LITTLE)”的處理架構(gòu)。舉例來(lái)說(shuō),大小核系統(tǒng)的“大核(big)”可以是效能較高且功耗較高的CorteX-A15處理器,而與其匹配的“小核(LITTLE) ”可以是效能較低且功耗較低的Cortex-A7處理器。此系統(tǒng)可在依據(jù)執(zhí)行緒的運(yùn)算強(qiáng)度,在此二個(gè)處理器間進(jìn)行切換。若是此執(zhí)行緒具有高運(yùn)算強(qiáng)度,此系統(tǒng)會(huì)切換至Cortex-A15處理器執(zhí)行;反之,當(dāng)執(zhí)行緒不具有高運(yùn)算強(qiáng)度時(shí),此系統(tǒng)就會(huì)切換至Cortex-A7處理器執(zhí)行。透過(guò)如此處理,就可以使整體效能接近Cortex-A15處理器的水準(zhǔn),而功耗則是介于處理器Cortex_A7與Cortex_A15之間。此設(shè)計(jì)特別適用于由電池供電且所需效能變化范圍大的處理平臺(tái),例如智能手機(jī)。
      [0004]在Peter Greenhalgh 著,于 2011 年九月發(fā)布的 ARM 白皮書(shū) “Big.LITTLEProcessing with ARM CortexTM - A15&Cortex_A7”中,即指出 Cortex_A15 與 Cortex_A7 處理器的架構(gòu)相同,并以此為大小核(big.LITTLE)的一重要范例。進(jìn)一步來(lái)說(shuō),這兩個(gè)處理器都是采用ARM v7A架構(gòu)。(舉例來(lái)說(shuō),Cortex-A7處理器系采用ARM v7A架構(gòu)的虛擬與大型實(shí)體定址延伸(Virtualizat1n and Large Physical Address Extens1ns))基于此,這兩個(gè)處理器都可以執(zhí)行此架構(gòu)下的所有指令,雖然部分指令的執(zhí)行上會(huì)呈現(xiàn)不同的效能與功耗。此操作系統(tǒng)會(huì)決定切換處理器的時(shí)點(diǎn),以試著滿足當(dāng)前執(zhí)行的應(yīng)用程序所需的效倉(cāng)泛。
      [0005]大小核(big.LITTLE)的一限制在于,兩個(gè)處理器之間需要充分的架構(gòu)相容性。此問(wèn)題在于架構(gòu)內(nèi)的指令具要相當(dāng)數(shù)量晶體管的配合的情況下,會(huì)變得更為顯著。舉例來(lái)說(shuō),就算是單指令多數(shù)據(jù)(SMD)指令,其最低硬件需求也相當(dāng)可觀,即使是小核(LITTLE)處理器,也具有簡(jiǎn)單的硬件來(lái)對(duì)于SMD指令內(nèi)各別部分的數(shù)據(jù)進(jìn)行排序?;旧?,這些指令在應(yīng)用程序內(nèi)的出現(xiàn)情形,即高度相關(guān)于此應(yīng)用程序?qū)τ诟咝芴幚淼男枨蟆;诖耍谛『颂幚砥鲀?nèi)的SMD簡(jiǎn)單硬件不大可能會(huì)有明顯的使用時(shí)間,因?yàn)榇擞布芸炀蜔o(wú)法滿足應(yīng)用程序的效能需求致使系統(tǒng)切換至大核(big)處理器處理。因此,小核處理器內(nèi)的SMD簡(jiǎn)單硬件將會(huì)是浪費(fèi)。
      [0006]大小核(big.LITTLE)的另一限制在于,操作系統(tǒng)需要改變以在處理器切換時(shí)作出處理并調(diào)和此切換動(dòng)作。但是,說(shuō)服操作系統(tǒng)的開(kāi)發(fā)者將這些為此特殊利用而設(shè)置的指令納入其中是相當(dāng)困難的,尤其對(duì)于嵌入式操作系統(tǒng)的開(kāi)發(fā)者更是如此。
      [0007]大小核(big.LITTLE)的另一個(gè)缺點(diǎn)在于,操作系統(tǒng)決定大小核處理器切換時(shí)點(diǎn)的部分會(huì)消耗當(dāng)前正在運(yùn)作的處理器的頻寬而使此頻寬無(wú)法為應(yīng)用程序所使用。亦即,切換編碼并非與應(yīng)用程序平行執(zhí)行,而是互為代替。
      [0008]大小核(big.LITTLE)的另一個(gè)缺點(diǎn)在于,部分應(yīng)用程序難以開(kāi)發(fā)出有效的切換編碼。亦即,除非是功耗顯然過(guò)多(即大核處理器執(zhí)行過(guò)久)或是效能過(guò)低(即小核處理器執(zhí)行過(guò)久)的情況下,否則操作系統(tǒng)難以知曉切換時(shí)點(diǎn)來(lái)執(zhí)行處理器的切換。


      【發(fā)明內(nèi)容】

      [0009]本發(fā)明的一實(shí)施例提供一種處理器。此處理器具有一指令集架構(gòu)(ISA),而此指令集架構(gòu)具有一特征集合。此處理器包含一第一與一第二處理核心,用以支援該指令集架構(gòu)的特征集合中,相對(duì)應(yīng)的一第一與一第二特征子集合。受支援的該第一特征子集合少于該指令集架構(gòu)的特征集合的所有特征。受支援的該第一與該第二特征子集合互不相同。受支援的該第一與該第二特征子集合的結(jié)合即為該指令集架構(gòu)的特征集合的所有特征。當(dāng)一執(zhí)行緒由該第一核心執(zhí)行時(shí),該第一核心檢測(cè)該執(zhí)行緒是否嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的該第一特征子集合的一特征,以做出指示該處理器由該第一核心切換至該第二核心執(zhí)行該執(zhí)行緒的回應(yīng)。
      [0010]本發(fā)明的另一實(shí)施例提供一種由一處理器執(zhí)行的方法。此處理器具有一指令集架構(gòu)以及一第一與一第二處理核心。此指令集架構(gòu)具有一特征集合。此方法包含:當(dāng)一執(zhí)行緒由該第一核心執(zhí)行時(shí),檢測(cè)該執(zhí)行緒是否嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于一第一特征子集合的一特征。該第一核心用以支援該第一特征子集合。受支援的該第一特征子集合系少于該指令集架構(gòu)的特征集合的所有特征。該第二核心用以支援該指令集架構(gòu)的特征集合中的一第二特征子集合。受支援的該第一與該第二特征子集合的特征互不相同。該第一與該第二特征子集合所支援的特征的結(jié)合即為該指令集架構(gòu)的特征集合的所有特征。此方法亦包含:將該執(zhí)行緒的執(zhí)行切換至該第二核心而非該第一核心,以回應(yīng)該檢測(cè)步驟。
      [0011]本發(fā)明的又一實(shí)施例提供一種處理器。此處理器包含至少二個(gè)處理核心,其中一個(gè)該處理核心執(zhí)行一執(zhí)行緒的功耗較低但效能亦較低。該處理器系檢測(cè)一事件是否發(fā)生,以指示該執(zhí)行緒的執(zhí)行由該些核心中的一第一核心切換至該些核心中的一第二核心。該處理器在檢測(cè)到該事件時(shí),自動(dòng)將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心以為回應(yīng),而非由執(zhí)行于該第一核心的架構(gòu)軟件來(lái)指示該處理器將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心。
      [0012]本發(fā)明的又一實(shí)施例提供一種由一處理器執(zhí)行的方法。此處理器具有至少二個(gè)處理核心,其中一個(gè)該處理核心執(zhí)行一執(zhí)行緒的功耗較低但效能亦較低。此方法包含:利用該處理器檢測(cè)一事件是否發(fā)生,以指示該執(zhí)行緒的執(zhí)行由該些核心中的一第一核心切換至該些核心中的一第二核心。此方法亦包含:在檢測(cè)到該事件時(shí),利用該處理器自動(dòng)將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心以為回應(yīng),而非由執(zhí)行于該第一核心的架構(gòu)軟件來(lái)指示該處理器將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心。
      [0013]關(guān)于本發(fā)明的優(yōu)點(diǎn)與精神可以藉由以下的發(fā)明詳述及附圖得到進(jìn)一步的了解。

      【專利附圖】

      【附圖說(shuō)明】
      [0014]圖1為本發(fā)明一非對(duì)稱多核心處理器一實(shí)施例的方塊不意圖。
      [0015]圖2與圖3為圖1的處理器的運(yùn)作的流程圖。
      [0016]圖4為一非對(duì)稱多核心處理器一實(shí)施例的方塊不意圖,其將切換管理單兀整合于非對(duì)稱核心內(nèi)。
      [0017]圖5為一非對(duì)稱多核心處理器一實(shí)施例的方塊不意圖,其非對(duì)稱核心系直接將執(zhí)行緒狀態(tài)視為切換執(zhí)行的一部分來(lái)移轉(zhuǎn)。
      [0018]圖6為圖5的處理器的運(yùn)作的流程圖。
      [0019]圖7為本發(fā)明一非對(duì)稱多核心處理器的另一實(shí)施例的方塊不意圖。
      [0020]其中,附圖標(biāo)記:
      [0021]處理器100
      [0022]高特征核心102
      [0023]低特征核心104
      [0024]切換管理單元106
      [0025]共享狀態(tài)儲(chǔ)存單元108

      【具體實(shí)施方式】
      [0026]名詞定義
      [0027]指令集架構(gòu),從微處理器家族的脈絡(luò)來(lái)看包含⑴指令集;(2)指令集的指令所能存取的資源集(例如:記憶體定址所需的寄存器與模式);以及(3)微處理器處理指令集的指令的操作模式(例如:16位元模式、32位元模式、64位元模式、真實(shí)模式、保護(hù)模式、長(zhǎng)模式(Long mode)、虛擬8086模式、相容模式(compatibility mode)、虛擬機(jī)器延伸模式(Virtual Machine extens1ns (VMX)mode)、以及系統(tǒng)管理模式等),而程序集、資源集包含于指令集架構(gòu)的特征集合中。因?yàn)槌绦蜃珜?xiě)者,如組譯器與編譯器的撰寫(xiě)者,想要產(chǎn)生可在一微處理器家族執(zhí)行的機(jī)器語(yǔ)言程序時(shí)就需要此微處理器家族的ISA定義,而微處理器家族的制造者通常會(huì)將ISA定義于操作者操作手冊(cè)中。舉例來(lái)說(shuō),2009年3月公布的Intel64與 IA-32 架構(gòu)軟件開(kāi)發(fā)者手冊(cè)(Intel64and IA_32Architectures Software Developer’sManual)即定義Intel64與IA-32處理器架構(gòu)的ISA。此軟件開(kāi)發(fā)者手冊(cè)包含有五個(gè)章節(jié),第一章是基本架構(gòu);第二 A章是指令集參考A至M ;第二 B章是指令集參考N至Z ;第三A章是系統(tǒng)編程指南;第三B章是系統(tǒng)編程指南第二部分,此手冊(cè)系列為本案的參考文件。此種處理器架構(gòu)通常被稱為x86架構(gòu),本文中則是以x86、x86ISA、x86ISA家族、x86家族或是相似用語(yǔ)來(lái)說(shuō)明。在另一個(gè)例子中,2010年公布的ARM架構(gòu)參考手冊(cè),ARM v7_A與ARM v7-R版本Errata markup,定義ARM處理器架構(gòu)的ISA。此參考手冊(cè)系列為參考文件。此ARM處理器架構(gòu)的ISA在此亦被稱為ARM、ARM ISA、ARM ISA家族、ARM家族或是相似用語(yǔ)。其他眾所周知的 ISA 家族還有 IBM System/360/370/390 與 z/Architecture、DEC VAX、Motorola68k、MIPS、SPARC、PowerPC與DEC Alpha等等。ISA的定義會(huì)涵蓋處理器家族,因?yàn)樘幚砥骷易宓陌l(fā)展中,制造者會(huì)透過(guò)在指令集中增加新指令、以及/或在寄存器組中增加新的寄存器等方式來(lái)改進(jìn)原始處理器的ISA。舉例來(lái)說(shuō),隨著x86程序集架構(gòu)的發(fā)展,其于Intel Pentium III處理器家族導(dǎo)入一組128位元的多媒體擴(kuò)展指令集(MMX)寄存器作為單指令多重?cái)?shù)據(jù)流擴(kuò)展(SSE)指令集的一部分,而X86ISA機(jī)器語(yǔ)言程序已經(jīng)開(kāi)發(fā)來(lái)利用XMM寄存器以提升效能,雖然現(xiàn)存的X86ISA機(jī)器語(yǔ)言程序并不使用單指令多重?cái)?shù)據(jù)流擴(kuò)展指令集的XMM寄存器。此外,其他制造商亦設(shè)計(jì)且制造出可執(zhí)行X86ISA機(jī)器語(yǔ)言程序的微處理器。例如,超微半導(dǎo)體(AMD)與威盛電子(VIA Technologies)即在x86ISA增加新技術(shù)特征,如超微半導(dǎo)體的3DN0W!單指令多重?cái)?shù)據(jù)流(SMD)向量處理指令,以及威盛電子的Padlock安全引擎隨機(jī)數(shù)產(chǎn)生器(random number generator)與先進(jìn)譯碼引擎(advancedcryptography engine)的技術(shù),前述技術(shù)都是采用x86ISA的機(jī)器語(yǔ)言程序,但卻非由現(xiàn)有的Intel微處理器實(shí)現(xiàn)。以另一個(gè)實(shí)例來(lái)說(shuō)明,ARM ISA原本定義ARM指令集狀態(tài)具有4位元組的指令。然而,隨著ARM ISA的發(fā)展而增加其他指令集狀態(tài),如具有2位元組指令以提升編碼密度的Thumb指令集狀態(tài)以及用以加速Java位元組碼程序的Jazelle指令集狀態(tài),而ARM ISA機(jī)器語(yǔ)言程序已被發(fā)展來(lái)使用部分或所有其他ARM ISA指令集狀態(tài),即使現(xiàn)存的ARM ISA機(jī)器語(yǔ)言程序并非采用這些其他ARM ISA指令集狀態(tài)。
      [0028]指令集,系定義二進(jìn)位制編碼值的集合(即機(jī)器語(yǔ)言指令)與微處理器所執(zhí)行操作間的對(duì)應(yīng)關(guān)系。機(jī)器語(yǔ)言指令指示微處理器執(zhí)行的操作如:將寄存器I內(nèi)的運(yùn)算元與寄存器2內(nèi)的運(yùn)算元相加并將結(jié)果寫(xiě)入寄存器3、將記憶體地址0x12345678的運(yùn)算元減掉指令所指定的立即運(yùn)算元并將結(jié)果寫(xiě)入寄存器5、依據(jù)寄存器7所指定的位元數(shù)移動(dòng)寄存器6內(nèi)的數(shù)值、若是零旗標(biāo)被設(shè)定時(shí),分支到指令后方的36個(gè)位元組、將記憶體地址OxAB⑶0000的數(shù)值載入寄存器8。因此,指令集系定義各個(gè)機(jī)器語(yǔ)言指令使微處理器執(zhí)行所欲執(zhí)行的操作的二進(jìn)位編碼值。需了解的是,指令集定義二進(jìn)位值與微處理器操作間的對(duì)應(yīng)關(guān)系,并不意味著單一個(gè)二進(jìn)位值就會(huì)對(duì)應(yīng)至單一個(gè)微處理器操作。具體來(lái)說(shuō),在部分指令集中,多個(gè)二進(jìn)位值可能會(huì)對(duì)應(yīng)至同一個(gè)微處理器操作。
      [0029]執(zhí)行緒,系一系列或是一串程序指令。執(zhí)行緒在本文中又稱為程序執(zhí)行緒。在本文中,程序執(zhí)行緒基于處理核心的架構(gòu)程序計(jì)數(shù)器(例如x86指令指標(biāo)(IP)或是AMR程序計(jì)數(shù)器(PC))提取自記憶體。相較之下,微碼常式的提取則是基于處理核心的一非架構(gòu)微碼程序計(jì)數(shù)器。
      [0030]架構(gòu)軟件,系一程序,執(zhí)行緒系分發(fā)自此程序。舉例來(lái)說(shuō),架構(gòu)軟件系一般軟件應(yīng)用程序,如文字處理軟件或是試算表程序,以及系統(tǒng)軟件,如基本輸出入系統(tǒng)(B1S)或是操作系統(tǒng)。
      [0031]微碼,系基于處理核心的微碼程序計(jì)數(shù)器提取自處理器的非架構(gòu)記憶體的指令。相反地,架構(gòu)軟件的提取則是基于處理核心的架構(gòu)程序計(jì)數(shù)器。
      [0032]處理器所具有的指令集架構(gòu)特征集合(ISA feature set)系一組由處理器支援的指令集架構(gòu)所定義的特征。這些特征可包含處理器支援的指令集架構(gòu)指令集、處理器支援的指令集架構(gòu)操作模式的集合與/或處理器支援的指令集架構(gòu)資源的集合。這些特征亦可包含處理器支援的不同分頁(yè)模式。如前述,指令集架構(gòu)的處理器家族中一個(gè)給定模型的處理器,所能支援的特征通常會(huì)少于此指令集架構(gòu)定義的所有特征。
      [0033]處理核心,或稱核心,系一硬件裝置,能夠處理數(shù)據(jù)以回應(yīng)程序執(zhí)行緒的指令執(zhí)行。這些指令系屬于由包含此核心的處理器的指令集架構(gòu)所定義的指令集。不過(guò),如本文所述,處理核心可能無(wú)法支援(即無(wú)法執(zhí)行)指令集架構(gòu)的指令集內(nèi)的所有指令。此外,處理核心可能無(wú)法支援(即無(wú)法運(yùn)作于)指令集架構(gòu)定義的所有模式。廣泛地來(lái)說(shuō),處理核心可能無(wú)法支援指令集架構(gòu)的所有特征,但可以支援指令集架構(gòu)的特征集合內(nèi)的一特征子集口 ο
      [0034]執(zhí)行緒狀態(tài),系核心執(zhí)行執(zhí)行緒需要的所有狀態(tài)。執(zhí)行緒狀態(tài)亦可稱為執(zhí)行狀態(tài)。核心執(zhí)行執(zhí)行緒所需要的狀態(tài)系由此指令集架構(gòu)與核心的微架構(gòu)所規(guī)范。雖然各個(gè)核心所支援的指令集架構(gòu)特征的子集合各有不同,且其微架構(gòu)亦各有不同,不過(guò),這些核心必須至少包含其執(zhí)行執(zhí)行緒所需的狀態(tài)。以下描述僅為例示的目的。執(zhí)行緒狀態(tài)至少包含由指令集架構(gòu)所定義的執(zhí)行緒的架構(gòu)狀態(tài)。舉例來(lái)說(shuō),架構(gòu)寄存器(涵蓋程序計(jì)數(shù)器、通用寄存器與描述核心組態(tài)所需的控制寄存器)就會(huì)被納入執(zhí)行緒狀態(tài)。此外,非架構(gòu)狀態(tài)通常就不屬于執(zhí)行緒狀態(tài)。非架構(gòu)執(zhí)行緒狀態(tài)可包含儲(chǔ)存微指令執(zhí)行中間結(jié)果的暫時(shí)寄存器。
      [0035]在本文對(duì)于非對(duì)稱多核心處理器的描述內(nèi)容中,對(duì)于不受其中核心支援的指令集架構(gòu)特征,或是不包含于指令集架構(gòu)特征集合中核心支援的特征子集合的指令集架構(gòu)特征,若是此核心不執(zhí)行此特征,執(zhí)行緒就會(huì)嘗試指令集架構(gòu)所定義的利用并指示切換至另一個(gè)核心。在指令不受核心支援的情況下,核心接收到指令也不會(huì)去執(zhí)行。舉例來(lái)說(shuō),若是此核心不支援一 I/O指令(例如X86IN或是OUT指令),此核心就不會(huì)執(zhí)行此IT指令的語(yǔ)意而指示一切換步驟切換至另一個(gè)核心。值得注意的是,因?yàn)榇朔菍?duì)稱多核心處理器的核心所支援的這些特征子集合的結(jié)合,就是整個(gè)指令集架構(gòu)的特征集合,因而必定至少有一個(gè)核心支援此指令。在操作模式不受核心支援的情況下,即使收到指示,核心也不會(huì)進(jìn)入或離開(kāi)此特定操作模式,而是指示一切換步驟切換至另一個(gè)核心。舉例來(lái)說(shuō),若是此核心不支援一特殊位元寬度的操作模式(例如x8664位元模式,亦稱為長(zhǎng)模式)而執(zhí)行緒嘗試進(jìn)入此位元寬度模式(例如寫(xiě)入一指令集架構(gòu)特定的值至指令集架構(gòu)特定的控制寄存器),此核心不會(huì)進(jìn)入此模式而指示一切換步驟切換至另一個(gè)核心。同樣地,值得注意的是,因?yàn)榇朔菍?duì)稱多核心處理器的核心所支援的這些特征子集合的結(jié)合,就是整個(gè)指令集架構(gòu)的特征集合,因而必定至少有一個(gè)核心支援此操作模式。
      [0036]圖1為本發(fā)明一非對(duì)稱多核心處理器100 —實(shí)施例的方塊不意圖。此處理器100具有一指令集架構(gòu)的特征組合。此指令集架構(gòu)可以是一個(gè)既有的指令集架構(gòu),包含前述各個(gè)指令集架構(gòu),或是未來(lái)開(kāi)發(fā)出來(lái)的指令集架構(gòu)。
      [0037]處理器100具有一高特征核心(high-feature core) 102 (或稱高核心102)與一低特征核心(low-feature core) 104 (或稱低核心104),各自稱接置一切換管理單元106與一共享的狀態(tài)儲(chǔ)存器108。相較于低特征核心104,高特征核心102在執(zhí)行執(zhí)行緒時(shí)具有較高效能但是也會(huì)消耗較多能量;反之,相較于高特征核心102,低特征核心104在執(zhí)行執(zhí)行緒時(shí)的效能較低但是消耗的能量也較少。在此理解下,此二核心102/104為非對(duì)稱。功耗/效能的非對(duì)稱主要是因?yàn)檫@兩個(gè)核心102/104在微架構(gòu)階層的差異所致。舉例來(lái)說(shuō),這兩個(gè)核心102/104可具有不同尺寸的快取記憶體與/或不同的階層式快取結(jié)構(gòu)、依序(in-order)與非循序(out-of-order)執(zhí)行、不同的分支預(yù)測(cè)機(jī)制、不同組成的執(zhí)行單元、純量與超純量指令技術(shù)(superscalar instruct1n issue)、預(yù)測(cè)與非預(yù)測(cè)執(zhí)行等。功耗/效能的差異并不會(huì)影響處理器100對(duì)執(zhí)行緒的正確執(zhí)行。所謂正確的執(zhí)行緒執(zhí)行,系指依據(jù)處理器100的指令集架構(gòu)所給定的一起始狀態(tài),再由處理器100執(zhí)行執(zhí)行緒而產(chǎn)生執(zhí)行結(jié)果。核心執(zhí)行執(zhí)行緒的效能系指核心執(zhí)行執(zhí)行緒指令的速度。效能可利用每秒的指令數(shù)量或其它適合的參數(shù)來(lái)量測(cè)。
      [0038]此外,低核心104與高核心102的不對(duì)稱亦顯現(xiàn)于其支援指令集架構(gòu)的不同特征子集合。不過(guò),低核心104與高核心102的結(jié)合則可支援整個(gè)指令集架構(gòu),其具體實(shí)施如下所述。當(dāng)此二個(gè)核心102/104的其中之一在執(zhí)行一執(zhí)行緒,此執(zhí)行緒會(huì)嘗試?yán)靡徊话诤诵?02/104所支援的特征子集合的特征,切換管理單元106則會(huì)將執(zhí)行緒的執(zhí)行切換至另一個(gè)核心102/104,此切換動(dòng)作包含將執(zhí)行緒狀態(tài)移轉(zhuǎn)至另一個(gè)核心102/104,以下對(duì)此有更詳細(xì)的說(shuō)明。在一實(shí)施例中,高核心102所支援的特征子集合包含指令集架構(gòu)的所有特征,而低核心104所支援的特征子集合少于指令集架構(gòu)的所有特征。反之,在一實(shí)施例中,高核心102所支援的特征子集合系少于指令集架構(gòu)的所有特征,而低核心104所支援的特征子集合的特征包含指令集架構(gòu)的所有特征。此外,在一實(shí)施例中,高核心102所支援的特征子集合少于指令集架構(gòu)的所有特征,低核心104所支援的特征子集合亦少于指令集架構(gòu)的所有特征。不過(guò),前述各實(shí)施例中,二個(gè)特征子集合的結(jié)合就等同于指令集架構(gòu)的所有特征。前述各實(shí)施例中,二個(gè)核心102/104中的至少一個(gè)所支援的特征少于指令集架構(gòu)的所有特征,因此,相較于二個(gè)核心102/104都支援整個(gè)指令集架構(gòu)的特征集合,本發(fā)明的實(shí)施例能進(jìn)一步降低核心功耗。
      [0039]透過(guò)此方式,就理論上而言,選擇由低特征核心104或是高特征核心102來(lái)執(zhí)行執(zhí)行緒至少部分在處理器設(shè)計(jì)的時(shí)候就已經(jīng)決定。概括地說(shuō),高特征核心102所支援的指令集架構(gòu)特征基本上是關(guān)于高效能,相反地,低特征核心104支援的特征則是關(guān)于低效能。如前述“減少”核心對(duì)于特征的支援,有助于了解何時(shí)切換執(zhí)行緒的執(zhí)行,而不需使用操作系統(tǒng)。
      [0040]切換管理單元106系原生于處理器100,亦即,切換管理單元106處理器100的一部分,而非如傳統(tǒng)方式架構(gòu)于軟件,如操作系統(tǒng)。在一實(shí)施例中,此原生切換管理單元106包含一“非核心”狀態(tài)機(jī)器。在另一實(shí)施例中,此原生切換管理單元106包含一個(gè)單獨(dú)的第三處理核心。此第三處理核心的功耗極低,只處理自己的編碼,而這些編碼與核心102/104所執(zhí)行的編碼分開(kāi)。舉例來(lái)說(shuō),此單獨(dú)的切換管理單元106可包含一服務(wù)處理器,同時(shí)為處理器100處理除錯(cuò)與電源管理的服務(wù)。這樣做的優(yōu)點(diǎn)在于,此單獨(dú)的切換管理單元106不需消耗當(dāng)前處理核心102/104的頻寬。在另一實(shí)施例中,如下文所述,切換管理單元106整合于低效能核心104與高效能核心102,而包含執(zhí)行于核心102/104的微碼。
      [0041]就一實(shí)施例而言,除了在執(zhí)行緒嘗試?yán)谜趫?zhí)行的核心102/104所不支援的指令集架構(gòu)特征而完成執(zhí)行的切換外,此切換管理單元106亦會(huì)監(jiān)測(cè)當(dāng)前執(zhí)行的核心102/104的利用率。當(dāng)切換管理單元106檢測(cè)到高特征核心102利用過(guò)低,它就會(huì)將執(zhí)行緒的執(zhí)行切換至低特征核心104。反之,當(dāng)切換管理單元106檢測(cè)到低特征核心104被過(guò)度使用,它就會(huì)將執(zhí)行緒的執(zhí)行切換至高特征核心102。相較于傳統(tǒng)方式透過(guò)操作系統(tǒng)來(lái)切換,切換管理單元106具有潛力能更好地判斷核心102/104的利用狀態(tài),而能更有效地與更快速地做出切換的決定。
      [0042]共享狀態(tài)儲(chǔ)存單元108系供核心102/104使用,在切換執(zhí)行緒的執(zhí)行時(shí),將執(zhí)行緒狀態(tài)的狀態(tài)由一個(gè)核心102/104移轉(zhuǎn)至另一個(gè)核心102/104。進(jìn)一步來(lái)說(shuō),執(zhí)行中的核心102/104系將自己的執(zhí)行緒狀態(tài)儲(chǔ)存至共享狀態(tài)儲(chǔ)存單元108,用以在執(zhí)行切換后的執(zhí)行緒核心102/104可從共享狀態(tài)儲(chǔ)存單元108取得執(zhí)行緒狀態(tài)。就一實(shí)施例而言,此共享狀態(tài)儲(chǔ)存單元108系一私有、非架構(gòu)的隨機(jī)存取記憶體,例如一靜態(tài)隨機(jī)存取記憶體。此記憶體系由二個(gè)核心102/104所共享,并且,此二個(gè)核心102/104均可存取此記憶體。不過(guò),其他類(lèi)型的儲(chǔ)存單元亦可適用于本發(fā)明。在另一實(shí)施例中,此共享狀態(tài)儲(chǔ)存單元108系系統(tǒng)記憶體。
      [0043]圖2是圖1的處理器100的運(yùn)作一實(shí)施例的流程圖。此流程始于步驟202。
      [0044]在步驟202中,非對(duì)稱核心102/104中的第一核心,即第I圖中的低核心104或高核心102,系執(zhí)行一應(yīng)用程序執(zhí)行緒。接下來(lái)流程前進(jìn)至步驟204。
      [0045]在步驟204中,正在執(zhí)行執(zhí)行緒的第一核心102/104檢測(cè)到執(zhí)行緒正在嘗試?yán)弥噶罴軜?gòu)的特征集合中不受此第一核心102/104支援的一特征。亦即,此特征不包含于指令集架構(gòu)的特征集合中支援此第一核心102/104的子集合。依據(jù)此不受支援的特征的特性,此第一核心102/104可透過(guò)不同方式檢測(cè)此不受支援的特征。舉例來(lái)說(shuō),指令解碼器對(duì)不受第一核心102/104支援的指令進(jìn)行解碼、或是執(zhí)行單元可檢測(cè)指令嘗試存取不受第一核心102/104支援的控制寄存器或一特殊控制寄存器位元或欄位,例如將核心102/104置于指令集架構(gòu)定義的一特殊操作模式。接下來(lái)前進(jìn)至步驟206。
      [0046]在步驟206中,因應(yīng)步驟204的檢測(cè)步驟檢測(cè)到執(zhí)行緒嘗試使用不受支援的特征,此第一核心102/104會(huì)停止執(zhí)行執(zhí)行緒。舉例來(lái)說(shuō),若是指令解碼器將一不受支援的指令解碼,它會(huì)設(shè)陷(trap)于一微碼常式以處理非法指令例外,此微碼常式會(huì)停止此執(zhí)行緒的后續(xù)指令的執(zhí)行。在另一個(gè)例子中,若是執(zhí)行單元檢測(cè)到一指令嘗試存取一不受支援的控制寄存器或其位元或其欄位,它就會(huì)設(shè)陷于一微碼常式以停止此執(zhí)行緒的后續(xù)指令的執(zhí)行。接下來(lái)前進(jìn)至步驟208。
      [0047]在步驟208中,第一核心102/104指示處理器切換至第二核心102/104來(lái)執(zhí)行執(zhí)行緒。在一實(shí)施例中,由如步驟206所述的微碼常式指示此切換動(dòng)作。在另一實(shí)施例中,可由第一核心102/104的一硬件狀態(tài)機(jī)指示此切換動(dòng)作。就一實(shí)施例而言,此第一核心102/104傳送信號(hào)至切換管理單元106以指示此切換的需求。接下來(lái)前進(jìn)至步驟212。
      [0048]在步驟212中,此切換管理單元106指示第一核心102/104儲(chǔ)存執(zhí)行緒的狀態(tài)。就一實(shí)施例而言,此切換管理單元106傳送信號(hào)至第一核心102/104以通知其儲(chǔ)存執(zhí)行緒狀態(tài)。接下來(lái)前進(jìn)至步驟214。
      [0049]在步驟214中,第一核心102/104儲(chǔ)存執(zhí)行緒狀態(tài)至共享狀態(tài)儲(chǔ)存單元108。除了執(zhí)行緒狀態(tài),此第一核心102/104亦可轉(zhuǎn)移其它不是第二核心102/104執(zhí)行執(zhí)行緒所必須,但能加快第二核心102/104執(zhí)行執(zhí)行緒的速度的狀態(tài),例如第一核心102/104的一個(gè)或多個(gè)快取記憶體的部分或全部的內(nèi)容。接下來(lái)前進(jìn)至步驟216。
      [0050]在步驟216中,切換管理單元106指示第二核心102/104脫離低功耗模式。這是因?yàn)樵趫D2的操作流程的前一個(gè)事件的步驟228中,第二核心102/104扮演第一核心102/104的角色,而步驟228通知其進(jìn)入低功耗模式。也就是說(shuō),第二核心102/104檢測(cè)到執(zhí)行緒嘗試使用第二核心102/104不支援的一指令集架構(gòu)特征,因而在步驟228由切換管理單元106通知第二核心102/104進(jìn)入低功耗模式。進(jìn)入低功耗模式時(shí),核心所消耗的能量會(huì)少于其主動(dòng)執(zhí)行執(zhí)行緒所消耗的能量。關(guān)于低功耗模式,舉例來(lái)說(shuō):系對(duì)應(yīng)于一個(gè)指示核心停止執(zhí)行執(zhí)行緒指令的模式;系停用連接到處理器的外部總線時(shí)鐘的模式;核心停用其部分電路的時(shí)鐘信號(hào)的模式;核心停止供電至其內(nèi)部的部分電路的模式。此低功耗模式可包含廣為人知的進(jìn)階組態(tài)與電源介面(Advanced Configurat1n and Power Interface, ACPI)的處理器狀態(tài),即C-state。就一實(shí)施例而言,切換管理單元106會(huì)傳送信號(hào)至第二核心102/104通知其脫離低功耗模式。在一實(shí)施例中,此信號(hào)會(huì)導(dǎo)致一非架構(gòu)中斷而喚醒第二核心102/104,如回復(fù)其電源供應(yīng)與時(shí)鐘。此中斷會(huì)調(diào)用一微碼常式來(lái)執(zhí)行與當(dāng)前的低功耗模式相關(guān)的動(dòng)作。接下來(lái)前進(jìn)至步驟218。
      [0051]在步驟218中,第二核心102/104脫離低功耗模式并進(jìn)入一運(yùn)作模式。在運(yùn)作模式中,核心會(huì)執(zhí)行指令。此運(yùn)作模式可包含廣為人知的進(jìn)階組態(tài)與電源介面的性能狀態(tài),即P-state。在一實(shí)施例中,此運(yùn)作模式系可被程序化,例如可利用系統(tǒng)軟件,透過(guò)處理器100的控制寄存器,來(lái)幫助調(diào)整處理器100的效能相對(duì)于功耗的特性。接下來(lái)前進(jìn)至步驟222。
      [0052]在步驟222中,切換管理單元106指示第二核心102/104取得執(zhí)行緒狀態(tài)并開(kāi)始執(zhí)行執(zhí)行緒。就一實(shí)施例而言,切換管理單元106系傳送信號(hào)至第二核心102/104,并由第二核心102/104的微碼提供服務(wù)以產(chǎn)生一非架構(gòu)中斷。接下來(lái)前進(jìn)至步驟224。
      [0053]在步驟224中,第二核心102/104由共享狀態(tài)儲(chǔ)存單元108取得于步驟214由第一核心102/104儲(chǔ)存于共享狀態(tài)儲(chǔ)存單元108的執(zhí)行緒狀態(tài)。在一實(shí)施例中,步驟222接收的中斷會(huì)調(diào)用第二核心102/104的一微碼常式來(lái)從共享狀態(tài)儲(chǔ)存單元108取得執(zhí)行緒狀態(tài)。接下來(lái)前進(jìn)至步驟226。
      [0054]在步驟226中,切換管理單元106指示第一核心102/104進(jìn)入低功耗模式。在一實(shí)施例中,此低功耗模式系可程序化,例如可利用系統(tǒng)軟件,透過(guò)處理器100的控制寄存器,從第一核心102/104支援的多個(gè)低功耗模式取得,以利調(diào)整處理器100的效能相對(duì)于功耗的特性。接下來(lái)前進(jìn)至步驟228。
      [0055]在步驟228中,第一核心102/104進(jìn)入步驟226指示的低功耗模式。此流程終止于此。
      [0056]值得注意的是,雖然圖2的各個(gè)步驟有其先后順序,不過(guò),部分步驟可以不同的順序或是與其他步驟同時(shí)進(jìn)行。舉例來(lái)說(shuō),若是重視降低功耗更甚于提升效能,可將步驟222與226的順序?qū)φ{(diào)。又,在一實(shí)施例中,步驟216的操作可以發(fā)生于步驟214完成前,而使步驟214與218大致同時(shí)進(jìn)行以更快速地使第二核心102/104執(zhí)行執(zhí)行緒。相同地,在一實(shí)施例中,步驟226的操作可以發(fā)生于步驟224完成前,而使步驟224與228大致同時(shí)進(jìn)行以降低功耗。此外,若是重視降低功耗更甚于提升效能,可將步驟212與216的順序?qū)φ{(diào)。
      [0057]圖3為圖1的處理器100的運(yùn)作另一實(shí)施例的流程圖。此流程始于步驟302。
      [0058]在步驟302中,圖1的二個(gè)非對(duì)稱核心102/104中的一第一核心正在執(zhí)行一應(yīng)用程序執(zhí)行緒,此第一核心可為低核心104或高核心102。接下來(lái)前進(jìn)至步驟304。
      [0059]在步驟304中,切換管理單元106檢測(cè)到核心102/104的利用率已經(jīng)高于一相對(duì)應(yīng)的切換至高核心或是低于一相對(duì)應(yīng)的切換至低核心的臨界值。也就是說(shuō),若是低核心104正在執(zhí)行,切換管理單元106檢測(cè)到利用率高于一臨界值,即表示低核心104過(guò)度使用,切換至高核心102執(zhí)行較為有利;反之,若是高核心102正在執(zhí)行,切換管理單元106檢測(cè)到利用率低于一臨界值,即表示高核心102的利用率太低,切換至低核心104執(zhí)行較為有利。就一實(shí)施例而言,此切換至高核心的臨界值大于切換至低核心的臨界值,其提供磁滯效應(yīng)以避免切換過(guò)于頻繁。就一實(shí)施例而言,此關(guān)于核心利用的臨界值可被程序化,如利用軟件程序來(lái)協(xié)助調(diào)整核心切換的邏輯運(yùn)算。
      [0060]核心102/104的利用率系一個(gè)指標(biāo)用來(lái)量測(cè)執(zhí)行執(zhí)行緒時(shí)核心的使用量。利用率可透過(guò)多種方式進(jìn)行量測(cè)。在一實(shí)施例中,利用率基于指令引退率來(lái)計(jì)算。核心102/104可包含一計(jì)數(shù)器以累計(jì)給定時(shí)鐘周期內(nèi)引退指令的數(shù)量,并且周期性重置。在一實(shí)施例中,利用率系基于運(yùn)作模式相較于不運(yùn)作模式所耗費(fèi)的時(shí)間。在運(yùn)作模式中,核心102/104會(huì)執(zhí)行指令,但在不運(yùn)作模式則否。舉例來(lái)說(shuō),不運(yùn)作模式可對(duì)應(yīng)或包含前述低功耗模式,如中止執(zhí)行、停用時(shí)鐘、停用電源等,就如同進(jìn)入CO以外的其他C-state。核心102/104可包含一計(jì)數(shù)器,以計(jì)算在運(yùn)作模式下所耗費(fèi)的時(shí)間以及在各個(gè)不運(yùn)作模式下所耗費(fèi)的時(shí)間。此核心102/104可包含自運(yùn)行計(jì)數(shù)器,即使在時(shí)鐘與/或電源停用的情況下都可運(yùn)行,以確保能即時(shí)計(jì)算。就一實(shí)施例而言,可采用最近的預(yù)設(shè)時(shí)間周期來(lái)計(jì)算利用率,此預(yù)設(shè)時(shí)間周期系可程序化,如利用軟件程序以便于切換演算法的協(xié)調(diào)。切換管理單元106可存取第一核心102/104的計(jì)數(shù)器以確認(rèn)利用率。接下來(lái)流程由步驟304前進(jìn)至步驟306。
      [0061]在步驟306中,切換管理單元106指示第一核心102/104停止執(zhí)行執(zhí)行緒。就一實(shí)施例而言,切換管理單元106傳送指令至第一核心102/104以停止執(zhí)行緒的執(zhí)行。切換管理單兀106中斷第一核心102/104,并使第一核心102/104調(diào)用微碼常式而使第一核心102/104如步驟308所述停止執(zhí)行執(zhí)行緒。接下來(lái)前進(jìn)至步驟308。
      [0062]在步驟308中,第一核心102/104停止執(zhí)行執(zhí)行緒。就一實(shí)施例而言,第一核心102/104獲得一靜止條件(quiescent condit1n),以供后續(xù)執(zhí)行如圖2的步驟214所述儲(chǔ)存執(zhí)行緒狀態(tài)的步驟。接下來(lái)流程由步驟308前進(jìn)至圖2的步驟212以執(zhí)行圖2的步驟212至步驟228。
      [0063]圖4為一非對(duì)稱多核心處理器100的一實(shí)施例的方塊示意圖,此實(shí)施例的切換管理單元整合于非對(duì)稱核心102/104中。圖4的處理器100大致類(lèi)似于圖1的處理器;不過(guò),在圖4的實(shí)施例中,切換管理單元106整合于核心102/104,而非一獨(dú)立于核心102/104外的元件。此將切換管理單元106整合于核心102/104的實(shí)施例中,位于第一核心102/104內(nèi)的部分切換管理單元106有效指示第一核心102/104執(zhí)行步驟208所述的切換動(dòng)作、指示第一核心102/104執(zhí)行步驟212所述儲(chǔ)存執(zhí)行緒狀態(tài)的步驟、執(zhí)行步驟216所述通知第二核心102/104脫離低功耗模式的步驟、執(zhí)行步驟222所述指示第二核心102/104取回執(zhí)行緒狀態(tài)并開(kāi)始執(zhí)行執(zhí)行緒的步驟、以及執(zhí)行如步驟228所述指示第一核心102/104進(jìn)入低功耗模式的步驟。此外,就一實(shí)施例而言,無(wú)論此切換管理單元106系整合于核心內(nèi)或是一獨(dú)立元件,類(lèi)似于圖3的步驟304的運(yùn)算可利用來(lái)確認(rèn)是否存在過(guò)度使用或利用率過(guò)低的情形而需執(zhí)行切換動(dòng)作。在一實(shí)施例中,核心102/104具有硬件狀態(tài)機(jī),在執(zhí)行執(zhí)行緒的同時(shí),亦可執(zhí)行確認(rèn)是否切換的運(yùn)算。在另一實(shí)施例中,則是由微碼來(lái)執(zhí)行此確認(rèn)是否切換的運(yùn)算,如對(duì)于一周期性計(jì)時(shí)器中斷所作的反應(yīng)。又,此微碼亦可在每一次核心102/104由運(yùn)作模式轉(zhuǎn)換至不運(yùn)作模式、或是由不運(yùn)作模式轉(zhuǎn)換至運(yùn)作模式而被調(diào)用時(shí)來(lái)確認(rèn)利用率。雖然整合于核心的切換管理單元使用微碼來(lái)確認(rèn)是否執(zhí)行切換動(dòng)作,會(huì)消耗核心指令執(zhí)行的部分頻寬,不過(guò)此方法相較于傳統(tǒng)方式利用操作系統(tǒng)來(lái)確認(rèn)是否執(zhí)行切換動(dòng)作,在效能乃至于本文提及的其他面向上仍然有其優(yōu)勢(shì)。
      [0064]圖5為一非對(duì)稱多核心處理器100 —實(shí)施例的方塊不意圖。此非對(duì)稱核心102/104直接將執(zhí)行緒狀態(tài)視為切換執(zhí)行的一部分來(lái)傳送。圖5的處理器100大致類(lèi)似于圖1的處理器100 ;不過(guò),在圖5的實(shí)施例中,處理器100并不具有圖1的共享狀態(tài)儲(chǔ)存單元108,低核心104與高核心102直接將執(zhí)行緒狀態(tài)視為切換執(zhí)行的一部分來(lái)傳送。這在圖6會(huì)有更詳細(xì)的描述。
      [0065]圖6為圖5的處理器100的運(yùn)作的一實(shí)施例的流程圖。圖6的流程與圖2在許多方面都相類(lèi)似;不過(guò),圖6的流程省掉圖2的步驟212與214,步驟208系直接前進(jìn)至步驟216 ;此外,步驟222與224則是由步驟622與624取代,也就是說(shuō),步驟218系前進(jìn)至步驟622,然后前進(jìn)至步驟624,步驟624再前進(jìn)至步驟226。
      [0066]在步驟622中,切換管理單元106指示第一核心102/104將執(zhí)行緒狀態(tài)直接傳送至第二核心102/104。除了傳送執(zhí)行緒狀態(tài),第一核心102/104也會(huì)傳送其他非第二核心102/104執(zhí)行執(zhí)行緒所必要,但仍然有助于第二核心102/104執(zhí)行執(zhí)行緒的狀態(tài),例如第一核心102/104的一個(gè)或多個(gè)快取記憶體的部分或全部的內(nèi)容。接下來(lái)前進(jìn)至步驟624。
      [0067]在步驟624中,第一核心102/104直接將執(zhí)行緒狀態(tài)儲(chǔ)存于第二核心102/104。接下來(lái)流程前進(jìn)至步驟226。
      [0068]值得注意的是,圖5與圖6所述的直接儲(chǔ)存執(zhí)行緒狀態(tài)的步驟可適用于具有獨(dú)立的切換管理單元106的實(shí)施例(如圖1所示)以及具有整合的切換管理單元的實(shí)施例(如圖4所示)。
      [0069]圖7為一非對(duì)稱多核心處理器100的一實(shí)施例的方塊不意圖。圖7的處理器100類(lèi)似于圖1的處理器100,即低核心相較于高核心,其效能較低但消耗較少的能量;不過(guò),在圖7的實(shí)施例中,低核心104與高核心102均支援全部的指令集架構(gòu)特征集合(不同于圖1中低核心104與高核心102系支援指令集架構(gòu)的不同的特征子集合)。在圖7的實(shí)施例中,圖2與圖6所示的運(yùn)作基本上是不相關(guān)的,也就是說(shuō),執(zhí)行的切換并非由執(zhí)行緒嘗試執(zhí)行一非支援特征所決定,不過(guò),仍然是由原生的切換管理單元106來(lái)執(zhí)行切換,而非如傳統(tǒng)方式由操作系統(tǒng)來(lái)執(zhí)行。因此,原生的切換管理單元106的優(yōu)點(diǎn)系可被理解的。
      [0070]本文所述的實(shí)施例的優(yōu)點(diǎn)在于不需使用會(huì)消耗核心執(zhí)行頻寬的架構(gòu)軟件來(lái)確認(rèn)切換是否需執(zhí)行。其效能的優(yōu)勢(shì)需要在處理器設(shè)置額外硬件以確認(rèn)切換執(zhí)行來(lái)實(shí)現(xiàn),不過(guò),這些硬件會(huì)消耗額外能量。
      [0071]本發(fā)明的實(shí)施例所提供的另一優(yōu)點(diǎn)在于,利用處理器本身來(lái)檢測(cè)切換的需求可以改善傳統(tǒng)上使用系統(tǒng)軟件處理的問(wèn)題。具體來(lái)說(shuō),不需修改系統(tǒng)軟件即可享有如本文實(shí)施例所述的非對(duì)稱多核心處理器的優(yōu)點(diǎn),即降低功耗但維持接近于高核心的效能。這對(duì)于專屬(proprietary)的操作系統(tǒng)特別有利。
      [0072]本發(fā)明的實(shí)施例所提供的另一優(yōu)點(diǎn)在于,因?yàn)榈吞卣骱诵呐c高特征核心結(jié)合后可支援所有指令集架構(gòu)特征,但個(gè)別僅支援此特征集合的一子集合,因此,相較于支援整個(gè)指令集架構(gòu)特征集合,各核心各自消耗的能量可以降低。
      [0073]雖然本文實(shí)施例所述的多核心處理器僅具有單一組非對(duì)稱核心,不過(guò),本發(fā)明不限于此。本發(fā)明的精神亦可適用于具有兩個(gè)以上核心且其中至少一核心與其他核心不對(duì)稱的實(shí)施例,以及具有多組非對(duì)稱核心的實(shí)施例。
      [0074]此外,雖然本文所述的實(shí)施例中,切換動(dòng)作不是在(I)執(zhí)行緒嘗試使用核心不支援的特征,就是在(2)低核心被過(guò)度使用或高核心利用率過(guò)低時(shí)執(zhí)行,不過(guò),本發(fā)明并不限于此。本發(fā)明亦適用于,執(zhí)行緒嘗試執(zhí)行一核心支持的特征,但此特征系高度相關(guān)于一效能需求與其他核心更密切相關(guān)的執(zhí)行緒。舉例來(lái)說(shuō),假設(shè)高核心正執(zhí)行于其所支援位元寬度最寬的操作模式,而執(zhí)行緒改變至位元寬度最窄的操作模式,此模式系與低效能需求高度相關(guān);隨后,切換至低核心的動(dòng)作就會(huì)執(zhí)行。在一實(shí)施例中,切換管理單元只會(huì)在高核心當(dāng)前的利用率不會(huì)太大的情況下,即小于一可程序化預(yù)設(shè)臨界值,使切換動(dòng)作發(fā)生。
      [0075]但以上所述,僅為本發(fā)明的較佳實(shí)施例而已,當(dāng)不能以此限定本發(fā)明實(shí)施的范圍,即大凡依本發(fā)明權(quán)利要求保護(hù)范圍及發(fā)明說(shuō)明內(nèi)容所作的簡(jiǎn)單的等效變化與修改,皆仍屬本發(fā)明專利涵蓋的范圍內(nèi)。舉例來(lái)說(shuō),軟件可以執(zhí)行本發(fā)明所述的裝置與方法的功能、制造、形塑、模擬、描述以及/或測(cè)試等。這可由一般的程序語(yǔ)言(如C、C++)、硬件描述語(yǔ)言(HDL)包含Verilog HDL,VHDL等,或是其他既有程序來(lái)達(dá)成。此軟件可以設(shè)置于任何已知的電腦可利用媒介,如磁帶、半導(dǎo)體、磁盤(pán)、光盤(pán)(如CD-ROM、DVD-ROM等)、網(wǎng)絡(luò)接線、無(wú)線或是其他通訊媒介。此處描述的裝置與方法的實(shí)施例可被包含于一半導(dǎo)體智財(cái)核心,例如一微處理核心(如以硬件描述語(yǔ)言的實(shí)施方式)并且透過(guò)集成電路的制作轉(zhuǎn)換為硬件。此外,本文所描述的裝置與方法亦可包含硬件與軟件的結(jié)合。因此,本文所述的任何實(shí)施例,并非用以限定本發(fā)明的范圍。此外,本發(fā)明可應(yīng)用于一般通用電腦的微處理器裝置。最后,所屬【技術(shù)領(lǐng)域】的技術(shù)人員利用本發(fā)明所公開(kāi)的觀念與實(shí)施例作為基礎(chǔ),來(lái)設(shè)計(jì)并調(diào)整出不同的結(jié)構(gòu)已達(dá)成相同的目的,亦不超出本發(fā)明的范圍。
      [0076]但以上所述,僅為本發(fā)明的較佳實(shí)施例而已,當(dāng)不能以此限定本發(fā)明實(shí)施的范圍,即大凡依本發(fā)明權(quán)利要求及發(fā)明說(shuō)明內(nèi)容所作的簡(jiǎn)單的等效變化與修改,皆仍屬本發(fā)明專利涵蓋的范圍內(nèi)。另外本發(fā)明的任一實(shí)施例或申請(qǐng)專利范圍不須達(dá)成本發(fā)明所公開(kāi)的全部目的或優(yōu)點(diǎn)或特點(diǎn)。此外,摘要部分和標(biāo)題僅是用來(lái)輔助專利文件搜尋之用,并非用來(lái)限制本發(fā)明的權(quán)利范圍。
      【權(quán)利要求】
      1.一種處理器,具有一指令集架構(gòu),其特征在于,該指令集架構(gòu)具有一特征集合,該處理器包含: 一第一與一第二處理核心,用以支援該指令集架構(gòu)的特征集合中,相對(duì)應(yīng)的一第一與一第二特征子集合; 其中,受支援的該第一特征子集合少于該指令集架構(gòu)的特征集合的所有特征; 其中,受支援的該第一與該第二特征子集合互不相同; 其中,受支援的該第一與該第二特征子集合的結(jié)合即為該指令集架構(gòu)的特征集合的所有特征; 其中,當(dāng)一執(zhí)行緒由該第一核心執(zhí)行時(shí),該第一核心檢測(cè)該執(zhí)行緒是否嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的該第一特征子集合的一特征,以做出指示該處理器由該第一核心切換至該第二核心用以執(zhí)行該執(zhí)行緒的回應(yīng)。
      2.如權(quán)利要求1的處理器,其特征在于,相較于該第二核心,該第一核心執(zhí)行該執(zhí)行緒的功耗較少但效能較低。
      3.如權(quán)利要求1的處 理器,其特征在于, 該受支援的第二特征子集合少于該指令集架構(gòu)的特征集合的所有特征; 其中,當(dāng)該執(zhí)行緒由該第二核心執(zhí)行時(shí),該第二核心檢測(cè)該執(zhí)行緒是否嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的該第二特征子集合的一特征,以做出指示該處理器切換至該第一核心用以執(zhí)行該執(zhí)行緒的回應(yīng)。
      4.如權(quán)利要求1的處理器,其特征在于,該第一核心依據(jù)其于該執(zhí)行緒中是否遭遇到該第一核心不支援的該指令集架構(gòu)的一指令,以檢測(cè)該執(zhí)行緒嘗試?yán)貌话谑苤г脑摰谝惶卣髯蛹系脑撎卣鳌?br> 5.如權(quán)利要求1的處理器,其特征在于,該第一核心依據(jù)該執(zhí)行緒是否嘗試進(jìn)入該第一核心不支援的該指令集架構(gòu)的一操作模式,以檢測(cè)該執(zhí)行緒嘗試?yán)貌话谑苤г脑摰谝惶卣髯蛹系脑撎卣鳌?br> 6.如權(quán)利要求1的處理器,其特征在于,由該第一核心切換至該第二核心執(zhí)行該執(zhí)行緒的切換動(dòng)作包含將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心,其中,在檢測(cè)到該執(zhí)行緒嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的該第一特征子集合的該特征時(shí),該處理器自動(dòng)執(zhí)行該狀態(tài)移轉(zhuǎn)以為回應(yīng),而非由執(zhí)行于該第一核心的架構(gòu)軟件來(lái)指示該處理器執(zhí)行該狀態(tài)移轉(zhuǎn)。
      7.如權(quán)利要求1的處理器,其特征在于,還包含: 一切換管理單元,用以檢測(cè)該第二核心的利用率在執(zhí)行該執(zhí)行緒時(shí)是否低于一臨界值,以指示該處理器由該第二核心切換至該第一核心執(zhí)行該執(zhí)行緒。
      8.如權(quán)利要求7的處理器,其特征在于,該切換管理單元還用以檢測(cè)該第一核心的利用率在執(zhí)行該執(zhí)行緒時(shí)是否高于一第二臨界值,以切換至該第二核心執(zhí)行該執(zhí)行緒。
      9.如權(quán)利要求7的處理器,其特征在于,該切換管理單元包含一第三核心,該第三核心異于該第一與該第二核心。
      10.如權(quán)利要求7的處理器,其特征在于,該切換管理單元包含該第二核心的微碼。
      11.如權(quán)利要求1的處理器,其特征在于,在該第一核心指示該處理器切換至該第二核心執(zhí)行該執(zhí)行緒后,該第一核心進(jìn)入一低功耗模式。
      12.如權(quán)利要求11的處理器,其特征在于,在該第一核心進(jìn)入該低功耗模式前,該第一核心儲(chǔ)存該執(zhí)行緒的一執(zhí)行狀態(tài)。
      13.如權(quán)利要求12的處理器,其特征在于,在該第二核心執(zhí)行該執(zhí)行緒前,該第二核心取得由該第一核心的該執(zhí)行緒所儲(chǔ)存的該執(zhí)行狀態(tài)。
      14.如權(quán)利要求13的處理器,其特征在于,在該第二核心取得該執(zhí)行緒所儲(chǔ)存的該執(zhí)行狀態(tài)前,該第二核心離開(kāi)一低功耗模式。
      15.一種由一處理器執(zhí)行的方法,其特征在于,該處理器具有一指令集架構(gòu)以及一第一與一第二處理核心,該指令集架構(gòu)具有一特征集合,該方法包含: 當(dāng)一執(zhí)行緒由該第一核心執(zhí)行時(shí),檢測(cè)該執(zhí)行緒是否嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于一第一特征子集合的一特征,其中,該第一核心用以支援該第一特征子集合,其中,受支援的該第一特征子集合少于該指令集架構(gòu)的特征集合的所有特征,其中,該第二核心用以支援該指令集架構(gòu)的特征集合中的一第二特征子集合,其中,受支援的該第一與該第二特征子集合的特征互不相同,其中,該第一與該第二特征子集合所支援的特征的結(jié)合即為該指令集架構(gòu)的特征集合的所有特征;以及 將該執(zhí)行緒的執(zhí)行切換至該第二核心而非該第一核心,以回應(yīng)該檢測(cè)結(jié)果。
      16.如權(quán)利要求15的方法,其特征在于,還包含: 當(dāng)該執(zhí)行緒由該第二核心執(zhí)行時(shí),檢測(cè)該執(zhí)行緒是否嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的該第二特征子集合的一特征,其中,該第二特征子集合少于該指令集架構(gòu)的特征集合的所有特征;以及 當(dāng)該執(zhí)行緒由該第二核心而非該第一核心執(zhí)行時(shí),若是檢測(cè)到該執(zhí)行緒嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的該第二特征子集合的該特征,將該執(zhí)行緒的執(zhí)行切換至該第一核心而非該第二核心。
      17.如權(quán)利要求15的方法,其特征在于,該檢測(cè)步驟包含檢測(cè)是否于該執(zhí)行緒中遭遇該第一核心不支援的該指令集架構(gòu)的一指令。
      18.如權(quán)利要求15的方法,其特征在于,該檢測(cè)步驟包含檢測(cè)該執(zhí)行緒是否嘗試進(jìn)入該第一核心不支援的該指令集架構(gòu)的一操作模式。
      19.如權(quán)利要求15的方法,其特征在于,該切換步驟包含將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心,其中,在檢測(cè)到該執(zhí)行緒嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不包含于受支援的該第一特征子集合的該特征時(shí),該狀態(tài)移轉(zhuǎn)系由該處理器自動(dòng)執(zhí)行以為回應(yīng),而非由執(zhí)行于該第一核心的架構(gòu)軟件來(lái)指示該處理器執(zhí)行該狀態(tài)移轉(zhuǎn)。
      20.如權(quán)利要求15的方法,其特征在于,還包含: 檢測(cè)該第二核心的利用率在執(zhí)行該執(zhí)行緒時(shí)是否低于一臨界值;以及 若是檢測(cè)到該第二核心的利用率在執(zhí)行該執(zhí)行緒時(shí)低于該臨界值,將該執(zhí)行緒的執(zhí)行由該第二核心切換至該第一核心,以回應(yīng)該檢測(cè)步驟。
      21.一種處理器,其特征在于,包含: 至少二個(gè)處理核心,其中一個(gè)該處理核心執(zhí)行一執(zhí)行緒的功耗較低但效能亦較低; 其中,該處理器檢測(cè)一事件是否發(fā)生,以指示該執(zhí)行緒的執(zhí)行由該些核心中的一第一核心切換至該些核心中的一第二核心; 其中,該處理器在檢測(cè)到該事件時(shí),自動(dòng)將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心以為回應(yīng),而非由執(zhí)行于該第一核心的架構(gòu)軟件來(lái)指示該處理器將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心。
      22.如權(quán)利要求21的處理器,其特征在于,該至少二個(gè)處理核心集體支援該處理器的一指令集架構(gòu)的一特征集合,其中,該處理器透過(guò)檢測(cè)該執(zhí)行緒嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不受該第一核心支援的一特征,來(lái)檢測(cè)該事件。
      23.如權(quán)利要求21的處理器,其特征在于,該處理器透過(guò)檢測(cè)該第一核心在執(zhí)行該執(zhí)行緒時(shí),其利用率是否過(guò)低,來(lái)檢測(cè)該事件。
      24.—種由一處理器執(zhí)行的方法,其特征在于,該處理器具有至少二個(gè)處理核心,其中一個(gè)該處理核心執(zhí)行一執(zhí)行緒的功耗較低但效能亦較低,該方法包含: 利用該處理器檢測(cè)一事件是否發(fā)生,以指示該執(zhí)行緒的執(zhí)行由該些核心中的一第一核心切換至該些核心中的一第二核心;以及 在檢測(cè)到該事件時(shí),利用該處理器自動(dòng)將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心以為回應(yīng),而非由執(zhí)行于該第一核心的架構(gòu)軟件來(lái)指示該處理器將該執(zhí)行緒的狀態(tài)由該第一核心移轉(zhuǎn)到該第二核心。
      25.如權(quán)利要求24的方法,其特征在于,該至少二個(gè)處理核心系集體支援該處理器的一指令集架構(gòu)的一特征集合,其中,該檢測(cè)步驟系透過(guò)檢測(cè)該執(zhí)行緒嘗試?yán)迷撝噶罴軜?gòu)的特征集合中不受該第一核心支援的一特征,來(lái)檢測(cè)該事件。
      26.如權(quán)利要求24的處理器,其特征在于,該檢測(cè)步驟系透過(guò)檢測(cè)該第一核心在執(zhí)行該執(zhí)行緒時(shí),其利用率是否過(guò)低,來(lái)檢測(cè)該事件。
      【文檔編號(hào)】G06F9/30GK104077106SQ201410048503
      【公開(kāi)日】2014年10月1日 申請(qǐng)日期:2014年2月12日 優(yōu)先權(quán)日:2013年3月26日
      【發(fā)明者】羅德尼·E·虎克, 泰瑞·派克斯, G·葛蘭·亨利 申請(qǐng)人:威盛電子股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1