TWI464675B - 具有整合性資料端序控制機制的資料處理引擎 - Google Patents
具有整合性資料端序控制機制的資料處理引擎 Download PDFInfo
- Publication number
- TWI464675B TWI464675B TW098139548A TW98139548A TWI464675B TW I464675 B TWI464675 B TW I464675B TW 098139548 A TW098139548 A TW 098139548A TW 98139548 A TW98139548 A TW 98139548A TW I464675 B TWI464675 B TW I464675B
- Authority
- TW
- Taiwan
- Prior art keywords
- endian
- address space
- address
- data processing
- processing engine
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 60
- 230000007246 mechanism Effects 0.000 title description 15
- 238000000034 method Methods 0.000 claims description 7
- 239000000463 material Substances 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明關於一種資料端序控制機制,特別是關於整合於一資料處理引擎的一種資料端序控制機制。
傳統資料處理引擎(例如一般用途的微處理器)可存取至少一位址空間。每一位址空間可用來存取記憶體或I/O裝置,或兩者皆可。藉由不同的讀取/儲存指令可分辨記憶體和I/O裝置的位址空間。例如,Loadmemory指令用來存取記憶體位址空間,而LoadIO指令用來存取I/O位址空間。另外也可根據實體位址空間片段(無位址轉換)或虛擬位址空間片段(有位址轉換)來分辨記憶體和I/O裝置的位址空間。上述每一片段具有不同的位址範圍。
計算機結構領域中,”資料端序”這個詞是用以將位元組資料的一序列置入一終點(destination)儲存處(例如暫存器、記憶體或資料匯流排)的資料位元組次序,終點儲存處具有超過一位元組的資料寬度。大端序次序和小端序次序最常見。圖1是表示大端序位元組次序和小端序位元組次序的傳統概念的一示意圖。圖1繪示一小端序位元組次序110、一大端序位元組次序120及用來儲存資料位元組D0-D11的一記憶體150。根據小端序位元組次序110,來自記憶體150的最低位址的資料位元組D0被置於終點儲存處的最低有效位元組(LSB),而朝著終點儲存處的最高有效方向放置具有較高位址的資料位元組。根據大端序位元組次序120,來自記憶體150的最低位址的資料位元組D0被置於終點儲存處的最高有效位元組(MSB),朝著終點儲存處的最低有效方向放置具有較高位址的資料位元組。
由於硬體實現的差異,不同的位址空間可使用不同的資料端序。例如,個人電腦(PC)使用小端序位元組次序,而網路通訊使用大端序位元組次序。因此需要端序轉換。儲存資料的端序轉換是指資料被轉換至不同儲存場所,而且來源和終點場所使用不同資料大小單位時,資料位元組次序的轉換。例如,一個32位元暫存器和一個以位元組為單位來定址(byte-addressable)的記憶體之間的資料轉換,就需要資料端序轉換。資料端序決定32-bit暫存器的哪個位元組(最低有效位元組或最高有效位元組)要被寫入至或被讀取自記憶體的第一位元組位址。
支援雙向端序資料處理的資料處理引擎使用下列其中一種機制來控制資料端序轉換。
第一種控制機制是分開的兩組讀取/儲存指令。一組指令用來執行大端序讀取/儲存的操作,而另一組用來執行小端序讀取/儲存的操作。
第二種控制機制是特定的端序轉換指令。當資料儲存於一暫存器,一組特定指令可用來轉換此資料的端序。
第三種控制機制利用一專屬的軟體可寫入(software-programmable)的端序控制暫存器來決定所有讀取/儲存操作的端序。控制暫存器儲存一個位元,其值決定所有讀取/儲存操作的當前端序。軟體能更改此位元值以切換於大端序位元組次序和小端序位元組次序之間。
第四種控制機制是用分開的實體位址範圍對應不同端序。其中一些位址範圍用於大端序讀取/儲存的存取,而另一些位址範圍用於小端序讀取/儲存的存取。例如,位址範圍0000h-BFFFh被分配給小端序且位址範圍C000h-FFFFh被分配給大端序,其中最後的"h"表示十六進位制的數字。
上述的全部傳統控制機制以同樣方式處理記憶體和I/O裝置的位址空間。這些傳統控制機制並不特別區分記憶體位址空間和I/O位址空間。
據此,本發明是關於一種具有整合性資料端序控制機制的資料處理引擎。此資料處理引擎儲存多個可程式化的端序控制位元。利用端序控制位元的狀態,每個位址空間類型的資料端序能被獨立地設定。每個資料轉移的位址空間類型可由指令的類型、位址空間的範圍或位址空間的屬性來決定。此控制機制的特徵是更有彈性的資料端序管理和更簡單的軟體開發。
本發明提供一種資料處理引擎。資料處理引擎包括一端序暫存器、一端序控制裝置和一位元組交換器。端序暫存器儲存多個端序控制位元。每一端序控制位元標示允許資料處理引擎存取的位址空間的一類型的預設資料端序。位址空間的類型可如一記憶體空間和一裝置空間般簡單,或如多個記憶體空間和多個裝置空間般複雜。每個端序控制位元處於一大端序狀態或一小端序狀態。端序控制裝置耦接至端序暫存器。端序控制裝置根據端序控制位元和被資料處理引擎執行的一指令來提供一端序信號。端序信號處於大端序狀態或小端序狀態。位元組交換器耦接至端序控制裝置。位元組交換器傳送被指令使用或產生的資料,且當資料的位元組次序不符合端序信號的狀態時,改變資料的位元組次序。
當一預決條件為真,資料處理引擎將端序控制位元存入一儲存裝置,例如一程序狀態字暫存器(process status Word register),將預設值載入端序暫存器以作為新端序控制位元,執行一預決程序,並從儲存裝置回復先前端序控制位元至端序暫存器。例如,預決條件可為一例外的發生且預決程序可為例外處理程序(exception handler)。
資料處理引擎更可包括一空間解碼器。空間解碼器耦接至端序控制裝置。空間解碼器解碼指令及/或其相關位址,並基於解碼結果提供一解碼器信號。解碼器信號決定位址空間的一類型且端序控制裝置使用它以選取並輸出對應已決位址空間類型的端序控制位元以作為端序信號。
資料處理引擎更可建立用於位址空間的每一片段的多個屬性,其中屬性代表更多位址空間的微調類型。端序控制裝置可根據位址空間屬性來輸出端序信號。這些屬性的種類可被建立於虛擬位址空間層(level)或實體位址層(level)或兩者。屬性可決定至少,但不限於,相關位址空間片段的可緩存性(cacheability)、可暫存性(bufferability)和可接合性(coalesceability)的至少其中之一。
位址空間屬性的組合值可對應位址空間的類型之一,且端序控制裝置可輸出對應位址空間的一類型的端序控制位元以作為端序信號。
位址空間的每一片段更可包括處於大端序狀態、小端序狀態或一禁能狀態的一端序選取屬性。在此,當端序選取屬性處於大端序狀態或小端序狀態,端序控制裝置根據端序選取屬性的狀態輸出端序信號。當端序選取屬性處於禁能狀態,端序控制裝置根據位址空間屬性的組合值來輸出端序信號。
指令可為多個軟體可程式指令的一指令或可為執行載入或儲存操作從或至一位址的一當前程序的一些隱含(implicit)硬體操作,且端序控制位元、位址空間屬性及端序選取屬性與當前程序一起進行背景切換(context-switch)。
當指令存取同時越過一第一和一第二位址空間的一資料,且第二位址空間的多個位址高於第一位址空間的多個位址,端序控制裝置可輸出對應第一位址空間或第二位址空間的端序控制位元,但並非同時對應兩者,以作為端序信號。或者,資料處理引擎可因此產生一例外。
圖2是根據本發明之一實施例繪示資料處理引擎之一部分的示意圖。資料處理引擎包括一端序暫存器210、空間解碼器240、一端序控制裝置250、暫存器縱列260和讀取/儲存單元270。讀取/儲存單元270包括一位元組交換器280。
讀取/儲存單元可為資料處理引擎的標準(regular)功能單元,其執行由此引擎的使用者所程式化的讀取/儲存指令,或是被引擎操作的一種隱含資料移動功能,以存取某些非指令(non-instruction)的特定資料,例如轉換後備(look-aside)緩衝(buffer)資料或除蟲(debugging)資料。
端序暫存器210儲存多個端序控制位元220。每一端序控制位元220標示允許該資料處理引擎存取的多個位址空間的一類型的一預設資料端序。每一端序控制位元220處於一大端序狀態或一小端序狀態。例如,位元值1可代表大端序狀態且位元值0可代表小端序狀態。另外,位元值1可代表小端序狀態且位元值0可代表大端序狀態。
空間解碼器240解碼被資料處理引擎執行的指令及/或其相關位址,並基於解碼結果來提供一解碼器信號245。解碼器信號245的每一個值決定位址空間的一類型。端序控制裝置250耦接至端序暫存器210及空間解碼器240。端序控制裝置250輸出對應由解碼器信號245的值所決定的位址空間的類型的端序控制位元以作為端序信號255。與端序控制位元220相似,端序信號255處於大端序狀態或小端序狀態。
暫存器縱列260包括資料處理引擎的多個內部暫存器。讀取/儲存單元270處理暫存器縱列260的內部暫存器和位址空間之間的讀取/儲存操作。資料處理引擎的位址空間可用來存取緩存(cache)、局部(local)記憶體,或連接外部記憶體或I/O裝置的暫存器的匯流排介面。位元組交換器280耦接至端序控制裝置250、暫存器縱列260及上述被位址空間存取的硬體部件。位元組交換器280發送被暫存器縱列260的內部暫存器和上述硬體部件之間的操作所使用或產生的資料。此外,當該資料的位元組次序不符合端序信號255的狀態時,位元組交換器280則更改資料的位元組次序。
為了有效地控制資料端序,位元組交換器280知道所有的內部暫存器、緩存、局部記憶體、外部記憶體和I/O裝置的硬體應用,其包括最高有效位元組和最低有效位元組的位置。因此,位元組交換器280能決定資料位元組次序是否符合端序信號255。
端序控制位元220的狀態可被資料處理引擎執行的軟體設定。由於位址空間的每一類型的資料端序被對應的端序控制位元控制,位址空間的每一類型的資料端序可獨立地被控制。例如,位址空間的一類型可用來存取耦接至資料處理引擎的記憶體,而位址空間的另一類型而可用來存取耦接至資料處理引擎的I/O裝置的暫存器。由於此配置,軟體能根據不同的規則來控制記憶體位址空間和I/O位址空間的資料端序。
可用指令類型或位址範圍來區別位址空間的類型。當此區別是基於指令類型,數種指令的集合(或類型)的可用來存取位址空間的一類型。空間解碼器240根據指令的集合/類型來提供解碼器信號245。當此區別是基於位址範圍,位址空間的一類型被分配給一位址範圍,而數個位址範圍可被設定為同樣位址空間類型。在此,空間解碼器240根據被指令存取的位址空間類型來提供解碼器信號245。解碼器信號245決定位址空間的類型,其位址範圍包括被指令存取的記憶體位址。
端序暫存器210接收多個預設值230。每個端序控制位元220具有一對應的預設值230。當一預決條件為真,資料處理引擎將端序控制位元存入一暫時儲存裝置(未繪示),用預設值230取代端序控制位元220,執行一預決(predetermined)程序,並從暫時儲存裝置回復先前端序控制位元220至端序暫存器210。例如,預決條件可為硬體重設、例外、陷阱(trap)、錯誤或中斷的發生,使資料處理引擎進入一超級使用者(superuser)或特許狀態,或類似的已知狀態。預決程序可為例外、陷阱、錯誤或中斷的處理程序。超級使用者狀態或特許狀態中,端序控制位元220得為常數控制值以確保正確的系統行為。預設值230在超級使用者狀態或特許狀態中提供常數控制值。更可利用資料處理引擎晶片的外部接腳選擇來設定預設值230,因此能透過資料處理引擎晶片被安裝的電路版的跳線(jumper)調整預設值230。
一些罕見的情況中,指令的讀取/儲存操作存取同時越過兩個位址空間的一資料。例如,被存取的資料字(word)可延展,越過一位址空間片段的邊界而進入另一位址空間片段。在此,空間解碼器240可輸出解碼器信號245以選取具有較低位址或較高位址的位址空間片段,端序控制裝置250分別輸出對應具有較低位址或較高位址的位址空間片段的唯一(unique)端序控制位元以作為端序信號255。另外,若有一應用不打算在解碼器中處理這個情況,空間解碼器240可產生一例外。
圖3是根據本發明之一實施例繪示另一資料處理引擎之一部分的示意圖。圖2中的空間解碼器240和端序控制裝置250分別被屬性提供器360和端序控制裝置350取代。屬性提供器360和端序控制裝置350互相耦接。圖3中的其他部件與圖2中的相同。
在圖3的實施例中,被資料處理引擎存取的位址空間片段被分為實體位址空間或虛擬位址空間的片段。每個片段與至少一位址空間屬性和一端序選取屬性相關。位址空間屬性可決定相關位址空間片段的可緩存性(cacheability)、可暫存性(bufferability)和可接合性(coalesceability),或用於標準讀取/儲存操作的其他能力限制(習知技術,故在此不再贅述)。端序選取屬性處於大端序狀態、小端序狀態或一禁能狀態。屬性提供器360可儲存一表格(table),其包括所有位址空間片段的位址空間屬性和端序選取屬性。當資料處理引擎執行一指令,屬性提供器360解碼指令並基於解碼結果來查詢上述表格。屬性提供器360提供對應被指令存取的位址空間片段的位址空間屬性和端序選取屬性以作為屬性340,並給端序控制裝置350。端序控制裝置350根據屬性340而輸出端序控制位元220之一以作為端序信號255。
圖4是一種用以控制被端序控制裝置350執行的控制資料端序的方法的一流程圖。第一,確認被指令存取的位址空間片段的端序選取屬性是否處於禁能狀態(步驟410)。當端序選取屬性不處於禁能狀態,確認端序選取屬性處於大端序狀態或小端序狀態(步驟450)。當端序選取屬性處於大端序狀態,端序控制裝置350輸出端序信號255處於大端序狀態(步驟460)。當端序選取屬性處於小端序狀態,端序控制裝置350輸出端序信號255處於小端序狀態(步驟470)。
回到步驟410,當端序選取屬性處於禁能狀態,端序控制裝置350根據上述位址空間屬性的組合值(combined value)來輸出端序信號255,其決定被當前指令存取的位址空間片段的可緩存性(cacheability)、可暫存性(bufferability)及/和可接合性(coalesceability)(步驟430)。
例如,不可緩存(non-cacheable)、不可緩衝(non-bufferable)和不可接合(non-coalesceable)是位址空間屬性的一組合值,而可緩存(cacheable)、可緩衝(bufferable)和可接合(coalesceable)是位址空間屬性的另一組合值。每個位址空間屬性具有一同意(affirmative)狀態和一否定(negative)狀態。總的來說,有八種二進位狀態的組合,其對應八種位址空間屬性的組合值。八種組合值的每一種代表允許資料處理引擎存取的位址空間的一類型。當資料處理引擎執行一指令且此指令執行一讀取/儲存操作,端序控制裝置350接收被讀取/儲存操作存取的位址空間片段的位址空間屬性。位址空間屬性的組合值被用來選取端序控制位元220之一。據此,端序控制裝置350輸出對應上述組合值的端序控制位元以作為端序信號255。
一簡單的例子為,當只使用兩個端序控制位元,則施加第一端序控制位元至具有不可緩存(non-cacheable)、不可緩衝(non-bufferable)和不可接合(non-coalesceable)屬性的位址空間的一片段,而施加第二端序控制位元至具有其他屬性組合值的位址空間的另一片段。一般應用中,位址空間屬性可被作業系統(operating system)或甚至其他應用軟體設定,以控制每個位址空間片段的資料端序。
用以選取端序控制位元的屬性是否與實體位址空間或虛擬位址空間相關是取決於資料處理引擎的位址轉換功能。當位址轉換功能被禁能,讀取/儲存操作是基於實體位址,而使用實體位址片段的屬性。當位址轉換功能被致能,讀取/儲存操作是基於虛擬位址,而使用虛擬記憶體片段的屬性。
根據相關位址空間屬性的組合值,每一端序控制位元220代表一位址空間的類型的預設資料端序。端序選取屬性可用來覆蓋用於每一單獨的位址空間片段的預設資料端序。換言之,端序控制位元220提供粗調(coarse-grained)資料端序控制,而位址空間片段的端序選取屬性提供微調(fine-grained)資料端序控制。在本發明的其他實施例中,可忽略端序選取屬性以提供一簡化(simplified)資料端序控制機制。
在一多重程序(multi-process)電腦中,背景切換(context-switching)是常見的且必要的(mandatory)。端序控制位元、位址空間屬性和端序選取屬性全部皆可與被資料處理引擎執行的當前程序一起做背景切換。當作業系統切換至另一程序,端序控制位元、位址空間屬性和端序選取屬性可被儲存至當前程序的背景。當作業系統切換回當前程序,端序控制位元、位址空間屬性和端序選取屬性可從當前程序的背景中被回復。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
110‧‧‧小端序位元組次序
120‧‧‧根據大端序位元組次序
150‧‧‧記憶體
210‧‧‧端序暫存器
220‧‧‧端序控制位元
230‧‧‧預設值
240‧‧‧空間解碼器
245‧‧‧解碼器信號
250‧‧‧端序控制裝置
255‧‧‧端序信號
260‧‧‧暫存器縱列
270‧‧‧讀取/儲存單元
280‧‧‧位元組交換器
340‧‧‧屬性
350‧‧‧端序控制裝置
360‧‧‧屬性提供器
410~470‧‧‧步驟
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是表示大端序位元組次序和小端序位元組次序的傳統概念的一示意圖。
圖2是根據本發明之一實施例繪示用以建立一資料端序控制機制的一資料處理引擎之一部分的示意圖。
圖3是根據本發明之另一實施例繪示用以建立另一資料端序控制機制的另一資料處理引擎之一部分的示意圖。
圖4是一種用以控制被圖3中的端序控制裝置執行的控制資料端序的方法的一流程圖。
210...端序暫存器
220...端序控制位元
230...預設值
255...端序信號
260...暫存器縱列
270...讀取/儲存單元
280...位元組交換器
340...屬性
350...端序控制裝置
360...屬性提供器
Claims (14)
- 一種資料處理引擎,包括:一端序(endian)暫存器,儲存多個端序控制位元,其中每一端序控制位元標示允許該資料處理引擎存取的一位址空間的一類型的一預設資料端序,每一上述端序控制位元處於一大端序狀態或一小端序狀態,而且該些位址空間的每一上述類型是根據該些位址空間的可緩存性(cacheability)、可暫存性(bufferability)和可接合性(coalesceability)之組合值所決定;一端序控制裝置,耦接至該端序暫存器,根據被該資料處理引擎執行的一指令所存取的一位址空間片段的可緩存性、可暫存性和可接合性之組合值以選擇並提供該些端序控制位元其中之一以作為一端序信號,其中該端序信號處於該大端序狀態或該小端序狀態;以及一位元組交換器,耦接至該端序控制裝置,傳送被該指令使用或產生的一資料,且當該資料的一位元組次序不符合該端序信號的該狀態時,該位元組交換器則改變該資料的該位元組次序。
- 如申請專利範圍第1項所述之資料處理引擎,其中當一預決條件為真,該資料處理引擎將多個預設值載入該端序暫存器以作為該些端序控制位元。
- 如申請專利範圍第2項所述之資料處理引擎,其中當該預決條件為真,該資料處理引擎將該些端序控制位元存入一儲存裝置,將該些預設值載入該端序暫存器以作 為該些新端序控制位元,執行一預決程序,然後從該儲存裝置回復該些先前端序控制位元至該端序暫存器。
- 如申請專利範圍第1項所述之資料處理引擎,其中該些位址空間的該些類型的至少一類型被用來存取耦接至該資料處理引擎的一記憶體,且該些位址空間的該些類型的至少另一類型被用來存取耦接至該資料處理引擎的多個I/O裝置的多個暫存器。
- 如申請專利範圍第1項所述之資料處理引擎,更包括:一空間解碼器,耦接至該端序控制裝置,解碼該指令及/或其相關位址,並基於該解碼結果提供一解碼器信號,其中該解碼器信號決定該些位址空間的一類型且該端序控制裝置使用該些位址空間的該類型以選取並輸出對應該已決位址空間類型的該端序控制位元以作為該端序信號。
- 如申請專利範圍第5項所述之資料處理引擎,其中該空間解碼器根據該指令的一類型來提供該解碼器信號。
- 如申請專利範圍第5項所述之資料處理引擎,其中該空間解碼器根據被該指令存取的一位址所落入的一範圍來提供該解碼器信號,且該解碼器信號選取包括該位址的該位址範圍的該位址空間的該類型。
- 如申請專利範圍第1項所述之資料處理引擎,其中該指令存取該位址空間片段中的一位址,該位址空間片段包括多個位址空間屬性,該些位址空間屬性包括上述的 可緩存性、可暫存性和可接合性,該端序控制裝置根據該些位址空間屬性來輸出該端序信號。
- 如申請專利範圍第8項所述之資料處理引擎,其中該些位址空間屬性的一組合值對應該些位址空間的該些類型之一,且該端序控制裝置輸出對應該些位址空間的該類型的該端序控制位元以作為該端序信號。
- 如申請專利範圍第8項所述之資料處理引擎,其中該位址空間片段是一實體位址片段或一虛擬位址片段。
- 如申請專利範圍第8項所述之資料處理引擎,其中該些位址空間屬性決定該位址空間片段的該可緩存性、該可暫存性和該可接合性之至少其中之一。
- 如申請專利範圍第8項所述之資料處理引擎,其中該位址空間片段更包括處於該大端序狀態、該小端序狀態或一禁能狀態的一端序選取屬性;當該端序選取屬性處於該大端序狀態或該小端序狀態,該端序控制裝置根據該端序選取屬性的該狀態來輸出該端序信號;當該端序選取屬性處於該禁能狀態,該端序控制裝置根據該些位址空間屬性輸出該端序信號。
- 如申請專利範圍第12項所述之資料處理引擎,其中該指令是一當前程序的多個指令之一,且該些端序控制位元、該些位址空間屬性及該端序選取屬性與該當前程序一起進行背景切換。
- 如申請專利範圍第1項所述之資料處理引擎,其中當該指令同時存取該些位址空間的一第一位址空間及一 第二位址空間,且該第二位址空間的位址高於該第一位址空間的位址,該端序控制裝置則輸出對應該第一位址空間或該第二位址空間的該端序控制位元,但並非同時對應兩者,以作為該端序信號,或該資料處理引擎產生一例外。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/575,468 US20110082999A1 (en) | 2009-10-07 | 2009-10-07 | Data processing engine with integrated data endianness control mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201113807A TW201113807A (en) | 2011-04-16 |
TWI464675B true TWI464675B (zh) | 2014-12-11 |
Family
ID=43824070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098139548A TWI464675B (zh) | 2009-10-07 | 2009-11-20 | 具有整合性資料端序控制機制的資料處理引擎 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110082999A1 (zh) |
CN (1) | CN102033734B (zh) |
TW (1) | TWI464675B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103576739A (zh) * | 2012-08-02 | 2014-02-12 | 中兴通讯股份有限公司 | 数字芯片、具有数字芯片的设备和大小端模式配置方法 |
CN103680507B (zh) * | 2012-09-04 | 2016-06-22 | 晨星软件研发(深圳)有限公司 | 线性脉冲编码调制数据格式判断方法 |
US9304954B2 (en) * | 2012-10-24 | 2016-04-05 | Texas Instruments Incorporated | Multi processor bridge with mixed Endian mode support |
US10120682B2 (en) * | 2014-02-28 | 2018-11-06 | International Business Machines Corporation | Virtualization in a bi-endian-mode processor architecture |
US10671387B2 (en) * | 2014-06-10 | 2020-06-02 | International Business Machines Corporation | Vector memory access instructions for big-endian element ordered and little-endian element ordered computer code and data |
US20170123792A1 (en) * | 2015-11-03 | 2017-05-04 | Imagination Technologies Limited | Processors Supporting Endian Agnostic SIMD Instructions and Methods |
US10101997B2 (en) | 2016-03-14 | 2018-10-16 | International Business Machines Corporation | Independent vector element order and memory byte order controls |
US11755224B2 (en) * | 2017-07-27 | 2023-09-12 | EMC IP Holding Company LLC | Storing data in slices of different sizes within different storage tiers |
US11579925B2 (en) | 2019-09-05 | 2023-02-14 | Nvidia Corporation | Techniques for reconfiguring partitions in a parallel processing system |
US11893423B2 (en) * | 2019-09-05 | 2024-02-06 | Nvidia Corporation | Techniques for configuring a processor to function as multiple, separate processors |
US11663036B2 (en) | 2019-09-05 | 2023-05-30 | Nvidia Corporation | Techniques for configuring a processor to function as multiple, separate processors |
CN112835842B (zh) * | 2021-03-05 | 2024-04-30 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069339A1 (en) * | 2000-08-21 | 2002-06-06 | Serge Lasserre | MMU descriptor having big/little endian bit to control the transfer data between devices |
US20040221173A1 (en) * | 2003-03-07 | 2004-11-04 | Moyer William C | Method and apparatus for endianness control in a data processing system |
TW200532452A (en) * | 2003-12-09 | 2005-10-01 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2915680B2 (ja) * | 1992-03-10 | 1999-07-05 | 株式会社東芝 | Riscプロセッサ |
US5237616A (en) * | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
WO1997044739A1 (en) * | 1996-05-23 | 1997-11-27 | Advanced Micro Devices, Inc. | Apparatus for converting data between different endian formats and system and method employing same |
US5898896A (en) * | 1997-04-10 | 1999-04-27 | International Business Machines Corporation | Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems |
GB2402757B (en) * | 2003-06-11 | 2005-11-02 | Advanced Risc Mach Ltd | Address offset generation within a data processing system |
US20050066146A1 (en) * | 2003-09-19 | 2005-03-24 | Intel Corporation | Endian conversion |
US7721077B2 (en) * | 2006-12-11 | 2010-05-18 | Intel Corporation | Performing endian conversion |
-
2009
- 2009-10-07 US US12/575,468 patent/US20110082999A1/en not_active Abandoned
- 2009-11-20 TW TW098139548A patent/TWI464675B/zh active
-
2010
- 2010-02-23 CN CN201010121354.3A patent/CN102033734B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069339A1 (en) * | 2000-08-21 | 2002-06-06 | Serge Lasserre | MMU descriptor having big/little endian bit to control the transfer data between devices |
US20040221173A1 (en) * | 2003-03-07 | 2004-11-04 | Moyer William C | Method and apparatus for endianness control in a data processing system |
TW200532452A (en) * | 2003-12-09 | 2005-10-01 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
Also Published As
Publication number | Publication date |
---|---|
CN102033734B (zh) | 2014-05-14 |
US20110082999A1 (en) | 2011-04-07 |
TW201113807A (en) | 2011-04-16 |
CN102033734A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI464675B (zh) | 具有整合性資料端序控制機制的資料處理引擎 | |
US20210141683A1 (en) | Hardware apparatuses and methods for memory corruption detection | |
US20120198166A1 (en) | Memory Attribute Sharing Between Differing Cache Levels of Multilevel Cache | |
US11138112B2 (en) | Remote atomic operations in multi-socket systems | |
EP3550437B1 (en) | Adaptive spatial access prefetcher apparatus and method | |
TWI830927B (zh) | 用於處理器非回寫能力的設備、方法、及非暫時性機器可讀取媒體 | |
US9965395B2 (en) | Memory attribute sharing between differing cache levels of multilevel cache | |
US10248574B2 (en) | Input/output translation lookaside buffer prefetching | |
US9183161B2 (en) | Apparatus and method for page walk extension for enhanced security checks | |
US10990384B2 (en) | System, apparatus and method for dynamic update to code stored in a read-only memory (ROM) | |
US20190205061A1 (en) | Processor, method, and system for reducing latency in accessing remote registers | |
US6014739A (en) | Increasing general registers in X86 processors | |
JP2022151658A (ja) | コアにおけるメモリ帯域幅制御 | |
CN114691597A (zh) | 自适应远程原子操作 | |
US9880839B2 (en) | Instruction that performs a scatter write | |
Budi et al. | A risc-v isa compatible processor ip for soc | |
US10324872B2 (en) | Interrupt-vector translation lookaside buffer | |
TW202225978A (zh) | 用於具有大的碼覆蓋區的工作負載的動態共享快取劃分 | |
JP4024247B2 (ja) | 半導体データプロセッサ | |
WO2024197781A1 (en) | Tachometer apparatus and method to track and report processor usage | |
US20240211408A1 (en) | Apparatus and method for probabilistic cache replacement for accelerating address translation | |
JPH07152654A (ja) | メモリ・アクセス誤りを処理しアドレス変換キャッシュを更新する方法 | |
CN111512309A (zh) | 用于抵抗交叉特权线性探查的系统、方法和装置 | |
JP2696578B2 (ja) | データ処理装置 | |
JPH04246747A (ja) | キャッシュメモリコントローラ |