專(zhuān)利名稱(chēng):用于管線(xiàn)式處理的寄存器堆系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及一種用于管線(xiàn)式處理的寄存器堆系統(tǒng)和方法。
背景技術(shù):
技術(shù)的進(jìn)步已產(chǎn)生更小且更強(qiáng)大的個(gè)人計(jì)算裝置。舉例來(lái)說(shuō),當(dāng)前存在多種便攜 式個(gè)人計(jì)算裝置,包含無(wú)線(xiàn)計(jì)算裝置,例如便攜式無(wú)線(xiàn)電話(huà)、個(gè)人數(shù)字助理(PDA)和尋呼裝 置,其體積小、重量輕,且容易被用戶(hù)攜帶。更具體地說(shuō),便攜式無(wú)線(xiàn)電話(huà)(例如蜂窩式電話(huà) 和IP電話(huà))可經(jīng)由無(wú)線(xiàn)網(wǎng)絡(luò)傳送語(yǔ)音和數(shù)據(jù)包。另外,許多此類(lèi)無(wú)線(xiàn)電話(huà)包含并入其中的 其它類(lèi)型的裝置。舉例來(lái)說(shuō),無(wú)線(xiàn)電話(huà)還可包含數(shù)字靜物照相機(jī)、數(shù)字視頻照相機(jī)、數(shù)字記 錄器和音頻文件播放器。而且,此類(lèi)無(wú)線(xiàn)電話(huà)可處理可執(zhí)行指令,包含軟件應(yīng)用程序,例如 網(wǎng)絡(luò)瀏覽器應(yīng)用程序,其可用于訪(fǎng)問(wèn)因特網(wǎng)。由此,這些無(wú)線(xiàn)電話(huà)可包含相當(dāng)大的計(jì)算能 力。數(shù)字信號(hào)處理器(DSP)通常用于便攜式個(gè)人計(jì)算裝置(例如無(wú)線(xiàn)電話(huà))中。此類(lèi) DSP可用于提供視頻和音頻功能、用于處理接收到的數(shù)據(jù),或用于執(zhí)行其它功能。此類(lèi)DSP 可使用管線(xiàn)式和/或并行執(zhí)行單元。現(xiàn)代微處理器或DSP中的寄存器堆由于其相對(duì)大小、其數(shù)據(jù)總線(xiàn)的寬度以及其線(xiàn) 跡的長(zhǎng)度而消耗相當(dāng)多的功率。在某些處理器中,使用多個(gè)寄存器堆,且此類(lèi)寄存器堆促成 裝置的總功率消耗。另外,電路裝置的鄰近區(qū)域中的多個(gè)寄存器堆的布局可增加功率消耗 密度,且促成因電路加熱導(dǎo)致的低效。因此,需要一種增強(qiáng)的寄存器堆結(jié)構(gòu)和使用寄存器堆 的方法。
發(fā)明內(nèi)容
在一特定實(shí)施例中,揭示一種多線(xiàn)程處理器。所述處理器包含與第一線(xiàn)程相關(guān)聯(lián) 的第一寄存器堆以及與第二線(xiàn)程相關(guān)聯(lián)的第二寄存器堆。至少一個(gè)硬件資源由所述第一和 第二寄存器堆共享。另外,所述第一線(xiàn)程具有不與所述第二線(xiàn)程連續(xù)的管線(xiàn)存取位置。在另一特定實(shí)施例中,所述處理器包含與第一指令執(zhí)行流相關(guān)聯(lián)的第一寄存器堆 以及與第二指令執(zhí)行流相關(guān)聯(lián)的第二寄存器堆。所述第一和第二執(zhí)行流以連續(xù)方式進(jìn)行管 線(xiàn)輸送,且第一寄存器堆相對(duì)于第二寄存器堆不在鄰近位置中以允許在第一寄存器堆與第 三寄存器堆之間共享硬件資源。在另一特定實(shí)施例中,所述處理器包含用以執(zhí)行第一指令流的第一執(zhí)行管線(xiàn)、用 以執(zhí)行第二指令流的第二執(zhí)行管線(xiàn)、與第一指令流相關(guān)聯(lián)的第一寄存器堆以及與第二指令 流相關(guān)聯(lián)的第二寄存器堆。所述第一和第二指令流以對(duì)第一和第二寄存器堆的非連續(xù)存取 配置在第一和第二執(zhí)行管線(xiàn)內(nèi),以允許第一和第二寄存器堆共享至少一個(gè)硬件資源。在另一特定實(shí)施例中,揭示一種存取多個(gè)寄存器堆的方法。所述方法包含從第一 寄存器堆讀取數(shù)據(jù),同時(shí)從第二寄存器堆讀取數(shù)據(jù)。所述第一寄存器堆與第一指令流相關(guān) 聯(lián),且所述第二寄存器堆與第二指令流相關(guān)聯(lián)。在處理器的執(zhí)行管線(xiàn)中,第一指令流與第二指令流是連續(xù)的,且第一寄存器堆相對(duì)于第二寄存器堆不在連續(xù)位置中。在另一特定實(shí)施例中,揭示一種選擇寄存器堆以供存取的方法。所述方法包含選擇性地啟用第一組寄存器堆中的至少一者以供存取,與此同時(shí)同時(shí)啟用第二組寄存器堆中 的至少一者以供存取。所述方法進(jìn)一步包含從所述第一組寄存器堆中的所述至少一者向 與第一指令流相關(guān)聯(lián)的第一指令單元提供數(shù)據(jù);從所述第二組寄存器堆中的所述至少一者 向與第二指令流相關(guān)聯(lián)的第二指令單元提供數(shù)據(jù);以及使用至少一個(gè)管線(xiàn)式執(zhí)行單元來(lái)執(zhí) 行所述第一和第二指令流。所述第一組寄存器堆共享第一組硬件資源,且所述第二組寄存 器堆共享第二組硬件資源。用于管線(xiàn)式處理的寄存器堆系統(tǒng)和方法的實(shí)施例所提供的一個(gè)特定優(yōu)點(diǎn)體現(xiàn)在 降低的制造成本、操作期間降低的功率密度或兩者。在審閱整個(gè)申請(qǐng)案之后,將明白本發(fā)明的其它方面、優(yōu)點(diǎn)和特征,整個(gè)申請(qǐng)案包含 以下部分
具體實(shí)施方式
和權(quán)利要求書(shū)。
圖1是包含用于管線(xiàn)式處理的寄存器堆系統(tǒng)的處理器的實(shí)施例的框圖;圖2是用于管線(xiàn)式處理的寄存器堆系統(tǒng)的物理布局的實(shí)施例的一部分的框圖;圖3是描繪可使用用于管線(xiàn)式處理的寄存器堆系統(tǒng)來(lái)執(zhí)行的管線(xiàn)式處理操作的 概圖;圖4是使用用于管線(xiàn)式處理的寄存器堆的方法的實(shí)施例的流程圖;以及圖5是包含用于管線(xiàn)式處理的寄存器堆系統(tǒng)的便攜式通信裝置的框圖。
具體實(shí)施例方式參看圖1,揭示處理器100。在特定說(shuō)明性實(shí)施例中,處理器100可為多線(xiàn)程數(shù)字 信號(hào)處理器。處理器100包含具有指令隊(duì)列134的存儲(chǔ)器102、存儲(chǔ)器總線(xiàn)107、定序器單 元104、多個(gè)執(zhí)行單元108到114、第一總線(xiàn)118、具有用以共享硬件資源的結(jié)構(gòu)的寄存器堆 116,以及第二總線(xiàn)120。定序器104耦合到控制寄存器103。存儲(chǔ)器102耦合到第二總線(xiàn) 120,且定序器104也耦合到第二總線(xiàn)120。在特定實(shí)施例中,存儲(chǔ)器總線(xiàn)107可為六十四(64)位總線(xiàn),且定序器104可經(jīng)配 置以從存儲(chǔ)器102檢索指令。在特定說(shuō)明性實(shí)施例中,每一指令可具有三十二(32)位的長(zhǎng) 度。定序器104經(jīng)由第一路徑(時(shí)隙0)耦合到第一指令執(zhí)行單元108、經(jīng)由第二路徑(時(shí) 隙1)耦合到第二指令執(zhí)行單元110、經(jīng)由第三路徑(時(shí)隙2)耦合到第三指令執(zhí)行單元112, 且經(jīng)由第四路徑(時(shí)隙3)耦合到第四指令執(zhí)行單元114。每一指令執(zhí)行單元108、110、112 和114可經(jīng)由第一總線(xiàn)118耦合到一組經(jīng)構(gòu)造寄存器堆116。寄存器堆116也可經(jīng)由第二 總線(xiàn)120耦合到定序器104且耦合到存儲(chǔ)器102。在特定實(shí)施例中,存儲(chǔ)器102可為內(nèi)容可尋址存儲(chǔ)器(CAM),其包含第一指令高速 緩沖存儲(chǔ)器122、第二指令高速緩沖存儲(chǔ)器124、第三指令高速緩沖存儲(chǔ)器126、第四指令高 速緩沖存儲(chǔ)器128、第五指令高速緩沖存儲(chǔ)器130和第六指令高速緩沖存儲(chǔ)器132。在操作 期間,定序器104可存取指令高速緩沖存儲(chǔ)器122、124、126、128、130和132中的每一者。 另外,在特定實(shí)施例中,每一指令高速緩沖存儲(chǔ)器122、124、126、128、130和132包含多個(gè)指令、用于每一指令的指令操縱數(shù)據(jù)以及用于每一指令的指令預(yù)解碼數(shù)據(jù)。存儲(chǔ)器102中的指令隊(duì)列134可包含用于每一指令對(duì)應(yīng)高速緩沖存儲(chǔ)器122、124、126、128、130和132的指 令隊(duì)列 136、138、140、142、144 和 146。寄存器堆116包含第一組寄存器堆和第二組寄存器堆。所述第一組寄存器堆共享 至少一個(gè)第一硬件資源,且所述第二組寄存器堆共享至少一個(gè)第二硬件資源。實(shí)例共享硬 件資源包含數(shù)據(jù)讀取端口、數(shù)據(jù)寫(xiě)入端口、數(shù)據(jù)讀取總線(xiàn)、數(shù)據(jù)寫(xiě)入總線(xiàn)、存取邏輯和布線(xiàn) 連接。在特定實(shí)施例中,寄存器堆116包含六個(gè)不同寄存器堆,其中所述六個(gè)寄存器堆中的 每一者對(duì)應(yīng)于存儲(chǔ)器102內(nèi)的相應(yīng)指令高速緩沖存儲(chǔ)器122、124、126、128、130和132中的 一者。另外,在特定實(shí)施例中,所述寄存器堆中的每一者可具有相同構(gòu)造,且可包含相等數(shù) 目的數(shù)據(jù)操作數(shù)和地址操作數(shù)。圖1說(shuō)明多線(xiàn)程處理器100可進(jìn)一步包含耦合到定序器104的控制寄存器103。 如圖所示,控制寄存器103可為獨(dú)立寄存器。在多線(xiàn)程處理器100的操作期間,指令由定序器104從存儲(chǔ)器102取出、發(fā)送到選 定指令執(zhí)行單元108、110、112和114,且在指令執(zhí)行單元108、110、112和114處執(zhí)行。來(lái)自 在每一指令執(zhí)行單元108、110、112和114處執(zhí)行的指令的結(jié)果可寫(xiě)入到總寄存器堆116中 的一者。在特定實(shí)施例中,處理器100能夠執(zhí)行多個(gè)程序線(xiàn)程。另外,在特定實(shí)施例中,處 理器100可經(jīng)配置以在交錯(cuò)基礎(chǔ)上執(zhí)行至多達(dá)六個(gè)不同程序線(xiàn)程。所述程序線(xiàn)程中的每一 者可包括一指令流,且可使用執(zhí)行單元108、110、112或114中的一者或一者以上以管線(xiàn)式 方式來(lái)執(zhí)行每一指令流。參看圖2,用于管線(xiàn)式處理的寄存器堆系統(tǒng)的物理布局的實(shí)施例的一部分經(jīng)描繪 且概括表示為200。系統(tǒng)200包含第一組寄存器堆202和第二組寄存器堆204。第一組寄 存器堆202包含寄存器堆Rtl (206)、R2 (208)和R4 (210)。第二組寄存器堆204包含R3 (212)、 R5 (214)和R1 (216)。第一總線(xiàn)220耦合到R0 (206)、R2 (208)和R4 (210)中的每一者,以提供 對(duì)第一組寄存器堆202的寄存器堆中的每一者的讀取存取、寫(xiě)入存取或其任意組合。第二 總線(xiàn)230耦合到R3(212)、R5 (214)和R1 (216)中的每一者,以提供對(duì)第二組寄存器堆204的 寄存器堆中的每一者的讀取存取、寫(xiě)入存取或其任意組合。存取總線(xiàn)204耦合到第一總線(xiàn) 220和第二總線(xiàn)230。存取總線(xiàn)240進(jìn)一步耦合到一個(gè)或一個(gè)以上執(zhí)行單元260。第一啟用 電路250耦合到第一組寄存器堆202的每一寄存器堆。第二啟用電路252耦合到第二組寄 存器堆204的每一寄存器堆。在特定實(shí)施例中,第一組寄存器堆202中和第二組寄存器堆204中的每一寄存器 堆與獨(dú)立的指令執(zhí)行流相關(guān)聯(lián)。舉例來(lái)說(shuō),Rtl(206)可與第一執(zhí)行流相關(guān)聯(lián),R1 (216)可與第 二指令執(zhí)行流相關(guān)聯(lián),R2 (208)可與第三指令執(zhí)行流相關(guān)聯(lián),R3 (212)可與第四指令執(zhí)行流 相關(guān)聯(lián),R4 (210)可與第五指令執(zhí)行流相關(guān)聯(lián),且R5 (214)可與第六指令執(zhí)行流相關(guān)聯(lián)。在 說(shuō)明性實(shí)施例中,指令執(zhí)行流中的每一者可對(duì)應(yīng)于多線(xiàn)程處理器的特定線(xiàn)程。在另一實(shí)施 例中,指令執(zhí)行流中的每一者可進(jìn)行管線(xiàn)輸送且可交錯(cuò)。指令流可包含超長(zhǎng)指令字(Very Long Instruction Word,VLIff)型指令、超標(biāo)量型指令、可進(jìn)行管線(xiàn)輸送的其它類(lèi)型的指 令,或其任意組合。在特定實(shí)施例中,連續(xù)管線(xiàn)式指令執(zhí)行流與非鄰近寄存器堆206到216相關(guān)聯(lián)。舉 例來(lái)說(shuō),與第一執(zhí)行流相關(guān)聯(lián)的Rtl(206)和與第二執(zhí)行流相關(guān)聯(lián)的R1 (216)具有連續(xù)管線(xiàn)存取位置,但定位在非鄰近物理位置處。另外,物理上鄰近的寄存器堆206到216具有非連續(xù) 的管線(xiàn)存取位置。舉例來(lái)說(shuō),Rq(206)物理上鄰近于R2 (208),但與第一執(zhí)行流相關(guān)聯(lián),而R2 與第三執(zhí)行流相關(guān)聯(lián),第三執(zhí)行流相對(duì)于第一執(zhí)行流具有非連續(xù)管線(xiàn)存取位置。在說(shuō)明性實(shí)施例中,當(dāng)?shù)谝缓偷诙拇嫫鞫盐锢砩喜秽徑鼤r(shí),與第一寄存器堆 (例如Rtl(206))相關(guān)聯(lián)的第一執(zhí)行流以及與第二寄存器堆(例如R1 (216))相關(guān)聯(lián)的第二 執(zhí)行流可具有連續(xù)的管線(xiàn)存取。當(dāng)?shù)谌龍?zhí)行流相對(duì)于第一執(zhí)行流不連續(xù)地管線(xiàn)輸送時(shí),與 第三執(zhí)行流相關(guān)聯(lián)的第三寄存器堆(例如R2 (208))可物理上鄰近于第一寄存器堆。在特定實(shí)施例中,對(duì)多個(gè)寄存器堆的數(shù)據(jù)存取可同時(shí)發(fā)生。舉例來(lái)說(shuō),使用 R0(206)在第一指令執(zhí)行流處執(zhí)行的數(shù)據(jù)讀取指令可與使用R1 (216)在第二指令流處執(zhí)行 的數(shù)據(jù)讀取操作同時(shí)地執(zhí)行數(shù)據(jù)讀取操作。在特定實(shí)施例中,指令執(zhí)行流可包含一個(gè)或一個(gè)以上預(yù)定義的操作序列。舉例來(lái) 說(shuō),指令流可包含兩個(gè)連續(xù)從相關(guān)聯(lián)寄存器堆讀取數(shù)據(jù)的操作,接著是一個(gè)或一個(gè)以上數(shù) 據(jù)執(zhí)行操作。因此,可同時(shí)從與連續(xù)指令執(zhí)行流相關(guān)聯(lián)的兩個(gè)寄存器堆讀取數(shù)據(jù)。所述組 寄存器堆202和204經(jīng)布置以使得與連續(xù)指令執(zhí)行流相關(guān)聯(lián)的寄存器堆定位在不同組的寄 存器堆202和204中。明確地說(shuō),所述組寄存器堆202和204通過(guò)偶數(shù)編號(hào)的指令執(zhí)行流 和奇數(shù)編號(hào)的指令執(zhí)行流來(lái)分組。第一組寄存器堆202的寄存器堆Rtl (206)、R2 (208)和R4 (210)與相對(duì)于彼此非連續(xù) 執(zhí)行的相應(yīng)指令執(zhí)行流相關(guān)聯(lián)。類(lèi)似地,第二組寄存器堆204的寄存器堆R3 (212) ,R5(214) 和隊(duì)(216)也與相對(duì)于彼此非連續(xù)執(zhí)行的相應(yīng)指令執(zhí)行流相關(guān)聯(lián)。因此,指令執(zhí)行流的同時(shí) 數(shù)據(jù)存取操作不會(huì)在第一組寄存器堆202間所共享的硬件資源上或在第二組寄存器堆204 間所共享的硬件資源上產(chǎn)生沖突。在特定實(shí)施例中,所述第一組寄存器堆202經(jīng)布置以共享第一組硬件資源,且所 述第二組寄存器堆204經(jīng)布置以共享第二組硬件資源。舉例來(lái)說(shuō),第一組寄存器堆202共 享第一啟用電路250。另外,第一組寄存器堆202共享第一共用數(shù)據(jù)存取資源,包含一個(gè)或 一個(gè)以上邏輯元件(例如數(shù)據(jù)讀取邏輯或數(shù)據(jù)寫(xiě)入邏輯),以及與第一總線(xiàn)220相關(guān)聯(lián)的總 線(xiàn)布線(xiàn)。第一組寄存器堆202還可共享其它數(shù)據(jù)線(xiàn)、控制線(xiàn)、其它硬件資源或其任意組合。 類(lèi)似地,第二組寄存器堆204共享第二啟用電路252。另外,第二組寄存器堆204共享第二 共用數(shù)據(jù)存取資源,包含一個(gè)或一個(gè)以上邏輯元件(例如數(shù)據(jù)讀取邏輯或數(shù)據(jù)寫(xiě)入邏輯), 以及與第二總線(xiàn)230相關(guān)聯(lián)的總線(xiàn)布線(xiàn)。第二組寄存器堆204還可共享其它數(shù)據(jù)線(xiàn)、控制 線(xiàn)、其它硬件資源或其任意組合。在特定實(shí)施例中,硬件資源可在第一組寄存器堆202內(nèi)共享,但此類(lèi)硬件資源不 可由第二組寄存器堆204的寄存器堆共享。類(lèi)似地,硬件資源可在第二組寄存器堆204內(nèi)共 享,但不可由第一組寄存器堆202的寄存器堆共享。舉例來(lái)說(shuō),第一總線(xiàn)220可包含由第一 寄存器堆(例如1^(206))與第三寄存器堆(例如R2 (208))共享的第一數(shù)據(jù)讀取總線(xiàn),但第 一總線(xiàn)220不由第二寄存器堆(例如R1 (216))或第四寄存器堆(例如R3(212))共享。類(lèi) 似地,第二總線(xiàn)230可包含由第二寄存器堆禮(216)與第四寄存器堆民(212)共享的第二數(shù) 據(jù)讀取總線(xiàn),但第二總線(xiàn)230不由第一寄存器堆Rtl(206)和第三寄存器堆R2(208)共享。因 此,當(dāng)連續(xù)執(zhí)行流執(zhí)行同時(shí)數(shù)據(jù)讀取操作(例如對(duì)第一和第二寄存器堆、第二和第三寄存 器堆或第三和第四寄存器堆的讀取存取)時(shí),可利用第一數(shù)據(jù)讀取總線(xiàn)和第二數(shù)據(jù)讀取總線(xiàn)兩者,且不引入沖突。第一組寄存器堆202和第二組寄存器堆204物理上布置在單獨(dú)的區(qū)中,以減少多 個(gè)指令執(zhí)行流的操作的執(zhí)行期間的功率密度。舉例來(lái)說(shuō),位于第一區(qū)中的第一組寄存器堆 202和位于第二區(qū)中的第二組寄存器堆204經(jīng)布置以減少在與連續(xù)指令執(zhí)行流相關(guān)聯(lián)的寄 存器堆處同時(shí)發(fā)生的數(shù)據(jù)讀取期間的總功率耗散。第一區(qū)可位于第一功率耗散區(qū)域中,且 第二區(qū)可位于第二功率耗散區(qū)域中,使得包含第一和第二區(qū)兩者的區(qū)域具有比其中每一寄 存器堆鄰近于至少一個(gè)其它寄存器堆的相當(dāng)區(qū)域低的功率密度。為了說(shuō)明,在1^(206)和 R1 (216) 處執(zhí)行的同時(shí)數(shù)據(jù)讀取在物理上分開(kāi)的非鄰近位置處發(fā)生,從而與在物理上鄰近 的寄存器堆處執(zhí)行的數(shù)據(jù)讀取相比,降低總功率密度,且改進(jìn)芯片性能。作為另一實(shí)例,在 R3(212)和R4(210)處的同時(shí)數(shù)據(jù)讀取在第一區(qū)和第二區(qū)的物理上分開(kāi)的非鄰近位置處發(fā) 生,從而降低總功率密度,且改進(jìn)芯片性能。在特定實(shí)施例中,系統(tǒng)200的配置通過(guò)配置寄存器堆以使得能夠在每一組寄存器 堆202和204間共享硬件資源(通過(guò)減少或消除所共享資源上的沖突),來(lái)實(shí)現(xiàn)較低制造成 本。另外,由于個(gè)別寄存器堆相對(duì)于對(duì)寄存器堆中的每一者的連續(xù)存取的次序的物理位置 而獲得性能益處,從而實(shí)現(xiàn)降低的功率密度和改進(jìn)的芯片性能。參看圖3,可用寄存器堆系統(tǒng)執(zhí)行的管線(xiàn)式處理操作的說(shuō)明性實(shí)施例經(jīng)描繪且概 括表示為300。以具有指示連續(xù)時(shí)間周期!^!^!^!^!^和!^的列且具有指示管線(xiàn)式指令 流1到6的行的表格格式來(lái)描繪操作300。使用指令流1作為說(shuō)明性實(shí)例,在T1處執(zhí)行第 一讀取操作R/,接著在T2處執(zhí)行第二讀取操作R2^在T3處執(zhí)行第一執(zhí)行操作E11,接著在 T4處執(zhí)行第二執(zhí)行操作E21,且在T5處執(zhí)行第三執(zhí)行操作E/。在T6處執(zhí)行數(shù)據(jù)寫(xiě)入操作W1。 同樣,指令流2在T2處執(zhí)行第一讀取操作R12,在T3處執(zhí)行第二讀取操作R22,在T4處執(zhí)行一 執(zhí)行操作E12,在T5處執(zhí)行一執(zhí)行操作E22,且在T6處執(zhí)行一執(zhí)行操作E32。因?yàn)樽x取操作在管線(xiàn)式處理期間的連續(xù)時(shí)間周期(例如流1的T1和T2)處執(zhí)行, 所以讀取操作針對(duì)具有連續(xù)管線(xiàn)存取的流同時(shí)執(zhí)行。舉例來(lái)說(shuō),在時(shí)間周期T2期間,流1執(zhí) 行讀取操作R21,同時(shí)流2執(zhí)行讀取操作禮2。作為另一實(shí)例,在第三時(shí)間周期T3期間,流2 執(zhí)行讀取操作R22,同時(shí)流3執(zhí)行讀取操作R/。類(lèi)似地,因?yàn)槊恳恢噶顖?zhí)行流包含三個(gè)連續(xù) 執(zhí)行步驟,所以多個(gè)流同時(shí)執(zhí)行執(zhí)行步驟。舉例來(lái)說(shuō),在時(shí)間周期T6處,流2正處理執(zhí)行操 作E32,流3正處理執(zhí)行操作E23,且流4正處理執(zhí)行操作ΕΛ在一實(shí)施例中,指令流1到6可經(jīng)由管線(xiàn)式處理器的多個(gè)執(zhí)行管線(xiàn)來(lái)執(zhí)行。在說(shuō) 明性實(shí)施例中,指令流1到6可由交錯(cuò)多線(xiàn)程處理器執(zhí)行。在特定實(shí)施例中,指令流1到6 中的每一者可為超長(zhǎng)指令字(VLIW)型指令。在另一實(shí)施例中,指令流1到6中的每一者可 為超標(biāo)量型指令。在特定實(shí)施例中,用于管線(xiàn)式處理的寄存器堆系統(tǒng)(例如圖2的系統(tǒng)200)可使得 能夠使用在與流1到6相關(guān)聯(lián)的寄存器堆間共享的硬件資源。舉例來(lái)說(shuō),因?yàn)橥瑫r(shí)數(shù)據(jù)讀 取操作僅在與連續(xù)流相關(guān)聯(lián)的寄存器堆處執(zhí)行,所以寄存器堆可布置成群組,每一群組共 享一單獨(dú)讀取數(shù)據(jù)總線(xiàn),使得可在不引入沖突的情況下執(zhí)行同時(shí)讀取。作為另一實(shí)例,因?yàn)?不執(zhí)行同時(shí)數(shù)據(jù)寫(xiě)入操作,所以可使用單個(gè)數(shù)據(jù)寫(xiě)入總線(xiàn)來(lái)在第一寄存器堆處為第一指令 流寫(xiě)入數(shù)據(jù),且在第二寄存器堆處為與第一指令流連續(xù)的第二指令流寫(xiě)入數(shù)據(jù),而不引入 寫(xiě)入沖突。
參看圖4,使用用于管線(xiàn)式處理的寄存器堆的方法的說(shuō)明性實(shí)施例經(jīng)描繪且概括 表示為400。在402處,選擇性地啟用第一組寄存器堆中的至少一者以供存取,與此同時(shí)同 時(shí)啟用第二組寄存器堆中的至少一者以供存取。舉例來(lái)說(shuō),寄存器堆民(208)可與寄存器堆 R1 (216)同時(shí)存取。在特定實(shí)施例中,所述第一組寄存器堆共享第一組硬件資源,且所述第 二組寄存器堆共享第二組硬件資源。舉例來(lái)說(shuō),第一組硬件資源可包含數(shù)據(jù)讀取總線(xiàn)。在 說(shuō)明性實(shí)施例中,第一組寄存器堆可為第一組寄存器堆202,且第二組寄存器堆可為圖2的 第二組寄存器堆204,或圖1中描繪的執(zhí)行單元108到114。
在404處,可從第一組寄存器堆中的至少一者向與第一指令流相關(guān)聯(lián)的第一指令 單元提供數(shù)據(jù)。在406處,可從第二組寄存器堆中的至少一者向與第二指令流相關(guān)聯(lián)的第 二指令單元提供數(shù)據(jù)(在406處)。在408處,可使用至少一個(gè)管線(xiàn)式執(zhí)行單元來(lái)執(zhí)行第一 和第二指令流。在特定實(shí)施例中,第一指令單元、第二指令單元和執(zhí)行單元可為經(jīng)配置以處 理管線(xiàn)式執(zhí)行流的執(zhí)行單元。在說(shuō)明性實(shí)施例中,執(zhí)行單元為圖2中描繪的執(zhí)行單元260。在說(shuō)明性實(shí)施例中,指令可在管線(xiàn)式執(zhí)行單元中以預(yù)定次序執(zhí)行。在特定實(shí)施例 中,所述指令中的每一者可作為超長(zhǎng)指令字(VLIW)型指令在管線(xiàn)式執(zhí)行單元中執(zhí)行。在另 一實(shí)施例中,所述指令中的每一者可作為超標(biāo)量型指令在管線(xiàn)式執(zhí)行單元中執(zhí)行。圖5是使用用于管線(xiàn)式處理的寄存器堆系統(tǒng)的便攜式通信裝置的框圖。便攜式通 信裝置500包含芯片上系統(tǒng)522,其包含管線(xiàn)式處理器,例如數(shù)字信號(hào)處理器510。數(shù)字信 號(hào)處理器510包含具有共享硬件資源的寄存器堆570。舉例來(lái)說(shuō),處理器510和具有共享硬 件資源的寄存器堆570可包含圖1或圖2的系統(tǒng)的若干部分,且可利用圖3或圖4中描述 的操作,或其任意組合。在特定說(shuō)明性實(shí)施例中,具有共享硬件資源的寄存器堆570可實(shí)現(xiàn) 降低的功率密度、降低的制造成本或兩者,以支持管線(xiàn)式處理器,例如數(shù)字信號(hào)處理器510。在特定實(shí)施例中,可通過(guò)配置具有共享硬件資源的寄存器堆570,使得鄰近寄存器 堆不被連續(xù)指令執(zhí)行流存取以用于數(shù)據(jù)操作,從而防止鄰近寄存器堆位置處的同時(shí)數(shù)據(jù)存 取操作,來(lái)降低處理期間的功率密度。同樣,可通過(guò)將具有共享硬件資源的寄存器堆570 分成至少像存在同一類(lèi)型的同時(shí)數(shù)據(jù)存取操作一樣多組的寄存器堆,來(lái)降低制造成本。舉 例來(lái)說(shuō),如果兩個(gè)管線(xiàn)式指令執(zhí)行流在相關(guān)聯(lián)的寄存器堆處同時(shí)執(zhí)行數(shù)據(jù)讀取操作,如圖3 中所描繪,那么可定義至少兩組寄存器堆,每一組寄存器堆在所述組的寄存器堆間共享數(shù) 據(jù)存取硬件資源,而不產(chǎn)生沖突,例如圖2中所描繪。作為另一實(shí)例,如果三個(gè)管線(xiàn)式指令 執(zhí)行流在相關(guān)聯(lián)的寄存器堆處同時(shí)執(zhí)行數(shù)據(jù)讀取操作,那么可定義至少三組寄存器堆,每 一組寄存器堆在所述組的寄存器堆間共享數(shù)據(jù)存取硬件資源,而不在每一組內(nèi)產(chǎn)生沖突。圖5還展示顯示器控制器526,其耦合到數(shù)字信號(hào)處理器510且耦合到顯示器 528。此外,輸入裝置530耦合到數(shù)字信號(hào)處理器510。另外,存儲(chǔ)器532耦合到數(shù)字信號(hào)處 理器510。編碼器/解碼器(CODEC) 534也可耦合到數(shù)字信號(hào)處理器510。揚(yáng)聲器536和麥 克風(fēng)538可耦合到CODEC 534。圖5還指示無(wú)線(xiàn)控制器540可耦合到數(shù)字信號(hào)處理器510且耦合到無(wú)線(xiàn)天線(xiàn)542。 在特定實(shí)施例中,電源544耦合到芯片上系統(tǒng)522。此外,在特定實(shí)施例中,如圖5中所說(shuō) 明,顯示器528、輸入裝置530、揚(yáng)聲器536、麥克風(fēng)538、無(wú)線(xiàn)天線(xiàn)542和電源544在芯片上 系統(tǒng)522外部。然而,每一者均耦合到芯片上系統(tǒng)522的組件。在特定說(shuō)明性實(shí)施例中,具有共享硬件資源的寄存器堆570可用于增強(qiáng)便攜式通信裝置500的總體性能。明確地說(shuō),具有共享硬件資源的寄存器堆570可降低功率密度,從 而實(shí)現(xiàn)較快的處理速度,且可通過(guò)共享共用硬件來(lái)降低制造成本,而不使裝置500的性能 降級(jí)。技術(shù)人員將進(jìn)一步了解,結(jié)合本文所揭示的實(shí)施例而描述的各種說(shuō)明性邏輯區(qū) 塊、配置、模塊、電路和算法步驟可實(shí)施為電子硬件、計(jì)算機(jī)軟件或上述兩者的組合。為了清 楚地說(shuō)明硬件與軟件的這種可互換性,上文已大體上根據(jù)各種說(shuō)明性組件、區(qū)塊、配置、模 塊、電路和步驟的功能性來(lái)描述各種說(shuō)明性組件、區(qū)塊、配置、模塊、電路和步驟。將此類(lèi)功 能性實(shí)施為硬件還是軟 件取決于特定應(yīng)用和強(qiáng)加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。熟練的技術(shù)人員 可針對(duì)每個(gè)特定應(yīng)用以不同的方式來(lái)實(shí)施所描述的功能性,但此類(lèi)實(shí)施決策不應(yīng)被解釋為 導(dǎo)致與本發(fā)明范圍的偏離。結(jié)合本文所揭示的實(shí)施例而描述的方法或算法的步驟可直接以硬件、以由處理器 執(zhí)行的軟件模塊或以上述兩者的組合的形式體現(xiàn)。軟件模塊可駐存在RAM存儲(chǔ)器、快閃存 儲(chǔ)器、ROM存儲(chǔ)器、PROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤(pán)、可裝卸盤(pán)、 CD-ROM或此項(xiàng)技術(shù)中已知的任何其它形式的存儲(chǔ)媒體中。示范性存儲(chǔ)媒體耦合到處理器, 使得處理器可從存儲(chǔ)媒體讀取信息且將信息寫(xiě)入到存儲(chǔ)媒體。在替代方案中,存儲(chǔ)媒體可 與處理器成一體式。處理器和存儲(chǔ)媒體可駐存在ASIC中。ASIC可駐存在計(jì)算裝置或用戶(hù) 終端中。在替代方案中,處理器和存儲(chǔ)媒體可作為離散組件駐存在計(jì)算裝置或用戶(hù)終端中。提供對(duì)所揭示實(shí)施例的先前描述,以使所屬領(lǐng)域的技術(shù)人員能夠制作或使用所揭 示的實(shí)施例。所屬領(lǐng)域的技術(shù)人員將容易明白對(duì)這些實(shí)施例的各種修改,且本文所界定的 一般原理可在不脫離本發(fā)明的精神或范圍的情況下應(yīng)用于其它實(shí)施例。因此,本發(fā)明不希 望限于本文所展示的實(shí)施例,而是應(yīng)被賦予與如所附權(quán)利要求書(shū)所界定的原理和新穎特征 一致的最寬范圍。
權(quán)利要求
一種多線(xiàn)程處理器,其包括與第一線(xiàn)程相關(guān)聯(lián)的第一寄存器堆;與第二線(xiàn)程相關(guān)聯(lián)的第二寄存器堆;以及由所述第一和第二寄存器堆共享的硬件資源;其中所述第一線(xiàn)程具有與所述第二線(xiàn)程不連續(xù)的管線(xiàn)存取位置。
2.根據(jù)權(quán)利要求1所述的處理器,其中所述第一寄存器堆物理上鄰近于所述第二寄存 器堆。
3.根據(jù)權(quán)利要求1所述的處理器,其中所述第一寄存器堆物理上不鄰近于所述第二寄 存器堆,且其中所述第一和第二寄存器堆在所述管線(xiàn)中具有連續(xù)存取。
4.根據(jù)權(quán)利要求1所述的處理器,其中所述硬件資源包含邏輯元件和總線(xiàn)布線(xiàn)。
5.根據(jù)權(quán)利要求4所述的處理器,其中所述邏輯元件包含邏輯讀取元件。
6.根據(jù)權(quán)利要求4所述的處理器,其中所述邏輯元件包含邏輯寫(xiě)入元件。
7.根據(jù)權(quán)利要求1所述的處理器,其中第一組寄存器堆位于第一區(qū)中,且其中第二組 寄存器堆位于與所述第一區(qū)分開(kāi)的第二區(qū)中,其中所述第一區(qū)中的所述第一寄存器堆可使 用第一數(shù)據(jù)存取資源,而所述第二區(qū)中的所述第二寄存器堆同時(shí)使用第二數(shù)據(jù)存取資源。
8.根據(jù)權(quán)利要求7所述的處理器,其中所述第一數(shù)據(jù)存取資源包含第一數(shù)據(jù)讀取總 線(xiàn),且其中所述第二數(shù)據(jù)存取資源包含第二數(shù)據(jù)讀取總線(xiàn)。
9.根據(jù)權(quán)利要求7所述的處理器,其中所述第一數(shù)據(jù)存取資源是所述第一區(qū)中的所述 寄存器堆中的每一者間的共享資源。
10.根據(jù)權(quán)利要求7所述的處理器,其中所述第二數(shù)據(jù)存取資源是所述第二組寄存器 堆的每一寄存器堆間的共享資源。
11.根據(jù)權(quán)利要求7所述的處理器,其中所述第一組寄存器堆對(duì)應(yīng)于偶數(shù)編號(hào)的線(xiàn)程, 且其中所述第二組寄存器堆對(duì)應(yīng)于奇數(shù)編號(hào)的線(xiàn)程。
12.根據(jù)權(quán)利要求7所述的處理器,其中所述第一數(shù)據(jù)存取資源包含包括第一數(shù)據(jù)寫(xiě) 入總線(xiàn)的第一數(shù)據(jù)寫(xiě)入資源,且其中所述第二數(shù)據(jù)存取資源包含包括第二數(shù)據(jù)寫(xiě)入總線(xiàn)的 第二數(shù)據(jù)寫(xiě)入資源。
13.根據(jù)權(quán)利要求7所述的處理器,其中所述第一區(qū)位于第一功率耗散區(qū)域中,且所述 第二區(qū)位于第二功率耗散區(qū)域中,使得包含所述第一和第二區(qū)兩者的區(qū)域具有比其中每一 寄存器堆鄰近于至少一個(gè)其它寄存器堆的相當(dāng)區(qū)域低的功率密度。
14.一種處理器,其包括與第一指令執(zhí)行流相關(guān)聯(lián)的第一寄存器堆;以及與第二指令執(zhí)行流相關(guān)聯(lián)的第二寄存器堆;其中所述第一和第二執(zhí)行流以連續(xù)方式進(jìn)行管線(xiàn)輸送,且其中所述第一寄存器堆相對(duì) 于所述第二寄存器堆位于非鄰近位置中,以允許在所述第一寄存器堆與第三寄存器堆之間 共享硬件資源。
15.根據(jù)權(quán)利要求14所述的處理器,其中所述第三寄存器堆與第三指令執(zhí)行流相關(guān) 聯(lián),所述第三指令執(zhí)行流相對(duì)于所述第一指令執(zhí)行流不連續(xù)地管線(xiàn)輸送。
16.根據(jù)權(quán)利要求14所述的處理器,其中所述第一寄存器堆物理上鄰近于所述第三寄 存器堆。
17.根據(jù)權(quán)利要求14所述的處理器,其中所述硬件資源包含邏輯元件和總線(xiàn)布線(xiàn)。
18.根據(jù)權(quán)利要求14所述的處理器,其中所述硬件資源包含不與所述第二寄存器堆共 享的第一數(shù)據(jù)讀取總線(xiàn)。
19.根據(jù)權(quán)利要求18所述的處理器,其進(jìn)一步包括第四寄存器堆;以及第二數(shù)據(jù)讀取總線(xiàn),其由所述第二寄存器堆和所述第四寄存器堆共享,但不由所述第 一寄存器堆或所述第三寄存器堆共享。
20.—種處理器,其包括用以執(zhí)行第一指令流的第一執(zhí)行管線(xiàn);用以執(zhí)行第二指令流的第二執(zhí)行管線(xiàn);與所述第一指令流相關(guān)聯(lián)的第一寄存器堆;與所述第二指令流相關(guān)聯(lián)的第二寄存器堆;其中所述第一和第二指令流以非連續(xù)存取所述第一和第二寄存器堆的方式配置在所 述第一和第二執(zhí)行管線(xiàn)內(nèi),以使得所述第一和第二寄存器堆能夠共享至少一個(gè)硬件資源。
21.根據(jù)權(quán)利要求20所述的處理器,其中所述至少一個(gè)硬件資源包含數(shù)據(jù)讀取總線(xiàn)。
22.根據(jù)權(quán)利要求20所述的處理器,其中指令在所述第一執(zhí)行管線(xiàn)中以預(yù)定次序執(zhí)行。
23.根據(jù)權(quán)利要求20所述的處理器,其中在所述第一執(zhí)行管線(xiàn)中執(zhí)行的所述指令中的 每一者是超長(zhǎng)指令字型指令。
24.根據(jù)權(quán)利要求20所述的處理器,其中在所述第一執(zhí)行管線(xiàn)中執(zhí)行的所述指令中的 每一者是超標(biāo)量型指令。
25.一種存取多個(gè)寄存器堆的方法,所述方法包括從第一寄存器堆讀取數(shù)據(jù),同時(shí)從第二寄存器堆讀取數(shù)據(jù),其中所述第一寄存器堆與 第一指令流相關(guān)聯(lián),且所述第二寄存器堆與第二指令流相關(guān)聯(lián),其中在處理器的執(zhí)行管線(xiàn) 中,所述第一指令流與所述第二指令流是連續(xù)的,且其中所述第一寄存器堆相對(duì)于所述第 二寄存器堆處于非鄰近位置。
26.根據(jù)權(quán)利要求25所述的方法,其進(jìn)一步包括將數(shù)據(jù)寫(xiě)入到所述第一寄存器堆且寫(xiě) 入到所述第二寄存器堆。
27.一種選擇寄存器堆以供存取的方法,所述方法包括選擇性地啟用第一組寄存器堆中的至少一者以供存取,與此同時(shí)同時(shí)啟用第二組寄存 器堆中的至少一者以供存取,其中所述第一組寄存器堆共享第一組硬件資源,且其中所述 第二組寄存器堆共享第二組硬件資源;從所述第一組寄存器堆中的所述至少一者向與第一指令流相關(guān)聯(lián)的第一指令單元提 供數(shù)據(jù);從所述第二組寄存器堆中的所述至少一者向與第二指令流相關(guān)聯(lián)的第二指令單元提 供數(shù)據(jù);以及使用至少一個(gè)管線(xiàn)式執(zhí)行單元來(lái)執(zhí)行所述第一和第二指令流。
28.根據(jù)權(quán)利要求27所述的方法,其中所述第一組硬件資源包含數(shù)據(jù)讀取總線(xiàn)。
29.根據(jù)權(quán)利要求27所述的方法,其中在所述至少一個(gè)管線(xiàn)式執(zhí)行單元中以預(yù)定次序執(zhí)行指令。
30.根據(jù)權(quán)利要求27所述的方法,其中在所述至少一個(gè)管線(xiàn)式執(zhí)行單元中執(zhí)行的所述 指令中的每一者是超長(zhǎng)指令字型指令。
全文摘要
本發(fā)明包含一種多線(xiàn)程處理器,其包含與第一線(xiàn)程相關(guān)聯(lián)的第一寄存器堆以及與第二線(xiàn)程相關(guān)聯(lián)的第二寄存器堆。至少一個(gè)硬件資源由所述第一和第二寄存器堆共享。另外,所述第一線(xiàn)程可具有不與所述第二線(xiàn)程連續(xù)的管線(xiàn)存取位置。本發(fā)明還揭示一種存取多個(gè)寄存器堆的方法。所述方法包含從第一寄存器堆讀取數(shù)據(jù),同時(shí)從第二寄存器堆讀取數(shù)據(jù)。所述第一寄存器堆與第一指令流相關(guān)聯(lián),且所述第二寄存器堆與第二指令流相關(guān)聯(lián)。在處理器的執(zhí)行管線(xiàn)中,所述第一指令流與所述第二指令流是連續(xù)的,且所述第一寄存器堆相對(duì)于所述第二寄存器堆在非鄰近位置中。
文檔編號(hào)G06F9/30GK101809537SQ200880109732
公開(kāi)日2010年8月18日 申請(qǐng)日期2008年9月12日 優(yōu)先權(quán)日2007年9月12日
發(fā)明者保羅·巴塞特, 沈劍, 王林, 蘇雷什·文庫(kù)馬洪蒂, 馬蘇德·卡邁 申請(qǐng)人:高通股份有限公司