專利名稱::數(shù)據(jù)處理引擎的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種數(shù)據(jù)端序控制機(jī)制,特別涉及一種數(shù)據(jù)處理引擎。
背景技術(shù):
:傳統(tǒng)的數(shù)據(jù)處理引擎(例如一般用途的微處理器)可存取至少一地址空間。每一地址空間可用來存取存儲器或I/O裝置,或兩者皆可。通過不同的讀取/儲存指令可分辨存儲器和I/O裝置的地址空間。例如,Loadmemory指令用來存取存儲器地址空間,而LoadIO指令用來存取I/O地址空間。另外也可根據(jù)實(shí)體地址空間片段(無地址轉(zhuǎn)換)或虛擬地址空間片段(有地址轉(zhuǎn)換)來分辨存儲器和I/O裝置的地址空間。上述每一片段具有不同的地址范圍。計(jì)算機(jī)結(jié)構(gòu)領(lǐng)域中,”數(shù)據(jù)端序”這個詞是用以將字節(jié)數(shù)據(jù)的一序列置入一終點(diǎn)(destination)儲存處(例如寄存器、存儲器或數(shù)據(jù)總線)的數(shù)據(jù)字節(jié)次序,終點(diǎn)儲存處具有超過一字節(jié)的數(shù)據(jù)寬度。大端序次序和小端序次序最常見。圖1是表示大端序字節(jié)次序和小端序字節(jié)次序的傳統(tǒng)概念的一示意圖。圖1示出了一小端序字節(jié)次序110、一大端序字節(jié)次序120及用來儲存數(shù)據(jù)字節(jié)DO-Dll的一存儲器150。根據(jù)小端序字節(jié)次序110,來自存儲器150的最低地址的數(shù)據(jù)字節(jié)DO被置于終點(diǎn)儲存處的最低有效字節(jié)(LSB),而朝著終點(diǎn)儲存處的最高有效方向放置具有較高地址的數(shù)據(jù)字節(jié)。根據(jù)大端序字節(jié)次序120,來自存儲器150的最低地址的數(shù)據(jù)字節(jié)DO被置于終點(diǎn)儲存處的最高有效字節(jié)(MSB),朝著終點(diǎn)儲存處的最低有效方向放置具有較高地址的數(shù)據(jù)字節(jié)。由于硬件實(shí)現(xiàn)的差異,不同的地址空間可使用不同的數(shù)據(jù)端序。例如,個人電腦(PC)使用小端序字節(jié)次序,而網(wǎng)路通訊使用大端序字節(jié)次序。因此需要端序轉(zhuǎn)換。儲存數(shù)據(jù)的端序轉(zhuǎn)換是指數(shù)據(jù)被轉(zhuǎn)換至不同儲存場所,而且來源和終點(diǎn)場所使用不同數(shù)據(jù)大小單位時,數(shù)據(jù)字節(jié)次序的轉(zhuǎn)換。例如,一個32比特寄存器和一個以字節(jié)為單位來定址(byte-addressable)的存儲器之間的數(shù)據(jù)轉(zhuǎn)換,就需要數(shù)據(jù)端序轉(zhuǎn)換。數(shù)據(jù)端序決定32-bit寄存器的哪個字節(jié)(最低有效字節(jié)或最高有效字節(jié))要被寫入至或被讀取自存儲器的第一字節(jié)地址。支持雙向端序數(shù)據(jù)處理的數(shù)據(jù)處理引擎使用下列其中一種機(jī)制來控制數(shù)據(jù)端序轉(zhuǎn)換。第一種控制機(jī)制是分開的兩組讀取/儲存指令。一組指令用來執(zhí)行大端序讀取/儲存的操作,而另一組用來執(zhí)行小端序讀取/儲存的操作。第二種控制機(jī)制是特定的端序轉(zhuǎn)換指令。當(dāng)數(shù)據(jù)儲存于一寄存器,一組特定指令可用來轉(zhuǎn)換此數(shù)據(jù)的端序。第三種控制機(jī)制利用一專屬的軟件可寫入(software-programmable)的端序控制寄存器來決定所有讀取/儲存操作的端序??刂萍拇嫫鲀Υ嬉粋€比特,其值決定所有讀取/儲存操作的當(dāng)前端序。軟件能更改此比特值以切換于大端序字節(jié)次序和小端序字節(jié)次序之間。第四種控制機(jī)制是用分開的實(shí)體地址范圍對應(yīng)不同端序。其中一些地址范圍用于大端序讀取/儲存的存取,而另一些地址范圍用于小端序讀取/儲存的存取。例如,地址范圍OOOOh-BFFFh被分配給小端序且地址范圍COOOh-FFFFh被分配給大端序,其中最后的"h"表示十六進(jìn)位制的數(shù)字。上述的全部傳統(tǒng)控制機(jī)制以同樣方式處理存儲器和I/O裝置的地址空間。這些傳統(tǒng)控制機(jī)制并不特別區(qū)分存儲器地址空間和I/O地址空間。
發(fā)明內(nèi)容據(jù)此,本發(fā)明提供一種具有整合性數(shù)據(jù)端序控制機(jī)制的數(shù)據(jù)處理引擎。此數(shù)據(jù)處理引擎儲存多個可程序化的端序控制比特。利用端序控制比特的狀態(tài),每個地址空間類型的數(shù)據(jù)端序能被獨(dú)立地設(shè)定。每個數(shù)據(jù)轉(zhuǎn)移的地址空間類型可由指令的類型、地址空間的范圍或地址空間的屬性來決定。此控制機(jī)制的特征是更有彈性的數(shù)據(jù)端序管理和更簡單的軟件開發(fā)。本發(fā)明提供一種數(shù)據(jù)處理引擎。數(shù)據(jù)處理引擎包括一端序寄存器、一端序控制裝置和一字節(jié)交換器。端序寄存器儲存多個端序控制比特。每一端序控制比特標(biāo)示允許數(shù)據(jù)處理引擎存取的地址空間的一類型的預(yù)設(shè)數(shù)據(jù)端序。地址空間的類型可如一存儲器空間和一裝置空間般簡單,或如多個存儲器空間和多個裝置空間般復(fù)雜。每個端序控制比特處于一大端序狀態(tài)或一小端序狀態(tài)。端序控制裝置連接至端序寄存器。端序控制裝置根據(jù)端序控制比特和被數(shù)據(jù)處理引擎執(zhí)行的一指令來提供一端序信號。端序信號處于大端序狀態(tài)或小端序狀態(tài)。字節(jié)交換器連接至端序控制裝置。字節(jié)交換器傳送被指令使用或產(chǎn)生的數(shù)據(jù),且當(dāng)數(shù)據(jù)的字節(jié)次序不符合端序信號的狀態(tài)時,改變數(shù)據(jù)的字節(jié)次序。當(dāng)一預(yù)決條件為真,數(shù)據(jù)處理引擎將端序控制比特存入一儲存裝置,例如一程序狀態(tài)字寄存器(processstatuswordregister),將預(yù)設(shè)值載入端序寄存器以作為新端序控制比特,執(zhí)行一預(yù)決程序,并從儲存裝置回復(fù)先前端序控制比特至端序寄存器。例如,預(yù)決條件可為一例外的發(fā)生且預(yù)決程序可為例外處理程序(exceptionhandler)0數(shù)據(jù)處理引擎還可包括一空間解碼器??臻g解碼器連接至端序控制裝置。空間解碼器解碼指令和/或其相關(guān)地址,并基于解碼結(jié)果提供一解碼器信號。解碼器信號決定地址空間的一類型且端序控制裝置使用它以選取并輸出對應(yīng)已決地址空間類型的端序控制比特以作為端序信號。數(shù)據(jù)處理引擎還可建立用于地址空間的每一片段的多個屬性,其中屬性代表更多地址空間的微調(diào)類型。端序控制裝置可根據(jù)地址空間屬性來輸出端序信號。這些屬性的種類可被建立于虛擬地址空間層(level)或?qū)嶓w地址層(level)或兩者。屬性可決定至少,但不限于,相關(guān)地址空間片段的可緩存性(cacheability)、可暫存性(bufferability)和可接合性(coalesceability)的至少其中之一。地址空間屬性的組合值可對應(yīng)地址空間的類型之一,且端序控制裝置可輸出對應(yīng)地址空間的一類型的端序控制比特以作為端序信號。地址空間的每一片段還可包括處于大端序狀態(tài)、小端序狀態(tài)或一禁能狀態(tài)的一端序選取屬性。在此,當(dāng)端序選取屬性處于大端序狀態(tài)或小端序狀態(tài),端序控制裝置根據(jù)端序選取屬性的狀態(tài)輸出端序信號。當(dāng)端序選取屬性處于禁能狀態(tài),端序控制裝置根據(jù)地址空間屬性的組合值來輸出端序信號。指令可為多個軟件可程序指令的一指令或可為執(zhí)行載入或儲存操作從或至一地址的一當(dāng)前程序的一些隱含(implicit)硬件操作,且端序控制比特、地址空間屬性及端序選取屬性與當(dāng)前程序一起進(jìn)行背景切換(context-switch)。當(dāng)指令存取同時越過一第一和一第二地址空間的一數(shù)據(jù),且第二地址空間的多個地址高于第一地址空間的多個地址,端序控制裝置可輸出對應(yīng)第一地址空間或第二地址空間的端序控制比特,但并非同時對應(yīng)兩者,以作為端序信號?;蛘?,數(shù)據(jù)處理引擎可因此產(chǎn)生一例外。為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說明如下。圖1是表示大端序字節(jié)次序和小端序字節(jié)次序的傳統(tǒng)概念的一示意圖;圖2是根據(jù)本發(fā)明的一實(shí)施例示出的用以建立一數(shù)據(jù)端序控制機(jī)制的一數(shù)據(jù)處理引擎的一部分的示意圖;圖3是根據(jù)本發(fā)明的另一實(shí)施例示出的用以建立另一數(shù)據(jù)端序控制機(jī)制的另一數(shù)據(jù)處理引擎的一部分的示意圖;圖4是一種用以控制被圖3中的端序控制裝置執(zhí)行的控制數(shù)據(jù)端序的方法的一流程圖。附圖中主要元件符號說明110-小端序字節(jié)次序;120-大端序字節(jié)次序;150-存儲器;210-端序寄存器;220-端序控制比特;230-預(yù)設(shè)值;240-空間解碼器;245-解碼器信號;250-端序控制裝置;255-端序信號;260-寄存器縱列;270-讀取/儲存單元;280-字節(jié)交換器;340-屬性;350-端序控制裝置;360-屬性提供器;410470-步驟。具體實(shí)施例方式圖2是根據(jù)本發(fā)明的一實(shí)施例示出的用以建立一數(shù)據(jù)端序控制機(jī)制的一數(shù)據(jù)處理引擎的一部分的示意圖。數(shù)據(jù)處理引擎包括一端序寄存器210、空間解碼器240、一端序控制裝置250、寄存器縱列260和讀取/儲存單元270。讀取/儲存單元270包括一字節(jié)交換器280。讀取/儲存單元可為數(shù)據(jù)處理引擎的標(biāo)準(zhǔn)(regular)功能單元,其執(zhí)行由此引擎的使用者所程序化的讀取/儲存指令,或是被引擎操作的一種隱含數(shù)據(jù)移動功能,以存取某些非指令(non-instruction)的特定數(shù)據(jù),例如轉(zhuǎn)換后備(look-aside)緩沖(buffer)數(shù)據(jù)或除蟲(debugging)數(shù)據(jù)。端序寄存器210儲存多個端序控制比特220。每一端序控制比特220標(biāo)示允許該數(shù)據(jù)處理引擎存取的多個地址空間的一類型的一預(yù)設(shè)數(shù)據(jù)端序。每一端序控制比特220處于一大端序狀態(tài)或一小端序狀態(tài)。例如,比特值1可代表大端序狀態(tài)且比特值0可代表小端序狀態(tài)。另外,比特值1可代表小端序狀態(tài)且比特值0可代表大端序狀態(tài)。空間解碼器240解碼被數(shù)據(jù)處理引擎執(zhí)行的指令及/或其相關(guān)地址,并基于解碼結(jié)果來提供一解碼器信號245。解碼器信號245的每一個值決定地址空間的一類型。端序控制裝置250連接至端序寄存器210及空間解碼器240。端序控制裝置250輸出對應(yīng)由解碼器信號245的值所決定的地址空間的類型的端序控制比特以作為端序信號255。與端序控制比特220相似,端序信號255處于大端序狀態(tài)或小端序狀態(tài)。寄存器縱列260包括數(shù)據(jù)處理引擎的多個內(nèi)部寄存器。讀取/儲存單元270處理寄存器縱列260的內(nèi)部寄存器和地址空間之間的讀取/儲存操作。數(shù)據(jù)處理引擎的地址空間可用來存取緩存(cache)、局部(local)存儲器,或連接外部存儲器或I/O裝置的寄存器的總線接口。字節(jié)交換器280連接至端序控制裝置250、寄存器縱列260及上述被地址空間存取的硬件部件。字節(jié)交換器280發(fā)送被寄存器縱列260的內(nèi)部寄存器和上述硬件部件之間的操作所使用或產(chǎn)生的數(shù)據(jù)。此外,當(dāng)該數(shù)據(jù)的字節(jié)次序不符合端序信號255的狀態(tài)時,字節(jié)交換器280則更改數(shù)據(jù)的字節(jié)次序。為了有效地控制數(shù)據(jù)端序,字節(jié)交換器280知道所有的內(nèi)部寄存器、緩存、局部存儲器、外部存儲器和I/O裝置的硬件應(yīng)用,其包括最高有效字節(jié)和最低有效字節(jié)的位置。因此,字節(jié)交換器280能決定數(shù)據(jù)字節(jié)次序是否符合端序信號255。端序控制比特220的狀態(tài)可被數(shù)據(jù)處理引擎執(zhí)行的軟件設(shè)定。由于地址空間的每一類型的數(shù)據(jù)端序被對應(yīng)的端序控制比特控制,地址空間的每一類型的數(shù)據(jù)端序可獨(dú)立地被控制。例如,地址空間的一類型可用來存取連接至數(shù)據(jù)處理引擎的存儲器,而地址空間的另一類型而可用來存取連接至數(shù)據(jù)處理引擎的I/O裝置的寄存器。由于此配置,軟件能根據(jù)不同的規(guī)則來控制存儲器地址空間和I/O地址空間的數(shù)據(jù)端序??捎弥噶铑愋突虻刂贩秶鷣韰^(qū)別地址空間的類型。當(dāng)此區(qū)別是基于指令類型,數(shù)種指令的集合(或類型)的可用來存取地址空間的一類型??臻g解碼器240根據(jù)指令的集合/類型來提供解碼器信號245。當(dāng)此區(qū)別是基于地址范圍,地址空間的一類型被分配給一地址范圍,而數(shù)個地址范圍可被設(shè)定為同樣地址空間類型。在此,空間解碼器240根據(jù)被指令存取的地址空間類型來提供解碼器信號245。解碼器信號245決定地址空間的類型,其地址范圍包括被指令存取的存儲器地址。端序寄存器210接收多個預(yù)設(shè)值230。每個端序控制比特220具有一對應(yīng)的預(yù)設(shè)值230。當(dāng)一預(yù)決條件為真,數(shù)據(jù)處理引擎將端序控制比特存入一暫時儲存裝置(未示出),用預(yù)設(shè)值230取代端序控制比特220,執(zhí)行一預(yù)決(predetermined)程序,并從暫時儲存裝置回復(fù)先前端序控制比特220至端序寄存器210。例如,預(yù)決條件可為硬件重設(shè)、例外、陷阱(trap)、錯誤或中斷的發(fā)生,使數(shù)據(jù)處理引擎進(jìn)入一超級使用者(superuser)或特許狀態(tài),或類似的已知狀態(tài)。預(yù)決程序可為例外、陷阱、錯誤或中斷的處理程序。超級使用者狀態(tài)或特許狀態(tài)中,端序控制比特220得為常數(shù)控制值以確保正確的系統(tǒng)行為。預(yù)設(shè)值230在超級使用者狀態(tài)或特許狀態(tài)中提供常數(shù)控制值。更可利用數(shù)據(jù)處理引擎芯片的外部接腳選擇來設(shè)定預(yù)設(shè)值230,因此能通過數(shù)據(jù)處理引擎芯片被安裝的電路版的跳線(jumper)調(diào)整預(yù)設(shè)值230。—些罕見的情況中,指令的讀取/儲存操作存取同時越過兩個地址空間的一數(shù)據(jù)。例如,被存取的數(shù)據(jù)字(word)可延展,越過一地址空間片段的邊界而進(jìn)入另一地址空間片段。在此,空間解碼器240可輸出解碼器信號245以選取具有較低地址或較高地址的地址空間片段,端序控制裝置250分別輸出對應(yīng)具有較低地址或較高地址的地址空間片段的唯一(unique)端序控制比特以作為端序信號255。另外,若有一應(yīng)用不打算在解碼器中處理這個情況,空間解碼器240可產(chǎn)生一例外。圖3是根據(jù)本發(fā)明的另一實(shí)施例示出的用以建立另一數(shù)據(jù)端序控制機(jī)制的另一數(shù)據(jù)處理引擎的一部分的示意圖。圖2中的空間解碼器240和端序控制裝置250分別被屬性提供器360和端序控制裝置350取代。屬性提供器360和端序控制裝置350互相連接。圖3中的其他部件與圖2中的相同。在圖3的實(shí)施例中,被數(shù)據(jù)處理引擎存取的地址空間片段被分為實(shí)體地址空間或虛擬地址空間的片段。每個片段與至少一地址空間屬性和一端序選取屬性相關(guān)。地址空間屬性可決定相關(guān)地址空間片段的可緩存性(cacheability)、可暫存性(buffertility)和可接合性(coalesceability),或用于標(biāo)準(zhǔn)讀取/儲存操作的其他能力限制(現(xiàn)有技術(shù),故在此不再贅述)。端序選取屬性處于大端序狀態(tài)、小端序狀態(tài)或一禁能狀態(tài)。屬性提供器360可儲存一表格(table),其包括所有地址空間片段的地址空間屬性和端序選取屬性。當(dāng)數(shù)據(jù)處理引擎執(zhí)行一指令,屬性提供器360解碼指令并基于解碼結(jié)果來查詢上述表格。屬性提供器360提供對應(yīng)被指令存取的地址空間片段的地址空間屬性和端序選取屬性以作為屬性340,并給端序控制裝置350。端序控制裝置350根據(jù)屬性340而輸出端序控制比特220之一以作為端序信號255。圖4是一種用以控制被圖3中的端序控制裝置執(zhí)行的控制數(shù)據(jù)端序的方法的一流程圖。第一,確認(rèn)被指令存取的地址空間片段的端序選取屬性是否處于禁能狀態(tài)(步驟410)。當(dāng)端序選取屬性不處于禁能狀態(tài),確認(rèn)端序選取屬性處于大端序狀態(tài)或小端序狀態(tài)(步驟450)。當(dāng)端序選取屬性處于大端序狀態(tài),端序控制裝置350輸出端序信號255處于大端序狀態(tài)(步驟460)。當(dāng)端序選取屬性處于小端序狀態(tài),端序控制裝置350輸出端序信號255處于小端序狀態(tài)(步驟470)?;氐讲襟E410,當(dāng)端序選取屬性處于禁能狀態(tài),端序控制裝置350根據(jù)上述地址空間屬性的組合值(combinedvalue)來輸出端序信號255,其決定被當(dāng)前指令存取的地址空間片段的可緩存性(cacheability)、可暫存性(bufferability)及/和可接合性(coalesceability)(步驟430)。例如,不可緩存(non-cacheable)、不可緩沖(non-bufferable)禾口不可接合(non-coalesceable)是地址空間屬性的一組合值,而可緩存(cacheable)、可緩沖(bufferable)和可接合(coalesceable)是地址空間屬性的另一組合值。每個地址空間屬性具有一同意(affirmative)狀態(tài)和一否定(negative)狀態(tài)??偟膩碚f,有八種二進(jìn)位狀態(tài)的組合,其對應(yīng)八種地址空間屬性的組合值。八種組合值的每一種代表允許數(shù)據(jù)處理引擎存取的地址空間的一類型。當(dāng)數(shù)據(jù)處理引擎執(zhí)行一指令且此指令執(zhí)行一讀取/儲存操作,端序控制裝置350接收被讀取/儲存操作存取的地址空間片段的地址空間屬性。地址空間屬性的組合值被用來選取端序控制比特220之一。據(jù)此,端序控制裝置350輸出對應(yīng)上述組合值的端序控制比特以作為端序信號255。一簡單的例子為,當(dāng)只使用兩個端序控制比特,則施加第一端序控制比特至具有不可緩#(non_cacheable)、不可緩7中(non-bufferable)禾口不可(non-coalesceable)屬性的地址空間的一片段,而施加第二端序控制比特至具有其他屬性組合值的地址空間的另一片段。一般應(yīng)用中,地址空間屬性可被作業(yè)系統(tǒng)(operatingsystem)或甚至其他應(yīng)用軟件設(shè)定,以控制每個地址空間片段的數(shù)據(jù)端序。用以選取端序控制比特的屬性是否與實(shí)體地址空間或虛擬地址空間相關(guān)是取決于數(shù)據(jù)處理引擎的地址轉(zhuǎn)換功能。當(dāng)?shù)刂忿D(zhuǎn)換功能被禁能,讀取/儲存操作是基于實(shí)體地址,而使用實(shí)體地址片段的屬性。當(dāng)?shù)刂忿D(zhuǎn)換功能被使能,讀取/儲存操作是基于虛擬地址,而使用虛擬存儲器片段的屬性。根據(jù)相關(guān)地址空間屬性的組合值,每一端序控制比特220代表一地址空間的類型的預(yù)設(shè)數(shù)據(jù)端序。端序選取屬性可用來覆蓋用于每一單獨(dú)的地址空間片段的預(yù)設(shè)數(shù)據(jù)端序。換言之,端序控制比特220提供粗調(diào)(coarse-grained)數(shù)據(jù)端序控制,而地址空間片段的端序選取屬性提供微調(diào)(fine-grained)數(shù)據(jù)端序控制。在本發(fā)明的其他實(shí)施例中,可忽略端序選取屬性以提供一簡化(simplified)數(shù)據(jù)端序控制機(jī)制。在一多重程序(multi-process)電腦中,背景切換(context-switching)是常見的且必要的(mandatory)。端序控制比特、地址空間屬性和端序選取屬性全部皆可與被數(shù)據(jù)處理引擎執(zhí)行的當(dāng)前程序一起做背景切換。當(dāng)作業(yè)系統(tǒng)切換至另一程序,端序控制比特、地址空間屬性和端序選取屬性可被儲存至當(dāng)前程序的背景。當(dāng)作業(yè)系統(tǒng)切換回當(dāng)前程序,端序控制比特、地址空間屬性和端序選取屬性可從當(dāng)前程序的背景中被回復(fù)。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。權(quán)利要求1.一種數(shù)據(jù)處理引擎,包括一端序寄存器,儲存多個端序控制比特,其中每一端序控制比特標(biāo)示允許該數(shù)據(jù)處理引擎存取的一地址空間一類型的一預(yù)設(shè)數(shù)據(jù)端序,每一上述端序控制比特處于一大端序狀態(tài)或一小端序狀態(tài);一端序控制裝置,連接至該端序寄存器,根據(jù)所述端序控制比特和被該數(shù)據(jù)處理引擎執(zhí)行的一指令來提供一端序信號,其中該端序信號處于該大端序狀態(tài)或該小端序狀態(tài);以及一字節(jié)交換器,連接至該端序控制裝置,傳送被該指令使用或產(chǎn)生的一數(shù)據(jù),且當(dāng)該數(shù)據(jù)的一字節(jié)次序不符合該端序信號的該狀態(tài)時,該字節(jié)交換器則改變該數(shù)據(jù)的該字節(jié)次序。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理引擎,其中當(dāng)一預(yù)決條件為真,該數(shù)據(jù)處理引擎將多個預(yù)設(shè)值載入該端序寄存器以作為所述端序控制比特。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理引擎,其中當(dāng)該預(yù)決條件為真,該數(shù)據(jù)處理引擎將所述端序控制比特存入一儲存裝置,將所述預(yù)設(shè)值載入該端序寄存器以作為所述新端序控制比特,執(zhí)行一預(yù)決程序,然后從該儲存裝置回復(fù)所述先前端序控制比特至該端序寄存器。4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理引擎,其中所述地址空間的所述類型的至少一類型被用來存取連接至該數(shù)據(jù)處理引擎的一存儲器,且所述地址空間的所述類型的至少另一類型被用來存取連接至該數(shù)據(jù)處理引擎的多個I/O裝置的多個寄存器。5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理引擎,還包括一空間解碼器,連接至該端序控制裝置,解碼該指令和/或其相關(guān)地址,并基于該解碼結(jié)果提供一解碼器信號,其中該解碼器信號決定所述地址空間的一類型且該端序控制裝置使用該解碼器信號以選取并輸出對應(yīng)該已決地址空間類型的該端序控制比特以作為該端序信號。6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理引擎,其中該空間解碼器根據(jù)該指令的一類型來提供該解碼器信號。7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理引擎,其中該空間解碼器根據(jù)被該指令存取的一地址所落入的一范圍來提供該解碼器信號,且該解碼器信號選取包括該地址的該地址范圍的該地址空間的該類型。8.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理引擎,其中該指令存取一地址空間片段中的一地址,該地址空間片段包括多個地址空間屬性,該端序控制裝置根據(jù)所述地址空間屬性來輸出該端序信號。9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理引擎,其中所述地址空間屬性的一組合值對應(yīng)所述地址空間的所述類型之一,且該端序控制裝置輸出對應(yīng)所述地址空間的該類型的該端序控制比特以作為該端序信號。10.根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理引擎,其中該地址空間片段是一實(shí)體地址片段或一虛擬地址片段。11.根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理引擎,其中所述地址空間屬性決定該地址空間片段的可緩存性、可暫存性和可接合性的至少其中之一。12.根據(jù)權(quán)利要求8所述的數(shù)據(jù)處理引擎,其中該地址空間片段還包括處于該大端序狀態(tài)、該小端序狀態(tài)或一禁能狀態(tài)的一端序選取屬性;當(dāng)該端序選取屬性處于該大端序狀態(tài)或該小端序狀態(tài),該端序控制裝置根據(jù)該端序選取屬性的該狀態(tài)來輸出該端序信號;當(dāng)該端序選取屬性處于該禁能狀態(tài),該端序控制裝置根據(jù)所述地址空間屬性輸出該端序信號。13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理引擎,其中該指令是一當(dāng)前程序的多個指令之一,且所述端序控制比特、所述地址空間屬性及該端序選取屬性與該當(dāng)前程序一起進(jìn)行背景切換。14.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理引擎,其中當(dāng)該指令同時存取所述地址空間的一第一地址空間及一第二地址空間,且該第二地址空間的地址高于該第一地址空間的地址,該端序控制裝置則輸出對應(yīng)該第一地址空間或該第二地址空間的該端序控制比特,但并非同時對應(yīng)兩者,以作為該端序信號,或該數(shù)據(jù)處理引擎產(chǎn)生一例外。全文摘要本發(fā)明提供了一種數(shù)據(jù)處理引擎。數(shù)據(jù)處理引擎包括一端序寄存器、一端序控制裝置和一字節(jié)交換器。端序寄存器儲存多個端序控制比特。每一端序控制比特標(biāo)示允許數(shù)據(jù)處理引擎存取的地址空間的一類型的預(yù)設(shè)數(shù)據(jù)端序。每個端序控制比特處于一大端序狀態(tài)或一小端序狀態(tài)。端序控制裝置連接至端序寄存器。端序控制裝置根據(jù)端序控制比特和被數(shù)據(jù)處理引擎執(zhí)行的一指令來提供一端序信號。端序信號處于大端序狀態(tài)或小端序狀態(tài)。字節(jié)交換器連接至端序控制裝置。字節(jié)交換器發(fā)送被指令使用或產(chǎn)生的數(shù)據(jù),且當(dāng)數(shù)據(jù)的字節(jié)次序不符合端序信號的狀態(tài)時,改變數(shù)據(jù)的字節(jié)次序。文檔編號G06F9/30GK102033734SQ20101012135公開日2011年4月27日申請日期2010年2月23日優(yōu)先權(quán)日2009年10月7日發(fā)明者賴吉昌申請人:晶心科技股份有限公司