專利名稱:用于異質(zhì)多管線處理器中的功率減小的方法和設(shè)備的制作方法
用于異質(zhì)多管線處理器中的功率減小的方法和設(shè)備技術(shù)領(lǐng)域本主題涉及用于當(dāng)處理功能需要較低處理能力時(shí)有效地提供具有減小的電力消耗的 管線處理的技術(shù)和處理器結(jié)構(gòu)。
背景技術(shù):
集成處理器(例如微處理器和數(shù)字信號(hào)處理器)通常利用管線處理結(jié)構(gòu)。處理管線 基本上由一系列處理級(jí)組成,每一處理級(jí)執(zhí)行特定功能并將結(jié)果傳遞到管線的下一級(jí)。 管線的簡(jiǎn)單實(shí)例可能包含用于取出指令的取出級(jí)、用于解碼由取出級(jí)獲得的指令的解碼 級(jí)、用于讀取或獲得操作數(shù)數(shù)據(jù)的讀出級(jí)和用于執(zhí)行經(jīng)解碼指令的執(zhí)行級(jí)。典型的執(zhí)行 級(jí)可能包含算術(shù)邏輯單元(ALU)。寫回級(jí)將執(zhí)行結(jié)果放置在寄存器或存儲(chǔ)器中以供稍后 使用。指令連續(xù)地移動(dòng)通過(guò)管線。在給定的處理周期期間,每一級(jí)基于所述系列指令中的一者來(lái)執(zhí)行其各個(gè)功能,使 得管線同時(shí)處理對(duì)應(yīng)于級(jí)數(shù)目的許多指令。隨著期望的操作速度增加,制造商增加管線 的各個(gè)級(jí)的數(shù)目,使得在每一周期期間處理更多指令。本質(zhì)上,上文概述的五個(gè)主要功 能被分解為較小任務(wù)并分布在更多級(jí)上。并且,可使用較快的晶體管或級(jí)結(jié)構(gòu)。然而, 增加級(jí)的數(shù)目會(huì)增加電力消耗。較快的晶體管或級(jí)結(jié)構(gòu)經(jīng)常進(jìn)一步增加電力消耗。尤其在便攜式或低功率裝置中,處理器的許多功能或應(yīng)用不需要管線的完全處理能 力,或僅在非常有限的時(shí)間內(nèi)需要完全處理能力。換句話說(shuō),經(jīng)設(shè)計(jì)用于較高性能應(yīng)用 的處理器必須比經(jīng)設(shè)計(jì)用于較低性能應(yīng)用的處理器使用更快的電路和更深的管線,然而, 即使是較高性能處理器也經(jīng)常執(zhí)行僅需要較低性能處理能力的應(yīng)用或其部分。較高性能 處理器管線即使在執(zhí)行較低性能要求時(shí)也會(huì)消耗較多電力。已經(jīng)認(rèn)識(shí)到需要一種技術(shù),其(例如)在運(yùn)行較低性能應(yīng)用時(shí),使較高性能處理系 統(tǒng)在較低性能模式下操作,且同時(shí)耗散比完全高性能操作所需的電力少的電力。優(yōu)選地, 低性能操作將利用比得上低性能處理器的電力的電力。希望解決這種需要的一些結(jié)構(gòu)已利用兩個(gè)單獨(dú)的中央處理單元, 一個(gè)用于高性能且 一個(gè)用于低性能,其中基于特定應(yīng)用或處理的要求進(jìn)行選擇。在多處理方案中,其它所 提議的結(jié)構(gòu)已使用具有相等性能(但各個(gè)性能小于完全高性能)的并行中央處理單元, 并在較高性能變得必需時(shí)聚合其使用/操作。任何使用兩個(gè)或兩個(gè)以上完整的中央處理單
元的情況均會(huì)顯著使編程任務(wù)變得復(fù)雜,因?yàn)槌绦騿T必須針對(duì)每一中央處理單元寫入單 獨(dú)的程序且將指令包含在每一單獨(dú)程序中以用于當(dāng)不同應(yīng)用必須交互時(shí)所述中央處理單 元之間進(jìn)行必要的通信和協(xié)調(diào)。使用兩個(gè)或兩個(gè)以上中央處理單元還增加了系統(tǒng)復(fù)雜性 和成本。舉例來(lái)說(shuō),兩個(gè)中央處理單元經(jīng)常包含至少一些復(fù)制電路,例如指令取出與解 碼電路、寄存器文件、高速緩沖存儲(chǔ)器等。并且,單獨(dú)單元的互連可使芯片電路布局變 復(fù)雜。因此,需要一種較有效的技術(shù),其允許信號(hào)處理器以不同的性能水平運(yùn)行程序且同 時(shí)消耗不同量的電力,例如使得在較低性能模式下電力耗散較低且甚至可能比得上較低 性能處理器的電力耗散。發(fā)明內(nèi)容本文的教示允許管線處理器通過(guò)經(jīng)由兩個(gè)或兩個(gè)以上異質(zhì)管線選擇性地處理指令而 以減小的功率電平在低性能模式下操作。處理管線是異質(zhì)的或不均衡的,因?yàn)槊恳还芫€ 中的深度或級(jí)數(shù)目大致上是不同的。一種針對(duì)中央處理單元的指令管線處理的方法包含依次解碼指令流中的每一指令, 且將經(jīng)解碼指令選擇性地供應(yīng)到兩個(gè)處理管線,以用于多級(jí)處理。將第一指令供應(yīng)到具 有第一數(shù)目的一個(gè)或一個(gè)以上級(jí)的第一處理管線;且將第二指令供應(yīng)到具有第二數(shù)目的 級(jí)的第二處理管線。第二管線較長(zhǎng),因?yàn)槠浔鹊谝还芫€包含更高數(shù)目的級(jí),且因此第二 處理管線的性能高于第一處理管線的性能。在下文詳細(xì)論述的實(shí)例中,第二經(jīng)解碼指令(也就是說(shuō),那些選擇性地施加到第二 處理管線的指令)比第一經(jīng)解碼指令具有更高的性能要求。在通過(guò)第一處理管線的級(jí)基 于第一經(jīng)解碼指令執(zhí)行至少一些功能期間,第二處理管線并不同時(shí)基于第二經(jīng)解碼指令 執(zhí)行任何功能。因此,此時(shí),具有較高性能的第二處理管線不消耗同樣多的電力,且在 一些實(shí)例中可能被完全切斷電力。由于第一處理管線的級(jí)較少且因?yàn)槠渫ǔR暂^慢速率 運(yùn)行且可利用較低功率電路,所以與第二處理管線相比,第一處理管線消耗較少電力。 除了性能和電力消耗的差異外,兩個(gè)管線提供類似的總體處理。經(jīng)由共用前端,能夠饋 給一個(gè)統(tǒng)一程序流并基于性能要求在內(nèi)部分離指令。因此,應(yīng)用程序草擬者無(wú)需特別針 對(duì)兩個(gè)單獨(dú)處理器的不同能力來(lái)裁剪軟件。本發(fā)明揭示用于將指令選擇性地供應(yīng)到處理管線的許多算法。舉例來(lái)說(shuō),所述選擇 可基于第一和第二經(jīng)解碼指令的性能要求,例如以逐個(gè)指令為基礎(chǔ)或基于應(yīng)用層級(jí)性能 要求。在另一實(shí)例中,所述選擇基于第一和第二范圍內(nèi)的指令地址。
舉例來(lái)說(shuō), 一種用于實(shí)施如上文概述的處理方法的處理器包含用于存儲(chǔ)處理指令的 共用指令存儲(chǔ)器和一組異質(zhì)的至少兩個(gè)處理管線。提供用于基于性能要求來(lái)分離從共用 指令存儲(chǔ)器獲得的處理指令流的裝置。此元件將需要較低性能的處理指令供應(yīng)到處理管 線中的較低性能處理管線,且將需要較高性能的處理指令供應(yīng)到處理管線中的較高性能 處理管線。在所揭示的實(shí)例中,所述組管線包含具有第一數(shù)目的一個(gè)或一個(gè)以上級(jí)的第一處理 管線和具有比第一數(shù)目的級(jí)多的第二數(shù)目的級(jí)的第二處理管線。與第一處理管線相比,第二處理管線提供較高性能。通常,與第一處理管線相比,第二處理管線以較高時(shí)鐘速 率操作,每時(shí)鐘周期執(zhí)行較少功能,但具有較多級(jí)并使用較多處理周期(其每一者較短), 且因此汲取較多電力。共用前端從共用指令存儲(chǔ)器獲得處理指令,并將處理指令選擇性 地供應(yīng)到所述兩個(gè)處理管線。在所述實(shí)例中,共用前端包含取出級(jí)和解碼級(jí)。取出級(jí)耦 合到共用指令存儲(chǔ)器,且所述級(jí)的邏輯從存儲(chǔ)器中取出處理指令。解碼級(jí)解碼取出的處 理指令并將經(jīng)解碼的處理指令供應(yīng)到適當(dāng)?shù)奶幚砉芫€。額外的目的、優(yōu)點(diǎn)和新穎特征將部分地在隨后描述內(nèi)容中陳述,且部分將由所屬領(lǐng) 域的技術(shù)人員通過(guò)檢査以下內(nèi)容和附圖而容易了解或者可通過(guò)產(chǎn)生或操作實(shí)例來(lái)學(xué)習(xí)。 可通過(guò)實(shí)踐或使用所附權(quán)利要求書中明確指出的方法、工具和組合來(lái)實(shí)現(xiàn)和達(dá)成本教示 的目的和優(yōu)點(diǎn)。
所繪圖式僅以舉例方式而非限制方式描繪根據(jù)本教示的一個(gè)或一個(gè)以上實(shí)施方案。在圖式中,相似參考標(biāo)號(hào)指代相同或類似元件。圖1是實(shí)施共用前端和一組異質(zhì)處理管線的中央處理單元的功能方框圖。圖2是可用于闡釋用于分離指令以便分布在如圖1的系統(tǒng)中的管線之間的第一技術(shù)的邏輯/流程圖。圖3是可用于闡釋用于分離指令以便分布在如圖1的系統(tǒng)中的管線之間的第二技術(shù) 的邏輯/流程圖。圖4是可用于闡釋用于分離指令以便分布在如圖1的系統(tǒng)中的管線之間的第三技術(shù) 的邏輯/流程圖。
具體實(shí)施方式
在以下詳細(xì)描述中,以舉例方式陳述大量特定細(xì)節(jié)以便提供對(duì)相關(guān)教示的徹底理解。 然而,所屬領(lǐng)域的技術(shù)人員應(yīng)了解,可在沒(méi)有這些細(xì)節(jié)的情況下實(shí)踐本教示。在其它情
況下,相對(duì)概括而非詳細(xì)地描述眾所周知的方法、程序、組件和電路,以便避免不必要 地混淆本教示的各方面。用作中央處理單元或數(shù)字信號(hào)處理器的示范性處理器包含共用指令解碼前端,例如 取出級(jí)和解碼級(jí)。然而,所述處理器包含至少兩個(gè)單獨(dú)執(zhí)行管線。較低性能管線耗散相 對(duì)較少電力。較低性能管線具有較少級(jí)且可利用汲取較少電力的較低速度電路。較高性 能管線具有較多級(jí)且可利用較快電路。較低性能管線可以比高性能管線低的頻率進(jìn)行計(jì) 時(shí)。盡管較高性能管線汲取較多電力,但其操作可限于當(dāng)至少一些應(yīng)用或處理功能需要 較高性能的時(shí)期??刂扑鎏幚砥魇沟眯枰^高性能的處理在較高性能管線中運(yùn)行,而在至少一些情 況下,那些需要較低性能的處理利用較低性能管線,同時(shí)所述較高性能管線有效地關(guān)閉 以使電力消耗最小化。處理器在任何給定時(shí)間處的配置(也就是說(shuō),當(dāng)前正操作的管線) 可經(jīng)由若干不同技術(shù)來(lái)控制。此類控制的實(shí)例包含軟件控制,其中軟件本身指示相對(duì)性 能要求且因此規(guī)定哪個(gè)(些)管線應(yīng)處理特定軟件。也可由從中獲得特定指令的存儲(chǔ)器 位置來(lái)規(guī)定所述選擇,例如使得來(lái)自一些位置的指令行進(jìn)到較低性能管線且來(lái)自其它位 置的指令行進(jìn)到較高性能管線。其它方法可能利用硬件機(jī)制來(lái)適應(yīng)性地或動(dòng)態(tài)地檢測(cè)處 理要求并將指令、應(yīng)用或功能導(dǎo)向適當(dāng)管線。在所述實(shí)例中,處理器利用至少兩個(gè)并行執(zhí)行管線,其中所述管線是異質(zhì)的。管線 共享其它處理器資源,例如以下各項(xiàng)中的任何一者或一者以上前端的取出級(jí)和解碼級(jí)、 指令高速緩沖存儲(chǔ)器、寄存器文件堆棧、數(shù)據(jù)高速緩沖存儲(chǔ)器、存儲(chǔ)器接口和系統(tǒng)內(nèi)的 其它構(gòu)造的寄存器。現(xiàn)詳細(xì)參照附圖中說(shuō)明的以及下文論述的實(shí)例。圖1說(shuō)明充當(dāng)中央處理單元(CPU) 11的處理器結(jié)構(gòu)的簡(jiǎn)化實(shí)例。處理器/CPU 11使用異質(zhì)的并行管線處理,其中一個(gè)管線 提供較低性能以用于低性能/低功率操作。 一個(gè)或一個(gè)以上其它管線提供較高性能。"管線"可包含少至一個(gè)級(jí),但其通常包含多個(gè)級(jí)。在簡(jiǎn)單形式中,處理器管線通 常包含用于五個(gè)主要功能的管線級(jí)。管線的第一級(jí)是指令取出級(jí),其獲得指令以供隨后 級(jí)進(jìn)行處理。取出級(jí)將每一指令供應(yīng)到解碼級(jí)。指令解碼級(jí)的邏輯解碼所接收的指令字節(jié)并將結(jié)果供應(yīng)到管線的下一級(jí)。下一級(jí)的功能是數(shù)據(jù)存取或讀出。讀出級(jí)的邏輯存取 存儲(chǔ)器或其它資源以獲得操作數(shù)數(shù)據(jù)用于根據(jù)指令進(jìn)行處理。指令和操作數(shù)數(shù)據(jù)被傳遞到執(zhí)行級(jí),執(zhí)行級(jí)對(duì)檢索到的數(shù)據(jù)執(zhí)行特定指令并產(chǎn)生結(jié)果。典型的執(zhí)行級(jí)可實(shí)施算術(shù) 邏輯單元(ALU)。第五級(jí)將執(zhí)行結(jié)果寫回到存儲(chǔ)器。
在高級(jí)管線結(jié)構(gòu)中,這五級(jí)功能中的每一者被再分并在多個(gè)級(jí)中實(shí)施。超標(biāo)量設(shè)計(jì) 利用同時(shí)并行操作的具有大致相同深度的兩個(gè)或兩個(gè)以上管線。此超標(biāo)量處理器的實(shí)例 可能使用兩個(gè)并行管線,每一管線包括十四個(gè)級(jí)。
示范性CPU 11包含共用前端13和許多共用資源15。共用資源15包含指令存儲(chǔ)器 17,例如指令高速緩沖存儲(chǔ)器,其為處理器11的管線提供統(tǒng)一指令流。如下文進(jìn)一步論 述,統(tǒng)一指令流流到共用前端13,以便將指令分布在管線之間。共用資源15包含可供 所有管線使用的許多資源19-23。此類資源的實(shí)例包含用于存取外部存儲(chǔ)器的存儲(chǔ)器管理 單元(MMU) 19和通用寄存器21的堆?;蛭募赡艽嬖诙喾N其它共用資源23。所 屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,以上僅以舉例方式將資源列舉為共用資源。這些資源中的 任何一者均不是必須為共用的。舉例來(lái)說(shuō),本教示同樣地適用于具有共用寄存器文件的 處理器以及不使用共用寄存器文件的處理器。
繼續(xù)所說(shuō)明的實(shí)例,共用前端1包含"取出"級(jí)25,以用于依次從指令存儲(chǔ)器17 取出指令。循序地,取出級(jí)25將每一新近獲得的指令饋入到解碼級(jí)27。作為其解碼功 能的一部分,解碼級(jí)27將每一經(jīng)解碼指令路由或切換到管線中的一者。
盡管未單獨(dú)展示,但取出級(jí)25通常包括實(shí)施取出邏輯的狀態(tài)機(jī)或類似物,以及用于 將取出的指令傳遞到解碼級(jí)27的相關(guān)聯(lián)寄存器。取出級(jí)邏輯最初試圖從最低層級(jí)指令存 儲(chǔ)器(在此情況下為指令高速緩沖存儲(chǔ)器17)取出下一尋址的指令。如果指令尚不在高 速緩沖存儲(chǔ)器17中,那么取出級(jí)25的邏輯將從經(jīng)由存儲(chǔ)器管理單元19存取的其它資源(例如第二層級(jí)(L2)高速緩沖存儲(chǔ)器或主存儲(chǔ)器)將指令取出到高速緩沖存儲(chǔ)器17中。 一旦加載在高速緩沖存儲(chǔ)器17中,取出級(jí)25的邏輯就從高速緩沖存儲(chǔ)器17取出指令并 將指令供應(yīng)到解碼級(jí)27。接著,當(dāng)隨后需要時(shí),指令將在高速緩沖存儲(chǔ)器17中可用。 盡管未單獨(dú)展示,但指令高速緩沖存儲(chǔ)器17通常將提供分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)或使其與分支目標(biāo)地址高速緩沖存儲(chǔ)器(BTAC)相關(guān)聯(lián),以用于以與指令高 速緩沖存儲(chǔ)器17的操作類似的方式高速緩沖存儲(chǔ)在管線處理器11處理分支型指令期間 所采取的分支的目標(biāo)地址。所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,取出級(jí)25和/或解碼級(jí)27可 分解為多個(gè)子級(jí),以增加管線處理。
CPU II包含低性能管線處理區(qū)31和高性能管線處理區(qū)33。兩個(gè)區(qū)31和33是異質(zhì) 的或不均衡的,因?yàn)槊恳还芫€中的深度或級(jí)數(shù)目大致上是不同的。高性能區(qū)33通常包含 的級(jí)比在形成低性能區(qū)31的管線中的級(jí)多,且在實(shí)例中,高性能區(qū)31包含兩個(gè)(或兩 個(gè)以上)并行管線,每一管線具有相同數(shù)目的級(jí)且大致上深于低性能區(qū)31的管線。由于
取出級(jí)和解碼級(jí)在共用前端13中實(shí)施,所以低性能管線可僅由單個(gè)級(jí)組成。通常,較低 性能管線包含兩個(gè)或兩個(gè)以上級(jí)。低性能管線區(qū)31可包含并行的多個(gè)管線,但為了使電 力消耗和復(fù)雜性最小化,示范性結(jié)構(gòu)在低性能區(qū)31中利用單個(gè)三級(jí)管線。對(duì)于從取出級(jí)25接收的每一指令,解碼級(jí)27解碼指令字節(jié)并將結(jié)果供應(yīng)到管線的 下一級(jí)。盡管未單獨(dú)展示,但解碼級(jí)27通常包括實(shí)施解碼邏輯的狀態(tài)機(jī)或類似物,以及 用于將經(jīng)解碼指令傳遞到下一級(jí)的邏輯的相關(guān)聯(lián)寄存器。由于處理器11包含多個(gè)管線, 所以解碼級(jí)邏輯還確定應(yīng)接收每一指令并相應(yīng)地路由每一經(jīng)解碼指令的管線。舉例來(lái)說(shuō), 解碼級(jí)27可包含兩個(gè)或兩個(gè)以上寄存器,每一管線一個(gè)寄存器,且所述邏輯將基于其對(duì) 哪一管線將處理特定指令的判定而把每一經(jīng)解碼指令加載到適當(dāng)寄存器中。當(dāng)然,指令 分派單元或另一路由或切換機(jī)制可在解碼級(jí)27中或在所述級(jí)與CPU II的后續(xù)管線處理 級(jí)31、 33之間實(shí)施。每一管線級(jí)包含用于執(zhí)行與特定級(jí)相關(guān)聯(lián)的各個(gè)功能的邏輯,以及用于俘獲級(jí)處理 的結(jié)果以傳送到管線的下一連續(xù)級(jí)的寄存器。首先考慮較低性能管線31。注意到,共用 前端13實(shí)施典型管線的最初兩個(gè)級(jí),即取出和解碼。在管線31的最簡(jiǎn)單形式中,管線 31可實(shí)施少至一個(gè)級(jí),但在實(shí)例中其實(shí)施用于基本管線的剩余主要功能的三個(gè)級(jí),也就 是說(shuō)讀出、執(zhí)行和寫回。管線31可由稍許更多的處理級(jí)組成,以允許將功能稍許細(xì)分以 獲得稍許改進(jìn)的性能。來(lái)自解碼級(jí)27的經(jīng)解碼指令首先施加到邏輯311,也就是說(shuō)讀出邏輯311,其存取 共用存儲(chǔ)器或其它共用資源(19-23)以獲得操作數(shù)數(shù)據(jù)以用于根據(jù)指令進(jìn)行處理。讀出 邏輯311將指令和操作數(shù)數(shù)據(jù)放置在相關(guān)聯(lián)的寄存器312中以便傳遞到下一級(jí)的邏輯。 在實(shí)例中,下一級(jí)是算術(shù)邏輯單元(ALU),其充當(dāng)執(zhí)行級(jí)的執(zhí)行邏輯313。 ALU執(zhí)行邏 輯313對(duì)所檢索的數(shù)據(jù)執(zhí)行特定指令,產(chǎn)生結(jié)果并將結(jié)果加載在寄存器314中。最后級(jí) 的邏輯315和相關(guān)聯(lián)寄存器316起作用以將執(zhí)行結(jié)果寫回到存儲(chǔ)器。在每一處理周期期間,每一邏輯對(duì)從先前級(jí)的寄存器供應(yīng)的信息執(zhí)行其處理。隨著 指令從一個(gè)級(jí)移動(dòng)到下一級(jí),先前級(jí)獲得并處理新的指令。在通過(guò)管線31處理的任何給 定時(shí)間,五個(gè)級(jí)25、 27、 311、 313和315同時(shí)相對(duì)于五個(gè)連續(xù)指令執(zhí)行其所分派到的任 務(wù)。管線31的性能相對(duì)較低,因?yàn)槠渚哂邢鄬?duì)較小數(shù)目的級(jí),在我們的實(shí)例中只有三個(gè)。 管線31的時(shí)鐘速度相對(duì)較低,例如100 MHz。并且,管線31的每一級(jí)可例如鑒于低時(shí) 鐘速度要求而使用相對(duì)較低功率電路。相比之下,較高性能處理管線區(qū)33利用較多級(jí),
處理管線33以較高速率(例如,1 GHz)進(jìn)行計(jì)時(shí),且所述管線33的每一級(jí)使用通常需 要較多電力的較快電路。所屬領(lǐng)域的技術(shù)人員將了解,不同的時(shí)鐘速率只是實(shí)例而已。 舉例來(lái)說(shuō),本教示適用于在相同頻率下對(duì)兩個(gè)管線進(jìn)行計(jì)時(shí)的實(shí)施方案。繼續(xù)所說(shuō)明的實(shí)例,前端25將經(jīng)設(shè)計(jì)以補(bǔ)償其關(guān)于預(yù)期用于不同管線31和33的指 令的操作中的時(shí)鐘速率差異??墒褂萌舾刹煌募夹g(shù),且通常選擇一種技術(shù)來(lái)最佳地支 持由前端25實(shí)施以在管線31與33之間進(jìn)行選擇的特定算法。舉例來(lái)說(shuō),如果前端25 在較長(zhǎng)時(shí)間間隔內(nèi)選擇性地僅饋給所述管線中的一者或另一者,那么可將前端時(shí)鐘速率 選擇性地設(shè)定為所述兩個(gè)管線速率中的每一者,以始終與管線31和33中的當(dāng)前活動(dòng)管 線的速率匹配。在實(shí)例中,處理管線區(qū)33使用超標(biāo)量結(jié)構(gòu),其包含具有大體相等深度的多個(gè)并行管 線,其由兩個(gè)單獨(dú)并行管線35和37表示。管線35在此實(shí)例中是十二級(jí)管線,但管線可 依據(jù)針對(duì)特定區(qū)33確立的性能要求而具有更少或更多級(jí)。與管線35相似,管線37是十 二級(jí)管線,但管線可依據(jù)性能要求而具有更少或更多級(jí)。這兩個(gè)管線同時(shí)并行操作,因 為兩組指令大致上同時(shí)移動(dòng)通過(guò)兩個(gè)管線的級(jí)且由兩個(gè)管線的級(jí)處理。這兩個(gè)管線中的 每一者經(jīng)由MMU 19存取主存儲(chǔ)器中的數(shù)據(jù),且根據(jù)需要可使用例如寄存器21等其它共 用資源。首先考慮管線35。來(lái)自解碼級(jí)27的經(jīng)解碼指令首先被施加到級(jí)1邏輯351。邏輯 351根據(jù)其邏輯設(shè)計(jì)處理指令。所述處理可能需要經(jīng)由共用資源15中的一者或一者以上 或與此讀出功能有關(guān)的某一任務(wù)來(lái)存取其它數(shù)據(jù)。當(dāng)完成時(shí),處理結(jié)果出現(xiàn)在寄存器352 中并傳遞到下一級(jí)。在下一處理周期中,第二級(jí)的邏輯353對(duì)來(lái)自第一級(jí)寄存器352的 結(jié)果執(zhí)行其處理,并將其結(jié)果加載到寄存器354中以便傳遞到第三級(jí),且這一過(guò)程繼續(xù) 直到由第十二級(jí)邏輯357處理為止,且在由所述邏輯處理之后,最后結(jié)果出現(xiàn)在寄存器 358中以供輸出,通常供寫回到或經(jīng)過(guò)共用資源15中的一者。所述級(jí)中的若干者共同執(zhí) 行類似于讀出的功能。類似地,若干級(jí)本質(zhì)上共同執(zhí)行每一指令;且管線底部附近的一 個(gè)或一個(gè)以上級(jí)將結(jié)果寫回到寄存器和/或存儲(chǔ)器。當(dāng)然,在較高性能處理管線33的操作期間的每一連續(xù)處理周期期間,解碼級(jí)27將 新的經(jīng)解碼指令供應(yīng)到第一級(jí)邏輯351以進(jìn)行處理。因此,在任何給定的處理周期期間, 管線35的每一級(jí)在管線35的其它級(jí)進(jìn)行處理的同時(shí)執(zhí)行其所分派到的處理任務(wù)。同樣,在較高性能管線區(qū)33的每一操作周期期間,解碼級(jí)27將經(jīng)解碼指令供應(yīng)到 并行管線37的級(jí)1邏輯371。邏輯371根據(jù)其邏輯設(shè)計(jì)處理指令。所述處理可能需要經(jīng)
由共用資源15中的一者或一者以上或與此讀出功能有關(guān)的某一任務(wù)來(lái)存取其它數(shù)據(jù)。當(dāng) 完成時(shí),處理結(jié)果出現(xiàn)在寄存器372中并傳遞到下一級(jí)。在下一處理周期中,第二級(jí)的 邏輯373對(duì)來(lái)自第一級(jí)寄存器372的結(jié)果執(zhí)行其處理,并將其結(jié)果加載到寄存器374中 以便傳遞到第三級(jí),且這一過(guò)程繼續(xù)直到由第十二級(jí)邏輯377處理為止,且在由所述邏 輯處理之后,最后結(jié)果出現(xiàn)在寄存器378中以供輸出,通常供寫回到或經(jīng)過(guò)共用資源15 中的一者。所述級(jí)中的若干者共同執(zhí)行類似于讀出的功能。類似地,若干級(jí)共同本質(zhì)上 執(zhí)行每一指令;且管線底部附近的一個(gè)或一個(gè)以上級(jí)將結(jié)果寫回到寄存器和/或存儲(chǔ)器。當(dāng)然,在較高性能處理管線33的操作期間的每一連續(xù)處理周期期間,解碼級(jí)27將 新的經(jīng)解碼指令供應(yīng)到第一級(jí)邏輯371以進(jìn)行處理。因此,在任何給定的處理周期期間, 管線37的每一級(jí)在管線37的其它級(jí)進(jìn)行處理的同時(shí)執(zhí)行其所分派到的處理任務(wù)。以此方式,兩個(gè)管線35和37在較高性能管線區(qū)33的處理操作期間同時(shí)并行操作。 這些操作可能需要在兩個(gè)管線的級(jí)之間交換某些信息。總體上,由處理管線區(qū)31執(zhí)行的處理功能可能與由處理管線區(qū)33執(zhí)行的處理功能 大致上類似或相同。換句話說(shuō),前端13與低性能區(qū)31的組合本質(zhì)上提供完整的單標(biāo)量 管線處理器,以用于實(shí)施CPU 11的低性能處理功能或應(yīng)用。類似地,前端13與高性能 處理管線33的組合本質(zhì)上提供完整的超標(biāo)量管線處理器,以用于實(shí)施CPU 13的高性能 處理功能或應(yīng)用。由于級(jí)的較高數(shù)目和用于構(gòu)造級(jí)的較快電路的緣故,管線區(qū)33可以高 得多的速率執(zhí)行指令或執(zhí)行操作。因?yàn)槊恳粎^(qū)31、 33可與前端13—起充當(dāng)完整的管線處理器,所以能夠以統(tǒng)一方式 寫入編程,而不用預(yù)先知道或確定哪一管線區(qū)31或33必須執(zhí)行特定指令或子例行程序。 不需要特意為不同中央處理單元中的不同資源寫入不同程序。相反,單個(gè)指令流可基于 性能與電力消耗要求而分裂在處理管線之間。如果應(yīng)用需要較高性能和/或值得較高電力 消耗,那么針對(duì)所述應(yīng)用的指令傳遞通過(guò)高性能管線區(qū)33。如果不是,那么通過(guò)較低性 能管線31處理應(yīng)當(dāng)是足夠的。處理器11在用作通常以有限電源(通常是電池型電源)操作的手持式或便攜式裝置 的CPU時(shí)具有特定優(yōu)點(diǎn)。此類應(yīng)用的實(shí)例包含蜂窩式電話、手持式計(jì)算機(jī)、個(gè)人數(shù)字助 理(PDA)和如BlackBerryTM的手持式終端裝置。當(dāng)CPU 11用于此類裝置中時(shí),低性能 管線31運(yùn)行具有較低性能要求的應(yīng)用或指令,例如后臺(tái)監(jiān)視狀態(tài)和通信、電話通信、電 子郵件等。例如視頻游戲等需要較高性能的裝置應(yīng)用(例如,對(duì)于相關(guān)的高分辨率圖形 渲染)將在較高性能管線區(qū)33上運(yùn)行。
當(dāng)不需要高性能功能時(shí),例如當(dāng)并入有CPU 11的裝置僅運(yùn)行低性能/低功率應(yīng)用時(shí), 不使用高性能區(qū)33,且減少電力消耗。前端25可以低時(shí)鐘速率運(yùn)行。在高性能區(qū)33操 作期間,所述區(qū)可運(yùn)行所有當(dāng)前正在執(zhí)行的應(yīng)用,在此情況下,低性能區(qū)31可被關(guān)閉以 節(jié)省電力。前端25將以較高時(shí)鐘速率運(yùn)行。還能夠在高性能管線33操作期間繼續(xù)運(yùn)行低性能管線31,例如以在后臺(tái)執(zhí)行選定 的低性能功能。舉例來(lái)說(shuō),在處理器ll的蜂窩式電話型應(yīng)用中,電話應(yīng)用可能在低性能 區(qū)31上運(yùn)行。例如游戲等需要視頻處理的應(yīng)用利用高性能區(qū)33。在高性能區(qū)33中運(yùn)行 的游戲期間,例如當(dāng)站有效地接聽傳入電話時(shí),電話應(yīng)用可繼續(xù)在低性能區(qū)31中運(yùn)行。 前端25將跟蹤每一取出的指令的既定管線目的地,并使其分派功能適合于既定用于處理 每一特定指令的管線31或33的時(shí)鐘速率。存在若干方式來(lái)實(shí)施例如圖1所示的系統(tǒng)中的電力節(jié)省。舉例來(lái)說(shuō),當(dāng)僅運(yùn)行較低 性能處理管線33時(shí),較高性能處理管線31不起作用;且因此,區(qū)33的級(jí)不會(huì)動(dòng)態(tài)地汲 取操作電力。這減少了動(dòng)態(tài)電力消耗。為了減少泄漏,區(qū)31的級(jí)的晶體管可經(jīng)設(shè)計(jì)而具 有相對(duì)較高的柵極閾值電壓?;蛘?,CPU 11可包含用于較高性能處理管線區(qū)31的電力 控制38。當(dāng)解碼級(jí)27有指令要在區(qū)33的管線中處理時(shí),控制38向區(qū)33接通電力。當(dāng) 所有處理均將在較低性能處理管線31中執(zhí)行時(shí),控制38切斷到達(dá)相對(duì)于區(qū)33的級(jí)的電 力端子(電源或接地)中的一者的連接。所述切斷消除了通過(guò)處理區(qū)33的電路的泄漏。在具有電力控制38的所說(shuō)明的實(shí)例中,到達(dá)較低性能處理管線31的電力始終開啟, 例如使得即使較高性能處理管線33起作用時(shí)管線31也可執(zhí)行某一指令執(zhí)行。以此方式, 管線31保持可用于運(yùn)行后臺(tái)應(yīng)用和/或運(yùn)行一些指令以支持主要通過(guò)較高性能處理管線 33運(yùn)行的應(yīng)用。在當(dāng)較高性能處理管線33起作用時(shí)所有處理均轉(zhuǎn)移到所述管線的實(shí)施 方案中,可能存在額外的電力控制(未圖示)以當(dāng)較低性能處理管線31不在使用時(shí)切斷 到達(dá)較低性能處理管線31的電力。存在前端13可動(dòng)態(tài)適應(yīng)兩個(gè)管線31與33的操作速率的差異的許多方式,即使兩個(gè) 管線在至少一些條件下可同時(shí)操作。在一種方法中,對(duì)于前端25所傳遞的每一指令,前 端25考慮由指令將被傳遞到的特定管線31或33傳遞的"就緒"信號(hào)。如果特定管線 31或33正以比前端25慢的頻率運(yùn)行(前端與管線時(shí)鐘比率為N:1),那么此"就緒"信 號(hào)將每N個(gè)周期至多僅活動(dòng)一次。前端響應(yīng)于針對(duì)所述管線31或33的就緒信號(hào)而將下 一經(jīng)解碼指令分派到特定管線。在另一方法中,前端25自身負(fù)責(zé)跟蹤其何時(shí)已將指令發(fā) 送到管的每一者,并根據(jù)其對(duì)兩個(gè)管線31與33的相對(duì)頻率的了解而"記錄" 一個(gè)指令與下一指令傳遞之間需要的周期。如上文所指示,前端25與每一管線31、 33之間的"異步"接口可根據(jù)在兩個(gè)不同 頻域中操作的接口邏輯領(lǐng)域的技術(shù)人員將了解的大多數(shù)"頻率同步方法"的任一者進(jìn)行 操作。所述接口可完全異步(兩個(gè)頻率之間沒(méi)有關(guān)系)或同步(兩個(gè)頻率之間存在某一 積分關(guān)系,例如3:2)。不管方法如何,在前端25能夠執(zhí)行多線程的情況下,前端25可 同時(shí)在較低性能管線31與較高性能管線33兩者之間介接。每一接口均根據(jù)頻率關(guān)系, 且去往給定管線31或33的指令根據(jù)所述管線的頻率同步機(jī)制來(lái)計(jì)時(shí)。上文概述的解決方案類似超標(biāo)量管線處理器設(shè)計(jì),因?yàn)槠浒趩蝹€(gè)處理器或CPU 11內(nèi)并行實(shí)施的多個(gè)管線。然而,差異在于,與在超標(biāo)量中單個(gè)總體處理并行利用所有 執(zhí)行管線不同,示范性處理器11限制使用針對(duì)傳遞處于特定類別(例如,低或高)中的 處理所必需的性能而設(shè)計(jì)的特定管線。并且,典型的超標(biāo)量處理器結(jié)構(gòu)利用深度方面相 對(duì)均衡的管線集合。相比之下,所述實(shí)例中的管線31和33由于需要單獨(dú)滿足高性能與 低功率的沖突要求而"不均衡"(異質(zhì))??墒褂枚喾N不同技術(shù)來(lái)確定將哪些指令導(dǎo)向每一處理管線或區(qū)31、 33。可能有幫助 的是考慮一些邏輯流程,如圖2-4以舉例方式所示。第一示范性指令分派方法利用指令的地址來(lái)確定將哪些指令發(fā)送到每一管線。在圖 2的實(shí)例中,向低性能處理管線31分配地址范圍,且向較高性能處理管線33分配地址 范圍。當(dāng)應(yīng)用指令被寫入并存儲(chǔ)在存儲(chǔ)器中時(shí),其基于適當(dāng)?shù)闹噶畹刂贩秶淮鎯?chǔ)在 存儲(chǔ)器區(qū)域中。出于論述目的,假定地址范圍0001到0999與低性能指令有關(guān)。存儲(chǔ)在主存儲(chǔ)器中 對(duì)應(yīng)于那些地址的位置中的指令是具有較低性能要求的應(yīng)用的指令。當(dāng)較低性能應(yīng)用的 指令加載到指令髙速緩沖存儲(chǔ)器17中時(shí),也加載地址。當(dāng)前端13從高速緩沖存儲(chǔ)器17 取出并解碼指令時(shí),解碼級(jí)27將由在0001到0999范圍內(nèi)的任何地址識(shí)別的指令分派到 較低性能管線31。當(dāng)此類指令被取出、解碼并通過(guò)較低性能管線31處理時(shí),較高性能 處理管線33可能不活動(dòng)或甚至與電力斷開連接,以減少CPU 11的動(dòng)態(tài)和/或泄漏電力消 耗。然而,當(dāng)前端13取出并解碼指令時(shí),解碼級(jí)27將由在1000到9999范圍內(nèi)的任何 地址識(shí)別的指令分派到較高性能管線33。當(dāng)那些指令被取出、解碼并通過(guò)較高性能管線 33處理時(shí),至少處理管線33活動(dòng)并汲取全部電力,但管線31也可能起作用。在圖2的流程所表示的類型的實(shí)例中,解碼級(jí)27的邏輯基于指令地址來(lái)確定將經(jīng)解
碼指令導(dǎo)向哪里。當(dāng)然,此分派邏輯可在單獨(dú)級(jí)中實(shí)施。所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到, 所給出的地址范圍只是實(shí)例而已。實(shí)際處理器中將使用其它尋址方案,且可使用多種不 同范圍方案來(lái)有效地將存儲(chǔ)器區(qū)域分配到異質(zhì)處理管線31和33。舉例來(lái)說(shuō),為每一管 線分配的范圍或存儲(chǔ)器位置可以是或不是連續(xù)或鄰接的。圖3中說(shuō)明的流程表示邏輯39基于與每一指令相關(guān)聯(lián)的旗標(biāo)作出決策的技術(shù)。所述 決策可在解碼級(jí)27的邏輯中實(shí)施或在級(jí)27與管線31、 33之間的分派級(jí)中實(shí)施。在此實(shí) 例中,在存儲(chǔ)器中與CPU 11的每一指令相關(guān)聯(lián)設(shè)定一位旗標(biāo)。所述旗標(biāo)針對(duì)具有高性能 處理要求的任何指令具有O狀態(tài)。所述旗標(biāo)針對(duì)具有低性能處理要求(或不具有高性能 處理要求)的任何指令具有l(wèi)狀態(tài)。當(dāng)然,這些旗標(biāo)狀態(tài)只是實(shí)例而已。當(dāng)從存儲(chǔ)器17取出的流中的每一指令到達(dá)邏輯39時(shí),所述邏輯檢查旗標(biāo)。如果旗 標(biāo)具有0狀態(tài),那么邏輯將指令分派到較高性能處理管線33。如果旗標(biāo)具有l(wèi)狀態(tài),那 么邏輯將指令分派到較低性能處理管線31。在所述實(shí)例中,最初兩個(gè)指令(OOOl和0002) 是低性能指令(每一者的旗標(biāo)為1狀態(tài)),且決策邏輯39將那些指令路由到較低性能處 理管線31。接下來(lái)的兩個(gè)指令(0003和0004)是高性能指令(每一者的旗標(biāo)為O狀態(tài)), 且決策邏輯39將那些指令路由到較高性能處理管線33。指令的這種交替路由或分派在來(lái)自存儲(chǔ)器17的流中的指令的取出和解碼的整個(gè)過(guò) 程中繼續(xù)。在所述實(shí)例中,序列中的最后第二個(gè)指令(9998)是低性能指令(旗標(biāo)為1 狀態(tài)),且決策邏輯39將所述指令路由到較低性能處理管線31。序列中的最后指令(9999) 是高性能指令(旗標(biāo)為O狀態(tài)),且決策邏輯39將所述指令路由到較高性能處理管線33。 進(jìn)一步的處理繞回到OOOl第一指令并再次繼續(xù)通過(guò)所述序列。盡管未圖示,但指令處理 將有可能偶爾出現(xiàn)分支,然而決策邏輯39將基于性能要求旗標(biāo)的狀態(tài)繼續(xù)將每一指令分 派到適當(dāng)管線。再次,從0001到9999編號(hào)的地址僅是代表性的,且所述方案可以且將 容易地適合特定實(shí)際處理器所利用的尋址方案。圖3所表示的類型的分派技術(shù)基于相關(guān)聯(lián)的旗標(biāo)來(lái)分派每一各個(gè)指令。舉例來(lái)說(shuō), 在兩個(gè)管線有時(shí)在一些時(shí)段內(nèi)同時(shí)運(yùn)行的情況下,此技術(shù)可能是有用的。當(dāng)較高性能處 理管線33運(yùn)行時(shí),較低性能處理管線31可能正運(yùn)行某些支持或后臺(tái)應(yīng)用程序。當(dāng)然, 有時(shí)在僅執(zhí)行低性能指令時(shí),較高性能處理管線33將不活動(dòng)且CPU 11將汲取較少電力, 如先前相對(duì)于圖l論述。圖4中說(shuō)明的流程例證另一種利用旗標(biāo)的技術(shù)。此技術(shù)類似于圖3的技術(shù),但在41 處實(shí)施稍許不同的決策邏輯。再次,地址編號(hào)僅用于簡(jiǎn)化實(shí)例和論述目的。當(dāng)沒(méi)有高性
能應(yīng)用在運(yùn)行時(shí),邏輯41接收到的所有指令均在旗標(biāo)中設(shè)定低性能值(例如,1)。作為 響應(yīng),邏輯41將那些指令(所述簡(jiǎn)單實(shí)例中為0001和0002)的經(jīng)解碼版本分派到較低 性能處理管線31。管線33閑置。決策邏輯41基于接收在旗標(biāo)中設(shè)定有高性能值(例如,0)的開始指令(例如,在 0003處)來(lái)確定高性能應(yīng)用的處理是否已開始。只要所述應(yīng)用(例如)從指令0003到 指令0901保持運(yùn)行,邏輯49就將所有經(jīng)解碼指令分派到較高性能處理管線33。在此期 間,較低性能處理管線31可能關(guān)閉和/或到達(dá)所述管線的電力被切斷。在此期間,管線 33處理低性能和高性能指令兩者。當(dāng)高性能應(yīng)用結(jié)束(所述實(shí)例中在0901指令處)且 取出新的指令(例如,0902)時(shí),決策邏輯41重新開始向較低性能處理管線31分派, 且管線33變閑置。在圖2-4的實(shí)例中,相對(duì)于處理管線31、 33的指令分派和相關(guān)聯(lián)的處理狀態(tài)基于同 維持在指令存儲(chǔ)器中或與指令存儲(chǔ)器相關(guān)聯(lián)的指令相關(guān)聯(lián)的信息,例如地址值和/或旗 標(biāo)。其它技術(shù)可使用此類信息的組合或利用完全不同的參數(shù)來(lái)控制管線選擇和狀態(tài)。舉 例來(lái)說(shuō),設(shè)想邏輯可監(jiān)視CPU 11的性能并當(dāng)某一度量達(dá)到適當(dāng)閾值時(shí)動(dòng)態(tài)地上下調(diào)節(jié)性 能,例如以在用于響應(yīng)特定類型的指令的時(shí)間太長(zhǎng)時(shí)開啟較高性能處理管線33,且當(dāng)延 遲落回閾值以下時(shí)關(guān)閉管線33。如果需要的話,可提供單獨(dú)硬件來(lái)執(zhí)行監(jiān)視和動(dòng)態(tài)控制。 所屬領(lǐng)域的技術(shù)人員將了解,其它控制和/或指令分派算法可能是有用的。盡管上文己描述認(rèn)為是最佳模式的內(nèi)容和/或其它實(shí)例,但應(yīng)了解,可在其中作出各 種修改且可以各種形式和實(shí)例來(lái)實(shí)施本文揭示的主題,且所述教示可適用于許多應(yīng)用中, 本文僅描述了其中一些應(yīng)用。所附權(quán)利要求書希望主張屬于本教示的真正范圍內(nèi)的任何 和所有應(yīng)用、修改及變化。
權(quán)利要求
1.一種針對(duì)中央處理單元的指令管線處理的方法,其包括依次解碼指令流中的每一指令;選擇性地將第一經(jīng)解碼指令供應(yīng)到具有第一數(shù)目的一個(gè)或一個(gè)以上級(jí)的第一處理管線;通過(guò)所述第一處理管線的所述級(jí)基于所述第一經(jīng)解碼指令執(zhí)行一系列功能;選擇性地將第二經(jīng)解碼指令供應(yīng)到具有第二數(shù)目的級(jí)的第二處理管線,其中所述第二級(jí)數(shù)目高于所述第一級(jí)數(shù)目,且所述第二處理管線的性能高于所述第一處理管線的性能;以及通過(guò)所述第二處理管線的所述級(jí)基于所述第二經(jīng)解碼指令執(zhí)行一系列功能。
2. 根據(jù)權(quán)利要求l所述的方法,其中在所述通過(guò)所述第一處理管線的所述級(jí)基于所述 第一經(jīng)解碼指令執(zhí)行所述功能中的至少一些的期間,所述第二處理管線并不同時(shí)基 于所述第二經(jīng)解碼指令執(zhí)行所述功能中的任一者。
3. 根據(jù)權(quán)利要求2所述的方法,其中與所述第一經(jīng)解碼指令相比,所述第二經(jīng)解碼指 令具有較高性能要求。
4. 根據(jù)權(quán)利要求3所述的方法,其中與所述第二處理管線相比,所述第一處理管線消 耗較少電力。
5. 根據(jù)權(quán)利要求4所述的方法,其進(jìn)一步包括在通過(guò)所述第一處理管線的所述級(jí)執(zhí)行 所述功能中的所述至少一些期間切斷到達(dá)所述第二處理管線的電力。
6. 根據(jù)權(quán)利要求4所述的方法,其中所述選擇基于所述第一和第二經(jīng)解碼指令的性能要求。
7. 根據(jù)權(quán)利要求4所述的方法,其中所述選擇基于分別在第一和第二范圍內(nèi)的所述第 一和第二指令的地址。
8. —種處理器,其包括共用指令存儲(chǔ)器,其用于存儲(chǔ)處理指令; 第一處理管線,其包括第一數(shù)目的一個(gè)或一個(gè)以上級(jí);第二處理管線,其包括比所述第一數(shù)目的級(jí)多的第二數(shù)目的級(jí),所述第二處理管 線提供比所述第一處理管線高的性能;以及共用前端,其用于從所述共用指令存儲(chǔ)器獲得所述處理指令,并選擇性地將所述處理指令中的第一處理指令供應(yīng)到所述第一處理管線及將所述處理指令中的第二 處理指令供應(yīng)到所述第二處理管線。
9. 根據(jù)權(quán)利要求8所述的處理器,其中所述第二處理管線以比所述第一處理管線高的時(shí)鐘速率操作;以及 所述第一處理管線汲取比所述第二處理管線少的電力。
10. 根據(jù)權(quán)利要求8所述的處理器,其中所述共用前端包括-取出級(jí),其用于從所述共用指令存儲(chǔ)器獲得所述處理指令;以及 解碼級(jí),其用于解碼所述獲得的處理指令中的每一者并選擇性地將所述經(jīng)解碼的 處理指令中的每一者供應(yīng)到所述第一處理管線或所述第二處理管線。
11. 根據(jù)權(quán)利要求8所述的處理器,其中所述共用前端基于所述第一和第二處理指令的 相對(duì)性能要求來(lái)選擇用于供應(yīng)到所述第一處理管線的第一處理指令和用于供應(yīng)到 所述第二處理管線的第二處理指令。
12. 根據(jù)權(quán)利要求8所述的處理器,其中所述第一處理管線由包括多個(gè)級(jí)的單標(biāo)量管線 組成。
13. 根據(jù)權(quán)利要求8所述的處理器,其中所述第二處理管線包括具有相似深度的兩個(gè)或 兩個(gè)以上并行多級(jí)管線,從而形成超標(biāo)量管線。
14. 根據(jù)權(quán)利要求8所述的處理器,其中所述第一處理管線的多個(gè)級(jí)經(jīng)排列以形成單標(biāo)量管線;且所述第二處理管線的所述級(jí)經(jīng)排列以形成包括具有相似深度的兩個(gè)或兩個(gè)以上并行多級(jí)管線的超標(biāo)量管線。
15. 根據(jù)權(quán)利要求14所述的處理器,其中所述兩個(gè)并行管線中的每一者包括十二個(gè)級(jí)。
16. 根據(jù)權(quán)利要求14所述的處理器,其中所述共用前端包括取出級(jí),其耦合到所述共用指令存儲(chǔ)器以用于取出所述處理指令;以及 解碼級(jí),其用于解碼所述被取出的處理指令并將經(jīng)解碼的第一處理指令供應(yīng)到所述第一處理管線,及將經(jīng)解碼的第二處理指令供應(yīng)到所述兩個(gè)并行管線。
17. 根據(jù)權(quán)利要求8所述的處理器,其進(jìn)一步包括存儲(chǔ)器管理單元,其可共同用于所述第一處理管線的至少一個(gè)級(jí)和所述第二處理管線的至少一個(gè)級(jí);以及多個(gè)寄存器,其可共同用于所述第一處理管線的至少一個(gè)級(jí)和所述第二處理管線 的至少一個(gè)級(jí)。
18. —種處理器,其包括共用指令存儲(chǔ)器,其用于存儲(chǔ)處理指令; 一組異質(zhì)的至少兩個(gè)處理管線;以及用于分離和供應(yīng)的裝置,其基于性能要求分離從所述共用指令存儲(chǔ)器獲得的所述 處理指令流,并將需要較低性能的處理指令供應(yīng)到所述處理管線中的較低性能處理 管線,且將需要較高性能的處理指令供應(yīng)到所述處理管線中的較高性能處理管線。
19. 根據(jù)權(quán)利要求18所述的處理器,其進(jìn)一步包括可共同用于所有所述異質(zhì)處理管線 的至少一個(gè)資源。
20. 根據(jù)權(quán)利要求19所述的處理器,其中所述至少一個(gè)資源包括-存儲(chǔ)器管理單元,其提供對(duì)存儲(chǔ)器的存取;以及 多個(gè)寄存器。
21. 根據(jù)權(quán)利要求18所述的處理器,其中所述用于分離的裝置包括耦合在所述共用指 令存儲(chǔ)器與所述組異質(zhì)處理管線之間的共用前端。
22. 根據(jù)權(quán)利要求21所述的處理器,其中所述共用前端包括-取出級(jí),其耦合到所述共用指令存儲(chǔ)器以用于取出所述處理指令;以及 解碼級(jí),其用于解碼所述被取出的處理指令并將需要較低性能的經(jīng)解碼處理指令供應(yīng)到所述較低性能處理管線,且將需要較高性能的經(jīng)解碼處理指令供應(yīng)到所述較 高性能處理管線。
23. 根據(jù)權(quán)利要求18所述的處理器,其中所述較低性能處理管線汲取比所述較高性能 處理管線少的電力。
24. —種處理器,其包括指令存儲(chǔ)器,其用于存儲(chǔ)處理指令; 一組異質(zhì)處理管線,其包括(a) 第一處理管線,其具有第一多個(gè)級(jí)以提供第一水平的處理性能,以及(b) 第二處理管線,其具有在數(shù)目上大于所述第一多個(gè)級(jí)的第二多個(gè)級(jí),以 提供高于所述第一水平的處理性能的第二水平的處理性能,其中通過(guò)所述第二處 理管線進(jìn)行處理消耗比通過(guò)所述第一處理管線進(jìn)行處理消耗更多的電力; 至少一個(gè)共用處理資源,其可用于所述處理管線兩者;以及共用前端,其耦合在所述指令存儲(chǔ)器與所述組異質(zhì)處理管線之間,所述共用前端 包括 (1) 取出級(jí),其用于從所述指令存儲(chǔ)器取出指令,以及(2) 解碼級(jí),其用于解碼所述取出的指令,并選擇性地將第一經(jīng)解碼指令供 應(yīng)到所述第一處理管線,且將第二經(jīng)解碼指令供應(yīng)到所述第二處理管線。
25. 根據(jù)權(quán)利要求24所述的處理器,其中所述第一處理管線的所述級(jí)經(jīng)排列以形成單標(biāo)量管線;且所述第二處理管線的所述級(jí)經(jīng)排列以形成包括具有相似深度的兩個(gè)或兩個(gè)以上并行多級(jí)管線的超標(biāo)量管線。
26. 根據(jù)權(quán)利要求25所述的處理器,其中-所述第二經(jīng)解碼指令包括需要較高性能處理的指令,且 所述第一經(jīng)解碼指令由需要較低性能處理的指令組成。
全文摘要
一種處理器包含例如取出級(jí)和解碼級(jí)等共用指令解碼前端和一組異質(zhì)處理管線。較低性能管線具有較少級(jí),且可利用較低速度/功率電路。較高性能管線具有較多級(jí),且利用較快電路。所述管線共享其它處理器資源,例如指令高速緩沖存儲(chǔ)器、寄存器文件堆棧、數(shù)據(jù)高速緩沖存儲(chǔ)器、存儲(chǔ)器接口和系統(tǒng)內(nèi)的其它構(gòu)造的寄存器。在所揭示的實(shí)例中,控制所述處理器使得需要較高性能的處理在所述較高性能管線中運(yùn)行,而在至少一些情況下,那些需要較低性能的處理利用所述較低性能管線,且同時(shí)所述較高性能管線有效地不活動(dòng)或甚至關(guān)閉以使電力消耗最小化。所述處理器在任何給定時(shí)間的配置,也就是說(shuō)當(dāng)前正操作的管線,可經(jīng)由若干不同技術(shù)來(lái)控制。
文檔編號(hào)G06F9/38GK101160562SQ200680012923
公開日2008年4月9日 申請(qǐng)日期2006年3月3日 優(yōu)先權(quán)日2005年3月3日
發(fā)明者托馬斯·K·科洛皮, 托馬斯·安德魯·薩托里烏斯 申請(qǐng)人:高通股份有限公司