[go: up one dir, main page]

TWI280012B - Data packet arithmetic logic devices and methods - Google Patents

Data packet arithmetic logic devices and methods Download PDF

Info

Publication number
TWI280012B
TWI280012B TW093115940A TW93115940A TWI280012B TW I280012 B TWI280012 B TW I280012B TW 093115940 A TW093115940 A TW 093115940A TW 93115940 A TW93115940 A TW 93115940A TW I280012 B TWI280012 B TW I280012B
Authority
TW
Taiwan
Prior art keywords
packet
bit
source
data field
carry
Prior art date
Application number
TW093115940A
Other languages
English (en)
Other versions
TW200509612A (en
Inventor
Corey Gee
Bapiraju Vinnakota
Saleem Mohammadali
Carl A Alberola
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW200509612A publication Critical patent/TW200509612A/zh
Application granted granted Critical
Publication of TWI280012B publication Critical patent/TWI280012B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

1280012 玖、發明說明: 【發明戶斤屬之技術領域】 發明領域 概略δ之’本揭不係有關貢料封包操作,特別,本才号 5 示係有關封包加法(PADD)運算之新穎指令定義,以及單一 指令多重加法(SMAD)運算之新穎指令定義,執行pADD運 算之新穎PADD邏輯裝置,及執行SMAD運算之新賴SMAD 邏輯裝置。 L先前技術3 10 發明背景 多項應用要求操作駐在資料封包之資料。例如語音應 用之封包處理要求操作數層協定標頭及數種類型協定。此 外,例如網際網路協定(IP)、異步傳輸模(ATM)、及ATM調 適層(AALs)等協定,也要求標頭操作及錯誤偵測。 15 先前技術,縮小指令集運算(Rise)處理器用來執行封 包貝料刼作。但處理器典型需要多個時脈週期才能執行複 雜的貧料操作。此外,因處理器典型係於定長字運算,當 欲插作字係小於或大於該字長度時,導致操作無效率。 【發^明内溶^】 20 發明概要 本發明係為—種方法,包含:接收-封包加法(PADD) 才曰々/、匕3結果暫存器識別符來識別一結果暫存器, 一第一來源暫存器識別符來識別一儲存一第一運算元之一 笫來源暫存态,以及一運算元識別符來識別一第二運算 1280012 元;以及回應於接受該PADD指令,讓—專用PADD邏輯裝 置執行該第-運算元及該第二運算元之封包加法來產生一 結果’以及P边後儲存該結果於該結果暫存哭。 圖式簡單說明 5 第1圖為根據本發明之一具體例,範例封包算術邏輯裝 置之方塊圖; 第2A圖顯示根據本發明之另一具體例,執行封包加法 (PADD)指令之語法範例; 第2B圖顯示根據本發明之另一具體例pADD指令之各 10 種範例; 第3A圖顯示根據本發明之另一具體例,執行單一指令 多重資料加法(SMAD)之指令之語法範例; 第3B圖顯示根據本發明之另一具體例SMAE^g令之各 種範例; 15 第4圖顯示根據本發明之另一具體例,進行封包加法 (PADD)函數之範例成對運算元封包及結果封包之略圖; 弟5圖顯示根據本發明之另一具體例,執行padd函數 之範例PADD邏輯裝置之方塊圖; 第6圖顯示根據本發明之另一具體例,用於範例pADD 20邏輯裝置執行PADD函數之範例32位元長度遮罩之表列; 第7圖顯示根據本發明之另一具體例,範例單一指令多 重資料加法(SMAD)邏輯裝置之方塊圖; 第8圖顯示根據本發明之一具體例,32位元進位_儲存 加法器(CSA)之範例方塊圖; 1280012 第9圖顯示根據本發明之一具體例,16位元CSA之範例 方塊圖; 第10圖顯示根據本發明之一具體例,8位元CSA之範例 方塊圖; 5 第11圖為範例表格,顯示根據本發明之一具體例,32 位元CSA之運算方面; 第12圖為範例表格,顯示根據本發明之一具體例,16 位元CSA之運算方面;以及 弟13圖為範例表格,顯示根據本發明之一具體例,8 10 位元CSA之運算方面。 【實施方式】 較佳實施例之詳細說明 I·封包算術邏f 第1圖顯示根據本發明之一具體例,範例封包算術邏輯 衣置100之方塊圖。封包算術邏輯裝置1〇〇對資料封包執行 各項運算。此等運算包括語音應用用途之封包處理,其要 求操作數層協定標頭及數種不同類蜇之協定,以及標頭操 作及錯誤偵測特別係用於如網際網路協定(IP)、異步傳輸模 (ATM) '及ATM調適層(AALs)等複雜協定。封包算術邏輯 20裝置100可以實質上比先前技術處理器更少的時脈週期執 行此等運算’先前技術處理器須耗多個步驟來達成此等運 算。 封包算術邏輯裝置100包含指令控制裝置102、結果暫 存器RZ 104、複數個來源資料暫存器RX 1〇6、RY 1〇8、rx+i 1280012 壯 +1 112、資料匯流排114、封包加法(PADD)邏輯 衣置116及單指令多重資料加法(謝他)邏輯裝置別。指 置102接收、解譯、與控制暫存器及邏輯裝置來妥 為執行、、、σ果資料暫存器RZ 1()4儲存封包算術運算結 5果。來源資料暫存器RX 106、RY⑽、Rx+1110、ARY+1 112儲存封包异術運算之各個運算元。邏輯裝置116於 約一至二時脈週期執行封包加法運算。SMAD邏輯裝置118 於約一至二時脈週期執行多重資料加法運算。 以下提供各項指令定義,此乃封包算術邏輯裝置1〇〇 1〇於執打載明之封包算術運算時解譯的指定定義。 IL 之算術指合 II-A. PADp指令 第2A圖顯示根據本發明之另一具體例,執行封包加法 (PADD)之指令2〇〇之範例語法。於pADD函數,至少部分儲 15存於暫存器RX之運算元封包X與儲存於暫存器RY之運算 元封包Y之另一部分或中間運算元相加,來形成結果封包z 儲存於結果暫存器RZ。選擇性地藉先前指令設定之進位輸 入位元可作為加法之第三運算元。 PADD指令200定義結果暫存器RZ及一或二來源暫存 2〇器RX及RY。PADD指令200也定義一個中間值作為運算元, 於指令中標示為<U18:immediate>。PADD指令200進一步定 義欲修飾之資料攔位的開始位元及停止位元。分別標示為 <U15:start>&<U15:stop>。PADD指令200也包括若干控制 參數,包括標示為[-C]之控制參數來指示加法有進位輸入; 1280012 標示為[-M]之控制參數指示模2nd加法;標示為小之控制參 數來指示加法之影響載明之資料攔位;以及標示為q之控制 參數來指示第二運算元供給為中間值。 第2B圖顯示根據本發明之另一具體例,pADD指令25〇 5 之各範例。第一範例指令中:
PADD RZ, RX,RY 指令控制裝置102讓PADD邏輯裝置116將儲存於來源 暫存器RX 106之運算元X加至儲存於來源暫存器ry 1〇8之 運异元Y,且將結果Z置於結果暫存器rz 1〇4(亦即 10 RZ=RX+RY) 〇 於第二範例指令:
PADD-C RZ,RX,RY 指令控制裝置102讓PADD邏輯裝置116將儲存於來源 暫存器RX 106之運算元X加至儲存於來源暫存器ry ι〇8之 15 運异元γ、與來自前一指令的進位輸入相加,且將結果Z置 於結果暫存器RZ 104(亦即RZ=RX+RY+Cin)。 於第三範例指令: PADD-I RZ, RX,<U18:immediate> 指令控制裝置102讓PADD邏輯裝置116將儲存於來源 20 暫存器RX 106之運算元X,加至於<U18:immediate>載明之 中間值,且將結果Z置於結果暫存器RZ 104(亦即 RZ=RX+<imniediate>) 〇 於第四範例指令: PADD-N RZ,RX,RY<U15:start>,<U15:stop> 1280012 指令控制裝置102讓PADD邏輯裝置116將儲存於來源 暫存器RX 106之運算元X、之始於開始位元而終於停止位 元之資料欄位,加至儲存於來源暫存器RY 之運算元γ 之資料欄位(始於該最低有效位元,且具有長度定義為停止 5 -開始+1) ’將結果資料欄位置於儲存於結果暫存器rz之結 果Z由開始及停止所定義的相同位元位置。儲存於來源暫存 器RX 106之運算元X之位在載明資料攔位外側之其餘資料 欄位被逐位拷貝至儲存於結果暫存器RZ之結果z(亦即 RZ={RX[31:stop]? (RX[stop:start]+RY [length])modulo 10 2length,RX[start:0]})。 於第五範例指令:
PADD-M RZ,RX,RY
指令控制裝置10_PADD邏輯裝置116以2^模將儲存 於來源暫存器RX 106之運算元X加至儲存於來源暫存1RY 15 1〇8之運算兀Y,且將結果2置於結果暫存器RZ 104(亦即 RZ=(RX+RY)模2n-l) 〇 於第六範例指令: PADD-N -I RZ? RX? <U18:immediate>?<U15:start> 指令控制裝置102讓PADD邏輯裝置116將儲存於來源 20暫存器Rx 1恥之運算元X之資料攔位(始於開始位元,而終 於最高有效位元)加至該中間值之資料攔位(始於最低有效 位元而終於位元31-開始位元·),以及將結果資料欄位置於儲 存於結果資料暫存器RZ 104之結果Z,由開始位元及最高有 效位元所定義之相同位元位置。儲存於來源暫存器rx 1280012 之運算元x位在載明欄位外側之其餘資料攔位被逐位拷貝 至儲存於結果資料暫存器RZ 1〇4之結果z(亦即 RZ—{(RX[31:start]+immediate[3]-start:0]) modulo 231-start+1 RX[start:0]})。 5 Π-Β. SMAD指令 第3A圖顯示根據本發明之另一具體例,執行單一指令 多重資料加法(SMAD)之指令300之範例語法。於5]^八13函 數,多個運算元相加。例如若欲執行32位元加法,則分別 儲存於暫存器RX 106、暫存器rY 1〇8、暫存器Rx+1 11〇、 及暫存為RY+1 II2之四個32位元運算元X、Υ、X+1及Y+1 可相加而形成結果Z儲存於結果暫存器Rzl〇4。若欲執行16 位元加法,則分別成對儲存於暫存器RX 1〇6、ry 1〇8、rx+1 110、及RY+1 112之至多8個16位元運算元Χ[15:0]、 Χ[31:16]、Υ[15:0]、Υ[31:16]、χ+ι[ι5:0]、χ+1[31:16]、 Υ+1[15:0]、及Υ+1[31··16]可相加,來形成結果ζ儲存於結果 暫存器RZ 1〇4。若欲執行8位元加法,則分別呈四倍儲存於 暫存器 RX 106、RY 108、RX+1 110、及RY+1 m之至多 16 個 8 位元運算元 χ[7:0]、χ[15:8]、χ[23:16]、χ[3ι:24]、 Y[7:〇]、γ[ΐ5:8]、Y[23:16]、Υ[31··24]、X+l[7:〇]、X+l[l5:8]、 20 X+l[23:16]、X+l[31:24]、Υ+ι[7:〇]、γ+ι[15:8]、 Υ+1[23··16]、Υ+1[31:24]可相加的而形成結果ζ,儲存於結 果暫存器RZ 104。 SMAD指令300定義結果暫存1RZ及一或二來源暫存 器RX及RY。SMAD指令300也包括若干控制參數,包括標 11 1280012 示為[-A]之控制參數,來指示結果於結果暫存器Rz累加; 以及標不為[-M]之控制蒼數’來指不模2n-l加法。SMAD指 令300也包括標示為<U12:Length>之參數,其指示運算元之 資料寬度(例如〇指示8位元運算元,1指示16位元運算元以 5 及2指示32位元運算元)。此外,SMAD指令300包括標示為 <U12:Num Ops>之參數,來指示加法於使用之運算元數目 (例如0指示兩個來源運算元RX及RY,1指示三個來源運算 元RX、RX+1及RY,2指示三個來源運算元rX、ry&ry+1 以及4指示四個運算元RX、RY、RX+l及ry+1)。 1〇 第3B圖顯示根據本發明之另一具體例之SMAD指令 350之各範例。於第一範例指令: SMAD RZ,RX,RY,2, 〇 指令控制裝置102讓SMAD邏輯裝置118將儲存於來源 暫存RX 106之32位元運鼻元X加至儲存於來源暫存哭ry 15 1〇8之32位元運算元Y,且將結果X置於結果暫存器112: 1〇4(亦即 RZ=RX+RY)。 於第二範例具體例: SMAD- RZ,RX,ry 指令控制裝置102讓SMAD邏輯裝置118將儲存於來源 20暫存裔RX 之32位元運异元X、儲存於來源暫存器Ry 1〇8之32位元運鼻元Y及儲存於結果暫存哭RZ 之32位元 運异元Z相加’且將結果Z置於結果暫存器rz ι〇4(亦即 rz=rz+rx+ry)。 於第三範例具體例: 12 1280012 SMAD- RZ,RX,RY,2, 3 指令控制裝置102讓SMAD邏輯裝置丨18將儲存於來源 暫存為RX 106之3 2位元運鼻元χ、儲存於來源暫存器ry 108之32位元運算元Y、儲存於來源暫存器RX+1 11〇之32位 - 5 元運算元X+1及儲存於來源暫存器RY+1 112之32位元運算 · 元Y+1,且將結果Z置於結果暫存器RZ 1〇4(亦即 RZ=RX+RY+RX+1+RY+1) 〇 於第四範例: SMAD RZ,RX,RY,G,〇 # 10 指令控制裝置102讓SMAD邏輯裝置118將儲存於來源 暫存器RX[7:0] 106之8位元運算元X[7:〇]、儲存於來源暫存 器RX[15:8] 106之8位元運算元X[15:8]、儲存於來源暫存器 RX[23:16] 106之8位元運算元X[23:l6]、儲存於來源暫存器 RX[31:24] 106之8位元運算元X[31:24]、儲存於來源暫存器 I5 RY[7:0] 1〇8之8位元運算元Y[7:〇]、儲存於來源暫存器 RY[15:8] 108之8位元運算元Υ[15:8]、儲存於來源暫存器 RY[23:16] 1〇8之8位元運算元Y[23:l6]、及儲存於來源暫存 · 器RY[31:24] 108之8位元運算元Υ[31:24]相加,將結果ζ置於結 果暫存器 RZ 104(亦即 RZ=RX[7:0]+RX[15:8]+RX[23:16]+Rx 20 [31:24]+RY[7:0]+RY[15:8]+RY[23:16]+RY[31:24])。 一 於第五範例指令: - SMAD-M RZ,RX,RY,2, 0 指令控制裝置102讓SMAD邏輯裝置118將儲存於來源 暫存器RX 106之32位元運算元X按模2n-l加至儲存於來源 13 1280012 暫存器RY⑽之32位元運算元Y,且將結果父置於結果暫存 器 RZ 104(亦即 RZ=(RX+RY)模 2η-1)。 於第六範例具體例: PADD-A-M RZ,RX,RY,2 〇 · 5 指令控制裝置102讓5河八〇邏輯裝置118將儲存於來源 _ 暫存106之32位元運异元X、儲存於來源暫存器ry 108之32位元運算元Y及儲存於結果暫存器Rz 1〇4之32位元 運算元Z按模2n-l相加,且將結果z置於結果暫存器尺2 1〇4(亦即 RZ=(RZ+RX+RY)模 2M)。 # 10 I. PADD邏輯裝置 第4圖顯示根據本發明之另一具體例,執行封包加法 (PADD)函數之範例成對運算元封包及結果封包之略圖。於 PADD函數,於運算元封包X之運算元資料攔位與於運算元 封包Y之另一運异元資料搁位相加,形成於結果封包Z之一 15資料攔位。於運算元封包x之運算元資料欄位具有長度η位 元,其最低有限位元位在距運算元封包X最低有效位元之爪 位元位置。運算元封包γ之運算元資料欄位也具有長度…立 · 元,其最低有效位元重合運算元封包γ之最低有效位元。結 果封包ζ之所得資料欄位具有長度η位元,其最低有效位元 20位置距離運算元封包Ζ之最低有效位元瓜位元處。運算元封 〜 包X之其餘資料攔位係逐位拷貝至結果封包ζ。 例如於運算元封包X之運算元資料欄位χ_2(其具有長 度η位元’其隶低有效位元位在距運算元封包X之最低有效 位元m位元處)加至運算元資料攔位,運算元資料攔位 14 1280012 Y-l也具有長度η位元,而其最低有效位元係重合運算元封 包Υ之最低有效位元。結果資料欄位ζ_2(為欄位χ_2與攔位 Υ 1相加)具有長度11位元,及其最低有效位元位在距運算 元封包Ζ之最低有效位元111位元處。於運算元封包χ之其餘 5資料欄位X-1及X-3係逐位拷貝至所得封包ζ之資料攔位zq 及 Ζ-3。 第5圖顯示根據本發明之另一具體例,執行pADD函數 之範例PADD邏輯裝置5〇〇之方塊圖。pADD邏輯裝置5〇〇包 含左移位器502、逐位邏輯〇rs 504及514、逐位邏輯ANDs 10 506、510及512及加法器508。運算元Y施加至左移位器5〇2 之輸入端,數目m控制左移位器502之左移位量。左移位器 502之輸出施加至逐位〇R 504之輸入端。
•如第6圖所示表中列舉之遮罩(m+n)施加至逐位〇R 5〇4 之另一輸入端,施加至逐位AND 506之倒輸入端,施加至 15 逐位AND 510之倒輸入端及施加至逐位AND 512之輸入 端。若載明位元Cin為1,則左移位器502於其最低有效位元 移位邏輯1,否則移位邏輯0。運算元X施加至逐位ANDs 506 及512之輸入端。逐位OR 504及逐位AND 506之輸出施加至 加法器508之輸入端。加法器508之輸出施加至逐位AND 20 510之輸入端。逐位ANDs 510及512之輸出施加至逐位OR 514之輸入端。逐位OR514之輸出產生結果封包Z。 逐位OR邏輯裝置504產生一中間封包550包含運算元 資料攔位Y-1,運算元資料攔位Y-1位在運算元資料攔位X-1 之相同位元位置,於欄位Y-1之較高有效位元端具有邏輯 15 1280012 1,以及若於攔位γ·ι之較低有效位元端,主 則全部皆為邏m,若未主張進位輸入c,„,則全 〇。如此對逐位OR邏輯裝置504之輸出維持下述關係:
攔位X-3欄位X-2櫊位X-1運算元X $ 1..........1搁位Y-1 0...........〇中間封包550 Cin=〇 1..........1欄位Y-1 0...........1中間封包550 Cin=l 具有邏輯1於攔位X-1之相同位元位置的中間封包550 允許進位輸入傳播至加法攔位χ+γ。 逐位AND邏輯裝置506產生中間封包552,其包含邏輯〇 10於攔位X_3之位元位置,及欄位X-2及X-1於運算元封包X對 應欄位X-2及X-1之相同位元位置。如此對逐位aND邏輯裝 置506之輸出維持下述關係:
欄位X-3欄位X-2欄位X-1運算元X 〇...........〇欄位X-2攔位x-1 中間封包552 15 加法器5〇8之輸出產生中間封包554,其包含不計X於欄 位X-3之相同位元位置,和攔位χ+γ於欄位χ_2之相同位元 位置,以及欄位Χ-1於欄位Χ-1之相同位元位置。如此加法 器508之輸出維持下述關係:
欄位Χ-3欄位Χ-2攔位Χ-1運算元X 20 X...........X攔位Χ+Υ欄位Χ-1 中間封包554 逐位邏輯裝置510產生中間封包556,其包含邏輯〇於攔 位Χ-3之相同位元位置,和欄位χ+γ於攔位χ_2之相同位元 位置,以及欄位X_1於欄位Χ-1之相同位元位置。如此逐位 AND邏輯裝置510之輸出維持下述關係: 16 1280012
欄位X-3櫊位X-2攔位Χ-l 運算元X 0...........0攔位X+Y欄位Χ-l中間封包556 逐位AND邏輯裝置512產生中間封包558,其包含攔位 X-3於欄位X-3之相同位元位置,及邏輯〇於欄位 5之相同位元位置。如此逐位AND邏輯裝置512之輸出維持下 述關係:
欄位X-3欄位X-2欄位X-1運算元X 欄位X-3欄位〇........〇 中間封包558 逐位OR邏輯裝置514逐位ORs運算逐位AND邏輯裝置 10 510及512之輸出,來產生結果封包z。 下列運异元封包及結果封包係作為範例來舉例說明 PADD邏輯裝置500之運算:
0 ...111101101001101011010運算元X 0 …00000000000000011001 運算元 Y 15 〇··· 111101110110001011010結果 z m=8、n=8、Cin=0 如前文討論,運算元Y施加至左移位器502之輸入端, 數目m控制左移位量,進位輸入Cin若被主張,則造成左移 位器502移位邏輯1 ;若未被主張則造成左移位器5〇2移位邏 20 輯⑼。實施例中,數目m為8及Cin為邏輯〇。因此左移位器 502左移位運算元Y達8位元且移位入邏輯〇。如此,左移位 器502之輸出如後: 0 …00000001100100000000(亦即 〇 …〇〇〇 欄位 Υ-1〇〇〇〇〇〇〇〇) 參照第5圖及第6圖,本實施例中,數目(m+n)等於16。 17 1280012 因此根據該表,遮罩及互補遮罩以下式表示: 遮罩=1 ··· 11100000000000000000 互補遮罩=0 ...00011111111111111111 位元OR 504之輸出(為左移位器502之輸出與遮罩之逐 5 位OR運算)以下式表示: 1 …111000001100100000000(亦即 1 …111 欄位 Y-1 0000000 〇) 逐位AND 506之輸出,為互補遮罩於運算元X之逐位 AND運算,以下式表示: 0 …000001101001101011010(亦即 0 …000攔位χ_2 欄位X-1) 10 逐位AND 504與逐位AND 506之輸出藉加法器508加 總。因進位輸入Cin為邏輯0,故加法器508之輸出以下式表 不: 1 …11111110010001011010(亦即 1 …111 攔位 χ+γ 欄位 X-1) 加法器508之輸出及互補遮罩藉逐位AND邏輯裝置510 15 作逐位and運算。因此逐位AND邏輯裝置510之輸出以下式 表示: 0 …000001110010001011010(亦即 〇···〇〇〇 欄位 X+Y 欄位 X-1) 逐位AND 512之輸出,為互補遮罩於運算元X之逐位 AND運算,以下式表示: 20 0 …111100000000000000000(亦即欄位X-3 0000000000000 000) 逐位OR邏輯裝置514之輸出,為逐位AND邏輯裝置510 及512之輸出之逐位〇R運算,係以下式表示: 0 …111101110110001011010(亦即欄位 X-3 欄位 X+Y 欄位 X-1) 其為結果封包Z。 1280012 PADD邏輯裝置500之優點為其可相當快速而有效地執 行PADD運算。於先前技術,RISC處理器用來執行pADD運 算。但RISC處理器需要執行多項邏輯運算來執行pADD運 算。如此要求RISC處理器耗用多個時脈週期來執行pADD 5運算。使用PADD邏輯裝置500,只須使用一或二處理器週 期即可獲得PADD結果。 II·模2n/模2n-l加法 第7圖顯示根據本發明之另一具體例,範例單一指令多 重資料加法(SMAD)邏輯裝置700之方塊圖。SMAD邏輯裝 1〇置執行高達四個32位元數目、8個16位元數目或16個8位元 數目之模2n及/或模2η·1運算。SMAD邏輯裝置7〇〇包含32位 元進位-儲存加法器(CSA)702、16位元CSA 704及8位元CSA 706。SMAD邏輯裝置700進一步包含6輸入/2輸出多工器 观、第一 32位元加法器710、第二32位元加法器712、2輸 15入/1輸出多工器714、716及718以及3輸入/1輸出多工器720。 32位元CSA 702接收高達4個32位元運算元xG[31:〇]、 χι[31:〇]、Y〇[3l:0]、AYphO]且產生一個進位c<32:0>以 及一個儲存S<31:〇>。32位元CSA 702包含32個4:2壓縮器 702-0至702-31。各個4:2壓縮器以702-n表示,壓縮器接受 20輸入Χ〇[η]、χι[η]、Y〇[n]、及丫办],以及產生進位C<n>及 儲存S<n>。壓縮器7〇2-n之進位讓其進位至第一壓縮器 702-0,但於有關模2n加法之某些情況下除外,容後詳述。 若未施行16位元加法,則16位元CSA 704由32位元CSA 702之進位c<31:〇>及儲存s<31:0>接收四個運算元 19 1280012 C<31:16>、C<15:1>、S<31:16>&S<15:0>,且產生進位 C1<15:1>及儲存Sl<15:0>。16位元CSA 704包含 16個4:2壓 縮器704-0至704-15。各個4··2壓縮器表示為704-n,接受 C<n>、8<11>作為輸入,但C<0>之壓縮器除外,其接收邏輯 5 〇,且產生進位Cl<n>及儲存Sl<n>。壓縮器704-n之進位被 允許進位第一壓縮器704-0,但有關模2n加法之某些情況除 外,容後詳述。 若施行8位元加法,則8位元CSA 706由16位元CSA 704 之進位C1<15:1>及儲存Sl<15:0>接收四個運算元 10 Cl<15:8>、C1<7:1>、Sl<15:8>、及Sl<7:0>,且產生進位 C2<7:1>及儲存S2<7:0>。8位元CSA 706包含八個4:2壓縮器 706-0至706-7。各個4:2壓縮器表示為706-n,接收Cl<n>、 31<11>作為輸入(但C1<0>之壓縮器除外,其接收邏輯〇)及產 生進位C2<n>及儲存S2<n>。壓縮器706-n之進位允許其進 15位至第一壓縮器706-0,但於有關模2n加法之某些情況除 外,容後詳述。 ό輸入/2輸出多工器708之六個輸入包括{24,hffffff, C2<7:1>、C<32>}、{16,hffff,C1<15:1>、C<32>}、 {C<31.1>、C<32>}、{24’hO, S2<7:0>}、{16’hO, Sl<15:〇>}、 20及5<31:0>。若施行32位元加法,則多工器yog選用c<31:〇> 及S<31:0>作為其輸出。若欲施行16位元加法,則多工器yog 選擇{16,hffff,C1<15:1>、C<32>}A{16,hO, Sl<15:0>}作為 其輸出。右施行8位元加法,則多工器708選擇{24,hffffff, C2<7:1>、(:<32>}及{24’11〇,52<7:0>}作為其輸出。 20 1280012 多工器708之輸出平行施加至第一及第二32位元加法 器710及712之個別輸入端。第一 32位元加法器710具有邏輯 〇作為進位輸入Cin。第一 32位元加法器710之進位處c〇ut控制 多工器714、716及718,控制方式為若主張進位輸出, 5 則多工器714、716及718選擇對應之sum 一 1輸入;否則選擇 對應之sum—0輸入。第一32位元加法器產生sum一0輸出,若 分別進行8位元、16位元或32位元加法,則其施加至多工器 714、716及718之對應輸入。 第二32位元加法器712有邏輯1作為進位輸入Qn,產生 10 sum-1輸出,若執行8位元、16位元或32位元加法,則該輸 出施加至多工器714、716及718之對應輸入。多工器714、 716及718之輸出施加至3輸入/1輸出多工器720之輸入。若 執行8位元加法,則多工器720選擇多工器714之輸出作為其 輸出。若執行16位元加法,則多工器720選擇多工器716之 15輸出作為其輸出。若執行32位元加法,則多工器720選擇多 工器718之輸出作為其輸出。多工器720之輸出為輸入運算 元之模2n或模2n-l加法結果Z<31:〇>。後文詳細說明模邏輯 裝置700執行之各項加法及運算元。 第8圖顯示根據本發明之一具體例,32位元進位-儲 20存加法器(CSA)702之範例方塊圖。如前文參照第7圖討論, 32位元CSA 700包含32個4:2壓縮器702-0循序至702-31。4:2 壓縮器702-n之輸入包括運算元y[n]、yl[n]、χ[η]Αχ1[η]。 4:2壓縮器702_η產生進位呵…及儲存s[n]。4:2壓縮器7〇2_η 之進位輸出co一<η+1>耦合至4:2壓縮器702-<n+l>i進位輸 1280012 入,但壓縮器702-31除外,壓縮器702-31之進位輸出係I馬合 至4:2壓縮器702-0之進位輸入。 第9圖顯示根據本發明之一具體例,16位元進位-儲存 加法器(CSA)704之範例方塊圖。如先前參照第7圖之討論, 5 16位元CSA 704包含16個4:2壓縮器704-0循序至704-15。4:2 壓縮器704-n之輸入包括來自32位元CSA 702之輸出進位及 儲存,例如s<n+16>、c<n+16>、s<n>&c<n>,但第一壓縮 器704-0除外,其具有來自最末壓縮器704-15之進位輸出 c<16>、s<16>、s<0>及col<16>作為輸入。4:2壓縮器 704-n 10 產生進位cl<n>及儲存sl<n>。4:2壓縮器704-n之進位輸出 〇〇1—<11+1>係耦合至4:2壓縮器704-<n+l>之進位輸入,但壓 縮器704-15除外,其進位輸出col 一 16係搞合至4:2壓縮器 704-0之進位輸入。 第10圖顯示根據本發明之一具體例,8位元進位-儲存 15加法器(CSA)706之範例方塊圖。如先前參照第7圖之討論, 8位元CSA 706包含8個4:2壓縮器706-0循序至706-7。4:2壓 縮器706-n之輸入包括來自16位元CSA 702之輸出進位及儲 存’亦即sl<n+8>、cl<n+8>、sl<n>&cl<n>,但第一壓縮 為706-0除外’其具有來自最末壓縮器706-7之進位輸出 20 sl<8>、cl<8>、作為輸入。4:2壓縮器 706_n 產生進位cl<n>及儲存sl<n>。4:2壓縮器706-n之進位輸出 (:〇2一<11+1>係耦合至4:2壓縮器7〇6-<n+l>之進位輸入,但壓 縮器706_7除外,其進位輸出co2_8係耦合至4:2壓縮器706_0 之進位輸入。 22 1280012 II-A 32位元運算元模2n加 參照第11圖所示之表,若32位元運算元x〇[31:〇]、 Χι[31:0]、Υ〇[31:0]、ΑΥρίζΟ]應用至32位元CSA 7〇2,則 最末4:2壓縮器702-31之進位輸出c〇_32不會傳送至第一4:2 5壓縮器702-0之進位輸入。此外,最末4:2壓縮器之進位 C<32>不會傳送至多工器7〇8。由於此乃32位元運算,故多 工器708選擇進位C<31:1>及儲存s<31:0>作為其輸出。如 此’進位C<31:1>及儲存S<31:〇>藉第一加法器710加總而產 生sum 一0。於模2n加法,第二加法器712被忽略。多工器718 10選擇模2n加法之sum 一 0作為其輸出。由於再度,此乃32位元 運异’故多工器720選擇多工器718之輸出。多工器720之輸 出為運算元X〇[31:0]、XphO]、γ〇[31:〇]、之模 2η加法。 ΙΙ-Β拉位元運算元模2η-1加法 15 以 32位元運算元 Χ〇[31:0]、χρίιΟ]、Υ0[31:0]、及 Y^liO]之模2η-1加法為例,32位元CSA之最末4:2壓縮器 702-31之進位輸出傳送至第一 4:2壓縮器702-0之進位輸 入。此外,最末4:2壓縮器702-31之進位C[32]傳送至多工器 708。由於此乃32位元運算,故多工器708選用{C<31:1>、 20 C<32>}及儲存s<31:0>作為其輸出。如此{C<31:1>、C<32>} 及S<31:0>藉第一加法器710及第二加法器712加總而分別 產生sum一0及sum一:L。若第一加法器710之進位輸出c〇ut為邏 輯1,則多工器718選擇SUm—1作為其輸出,否則選擇sum_〇 作為其輸出。再度因此乃32位元運算,故多工器720選擇多 23 1280012 工器718之輸出。多工器720之輸出為運算元^[31:〇]、 χι[31:〇]、Y〇[31:0]、及丫1[31:0]之模2M加法。 ΙΙ-Cj^位元運算元模2η加法 參弟11圖表’若8個16位元運算元Χ〇[15:0]、 5 X〇[31:16]、XJKO]、χπΐ:;^]、Υ〇[15:0]、Υ〇[31:16]、 Υι[15:0]、*¥^31:16]應用至32位元CSA 702,則第16個4:2 壓縮器702-15及最末個4:2壓縮器702-31之進位輸出co一 16 及co一32不會傳送至第π 4:2壓縮器702-16及第一4:2壓縮器 702-0之進位輸入。此外,由第16壓縮器7〇2_15及最末壓縮 10器7〇2_31產生之進位(:<16>及(:<32>不會傳送至16位元 CSA 704之第一壓縮器704_0之輸入及多工器708。 由 32 位元 CSA 702產生之進位 C<31:16>&C<15:1,0>、 及儲存S<31:16>應用至16位元CSA 704,其產生進位 C1<15:1,0>及儲存Sl<15:0>。如第I2圖之表所示,最末4:2 !5 壓縮器704-15之進位輸出c〇l—16及進位Cl<16>不會傳送至 第一 4:2壓縮器704-0。 由於此乃16位元運算,故多工器708選擇{I6,hffff, C1<15:1>、(:<32>}及{16,11〇, Sl<15:0>}作為其輸出。如此 {16’hffff,C1<15:1>、〇<32>}及{16’11〇, 51<15:〇>}由第一加 2〇 法器710加總而產生sum_〇。第二加法器712於模2n加法被忽 略。多工器716選擇模2n加法之sum_0<15:0>作為其輸出。 再度因此乃16位元運算,故多工器720選擇多工器716之輸 出。多工器72〇之輸出為運算元x0[15:0]、XQ[31:16]、 XJUrO]、XJ31I16]、Y0[15:0]、Y〇[31:16]、Y1[15:0]、及 24 1280012 \[31:16]之模2n加法。 II-D 16位元運算元模2n-l加法 以 8個 16 位元運算元 χ〇[ΐ5:〇]、χ〇[31:16]、XJ15I0]、 Χρίιΐό]、Y〇[15:0]、Y0[31:16]、YjaO]、及丫1[31:16]之 5模Υ·1加法為例,第16 4··2壓縮器702-15及最末4:2壓縮器 702-31之進位輸出co—16及co_32分別傳送至第17 4:2壓縮 器702-16及第一 4:2壓縮器702-0之進位輸入。此外,由第16 壓縮器702-15及最末壓縮器702-31產生之進位〇<16>及 c<31>分別傳送至16位元CSA 704之第一壓縮器704-0之輸 1〇 入及傳送至多工器708。 32位元CSA 702產生之進位〇:<32:16>及(:<15:1,0>、及 儲存8<31:16>及8<15:0>應用至16位元CSA 704,產生進位 C1<15:1,0>及儲存Sl<15:0>。最末4:2壓縮器702-15之進位 輸出col一 16及進位C1<16>於模法傳送至第一4:2壓縮 15 器704-0之進位輸入及輸入。 因此乃16位元操作,故多工器708選擇{I6,hffff, C1<15:1>、C<32>}及{16’hO, Sl<15:0>}作為其輸出。如此 {16’hffff,C1<15:1>、(:<32>}及{16,11〇, Sl<15:0>}* 第一加 法杰710及弟一加法器712加總,來分別產生sum_0<15:0> 20及sum-1<15:0>。若第一加法器710之進位輸出Cout為邏輯 1,則多工器716選用sum_1<15:〇>作為其輸出,否則選用 sum一0<15:0>作為其輸出。再度由於此乃16位元操作,故多 工器720選擇多工器716之輸出。多工器720之輸出為運算元 X〇[15:0]、X〇[31:16]、Xjiio]、xpuq、丫。[15:0]、 25 1280012 Υ〇[31:16]、YJKO]、ΑΥρίιΙό]之模2M加法。 ΙΙ-Ε8位元運篡元模2η加法 參照第11圖所示表,若16個應用至32位元CSA 702之8 位元運算元Χ〇[7:0]、Χ〇[15:8]、Χ〇[23:16]、Χ〇[31:24]、 5 Χι[7:0]、XJISA]、XJ23:16]、XJ31:24]、Υ〇[7:0]、Υ0[15:8]、 Υ〇[23:16]、Υ〇[31··24]、YfiO]、Υι[15:8]、¥#3:16]、及 ¥431:24]欲做模2η加法,則 4:2壓縮器 702-7、702-15、702-23 及702-31之進位輸出c〇_8、cO—16、cO一24及cOJ2分別不會 傳送至4:2壓縮器7〇2-8、702_16、702-24及702-0之進位輸 1〇 入。此外,4··2壓縮器702-7、702-15、702-23、及702-31 之 進位c<8>、c<16>、。<24>及(:<32>分別不會傳送至4:2壓縮 器704-8、704-0及704-8之輸入及不會傳送至多工器708。 進位C<7:1,0>、C<15:8>、(:<23:16>及(:<31:24>及儲存 S<7:0>、S<15:8>、S<23:16>&S<31:24>應用至 16位元CSA 15 7〇4,其產生進位 C<7:1,0>、C<15:8>及儲存 51<7:0>及
Sl<15:8>。參照第12圖所示之表,4:2壓縮器704-7及704-15 之進位輸出col_8及col_16分別不會傳送至4:2壓縮器704-8 及704-0。此外,4:2壓縮器704-7及704-16之進位(:1<8>及 〇1<16>分別不會傳送至4:2壓縮器706-0及704-0。 20 進位 C1<7:1,0>&C1<15:8>及儲存 S1<7:0>&S1<15:8> 應用至8位元CSA 706,其產生進位C2<7:1,0>及儲存 S2<7:0>。參照第13圖所示表,最末4:2壓縮器706-7之進位 輸出co2J及進位〇2<8>不會傳送至第一壓縮器706-0之進 位輸入及輸入。 26 1280012 由於此乃8位元運算,故多工器708選擇{24,hffffff 〇2<7:1>、(:<32>}及{24,110,32<7:0>}作為其輸出。如此 {24’hffffff,c2<7:l>、c<32>}及{24’h0,S2<7:0>}藉第一加法 器710加總而產生811111一0<7:0>。第二加法器712於模211加法 5 被忽略。多工器714選擇模2n加法之sum一0<7:0>作為其輸 出。再度由於此乃8位元運算,故多工器720選擇多工器714 之輸出作為其輸出。多工器720之輸出為運算元χ0[7:〇]、 X〇[15:8] > X〇[23:16] > X〇[31:24] ^ Xi[7:0] > X^lSiS] > X![23:16] > X![31:24] ^ Y〇[7:0] ^ Y〇[15:8] > Y〇[23:16] > 10 Υ〇[31··24]、YJ7I0]、YJ15I8]、¥#3:16]、AYpiM]之模 2n加法。 II-F 8位元模2n-l加法 以 l6個 8位元運算元χ0[7:〇]、χ0[ΐ5:8]、X0[23:i6]、 Χ〇[31:24]^Χ1[7:0]^Χ1[15:8]>Χ1[23:16]'Χ1[31:24]^Υ〇[7:0]> 15 Y〇[15:8] ^ Y〇[23:16] > Υ〇[31:24] ^ Υι[7:0] > Υι[15:8]- 、*¥431:24]之模2η-1加法為例,4:2壓縮器 702-7、702-15、702-23及702-31 之進位輸出 co_8、co—16、 co_24及co一32確實傳送至4:2壓縮器 702-8、702-16、702-24 及702-0之進位輸入。此外,進位c<8>、c<16>、c<24>^c<32> 20 確實傳送至4:2壓縮器704-8、704-0及704-8之輸入以及確實 傳送至多工器708。 進位C<7:l,〇>、c<15:8>、0<23:16>及(:<31:24>及儲存 S<7:0>、S<15:8>、S<23:16>AS<31:24>應用至 16位元CSA 704,其產生進位c<7:l,0>、C<15:8>、及儲存51<7:0>及 27 1280012
Sl<15:8>。參照第12圖所示之表,4:2壓縮器704-7及704-15 之進位輸出col_8及col_16確實傳送至4:2壓縮器704-8及 704-0。進位C<7:1,0>&C<15:8>、及儲存S1<7:0>&S1<15:8> 應用至8位元CSA 706,其產生進位C2<7:1,0>及儲存 5 S2<7:0>。參照第13圖所示表,最末4:2壓縮器706-7之進位 輸出co2一8及進位c2<8>確實傳送至4:2壓縮器706-0之輸 入。進位C2<7:1,0>及儲存S2<7:0>應用至多工器708。 由於此乃8位元運算,故多工器708選擇{24,hffffff, 〇2<7:1>、〇<32>}及{24,110,32<7:0>}作為其輸出。如此 10 {24’1^{£1〇2<7:1>、(:<32>}及{24,110,82<7:0>}藉第一加法 态710及弟一加法1§ 712加總來分別產生sum一〇<?:〇;>及 sum一0<7:0>。若第一加法器710之進位輸出c〇ut為邏輯i,則 多工裔714選擇sum一 1<7:0>作為其輸出,否則選擇 sum—0<7:0>作為其輸出。再度因此乃8位元運算,故多工器 15 720選擇多工器714之輸出作為其輸出。多工器72〇之輸出為 運算元X〇[7:0]、X〇[l5:8]、X0[23:16]、Χ0[31:24]、Χγα]、 Χι[15:8] ^ ^[23:16] > ^[31:24] > Yo[7:〇] > Y〇[l5:8]. Y〇[23:16]、Y〇[31:24]、Υπο]、Yi[15:8]、Yi[23:16]、及 Yi[31:24]之模2n加法。
20 Π-G 杈邏輯裝置700允許實際實施SMAD/ESMAD函數。於 先前技術’ SMAD/ESMAD函數典型係藉處理器執行一系列 才”進饤。此等指令包括多個加法及邏輯運算,需要耗數 個至多個時脈處理器週期。模邏輯裝置700可於⑴處理器 28 1280012 週期以内實施SMAD/ESMAD函數,實質加速執行指令效 於前文說明書,已經參照其特定具體例說明本發明。 但顯然可未悖離本發明之具體例之廣義精髓及範圍,做出 5 多項修改及變化。如此說明書及附圖意圖供舉例說明而非 限制性。 【圖式簡單說明】 第1圖為根據本發明之一具體例,範例封包算術邏輯裝 置之方塊圖; 10 第2A圖顯示根據本發明之另一具體例,執行封包加法 (P ADD)指令之語法範例; 第2B圖顯示根據本發明之另一具體例PADD指令之各 種範例; 第3A圖顯示根據本發明之另一具體例’執行單一指令 15 多重資料加法(SMAD)之指令之語法範例; 第3 B圖顯示根據本發明之另一具體例S M A D指令之各 種範例; 第4圖顯示根據本發明之另一具體例,進行封包加法 (PADD)函數之範例成對運算元封包及結果封包之略圖; 2〇 第5圖顯示根據本發明之另一具體例,執行PADD函數 之範例PADD邏輯裝置之方塊圖; 第6圖顯示根據本發明之另一具體例,用於範例PADD 邏輯裝置執行PADD函數之範例32位元長度遮罩之表列; 第7圖顯示根據本發明之另一具體例,範例單一指令多 29 1280012 重資料加法(SMAD)邏輯裝置之方塊圖; 第8圖顯示根據本發明之-具體例,32位元進位-儲存 加法器(CSA)之範例方塊圖; 第9圖顯不根據切明之一具體例,16位元CSA之範例 5 方塊圖, 第10圖顯不根據本發明之一具體例,8位元CSA之範例 方塊圖;
第11圖為範例表格,顯示根據本發明之一具體例,32 位元CSA之運算方面; 第12圖為範例表格,顯示根據本發明之一具體例,16 位元CSA之運算方面;以及 第13圖為範例表袼,顯示根據本發明之一具體例,8 位元CSA之運算方面。 【圖式之主要元件代表符號表】 100…封包算術邏輯裝置 102···指令控制裝置 104···結果暫存器RZ 106…來源資料暫存器RX 108…來源資料暫存器RY 110…來源資料暫存器RX+1 112···來源資料暫存器RY+1 114···資料匯流排 116···封包加法(PADD)邏輯裝置 118…單一指令多重資料加法 (SMAD)邏輯裝置 200,250...PADD 指令 300,35CL.SMAD 指令 500...PADD邏輯裝置 502…左移位器
504,514···逐位邏輯〇R
506,510,512···逐位邏輯 AND 508…加法器 550-558···中間封包 7〇α··8ΜΑϋ邏輯褒置
30 1280012 7Q2...32位元進位《儲存加法器(CSA)
704.. .16 位元 CSA
706.. .8 位元 CSA 708.. .6輸入/2輸出多工器 710···第一 32位元加法器 712…第二32位元加法器 714,716,718...2輸入/1輸出多工器 720...3輸入/1輸出多工器 702-η,704-η,706-η.··4 : 2壓縮器
31

