欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用組合的數(shù)據(jù)處理器系統(tǒng)和指令系統(tǒng)的制作方法

文檔序號:6417081閱讀:261來源:國知局
專利名稱:使用組合的數(shù)據(jù)處理器系統(tǒng)和指令系統(tǒng)的制作方法
技術領域
本發(fā)明涉及數(shù)據(jù)處理器,更具體地講,是涉及對數(shù)據(jù)處理器指令進行組合(grouping)的方法,裝置和一個配合使用的指令系統(tǒng)。
有許多不同種類的數(shù)據(jù)處理器可以使用。某些數(shù)據(jù)處理器具有多個可以并行使用的執(zhí)行單元。這種數(shù)據(jù)處理器的指令調度可以是動態(tài)或靜態(tài)的。兩種系統(tǒng)根據(jù)一個順序指令流進行操作,使用包含優(yōu)化匯編器和編譯器的常規(guī)程序預處理軟件工具準備該指令流以便執(zhí)行。通常,動態(tài)系統(tǒng)在數(shù)據(jù)處理器中需要很多的硬件,而靜態(tài)系統(tǒng)需要更復雜的程序預處理軟件技術。但共同的目標是識別并發(fā)掘指令流中固有的指令級并發(fā)成份,并且保持執(zhí)行的順序特性。
在動態(tài)指令調度系統(tǒng)中,數(shù)據(jù)處理器中的特殊硬件在順序指令流中維護一個可視的滑窗。在各個指令分配周期中,調度硬件遵照指令順序約束盡可能多地選擇執(zhí)行單元和其它系統(tǒng)資源能夠容納的可見指令。附加硬件記錄掃過的指令,并且根據(jù)系統(tǒng)狀況相應地終止或收回指令。動態(tài)調度數(shù)據(jù)處理器的一個例子是Motorola MPC604微處理器。
在靜態(tài)指令調度系統(tǒng)中,在產(chǎn)生并且優(yōu)化順序指令流后,程序預處理軟件工具重新檢查該指令流,并且根據(jù)描述硬件配置和目標數(shù)據(jù)處理器操作特性的信息把那些能夠以并行方式安全地執(zhí)行的指令組合到一起。由于預測某些諸如間接或計算存儲器索引的程序構造的動作比較困難,所以不能預先保證調度是最優(yōu)的。為了能夠適應這種不可預測的構造,通常會提供某種硬件互鎖裝置。靜態(tài)調度數(shù)據(jù)處理器的一個例子是多流程跟蹤器7/14/28。用于跟蹤機的編譯器通常被稱作Bulldog編譯器,這個名字是由其在耶魯大學的原作者命名的。
在組合用于跟蹤器,即一個極長指令字(VLIW)機的指令時,Bulldog編譯器被約束到一個具有7,14或28固定功能指令時間片時,任何編譯器未找到有效操作的指令時間片均被簡單地填上一個非操作(NOP)指令(即全零)。不是在存儲器中存儲這些無用的NOP,而是編譯器壓出NOP并且先行找出有用的指令字集,該指令字集的特征為各個VLIW具有一個位映射,該映射指示被壓出的NOP(或者,從相反的角度看,有用的指令字)的位置。在預取時刻,跟蹤器高速緩存/存儲器控制器使用位映射字中的信息重新產(chǎn)生NOP以便高速緩存被填上完全充滿的VLIW。一旦在預取期間重新產(chǎn)生了對應的VLIW,則拋棄位映射,并且甚至沒有那部分指令調度或執(zhí)行硬件部分知道其存在。盡管這種機制使存儲器中每個VLIW的邏輯長度增加了一個字,但由于編譯器沒有能力用有用的指令字填充每個VLIW中的所有指令時間片,通常能夠減少存儲的VLIW的物理長度。另一方面,對于良好設計的代碼,這種機制會顯著增加存儲器中的實際代碼長度。
靜態(tài)調度數(shù)據(jù)處理器一個更新的例子是德州儀器的TMS320C62xx微處理器家族(‘C62)。在‘C62中,每個指令字包含一個專用的“P”位,如果被程序預處理軟件工具設置,該位向調度硬件指示可以并行調度指令字和下面的指令字。這樣,一個同時可調度的“執(zhí)行包”包括具有一個被清除P位的一個指令字和多到最大數(shù)量的,均具有一個被設置P位的前導指令字。美國專利第5,560,028號公開了這種機制的一個變種,其中并行調度控制位的控制范圍在各組并行可調度指令字之間切換。在上述靜態(tài)調度系統(tǒng)中,通過向組合功能指定各個指令中的一個位,有很大一部分指令不可用于其它功能,例如對數(shù)據(jù)處理操作進行編碼。
利用這種多道執(zhí)行數(shù)據(jù)處理器可以額外增加處理數(shù)據(jù)和指令的執(zhí)行速度。但由于使用多道執(zhí)行單元增加了數(shù)據(jù)處理器結構的復雜度,所以計算機指令代碼長度會增加。在許多應用中,由于會增加費用和額外存儲器所需的空間,所以增加代碼長度是不期望的。一個這樣的應用是一類被稱作數(shù)字信號處理器(DSP)的數(shù)據(jù)處理器。DSP被應用于許多應用中,例如蜂窩電話,在這種應用中,一個基本要求是小尺寸和低功率上。期望在不顯著增加指令代碼長度的情況下,多道執(zhí)行單元數(shù)據(jù)處理器提供更快的指令處理。
相應地,需要組合計算指令的改進方法和裝置,以及改進的指令系統(tǒng)。
雖然在所附權利要求書中具體指出了本發(fā)明,但在下面結合附圖的詳細描述中公開了本發(fā)明的其它特性,其中

