專利名稱:用于提供高能效寄存器堆的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體來說涉及寄存器堆,且更具體來說涉及用于提供高能效寄存器堆的方 法及系統(tǒng)。
背景技術(shù):
嵌入式處理器設(shè)計通常包括臨時存儲裝置,例如指令高速緩沖存儲器、數(shù)據(jù)高速 緩沖存儲器及寄存器堆等。這些存儲組件為通過減少所述處理器必需存取更慢的外部 存儲器的次數(shù)來增加所述處理器的速度的相對小、高速存儲器。遺憾的是,由于切換 電容負載,這些存儲組件趨于消耗大量功率。更大組件趨于比更小組件切換更多的電 容負載,且因此消耗更多功率。舉例來說,在指令及數(shù)據(jù)高速緩存之后,用作通用寄 存器的寄存器堆通常趨于比嵌入式處理器設(shè)計中的多數(shù)其它更小組件消耗更多的功 率。當(dāng)執(zhí)行指令時,首先從對應(yīng)的寄存器堆檢索適當(dāng)?shù)脑床僮鲾?shù)。在已執(zhí)行所述指令 之后,結(jié)果(如果有)被回寫到所述寄存器堆中。然而,在這些結(jié)果被回寫到所述寄 存器堆中之前,后續(xù)指令經(jīng)常需要這些結(jié)果中的一個或多個作為源操作數(shù)且因此所述 結(jié)果被轉(zhuǎn)發(fā)網(wǎng)絡(luò)取走用于進一步處理。管線越長所述源操作數(shù)越有可能將被傳遞到所 述轉(zhuǎn)發(fā)網(wǎng)絡(luò)而不是所述寄存器堆;此外,所述轉(zhuǎn)發(fā)網(wǎng)絡(luò)越頻繁地取走所述結(jié)果,所述 對應(yīng)的寄存器堆在被用所述最新數(shù)據(jù)更新之前而必須等待的時間就越長。 一種后果是 無效數(shù)據(jù)在所述寄存器堆中停留更長的時間段。如果在具有無效數(shù)據(jù)的寄存器上實施 后續(xù)讀取操作,那么所述讀取操作將產(chǎn)生不正確的結(jié)果(如果用于指令執(zhí)行)。此外, 花費在所述操作上的功率將被浪費。因此,提供高能效裝置以防止無效讀取操作將是 期望的。發(fā)明內(nèi)容本發(fā)明揭示一種寄存器堆。所述寄存器堆包括多個寄存器,及經(jīng)配置以接收所述 寄存器中的任一者的地址,且在所述被尋址寄存器中的數(shù)據(jù)無效時停用對所述被尋址 寄存器的讀取操作的解碼器。本發(fā)明揭示另一種寄存器堆。所述寄存器堆包括多個寄存器,用于接收所述寄存 器中的任一者的地址的裝置,及用于在所述被尋址寄存器中的數(shù)據(jù)無效時停用對所述 被尋址寄存器的讀取操作的裝置。一種存取具有多個寄存器的寄存器堆的方法包括接收所述寄存器中的一者的地 址,及響應(yīng)于所述被尋址寄存器中的數(shù)據(jù)無效而停用對所述被尋址寄存器的讀取操作。應(yīng)了解,所屬領(lǐng)域的技術(shù)人員將從以下詳細闡述中易于明了本發(fā)明的其它實施 例,其中以例示的方式顯示且闡述本發(fā)明的各種實施例。應(yīng)了解,本發(fā)明能夠具有其 它及不同的實施例,且能夠在各其它方面對其若干細節(jié)予以修改,此均不背離本發(fā)明 的精神及范圍。因此,應(yīng)將圖式及詳細闡述視為本質(zhì)上為例示性而非限制性。
在附圖中,以實例方式而非限定方式圖解說明本發(fā)明的方面,附圖中-圖1是圖解說明具有根據(jù)本發(fā)明的高能效寄存器堆的系統(tǒng)的簡化方塊圖; 圖2是圖解說明根據(jù)本發(fā)明的高能效寄存器堆的一個實施例的簡化方塊圖。
具體實施方式
以下結(jié)合附圖論述的詳細闡述打算作為對本發(fā)明的各種實施例的闡述,而非打算 僅代表其中可實踐本發(fā)明的實施例。所述詳細闡述包括出于提供對本發(fā)明的透徹了解的目的的具體細節(jié)。然而,所屬領(lǐng)域的技術(shù)人員將明了可在沒有這些具體細節(jié)的情況 下實踐本發(fā)明。在某些實例中,以方塊圖的形式顯示已知結(jié)構(gòu)及組件以避免遮掩本發(fā) 明的概念。圖1是圖解說明能夠處理、檢索且存儲信息的數(shù)據(jù)處理系統(tǒng)100的實例的概念方 塊圖。數(shù)據(jù)處理系統(tǒng)100可以是獨立組件,或另一選擇為,數(shù)據(jù)處理系統(tǒng)ioo可嵌入 在例如移動電話、PDA、 PC、膝上型計算機、數(shù)碼相機、游戲控制臺或任何其它適合 裝置的裝置中。數(shù)據(jù)處理系統(tǒng)100可包括處理器102,例如微處理器、數(shù)字信號處理 器、視頻圖形處理器或任何其它適合的處理器。數(shù)據(jù)處理系統(tǒng)100還可包括存儲器104, 其保存處理器102需要的程序指令及數(shù)據(jù)以實施其功能??蓪⑻幚砥?02配置為管線處理器。還可針對最近存取的指令及數(shù)據(jù)的存儲提供 指令及數(shù)據(jù)高速緩沖存儲器108??商峁┘拇嫫鞫?06以存儲管線110針對指令的執(zhí) 行需要的操作數(shù)。當(dāng)要執(zhí)行指令時,可從寄存器堆106檢索所述指令的源操作數(shù)且然 后將所述源操作數(shù)用于管線110中以執(zhí)行所述指令。在完成所述指令后,然后可將任 何結(jié)果回寫到寄存器堆106中以用作后續(xù)指令的源操作數(shù),或?qū)⑺鼋Y(jié)果提供到轉(zhuǎn)發(fā) 網(wǎng)絡(luò)用于進一步處理。處理器102還可包括外圍裝置,或處置計算過程或數(shù)據(jù)移動的 任何其它類型的裝置。圖2是圖解說明處理器如何存取其內(nèi)部寄存器堆的實例的示意性方塊圖。寄存器 堆106可包括多個寄存器200a-m。每一寄存器200可用于存儲數(shù)據(jù)。所述數(shù)據(jù)可用作 指令的操作數(shù)。寄存器堆106還可包括多個其它組件,包括(例如)解碼器202及邏 輯裝置204a-m。在圖2中顯示解碼器202及邏輯裝置204a-m以圖解說明處理器從所述寄存器堆讀取的方式。向單元寫入所需要的電路在所屬領(lǐng)域中眾所周知,且因此未 顯示所述電路。寄存器200a-m的每一者可包括多個單元206a-m及多個開關(guān)210a-m。單元206a 的內(nèi)部電路及邏輯細節(jié)在所屬領(lǐng)域中眾所周知,且因此將不再討論所述內(nèi)部電路及邏 輯細節(jié)。顯示所述開關(guān)為場效晶體管(FET),但也可以是任何類型的適合開關(guān)。當(dāng)啟用 其寄存器時,將兩個開關(guān)與每一單元一起使用以將所存儲的位及其補碼耦合到差分位 線216a-216n的對??赏ㄟ^其對應(yīng)的邏輯裝置204a-204m啟用所述寄存器。邏輯裝置 204a-204m用于在所述字線- WLm中的一者上產(chǎn)生選擇所述對應(yīng)的寄存器的啟用 信號。在圖2中以AND功能性構(gòu)建邏輯裝置204a-204m,但可以任何適合方式予以構(gòu) 建。可將來自每一單元206a-m的操作數(shù)就緒信號212a-212m作為輸入提供到其對應(yīng) 的邏輯裝置204a-m。下文將進一步闡述對操作數(shù)就緒信號212a-m的使用。還可將時 鐘信號218作為輸入提供到邏輯裝置204a-m以基于電路定時控制其啟動。由于一次僅 選擇一個寄存器,因此所述多個寄存器的每一位位置的差分位線可共享相同的讀出放 大器。讀出放大器208a-208m基于其對應(yīng)的差分位線提供輸出。如下進一步闡述寄存器堆106的操作。在讀取操作上,將寄存器堆地址214提子共 到來自所述處理器管線中的寄存器存取級215的解碼器202。解碼器202通過向?qū)?yīng) 的邏輯裝置提供適當(dāng)?shù)目刂菩盘杹韱幽繕思拇嫫?。對?yīng)于目標寄存器的邏輯裝置還 接收(作為輸入)來自與目標寄存器相關(guān)聯(lián)的單元中的一者的就緒信號212a-m。所述 邏輯裝置使用就緒信號212a-m的狀態(tài)來確定是否啟用與目標寄存器相關(guān)聯(lián)的單元。根 據(jù)所述就緒信號的狀態(tài),然后所述邏輯裝置可借助于通過目標寄存器單元的相應(yīng)開關(guān) 將目標寄存器單元連接到所述差分位線來啟用目標寄存器,從而允許經(jīng)由讀出放大器 208a-n讀出所述單元中含有的數(shù)據(jù)。就緒信號212的狀態(tài)指示存儲在寄存器200a-m中的數(shù)據(jù)是有效還是無效。當(dāng)寫 至目標寄存器200a-m的指令存在于所述管線中但還未將從所述指令的執(zhí)行產(chǎn)生的數(shù) 據(jù)回寫到目標寄存器200a-m中時,所述數(shù)據(jù)無效。在所述周期期間,可將所述就緒信 號切換到"關(guān)斷"狀態(tài)以防止所述管線中的讀取指令(其在所述寫入指令之后)存取 所述目標寄存器??梢远喾N方式控制就緒信號212的狀態(tài)。舉例來說,當(dāng)所述管線提取將更新所述 寄存器的指令時可將就緒信號212切換到"關(guān)斷"狀態(tài)以指示資料無效,且當(dāng)從所述 寫入指令的執(zhí)行產(chǎn)生的數(shù)據(jù)已被回寫到所述寄存器中時將就緒信號212切換到"接通" 狀態(tài)以指示數(shù)據(jù)有效。圖2中顯示更新所述就緒信號的方法的實例。解碼器222可經(jīng)配置而向每一寄存 器中的保存所述就緒信號的單元提供"設(shè)定"及"重設(shè)"信號。在此實例中,所述"設(shè) 定"信號用于將所述就緒信號切換到所述"接通"狀態(tài),且所述"重設(shè)"信號用于將 所述就緒信號切換到所述"關(guān)斷"狀態(tài)。根據(jù)字線WLx選通邏輯,所述極性在其它實 施例中可不相同。根據(jù)特定應(yīng)用及總體設(shè)計約束,可從所述管線中的各種級控制解碼器222。在處理器的至少一個實施例中,當(dāng)所述管線提取寫入指令時就緒信號被"重 設(shè)"。也就是說,將針對所述寫入指令的寄存器堆的地址連同"重設(shè)"控制信號從所 述管線中的提取指令級224提供到解碼器222。 一旦所述寫入指令前進通過所述管線 且到達回寫級226,那么可將所述寄存器堆的地址及"設(shè)定"控制信號提供到解碼器 222。此導(dǎo)致所述解碼器在所述寄存器堆中"設(shè)定"所述就緒信號。用于更新所述就緒信號的另一種方法是以類似于如何寫入其它單元的方式使用 位線216a。基于本文中提供的本發(fā)明及教示,所屬領(lǐng)域的技術(shù)人員將了解如何使用適 當(dāng)?shù)倪壿嫛㈦娐芳?或其它組件以根據(jù)本發(fā)明實施操作數(shù)就緒信號212。當(dāng)操作數(shù)就緒信號212的狀態(tài)指示存儲在目標寄存器中的數(shù)據(jù)無效時,選通關(guān)斷 對應(yīng)的邏輯裝置(即,來自所述邏輯的對應(yīng)字線WLx輸出不啟動與目標寄存器相關(guān)聯(lián) 的開關(guān))。因此,防止了位線216a-n切換,此又意味著也防止了讀出放大器208a-n 切換。因此,存儲在目標寄存器中的數(shù)據(jù)未經(jīng)由讀出放大器208a-n輸出。以下是進一步圖解說明寄存器堆106的操作的實例。假設(shè)所述寄存器堆地址識別 寄存器200a依據(jù)指令用于讀取操作。解碼器202對所述信息進行解碼且將適當(dāng)?shù)目刂?信號發(fā)送到邏輯裝置204a以指示已將寄存器200a鎖定為所述讀取操作的目標。還可 通過解碼器202向其它邏輯裝置204b-m發(fā)送其它控制信號以指示此特定讀取操作不 需要其它寄存器200b-m。邏輯裝置204a還接收來自與寄存器200a相關(guān)聯(lián)的單元206a中的一者的操作數(shù)就 緒信號212a。如果操作數(shù)就緒信號212a指示寄存器200a中的數(shù)據(jù)無效,那么選通關(guān) 斷邏輯裝置204a,即,邏輯裝置204a在字線WLo上輸出防止開關(guān)210a接通的控制信 號。因此,位線216a-n未切換且存儲在單元206a中的數(shù)據(jù)未經(jīng)由讀出放大器208a-n 輸出。另一選擇為,如果操作數(shù)就緒信號212a指示存儲在寄存器200a中的數(shù)據(jù)有效, 那么邏輯裝置204a在字線WLo上輸出開啟開關(guān)210a的控制信號。因此,來自目標寄 存器200a的數(shù)據(jù)被置于位線216a-n上且經(jīng)由讀出放大器208a-n從寄存器堆106輸出。結(jié)合本文所揭示實施例闡述的各種例示性邏輯塊、模塊、電路、元件及/或組件可 用下列裝置構(gòu)建或?qū)嵤┩ㄓ锰幚砥?、?shù)字信號處理器(DSP)、專用集成電路(ASIC)、 現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯組件、離散門或晶體管邏輯、離散硬件組 件或其設(shè)計用于實施本文所述功能的任一組合。通用處理器可以是微處理器,但另一 選擇為,所述處理器可以是任何常規(guī)處理器、控制器、微控制器或狀態(tài)機。處理器還 可構(gòu)建為計算組件的組合,例如DSP與微處理器的組合、多個微處理器的組合、 一個 或多個微處理器與DSP核心的聯(lián)合或任何其它此類配置。結(jié)合本文所揭示實施例闡述的方法或算法可以控制邏輯、編程指令或其它指示的 形式直接體現(xiàn)在硬件、可由處理器執(zhí)行的軟件模塊或兩者的組合中。軟件模塊可駐存 在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄 存器、硬盤、可抽換式磁盤、CD-ROM或所屬技術(shù)中已知的任何其它形式的存儲媒體 中。存儲媒體可耦合到處理器,使得處理器可從所述存儲媒體讀取信息及向所述存儲媒體寫入信息。另一選擇為,所述存儲媒體可以是處理器的組成部分。提供對所揭示實施例的以上闡述以使所屬領(lǐng)域的技術(shù)人員能夠制造或使用本發(fā) 明。所屬領(lǐng)域的技術(shù)人員將易于得出對這些實施例的各種修改,且本文所界定的一般 原理可在不背離本發(fā)明的范圍的精神的情況下適用于其它實施例。因此,并非打算將 本發(fā)明限定為本文所示實施例,而是要賦予其與權(quán)利要求書相一致的全部范圍,其中 以單數(shù)形式提及一元件并非打算意味"一個及僅一個"(除非明確如此述及),而是 "一個或多個"。所有為所屬領(lǐng)域的技術(shù)人員所熟知或以后將熟知的闡述于整個本發(fā) 明中的各種實施例的元件的結(jié)構(gòu)及功能等效物均以引用的方式明確并入本文中并打算 涵蓋于權(quán)利要求書中。此外,本文所揭示的內(nèi)容均非打算奉獻給公眾,無論是否在權(quán) 利要求書中明確陳述此表達。權(quán)利要求書要素均不依據(jù)35 U.S.C.§112第六段的規(guī)定加 以解釋,除非使用措詞"用于...的裝置"明確陳述所述要素,或在方法項的情況下使 用措詞"用于...的步驟"陳述所述要素。
權(quán)利要求
1、一種寄存器堆,其包含多個寄存器;及解碼器,其經(jīng)配置以接收所述寄存器中的任一者的地址,且在所述被尋址寄存器中的數(shù)據(jù)無效時停用對所述被尋址寄存器的讀取操作。
2、 如權(quán)利要求1所述的寄存器堆,其中所述寄存器中的每一者經(jīng)配置以存儲指 示其數(shù)據(jù)是否無效的就緒信號。
3、 如權(quán)利要求2所述的寄存器堆,其中所述寄存器中的每一者包含多個單元, 所述單元中的一者經(jīng)配置以存儲所述就緒信號。
4、 如權(quán)利要求3所述的寄存器堆,其中所述解碼器進一步經(jīng)配置以響應(yīng)于所述 接收的地址來產(chǎn)生寄存器啟用信號,且用以自所述被尋址寄存器的所述就緒信號來選 通所述寄存器啟用信號,所述被選通的寄存器啟用信號用于在所述被尋址寄存器中的 所述數(shù)據(jù)有效時啟用所述被尋址寄存器處的讀取操作。
5、 如權(quán)利要求4所述的寄存器堆,其中所述解碼器進一步經(jīng)配置以使用AND功能用所述就緒信號來選通所述寄存器啟用信號。
6、 如權(quán)利要求4所述的寄存器堆,其中所述寄存器堆進一步經(jīng)配置以在所述被 選通的寄存器啟用信號指示所述被尋址寄存器中的所述數(shù)據(jù)有效時,響應(yīng)于所述被選 通的寄存器啟用信號將來自所述被尋址寄存器的所述單元的數(shù)據(jù)提供到所述寄存器堆 的輸出。
7、 如權(quán)利要求2所述的寄存器堆,其進一步包含第二解碼器,所述第二解碼器 經(jīng)配置以接收所述寄存器中任一者的地址及控制信號,且基于所述控制信號改變所述 寄存器中的所述任一者的所述就緒信號。
8、 一種寄存器堆,其包含-多個寄存器;接收裝置,其用于接收所述寄存器中的任一者的地址;及停用裝置,其用于在所述被尋址寄存器中的數(shù)據(jù)無效時,停用對所述被尋址寄存 器的讀取操作。
9、 如權(quán)利要求8所述的寄存器堆,其中所述寄存器中的每一者經(jīng)配置以存儲指 示其數(shù)據(jù)是否無效的就緒信號。
10、 如權(quán)利要求9所述的寄存器堆,其中所述寄存器中的每一者包含多個單元, 所述單元中的一者經(jīng)配置以存儲所述就緒信號。
11、 如權(quán)利要求10所述的寄存器堆,其中所述用于停用對所述被尋址寄存器的 讀取操作的裝置進一步經(jīng)配置以響應(yīng)于所述接收的地址產(chǎn)生寄存器啟用信號,且用以 自所述被尋址寄存器的所述就緒信號來選通所述寄存器啟用信號,所述被選通的寄存器啟用信號用于在所述被尋址寄存器中的數(shù)據(jù)有效時啟用所述被尋址寄存器處的讀取 操作。
12、 如權(quán)利要求9所述的寄存器堆,其進一步包含用于接收所述寄存器中任一者 的地址及控制信號且基于所述控制信號來改變所述寄存器中所述任一者的所述就緒信 號的裝置。
13、 一種存取具有多個寄存器的寄存器堆的方法,其包含 接收所述寄存器中的一者的地址;及響應(yīng)于所述被尋址寄存器中的數(shù)據(jù)無效,停用對所述被尋址寄存器的讀取操作。
14、 如權(quán)利要求13所述的方法,其中所述寄存器中的每一者經(jīng)配置以存儲指示 其數(shù)據(jù)是否無效的就緒信號,且其中響應(yīng)于所述被尋址寄存器中的所述就緒信號停用 對所述被尋址寄存器的所述讀取操作。
15、 如權(quán)利要求14所述的方法,其中所述寄存器中的每一者包含多個單元,所 述單元中的一者經(jīng)配置以存儲所述就緒信號。
16、 如權(quán)利要求15所述的方法,其中通過用以自所述被尋址寄存器的所述就緒 信號來選通關(guān)斷從所述接收的地址中解碼的寄存器啟用信號來拒絕對所述被尋址寄存 器的讀取操作。
17、 如權(quán)利要求16所述的方法,其中用AND功能選通關(guān)斷所述寄存器啟用信號。
18、 如權(quán)利要求14所述的方法,其進一步包含改變所述被尋址寄存器中的所述 就緒信號以指示其數(shù)據(jù)無效。
19、 如權(quán)利要求18所述的方法,其中在接收所述被尋址寄存器的所述地址之前 改變所述被尋址寄存器中的所述就緒信號以指示其數(shù)據(jù)無效。
20、 如權(quán)利要求19所述的方法,其進一步包含在停用對所述被尋址寄存器的所 述讀取操作之后,改變所述被尋址寄存器中的所述就緒信號以指示所述數(shù)據(jù)有效。
全文摘要
本發(fā)明揭示一種寄存器堆。所述寄存器堆包括多個寄存器及一解碼器。所述解碼器可經(jīng)配置以接收所述寄存器中的任一者的地址,且在所述被尋址寄存器中的數(shù)據(jù)無效時停用對所述被尋址寄存器的讀取操作。
文檔編號G06F9/30GK101278258SQ200680036745
公開日2008年10月1日 申請日期2006年8月9日 優(yōu)先權(quán)日2005年8月10日
發(fā)明者托馬斯·安德魯·薩托里烏斯, 杰弗里·托德·布里奇斯, 格雷戈里·克里斯托弗·布爾達, 詹姆斯·諾里斯·迪芬德爾費爾, 邁克爾·斯科特·麥基爾文 申請人:高通股份有限公司