TW201235937A - Data processing apparatus and method - Google Patents

Data processing apparatus and method Download PDF

Info

Publication number
TW201235937A
TW201235937A TW100140338A TW100140338A TW201235937A TW 201235937 A TW201235937 A TW 201235937A TW 100140338 A TW100140338 A TW 100140338A TW 100140338 A TW100140338 A TW 100140338A TW 201235937 A TW201235937 A TW 201235937A
Authority
TW
Taiwan
Prior art keywords
value
bit
data
source
control
Prior art date
Application number
TW100140338A
Other languages
English (en)
Other versions
TWI520058B (zh
Inventor
David James Seal
Richard Roy Grisenthwaite
Nigel John Stephens
Original Assignee
Advanced Risc Mach Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW201235937A publication Critical patent/TW201235937A/zh
Application granted granted Critical
Publication of TWI520058B publication Critical patent/TWI520058B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping

Description

201235937 六、發明說明: 【發明所屬之技術領域】 本發明係關於資料處理之領域。 【先前技術】 在資料處理系統中’資料值有時可含有若干相鄰位元,該 等位元之值獨立於其餘資料值為受關注的。此組相鄰位元可 被S忍為是位元欄’且該組中之相鄰位元之數目可被認為是位 兀攔之寬度。例如,表示RGB色值之資料值可包括分別表 示紅色成分、綠色成分及藍色成分之位元欄。有時,可能理 想的為,操縱含有位元攔之資料值以致將位元攔與該位元攔 之周圍隔離。例如,有人可能希望僅提取或替換RGB色值 中之綠色成分。本技術試圖提供位元攔操縱指令之有效率的 編碼,該位元攔操縱指令可控制處理裝置執行各式各樣不同 種類之位元攔操縱。 在本申請案中,I己法<χ:丫>指示一組相鄰位A,該等相鄰 位元自位元位置X處之最高有效位元延伸至位元位置Y處 之最低有效位元《由<χ:γ>所描述之組寬度為χ_γ+ι位元。 例如’表達<4:〇>指示位元位置4至〇處之寬度5位元组, 其中位元<4>比位元<0>更有效。應注意,記法<χ:γ>並非暗 不儲存位置内之位元之任何特定儲存次序,因為儲存次序不 必與有效性之次序相同(例如’可使 儲存格式)。 使用大端儲存格式或小端 在本申請案中,之後係一系列 1及〇的字首〇b表示二進 201235937
Ob 110表示十進數記法之值6。 數記法之數值。例如 【發明内容】 目一 處理裝觀察’本發明提供-種資料處理裝置,該資料 處理電路系統,兮虚4 指令解碼器,解系統經配置為執行處理操作; q扣令解碼器回應於程式指令以產生用於控 I處理電路系統執行處理操作之控制訊號;其中: 式才曰Υ包括位元攔操縱指令,該位元搁操縱指 源資料值、第二源資料值及控制值,該第一源資 。3至夕⑯第一源資料元件,該至少一個第一源資料 -件各自具有Ν位元琳1:0>,該第二源資料值包含至少一 個第二源資料元件’該至少一個第二源資料元件各自具有Ν 位元 <Ν-1 :〇> ; ::控制值包括用於指示位元欄寬度W、源位元位置a及 所得位元位置B之資訊,其中且 〇 $ B S (N-W);以及 該指令解碼器回應於位元攔操縱指令以產生用於控制處 理電路系統產生所得資料值之控制訊號,該所得資料值包含 至夕㈤所得資料元件,每__個所得資料元件對應於一個相 應第:源資料元件及一個相應第二源資料元件,每一個所得 資料兀件具有N位元<N_丨:〇>,該所得資料元件包含: ()位元<B + W-1:B> ’該等位元巧+ |-1:3>具有對應於相 應第一源資料元件之位元<A+W_1:A>之位元值;以及 201235937 (b)右B+W<N ’則包含位元<n-i:b+w>,該等位元 <N 1 ·Β +W>具有對應於字首值之位元值,根據該控制值選擇 該字首值,該字首值為以下中之一者:⑴第一字首值,該第 子首值包含各自具有一個零值之位元,(ii)第二字首值, 該第二字首值具有相應第二源資料元件之位元<N-1:B+W> 之位元值,以及(iii)第三字首值,該第三字首值具有對應於 〇才應第源資料元件之位元<A+W-1 :八>之符號擴充的位 元值。 處理裝置具備處理電路及指令解碼器,該指令解碼器回應 於位元攔操縱指令以控制處理電路執行位操縱操作。位 兀欄操縱指令至少識別第一源資料值及第二源資料值,該第 源資料值包含至少一個第一源資料元件該第二源資料值 c a至夕一個第二源資料元件。響應與位元欄操縱指令控 制處理電路產生所得資料值,該所得資料值包含至少一個所 知貝料元件。每一個第一源資料元件、第二源資料元件及所 得資料元件具有N位元<Ν-ΐ:〇>。 母個Ν位元所得資料元件包括w位元<B+W-1 :Β>,該 等J位t〇<B + W-1:B>具有對應於第—源資料值之相應第〆 源資料元件之位元<A+W_1:A>的位元值。目此,每一個所得 資料元件包括W位元位元攔,自相應第一源資料元件提取 。W位元位兀攔。源位元位置A指示第一源資料元件内位 元攔之最低有效位元之位置,所得位元位1 B指示所得資 料兀件内位70攔之最低有效位元,且位元襴寬度W指示位 元攔所13之位元數目。量A'量B及量w屬於 201235937 0SASN-W及UBSN_W之範圍内,且量A、量B及量W 由位元攔操縱指令内之控制值識別。控制值可直接識別A、 B及W,或使用任何參數組間接識別A、8及w,該等參數 "用於推導A B及W。應注意’控制值不必為位元攔操縱 指令編碼内之-組連續的位元’但該控制值亦可包含兩組或 兩組以上之位兀,該等位元分佈於指令編碼各處。 若控制值指示B + W<N,則每—個所得諸元件將包括字 首部分’該字首部分包含位元<n^b+w>,該等位元 <N-1:B + W>比所得資料元件内位元攔之最高有效位元 <B + W-1>更有效。本技術為設定字首部分之位元值提供了不 同的選擇。位元攔操縱指令之控制值包括指示何種類型之字 首部分將心特定位元攔操縱之資訊。根隸制值,字首值 經選擇為第-字首值、第二字首值及第三字首值中之一個字 首值。 第一字首值包含各自具有零值之位元。當選定第一字首值 時,則每-個所得資料元件含有自相應源㈣元件提取之位 元棚,其中任何比位元攔更有效的位元經設定為0。此舉可 適用於隔離源資料元件之位元攔,以便可分離於源資料元件 之其他部分處理位元攔之值。 第一子首值具有相應第二源資料元件之位元<N· i :B+W: 之位兀值因此’ §選定第二字首值時,則位元襴操縱產生 :果’該結果等效於將第—源資料元件之位元欄插入第二源 資料7G件内’其中第二源資料元件之任何更有效的位元保持 無變化Λ舉可適用於將兩個或兩個以上資料值之部分組合 201235937 成為單個資料值,如,藉由使用第二字 縱指令將對應於另外兩種成分之办… 兀镧轹 種成刀之位凡攔插入含有RGB成分 中之一種成分的資料值内,可自 合的刪色值。 自早㈣咖成分值組裝組 <二三二首值具有對應於相應第一源資料元件之位元 ㈣松之符號擴充的位此舉適用於表示帶符號值 :元攔,因為當符號擴充包括於所得資料元件之内時符號 擴充保存第-源資料元件之位元^_ 源資料元件提取之位元攔<a+w_1:a>正表示負數,2第第: =值所提供之符號擴充維持所得資料元件内之位元攔: 藉由:擇第一字首值、第二字首值及第三字首值中之合適 的 個子首值,可由;t日η & y*·- 元攔操縱編·由於單個位元=操縱指令為不同種類之位 早個位几攔操縱指令可提供多個不同的 = 呆作’故可有效率地使用指令集之編碼空間。熟習此項 二料解.用於實施位元攔操縱指令之硬體可具有各式 類的不θ形式’且處理電路系統及指令解碼器可包含 種之硬體’該硬體產生具有上述形式之至少—個所 兀件之結果值。 科 第二子首值之符號擴充位元可具有視符號表示類型而定 ^不冋形式’該符號表示適用於資料值。然而,在—個實例 中’第二字首值可包含 _ 03各自具有相應第-源資料元件之位元 之位兀值的位元。在許多二進數帶符號數目表示 號位7C為彼資料值之最高有效位元,該符號位元指示 201235937 資料值為正或為負。自第— 第源資料元件提取之位元攔之最高 有效位凡為位元<A+W-1>,日m lL从 ..^^ 且因此错由在第三字首值之位元 中之各位元中複製該位元,奋 田將彼位7〇欄插入所得資料值内 時,維持經提取之位元攔之符號。 若控制值將所得位元位置 疋義為大於0’則所得資料元 件具有子尾部分,該丰屋Α 子尾4分包括至少一個位元<Β1:0>, 該位儿<Β_1:0>不及位元攔 _ 最低有效位有效。根據 控制值,予尾值可選定為第— — — 予尾值及第—子尾值中之一個 字尾值,該第一字尾值包含 匕3各自具有一個零值之位元,該第 一字尾值具有相應第:源資料元件之位元<Β十〇>之位元 值。藉由選擇第一字尾值,可在所思咨祖-从 在所仵資枓兀件内用較低有效 位元隔離位元攔,該等較低有效位元具有零值。藉由 二字尾值’位元攔㈣Μ 1、資料元件之位元欄有效地插 入第二源資料元件内,其中第二源資料元件之較低有效位元 無變化。 儘管在隨後所述實例中,描述了指令編碼,其中當選定第 二字首值時則選定了第二字尾值,且當選定第一字首值及第 三字首值中之一個字首值時則選定了第一字尾值,但應瞭 解,亦可使用第一字首值、第二字首值及第三字首值中之一 個字首值與第一字尾值及第二字尾值中之一個字尾值之任 何任意組合。 資料處理裝置可包含:複數個儲存位置,該複數個儲存位 置經配置為儲存以供處理電路系統處理之資料值; 其中該位元攔操縱指令至少識別第一源儲存位置及目標 201235937 儲存,置,該第-源儲存位置用於儲存第-源資料值;並且 〇 7解碼回應於位元攔操縱指令,以產生用於控制處 理電路系統將該所得資料值儲存於目標儲存位置中之控制 訊號。 在位兀攔操縱指令之一個實例中,指令至少識別第一源儲 :位置及目^儲存位置’該第—源儲存位置用於健存第一源 貧料值’該目標儲存位置用於儲存產生之所得資料值。例 如’儲存位置可為暫存器、記憶體位置或用於储存以供處理 電路系統處理之資料之任何其他資料儲存器。 視情況’位元欄操縱指令可規定用於儲存第二源資料值之 第-源儲存位置’或第二源資料值可為在指令内直接 瞬時值。 或者’在一個實例中,篦—通次少丨& 員1J甲《一源貝科值可為在執行位元欄操 縱指令之前存在於目標儲存位置中的資料值。在此情況下, 所得資料值覆寫目標儲存位置内之第二源資料值。若位元攔 操縱指令之控制值使得敎第二字首值及第二字尾值,則位 -攔操縱之結果為:將來自第一源資料值之位元攔插入目標 儲存位置内,其中目標儲存位置之其他位元保㈣變化。 一些處《置可允許儲存位置(例如,暫存器)作為複數 個不同儲存位置大小之儲存位置進行存取1此,位元搁操 縱指令之控制值可包括用於識別第一源儲存位置及目標儲 存位置之儲存位置大小之資訊。可以不同方式實施儲存位 置。在-個實例中,可能存在實體上不同的儲存位置,該等 儲存位置具有不同的大小(例如,'组64位元儲存位置及 201235937 另-…元儲存位置)β或者,共同組之儲 可用不同儲存位置大小進行存取的。例如,相同的為 儲存位置可經受64位元f料存取及32 = 2位元 64位元儲存位置之32 _ 貧枓存取。在 置之32位兀貢料存取期間,僅僅可讀取儲在 位置之位元中之32個位元 賈取儲存 個位元但在執行資料值之任何進—步處理:有64 位元中之32個位元n 摒棄該等 X t田將32位兀資料值京入q 位元儲存位置時,可將i仙 ···· 吟了將其他32個位元設定為— 或可將該等其他32個位元 —疋值 以你,望“ 資料之符號擴充, 或者使該4其他32個位元保持無變化。 在一些實施例中,包括於第一源資料值、第二源資料值及 所得資料值内之-或更多f料元件可具有資料元件大小 N,該資料心件大小㈣選自複數個不同的資料元件大小。 在此情況下’隨後位元攔操縱指令之控制值亦可包括用於直 接或間接地識別資料元件大小N之資訊。提供可變的資料 元件大小可適用於(例如"個指令多個資料(如咖 instruction multipledata;SIMD)處理操作其中將位元搁操 縱並行應用於第一源資料值、第二源資料值及所得資料值内 之多組相應的資料元件。 由位元攔操縱指令之控制值識別位元位置A及位元位置 B,位兀位置A及位元位置b指示第一源資料元件及所得資 料元件内位元攔之位置。在位元攔操縱指令之一個實例中, 控制值可識別A及B之任何任意值,使得可將來自源資料 元件内之任何位置之位元欄複製至所得資料元件内之任何 201235937 位置。 然而’在-個實例中,位元欄操縱指令具有編碼,以使源 4彳置A及所仔位凡位置B中之—個位置具有零值。本 技術認為:對最常_要類型之位元欄操縱操作而言,源位 兀位置A及所得位元位置B中之至少—個位置為〇。藉由將 A及B中之—者設定為等於G,隨後中僅非零的—個 位置需要由控制值識別,且因此指令編碼變得更有效率。在 位元攔插入形式之指令中,Μ而㈣,以使將位於源資料 兀件之最低有效部分<W_1:〇>處之位元欄插入所得資料元件 之任意部分<B + W顿中。在位元攔提取形式之指令中, A=0而B-G,以使自源資料元件之任意部分<八+ |卜八〉提 取位元攔’且將該位元攔複製至所得資料元件之最低有效部 为<W-1:0>。提取形式之指令及插入形式之指令滿足最常用 形式之位元攔操縱1而m位元攔操縱(a&b兩者 之非零值需要該位_操縱),則仍可使用兩個位元搁操縱 指令執打此操作,該兩個位元攔操縱指令為:位元襴提取形 式之k,該扼令用於自源值之任意位置a提取源位元欄 且將位元攔複製至暫時儲存位置之最低有效部分;位元棚插 入形式之指令’該指令自暫時儲存位置之最低有效部分取用 位兀欄且將該位元欄插入所得值内之任意位置B内。 在一個實例中,可配置裝置,以使該控制值規定最高有效 位兀位置…件旋轉參數R,以決定該位元攔寬度%、該 源位元位置A及該所得位元位置B ; 若_,則該源位元位置純且該所得位元位置㈣, 12 201235937 該位元攔寬度w^s+d-r且該位元攔操 欄提取形式;以及 /、有該位元 若s < R,則該源位元位置A=〇且該所得位元位置㈣r 該位元欄寬度W=s+1’且該位元欄 ’ 插入形式。 具有該位兀欄 位元欄操縱指令之該編碼尤其有效率,因為兩個參數s ^…至少識別:⑷位元搁操縱指令為位元攔提取形式 還疋位元攔插入形式’(b)源位元位置A,該源位 指示第-源資料件内位元欄之位置,⑷所得位元位置b, 該所得位元位置B指示所得資料元件内位元搁之位置;以 及(d)位元攔寬度w’該位元攔寬 _ 之位元數卜 ㈣w “由位元攔所包含 對位元攔插入形式及位元攔提取形式兩者而言,最高有效 :位置S表示第一源資料元件内位元攔之最高有效位元 =讀置,且元賴轉參U表示位元位置之數目,若 源位元位置A銘叙;Ρ V _ 右 將6… 置Β’則每-個源資料元件 =右%轉該數目。對位元攔插入形式而言,r表示第一源 ==元攔之最低有效位元之位元位置,而對位元攔 =’㈣)值識別所得資料元件内位元棚之最低 有兀位置(其中N為資料元件大小)。 置=旋轉參…示位元位置之數"若源位元位 轉,數目 位元位置B’則每一個源資料元件將向右旋 但並非絕對必要在自第-源資料元件產生所得 件時實際執行右㈣。例如,等效的左㈣可代替右 13 201235937 旋轉來使肖或可在無實際執行旋轉之情況下產生所得資料 元件。 在個實例令,最高有效位元位置s可包含位元襴符號位 兀參數S。若第—源資料元件為帶符號資料值,則最高有效 位7G位置s (除識別上述項目⑷至項目⑷之外)亦識 一源資料元件内之符號位元之位置。 可佈置裝置,以使該控制值包括第-部分及第二部分,第 一部分及第二部分各自包含可變數目之位元;並且 該指令解碼器及該處理電路系統中之至少—者回應於位 元攔操縱指令’以決定由控制值之該第一部分所包含之位元 數目’且基於由該第-部分所包含之位元數目決定: (a) 該至少一個第一源資料元件、該至少一個第二源資料 元件及該至少-個所得資料元件之資料元件大小N;以及 (b) 該帛二部分中之哪些位元指㈣最高有效位元位置s 及該旋轉參數R。 資料元件大小N愈大’則尺及s之可能值愈大。因此, 為表示R及S所需之位元數目將視針對特定操作所選定之 資料凡件大小N而變化。儘管可能在控制值内指派固定數 目之位元(該等位元;i以識別尺及s之最大可能值),但可 藉由提供具有各自具有可變長度之第一部分及第二部分之 控制值來達成更有效率的編碼。視所使用之資料元件大小N 而定,可將控制值之位元可變地指派至第一部分或第二部 刀。藉由偵測長度可變的第一部分之大小,裝置可識別資料 7L件大小N且該裝置可識別第二部分中之哪些位元表示最 201235937 高有效位元位置s及旋轉參數R。 在-些實施例中,可用所得資料元件產生所得資料值,以 與第-源資枓值及第二源資料值内之相應第一源資料元件 及第一源貝料元件相同的次序佈置該等所得資料元件。 然而’可佈置其他實施例,以使若該第一源資料值包含複 數個第-源資料元件、該第二源資料值包含複數個第二源 料元件且該所得資料值包含複數個所得資料元件,則該控制 值包括資料元件排序資訊,該資料元件排序資訊用於指示將 該複數個所得資料元件佈置於該所得資料值内所使用的次 序0 因此,在需要時’位元攔操縱指令亦可用以實施資料元件 重::序。例如,可基於第一源資料值及第二源資料值產生 所侍貝料值,該所得資料值包含兩個所得資料元件A及B, 該第-源資料值包含相應第一源資料元件a,及B,,該第二 源資料值包含相應第二源資料元件"。隨後;料: 件排序資訊可規定是以次序AB (對應於源資料值中相應源 資料το件之次序)還是以相反的次序Ba _置所得資料元 件該貝料元件排序資訊由控制值指示。 應注意’在需要時,則位元欄操縱指令可用以實施資料元 件在資料值内之重新排序,即使無位元攔操縱執行於彼資料 值上。可藉由將位元攔寬度1設定為與資料元件大小N相 同來實現此舉,以使位元欄操縱操作具有將整個第一源資料 值複製至所得資料值之效應,其中視資料元件排序資訊而定 將所得資料值内之資料元件重新排序。因此,本技術提供多 15 201235937 途的“ 7。玄等才曰彳不僅可實施位元棚操縱而且可實施資 料元件之重新排序。 在個不例性實施例中,可配置裝置,以使若該第一源資 料值包含複數㈣-源資料元件,㈣二源資料值包含複數 個第二源資料元件且該所得資料值包含複數個所得資料元 件’則該所得資料值等效於第_f料值,該第―資料值藉由 以下獲得: ⑷產生中間值,該中間值包含該等所得資料元件,對應 於-亥第源、資料值中之相應第一源資料元件之次序及該第 源資料值中之相應第二源資料元件之次序將所得資料元 件排序,以及 (b)在該中間值内之該等所得資料元件上執行至少一個 重新排序疊代以產生該第一資料值; •每個重新排序疊代包含以下步驟:決定該資料元件排序 資訊之相應位70是否具有預定值,且若該資料元件排序資訊 之該相應位元具有預定i ’則交換該中間值内之數對位元 組。 在一個實例中,中間值内之交換對之位元組包含相鄰對之 位元組。 實施-貝料元件重新排序之一種方式為產生在形式上等效 於第一資料值之所得資料值,在以下情況下,將產生該所得 資料值.(a)使用如上所述之位元攔操縱操作,產生中間值, 其中按與第一源資料值及第二源資料值内之相應第一源資 料凡件及第二源資料元件相同的次序將所得資料元件排 16 201235937 =件資料元件係由位元欄操縱產生,且(b)將一系 二或更多重新排序疊代應用於中間值,以產生第一資料 母—個重新排序疊代包含以下步驟:若資料元件排序資 :目應=7C具有預定值,則交換令間值内之數對位元組。 注意’實際上不必Μ 士扭—,, 稭由執仃如上所述之步驟(a)及步驟 產生所得資料值。在-些實施方案中,處理電路可能(在 單個操作十)產生最炊料β在 一 最〜所仔值,其中基於第一源資料值/第 原資料值執订位凡欄操縱操作,且亦以所得資料值内之所 要次序將所得資料元件排序。因此,不必藉由處理電路產生 上述中間值,或處理電路不必實際上執行重新排序疊代。最 終所得資料值具有等效於第一資料值之值,將原本藉由在中 間值上執行此等重新排序疊代來產生該值。 儘管在-些實施例中,重新排序疊代可交換數對位元組 (該等位凡組具有任意數目之位元),但若位元组所包含之 位元數目為資料元件大+ Ν之倍數’則可簡化用於產生所 得資料值之資料元件排序資訊之編碼及硬體配置。例如,重 新排序疊代可交換數對單個資料元件或交換數對兩個、四個 或更多資料元件組。 在一個實例中’位元組可包含至少一個重新排序疊代中之 不同重新排序疊代之不同位元數目。用於不同組大小之交換 位元組(或資以件)之一系列重新排序疊代使得能夠對待 提供於所得資料值内之資料元件進行各式各樣可能之佈置。 可配置裝置’以使該控制值包括第一部分及第二部分,第 -部分及第二部分各自包含可變數目之位元;並且 201235937 該=解碼器及該處理電路系統中之至少—者回應於該 u 指令’以決定由該控制值之該第 位元數目,且基於由該 弟口P刀所包含之位元數目決定: ()i至^ j固第-源資料元件、至少一個第二源資料元 至少—個所得資^件之資料元件大小N;以及 ⑻第二部分中之哪些位元指示資料元件排序資訊。 以與上述參數s及參數"目似之方式,可使用第一部分 及第二部分為f料元件排序資訊編碼,第-部分及第二部分 各自’、有可變數目之位元。此舉有用,因為資料元件排序資 訊通常^要根據有多少資料元件存在於資料值内而定的 元(資料元件之數目愈大,則可能之重新排序排列 之數目愈大)。資料元件之數目取決於資料元件大小N,且 因此需要用來表示資料元件排序資訊之位元數目可與資料 疋件大小N成反比變化(資料元件大小愈大,可能之重新 排^排列之數目愈小)。因此’類似地,針對位元攔參數s 及參數R之如上所述之控制值的編碼方案可用於以有效率 之方式表示資料元件排序資訊。 自另個態樣觀察,本發明提供一種資料處理裝置,該資 料處理裝置包含: 處構件,5亥處理構件用於執行處理操作; 指令解碼構件,該指令解碼構件用於回應於程式指令,產 生用於控制處理電料、㈣行處理操作之控制訊號;其中: I :等&式才曰令包括位元欄操縱指令,該位元搁操縱指令至 /識別第-源資料值、第二源資料值及控制值,該第—源資 18 201235937 料值包含至少一個第—调咨_ 件’該至少一個第-源資料 凡件各自具有N位元<N-i:0>,嗜篦_ 忑弟—源資料值包含至少一 個第二源資料元件,該至少一
夕個第二源資料元件各自具有N 位元 <N-1:0> ; 該控制值包括用於指示位元攔 爛見度W、源位疋位置a及 所得位元位置B之資訊,其中 、T 1 客 WgN、〇^A$N-W 且 BS N-W ;以及 該指令解碼構件回廉於兮仞 愚於忑位兀欄操縱指令以產生用於控 制該處理構件產生所得資料值之控制訊號,該所得資料值包 3至〆個所传資料元件,每—個所得資料元件對應於一個
相應第一源資料元件及一個相A 仲愿罘一源賁料兀件,每一個所 得資料元件具有N位元<>j 1 .η、 ϋ 1立几<Ν-1.〇> ’該所得資料元件包含: (a) 位元 <B +W- 1:Β>,兮莖 a - η 以等位tl <B + W-1 :Β>具有對應於該 相應第一源資料元件之位开<Α <_iii7C<a+W-1:a>之位元值;以及 (b) 若B + W<N ’則包含位元<n i:b + w>,該等位元 <>Μ ·Β +W>具有對應於字首值之位元值,根據該控制值選擇 該字首值,該字首值為以下中之—者:⑴第一字首值,該第 一卞首值包含各自具有一個零值之位元,第二字首值, 該第二字首值具有該相應第二源資料元件之位元 <N-.1.B + W>i位兀值’以及(Hi)第三字首值,該第三字首值 具有對應於該相應第—源資料元件之位元<a+w1:a>之符 號擴充的位元值。 自另一個態樣觀察,本發明提供一種用於處理裝置執行處 理操作之資料處理方法,該方法包含以下步驟: 19 201235937 回應於位7L攔操縱指令,至少識別第一源資料值、第二源 資料值及控制值’該第一源資料值包含至少一個第一源資料 兀件,該至少一個第一源資料元件各自具有N位元 <Ν-1.〇> ’該第二源資料值包含至少一個第二源資料元件, 該至少一個第二源資料元件各自具有N位元琳;^〉,從而 產生用於控制處理裝置產生所得資料值之控制訊號,該所得 資料值包含至少—個所得資料元件,每一個所得資料元件具 有N位<N] :Q> ,每_個所得資料元件對應於—個相應第 一源資料元件及一個相應第二源資料元件;其中: 該控制值包括用於指示位元搁寬度w、源位元位置A及 所侍位兀位置B之資訊,其中1SWSN、OgASN-W且 ,且每_個所得資料元件包含: ⑷位元<B + W_1:B>,該等位元<b + wi:b>具有對應於該 相應第-源資料元件之位元<A+W_1:A>之位元值;以及 < (b)若B + W<N,則包含位元<N i :b + w>,該等位元 一 ’B + W>具有對應於字首值之位元值,根據控制值選擇該 :首值’該字首值為以下中之—者:⑴第—字首值,該第— :首:包含各自具有一個零值之位元,⑴)第二字首值,該 、值’、有β亥相應第二源資料元件之位元<N_ 1 :b + w> 疋值’以及(111)第三字首值,該第三字首值具有對應於 ::應第-源資料元件之位元〈縛十心之符號擴充的位 7G值。 個態樣觀察’本發明提供-種資料處理裝置,該資 抖處理裝置包含: 20 201235937 處理電路系統,該處理電路系統經配置為執行處理操作; 指令解碼器,該指令解碼器回應於程式指令以產生用於控 制該處理電路系統執行該等處理操作之控制訊號;其中·· 該等程式指令包括至少一個指令,該至少一個指令規定控 制值,該控制值具有第—部分及第二部分,該第—部分用於 指示選自複數個資料大小之選定資料大小,該第二部分用於 指示至少一個控制參數,該至少一個控制參數之位元數目視 該選定資料大小而變化,該第—部分及該第二部分各自具有 可變數目之位元;並且 該指令解碼器回應於該至少一個指令以產生用於控制該 處理電路系統根據該選定f料A小及該至少—個控制參數 來執行相應處理操作之控制訊號; 其中當處理該至少一個指入拄,兮托人4 调知7時,該指令解碼器及該處理電 路系統中之至少一者經阶番炎崎。丨ι t ,配置為識別由該控制值之該第一部 分所包含之位元數目,且根櫨由 根據由該第一部分所包含之該位元 數目識別:⑷該選定資料大小,以及⑻該控制值中之哪些 位70形成用於指示該至少—個控制參數之該第二部分。 如上所述,位元摘操縱指令可能與選定資料元件大小相關 聯,該選定資料元件大小指示 竹A*又位疋欄钿縱之資料元 之大小。用於控制位元攔操縱 保忭炙控制參數可能具有視資 料元件大小而定之可變數目夕办_ ^ ^ ^ T致目之位7C,且因此如上 可變長度之第一部分及第二 使用 。丨刀之編碼方案可用 率之方式識別該等控制參數。 ' 控制值之編碼之該類型亦可 ;/、處理刼作相關聯之其 21 201235937 料大小及至少一個控制 大小,該至少一個控制 他種類之指令,該處理操作取決於資 參數,該資料大小係選自複數個資料 而定之若干位 元。對此等指令而 參數具有視選定資料大小 吕’指令可規定控制值,該控制值呈古结 列值具有第一部分及第二部 为’ s玄第·一部分及該第二部分各自a -j- 合目具有可變數目之位元。藉 由識別由第一部分所包含之位元數目扣 ’指令解碼器及處理電 路系統中之至少-者可決定選定資料大小且識別控制值中 之哪些位元對應於表示至少一個控制參數之第二部分。指令 編碼之㈣式可應用於許多類型之指彳,且提供編碼控制參 數之有效率之方式,该等控制參數之位元數目視選定資料大 注意,術語「部分」不必一定表示控制值内之位元之連續 部分’該術語亦可代表控制值之任何任意位元組(即使彼等 位元並非具有相鄰的位元位置)。 在可用指令集包括複數個不同種類之指令(每一種指令使 用控制值之該常用編碼格式來識別與彼指令相關聯之控制 參數及資料大小)之實施例中,則可使指令解碼器及/或處 理電路更有效率’因為用於為控制值解碼之硬體之一部分可 再用於不同種類之指令。 若隨著第二部分中之位元數目視選定資料大小而減小,第 —部分之位元數目視選定資料大小而增大,則該技術尤其有 用。藉由隨著第二部分中之位元數目減小而增大第一部分之 位元數目且反之亦然,然後第一部分可使用並非為第二部分 所需要的控制值之任何位元來指示選定資料大小。因此,控 22 201235937 制值之總大小可保持不變而不管 4个S選疋貝枓大小如何,兑 適當時,根據所使用之特定眘袓+ ,w k ^ ^ 衧疋資枓大小將控制值之不同位元分 配至第一部分或第二部分。 在一個實例中,可為控制值之 ^ ^ -Jb I 〇P刀編碼,以使對該複 數個貝枓大小之至少一子組(一⑷而言該第一部分至 少已含第一位兀及X個剩餘位元’該第-位元具有第一狀 態’該等剩餘位元具有第-灿能 句第一狀態,其中X為大於〇 之可變整數;並且 寻
&玄指令解碼器及該處理雷改备β A 处埋冤路系統中之該至少一者 為:根據該控制值之預定部分内該第-位元之位元位置,識 別由該控制值之該第—邦八π 4 A ° ^ 刀所包含之位元數目。 在該實例中,第一部分白紅s i P刀包括至少一個位元,該至少—個位 元:有第-狀態(例如’「。」狀態或Γ1」狀態第一部分 之零個、一個或更多個剩餘位元具有第二狀態(例如,「0 狀態及「I」狀態中之另— " 種狀態)。在一個實例中,且右第 一狀態之第一部分之震彳®! , 零個、—個或更多個位元可有效地 用於填充控制值之位元位置 一 置之填補(Padding)」位元,第 一部分不需要該等「填铺. 具補」位兀來指示給定資料大小之至 一個控制參數。視具有第_ 第—狀態之位元數目而定,具有第一 狀態之位π之位置可變 α· ^班 j丞於具有第一狀態之位 之位兀位置,識別資料大小。 基於具有第—狀態第— 八 弟位兀之位元位置來偵測第一部 刀之大小(及因此偵測選 為在大小)之技術尤其有用,因 局在讦多貧施方案中, ^ 用資料大小將以2的冪數增大,且 23 201235937 因此具有第一iiJf能十7A·- 一、 心 兀之位兀位置可能通常與用於選定 貧料大小之2的特定幂數相關。
識別具有第—狀離之笛 V 、 狀L之第一部分之位元的位元位置的技術 不必為用以識別音斗立;# _L , W貧抖兀件大小之唯一技術。亦可能存在 一個額外位元,該5 ,丨、一彻 至〆個額外位元用於提供用於識別選定 資料大小之其他資訊。 儘e可月匕使用本控制值編碼技術來僅表示單個控制夫 數’但在存在複數個控制參數時,該技術尤其有用。在此情 況T,隨後當處理至少—個指令時,指令解碼器或處理電路 系統可經配置為:根播Λ贫 "據由第-部分所包含之位元數目,識別 一。刀之哪些位元指示複數個控制參數中之 制參數。. U ^ 當存在複數個控制參數時,然後若控制參數至少包括第一 控制參數(該第一控击丨失叙^ Α 乐控制參數之位兀數目隨選定資料大小 而增大)及第二控制參數( 曰 — (該第一控制參數之位元數目隨選 疋資料大小增大而減小),目丨丨士 、 )則本、.扁碼技術尤其有用。在此怦
:下部分可包括指示第-控制參數及第二控制I ==參Γ:據選定小將彼子部分之位元分配 至第控制參數或第二3ίΛ: A.J Α Ατ. —控制參數。將位元數目隨選定 小增大而增大之控制參數與位元數目隨選定資料大小增大 而減小之另-控制參數配對可產生控制值之有 碼,因為可將並非為用於指示給定資料大小之第—控制^ Γ要的位元進行再分配,以指示第二控制參數,且反之亦 24 201235937 如上所述,可將本編碼技術應用於許多不同類型之指令 該技術尤其適用的一類指令為單指令多資料(SIMD)指令, 該指令識別源資料值,該源資料值具有至少一個源資料元 件。對至少一種SIMD指令而言,選定資料大小可指示至少 一個源資料元件之資料元件大小,且相應處理操作可包含以 下步驟:在源資料值内之每一個源資料元件上並行執行選定 處理操作。用於控制相應處理操作之控制參數可具有不同資 料元件大小之不同的容許範圍,且因此控制參數之位元數目 可隨資料元件大小而變化。因此,本編碼技術可用於為控制 值内之選定資料元件大小及可變長度控制參數兩者有效率 地編碼。 ο 1 m jl/孑目 ,— 1 ,认霄j 1應用於 該特定實例)為位元攔操縱指 伯7 對該位凡欄操縱指令而 言’該相應處理操作包含以下半 . 一 F已3以下步驟.產生所得資料值,該 得資料值包含至少一個所得眘 调所传資枓7C件,每一個所得資料元 對應於該源資料值之_個相應源資料元件; 每一個所得資料元件包含 卞匕3所侍位70欄,該所得位元欄罝 對應於該相應源資料元件 -有 的位元值;以& “位疋之源位痛之位元值 該至少一個控制參數指示 .... 田这'原位兀攔及該所得位元攔 所包含之位元數目、哕如庙、^ ,付议兀襴 μ相應源資料元件内之 m τα jj- Ati ^ ι,,ι _ /原位儿棚之位 置及該所得資料兀件内 、徂 及。亥所得位元攔之位置。 因此,控制值包括第一畔 弟邛分及第二部分,該第一 元數目識別位元攔操樅沪八 #刀之位 料令之資料元件大小,該第二部分識 25 201235937 別指示位元欄寬度、源資料元件内位元欄之位置及所得資料 元件内所得位元欄之位置的控制參數。資料元件大小愈大, 則位元攔寬度以及源資料元件及所得資料元件内位元攔位 置之可能值愈大,且因此指示該等參數所需要的位元數目愈 大。因此’本控制值編碼技術適用於指示該等參數。 位元攔操縱指令亦可規定資料元件排序參數,該資料元件 排序參數識別將所得資料元件佈置於所得值内所使用的次 序。類似地,本編碼技術可用以識別資料元件排序參數該 本編碼技術使用具有可變大小之第一部分及第二部分。 另一種類型之指令(本編碼技術可應用於該種類型之指 令)為按位元邏輯指令,該按位元邏輯指令識別源資料值, 且對該按位元邏輯指令而言,相應處理操作包含以下步驟: 產生所得資料值’該所得資料值等效於將邏輯運算應用至源 資料值及第二資料值之結果’基於控制值決定該第二資料 值。 可將第二資料值視為掩碼(mask)值,使用邏輯運算將該 掩碼值與源資料值組合。在此情況下,選定資料大小指示由 第二資料值内重複模式之位元所包含之位元數目,且至少一 個控制參數指示用於識別重複模式之位元之位元值的資 訊。因此,在此情況下,選定資料大小不必為資料元件大小 但該選定資料大小指示第二資料值内重複模式之位元之大 小。重複模式之位元之大小愈大’則控制參數中為識別彼等 位元之位元值所需的位元數目愈大,且因此控制參數將具有 隨選定資料大小而變化之位元數目。因此,本編碼技術適用 26 201235937 於指示此等參數。 與按位元邏輯指令相關聯之邏輯運算可包括若干不同類 型之邏輯運算。例如,邏輯運算可包含AND運算、OR運算 及互斥〇R (XOR)運算中之一種運算。 /主心按位元邏輯指令不必一定控制處理電路實際產生第 二資料值,該第二資料值含有重複模式之位元,且不必一定 控制處理電路將邏輯運算應用至源資料值及第二資料值。可 能處理電路可包括用於產生(以單個組合運算)所得資料值 之硬體,該所得資料值等效於在以下情況下會獲得之結果: 產生第二資料值且使用邏輯運算將該第二資料值與源資料 值且口。該第二資料值實際上不必存在於該運算之任 段〇 ,該資 另一個態樣觀察,本發明提供一種資料處理裝置 料處理裝置包含: 處理構件,該處理構件用於執行處理操作; 才曰v解碼構件,該指令解碑構件用於回應於程式指令,產 ^用於控㈣處理構件執行該等處理操作之控制訊號;其 •丨!等程式指令包括至少-個指令,該至少-個指令規定 指示… 有第一部分及第二部分’該第-部分用 數個資料大小之選定資料大小’該第二部分用 二參數,該至少一個控制參數之位元數目 有可變數目之位化,該第一部分及該第二部分各自 数目之位兀;並且 27 201235937 該指令解碼構件回應於該至少—個指令,以產生用於控制 該處理構件根據該選定資料大小及該至少一個控制參數來 執行相應處理操作之控制訊號; 其中當處理該至少一個指令時,該指令解碼構件及該處理 構件中之至少-者經配置丨:識別由該控制值之該第一部分 所包含之位元數目’且根據由該第—部分所包含之該位元數 目識別_·⑷該選定資料大小,以及(b)該控制值中之哪些位 元形成用於指示該至少一個控制參數之該第二部分。 自另個態樣觀察’本發明提供一種用於處理裝置回應於 程式指令執行處理操作之資料處理方法,該資料處理方 含以下步驟: 接收至少一個指令,該至少一個指令規定一控制值,該控 制值具有第-部分及第二部分,該第_部分用於指示選自複 數個資料大小之撰$咨, 選疋資科大小,該第二部分用於指示至少— 控制 > 數’該至少一個控制參數之位元數目根據選定資料 大小而變化,該第—部分及該第二部分各自具有可 位元; 回應於該至少-個指令,識別由該控制值之該第_部 包含之位元數目; 〜根據由該第冑分所包含之該位元數目’識別:“)該選 二資料大j α及⑻該控制值中之哪些位元形成用 。玄至少一個控制參數之該第二部分;以及 參數執行相應處理操作 控制該處理裝置根據該敎資料大小及該至少—個控制 28 201235937 本發明亦提供一種虛擬機,該虛擬機由電腦程式提供,當 ^電腦執行時,該電腦程式根據資料處理裝置根據上述實^ 中之任何實例提供指令執行環境。例如,虛 有上述指令中之一個指 …匕3 狂八興用於執仃該指令之硬體 =動。用於執行虛擬機之主機電腦自身不必含有能夠執行 :及處理硬體’但該主機電腦包括能夠執行虛擬機 之足夠的處理資源,該虛擬機模擬指令之處理。 自結合附圖讀取之說明性實施例之以下詳細描述,本發明 之上述及其他目標、特徵及優點將顯而易見。 【實施方式】 第1圖示意性圖示資料處理裝置2,該資料處理裂置 含處理電路系統4、指令解碼器 ,* , Λ 节廿盗厍8及記憶體车 統10。記憶體系統10包括一或更多快 ’、 件。處理電路4包括若干产理1 。己隐體或記憶體器 格41括右干處理几件’諸如加法 器14及移相器16。當處理資料時指令解碼器6。 式指令,以產生用於控制處…回應於程 料儲存於暫存器8中)且將=統資料(該等資 將處理結果儲存於暫存器8中之, 制訊號。在指令解碼器6之控制下,亦可 中之控 2在暫存器8與記憶體系統1〇之間傳送資料/處理裝置 :使用多個列的暫心存取大小存取暫存Μ。 :益包含(例如)64位元,則暫存器可經受( 元存取或32位元存取。經由指 立 括資訊,該資訊敎待用於給定處理操作之選定暫存:= 29 201235937 大小。 儘管在第1圖之實例中,處理電路 协鉍六„。。山>疼止, 園不為正在處理儲存 暫存⑦8中之資料且將資料處理結果健存回至暫存写8, 但應瞭解,任何其他種類之儲存位置可代替暫㈣ 用。將瞭解,資料處理裝置2及處 吏 一 慝理電路4通常可包括去问 不於第1圖中之其他元件。 未圖 第2圖圖示位元欄操縱指令Bf W蜗碼,該位元櫊 縱? BF用於控制處理裝置2執行位元襴操縱操作。由位 於指令之位元<28:23>處之作業瑪識別位㈣操縱指令,且 該位元欄操縱指令包括以下棚: 。心:源暫存器欄’該源暫存器欄識別暫存器庫8 器,該暫存器儲存第一源資料值src ^。 •Rd··目標暫存器攔,該目標暫存器欄識別暫存器庫&之 目標暫存器,將處理結果儲存至該目標暫存器中。目標暫广 器攔Rd亦識別第二源資料值src2’該第二源資料值二: 在執行位元櫚操縱指令之前儲存於目標暫存器中之值 暫存器存取大小欄,該暫存器存取大小攔識別待用 於源暫存器及目標暫存器之選定存取大小 仗弟2圖之實 例中,暫存器大小攔Sf包含單個指示大小位元,其中浐八 大小位元之第一狀態指示第—存取大小(例、曰不 4郊 64位元) 且大小攔之第二狀態指示第二存取大小(例 以位元)。 然而,在需要時,可藉由將位元欄操縱指令編 v 、又夕位元 为配至暫存器存取大小欄sf,提供大於兩個不同存取大】 30 201235937 ·〒:子作業碼攔,該子作業碼攔指示用於控制 縱類型之控制值,該位元欄操縱待由處理電路4執行。 結合第7圖描述了子作業媽攔之實例編碼。 下文 • Contr〇113 :控制欄,該控制欄識別: 〇第一源資料值srcl、帛二源資料值㈣及待於位元 攔操縱指令之處理期間產生的所得資料值之資料元: 資料元件大小N ;以及 〇控制位元攔操縱操作之態樣之若干其他控制參數,該 位元欄操縱操作待由處理電路4執行。 下文將結合第5圖描述contr〇U3搁之編碼之實例。 亦可自sf襴及COntroll3欄推導出資料元件之數目。存在 於第-源資料值Srcl及第二源資料值㈣以及所得資:值 中之每一個資料值内之資料元件的數目等⑤M/N,並中M 為選定暫存ϋ存取大小,而料元件大小。 可將=欄、〇Pc攔及controll3攔共同視為形成用於控制 位元攔操縱操作之態樣之控制值。 儘管第2圖之實例編碼圖示:將第二源資料值㈤識別 為.在執行位it攔操縱指令之前儲存於目標暫存器中之值, :解,在其他實施例中,可提供單獨的暫存器欄,以識 別儲存第二源資料值src2之暫存器(而非目標暫存”。 第3圖圖示位元攔操縱操作之實例。第一源值㈣含有 麵資料元件,該等資料元件各自具有n位元,該第一源 值⑽為在執行位元欄操縱指令之前儲存於暫存哭 M-位元值。類似地,Μ位元第二源值Sfe2 °° 界值src2亦包括M/N資料 31 201235937 元件,該等資料元件Ia女ία / 仟各自具有N位元,該Μ位元第二源值 src2儲存於目標暫存器R(J中。 回應於位元搁操縱指令,處理電路4產生所得資料值,該 所得資料值具有職所得資料元件,該等卿所得資料^ 件對應於源值如、⑽之資料元件。每—個所得資料元件 包括W位元,該等w位元之值對應於第一源資料值⑽内 W位兀,位元欄(bf)e可基於位元欄操縱指令之控制值控制 第一源資料值src 1内位开細夕办恶e yer ^ , 鬥位70欄之位置及所得資料值内位元欄 之位置。對每—個所得f料元件而言,不如插人位元搁有效 之任何位元採料尾值s之值,而比純元欄更有效之所得 資料凡件之任何位元採料之值1所得資料元件儲 存於目標暫存器Rd中。 因此’位元欄操縱指令之效應為:自第一源值㈣之每 一個資料元件内之、給定位置提取位元欄,且將每—個經提取 之位几攔插入結果值之相應資料元件内,其中目標暫存器之 其他位元(若有的話)採用字首值及字尾值。 第4圓圖示可定量地定義位元攔操縱操作之方式之實 :。第4圖圖示位元欄操縱操作之實例,正將該位元攔操縱 知作應用於單個源資料元件以產生相應所得資料元件。若源 資料值及所得資料值具有兩個或兩個以上資料元件,則可將 相同操作應用於每一個源資料元件 件。 目應所得資料元 指=碼器6回應於位元攔操縱指令,以產生所得資料元 ”中所得資料元件之位元<_他採用位元搁以 32 201235937 值,該位元欄bf包含第—源值srcl之相應源資料元件之位 元<八+^1:八>。參數A指示待自第一源資料值_提取之 位元欄之開始位元位置,而參數B指示待將位元攔放置於 所仔資料兀件内之開始位元位置。w指示由位元攔bf所包 含之位元數目A、B及W具有1SWSN、0SASN-W及 範圍内之任何整數值,其中N為由資料元件所 包含之位元數目。 第4圖圖示位元欄操縱之通用形式其中位元棚位置值a 及B可分別採用源資料元件及所得資料元件内之任何位元 位置之值。可能將A、B及w直接編碼於位元欄操縱指令 之控制值内。 然而,在具體實施例中,如第5圖及第6圖所示,c〇ntr〇l 13 欄之控制編碼用以間接地識別A、b及w。 第5圖圖示位元欄操縱指令之c〇ntr〇U3搁之實例編碼。 ->ntroll3攔具有13位元<12:〇>,該c〇ntr〇n3攔包括第— 邓分30及第二部分32,該第一部分3〇及該第二部分w中 之母個。卩为具有可變數目之位元。contr〇l 13攔識別資料 几件大小N、旋轉參數R、最高有效位元位置s及反轉資訊 V。旋轉參數R及最高有效位元位置s決定:待自源資料元 件⑽1提取之位元欄之位置及大小,及將位元攔插入所得 貝料π件内之位置,下文將結合第6圖闡釋此舉。反轉資訊 V定義將資料元件佈置於所得資料元件内之次序,下文將結 合第7圖闡釋此舉。 control 13攔之第一部分3〇包含可變數目之位元。在該實 33 201235937 例中第分30包含c〇ntroll3攔之位元<12>,以及 controls攔之位元<5:0>之零個、一個或更多個位元。藉由 谓測由第-部分3G所包含之位元數目,可識別資料元件大 小N。 C〇nU〇113欄之第二部分32具有可變數目之位元該等位 元表示旋轉參數R、最高有效位元位置s及反轉資訊V。 C〇ntr〇113欄中之哪些位元表示哪一個參數視用於給定指令 之特定資料元件大小N而定。指令解碼器6或處理電路4 基於第一部分30中所識別之位元數目,識別第二部分32 中之哪些位元表示R' S及V中之每一者。 例如,若C〇ntr〇113欄之位元<12>及位元<5>具有零值, 則此舉指示資料元件大小N為32位元。因此,指令解碼器 6或處理電路4亦可決定:旋轉參數R具有c〇ntr〇113欄之 位元<10:6>之值’大小參數具有contr〇n3欄之位元<4:〇>之 值,且反轉資訊V具有二進數值ObvOOOOO,其中V為 controll3欄之位元<11>之值。類似地,對其他資料元件大 小而言,可以圖示於第5圖中之方式,根據contr〇i丨3欄決 定參數N、參數R、參數S及參數V。 controll3攔包括子部分(位元<11:6>),該子部分表示參 數R及參數V。資料元件大小N愈大,則旋轉參數r所需 之位元數目愈大而反轉資訊V所需之位元數目愈小。因此, 以圖示於第5圖中之方式,在該等參數之間共用control 13 欄之位元<11:6>。對不同的資料元件大小N而言,將子部分 之位元分配為指示旋轉參數R或指示反轉資訊V。以類似方 34 201235937 式第°卩分3〇及指示最高有效位元位 之部分可共用固定數目 的第_4分32 值之位元數目隨資料為用於該等值中之每-個 化。由於對任何增大或減小沿相反方向變 需要的位元用以卜貝另&件大小而言,並非為-個參數所 杜… 另一參數’隨後不存在並未指示資料元 件大小之一些值之 一 伯丁貝枓兀 ^ ζί ^ ^ ± 〇 的位元,且因此c〇ntr〇U3攔之 編碼有^地表示參數N、參數R、參數s及參數V。 第6圈H S Μ圖更詳細地描述_&。113攔之解釋。 最…位元攔操縱操作之實例,根據旋轉參數R及 及二二:位置S執行該位元搁操縱操作。可自參數s 及荼数R推導中、、塔a - ^ B及位元欄寬度W。始位置A、所得位元攔開始位置 喿!操作具有兩種視參數s與參數R間之關係而 疋替代形式。回應於位元襴提取形式職之指令,控制 處理電路4’以提取位於第―源資料元件⑽内之選定:置 處,位7L攔bf且將位元攔寫入至相應所得資料元件之最低 有效。P刀—。回應於位元攔插入形式BFI之指令,控制處理電 路心以複製位於第一源資料元件srcl内之最低有效部分之 < -攔且將經複製之位元搁插入於相應所得資料元件内之 選定位置。 如第6圖之上部分所示’若S^R,則位元攔操縱指令為 位元欄提取形式BFX。對位元攔提取形式之指令而言,旋轉 參數R指示第―源資料㈣㈣内之位元攔bf之最低有效 位兀位置,且最高有效位元位置S指示第一源資料元件srcl 35 201235937 内之位7L欄bf之最高有效位元位置。因此,源位元欄開始 位置Α等於旋轉參數R ’所得位元欄開始位置Β為〇,且位 儿欄寬度W=S+1-R。此舉意謂著:回應於位元攔提取形式 BFX之指令,將所得資料元件之位元<S-R:0>設定為等於相 應第一源資料元件srcl之位元<S:R>。 另方面,若S<R,則位元欄操縱指令採用位元欄插入形 式BFI ’如第6圖之下部分所示。在此情況下,則源位元攔 開始位置A等於〇 ’所得位元攔開始位置B=N_R,且位元欄 S + 1因此,在位元櫚插入形式之指令中,將所得 資料元件之位元<N_R+S:N_R>設定為等於第一源資料元件 srcl 之位元 <s:0>。 藉由將源開始位元位置A及所得開始位元位置b中之至 少一個位置限制為等於0,隨後第5圖之編碼變得有效率, 因為僅兩個參數R、s可為三個參數AB、w編碑以識別 待執行之位元攔操縱。❹望更通用的位元攔操縱操作,在 該位兀攔操縱操作中將來自非零的源開始位元位置立 _入至非零的所得位元位置B(如第4圖中 :可藉由執行位元攔提取形式BFX之指令,隨 櫚插入形式BFI之指令,來實施此操作。 第6圖㈣如元贿取形式贿之位 中,將位元欄bf寫入5所锃签叶呢夺日7
罵入至所侍資料元件之最低有效部分,H 因此所得資料元件可包括字 77且 ^ 士 P刀而非字尾部分。對R万ς 一些而吕,亦可能不存在字首部分。相反地 插入形式肌之指令而言,對位痛 位凡攔插入於所得資料元件 36 201235937 2:: 可部分,且因此所得資料值可具有字首部分及 兩者(…之值將控制所得資料元件是包括字首部分及字 尾部分中之零個、一個還a 定疋兩個)。通常,若b+w<n 得資料元件將包括字首部分f ' 目口丨刀C位兀<N-1:B + W>),且若B>〇 則所得資料元件將包括字尾部分(位元<b小〇>)。如上所 述’位元爛操縱指令包括子作業碼攔…pc欄控制處理 電路4產生選定形式之字首值或字尾值。第7圖圖示不同種 類之字首值及字尾值,可針對事欄之不㈣選定該等不同 種類之字首值及字尾值。 當子作業碼攔。pc具有0b〇〇之值時,隨後字首部分p為 位元攔bf之符號擴充,且字尾部分s之位元具有零值。符 號擴充位元具有值,該等值確保在插人所得f料元件内時保 留位元欄bf之符號。通常’字首部分之符號擴充位元各自 等於位元欄bf之最高有效位元之值(亦即,各自等於第一 源資料元件之位元則。然而,字首部分p内之符號擴充 位元之確切性質將視用於位元攔bf之特定符號表示法而 定。藉由將子作業碼搁設定為_,位元欄操縱指令可用 於自第-源資料元件提取包含帶符號資料值之位元攔,且可 用於將該值複製至所得資料元件之一部分同時保留位元攔 之符號。 當子作業碼攔具# 0b(H之值冑,則所得資料元件之字首 部分及字尾部分採用第二源資料元件⑽之相應位元之 值。因此’該形式之指令具有以下效應:將來自第一源資料 元件…位元攔bf插入第二源資料元件㈣内之位置 37 201235937 中’同時使第二源資料元件src2之其他位元無變化。在第2 圖中所圖示之實例中,第二源資料元件src2為在執行位元 棚操縱指令之前儲存於目標暫存器Rd中之值,且因此對 〇PC~01而言,該指令將第一源資料元件src 1之位元攔有效 地插入目標暫存器Rd之給定位置中,同時使其他位元無 化。 ' 右子作業碼欄具有Obio之值,則字首部分及字尾部分之 位元各自具有零值。因此,對此種指令而言,由所得資料元 件中之零來隔離且環繞第一源資料元件src丨之位元欄。 在第7圖之實例中,子作業碼攔opc之〇bll值為未定義 的,但應瞭解,其他功能性可能與〇b丨丨值相關聯。 如上所述,controll3欄指示用於控制資料元件在所得責 才:值内之排序之反轉資訊V。第从圖示意性圓示根據反轉 資訊V將資料元件重新排序之實例。所得資料值等效於在 令間所得資料值經受m新排序疊代之情況下將產生 的值,使用如上所述之位元攔操縱產生該中間所得資料值且 該令間所得資料值包括按對庫 』, 料“, 野應於第一源貧料值及第二源資 枓值内之相應資料元件之次序排序的資料元件, 訊V控制該等重新排序疊代。每—個重新排序養代… 粒度之特定組大小相關聯且亦與反轉資訊 立_曰了 關聯’按該粒度在資料值内將位元 排序疊代包含以下步驟:決定反轉之序母^ 具有預定值’且若相應位元具有預定值,則在二=否 將相應组大小之相鄰對之位 貝料值内 之 讀的位置交換。以如下所述 38 201235937 實例中,可將「1」值用作反轉資訊v之預定值,但亦可改 為使用「0 J值。 第8A圖圖示-系列重新排序疊代之實例,該等重新排序 疊代可應用於中間結果以產生所得f料值。在重新排序疊代 〇中,若反轉資訊v<5:0>之位元v<〇>具有1值,則將中間 結果之數對相鄰位元之位置交換。亦即,中間結果之位元<〇> 與位元<丨>交換,且類似地,位元<3>與位元<2>交換,位元 <5>與位兀<4>交換等。另一方面,若位元v<〇>具有〇值, 則不執行交換。 以類似方式,對第8A圖中所圖示之重新排序疊代i而 言,若反轉資訊v之相應位元v<1>具有…則將前一疊 代結果内之相鄰2位元組之位置交換。因此,位元<1:0>與 4 70 3.2>父換’位與位元交換等。相反,若 V<l> = 〇’則前—疊代結果之位元保持不變。 類似地’對每_個連續的重新排序疊代而言,若反轉資訊 之㈣位疋具有1值,則將相鄰對之位元組的位置交換,
其中每一個重新排序疊代 I _ 立代之、、且大小呈2之幕數增大。可將第 1中若反所j;之運算概括(例如)為-系列重新排序疊代, 排= 相應位…具有1值,則第i個重新 排序疊代將數對相鄰2i ㈣具有〇值,則…:奐’而若相應位元 反轉資訊V之位元來:位元組之位置。儘管使用 換位元組之位置較方便“示第1個重新排序疊代是否應交 重新排序疊代間之=的:Γ使用反轉資訊位元與 同的對應性。重新排序疊代之總數視存 39 201235937 在多少資料元件而定。例如,在32位元資料值之情況下, 將不會執行第8A圖中所圖示之疊代5,因為將僅存在單個 32位元組,且因此將不可能交換—對32位元組。 第8A圖圖*可將具有位元數目卜2、4等之位元組之位 置交換的實例。在—些實例中’可為位元攔操縱指令編碼, 以使僅對應於資料元件大小之倍數的位Μ可進行位置交 換。在第8Β圖中圖示了此種實例。 第8Β圖圖示64位元資料值包含八個8位元資料元件a 至Η之實例。在第5圖中所圖示之實例中,為⑶价。⑴爛 編碼,以便將零值置放於對應於重新排序疊代之反轉資訊 V<5 ·〇>之任何位元中,該重新排序疊代用於交換小於資料元 件大:、Ν之位凡組。因此,c〇ntr〇U3攔僅指示反轉資訊ν ,位:值’該等值指示等於或大於資料元件大"、N之位元 換。例如’對如第8B圖中所圖示之8位元之資料元 件=而言,隨後將反轉資訊之位以<2:()>設定為〇,以指 不不應如第8A圖Φ胼-虹, 之重新m 不 用於交換卜2及4位元組 疊代0、1及2。將反轉資訊v之 於contr〇U3掘肉、 忸兀<5.3>編碼 « 以扣示是否應執行重新排序疊代3、4 父換相鄰8、16及32位元組之位置。 第8B圖圖+ & ,, μ "'源資料值Srcl及第二源資料值src2最 初如何包括資料 只τ寸值src2敢 由字母戶至11,該等資料元件八至^具有如 重新排序,則將位::,特定儲存次序。若不執行資料元件 生所得資料值,在: 令應用於源資料值之步驟將產 Μ所得資料值中按對應於源資料值内之資 40 201235937 料兀件之次序的次序A、B、c、 、Η將所得資料元件排 序(參見圖不於弟8Β圖中之中間结果)。 然而,在反轉資訊V之控制下,當產生最終所得資料值 時,指令解碼器6可控制處理電路4應用資料元件重新排 序。由於反轉資訊V之位元<2:〇>具有〇值,所以可執行之 第一重新排序疊代與位元ν<3>相關聯。第8β圖圖示:若 位το V<3>具有1值,則將相冑8位元組(亦即,相鄰資料 元件)之位置交換,而同時中間值無變化。隨後,若位元 V<4>具有1值’則另一個重新排序疊代將相鄰16位元組(亦 即’兩個資料元件之相鄰組)之位置交換。若位元乂〈5>具 有1值,則另一個重新排序疊代將相鄰32位元組(亦即, 四個資料元件之相鄰組)交換。藉由根據反轉資訊v之位 兀選擇性交換或不交換經不同大小調整的位元組,可將不同 次序之資料元件提供於所得資料值内。例如,位於第8b圖 之底部之表展示不同的資料元件排序,該等資料元件排序係 產生於針對重新排序資訊v<5:3>之不同值的圖示於第肋圖 I之重新排序疊代。因此’可見,藉由應用連續的重新排序 疊代,每-個疊代將相鄰對之經不同大小調整的位元組之位 置交換’隨後可在結果值内產生—系列f料元件排序。 對資料處理電路“言’實際上不必使用位元棚 二縱操作產生中間結果,隨後亦不必將該系列重新排序疊代 應用於中間結果以產生所得資料值。資料處理電路4可經配 置為:為資料元件重新排序的同時應用位元攔操縱,以使產 生所仔資料值(其中源資料元件之位元攔包括於每—個所得 41 201235937 資料元件内),且以對應於反轉資訊v之次序將所得資料元 件排序,而從未產生過任何中間結果。所得資料值可能僅為 等效於在將重新排序疊代應用於此種中間結果之情況下會 獲得的結果之值。 第9圖圖示處理位元攔操縱指令之實例,如第2圖之實例 中將該位元攔操縱指令編碼。應注意,儘管第9圖圖示了展 示一系列方法步驟之流程圖,但實際上,用於實施指令之硬 體可彼此並行執行該等步驟中之若干個步驟或該硬體可執 行產生類似結果之其他步驟(對圖示於本申請案中之其他流 程圖而言同樣如此)。 在步驟50中,指令解碼器6檢查子作業碼欄〇pc 若子作業碼欄opc具有0b00之值,則方法行進至步驟52 在步驟52中將所得資料值初始化為零值。隨後,在步驟5 中’將布爾(Boolean)延伸量設定為了刪值(指示當應用仿 元搁操縱時將字首值設定為經提取之位it攔之符號擴充 另-方面’若在步驟50中’將子作業碼欄。pc決定為屋 f OMU值,則在㈣56中,將所得資料值初始化為第二源 資料值src2之值(以使每一個所得資料元件將具有字首部 分及/或字尾部分,該字首部分及/或該字尾部分具有對應於 第-源資料值Src2之相應資料元件之彼等位元值之位元 值):隨後,在步驟58中,將布爾延伸量設定為F職值 才曰不當產生字首部分時將不執行符號擴充)。 則S’若在步驟5〇中,發現子作業賴。PC具有。bl〇值, 步驟6G中將結果值設定為零值,且在步驟62中將布爾 42 201235937 延伸值設定為FALSE值。因此,當產生每_個所得資料元 件時,除插入之位元攔以外 執行位元攔之㈣擴充。7位4具有零值,且將不 不管在步驟5"子作業碼攔。pc之值為如 行進至步驟Μ ,在步驟64中執行函; TRIDECODE(contr〇113)以將位元攔操縱指令之控制 C〇ntr〇113解碼,以識別旋轉參數R、最高有效位 反轉資訊V及資料元件大小^下文將就帛 述 TRIDECODE 函數。 述 在步驟64中朗R、S、V及N之值後,隨後在步驟66 中,決定最高有效位元位置S是否大於或等於旋轉參數汉。 若s大於或等於R’則在步驟68中將源位元欄位置值八执 定為等於R’將所得位元攔位置值8設^為g且將位^ 度W設定為等於S + 1_R (亦即,位元搁操縱為位元搁提^ 形式猶另-方面,若在步驟66中已決定8小於 指令具有位元欄插入形式BFI,且因此在步驟7〇中 】 位;^攔位置值A設定為〇,將所得位元攔位置值b設定為 N-R,且將位元攔寬度w設定為§ +1。 在步驟72中,不管指令是具有位元搁插入形式b 具有位元欄提取形< BFX,隨後處理電路4產生所得= 值,在該所得資料值中每—個資料元件呈有位 <B導1:B>,該等位等於相應第—源資料^ srcl之位7〇<A+W-1:A>e此步驟^呆:將第一源資料元件 目標位元攔複製到所得資料元件内之所要位置。所得資料之 43 201235937 件之剩餘位元繼續具有如在步驟52、步驟56及步驟6〇中 之一個步驟中所初始化之值。 隨後在步驟74中,決定布爾延伸量是否為true且 B + W<N。若延伸量為TRUE且B + W<N,則此舉指示:在所 得資料元件内存在字首部分cN—丨 :B + W>且子作業碼欄〇pc 指示將符號擴充應用於位元攔。在此情況下,在步驟76中, 處理電路4將每一個所得資料元件之位元<N_1:B + w>設定 為自源資料元件srcl複製的位元欄内之符號位元之值(亦 即,將第一源資料元件之位元<s>複製於所得資料元件内之 字首部分之每一個位元處)。此舉具有以下效應:將自第一 源資料元件srcl所提取之位元攔之符號保留。另一方面, 若在步驟74中’布爾延伸量為FALSE,則省略步驟76,且 因此所得資料元件之字首部分將保留該字首部分之前一值 (如在步驟60中所設定之零值或如在步驟%中所設定之第 源貝料7L件src2之前一值)。若B + W=N,則亦省略步驟 76,因為在此情況下將不存在字首部分。 、在步驟78中’例如如上文結合第8A圖及第8B圖所描述 的基於自位兀欄操縱指令之controll3攔所識別之反轉資 戒V ’應用所得資料值内之所得f料元件之重新排序。應注 意’在-些硬體實施方案中,可與步驟72中產生所得資料 元件並行執行此步驟。 =因此’在位7L欄操縱指令之控制下,產生所得資料值在 得資料值中,每―個所得資料元件包括取自相應第—源 ;斗元件srcl内之所要位置<A + W_1:A>之位元攔;在該所 44 201235937 得資料值中,在需要時將字首部分及字尾部分設定為零值、 符號擴充值或第二源資料元件src2之值,該字首部分及該 字尾部分將位元攔限定於所得資料元件之内;並且在該所得 資料值中’亦視需要執行結果内之所得資料元件之重新排 序°因此,位元欄操縱指令提供共同編碼内之大範圍之位元 攔操縱。 此外’藉由將參數S及參數R設定為合適的值以使位元 欄對應於整個第一源資料元件src 1,位元攔操縱指令亦可用 作資料元件重新排序指令。在此情況下,所得資料元件與相 應第一源資料元件相同,但是根據反轉資訊V在所得資料 值内將該等所得資料元件重新排序。 第10圖圖示如第9圖之步驟64所示(並且,如將在下文 第15圖之步驟16〇中所述),使用tridec〇de函數將 controlU攔解碼之實例。可藉由指令解碼器6、處理電路4、 或指令解碼器6與處理電路4之組合’執行e_Qii3棚之 解碼。如下文將描述的,c〇ntr〇U3欄可用於不同種類之指 令。結合第H)圖所提及之「資料大小」對應於參看第2圖 至第9圖所描述之位元欄操縱指令之資料元件大小n,且對 應於參看第U圖至第15圖所描述之按位元邏輯指令之模式 重複大小N。 在第10圖之步驟10〇中,將表 今/數V<5:0>初始化為
ObOOOOOO之全零值。此舉確保:未 不左編碼於control 13欄内 之反轉資訊V之任何值將採用零值, 且因此將確保:將不 會執行相應重新排序疊代。 45 201235937 在步驟102中’藉由將c〇ntroll3欄之位元<12>與 controll3攔之位元<5··〇>之反序串接,來決定臨時值 temp<6:0> ’且將長度參數ien決定為temp<6:0>内具有「1」 值之最高(最高有效)位元之位元位置。tenip<6:0>值表示 contro丨1 3欄中之一部分之位元值,第一部分3〇可駐留於該 部分。若資料大小為64位元,則具有「1」值之最高有效位 元將為temp<6:0>之位元<6>,且因此len=6。對其他資料大 小而言,temp<6:0>内之最高的r }」位元將對應於contr〇U3 攔之位元<5:0>内之最高的「〇」之位置,且因此對n=32' 16、8、4、2、1 而言 ien 分別為 5、4、3、2、1、〇(參見 第5圖及第12圖)。因此,長度參數ien為第一部分3〇之 大小之指示,該長度參數丨611允許在第1〇圖之步驟1〇4至 步驟114中決定資料大小N以及參數R、參數s及參數v 之編碼格式。將瞭解,對臨時值temp而言在c〇ntr〇U3攔之 解碼期間產生並非絕對必要的,且在一些實施例中,單個操 作可自controlU攔之值直接決定參數len。 在第ίο圖之步驟104中,藉由將0bl值向左移動len位 元位置’來決定資料大小N。例如,若len=2,貝q將〇Μ值 向左移動2會產生〇bl〇〇值’亦即,四個位元之資料大小 因此’資料大小N等於2丨^以此方式,c〇ntr〇U3欄之第一 P刀30之大j可與如第5圖及第12圖中所示之相應資料大 小N相關。 在第1〇圖之步驟106中’決定長度參數len是否等於 若^〇,則在步驟1〇8巾,將旋轉參數汉及最高有效位元 46 201235937 位置S 6又疋為0。此舉對應於1位元之資料元件大小,因此 僅存在一個可能之位元欄操縱,該可能之位元欄操縱可應用 於:將每一個第一源資料元件srcl之單個位元複製至相應 所得資料元件src2之單個位元,且因此對N= i而言,不需 要任何旋轉參數R及最高有效位元位置參數s(應注意在 此情況下C〇ntr〇113攔之編碼使用用於指示R、s之位元來 改為指示反轉資訊V及第一部分30)。 若在步驟106中長度參數ien不等於零’則在步驟11〇中, 將旋轉參數R設定為無符號整數(該無符號整數具有 ccrntroll 3攔之位元<len + 5 ^之值),而將最高有效位元位置 s設定為無符號整數(該無符號整數具有c〇ntr〇n3攔之位 元<ien-i:〇>之值)。此舉對應於如第5圖及第12圖中所示之 controll3攔之編碼。 在步驟112中,決定長度參數是否小於卜若如此,則在 步驟114中,將反轉資訊v之位元<5:Un>設定為等於 ⑶ntrolU欄之位元<11:len+6>。反轉資訊之位元 保留如在第10圖之步驟100中所初始化的該等位元 <len-l:〇>之零值。此外,此舉對應於如第$圖中所示之 controll3欄之編碼。 另一方面,若在步驟112中len=6,則資料大小為Μ位元, 對第5圖之實例而言64位元為最大資料元件大小,從而對 應於整個64位元資料值之大小。若 料元件之任何重新排序,因為僅存在 len=6 ’則不可能存在資 資料值内之單個資料元 件之一種排序方式。因此,若len=6 則省略第10圖之步驟 47 201235937 ,從而使重新排序資訊v 定之〇。 只寸"、如在步驟100中所設 最後,在步驟116中,將參數 N ^ ^ ^ >双κ翏數S、參數V及參數 之指令時❹。 錢理3有⑶此。U3欄 如第5圖中所示之c〇ntr〇U3 ⑧ <、扁碼了用於其他類型之 ^以及位元攔操縱指令。咖_攔之㈣適用於任何 種類之指令’該種指令規定一組資料大小中之選定的一個資 料大小及至少-個控制參數,駐少_個控制參數之位元數 目㈣敎資料大小而變化。位元襴操縱指令為SIMD指令 之實例。類似地,controll3編碼可用於另_個指令,該指 令規定資料元件大小及至少一個盆 八他茶數,該至少一個其他 參數之位元數目根據資料元件大小而變化。 第11圖圖示按位元邏輯指令L0GIC,該按位元邏輯指令 L〇GIC為使用eGntrGll3編碼之指令之另—個實例。將按位 元邏輯指令之c〇ntroll3欄如第12圖中所示編碼。第5圖與 第12圖之比較顯示:對按位元邏輯指令l〇gic而言以與對 位元攔操縱指令BF而言相同的方式識別參數R及參數s, 並且對按位元邏輯指令而言以與帛5圖中對位元攔操縱指 令而言識別資料元件大+ N之方式相同的方式識別模式重 複大小N。按位元邏輯指令不等效於反轉資訊v,且因此在 按位元邏輯指令L〇GIC之c〇ntr〇U3攔之編碼中,不使用 contr〇113欄的表示位元欄操縱指令BF之反轉資訊v之位 元。將瞭解,在其他實施例中,在第12圖中圖示為χ之未 48 201235937 使用之位元可指示另一個參數。 第η圖及第14圖圖示按位元邏輯指令LOGIC之功能。 指令識別源暫存器Rn,該源暫存器Rn儲存第一源資料值 srcl。按位元邏輯指令之子作業碼攔〇pc指示待應用於第一 源資料值SrCl及掩碼資料值之邏輯運算之類型。例如,邏 輯運算可為AND運算、0R運算及互斥〇R(x〇R)運算中之 一種運算’如第14圖中所示。 精田座生控制 V V W 乂恐3¾¾平斗子日^·,言哀筹 控制訊號用於控制處理電路4藉由使用選定邏輯運算將源 資料值㈣與掩碼資料值(掩碼)、组合來產生結果值。掏 碼貝料值為使用選定資料大小N以及參數R及參數$所決 定之值,如自邏輯指令之c〇ntr〇U3攔識別該選定資料大小 N以及該參數r及該參數s。 掩碼資料值包含重複模式之位元。重複模式之重複單位為 選定資料大小N,由⑶价。113參數識別該選定資料大小N。 每—個重複模式由N個位元組成’在該等N個位元中S + 1 個位元具有4」值而其他位元具有、值。重複模式等效 於在(S + 1)位元位於該模式(其中較高有效位元具有「〇」值) 之最低有效端’隨後該模式向右旋轉R位元位 : :得到:值,該等㈣位元各自具有-個〗值。將二, 其他貫施例中,旋轉參數R可指 之量。如第U圖“ 左旋轉(而非右旋轉) ‘第® $所示,使重複模式貫穿掩碼資料值 M/N次(其中M為由⑽及掩碼資料值 目)。因此’編碼於―欄…值、R值及;= 49 201235937 以供使用邏輯運算將該等掩碼與源 能產生各種不同的掩碼, 資料值src 1組合。 如第圖中所示,使用按位元娜運算、⑽運瞀或互 斥叫舰)運算中之—種運算將掩碼值與源請值;^且 合。邏輯運算可用於(例如)測試、設定、清除或顛倒資料 值之特定部分之位元值,或可用於隔離資料值之特定部分。 應注意,實際上不必藉由處理電路4產生掩瑪資料值,但事 實上,處理電路4可能僅產生具有某種形式之最終結果該 最終結果等效於使用邏輯運算將掩碼與源資料值Μ。組合 之結果。 ° 第15圖圖示處理圖示於第u圖至第Μ圖中之形式之按 位元邏輯指令的方法。在步驟15〇中,決定子作業碼攔〇㈧ 之值。若子作業碼欄具有0b00之值,則在步驟152中將邏 輯運算決定為AND運算。若子作業碼攔〇pc具有〇b〇1之 值,則在步驟154中將邏輯運算決定為〇R運算。若子作業 喝攔opc具有〇b 10之值,則在步驟150中將邏輯運算決定 為互斥OR (XOR)運算。在該實例中,保留〇bl〗之〇pc值, 但在另一個實施例中,可將〇b丨1之〇pc值指派至不同形式 之邏輯運算。 不管子作業碼欄〇pC之值為如何,隨後在步驟丨6〇中,使 用如結合第10圖所描述之TRIDECODE函數自C〇ntroll3攔 决定參數R、參數S、參數V及參數N。在此情況下,N表 不待應用於源資料值之掩碼内之重複模式大小。S + 1指示掩 石馬值内之「1」位元之數目。r指示掩碼值内之「丨」位元之 50 201235937 位置。對邏輯指令而言’用於位元欄操縱指令之反轉資訊v 並非為所關注的,且因此當計算邏輯運算之結果時可忽略由 TRIDECODE函數所傳回之v值。 在步驟162中,決定位元之重複模式。將重複模式初始化 ^位元<N-1:〇>,包括具有「〇」值之位元<ni:s + i>及具有 「】」值之位元<8:0>。在步驟164中,將位元之重複模式旋 轉位元位置(可在需要時向右旋轉或向左旋轉,但在第 13圖之實施例中向右旋轉)。 在步驟166中,藉由貫穿掩碼將位元之旋轉重複模式複製 M/N -人’來形成掩碼資料值其中μ為用於該特定處理操 作之資料值大小。例如’可基於按位元邏輯指令之d攔識 別之暫存盗存取大小決定M。隨後在步驟i 68中所得資料 值作為使用邏輯運算將第—源資料值㈣丨與掩碼資料值組 合之結果而產生’在步驟152、步驟154、步驟156中之一 個步驟中選定該邏輯運算。 此外,第1 5圖之步驟僅為實例且該等步驟可彼此並行(而 非串行)執行。同樣,實際上可能不會藉由處理電路4產生 在步驟166中所描述之掩碼值,但事實上,在步驟中處 理電路4可錢自源資料值咖】及按位元邏輯指令之 controll3攔產生所得資料值。 因此不同指7可使用相同格式之control 1 3攔,以指示 用於控制相關聯之處理操作之參數。藉由(如帛5圖及第 12圖之實例巾所不)使用共同編碼來指示不同種類之指令 之參數m用力解碼及處理該等指I之硬體中之一些硬 51 201235937 體,且因此可降低處理電路4及指 _ 7解碼盗6之複雜性。 下文指示了用於指示對應於位 ^ ^ ^ 爛麵縱指令及按位元邏 輯指令之刼作的實例虛擬碼。圖示於 處擬碼中之操作僅為實 例,且對處理裝置2之硬體而 、 个乂包括用於實際執行該等 步驟之元件。實際上,圖示於虛擬碼中之步驟中…步驟 可彼此並行執行,而非作為1列連續步驟執行。然而,虛 擬碼將Μ由熟習此項技術者用於產生詩產生所得資料 值之硬體實施例,該所得資料值等效於指示於虛擬碼中之處 理步驟之結果。在虛擬碼中,參數「 爹数自」、「至」、「寬度」及 大小」分別對應於如上所述之參數Α、參數β、參數%及 參數…參數「資料大小」指示如上所述线資料值及所得 資料值之大小Μ。術語「R[n]j及「R[d]」分別表示源暫存 器Μ及目標暫存器Rd。在虛擬碼中,單引號内之一系歹" 及〇(諸如,「110」)表示二進數記法之一串連續的位元。 函數編將-串位元轉換成為該等位元所表示之無符號整 數,所以UInt( 「110」)傳回值6。 虛擬碼之第一部分指示用於為c〇ntr〇U3搁解碼之 TR1DECODE函數之實例。虛擬碼對應於第1〇圖之操作。 應注意,TRIDECODE函數隨後用於處理位元攔操縱指令及 按位元邏輯指令兩者。 //解碼位元攔直接controll3以提供參數R、參數s、參數 V及SIZE控制參數 (integer, integer, bits(6), integer) TRIDECODE(bits( 13) control 13) 52 201235937 integer R; integer S; integer len; bits(6) V=Zeros(); len=HighestSetBit(control 1 3< 12>:NOT(controll3<5:0;>))» if len<0 then UNDEFINED; if len==0 then R=0; S = 0; else R=UInt(control 1 3<len+5 :6>); S=UInt(controll3<len-l:0>); if len<6 then V<5 :len>=control 13<11 :len+6>; return (R, S, V, l<<len); 虛擬碼中之下一部分對應於位元攔操縱指令之解碼及執 行: //位元欄解碼 integer n=UInt(Rn); integer d=UInt(Rd); integer datasize = if sf=='l' then 64 else 32; boolean inzero; boolean extend; 53 201235937 integer R; integer S; bits(6) V; integer size; integer from; integer to; integer width; case opc of extend=trUe; //如第7圖中之 extend=false; //如笛 7 的丄 不’圖中之 extend=falSe; //如第 7 圖中之 when '00' inzero=true;
SBFX/SBFIZ when '01' inzero=false;
BFXIL/BFI
when '10' inzero=true; UBFX/UBFIZ when '11' UNDEFINED; if datasize==32 then //對32位元資料值而言,不可能存在64位元資料元件大 小, //所以controll3攔之位元<12>不可能為1。 if controll3<12>=='r then UNDEFINED; //同樣’對32位元資料值而言,不可能存在32位元組之 重新排序, //所以controll3欄之位元<11>亦不可能為i。 54 201235937 elsif control 1 3< 11 >=='1' then UNDEFINED; //使用以上定義之TRIDECODE函數將r值、s值 及大小值解碼 (R, S, V,size) = TRIDECODE(controll3); if S> = R then //BFX情況 from=R; to = 0; width=(S+ 1 )-R; else //BFI情況 from=0; to=size-R; width=(S+ 1); //位元欄執行 bits(datasize) operand 1 =R[n]; bits(datasize) result; integer base; integer src; integer dst; integer vbit; 為假則 //若inzero為真則將結果初始化為 巧名,或若inzero 將結果初始化為目標暫存器之複本 55 201235937 result=if inzero then Zeros() else R[d]; //將來自src運算元之每一個資料元件之位元欄複製至結 果之相應資料元件 base=0; while base<datasize do src=base + fr〇m; dst=base+to; result<dst+width - l:dst>=operandl<src + width-l:src>; //若請求,則執行符號位元複製 if extend && to+width<size then result<base + size -1 :dst+width> =
Replicate(src<base+S>, size-(to+width)); base=base+size; //若V<vbit>= 1,則使結果中之相鄰對之2Avbit位元反轉 for vbit=0 to 5 if V<vbit>=='l' then bits(datasize) tmp=result; size= 1 <<vbit; 0 base=0; ' while base<datasize do result<base+size-l :base>=tmp<base + (2* size) - l:base + size result<base + (2* size) -l:base + size>=tmp<base + size-l:base >; 56 201235937 base=base + (2*size); //將結果寫入至目標暫存器 R[d]=result; 虛擬碼中之下一部分指示用於解碼且處理按位元邏輯指 令之函數: //邏輯(直接)解碼 integer R; integer S; integer size; bits(datasize) mask; integer datasize = if sf==‘l,then 64 else 32; integer n=UInt(Rn); integer d=UInt(Rd);
LogicalOp opcode; //opc定義待應用之邏輯運算之類型 case opc of when '00' opcode=LogicalOp_AND; • when '01' opcode=LogicalOp_〇R; t when '10' opcode=LogicalOp_EOR; otherwise UNDEFINED; //對32位元資料值而言’不可能存在64位元模式重複大 小 if datasize==32&&controll3<12> = =,i· then UNDEFINED. //使用上述TRIDECODE函數將r、s及大小解碼,且 57 201235937 //忽略v之傳回值 (R,S,-,size)=TRIDECODE(controll3); //基於R、S及大小決定掩碼 bits(size) pattern=Zeros(size-(S +1 )):Ones(S+l); pa.ttern=ROR(pattern, R); mask=Replicate(pattern, datasize DIV size); //邏輯(直接)執行 bits(datasize) operand 1 =R[n]; bits(datasize) operand2=mask; bits(datasize) result; //藉由使用選定邏輯運算將源運算元與掩碼運算元組 合,來產生結果 case opcode of when LogicalOp_AND result=operand 1 AND operand2; when LogicalOp_〇R resul = operand 1 OR 〇perand2; when LogicalOp一EOR result=operandl EOR operand2;. //將結果寫入至目標暫存器 R[d]=result; 虛擬碼之下一部分指示可使用contr〇l丨3編碼之另一種指 令之實例。提取指令產生包含若干所得資料元件之資料值, 每一個所得資料元件對應於藉由將第一源運算元(〇perandl) 之相應第一源資料元件與第二源運算元(〇perand2)之相應 第二源資料元件串接所形成的值中之一選定部分。在該實例 中,C〇ntr〇113值定義資料元件大小及「lsb」值,該「lsbj 58 201235937 值指示串接之第一源資料元件及第二源資料元件中之哪一 部分包括於所得資料元件中。資料元件大小及Γ lsb」值對 應於自TRIDECODE函數傳回之n值及S值,而忽略由 TRIDECODE函數傳回之V值及R值。 //提取解碼 integer datasize = if sf=='i' then 64 else 32; integer n=UInt(Rn); integer m=UInt(Rm); integer d=UInt(Rd); integer lsb; integer size; bits( 1 3) control 1 3 ; if datasize = = 32&&N=='l,then UNDEFINED; control 1 3=N:Zeros(6):imm6; (-,lsb,-, size) = TRIDECODE(controll 3); //提取執行 bits(datasize) operand 1 =R[n]; • bits(datasize) operand2=R[m]; * bits(datasize) result; bits(2*size) concat; integer bbit=0; while bbi<datasize integer ebit=bbit+size-1; concat=operand 1 <ebit:bbit>: operand2<ebit:bbit>; 59 201235937 result<ebit:bbit>=c〇ncat<lsb + size.1:lsb>; bbit=bbit+size; R[d]=result; 第16圖圖不可使用之虛擬機實施方案。雖然就用於操作 支援有關技術之特定處理硬體的裝置及方法而言以上所述 之實施例實施本發明’但亦有可能提供所謂的硬體器件之虛 擬機實把方案。該等虛擬機實施方案在主機處理器上執 行’該主機處理器_執行主機作業系統22g,該主機作業 系統220支援虛擬機程式24〇。通常提供以合理速度執行 之虛擬機實施方案需要大功效處理器,但在某些環境中(諸 如’當出於相容性或再使用之原因希望執行由另—個處理器 原生之碼時此種方法可能為合理的。虛擬機程式謂提 ,至應用程式260之應用程式介面,該應用程式介面與由真 :硬體所提供之應用程式介面相同,該真實硬體為由虛擬機 %式240模型化之器件。因此,可使用虛擬機程式2切在應 用程式260内執行程式指令(包括記憶體存取之控制),以 模型化與虛擬機硬體之互動。 【圖式簡單說明】 第1圖示意性圖示資料處理裝置; 儘管本文已參閱附圖詳細描寫了本發明之說明性實施 例’但應理解’本發明並不限於彼等精確的實施例,而且在 不脫離由所附申請專利範圍定義之本發明之範_及精神的 情况下’熟習此項技術者可對本發明進行各種改變及修改。 60 201235937 第2圖圖示位元攔操縱指令之實例編碼; 第3圖圖示位元欄操縱操作之實例; 第4圖圖示藉由應用位元欄操縱自源資料元件產生所Γ 資料元件之實例; t 第5圖圖示位元欄操縱指令内之控制搁之實例編碼; 第ό圖圖示位元欄插入形式之位元搁操縱指令及位元棚 提取形式之位元攔操縱指令的實例; 第7圖圖示根據位元棚操縱指令内之控制值選擇所得資 料元件之不同的字首部分及字尾部分之實例; 第8Α圖圖示根據控制值内經編碼之重新排序資訊將所得 資料值内之資料元件重新排序的實例; 第8Β圖圖示將資料元件重新排序之第二實例; 第9圖圖示處理位元攔操縱指令之方法. 第10圖圖示為控制攔解碼以獲得控制參數值之方法; 第11圖圖示按位元邏輯指令之實例編石馬,該按位元邏輯 指令與位元欄操縱指令共用共同控制搁編碼; 第12圖圖示按位元邏輯指令之控制欄之實例編碼; 第13圖圖示掩碼值之實例,使用邏輯運算將該掩碼Μ 源資料值組合; ' 第14圖圖示不同種類之邏輯運算,可在按位元邏輯指令 之控制下執行該等邏輯運算; 第15圖圖示處理按位元邏輯指令之實例方法;以及 第16圖圖示虛擬機實施方案之實例。 【主要元件符號說明】 61 201235937 2 資料處理裝置 24004826048
26040404800 00115566626 f ΙΑ IX 11 1A 1A i«x 1x 1A 1A 統置 系 位 庫分 業式元 器器器部 作程位欄 存法法一驟驟驟驟驟驟驟驟驟驟驟驟驟驟驟驟驟機用得元 暫加乘第步步步步步步步步步步步步步步步步步主應所位 N 資料元件大小 P 字首值 Rn 暫存器 sf 暫存器存取大小欄 src2 第二源資料值
4 6 10 13 16 32 52 56 60 64 68 72 76 100 104 108 112 116 152 156 162 166 200 240 A BF Μ opc Rd s src 1 W 統 系器統 路碼系 電解體 理令憶 處指記 移相器 第二部分 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 步驟 主機處理器 虛擬機程式 源位元位置 位元欄操縱指令 資料值大小/位元數 g 子作業碼欄 目標暫存器 字尾值 第一源資料值 位元欄寬度 62

Claims (1)

  1. 201235937 七、申凊專利範圍: 一種資料處理裝4, 處理带踗条站 科處理裝置包合. 處“路系統,該處理電路系统二. 私令解碼器,該指令解碼器回應為執行處理操作; 該處理電路系統執口應於程式指令以產生用於控制 該等程式指令包括一 作之控制訊號;其中·· 至少識別一第襴操縱私令,該位元攔操縱指令 弟一源資料值、一 值,該第-源資料值包含m —源#料值及一控制 至少—個第—源 7個第—源資料元件,該 钭7^件各自具有 第二源資料值包含至少 7" N_1:〇>,該 個第二源資料元件各自星有N:原資料元件,該至少- 丁分目具有^^位元<N · 該控制值包括用於指示 ., 及一戶斤m ㈣度w、一源位元位置A 所仔位7L位置b之資吨,| 士 一w且。™ …咖、 該器回應於該位元搁操縱指令以產生用於控制該 系統產生—所得資料值之控制訊號,該所得資 ’值包含至少一個所得資料元件,每—個所得資料元件 -於個相應第-源資料元件及一個相應第二源資料 元件,每一個所得資料元件具有N位元<N1:0>,該所 得資料元件包含: ⑷位元<B + W_1:B>’該等位元<b + w_1:b>具有對應於該 相應第一源資料元件之位元<A+w_丨:A>之位元值;以 及 (b)若B + W<N ’則包含位元<N-i:B + w>,該等位元 63 201235937 <^-1:;6 + \¥>具有對應於一字首值之位元值,根據該控 制值選擇該字首值,該字首值為以下中之一者:⑴ 一第一字首值,該第一字首值包含各自具有一個零值 之位元’(ii)一第二字首值,該第二字首值具有該相 應第二源資料元件之位元<N-1 :B + W>之該等位元 值,以及(iii)一第三字首值,該第三字首值具有對應 於該相應第一源資料元件之位元<A+W-1:A>之一符 號擴充的位元值。 2. 如請求項1所述之資料處理裝置,其中該第三字首值包含各 自具有該相應第一源資料元件之位元<A+W_丨 > 之該位元值 的位元。 3. 如請求項1所述之資料處理裝置,其中若B>0,則每一個所 得資料元件進-步包含位元<B1 :〇>,該等位元具有 對應於-字尾值之位元值’根據該控制值選擇該字尾值,該 字尾值為以下中之—者:⑴—第一字尾值,該第—字尾值包 3,自、冑個零值之位元’以及⑴)—第二字尾值,該第 毛值_有B亥相應第二源資料元件之位元1 :〇>之該等 位元值。 4.f請求項1所述之f料處理裝置,該資料處理裝置包含複數 =存位置’該複數個儲存位置經配置為儲存以供該處理電 路系統處理之資料值;
    64 201235937 其令該位元攔操縱指人 7至:>、識別一第_浪姑产 儲存位置,該第— 原儲存位置及一目標 /原儲存位置用於儲在 _ 且 省存該第—源資料值;並 該指令解碼器回應於 〜;該位元攔操縱指令 理電路系統將該所得資料值儲存於於控制'•玄處 制訊號。 °目心儲存位置中之控 5. 如請求項4所述之資料處理裝置 執扞兮办-柄4〇 ,、T这第一源資料值為在 執灯該位,縱指令之前儲 資料值。 曰知储存位置中之一 6. 如請求項4所述之資料處理裝置, 祚也、牧罝其中該複數個儲存位置可 作為複數個不同儲存位置大小 勺扛m 之储存位置存取’且該控制值 ^括用於識別該第-源儲存位置及該目標儲 存位置大小之資訊。 ^ 7♦如睛求項丨所述之資料處理裝置,其中該至少一 被-丨口乐—源貢 K牛、該至少-個第二源資料元件及該至少一個所得資料 70件具有一資料元件大小Ν’該資料元件大小N選自複數個 不同資料元件大小,且該控制值包括用於識別該資料元 ^之資訊。 有一位元攔插入形式’其中該源位元位置A=〇 如請求項i所述之資料處理裝置,其中該位元攔操縱指令呈 而該所得位 65 201235937 兀位置B>〇 ;以及一位元欄提取形式,其中該源位元位置 A ^ 0而該所得位元位置B = 0。 9. 如請求項8所述之資料處理&置,纟中該控制值規定用於決 定該位元攔寬度W、該源位元位置A及該所得位元位置B 之一最高有效位元位置S及一旋轉參數R; 若S2R,則該源位元位置A=R且該所得位元位置B=〇,該位 元欄寬度W=(S+1)_R且該位元攔操縱指令具有該位元欄提 取形式;以及 若S<R,則該源位元位置A=0且該所得位元位置B=NR,該 位疋攔寬度W=s+1,且該位元欄操縱指令具有該位元棚插 入形式。 10. 如請求項9所述之資料處理裝置,其巾該控難包括一第 一部分及一第二部分,該第一部分及該第二部分各自包含可 變數目之位元;以及 該指令解碼器及該處理電路系統中之至少—者回應於該位元 攔操縱指令,以決定由該㈣值之該第—部分所包含之該位 元數目,且基於由該第-部分所包含之該位元數目決定: ⑷該至少一個第-源資料元件、該至少一個第二源資料元 件及該至少〆個所得資料元件之一資料元件大小N;以 及 (b)該第二部分中之哪些位元指示該最高有效位元位置s及 該旋轉參數R。 66 201235937 11 如請求項i所述之資料處理裝置,其中若該第—源資料值 包含複數個第-源資料元件、該第二源資料值包含複數個第 二源資料元件且該所得資料值包含複數個所得資料元件,則 該控制值包括資料元件排序資訊’該資枓元件排序資訊用於 指示將該複數個所得資料元件佈置於該所得資料值内所使 用的一次序。 12.如請求項U所述之資料處理裝置,其中若該第—源資料值 包含複數個第-源資才斗元件、該第二源、資料*包含複數個第 二源資料元件且該所得資料值包含複數個所得資料元件,則 該所得資料值等效於一第一資料值’該第一資料值藉由以下 獲得: ⑷產生-中間值’該中間值包含料所得資料元件對應於該 第一源資料值中之該等相應第—源資料元件之該次序及該 第二源資料值中之該等相應第二源資料元件之該次序將該 荨所得資料元件排序,以及 ⑻在該中間值内之該等所得資料^件上執行至少—個重新排 序疊代以產生該第一資料值; 每-個重新排序疊代包含以下步驟:決定該資料元件排序資訊 之相應位兀疋否具有一預定值,且若該資料元件排序資訊 之該相應位元具有該駭值’則交換該中間值内之數對位元 組。 67 201235937 13.如請求項丨2所 位元級包人# /之資料處理裝置,其中該中間值内之該等 & I + μ氺一祢貢料元 几件之一資料元件大 干大小Ν之倍數 料元件、該至少一,該等位元數目為該至少一個第一源資 -· 個第二源資料元件及該至少一個所得資料 14.如請求項12所 至少-個重新排序田枓處理裂置’其中該等位元組包含該 數目。 豐代中之不同重新排序疊代之不同位元 15·如°月求項U所述之資料處理裝置,直中: 該控制值包括一第— 1八久6 刀 弟二部分,該第一部分及該第 部刀各自包含可變數目之位元;以及 該指令解碼器及該 欄择敬扣人 &理電路系統中之至少-者回應於該位 欄知縱h令,以決定由 w值之6亥第一部分所包含之該- ’且基於由該第—邮八a 第邛刀所包含之該位元數目決定: 至少一個第—源資料元件、該至少-個第二源資料 件及該至少-個所得資料元件之一資料元件大小N; 及 (b)該第二部分中之哪此 _ 一仅兀日不该貢料几件排序資訊。 16.一種資料處理裝置,該資料處理裝置包含: 處理構件,該處理構件用於執行處理操作; 才日令解碼構件,該指令解碼構件 再仟用於回應於程式指令,產生月 於控制該處理電路系統執行該 丁邊寺處理刼作之控制訊號;表 68 201235937 中: 該等程式指令包括一 該位元欄操縱指令 位元攔操縱指令, 一第一源資料值及一控制 少一個第一源資料元件,該 至少識別一第一源資料值 值,該第一源資料值包含至 至少一個第一源資料元件各自具有N位元<N_1:〇>,該 第二源f料值包含至少—個第二源資料it件,該至少一 個第二源資料元件各自具有N位元<N小·〇>; 該控制值包括用於指 A及一所得位元 不一位元欄位寬度W、一源位元位置 位置B之資訊’其中1客w^N、 該指令解碼構件回應於該位元欄操縱指令以產生用於控制 該處理構件產生-所得資料值之控制訊號,該所得資料 值包3至/個所得資料元件,每一個所得資料元件對 應於一個相應第—源資料元件及-個相應第二源資料元 件,每一個所得資料元件具有N位元<Ν ι :〇>,該所得 資料元件包含: ⑷位元<B +W_1 :B>,該等位元<B +W- i :B>具有對應於該 相應第一源資料元件之位元<A+W_1:A>之位元值;以 及 (b)若B + W<N,則包含位元<N_1:B + W>,該等位元 <N-1 3 + \¥>具有對應於一字首值之位元值,根據該控 制值選擇該字首值,該字首值為以下中之一者:⑴ 一第一字首值,該第一字首值包含各自具有一個零值 之位元,(ii)一第二字首值’該第二字首值具有該相 69 201235937 應第二源資料元件之位元<N-1 :B +W>之該等位元 值’以及(iii)一第二字首值,該第三字首值具有對應 於該相應第一源資料元件之位元<A+1: A>之一符 號擴充的位元值。 17. —種用於一處理裝置執行處理操作之資料處理方法,該方 法包含以下步驟: 回應於一位元欄操縱指令,至少識別—第一源資料值、一第二 源資料值及一控制值,該第一源資料值包含至少一個第一源 資料元件,該至少一個第一源資料元件各自具有N位元 <N-1 ··〇>,該第二源資料值包含至少一個第二源資料元件, 該至少一個第二源資料元件各自具有N位元<N_1:0>,從而 產生用於控制該處理裝置產生一所得資料值之控制訊號,該 所得資料值包含至少一個所得資料元件,每一個所得資料元 件具有N位元<Ν-1:〇>,每一個所得資料元件對應於一個相 應第一源資料元件及一個相應第二源資料元件;其中: 該控制值包括用於指示一位元攔寬度W、一源位元位置A 及一所得位元位置B之資訊,其中! $ N、 0SASN-W且0SBSN-W,且每一個所得資料元件包 含: (a) 位元<B+W-1:B>’該等位元<B + W-1:B>具有對應於該 相應第 一源資料元件之位元<A + W-1:A>之位元值.以 及 (b) 若B + W<N ’則包含位元<N-1:B + W>,該等位元 70 201235937 <>1-13 + \^>具有對應於一字首值之位元值,根據該控 制值選擇該字首值’該字首值為以下中之一者:(i) 一第一字首值,該第一字首值包含各自具有一個零值 之位元,(π)一第二字首值,該第二字首值具有該相 應第二源資料元件之位元<N-1 :b + W>之該等位元 值,以及(iii) 一第三字首值,該第三字首值具有對應 於該相應第一源資料元件之位元<A + w-1 :A>之一符 號擴充的位元值。 18.—種虛擬機,該虛擬機由一電腦程式提供,當由一電腦執 行時,該電腦耘式提供如請求項丨所述之資料處理裝置之一 指令執行環境。 19.一種貢料處理裝置,該資料處〜必且匕π . 處 理電路系統,該處理電路系統經配置為執行處理操作; 指令解碼器,該指令解碼器回應於程式指令以產生用於控制 該處理電路系統執行該等處理操作之控制訊號;其中: 該等程式指令包括至少一個指令,該至少一個指令規定一 該控制值具有-第-部分及-第二部分,該第 於指不選自複數個資料大小之一選定資料大 以第一部分用於指示至少—個控制參數,該至少一 個控制參數之_ h - & 夕 诗货 ①數目根據該選定資料大小而變化, 該第一部分及該第-邱八 第一^刀各自具有可變數目之位元;以 及 201235937 該心令解瑪器回應於該至少一個指令以產生用於控制該處 理電路系統根據該選定資料大小及該至少一個控制參數 來執行一相應處理操作之控制訊號; 其中當處理該至少一個指令時,該指令解碼器及該處理電 路系統中之至少一者經配置為識別由該控制值之該第一 部分所包含之該位元數目,且根據由該第—部分所包含 之該位元數目識別:(a)該選定資料大小,以及(b)該控制 值中之哪些位元形成用於指示該至少一個控制參數之該 第二部分。 2〇·如請求項19所述之資料處理裝置,其中隨著該第二部分之 該位兀數目根據該選定資料大小而減小,該第一部分之該位 元數目根據該選定資料大小而增大。 21·如請求項19所述之資料處理裝置,其中對該複數個資料大 J之至少一子組而言,該第一部分至少包含—第一位元及〉 個剩餘位元,該第-位元具有一第一狀態,該等剩餘位元具 有-第二狀態’其中X為大於〇或等於〇之一 ? 並且 , 該指令解W及該處理電㈣統中之該至卜者經配置為 據該控制值之-預定部分内該第一位元之一位元位置 由該控制值之該第一部分所包含之該位元數目。81 22.如請求項21所述之資料處理裝置,其中該第—部分包含至 72 201235937 ^個額外位元’該至少—個額外位元用於提供用 選定資料大小之其他資訊。 这 3.如叫求項19所述之f料處理裝置,其中該至少—個控制參 數包含複數個控制參數;以及 , 當處理該至少一個指令時,該指令解碼器及該處理電路系統中 之該至乂 -者經配置為:根據由該第—部分所包含之該位元 數目識別該第二部分中之哪些位元指示該複數個控制參數 中之每一個控制參數。 Μ.如請求項23所述之資料處理裝置,其中該複數個控制參數 ^ ^ 3第一控制參數及—第二控制參數,該第一控制夂 數具有隨該選定資料大小增大而增大之-位元數目,該第二 控制參數具有隨該選定資料大小增大而減小之一位元數 目;以及 該第二部分包括用於指示該第一控制參數及該第二控制參數 之子。P刀該才曰令解碼器及該處理電路系統中之該至少一 者根據由該第一部分所4人 斤^ 3之該位元數目識別:該子部分中 之那些位7L才曰不該第—控制參數及該子部分中之哪些位元 指示該第二控制參數。 25.如請求項19所述之資粗牵 貢料處理裝置’其中該至少一個指令包 括至少一個單個指令多 · · 夕调貧枓(single instruction multiple data; SIMD)指令,該 5 ,卜 .ra 至y —個SIMD指令識別一源資料值, 73 201235937 該源資料值包含至少一個源資料元件 對該至j -種SJMD指令而言該選定資 個源資料元件之—資料元件大小, 小“該至少- 下步驟:在該源資料值之哕 以‘。處理操作包含以 丁寸值之该至少一個源資料 源資料元件上執行-選定處理操作。 母-個 26.如凊求項25所述之f料處理裝置其中,、一 指令包括一位元欄操縱指令,且對 7種SiMD 該相應處理操作包含以下步驟:;=縱指令而言: 料值包含至少-個所得資料元件料值’該所得資 於該源資料值之-個相應源_元母件所得f料元件對應 每—應m料元件包含一所得位元搁,該所得位元搁具有對 的位源資料元件内連續位元之一源位元攔之位元值 的位兀值;以及 該:少-個控制參數指示由該源位元搁及該所得位元棚所包 Z之該位讀目、該相應源資料元件内之該源位元棚之一位 及該所得資料元件内之該所得位元欄之一位置。 =請4 26所述之資料處理裝置,其中對該位元搁操縱指 。右該源貝料值包含複數個源資料元件且該所得資料 ^包含複數個所得資料元件,則該至少—個控制參數亦包括 —資料元件排序參數,該資料元件排序參數用於指示將該複 數個所得資料元件佈置於該所得資料值内所使用的一次序。 74 201235937 2 8.如請求項丨9所 之資料處理裝置,其中該?小 括一按位元邏輯於人 個指令包 0 ^ 々,該按位元邏輯指令識別一泝 且對該按位元邏輯指令而言: /原貝枓值·, 該相應處理操作包含 ^ ^ 下步驟.產生一所得資料值,兮所咨 枓值4效於將—羅 成所传資 t輯運算應用至該源資料值及—第_ $ 值之結果,某扒廿“ 弟一資料 〜 於該控制值決定該第二資料值; 該選疋資料大扣_ 叶大〗才曰不由該第二資料值内一重 包含之—位元數目;以及 料式之位⑽ 該至少一個控制參數 值的資訊。 用於識別該重複模式之位元之位元 OR運算及一互斥OR運算中之一身 月求項28所述之資料處理裝置,其中該按位元 包含一AND運算、 ——— , 運算 30.一種資料處理裝置,該資料處理裝置包含: t構件,該處理構件詩執行處理操作; 指令解碼構件,該指令解碼構件用於回應於程式指令,產生用 於控制該處理構件執行該等處理操作之控制訊號;其中: s等程式扎々包括至少一個指令’該至少一個指令規定一 控制值,該控制值具有H分及—第二部分,該第 一部分用於指示選自複數個資料大小之一選定資料大 小,該第二部分用於指示至少一個控制參數,該至少一 個控制參數之-位元數目根據該選定資料大小而變化, 75 201235937 第°卩刀及該第二部分各自具有可變數目之位元;並 且 該指令解碼構件回應於該至少一個指令以產生用於控制該 處理構件根據該選定資料大小及該至少-個控制參數來 執行—相應處理操作之控制訊號; 其中當處理該至少一個指令時’該指令解碼構件及該處理 牛中之至少一者經配置為識別由該控制值之該第一部 刀所包含之該位元數目,且根據由該第一部分所包含之 該位元數目識別:⑷該選定資料大小,以及(b)該控制值 中之那些位元形成用於指示該至少一個控制參數之該第 一部分。 3 1. —種用於一處理裝置回應於程式指令執行處理操作之資料 處理方法’該資料處理方法包含以下步驟: 接收至少一個指令,該至少一個指令規定一控制值該控制值 具有一第一部分及一第二部分,該第一部分用於指示選自複 數個資料大小之一選定資料大小,該第二部分用於指示至少 一個控制參數,該至少一個控制參數之一位元數目根據該選 定資料大小而變化,該第一部分及該第二部分各自具有可變 數目之位元; 回應於該至少一個指令,識別由該控制值之該第—部分所包人 之該位元數目; 根據由該第一部分所包含之該位元數目,識別:(a)該選定資料 大小,以及(b)該控制值中之哪些位元形成用於指示节至+ 76 201235937 一個控制參數之該第 > 部分;以及 控制該處理裝置根據該遂定資料大小及該至少一個控制參數 執行一相應處理操作。 2·種虛擬機,該虛擬機由一電腦程式提供,當由〆電腦執 .仃該電腦程式時,該電腦程式提供如請求項Η所述i資科 處理裝置之一指令執行環境。 、 77
TW100140338A 2010-11-23 2011-11-04 資料處理裝置與方法 TWI520058B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1019798.6A GB2485774A (en) 2010-11-23 2010-11-23 Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field

Publications (2)

Publication Number Publication Date
TW201235937A true TW201235937A (en) 2012-09-01
TWI520058B TWI520058B (zh) 2016-02-01

Family

ID=43467131

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100140338A TWI520058B (zh) 2010-11-23 2011-11-04 資料處理裝置與方法

Country Status (10)

Country Link
US (3) US9207937B2 (zh)
EP (2) EP2648091B1 (zh)
JP (2) JP5703385B2 (zh)
KR (2) KR101900236B1 (zh)
CN (2) CN103229139B (zh)
GB (1) GB2485774A (zh)
IL (1) IL225036A (zh)
MY (1) MY164432A (zh)
TW (1) TWI520058B (zh)
WO (1) WO2012069798A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2485774A (en) 2010-11-23 2012-05-30 Advanced Risc Mach Ltd Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field
US20130159667A1 (en) * 2011-12-16 2013-06-20 Mips Technologies, Inc. Vector Size Agnostic Single Instruction Multiple Data (SIMD) Processor Architecture
US9632980B2 (en) 2011-12-23 2017-04-25 Intel Corporation Apparatus and method of mask permute instructions
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
CN107193537B (zh) * 2011-12-23 2020-12-11 英特尔公司 经改进的插入指令的装置和方法
CN104137055B (zh) * 2011-12-29 2018-06-05 英特尔公司 点积处理器、方法、系统和指令
US9081607B2 (en) * 2012-10-24 2015-07-14 International Business Machines Corporation Conditional transaction abort and precise abort handling
CN103973600B (zh) * 2013-02-01 2018-10-09 德克萨斯仪器股份有限公司 用于分组处理旋转掩码合并和寄存字段指令的方法及装置
WO2014203035A1 (en) * 2013-06-18 2014-12-24 Freescale Semiconductor, Inc. Signal processing device and method of performing a bit-expand operation
US20150186137A1 (en) * 2013-12-27 2015-07-02 Tal Uliel Systems, apparatuses, and methods for vector bit test
KR102148984B1 (ko) 2014-05-29 2020-08-27 삼성에스디에스 주식회사 데이터 처리 시스템 및 방법
EP3001306A1 (en) * 2014-09-25 2016-03-30 Intel Corporation Bit group interleave processors, methods, systems, and instructions
US10013253B2 (en) * 2014-12-23 2018-07-03 Intel Corporation Method and apparatus for performing a vector bit reversal
CN104991758B (zh) * 2015-07-27 2017-11-21 中国科学院自动化研究所 一种位域覆盖装置及操作方法
US9733899B2 (en) * 2015-11-12 2017-08-15 Arm Limited Lane position information for processing of vector
US20170177354A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Vector-Based Bit Manipulation
US20170177350A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Set-Multiple-Vector-Elements Operations
US20170177362A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Adjoining data element pairwise swap processors, methods, systems, and instructions
CN105892993B (zh) * 2016-03-28 2019-02-15 龙芯中科技术有限公司 基于提取插入操作的重组方法、装置及微处理器
EP3336691B1 (en) * 2016-12-13 2022-04-06 ARM Limited Replicate elements instruction
EP3336692B1 (en) 2016-12-13 2020-04-29 Arm Ltd Replicate partition instruction
SG11201908666VA (en) * 2017-03-21 2019-10-30 Tora Holdings Inc Secure order matching by distributing data and processing across multiple segregated computation nodes
US10514914B2 (en) * 2017-08-29 2019-12-24 Gsi Technology Inc. Method for min-max computation in associative memory

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4520439A (en) * 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
US4617641A (en) * 1983-10-19 1986-10-14 Hitachi, Ltd. Operation unit for floating point data having a variable length exponent part
JPS6266377A (ja) * 1985-09-19 1987-03-25 Fujitsu Ltd マスクパタ−ン生成方式
JP2674301B2 (ja) 1990-10-31 1997-11-12 富士通株式会社 ビット転記方式
US5423010A (en) * 1992-01-24 1995-06-06 C-Cube Microsystems Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words
JP3203401B2 (ja) * 1993-05-21 2001-08-27 三菱電機株式会社 データ処理装置
JPH07175651A (ja) * 1993-09-27 1995-07-14 Hitachi Ltd ディジタル信号処理プロセッサおよびそれを用いて命令をフェッチし復号する方法
JP3452655B2 (ja) 1993-09-27 2003-09-29 株式会社日立製作所 ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法
JP2682469B2 (ja) 1994-09-20 1997-11-26 日本電気株式会社 命令コード符号化方式
US6738793B2 (en) 1994-12-01 2004-05-18 Intel Corporation Processor capable of executing packed shift operations
JP3433588B2 (ja) 1995-10-19 2003-08-04 株式会社デンソー マスクデータ生成回路及びビットフィールド操作回路
JPH11272546A (ja) 1998-03-23 1999-10-08 Nec Corp 可変長レジスタ装置
JP2000099327A (ja) 1998-09-28 2000-04-07 Mitsubishi Electric Corp 計算機
US6308253B1 (en) * 1999-03-31 2001-10-23 Sony Corporation RISC CPU instructions particularly suited for decoding digital signal processing applications
JP2001251349A (ja) * 2000-03-06 2001-09-14 Fujitsu Ltd パケットプロセッサ
US6625724B1 (en) * 2000-03-28 2003-09-23 Intel Corporation Method and apparatus to support an expanded register set
US6678806B1 (en) 2000-08-23 2004-01-13 Chipwrights Design, Inc. Apparatus and method for using tagged pointers for extract, insert and format operations
GB0024312D0 (en) * 2000-10-04 2000-11-15 Advanced Risc Mach Ltd Single instruction multiple data processing
DE10314928A1 (de) 2003-04-02 2004-11-04 Infineon Technologies Ag Verfahren und programmgesteuerte Einheit zur Bitfeldverschiebung
EP1545010A1 (en) * 2003-12-18 2005-06-22 Deutsche Thomson-Brandt GmbH Method and device for transcoding N-bit words into M-bit words with M smaller N
CN1898873A (zh) * 2003-12-18 2007-01-17 汤姆森特许公司 用于将n比特字代码转换为m比特字并且m小于n的方法和器件
US7370180B2 (en) * 2004-03-08 2008-05-06 Arm Limited Bit field extraction with sign or zero extend
GB2411978B (en) * 2004-03-10 2007-04-04 Advanced Risc Mach Ltd Inserting bits within a data word
US7315937B2 (en) * 2004-10-01 2008-01-01 Mips Technologies, Inc. Microprocessor instructions for efficient bit stream extractions
US7885992B2 (en) * 2006-06-22 2011-02-08 Honeywell International Inc. System and method for implementing irregular data formats
US7529918B2 (en) * 2006-07-21 2009-05-05 Broadcom Corporation System and method for efficiently performing bit-field extraction and bit-field combination operations in a processor
JP4374363B2 (ja) 2006-09-26 2009-12-02 Okiセミコンダクタ株式会社 ビットフィールド操作回路
US7895419B2 (en) * 2008-01-11 2011-02-22 International Business Machines Corporation Rotate then operate on selected bits facility and instructions therefore
US8352528B2 (en) * 2009-09-20 2013-01-08 Mimar Tibet Apparatus for efficient DCT calculations in a SIMD programmable processor
GB2485774A (en) 2010-11-23 2012-05-30 Advanced Risc Mach Ltd Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field

Also Published As

Publication number Publication date
JP5703385B2 (ja) 2015-04-15
MY164432A (en) 2017-12-15
IL225036A (en) 2017-06-29
CN104915182B (zh) 2017-12-01
KR101900236B1 (ko) 2018-09-19
CN103229139A (zh) 2013-07-31
US20170153891A1 (en) 2017-06-01
GB201019798D0 (en) 2011-01-05
EP2603851A1 (en) 2013-06-19
GB2485774A (en) 2012-05-30
JP2014500546A (ja) 2014-01-09
KR20140001910A (ko) 2014-01-07
WO2012069798A1 (en) 2012-05-31
US10521232B2 (en) 2019-12-31
EP2603851B1 (en) 2017-08-16
US20120131312A1 (en) 2012-05-24
JP2015097099A (ja) 2015-05-21
CN103229139B (zh) 2016-06-08
EP2648091B1 (en) 2014-10-29
EP2648091A1 (en) 2013-10-09
US20160026465A1 (en) 2016-01-28
US9207937B2 (en) 2015-12-08
TWI520058B (zh) 2016-02-01
CN104915182A (zh) 2015-09-16
US9619225B2 (en) 2017-04-11
KR101834174B1 (ko) 2018-03-05
JP5897696B2 (ja) 2016-03-30
KR20170118946A (ko) 2017-10-25

Similar Documents

Publication Publication Date Title
TW201235937A (en) Data processing apparatus and method
TWI575454B (zh) 用於在成組的向量元件上進行歸約運算的方法及設備
TWI556165B (zh) 位元混洗處理器、方法、系統及指令
TW201636831A (zh) 用於向量廣播及互斥或和邏輯指令的設備與方法
TWI514270B (zh) 有效零基解壓縮
TWI489384B (zh) 執行置換運算的處理器與方法及具有該處理器的電腦系統
TW201346727A (zh) 封裝資料重排控制指標前標產生處理器、方法、系統及指令
TW201339966A (zh) 合併光罩圖案之指令
TWI575451B (zh) 用於遮罩及向量暫存器之間的可變擴充的方法及裝置
TW201506782A (zh) 用以將萬國碼字元之可變長度編碼點轉碼之處理器、方法、系統及指令
TWI590154B (zh) 在z順序曲線中計算下一點的座標的向量指令
CN107534549B (zh) 可读存储介质、用于数据流字块加密的方法及系统
US10536264B2 (en) Efficient cryptographically secure control flow integrity protection
TW201723805A (zh) 資料元件比較處理器、方法、系統及指令
EP3343359A1 (en) Apparatus and method for processing sparse data
TWI590155B (zh) 用以從4維座標計算4維z曲線指標的機器階層指令
CN104011709A (zh) 在256位数据路径中执行jh加密散列的指令
CN110990846B (zh) 信息存储方法、设备及计算机可读存储介质