專(zhuān)利名稱(chēng):一種處理器以及一種寄存器選通方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器技術(shù)領(lǐng)域,特別是涉及一種處理器以及一種寄存器選 通方法。
背景技術(shù):
處理器指具有運(yùn)算器和控制器功能的大規(guī)模集成電路,在計(jì)算機(jī)體系結(jié)
構(gòu)或其它系統(tǒng)結(jié)構(gòu)中起著關(guān)鍵性的作用。寄存器堆(register file)是構(gòu)成處理器 的重要部件,緩存和傳輸操作數(shù)是寄存器堆的基本作用,寄存器堆的性能優(yōu) 劣將直接影響處理器的處理能力。所述寄存器堆,是指處理器中多個(gè)寄存器 (Register)的集合。寄存器堆中的寄存器可用于傳送和暫存數(shù)據(jù),也可參 與算術(shù)邏輯運(yùn)算并保存運(yùn)算結(jié)果,還可以用于尋址,以及用來(lái)讀寫(xiě)數(shù)據(jù)到電 腦的周邊設(shè)備。因此,較多的寄存器對(duì)于軟件編程人員和處理器的編譯器非 常有利。
然而,使用效率、芯片面積、工作速度等,是設(shè)計(jì)處理器需要考慮的因 素。設(shè)計(jì)處理器時(shí),寄存器的數(shù)目不但影響處理器的工作速度,而且關(guān)系到 處理器的面積。 一般,現(xiàn)有的處理器中所設(shè)置的多個(gè)寄存器為一個(gè)通用寄存 器堆,所述通用寄存器既可被用作輸入,也可被用作輸出。當(dāng)處理器中的部 件需要用到寄存器堆中的某個(gè)或者某些寄存器時(shí),將通過(guò)選通器來(lái)進(jìn)行選 通。所述選通器通過(guò)選通邏輯來(lái)選通寄存器,每選通一個(gè)寄存器就需要用一 個(gè)選通邏輯,寄存器的數(shù)目不同則需要的選通邏輯數(shù)目和選通邏輯級(jí)數(shù)也將 不同。例如, 一個(gè)處理器中,如果有8個(gè)寄存器,選通器將通過(guò)8個(gè)選通邏 輯來(lái)進(jìn)行選通,此時(shí)選通邏輯數(shù)目為8, 8 = 23,所以選通邏輯級(jí)^t為3級(jí); 如果有16個(gè)寄存器,則選通邏輯數(shù)目為16, 16 = 24,所以選通邏輯級(jí)數(shù)為4 級(jí)。
因此,如果增加寄存器的數(shù)目,將導(dǎo)致選通器的選通邏輯數(shù)目增加,而 選通器的選通邏輯數(shù)目每翻一倍(2,4,8,...),所述選通器的選通邏輯級(jí)數(shù)將 增加一級(jí),選通器電^^的延遲就會(huì)增加一倍,所以處理器的延遲和面積將同時(shí)變大。
例如, 一個(gè)處理器包括兩個(gè)部件,寄存器的數(shù)目為16個(gè),假設(shè)這16個(gè) 寄存器將全部用作輸入或全部用作輸出,即針對(duì)每個(gè)部件,用作輸入的寄存 器和用作輸出的寄存器數(shù)目都為16。此時(shí)選通器的選通邏輯級(jí)數(shù)為4個(gè) (16 = 24);如果寄存器的數(shù)目從16增加到20,那么選通邏輯級(jí)數(shù)將從4個(gè) 變?yōu)榈?個(gè)(20>24,至少需要25才能滿(mǎn)足)。這樣,會(huì)因?yàn)樵黾恿艘患?jí)選通 邏輯而增加電路延遲,并增大芯片面積。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種處理器以及一種寄存器選通方 法,能使處理器在增加寄存器數(shù)目的情況下,仍具有較小的芯片面積以及高 速處理的能力。
為了解決上述問(wèn)題,本發(fā)明公開(kāi)了一種處理器,所述處理器包括部件一、 部件二以及M個(gè)寄存器,當(dāng)寄存器的數(shù)目從M增加到N時(shí),所述N個(gè)寄存 器包括
第一寄存器堆,包括KO個(gè)寄存器,用于被部件一用作輸入和輸出,并 被部件二用作輸入和輸出;
第二寄存器堆,包括K1個(gè)寄存器,用于被部件一用作輸入,被部件二 用作輸出;
第三寄存器堆,包括K2個(gè)寄存器,用于被部件一用作輸出,被部件二 用作輸入;
其中,K0+K1+K2=N, K0+K1-M, K0+K2=M。 所述處理器還包括
輸入選通器一,用于與所述部件一相連,并與所述第一寄存器堆和第二 寄存器堆相連,完成部件一對(duì)寄存器的輸入選通;
輸出選通器一,用于與所述部件一相連,并與所述第一寄存器堆和第三 寄存器堆相連,完成部件一對(duì)寄存器的輸出選通;
輸入選通器二,用于與所述部件二相連,并與所述第一寄存器堆和第三寄存器堆相連,完成部件二對(duì)寄存器的輸入選通;
輸出選通器二,用于與所述部件二相連,并與所述第一寄存器堆和第二 寄存器堆相連,完成部件二對(duì)寄存器的輸出選通;
控制器,用于根據(jù)請(qǐng)求信號(hào),向所述輸入選通器一、輸出選通器一、輸 入選通器二和輸出選通器二發(fā)出選通控制信號(hào)。
優(yōu)選的,所述輸出選通器一和輸出選通器二設(shè)置在所述控制器中。
其中,當(dāng)所述處理器包括M個(gè)寄存器或者包括N個(gè)寄存器時(shí),所述輸 入選通器一、輸出選通器一、輸入選通器二和輸出選通器二的選通邏輯級(jí)數(shù) 都為m。
優(yōu)選的,所述部件一和部件二分別為RISC處理器中的Load/Store部件 和運(yùn)算部件,則所述第一寄存器堆、第二寄存器堆和第三寄存器堆分別為 RISC處理器中的通用寄存器堆、輸入寄存器堆和目標(biāo)寄存器堆;其中, 所述通用寄存器堆包括從寄存器0至寄存器L的K0個(gè)寄存器; 所述輸入寄存器堆包括從寄存器L+l至寄存器L+K的Kl個(gè)寄存器; 所述目標(biāo)寄存器堆包括從寄存器L+K+l至寄存器L+2K的K2個(gè)寄存
器;
其中K滿(mǎn)足M+K-N。
本發(fā)明還提供了一種寄存器選通方法,所述寄存器所在的處理器包括部 件一、部件二以及M個(gè)寄存器,當(dāng)寄存器的數(shù)目從M增加到N時(shí),所述方 法包括
預(yù)先將所述N個(gè)寄存器劃分為第一寄存器堆,包括K0個(gè)寄存器;第二 寄存器堆,包括K1個(gè)寄存器;第三寄存器堆,包括K2個(gè)寄存器;其中, K0+K1+K2=N, K0+K1=M, K0+K2=M;
處理器的部件一選取第一寄存器堆和第二寄存器堆用作輸入選通,選取
第一寄存器堆和第三寄存器堆用作輸出選通;
處理器的部件二選取第一寄存器堆和第三寄存器堆用作輸入選通,選取 第一寄存器堆和第二寄存器堆用作輸出選通。其中,當(dāng)所述處理器包括M個(gè)寄存器或者包括N個(gè)寄存器時(shí),所述部 件一和部件二的輸入和輸出選通邏輯級(jí)數(shù)都為m。
其中,所述輸入和輸出選通具體包括
設(shè)置選通器分別與處理器中的部件和寄存器相連,所述選通器接收選通 控制信號(hào),根據(jù)所述選通控制信號(hào)選通相連的寄存器,并將選通的寄存器信 息傳送給該選通器相連的部件。
優(yōu)選的,所述部件一和部件二分別為RISC處理器中的Load/Store部件 和運(yùn)算部件,則所述第一寄存器堆、第二寄存器堆和第三寄存器堆分別為 RISC處理器中的通用寄存器堆、輸入寄存器堆和目標(biāo)寄存器堆;其中, 所述通用寄存器堆包括從寄存器0至寄存器L的K0個(gè)寄存器; 所述輸入寄存器堆包括從寄存器L+l至寄存器L+K的Kl個(gè)寄存器; 所述目標(biāo)寄存器堆包括從寄存器L+K+l至寄存器L+2K的K2個(gè)寄存
器;
其中K滿(mǎn)足M+K-N。 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
本發(fā)明在寄存器數(shù)目增加時(shí),通過(guò)把處理器中的寄存器設(shè)置為使用方式 不同的寄存器堆,可以不增加選通邏輯級(jí)數(shù)。即本發(fā)明不降低處理器的電路 延遲也不增加多余的電路面積,還增加了總的寄存器數(shù)目,提高了軟件開(kāi)發(fā) 和運(yùn)行效率。
圖l是本發(fā)明實(shí)施例一所述一種處理器的結(jié)構(gòu)圖2是本發(fā)明實(shí)施例二所述RISC處理器的結(jié)構(gòu)圖3是本發(fā)明實(shí)施例三所述一種寄存器選通方法的流程圖。
具體實(shí)施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖 和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。實(shí)施例一
參照?qǐng)D1,示出了本發(fā)明實(shí)施例一所述一種處理器的結(jié)構(gòu)圖。
寄存器是處理器內(nèi)部重要的數(shù)據(jù)存儲(chǔ)資源,是編程人員能直接使用的硬 件資源之一。由于寄存器的存取速度比內(nèi)存快,所以,要盡可能充分利用寄 存器的存儲(chǔ)功能,在使用過(guò)程中需要對(duì)寄存器進(jìn)行適當(dāng)?shù)恼{(diào)度。在實(shí)際應(yīng)用 中,常把寄存器配置成寄存器堆的形式,來(lái)提高處理器的運(yùn)行效率。例如 MIPS微處理器具有32個(gè)通用寄存器,并且被配置成寄存器堆的形式使得寄 存器資源得到充分的利用。本發(fā)明所述處理器用到了所述配置寄存器堆的原 理,詳細(xì)i兌明如下
本實(shí)施例所述處理器包括部件一、部件二以及M個(gè)寄存器,當(dāng)寄存器 的數(shù)目從M增加到N時(shí),所述N個(gè)寄存器102包括
第一寄存器堆,包括K0個(gè)寄存器,用于被部件一用作輸入和輸出,并 被部件二用作輸入和輸出;
第二寄存器堆,包括K1個(gè)寄存器,用于被部件一用作輸入,被部件二 用作輸出;
第三寄存器堆,包括K2個(gè)寄存器,用于被部件一用作輸出,被部件二 用作輸入;
其中,K0+K1+K2=N, K0+K1=M, K0+K2=M。
可以看出,本實(shí)施例所述處理器中,當(dāng)寄存器的數(shù)目從M增加到N時(shí), 第一寄存器堆的K0個(gè)寄存器和第二寄存器堆的Kl個(gè)寄存器被部件一用作 輸入寄存器, 一共是M個(gè)寄存器;第一寄存器堆的KO個(gè)寄存器和第三寄存 器堆的K2個(gè)寄存器被部件一用作輸出寄存器, 一共是M個(gè)寄存器;同理, 被部件二用作輸入寄存器和輸出寄存器的寄存器數(shù)目也是M個(gè)。
所述處理器還包括
輸入選通器一,用于與所述部件一相連,并與所述第一寄存器堆和第二 寄存器堆相連,完成部件一對(duì)寄存器的輸入選通;
輸出選通器一,用于與所述部件一相連,并與所述第一寄存器堆和第三 寄存器堆相連,完成部件一對(duì)寄存器的輸出選通;輸入選通器二,用于與所述部件二相連,并與所述第一寄存器堆和第三
寄存器堆相連,完成部件二對(duì)寄存器的輸入選通;
輸出選通器二,用于與所述部件二相連,并與所述第一寄存器堆和第二 寄存器堆相連,完成部件二對(duì)寄存器的輸出選通;
控制器101,用于4艮據(jù)請(qǐng)求信號(hào),向所述輸入選通器一、輸出選通器一、 輸入選通器二和輸出選通器二發(fā)出選通控制信號(hào),例如
如果所述請(qǐng)求信號(hào)是部件一需要用到輸入寄存器的請(qǐng)求信號(hào),則所述控 制器向輸入選通器一發(fā)出控制信號(hào),令輸入選通器一對(duì)所述第一寄存器堆和 第二寄存器堆進(jìn)行選通;如果所述請(qǐng)求信號(hào)是部件一需要用到輸出寄存器的 請(qǐng)求信號(hào),則所述控制器向輸出選通器一發(fā)出控制信號(hào),令輸出選通器一對(duì) 所述第一寄存器堆和第三寄存器堆進(jìn)行選通。
其中,所述輸出選通器一和輸出選通器二可設(shè)置在所述控制器101中。
對(duì)于本實(shí)施例所述處理器,包括M個(gè)寄存器時(shí),通過(guò)以下方法可知道 需要用到的邏輯選通級(jí)數(shù)為多少。設(shè)需要用到的選通邏輯數(shù)目為2、 m即為 選通級(jí)數(shù),判斷m的值方法為如果肘=2\則選通邏輯數(shù)目2""=2、選通 級(jí)數(shù)w-"如果2*<似<2"',則選通邏輯數(shù)目2m=2*+1,選通級(jí)數(shù)"^A + 1。 例如,所述處理器有32個(gè)寄存器時(shí),設(shè)需要用到的選通邏輯數(shù)目為2"1,因 為寄存器的數(shù)目為32個(gè),32 = 25 ,所以選通邏輯數(shù)目2m=25,選通級(jí)數(shù)附=5; 如果所述處理器有40個(gè)寄存器,設(shè)需要用到的選通邏輯數(shù)目為2、因?yàn)榧?存器數(shù)目為40, 25<40<25+1,即25<40<26,所以選通邏輯數(shù)目2m =26,選通 級(jí)數(shù)w-6。
本實(shí)施例所述處理器中,設(shè)處理器包括M個(gè)寄存器,用作輸入的寄存 器和用作輸出的寄存器數(shù)目都為M個(gè)時(shí),輸入和輸出需要用到的選通邏輯 數(shù)目分別為2 選通級(jí)數(shù)為m。當(dāng)寄存器的數(shù)目從M增加到N時(shí),部件一 和部件二可以從N個(gè)寄存器中選擇寄存器來(lái)使用,能使用的寄存器數(shù)目增加 了,寄存器數(shù)目的增加能提高編程人員進(jìn)行軟件開(kāi)發(fā)的效率和處理器運(yùn)行的 效率。而當(dāng)寄存器的數(shù)目從M增加到N時(shí),#1部件一、部件二用作輸入和 用作輸出的寄存器數(shù)目仍然都為M,但針對(duì)同一個(gè)部件,用作輸入和用作輸出的寄存器不完全相同。因此,對(duì)于本實(shí)施例所述處理器,當(dāng)寄存器的數(shù)目
從M增加到N時(shí),為部件一或部件二進(jìn)行寄存器選通,需要用到的選通邏 輯數(shù)目仍然為2 選通邏輯級(jí)數(shù)仍然為m,不需要增加選通邏輯級(jí)數(shù)就能實(shí) 現(xiàn)N個(gè)寄存器的選通,從而不會(huì)給選通器電路帶來(lái)附加的延時(shí)。
綜上所述,本發(fā)明實(shí)施例一所述處理器的各個(gè)部件能具有較高的使用效 率、快速的存取效率,保證了工作速度。
實(shí)施例二
參照?qǐng)D2,示出了本發(fā)明實(shí)施例所述RISC處理器的結(jié)構(gòu)圖。
除了RISC處理器,非RISC處理器也能運(yùn)用本發(fā)明,因其運(yùn)用原理與 所述RISC處理器相同,在此不再詳述。本實(shí)施例將以RISC處理器來(lái)對(duì)本 發(fā)明作進(jìn)一步說(shuō)明。
RISC (精簡(jiǎn)指令集算法)的中心思想是簡(jiǎn)化硬件設(shè)計(jì)。在80年代,由 于PC機(jī)不能滿(mǎn)足圖形處理和科學(xué)計(jì)算等應(yīng)用的需求,而大型機(jī)又非常昂貴, 因此創(chuàng)造了工作站這種相對(duì)便宜的臺(tái)式系統(tǒng)。但是,用于PC機(jī)的處理器不 可能滿(mǎn)足工作站的需求,所以提出RISC處理器的思想。對(duì)RISC處理器的 基本要求是使用效率高、芯片面積小、工作速度快。
一個(gè)RISC處理器包括一個(gè)Load/Store部件、 一個(gè)運(yùn)算部件以及M個(gè)寄 存器。Load/Store部件即程序加載與存儲(chǔ)部件,常用于處理程序;運(yùn)算部件 通常為算術(shù)邏輯部件,常用于處理數(shù)據(jù),進(jìn)行數(shù)據(jù)的算術(shù)邏輯運(yùn)算等。
如圖2所示,當(dāng)RISC處理器中寄存器的數(shù)目從M增加到N時(shí),本實(shí) 施例把RISC處理器的寄存器堆設(shè)計(jì)成多個(gè)寄存器堆。本發(fā)明所述部件一和 部件二分別為RISC處理器中的Load/Store部件和運(yùn)算部件,則所述第一寄 存器堆、第二寄存器堆和第三寄存器堆分別為RISC處理器中的通用寄存器 堆、輸入寄存器堆和目標(biāo)寄存器堆,所述輸入選通器一、輸入選通器二、輸 出選通器一和輸出選通器二分別為RISC處理器中的Load/Store部件輸入選 通器、運(yùn)算部件輸入選通器、Load/Store部件輸出選通器和運(yùn)算部件輸出選 通器;其中,所述通用寄存器堆,包括從寄存器0至寄存器L的K0個(gè)寄存器;所述 通用寄存器堆用于被Load/Store部件用作輸入和輸出,被運(yùn)算部件用作輸入 和輸出;
所述輸入寄存器堆,包括從寄存器(L+l)至寄存器(L+K)的Kl個(gè) 寄存器;所述輸入寄存器堆用于被Load/Store部件用作輸入,被運(yùn)算部件用 做輸出;
所述目標(biāo)寄存器堆,包括從寄存器(L+K+l)至寄存器(L+2K)的K2 個(gè)寄存器;所述目標(biāo)寄存器堆用于被Load/Storc部件用作輸出,被運(yùn)算部件 用作輸入;
其中K滿(mǎn)足M+K-N。
例如,如果所述處理器中原有的寄存器數(shù)目為16個(gè),當(dāng)寄存器的數(shù)目 從16個(gè)增加到20個(gè)時(shí),寄存器的設(shè)置為
通用寄存器堆,包括寄存器O-ll,這組寄存器堆被Load/Store部件用作 輸入和輸出,被運(yùn)算部件用作輸入和輸出;
輸入寄存器堆,包括寄存器12-15,這組寄存器堆被Load/Store部件用 作輸入,被運(yùn)算部件用作輸出;
目標(biāo)寄存器堆,包括寄存器16-19,這組寄存器堆被Load/Store部件用 作輸出,被運(yùn)算部件用作輸入。
處理器中原有的寄存器數(shù)目為16時(shí),需要用到的選通邏輯數(shù)目為16, l6 = 24,選通級(jí)數(shù)為4。當(dāng)寄存器的數(shù)目從16增加到20時(shí),Load/Store部件 和運(yùn)算部件可以從20個(gè)寄存器中選擇寄存器來(lái)使用,而此時(shí),被Load/Store 部件、運(yùn)算部件用作輸入、輸出的寄存器數(shù)目仍然都為16,需要用到的選通 邏輯數(shù)目仍然為24,選通邏輯級(jí)數(shù)仍然為4,不需要增加選通邏輯級(jí)數(shù)就能 實(shí)現(xiàn)20個(gè)寄存器的選通,從而不會(huì)給選通器電路帶來(lái)附加的延時(shí)。
所述Load/Store部件輸入選通器,用于與Load/Store部件相連,并與所 述通用寄存器堆和輸入寄存器堆相連,完成Load/Store部件對(duì)寄存器的輸入 選通;
所述運(yùn)算部件輸入選通器,用于與所述運(yùn)算部件相連,并與所述通用寄存器堆和目標(biāo)寄存器堆相連,完成運(yùn)算部件對(duì)寄存器的輸入選通; 所述RISC處理器,還包括
控制器202,用于根據(jù)請(qǐng)求信號(hào),向選通器發(fā)出控制信號(hào); 例如,如果所述請(qǐng)求信號(hào)是請(qǐng)求信號(hào)21,所述控制器向選通器發(fā)出為 Load/Store部件選通寄存器的控制信號(hào);如果所述請(qǐng)求信號(hào)是請(qǐng)求信號(hào)22, 所述控制器向選通器發(fā)出為運(yùn)算部件選通寄存器的控制信號(hào)。
所述Load/Store部件輸出選通器和運(yùn)算部件輸出選通器,可以包括在處 理器中,也可以不包括在處理器中。 一種實(shí)現(xiàn)方式為,所述Load/Store部件 輸出選通器和運(yùn)算部件輸出選通器,包括在所述控制器中;如果請(qǐng)求信號(hào)是 Load/Store部件需要用到輸出寄存器的請(qǐng)求信號(hào),則控制器直接向所述通用 寄存器堆和目標(biāo)寄存器堆發(fā)出Load/Store部件輸出選通信號(hào),進(jìn)行寄存器選 通;如果請(qǐng)求信號(hào)是運(yùn)算部件需要用到輸出寄存器的請(qǐng)求信號(hào),則控制器直 接向所述通用寄存器堆和目標(biāo)寄存器堆發(fā)出運(yùn)算部件輸出選通信號(hào),進(jìn)行寄 存器選通。
在RISC處理器中,更多的寄存器對(duì)軟件編程人員和處理器編譯器非常 有利。 一般情況下,增加寄存器數(shù)目時(shí),會(huì)因增加了選通器的選通邏輯級(jí)數(shù) 而增大處理器的面積,同時(shí)增加電路延時(shí),降低了處理器的運(yùn)行效率以及處 理速度。本發(fā)明所述RISC處理器,能在增加寄存器數(shù)目時(shí),用原有的選通 邏輯數(shù)目就能對(duì)增加后的多個(gè)寄存器進(jìn)行選通,因此不需要增加選通邏輯級(jí) 數(shù),不會(huì)增加電路延時(shí),從而,既提高了處理器的運(yùn)行效率,又不降低處理 器的速度。
實(shí)際上,由于處理器內(nèi)部結(jié)構(gòu)比較復(fù)雜,在運(yùn)行過(guò)程中會(huì)用到寄存器的 部件有時(shí)不只兩個(gè),如果要在增加寄存器數(shù)目時(shí)不增加選通邏輯級(jí)數(shù),按照 本發(fā)明的思想設(shè)置的寄存器堆的數(shù)目也不限于三個(gè)。但是,對(duì)于所述情況下 具有多個(gè)部件及多個(gè)寄存器堆的處理器,由于其基本設(shè)置原理與本發(fā)明實(shí)施 例所述處理器的i殳置原理相同,所以本發(fā)明就不——詳述了。筒單舉例如下
一個(gè)處理器,包括三個(gè)部件,分別為L(zhǎng)l、 L2、 L3;原有寄存器數(shù)目
13為MO,寄存器數(shù)目增加為NO后,NO個(gè)寄存器具體為
寄存器堆AO,包括BO個(gè)寄存器,用于被部件L1用作輸入和輸出,被 部件L2用作輸入和輸出,并被部件L3用作輸入和輸出;
寄存器堆A1,包括B1個(gè)寄存器,用于被部件L1用作輸入,被部件L3 用作輸出;
寄存器堆A2,包括B2個(gè)寄存器,用于被部件L2用作輸入,被部件L1 用作輸出;
寄存器堆A3,包括B3個(gè)寄存器,用于被部件L3用作輸入,被部件L2 用作輸出;
其中,B0+B1+B2+B3=N0; B0+B1=M0; B0+B2=M0; B0+B3=M0。 實(shí)施例三
針對(duì)上述實(shí)施例,本發(fā)明還提供了相應(yīng)的寄存器選通方法實(shí)施例。 圖3是本發(fā)明實(shí)施例二所述一種寄存器選通方法的流程圖。 本實(shí)施例所述寄存器所在的處理器包括部件一、部件二以及M個(gè)寄存 器,當(dāng)寄存器的數(shù)目從M增加到N時(shí),所述選通方法具體為 S301,對(duì)所述N個(gè)寄存器進(jìn)行設(shè)置;
預(yù)先將所述N個(gè)寄存器劃分為第一寄存器堆,包括KO個(gè)寄存器;第二 寄存器堆,包括K1個(gè)寄存器;第三寄存器堆,包括K2個(gè)寄存器;其中, K0+K1+K2=N, K0+K1=M, K0+K2=M;
S302,處理器的部件一選取第一寄存器堆和第二寄存器堆用作輸入選
通,選取第一寄存器堆和第三寄存器堆用作輸出選通;
S303,處理器的部件二選取第一寄存器堆和第三寄存器堆用作輸入選 通,選取第一寄存器堆和第二寄存器堆用作輸出選通。 其中,步驟S302和S303沒(méi)有先后順序之分。
對(duì)于本實(shí)施例所述選通方法,當(dāng)處理器包括M個(gè)寄存器或者包括N個(gè) 寄存器時(shí),所述部件一和部件二的輸入和輸出選通邏輯級(jí)數(shù)都為m。 其中,所述輸入和輸出選通具體包括設(shè)置選通器分別與處理器中的部件和寄存器相連,所述選通器接收選通 控制信號(hào),根據(jù)所述選通控制信號(hào)選通相連的寄存器,并將選通的寄存器信 息傳送給該選通器相連的部件。
本發(fā)明提供的一種處理器以及一種寄存器選通方法,能使處理器在保證 運(yùn)行速度和運(yùn)行效率的前提下,增加多個(gè)寄存器來(lái)4吏用,以滿(mǎn)足處理器繁重 的數(shù)據(jù)讀寫(xiě)吞吐量的要求。在寄存器數(shù)目增加時(shí),由于處理器中的寄存器被 設(shè)置為對(duì)不同部件有著不同用途的多個(gè)寄存器堆,因此,當(dāng)處理器中運(yùn)行過(guò) 程中需要用到寄存器時(shí),用原有的選通邏輯就能對(duì)數(shù)目增加后的多個(gè)寄存器 進(jìn)行選通,而不需要增加選通邏輯的數(shù)目,不需要增加選通邏輯級(jí)數(shù),使處 理器不會(huì)因增加了寄存器數(shù)目而產(chǎn)生額外的電路延時(shí)。綜上所述,本發(fā)明能 使微處理器在寄存器數(shù)目增加時(shí),具有較小的面積以及高速處理的能力,提 高了軟件開(kāi)發(fā)和運(yùn)行效率,處理器的性能得到了極大提高。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明 的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn) 即可。對(duì)于方法實(shí)施例而言,由于其與裝置實(shí)施例基本相似,所以描述的比 較簡(jiǎn)單,相關(guān)之處參見(jiàn)裝置實(shí)施例的部分說(shuō)明即可。
以上對(duì)本發(fā)明所提供的一種處理器以及一種寄存器選通方法,進(jìn)行了詳
上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于 本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上 均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、一種處理器,所述處理器包括部件一、部件二以及M個(gè)寄存器,其特征在于,當(dāng)寄存器的數(shù)目從M增加到N時(shí),所述N個(gè)寄存器包括第一寄存器堆,包括K0個(gè)寄存器,用于被部件一用作輸入和輸出,并被部件二用作輸入和輸出;第二寄存器堆,包括K1個(gè)寄存器,用于被部件一用作輸入,被部件二用作輸出;第三寄存器堆,包括K2個(gè)寄存器,用于被部件一用作輸出,被部件二用作輸入;其中,K0+K1+K2=N,K0+K1=M,K0+K2=M。
2、 根據(jù)權(quán)利要求1所述的處理器,其特征在于,還包括 輸入選通器一,用于與所述部件一相連,并與所述第一寄存器堆和第二寄存器堆相連,完成部件一對(duì)寄存器的輸入選通;輸出選通器一,用于與所述部件一相連,并與所述第一寄存器堆和第三 寄存器堆相連,完成部件一對(duì)寄存器的輸出選通;輸入選通器二,用于與所述部件二相連,并與所述第一寄存器堆和第三 寄存器堆相連,完成部件二對(duì)寄存器的輸入選通;輸出選通器二,用于與所述部件二相連,并與所述第一寄存器堆和第二 寄存器堆相連,完成部件二對(duì)寄存器的輸出選通;控制器,用于根據(jù)請(qǐng)求信號(hào),向所述輸入選通器一、輸出選通器一、輸 入選通器二和輸出選通器二發(fā)出選通控制信號(hào)。
3、 根據(jù)權(quán)利要求2所述的處理器,其特征在于所述輸出選通器一和 輸出選通器二設(shè)置在所述控制器中。
4、 根據(jù)權(quán)利要求2所述的處理器,其特征在于 當(dāng)所述處理器包括M個(gè)寄存器或者包括N個(gè)寄存器時(shí),所述輸入選通器一、輸出選通器一、輸入選通器二和輸出選通器二的選通邏輯級(jí)數(shù)都為m。
5、 根據(jù)權(quán)利要求1所述的處理器,其特征在于所述部件一和部件二分別為RISC處理器中的Load/Store部件和運(yùn)算部 件,則所述第一寄存器堆、第二寄存器堆和第三寄存器堆分別為RISC處理器中的通用寄存器堆、輸入寄存器堆和目標(biāo)寄存器堆;其中,所述通用寄存器堆包括^人寄存器0至寄存器L的K0個(gè)寄存器; 所述輸入寄存器堆包括從寄存器L+l至寄存器L+K的Kl個(gè)寄存器; 所述目標(biāo)寄存器堆包括^人寄存器L+K+l至寄存器L+2K的K2個(gè)寄存器;其中K滿(mǎn)足M+K-N。
6、 一種寄存器選通方法,所述寄存器所在的處理器包括部件一、部件 二以及M個(gè)寄存器,其特征在于,當(dāng)寄存器的數(shù)目從M增加到N時(shí),所述 方法包才舌預(yù)先將所述N個(gè)寄存器劃分為第一寄存器堆,包括K0個(gè)寄存器;第二 寄存器堆,包括K1個(gè)寄存器;第三寄存器堆,包括K2個(gè)寄存器;其中, K0+K1+K2=N, K0+K1=M, K0+K2=M;處理器的部件一選取第一寄存器堆和第二寄存器堆用作輸入選通,選取 第一寄存器堆和第三寄存器堆用作輸出選通;處理器的部件二選取第一寄存器堆和第三寄存器堆用作輸入選通,選取 第一寄存器堆和第二寄存器堆用作輸出選通。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于當(dāng)所述處理器包括M個(gè)寄存器或者包括N個(gè)寄存器時(shí),所迷部件一和 部件二的輸入和輸出選通邏輯級(jí)數(shù)都為m。
8、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所迷輸入和輸出選通具 體包括設(shè)置選通器分別與處理器中的部件和寄存器相連,所述選通器接收選通 控制信號(hào),根據(jù)所述選通控制信號(hào)選通相連的寄存器,并將選通的寄存器信 息傳送給該選通器相連的部件。
9、 根據(jù)權(quán)利要求6所述的方法,其特征在于所述部件一和部件二分別為RISC處理器中的Load/Store部件和運(yùn)算部 件,則所述第一寄存器堆、第二寄存器堆和第三寄存器堆分別為RISC處理 器中的通用寄存器堆、輸入寄存器堆和目標(biāo)寄存器堆;其中,所述通用寄存器堆包括從寄存器0至寄存器L的K0個(gè)寄存器; 所述輸入寄存器堆包括從寄存器L+l至寄存器L+K的Kl個(gè)寄存器; 所述目標(biāo)寄存器堆包括從寄存器L+K+l至寄存器L+2K的K2個(gè)寄存器;其中K滿(mǎn)足M+K-N。
全文摘要
本發(fā)明提供了一種處理器及一種寄存器選通方法,能使處理器在增加寄存器數(shù)目時(shí),仍具有較小的芯片面積和高速處理的能力。所述處理器包括部件一、部件二以及M個(gè)寄存器,當(dāng)寄存器的數(shù)目從M增加到N時(shí),所述N個(gè)寄存器包括第一寄存器堆,包括K0個(gè)寄存器,用于被部件一用作輸入和輸出,并被部件二用作輸入和輸出;第二寄存器堆,包括K1個(gè)寄存器,用于被部件一用作輸入,被部件二用作輸出;第三寄存器堆,包括K2個(gè)寄存器,用于被部件一用作輸出,被部件二用作輸入;其中,K0+K1+K2=N,K0+K1=M,K0+K2=M。本發(fā)明在寄存器數(shù)目增加時(shí),通過(guò)把處理器中的寄存器設(shè)置為使用方式不同的寄存器堆,可以不增加選通邏輯級(jí)數(shù),即不降低處理器的電路延遲也不增加多余的電路面積。
文檔編號(hào)G06F9/38GK101539849SQ200910082239
公開(kāi)日2009年9月23日 申請(qǐng)日期2009年4月21日 優(yōu)先權(quán)日2009年4月21日
發(fā)明者艷 石 申請(qǐng)人:北京紅旗勝利科技發(fā)展有限責(zé)任公司