Claims (1)

  1. 拾、申請專利範圍: 第93115940號申請案申請專利範圍修正本 95.11_〇8 1· 一種用以執行封包運算之方法,包含以下步驟: 接收一封包加法(PADD)指令,其包含一結果暫存器 5 識別符來識別一結果暫存器,一第一來源暫存器識別符 來識別一儲存一第一運算元之一第一來源暫存器,以及 一運算元識別符來識別一第二運算元;以及
    回應於接受該PADD指令,讓一專用paDD邏輯裝置 執行該第一運算元及該第二運算元之封包加法來產生 10 一結果,以及隨後儲存該結果於該結果暫存器。 2. 如申請專利範圍第!項之方法,其中該運算元識別符識 別一儲存第二運算元之第二來源暫存器。 3. 如申請專利範圍第旧之方法,其中該運算㈣別符識 別一中間值來用作為該第二運算元。 15 4·如申请專利範圍第1項之方法,其中該PADD指令進一步
    包含一開始識別符來識別該第一運算元之開始位元。 5. 如申請專利範圍第1項之方法,其中該pADD指令進一步 包含一停止識別符來識別該第一運算元之停止位元。 6. 如申請專利範圍第丨項之方法,其中該pADD指令包括一 2〇 進位輸入參數,讓該專用pADD邏輯裝置以一進位輸入 執行該第-運算元及該第二運算元之封包加法,而產生 该結果。 7. 如申請專利範圍第1項之方法,其中該削〇指令包括一 資料攔位參數’指示只有儲存於該第—暫存器内容之某 32 些位元係用作為該第一運算元。 8. 如申請專利範圍第1項之方法,其中該PADD指令包括一 中間值參數,指示一中間值用作為該第二運算元。 9. 一種用以執行封包運算之裝置,包含: 一結果暫存器; 一第一來源暫存器; 一指令控制裝置,接收一PADD指令,其包含一結 果暫存器識別符來識別一結果暫存器,一第一來源暫存 器識別符來識別一儲存一第一運算元之一第一來源暫 存器,以及一運算元識別符來識別一第二運算元;以及 一專用PADD邏輯裝置,其係回應於該指令控制裝 置來執行該第一運算元及第二運算元之封包加法,而產 生一結果隨後儲存於該結果暫存器。 10. 如申請專利範圍第9項之裝置,進一步包含一第二來源 暫存器,其中該運算元識別符識別該第二來源暫存器為 儲存該第二運算元。 11. 如申請專利範圍第9項之裝置,其中該運算元識別符識 別一中間值來用作為該第二運算元。 12. 如申請專利範圍第9項之裝置,其中該PADD指令進一步 包含一開始識別符來識別該第一運算元之開始位元。 13. 如申請專利範圍第9項之裝置,其中該PADD指令進一步 包含一停止識別符來識別該第一運算元之停止位元。 14. 如申請專利範圍第9項之裝置,其中該PADD指令包括一 進位輸入參數,讓該專用PADD邏輯裝置以一進位輸入 月日修〃更)正替換頁 執行該第一運算元及該第二運算元之封包加法,而產生 該結果。 15. 如申請專利範圍第9項之裝置,其中該PADD指令包括一 資料欄位參數,指示只有儲存於該第一暫存器内容之某 些位元係用作為該第一運算元。 16. 如申請專利範圍第9項之裝置,其中該PADD指令包括一 中間值參數,指示一中間值用作為該第二運算元。 17. —種用以執行封包運算之方法,包含以下步驟: 接收一單一指令多重資料加法(SMAD)指令,包含 一結果暫存器識別符來識別一結果暫存器,一第一來源 暫存器識別符來識別一儲存第一運算元之第一來源暫 存器,以及一第二來源暫存器識別符來識別一儲存一第 二運算元之一第二來源暫存器;以及 回應於接受該SMAD指令,讓一專用SMAD邏輯裝 置執行該第一運算元及該第二運算元之加法,來產生一 結果,以及隨後儲存該結果於該結果暫存器。 18. 如申請專利範圍第17項之方法,其中該SMAD指令包括 一累計參數,其讓SMAD邏輯裝置產生之結果加至該結 果暫存器之既有内容。 19. 如申請專利範圍第17項之方法,其中該SMAD指令進一 步包含一2n-l模參數,讓該SMAD邏輯裝置執行該第一 運算元及該第二運算元之2n-l模加法。 20. 如申請專利範圍第17項之方法,其中該SMAD指令進一 步包含一長度參數,來載明該第一運算元及該第二運算 趨_12 • ). · ·. ... 1' 、 · . ... ' - .:· 1 .… - .... ' .i 元之位元長度。 21·如申請專利範圍第17項之方法,其中該SMAD指令包括 複數個運算元參數,載明運算元數目,包括SMAD邏輯 裝置欲執行加法來產生結果之第一運算元及第二運算 5 元。 22· —種用以執行封包運算之裝置,包含: 一結果暫存器; 一第一來源暫存器; 一第二來源暫存器; 修 10 一指令控制裝置,接收一SMAD指令,包含一結果 暫存裔識別符來識別—結果暫存器,一第一來源暫存器 識別符來識別一儲存第一運算元之第一來源暫存器,以 及一第二來源暫存器識別符來識別一儲存一第二運算 元之一第二來源暫存器;以及 15 一專用SMAD邏輯裴置,其係回應於該指令控制裝 置,執行第一運算元及第二運算元之加法,來產生一結 果,隨後該結果儲存該結果暫存器。 響 23. 如申請專利範圍第22項之裝置,其中該似心指令包括 -累計參數,其讓專用SMAD邏輯裝置產生之結果加至 2〇 該結果暫存器之既有内容。 24. 如申請專利範圍第22項之裝置,其中該隨〇指令進一 7包3 2 -1极參數’讓該專用SMad邏輯裝置執行該 第一運算元及該第二運算元之。模加法。 25. 如申請專利範圍第22項之裝置,其中制獅指令進— 35 藏80012
    步包含一長度參數,來載明該第一運算元及該第二運算 元之位元長度。 26·如申請專利範圍第22項之裝置,其中該SMAD指令包括 複數個運算元參數’載明運算元數目,包括專用SMAD 邏輯裝置欲執行加法來產生結果之第一運算元及第二 *梁结一 運异兀。 27· —種用以執行封包運算之方法,包含以下步驟: 接收一第一來源封包,包含一第一來源資料欄位位 於該第一來源封包之最低有效位元,一第二來源資料欄 位田比鄰於該第一來源資料欄位且係位於該第一來源資 料欄位之較高有效位元端’以及一第三來源資料欄位毗 鄰於該第二來源資料欄位且係位於該第二來源資料欄 位之較高有效位元端; 接收一第二來源封包,包含一第四來源資料欄位位 於6亥第一來源封包之最低有效位元;以及 形成一結果封包,包含一第一結果資料欄位,其為 5亥弟一來源資料攔位之相同逐位以及位元位置;一第二 釔果資料欄位其為該第二來源資料欄位及該第四來源 資料襴位之加法,且係位於該第二來源資料欄位之相同 位元位置,以及一第二結果資料攔位,其為該第三來源 資料欄位之相同逐位及位元位置。 28·如中叫專㈣g第27項之方法’其中形成該結果封包之 步驟包含以下步驟: 形成一第一中間封包,包含一第一中間資料欄位, 36 月3修/更)正勢頁 狀光奶此咖《««Λ的航奴嫌p〜 其為全部未經主張位元,且與該第一來源資料欄位位於 相同位元位置及相同位元長度;一第二中間資料欄位, 其為與第四來源資料欄位相同逐位,且係位於該第二來 源資料攔位之相同位元位置;以及一第三中間資料欄 5 位,其為全部經主張位元,且係位於該第三來源資料欄 位之相同位元位置及長度; 形成一第二中間封包,包含一第四中間資料欄位, 其為與該第一來源資料攔位之相同逐位及位元位置;一 第五中間資料欄位,其為與該第二來源資料欄位之相同 0 逐位及位元位置;以及一第六中間資料欄位,其為全部 未經主張位元,且係位於該第三來源資料攔位之相同位 元位置及相等長度; 形成一第二中間封包,包含一第七中間資料欄位, 其係與該第一來源資料欄位相同逐位以及位於相同位 5 元位置;以及—第人中間資料攔位,其為該第二中間資 料攔位及第五中間資料攔位之加法; 形成-第四中間封包,包含一第九中間資料攔位, 其為該第-來«_位之相同逐位,以及相同位元位 置;-第十中間資料攔位,其為該第八中間f料搁位之 20 相同逐位及位S位置;以及—第十-中間資料攔位,其 為全部未經主張位元,且係位於該第三來源資料搁位之 相同位元位置; 形成一第五中間封包,包含—第十二資料攔位,其 包含全部未經主張位元位在該第—來源資料搁位及第 37 1280012 二來源資料攔位之相同位元位置;以及—第十三資料搁 位’其係與該第三來源資料攔位為相同逐位及位元位 置;以及 _四中間封包及該第五中間封包形成該結果 5 封包。 29·如申凊專利範圍第28項之方法,其中形成該第三中間封 包包含第一中間封包與第二中間封包相加。
    30·如申凊專利範圍第28項之方法,其中形成該結果封包包 含該第四中間封包及該第五中間封包之逐位〇R運算。 10 •如申請專利範圍第27項之方法,其中形成該結果封包之 步驟包含以下步驟:
    形成一第一中間封包,包含一第一中間資料欄位, 其為全部經主張位元,且與該第一來源資料攔位位於相 同位元位置及相同位元長度;一第二中間資料欄位,其 為與弟四來源資料欄位相同逐位,且係位於該第二來源 資料欄位之相同位元位置;以及一第三中間資料欄位, 其為全部經主張位元,且係位於該第三來源資料欄位之 相同位元位置及長度; 形成一第二中間封包,包含一第四中間資料欄位, 20 其為與該第一來源資料欄位之相同逐位及位元位置;一 第五中間資料欄位,其為與該第二來源資料欄位之相同 逐位及位元位置;以及一第六中間資料欄位,其為全部 未經主張位元,且係位於該第三來源資料欄位之相同位 元位置及相等長度; 38
    mmn 形成一第三中間封包,包含一第七中間資料欄位, 其係與該第一來源資料欄位相同逐位以及位於相同位 元位置;以及一第八中間資料欄位,其為該第二中間資 料搁位及第五中間貢料搁位之加法, 5 形成一第四中間封包,包含一第九中間資料欄位,
    其為該第一來源資料欄位之相同逐位,以及相同位元位 置;一第十中間資料欄位,其為該第八中間資料欄位之 相同逐位及位元位置;以及一第十一中間資料欄位,其 為全部未經主張位元,且係位於該第三來源資料欄位之 10 相同位元位置; 形成一第五中間封包,包含一第十二資料欄位,其 包含全部未經主張位元位在該第一來源資料欄位及第 二來源資料攔位之相同位元位置;以及一第十三資料欄 位,其係與該第三來源資料攔位為相同逐位及位元位 15 置;以及
    由該第四中間封包及該第五中間封包形成該結果 封包。 32. 如申請專利範圍第31項之方法,其中形成該第三中間封 包包含以一進位輸入將該第一中間封包與第二中間封 20 包相加。 33. 如申請專利範圍第31項之方法,其中形成該結果封包包 含該第四中間封包及該第五中間封包之逐位OR運算。 34. —種用以執行封包運算之裝置,包含: 一邏輯裝置,係用以執行以下動作: 39
    年月曰f (更)正贺3頁 _____________________________ __ J 接收一第一來源封包,包含一第一來源資料欄位其 係位於該第一來源封包之最低有效位元,一第二來源資 料攔位其係毗鄰於且位於該第一來源資料欄位之較高 有效位元端,以及一第三來源資料攔位其係毗鄰於且位 於該第二來源資料欄位之一較高有效位元端; 接收一第二來源封包,包含一第四來源資料欄位其 係位於該第二來源封包之最低有效位元;以及 10 形成一結果封包,包含一第一結果資料欄位其為該 第一來源資料欄位之相同逐位及位元位置,一第二結果 為料棚位其為该弟一來源貧料搁位及該第四來源資料 攔位之加法且係位於該第二來源資料攔位之相同位元 位置,以及第三結果資料欄位其為該第三來源資料欄位 之相同逐位及位元位置。
    15 20 35.如申請專利範圍第34項之裝置,其中該邏輯裝置包含 一第一次邏輯裝置,形成一第一中間封包包含一 一中間資_位’其為全部未經线位元,且與該第 來源資料攔位位於相同位元位置及相同位元長产.一 二中間資料欄位,其為與第四來源資料攔位^逐位 且係位於該第二來源資料搁位之相同位元位置·以及 ^=間資料欄位’其為全部經主張位元,且係位於 弟二來源資料攔位之相同位元位置及長声· -第二次邏輯裝置,形成一第二中;封包,包含 弟四中_攔位,其為與該第—來源資料攔位之相 k立及位讀置,—第五中間資料攔位,其為與該第
    40 來源資料欄位之相同逐位及位元位置;以及一第六中間 資料欄位,其為全部未社張位元,且係位於該第三來 源資料攔位之相同位元位置及相等長度; -第三次邏輯裝置’形成一第三中間封包,包含一 第七中間資料攔位’其係與該第_來源資料欄位相同逐 位以及位於相同位元位置;以及—第人中間資料棚位, 其為該第料攔位及第五中間f料攔位之加法; 一第四次邏輯裝置,形成一第四中間封包,包含一 第九中間資料欄位,其為該第一來源資料攔位之相同逐 位,以及相同位元位置;一第十中間資料欄位,其為該 第八中間資料欄位之相同逐位及位元位置;以及一第十 一中間資料攔位,其為全部未經主張位元,且係位於該 弟二來源貧料搁位之相同位元位置; 一第五次邏輯裝置,形成一第五中間封包,包含一 第十二資料欄位,其包含全部未經主張位元位在該第一 來源資料攔位及第二來源資料攔位之相同位元位置;以 及一第十三資料攔位,其係與該第三來源資料欄位為相 同逐位及位元位置;以及 一第六次邏輯裝置,由該第四中間封包及該第五中 間封包形成該結果封包。 36·如申請專利範圍第35項之裝置,其中該第一次邏輯裝置 包含: 一左移位器,其係供左移位該第二來源封包之第四 來源資料攔位至該第二來源資料攔位之相同位元位 __2 卜:; r-> ί >. I ί ;.-;.勹.:'
    置,且有先導邏輯ο;以及 一逐位OR邏輯裝置,其係供以一遮罩逐位〇R運算 該經過移位之來源封包俾形成該第一中間封包。 37·如申請專利範圍第35項之裴置,其中該第二次邏輯裝置 5 包含一逐位AND邏輯裝置,其係供以一遮罩逐位AND 運异該第一來源封包俾形成該第二中間封包。
    队如申請專利範圍第35項之裝置,其中該第三次邏輯裝置 包含一加法器,其係供將該第一中間封包加至該第二中 間封包來形成該第三中間封包。 10 39·如申請專利範圍第35項之裝置,其中該第四次邏輯裝置 包含一逐位AND邏輯裝置,其係供以一遮罩逐位AND 運异該第三中間封包俾形成該第四中間封包。 4〇·如申請專利範圍第35項之|置,其中該第五次邏輯裝置 包含一逐位AND邏輯裝置來以一遮罩逐位AND運算該 15 第一來源封包俾形成該第五中間封包。
    41·如申請專利範圍第35項之|置,其中該第六次邏輯裝置 包含一逐位OR邏輯裝置,其係供逐位〇R運算該第四中 間封包及該第五中間封包來形成該結果封包。 42·如申請專利範圍第34項之裝置,其中該邏輯裝置包含: 2〇 一第一次邏輯裝置,形成一第一中間封包包含一第 一中間資料攔位,其為全部經主張位元,且與該第一來 源資料攔位位於相同位元位置及相同位元長度;一第二 中間資料欄位,其為與第四來源資料欄位相同逐位,且 係位於該第二來源資料欄位之相同位元位置;以及一第 42 -中間貝料攔位’其為全部經主張位元,且係位於該第 二來源資料攔位之相同位元位置及長度; 一第二次邏輯裝置,形成一第二中間封包,包含一 第四中間貢料欄位,其為與該第一來源資料攔位之相同 逐位及位元位置;-第五中間資料攔位,其為與該第二 來源資料攔位之相同逐位及位元位置;以及一第六中間 資料攔位,其為全部未經主張位元,且係位於該第三來 源資料攔位之相同位元位置及相等長度; 一第三次邏輯裝置,形成一第三中間封包,包含一 41 第七中間資料攔位,其係與該第一來源資料欄位相同逐 位以及位於相同位元位置;以及一第八中間資料欄位, 其為該第二中間資料欄位及第五中間資料攔位之加法; 苐四次邏輯裝置’形成一第四中間封包,包含一 第九中間資料欄位,其為該第一來源資料攔位之相同逐 位,以及相同位元位置;一第十中間資料襴位,其為該 第八中間資料欄位之相同逐位及位元位置;以及一第十 一中間資料欄位,其為全部未經主張位元,且係位於該 ® 第三來源資料襴位之相同位元位置; 一第五次邏輯裝置,形成一第五中間封包,包含一 第十二資料攔位,其包含全部未經主張位元位在該第一 來源資料欄位及第二來源資料攔位之相同位元位置;以 及一第十三資料欄位,其係與該第三來源資料欄位為相 同逐位及位元位置;以及 一第六次邏輯裝置,由該第四中間封包及該第五中 43 9&Ι28Θ012 —: 間封包形成該結果封包。 43·如申請專利範圍第42項之裝置,其中該第三次邏輯裝置 包含一加法器,其係以一進位輸入將該第一中間封包與 忒第一中間封包相加來形成該第三中間封包。 5 44_ 一種用以執行封包運算之方法,包含以下步驟·· 由複數個運算元產生一進位以及一儲存; 不έ進位輸入,將该進位及該儲存相加而形成一 第一和; 10 和 有進位輸入將該進位及該儲存相加而形成
    15 20 若需要模2η相加,選用該第一和; 右希2板2 _1加法’且該第_加法並未產生進位輪 則選用該第一和;以及 若希望模2Μ加法,且該第—加法確實產生進位輸 則選用該第二和。 45·如申請專利範圍第44項之方法,其中產生該進位及該儲 存係藉—進財轉加法雜彳t。 4=申請專利範圍第44項之方法,其中產生該進位及該儲存之步驟包含以下步驟: 產生第—中間進位及第二中間進位; 產生第—中間儲存及第二中間儲存;以及 由該第一中間進位第_ 間儲存及h 及弟一中間進位以及該第-中 .如申::第二中間儲存來產生該進位及該储存。 申·圍第46項之方法,其中產生該第-中間進 出 出
    44 47 ¢280012 及该红巾間進㈣H 行;以及其中產生該進位及該 ^儲存加法器執 儲存加法器執行。 予糸精—第二階進位- 其中產生該進位及該儲 48·如申請專利範ϋ第44項之方法, 存之步驟包含以下步驟: 產生第一階進位及第一階儲存; 由該第一階進位及該第— 及第二階儲存;以及 轉產生第二階進位 10 15 20 由該第二階進位及該第二階 儲存。 仔產生该進位及該 49.如申請專利範圍第48項之方法 及第-階儲存階進位 中彦^階進位_儲存加法器執行;且 生以二階進位及第二階儲存係藉_第 /、 儲存加法器執行·以月1 Φ 4 進位- 〜 以及其中產生該進位及該儲存係蕤一 弟二階進位-儲存加法器執行。 ,、曰 _ ㈣進位與_存相 相加,—第:和==進位與該- 5=申請專利範圍第44項之方法,其中選擇該第—和或該 弟一和係藉-多卫器執行。 Λ A 一種用以執行封包運算之裝置,包含: 一進位-儲存加法器,其係供由複數個運管元 一進位及一儲存; π座生 第一加法器,其係供產生該進位及該儲存之—第 45 前t2 — 月日終/: 一和,其中該第一加法器有一未經主張的進位輸入; 一第二加法器,其係供產生該進位及該儲存之一第 二和,其中該第二加法器具有一經主張的進位輸入;以及 一多工器,其係供選擇該第一和或該第二和作為其 5 輸出。 53. 如申請專利範圍第52項之裝置,其中該進位-儲存加法 器包含:
    一第一階進位-儲存加法器,其係供由該等運算元 產生第一及第二中間進位及第一及第二中間儲存;以及 10 一第二階進位_儲存加法器,其係供由該第一及第 二中間進位及該第一及第二中間儲存來產生該進位及 該儲存。 54. 如申請專利範圍第52項之裝置,其中該進位-儲存加法 器包含: 15 一第一階進位-儲存加法器,其係供由該等運算元
    產生第一階進位及第一階儲存; 一第二階進位-儲存加法器,其係供由該第一階進 位及該第一階儲存產生第二階進位及第二階儲存;以及 一第三階進位-儲存加法器,其係供由該第二階進 20 位及該第二階儲存產生該進位及儲存。 46
