專利名稱:電子電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子電路領(lǐng)域,并且特別涉及具有流水線的電子電路,所述流水線具有訪問(wèn)共享資源的可變等待時(shí)間。
背景技術(shù):
許多傳統(tǒng)電子電路,例如微處理器使用“流水線”來(lái)增加并行性和性能。即是,在微處理器中的指令執(zhí)行包括若干獨(dú)立的步驟,可在微處理器中創(chuàng)建分離的單元以執(zhí)行每個(gè)步驟。當(dāng)單元完成執(zhí)行一條指令時(shí),它被傳遞給“流水線”中的下一個(gè)單元,并且開(kāi)始對(duì)下一個(gè)指令進(jìn)行工作。因此,盡管執(zhí)行整個(gè)指令所需的時(shí)間長(zhǎng)度保持與非流水線系統(tǒng)一樣,但是因?yàn)橄乱粭l指令只落后一個(gè)單元,因此總的結(jié)果是微處理器的性能提高了。
與由全局時(shí)鐘信號(hào)來(lái)控制部件處理數(shù)據(jù)多久以及數(shù)據(jù)何時(shí)傳播到系統(tǒng)的下一部分的同步電路不同,異步系統(tǒng)中的部件以它們自己的速率執(zhí)行任務(wù),并且只有當(dāng)系統(tǒng)的下一部分確認(rèn)接收到數(shù)據(jù)時(shí),才轉(zhuǎn)移到下一個(gè)任務(wù)。
因此,由于不存在全局時(shí)鐘信號(hào),對(duì)于異步系統(tǒng)中的部件來(lái)說(shuō)需要使用握手協(xié)議,以便系統(tǒng)各個(gè)部分能夠彼此通信。
在一個(gè)類型的系統(tǒng)中,當(dāng)?shù)谝患?jí)請(qǐng)求第二級(jí)執(zhí)行一個(gè)計(jì)算時(shí),第一級(jí)向第二級(jí)發(fā)送一個(gè)請(qǐng)求。第二級(jí)執(zhí)行計(jì)算,并且當(dāng)它完成該計(jì)算時(shí),將確認(rèn)信號(hào)發(fā)送第一級(jí)。當(dāng)?shù)谝患?jí)接收到確認(rèn)信號(hào)時(shí),它知道計(jì)算已經(jīng)完成,并且它可以轉(zhuǎn)移到下一個(gè)指令。
異步系統(tǒng)的替換類型如在Singh M.和Nowick,S.M.的“MOUSETRAPultra high-speed transitional signallingasynchronous pipelines”,計(jì)算機(jī)設(shè)計(jì)國(guó)際會(huì)議(ICCD)2001的會(huì)議論文集第9-17頁(yè)、在Sutherland I.E.的“Micropipelines”ACM通信1989中、以及在名為“Electronic circuit with a chain ofprocessing elements”的歐洲專利申請(qǐng)?zhí)?3103399.6中描述。
在異步處理器中,通常利用鎖存器來(lái)實(shí)現(xiàn)流水線級(jí)。
在指令集中一般由流水線處理器實(shí)現(xiàn)的指令通常具有不同的等待時(shí)間。這意味著當(dāng)以順序方式執(zhí)行指令時(shí),指令花費(fèi)長(zhǎng)度不等的時(shí)間來(lái)完成。
例如,考慮算數(shù)計(jì)算(ALU)指令和加載操作。
圖1示出了一個(gè)具有五個(gè)級(jí)的經(jīng)典五級(jí)流水線2,五個(gè)級(jí)具有各自的鎖存器4、6、8和10。CPU算數(shù)和邏輯計(jì)算在執(zhí)行級(jí)(第三級(jí))中執(zhí)行。加載指令使用第三級(jí)用于地址計(jì)算并且使用存儲(chǔ)級(jí)(第四級(jí))來(lái)實(shí)際地從存儲(chǔ)器12加載數(shù)據(jù)。
在寫(xiě)回級(jí)(第五級(jí))中,發(fā)生將執(zhí)行級(jí)(第三級(jí))的結(jié)果或從存儲(chǔ)器12加載的數(shù)據(jù)寫(xiě)回寄存器文件14的操作。因此在原理上,ALU計(jì)算的寫(xiě)回可發(fā)生在執(zhí)行級(jí)之后,而加載操作的寫(xiě)回不能早于在存儲(chǔ)級(jí)(第四級(jí))之后。
但是,如果執(zhí)行級(jí)的結(jié)果或存儲(chǔ)級(jí)的結(jié)果都被允許在這些結(jié)果可用時(shí)立刻寫(xiě)回到寄存器文件14,在ALU計(jì)算之后的加載將導(dǎo)致兩個(gè)同時(shí)的寫(xiě)回,從而引起對(duì)寄存器文件資源14的爭(zhēng)用。
目前以兩種方式來(lái)解決該資源爭(zhēng)用。在第一種方法中,將附加的寫(xiě)端口添加到寄存器文件14上,以允許兩個(gè)同時(shí)的寫(xiě)動(dòng)作可在寄存器文件14中發(fā)生。在圖1中,虛線16表示從第三鎖存器8到寄存器文件14中的第二寫(xiě)端口的連接。但是,該方法從硬件的角度看來(lái)很昂貴。并且,在兩個(gè)寫(xiě)動(dòng)作的目的地都在寄存器文件14中的同一位置的情況下,一些控制電路必須判定哪個(gè)值應(yīng)當(dāng)被首先寫(xiě)回。
第二種方法(也如圖1所示)將ALU操作的結(jié)果強(qiáng)行通過(guò)附加的流水線級(jí)(即在前一操作的結(jié)果已經(jīng)被傳遞到寄存器文件14后將其存儲(chǔ)在鎖存器10中),使得其要求與載入操作相同的寫(xiě)回延遲。該方法擴(kuò)展ALU操作的延遲以便使載入指令的延遲匹配,由此降低了性能并增加了流水線的功率消耗。該方法另一缺點(diǎn)在于,即使ALU操作的結(jié)果有可能被更早地寫(xiě)回到寄存器文件14(即當(dāng)在流水線中在它之前沒(méi)有加載指令時(shí)),這也是不行的,因?yàn)槠淙员仨殏鞑ソ?jīng)過(guò)所述“附加的”級(jí)(鎖存器10)。
因此,存在一種在不要求大量額外硬件或增加指令等待時(shí)間的情況下防止寄存器文件資源爭(zhēng)用的需要。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種適于處理多種類型指令的電子電路,該電子電路包括第一和第二流水線級(jí);和位于所述流水線級(jí)之間的鎖存器;其中該電子電路適于在處理響應(yīng)于使能信號(hào)而打開(kāi)和閉合鎖存器的第一類型指令時(shí)以普通模式操作,并且在處理保持打開(kāi)鎖存器的第二類型指令時(shí)以簡(jiǎn)化模式操作,使得指令傳播經(jīng)過(guò)第一和第二流水線級(jí)而不被存儲(chǔ)在鎖存器中;其中第一類型指令要求由第一和第二流水線級(jí)處理而第二類型指令要求由第二流水線級(jí)處理。
根據(jù)本發(fā)明的另一方面,提供了一種操作電子電路的方法,該電子電路適于處理多種類型指令,該電子電路包括第一和第二流水線級(jí),以及位于所述流水線級(jí)之間的鎖存器,該方法包括在處理響應(yīng)于使能信號(hào)而打開(kāi)和閉合鎖存器的第一類型指令時(shí)以普通模式操作電子電路,并且在處理保持打開(kāi)鎖存器的第二類型指令時(shí)以簡(jiǎn)化模式操作電子電路,使得指令傳播經(jīng)過(guò)第一和第二流水線級(jí)而不被存儲(chǔ)在鎖存器中;其中第一類型指令要求由第一和第二流水線級(jí)處理而第二類型指令要求由第二流水線級(jí)處理。
為了更好地理解本發(fā)明,并且為了更清楚地示出其是如何實(shí)施的,現(xiàn)在通過(guò)舉例的方式來(lái)參考附圖,其中圖1示出了傳統(tǒng)五級(jí)微處理器流水線;圖2示出了根據(jù)本發(fā)明的五級(jí)微處理器流水線;圖3示出了根據(jù)本發(fā)明的流水線鎖存器控制器的一個(gè)實(shí)施方式;和圖4示出了根據(jù)本發(fā)明的五級(jí)流水線的操作。
具體實(shí)施例方式
盡管以下將參考異步微處理器中的流水線來(lái)描述本發(fā)明,但是可以理解的是,本發(fā)明可應(yīng)用于任何類型的具有流水線的電子電路,其中通過(guò)將延遲引入到處理具有不同等待時(shí)間的指令中來(lái)解決爭(zhēng)用共享資源的問(wèn)題。
圖2示出了根據(jù)本發(fā)明的微處理器流水線。在該示例實(shí)施例中,微處理器流水線20是一個(gè)五級(jí)流水線,但是可以理解的是,本發(fā)明可應(yīng)用于具有更多或更少級(jí)的流水線。此外,針對(duì)一個(gè)具體的握手協(xié)議來(lái)描述本發(fā)明,盡管可以理解,本發(fā)明可應(yīng)用于使用其它協(xié)議的系統(tǒng)。
流水線20的各級(jí)都包括各自的鎖存器(22、24、26、28和30),并且如傳統(tǒng)的那樣,每個(gè)鎖存器具有各自的確定鎖存器的操作模式的使能信號(hào),En1、En2、En3、En4或En5。當(dāng)鎖存器被使能時(shí),鎖存器的輸出與鎖存器的輸入相同,并且鎖存器被稱為透明的。當(dāng)鎖存器被禁用時(shí),鎖存器的輸出保持其輸入處的最后值。
指令存儲(chǔ)器32連接到第一鎖存器,并且它存儲(chǔ)處理器流水線20的指令。指令可包括用來(lái)訪問(wèn)數(shù)據(jù)存儲(chǔ)器34中的特定地址的加載指令,由算數(shù)邏輯單元(ALU)36執(zhí)行的算數(shù)計(jì)算指令,或者可包括其它類型的指令,比如比較、跳轉(zhuǎn)、分支和存儲(chǔ)指令。
如上所述,加載和算數(shù)計(jì)算指令的結(jié)果被寫(xiě)入到第五鎖存器30。但是,比較、跳轉(zhuǎn)、分支和存儲(chǔ)指令的結(jié)構(gòu)不需要被寫(xiě)入到第五鎖存器30,并且它們的執(zhí)行可在第三或第四級(jí)之后完成。
所獲取的指令被存儲(chǔ)在第一鎖存器22中,并被傳遞到單元38。單元38通常被稱為解碼級(jí)并對(duì)所獲取的指令進(jìn)行解碼。當(dāng)?shù)诙i存器24已經(jīng)接收到任何先前的指令已經(jīng)安全存儲(chǔ)在第三鎖存器26中的確認(rèn)時(shí),可包括控制和數(shù)據(jù)信號(hào)的單元38的輸出被存儲(chǔ)在第二鎖存器24中。這些控制和數(shù)據(jù)信號(hào)告訴流水線的每一級(jí)它們應(yīng)當(dāng)執(zhí)行哪個(gè)操作。
在第二鎖存器24中存儲(chǔ)的指令接著由ALU36執(zhí)行。如果指令是算數(shù)計(jì)算指令,ALU36執(zhí)行計(jì)算。但是,如果指令是加載指令,ALU36計(jì)算在流水線20的第四級(jí)處的數(shù)據(jù)存儲(chǔ)器34中必須訪問(wèn)的地址。當(dāng)?shù)谌i存器26已經(jīng)接收到先前的指令已經(jīng)由下一級(jí)存儲(chǔ)的確認(rèn)時(shí),計(jì)算的結(jié)果接著被存儲(chǔ)在第三鎖存器26的寄存器40或42中。第三鎖存器26內(nèi)存儲(chǔ)結(jié)果的特定寄存器40、42由正被處理的指令的性質(zhì)確定。例如,如果指令是加載指令,在頂部寄存器40中存儲(chǔ)結(jié)果,使得數(shù)據(jù)存儲(chǔ)器34可被訪問(wèn)??商鎿Q地,如果指令是算數(shù)指令,那么在底部寄存器42中存儲(chǔ)結(jié)果。在一個(gè)實(shí)施例中,結(jié)合條件位,使能信號(hào)En3允許選擇單獨(dú)的寄存器40、42。
在比較、跳轉(zhuǎn)、分支或存儲(chǔ)指令的情況下,指令在完成第三級(jí)、ALU36、或第四級(jí)(取決于特定的指令)后被完全執(zhí)行。
在第四級(jí)中,如果當(dāng)前指令是加載指令,那么數(shù)據(jù)存儲(chǔ)器34被訪問(wèn)并且將所要求的數(shù)據(jù)讀出到鎖存器28的頂部寄存器44。如果本指令是算數(shù)計(jì)算指令,那么來(lái)自第三級(jí)(存儲(chǔ)在鎖存器26中)的結(jié)果現(xiàn)在被存儲(chǔ)在鎖存器28的底部寄存器46中。
盡管在第三和第四鎖存器26和28的每一個(gè)中只示出了兩個(gè)寄存器,但是應(yīng)當(dāng)理解,可存在多于兩個(gè),并且實(shí)際的數(shù)量將取決于流水線可處理的指令類型。
在第五級(jí),第四級(jí)的結(jié)果(存儲(chǔ)在鎖存器28中)被寫(xiě)入鎖存器30(之后稱為“寄存器文件”)。
如上所述,一旦算數(shù)計(jì)算指令已經(jīng)在第三級(jí)中被處理,它就準(zhǔn)備好被寫(xiě)入到寄存器文件30中。但是,如果還存在等待被寫(xiě)入到第四鎖存器中的寄存器文件30的數(shù)據(jù)時(shí),在寄存器文件30處將引起問(wèn)題。如上所述,計(jì)算指令的結(jié)果必須被存儲(chǔ)在第四鎖存器中,而由先前的加載指令加載或通過(guò)執(zhí)行先前算數(shù)指令所生成的數(shù)據(jù)被寫(xiě)到寄存器文件30。
當(dāng)然,將算數(shù)指令的結(jié)果存儲(chǔ)在第四鎖存器中把延遲引入到算數(shù)計(jì)算指令的處理中。
因此,根據(jù)本發(fā)明,在具有不同延遲時(shí)間的指令被發(fā)出(即,指令花費(fèi)了不同的時(shí)間來(lái)計(jì)算其最后結(jié)果)的情況下,通過(guò)允許流水線20中所選擇的一個(gè)或多個(gè)鎖存器變?yōu)橥该鳎墒怪噶罴铀俳?jīng)過(guò)流水線20,有效地將兩個(gè)相鄰的級(jí)合并為一個(gè)級(jí),由此允許數(shù)據(jù)直接傳遞到下一級(jí)并且移除數(shù)據(jù)路徑上不需要的延遲。
如上所述,不同的“等待時(shí)間”意味著在指令以順序方式執(zhí)行時(shí)不要求用相同的時(shí)間量來(lái)完成。例如,在圖2所示的實(shí)施例中,算數(shù)計(jì)算指令具有4的等待時(shí)間,因?yàn)樗恍枰獋鬟f經(jīng)過(guò)第四級(jí),而只需要由五個(gè)流水線級(jí)中的四個(gè)執(zhí)行。但是,加載指令(或與其關(guān)聯(lián)的數(shù)據(jù))需要由五個(gè)鎖存器中的每一個(gè)存儲(chǔ),并由此具有5的等待時(shí)間。諸如比較、分支和跳轉(zhuǎn)指令的不使用第五級(jí)的指令具有3的等待時(shí)間。存儲(chǔ)指令需要使用第四級(jí),但是不需要使用第五(寫(xiě)回)級(jí),因此具有4的等待時(shí)間。
因此,根據(jù)本發(fā)明的一個(gè)方面,通過(guò)將第四級(jí)鎖存器保持在透明狀態(tài)而防止將計(jì)算指令的結(jié)果存儲(chǔ)在第四級(jí)鎖存器,由此在完成第三級(jí)之后允許計(jì)算指令的結(jié)果被直接寫(xiě)入到寄存器文件30。
但是,如果指令是加載指令,該指令必須由所有五個(gè)級(jí)來(lái)處理,并且第四級(jí)不能保持在透明模式。此外,如果在流水線中算數(shù)計(jì)算指令之前有加載指令或其它要求由所有五個(gè)流水線級(jí)處理的指令(比如還沒(méi)有被加速的較早的算數(shù)指令),那么算數(shù)計(jì)算不能被跳過(guò)第四級(jí),并且還必須將其存儲(chǔ)在第四級(jí)中。
因此,為了控制根據(jù)本發(fā)明的第四級(jí)鎖存器28的操作,提供了一種鎖存器控制電路48。鎖存器控制電路48接收第四鎖存器使能信號(hào)En4和控制信號(hào)。
在可替換的流水線中,其中第四級(jí)以外的級(jí)對(duì)于特定指令(這將取決于正被處理的特定指令和/或流水線結(jié)構(gòu))是冗余的,鎖存器控制器或其它鎖存器控制器可與其它流水線鎖存器連接。
鎖存器控制電路48用于控制第四鎖存器28的操作模式。如果在第三級(jí)鎖存器26中的指令當(dāng)前不能加速經(jīng)過(guò)流水線20(例如其是加載指令并且必須獲取第四級(jí)中的數(shù)據(jù),或者它是算數(shù)指令,在該算數(shù)指令之前有加載指令或者要求由所有五個(gè)流水線級(jí)處理的指令,例如還未被加速的更早的算數(shù)指令),那么鎖存器控制電路48使第四鎖存器28由使能信號(hào)En4以普通的方式操作。即是,該使能信號(hào)En4控制鎖存器是否為透明的(即是,當(dāng)它將下一數(shù)據(jù)加載以便存儲(chǔ)時(shí))或者當(dāng)鎖存器被最后使能時(shí)它是否保持在其輸入處的最后值。
但是,當(dāng)?shù)谌?jí)中的指令被加速經(jīng)過(guò)流水線(即,它是一個(gè)指令,例如是算數(shù)指令,在該算數(shù)指令之前有已經(jīng)加速經(jīng)過(guò)第四級(jí)的指令或者之前有不要求第五級(jí)的指令,例如比較指令)時(shí),控制信號(hào)將第四鎖存器保持在透明模式直到處理了要求流水線的第四級(jí)的另一指令。即是,鎖存器控制電路48覆蓋(override)使能信號(hào)En4,并將鎖存器28保持在透明狀態(tài)。
鎖存器28的透明性意味著從鎖存器26提供的數(shù)據(jù)將被直接發(fā)送到第五級(jí)以便寫(xiě)入到寄存器文件30,有效地一起跳過(guò)第四級(jí)。
具有一個(gè)或多個(gè)鎖存器保持打開(kāi)的模式的流水線20有效地使該級(jí)透明,該流水線20被稱為簡(jiǎn)化的流水線。
流水線鎖存器控制器的一個(gè)實(shí)施方式如圖3所示。鎖存器28在普通鎖存模式(其中它由使能信號(hào)En4控制)和保持透明的簡(jiǎn)化模式之間切換。
在該圖中,使能信號(hào)的高位值被譯成變?yōu)橥该鞯逆i存器28。但是,本領(lǐng)域技術(shù)人員將容易理解控制器對(duì)相反位置的自適應(yīng)性,其中使能信號(hào)的低位值使鎖存器透明。
在鎖存器控制器48中,簡(jiǎn)化模式和普通模式之間的切換由控制信號(hào)(Control)確定。該信號(hào)控制多路復(fù)用器50的操作,該多路復(fù)用器50具有使能信號(hào)En4和作為其輸入的供電電壓信號(hào)VDD。
如果確定當(dāng)前指令(例如算數(shù)指令)是加速經(jīng)過(guò)流水線級(jí)的指令,那么控制信號(hào)指明鎖存器28應(yīng)當(dāng)是透明的,而多路復(fù)用器50將由控制信號(hào)控制,使得VDD信號(hào)控制鎖存器28的操作。因此,鎖存器28將被強(qiáng)迫進(jìn)入透明狀態(tài),而不管使能信號(hào)En4的值如何。但是,當(dāng)指令是必須由第四級(jí)存儲(chǔ)和處理的指令時(shí),控制信號(hào)操作多路復(fù)用器50使得使能信號(hào)被傳遞到鎖存器28,允許該指令以普通方式被存儲(chǔ)在第四鎖存器。
應(yīng)當(dāng)理解,上述和如圖3所示的鎖存器控制電路是示例性的,并且僅僅是多種可能用于實(shí)現(xiàn)本發(fā)明的鎖存器控制電路中的一種。許多可替換類型的鎖存器控制電路對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)是清楚的。
因此,具有這種控制器的鎖存器可被切換到透明模式,同時(shí)系統(tǒng)中的其它鎖存器可以響應(yīng)于它們的使能信號(hào)而以普通方式保持鎖存。
在該示例的實(shí)施例中,通過(guò)確定有關(guān)指令的身份和流水線的當(dāng)前狀態(tài)來(lái)生成控制信號(hào)。該狀態(tài)是出現(xiàn)或不出現(xiàn)加速經(jīng)過(guò)第四級(jí)。如上所述,如果先前的指令是加載指令或者如果加載指令已經(jīng)較早地被執(zhí)行并且還未跟隨有不使用寫(xiě)回(第五)級(jí)的指令,那么加速將不會(huì)出現(xiàn)。如果還沒(méi)有執(zhí)行過(guò)加載指令,或者如果已經(jīng)執(zhí)行了加載指令但是后續(xù)跟隨有(不需要立即跟隨)不要求寫(xiě)回(第五)級(jí)的指令,那么加速將會(huì)出現(xiàn)。
可以理解,控制信號(hào)的定時(shí)必須小心控制。如果在第五級(jí)中的任何數(shù)據(jù)被寫(xiě)到寄存器文件之前,第四鎖存器被切換到透明模式,那么數(shù)據(jù)將會(huì)丟失。因此,對(duì)于經(jīng)過(guò)流水線的數(shù)據(jù)流來(lái)說(shuō),任何鎖存器的切換必須是“安全的”。
圖4示出了根據(jù)本發(fā)明的示例五級(jí)流水線的操作。
在圖4的上半部中,第一、第二、第三、第四和第五鎖存器中每一個(gè)的使能信號(hào)被示出(分別為En1、En2、En3、En4或En5)。實(shí)線標(biāo)識(shí)操作鎖存器所使用的信號(hào)。在第一、第二、第三和第五鎖存器的情況下,這些信號(hào)對(duì)應(yīng)于其各自的使能信號(hào),而在第四鎖存器的情況下,當(dāng)鎖存器以普通模式操作時(shí),該信號(hào)對(duì)應(yīng)于相應(yīng)的使能信號(hào),并且當(dāng)鎖存器以簡(jiǎn)化或透明模式操作時(shí),用“高位”值來(lái)覆蓋該信號(hào)。En4上的虛線示出第四鎖存器的傳統(tǒng)使能信號(hào)。
圖4的下半部示出了在特定時(shí)間在特定流水線級(jí)中出現(xiàn)的指令。第一流水線級(jí),即從指令存儲(chǔ)器32獲取指令并且在第一鎖存器22之前的級(jí),被表示為IF。分別在第二、第三、第四和第五鎖存器之前的第二、第三、第四和第五級(jí)被分別表示為ID、EX、MEM和WB。
在該示例流水線中,使用了三種不同類型的指令。第一類型指令要求被流水線中五個(gè)級(jí)中的每一個(gè)執(zhí)行。加載指令是該類型指令的一個(gè)例子。第二類型指令不要求被第四級(jí)MEM執(zhí)行,但卻需要被寫(xiě)入到第五鎖存器。算數(shù)計(jì)算指令,諸如加法(add)、減法(sub)、邏輯或(orr)以及邏輯與(and)是第二類型指令的例子。第三類型指令不需要在執(zhí)行之后被寫(xiě)到第五鎖存器,并且在第三或第四級(jí)之后被完全處理。比較(comp)、跳轉(zhuǎn)、分支和存儲(chǔ)指令是第三類型指令的例子。
圖4的下半部示出了指令集如何根據(jù)本發(fā)明傳播經(jīng)過(guò)流水線。在該所示的例子中,正被處理的指令以如下順序出現(xiàn)sub、orr、load、add、sub、comp、add、and、sub、orr、and。
在列1中,示出了在第一處理周期期間流水線的狀態(tài),加速經(jīng)過(guò)第四鎖存器是可能的,如虛線框52所示。這里,在第四鎖存器保持為透明模式時(shí),第四級(jí)中的“sub”指令已經(jīng)傳播經(jīng)過(guò)到第五級(jí)??梢钥闯?,使能信號(hào)En4被保持為“高位”,由此將第四鎖存器保持為透明狀態(tài)。
在列2中可看出類似情況,列2表示了第二處理周期中流水線的狀態(tài)。這里,“orr”指令傳播經(jīng)過(guò)第四和第五級(jí)。
但是,在“orr”指令之后的下一指令是“l(fā)oad”指令,并且其使用了第四級(jí)來(lái)從存儲(chǔ)器34加載需要的數(shù)據(jù),第四鎖存器不能再保持為透明模式。因此在從列2過(guò)渡到列3期間,第四鎖存器被切換回普通模式,這可以從En4中看出。因此,“l(fā)oad”指令被存儲(chǔ)在第三鎖存器,并且第四鎖存器和第五級(jí)在第三處理周期期間是不活動(dòng)的。
在第四處理周期期間,“l(fā)oad”指令已經(jīng)傳遞到第五級(jí)中,在此其結(jié)果被寫(xiě)到寄存器文件。
在第五處理周期期間,盡管“l(fā)oad”指令已經(jīng)由流水線完全執(zhí)行,但是還不可能加速任何后續(xù)的指令。具體地,在“l(fā)oad”指令之后的指令是“add”、“sub”、“comp”和“add”。由于“l(fā)oad”指令后的兩個(gè)指令是第二類型的指令(即它們不需要傳遞經(jīng)過(guò)第四級(jí),但需要被寫(xiě)到寄存器文件),因此不可能將第四鎖存器再推回到透明模式。因此,在第五和第六處理周期期間,第四鎖存器由En4以普通方式操作。
但是,由于下一個(gè)指令“comp”是第三類型(即它在執(zhí)行之后不需要被寫(xiě)到第五鎖存器,并且在第三或第四級(jí)之后被完全執(zhí)行),因此在第六處理周期期間,在第四級(jí)(MEM)中的流水線創(chuàng)建了一個(gè)“槽”。因此,這個(gè)“槽”允許流水線退回到簡(jiǎn)化狀態(tài),其中后續(xù)指令可加速經(jīng)過(guò)第四級(jí)。
因此,在第六和第七處理周期之間的過(guò)渡周期中,用將第四鎖存器保持為透明狀態(tài)的“高位”信號(hào)覆蓋第四鎖存器使能信號(hào)。因此,當(dāng)?shù)谌i存器以普通方式被切換以便接收下一指令或計(jì)算結(jié)果(“add”指令)時(shí),該指令傳播經(jīng)過(guò)第四和第五級(jí)兩者,盡管它們是單個(gè)的級(jí)。并且,這種“單個(gè)的級(jí)”由虛線框52表示。
流水線將繼續(xù)處于簡(jiǎn)化狀態(tài),直到另一“l(fā)oad”指令被處理。
本發(fā)明的使用提供相對(duì)現(xiàn)有系統(tǒng)的兩個(gè)顯著優(yōu)點(diǎn)。第一個(gè)優(yōu)點(diǎn)是,對(duì)寄存器文件的一些寫(xiě)回現(xiàn)在可早于現(xiàn)有技術(shù)的處理器發(fā)生,換句話說(shuō),這意味著一些指令的執(zhí)行速度增加了。這增加了微處理器的性能。
第二個(gè)優(yōu)點(diǎn)在于,在流水線級(jí)被簡(jiǎn)化時(shí),不需要在處理循環(huán)期間激活該級(jí)的鎖存器,并因此降低了芯片的功耗。
應(yīng)當(dāng)理解,上述的實(shí)施例是說(shuō)明性的而不限制本發(fā)明,并且本領(lǐng)域技術(shù)人員將能夠設(shè)計(jì)許多替換實(shí)施例而不會(huì)偏離所附權(quán)利要求的范圍。詞語(yǔ)“包括”不排除權(quán)利要求所列之外的其它元件或步驟的存在。
權(quán)利要求
1.一種適于處理多種類型指令的電子電路,該電子電路包括第一和第二流水線級(jí);和位于所述流水線級(jí)之間的鎖存器;其中該電子電路適于在處理響應(yīng)于使能信號(hào)而打開(kāi)和閉合鎖存器的第一類型指令時(shí)以普通模式操作,并且在處理保持打開(kāi)鎖存器的第二類型指令時(shí)以簡(jiǎn)化模式操作,使得指令傳播經(jīng)過(guò)第一和第二流水線級(jí)而不被存儲(chǔ)在鎖存器中;其中第一類型指令要求由第一和第二流水線級(jí)處理而第二類型指令要求由第二流水線級(jí)處理。
2.如權(quán)利要求1所述的電子電路,還包括與鎖存器連接的鎖存器控制電路,該鎖存器控制電路適于在電子電路處于普通模式時(shí)用使能信號(hào)來(lái)控制鎖存器,并且適于在電子電路處于簡(jiǎn)化模式時(shí)將鎖存器保持打開(kāi)。
3.如權(quán)利要求2所述的電子電路,其中鎖存器控制電路接收指明電子電路操作模式的信號(hào)。
4.如權(quán)利要求1所述的電子電路,其中所述電子電路適于處理第三類型的指令,其中第三類型的指令不要求由第二流水線級(jí)處理。
5.如權(quán)利要求4所述的電子電路,其中所述電子電路適于以普通模式操作直到第三類型的指令被處理。
6.如權(quán)利要求5所述的電子電路,其中,在第三類型的指令被處理之后,如果隨后的指令是第二或第三類型,那么所述電子電路適于以簡(jiǎn)化模式操作。
7.如權(quán)利要求4所述的電子電路,其中所述電子電路適于以簡(jiǎn)化模式操作直到第一類型指令被處理。
8.如權(quán)利要求1所述的電子電路,其中第一類型指令包括加載指令。
9.如權(quán)利要求1所述的電子電路,其中第二類型指令包括算數(shù)計(jì)算指令。
10.如權(quán)利要求4所述的電子電路,其中第三類型指令包括比較、存儲(chǔ)、分支和跳轉(zhuǎn)指令。
11.如權(quán)利要求1所述的電子電路,其中第一流水線級(jí)包括數(shù)據(jù)存儲(chǔ)器。
12.如權(quán)利要求1所述的電子電路,其中第二流水線級(jí)包括寫(xiě)回級(jí)。
13.一種操作電子電路的方法,該電子電路適于處理多種類型指令,該電子電路包括第一和第二流水線級(jí),以及位于所述流水線級(jí)之間的鎖存器,該方法包括在處理響應(yīng)于使能信號(hào)而打開(kāi)和閉合鎖存器的第一類型指令時(shí)以普通模式操作電子電路,并且在處理保持打開(kāi)鎖存器的第二類型指令時(shí)以簡(jiǎn)化模式操作電子電路,使得指令傳播經(jīng)過(guò)第一和第二流水線級(jí)而不被存儲(chǔ)在鎖存器中;其中第一類型指令要求由第一和第二流水線級(jí)處理而第二類型指令要求由第二流水線級(jí)處理。
14.如權(quán)利要求13所述的方法,其中所述電子電路還適于處理第三類型的指令,其中第三類型的指令不要求由第二流水線級(jí)處理。
15.如權(quán)利要求14所述的方法,還包括以普通模式操作電子電路直到第三類型的指令被處理的步驟。
16.如權(quán)利要求15所述的方法,其中,在第三類型的指令被處理之后,該方法還包括如果隨后的指令是第二或第三類型,那么以簡(jiǎn)化模式操作電子電路的步驟。
17.如權(quán)利要求14所述的方法,還包括以簡(jiǎn)化模式操作電子電路直到第一類型指令被處理的步驟。
18.如權(quán)利要求13所述的方法,其中第一類型指令包括加載指令。
19.如權(quán)利要求13所述的方法,其中第二類型指令包括算數(shù)計(jì)算指令。
20.如權(quán)利要求14所述的方法,其中第三類型指令包括比較、存儲(chǔ)、分支和跳轉(zhuǎn)指令。
全文摘要
提供了一種適于處理多種類型指令的電子電路,該電子電路包括第一和第二流水線級(jí);和位于所述流水線級(jí)之間的鎖存器;其中該電子電路適于在處理響應(yīng)于使能信號(hào)而打開(kāi)和閉合鎖存器的第一類型指令時(shí)以普通模式操作,并且在處理保持打開(kāi)鎖存器的第二類型指令時(shí)以簡(jiǎn)化模式操作,使得指令傳播經(jīng)過(guò)第一和第二流水線級(jí)而不被存儲(chǔ)在鎖存器中;其中第一類型指令要求由第一和第二流水線級(jí)處理而第二類型指令要求由第二流水線級(jí)處理。
文檔編號(hào)G06F9/00GK1930549SQ200580007493
公開(kāi)日2007年3月14日 申請(qǐng)日期2005年2月24日 優(yōu)先權(quán)日2004年3月10日
發(fā)明者A·J·賓克, M·N·O·德克萊克 申請(qǐng)人:皇家飛利浦電子股份有限公司