專利名稱:執(zhí)行程序指令的裝置與方法
技術(shù)領(lǐng)域:
本發(fā)明涉及按照權(quán)利要求1的前序特征部分執(zhí)行程序指令的數(shù)據(jù)處理裝置。本發(fā)明進(jìn)一步涉及按照權(quán)利要求8的前序特征部分執(zhí)行數(shù)據(jù)處理裝置的指令的方法。
當(dāng)前,DSP處理器存在兩種主要體系結(jié)構(gòu)。兩種體系結(jié)構(gòu)都要在處理速度與程序存儲器大小之間前者還是后者享受更大利益作出折衷。第一種主要體系結(jié)構(gòu)也可稱作常規(guī)機器,它意味著每一機器周期執(zhí)行一條單一的指令。第二種體系結(jié)構(gòu)通常稱作VLIW體系結(jié)構(gòu)(甚長指令字)。使用VLIW體系結(jié)構(gòu),在一個單一機器周期中執(zhí)行若干條指令。
每一機器周期執(zhí)行一條單一指令的常規(guī)機器的特征為相對小的程序數(shù)據(jù)總線。通常,這一程序數(shù)據(jù)總線為32位寬。在DSP處理器環(huán)境中,處理器的執(zhí)行單元中的計算單元的數(shù)目通常比上述第二種體系結(jié)構(gòu)小。程序數(shù)據(jù)總線寬度與計算單元的數(shù)目是與處理器的功耗成正比的。從而,常規(guī)處理器體系結(jié)構(gòu)通常比其它先進(jìn)的體系結(jié)構(gòu)消耗較少功率。然而,常規(guī)體系結(jié)構(gòu)的主要缺點在于MIPS(每秒執(zhí)行的兆指令)數(shù)比上述VLIW體系結(jié)構(gòu)的少。
諸如在名為“有條件地將短存儲器指令組合成虛擬長指令的指令預(yù)處理器”的美國專利5,163,139中描述的常規(guī)機器。這一常規(guī)機器包括兩個計算單元及常規(guī)程序數(shù)據(jù)寬度的主程序存儲器。這一專利中所提出的機器還包括指令預(yù)處理器單元,它檢驗是否能將程序存儲器中的兩條連續(xù)的指令有效地組合以便構(gòu)成其本身的新的指令字。然后機器的兩個計算單元解釋與執(zhí)行這一新指令字。美國專利5,163,139的機器的局限性在于只能組合符合預(yù)定標(biāo)準(zhǔn)的指令對。從而,該機器極大地制約了程序員開發(fā)程序代碼。
上述第二種體系結(jié)構(gòu)(VLIW)基于編譯程序?qū)⑷舾珊唵蔚姆腔ハ嚓P(guān)聯(lián)的操作組裝到同一指令字中的指令集思想。這種類型的體系結(jié)構(gòu)是1983年6月第十次計算機體系結(jié)構(gòu)年會會報上由J.A.Fisher在“甚長指令字體系結(jié)構(gòu)及ELI-512”中初次提出的。該VLIW體系結(jié)構(gòu)在處理器中采取多個計算單元及分析從程序存儲器中取出的指令的若干譯碼單元。VLIW體系結(jié)構(gòu)具有并行執(zhí)行若干操作的優(yōu)點,從而提高了處理器的MIPS性能。然而,VLIW處理器要求較大位寬度的程序存儲器。這對于實現(xiàn)該處理器體系結(jié)構(gòu)所需的芯片面積及其功耗都是負(fù)擔(dān)。同時,對于為VLIW處理器編寫代碼的程序員所要求的編程技巧也內(nèi)在地較高,因為需要考慮處理器的并行性。
名為“利用分支控制單元生成的路徑信息來禁止不在正確路徑上的操作的VLIW處理器”的美國專利5,450,556中提出了特殊的VLIW處理器。這一專利提出了有效地處理VLIW程序中的跳轉(zhuǎn)指令的解決方法。為了克服這一問題,它提出了在VLIW指令中增加路徑表達(dá)字段。這一路徑表達(dá)字段由處理器中的分支控制單元讀取,后者是為了加速條件轉(zhuǎn)移操作而操作的。和所有以前的VLIW處理器體系結(jié)構(gòu)一樣,美國專利5,450,556中提出的結(jié)構(gòu)也具有存儲VLIW指令所需的相對地大的程序存儲器的缺點,尤其是在只允許小的并行度的執(zhí)行步驟的情況中。
本發(fā)明基于需要大的程序存儲空間的高度并行計算機體系結(jié)構(gòu)的問題。從而本發(fā)明尋求在保持處理器以高度并行方式執(zhí)行指令的同時降低程序存儲器需求。
這一問題是用具有權(quán)利要求1的特征的數(shù)據(jù)處理裝置解決的。這一問題也用具有權(quán)利要求8的特征的執(zhí)行數(shù)據(jù)處理裝置的指令的方法解決。在各自的從屬權(quán)利要求中描述本創(chuàng)造性裝置與創(chuàng)造性方法的有利的實施例。
執(zhí)行程序指令的較佳數(shù)據(jù)處理裝置包括第一指令譯碼器、地址譯碼器、多個計算單元及執(zhí)行邏輯單元。第一指令譯碼器從第一程序存儲器順序地取第一類型的程序指令并譯碼所述第一類型指令。地址譯碼器確定要從或向數(shù)據(jù)存儲器加載或返回的數(shù)據(jù)的地址。各所述多個計算單元按照所述第一指令譯碼器的解釋在數(shù)據(jù)上執(zhí)行運算并提供這些運算的結(jié)果。執(zhí)行邏輯提供數(shù)據(jù)給所述多個計算單元并按照所述第一類型指令控制所述多個計算單元的運算。該數(shù)據(jù)處理裝置的特征在于所述第一指令譯碼器判別所述裝置是否要執(zhí)行參考指令。然后該參考指令起動第二類型指令的執(zhí)行。
這樣,本發(fā)明的數(shù)據(jù)處理裝置便能執(zhí)行兩種類型的程序指令。最好這兩種類型的指令具有明顯不同的位寬度,其中所述第一類型的指令具有較短的位寬度。取決于要執(zhí)行的實際指令,處理裝置或者執(zhí)行相對地短的位寬度的指令字或者執(zhí)行相對地長的位寬度的指令。這允許靈活的程序存儲器組織并從而降低特定程序的總存儲器需求。
本創(chuàng)造性裝置的較佳實施例還包括取所述第二類型指令的第二指令譯碼器。在更好的實施例中,所述第二類型的指令是存儲在第二程序存儲器中的。從而,所述第二指令譯碼器從所述第二程序存儲器中取所述第二類型指令并隨即譯碼所述第二類型的指令。
通過為各所述第一類型與所述第二類型的指令提供分開的存儲器單元,便有可能存儲頻繁地使用的所述第二類型的指令并用所述數(shù)據(jù)處理裝置容易地訪問這些指令。最好將各所述第一與第二程序存儲器的位寬度設(shè)定在固定長度上。這樣便可將較佳數(shù)據(jù)處理裝置的體系結(jié)構(gòu)配置成以高效方式處理所述第一類型與所述第二類型的指令。
本創(chuàng)造性裝置的較佳實施例的進(jìn)一步特征在于所述第二類型的指令包括多個運算符,其中包含操作數(shù)的數(shù)據(jù)賦值信息及結(jié)果的數(shù)據(jù)賦值信息。所述執(zhí)行邏輯最好還包括用于解釋所述第二類型的所述指令的裝置。
在本發(fā)明的特別好的實施例中,所述參考指令包含地址信息。地址信息涉及所述第二類型的指令要在其上執(zhí)行的數(shù)據(jù),該數(shù)據(jù)由所述第二類型的該指令在所述參考指令中引用。本創(chuàng)造性裝置的這一較佳配置允許與譯碼所述第二類型指令的同時取數(shù)據(jù)。這能明顯地提高創(chuàng)造性裝置的性能。
在本發(fā)明的裝置的較佳實施例中,配置成允許第一或第二類型中任何一種的指令的流水線執(zhí)行。這種配置特別適用于同時執(zhí)行運算。
數(shù)據(jù)處理裝置執(zhí)行指令的較佳方法包括從第一程序存儲器中取第一類型指令,譯碼所述第一類型的所述指令來確定要執(zhí)行的操作,按照包含在所述第一類型的所述指令中的操作數(shù)地址信息從數(shù)據(jù)存儲器或所述數(shù)據(jù)寄存器中讀取操作數(shù),在所述操作數(shù)上執(zhí)行操作,以及按照包含在所述第一類型的所述指令中的結(jié)果地址信息將所述操作的結(jié)果寫入所述數(shù)據(jù)存儲器或所述數(shù)據(jù)寄存器中等步驟。本創(chuàng)造性方法的特征在于譯碼包含預(yù)定信息的參考指令時,將其譯碼成執(zhí)行按照包含在所述參考指令中的信息取第二類型的指令及譯碼所述第二類型的所述指令來確定要并行執(zhí)行的操作的步驟。
如對上面提及的本發(fā)明的較佳數(shù)據(jù)處理裝置所描述的,該較佳方法允許存儲器空間的靈活使用,因為提供了兩種類型的指令。通過引用所述第一類型指令中的進(jìn)一步指令信息(所述第二類型指令)獲得執(zhí)行特定并行操作所需的附加信息。
本創(chuàng)造性方法的另一較佳實施例的特征在于所述參考指令包含基本上在譯碼所述參考指令時被譯碼的地址信息。這一特征能夠明顯地提高處理速度,因為在參考指令中引用的該指令所需的數(shù)據(jù)是在譯碼參考指令時加載的。
在本發(fā)明的方法的更佳實施例中,譯碼參考指令的步驟及取所述第二類型的指令的步驟是基本上同時執(zhí)行的,其中所述參考指令與所述第二類型的所述指令是互相關(guān)聯(lián)的,這允許更進(jìn)一步提高處理速度,因為在譯碼所述參考指令時已提供了執(zhí)行所述第二類型的指令所需的信息。
在本發(fā)明的方法的又一實施例中,所述從數(shù)據(jù)存儲器中讀取操作數(shù)的步驟及所述譯碼所述第二類型的指令的步驟是基本上同時執(zhí)行的,其中所讀取的操作數(shù)是與所譯碼的指令關(guān)聯(lián)的。這一較佳特征允許更進(jìn)一步提高處理速度,由于現(xiàn)在所有信息對于數(shù)據(jù)處理裝置的計算單元都可以獲得以按照所述第二類型的指令用于執(zhí)行操作。
在下面供結(jié)合附圖閱讀的本發(fā)明的較佳實施例的描述中說明了使用本發(fā)明的進(jìn)一步優(yōu)點、特征及可能性。附圖中
圖1描繪按照本發(fā)明的較佳數(shù)據(jù)處理裝置的電路圖;圖2a示出先有技術(shù)中使用的甚長指令字的結(jié)構(gòu)的示例;圖2b示出本發(fā)明的較佳實施例中所使用的兩種不同類型的指令的結(jié)構(gòu);圖3a為展示先有技術(shù)的數(shù)據(jù)處理裝置中的流水線指令的順序的表;以及圖3b為展示按照本發(fā)明的較佳實施例的指令序列的表。
圖1示出按照本發(fā)明的數(shù)據(jù)處理裝置的較佳實施例的基本體系結(jié)構(gòu)。將特別適用于數(shù)字信號處理的數(shù)據(jù)處理裝置配置成用于并行執(zhí)行若干操作并從而包括多個計算單元。在本較佳實施例中,設(shè)置了賦予參照數(shù)字61至64的四個計算單元。從執(zhí)行邏輯單元7向各該計算單元61至64提供操作數(shù)數(shù)據(jù)。另一方面各該計算單元將計算結(jié)果發(fā)送到多端口寄存器組5的一個或多個寄存器與/或通過連接所述計算單元61至64到所述數(shù)據(jù)存儲器3上的數(shù)據(jù)總線到數(shù)據(jù)存儲器3,所述數(shù)據(jù)總線具有r位的位寬度。在較佳實施例中,可將兩個結(jié)果直接寫入具有16位數(shù)據(jù)位寬度的所述數(shù)據(jù)存儲器中。從而,位寬度r等于2×16位。
通過位寬度n的總線線路將各多端口寄存器5的內(nèi)容反饋回所述執(zhí)行邏輯單元7。還將所述多端口寄存器5的內(nèi)容提供給地址譯碼器4供有選擇地將來自所述多端口寄存器5的數(shù)據(jù)寫入所述數(shù)據(jù)存儲器3。因此通過也具有n位位寬度的總線線路將多端口寄存器5連接在所述地址譯碼器4上。在較佳實施例中,各寄存器具有16位的數(shù)據(jù)位寬度。再者,多端口寄存器組5包括總共16個寄存器。從而,在數(shù)據(jù)處理裝置的較佳實施例中,n設(shè)定為16×16位=256位。
利用較佳實施例的這種配置,本發(fā)明的數(shù)據(jù)處理裝置便能作為寄存器-存儲器體系結(jié)構(gòu)機器或存儲器-存儲器體系結(jié)構(gòu)機器操作。一方面,執(zhí)行邏輯單元7不僅接收來自所述多端口寄存器5的數(shù)據(jù),也接收直接來自所述數(shù)據(jù)存儲器3的數(shù)據(jù)。另一方面,計算單元61至64不僅寫到所述多端口寄存器5還直接寫到所述數(shù)據(jù)存儲器。對于熟悉本技術(shù)的人員應(yīng)清楚本發(fā)明能類似地實施在加載-存儲型體系結(jié)構(gòu)(或者也稱作寄存器-寄存器體系結(jié)構(gòu))的機器中而不偏離本發(fā)明的范圍。
如上所述,執(zhí)行邏輯單元7不僅接收來自所述多端口寄存器5的操作數(shù)數(shù)據(jù),還通過具有o位位寬度的總線線路接收來自所述數(shù)據(jù)存儲器3的操作數(shù)數(shù)據(jù)。所述數(shù)據(jù)存儲器3與所述執(zhí)行邏輯單元7之間的數(shù)據(jù)總線的位寬度o與要從所述數(shù)據(jù)存儲器3加載的操作數(shù)的數(shù)目及各操作數(shù)的位寬度成正比。在較佳實施例中,從所述數(shù)據(jù)存儲器3向所述執(zhí)行邏輯單元7加載最多四個操作數(shù),各具有16位的位寬度,得出總線寬度o為4×16位=64位。
執(zhí)行邏輯單元7接收來自常規(guī)指令譯碼器1的譯碼的指令信息。從而執(zhí)行邏輯單元7從所述多端口寄存器5與/或所述數(shù)據(jù)存儲器3接收用于執(zhí)行特定指令的操作數(shù)并將它們發(fā)送給由譯碼的常規(guī)指令所指示的所述計算單元61至64。執(zhí)行邏輯單元7還包括用于從CLIW指令譯碼器9(可配置長度指令字)接收譯碼的指令的裝置8。一旦接收到譯碼的CLIW指令,所述執(zhí)行邏輯單元7中的所述接收裝置8確信不按照從所述常規(guī)指令譯碼器1接收的信息而是只按照從所述CLIW指令譯碼器9接收的譯碼的指令進(jìn)行執(zhí)行。從而,所述接收裝置8用從所述CLIW指令譯碼器9接收的信息取代來自所述常規(guī)指令譯碼器1的所有信息。
所述常規(guī)指令譯碼器1接收來自常規(guī)程序存儲器2的一行代碼供譯碼在其中所編碼的指令。對于數(shù)據(jù)處理裝置的順序操作,常規(guī)程序存儲器2是用程序計數(shù)器15的輸出尋址的。常規(guī)指令譯碼器1發(fā)送譯碼的指令信息給所述執(zhí)行邏輯單元7并發(fā)送特定指令中所編碼的地址給所述地址譯碼器4。常規(guī)指令譯碼器1還連接在所述CLIW指令譯碼器9上用于指示下面要譯碼的是CLIW指令這一事實。
地址譯碼器4從所述常規(guī)指令譯碼器1接收地址信息用于譯碼編碼在特定指令中的地址。通過具有m位位寬度的總線線路將譯碼后的地址發(fā)送給所述數(shù)據(jù)存儲器3。位寬度m與一次要尋址的地址數(shù)目及每一地址的位數(shù)成正比。在較佳實施例中,地址譯碼器4譯碼各具有16位位寬度的四個地址,從而得出連接所述地址譯碼器4與所述數(shù)據(jù)存儲器3的總線線路的位寬度m為64位。所述數(shù)據(jù)存儲器3還通過線路R/W連接在所述常規(guī)指令譯碼器1上,線路R/W向所述數(shù)據(jù)存儲器3指示是要從還是向特定地址上讀取還是寫入數(shù)據(jù)。
所述CLIW指令譯碼器9連接在其中存儲有表示CLIW指令的代碼行的CLIW存儲器10上。要從所述CLIW存儲器10中讀取的特定指令是由所述常規(guī)指令譯碼器1通過連接所述常規(guī)指令譯碼器1的線路P向所述CLIW存儲器10指示的。從而,常規(guī)指令譯碼器1指向所述CLIW存儲器10的特定存儲單元,將存儲在其中的CLIW指令發(fā)送給所述CLIW指令譯碼器9。
本發(fā)明的較佳實施例的一般操作可描述如下。執(zhí)行邏輯單元7按照從所述常規(guī)程序存儲器2中順序讀取的指令操作。只要所述常規(guī)指令譯碼器1并未譯碼特殊指令,便實際上禁止所述CLIW指令譯碼器9及所述CLIW存儲器10的操作。然而,一旦所述常規(guī)指令譯碼器1譯碼出特殊指令2(也可稱作參考指令),便激活所述CLIW指令譯碼器9及所述CLIW存儲器10的功能。實際上,執(zhí)行邏輯單元7這時按照從所述CLIW指令譯碼器9接收的信息而不是從所述常規(guī)指令譯碼器1接收的信息獨占地操作。
在本發(fā)明的較佳實施例中所提及的來自所述常規(guī)程序存儲器2的特殊指令包含常規(guī)指令譯碼器1發(fā)送給所述地址譯碼器4的地址信息。為了使數(shù)據(jù)處理機執(zhí)行這一特殊指令,將來自所述特殊指令的指令信息與來自相關(guān)CLIW指令的指令信息組合在一起。
圖2a示出按照先有技術(shù)的甚長指令字的典型結(jié)構(gòu)。圖2a的指令字14基本上包含4段。第一段中定義多個操作。第二段中將操作數(shù)分配給這些操作中的每一個。第三段中將結(jié)果賦予這些段中各段。最后在第四段中分別為在所述第二與所述第三段中分配的操作數(shù)與結(jié)果定義存儲器地址。
圖2b示出結(jié)合本發(fā)明使用的指令字的結(jié)構(gòu)。其中示出了具有K位長度的常規(guī)(短)指令11。常規(guī)指令11具有包含定義指令類型的操作碼(op碼)的指令首部。圖2b還示出也具有K位長度的參考指令的結(jié)構(gòu)。特殊op碼存儲在參考指令12的op碼首部中,該op碼區(qū)分參考指令12與其它常規(guī)指令11。參考指令12還包含特定參考指令要在其上執(zhí)行的多個存儲器地址。最后,參考指令包含指向CLIW指令的指針P。
圖2b還示出CLIW指令13的結(jié)構(gòu)。該結(jié)構(gòu)基本上與按照圖2a的VLIW指令14之一相同,但除CLIW指令13不包含任何存儲器地址之外。事實上,特定CLIW指令的地址包含在通過其指針P指向特定CLIW指令13的參考指令12中。CLIW指令示出為具有1位的位長度。
雖然常規(guī)指令11與參考指令12存儲在常規(guī)程序存儲器2中,CLIW指令則存儲在CLIW存儲器10中。從而,常規(guī)程序存儲器2與CLIW存儲器10是用存儲在其中的指令字的各自位長度配置的。在較佳實施例中,常規(guī)指令11與參考指令12具有48位的位長度。另一方面,CLIW指令13具有96位的位長度。雖然常規(guī)指令譯碼器1順序地與連續(xù)地譯碼來自所述常規(guī)程序存儲器2的指令,來自所述CLIW存儲器10的附加指令信息只在所述常規(guī)指令譯碼器1譯碼參考指令時提供給所述執(zhí)行邏輯單元7。此時,將來自CLIW指令譯碼器9的譯碼的指令饋送給執(zhí)行邏輯單元7的接收裝置8用于取代正常由所述常規(guī)指令譯碼器1提供的所有信息。
圖3a為展示按照先有技術(shù)用5階段流水線在處理器中執(zhí)行正常VLIW指令的表。圖3a的表顯示了取指令、譯碼指令、讀操作數(shù)、執(zhí)行及寫操作數(shù)的步驟。
圖3b為展示按照本發(fā)明流水作業(yè)執(zhí)行程序的表。對于處理常規(guī)程序指令,操作序列是與圖3a的表中所示的相同的。然而,如果遇到了參考指令便插入兩個附加步驟。在譯碼常規(guī)指令時,如果譯碼出為參考指令,便取出該參考指令中所參照的CLIW指令。例如,見機器周期2與機器周期6之間具有行首部“指令譯碼與CLIW取”的行。同時,在從存儲器讀取操作數(shù)時,譯碼前一機器周期中取出的CLIW指令。這是可能的,因為參考指令12包含讀取必要的操作數(shù)的所有地址信息。參考指令12包含指向要取出與譯碼以便用要讀取的數(shù)據(jù)執(zhí)行的特定CLIW指令的指針。在圖3b中的表中參見機器周期3與7之間具有行首部“讀操作數(shù)及CLIW譯碼”的行。特定指令在流水線中執(zhí)行的操作序列沿著用箭頭指示的表中的對角線。
用一條VLIW指令并行控制多個執(zhí)行單元的先有技術(shù)處理器為了數(shù)據(jù)處理裝置的并行執(zhí)行的優(yōu)化使用通常需要大的程序存儲器空間。本發(fā)明將長指令的使用限制在算法的非常費時的部分上,即所謂的內(nèi)循環(huán)上。從而頻繁地執(zhí)行的指令是在高度并行的方式中執(zhí)行的,同時大大地降低了不能并行執(zhí)行的指令的程序代碼所需要的存儲器空間。先有技術(shù)的VLIW指令代碼為各執(zhí)行步驟確定操作碼、操作數(shù)賦值、輸出賦值及存儲器地址。這種配置的極大多樣性導(dǎo)致各VLIW指令的高的位寬度。雖然VLIW指令為各執(zhí)行步驟提供完全的編碼靈活性,并從而總是支持最大并行性,但程序代碼耗用大量程序存儲器,特別是對于并不允許完全并行操作的那些執(zhí)行步驟。
數(shù)字信號處理器的典型程序通常包含內(nèi)循環(huán),其中少數(shù)指令非常頻繁地重復(fù)。數(shù)字信號處理器的最大并行性應(yīng)支持內(nèi)循環(huán)中的指令,因為它們可將所需的運行時間降低到最大程度。
本發(fā)明通過使用短指令與可配置長度的指令字(CLIW)的組合解決這一問題。從而,本發(fā)明提供最大化內(nèi)循環(huán)的執(zhí)行效率及限制這些內(nèi)循環(huán)外面的程序代碼的程序空間的優(yōu)點。
內(nèi)循環(huán)外面的常規(guī)指令是順序執(zhí)行的。只將常規(guī)指令引導(dǎo)到執(zhí)行單元與必要的操作數(shù)的某些頻繁連接與操作。所有常規(guī)指令都是直接從常規(guī)程序存儲器2中取出的。此外,CLIW指令存儲在專用CLIW存儲器10中。特殊的參考指令用來啟動CLIW指令的執(zhí)行。參考指令從CLIW存儲器10加載CLIW指令。要取出的CLIW指令的地址P是由參考指令定義的。
CLIW指令13定義所有可能的操作類型、操作數(shù)連接及輸出連接。參考指令包含在與之關(guān)聯(lián)的CLIW指令中定義的操作的所有需要的存儲器地址。從而,參考指令與其關(guān)聯(lián)的CLIW指令一起具有按照先有技術(shù)的VLIW指令所需的所有信息。
由于最好將常規(guī)程序指令(并從而也是參考指令)的位寬度配置成明顯小于CLIW指令的位寬度,便有可能編寫出比只用VLIW指令緊致得多的程序代碼。
相同的CLIW指令的每一次執(zhí)行的程序代碼只包含另一條常規(guī)(短)參考指令12。因為在一組CLIW指令內(nèi)的并行操作的類型與連接通常并不改變(例如對于執(zhí)行矩陣運算),便有可能只通過改變參考指令中的存儲器地址來節(jié)省CLIW指令的程序空間。
從而,最好獨立于對特定的CLIW指令13的引用指定參考指令12中的操作數(shù)的存儲器地址。這不僅允許以相同的CLIW指令使用不同的存儲器操作數(shù),并且還在使用流水線執(zhí)行時加速處理器中的指令流執(zhí)行。
內(nèi)循環(huán)中所需的CLIW指令的數(shù)目取決于實際程序。存在著擴展CLIW存儲器中可獲得的CLIW指令的固定數(shù)目的可能性。初始化之后,通過重新調(diào)用參考指令能動態(tài)地重新配置CLIW存儲器。CLIW指令的不同包能用在一個算法的不同部分中。這一特征是通過在運行時重新加載CLIW存儲器包實現(xiàn)的。
CLIW存儲器的大小是用戶可定義的。通常CLIW存儲器的大小比程序儲存器小得多??蓪偸荂LIW指令的恒定集合的CLIW存儲器的這些部分作為只讀存儲器(ROM)實現(xiàn)。編碼在ROM中的CLIW指令仍能與不同存儲器地址上的數(shù)據(jù)一起調(diào)用,因為地址信息是包含在參考指令中的。
權(quán)利要求
1.一種用于執(zhí)行包括多條指令的程序中的指令的數(shù)據(jù)處理裝置,所述裝置具有-第一指令譯碼器(1),用于從第一程序存儲器(2)中順序地取第一類型的程序指令(11)及用于譯碼所述第一類型的指令;-地址譯碼器(4),用于確定要從或向數(shù)據(jù)存儲器(3)加載或?qū)懭氲臄?shù)據(jù)的地址;-多個計算單元(61、62、63、64),用于按照所述第一指令譯碼器(7)的解釋在數(shù)據(jù)上執(zhí)行操作及用于提供這些操作的結(jié)果;-執(zhí)行邏輯單元(7),用于向所述多個計算單元(61、62、63、64)提供數(shù)據(jù)及用于按照所述第一類型的指令(11)控制所述多個計算單元(61、62、63、64)的操作;其特征在于所述第一指令譯碼器(1)辯識所述裝置是否要執(zhí)行起動第二類型的指令(13)的執(zhí)行的參考指令(12)。
2.按照權(quán)利要求1的裝置,其特征在于第二指令譯碼器(9),用于取出所述第二類型的指令(13)及用于譯碼所述第二類型的指令(13)。
3.按照權(quán)利要求2或3的裝置,其特征在于所述第二類型的所述指令(13)包括具有操作數(shù)數(shù)據(jù)賦值信息及結(jié)果數(shù)據(jù)賦值信息的多個運算符。
4.按照前面任何一項權(quán)利要求的裝置,其特征在于所述執(zhí)行邏輯(7)包括用于解釋所述第二類型的指令(13)的裝置(8)。
5.按照前面任何一項權(quán)利要求的裝置,其特征在于所述參考指令(12)包含要在其上執(zhí)行所述第二類型的所述指令(13)的數(shù)據(jù)的地址信息。
6.按照前面任何一項權(quán)利要求的裝置,其特征在于將所述裝置配置成允許第一或第二類型的任何指令(11、12、13、14)的流水線執(zhí)行。
7.權(quán)利要求2至6中任何一項的裝置,其特征在于所述第二類型的指令(13)是存儲在第二程序存儲器(10)中的。
8.一種用于執(zhí)行包含能并行操作的多個計算單元(61,62,63…,6n)及數(shù)據(jù)寄存器(5)的數(shù)據(jù)處理裝置的指令的方法,該方法包括下述步驟-從第一程序存儲器(2)中取(IF1,IF2,…,IF5)第一類型的指令(11);-譯碼(ID1,ID2,…,ID5)所述第一類型的所述指令(11)來確定它要執(zhí)行的操作;-從數(shù)據(jù)存儲器(3)或從所述數(shù)據(jù)寄存器(5)讀取(OR1,OR2,…OR5)操作數(shù);-在所述操作數(shù)上執(zhí)行(E1,E2,…E5)操作;以及-將所述操作的結(jié)果寫(OW1,OW2,…,OW5)入所述數(shù)據(jù)存儲器(3)或所述數(shù)據(jù)寄存器(5);其特征在于在譯碼包含為了將其譯碼成參考指令的預(yù)定信息的參考指令(12)時,執(zhí)行下述步驟-按照包含在所述參考指令(12)中的信息,取(CF1,CF2…,CF5)第二類型的一條指令(13);以及-譯碼所述第二類型的所述指令(12)來確定要并行執(zhí)行的操作。
9.按照權(quán)利要求8的方法,其特征在于所述參考指令(12)包含具有操作數(shù)地址及結(jié)果地址的地址信息,這一信息是基本上在譯碼所述參考指令(12)時譯碼的。
10.按照權(quán)利要求8或9中任何一項的方法,其特征在于譯碼參考指令(12)的所述步驟及取與特定的參考指令(12)關(guān)聯(lián)的所述第二類型的指令(13)的所述步驟是基本上同時執(zhí)行的。
11.按照權(quán)利要求8至10中任何一項的方法,其特征在于從數(shù)據(jù)存儲器(3)讀操作數(shù)的所述步驟及譯碼與所述操作數(shù)關(guān)聯(lián)的所述第二類型的指令(13)的所述步驟是基本上同時執(zhí)行的。
12.按照權(quán)利要求8至11中任何一項的方法,其特征在于所述方法是由數(shù)據(jù)處理裝置以流水作業(yè)方式執(zhí)行的。
全文摘要
本發(fā)明涉及用于執(zhí)行程序的指令的數(shù)據(jù)處理裝置,該裝置具有第一指令譯碼器、地址譯碼器、多個計算單元及執(zhí)行邏輯單元。該數(shù)據(jù)處理裝置的特征在于所述第一指令譯碼器判別所述裝置是否要執(zhí)行起動不同類型的指令的執(zhí)行的參考指令。本發(fā)明還涉及執(zhí)行數(shù)據(jù)處理裝置的指令的方法,該方法的特征在于在譯碼參考指令時,執(zhí)行按照包含在參考指令中的信息取不同類型的指令及譯碼所述不同類型的所述指令來確定要并行執(zhí)行的操作的步驟。
文檔編號G06F9/38GK1291306SQ99803152
公開日2001年4月11日 申請日期1999年2月4日 優(yōu)先權(quán)日1998年2月19日
發(fā)明者Y·拉維, R·布盧姆, A·赫爾斯科, H·格拉諾特, E·維恩加滕, R·克努斯, A·羅姆, M·揚尼, G·申德洛維特克, E·科亨 申請人:因芬尼昂技術(shù)股份公司