專利名稱:用于設計數(shù)字處理器的方法以及裝置的制作方法
技術領域:
本發(fā)明涉及數(shù)字處理器的設計,尤其涉及用戶定制的處理器的設計。
背景技術:
在計算機領域中RISC(精簡指令集計算機)處理器是大家所熟知的。RISC處理器與非-RISC(通常所說的“CISC”)處理器相比,通常具有利用充分精簡指令集的基本特性。一般RISC處理器機器指令并不全是微編碼的,可以立即執(zhí)行而不用解碼,因而在處理速度上可以提供有意義的經(jīng)濟效益。這一“流線型的”指令處理能力還允許進一步簡化處理器的設計(與非RISC設備相比),從而允許更小的硅片和更少的生產(chǎn)成本。
此外,RISC處理器典型的特征在于若干或所有的下列屬性(i)裝入/存儲存儲器結構體系(也就是,僅在裝入和存儲指令時必須存取存儲器;其他的指令經(jīng)過處理器中的內(nèi)部寄存器操作);(ii)多數(shù)指令的單周期執(zhí)行;(iii)固定長度易于解碼的指令格式;(iv)處理器和編譯器的統(tǒng)一性,以及較簡單和更易于編寫的一個編譯器;(v)硬連線控制;(vi)較少的尋址模式;(vii)相對靜態(tài)的指令格式;和(viii)流水線操作。
RISC裝入/存儲體系結構如上所述,通過限制存取存儲器而只是裝入和存儲指令,RISC處理器的裝入/存儲體系結構大幅簡化了設備的操作;其他的操作是“寄存器到寄存器”。因此,典型的RISC處理器還使用大量的內(nèi)部寄存器來處理這樣的操作。以下說明一個簡單的裝入/存儲的支持加法的運算運算a=b+c指令load r3,a 用來自源定位a的值裝入寄存器3load r4,b 用來自源定位b的值裝入寄存器4add r5,r3,r4加寄存器3和4,并在寄存器5中存儲結果store e,r5 在目的地位置e存儲寄存器5的內(nèi)容如上例所示,原有技術的RISC通常是用一個中間寄存器(例如,r5)來保持整個裝入/存儲操作過程中到存儲器的數(shù)據(jù)。由于大多數(shù)RISC處理器依靠這樣的裝入/存儲機制來存取和修改存儲器的值,當期望一種簡單的存儲器存取時指令的效率受損。
尋址模式一種尋址模式是存取一個可以在任何地方被發(fā)現(xiàn)的操作數(shù)的一種方法。通常,操作數(shù)可以位于存儲器中或一個CPU寄存器中或者它們可以是被定義在代碼本身中的文字值。在微處理器中可能使用的尋址模式尤其包括,“隱含的”尋址,其中操作碼規(guī)定操作數(shù);“立即”尋址,其中指令本身包含操作數(shù);“直接”尋址,其中操作數(shù)為一個存儲器地址或寄存器目的地;“非直接”尋址,其中操作數(shù)規(guī)定期望操作數(shù)的地址;和“索引”尋址,其中添加或者說操作兩個或多個值以得到操作數(shù)的地址。
在上述列出的尋址模式中,“立即”尋址在一個RISC處理器中經(jīng)常使用,因為在指令內(nèi)立即包含操作數(shù)。如上所述,一個立即指令(通常由語法“imm”表示或它的語法派生)一般在指令本身中包含操作數(shù)。一個立即指令通常具有這樣的操作數(shù),一個文字值跟隨一個特殊的字符比如“#”符號。操作數(shù)的格式可以變化。例如,指令可以具有如下的一個操作數(shù)$1234 ;操作數(shù)是文字值$1234Buffer;操作數(shù)是被附屬到“Buffer”的文字值‘Y’ ;操作數(shù)是ASCII代碼大寫字母Y
短立即與長立即當使用立即尋址/數(shù)據(jù)時,在規(guī)定操作數(shù)的雙親指令字內(nèi)可以頻繁編碼較小的數(shù)據(jù)字(通常少于指令字大小的的一半)。這種方法經(jīng)常稱為“短立即”尋址/數(shù)據(jù);然而,這種方法明顯限制了可在單一指令字內(nèi)使用的可允許地址/操作數(shù)。相反,長立即尋址/數(shù)據(jù)需要多于一個的指令字,但去掉了許多與短立即方式相關的限制。
寄存器編碼RISC處理器內(nèi)的寄存器緊密地依靠指令集,因為通過指令這些寄存器被頻繁規(guī)定作為操作數(shù),或可替換的用于產(chǎn)生關于操作數(shù)的地址。
原有技術通常這樣構成指令編碼方案將指令全部位數(shù)中的一或二位用于表示立即操作數(shù)的用途,或者通過一種可替換的指令類型隱含立即操作數(shù)的用途,如下所示。通常利用一個固定的位集——或者利用其它情況下會用于描述一個源數(shù)據(jù)寄存器的那些位——在指令字中對立即數(shù)據(jù)進行編碼。
add r0,r1,r2 ;r0=r1+r2;寄存器-寄存器相加addi r0,r1,10 ;r0=r1+10;寄存器-立即相加這種方法符合試圖最小化指令字和寄存器容量的趨勢,從而減少了完成處理器設計需要的所要求的硅。然而,利用指令操作碼來推斷保持在指令內(nèi)的立即數(shù)據(jù)減少了可用以編碼指令的靈活性。例如,使用上述原有技術編碼的方法,不可能有效的使用一個單一的指令產(chǎn)生多個長立即常數(shù)。此外,如果一個運算(比如一個減法)是不可交換的,并需要讓立即數(shù)據(jù)表示成減法器或減數(shù),就需要有指令的兩個立即版本以及指令的寄存器-寄存器版本。圖1a-1c示例了典型的原有技術的用于寄存器-寄存器、寄存器-立即和立即-寄存器指令的寄存器編碼格式。使用指令字的一部分來編碼立即數(shù)據(jù),或者允許一個后面的指令字被全部用于立即數(shù)據(jù)以便可以允許編碼更大范圍的值,在這二者中常常不可能進行選擇通常,原有技術的處理器不允許將所有立即數(shù)據(jù)的組合與所有指令的方式一起使用。使用指令字的一部分來編碼立即數(shù)據(jù),或者允許一個后面的指令字被全部用于立即數(shù)據(jù)以便可以允許編碼更大范圍的值,在這二者中常常不可能進行選擇。在一個帶有用戶-可擴展指令集的處理器中,這就對一個程序員任何使用一個新指令設置了一個限制,尤其是如果新指令的功能是不可交換的。
流水線操作流水線操作是一種技術,用于通過把處理器中運算的順序分成片段來增加處理器的性能,當可能時這些片段能以并行方式有效地被執(zhí)行。在一個典型的流水線處理器中,與處理器運算操作程序(比如加法,乘法,除法等等)相關的運算單元通常被“分段”,以便整個任意時鐘周期內(nèi)在該單元的一個給定的片段中執(zhí)行操作的一個具體部分。因此,在任意給定的時鐘周期這些單元可以在一個不同計算的結果上進行運算。作為一個例子,在第一時鐘周期中兩個數(shù)A和B被送到乘法單元10并由單元的第一片段12進行部分處理。在第二時鐘周期中,來自A和B相乘的部分結果被送到第二片段14,同時第一片段12接收開始進行處理的兩個新的數(shù)(比方說C和D)。最終結果是在一個初始啟動周期之后,每個時鐘周期由運算單元10執(zhí)行一次乘法運算。
從一個體系結構到另一個流水線的深度可以變化。在本文中,術語“深度”指的是在流水線中存在的分立階段的數(shù)量。通常,帶有較多階段的一個流水線執(zhí)行程序較快,但如果流水線的效果是明顯可見的話,對于程序員來說編程也更加困難。大多數(shù)流水線處理器是三階段(取指令、解碼和執(zhí)行)或四階段(比如取指令、解碼、操作數(shù)提取和執(zhí)行,或者可替換的,取指令、解碼/操作數(shù)提取、執(zhí)行和寫回),盡管可以使用更多的或更少的階段。
當對一個流水線處理器的指令集進行開發(fā)時,必須考慮幾種不同類型的“冒險”。例如,為了爭奪相同的資源(比如總線,寄存器,或其他的功能單元)從重疊指令中會出現(xiàn)所謂的“結構上的”或“資源爭奪”的危險性,這一般利用一個或多個流水線阻塞來解決。在讀/寫沖突的情況下出現(xiàn)所謂的“數(shù)據(jù)”流水線危險,該沖突可以改變存儲器或寄存器存取的順序。“控制”冒險通常產(chǎn)生于在程序流中的轉移或類似的改變。
使用流水線結構通常需要以聯(lián)鎖來處理這些冒險。例如,考慮這種情況,即在一個早先流水線階段中的一個跟隨指令(n+1)需要來自一個后面階段指令n的結果。解決上述問題的一個簡單方法是通過一個或多個時鐘周期延遲在指令解碼階段中的操作數(shù)計算。然而這種延遲的一個結果是,在處理器上一給定指令的執(zhí)行時間部分地通過流水線內(nèi)圍繞它的指令而被確定。這使得用于處理器的代碼優(yōu)化變得復雜,因為對于程序員來說經(jīng)常難于定點代碼內(nèi)的聯(lián)鎖情況。
在處理器中可以使用“記分板”來實現(xiàn)聯(lián)鎖,在該方法中,把一個位附加到每個處理器寄存器以便作為該寄存器內(nèi)容的一個標志;特別是,是否(i)寄存器的內(nèi)容已經(jīng)被更新和因此準備使用,或者(ii)該內(nèi)容正在經(jīng)受修改,比如由另外的處理程序被寫。這種記分板在一些體系結構中還用于產(chǎn)生防止指令執(zhí)行的聯(lián)鎖,該指令依賴于來自正在執(zhí)行的記分板的寄存器的內(nèi)容,直到記分板表明寄存器準備好為止。這種類型的方法稱為“硬件”聯(lián)鎖,因為經(jīng)過處理器內(nèi)的硬件,純粹通過記分板的驗證來調(diào)用該聯(lián)鎖。這樣的聯(lián)鎖產(chǎn)生“阻塞”,防止數(shù)據(jù)相關指令的執(zhí)行(從而阻塞流水線),直到寄存器準備好為止。
可替換的,NOP(空操作操作碼)可以被插入代碼中以便當期望時延遲適當?shù)牧魉€階段。后者的方法稱為“軟件”聯(lián)鎖,具有增加了代碼尺寸的缺點,并且使用需要聯(lián)鎖的指令增加了程序的復雜性。此外,大量使用軟件聯(lián)鎖的設計不易于對它們的代碼結構進行全面的優(yōu)化。
轉移和跳轉指令在處理器設計中另一個重要的考慮是程序轉移或“跳轉”。所有的處理器都支持某些類型的轉移指令。簡單來說,在程序流被中斷或被改變的情況下涉及轉移。此外,諸如循環(huán)設置和子程序調(diào)用指令也以相同的方式中斷或改變程序流。術語“跳轉延遲時隙”通常指的是在一個轉移或跳轉指令被解碼之后在一個流水線內(nèi)的時間段。轉移(或裝入)之后的指令被執(zhí)行的同時等待轉移/裝入指令的完成。轉移可以是有條件的(也就是基于一個或多個參數(shù)的真值或值)或無條件的。它也可以是絕對的(例如,基于一個絕對存儲器地址),或相對的(例如,基于相對的地址并與任何特殊存儲器地址無關)。
在流水線系統(tǒng)上進行轉移具有一種非常有意義的作用。當一個轉移指令被插入并通過處理器的指令解碼階段被解碼時(表示處理器必須開始執(zhí)行一個不同的地址),在指令序列中的下一個指令字已經(jīng)被提取和插入流水線中。解決該問題的一個方案是清除提取的指令字并暫停或阻塞另外的提取操作直到轉移指令被執(zhí)行完畢。然而,該方法需要在幾個指令周期中轉移指令的執(zhí)行結果,通常指令周期的數(shù)目等于在處理器設計中使用的流水線的深度。這個結果對于處理器的速度和效率是不利的,因為在這一期間處理器不能實施其它的運算。
可替換的,可以使用一種延遲的轉移方法。在該方法中,當一個轉移指令到達解碼階段時流水線不被清除,而在轉移被執(zhí)行之前通常執(zhí)行存在于流水線先前階段中的后面的指令。因此,在該轉移指令被解碼的同時由指令周期數(shù)被延遲的出現(xiàn)的轉移需要執(zhí)行所有流水線中隨后的指令。與上述的多周期轉移相比,這種方法增加了流水線的效率,但也增加了基本代碼的復雜性(程序員易于理解)。
基于上述內(nèi)容,在一個流水線和聯(lián)鎖的RISC處理器內(nèi)對于寄存器編碼需要一種改進的方法。這樣一種改進的方法可以使程序員/設計者在處理器內(nèi)的編碼寄存器中增加靈活性,而且克服與裝入/存儲體系結構相關的一些缺點(例如,需要使用一個立即寄存器來存儲立即值),從而優(yōu)化指令集和處理器性能。而且,一個程序員可以在任何處理器的指令字的源字段中推斷使用的短立即數(shù)據(jù)(保持在指令字中)或長立即數(shù)據(jù)(在一個后面的指令字中)。
理想情況下,該改進的方法還兼容其它的處理器設計考慮方法,其中尤其包括聯(lián)鎖和轉移控制機制。此外,在一個具體應用的方式中,能夠容易地綜合處理這種改進的流水線處理器設計,并且使用這些可獲得的綜合工具,對于設計者和程序員來說是實際有效的。
發(fā)明內(nèi)容
本申請的優(yōu)先權是在1999年5月13日申請的第60/134,253號美國臨時專利申請,其名稱為“Method And Apparatus For Synthesizing AndImplementing Intergrated Circuit Designs”,以及共同待審的在1999年10月14日申請的第09/418,663號美國專利申請(此申請現(xiàn)已授權,成為美國專利第6862563號),其標題為“Method And Apparatus ForManaging The Configuration And Functionality Of A SemiconductorDesign”,它的優(yōu)先權是名稱相同的于1998年10月14日申請的第60/104,271號美國臨時專利申請。
本發(fā)明通過提供一種用于在流水線處理器體系結構內(nèi)編碼寄存器和執(zhí)行指令的改進的方法和裝置來滿足上述的需要。
在本發(fā)明的的一個方面中,公開了表示寄存器立即操作數(shù)使用情況的“松散”編碼寄存器數(shù)的一種方法。在一個實施例中,在處理器的長指令字內(nèi)使用多個擴展的(例如六位)寄存器字域,從而在可使用的指令和操作數(shù)格式中提供增強的靈活性。此外,該方法有能力把立即值直接存儲到存儲器中而不使用一個中間存儲器。還可以推斷在任何處理器指令的源字段中使用的短立即數(shù)據(jù)(保持在指令字中)或長立即數(shù)據(jù)(在一個后面的指令字中)。此外,利用該方法可以更有效地處理不可交換的運算。
在本發(fā)明的第二個方面中,公開了一種結合上述跳轉延遲時隙方法的綜合集成電路設計的改進方法。在一個示范性實施例中,該方法包括獲得用戶輸入的有關設計的配置;基于用戶的輸入和現(xiàn)存的功能庫生成用戶化的硬件描述語言(HDL)功能塊;基于用戶的輸入和程序庫確定設計層次并產(chǎn)生一個層次文件,新的庫文件,和程序描述文件;運行程序描述文件生成結構的HDL和稿本;運行生成的稿本生成一個用于模擬程序的程序描述文件和一個綜合稿本;以及基于產(chǎn)生的設計和綜合稿本對設計進行綜合。
在本發(fā)明的第三個方面中,公開了用于綜合處理器設計的一種改進的計算機程序和具體實現(xiàn)上述內(nèi)容的方法。在一個實施例中,計算機程序包括存儲在一個微型計算機的磁存儲設備上的一個目標代碼表達式,并適于在其中的中央處理器上運行。計算機程序進一步包括一個交互式的,菜單控制的圖形用戶界面(GUI),因而便于使用。
在本發(fā)明的第四個方面,公開了實現(xiàn)上述“松散”寄存器編碼和功能性的門邏輯,以及利用上述綜合處理器設計的方法的綜合處理的門邏輯。在一個實施例中,用于在寄存器內(nèi)選擇第一源字段的門邏輯包括一串八個4位多路復用器。
在本發(fā)明的第五個方面,公開了一種利用了上述“松散”寄存器編碼方法的改進的處理器結構。在一個實施例中,處理器包括具有一個多階段流水線的精簡指令集計算機(RISC),該多階段流水線利用“松散”寄存器體系結構,其中有效的把立即值立即存儲到存儲器而不使用中間寄存器。在另一個實施例中,處理器包括一個處理器芯片,DSP芯片,帶有多個存儲體的一個存儲器,和用于使存儲器內(nèi)的存儲體并行對接DSP功能的一個存儲器接口。
在本發(fā)明的第六個方面中,公開了用于運行上述計算機程序的一種改進的裝置,該計算機程序用于綜合與流水線處理器相關的邏輯。在一個示范性實施例中,系統(tǒng)包括一個獨立的微型計算機系統(tǒng),該微型計算機系統(tǒng)具有一個顯示器,中央處理器,數(shù)據(jù)存儲設備,和輸入設備。
圖1a-1c示例了用于RISC處理器的一個典型的原有技術的寄存器編碼方案。
圖2是一個邏輯流程圖,示例了按照本發(fā)明在一個流水線處理器內(nèi)的“松散”編碼寄存器中定位數(shù)據(jù)的普通方法。
圖3a-3c圖示了本發(fā)明的第一實施例的寄存器編碼結構。
圖4是一個邏輯流程圖,示例了按照本發(fā)明對結合了“松散”寄存器編碼的處理器邏輯進行綜合的普通方法。
圖5是一個示意圖,示例了為圖3的指令字的第一字段選擇數(shù)據(jù)源使用的綜合邏輯的一個實施例。
圖6是一個示意圖,示例了用于實現(xiàn)圖5的數(shù)據(jù)源選擇邏輯的4位多路復用器的綜合邏輯(無約束的)的第一實施例。
圖7是一個示意圖,示例了用于實現(xiàn)圖5的數(shù)據(jù)源選擇邏輯的4位多路復用器的綜合邏輯(有約束的)的第二實施例。
圖8是一個示意圖,示例了用于實現(xiàn)本發(fā)明的標志設置功能性的綜合邏輯(無約束的)的第一實施例。
圖9是一個示意圖,示例了用于實現(xiàn)本發(fā)明的標志設置功能性的綜合邏輯(有約束的)的第二實施例。
圖10是按照本發(fā)明的結合“松散”寄存器編碼的一個處理器設計的方框圖。
圖11是結合本發(fā)明的硬件描述語言的一個計算設備的功能方框圖,用于綜合圖5-9的邏輯裝置。
具體實施例方式
現(xiàn)在參考給出的附圖,其中相同的數(shù)字涉及整體相同的部分。
在此所使用的,術語“處理器”意味著包括任何集成電路或其它的能夠在至少一個指令字上執(zhí)行一個操作的其他的設備,包括,但不限于,精簡指令集芯片(RISC)處理器,比如由本專利受讓人制造的ARC用戶結構的芯片,中央處理器(CPU),以及數(shù)字信號處理器(DSP)。
此外,作為本領域普通技術人員來說,應理解在此使用的術語“階段”涉及一個流水線處理器內(nèi)的各種連續(xù)階段;即階段1相當于第一流水線階段,階段2相當于第二流水線階段,依此類推。盡管下面的討論重點針對一個三階段流水線(即取指令、解碼和執(zhí)行階段),但應該清楚在此公開的方法和裝置可廣泛地應用于帶有一個或多個流水線的處理器結構,流水線具有多于或少于三階段。
此外應注意的是,盡管下面的描述僅與VHSIC硬件描述語言(VHDL)有關,然而諸如Verilog的其它硬件描述語言也可以用于描述具有相同作用的本發(fā)明的各種實施例。而且,雖然示例了一個Synopsys綜合引擎,比如Design Compiler 1999.05(DC99)來用于綜合處理在此所述的各種實施例,但也可以使用其它的綜合引擎,比如從Cadence Design Systems,Inc.以及其他地方可獲得的Buildgates。IEEEstd.1076.3-1997,IEEE Standard VHDL Synthesis Packages描述了一種用于規(guī)定一種基于硬件描述語言的設計的一種工業(yè)接受的語言以及綜合處理能力,這對于本領域普通技術人員來說,是可以得到的。
最后,應該清楚盡管下面描述了本申請受讓人利用上述的綜合處理引擎和VHSIC硬件描述語言來綜合處理邏輯的具體實施例,該具體實施例以不同方式受到約束,但這些實施例僅僅作為本發(fā)明的設計示例。
現(xiàn)在描述按照本發(fā)明的用于松散寄存器編碼的方法和裝置。通常,本發(fā)明利用一種擴展的多位寄存器字段來表示寄存器立即操作數(shù)的使用情況。簡而言之,本發(fā)明包括使用處理器內(nèi)的寄存器數(shù)來表示短立即(“shimm”)和長立即(“l(fā)imm”)操作數(shù)。該方法中稱作的“松散”是因為它有效地擴展或拆開表示信息通常所需的位數(shù)。例如,本發(fā)明的CPU芯片的指令字的實施例使用6位寄存器字域來表示寄存器AND立即操作數(shù)使用情況(例如,shimm/limm)。相反,典型的原有技術的指令字僅利用1或2位來表示這種信息,或者利用指令的操作碼隱含存在的立即數(shù)據(jù)。因此,該方法是稍微有點違反直覺的,因為它使用了多于最少所需的位容量來表示信息。
然而,本發(fā)明的“松散”寄存器編碼體系結構對基于RISC的處理器(比如先前所述應用的ARC芯片)有許多好處,包括(i)整體增強編程靈活性;(ii)能夠把立即值直接存儲到存儲器而不用一個中間寄存器;(iii)能夠在第一源寄存器字段(“源1”)或第二源寄存器字段(“源2”)中使用短或長立即數(shù)據(jù),這對于帶有不可交換特性的指令是有益的;(iv)通過使用在一個指令的目的地址字段中的一個‘立即數(shù)據(jù)’寄存器,能夠指示應該丟棄一個指令的結果。這能夠使程序員在兩個值之間作出比較并設置作為結果的標志,而不引起處理器中任何一般目的的寄存器發(fā)生改變;和(v)能夠使用短和長立即數(shù)據(jù)作為一個指令中的源數(shù)據(jù)。在擴展指令可以被加到一個處理器的情況下,后者的能力證明在設計和專用指令的操作中是有用的。由于多數(shù)RISC處理器依靠一種裝入—存儲機制來存取和修改存儲器值(也就是,只有裝入和存儲操作可以存取存儲器空間),當期望簡單的存儲器存器時指令的效率受損。通過使用本發(fā)明的松散編碼方案,程序存儲器可以被優(yōu)化,同時在RISC結構體系中實現(xiàn)固有的簡單性。
現(xiàn)在參考圖2,描述按照本發(fā)明在“松散”編碼的寄存器內(nèi)定位數(shù)據(jù)的普通方法的一個實施例。方法200的第一步驟202包括確定是否當前指令內(nèi)所關心的寄存器號指定了一個通用寄存器(例如,以下表1的實施例中的r0-r31)。如果寄存器號確實指定了一個通用寄存器,則經(jīng)步驟204從指定的芯片中選擇數(shù)據(jù),并完成用于那個寄存器號的處理過程200。如果未指定一個通用寄存器,寄存器號接著經(jīng)步驟206被驗證以便確定是否它指定了一個立即數(shù)據(jù)值。如果指定了一個立即數(shù)據(jù)值,則立即數(shù)據(jù)值的類型,即短立即(shimm)或長立即(limm)在步驟208中被確定。如果在步驟206中不指定一個立即數(shù)據(jù)值,在步驟210從引證的源中獲得適當?shù)闹付ǖ臄?shù)據(jù)值。
如果在步驟208中指定了短立即數(shù)據(jù),從當前指令字的相關部分提取數(shù)據(jù)。如果在步驟208中指定了長立即數(shù)據(jù),則從后面的指令字中提取適當?shù)臄?shù)據(jù)。
在如下表1中,描述了使用上述的方法的本發(fā)明的寄存器和指令體系結構的第一實施例表1
如表1所示,指定了全部64個寄存器(即r0-r63)。第一組32個寄存器(r0-r31)是用于反映寄存器值的通用寄存器。接著的28個寄存器(r32-r59)是指定特殊應用的擴展寄存器。接著的寄存器(r60)是循環(huán)計數(shù)寄存器,在ARC處理器中它部分地用作零開銷循環(huán)機構,以便維護保留在一個循環(huán)結構中重復號的計數(shù)。利用最后的三個寄存器(r61-r64)來表示一個立即操作數(shù)據(jù)(分別為shimmf,limm或shimm)。由于需要用于設置標志的指令字中的位來編碼短立即數(shù)據(jù),因此有兩個shimm的版本;一個帶有符號設置(即shimmf)而另一個沒有符號設置(即shimm)。圖3a-3c圖示了按照本發(fā)明寄存器編碼結構的上述上述的方法使程序員/設計者完全靈活的指定各種不同的指令格式,包括下列八種示例的指令格式表2
其中op=指令操作<cc>=用于執(zhí)行的任選條件代碼<f>=任選的設置狀態(tài)標志a=目的地寄存器b=源1寄存器c=源2寄存器s=shimm(9位帶符號的短立即)l=limm(32位長立即)應該清楚,上述規(guī)定的表2的八個指令格式在此僅僅是為了示例,依賴于特殊的應用可以使用其他的格式。例如,可以使用具有少于或多于上述示例的64個寄存器的寄存器數(shù)的一種指令格式。而且,本發(fā)明可以被具體到僅具有兩個源操作數(shù)的一種指令格式,或者一個源和一個目的操作數(shù)。此外,還應該清楚的是,可將本發(fā)明的指令格式實施得令字的語法不同于上述的圖示;例如,源和目的字段的順序可以被改變或序列改變。
表3提供了按照本發(fā)明的指令格式的第二實施例,結合使用應用的“ARC”RISC芯片表3
應注意,在表3的第二實施例中,僅僅指定了兩個字段(而不是指令操作“op”)。而且既沒有指定有條件字段也沒有指定標志設置字段,但顯而易見的是這樣的條件的和/或標志設置字段可以被用于這些格式。
應特別注意表2的下列兩個格式4.op.<cc>.<f>a,l,l8.op.<cc>.<f>a,s,s通過使用AND運算,這兩個格式被特別用于提供一種MOV(數(shù)據(jù)傳送指令)立即指令。在ARC處理器中,使用短立即寄存器編碼從指令字中提取短立即值。如果在兩個源字段中使用短立即寄存器編碼,兩個源字段將取短立即字段的值,但兩個不同的短立即值不能被編碼。通過使用長立即寄存器編碼,隨后的指令字中的數(shù)據(jù)可以被用于一個或兩個源字段,但不能使用兩個不同的長立即值。然而在本發(fā)明中,能夠具有一短一長兩個立即值,這種優(yōu)點可以使一個立即值存儲到存儲器中一個立即位置。
因此,指令AND.a,l,l把隨后的長立即指令字的內(nèi)容傳送到目的寄存器“a”。運算執(zhí)行邏輯與帶有它本身的相同的值,結果形成原始值。
此外,通過移位指令也可以使用上述的兩種格式(4.和8.),以便使用一個單一的字指令產(chǎn)生多個長立即常數(shù),如下例所示ASL.a,s,s;a=s<<(s&31)(移位指令僅使用一個立即值的底部5位)(短立即數(shù)據(jù)是9位的長度)在上述的例子中,源短立即值的底部5位被用于移位全部的9位短立即值以便使用一個單一的指令字而不是通過使用剛才上述的具有非移位的9位短立即數(shù)據(jù)的MOV(AND)來使較寬范圍的立即值被放入一個寄存器中。
如先前所述,本發(fā)明的“松散”體系結構還可以用于把立即值立即存儲到存儲器中而不使用原有技術的RISC設備中的一個中間寄存器,如下例所示ST s,[b,s];[b+s]=s(shimms必須匹配)ST l,[b,s];[b+s]=l(其中″l″指定長立即數(shù)據(jù))ST s,[s,s];[s+sl=s(shimms必須匹配)此外,通過使用寄存器r63(表1)作為一個目的地,結果的寄存器寫回導致被丟棄,這對于僅需要這些狀態(tài)標志的結果的情況是有用的(比如用于測試/比較),而不考慮任何MOV指令。用于這種功能的匯編語法使用一個立即值“0”作為指令的目的地,如下所示op.<cc>.<f> 0,b,cop.<cc>.<f> 0,b,lop.<cc>.<f> 0,l,cop.<cc>.<f> 0,l,lop.<cc>.<f> 0,b,cop.<cc>.<f> 0,b,sop.<cc>.<f> 0,s,cop.<cc>.<f> 0,s,s在該實施例中,用一個文件來包含多路復用器,這些多路復用器在源1和源2總線上選擇如何得到選擇的數(shù)據(jù)。這些總線尤其在流水線的階段3上被用作到算術邏輯單元(ALU)的輸入,如下例所示階段2結果多路復用器源1字段;用sla選擇sl_direct<=qd_a whenr0|r1|r2|r3|r4|r5|r6|r7|r8|r9|r10|r11|r12|r13|r14|r15|r16|r17|r18|r19|r20|r21|r22|r23|r24|r25|r26|r27|r28|r29|r30|r31|loopcntwhen rlcnt,shimmex when rfshimm|rnshimm,pliwwhen rlimm,xldata when others;在示例中應注意的是,使用“sla”字段初始選擇階段2的結果,隨后添加簡化操作。
源2字段;用s2a選擇s2_direct<=qd_b whenr0|r1|r2|r3|r4|r5|r6|r7|r8|r9|r10|r11|r12|r13|r14|r15|r16|r17|r18|r19|r20|r21|r22|r23|r24|r25|r26|r27|r28|r29|r30|r31|loopcnt when rlcnt,shimmex when rfshimm|rnshimm,pliw when rlimm,xldatawhen others;由于在有條件指令格式中短立即(shimm)字段重疊標志設置位,附加的邏輯被用于控制標志設置。在這種邏輯的一個實施例中,或使用指令的“.f”位或或使用由短立即數(shù)據(jù)寄存器號所隱含的值,或者被設置到“假”,如果指令不能設置標志(例如,裝入/存儲,轉移/跳轉)。在單獨的文件中獨立處理特殊情況的標志設置器(Jcc.F和FLAG)。如果一個3操作數(shù)擴展指令被使用的話,這是為了一個目的使用了短立即指令的區(qū)域,而不是為了由xshimm信號所表示的編碼短立即數(shù)據(jù),該標志不被設置。通過下例的標志設置計算進一步示例了本發(fā)明的這種特性階段3標志設置計算ip3 setflags<=‘0’WHEN f_no_fset(ip3i)=‘1’or(xshimm AND x_idecode3 AND xt_aluop)=‘1’ELSEip3 shimmf WHEN ip3shimm=‘1’ELSEip3_fbit;應注意的是,可以使用各種不同的上述多路復用器的實施例來構成本發(fā)明,這取決于編碼VHDL的具體方法。基于上述的功能性,這些不同的多路復用器的實施例的編碼對于編程領域的普通技術人員來說是已知的,因此在這里不將作進一步的描述。
此外,可以連同(單獨地或共同的)在一個流水線處理器內(nèi)使用的流水線控制和聯(lián)鎖的方法一起來有益地使用本發(fā)明的方法和裝置,其中尤其包括那些在申請的共同待審的美國專利申請標題為“MethodAnd Apparatus For Jump Control In A Pipelined Processor,”,“MethodAnd Apparatus For Jump Jump Delay Slot Control In A PipelinedProcessor,”,和“Method And Apparatus For Processor PipelineSegmentation And Re-assembly,”,它們與此同時申報,在此結合參考它們的全部內(nèi)容。
綜合處理的方法參考圖4,描述了先前討論的結合跳轉延遲時隙模式綜合處理邏輯的方法400。在申請的共同待審的美國專利申請序列號09/418,663標題為“Method And Apparatus For Managing The Configuration AndFunctionality Of A Semiconductor Design”中公開了綜合處理具有一個用戶化(即“軟件”)指令的集成電路邏輯的普通方法,它于1999年10月14日申報,在此結合參考它的全部內(nèi)容。
雖然下面的描述是有關于在一個微型計算機或其他類似處理設備上的一個算法或計算機程序,但應該清楚可以使用其它的硬件環(huán)境(包括小型計算機,工作站,網(wǎng)絡計算機,“超級計算機”和大型計算機)來實踐本方法。此外,如果需要的話,相對于軟件可以把計算機程序的一個或多個部分具體表現(xiàn)于硬件或固件中,這種替換的實施例在計算機技術領域是熟知的。
最初,在步驟402中獲得有關設計配置的用戶輸入。特別是,由用戶選擇用于設計的期望的模塊或功能,并添加,減去與設計有關的指令,或產(chǎn)生需要的指令。例如,在信號處理應用程序中,通常最好讓CPU包括單一的“乘法和累積”(MAC)指令。在本發(fā)明中,修改綜合設計的指令集以便結合其中的上述跳轉延遲時隙模式(或其他等同的跳轉延遲時隙控制體系結構)。尤其是,在本發(fā)明的實施例中,表示指定跳轉延遲時隙模式的多個預定值之一通過參考圖1的上述跳轉指令字的兩個數(shù)據(jù)位進行表示。此外,在步驟402中由用戶定義用于每個VHDL文件的技術庫位置。本發(fā)明中的技術庫文件存儲了所有與用于綜合處理所需單元相關的信息,例如包括邏輯功能,輸入/輸出定時,和任意的相關約束。在本發(fā)明中,每個用戶可以定義他的/她的自己的庫名和位置,從而進一步增加了靈活性。
下一步,在步驟403,生成在步驟402中規(guī)定的基于用戶輸入和現(xiàn)存功能庫的用戶化的硬件描述語言(HDL)功能塊。
在步驟404中,基于用戶的輸入和上述的庫文件確定設計層次?;谠O計層次順序地產(chǎn)生一個層次分階段文件,新的庫文件,和程序描述文件。在此使用的術語“程序描述文件”相當于通用的UNIX程序描述文件功能或者相當于計算機領域普通技術人員熟知的一個計算機系統(tǒng)的類似的功能。程序描述文件功能導致其他的程序或計算機系統(tǒng)中的算法常駐程序以規(guī)定的次序被執(zhí)行。此外,它進一步規(guī)定數(shù)據(jù)文件的名稱和位置和其他需要的信息以便有效地操作指定的程序。但應該注意的是,在此公開的發(fā)明可以利用文件結構而不是“程序描述文件”來產(chǎn)生期望的功能性。
在本發(fā)明的程序描述文件產(chǎn)生處理過程的一個實施例中,是經(jīng)過顯示提示交互地詢問用戶來輸入與期望的設計有關的信息,比如“構件”的類型(例如,整體設備或系統(tǒng)配置),外部存儲器系統(tǒng)數(shù)據(jù)總線的寬度,擴展時隙的不同類型,高速緩沖存儲器的類型/大小等等。但只要符合本發(fā)明,也可以使用許多其他的輸入信息的配置和資源。
在步驟406,運行在步驟404中產(chǎn)生的程序描述文件以便生成結構的HDL。該結構的HDL與離散的功能塊相配合以便完成一個設計。
接著,在步驟408,運行在步驟406中產(chǎn)生的稿本以生成用于模擬程序的一個程序描述文件。此外,在步驟408中還運行產(chǎn)生一個綜合稿本的稿本。
在程序的這一點上,做出一個是否綜合或模擬設計的決定(步驟410)。如果選擇模擬,用戶利用在步驟412產(chǎn)生的設計和模擬程序描述文件(和用戶程序)運行模擬程序。可替換的,如果選擇綜合處理,用戶利用在步驟414中的綜合稿本和產(chǎn)生的設計運行綜合處理。在完成綜合/模擬稿本之后,在步驟416評估適當?shù)脑O計程序。例如,一個綜合處理引擎可以生成一個具體的設計的物理布局,它符合整體設計處理程序的性能標準,但不符合所要求的小片尺寸。在此情況下,設計者將對控制文件,數(shù)據(jù)庫,或其它元件進行改變,它們可以影響小片尺寸。隨后設計信息的結果集合被用于重新運行綜合處理稿本。
如果產(chǎn)生的設計是可接受的,則完成設計處理程序。如果設計是不可接受的,重新執(zhí)行從步驟402開始的處理步驟直到獲得一個可接受的設計。在此方式中,循環(huán)方法400。
綜合的邏輯現(xiàn)在參考圖5-9,示例了用于實現(xiàn)在此先前所述的“松散”寄存器編碼功能性的邏輯,以及描述了使用圖4的綜合方法。
圖5示例了用于松散寄存器編碼源1選擇的頂端層次階段邏輯的一個實施例。在圖5的實施例中,頂階段邏輯例示了八個等同的4位多路復用器組成了全部32位。[注意,為清楚表示,圖5中的邏輯圖示被分成兩個層階段]。該邏輯也同樣可以用于源2的選擇。
圖6示例了用于源1的松散寄存器編碼的上述4位多路復用器的第一實施例。在圖6的多路復用器中,在綜合處理上沒有放置操作的或設計約束。
圖7示例了用于源1的松散寄存器編碼的上述4位多路復用器的第一實施例,除了邏輯已經(jīng)被約束以外,以便對從長立即數(shù)據(jù)輸入總線(‘pliw’)到輸出總線(‘sl_direct’)提供最短的路徑。
圖8示例了按照本發(fā)明的標志設置邏輯的第一實施例(無約束的)。
圖9示例了按照本發(fā)明的標志設置邏輯的第二實施例,只是為了最小化區(qū)域進行了約束。
現(xiàn)在參考圖10,示例了制造好的流水線處理器的一個例子,使用一個1.0um處理程序和結合圖5-9的邏輯。如圖10所示,處理器1000是一個像微處理器CPU設備的ARC,其中尤其具有一個處理器芯片1002,芯片存儲器1004,和一個外部接口1006。利用用戶化VHDL設計制造該設備,使用本發(fā)明的方法400獲得用戶化的VHDL設計,該設備隨后被綜合處理成一個邏輯電平表示,并接著利用半導體領域已知的編譯,布局和制造技術把它精簡成一個物理設備。
本領域一個普通技術人員應該清楚的是,圖10的處理器可以包括任何通用的可獲得的周邊設備,比如串行通信設備,并行口,定時器,計數(shù)器,高電流驅動器,模擬到數(shù)字(A/D)轉換器,數(shù)字到模擬(D/A)轉換器,中斷處理器,LCD驅動器,存儲器和其他類似的設備。另外,處理器還可以包括自定義或應用的具體電路系統(tǒng)。本發(fā)明不局限于周邊設備的類型,數(shù)量或復雜程度,以及其他的可以使用本發(fā)明方法和裝置相組合的電路系統(tǒng)。準確地說,通過能改進超時的現(xiàn)存的半導體處理程序的物理能力可以強行使用任何的限制。因此,能夠使用本發(fā)明預見集成的復雜性和困難程度,這將進一步提高改進半導體的處理程序。
還應該注意的是,當前的許多IC設計使用一個微處理器芯片和一個DSP芯片。然而DSP僅可以用于所需的有限數(shù)量的DSP功能,或者用于IC的快速DMA結構體系。在此公開的本發(fā)明可以支持許多DSP指令功能,并且它的快速局部RAM系統(tǒng)可以立即存取數(shù)據(jù)。通過使用在此公開的用于IC的CPU&DSP功能的方法可以明顯地實現(xiàn)節(jié)省費用。
可替換的,圖10的處理器1000可以被綜合處理以便結合一個存儲器接口,該存儲器接口用于對在一個或多個IC(例如DSP)功能和處理器1000的存儲器陣列之間進行對接,如在與本申請共同待審的、申報于2000年3月10日、標題為“Memory interface and Method ofInterfacing Between Integrated Circuita”美國專利申請中所描述的,在此結合參考它的全部內(nèi)容。
另外,請注意這里如前所述的方法(及相應的計算機程序)可容易地以相對簡單的再綜合適應于更新的生產(chǎn)技術,例如0.18或0.1微米工藝——而非使用“硬的”原有微技術系統(tǒng)時,為了適應這類技術通常要采用冗長昂貴的處理。
現(xiàn)在參考圖11,尤其描述了能夠綜合處理器其中圖5-9的邏輯結構的一個計算設備的實施例。計算設備1100包括具有一個中央處理器(CPU)1102的一個母板1101,隨機存取存儲器(RAM)1104,和存儲器控制器1105。此外還提供一個存儲設備1106(比如一個硬盤驅動器或CD-ROM),輸入設備1107(比如一個鍵盤或鼠標),和顯示設備1108(比如一個CRT,等離子體,或TFT顯示器),以及支持主機和周邊器件工作所需的總線。在整個設計綜合處理過程中,上述的VHDL描述和綜合引擎以一個計算機程序的一個目標代碼表示被存儲在RAM 1104和/或存儲設備1106中來由CPU1102進行使用,在計算機領域中后者是大家熟知的。在整個系統(tǒng)操作過程中,用戶(未示)通過把設計的配置規(guī)范經(jīng)程序顯示和輸入設備1107輸入到綜合處理程序中來綜合處理邏輯設計。被存儲在存儲設備1106中的用于以后調(diào)用的由程序產(chǎn)生的綜合設計被顯示在圖形顯示設備1108上,或者如果需要的話,可以經(jīng)一個串或并口1112輸出到一個外部設備,比如一個打印機,數(shù)據(jù)存儲單元,其他的周邊器件。
盡管上面已經(jīng)進行了詳細描述,并應用各種實施例指出了本發(fā)明的新穎性,但應明白在不脫離本發(fā)明的范疇下,本領域技術人員可以對本發(fā)明的設備的細節(jié)或處理過程以省略,替代,或改變的各種形式作出變化。上述的內(nèi)容僅僅是可以實現(xiàn)本發(fā)明的最佳方式。所描述的內(nèi)容并不意味著會受到限制,而僅作為本發(fā)明通用原理的示例。本發(fā)明的范圍應該根據(jù)權利要求的內(nèi)容來確定。
權利要求
1.一種用于設計具有一個指令集的用戶定制的數(shù)字處理器的方法,包括接收與所述處理器的設計配置有關的用戶輸入;識別至少一個技術描述,以便用于產(chǎn)生所述設計;以及至少部分地基于所述用戶輸入和被識別的所述至少一個技術描述,而生成所述處理器的至少一個定制的描述語言模型,所述模型具有作為所述指令集的一部分的所述擴展指令;其中,所述擴展指令利用短立即數(shù)據(jù)和長立即數(shù)據(jù)這兩種數(shù)據(jù)作為源數(shù)據(jù)。
2.如權利要求1所述的方法,其中所述擴展指令包括一個操作碼和多個字段,所述數(shù)據(jù)字段表示至少第一和第二寄存器數(shù),所述寄存器數(shù)可表示所述短立即數(shù)據(jù)或所述長立即數(shù)據(jù)。
3.如權利要求1所述的方法,進一步包括至少部分地基于所述用戶輸入和被識別的所述至少一個技術描述,而生成至少一個用戶化的功能塊。
4.如權利要求3所述的方法,其中所述接收用戶輸入的動作包括接收用戶對于一個或多個所需處理器配置參數(shù)的選擇。
5.如權利要求3所述的方法,其中所述至少一個技術描述包括一個或多個技術庫文件。
6.如權利要求5所述的方法,其中各所述文件的位置也是由所述用戶提供的。
7.如權利要求5所述的方法,其中所述庫文件可用于存儲所有與為綜合處理所需的單元相關的信息。
8.如權利要求7所述的方法,其中所述信息選自(i)邏輯功能,(ii)輸入或輸出定時,(iii)和相關約束。
9.如權利要求5所述的方法,進一步包括至少部分地基于所述用戶輸入和被識別的所述至少一個技術描述,而生成至少一個用戶化的硬件描述語言功能塊。
10.如權利要求5所述的方法,進一步包括生成至少一個設計體系,所述設計體系至少部分地是基于所述用戶輸入和被識別的所述至少一個技術描述的。
11.如權利要求1所述的方法,進一步包括生成至少一個設計體系,所述設計體系至少部分地是基于所述用戶輸入和被識別的所述至少一個技術描述的。
12.如權利要求11所述的方法,進一步包括至少部分地基于所述設計體系,而生成至少一個體系文件和一個新技術描述文件。
13.如權利要求11所述的方法,進一步包括至少部分地基于所述用戶輸入和所述技術描述,而生成至少一個用戶化的功能塊。
14.如權利要求1所述的方法,其中所述接收用戶輸入的動作包括接收用戶對于存儲器接口的選擇,該存儲器接口具有多個功能端口,所述功能端口可操作地連接到所述處理器的對應的多個功能單元之一;和多個存儲器端口,所述存儲器端口可操作地連接到一存儲器內(nèi)的對應的多個存儲體之一;所述存儲器端口便于由所述處理器的各個功能單元對各個所述存儲體進行存?。凰龃鎯ζ鹘涌谑亲鳛樯伤瞿P偷膭幼鞯囊徊糠?,而被集成于所述處理器內(nèi)的。
15.如權利要求3所述的方法,進一步包括生成結構編碼,以使得在所述設計內(nèi),所述至少一個用戶化的功能塊與多個其它功能塊彼此相關。
16.一種用于設計具有一個指令集的用戶定制的數(shù)字處理器的裝置,包括一個計算機系統(tǒng),用以運行計算機程序;和至少一個計算機程序,用于接收與所述處理器的設計配置有關的用戶輸入,所述輸入的至少一部分與一擴展指令有關;識別至少一個技術描述,以便用于產(chǎn)生所述設計;以及,至少部分地基于所述用戶輸入和被識別的所述至少一個技術描述,而生成所述處理器的至少一個定制的描述語言模型,所述模型具有作為所述指令集的一部分的所述擴展指令;其中,所述擴展指令利用短立即數(shù)據(jù)和長立即數(shù)據(jù)這兩種數(shù)據(jù)作為源數(shù)據(jù)。
17.如權利要求16所述的裝置,其中所述擴展指令包括一個操作碼和多個字段,所述數(shù)據(jù)字段表示至少第一和第二寄存器數(shù),所述寄存器數(shù)可表示所述短立即數(shù)據(jù)或所述長立即數(shù)據(jù)。
18.如權利要求16所述的裝置,其中所述至少一個計算機程序可至少部分地基于所述用戶輸入和被識別的所述至少一個技術描述,而生成至少一個用戶化的功能塊。
19.如權利要求18所述的裝置,其中所述用戶輸入包括通過一輸入設備對于一個或多個所需處理器配置參數(shù)的選擇,其中該輸入設備可操作地連接到所述裝置。
20.如權利要求18所述的裝置,其中所述至少一個技術描述包括一個或多個技術庫文件,所述技術庫文件存儲在與所述裝置連接的存儲設備中。
21.如權利要求20所述的裝置,其中各所述文件的位置也是由所述用戶提供的。
22.如權利要求20所述的裝置,其中所述庫文件可用于存儲所有與為綜合處理所需的單元相關的信息。
23.如權利要求22所述的裝置,其中所述信息選自(i)邏輯功能,(ii)輸入或輸出定時,(iii)和相關約束。
24.如權利要求20所述的裝置,其中所述至少一個程序進一步用于至少部分地基于所述用戶輸入和被識別的所述至少一個技術描述,而生成至少一個用戶化的硬件描述語言功能塊。
25.如權利要求20所述的裝置,其中所述至少一個程序進一步用于生成至少一個設計體系,所述設計體系至少部分地是基于所述用戶輸入和被識別的所述至少一個技術描述的。
26.如權利要求16所述的裝置,其中所述至少一個程序進一步用于生成至少一個設計體系,所述設計體系至少部分地是基于所述用戶輸入和被識別的所述至少一個技術描述的。
27.如權利要求26所述的裝置,其中所述至少一個程序進一步用于至少部分地基于所述設計體系,而生成至少一個體系文件和一個新技術描述文件。
28.如權利要求26所述的裝置,進一步包括至少部分地基于所述用戶輸入和所述技術描述,而生成至少一個用戶化的功能塊。
29.如權利要求28所述的裝置,其中所述用戶輸入包括對于一個或多個所需處理器配置參數(shù)的選擇。
30.如權利要求18所述的裝置,其中所述至少一個程序進一步用于生成結構編碼,以使得在所述設計內(nèi),所述至少一個用戶化的功能塊與多個其它功能塊彼此相關。
31.一種用于設計具有一個指令集和多個寄存器的用戶定制的數(shù)字處理器的方法,包括接收與所述處理器的設計配置有關的用戶輸入,所述輸入的至少一部分與一擴展指令相關;識別至少一個技術描述,以便用于產(chǎn)生所述設計;以及至少部分地基于所述用戶輸入和被識別的所述至少一個技術描述,而生成所述處理器的至少一個定制的描述語言模型,所述模型具有作為所述指令集的一部分的所述擴展指令;其中,生成至少一個模型的所述動作包括生成一處理器設計,該處理器設計能夠使所述處理器在進行數(shù)據(jù)通信時,將立即操作數(shù)和數(shù)據(jù)值直接存儲到一存儲器中,而無需使用其中一個所述寄存器作為中間寄存器。
32.如權利要求31所述的方法,其中所述擴展指令可使用短立即數(shù)據(jù)或長立即數(shù)據(jù)作為源數(shù)據(jù)。
33.如權利要求1所述的方法,其中所述接收用戶輸入的動作包括接收用戶對于存儲器接口的選擇,該存儲器接口具有多個功能端口,所述功能端口可操作地連接到所述處理器的對應的多個功能單元之一;和多個存儲器端口,所述存儲器端口可操作地連接到一存儲器內(nèi)的對應的多個存儲體之一;所述存儲器端口便于由所述處理器的各個功能單元對各個所述存儲體進行存?。凰龃鎯ζ鹘涌谑亲鳛樯伤瞿P偷膭幼鞯囊徊糠?,而被集成于所述處理器內(nèi)的。
全文摘要
用于在流水線化的中央處理器(CPU)或用戶可定制的微處理器上執(zhí)行指令的改進的方法及裝置。在本發(fā)明第一方面,公布了一種在一個階段已被阻塞或中斷情況下控制流水線運行的改進方法。在一個實施例中,公布了一種流水線分段法(“撕裂”),其中該流水線在后面、未阻塞各階段仍被允許繼續(xù)下去而不顧稍前階段的阻塞。類似地,還公布了一種方法,其中允許出現(xiàn)于流水線中稍前階段的指令被再裝配(“抓起”)到稍后的阻塞階段。還公布了一種包括了上述分段法及再裝配方法的綜合處理器設計的方法,以及一種能夠實現(xiàn)這一綜合方法的計算機系統(tǒng)。
文檔編號G06F9/318GK1661547SQ20051005355
公開日2005年8月31日 申請日期2000年5月12日 優(yōu)先權日1999年5月13日
發(fā)明者P·沃恩斯, C·格林漢姆 申請人:Arc國際美國控股公司