TW093115940A 2003-06-23 2004-06-03 Data packet arithmetic logic devices and methods TWI280012B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/602,349 US7139900B2 (en) 2003-06-23 2003-06-23 Data packet arithmetic logic devices and methods

Publications (2)

Publication Number Publication Date
TW200509612A TW200509612A (en) 2005-03-01
TWI280012B true TWI280012B (en) 2007-04-21

Family

ID=33518074

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093115940A TWI280012B (en) 2003-06-23 2004-06-03 Data packet arithmetic logic devices and methods

Country Status (3)

Country Link
US (4) US7139900B2 (zh)
TW (1) TWI280012B (zh)
WO (1) WO2005001686A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139900B2 (en) 2003-06-23 2006-11-21 Intel Corporation Data packet arithmetic logic devices and methods
TWI320913B (en) * 2006-08-30 2010-02-21 Via Tech Inc Methods, systems and computer-readable storage medium for shading process compiling of 3d computer graphics
DE102008041755A1 (de) * 2008-09-02 2010-03-04 Robert Bosch Gmbh Verfahren zur Herstellung mindestens eines mechanisch-elektrischen Energiewandlersystems und mechanisch-elektrisches Energiewandlersystem
US9071546B2 (en) * 2011-05-20 2015-06-30 Cisco Technology, Inc. Protocol independent multicast designated router redundancy
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US20150143076A1 (en) * 2013-11-15 2015-05-21 Qualcomm Incorporated VECTOR PROCESSING ENGINES (VPEs) EMPLOYING DESPREADING CIRCUITRY IN DATA FLOW PATHS BETWEEN EXECUTION UNITS AND VECTOR DATA MEMORY TO PROVIDE IN-FLIGHT DESPREADING OF SPREAD-SPECTRUM SEQUENCES, AND RELATED VECTOR PROCESSING INSTRUCTIONS, SYSTEMS, AND METHODS
US9684509B2 (en) * 2013-11-15 2017-06-20 Qualcomm Incorporated Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods
US10768930B2 (en) * 2014-02-12 2020-09-08 MIPS Tech, LLC Processor supporting arithmetic instructions with branch on overflow and methods
WO2015147895A1 (en) * 2014-03-26 2015-10-01 Intel Corporation Three source operand floating point addition processors, methods, systems, and instructions
US9733899B2 (en) * 2015-11-12 2017-08-15 Arm Limited Lane position information for processing of vector
US9928031B2 (en) * 2015-11-12 2018-03-27 Arm Limited Overlap propagation operation
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
US11531546B2 (en) * 2021-03-08 2022-12-20 International Business Machines Corporation Hexadecimal floating point multiply and add instruction

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
DE3177299D1 (de) * 1980-04-11 1993-04-15 Ampex Bildverarbeitungssystem fuer raeumliche bildtransformation.
US4393457A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Method and apparatus for sequencing addresses of a fast Fourier transform array
US4491932A (en) * 1981-10-01 1985-01-01 Yeda Research & Development Co. Ltd. Associative processor particularly useful for tomographic image reconstruction
US5047975A (en) * 1987-11-16 1991-09-10 Intel Corporation Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US4926369A (en) * 1988-10-07 1990-05-15 International Business Machines Corporation Leading 0/1 anticipator (LZA)
US5001662A (en) 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation
US5241636A (en) * 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
EP0649091A1 (en) * 1993-10-13 1995-04-19 International Business Machines Corporation Correction and modification of microprocessor chip operations
EP0735711A1 (en) * 1995-03-31 1996-10-02 International Business Machines Corporation Method and apparatus for modifying a frame check sequence (FCS)
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US7085795B2 (en) * 2001-10-29 2006-08-01 Intel Corporation Apparatus and method for efficient filtering and convolution of content data
CN101794212B (zh) 1995-08-31 2015-01-07 英特尔公司 控制移位分组数据的位校正的装置
AU1406997A (en) * 1995-12-15 1997-07-14 Intel Corporation Instruction encoding techniques for microcontroller architecture
US5793661A (en) * 1995-12-26 1998-08-11 Intel Corporation Method and apparatus for performing multiply and accumulate operations on packed data
US5983257A (en) * 1995-12-26 1999-11-09 Intel Corporation System for signal processing using multiply-add operations
US5740392A (en) * 1995-12-27 1998-04-14 Intel Corporation Method and apparatus for fast decoding of 00H and OFH mapped instructions
US5778246A (en) * 1995-12-27 1998-07-07 Intel Corporation Method and apparatus for efficient propagation of attribute bits in an instruction decode pipeline
US5835782A (en) * 1996-03-04 1998-11-10 Intel Corporation Packed/add and packed subtract operations
US5784307A (en) * 1996-05-31 1998-07-21 Intel Corporation Division algorithm for floating point or integer numbers
US5838960A (en) * 1996-09-26 1998-11-17 Bay Networks, Inc. Apparatus for performing an atomic add instructions
US5996066A (en) * 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
US5909572A (en) * 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6058410A (en) * 1996-12-02 2000-05-02 Intel Corporation Method and apparatus for selecting a rounding mode for a numeric operation
GB9707861D0 (en) * 1997-04-18 1997-06-04 Certicom Corp Arithmetic processor
US6208477B1 (en) * 1997-06-06 2001-03-27 Western Digital Corporation Hard disk drive having a built-in self-test for measuring non-linear signal distortion
US6047304A (en) * 1997-07-29 2000-04-04 Nortel Networks Corporation Method and apparatus for performing lane arithmetic to perform network processing
US6122131A (en) * 1997-09-12 2000-09-19 Quantum Corporation Adaptively-controlled disk drive assembly
US6202077B1 (en) * 1998-02-24 2001-03-13 Motorola, Inc. SIMD data processing extended precision arithmetic operand format
US6212618B1 (en) * 1998-03-31 2001-04-03 Intel Corporation Apparatus and method for performing multi-dimensional computations based on intra-add operation
US6211892B1 (en) * 1998-03-31 2001-04-03 Intel Corporation System and method for performing an intra-add operation
US6243803B1 (en) * 1998-03-31 2001-06-05 Intel Corporation Method and apparatus for computing a packed absolute differences with plurality of sign bits using SIMD add circuitry
US6418529B1 (en) * 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
US6014735A (en) * 1998-03-31 2000-01-11 Intel Corporation Instruction set extension using prefixes
US6115812A (en) * 1998-04-01 2000-09-05 Intel Corporation Method and apparatus for efficient vertical SIMD computations
US6212628B1 (en) * 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer
US6263426B1 (en) * 1998-04-30 2001-07-17 Intel Corporation Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
US6862278B1 (en) * 1998-06-18 2005-03-01 Microsoft Corporation System and method using a packetized encoded bitstream for parallel compression and decompression
US6073154A (en) * 1998-06-26 2000-06-06 Xilinx, Inc. Computing multidimensional DFTs in FPGA
US6204988B1 (en) * 1998-08-24 2001-03-20 Western Digital Corporation Disk drive capable of autonomously evaluating and adapting the frequency response of its servo control system
US6636372B1 (en) * 1999-04-20 2003-10-21 Infineon Technologies North America Corp. Accumulating read channel performance data
US6629115B1 (en) * 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US6530061B1 (en) * 1999-12-23 2003-03-04 Intel Corporation Method and apparatus for offloading checksum
US6745319B1 (en) * 2000-02-18 2004-06-01 Texas Instruments Incorporated Microprocessor with instructions for shuffling and dealing data
US6859815B2 (en) * 2000-12-19 2005-02-22 Koninklijke Philips Electronics N.V. Approximate inverse discrete cosine transform for scalable computation complexity video and still image decoding
US7190667B2 (en) * 2001-04-26 2007-03-13 Intel Corporation Link level packet flow control mechanism
US6766344B2 (en) * 2001-05-08 2004-07-20 International Business Machines Corporation Processing Galois Field arithmetic
US6973470B2 (en) * 2001-06-13 2005-12-06 Corrent Corporation Circuit and method for performing multiple modulo mathematic operations
US7162607B2 (en) * 2001-08-31 2007-01-09 Intel Corporation Apparatus and method for a data storage device with a plurality of randomly located data
US6976049B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Method and apparatus for implementing single/dual packed multi-way addition instructions having accumulation options
US7343389B2 (en) * 2002-05-02 2008-03-11 Intel Corporation Apparatus and method for SIMD modular multiplication
US20030231660A1 (en) 2002-06-14 2003-12-18 Bapiraju Vinnakota Bit-manipulation instructions for packet processing
US6986023B2 (en) * 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
US7089649B2 (en) * 2002-09-26 2006-08-15 Samsung Electronics Co. Ltd, Method of estimating a thermal pole tip protrusion for a head gimbal assembly
US7310337B2 (en) * 2002-12-31 2007-12-18 Intel Corporation Packet header alignment
US20040193847A1 (en) * 2003-03-31 2004-09-30 Lee Ruby B. Intra-register subword-add instructions
US7139900B2 (en) 2003-06-23 2006-11-21 Intel Corporation Data packet arithmetic logic devices and methods
US7149877B2 (en) * 2003-07-17 2006-12-12 International Business Machines Corporation Byte execution unit for carrying out byte instructions in a processor
US7492710B2 (en) * 2005-03-31 2009-02-17 Intel Corporation Packet flow control
US7768518B2 (en) * 2006-09-27 2010-08-03 Intel Corporation Enabling multiple instruction stream/multiple data stream extensions on microprocessors
US7949130B2 (en) * 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)