圖1是關于數(shù)據(jù)處理系統(tǒng)的一個實施例的模塊圖。
圖2是圖解圖1中系統(tǒng)的核心中的寄存器的圖例。
圖3是圖解圖1中系統(tǒng)的,具有一個單獨乘法和累加單元的一部分核心的一個具體實施例的圖例。
圖4是圖解圖1中系統(tǒng)的,具有兩個乘法和累加單元的一部分核心的另一個具體實施例的圖例。
圖5是圖解圖1中系統(tǒng)的,具有四個乘法和累加單元的一部分核心的另一個具體實施例的圖例。
圖6是圖解圖3-5的乘法和累加單元的一個具體實施例的圖例。
圖7是圖解圖1的位域和邏輯單元的一個具體實施例的圖例。
圖8是圖解圖1的系統(tǒng)內地址產(chǎn)生單元的一個具體實施例的圖例。
圖9是圖解管道傳輸圖1系統(tǒng)所執(zhí)行的指令的方法的一個具體實施例的圖例。
圖10是圖解圖1的系統(tǒng)所執(zhí)行的一組預取計算指令和一組組合計算指令的圖例。
圖11是圖解圖1的系統(tǒng)核心的前綴調度和指令調度操作的圖例。
圖12-17圖解了可以用于圖1的系統(tǒng)的一個指令系統(tǒng)的各種實施例。
圖18是圖解使用靜態(tài)組合的一個指令系統(tǒng)的圖例。
圖19是圖解圖18的指令系統(tǒng)中一個類型子域的不同值的圖例。
通常,本發(fā)明的一個方面涉及一個指令系統(tǒng),該系統(tǒng)包含一個指令根和一個指令前綴,該指令根具有一個用于選擇由一個數(shù)據(jù)處理器執(zhí)行的操作的操作選擇域。前綴具有一個可以是下面一個或更多個的域一個用于選擇數(shù)據(jù)處理器執(zhí)行選擇的操作的條件的條件執(zhí)行域,一個調整選擇的操作以便通過一個具有不同長度的操作數(shù)加以執(zhí)行的操作數(shù)長度調整域,一個選擇指令組長度的指令組域,和一個選擇指令前綴長度的前綴長度選擇域。
根據(jù)本發(fā)明的另一方面,提供一個在具有多個寄存器的數(shù)據(jù)處理器中使用的指令系統(tǒng)。該指令系統(tǒng)包含一個指令根,該指令根具有一個寬度為m,用于選擇數(shù)據(jù)處理器的2m個寄存器中的一個的寄存器選擇域,和一個指令前綴,該前綴具有一個寬度為n,用于擴展上述寄存器選擇域的寬度以便選擇上述數(shù)據(jù)處理器中2m+n個寄存器中的一個的寄存器選擇擴展域。
根據(jù)本發(fā)明的另一個方面,提供一個在數(shù)據(jù)處理器中使用的指令系統(tǒng)。該數(shù)據(jù)處理器適于順序執(zhí)行第一和第二種操作,并且以并行方式執(zhí)行多個第一種操作。該指令系統(tǒng)具有一個用于選擇數(shù)據(jù)處理器執(zhí)行的第一和第二種操作中的一個的操作選擇域。操作選擇域具有一個寬度為n的類型子域,對該子域賦值如下在順序執(zhí)行上述第一種操作的情況下取一個第一值;在并行執(zhí)行上述第一種操作的情況下取一個第二值;在執(zhí)行上述第二種操作的情況下取從剩余(2n-2)個值中選擇的一個第三值。在一個具體實施例中,在順序執(zhí)行第二種操作的一個選定指令時類型子域可以被賦上第二值。
根據(jù)本發(fā)明的另一個方面,提供了一個控制一個數(shù)據(jù)處理器順序執(zhí)行第一和第二種操作并且以并行方式執(zhí)行多個上述第一種操作的系統(tǒng)。該系統(tǒng)包含一個指令,該指令具有一個用于選擇數(shù)據(jù)處理器執(zhí)行的第一和第二種操作中的一個的操作選擇域。操作選擇域具有一個類型子域。針對順序執(zhí)行的上述第一類型指令,類型子域具有一個第一值,針對并行執(zhí)行的上述第一類型指令和順序執(zhí)行的一個第二類型選定指令,類型子域具有一個第二值,并且在其它情況下具有一個第三值。
應當注意,在詳細描述和附圖中使用的具體術語,表示和公開的具體結構和操作細節(jié)只是為了說明并且不會以任何方式限制如所附權利要求書中所述的發(fā)明的范圍。
參照圖1,其中圖解了處理系統(tǒng)10的一個實施例。處理系統(tǒng)10包含一個處理器核心12,一個系統(tǒng)接口單元(SIU)14,一個直接存儲器存取單元16,一個諸如串行通信端口或定時器的外設18,內部存儲器模塊20,22和一個外部存儲器接口模塊19。處理系統(tǒng)10也可以被稱作數(shù)據(jù)處理器。
處理器核心12包含一個地址寄存器隊列26,一個程序序列發(fā)生器24,數(shù)據(jù)寄存器隊列28,29,地址算術邏輯單元30(也稱作地址產(chǎn)生單元(AGU)),乘法和累加(MAC)單元(32)(也稱作數(shù)據(jù)算術邏輯單元(DALU)),一個位域和邏輯單元34,和一個可選的指令擴充加速器36。地址ALU 30通過內部總線60被連接到地址寄存器隊列26。乘法和累加單元32通過內部總線62被連接到數(shù)據(jù)寄存器隊列28,29。程序序列發(fā)生器24通過指令總線44被連接到地址ALU 30,DALU 32,位域單元34和指令擴充加速器36。
系統(tǒng)10還包含一個程序總線38,一個第一數(shù)據(jù)總線40,一個第二數(shù)據(jù)總線42,一個外設總線88,一個直接存儲器存取(DMA)總線84,和一個外部存儲器接口總線102。程序總線38通過總線46被連接到程序序列發(fā)生器24,通過總線66被連接到SIU 14,通過總線72和82分別被連接到內部存儲器20,22。數(shù)據(jù)總線40,42通過總線48,50被連接到地址寄存器隊列26,通過總線52,54被連接到數(shù)據(jù)寄存器隊列28,29,并且通過總線56,58被連接到指令擴充加速器36。數(shù)據(jù)總線40,42通過總線74-80被連接到存儲器20,22。
DMA總線84通過總線90被連接到SIU 14,通過總線92被連接到DMA 16,通過總線94被連接到外設單元18,并且通過總線95和97分別被連接到存儲器單元20,22。外設總線88通過總線96被連接到SIU 14,通過總線98被連接到DMA 16,并且通過總線100被連接到外設單元18。外部存儲器總線102被連接到外部存儲器接口模塊19,并且被連接到與系統(tǒng)10通信的外部存儲器(未示出)。在圖解的實施例中,程序總線38有128位寬,并且其它的總線40,42,84和88有32位寬。
參照圖2,其中公開了系統(tǒng)10的核心12中的寄存器的一個實施例。如圖所示,地址寄存器隊列26包含寄存器R0-R7,堆棧指針(SP),N0-N3,M0-M2,MCTL,SA0-SA3,LC0-LC3。程序序列發(fā)生器24包含程序計數(shù)器,狀態(tài)寄存器,和操作模式與狀態(tài)寄存器。數(shù)據(jù)寄存器隊列28包含寄存器D0-D7,而數(shù)據(jù)寄存器隊列29包含寄存器D8-D15。在一個可選的實施例中,只有一個單獨的寄存器隊列可被用于節(jié)省成本,例如通過一或兩個MAC配置。在其它的高性能應用中,可以使用多于兩個的寄存器隊列。
參照圖3,其中圖解了一個在核心12中具有一個乘法累加器32的具體實施例。在這個實施例中,單獨的MAC 32通過總線62被連接到寄存器隊列28,29。位域單元34通過總線64被連接到數(shù)據(jù)寄存器隊列28,29。數(shù)據(jù)寄存器隊列28,29通過中間移位器/限制器模塊104和總線52,54,106被連接到數(shù)據(jù)總線40,42。移位器/限制器模塊104被用于把總線106上具有40位格式的數(shù)據(jù)轉換成總線52,54上具有16位格式的數(shù)據(jù)。
參照圖4,其中圖解了一個在核心12中具有兩個乘法累加器32的具體實施例。除了有兩個而不是一個MAC 32之外,這個實施例與圖3的實施例類似。需要一個額外的總線62把數(shù)據(jù)寄存器隊列28,29連接到第二個MAC單元32。并且總線52,54是32位總線而不是16位總線以便從兩個MAC傳送額外的數(shù)據(jù)。類似地,圖5圖解了一個具有四個MAC單元32的實施例。應當理解本發(fā)明不僅限于上述示例性配置,并且不僅限于特定數(shù)量的MAC單元32和特定的結構。
參照圖6,其中圖解了MAC單元32的一個具體實施例。MAC單元32包含一個乘法器110和一個加法器112。乘法器110從數(shù)據(jù)寄存器隊列28,29接收數(shù)據(jù)輸入并且乘上數(shù)據(jù)部分111,114以產(chǎn)生一個被輸入到加法器112的乘法輸出116。加法器累加一個第二數(shù)據(jù)輸入120和乘法器結果116以便產(chǎn)生一個被回送到數(shù)據(jù)寄存器隊列28,29的累加結果122。
參照圖7,其中公開了位域邏輯單元34的一個具體實施例。位域邏輯單元34包含一個移位器124,一個屏蔽位發(fā)生器126,一個邏輯單元128,和一個多路復用器129。位域和邏輯單元通過總線64接收輸入并且產(chǎn)生一個輸出,該輸出是一次移位,一次諸如從輸入數(shù)據(jù)中消除某些位的屏蔽操作,和/或一次諸如邏輯與,或,異或或反轉操作的邏輯操作的結果。選定操作的結果是通過雙向總線64向寄存器隊列28,29中的一個選定寄存器回送一個40位結果。
參照圖8,其中圖解了地址產(chǎn)生單元(AGU)的一個具體實施例。AGU包含寄存器M0-M2,N0-N3,R0-R7,來自地址寄存器隊列126的SP,和經(jīng)過調整的控制寄存器(MCTL)。AGU還包含地址算術邏輯單元30。AGU通過寄存器26被連接到第一和第二地址總線140,142和程序地址總線138。如圖8所示,ALU 30從各種寄存器接收數(shù)據(jù),對輸入的數(shù)據(jù)進行選定的算術操作,并且向選定的輸出寄存器提供一個算術結果。例如,可以通過總線140輸出寄存器R0中存儲的一個地址。之后,寄存器R0可以被加上一個來自選定的寄存器N0的偏移并且產(chǎn)生的加法輸出被存儲在寄存器R0中。
圖9圖解了用于圖1的系統(tǒng)10的管道執(zhí)行方法。管道方法包含的執(zhí)行步驟有程序預取200,程序獲取202,調度和解碼204,地址產(chǎn)生206和執(zhí)行208。
圖10圖解了一個指令獲取集和組合指令執(zhí)行集。指令獲取集210包括一個被執(zhí)行的指令序列。在圖解的實施例中,指令序列包含八個指令,其編號為從N到N+7。在一個硬件實現(xiàn)中,這個指令序列可以被實現(xiàn)成一或多個指令緩沖區(qū)。包括獲取集210的指令在程序預處理時間被靜態(tài)組合成執(zhí)行集216,218和220。在圖解的例子中,一個第一邊界212把第一執(zhí)行集216的后兩個指令#N和#N+1與包括第二第二執(zhí)行集218的四個指令#N+2-#N+5區(qū)分開,一個第二邊界214把第二執(zhí)行集218和第三執(zhí)行集220的前兩個指令#N+6和#N+7區(qū)分開。系統(tǒng)并行調度相同執(zhí)行集中的各個指令?;究梢酝瑫r調度和提交一個具體執(zhí)行集中的所有指令,并且在一個執(zhí)行集中的各個指令具有相同周期數(shù)的某些情況下,可以在最后的執(zhí)行周期結束時終止各個指令。
參照圖11,其中圖解了系統(tǒng)的一部分的一個具體實施例。該實施例圖解了一個前綴調度單元222,指令210,一個指令調度模塊224,各個數(shù)據(jù)算術邏輯單元(DALU)32和地址產(chǎn)生單元(AGU)30。前綴調度單元222,指令210和指令調度模塊224可以構成程序序列發(fā)生器24。在圖解的實施例中,由于有六個執(zhí)行單元,在一個執(zhí)行集中可以組合的最大指令數(shù)應當是六。在圖解的例子中,前兩個指令N,N+1是前綴指令。前綴指令被傳遞到前綴調度單元222。前綴指令可以包含一個或多于一個的前綴字。前綴調度單元222把前綴指令轉換成諸如組合擴展,條件執(zhí)行和循環(huán)分支控制信號的,被反饋到指令調度單元224的控制信號。指令調度單元224接著把指令組合成執(zhí)行集并且執(zhí)行來自前綴調度單元222的控制信號指示的某種操作。接著通過一個路由機制把被組合的指令同時調度到合適的執(zhí)行單元30,32,34以便并行解碼和執(zhí)行。同時調度意味著在一個公共時鐘周期內開始執(zhí)行各個組合指令。在系統(tǒng)10的圖解實施例中,在一個公共時鐘周期內開始執(zhí)行各個組合指令,但在一個不同的時鐘周期內一或多個組合指令可以完成執(zhí)行。
參照圖12,其中圖解了系統(tǒng)10內可以使用的一個指令系統(tǒng)300的一個具體實施例。指令系統(tǒng)300包含一個指令前綴字302和一個指令根字316。指令前綴字302包含一個條件執(zhí)行域304和其它域312。指令根316包含一個操作選擇域306,一個可選操作數(shù)域308和一個用于諸如組合多個無前綴指令的其它操作的可選域310。條件執(zhí)行域304包含關于是否有條件執(zhí)行指令根316的信息。例如,如果條件執(zhí)行域是一個第一值,則會無條件地執(zhí)行指令根;如果是一個第二值,則會根據(jù)一個狀態(tài)或數(shù)據(jù)寄存器內一個預定位的值有條件地執(zhí)行指令根。在存在多于一個的被組合到一個執(zhí)行集中的指令根的情況下,條件執(zhí)行域304被用于確定是否執(zhí)行整組指令根316。但在一個未示出的可選實施例中,條件執(zhí)行域304可以控制有選擇地執(zhí)行或不執(zhí)行一或多個指令根或跟在前綴之后的子集。在另一個實施例中,多個條件執(zhí)行域中的每一個對應于多個指令根中的一個以便單獨控制一個指令組中各個指令根的執(zhí)行。在一個最優(yōu)實施例中,前綴302和指令根316構成一個單獨的完整指令314。在這樣的系統(tǒng)中,如果指令314被用于無條件執(zhí)行并且前綴302不需被用于此后描述的其它目的,可以把它從指令314中刪除。
參照圖13,其中公開了一個指令系統(tǒng)320的一個實施例。指令系統(tǒng)320包含一個前綴322,一個第一指令根326,和多達2N個的指令根330。前綴322包含一個有N位寬的組域324。各個指令根326-330包含一個操作選擇域331,332和其它的可選域。組域324指示緊跟在前綴322之后并行執(zhí)行多少個指令根326-330。這樣,前綴322中的組域324明確地把指令根組合成執(zhí)行集。在最優(yōu)實施例中,具有各種操作選擇域值的指令根可以和其它指令根組合在一起,由于硬件或定時約束不可以組合其它的值。如圖14所示,指令字346,348與前綴混合以構成一個指令組358,其中指令根350不被組合并且構成一個單字指令組360。
參照圖15,其中圖解了指令系統(tǒng)的另一個實施例。指令系統(tǒng)包含一個前綴380和一個指令根384。指令系統(tǒng)通過一個諸如傳遞到或來自存儲器的32位或64位數(shù)據(jù)項的變長數(shù)據(jù)操作數(shù)388進行操作。前綴380包含一個操作數(shù)長度調整域382,并且指令根384包含一個操作選擇域386。前綴380,指令根384和操作數(shù)388共同構成一個指令390。操作長度調整域382指示操作數(shù)388具有一個第一預定長度,還是一個經(jīng)過調整的第二長度。例如,在操作選擇域386指示指令根384是一個16位字的移動操作并且操作數(shù)長度調整域382被清除的情況下,操作數(shù)的長度為16位。但如果操作數(shù)長度調整域382被設置,則操作變成32位字的操作并且操作數(shù)長度為32位。通過把長度調整域編碼成前綴字380,增加了可以選擇執(zhí)行的操作的數(shù)量,但不必增加指令根384中操作選擇域386的任何額外長度,因而在某些環(huán)境下減少了代碼長度。
參照圖16,其中公開了指令系統(tǒng)400的一個實施例。指令系統(tǒng)400包括一個前綴402和一個指令根408。前綴402包含一或多個寄存器組選擇域,例如一個第一寄存器組選擇域404和一個第二寄存器組選擇域406。第一和第二寄存器組選擇域404,406長度均有N位。指令字408包含M位寄存器選擇域410,412。第一寄存器組選擇域404可以被用于指示一個具體的,可被用于諸如一個第一DALU單元32的第一執(zhí)行單元的寄存器組。第二寄存器組選擇域406可以被用于指示一個具體的,可被用于諸如一個第二DALU單元32的第二執(zhí)行單元的寄存器組。在一個具體實施例中,N為1并且M為3。在這個實施例中,有兩個不同的寄存器組,例如系統(tǒng)10的寄存器隊列28和29,并且各個寄存器組具有8個寄存器。通過這種方式,通過使用前綴字402的寄存器組選擇域404-406而不是指令408中的額外空間可以有選擇地存取較高組的,諸如寄存器隊列29中寄存器R8-R15的寄存器,因而在某些環(huán)境下節(jié)省了指令字存儲器空間。
參照圖17,其中示出了具有變長前綴字的指令系統(tǒng)420的一個實施例。指令系統(tǒng)420包含一個第一前綴字422,一個第二前綴字424,和一個第N前綴字426。各個前綴字422-426包含一個相應的前綴長度域428-432。前綴長度域428-432構成一個鏈,均指示前綴字鏈是否完成或者是否有一個額外的前綴字。通過這種方式,許多前綴字可以被一起連接到一個變長鏈中。但在最優(yōu)實施例中,由于第一和第二前綴字具有其它的間接指示前綴是一個字長還是兩個字長的域,所以第一個前綴字422不包含長度域。
下面公開了一個使用一個編碼前綴指令的指令系統(tǒng)的具體實施例,其中混合了許多前面圖解的前綴域。在這個實施例中,有一個單字前綴編碼格式和一個雙字前綴編碼格式。
在單字前綴編碼格式中,單字前綴具有下述二進制表示1001 aaaa 11|0-pjcc其中aaaa包含前綴字在內的被組合指令字數(shù)量,減1如果aaaa=0這是一個NOP指令,對于4 DALU的情況不被調度,對于4 DALU系統(tǒng),aaaa的有效值為0到6
cc條件執(zhí)行整個執(zhí)行集00無條件執(zhí)行01保留10在狀態(tài)寄存器T被設置時條件執(zhí)行11在狀態(tài)寄存器被清除時條件執(zhí)行pj在一個循環(huán)機制中使用的兩個位“-”為未來諸如額外循環(huán)信息的使用而保留在雙字形式中,前綴具有下述格式src0 src1 dest編碼0011 aaaa TTHH pjcc 101M bBeE bBeE bBeE其中aaa,cc,pj與單字前綴中相同例如aaaa==3->雙字前綴+2個組合指令字M為將來擴展到更長的前綴字而保留0前綴為雙字1前綴至少有3個字長(至少一個附加字)EEE針對DALU UNIT 0的數(shù)據(jù)寄存器擴充;E個位均用作第四寄存器域編碼位,有效地進行FFF->FFFF的調整,等等。
--1用于FFF域的高數(shù)據(jù)寄存器-1-用于J2域的高數(shù)據(jù)寄存器1--用于J1域的高數(shù)據(jù)寄存器注意FFF,J2,J1為操作數(shù)域。
例如DALU DJ1,DJ2,DF在兩個操作數(shù)DALU單元指令的情況下,只使用-EE。
在一個操作數(shù)DALU單元指令的情況下,只使用--E。
eee對于DALU UNIT 1,與EEE相同BBB對于DALU UNIT 2,與EEE相同
bbb對于DALU UNIT 3,與EEE相同HH針對AGU指令的數(shù)據(jù)寄存器擴充。
-1用于AGU 0中MOVE操作的高數(shù)據(jù)寄存器1-用于AGU10中MOVE操作的高數(shù)據(jù)寄存器例如,在系統(tǒng)10中,當H位被設置成1時使用寄存器隊列29中的寄存器而不是寄存器隊列28中的寄存器。
TT按比例擴大MOVE指令以便更寬地傳送;每個位激活一個AGU單元。對于各個單元,這些位適用于單元也對一個指令進行解碼的情況MOVE.2W,MOVE.2F,MOVE.L如果T位為0保持這些指令的原狀如果T位為1MOVE.2W->MOVE.4WMOVE.2F->MOVE.4FMOVES.2F->MOVES.4FMOVE.L->MOVE.2L-1使AGU0中的指令被解釋成更寬的MOVE1-使AGU1中的指令被解釋成更寬的MOVE原則上這些組合為下述內容保留MOVE.2LMOVE.4WMOVE.4F根據(jù)另一個實施例,現(xiàn)在公開一個不使用前綴指令對指令進行組合的方法。參照圖18,其中圖解了一個沒有可被用于靜態(tài)組合的前綴字的指令。指令450包含一或多個指令字,例如一個第一指令字452和一個第二指令字454。第一指令字452包含一個也被稱作一個操作碼的操作選擇域456,該選擇域可被用于選擇多個不同的,可以在諸如系統(tǒng)10的系統(tǒng)上執(zhí)行的操作。操作選擇域456包含一個長度為n位的類型子域458。在一個具體實施例中,n等于2。雖然在圖解中以一個雙指令字指令為例,但所述的操作選擇域內的類型子域和類型子域的使用適用于許多種的單字和多字指令。
參照圖19,該圖例圖解了如何可以把通過一個指令內的操作選擇域編碼的不同種類的指令映射到類型子域中的值。類型子域通常被用于提供組合和針對一個具有多指令和/或多指令字的執(zhí)行集的多字指令信息。可以被執(zhí)行的指令在高級別上被分成類型I指令和類型II指令。可以串行或并行地執(zhí)行類型I指令,即類型I指令可以和其它指令組合以便在一個執(zhí)行集中執(zhí)行。類型II指令可以順序執(zhí)行,但并行執(zhí)行的能力有限或者不能完全組合。某些類型II指令510不能與任何其它指令組合。這種不能組合的指令的一個例子是使數(shù)據(jù)處理器10處于低功率待命模式的休眠指令。
如圖19所示,對于順序執(zhí)行的類型I指令,類型子域被設成一個第一值,例如針對圖解實施例中片段502的01。對于和其它單字指令并行執(zhí)行的類型I指令,類型子域被設成一個第二值,例如圖中的00,片段504。至少一個類型II指令被設成一個第三值,例如10,片段510,或可選的一個第四值,例如11,片段512。使用所示的兩位類型子域進行指令組合會減少指令選擇的可用操作碼空間。例如,在現(xiàn)有的系統(tǒng)中,如果一個單獨的位被專用于組合信息,則操作碼空間會被減少百分之五十(50%)。對于兩位系統(tǒng),操作碼空間會被減少百分之二十五(25%)。
但在圖解的實施例中,為了保留有用的操作碼空間,針對類型子域的第二值,即00,某些多字指令重用一部分操作碼空間。與至少一個其它指令并行執(zhí)行的多字指令的片段506和順序執(zhí)行的多字指令的片段508使用一部分共享類型I并行單字指令的操作碼象限。這種重用技術的一個實現(xiàn)方法是使用在其它情況下不允許使用的指令組合,例如把一個類型I可組合指令與一個類型II不可組合指令相組合。在其它情況下通過使用矛盾的指令組合,可以對多字序列進行編碼。通過這種方式,可以保留有價值的操作碼空間,因而改進了指令系統(tǒng)。
上述不同類型指令的一個例子職下所述。括號內是實際的匯編指令。
類型I串行502寄存器D0加1(inc d0)類型I并行504寄存器d0加1并且把寄存器r0所指地址的字移動到寄存器r1(inc d0,move.w(r0),d1)(兩個單配對指令)多字506在把偏移加到寄存器d3中后移動寄存器中的地址(incd0,move.b(R3+1000),d3)(一個單字和一個多字指令)多字串行508把1000加到d0中并且存儲到d1中(add#1000,d0,d1)類型II 510或512中斷執(zhí)行(doze)雖然片段510,512中的類型II指令可以具有相同類型,但在一個具體實施例中,可以分割指令以便不允許組合的指令被放在片段510中,而有限制地允許組合的指令被放在片段512中。
對于具有上述類型子域的指令,可以使用一般的組合規(guī)則。這種規(guī)則的一個例子是1、類型子域為00的指令字后面跟著被組合的額外指令字。
2、類型子域不為00的指令字是指令中的最后指令字。
3、最后指令字中的10指示至少有一個多字指令被執(zhí)行,其中在執(zhí)行集中有至少兩個指令字。
4、一個指令組中第二個字中類型子域之后的一個位可被用來區(qū)分成對的雙字指令和三字指令。在一個實施例中,區(qū)分位是緊跟在一個指令字組的第二個指令字中的類型子域之后的位。使用相同或其它指令中的附加位可以區(qū)分諸如四字指令的其它指令和三字指令,以及成對的單或雙字指令。
在一個具體的圖解實施例中,有3種傳遞組合信息以便把指令組合成執(zhí)行集的方式-使用指令中2-3個最有意義的位—不使用前綴-使用一個執(zhí)行集的單字前綴-使用一個執(zhí)行集的雙字前綴下面的組合算法選擇要使用(當給出要組合的指令時)的選項以便減少指令代碼長度。
該算法是-在執(zhí)行集中使用寄存器d8-d15?*是->使用雙字前綴*否->繼續(xù)-執(zhí)行集有條件執(zhí)行(Ifc),或應當傳遞循環(huán)信息?*是->使用單字前綴*否->繼續(xù)-執(zhí)行集只有一個指令?*是->不需要前綴*否->繼續(xù)-可以根據(jù)其類型組合執(zhí)行集中的指令?*是->不需要前綴-只使用2個最有意義的位對組合進行編碼*否->使用單字前綴下面公開了以列表形式對一個靜態(tài)組合實施例進行的描述。
單字指令類型編碼其中的2個最有意義的位類型子域458類型允許組合00 1 與下一個指令組合01 1 執(zhí)行集結束—可以和前面的類型1指令(00)組合11 2 執(zhí)行集結束—可以和前面的類型1指令(00)組合(不完全組合情況)10 4 執(zhí)行集中只有一個指令,不能組合兩和三字識別(L-執(zhí)行集中的最后指令)字L-1字L0010由于10不能與00組合,所以這是一個針對兩個單字指令的非法情況。因而針對這種情況保持
2&3字指令。
字L-2字L-1字L不關心 000 10 (L-1,L)是一個雙字指令(類型3)--可以和前面指令組合非00 001 10 雙字,不可組合(類型4)。(字L-2屬于前面的執(zhí)行集)00 001 10 (L-2,L-1,L)是一個三字組合指令(類型3)--可以和前面指令組合下面概述這里公開的其它方面。
在一個執(zhí)行選定操作的數(shù)據(jù)處理器中,一個指令系統(tǒng)包含一個前綴字和一個指令字,該前綴字具有一個選擇數(shù)據(jù)處理器執(zhí)行選定的操作的條件的條件執(zhí)行域,該指令字具有一個選擇數(shù)據(jù)處理器要執(zhí)行的操作的操作選擇域。條件執(zhí)行域可以選擇一個數(shù)據(jù)處理器不執(zhí)行選定操作的條件。在一個實施例中,前綴字和指令字包括一個指令和一個執(zhí)行步驟,數(shù)據(jù)處理器執(zhí)行上述步驟的條件取決于上述前綴字的條件執(zhí)行域。指令可以包含多于一個的指令字。在另一個實施例中,前綴在指令中是可選的。
一個系統(tǒng)指示一個數(shù)據(jù)處理器執(zhí)行選定的操作,該系統(tǒng)包含一個前綴字和一個指令字,該前綴字具有一個選擇數(shù)據(jù)處理器執(zhí)行選定的操作的條件的條件執(zhí)行域,該指令字具有一個選擇數(shù)據(jù)處理器要執(zhí)行的操作的操作選擇域。條件執(zhí)行域可以選擇上述數(shù)據(jù)處理器不執(zhí)行選定操作的條件。在一個實施例中,前綴字和指令字包括一個指令,數(shù)據(jù)處理器執(zhí)行上述指令的條件取決于上述前綴字的條件執(zhí)行域。指令可以包含多于一個的指令字。并且,前綴在指令中可以是可選的。
在另一個實施例中,本發(fā)明公開了一個指示一個數(shù)據(jù)處理器執(zhí)行選定的操作的系統(tǒng),該系統(tǒng)包含一個前綴字和一個指令字,該前綴字具有一個選擇數(shù)據(jù)處理器執(zhí)行選定的操作的條件的條件執(zhí)行域,該指令字具有一個選擇數(shù)據(jù)處理器要執(zhí)行的操作的操作選擇域。條件執(zhí)行域可以選擇上述數(shù)據(jù)處理器不執(zhí)行選定操作的條件。
前綴字和指令字包括一個指令,數(shù)據(jù)處理器執(zhí)行上述指令的條件取決于上述前綴字的條件執(zhí)行域。指令可以包含多于一個的指令字。
另一個實施例涉及通過具有第一和第二長度的操作數(shù)進行操作的一個數(shù)據(jù)處理器中的一個指令系統(tǒng)。該指令系統(tǒng)包含一個前綴字和一個指令字,上述前綴字具有一個用于調整一個被選定的操作,以便通過具有上述第二長度的一個操作數(shù)執(zhí)行該操作的操作數(shù)長度調整域,上述指令字具有一個用于選擇通過一個具有上述第一長度的操作數(shù)執(zhí)行的操作的操作選擇域。在一個實施例中,操作數(shù)具有多個長度,操作選擇域選擇一個通過具有上述多個長度中預定一個長度的操作數(shù)執(zhí)行的操作,并且操作數(shù)長度調整域調整操作,以便通過一個具有上述多個長度中一個不同長度的操作數(shù)執(zhí)行該操作。
在一個數(shù)據(jù)處理器中,一個指令系統(tǒng)包含一個前綴字和多個指令字,上述前綴字具有一個選擇一個指令組的長度的指令組域,上述指令字均具有一個選擇上述數(shù)據(jù)處理器執(zhí)行的操作的操作選擇域。數(shù)據(jù)處理器同時開始執(zhí)行包括上述組的指令字選擇的所有操作。前綴字和指令字可以構成一個指令。在一個實施例中,前綴字出現(xiàn)在上述指令中的各個指令字之前。在另一個實施例中,指令組域長度為n并且可以組合2n個上述多個指令字。也存在某些不能與任何上述多個指令字組合的指令字。
提供了一個控制數(shù)據(jù)處理器的系統(tǒng)。該系統(tǒng)包含一個指令根和一個指令前綴。該指令根具有一個用于選擇由上述數(shù)據(jù)處理器執(zhí)行的操作的操作選擇域。指令前綴具有一個可以從下面至少一個中選擇的域一個用于選擇數(shù)據(jù)處理器執(zhí)行上述選定操作的條件的條件執(zhí)行域,一個調整選定的操作以便通過一個具有不同長度的操作數(shù)加以執(zhí)行的操作數(shù)長度調整域,一個選擇包含指令根的指令組的字長的指令組域,和一個選擇上述指令前綴的字長的前綴長度選擇域。指令可以包括多于一個的指令根。前綴通常出現(xiàn)在至少一個指令根之前。
一個控制具有多個寄存器的數(shù)據(jù)處理器的系統(tǒng)。該系統(tǒng)包含一個指令根,該指令根具有一個寬度為m,用于選擇上述數(shù)據(jù)處理器的2m個寄存器中的一個的寄存器選擇域;和一個指令前綴,該前綴具有一個寬度為n,用于擴展上述寄存器選擇域的寬度以便選擇上述數(shù)據(jù)處理器中2m+n個寄存器中的一個的寄存器選擇擴展域。
這里已經(jīng)描述了一個實施例,其中包含一個改進的方法和組合數(shù)據(jù)處理器指令的裝置至少一個最優(yōu)實施例,和指令系統(tǒng)的實施例。本領域技術人員顯然可以理解,可以通過多種方式修改所公開的主題內容,并且可以假設出許多不同于專門提出并描述的最優(yōu)形式的實施例。例如,只以舉例的方式描述了數(shù)據(jù)處理器10的特定單元和配置??梢允褂迷S多其它的可選系統(tǒng)。例如,核心12中的DMA16,存儲器20,22和某些執(zhí)行單元是可選的。相應地,上述公開的主題內容是說明性的,并且沒有約束性,在法律允許的最大范圍內,所附權利要求書試圖覆蓋所有這樣的修改和落在本發(fā)明真實宗旨和范圍內的其它實施例。本發(fā)明的范圍可以通過對后面的權利要求及其等效作能夠允許的最寬的解釋后來確定。本發(fā)明的范圍不應限于前面的詳細描述。
權利要求
1.一個指令系統(tǒng),其特征在于一個指令根,該指令根具有一個用于選擇由上述數(shù)據(jù)處理器執(zhí)行的操作的操作選擇域;和一個指令前綴,該前綴具有一個從下面域組中選出的域一個條件執(zhí)行域,用于選擇一個條件,在該條件下數(shù)據(jù)處理器執(zhí)行上述選擇操作;一個操作數(shù)長度調整域,用于調整選擇的操作以便通過一個具有不同長度的操作數(shù)加以執(zhí)行;一個指令組域,用于選擇一個指令組長度;和一個前綴長度選擇域,用于選擇上述指令的前綴長度。
2.如權利要求1所述的指令系統(tǒng),其中上述域是上述條件執(zhí)行域并且指令根和指令前綴構成一個指令,上述數(shù)據(jù)處理器執(zhí)行上述指令的條件取決于上述指令前綴的上述條件執(zhí)行域。
3.如權利要求2所述的指令系統(tǒng),其中上述指令包含多于一個的指令根。
4.如權利要求1所述的指令系統(tǒng),其中指令被分布在一個數(shù)據(jù)處理系統(tǒng)內。
5.在一個具有2n個包含2m個寄存器的組的數(shù)據(jù)處理器中的一個指令系統(tǒng),其特征在于一個前綴字,該前綴字具有一個長度為n,用于選擇2n組上述寄存器中的一個組的寄存器組選擇域;一個指令字,該指令字具有一個長度為m,用于在上述選定的組中的2m個寄存器中選擇一個寄存器的寄存器選擇域。
6.一個控制數(shù)據(jù)處理器通過具有第一和第二長度的操作數(shù)執(zhí)行操作的系統(tǒng),其特征在于一個指令根,該指令根具有一個用于選擇通過一個具有上述第一長度的操作數(shù)執(zhí)行的操作的操作選擇域;一個指令前綴,該指令前綴具有一個調整上述選定的操作以便通過具有上述第二長度的操作數(shù)執(zhí)行該操作的操作數(shù)長度調整域。
7.在一個數(shù)據(jù)處理器中的指令系統(tǒng),其特征在于多個指令根,每個指令根具有一個選擇上述數(shù)據(jù)處理器執(zhí)行的操作的操作選擇域;一個指令前綴,該指令前綴具有一個用于選擇多個上述指令根以構成一個組的指令組域,數(shù)據(jù)處理器同時開始執(zhí)行上述組選定的所有操作。
8.一個數(shù)據(jù)處理系統(tǒng),其特征在于一個包含多個執(zhí)行單元的數(shù)據(jù)處理核心;至少一個與數(shù)據(jù)處理核心相連的外設;一個位于數(shù)據(jù)處理核心內的指令系統(tǒng),該指令系統(tǒng)包括一個指令根,該指令根具有一個用于選擇由上述數(shù)據(jù)處理器執(zhí)行的操作的操作選擇域;和一個指令前綴,該前綴具有一個從域組中選出的域,該域組包括一個用于選擇數(shù)據(jù)處理器執(zhí)行上述選擇的操作的條件的條件執(zhí)行域,一個調整選擇的操作以便通過一個具有不同長度的操作數(shù)加以執(zhí)行的操作數(shù)長度調整域,一個選擇指令組長度的指令組域,和一個選擇上述指令前綴長度的前綴長度選擇域。
9.一個在順序執(zhí)行第一和第二種操作,并且以并行方式執(zhí)行多個上述第一種操作的數(shù)據(jù)處理器中的指令系統(tǒng),其特征在于一個指令,該指令具有一個用于選擇上述數(shù)據(jù)處理器執(zhí)行的上述第一和第二種操作中的一個的操作選擇域,操作選擇域具有一個寬度為n的類型子域,對該子域賦值如下在順序執(zhí)行上述第一種操作的情況下取一個第一值;在并行執(zhí)行上述第一種操作的情況下取一個第二值;在執(zhí)行上述第二種操作的情況下取從剩余(2n-2)個值中選擇的一個第三值。
10.一個控制一個數(shù)據(jù)處理器順序執(zhí)行第一和第二種操作并且以并行方式執(zhí)行多個上述第一種操作的系統(tǒng),其特征在于一個指令,該指令具有一個用于選擇上述數(shù)據(jù)處理器執(zhí)行的第一和第二種操作中的一個的操作選擇域,操作選擇域具有一個類型子域,該類型子域具有一個針對順序執(zhí)行的上述第一類型操作的第一值;一個針對并行執(zhí)行的上述第一類型操作和順序執(zhí)行的上述第二類型操作中至少一個選定操作的第二值。
全文摘要
一個控制一個數(shù)據(jù)處理器的系統(tǒng),該系統(tǒng)包含一個指令根和一個指令前綴,該指令根具有一個用于選擇由上述數(shù)據(jù)處理器執(zhí)行的操作的操作選擇域。該指令前綴具有一個域組中選出的域,該域組包括一個用于選擇數(shù)據(jù)處理器執(zhí)行上述選擇的操作的條件的條件執(zhí)行域,一個調整選擇的操作以便通過一個具有不同長度的操作數(shù)加以執(zhí)行的操作數(shù)長度調整域,一個選擇指令組長度的指令組域,和一個選擇上述指令前綴長度的前綴長度選擇域,其中指令組包含指令根。也公開了一個對應于這個指令系統(tǒng)的數(shù)據(jù)處理器系統(tǒng)。還公開了一個靜態(tài)組合不使用一個指令前綴的指令的指令系統(tǒng)。
文檔編號G06F9/308GK1250906SQ9912109
公開日2000年4月19日 申請日期1999年10月12日 優(yōu)先權日1998年10月13日
發(fā)明者茲維卡·羅森申, 亞科布·托卡爾, 尤里·達揚, 瓊·鮑爾·格爾根 申請人:摩托羅拉公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
蓬莱市| 平谷区| 邢台县| 溧水县| 犍为县| 陈巴尔虎旗| 钦州市| 陆良县| 洪洞县| 榆林市| 台湾省| 万全县| 眉山市| 潜江市| 宁乡县| 基隆市| 灵川县| 北流市| 黄浦区| 鄂尔多斯市| 南江县| 惠安县| 巴中市| 阆中市| 抚宁县| 罗江县| 通河县| 淳安县| 楚雄市| 德化县| 阿荣旗| 武隆县| 通化市| 曲阳县| 翁牛特旗| 黔江区| 乌兰浩特市| 无棣县| 新龙县| 阳泉市| 行唐县|