專利名稱:處理器系統(tǒng)、指令序列優(yōu)化裝置和指令序列優(yōu)化程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于減小處理器系統(tǒng)的功耗的技術(shù),這種處理器系統(tǒng)包括多個(gè)相同類型或不同類型的處理器,例如稱為中央處理單元(CPU)的處理單元、一個(gè)硬件引擎(HWE)、一個(gè)協(xié)處理器或一個(gè)數(shù)字信號(hào)處理器(DSP),并且能夠執(zhí)行并行處理。
背景技術(shù):
已經(jīng)有一種已知技術(shù),用于當(dāng)CPU處理中的負(fù)載輕時(shí),通過減小時(shí)鐘信號(hào)的頻率,減小CPU的功耗(例如,日本未審專利出版物No.9-34599)。還已知一種技術(shù),用于當(dāng)在一個(gè)包括多個(gè)單元例如CPU和一個(gè)協(xié)處理器的處理器系統(tǒng)中,解碼指令是“無操作”時(shí),通過關(guān)斷一個(gè)關(guān)聯(lián)單元的電源,減小整個(gè)系統(tǒng)或來自整個(gè)系統(tǒng)的功耗和熱釋放(例如,日本未審專利出版物No.2000-112756)。
還已知一種技術(shù),用于按照處理負(fù)載或操作環(huán)境的設(shè)置,通過控制同時(shí)操作的CPU數(shù),提高處理能力或減小功耗(例如,日本未審專利出版物No.9-138716)。
上述僅減小時(shí)鐘信號(hào)的頻率的技術(shù)在處理負(fù)載輕時(shí)適用,但是當(dāng)要求高處理能力時(shí)不適用。因此,并不總能大大降低整個(gè)系統(tǒng)的功耗。
另外,應(yīng)用關(guān)斷一個(gè)不執(zhí)行處理的單元的電源的技術(shù),并不減小處理本身中的功耗,并且因而也不實(shí)現(xiàn)功耗的較大減小。
而且,控制同時(shí)操作的CPU數(shù)的技術(shù)在要求高處理能力時(shí)不能減小功耗,所以并不同時(shí)實(shí)現(xiàn)處理能力的提高和功耗的減小。
發(fā)明內(nèi)容
因此本發(fā)明的一個(gè)目的是大大減小特別是包括多個(gè)處理器的處理系統(tǒng)的功耗,同時(shí)能夠既保持處理能力也減小功耗。
為了實(shí)現(xiàn)這個(gè)目的,第一處理器系統(tǒng)是包括多個(gè)處理器的處理器系統(tǒng)。該處理器系統(tǒng)包括分配控制裝置,用于讀出由各自處理器所執(zhí)行的指令,并且控制對(duì)處理器的指令分配;時(shí)鐘控制裝置,用于按照處理器根據(jù)分配所執(zhí)行的指令,控制供給各自處理器的時(shí)鐘信號(hào)的頻率;和電壓控制裝置,用于按照時(shí)鐘控制裝置對(duì)時(shí)鐘信號(hào)的頻率的控制,至少控制供給各自處理器的電源電壓,或供給構(gòu)成各自處理器的晶體管的襯底節(jié)點(diǎn)的襯底電壓。當(dāng)分配控制裝置使多個(gè)處理器并行執(zhí)行指令時(shí),時(shí)鐘控制裝置和電壓控制裝置分別供給各具有比預(yù)定頻率低的頻率的時(shí)鐘信號(hào),和比預(yù)定電壓低的電源電壓,或用于提供比預(yù)定閾值電壓高的閾值電壓的襯底電壓。
在這種系統(tǒng)中,供給具有比預(yù)定頻率低的頻率的時(shí)鐘信號(hào),以便增大電路中延遲的容限。因此,供給低于預(yù)定電壓的電源電壓,或用于提供比預(yù)定閾值電壓高的閾值電壓的襯底電壓,用于操作。結(jié)果,使功耗減小。另外,由多個(gè)處理器并行執(zhí)行指令,因而保證保持處理能力。
第二處理器系統(tǒng)是第一處理器系統(tǒng),其中分配控制裝置、時(shí)鐘控制裝置和電壓控制裝置根據(jù)指令中包括的控制信息,分別控制對(duì)處理器的分配,時(shí)鐘信號(hào)的頻率,和電源電壓或襯底電壓。
第三處理器系統(tǒng)是第二處理器系統(tǒng),其中控制信息指示對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率和電源電壓或襯底電壓的多個(gè)組合中的一個(gè)。
在這些系統(tǒng)中,根據(jù)指令中包括的控制信息,控制對(duì)處理器的分配和其他,并且例如不必提供一個(gè)用于分配的指令分析電路。結(jié)果,以小電路規(guī)模使功耗減小。
第四處理器系統(tǒng)是第一處理器系統(tǒng),并且還包括指令分析裝置,用于分析指令是否可由多個(gè)處理器并行執(zhí)行,其中分配控制裝置、時(shí)鐘控制裝置和電壓控制裝置根據(jù)指令分析裝置的分析結(jié)果,控制對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率和電源電壓或襯底電壓。
第五處理器系統(tǒng)是第四處理器系統(tǒng),其中指令分析裝置分析按照指令執(zhí)行的過程是否為一個(gè)具有重負(fù)載的過程。
第六處理器系統(tǒng)是第五處理器系統(tǒng),其中具有重負(fù)載的過程包括一個(gè)執(zhí)行預(yù)定次數(shù)或更多次數(shù)的循環(huán)過程。
在這些系統(tǒng)中,根據(jù)指令的分析確定對(duì)處理器的分配和其他。因此,即使在不包括特別指示對(duì)處理器的分配和其他的信息的這樣指令代碼的指令情況下,也控制分配和其他,以便減小功耗,并且高速執(zhí)行大量循環(huán)過程。為了容易地減小功耗或增大處理速度,例如,一名人員如程序開發(fā)人員只需指定功耗或處理能力,而不考慮時(shí)鐘信號(hào)的頻率。
當(dāng)供分析所參考的指令數(shù)增大時(shí),甚至能并行處理稍微復(fù)雜的重復(fù)過程,因而進(jìn)一步保證容易地減小功耗。然而,指令數(shù)的增大導(dǎo)致用于分析的電路規(guī)模的增大。因此,例如,需要按照處理器系統(tǒng)要求的處理能力和功耗,確定所分析的指令數(shù)。分配給一個(gè)處理器的指令數(shù)不限于一個(gè)。如果一個(gè)過程的指令序列可由一個(gè)或多個(gè)處理器高效率地執(zhí)行,這樣指令序列可以作為一個(gè)單元來分配。
第七處理器系統(tǒng)是第二處理器系統(tǒng),其中多個(gè)處理器包含一個(gè)包括關(guān)于襯底電壓具有第一閾值電壓的晶體管的處理器,和一個(gè)包括關(guān)于襯底電壓具有第二閾值電壓的晶體管的處理器,第二閾值電壓比第一閾值電壓高,并且分配控制裝置、時(shí)鐘控制裝置和電壓控制裝置根據(jù)指令中包括的控制信息和處理器中包括的晶體管的閾值電壓,分別控制對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率和電源電壓或襯底電壓。
第八處理器系統(tǒng)是第四處理器系統(tǒng),其中多個(gè)處理器包含一個(gè)包括關(guān)于襯底電壓具有第一閾值電壓的晶體管的處理器,和一個(gè)包括關(guān)于襯底電壓具有第二閾值電壓的晶體管的處理器,第二閾值電壓比第一閾值電壓高,并且分配控制裝置、時(shí)鐘控制裝置和電壓控制裝置根據(jù)指令分析裝置的分析結(jié)果和處理器中包括的晶體管的閾值電壓,分別控制對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率和電源電壓或襯底電壓。
在這些系統(tǒng)中,包括一個(gè)具有低閾值電壓的晶體管的處理器的操作保證保持處理能力。另外,包括一個(gè)具有高閾值電壓的晶體管的處理器的操作減小有效泄漏電流,并且從而進(jìn)一步容易地減小功耗。
第九處理器系統(tǒng)是第一處理器系統(tǒng),其中對(duì)一個(gè)分配控制裝置不對(duì)其分配執(zhí)行指令的處理器,電壓控制裝置停止供給電源電壓。
在這個(gè)系統(tǒng)中,在不操作的處理器中不出現(xiàn)泄漏電流,因而進(jìn)一步減小功耗。
第十處理器系統(tǒng)是第一處理器系統(tǒng),并且還包括故障信息保持裝置,用于保持指示各處理器是否正常操作的信息,其中分配控制裝置僅把執(zhí)行指令分配給正常操作的處理器。
第十一處理器系統(tǒng)是第十處理器系統(tǒng),并且還包括故障檢測裝置,用于使各處理器執(zhí)行測試操作,以確定處理器是否正常操作。
第十二處理器系統(tǒng)是第十一處理器系統(tǒng),其中故障檢測裝置使各處理器執(zhí)行一個(gè)測試程序,以根據(jù)執(zhí)行結(jié)果,確定各處理器是否正常操作。
在這些系統(tǒng)中,對(duì)沒有故障的處理器控制時(shí)鐘頻率和電源電壓,因而保證保持處理能力并且減小功耗。
第一指令序列優(yōu)化裝置是一個(gè)用于使一個(gè)包括多個(gè)處理器的處理器系統(tǒng)所執(zhí)行的指令序列優(yōu)化的指令序列優(yōu)化裝置。該裝置包括指令分析裝置,用于分析指令序列中包括的指令是否可由各自處理器執(zhí)行;和控制信息添加裝置,用于根據(jù)指令分析裝置的分析結(jié)果及指示功耗和處理能力的信息,對(duì)指令序列加上控制信息,控制信息指示對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率和電源電壓或襯底電壓。
第一指令序列優(yōu)化程序是一個(gè)用于使一個(gè)包括多個(gè)處理器的處理器系統(tǒng)所執(zhí)行的指令序列優(yōu)化的指令序列優(yōu)化程序。該程序使一臺(tái)計(jì)算機(jī)執(zhí)行一個(gè)指令分析步驟,用于分析指令序列中包括的指令是否可由多個(gè)處理器執(zhí)行;和一個(gè)控制信息添加步驟,用于根據(jù)指令分析步驟中得到的分析結(jié)果及指示功耗和處理能力的信息,對(duì)指令序列加上控制信息,控制信息指示對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率和電源電壓或襯底電壓。
而后,如第二處理器系統(tǒng)所述,用一個(gè)小電路刻度控制對(duì)處理器的分配。另外,容易地產(chǎn)生一個(gè)可由一個(gè)能使其功耗減小的處理器系統(tǒng)所執(zhí)行的指令序列。
第二指令序列優(yōu)化裝置是第一指令序列優(yōu)化裝置,其中控制信息添加裝置用多個(gè)處理器并行執(zhí)行的指令來代替一個(gè)處理器所執(zhí)行的指令。
第二指令序列優(yōu)化程序是第一指令序列優(yōu)化程序,其中在控制信息添加步驟中,由一個(gè)處理器所執(zhí)行的指令用多個(gè)處理器并行執(zhí)行的指令來代替。
于是,容易地由多個(gè)處理器并行執(zhí)行處理。
圖1是表示根據(jù)實(shí)施例1的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖2表示指令代碼的一例。
圖3表示加到指令代碼的時(shí)鐘控制標(biāo)志的一例。
圖4是表示根據(jù)實(shí)施例1的時(shí)鐘控制部分106的具體配置的方塊圖。
圖5是表示實(shí)施例1的處理器系統(tǒng)的操作的流程圖。
圖6表示實(shí)施例1的處理器系統(tǒng)的操作狀態(tài)。
圖7是表示根據(jù)實(shí)施例2的指令序列優(yōu)化裝置的配置的方塊圖。
圖8A和圖8B表示在實(shí)施例2的指令序列優(yōu)化裝置中,處理器的指令分配關(guān)于時(shí)鐘頻率和執(zhí)行周期的關(guān)系的例子。
圖9是表示實(shí)施例2的指令序列優(yōu)化裝置的操作的流程圖。
圖10是表示根據(jù)實(shí)施例2的一個(gè)變更例子的指令序列優(yōu)化裝置的配置的方塊圖。
圖11是表示實(shí)施例2的變更例子的指令序列優(yōu)化裝置的操作的流程圖。
圖12是表示實(shí)施例2的另一個(gè)變更例子的指令序列優(yōu)化裝置的操作的流程圖。
圖13A至13E表示執(zhí)行指令的順序關(guān)于時(shí)鐘頻率和執(zhí)行周期的關(guān)系的例子。
圖14是表示根據(jù)實(shí)施例3的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖15是表示實(shí)施例3的處理器系統(tǒng)的操作的流程圖。
圖16是表示根據(jù)實(shí)施例3的一個(gè)變更例子的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖17是表示根據(jù)實(shí)施例3的一個(gè)變更例子的處理器系統(tǒng)的操作的流程圖。
圖18是表示根據(jù)實(shí)施例4的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖19是表示實(shí)施例4的處理器系統(tǒng)的操作的流程圖。
圖20是表示根據(jù)實(shí)施例5的指令序列優(yōu)化裝置的配置的方塊圖。
圖21是表示實(shí)施例5的指令序列優(yōu)化裝置的操作的流程圖。
圖22是表示根據(jù)實(shí)施例6的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖23是表示根據(jù)實(shí)施例6的電源電壓控制部分701的具體配置的方塊圖。
圖24是表示根據(jù)實(shí)施例6的一個(gè)變更例子的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖25是表示根據(jù)實(shí)施例6的變更例子的電源電壓控制部分701的具體配置的方塊圖。
圖26是表示根據(jù)實(shí)施例7的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖27是表示根據(jù)實(shí)施例8的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖28是表示根據(jù)實(shí)施例9的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖29是表示根據(jù)實(shí)施例10的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖30是表示實(shí)施例10中的操作方式、對(duì)處理器的分配、電源電壓和時(shí)鐘頻率的組合的表。
圖31是表示根據(jù)實(shí)施例10的時(shí)鐘控制部分916的具體配置的方塊圖。
圖32表示根據(jù)實(shí)施例10的頻率控制寄存器106c的配置。
圖33是表示根據(jù)實(shí)施例10的電源電壓控制部分917的具體配置的方塊圖。
圖34表示根據(jù)實(shí)施例10的電源電壓控制寄存器701a的配置。
圖35是表示根據(jù)實(shí)施例11的指令序列優(yōu)化裝置的操作的流程圖。
圖36是表示根據(jù)實(shí)施例12的處理器系統(tǒng)的操作的流程圖。
圖37是表示根據(jù)實(shí)施例13的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖38是表示根據(jù)實(shí)施例13的電源電壓控制部分927的具體配置的方塊圖。
圖39表示根據(jù)實(shí)施例13的電源電壓控制寄存器701a的配置。
圖40是表示實(shí)施例13中的操作方式、對(duì)處理器的分配、電源電壓和時(shí)鐘頻率的組合的表。
圖41是表示根據(jù)實(shí)施例14的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖42是表示根據(jù)實(shí)施例14的時(shí)鐘控制部分936的具體配置的方塊圖。
圖43表示根據(jù)實(shí)施例14的頻率控制寄存器106c的配置。
圖44是表示根據(jù)實(shí)施例15的處理器系統(tǒng)的主要部分的配置的方塊圖。
圖45表示根據(jù)實(shí)施例15的故障寄存器941的配置。
具體實(shí)施例方式
以下,將參考附圖描述本發(fā)明的實(shí)施例。
(例如,本發(fā)明的概要和功耗與時(shí)鐘頻率之間的關(guān)系)首先,將描述一種與根據(jù)本發(fā)明使功耗減小的機(jī)制有關(guān)的功耗、時(shí)鐘頻率和其他方面之間的關(guān)系。
(功耗與時(shí)鐘頻率和電源電壓的關(guān)系)如果忽略泄漏電流,一個(gè)CMOS晶體管電路的功耗關(guān)于時(shí)鐘頻率和電源電壓一般具有以下關(guān)系P ∝ K×C×Vdd2×f (1)其中 P功耗K晶體管的轉(zhuǎn)換概率C受驅(qū)動(dòng)的負(fù)載容量Vdd電源電壓f時(shí)鐘頻率(晶體管的工作頻率)如以上表達(dá)式所示,如果使電源電壓或時(shí)鐘頻率減小,功耗減小。具體地,在一個(gè)給定周期期間,如果在一個(gè)時(shí)鐘頻率下執(zhí)行循環(huán)數(shù)大于一個(gè)過程(由過程和數(shù)據(jù)的詳細(xì)的組合所確定的過程)所必需的執(zhí)行循環(huán)數(shù),因?yàn)榻o定過程所必需的執(zhí)行循環(huán)數(shù)恒定,所以執(zhí)行晶體管的不必要觸發(fā)(ON/OFF轉(zhuǎn)換)。鑒于此,如果使時(shí)鐘頻率減小,以減小給定周期之內(nèi)的執(zhí)行循環(huán)數(shù),則使不必要觸發(fā)操作數(shù)減小,并且從而使功耗減小。
另外,時(shí)鐘頻率的減小增大電路延遲的容限,所以如下所述允許電源電壓減小。因此,使功耗(如上所述,它與電源電壓的平方成比例)進(jìn)一步減小。當(dāng)在兩個(gè)處理器之間分布一個(gè)過程,并且并行執(zhí)行這些分布過程時(shí),如果時(shí)鐘頻率減小到1/2,也使電源電壓減小,并且處理能力相同。結(jié)果,使功耗減小。
(電路的延遲時(shí)間與電源電壓和晶體管的閾值電壓的關(guān)系,以及泄漏電流與閾值電壓之間的關(guān)系)電路的延遲時(shí)間(門延遲時(shí)間)關(guān)于電源電壓和晶體管的閾值電壓具有以下關(guān)系td ∝ Vdd×C/(Vdd-Vt)2(2)其中 td電路的延遲時(shí)間C受驅(qū)動(dòng)的負(fù)載容量Vdd電源電壓Vt晶體管的閾值電壓假定受驅(qū)動(dòng)的負(fù)載容量恒定,延遲時(shí)間由電源電壓和閾值電壓確定。具體地,例如,在閾值電壓是0.4V的情況下,假定用2.5V電源電壓的延遲時(shí)間是td1,以及用1.75V電源電壓的延遲時(shí)間是td2,則建立關(guān)系td2/td1≈1.69。如果電源電壓從2.5V減小到1.75V,延遲時(shí)間增大約1.69倍。在f的時(shí)鐘頻率下用2.5V的電源電壓正常操作的電路,只要時(shí)鐘頻率約是f/1.69≈0.59×f或更低,即使用減小的1.75V電源電壓也可操作。如果電路在約0.59×f的時(shí)鐘頻率下操作,允許電源電壓減小到低達(dá)1.75V。因此,如表達(dá)式(1)所示,如果時(shí)鐘頻率減小,不僅通過減小時(shí)鐘頻率本身,而且通過減小電源電壓,使功耗減小。
如果通過減小時(shí)鐘頻率使電路延遲的容限增大,如上所述使電源電壓減小。類似地,如果閾值電壓增大,泄漏電流減小。也就是,泄漏電流和閾值具有以下關(guān)系Ileak ∝ exp{-Vt/(S×ln10)}(3)其中 Ileak泄漏電流SS因子具體地,如果閾值電壓用2.5V電源電壓從0.3V增大到0.6V,根據(jù)公式(2)使延遲時(shí)間增大1.34倍(如果時(shí)鐘頻率是0.75×f或較低,電路可操作)。然而,如果S因子是100mV,泄漏電流減到約27%。因此,由于泄漏電流的減小,時(shí)鐘頻率的減小也實(shí)現(xiàn)功耗的減小。
具體地,應(yīng)用最近半導(dǎo)體工藝中電路的小型化,通過在半導(dǎo)體芯片中結(jié)合大容量存儲(chǔ)器,使閾值電壓減小(縮放比例),并且使電路規(guī)模增大,例如,導(dǎo)致泄漏電流的增大趨于越來越顯著。另一方面,如果減小時(shí)鐘頻率,以允許增大延遲時(shí)間,例如通過控制襯底電壓以便增大閾值電壓,使功耗減小。
如上所述這樣的閾值電壓例如可以通過設(shè)置雜質(zhì)濃度而靜態(tài)地設(shè)置。另一方面,閾值電壓例如還可以通過控制半導(dǎo)體襯底的電壓,即通過對(duì)一個(gè)襯底節(jié)點(diǎn)(如果設(shè)置,一個(gè)阱)和晶體管的一個(gè)源節(jié)點(diǎn)施加反向偏置電壓而動(dòng)態(tài)地設(shè)置。
根據(jù)本發(fā)明,利用上述功耗與時(shí)鐘頻率、電源電壓和閾值電壓的關(guān)系,以便將指令分配給執(zhí)行各自指令的多個(gè)處理器,并且按照處理器的處理(執(zhí)行指令的處理時(shí)間),例如控制供給各處理器的時(shí)鐘頻率。這樣能夠使功耗大大減小而不使總處理能力惡化。
以下,將描述本發(fā)明的具體實(shí)施例。
(實(shí)施例1)如實(shí)施例1,將描述一個(gè)例子,其中在一個(gè)由半導(dǎo)體集成電路構(gòu)成的處理器系統(tǒng)中,根據(jù)加到指令的標(biāo)志,執(zhí)行對(duì)各自模塊(功能塊)例如CPU和硬件引擎(HWE)的指令分配,和時(shí)鐘頻率的控制。
圖1是表示一個(gè)處理器系統(tǒng)的主要部分的配置的方塊圖。該處理器系統(tǒng)包括一個(gè)存儲(chǔ)部分100;一個(gè)標(biāo)志檢測器101;一個(gè)指令分配控制部分102;一個(gè)CPU103;一個(gè)HWE104;一個(gè)SRAM105;一個(gè)時(shí)鐘控制部分106;和一條總線107。(標(biāo)志檢測器101和指令分配控制部分102構(gòu)成一個(gè)分配控制裝置,并且標(biāo)志檢測器101和時(shí)鐘控制部分106構(gòu)成一個(gè)時(shí)鐘控制裝置。)存儲(chǔ)部分100存儲(chǔ)待執(zhí)行的指令的指令代碼,并且例如由一個(gè)ROM構(gòu)成,其中預(yù)先存儲(chǔ)指令代碼,或由一個(gè)RAM構(gòu)成,其中裝入存儲(chǔ)在硬盤上的指令代碼。指令代碼包含指示與CPU103和HWE104的時(shí)鐘頻率有關(guān)的操作方式的信息。具體地,如圖2所示,例如,構(gòu)成指令代碼,以便對(duì)表示指令細(xì)節(jié)的指令代碼的本體,加上分配控制標(biāo)志,指示CPU103和HWE104中的哪一個(gè)執(zhí)行指令,和時(shí)鐘控制標(biāo)志,指示用于操作CPU103和HWE104的時(shí)鐘信號(hào)的頻率。更具體地,如圖3所示,例如,在時(shí)鐘控制標(biāo)志中,兩個(gè)最高有效位指示供給CPU103的時(shí)鐘信號(hào)的頻率,并且兩個(gè)最低有效位指示供給HWE104的時(shí)鐘信號(hào)的頻率。這樣標(biāo)志例如不僅能由程序設(shè)計(jì)員加上,而且能使用后面將要描述的指令序列優(yōu)化裝置自動(dòng)地加上。CPU103的各時(shí)鐘頻率不一定與HWE104的各時(shí)鐘頻率獨(dú)立地指定,并且反之亦然??蛇x擇地,可以指定時(shí)鐘頻率的組合。如果時(shí)鐘頻率不特別地指定,可以選擇最高時(shí)鐘頻率。
標(biāo)志檢測器101向指令分配控制部分102輸出從存儲(chǔ)部分100讀出的指令代碼,和根據(jù)指令代碼中包含的控制標(biāo)志的分配控制信號(hào),并且還向時(shí)鐘控制部分106輸出根據(jù)時(shí)鐘控制標(biāo)志的時(shí)鐘控制信號(hào)。
指令分配控制部分102按照從標(biāo)志檢測器101輸出的分配控制信號(hào),把指令代碼傳送給CPU103或HWE104。例如,標(biāo)志檢測器101和指令分配控制部分102可以由硬件構(gòu)成,或可以由比CPU103較高級(jí)別的處理器構(gòu)成。指令代碼不一定直接傳送給CPU103或HWE104,而可以通過總線107傳送到那里。
CPU103可以是一個(gè)多種用途處理器,例如,它使用其中包括的計(jì)算資源或SRAM105,執(zhí)行各種類型的通用指令。(CPU103可以具有控制整個(gè)半導(dǎo)體集成電路的各種操作的功能。)另一方面,HWE104是一個(gè)處理器,例如,利用它通過一條或一系列指令,以高速(用少數(shù)處理循環(huán))并且獨(dú)立于(即分離于)CPU103的處理,執(zhí)行具體操作(程序處理),例如MPEG-4操作、維特比解碼或乘法累積操作。(在這種情況下,為了簡單起見,例如,根據(jù)圖2所示從地址0000至地址0003的循環(huán)過程以高速執(zhí)行的假定,給出描述。)SRAM105通過總線107與CPU103和HWE104連接,并且用作一個(gè)共享存儲(chǔ)器,其中存儲(chǔ)用于CPU103或HWE104的處理的臨時(shí)數(shù)據(jù)或其他類似數(shù)據(jù)。關(guān)于這樣存儲(chǔ)器,一般使用能夠高速操作的SRAM(靜態(tài)RAM),但是本發(fā)明不限于此。
時(shí)鐘控制部分106向CPU103、HWE104和SRAM105供給時(shí)鐘信號(hào),這些時(shí)鐘信號(hào)具有根據(jù)從標(biāo)志檢測器101輸出的時(shí)鐘控制信號(hào)的頻率。具體地,如圖4所示,時(shí)鐘控制部分106包括一個(gè)時(shí)鐘發(fā)生器106a,用于產(chǎn)生具有給定頻率的時(shí)鐘信號(hào);多個(gè)分頻器106b,用于按給定比劃分時(shí)鐘信號(hào)的頻率;一個(gè)頻率控制寄存器106c,用于保持從標(biāo)志檢測器101輸出的時(shí)鐘控制信號(hào);和一個(gè)選擇器106d,用于向CPU103、HWE104和SRAM105選擇地輸出一個(gè)時(shí)鐘信號(hào),它具有根據(jù)頻率控制寄存器106c中保持的信息的頻率。
現(xiàn)在,將描述這樣構(gòu)成的處理器系統(tǒng)怎樣操作。圖5是表示當(dāng)執(zhí)行存儲(chǔ)在存儲(chǔ)部分100中的指令時(shí)所執(zhí)行的控制操作的流程圖。圖中示意表示處理器系統(tǒng)的控制操作。然而,實(shí)際中并不按圖中所示的順序執(zhí)行各自步驟,并且一般并行執(zhí)行各自部分的操作。
(S100)標(biāo)志檢測器101預(yù)取存儲(chǔ)在存儲(chǔ)部分100中的指令代碼(或指令代碼集),并且檢測指令代碼中包含的分配控制標(biāo)志和時(shí)鐘控制標(biāo)志。
(S101)至(S103)其次,根據(jù)分配控制標(biāo)志的檢測結(jié)果,標(biāo)志檢測器101然后向指令分配控制部分102輸出一個(gè)指示CPU103或HWE104的分配控制信號(hào)和指令代碼。此時(shí),標(biāo)志可以保留在指令代碼中,或可以從那里移去。
(S104)其后,根據(jù)時(shí)鐘控制標(biāo)志的檢測結(jié)果,標(biāo)志檢測器101向時(shí)鐘控制部分106輸出一個(gè)時(shí)鐘控制信號(hào)。
(S105)時(shí)鐘控制部分106按照時(shí)鐘控制信號(hào),分別轉(zhuǎn)換輸出給CPU103和HWE104的時(shí)鐘信號(hào)的頻率。具體地,在圖2所示的程序的例子中,當(dāng)執(zhí)行地址0000至0004的指令代碼時(shí),向HWE104供給具有f頻率的時(shí)鐘信號(hào)。另一方面,當(dāng)執(zhí)行地址0005至0008的指令代碼時(shí),向CPU103供給具有f/2頻率的時(shí)鐘信號(hào),而當(dāng)執(zhí)行地址0009的指令代碼時(shí),對(duì)其供給具有f頻率的時(shí)鐘信號(hào)。在供給CPU103和HWE104的時(shí)鐘信號(hào)中,向SRAM105供給具有較高頻率的時(shí)鐘信號(hào)。
(S106)指令分配控制部分102按照從標(biāo)志檢測器101輸出的分配控制信號(hào),向CPU103或HWE104傳送指令代碼。在圖2所示的程序的例子中,把地址0000至0004的指令代碼傳送給HWE104執(zhí)行。把地址0005至0009的指令代碼傳送給CPU103執(zhí)行。
現(xiàn)在,將簡短描述圖2所示程序的內(nèi)容。地址0000至0003的指令代碼指示執(zhí)行循環(huán)操作,其中使地址0001至0002的指令代碼重復(fù)四次。地址0004的指令代碼指示循環(huán)操作使數(shù)據(jù)保持在HWE104中的一個(gè)寄存器(A)中,并且然后存儲(chǔ)在SRAM105中由地址xxxx表示的區(qū)域中。地址0009的指令代碼指示在由CPU103進(jìn)行地址0005至0008的處理之后,把由HWE104存儲(chǔ)在SRAM105中的數(shù)據(jù)加到已經(jīng)保持在CPU103中的寄存器(A)中的數(shù)據(jù)。
如圖6所示,在執(zhí)行這樣的程序中,把地址0000至0004的指令代碼傳送給HWE104執(zhí)行。另一方面,把地址0005至0008的指令代碼順序地傳送執(zhí)行,并與HWE104的執(zhí)行同時(shí)。
例如,假定由HWE104對(duì)地址0000至0003的指令代碼的執(zhí)行在一個(gè)循環(huán)中用兩個(gè)時(shí)鐘執(zhí)行,并且是如CPU103那樣有效的兩倍,而且地址0004的指令代碼的執(zhí)行用一個(gè)時(shí)鐘執(zhí)行,于是總計(jì)需要九個(gè)時(shí)鐘(兩個(gè)時(shí)鐘×四個(gè)循環(huán)+一個(gè)時(shí)鐘)。另一方面,假定由CPU103對(duì)地址0005至0008的指令代碼的執(zhí)行用四個(gè)時(shí)鐘執(zhí)行,那么需要的時(shí)鐘數(shù)是HWE104的循環(huán)操作所必需的時(shí)鐘數(shù)的約1/2。
因此,如果向CPU103和HWE104供給具有f相同頻率的時(shí)鐘信號(hào),CPU103在一個(gè)約是HWE104所用周期的1/2的周期內(nèi),完成直至地址0008的指令代碼的執(zhí)行。在這種情況下,下一個(gè)地址0009的指令代碼參考HWE104的循環(huán)操作的結(jié)果,并且因而在這個(gè)循環(huán)操作終止以前不執(zhí)行。在這個(gè)周期期間,CPU103浪費(fèi)電功率。具體地,在其中CPU103和HWE104的處理也需要集成的情況下,即使CPU103和HWE104中的一個(gè)的處理較早完成(因?yàn)橛捎谙鄬?duì)過剩的操作性能引起的高處理能力),完成的處理需要在保持其內(nèi)部狀態(tài)下等待另一個(gè)處理的結(jié)果。在這個(gè)等待周期期間,空閑狀態(tài)繼續(xù),以便因?yàn)椴槐匾|發(fā)而連續(xù)地消耗功率。
如上所述,在本實(shí)施例的處理器系統(tǒng)中,當(dāng)CPU103執(zhí)行地址0005至0009的指令代碼時(shí),根據(jù)時(shí)鐘控制標(biāo)志向CPU103供給一個(gè)具有f/2頻率的時(shí)鐘信號(hào)。因此,使CPU103消耗的功率減小為約1/2,并且CPU103的處理幾乎與對(duì)其供給一個(gè)具有f頻率的時(shí)鐘信號(hào)的HWE104的處理終止同時(shí)終止(即這些處理在相同周期之內(nèi)執(zhí)行)。這樣避免使整個(gè)處理器系統(tǒng)的處理能力降級(jí)。也就是,在一種其中使時(shí)鐘頻率的組合優(yōu)化的操作方式下,執(zhí)行各種過程,以實(shí)現(xiàn)高處理能力和低功耗兩者。另外,如上所述,根據(jù)加到指令代碼的標(biāo)志來執(zhí)行對(duì)處理器的分配和時(shí)鐘頻率的控制,所以不必提供復(fù)雜的解碼電路或其他類似電路。結(jié)果,使電路規(guī)模減小。
根據(jù)各指令的必需時(shí)鐘數(shù)和能夠供給的頻率,可能不會(huì)消除等待時(shí)間。即使這樣情況,如果通過使用低于最大值的頻率來縮短等待時(shí)間,也使功耗減小而不使處理能力降級(jí)。
例如,如果CPU103和HWE104中的一個(gè)不操作,即不對(duì)其分配執(zhí)行指令,或終止處理器的指令執(zhí)行的定時(shí)相互不精確地一致,以引起等待時(shí)間,可以停止時(shí)鐘信號(hào)的供給(或可以禁止輸入時(shí)鐘信號(hào))。
(實(shí)施例2)現(xiàn)在,將描述一種用于產(chǎn)生指令代碼的指令序列優(yōu)化裝置的例子,如上所述,對(duì)其加上用于控制對(duì)處理器的分配和時(shí)鐘頻率的標(biāo)志。
該指令序列優(yōu)化裝置由一臺(tái)用于執(zhí)行程序例如編譯程序和優(yōu)化程序的計(jì)算機(jī)構(gòu)城。圖7示出其功能配置。
在圖中,存儲(chǔ)部分201存儲(chǔ)在加上標(biāo)志之前和之后的源程序和目標(biāo)程序。源程序的例子包括由指令代碼序列構(gòu)成的可執(zhí)行機(jī)器語言程序、匯編程序和更抽象的C語言程序。在匯編程序或C語言程序的情況下,例如,可以與翻譯成機(jī)器語言程序同時(shí)地加上標(biāo)志,或可以在產(chǎn)生一個(gè)包含指示加上標(biāo)志的信息的插入程序之后,產(chǎn)生一個(gè)對(duì)其加上標(biāo)志的機(jī)器語言程序。
指令分析器202(指令分析裝置)分析一個(gè)源程序,以確定哪個(gè)處理器能夠執(zhí)行源程序中包含的指令(包括由指令序列形成的指令集),以及指令是否能夠并行執(zhí)行。指令分析器202還確定指令之間的關(guān)系(過程之間的依賴關(guān)系),即執(zhí)行定時(shí)的約束,如果參考一條指令I(lǐng)1的執(zhí)行結(jié)果以執(zhí)行另一條指令I(lǐng)2,則指令I(lǐng)2在指令I(lǐng)1完成以前不執(zhí)行。
標(biāo)準(zhǔn)執(zhí)行周期估計(jì)部分203(執(zhí)行周期估計(jì)裝置)估計(jì)一個(gè)在其期間由處理器以標(biāo)準(zhǔn)時(shí)鐘頻率(例如,最大頻率以下,稱為“標(biāo)準(zhǔn)時(shí)鐘頻率”)執(zhí)行一條指令的標(biāo)準(zhǔn)執(zhí)行周期。具體地,通過參考一個(gè)記錄由各處理器執(zhí)行各種指令所必需的時(shí)鐘數(shù)的表,并且通過把這個(gè)時(shí)鐘數(shù)乘以標(biāo)準(zhǔn)時(shí)鐘頻率的倒數(shù)(1/f)得到標(biāo)準(zhǔn)執(zhí)行周期。關(guān)于必需時(shí)鐘數(shù),按上述方式得到一個(gè)給定參考處理器執(zhí)行所必需的時(shí)鐘數(shù),并且把得到的必需時(shí)鐘數(shù)乘以另一個(gè)處理器執(zhí)行的效率(關(guān)于給定參考處理器的處理能力比),從而容易地估計(jì)另一個(gè)處理器執(zhí)行所必需的時(shí)鐘數(shù)。例如,在程序中包括循環(huán)操作或條件分支的情況下,必需時(shí)鐘數(shù)不總是精確地得到。在這樣情況下,例如,如果例如使用樣本數(shù)據(jù)、程序設(shè)計(jì)員的規(guī)范或其他類似條件,通過模擬設(shè)置循環(huán)操作或條件分支數(shù),則得到適當(dāng)估計(jì)值或最壞值作為必需時(shí)鐘數(shù)。
轉(zhuǎn)換執(zhí)行時(shí)間計(jì)算部分204計(jì)算一種情況所必需的轉(zhuǎn)換執(zhí)行周期,這種情況中指令由各自處理器在各種時(shí)鐘頻率下執(zhí)行。具體地,通過標(biāo)準(zhǔn)執(zhí)行周期×(標(biāo)準(zhǔn)時(shí)鐘頻率/各時(shí)鐘頻率)得到各轉(zhuǎn)換執(zhí)行周期。可選擇地,通過參考一個(gè)表可以得到轉(zhuǎn)換執(zhí)行周期,在這個(gè)表中預(yù)先記錄與標(biāo)準(zhǔn)執(zhí)行周期和各種時(shí)鐘頻率的各自組合相應(yīng)的轉(zhuǎn)換執(zhí)行周期。
關(guān)于標(biāo)準(zhǔn)執(zhí)行周期和轉(zhuǎn)換執(zhí)行周期,照字面意義可以使用以時(shí)間為單位的值,或可以代替使用時(shí)鐘數(shù)。具體地,例如,必需時(shí)鐘數(shù)可以用作標(biāo)準(zhǔn)執(zhí)行周期,并且可以根據(jù)各時(shí)鐘頻率,將必需時(shí)鐘數(shù)×(標(biāo)準(zhǔn)時(shí)鐘頻率/各時(shí)鐘頻率)用作一個(gè)轉(zhuǎn)換執(zhí)行周期。
分配/時(shí)鐘頻率確定部分205(分配確定裝置和時(shí)鐘頻率確定裝置)根據(jù)指示能夠執(zhí)行指令的處理器的約束和指令分析器202確定的執(zhí)行定時(shí)兩者的信息,并且還根據(jù)由轉(zhuǎn)換執(zhí)行時(shí)間計(jì)算部分204計(jì)算的各自指令的轉(zhuǎn)換執(zhí)行周期,確定在執(zhí)行各自指令中,對(duì)處理器的指令分配和供給的時(shí)鐘信號(hào)的頻率,以便使功耗最小。具體地,如圖8A和8B所示,例如,在其中處理器A和B執(zhí)行指令a和b的情況下,假定時(shí)鐘頻率是f,處理器A和B兩者對(duì)于指令a需要相同執(zhí)行周期,處理器A對(duì)指令b的執(zhí)行周期是處理器B對(duì)指令b的執(zhí)行周期的1/2,并且在完成指令a和b兩者的執(zhí)行以前,不執(zhí)行下一條指令。于是,如果指令b由處理器A執(zhí)行,處理器A的處理具有一個(gè)容限。因此,如果把處理器A的時(shí)鐘頻率調(diào)整為f/2,則使功耗降低而不影響總處理時(shí)間。
標(biāo)志添加部分206(分配控制信息添加裝置和時(shí)鐘控制信息添加裝置)根據(jù)分配/時(shí)鐘頻率確定部分205確定的分配和頻率,對(duì)如圖2所示包括各自指令的指令代碼加上分配控制標(biāo)志和時(shí)鐘控制標(biāo)志。代替或連同分配控制標(biāo)志的添加,可以用一個(gè)并行處理指令來代替能夠由CPU103和HWE104并行執(zhí)行的一條或一系列指令集。
現(xiàn)在,將參考圖9描述指令序列優(yōu)化裝置怎樣操作。
(S1000)首先,分析源程序,并且確定能夠執(zhí)行各自指令的處理器。如果并行執(zhí)行多條指令,檢測指令執(zhí)行定時(shí)的約束,即在所有當(dāng)前指令的執(zhí)行完成以前,禁止下一條指令的執(zhí)行的約束。
(S1001)其次,確定源程序中包括的所有指令是否僅可由一個(gè)給定處理器執(zhí)行。如果確定結(jié)果為Yes,因?yàn)樗兄噶顑H需由給定處理器例如在最大時(shí)鐘頻率下執(zhí)行,所以過程進(jìn)到(S1006),將在后面描述。
(S1002)如果在(S1001)的確定結(jié)果為No,估計(jì)在其期間由各自處理器在它們的標(biāo)準(zhǔn)頻率下執(zhí)行指令的標(biāo)準(zhǔn)執(zhí)行周期。
(S1003)其后,計(jì)算處理器在各種時(shí)鐘頻率下執(zhí)行指令所必需的轉(zhuǎn)換執(zhí)行周期。
(S1004)根據(jù)這樣計(jì)算的轉(zhuǎn)換執(zhí)行周期和在(S1000)檢測的指令之間的關(guān)系(執(zhí)行指令的定時(shí)的約束),確定對(duì)處理器的指令分配和執(zhí)行指令所供給的時(shí)鐘信號(hào)頻率,以便使功耗最小。
具體地,首先,如參考圖8所述,在能夠執(zhí)行指令的處理器的指令分配的所有組合之中,檢測一個(gè)當(dāng)所有處理器例如在標(biāo)準(zhǔn)時(shí)鐘頻率下操作時(shí)在其處理中具有容限的處理器,即一個(gè)等待其他處理器的處理終止的處理器。然后,得到不影響具有容限的處理器的總處理時(shí)間的最小時(shí)鐘頻率,即允許一個(gè)其結(jié)果由一個(gè)隨后指令參考的操作,以在其他處理器的操作之前終止的最小頻率(例如,或這樣頻率與標(biāo)準(zhǔn)時(shí)鐘頻率之間的比)。(應(yīng)該注意,實(shí)際中,把各標(biāo)準(zhǔn)執(zhí)行周期與關(guān)聯(lián)的轉(zhuǎn)換執(zhí)行周期比較,以便可以得到與等于或短于標(biāo)準(zhǔn)執(zhí)行周期的轉(zhuǎn)換執(zhí)行周期中的最長轉(zhuǎn)換執(zhí)行周期相應(yīng)的頻率。)按這樣方式,在各分配組合中,使處理器的指令執(zhí)行與各自執(zhí)行的時(shí)鐘頻率相關(guān)聯(lián),以便得到各分配組合的功耗(實(shí)際中,例如,它可以是指令執(zhí)行所必需的總時(shí)鐘數(shù))。
因此,如果得到實(shí)現(xiàn)最低功耗的分配組合,則確定了使功耗減小而不使處理能力降級(jí)的指令分配和時(shí)鐘頻率。
(S1005)把根據(jù)確定的指令分配和時(shí)鐘頻率的分配控制標(biāo)志和時(shí)鐘控制標(biāo)志加到源程序中包括的指令的指令代碼,并且把得到的指令代碼作為目標(biāo)程序存儲(chǔ)在存儲(chǔ)部分201中。
(S1006)另一方面,如果在(S1001)確定源程序中包括的所有指令僅可由一個(gè)給定處理器執(zhí)行,如上所述,這些指令僅需由給定處理器例如在最大時(shí)鐘頻率下執(zhí)行。因此,把指示對(duì)給定對(duì)處理器的分配的分配標(biāo)志和指示最大時(shí)鐘頻率的時(shí)鐘控制標(biāo)志加到源程序中包括的指令的指令代碼。
(S1007)重復(fù)從(S1002)至(S1005)的過程,直至完成源程序中包括的所有指令的處理。
因此,產(chǎn)生指令代碼,其中按上述方式加上分配控制標(biāo)志和時(shí)鐘控制標(biāo)志,因而得到一個(gè)程序,允許一個(gè)如實(shí)施例1所述包括多個(gè)處理器的處理器系統(tǒng)以大大減小的功耗,并且不使處理能力降級(jí)地操作。
在(S1004),在所有分配的組合數(shù)大的情況下,例如,可以省略其中對(duì)少數(shù)處理器分配極大量指令的組合的考慮,以便能減小優(yōu)化裝置的處理負(fù)載。具體地,例如,在確定對(duì)處理器的分配中,例如可以根據(jù)由圖7和圖9虛線指示的預(yù)定處理比例設(shè)置信息(通過一個(gè)處理比例設(shè)置裝置),使各處理器的處理量的比例(例如,處理時(shí)間或總必需時(shí)鐘數(shù))限制為給定范圍,以便在給定范圍之內(nèi)從分配組合中選擇一個(gè)實(shí)現(xiàn)最低功耗的組合。然后,以高速執(zhí)行如上所述的標(biāo)志添加。在這樣情況下,增加處理器在執(zhí)行指令時(shí)的并行性(同時(shí)操作的處理器數(shù)),導(dǎo)致以較高速執(zhí)行所有指令。特別地,如果有可能個(gè)別地設(shè)置處理比例,則根據(jù)處理器系統(tǒng)的目的調(diào)整處理器系統(tǒng)的功耗,處理器系統(tǒng)中執(zhí)行指令的速度,和優(yōu)化裝置在標(biāo)志添加時(shí)的負(fù)載。另外,如上所述的這樣過程不一定一次對(duì)源程序中包括的所有指令執(zhí)行,并且可以對(duì)每個(gè)給定指令序列執(zhí)行。即使在這樣情況下,如果適當(dāng)設(shè)置指令序列的長度,以減小局部功耗,也大大減小總功耗,并且還減小分配的組合數(shù),因而也減小優(yōu)化裝置的處理負(fù)載。
在計(jì)算功耗時(shí),例如,可以在考慮處理器之間的功耗的差下,執(zhí)行給定系數(shù)的乘法,以便保證功耗的減小。
在前述例子中,轉(zhuǎn)換執(zhí)行周期用來確定一個(gè)在其處理時(shí)具有容限的處理器和不影響總處理時(shí)間的最小時(shí)鐘頻率。然而,本發(fā)明不限于本例,并且可以使用標(biāo)準(zhǔn)執(zhí)行周期。具體地,例如根據(jù)標(biāo)準(zhǔn)執(zhí)行周期之間的差,可以確定容限的存在,或例如根據(jù)標(biāo)準(zhǔn)執(zhí)行周期之間的比,例如可以得到最小時(shí)鐘頻率。
(實(shí)施例2的變更例子)將描述另一個(gè)指令序列優(yōu)化裝置,其中按如實(shí)施例2的指令序列優(yōu)化裝置的相同方式,對(duì)指令代碼加上一個(gè)標(biāo)志。以下,例如,與實(shí)施例1和2所述的那些具有類似功能的部件用同樣標(biāo)號(hào)指示,并且因而將省略其描述。
在本指令序列優(yōu)化裝置中,確定對(duì)處理器的指令分配,以便一條可由多個(gè)處理器執(zhí)行的指令由一個(gè)表現(xiàn)最短標(biāo)準(zhǔn)執(zhí)行周期的處理器來執(zhí)行,并且確定時(shí)鐘頻率,以便根據(jù)分配使功耗減小。具體地,如圖10所示,例如,本裝置不同于實(shí)施例2的裝置(圖7所示),在于提供一個(gè)分配確定部分311和一個(gè)時(shí)鐘頻率確定部分312,以代替分配/時(shí)鐘頻率確定部分205。
分配確定部分311確定分配,以便一條可由多個(gè)處理器執(zhí)行的指令,由一個(gè)表現(xiàn)由標(biāo)準(zhǔn)執(zhí)行周期估計(jì)部分203所計(jì)算的最短標(biāo)準(zhǔn)執(zhí)行周期(即具有最小必需時(shí)鐘數(shù))的處理器來執(zhí)行。
時(shí)鐘頻率確定部分312確定時(shí)鐘頻率,以便關(guān)于如上所述確定的分配,當(dāng)所有處理器在標(biāo)準(zhǔn)時(shí)鐘頻率下操作時(shí),使一個(gè)在其處理時(shí)具有容限的處理器在不影響總處理時(shí)間(即,以便使等待時(shí)間最小)的最小時(shí)鐘頻率下操作。
如圖11所示,這樣構(gòu)成的指令序列優(yōu)化裝置的操作在以下過程不同于實(shí)施例2(圖9所示)的操作。
(S1151)在計(jì)算了標(biāo)準(zhǔn)執(zhí)行周期之后(S1002),確定對(duì)處理器的分配,以便一條可由多個(gè)處理器執(zhí)行的指令由一個(gè)表現(xiàn)最短標(biāo)準(zhǔn)執(zhí)行周期的處理器來執(zhí)行。
(S1104)和圖9中的(S1004)不同,僅確定時(shí)鐘頻率。具體地,執(zhí)行這個(gè)確定,以便當(dāng)各指令由在(S1151)分配的處理器在標(biāo)準(zhǔn)時(shí)鐘頻率下執(zhí)行時(shí),對(duì)一個(gè)其中為其他處理器的終止出現(xiàn)等待時(shí)間(即具有容限)的處理器,供給一個(gè)具有使等待時(shí)間減小并且不影響總處理時(shí)間的最小頻率的時(shí)鐘信號(hào)。因此,在如上所述的處理器分配的范圍之內(nèi),在不使處理器系統(tǒng)的處理能力降級(jí)下,減小功耗。
在這樣確定對(duì)處理器的分配和時(shí)鐘頻率之后,按如實(shí)施例2那樣的相同方式,在(S1005)把根據(jù)這個(gè)確定的分配控制標(biāo)志和時(shí)鐘控制標(biāo)志加到指令代碼。
如上所述,各指令由一個(gè)表現(xiàn)最短標(biāo)準(zhǔn)執(zhí)行周期的處理器來執(zhí)行,提高執(zhí)行指令代碼的效率,以便減小總必需時(shí)鐘數(shù)。另外,對(duì)一個(gè)在其執(zhí)行周期中具有容限的處理器供給一個(gè)減小頻率的時(shí)鐘信號(hào),使得晶體管的不必要觸發(fā)減小,因而大大減小功耗。而且,僅對(duì)一組對(duì)處理器的分配組合執(zhí)行時(shí)鐘頻率的確定,以便使優(yōu)化裝置的處理負(fù)載減小,并且高速執(zhí)行標(biāo)志添加。
如上所述,在執(zhí)行分配以便使各指令由一個(gè)表現(xiàn)最短執(zhí)行周期的處理器執(zhí)行的情況下,一個(gè)包括大量相同類型指令的程序可能分配給一個(gè)或少數(shù)處理器。在這種情況下,雖然功耗減小,但使處理器處理的并行性減小,使得整個(gè)程序執(zhí)行所需要的時(shí)間變長。因此,為了縮短整個(gè)程序的執(zhí)行周期,甚至允許在某種程度上增大功耗,如實(shí)施例2那樣,例如,根據(jù)圖10和11虛線所示的比例設(shè)置信息,使各處理器的處理量的比例限制為給定范圍。
例如,代替分配給一個(gè)表現(xiàn)最短標(biāo)準(zhǔn)執(zhí)行周期的處理器,可以把各指令分配給一個(gè)處理器,以便當(dāng)所有處理器在它們的標(biāo)準(zhǔn)時(shí)鐘頻率下操作時(shí),使整個(gè)程序(或一個(gè)給定指令序列的全部)的執(zhí)行周期最短。具體地,可由多個(gè)處理器執(zhí)行的各指令不一定分配給一個(gè)表現(xiàn)最短執(zhí)行周期的處理器。如果把這樣指令分配給另一個(gè)能夠與該處理器同時(shí)執(zhí)行指令的處理器,以提高處理器執(zhí)行指令的并行性,則例如使整個(gè)程序的執(zhí)行周期縮短。即使在這樣情況下,對(duì)一個(gè)在其執(zhí)行周期內(nèi)具有容限的處理器供給減小頻率的時(shí)鐘信號(hào),也抑制晶體管的不必要觸發(fā),從而減小功耗。在這種情況下,同樣,例如如果如上所述使各處理器的處理量的比例限制為給定范圍,以便確定分配,使得這個(gè)范圍之內(nèi)縮短執(zhí)行周期,則使優(yōu)化裝置的處理負(fù)載減小。
而且,例如,當(dāng)分配確定部分311(重排裝置)確定對(duì)處理器的分配時(shí),可以按不同順序重排指令的執(zhí)行。更具體地,如圖12所示,例如,除圖11所示的步驟外,可以在(S1251)重排指令。
具體地,例如在把如圖13A所示的指令a至d寫入一個(gè)源程序的情況下,假定指令a和c各自可由處理器A用四個(gè)時(shí)鐘順序地執(zhí)行,指令b在傳送到處理器B之后可獨(dú)立于處理器A的操作用12個(gè)時(shí)鐘執(zhí)行,以及指令d可在指令a至c的執(zhí)行終止之后執(zhí)行。于是,如果按源程序所述的順序執(zhí)行處理,如下按圖13B所示的方式執(zhí)行指令(1)當(dāng)順序地傳送給處理器A的時(shí)候,在時(shí)鐘頻率是f并且必需時(shí)鐘數(shù)是4的條件下,執(zhí)行指令a。
(2)在指令a終止之后,一次把整個(gè)指令b傳送給處理器B,并且然后在時(shí)鐘頻率是f且必需時(shí)鐘數(shù)是12的條件下執(zhí)行。
(3)與指令b的執(zhí)行并行,當(dāng)順序地傳送時(shí),在時(shí)鐘頻率是f/3且必需時(shí)鐘數(shù)是4(當(dāng)時(shí)鐘頻率是f時(shí)轉(zhuǎn)換執(zhí)行周期與12個(gè)時(shí)鐘相應(yīng))的條件下,執(zhí)行指令c。
在按如圖13C所示的不同順序重排指令的執(zhí)行的情況下,如下按圖13D所示的方式執(zhí)行指令(1)一次把整個(gè)指令b傳送給處理器B,并且然后在時(shí)鐘頻率是f×3/4且必需時(shí)鐘數(shù)是12(轉(zhuǎn)換執(zhí)行周期與16個(gè)時(shí)鐘相應(yīng))的條件下執(zhí)行。
(2)與指令b的執(zhí)行并行,當(dāng)順序地傳送給處理器A的時(shí)候,在時(shí)鐘頻率是f/2且必需時(shí)鐘數(shù)是4(轉(zhuǎn)換執(zhí)行周期與8個(gè)時(shí)鐘相應(yīng))的條件下,執(zhí)行指令a。
(3)隨后,在時(shí)鐘頻率是f/2且必需時(shí)鐘數(shù)是4(轉(zhuǎn)換執(zhí)行周期與8個(gè)時(shí)鐘相應(yīng))的條件下,同樣執(zhí)行指令c。
也就是,按不同次序重排指令的執(zhí)行,以便提高處理器處理的并行性,從而增大執(zhí)行周期的容限。因此,能在低時(shí)鐘頻率下執(zhí)行各指令a至c,因而大大減小功耗。如果使時(shí)鐘頻率減小,例如由于后面將要描述的電源電壓的減小,能進(jìn)一步減小功耗。然而,如重排之后那樣通過使時(shí)鐘頻率關(guān)于指令a和c減小到f/2而使功耗的減小,要大于在原執(zhí)行序列中通過使時(shí)鐘頻率僅關(guān)于指令c減小到f/3而使功耗的減小。可以執(zhí)行上述指令執(zhí)行的重排,以便如圖13E所示,在f時(shí)鐘頻率下執(zhí)行指令b,并且在f×2/3頻率下執(zhí)行指令a和b。在這樣情況下,與指令執(zhí)行的重排之前比較,提高總處理速度,并且減小功耗。
(實(shí)施例3)現(xiàn)在,將描述一個(gè)處理器系統(tǒng)的例子,在某種程度上如實(shí)施例1所述那樣根據(jù)加到指令代碼的標(biāo)志,通過控制時(shí)鐘頻率和其他方面,甚至使用不包含標(biāo)志的通常指令代碼,也能夠減小功耗。代替檢測加到指令代碼的標(biāo)志,如實(shí)施例2的指令序列優(yōu)化裝置那樣,本處理器具有確定指令分配和時(shí)鐘頻率的功能,以便根據(jù)確定來控制指令分配和時(shí)鐘頻率。
具體地,如圖14所示,例如,提供一個(gè)指令分析器402(指令分析裝置);一個(gè)標(biāo)準(zhǔn)執(zhí)行周期估計(jì)部分403(執(zhí)行周期估計(jì)裝置);一個(gè)轉(zhuǎn)換執(zhí)行周期計(jì)算部分404;一個(gè)分配/時(shí)鐘頻率確定部分405(分配確定裝置和時(shí)鐘頻率確定裝置),以代替實(shí)施例1的標(biāo)志檢測器101(圖1所示)。這些部件分別具有與實(shí)施例2(圖7所示)的指令分析器202、標(biāo)準(zhǔn)執(zhí)行周期估計(jì)部分203、轉(zhuǎn)換執(zhí)行周期計(jì)算部分204和分配/時(shí)鐘頻率確定部分205的那些功能類似的功能。應(yīng)該注意,如實(shí)施例2所述的指令序列優(yōu)化裝置設(shè)有前述軟件功能和計(jì)算機(jī),而本實(shí)施例的處理器系統(tǒng)一般地由硬件構(gòu)成,用于根據(jù)CPU103和HWE104在執(zhí)行指令時(shí)的速度定時(shí)控制。(然而,本發(fā)明不限于此,并且例如可以由一個(gè)處理器或其他比CPU103較高級(jí)別的處理器來實(shí)現(xiàn)控制。)如圖15所示,一般地,本處理器系統(tǒng)的操作與實(shí)施例1和2(圖5和9所示)所述的操作組合的操作類似。
(S1300)首先,指令分析器402預(yù)取存儲(chǔ)在存儲(chǔ)部分100中的給定量的指令代碼序列。基本上按在實(shí)施例2中(S1000)那樣的類似方式分析指令代碼。然而,如果指令分析器402由硬件構(gòu)成,整個(gè)指令代碼不一定一次分析,并且可以分析根據(jù)硬件的規(guī)模的給定量的每個(gè)指令代碼序列。
(S1301)其次,如果預(yù)取指令代碼序列中包括的指令可僅由CPU103和HWE104中的一個(gè)執(zhí)行,并且CPU103和HWE104中能執(zhí)行指令的這一個(gè)在操作狀態(tài)下(即在一種其中沒有完成其他指令的執(zhí)行的狀態(tài)下),過程進(jìn)到(S1306),將在后面描述,并且然后輸出一個(gè)分配信號(hào),指示CPU103和HWE104中能夠執(zhí)行指令的一個(gè),和一個(gè)時(shí)鐘控制信號(hào),例如指示最大時(shí)鐘頻率。也就是,在這樣情況下,CPU103和HWE104不并行操作,所以整個(gè)前述處理能力取決于各自指令的執(zhí)行周期。因此,如上所述需要設(shè)置分配和時(shí)鐘頻率。
(S1002)至(S1004)另一方面,如果指令代碼序列中包括的指令可分別在CPU103和HWE104中的不同個(gè)執(zhí)行,或可在CPU103和HWE104中不在執(zhí)行另一個(gè)指令的一個(gè)執(zhí)行,則能執(zhí)行并行處理。因此,按如實(shí)施例2(圖9)所述的相同方式,估計(jì)標(biāo)準(zhǔn)執(zhí)行周期,并且計(jì)算轉(zhuǎn)換執(zhí)行周期。然后,確定對(duì)處理器的分配和時(shí)鐘頻率,以便在預(yù)取指令代碼序列的執(zhí)行期間使功耗最小。
(S1305)分別向指令分配控制部分102和時(shí)鐘控制部分106,輸出根據(jù)指令分配和時(shí)鐘頻率確定的分配控制信號(hào)和時(shí)鐘控制信號(hào)。
(S1306)如(S1301)所述,如果預(yù)取指令代碼序列中包括的各指令可僅由CPU103和HWE104中的一個(gè)執(zhí)行,并且CPU103和HWE104中能夠執(zhí)行指令的這一個(gè)確定在一種其中沒有完成另一個(gè)指令的執(zhí)行的狀態(tài)下,則輸出一個(gè)分配信號(hào),指示CPU103和HWE104中能夠執(zhí)行指令的一個(gè),和一個(gè)時(shí)鐘控制信號(hào),指示最大時(shí)鐘頻率。
(S105)至(S106)時(shí)鐘控制部分106按照時(shí)鐘控制信號(hào)轉(zhuǎn)換輸出給CPU103、HWE104和SRAM105的時(shí)鐘信號(hào)的頻率。指令分配控制部分102按照分配控制信號(hào)把指令代碼傳送給CPU103或HWE104以執(zhí)行指令。
如上所述,通過分析執(zhí)行期間的指令代碼,確定對(duì)處理器的分配和時(shí)鐘頻率,以便即使在使用其中沒有加上標(biāo)志的通常指令代碼的情況下,也使功耗減小。
在本實(shí)施例的處理器系統(tǒng)中,例如,根據(jù)處理比例設(shè)置信息,如圖14和圖15虛線所示,把各處理器的處理量的比例限制為給定范圍(通過處理比例設(shè)置裝置),以在這個(gè)范圍之內(nèi)從分配組合中選擇一個(gè)實(shí)現(xiàn)最低功耗的組合。因此,用于得到使功耗最小的分配組合的硬件規(guī)模減小,并且CPU103和HWE104處理的并行性增大,從而提高執(zhí)行整個(gè)指令序列的速度。
(實(shí)施例3的變更例子)將描述另一個(gè)處理器系統(tǒng),如實(shí)施例3的處理器系統(tǒng)那樣,它能夠甚至通過使用不包含標(biāo)志的通常指令代碼來減小功耗。
本處理器系統(tǒng)具有與實(shí)施例2的變更例子(圖10所示)所述的功能類似的功能,以控制指令分配和時(shí)鐘頻率,而實(shí)施例3的處理器系統(tǒng)(圖14所示)如實(shí)施例2的指令序列優(yōu)化裝置(圖7所示)那樣,具有確定指令分配和時(shí)鐘頻率的功能。具體地,確定指令的分配,以便可由CPU103和HWE104中的任何一個(gè)執(zhí)行的指令,由這些處理器中表現(xiàn)較短標(biāo)準(zhǔn)執(zhí)行周期的一個(gè)執(zhí)行,并且根據(jù)分配以減小功耗這樣方式確定時(shí)鐘頻率,從而控制分配和頻率。更具體地,如圖16所示,例如,本變更例子不同于實(shí)施例3(圖14所示),在于提供一個(gè)分配確定部分511和一個(gè)時(shí)鐘頻率確定部分512,代替分配/時(shí)鐘頻率確定部分405。
分配確定部分511和時(shí)鐘頻率確定部分512具有與實(shí)施例2的變更例子(圖10所示)的分配確定部分311和時(shí)鐘頻率確定部分312的那些功能類似的各自功能。具體地,分配確定部分511確定分配,以便根據(jù)標(biāo)準(zhǔn)執(zhí)行周期估計(jì)部分403計(jì)算的標(biāo)準(zhǔn)執(zhí)行周期,使處理器中表現(xiàn)較短標(biāo)準(zhǔn)執(zhí)行周期(即具有較少必需時(shí)鐘數(shù))的一個(gè)執(zhí)行可由處理器兩者執(zhí)行的各指令。
應(yīng)用這樣確定的分配,時(shí)鐘頻率確定部分512確定時(shí)鐘頻率,以便當(dāng)處理器兩者例如在標(biāo)準(zhǔn)時(shí)鐘頻率下操作時(shí),使處理器中在其處理時(shí)具有較大容限的一個(gè)在不影響總處理時(shí)間的最小時(shí)鐘頻率下操作。
這樣構(gòu)成的處理器系統(tǒng)的操作不同于如圖17所示的實(shí)施例3(圖15所示)的操作。(這個(gè)不同與實(shí)施例2的指令序列優(yōu)化裝置的操作(圖9所示)和其變更例子的裝置的操作(圖11所示)之間的不同類似。)(S1151)在計(jì)算了標(biāo)準(zhǔn)執(zhí)行周期之后(S1002),確定分配,以便根據(jù)標(biāo)準(zhǔn)執(zhí)行周期,使處理器中表現(xiàn)較短標(biāo)準(zhǔn)執(zhí)行周期的一個(gè)執(zhí)行可由處理器兩者執(zhí)行的指令。
(S1004)不同于圖15的(S1004),僅確定時(shí)鐘頻率。具體地,當(dāng)由在(S1151)分配的各自處理器在標(biāo)準(zhǔn)時(shí)鐘頻率下執(zhí)行指令時(shí),確定時(shí)鐘頻率,以便對(duì)一個(gè)其中在其他處理器終止之前出現(xiàn)一個(gè)等待時(shí)間(即具有容限)的處理器,供給一個(gè)具有減小這個(gè)等待時(shí)間且不影響總處理時(shí)間的最小頻率的時(shí)鐘信號(hào)。因此,在如上所述的對(duì)處理器的分配的范圍之內(nèi),在不使處理器系統(tǒng)的處理能力降級(jí)下,使功耗減小。
在如上所述確定了對(duì)處理器的分配和時(shí)鐘頻率之后,如實(shí)施例3那樣在(S1305)根據(jù)確定對(duì)指令分配控制部分102和時(shí)鐘控制部分106,輸出分配控制信號(hào)和時(shí)鐘控制信號(hào)。在(S105)至(S106),時(shí)鐘控制部分106轉(zhuǎn)換輸出給CPU103、HWE104和SRAM105的時(shí)鐘信號(hào)的頻率,并且指令分配控制部分102把指令代碼傳送給CPU103或HWE104以執(zhí)行指令。
如上所述,各指令由一個(gè)表現(xiàn)較短標(biāo)準(zhǔn)執(zhí)行周期的處理器執(zhí)行,以便提高執(zhí)行指令代碼的效率,并且從而減小總必需時(shí)鐘數(shù)。另外,減小供給一個(gè)在其執(zhí)行周期內(nèi)具有容限的處理器的時(shí)鐘信號(hào)的頻率,所以抑制晶體管的不必要觸發(fā),因而大大減小功耗。而且,用于確定具有較短標(biāo)準(zhǔn)執(zhí)行周期的處理器的過程,比如實(shí)施例3那樣從分配的各種組合中,得到一個(gè)實(shí)現(xiàn)最低功耗的組合的過程容易。另外,僅對(duì)一組對(duì)處理器的分配的組合確定時(shí)鐘頻率,所以使分配確定部分511和時(shí)鐘頻率確定部分512的電路規(guī)模減小。
在實(shí)施例3的變更例子中,為了減小用于確定一個(gè)表現(xiàn)較短標(biāo)準(zhǔn)執(zhí)行周期的處理器的硬件規(guī)模,以及通過增大處理器處理的并行性,縮短整個(gè)指令代碼序列的執(zhí)行周期,同時(shí)在某種程度上允許增大功耗,例如根據(jù)如圖16和17虛線所示的處理比例設(shè)置信息,把各處理器的處理量的比例限制為一個(gè)給定范圍。
代替對(duì)各指令由一個(gè)表現(xiàn)最短標(biāo)準(zhǔn)執(zhí)行周期的處理器來執(zhí)行的分配,可以確定對(duì)處理器的分配,以便例如當(dāng)所有處理器在標(biāo)準(zhǔn)時(shí)鐘頻率下操作時(shí),總執(zhí)行周期最短。另外,通過把各處理器的處理量的比例限制為給定范圍,以及通過確定分配以在給定范圍之內(nèi)減小執(zhí)行周期,可以減小用于確定對(duì)處理器的分配的硬件規(guī)模。
(實(shí)施例4)在實(shí)施例1中,對(duì)處理器的分配和時(shí)鐘頻率的控制兩者都根據(jù)加到指令代碼的標(biāo)志。在實(shí)施例3中,分配和控制根據(jù)處理器系統(tǒng)對(duì)指令代碼的分析??蛇x擇地,可以僅使對(duì)處理器的分配根據(jù)標(biāo)志,以及可以使時(shí)鐘頻率的控制根據(jù)分析。
如圖18所示,例如,根據(jù)本實(shí)施例的處理器系統(tǒng)不同于實(shí)施例3(圖14所示)的處理器系統(tǒng),在于包括一個(gè)標(biāo)志檢測器601;一個(gè)指令分析器602;和一個(gè)時(shí)鐘頻率確定部分512,以代替實(shí)施例3的指令分析器402和分配/時(shí)鐘頻率確定部分405。
標(biāo)志檢測器601僅在檢測指令代碼中包括的分配控制標(biāo)志方面不同于實(shí)施例1(圖1所示)的標(biāo)志檢測器101,并且把從存儲(chǔ)部分100讀出的指令代碼輸出給一個(gè)指令分配控制部分102,以及檢測一個(gè)分配控制標(biāo)志,以向指令分配控制部分102和時(shí)鐘頻率確定部分512輸出根據(jù)這個(gè)標(biāo)志的一個(gè)分配控制信號(hào)。
除實(shí)施例2的變更例子(圖10所示)的指令分析器202的功能以外,指令分析器602具有一個(gè)功能,以分析用于確定時(shí)鐘頻率所必需的信息,即指令之間的關(guān)系(過程之間的依賴關(guān)系)或執(zhí)行定時(shí)的約束。
時(shí)鐘頻率確定部分512與實(shí)施例3的變更例子(圖15所示)的那樣相同,并且根據(jù)從標(biāo)志檢測器601輸出的分配控制信號(hào),確定時(shí)鐘頻率,以便當(dāng)CPU103和HWE104例如在它們的標(biāo)準(zhǔn)時(shí)鐘頻率下操作時(shí),使這些處理器中在其處理時(shí)具有較大容限的一個(gè)在不影響總處理時(shí)間的最小時(shí)鐘頻率下操作。
以下,將參考圖19描述這樣構(gòu)成的處理器系統(tǒng)怎樣操作。
(S1400)標(biāo)志檢測器601預(yù)取存儲(chǔ)在存儲(chǔ)部分100中的指令代碼(或指令代碼集),并且檢測指令代碼中包含的分配控制標(biāo)志。指令分析器602例如分析在預(yù)取指令代碼中對(duì)執(zhí)行定時(shí)的約束。
(S101)至(S103)然后,標(biāo)志檢測器601根據(jù)分配控制標(biāo)志的檢測結(jié)果,把一個(gè)指示CPU103或HWE104的分配控制信號(hào)輸出給指令分配控制部分102。使指令代碼在對(duì)其加上或從其移去標(biāo)志下輸出給指令分配控制部分102。
(S1002)標(biāo)準(zhǔn)執(zhí)行周期估計(jì)部分403估計(jì)標(biāo)準(zhǔn)執(zhí)行周期,在其期間處理器在各自標(biāo)準(zhǔn)時(shí)鐘頻率下執(zhí)行指令。
(S1003)轉(zhuǎn)換執(zhí)行周期計(jì)算部分404計(jì)算處理器在各種時(shí)鐘頻率下各自執(zhí)行指令所必需的轉(zhuǎn)換執(zhí)行周期。
(S1404)時(shí)鐘頻率確定部分512根據(jù)從標(biāo)志檢測器601輸出的分配控制標(biāo)志,根據(jù)分配控制信號(hào),確定供給處理器的時(shí)鐘信號(hào)的頻率。具體地,當(dāng)指令由處理器根據(jù)標(biāo)志在標(biāo)準(zhǔn)時(shí)鐘頻率下執(zhí)行時(shí),確定時(shí)鐘頻率,以便對(duì)一個(gè)其中在其他處理器的處理終止之前出現(xiàn)一個(gè)等待時(shí)間(即具有容限)的處理器,供給一個(gè)具有減小這個(gè)等待時(shí)間且不影響總處理時(shí)間的最小頻率的時(shí)鐘信號(hào)。因此,如上所述在對(duì)處理器的分配的范圍之內(nèi),在不使處理器系統(tǒng)的處理能力降級(jí)下,使功耗減小。
(S1405)時(shí)鐘頻率確定部分512根據(jù)對(duì)時(shí)鐘頻率的確定,向時(shí)鐘控制部分106輸出一個(gè)時(shí)鐘控制信號(hào)。
(S105)至(S106)時(shí)鐘控制部分106按照時(shí)鐘控制信號(hào),轉(zhuǎn)換輸出給CPU103、HWE104和SRAM105的時(shí)鐘信號(hào)的頻率。指令分配控制部分102按照分配控制信號(hào)把指令代碼傳送給CPU103或HWE104,并且然后執(zhí)行指令。
如上所述,按上述方式執(zhí)行對(duì)處理器的分配和時(shí)鐘頻率的控制,因而減小功耗而不使處理能力降級(jí)。另外,根據(jù)分配控制標(biāo)志執(zhí)行對(duì)處理器的分配。因此,指令分析器602例如僅需分析確定時(shí)鐘頻率所必需的執(zhí)行定時(shí)的約束。時(shí)鐘頻率確定部分512僅需對(duì)一組對(duì)處理器的分配的組合確定時(shí)鐘頻率。因此,與實(shí)施例3的處理器系統(tǒng)比較,減小指令分析器602和時(shí)鐘頻率確定部分512的電路規(guī)模。
(實(shí)施例5)例如,通過如圖20所示的指令序列優(yōu)化裝置,能產(chǎn)生指令代碼,以如實(shí)施例4所述,僅對(duì)其加上一個(gè)用于控制對(duì)處理器的分配的標(biāo)志。
具體地,對(duì)實(shí)施例2的變更例子(圖10所示)的指令序列優(yōu)化裝置,提供加上一個(gè)分配控制標(biāo)志所必需的功能,并且按照分配確定部分311的確定,使標(biāo)志添加部分706僅對(duì)指令代碼加上一個(gè)分配控制標(biāo)志。
如圖21所示,這個(gè)指令序列優(yōu)化裝置的操作不同于實(shí)施例2的變更例子(圖11所示)那樣,僅在于省略用于確定時(shí)鐘頻率的過程(S1003)和(S1104),并且在(S1505)和(S1506)僅加上一個(gè)分配控制標(biāo)志。
如實(shí)施例2的變更例子那樣,在本實(shí)施例中,例如根據(jù)圖20和圖21虛線所示的處理比例設(shè)置信息,也可以把各處理器的處理量的比例限制為給定范圍,也可以確定對(duì)處理器的分配,以便使總執(zhí)行周期最小,或也可以按不同次序重排指令的執(zhí)行。
(實(shí)施例6)將描述一個(gè)處理器系統(tǒng)的例子,其中如上所述控制時(shí)鐘頻率,并且控制供給CPU13和其他處理器的電源電壓。時(shí)鐘頻率的減小使電路中延遲的容限增大,并且因而允許電路中的延遲時(shí)間增大。這樣能夠使得電源電壓減小。因?yàn)楣碾S電源電壓的平方變化,所以能大大減小功耗。
具體地,如圖22所示,例如,除實(shí)施例1(圖1所示)的配置外,根據(jù)本實(shí)施例的處理器系統(tǒng)還包括一個(gè)電源電壓控制部分701(電壓控制裝置)。電源電壓控制部分701按照從標(biāo)志檢測器101輸出的時(shí)鐘控制信號(hào),分別向CPU103、HWE104和SRAM105供給預(yù)先與時(shí)鐘頻率相關(guān)聯(lián)設(shè)置的電源電壓,即其中各自隨時(shí)鐘頻率的關(guān)聯(lián)一個(gè)的減小而從額定電壓減小的電源電壓。更具體地,如圖23所示,例如,電源電壓控制部分701包括一個(gè)電源電壓控制寄存器701a,用于將從標(biāo)志檢測器101輸出的時(shí)鐘控制信號(hào)保持為電源電壓控制信號(hào);和一個(gè)電源701b,由一個(gè)DC-DC轉(zhuǎn)換器或一個(gè)電源IC構(gòu)成,并且構(gòu)成為按照在電源電壓控制寄存器701a中保持的信息,向CPU103、HWE104和SRAM105輸出一個(gè)電壓。
除從電源電壓控制部分701輸出的電源電壓由時(shí)鐘控制部分106按照各自時(shí)鐘頻率的轉(zhuǎn)換而轉(zhuǎn)換外,本處理器系統(tǒng)的操作與實(shí)施例1(圖5所示)的那樣相同。如上所述在減小時(shí)鐘頻率下,通過減小電源電壓,使功耗進(jìn)一步減小,而不影響處理器系統(tǒng)的操作和處理能力。
供給CPU103和其他處理器的電源電壓關(guān)于相同時(shí)鐘頻率不一定相互相等,并且可以根據(jù)電路特性或其他類似方面設(shè)置。
將電源電壓轉(zhuǎn)換為較高電平的定時(shí)可以比將時(shí)鐘頻率轉(zhuǎn)換為較高頻率的定時(shí)早,以便保證在轉(zhuǎn)換時(shí)鐘頻率時(shí)電路延遲的足夠容限。
如實(shí)施例1已經(jīng)描述,當(dāng)關(guān)斷時(shí)鐘信號(hào)的供給時(shí),可以暫停電源電壓的供給(可以供給接地電壓),以停止CPU103或HWE104的操作,以便完全抑制由泄漏電流引起的備用功耗??蛇x擇地,例如,可僅對(duì)HWE104暫停這樣的電源電壓?;謴?fù)電源電壓的暫停供給的定時(shí)可以比開始時(shí)鐘信號(hào)的供給的定時(shí)早。另外,在從預(yù)取第一指令代碼時(shí)到檢測一個(gè)標(biāo)志時(shí)的周期期間,可以供給額定電壓,以使整個(gè)處理器系統(tǒng)接通電源或重新設(shè)置,因而容易保證執(zhí)行第一指令代碼的處理器的操作。
另外,如圖24和25所示,例如,當(dāng)停止時(shí)鐘信號(hào)的供給時(shí),連同或代替暫停電源電壓的供給,在CPU103或HWE104在備用狀態(tài)下的這樣方式下(即與處在備用狀態(tài)下的總線107分離,并且保持其內(nèi)部狀態(tài)),可以向CPU103或HWE104輸出一個(gè)信號(hào),指示在電源電壓控制寄存器701a中保持的時(shí)鐘信號(hào)的存在/不存在,作為備用/有效控制信號(hào)。另外,可僅在暫停電源電壓的供給下,總供給時(shí)鐘信號(hào)。
(實(shí)施例7)代替如上所述控制電源電壓,可以控制一個(gè)其上形成一個(gè)CPU103和其他部件的半導(dǎo)體襯底的襯底電壓。具體地,如果按以增大在半導(dǎo)體襯底上形成的晶體管的閾值電壓這樣方式控制襯底電壓,則電路的延遲時(shí)間增大,而晶體管的泄漏電流減小。如果使時(shí)鐘頻率減小,以增大電路中延遲的容限,則因此控制襯底電壓,以增大閾值電壓,因而減小功耗。
更具體地,在根據(jù)本實(shí)施例的處理器系統(tǒng)中,如圖26所示,例如,除實(shí)施例1所述的配置外,提供一個(gè)襯底電壓控制部分801(電壓控制裝置)。襯底電壓控制部分801按照從標(biāo)志檢測器101輸出的時(shí)鐘控制信號(hào),向CPU103或另一個(gè)處理器供給一個(gè)預(yù)先與時(shí)鐘頻率相關(guān)聯(lián)設(shè)置的襯底電壓,即這樣一個(gè)襯底電壓(反向偏置電壓),它隨時(shí)鐘頻率減小而使閾值電壓增大。
除按照由時(shí)鐘控制部分106對(duì)時(shí)鐘頻率的轉(zhuǎn)換而轉(zhuǎn)換從襯底電壓控制部分801輸出的襯底電壓外,本處理器系統(tǒng)的操作與實(shí)施例1(圖5所示)的那樣相同。
如上所述,在時(shí)鐘頻率減小下控制襯底電壓,因而進(jìn)一步減小功耗,而不影響處理器系統(tǒng)的操作和處理能力。
如關(guān)于實(shí)施例6中的電源電壓所述,供給CPU103和其他處理器的襯底電壓關(guān)于相同時(shí)鐘頻率可能彼此不同。當(dāng)停止時(shí)鐘信號(hào)的供給時(shí),可以應(yīng)用一個(gè)與關(guān)聯(lián)電源電壓相同電平的電壓,作為襯底電壓。
(實(shí)施例8)如圖27所示,例如,可以提供電源電壓控制部分701和襯底電壓控制部分801,以便按照時(shí)鐘頻率控制電源電壓和襯底電壓。在這樣情況下,根據(jù)半導(dǎo)體集成電路的特性或其他類似方面,優(yōu)化由電源電壓控制部分701和襯底電壓控制部分801確定的與時(shí)鐘頻率相關(guān)聯(lián)的電源電壓和襯底電壓的組合。
具體地,例如,如果時(shí)鐘頻率低于標(biāo)準(zhǔn)時(shí)鐘頻率,并且泄漏電流相對(duì)大,可以減小電源電壓,并且對(duì)襯底應(yīng)用一個(gè)反向偏置電壓,以便根據(jù)時(shí)鐘頻率在允許的延遲時(shí)間范圍之內(nèi)增大閾值電壓(減小和應(yīng)用兩者都增大延遲時(shí)間并且減小功耗),所以減小功耗。另一方面,如果泄漏電流相對(duì)小,可以大大減小電源電壓(導(dǎo)致延遲時(shí)間增大和功耗減小),并且可以對(duì)襯底應(yīng)用一個(gè)正向偏置電壓,以便減小閾值電壓(導(dǎo)致延遲時(shí)間減小和泄漏電流增大),所以通過減小電源電壓,結(jié)果滿足根據(jù)時(shí)鐘頻率允許的延遲時(shí)間,并且大大減小功耗。
如實(shí)施例6和7已經(jīng)描述,在本實(shí)施例中,供給CPU103和其他處理器的電源電壓和襯底電壓各自關(guān)于相同時(shí)鐘頻率可以相互不同。例如,即使在時(shí)鐘信號(hào)的供給暫停下,如果供給電源電壓,也可以應(yīng)用一個(gè)與電源電壓相同電平的電壓,作為襯底電壓。另外,如果在時(shí)鐘信號(hào)的供給暫停下停止電源電壓的供給,也可以停止襯底電壓的供給。
(實(shí)施例9)如上所述一旦確定時(shí)鐘頻率,近似確定功耗和從處理器系統(tǒng)的熱釋放。鑒于此,如圖28所示,例如,可以根據(jù)時(shí)鐘控制信號(hào)控制一個(gè)冷卻設(shè)備901(冷卻裝置和冷卻控制裝置),它包括一個(gè)用于冷卻半導(dǎo)體集成電路900的冷卻風(fēng)扇。更具體地,冷卻設(shè)備901通過參考一個(gè)其中例如記錄與時(shí)鐘頻率相關(guān)聯(lián)的給定控制值的表,控制冷卻風(fēng)扇的旋轉(zhuǎn)速度,根據(jù)時(shí)鐘頻率、電源電壓(如上所述根據(jù)時(shí)鐘頻率確定)和泄漏電流(由根據(jù)時(shí)鐘頻率確定的襯底電壓來確定),冷卻具有冷卻能力的半導(dǎo)體集成電路900。這樣保證防止半導(dǎo)體集成電路900的熱失控,并且抑制冷卻中所包含的功耗。
(實(shí)施例10)在前述實(shí)施例中,例如,多個(gè)處理器(CPU103和HWE104)中的一個(gè)在最大時(shí)鐘頻率下操作,而另一個(gè)處理器在低于最大時(shí)鐘頻率的時(shí)鐘頻率下操作,從而減小功耗而不使處理能力降級(jí)。如果通過接收具有比最大時(shí)鐘頻率低的頻率的時(shí)鐘信號(hào),和比額定電壓低的電源電壓,并行操作處理器,也使功耗減小,并且另外,靈活地設(shè)置處理能力與功耗之間的關(guān)系。
圖29是根據(jù)本實(shí)施例的處理器系統(tǒng)的主要部分的配置的方塊圖。在本例中,提供一個(gè)CPU910,以代替實(shí)施例6(圖22所示)的標(biāo)志檢測器101和指令分配控制部分102。代替(或除此之外)CPU103和HWE104,提供四個(gè)處理器,即處理引擎911至914。代替時(shí)鐘控制部分106和電源電壓控制部分701,提供一個(gè)時(shí)鐘控制部分916和一個(gè)電源電壓控制部分917。
CPU910作為一個(gè)監(jiān)視處理器控制整個(gè)系統(tǒng),檢測指示操作方式(例如,如圖30所示的與對(duì)處理器的分配、電源電壓和時(shí)鐘頻率的組合相應(yīng)的方式)的方式設(shè)置信息,并且輸出一個(gè)電源電壓控制信號(hào)和一個(gè)時(shí)鐘控制信號(hào)。CPU910不一定檢測方式設(shè)置信息,而可以檢測如實(shí)施例1所述分別指示對(duì)處理器的分配、電源電壓和時(shí)鐘頻率的信息集??蛇x擇地,CPU910可以檢測指示并行數(shù)而不是對(duì)處理器的分配的信息,以便然后根據(jù)這個(gè)信息執(zhí)行對(duì)處理器的分配。如果時(shí)鐘頻率,總與各自電源電壓相應(yīng),CPU910僅需檢測指示時(shí)鐘頻率或電源電壓的信息。
為了簡單起見,假定處理引擎911至914具有相同功能(例如,乘法累積操作的功能),給出以下描述。通過總線107在CPU910或存儲(chǔ)部分100與處理引擎911至914之間傳送指令代碼。(指令代碼可以如實(shí)施例1那樣從CPU910或其他部分直接傳送。)
如圖31所示,例如,時(shí)鐘控制部分916不同于實(shí)施例1(圖4所示)的時(shí)鐘控制部分106,在于包括一個(gè)分頻器106b;和一個(gè)選擇器916d,以代替選擇器106d,向處理引擎911至914輸出一個(gè)共時(shí)鐘控制信號(hào),它具有根據(jù)頻率控制寄存器106c中保持的信息的頻率。例如,構(gòu)成頻率控制寄存器106c,以當(dāng)如圖32所示在頻率控制位106c0中設(shè)置“0”或“1”值時(shí),使選擇器916d選擇一個(gè)具有f或f/2的頻率的信號(hào)。
如圖33所示,例如,如實(shí)施例6(圖23所示)的電源電壓控制部分701那樣,電源電壓控制部分917包括一個(gè)電源電壓控制寄存器701a和一個(gè)電源701b。然而,電源電壓控制部分917不同于電源電壓控制部分701,在于電源701b根據(jù)電源電壓控制寄存器701a中保持的信息,向處理引擎911至914輸出一個(gè)共電壓,并且根據(jù)電源電壓控制寄存器701a中保持的信息,向各自處理引擎911至914輸出備用/有效控制信號(hào)。更具體地,如圖34所示,例如,電源電壓控制寄存器701a輸出備用/有效控制信號(hào),用于當(dāng)在有效控制位701a0至701a3中設(shè)置“0”或“1”值時(shí),使各自處理引擎911至914設(shè)置在備用或有效狀態(tài)。另一方面,當(dāng)在電源電壓控制位701a4中設(shè)置“0”或“1”值時(shí),電源電壓控制寄存器701a使電源701b輸出一個(gè)Vdd或Vdd/2的電源電壓。(代替把處理引擎911至914設(shè)置在備用或有效狀態(tài),根據(jù)電源電壓控制寄存器701a中保持的值,可以使電源電壓的供給停止,以便完全關(guān)斷泄漏電流。)在這樣構(gòu)成的處理器系統(tǒng)中,CPU910檢測加到指令代碼的方式設(shè)置信息,并且在電源電壓控制寄存器701a和頻率控制寄存器106c中設(shè)置如圖30所示的值,以便動(dòng)態(tài)地改變操作方式,并且在根據(jù)操作方式的時(shí)鐘頻率和電源電壓下,在對(duì)處理引擎911至914的分配之下執(zhí)行指令。
具體地,例如,在與下述各自四個(gè)操作方式相關(guān)聯(lián)的電源電壓和時(shí)鐘頻率的控制下,執(zhí)行操作。以下,為了簡單起見,根據(jù)假定,即當(dāng)電源電壓是Vdd時(shí)在f的時(shí)鐘頻率下,以及當(dāng)電源電壓是Vdd/2時(shí)在f/2的時(shí)鐘頻率下,處理引擎911至914可操作,給出描述。更準(zhǔn)確地,根據(jù)公式(2),需要使閾值電壓Vt是0,以便使處理引擎在Vdd/2的電源電壓和f/2的時(shí)鐘頻率下可操作(延遲時(shí)間td是在Vdd的電源電壓下的兩倍長)。因此,實(shí)際中電源電壓需要稍微高于Vdd/2,以使處理引擎在f/2的時(shí)鐘頻率下可操作。即使在這樣考慮下,也能大大減小功耗。
(1)在正常方式下(單一處理),設(shè)置電源電壓控制寄存器701a和頻率控制寄存器106c,以便僅使處理引擎911在Vdd的電源電壓和f的時(shí)鐘頻率下操作,并且其他處理引擎912至914在備用狀態(tài)下,其中幾乎不消耗電功率。也就是,在這種正常方式下保證了不可由多個(gè)處理器并行執(zhí)行的指令執(zhí)行。
(2)在低消耗方式下(其中并行數(shù)是2),設(shè)置電源電壓控制寄存器701a和頻率控制寄存器106c,以便兩個(gè)處理引擎911和912在Vdd/2的電源電壓和f/2的時(shí)鐘頻率下操作。在這種情況下,因?yàn)闀r(shí)鐘頻率是f/2,所以各處理引擎911和912的處理能力是與正常方式比較的1/2。然而,兩個(gè)處理引擎911和912的并行操作總體上表現(xiàn)與正常方式下那樣的相同處理能力。另一方面,如公式(1)所示,功耗與電源電壓的平方、時(shí)鐘頻率和操作處理器數(shù)成比例。因此,與正常方式比較,在這種方式下的功耗減小到(1/2)2×(1/2)×2=1/4。也就是,如果指令代碼可由兩個(gè)處理引擎911和912并行執(zhí)行,使功耗大大減小而不使處理能力降級(jí)。
(3)在高性能方式下(其中并行數(shù)是4),設(shè)置電源電壓控制寄存器701a和頻率控制寄存器106c,以便所有處理引擎911至914在Vdd/2的電源電壓和f/2的時(shí)鐘頻率下操作。在這種情況下,與正常方式比較,各處理引擎911至914的處理能力是1/2。然而,四個(gè)處理引擎911至914的并行操作總體上表現(xiàn)為正常方式下那樣兩倍高的處理能力。與正常方式比較,在這種方式下的功耗減小到(1/2)2×(1/2)×4=1/2。也就是,與正常方式比較,得到較高處理能力,并且使功耗減小。因此,高性能方式適合具有重負(fù)載的處理,例如成像處理。
(4)在超低消耗方式下(單一處理),設(shè)置電源電壓控制寄存器701a和頻率控制寄存器106c,以便僅使處理引擎911在Vdd/2的電源電壓和f/2的時(shí)鐘頻率下操作。在這種情況下,處理能力是在正常方式下的1/2,但是功耗減小到(1/2)2×(1/2)=1/8。也就是,在不要求高處理能力的情況下,大大減小功耗。
如上所述,應(yīng)用在低電源電壓和低時(shí)鐘頻率下的并行處理,實(shí)現(xiàn)等于或高于正常方式下的處理能力及減小功耗兩者,或處理能力比正常方式下的低,但功耗大大減小。另外,動(dòng)態(tài)地轉(zhuǎn)換并行數(shù)、電源電壓和時(shí)鐘頻率。因此,如果需要具有重負(fù)載的處理或高速處理例如實(shí)時(shí)處理,實(shí)現(xiàn)高處理能力和功耗的減小。另一方面,如果不需要高速處理,使功耗更加大大減小。
如上所述的方式設(shè)置信息不一定加到每個(gè)指令代碼集,而可以僅加到一個(gè)用于改變操作方式的指令代碼集,或在這個(gè)指令代碼集設(shè)置之前或之后的指令代碼集。
在本實(shí)施例中,作為一個(gè)例子,CPU910檢測加到指令代碼的方式設(shè)置信息??蛇x擇地,可以用與實(shí)施例1的標(biāo)志檢測器類似的硬件來檢測信息。
另外,關(guān)于方式設(shè)置信息,可以在程序中包括一條在頻率控制寄存器106c和電源電壓控制寄存器701a中存儲(chǔ)給定值的指令,以便由CPU910通過對(duì)這條指令的執(zhí)行來設(shè)置操作方式。在這樣情況下,如果設(shè)置操作方式的指令與另一條指令的執(zhí)行并行執(zhí)行,避免處理能力的顯著降級(jí)??梢酝ㄟ^總線107在頻率控制寄存器106c和電源電壓控制寄存器701a中設(shè)置值。
在本實(shí)施例中,對(duì)處理引擎911至914供給共電源電壓和共時(shí)鐘信號(hào)。可選擇地,如實(shí)施例1那樣,例如,對(duì)各自處理引擎供給電源電壓和時(shí)鐘信號(hào),以便個(gè)別地控制電源電壓和時(shí)鐘頻率。
處理引擎911至914的數(shù)不限于4,只要該數(shù)是2或更大。處理引擎911至914不一定具有相同功能。
如實(shí)施例7和8所述,代替或除了電源電壓的控制,可以控制閾值電壓。具體地,通過把按照由時(shí)鐘頻率的減小引起的延遲容限增大而使電源電壓減小所得到的功耗減小的效果,與按照閾值電壓的增大而使泄漏電流減小所得到的功耗減小的效果相組合,使功耗最小化。
(實(shí)施例11)用于產(chǎn)生對(duì)其加上如實(shí)施例10所述的方式設(shè)置信息的指令代碼的方法不具體地限制。例如,程序設(shè)計(jì)員可以在源程序中寫入指示一個(gè)操作方式的信息,連同匯編指令例如并行處理指令或單一處理器處理指令一起,使得編譯程序以及其他類似程序根據(jù)該信息產(chǎn)生指令代碼??蛇x擇地,程序設(shè)計(jì)員可以指定在一個(gè)給定單元中的整個(gè)程序或每個(gè)程序模塊中,對(duì)高處理能力和低功耗中加強(qiáng)哪一個(gè)分配優(yōu)先級(jí),以便可以根據(jù)規(guī)范產(chǎn)生指令代碼。以下,將描述用于產(chǎn)生這樣指令代碼的指令序列優(yōu)化裝置。
如實(shí)施例2所述,指令序列優(yōu)化裝置由一臺(tái)用于執(zhí)行程序例如編譯程序和優(yōu)化程序的計(jì)算機(jī)構(gòu)成。例如,當(dāng)編譯源程序時(shí),裝置執(zhí)行以下如圖35所示的操作,并且產(chǎn)生對(duì)其加上方式設(shè)置信息的指令代碼。
(S1600)首先,分析程序例如源程序或通過編譯源程序得到的目標(biāo)程序。然后,確定是否能由處理引擎911至914并行處理指令序列的一個(gè)或一個(gè)組合(其中各指令序列例如由約10條指令構(gòu)成)。也就是,確定是否可能同時(shí)執(zhí)行分配給處理引擎911至914的指令,或是否允許單一處理。具體地,確定能并行處理的處理,例如對(duì)乘法累積操作的重復(fù)。
(S1601)作為上述分析的結(jié)果,如果能執(zhí)行并行處理,過程進(jìn)到(S1602),在那里選擇高性能方式或低消耗方式中的一個(gè)供操作。如果不能執(zhí)行并行處理,過程進(jìn)到(S1605),在那里選擇超低消耗方式或正常方式中的一個(gè)供操作。
(S1602至S1604)如果能執(zhí)行并行處理,例如,作為編譯期間的一個(gè)任選規(guī)范,確定是否發(fā)出對(duì)處理速度的提高分配優(yōu)先級(jí)的指令。如果發(fā)出提高處理速度的這個(gè)指令,選擇高性能方式供操作(S1603)。另一方面,如果沒有發(fā)出提高處理速度的指令,選擇低消耗方式供操作(S1604)。(另外,可以確定是否能執(zhí)行其中并行數(shù)是4的處理,并且如果不能執(zhí)行這個(gè)處理,選擇低消耗方式。)(S1605至S1607)如果在(S1601)的確定表示不能執(zhí)行并行處理,例如,作為在編譯期間的任選規(guī)范,確定是否發(fā)出對(duì)減小功耗分配優(yōu)先級(jí)的指令。如果發(fā)出了減小功耗的指令,選擇超低功耗方式供操作(S1606)。另一方面,如果沒有發(fā)出減小功耗的指令,選擇正常方式供操作(S1607)。應(yīng)該注意,不同時(shí)發(fā)出提高處理速度的指令和減小功耗的指令。因此,實(shí)際中,通過檢測有提高處理速度的指令,可以確定沒有發(fā)出減小功耗的指令,或通過檢測沒有提高處理速度的指令,可以確定發(fā)出減小功耗的指令。另外,按照與處理速度和功耗實(shí)質(zhì)上相關(guān)聯(lián)的指令,例如指示重負(fù)載處理(并且因此指示對(duì)提高處理速度分配優(yōu)先級(jí))的信息,足以實(shí)施前述確定。在一般情況下(沒有任何具體指令),可以按照處理器系統(tǒng)的規(guī)范以及其他類似方面指定低消耗方式。
(S1608)把根據(jù)前述選擇的方式設(shè)置信息加到指令代碼。如果必要,可以用并行處理指令來代替一個(gè)或一系列指令代碼集。這樣的代替可以在(S1601)確定能執(zhí)行并行處理之后的任何時(shí)間執(zhí)行。具體地,例如,在完成分析之后,當(dāng)在(S1603)和其他過程確定方式時(shí),可以創(chuàng)建一個(gè)表示各自過程的操作方式的方式設(shè)置信息表,以便根據(jù)該表來執(zhí)行方式設(shè)置信息的添加或用并行處理指令的代替。如實(shí)施例10的變更例子所述,為了通過CPU910的指令執(zhí)行在頻率控制寄存器106c和電源電壓控制寄存器701a中存儲(chǔ)給定值,僅需對(duì)一個(gè)程序加上這樣一條指令。
(S1609)重復(fù)從(S1600)至(S1608)的過程,直至完成源程序中所有指令的處理為止。
產(chǎn)生對(duì)其按上述方式加上方式設(shè)置信息的指令代碼,以便一名人員例如程序設(shè)計(jì)員僅需指定對(duì)增大處理速度和減小功耗中的哪一個(gè)分配優(yōu)先級(jí),而無需考慮操作方式,以便得到一個(gè)能夠容易實(shí)現(xiàn)高速操作和大大減小功耗的程序。
(實(shí)施例12)將描述一個(gè)處理器系統(tǒng)的例子,其中如實(shí)施例3的處理器系統(tǒng)那樣,甚至通過使用對(duì)其沒有加上方式設(shè)置信息的通常指令代碼,也使功耗減小。
除一個(gè)由CPU910執(zhí)行的程序外(用于通過CPU910控制操作方式的操作),本處理器系統(tǒng)的硬件配置與實(shí)施例10(圖29所示)的硬件配置相同。具體地,如圖36所示,關(guān)于操作方式控制,CPU910按與實(shí)施例11的指令序列優(yōu)化裝置的類似方式操作。
(S1700)首先,作為一個(gè)預(yù)取指令代碼以進(jìn)行高速操作的通常CPU,CPU910預(yù)取存儲(chǔ)在存儲(chǔ)部分100中的指令(例如,約10條指令),以確定是否能并行執(zhí)行各指令或指令序列的組合。基本分析與實(shí)施例11(圖35所示)的(S1600)中的相同。預(yù)取的指令數(shù)不具體地限制。如果這樣指令數(shù)大,即使能并行處理稍微復(fù)雜的重復(fù)處理,然而需要較長時(shí)段來分析,并且如果由硬件實(shí)行分析,要求大電路規(guī)模。因此,預(yù)取的指令數(shù)需要在使這些要求平衡下設(shè)置。
(S1601和S1607)作為上述分析的結(jié)果,確定是否能執(zhí)行并行處理。如果不能執(zhí)行并行處理,過程進(jìn)到(S1607),在那里選擇正常方式供操作。如果能執(zhí)行并行處理,過程進(jìn)到(S1702),在那里選擇高性能方式或低消耗方式中的一個(gè)供操作。
(S1702)如果能執(zhí)行并行處理,確定指令代碼所指示的過程是否為一個(gè)重負(fù)載過程。具體地,例如,確定是否包括一個(gè)循環(huán)過程(特別地,多循環(huán)過程),或循環(huán)數(shù)是否等于或大于一個(gè)給定值。
(S1603和S1604)按照在(S1702)確定的結(jié)果,如果過程是重負(fù)載過程,選擇高性能方式供操作(S1603)。如果過程不是重負(fù)載過程,選擇低性能方式供操作(S1604)。
(S1708)把根據(jù)選擇的時(shí)鐘控制信號(hào)和電源電壓控制信號(hào)輸出給時(shí)鐘控制部分916和電源電壓控制部分917,并且保持在頻率控制寄存器106c和電源電壓控制寄存器701a中。按這樣方式,設(shè)置操作方式,并且如果必要,用并行處理指令來代替一個(gè)或一系列指令代碼集。
(S1709)在所選擇操作方式下執(zhí)行指令,并且然后重復(fù)從(S1700)的操作。
在前述方式中,即使對(duì)一個(gè)對(duì)其沒有加上方式設(shè)置信息的程序,也按照?qǐng)?zhí)行期間的處理負(fù)載自動(dòng)地選擇操作方式,設(shè)置時(shí)鐘頻率和電源電壓,并且執(zhí)行用并行處理指令的代替。因此,即使在執(zhí)行由通用編譯程序產(chǎn)生的指令代碼的情況下,也容易使指令代碼在最優(yōu)操作方式下,例如在高速操作并大大減小功耗下執(zhí)行。
如上所述操作方式不一定僅由處理系統(tǒng)選擇??蛇x擇地,如果檢測到關(guān)于對(duì)高處理能力和低功耗中的哪一個(gè)分配優(yōu)先級(jí)的方式設(shè)置信息(例如,根據(jù)程序開發(fā)人員的指令)或規(guī)范,可以按照該信息或規(guī)范來選擇操作方式,并且在這樣情況下,可以由處理器系統(tǒng)僅對(duì)是否能執(zhí)行并行處理作出確定。
(實(shí)施例13)以下將描述一個(gè)處理器系統(tǒng)的例子,其中構(gòu)成各自處理器的晶體管具有不同閾值電壓。如圖37所示,本處理器系統(tǒng)包括處理引擎923和924,以代替實(shí)施例10(圖29所示)的處理引擎913和914。本處理器系統(tǒng)還包括一個(gè)電源電壓控制部分927,以代替電源電壓控制部分917。
處理引擎923和924具有與處理引擎911和912的功能相同的功能。然而,構(gòu)成處理引擎923和924的晶體管的閾值電壓(例如0.6V)設(shè)置得高于構(gòu)成處理引擎911和912的晶體管的閾值電壓(例如0.3V)。本實(shí)施例根據(jù)這樣假定,即這些閾值電壓通過設(shè)置雜質(zhì)濃度等來靜態(tài)地設(shè)置,但是如實(shí)施例7所述,例如通過控制半導(dǎo)體襯底電壓可以動(dòng)態(tài)地設(shè)置這些閾值電壓。如上所述,處理引擎911、912、923和924各自可以僅由一個(gè)高閾值電壓晶體管或一個(gè)低閾值電壓晶體管構(gòu)成。然而,本發(fā)明不限于本例。
構(gòu)成電源電壓控制部分927,以控制對(duì)各自處理引擎911、912、923和924的電源電壓的供給/關(guān)斷,并且這些電源電壓相互獨(dú)立。具體地,如圖38和39所示,例如,按照電源電壓控制寄存器701a中的電源關(guān)斷控制位701a0至701a3中所保持的值,控制從電源701b的電源電壓的供給或關(guān)斷。按照電源電壓控制位701a4至701a7中所保持的值,控制這些電源電壓。
根據(jù)加到指令代碼的方式設(shè)置信息,或根據(jù)指令代碼的分析結(jié)果通過CPU910的操作,執(zhí)行按照各操作方式在時(shí)鐘控制部分916中的電源電壓控制寄存器701a和頻率控制寄存器106c中值的設(shè)置。這個(gè)設(shè)置按與實(shí)施例10和12相同的方式執(zhí)行。例如,如果在這些寄存器中設(shè)置如圖40所示的值,則動(dòng)態(tài)地改變操作方式,并且在按照所選擇操作方式下的時(shí)鐘頻率和電源電壓下,使指令在分配給處理引擎911、912、923和924之下執(zhí)行。
具體地,例如,按如下所述的方式,在與各自三個(gè)操作方式相關(guān)聯(lián)的電源電壓和時(shí)鐘頻率的控制下,執(zhí)行操作。可以執(zhí)行與實(shí)施例10那樣類似的超低消耗方式下的操作。(也就是,僅需根據(jù)處理器系統(tǒng)要求的功耗、處理能力和其他方面來選擇操作方式。)以下,例如,假定當(dāng)電源電壓是Vdd時(shí),由上述高閾值電壓晶體管構(gòu)成的處理引擎923和924可在f/2的時(shí)鐘頻率下操作,將給出描述。
(1)在正常操作方式下(單一處理),設(shè)置電源電壓控制寄存器701a和頻率控制寄存器106c,以便僅有使用低閾值電壓晶體管的處理引擎911在Vdd的電源電壓和f的時(shí)鐘頻率下操作,并且關(guān)斷對(duì)其他處理引擎912、923和924的電源電壓的供給。因此,在處理引擎912、923和924中不會(huì)出現(xiàn)由泄漏電流引起的備用功耗。
(2)在低漏泄方式下(其中并行數(shù)是2),設(shè)置電源電壓控制寄存器701a和頻率控制寄存器106c,以便使用高閾值電壓晶體管的兩個(gè)處理引擎923和924在Vdd的電源電壓和f/2的時(shí)鐘頻率下操作。在這種情況下,兩個(gè)處理引擎923和924在f/2的時(shí)鐘頻率下操作,所以總體上得到如正常方式下那樣相同的處理能力。另一方面,在不對(duì)泄漏電流作任何考慮下,因?yàn)閮蓚€(gè)處理引擎923和924在f/2的時(shí)鐘頻率下操作,所以功耗總體上與正常方式下那樣相同。然而,使用高閾值電壓晶體管使各處理引擎923和924在操作期間的泄漏電流(有效泄漏電流)例如減小到使用低閾值電壓晶體管的情況下的約27%。于是,因此使總功耗減小。
(3)在高性能方式下(其中并行數(shù)是4),設(shè)置電源電壓控制寄存器701a和頻率控制寄存器106c,以便處理引擎911和912的電源電壓是Vdd/2,處理引擎923和924的電源電壓是Vdd,以及所有處理引擎的時(shí)鐘頻率是f/2。在這種情況下,并行數(shù)是4,并且時(shí)鐘頻率是f/2,所以總處理能力是正常方式下那樣的兩倍高。另一方面,處理引擎911和912在Vdd/2的電源電壓和f/2的時(shí)鐘頻率下并行操作,所以其功耗是與正常方式比較的(1/2)2×(1/2)×2=1/4。處理引擎923和924如在低漏泄方式下那樣使用高閾值電壓晶體管,并且在Vdd的電源電壓和f/2的時(shí)鐘頻率下并行操作,所以使有效泄漏電流大大減小。結(jié)果,使總功耗減小。
如上所述,提供由高閾值電壓晶體管構(gòu)成的處理引擎923和924。這些處理引擎923和924在低時(shí)鐘頻率下并行操作,所以使有效泄漏電流減小。因此,特別在有效泄漏電流的影響大的情況下,容易使功耗大大減小。對(duì)于重負(fù)載處理,另外還使用由低閾值電壓晶體管構(gòu)成的處理引擎911和912,以便在通過減小電源電壓和頻率而抑制功耗下,提高性能。另外,即使在不允許并行處理的情況下,如果處理引擎911由低閾值電壓晶體管構(gòu)成,并且在Vdd的電源電壓和f的時(shí)鐘頻率下操作,保證保持處理性能。
(實(shí)施例14)將描述一個(gè)處理器系統(tǒng)的例子,其中即使在多個(gè)處理引擎的一個(gè)中出現(xiàn)故障的情況下,也保持處理能力,并且使功耗減小。
如圖41所示,本處理器系統(tǒng)包括一個(gè)在實(shí)施例13(圖38所示)同樣描述的電源電壓控制部分927,以代替實(shí)施例10(圖29所示)的電源電壓控制部分917,以便獨(dú)立地控制對(duì)處理引擎911至914的電源電壓的供給/關(guān)斷和這些電源電壓。該處理器系統(tǒng)還包括一個(gè)時(shí)鐘控制部分936,以代替時(shí)鐘控制部分916;和一個(gè)快閃存儲(chǔ)器931(故障信息保持裝置),它是一個(gè)可重寫的非易失性存儲(chǔ)器。
如電源電壓控制部分927那樣,構(gòu)成時(shí)鐘控制部分936,以獨(dú)立地控制供給處理引擎911至914的時(shí)鐘信號(hào)的頻率。具體地,如圖42和43所示,例如,選擇器936d向各自處理引擎911至914供給時(shí)鐘信號(hào),該時(shí)鐘信號(hào)具有按照頻率控制寄存器106c中的頻率控制位106c0至106c3中所保持的值的頻率。
快閃存儲(chǔ)器931存儲(chǔ)故障信息,指示各處理引擎911至914是否正常操作(完全操作)或具有故障。具體地,在制造期間,例如,在使用LSI測試儀的初始評(píng)估期間,測試各處理引擎911至914的操作,并且保持測試結(jié)果。代替快閃存儲(chǔ)器,可以使用各種其他非易失性存儲(chǔ)器,例如FeRAM。
在本處理器系統(tǒng)中,如實(shí)施例10和12中那樣,根據(jù)加到指令代碼的方式設(shè)置信息,或根據(jù)指令代碼的分析結(jié)果通過CPU910的操作,在電源電壓控制部分927中的電源電壓控制寄存器701a和時(shí)鐘控制部分936中的頻率控制寄存器106c中,設(shè)置預(yù)定值,以便動(dòng)態(tài)地改變操作方式,并且在按照所選擇操作方式的電源電壓和時(shí)鐘頻率下,使指令在分配給處理引擎911至914之下執(zhí)行。為了把指令分配給處理引擎911至914,參考快閃存儲(chǔ)器931中保持的故障信息,以便不向故障處理引擎分配指令。
具體地,在如實(shí)施例10所述的四個(gè)操作方式下操作的情況下,例如,假定在處理引擎911中出現(xiàn)故障。于是,為了轉(zhuǎn)換為正常方式或超低消耗方式,向處理引擎912至914中的一個(gè)供給Vdd的電源電壓和具有f頻率的時(shí)鐘信號(hào),或Vdd/2的電源電壓和具有f/2頻率的時(shí)鐘信號(hào),并且關(guān)斷對(duì)其他處理引擎(至少包括處理引擎911)的電源電壓的供給(即分離故障處理引擎)。類似地,為了轉(zhuǎn)換為低消耗方式,對(duì)處理引擎912至914中的兩個(gè)供給Vdd/2的電源電壓和具有f/2頻率的時(shí)鐘信號(hào),并且同樣關(guān)斷至少對(duì)處理引擎911的電源電壓的供給。
為了轉(zhuǎn)換為高性能方式,例如,使處理引擎912在Vdd的電源電壓和f的時(shí)鐘頻率下操作,使處理引擎913和914在Vdd/2的電源電壓和f/2的時(shí)鐘頻率下操作,并且關(guān)斷對(duì)處理引擎911的電源電壓的供給。具體地,在電源電壓控制部分927中的電源電壓控制寄存器701a或在時(shí)鐘控制部分936中的頻率控制寄存器106c的各自中,設(shè)置b’11001110或b’1100(其中b’指示隨后值用二進(jìn)制表示)。因此,雖然功耗是正常方式下的1.25倍高,但是處理能力是正常方式下的2倍高??蛇x擇地,可以使三個(gè)處理引擎912至914在Vdd/2的電源電壓和f/2的時(shí)鐘頻率下操作,以便處理能力是正常方式下的1.5倍高,但是功耗減小到0.75(即對(duì)功耗的減小分配優(yōu)先級(jí))。在這樣情況下,不一定在處理引擎911至914之中個(gè)別地控制電源電壓和時(shí)鐘頻率。
如上所述,即使在存在故障處理引擎下,如果執(zhí)行并行操作以補(bǔ)償該處理引擎,則在某種程度上保持處理器系統(tǒng)的性能,并且減小功耗,因而提高制造產(chǎn)量。
在前述例子中,在一個(gè)處理引擎中出現(xiàn)故障。在兩個(gè)處理引擎中出現(xiàn)故障的情況下,在正常方式、超低消耗方式和低消耗方式下,同樣保證相同的處理能力和相同的功耗減小。在高性能方式下,可以使兩個(gè)正常操作的處理引擎在Vdd的電源電壓和f的時(shí)鐘頻率下操作,或可以使這些正常操作的處理引擎中的一個(gè)在Vdd/2和f/2下操作??蛇x擇地,可以使處理器系統(tǒng)不具有高性能方式。
在前述例子中,關(guān)斷對(duì)故障處理引擎的電源電壓的供給??蛇x擇地,可以使故障處理引擎如實(shí)施例10所述設(shè)置在備用狀態(tài)。然而,在考慮故障例如電力線中的短路情況下,優(yōu)選地根據(jù)系統(tǒng)穩(wěn)定性等關(guān)斷電源電壓。另外,在考慮時(shí)鐘信號(hào)線中出現(xiàn)短路時(shí),可以停止時(shí)鐘信號(hào)的供給。
(實(shí)施例15)
處理引擎的故障例如不僅可以如上所述在制造期間通過測試來檢測,而且可以每次接通電源時(shí)由處理器系統(tǒng)本身來檢測,以便不對(duì)故障處理引擎分配處理。如圖44所示,例如,本處理器系統(tǒng)包括一個(gè)故障寄存器941(故障信息保持裝置),以代替實(shí)施例14的快閃存儲(chǔ)器931;一個(gè)圖形發(fā)生器942;和一個(gè)比較器943(故障檢測裝置)。
如實(shí)施例14的快閃存儲(chǔ)器931那樣,故障寄存器941存儲(chǔ)故障信息,指示各處理引擎911至914是否正常操作(完全操作)或具有故障。然而,故障寄存器941無需是一個(gè)非易失性存儲(chǔ)器。故障寄存器941不一定與總線107連接,而可以設(shè)置在電源電壓控制部分927或時(shí)鐘控制部分936內(nèi)部,只要能由CPU910從那里讀出信息。具體地,如圖45所示,例如,故障寄存器941包括與各自處理引擎911至914相關(guān)聯(lián)的故障位,并且按照在處理引擎911至914的關(guān)聯(lián)一個(gè)中存在/不存在故障,使各故障位保持一個(gè)值。
在處理引擎911至914的測試操作期間,圖形發(fā)生器942向總線107輸出一個(gè)隨機(jī)測試圖形,即一個(gè)具有隨機(jī)位圖形的信號(hào),它表示根據(jù)時(shí)間的隨機(jī)變化。
當(dāng)隨機(jī)測試圖形輸入處理引擎911至914時(shí),比較器943比較從處理引擎911至914輸出的信號(hào),例如在處理引擎911至914內(nèi)部的給定測試點(diǎn)的信號(hào),或輸出給總線107、I/O總線或其他部分的信號(hào)。然后,比較器943確定這些信號(hào)是否相互一致,以從處理引擎911至914中檢測故障處理引擎,并且把得到的故障信息保持在故障寄存器941中。
具體地,例如,按以下方式,在緊接系統(tǒng)接通之后的初始化期間,或在處理引擎911至914的處理之間的備用周期內(nèi)由OS進(jìn)行系統(tǒng)處理期間,對(duì)處理引擎911至914進(jìn)行測試。也就是,在對(duì)各處理引擎911至914供給Vdd的電源電壓和具有f的時(shí)鐘頻率的時(shí)鐘信號(hào)下,使圖形發(fā)生器942向總線107輸出一個(gè)隨機(jī)測試圖形。比較器943比較來自各對(duì)處理引擎,即一對(duì)處理引擎911和912,一對(duì)處理引擎913和914,一對(duì)處理引擎911和913,和一對(duì)處理引擎912和914的輸出信號(hào)。然后,比較器943根據(jù)在比較中表示一致的對(duì)和在比較中不表示一致的對(duì)的組合,檢測處理引擎911至914中的故障處理引擎。然后,比較器943將其檢測結(jié)果保持在故障寄存器941中。同時(shí),例如,還可以比較來自處理引擎911和914的信號(hào)。在這樣情況下,檢測兩個(gè)或多個(gè)故障,以便如實(shí)施例14所述那樣,實(shí)現(xiàn)一種處理器系統(tǒng),它在兩個(gè)或多個(gè)處理引擎中出現(xiàn)故障時(shí)不具有高性能方式??蛇x擇地,可以執(zhí)行上述測試,以確定一個(gè)在f的時(shí)鐘頻率下不能操作的處理引擎是否可在f/2下操作。(例如,如果處理引擎僅在f/2下可操作,只要不對(duì)這個(gè)處理引擎分配正常方式,按與實(shí)施例10相同的方式執(zhí)行高性能方式下的操作。)測試圖形不一定隨機(jī)產(chǎn)生??蛇x擇地,可以在一個(gè)非易失性存儲(chǔ)器例如快閃存儲(chǔ)器中存儲(chǔ)一個(gè)預(yù)定測試圖形,和一個(gè)當(dāng)向處理引擎911至914輸入測試圖形時(shí)所輸出的輸出圖形(估計(jì)值),以便把估計(jì)值與實(shí)際輸出圖形比較,以便檢測處理引擎911至914中的故障處理引擎。如上所述的隨機(jī)測試圖形或其他類似圖形可以從處理器系統(tǒng)的外部供給。另外,可以執(zhí)行一個(gè)給定測試程序,以便根據(jù)執(zhí)行結(jié)果檢測故障。
按如實(shí)施例14所述的相同方式,根據(jù)這樣得到的故障信息執(zhí)行對(duì)處理引擎911至914的分配及電源電壓和時(shí)鐘頻率的控制。因而,由處理器系統(tǒng)本身檢測處理引擎中的故障。結(jié)果,不僅在出現(xiàn)早期損壞故障的情況下,而且在隨時(shí)間引起故障的情況下,使系統(tǒng)穩(wěn)定性和可靠性提高,并且使性能保持。
在實(shí)施例1至9中,提供一個(gè)CPU103和一個(gè)HWE104。在實(shí)施例10至15中,提供具有相同功能的處理引擎911至914。然而,本發(fā)明不限于這些實(shí)施例。可以提供各種類型的處理器,例如,可以提供具有相同功能或不同功能的多個(gè)處理器。在這樣情況下,仍得到相同優(yōu)點(diǎn)。
在實(shí)施例1中,例如,加到指令代碼的標(biāo)志或方式設(shè)置信息用作指令代碼中指示對(duì)處理器的分配和時(shí)鐘頻率的信息。本發(fā)明不限于此,并且足以使指示例如對(duì)處理器的分配的信息實(shí)質(zhì)上包括在程序中。例如,足以確定CPU103和HWE104中的哪一個(gè)執(zhí)行指令,或由指令代碼本身確定操作方式。
在實(shí)施例6至9中,根據(jù)時(shí)鐘控制信號(hào)直接控制電源電壓控制部分701和其他部分。然而,本發(fā)明不限于此,并且僅需根據(jù)一個(gè)例如允許按照時(shí)鐘頻率適當(dāng)?shù)卦O(shè)置電源電壓的控制信號(hào)執(zhí)行控制。
電源電壓和時(shí)鐘頻率的級(jí)數(shù)不限于如上所述的兩個(gè)或三個(gè)(在考慮停止其供給情況下的三個(gè)或四個(gè)),而可以設(shè)置為各種值。如果級(jí)數(shù)增加,則使用大量的操作方式的組合,所以更加詳細(xì)地設(shè)置操作條件。
前述實(shí)施例所述的部件可以各種各樣地組合,只要這些組合邏輯上是可實(shí)行的。具體地,例如,如實(shí)施例6至15所述的用于控制電源電壓和襯底電壓的配置,或用于控制冷卻裝置的配置可以應(yīng)用于其他實(shí)施例的處理器系統(tǒng)。另外,可以提供實(shí)施例1的標(biāo)志檢測器101(圖1所示)或?qū)嵤├?的指令分析器402(圖14所示),以實(shí)現(xiàn)這些實(shí)施例所述的功能,以便例如與所執(zhí)行的指令中標(biāo)志的存在無關(guān)地控制對(duì)處理器的分配和時(shí)鐘頻率。
如上所述,按照本發(fā)明,按照各處理器所執(zhí)行的指令來控制時(shí)鐘頻率,因而減小功耗而不使處理能力降級(jí)。另外,按照時(shí)鐘頻率的控制來控制供給處理器的電源電壓和襯底電壓,因而進(jìn)一步減小功耗。
權(quán)利要求
1.一種包括多個(gè)處理器的處理器系統(tǒng),包括分配控制裝置,用于讀出由各自處理器所執(zhí)行的指令,并且控制對(duì)所述處理器的所述指令的分配;時(shí)鐘控制裝置,用于按照所述處理器根據(jù)所述分配所執(zhí)行的所述指令,控制將供給所述各自處理器的時(shí)鐘信號(hào)的頻率;和電壓控制裝置,用于按照所述時(shí)鐘控制裝置對(duì)所述時(shí)鐘信號(hào)的所述頻率的控制,至少控制將供給各自處理器的電源電壓,或?qū)⒐┙o構(gòu)成所述各自處理器的晶體管的襯底節(jié)點(diǎn)的襯底電壓,其中當(dāng)所述分配控制裝置使多個(gè)處理器并行執(zhí)行指令時(shí),所述時(shí)鐘控制裝置和所述電壓控制裝置分別供給各具有比預(yù)定頻率低的頻率的時(shí)鐘信號(hào),和低于預(yù)定電壓的電源電壓或用于提供比預(yù)定閾值電壓高的閾值電壓的襯底電壓。
2.根據(jù)權(quán)利要求1的處理器系統(tǒng),其中所述分配控制裝置、所述時(shí)鐘控制裝置和所述電壓控制裝置根據(jù)所述指令中包括的控制信息,分別控制對(duì)所述處理器的所述分配、所述時(shí)鐘信號(hào)的所述頻率,和所述電源電壓或所述襯底電壓。
3.根據(jù)權(quán)利要求2的處理器系統(tǒng),其中所述控制信息指示對(duì)所述對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率,和電源電壓或襯底電壓的多個(gè)組合中的一個(gè)。
4.根據(jù)權(quán)利要求1的處理器系統(tǒng),還包括指令分析裝置,用于分析所述指令是否可由多個(gè)處理器并行執(zhí)行,其中所述分配控制裝置、所述時(shí)鐘控制裝置和所述電壓控制裝置根據(jù)所述指令分析裝置的所述分析的結(jié)果,分別控制對(duì)所述處理器的所述分配、所述時(shí)鐘信號(hào)的所述頻率,和所述電源電壓或所述襯底電壓。
5.根據(jù)權(quán)利要求4的處理器系統(tǒng),其中所述指令分析裝置分析按照所述指令執(zhí)行的過程是否為具有重負(fù)載的過程。
6.根據(jù)權(quán)利要求5的處理器系統(tǒng),其中具有重負(fù)載的所述過程包括執(zhí)行預(yù)定次數(shù)或更多次數(shù)的循環(huán)過程。
7.根據(jù)權(quán)利要求2的處理器系統(tǒng),其中所述多個(gè)處理器包含包括關(guān)于襯底電壓具有第一閾值電壓的晶體管的處理器,和包括關(guān)于所述襯底電壓具有第二閾值電壓的晶體管的處理器,所述第二閾值電壓比所述第一閾值電壓高,并且所述分配控制裝置、所述時(shí)鐘控制裝置和所述電壓控制裝置根據(jù)所述指令中包括的控制信息和所述處理器中包括的所述晶體管的所述閾值電壓,分別控制對(duì)所述處理器的所述分配、所述時(shí)鐘信號(hào)的所述頻率,和所述電源電壓或所述襯底電壓。
8.根據(jù)權(quán)利要求4的處理器系統(tǒng),其中所述多個(gè)處理器包含包括關(guān)于襯底電壓具有第一閾值電壓的晶體管的處理器,和包括關(guān)于所述襯底電壓具有第二閾值電壓的晶體管的處理器,所述第二閾值電壓比所述第一閾值電壓高,并且所述分配控制裝置、所述時(shí)鐘控制裝置和所述電壓控制裝置根據(jù)所述指令分析裝置的所述分析的結(jié)果和所述處理器中包括的所述晶體管的所述閾值電壓,分別控制對(duì)所述處理器的所述分配、所述時(shí)鐘信號(hào)的所述頻率,和所述電源電壓或所述襯底電壓。
9.根據(jù)權(quán)利要求1的處理器系統(tǒng),其中所述電壓控制裝置停止對(duì)所述分配控制裝置沒有對(duì)其分配執(zhí)行指令的處理器的電源電壓的供給。
10.根據(jù)權(quán)利要求1的處理器系統(tǒng),還包括故障信息保持裝置,用于保持指示各處理器是否正常操作的信息,其中所述分配控制裝置僅對(duì)正常操作的處理器分配執(zhí)行指令。
11.根據(jù)權(quán)利要求10的處理器系統(tǒng),還包括故障檢測裝置,用于使各處理器執(zhí)行測試操作,以確定所述處理器是否正常操作。
12.根據(jù)權(quán)利要求11的處理器系統(tǒng),其中所述故障檢測裝置使各處理器執(zhí)行測試程序,以根據(jù)所述執(zhí)行的結(jié)果確定所述處理器是否正常操作。
13.一種指令序列優(yōu)化裝置,用于使包括多個(gè)處理器的處理器系統(tǒng)所執(zhí)行的指令序列優(yōu)化,所述裝置包括指令分析裝置,用于分析所述指令序列中包括的指令是否可由所述各自處理器執(zhí)行;和控制信息添加裝置,用于根據(jù)所述指令分析裝置的所述分析的結(jié)果及指示功耗和處理能力的信息,對(duì)所述指令序列加上控制信息,所述控制信息指示對(duì)所述對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率,和電源電壓或襯底電壓。
14.根據(jù)權(quán)利要求13的裝置,其中所述控制信息添加裝置用多個(gè)處理器并行執(zhí)行的指令來代替一個(gè)處理器執(zhí)行的指令。
15.一種指令序列優(yōu)化程序,用于使包括多個(gè)處理器的處理器系統(tǒng)所執(zhí)行的指令序列優(yōu)化,所述程序使計(jì)算機(jī)執(zhí)行指令分析步驟,分析所述指令序列中包括的指令是否可由多個(gè)處理器執(zhí)行;和控制信息添加步驟,根據(jù)所述指令分析步驟中得到的所述分析的結(jié)果及指示功耗和處理能力的信息,對(duì)所述指令序列加上控制信息,所述控制信息指示對(duì)所述對(duì)處理器的分配、時(shí)鐘信號(hào)的頻率,和電源電壓或襯底電壓。
16.根據(jù)權(quán)利要求15的程序,其中在所述控制信息添加步驟中,用多個(gè)處理器并行執(zhí)行的指令來代替一個(gè)處理器執(zhí)行的指令。
全文摘要
為了減小一個(gè)包括多個(gè)處理器的處理器系統(tǒng)的功耗,而不使處理能力降級(jí),一個(gè)CPU檢測加到指令代碼的方式設(shè)置信息,并且分別向一個(gè)時(shí)鐘控制部分和一個(gè)電源電壓控制部分輸出一個(gè)時(shí)鐘控制信號(hào)和一個(gè)電源電壓控制信號(hào)。當(dāng)多個(gè)處理引擎并行執(zhí)行一條指令時(shí),供給具有比預(yù)定頻率低的頻率的時(shí)鐘信號(hào)和比預(yù)定電壓低的電源電壓。結(jié)果,使功耗減小,并且通過并行執(zhí)行而保持處理能力。
文檔編號(hào)G06F15/76GK1612088SQ20041008710
公開日2005年5月4日 申請(qǐng)日期2004年10月27日 優(yōu)先權(quán)日2003年10月27日
發(fā)明者竹歲修, 田中功, 和田享 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社