Also Published As

Publication number Publication date
US8473719B2 (en) 2013-06-25
US20150134936A1 (en) 2015-05-14
US8938607B2 (en) 2015-01-20
WO2005001686A3 (en) 2006-01-26
TW200509612A (en) 2005-03-01
WO2005001686A2 (en) 2005-01-06
US20040260914A1 (en) 2004-12-23
US7139900B2 (en) 2006-11-21
US20130290684A1 (en) 2013-10-31
US9804841B2 (en) 2017-10-31
US20070074002A1 (en) 2007-03-29

Similar Documents

Publication Publication Date Title
TWI280012B (en) Data packet arithmetic logic devices and methods
US7225212B2 (en) Extended precision accumulator
EP1379939B1 (en) Partial bitwise permutations
US7599981B2 (en) Binary polynomial multiplier
TW310406B (zh)
TW564368B (en) Method and apparatus for arithmetic operations on vectored data
US20070192399A1 (en) Power-efficient sign extension for booth multiplication methods and systems
TW200841235A (en) X87 fused multiply-add instruction
JP2009282992A (ja) 多項式演算オペレーション
TW531710B (en) System and method for modular multiplication
Ghasemi et al. Augmenting general purpose processors for network processing
TW200525381A (en) Apparatus and method for generating packed sum of absolute differences
JPS63240219A (ja) 乗算剰余演算装置
Ananyi Design of a reconfigurable processor for elliptic curve cryptography over NIST prime fields
JPH02103625A (ja) 十進乗算方式

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees