TWI325542B - Data access program instruction encoding - Google Patents
Data access program instruction encoding Download PDFInfo
- Publication number
- TWI325542B TWI325542B TW093102677A TW93102677A TWI325542B TW I325542 B TWI325542 B TW I325542B TW 093102677 A TW093102677 A TW 093102677A TW 93102677 A TW93102677 A TW 93102677A TW I325542 B TWI325542 B TW I325542B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- offset
- address value
- address
- memory
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 239000000463 material Substances 0.000 claims description 9
- 230000001427 coherent effect Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 239000000872 buffer Substances 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 239000013068 control sample Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000007619 statistical method Methods 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
1325542 玖、發明說明: 【發明所屬之技術領域】 °更特言之,本 之資料存取程式 本發明係有關於資料處理系統的領域 發明係有關於使用在資料處理系統資料中 指令的編碼。 【先前技術】 提供資料存取指令給資料處理系統係已知的 j υ π的。這樣一 類的程式指令之一例為 arm指令隼的 m的托令類別 LDR/LDRB/STR/STRB (參見例如ARM架構參考手冊)。有 一組指令係彼此互相正交编碼,觀念上這組指令指定不同 的主要作業,不過每一主要作業可使用相同的定址模式或 其他子作業,其他指令亦同。ARM指令集係一 32_位元 窄指令集’並且指令類別LDR/LDRB/STR/STRB含有影響 定址模式計算的2 0 -位元: 4位元(位元[19:16])以指定基底暫存器; 13位元(位元[25]和位元[11:0])以指定一 12_位元的立 即偏移(指令的第一形式),或一指標暫存器及一位移(或旋 轉)被應用於其上(指令的第二形式);及 3位元(p =位元[24],u =位元[23] , w =位元[21])以指定 要執行在基底暫存器值及偏移上的操控。 可被指定之定址模式的例子係為偏移定址、指標前定 址、指標後定址及沒優先特權的指標後定址。這樣資料存 取^ 7提供相當大的彈性’由此可指定資料存取作業。 3 1325542 幫助減少 增進迷度 在資 空間係一 令的編碼 提供潛在 碼位元空 法係極為 【發明内 從本 料的設備 —暫 持各自資 一資 該資料存 記憶體位 一指 該資料存 存取程式 指定在該 欄位,並 料存取程 底位址暫 轉送所欲資料至或自記憶體所需指令的數目,從而 及改善碼的密度。 料處理系統之内一共同的問題為可用的編瑪位元 有限的資源,對可在不同環境中應用之不同類型指 位元空間需求的競爭也相當激烈。經常情況係可能 有效的指令數目超過在處理器架構之内可用的編 間。於是,可改善此編瑪位元空間之使用效率的方 有利的。 容】 發明的一態樣所觀察到,本發明提供用於處理資 ,該設備包含: 存器庫’其係具有一或更多可操作的暫存器以保 料值; 料存取電路,其係可操作以執行資料存取作業, 取作業係在該設備和在一記憶體電路内經定址的 置之間傳送一或更多資料值;及 令解瑪器’其係可回應資料存取程式指令而控制 取電路以執行各自的資料存取作業,該每一資料 指令包括指定一偏移值的一位址偏移攔位及包括 暫存器庫内之一基底位址暫存器的一基底暫存器 ~資料存取程式指令執行的時候,該每一資 式&令指定一操控以被執行在該偏移值和在該基 存Is中所相- 1你得的一基底位址值上以形成在該記憶 1325542 體電路内被存取的一記憶體位址值;其中 該資料存取程式指令具有以下項目. (i) 一第—形式,其係包括具第一偏移欄位長度的一位 址偏移欄位;及 (ii) 一第二形式,其係包括具一第二偏移攔位長度的一 位址偏移攔位,該第一位址偏移攔位長度係大於該第二位址 偏移攔位長度,並且該第—形式係能夠比該第二形式指定要 被執行在該基底位址值和該偏移值上之一更少數目的可能 操控。 本發明認知實際上大多數的程式設計師及編譯器不會 將資料存取指令所提供的予大量偏移值欄位和大數量的操 控模式選擇作大量可能性的一致運用之。更特言之,作為 一例,低偏移值係比高偏移值更常見。此外,以將偏移加 至該基底暫存器值的簡單偏移定址比任何其他類型的操控 更常見。同時出現兩或更多不太普遍的定址選擇(例如大偏 移值及指標後定址)係非常罕見的。程式的統計分析指出 所用指令類型分佈不一致係程式的一般特徵,並非特定程 式或特定編譯器策略的特徵》本發明認知且開發這個特 徵。尤其本發明提供資料存取程式指令,其係具有含一長 偏移欄位和少數位址操控選擇(或僅一者)之一第一形式以 及具一較短偏移攔位但較大數量的位址操控選擇之—第二 形式。因此’當維持指令直接提供在壓倒性大多數環境環 境中所欲作業的可用性時,可減少藉由資料存取指令所利用 的編碼位元空間總量。 5 丄⑴M2 在較佳的實施例中,該操控藉由下列項目之一者形成 —經修正的位址值: 添加該偏移值至該基底位址值;及 從該基底位址值減去該偏移值。 在較佳的實施例中,該操控也允許一資料存取作業進 行下列選項的至少一者: 使用該基底位址值作為該記憶體位址值; 使用該經修正的位址值作為該記憶體位址值; 使用該基底位址值並且使該經修正的位址值寫回至該 基底暫存器作為該記憶體位址值;及 =使用經修正的位址值並且使該經修正的位址值寫回至 該基底暫存器作為該記憶體位址值。 在較佳的實施例中,該設備可在多個模式下操作,其 中至J 一模式是有優先特權的及至少一模式是沒優先特權 的,資料存取被標記為具優先特權或沒具優先特權之任一 者以讓程式碼對該記憶體電路被賦予不同的存取層級。 在較佳的實施例中,無淪目前的模式為何’該操控的 ^ 形式讓一記憶體存取被強制為沒具優先特權。 須知本技術以用來指定一操控以施用於該定址模式的 編碼位元空間交換對照用來指定一偏移植的編碼位元空 間,尤其較佳的實施例為其中指令的第一形式係以一固定 操控來作業的那些實施例,該固定操控依此在指令内不必 要一操控模式控制欄位’並指令的第二形式包括一操控模 式控制攔位,其係指定在可使用的多個不同操控模式之其 6 1325542 中一者。 須知可用於指令的第一形式及指令的第二形 任何操控造成编碼位元空間之沒效率的使用,因 任何資料存取作業會在指令的第二形式中使用這 控會被執行與在指令的第一形式中使用相同的操 好。在較佳的實施例中,由該第一形式及第二形 操控組係沒有連貫的。 從本發明的另一態樣所觀察到,本發明提供 的一方法,該方法包含以下步驟為: 在一暫存器庫的一或更多暫存器之各自暫存 資料值步驟,該暫存器庫形成一資料處理設備的 以一資料存取電路來執行資料存取作業步驟 該資料處理設備和在一記憶體電路内經定址的記 之間傳送一或更多資料值;及 為回應資料存取程式指令,以一指令解碼器 資料存取電路以執行各自的資料存取作業步驟, 料存取程式指令包括指定一偏移值的一位址偏移 括指定在該暫存器庫内之一基底位址暫存器的一 器攔位,並且在該資料存取程式指令執行的時候 一操控以被執行在該偏移值和在該基底位址暫存 持的一基底位址值上以形成在該記憶體電路内被 記憶體位址值:其中 該資料存取程式指令具有下列項目: (i) 一第一形式,其係包括具一第一偏移欄位 式兩者之 可執行的 樣的一操 控—樣地 式所提供 處理資料 器内保持 部分; ’其係在 憶體位置 來控制該 該每一資 欄位及包 基底暫存 ’其指定 器中所保 存取的一 長度的一 7 1325542 位址偏移攔位;及 /式,其係包括具一第二偏移攔位長度 (11) 一弟 ^ 一 m ^ m VL -K ^ ^ 位址偏移攔位,該第一位址傜銘妯a 征址偏移攔位長度係大於該第二位址 偏移爛位長度’並且該第—JI^ -if 曲 邊弟形式係能夠比該第二形式指定要 被執行在該基底位址值和該偽# & 既々说掏移值上之一更少數目的if餌 操控。 從本發明的更進一步態樣所觀察到,本發明提供一電 腦程式產<&,其係具—電腦程式可操作以控制-資料處理 設備,該電腦程式係對在一暫存器庫的—或更多暫存器之 各自暫存器内的操控保持一或更多資料值,其至少包含: 資料存取程式碼,其係以—資料存取電路可操作來執 行資料存取作業而在該資料處理設備和一記憶體電路内之 定址的記憶體位置之間傳送一或更多資料值;及 該資料存取程式碼包括多個資料存取程式指令,該每 一資料存取程式指令包括指定一偏移值的一位址偏移攔位 及包括指定在該暫存器庫内之一基底位址暫存器的一基底 暫存器攔位,並且在該資料存取程式指令執行的時候,其 指定一操控以被執行在該偏移值和在該基底位址暫存器中 所保持的一基底位址值上以形成在該記憶體電路内被存取 的一記憶體位址值;其中 該資料存取程式指令具有下列項目: (i) 一第一形式,其係包括具一第一偏移欄位長度的— 位址偏移欄位;及 (ii) 一第二形式,其係包括具一第二偏移欄位長度的一 8 1325542 位址偏移欄位’該第一位址偏移攔位長度係大於該第二位址 偏移欄位長度’並且該第一形式係能夠比該第二形式指定要 被執行在該基底位址值和該偏移值上之一更少數目的可能 操控。 這上述及本發明的其他目的、特色和優點將從下面要 關於附圖一起閲讀之說明性實施例的詳述而顯而易見。 【實施方式】 第1圖係以一處理器核心的方式概要地說明一資料處 理系統2,該處理器核心包含具多個程式.暫‘存器用於儲存各 自資料值的一暫存器庫4、一乘法器6、一移位器8 、_ 加法器10、一指令解瑪器12、—指令管線14及一載入/ 儲存單元16»須知這資料處理系統2—般將含有更多擅長 這技術領域者所熟悉的電路元件’但為了清晰明瞭的緣故, 已經從第省略這些電路元件。在作業中,自記憶體取 A程式指令而送進指令管線當一程式指令達到指令管 線14中的解碼階段時,由指令解妈器12產生控制訊號施 用於包括暫存器庫4、乘法器6 '移位器8、加法器1〇的 資料處理邏輯以執行-所欲的f料處理作業而解碼。 -種可被執行且指令解碼器12對其回應的程式指令 係一資料存取指令。這樣—㈣料存取指令指定-載入或 由該載入/儲存單元“來執行,以 至資料處理系、统2之記憶體内的資料寫至或讀取自-指定 的位址或序列位址。在音粗由„〇 ' 貢料處理設備的這個載入/儲存架 9 1325542 構類髮中’該被存取的資料值係寫至或讀取自暫存… 之内的各自β ’這不是-基本要求。° 如由現存ARM指令集提供的資料存取指令類型當中 將熟悉這些資料存取指令可指定—立即偏移值及要使用的 一操控模式。…瑪器12係回應在指定這些參數的資 料存取指令内之㈣,並將這些參數傳到該載入/儲存單元 16來動作。含於資料存取指令的-基底暫存器指定符攔位 指定在暫存器*4之内程式暫存器的其中一者,該暫存器 庫4係由載入/儲存單元16讀取以得到要被使用於資料存 取作業中的一基底位址值。從這個基底位址值由該操挂形 成該用作存取記憶體的記憶體位址值,該操控係可例如由 含在指令的一位址偏移攔位之一偏移值的加法所組成。在 這個設備中,傳送至或來自記憶體的資料值係由載入/儲存 單·元16讀取自或寫至暫存器庫4。 第2圖概要說明資料存取指令的一第一形式。這個指 令包含兩個16-位元半字元組(halfw〇rd),在半字元組hwi 中位元[8] = 1以對指令解碼器12指出半字元組hw2含有一 長的12 -位元偏移糊位〇ffseti2,並且這指令使用一固定位 址的操控’其中以零延伸的偏移值被加至基底位址值並 且對該資料存取使用其結果如記憶體位址值。 攔位Rn指定持有基多位址值的該暫存器。糊位Rd 指定其係資料存取作業的>與或目的之暫存器任一者。半 字元组HW1的位元[15:9]指定這個指令為—資料存取指 令,半字元組HW1的位元[7:4]為指定要被執行之資料存取 10 1325542 細節的一作業碼欄位:是否要執行一載入或—儲存,記憶 體中要存取的資料長度(例如一 8位元位元組一 ! 6位元 半字元組或一 32-位元字元組),在一窄資料值被載入於一 較寬暫存器的情況下,該值係以零延伸的或者為正負延伸 的0 第3圖概要說明—資料存取指令的一第二形式。在這 第二形式中’在半字元組HW1中位元[8] = 〇以對指令解碼 器12指出半字元組HW2含有一短8-位元偏移欄位 offset8 ’並且含有指定要使用之莅址操控的3位元p、u及 W。爛位Rn和Rd,及半字元組HW1的位元[15:9]和位元 [7:4]係指定如第2圖中它們所作同樣的事。 位疋U指定係以零延伸的偏移值被加至基底位址值或 者係自基底位址值減去以形成一經修改的位址值。 位元Ρ指定用作資料存取的記憶體位元值係為該基底 位址值或者為該經修改的位址值。 位TO W指定持有該基底位址值的暫存器係依然未改變 或者具有該經修改的位蚌值寫回到該暫存器。 此外,當Ρ、ϋ及W位元指定由第一形式(即偏移值被 加至基底位址值、該經修改的位址值被用作資料存取及持有 該基底位址值的暫存器係依然未改變)所使用的位址操控, 無論處理器是否在一沒優先特權或優先特權的作業模式,該 資料存取被標記為沒優先特權。須知當指令的第一形式使 得可用該必要的資料存取作業,否則ρ、υ& w位元的組合 係多餘的。 11 1325542 自上述將可見到第2圖中所說明之資料存取指令的第 一形式以一固疋位址操控的代價提供一較大偏移爛位,然 , 而如第3圖中所說明資料存取指令的第二形式提供—較小 偏移欄位,不過確實對於要被執行的位址操控給予一較大選 擇。已發現當減少所用以指定這些參數的编碼位元空間量 時,在對想要的資料存卞作業類型提供好的適用範圍中, 第一形式及第二形式之資料存取指令的組合係特別有利。 則所節省的编碼位元空間可用作為其他用途,相當有利。 上述編碼需要13位元以指定偏移值及位址操控(HW1[8]和 HW2[ll:〇]),然而如使用於ARM指令及的一簡易(P、U、W、 12-位元偏移攔位〇ffsetl2)編碼將需要15位元。 如也可能使用一另類的編碼: 如第2圖和第3圖中所示HW1[ 15:9]= Η111.00而非 1 1 1010卜 以HW1 [7]區分指令的兩種形式而非HW1[8],以 HW1[8,6:4]作為作業碼攔位而非jjwi[7:4]。 在第3圖中,如所示HW2[1 1] =1而# 0。 第4圖為概要說明由指令解碼器I?所執行的處理作業 之一流程圖。須知在第4圖中所說明序列的處理實際上不 可能發生在指令解碼器12之内,其中可運用相當多的並行 處理。然而,第4圖協助提供所需解碼及所執行作業的瞭 解。 在步驟18,指令解碼器係由第一半字元組HW1的最 高效七位元識別一資料存取指令。若識別另一類型指令, 12 1325542 則在步驟19將其解碼。在步驟20,指令解碼器i2係檢查 在半字元組HW1内的位元[8]以決定資料存取指令是否為 第形式或一第二形式之其中一者。若這位元[8]係等 於“1” ’則資料存取指令具有第一形式且處理行進至步驟 24,其係解碼作業碼以進一步決定關聯於所欲資料存取指 令的參數,並且使用該長12 -位元偏移值以固定操控的偏移 定址模式而加上該偏移值。 若在步驟20決定位元[8卜〇,則處理行進至步驟28, 其係解碼半字元组HW2的操控模式控制攔位[1〇:8]以決定 要使用刚述位址操控模式的哪一者。則在步驟3〇,使用較 小的8-位元偏移值及指定的操控而執行由作業碼hw1[7:4] 指定的資料存取。 第5圖為根據上述技術概要說明可實作程式指令之一 般用途電腦200。一般用途電腦200包括一中央處理器 202、一.隨機存取記‘隐體204、一唯讀記憶.體206、一網路 界面卡208、一硬碟機210、一顯示驅動程式212、一監視 器214和含有一鍵盤218和滑鼠220之全部經由一共用匯 流排222連接的一使用者輸入/輸出電路216。在作業當 中,中央處理器202將執行電腦程式指令,其係可儲存在 隨機存取記憶體204 '唯讀記憶趙206及硬碟機210之一 或多者,或透過網路界面卡208動態地下載。執行處理的 結果可透過顯示驅動程式212和監視器214顯示給一使用 者。可藉由自鍵盤218或滑鼠220之使用者輸入輸出電路 216接收用於控制一般用途電腦200作業之使用者輸入。 13 1325542 須知能以許多不同電腦語言來撰寫電腦程式。電腦程式可 被儲存及分散在一記錄媒體上和動態地下載至一般用途電 腦200» 當在一適當電腦程式的控制下作業時,一般用途 電腦200能執行上述技術並且能夠視為形成一用來執行上 述技術的一設備。一般用途電腦200的架構能相當不同地 變化,而第5圖只是一例。 雖然本發明之說明性實施例關於附圖在此已經詳盡描 述,但是要理解到本發明不局限於那些適當的實施例,並 且熟悉此技藝者可影響其中各種變化和修改而沒有悖離如 由附加的申請專利範圍所定義之本發明的範圍和精神。 【圖式簡單說明】 第1圖為概要說明一利用資料存取指令的資料處理設 備; 第2圖為概要說明一資料存取指令的一第一形式; 第3圖為概要說明一資料存取指令的一第二形式; 第4圖為概要說明一指令解碼器在解碼第一形式及第 二形式的存取指令中的作業之流程圖;及 第5圖為根據上述技術概要說明可實作程式指令之一 般用途電腦的架構的一圖式。 【元件代表符號簡單說明】 2 資料處理系統 4 暫存器庫 6 乘法器 8 移位器 14 1325542 10 加 法 器 12 指 14 指 令 管 線 16 載 200 — 般 用 途 電 腦 202 中 204 隨 機 存 取 記 憶 體 206 唯 208 網 路 界 面 卡 210 硬 212 顯 示 驅 動 程 式 214 監 216 使用者輸入/輸出 電路 2 18 鍵 220 滑 鼠 222 匯 令解碼器 入/儲存單元 央處理器 讀記憶體 碟機 視器 盤 流排
15
Claims (1)
- 拾、 料值 該資 記憶 該資 存取 指定 攔位 料存 底位 體電 一位 的一 位址 位置 該第 址值和和’)號额1案$年1(月修正 申δ月專..利.範圍: 種用於處理資料的設備’該設備至少包 一暫存器庠,其係具有一或更多可操作 的暫存器: 含: 以保持各自資 1負科存取作業 '子 業係在該設備和在_記憶體電路内經定址 體位置之間傳送一或更多資料值;及 -指令解碼器’其係可回應資料存取程式指令而控 料存取電略以執行各自的資料存取作業,該每一資 程式指令包括指定—偏移值的-位址偏移攔位及包 在該暫存器庫内之一基底位址暫存器的一基底暫存 ’並且在該資料存取程式指令執行的時候,該每一 取程式私令指定一操控以被執、亍在該偏移值和在該 址暫存器中所保持的一基底位址值上以形成在該記 路内被存取的一記憶體位址值;其中 該資料存取程式指令具有以下項目: (1) 第形式,其係包括具第一位址偏移欄位長度 址偏移攔位;及(ii) 一第二形式,其係包括具—第二位址偏移欄位長度 位址偏移攔位,該第一位址偏移攔位長度係大於該第二 偏移欄位長度一量值,以允許以該第一形式形成記憶體 值的範圍相較於以該第二形式而有一較寬的範圍,並且 一形式係能夠比該第二形式指定要被執行在該基底位 和該偏移值上之一更少數目的可能操控; 16 1325542 該偏移值係一非負數值(unsigned );及 由該第二形式而非該第一形式所支持的一操縱藉由下 列項目之一特定者形成一經修正的位址值: 添加該偏移值至該基底位址值;及 從該基底位址值減去該偏移值。 2. 如申請專利範圍第1項所述之設備,其中該操控也允許 一資料存取作業進行下列選項的至少一者: 使用該基底位址值作為該記憶體位址值; 使用該經修正的位址值作為該記憶體位址值; 使用該基底位址值並且使該經修正的位址值寫回至該 基底暫存器作為該記憶體位址值:及 使用經修正的位址值並且使該經修正的位址值寫回至 該基底暫存器作為該記憶體位址值。 3. 如申請專利範圍第1項所述之設備,其中該設備可在多 個模式下操作,其中至少一模式是具優先特權的及至少一 模式是沒優先特權的,資料存取被標記為具優先特權或沒 具優先特權之任一者以讓程式碼對該記憶體電路被賦予不 同的存取層級。 4. 如申請專利範圍第1項所述之設備,其中該第一形式的 資料存取程式指令係以一固定操控來作業,其中使用該基 底位址值和該偏移值的一總和作為該記憶體位址值,並且 17 1325542 在執行之後,P 5. 如申請專利 資料存取程式 在可使用的多. 6. 如申請專利 及第一形式所 7 ·如申請專利 該暫存器庫的 送。 8. —種處理資 在一暫存 資料值步驟, 以一資料 該資料處理設 之間傳送一或 為回應資 資料存取電路 料存取程式指 括指定在該暫 器欄位,並且 F改變該基底位址值° 範圍第1項所述之設備’其中該第 指令係包括一操控模式控制欄位’ 個不同操控模式之其中一者。 範圍第1項所述之設備,其中由該 提供的操控組係沒有連貫。 範園第1項所述之設備,其中該資 各自暫存器和該經定址的記憶體位 料的方法,該方法至少包含以下步 器庫的一或更多暫存器之各自暫存 該暫存器庫形成一資料處理設備的 存取電路來執行資料存取作業步驟 備和在一記憶體電路内經定址的記 更多資料值;及 料存取程式指令,以一指令解碼器 以執行各自的資料存取作業步驟’ 令包括指定一偏移值的一位址偏移 存β庫内之一基底位址暫存器的— 在該資料存取程式指令執行的時候 —形式的 其係指定 第一形式 料值係在 置之間傳 驟: 器内保持 部分; ’其係在 憶體位置 來控制該 5亥每—資 攔位及包 基底暫存 ,其指定 18 1325542 一操控以被執行在該偏移值和在該基底位址暫存器中所保 持的一基底位址值上以形成在該記憶體電路内被存取的一 記憶體位址值;其中 該資料存取程式指令具有下列項目: (i) 一第一形式,其係包括具一第一位址偏移攔位長度 的一位址偏移攔位;及 (ii) 一第二形式’其係包括具一第二位址偏移攔位長度 的一位址偏移欄位’該第一位址偏移攔位長度係大於該第二 位址偏移欄位長度一量值,以允許以該第一形式形成記憶體 位置值的範圍相較於以該第二形式而有一較寬的範圍,並且 該第一形式係能夠比該第二形式指定要被執行在該基底位 址值和該偏移值上之一更少數目的可能操控; 該偏移值係一非負數值;及 由該第二形式而非該第一形式所 少八所支持的一操縱藉由下 列項目之一特定者形成一經修正的位址值: 添加該偏移值至該基底位址值:及 從該基底位址值減去該偏移值。 9.如申請專利範圍第8 一資料存取作業進行下 項所述之方法,其中該操控也允許 列選項的至少—者. 使 使 用該基底位址值作為該記憶 體位址值 用該經修正的位址值作為該 記憶體位址值 使用該基底位址值並且使該 基底暫存器作為該記憶體位址值 經修正的位址值寫回至該 :及 19 1325542 使用 該基底暫 10.如申 多個模式 一模式是 沒具優先 不同的存 11 ·如中 的資料存 基底位址 且在執行 1 2.如申 的資料存 定在可使 1 3.如申 式及第二 1 4 ·如申; 在該暫存 傳送。 U專利範圍第8 器庫的各自暫存 經修正的位址值並且使該經修正的位址值寫回至 存器作為該記憶體位址值》 專利範圍第8項所述之方法,其中該設備可在 下操作,其中至少一模式是具優先特 沒優先特權的,資料存取被標記為具 特權之任一者以讓程式碼對該記憶體 取層級。 請專利範圍第8項所述之方法, 取程式指令係以一固定操控來作 值和該偏移值的一總和作為該記 之後,不改變該基底位址值。 請專利範圍第8項所述之方法,其中該第_ 取程式指令係包括一操控模式控制欄位,=形式 用的多個不同操控模式之其中一者。 、係指 請專利範圍第8項所述之方法,其中由該 形式所提供的操控組係沒有連貫。 形 項所述之方法,其中該 . 、 資料值係 益和該經定址的記憶體位 罝之間 20 種可内嵌於—電腦可讀取儲存媒 處理設備之電腦程式產品,其執行以下各項 =-暫存器庫的—或更多暫存器之各自暫存器内的 操控保持一或更多資料值; 資料存取程式碼,其係以_資料存取電路可操作來 行資料存取作業而在該資料處理設備和_記,_電路^ 定址的記憶體位置之間傳送—或更多資料值;及 該貝料存取程式碼包括多個資料存取程式指令,該每 資料存取程式指令包括指定_偏移值的__位址偏移爛位 及包括指定在該暫存器庫内之-基底位址暫存器的一基底 暫存器攔位,並且在該資料存取程式指令執行的時候,其 指定一操控以被執行在該偏移值和在該基底位址暫存器中 所保持的一基底位址值上以形成在該記憶體電路内被存取 的一記憶體位址值;其中 該資料存取程式指令具有以下項目: (〇 . —第一形式’其係包括具一第一偏移欄位長度的一 位址偏移欄位;及 (π) —第二形式’其係包括具一第二偏移攔位長度的一 位址偏移欄位,該第一位址偏移攔位長度係大於該第二位址 偏移欄位長度一量值’以允許以該第一形式形成記憶體位置 值的範圍相較於以該第二形式而有一較寬的範圍,並且該第 —形式係能夠比該第二形式指定要被執行在該基底位址值 和該偏移值上之一更少數目的可能操控; 21 1325542 該偏移值係一非負數值;及 由該第二形式而非該第一形式所支持的一操縱藉由下 列項目之一特定者形成一經修正的位址值: 添加該偏移值至該基底位址值;及 從該基底位址值減去該偏移值。 16.如申請專利範圍第15項所述之電腦程式產品,其中該 操控也允許一資料存取作業進行下列選項的至少一者: 使用該基底位址值作為該記憶體位址值; 使用該經修正的位址值作為該記憶體位址值; 使用該基底位址值並且使該經修正的位址值寫回至該 基底暫存器作為該記憶體位址值;及 使用經修正的位址值並且使該經修正的位址值寫回至 該基底暫存器作為該記憶體位址值。 1 7.如申請專利範圍第1 5項所述之電腦程式產品,其中該 設備可在多個模式下操作,其中至少一模.式是具優先特權 的及至少一模式是沒優先特權的,資料存取被標記為具優 先特權或沒具優先特權之任一者以讓程式碼對該記憶體電 路被賦予不同的存取層級。 1 8.如申請專利範圍第1 5項所述之電腦程式產品,其中該 第一形式的資料存取程式指令係以一固定操控來作業,其 中使用該基底位址值和該偏移值的一總和作為該記憶體位 22 1325542 址值,並且在執行之後,不改變該基底位址值。 1 9 ·如申請專利範圍第1 5項所述之電腦程式產品,其中該 第二形式的資料存取程式指令係包括一操控模式控制欄 位,其係指定在可使用的多個不同操控模式之其中一者。 20.如申請專利範圍第15項所述之電腦程式產品,其中由 該第一形式及第二形式所提供的操控組係沒有連貫。 2 1 .如申請專利範圍第1 5項所述之電腦程式產品,其中該 資料值係在該暫存器庫的各自暫存器和該經定址的記憶體 位置之間傳送。 23
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0313765A GB2402763B (en) | 2003-06-13 | 2003-06-13 | Data access program instruction encoding |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200428225A TW200428225A (en) | 2004-12-16 |
TWI325542B true TWI325542B (en) | 2010-06-01 |
Family
ID=27636507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093102677A TWI325542B (en) | 2003-06-13 | 2004-02-05 | Data access program instruction encoding |
Country Status (12)
Country | Link |
---|---|
US (2) | US7231507B2 (zh) |
EP (1) | EP1634164A2 (zh) |
JP (1) | JP3990423B2 (zh) |
KR (1) | KR100972160B1 (zh) |
CN (1) | CN100409178C (zh) |
AU (1) | AU2003290356A1 (zh) |
GB (1) | GB2402763B (zh) |
IL (1) | IL172236A0 (zh) |
MY (1) | MY135360A (zh) |
RU (1) | RU2006101156A (zh) |
TW (1) | TWI325542B (zh) |
WO (1) | WO2004111834A2 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909676B1 (en) * | 2006-10-06 | 2014-12-09 | Uei Cayman Inc. | Star cluster codeset database for universal remote control devices |
EP1936493A1 (en) * | 2006-12-22 | 2008-06-25 | Telefonaktiebolaget LM Ericsson (publ) | Data-processing unit |
EP2115573B1 (en) * | 2006-12-22 | 2012-07-04 | Telefonaktiebolaget LM Ericsson (publ) | Data-processing unit |
US20090177687A1 (en) * | 2008-01-09 | 2009-07-09 | Rune Ljungbjorn | Method for providing flexible inheritance of program environment |
JP2010039503A (ja) * | 2008-07-31 | 2010-02-18 | Panasonic Corp | シリアルメモリ装置及び信号処理システム |
US8677100B2 (en) * | 2009-07-17 | 2014-03-18 | Macronix International Co., Ltd. | Serial memory interface for extended address space |
KR20120088783A (ko) * | 2009-10-30 | 2012-08-08 | 인텔 코오퍼레이션 | 계층적 가속 구조를 사용한 그래픽 렌더링 |
US20130339656A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Compare and Replace DAT Table Entry |
US9089239B2 (en) | 2013-02-28 | 2015-07-28 | Planetary Design | Infuser with solid region to selectively stop infusion and vessel for said infuser |
US20160378480A1 (en) * | 2015-06-27 | 2016-12-29 | Pavel G. Matveyev | Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations |
GB2543520B (en) | 2015-10-20 | 2019-06-19 | Advanced Risc Mach Ltd | Memory access instructions |
KR20190052315A (ko) * | 2017-11-08 | 2019-05-16 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것을 포함하는 메모리 시스템 |
CN111158756B (zh) * | 2019-12-31 | 2021-06-29 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994016391A1 (en) * | 1992-12-31 | 1994-07-21 | Intel Corporation | Bus to bus interface with address translation |
US5632028A (en) * | 1995-03-03 | 1997-05-20 | Hal Computer Systems, Inc. | Hardware support for fast software emulation of unimplemented instructions |
CN1187255A (zh) * | 1995-06-07 | 1998-07-08 | 高级微型器件公司 | 使用指令字段规定扩展功能的微处理器 |
JP2889845B2 (ja) * | 1995-09-22 | 1999-05-10 | 松下電器産業株式会社 | 情報処理装置 |
US5926642A (en) * | 1995-10-06 | 1999-07-20 | Advanced Micro Devices, Inc. | RISC86 instruction set |
US5987583A (en) * | 1997-10-07 | 1999-11-16 | Microchip Technology Inc. | Processor architecture scheme and instruction set for maximizing available opcodes and address selection modes |
US6282633B1 (en) * | 1998-11-13 | 2001-08-28 | Tensilica, Inc. | High data density RISC processor |
US6560694B1 (en) * | 2000-01-14 | 2003-05-06 | Advanced Micro Devices, Inc. | Double prefix overrides to provide 16-bit operand size in a 32/64 operating mode |
JP3556556B2 (ja) * | 2000-02-08 | 2004-08-18 | 株式会社東芝 | 命令コード変換装置及び情報処理システム |
WO2001069376A2 (en) * | 2000-03-15 | 2001-09-20 | Arc International Plc | Method and apparatus for processor code optimization using code compression |
US6651160B1 (en) * | 2000-09-01 | 2003-11-18 | Mips Technologies, Inc. | Register set extension for compressed instruction set |
US7093108B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Apparatus and method for efficiently incorporating instruction set information with instruction addresses |
EP1470476A4 (en) * | 2002-01-31 | 2007-05-30 | Arc Int | CONFIGURABLE DATA PROCESSOR WITH MULTI-LENGTH INSTRUCTION KIT ARCHITECTURE |
US7191318B2 (en) * | 2002-12-12 | 2007-03-13 | Alacritech, Inc. | Native copy instruction for file-access processor with copy-rule-based validation |
-
2003
- 2003-06-13 GB GB0313765A patent/GB2402763B/en not_active Expired - Lifetime
- 2003-12-30 JP JP2005500707A patent/JP3990423B2/ja not_active Expired - Lifetime
- 2003-12-30 AU AU2003290356A patent/AU2003290356A1/en not_active Abandoned
- 2003-12-30 EP EP03782717A patent/EP1634164A2/en not_active Ceased
- 2003-12-30 KR KR1020057023642A patent/KR100972160B1/ko active IP Right Grant
- 2003-12-30 RU RU2006101156/09A patent/RU2006101156A/ru not_active Application Discontinuation
- 2003-12-30 WO PCT/GB2003/005684 patent/WO2004111834A2/en active Application Filing
- 2003-12-30 CN CNB2003801104169A patent/CN100409178C/zh not_active Expired - Lifetime
-
2004
- 2004-01-28 US US10/765,181 patent/US7231507B2/en active Active
- 2004-02-05 TW TW093102677A patent/TWI325542B/zh not_active IP Right Cessation
- 2004-02-10 MY MYPI20040390A patent/MY135360A/en unknown
-
2005
- 2005-11-28 IL IL172236A patent/IL172236A0/en active IP Right Grant
-
2007
- 2007-02-07 US US11/703,091 patent/US7447871B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20040255095A1 (en) | 2004-12-16 |
GB0313765D0 (en) | 2003-07-23 |
KR100972160B1 (ko) | 2010-07-26 |
WO2004111834A2 (en) | 2004-12-23 |
AU2003290356A1 (en) | 2005-01-04 |
IL172236A0 (en) | 2006-04-10 |
TW200428225A (en) | 2004-12-16 |
CN100409178C (zh) | 2008-08-06 |
EP1634164A2 (en) | 2006-03-15 |
MY135360A (en) | 2008-03-31 |
RU2006101156A (ru) | 2006-06-10 |
WO2004111834A3 (en) | 2005-12-01 |
JP2006527420A (ja) | 2006-11-30 |
US7447871B2 (en) | 2008-11-04 |
US20070136558A1 (en) | 2007-06-14 |
KR20060028403A (ko) | 2006-03-29 |
JP3990423B2 (ja) | 2007-10-10 |
US7231507B2 (en) | 2007-06-12 |
GB2402763B (en) | 2006-03-01 |
GB2402763A (en) | 2004-12-15 |
CN1826582A (zh) | 2006-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8078828B1 (en) | Memory mapped register file | |
JP5646656B2 (ja) | 複数の命令セットにより使用されるレジスタ間のマッピング | |
US7447871B2 (en) | Data access program instruction encoding | |
US8060724B2 (en) | Provision of extended addressing modes in a single instruction multiple data (SIMD) data processor | |
JP2005202964A (ja) | 割り込みをタイプ別に計数する方法、システムおよびプログラム | |
JP4349265B2 (ja) | プロセッサ | |
EP1204918A1 (en) | Conditional instruction execution in a computer | |
JP3905552B2 (ja) | 複数の命令セットを有するデータ処理装置内における命令エンコード | |
US6530011B1 (en) | Method and apparatus for vector register with scalar values | |
US20110047355A1 (en) | Offset Based Register Address Indexing | |
JP2013506177A (ja) | 改良型モニタ機能実装 | |
US20100125719A1 (en) | Instruction Target History Based Register Address Indexing | |
US11494190B2 (en) | Circuitry and method for controlling a generated association of a physical register with a predicated processing operation based on predicate data state | |
JP2002251284A (ja) | データ処理装置 | |
US6393552B1 (en) | Method and system for dividing a computer processor register into sectors | |
JPS623332A (ja) | 情報処理装置 | |
US20240329996A1 (en) | Predication techniques | |
JPS62150435A (ja) | デ−タ処理方式 | |
Leeuwrik et al. | Hardware design of the multris microprocessor | |
JPH11175340A (ja) | プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |