本發(fā)明涉及到處理器的新型構(gòu)架與實(shí)現(xiàn)。
背景技術(shù):
在處理器指令系統(tǒng)的優(yōu)化發(fā)展過(guò)程中,出現(xiàn)過(guò)兩個(gè)截然不同的優(yōu)化方向:CISC技術(shù)和RISC技術(shù)。CISC是指復(fù)雜指令系統(tǒng)計(jì)算機(jī)(Complex Instruction Set Computer);RISC是指精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(Reduced Instruction Set Computer)。這里的計(jì)算機(jī)指令系統(tǒng)指的是計(jì)算機(jī)的最低層的機(jī)器指令,也就是CPU能夠直接識(shí)別的指令。隨著處理器系統(tǒng)的復(fù)雜,要求處理器指令系統(tǒng)的構(gòu)造能使處理器的整體性能更快更穩(wěn)定。最初,人們采用的優(yōu)化方法是通過(guò)設(shè)置一些功能復(fù)雜的指令,把一些原來(lái)由軟件實(shí)現(xiàn)的、常用的功能改用硬件的指令系統(tǒng)實(shí)現(xiàn),以此來(lái)提高處理器的執(zhí)行速度,這種處理器系統(tǒng)就被稱(chēng)為復(fù)雜指令系統(tǒng)處理器,即Complex Instruction Set Computer,簡(jiǎn)稱(chēng)CISC。另一種優(yōu)化方法是在20世紀(jì)80年代才發(fā)展起來(lái)的,其基本思想是盡量簡(jiǎn)化計(jì)算機(jī)指令功能,只保留那些功能簡(jiǎn)單、能在一個(gè)節(jié)拍內(nèi)執(zhí)行完成的指令,而把較復(fù)雜的功能用一段子程序來(lái)實(shí)現(xiàn),這種處理器系統(tǒng)就被稱(chēng)為精簡(jiǎn)指令系統(tǒng)處理器.即Reduced Instruction Set Computer,簡(jiǎn)稱(chēng)RISC。RISC技術(shù)的精華就是通過(guò)簡(jiǎn)化處理器指令功能,使指令的平均執(zhí)行周期減少,從而提高處理器的工作主頻,同時(shí)大量使用通用寄存器來(lái)提高子程序執(zhí)行的速度。
RISC和CISC各有優(yōu)缺點(diǎn),它們的區(qū)別在于不同的CPU設(shè)計(jì)理念和方法。早期的CPU全部是CISC架構(gòu),它的設(shè)計(jì)目的是 要用最少的機(jī)器語(yǔ)言指令來(lái)完成所需的計(jì)算任務(wù)。RISC和CISC是設(shè)計(jì)制造微處理器的兩種典型技術(shù),雖然它們都是試圖在體系結(jié)構(gòu)、操作運(yùn)行、軟件硬件、編譯時(shí)間和運(yùn)行時(shí)間等諸多因素中做出某種平衡,以求達(dá)到高效的目的,但采用的方法不同,因此,在很多方面差異很大,RISC設(shè)計(jì)者把主要精力放在那些經(jīng)常使用的指令上,盡量使它們具有簡(jiǎn)單高效的特色。對(duì)不常用的功能,常通過(guò)組合指令來(lái)完成。因此,在RISC機(jī)器上實(shí)現(xiàn)特殊功能時(shí),效率可能較低。而CISC計(jì)算機(jī)的指令系統(tǒng)比較豐富,有專(zhuān)用指令來(lái)完成特定的功能。因此,處理特殊任務(wù)效率較高。RISC處理器結(jié)構(gòu)簡(jiǎn)單,布局緊湊,設(shè)計(jì)周期短,且易于采用最新技術(shù);CISC微處理器結(jié)構(gòu)復(fù)雜,設(shè)計(jì)周期長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
該發(fā)明是一種新型處理器構(gòu)架,結(jié)合RISC和CISC各自的特點(diǎn),揚(yáng)長(zhǎng)避短,從而增加靈活性,更大程度的提高處理器的執(zhí)行效率。在該發(fā)明中,一種處理器構(gòu)架可以同時(shí)支持兩種完全不同的指令集,并且處理器可以在兩種指令集之間自由切換。為達(dá)到支持兩種指令集的目的,指令總線,指令譯碼單元和運(yùn)算單元都和傳統(tǒng)的單指令集處理器結(jié)構(gòu)有所不同。
首先指令總線要支持兩種不同指令集的取指令,兩種指令集的指令長(zhǎng)度是不一樣的,RISC指令集指令長(zhǎng)度是32位,而CISC指令集指令長(zhǎng)度可能是64位,128位ISC和CISC指令集通過(guò)唯一的混合指令譯碼單元來(lái)完成兩種指令集的切換。譯碼時(shí)首先查看指令集標(biāo)識(shí)位,這個(gè)標(biāo)識(shí)位可通過(guò)兩種方法設(shè)置:一種是通過(guò)軟件編程系統(tǒng)寄存器來(lái)設(shè)置到需要的指令集;另外一種方式是通過(guò)指令集的切換指令來(lái)完成,也就是說(shuō)在RISC指令集中設(shè)計(jì)一條切換(SWITCH)指令,這條指令作為進(jìn)入CISC指令集的最后一條指令,這條指令會(huì)改變指令標(biāo)識(shí)位識(shí)譯碼其進(jìn)入CISC指令集模式,同理,在CISC指令集中設(shè)計(jì)一條切換(SWITCH)指令,這條指令作為進(jìn)入RISC指令集的最后一條指令,這條指令會(huì)改變指令標(biāo)識(shí)位識(shí)譯碼其進(jìn)入RISC指令集模式。
RISC和CISC指令集共享同一個(gè)指令總線,也就是兩種指令集的取指令都過(guò)同一個(gè)而且是唯一指令總線,該指令總線可從RISC或CISC程序代碼取指令,也可以是RISC和CISC混合編程的代碼。
RISC和CISC指令集處理器共享同一數(shù)據(jù)總線,兩種指令集的程序都通過(guò)同一數(shù)據(jù)總線來(lái)存取系統(tǒng)的數(shù)據(jù)存儲(chǔ)單元。
RISC和CISC指令集共享所有的運(yùn)算單元,包括算術(shù)運(yùn)算,邏輯運(yùn)算,浮點(diǎn)運(yùn)算以及尋址單元。指令通過(guò)混合指令譯碼單元后,將不再區(qū)分RISC和CISC指令集。不同的是,CISC可能同時(shí)使能多個(gè)運(yùn)算單元達(dá)到并運(yùn)算,而RISC根據(jù)指令只使能單一的運(yùn)算單元。
為保證程序的穩(wěn)定性,在RISC和CISC程序互相切換時(shí),在同一運(yùn)算周期內(nèi)只有唯一的一種指令集的指令有效:精簡(jiǎn)指令集指令或者復(fù)雜指令集指令。
附圖說(shuō)明:
圖1異構(gòu)處理器的整體實(shí)現(xiàn)方法;
圖2指令譯碼器的實(shí)現(xiàn)實(shí)例;
圖3為本發(fā)明的一個(gè)應(yīng)用實(shí)例。
具體實(shí)施方式:
本發(fā)明提供一種異構(gòu)處理器的設(shè)計(jì)方法,該發(fā)明將通用的精簡(jiǎn)指令集(RISC)處理器和復(fù)雜指令集(CISC)處理器合二為一,即一種構(gòu)架可以同時(shí)支持兩種完全不同的指令集,參考圖1。對(duì)于具體的實(shí)施例中精簡(jiǎn)指令集可以是16bits的指令,也可以是32bits的指令集;對(duì)于具體的實(shí)施例中復(fù)雜指令集可以是48bits或者是64bits的超長(zhǎng)指令字(VLIW),或者是指令不等長(zhǎng)度的指令集。
該發(fā)明的核心是指令譯碼器的設(shè)計(jì),圖2是一種混結(jié)構(gòu)處理器的譯碼單元的一種應(yīng)用實(shí)例。在這種實(shí)例中,指令譯碼單元同時(shí)支持兩種指令譯碼,RISC和CISC。兩種方法可以改變處理器的運(yùn)行模式:直接的指令改變和系統(tǒng)寄存器方式。直接的指令改變運(yùn)行模式主要通過(guò)模式切換指令,在RISC和CISC中分別設(shè)計(jì)一條切換指令,當(dāng)系統(tǒng)取指令后,先經(jīng)過(guò)指令的預(yù)譯碼,當(dāng)預(yù)譯碼判斷是切換指令時(shí),會(huì)進(jìn)入到系統(tǒng)模式切換狀態(tài),同時(shí)更新系統(tǒng)的模式標(biāo)識(shí)位,然后進(jìn)入真正的指令譯碼階段,這時(shí)譯碼單元根據(jù)系統(tǒng)模式標(biāo)識(shí)位進(jìn)行不同的模式譯碼。系統(tǒng)寄存器方式是同過(guò)編成系統(tǒng)寄存器的模式標(biāo)識(shí)位來(lái)達(dá)到系統(tǒng)模式的改變,這種方式實(shí)現(xiàn)簡(jiǎn)單易操作,但是效率會(huì)降低。當(dāng)用系統(tǒng)寄存器來(lái)改變系統(tǒng)模式時(shí),模式寄存器的值是被指令處理的最后一階段更改的,也就是數(shù)據(jù)的回寫(xiě)階段發(fā)生的,在這種情況下,編譯要在流水線中插入相應(yīng)的空操作指令來(lái)保證切換之前沒(méi)有新的指令進(jìn)入處理器。
該發(fā)明的實(shí)施例可以包括多種應(yīng)用。例如該發(fā)明可以應(yīng)用在多媒體的處理器中用于加速圖像或者音頻處理,充分利用CISC的高效和精簡(jiǎn)指令集的易編成和低功耗從而極大地加速了音視頻的處理能力。也可以用在工業(yè)控制中,同時(shí)具有超強(qiáng)的數(shù)字信號(hào)處理能力。
如圖2所示,一種音視頻處理器的實(shí)現(xiàn)方案。在這個(gè)實(shí)現(xiàn)方案中,RISC是32bits指令集的MCU,MCU支持最基本的定點(diǎn)運(yùn)算;CISC是64bits的VLIW指令集,支持音視頻相關(guān)的特殊指令,同時(shí)支持浮點(diǎn)運(yùn)算。處理器核同時(shí)支持兩種指令集,RISC可用于控制部分,VLIW可用于音視頻編解碼。為了高效的處理能力,該實(shí)現(xiàn)例支持混合指令集的編成。為了配合VLIW處理器,增加二維的系統(tǒng)X/Y總線用于二維數(shù)據(jù)存取,極大地提高了數(shù)字信號(hào)處理能力。同時(shí),增加相應(yīng)的外設(shè),例如定時(shí)器,一級(jí)緩存,二級(jí)緩存,Boot ROM等。在該實(shí)例中,默認(rèn)模式是32bits指令集的MCU模式,可通過(guò)啟動(dòng)程序初始化到64bits的VLIW指令集的模式,啟動(dòng)程序編成相應(yīng)的系統(tǒng)寄存器來(lái)標(biāo)識(shí)處理器工作模式。當(dāng)混合編成時(shí),編譯器負(fù)責(zé)插入切換指令從而實(shí)時(shí)改變處理器的運(yùn)行模式。