TWI249685B - Apparatus and method for generating packed sum of absolute differences - Google Patents
Apparatus and method for generating packed sum of absolute differences Download PDFInfo
- Publication number
- TWI249685B TWI249685B TW093123708A TW93123708A TWI249685B TW I249685 B TWI249685 B TW I249685B TW 093123708 A TW093123708 A TW 093123708A TW 93123708 A TW93123708 A TW 93123708A TW I249685 B TWI249685 B TW I249685B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- difference
- instruction
- sum
- value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 17
- 238000005516 engineering process Methods 0.000 claims description 44
- 238000006243 chemical reaction Methods 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 8
- 230000000295 complement effect Effects 0.000 claims description 5
- 230000005611 electricity Effects 0.000 claims description 4
- 239000000047 product Substances 0.000 claims 5
- 210000004556 brain Anatomy 0.000 claims 2
- 238000004590 computer program Methods 0.000 claims 2
- 206010011224 Cough Diseases 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000008821 health effect Effects 0.000 claims 1
- 229910052500 inorganic mineral Inorganic materials 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 claims 1
- 239000000463 material Substances 0.000 claims 1
- 239000011707 mineral Substances 0.000 claims 1
- 239000013589 supplement Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 210000000003 hoof Anatomy 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
1249685 九、發明說明: 【發明所屬之技術領域】 本發明係關於-種微處理機計算操作的方法,侧是·產生絕對差 值封包總和的一種方法及裝置。 【先前技術】 架構微處理器的指令集中,&含了—組絕對差值封包總和 PaCked SUm 0f absolute difference) 位元妗入支曾 ί !: (UnSlgned byte intege~ ° 在_ 64 元’‘個’二中一個輸入運算元作為減法運算中的一被減數運算 1Γ 彳作為減法運算中的—減數運算元。因此,當絕對i值 時將兩個輸人運算元作為減數與被減數相減 也就是相對應八個_無符號16位元的結果, 而這個絕對差值封包㈣特別的咸 第一 侧方式,乃是將 值取絕對值,最後再將此=傾法運异產生—個差值,然後將此差 封包總和指令的方式。鈇而,加起來’作為執行絕對差值 要一 特別是針對在作連續 加法運算的時候。囚此,我 .....、-丨項 樣的缺點,峨魏姆改善上述這 1249685 【發明内容】 本發明的目的’乃提供一個具有多媒體延伸技術單位的微處理器裝置, 去執行一個多媒體延伸技術之絕對差值封包總和的指令。 τ严個裝置包含有進位產生(carry-generating)減法封包邏輯,這個 邏輯的主要魏為,將無槪概數運算元封包減去無符賴數運算元封 包’產生-個相減後的紐封包,以及與每健仙關的進位位元。若該 相關的進錄π為布林數值i時,則表示此進錄元對躺差值為負數, 1反的’若布㈣:值為〇,則表示此進位位元所聽的差值為正數。此裝置 還包含一個多工器(multiplexer),用以判斷每個差值所相關的進位位元 布林數值為〇或是i。而對於一個負數的差值而言,可以經由加入一個布 林數值為1的相對應進位位元去反轉(inverted)相關的差值,而可以得 到差值的絕雕;而對於—個正數的差值而言,則加辨林數值為〇 的相對應進錄元,去對此細的差值作非反轉(nQn_inverted)的動作, 也可以得到此差值的絶對值。 另外,為了產生絕對差值封包總和指令的結果,將差值選擇性地作反 轉,或是加入進位位元等動作,都是平行的動作,也就是同時進行的動作。 更簡單來說,差值的絕對值計算完成之後,本f上是瞒將轉換性轉換的 差值與進錄元進行相加運算,以完成—錄速的絕對差冊包總和指令 結果0 在本發明所提出的實施例裝置中,多媒體延伸技術(ΜΜχ; multimedia extension)單元包含兩個16位元的乘法器線路(multipUei; pipelme)。每個乘法器線路包含一個部分乘積產生器、(卿制⑽ generator),並經由布斯(Booth)編碼,產生出九個部分乘積。本發明 (addition logic) , 一個節省進位加法器(cany-save adder),置於每一個乘法線路之中,係 將部分乘積(partial product)加起來,產生一個總和。另外,更包含二 1249685 個全加器(full adder),用以將兩個乘法器線路的總和相加。本發明之裝 置亦包含一多工器(multiplexer)置於每個乘法器線路之中,在一個乘^ 才曰令的情況下’用來選擇乘法器的部分乘積,提供到加法邏輯中。然而, 若是在於一個絕對差值封包總和的指令的情況下,此多工器將提供選擇性 地轉換差值以及其進位位元,到加法邏輯中。 本發明的實施例中,經由微處理器中的多媒體延伸技術單元,來將絕 對差值封包總和的巨集指令,轉換到第一及第二微指令中來執行。 【實施方式】 請參考第一圖,係表示習知之多媒體延伸技術中絕對差值指令之方塊 圖。其中,參考標號100係表示為多媒體延伸技術(MMX; multimedia extension)中絕對差值封包總和(PSADBW; packed sum 〇f abs〇lute difference)指令。在多媒體延伸技術中絕對差值封包總和指令方塊圖1〇〇 中,包含一個指令作業碼102,用來指定多媒體延伸技術中,絕對差·值封 包總和指令,以及兩個指令運算元1〇4與1〇6。其中,第一個指令算元1〇4 包含八個封包無符號位元組之被減數運算〇perancJ),標示為 X0到X7。第二個指令運算元106則包含八個封包無符號位元組之減數運 算元(subtrahend operand),標示為 γ〇 到 Y7。 在多媒體延伸技術中絕對差值封包總和指令1QQ中,產生一個絕對差 值封包總和指令結果108,此結果乃為八個差值的絕對值的總和,也就是 由被減數運异元104與減數運算元1〇6相減後所得到的差值的絕對值的總 和。而關於絕對差值封包總和(PSADBW)的詳細描述,可以參考1999年 英特爾軟體結構發展手冊,第二冊中的指令集參考,由3-545頁到3_547 頁。(1999 Intel Architecture Software Develop,s Manual,Volume 2 : Instruction Set Reference, at pages 3-545 through 3-547) 請參考第二圖,係表示微處理器200用以執行絕對差值封包總和指令 1249685 之方塊圖。微處理器方塊圖200包含一指令轉換邏輯2〇2、一個微指令儲 列204,耦接到指令轉換邏輯202、以及一個多媒體延伸技術單元206, 耦接到微指令儲列204。 微處理器200中的指令轉換邏輯202,主要的功能為轉換巨集指令到 一個或多個微指令中。其中巨集指令如第一圖之絕對差值封包總和的巨集 指令100。在本實施例中,巨集指令亦包含x86架構,微處理器内部之指 令集的指令,例如多媒體延伸技術指令。另外,指令轉換邏輯202將絕對 差值封包總和指令100轉換成兩個巨集指令,分別為PMULSAD 212及 PSUBSAD 214如第二圖所示。在PSUBSAD 214微指令中,可命令多 媒體延,技術單元2〇6,產生一個絕對差值封包總和運算元封包的差二, 並產生每值姆躺驗位元,以及依絲個姆職進位 值,選擇性的轉換每-個差值。另外,在PMULSAD犯微指令中,將指 不多媒體延伸技術單元206,將相對應的進位位元,與選擇性祕換差^ 相加,進而產生絕對差值封包總和指令的結果。而微指令咖即奶 與PMULSAD 212的運算元,將在第三圖及第四圖詳細的描述。 機邏輯,,如··微指令或本 射或-個組a的邏輯、電路、裝置、或微碼或等效元件等 =巨集指令到相_微指令制。#元件在指令轉換邏輯_巾執行轉換 微碼等翻,而被共_路,_ w在微 ,理為200巾的其他魏。—個微齡(通f參考錢本機齡個 ’係為^執⑽執行單元,例衫髓延倾料元施。 C〇1nputer_RISC)的微處理器直接執行微指令。而對_複雜指二= 冓u处里為相谷的u處理器而言,χ86架構微處理器的 =目關的微指令中’且其相關的微指令則可經由位於 電:矣 理益内的-個單元或多數個單元直接執行。 V集電細微處 124968$ 接著,藉由指令轉換邏輯2〇2雜—微指令至微指令制2(Η, ίΪΪ待藉由微處職的執行單元所執行的指令,,例如多媒體延伸 二了單το 206。微指令儲列204内具有多數個微指令輸人^這些微指a ^指令儲列204提供微處理器_的執行單元,例如:多媒體延伸技^ 之多媒體延伸技術單元206。 丁 在本發明實施例巾,多舰延伸技術單元2G6,包含—個多媒 ,術的職暫存H ’雜㈣存Μ具有錄蹄存器,时儲存指令‘ 二^些指令轉元如第—圖中的絕對差值封包總和指令之 =4及減數運算元106。多媒體延伸技術單元的執行操作規則運S j處祕珊段的令所傳送制。其巾,多媒體延 二輯、電路、裝置或微碼(例如:微指令或是本機指令^ 7提供的執彳·侧。#崩爾_ 巾料=== ^日寺’可能會與其他的電路或微碼共用等等,而這些共用的猶,= 樣可以在微處理器200内執行其他的功能。 、丨疋问 元,媒體延伸技術單元2。6,可以與其他的執行單 進行。在-個相容於x86輯微處理器的實施例中,多媒體延伸夺 =日U1=趙單元、—個x86浮點單元以及—個咖_ ΐ ? rx86 t" 卿丁個厭大的應用知式,則可以設計x8 行。並且假設此應用程式可以正確的被執行,而獲得所=== 個與=86相谷的貫施例中,將考慮多媒體延伸技術單元_與上 的執行早7L結合,且為同時操作。而關於多媒體延伸技術單元咖’,將合 詳細描述於下列之第三圖與第四圖中。 將曰 1249685
參考第三圖,係表示根據本發明第二圖的多媒體延伸技術單元2〇6的 結構之方塊圖。多媒體延伸技術單元206包含進位產生封包減法邏輯 (cariy-generating packed subtraction logic) 308,主要用以接收微指 令306,例如,由第二圖中微指令儲列204所產生的微指令PMULSAD 212 或是 PSUBSAD 214。減法邏輯(subtraction logic) 308 同樣接收位
於第一圖中,經由絕對差值封包總指令所產生的被減數運算元1〇4與減數 運算元106的訊號。之後,減法邏輯308完成減法運算後,產生一個封包 無符號位元組差值314,且對應於每一減數與被減數對。而產生的的封包 無付號位元組’也就是如弟二圖中差值314所表示的由X7-Y7到XQ—YQ 的運算。此差值314的所產生的數值,乃是利用二的補數運算法所計算產 生。 對於每個差值314而言,在減法邏輯308中會產生相對應的進位位元 312,如圖三所示的C7到C0。在本發明實施例中,進位位元312係儲存 在儲存元件中,其中儲存元件可以是閂鎖器(latches)或是暫存器(registers) 内。進位位兀312通常做為借位位元(b〇rrow bits)、下溢位元(underflow bits)或是訊號位元(sign bits),其主要原因乃是因為被減數1〇4無法確定 疋否舄要第九個借位位元,或是指示相關的差值314的數值為正數或是負 數。 、 另外,對於每個差值314而言,若是相關的進位位元312為布林數值 1,其所對應的差值314則為負數;若是為布林數值〇,則所對應的差值 314則為正數。例如:假設被減數Χ4 1〇4為13ι〇或是〇〇〇〇n〇i2,減 數Y4 106為910或是000010012,之後將χ4-γ4所獲得的差值314為 410或是〇〇〇〇〇1〇〇2,此時進位位元314的C4的值則為0,因為不需要 借位。也就是說,進位位元314中的C4,表示Χ4-Υ4的差值314為正數, 而Χ4-Υ4的差值314的絕對值,也就是Χ4_Υ4的差值314的數值。然而, 若疋假设被減數Χ4 104為9ι〇或是οοοοιοο!2,減數γ4 1〇6為1310 或是000011012,而Χ4-Υ4所獲得的差值314則為」^1〇或是 1249685 1111110〇2,而此時進位位元312内的C4的數值則為i,因此需要一個 借位位元。也就是說進位位元312内的C4表示X4-Y4的差值314為負 數,而X4-Y4的差值314的絕對值,則不等於Χ4_γ4的差值314的數值。 而為了得到X4-Y4的差值314的絕對值,可依照二的補數計算方法,將差 值314加人-個1 ’也就是先將差值314的數值反轉,再將此反轉的數值 加入-個i,則獲得_〇〇1〇〇2或是4ι〇,而此數值也就是斗〇或是 111111002的絕對值。 在於多媒體延伸技術單元206中,通常包含八位元組轉換器316,每 -個八位元組轉換|| 316連接摘應的每個封包差值314,以接收每個封 包差值314所產生的數值,並產生一個布林數值的補數,或將其轉換。 φ 、多媒體延伸技術單元206中亦包含了八位元組的雙輸入多工器318, 並與所對應的每她元轉換n 316所連接。每個乡工器318的兩個輸入 端將分別接收由所對應的餘組轉換H 316所輸出的數值,域接收封包 差值314的輸出值’作為輸入端的輸入值。每個多工器所接收的輸入 值,由其所對應的進位位元312所控制。假如進位位元312的布林數值為 0而夕工器318將選擇差值314的輸出值作為其輸入值,若進位位元312 的布林數鶴1,乡ji|| 318縣選獅位元轉換II 316的輸&值作為 其輸入值。因此,多工器3i8的輸出值則包含了八個由減法邏輯3〇8職 _ 生的差值314的數值之選擇性轉換差值322。選擇性轉換差值您,也就 是在第三圖中所表示的Z7到Z0。 •多媒體延伸技術單元206也包含兩組16位元乘法線路㈣脚化 pipelmes),-組為乘法器(multiplier)A 338A,一組為乘法器B 3細, 如第三_示。在每組乘法器338包含-個部分乘誠mpartial product generator),如第三圖所示。乘法器338A巾的部分乘積產生器 為=36A’乘法器338B中的部分乘積產生器則為336B,並將分別的在乘 法器338A中產生出部分乘積334A,以及在乘法器338B中產生部分乘 12 1249685 積 334B。 在本發明實施例中,部分乘積產生器336内包含布斯(Booth)編碼 器’每一個布斯編碼器產生九個根據三個乘法器運算位元,做為檢查的16 位元部分乘積,以產生每一個部份乘積。部分乘積中通常包含外加位元 (additional bits),例如:訊號延伸(sign-exterision)位元。因此,更進 一步來說,當這些部份乘積相加時,在至少八個部分乘積中,至少有八個 位元重疊。 在乘法器338A與338B中,通常包含雙輸入多工器,如第三圖中的 加數多工器(addend multiplexer)A 326A與加數多工器B 326B。加數多 工器A 326A其中的一個輸入端,主要在接收由部分乘積產生器咖八所 φ 產生的部分乘積334A,而另一個輸入端則是接收由進位位元312所產生 的輸出值。而加數多工器B 326B,其中的一個輸入端,接收由部分乘積 產生器336B所產生的部分乘積334B,另一個輸入端則搂收選擇性轉換 差值332的輸出值。而每一個加數多工器326將會收到一個微指令型態訊 號324的控制輸入訊號,來指示微指令型態訊號為一 pMULSAD微指令 或是一乘法指令。假如,微指令型態324訊號為執行一 PMULSAD微指 令’則表不加數多工器326A將選擇進位位元312來作為其輸出值,否則, 加數多工器326A將則選擇部分乘積334A,作為其輸出值。另外對於加數 夕工器326B而言,當微指令型態324執行為一微指令PMULSAD,則表 傷 示此時加數多工器326B將選擇選擇性轉換差值322的輸出值作為其輸出 值’否則,將選擇部分乘積334B作為其輸出值。 在乘法器338A與338B中通常亦包含加法器328A盘328B。在本 發明實施射,加法ϋ 328巾包含節省驗加法器(啦^猶_的。 加法器328A主要為接收加數多工器326A的輸出值,加法器328B則為 接收加數多JiH 326B的輸出值。也就是,加法器3觀會將所接收到的 輸出值,不論是部分乘積334A,或進位位元312的輸出值作相加,並由 微指令型L虎324的訊號來作控制。相同的,加法器328B也會接收到 13 1249685 / 不响疋由。卩为乘積334B作為加數相加,或是選擇性轉換差值322作相 加,亦都是根據微指令型態訊號324的訊號來作控制。 在本發明實施例中,加法器328被安裝主要用來將至少九個加數相 加^其中,每個加數包含至少、16位元。制是所有的加數至少有八個位元 重4:,其總和中所包含的32位元,則經由加法器328所產生。 本發明實施例中,每-個加法器328包含一個第一列3 ·· 2的節省進 =加法器’用以簡化九個部分乘積為六個中間部分乘積m 2的節 2位加法器’則簡化六個部分乘積為四個中間部分乘積;第三列3 : 2的 即=位加法ϋ,將簡化四個部分乘積為三個部分乘積;以及第四列3 ·· 2 的即省進位加法ϋ,則將三個部練積簡化為兩個巾間部分雜,其包含 一個進位值與一個總和值。 … 抑多媒體延伸技術單元206 it常包含-個加法器332,用以接收由加法 器328A與328B所產生的總和值。在本發明實施例中,加法器内包 合-個全加器。加法器332將由加法器3說與3細所產生的輸出值相 加’產生-個取後的總和值,而這也就是絕對差值封包總和指令結果舰, 並假設微指令型態訊號324為一個pMULSAD微指令,否則,則是將兩 個16位元乘法器所產生的乘積相加,產生一個最後的總和值。在本發明實 施,中,若希望的結果為-m6位⑽乘法積值,則輸人一個Q的值到加 法為332。中(例如·其輸入並不是由乘法器所執行的位元乘法)即可 產生-個最終的16位元的乘法的積值。本實施例中,由兩個乘法器338 與加法器332相互連結去執行—個32位元的乘法。 本實施例中的多媒體延伸技術單元206,亦包含兩個節省進位加法器 (cany— adder)(未在圖中表示)。節省進位加法器係用來簡化加法器 328A與328B中的總和與進位,將其變為單一總和與進位,再提供到全加 124968; 器332中,進而產生最後一個單一的總和i〇8 〇 根據以上的描述,可以更有效的產生完成每一個在封包差值3丨4内數 值的絕對值,主要是同時加入進位位元312與選擇性轉換差值322而得 到。也就是說,假如所給定已知的封包差值314數值為負數時,其絕對值 可經由封包差值314所產生到多工器318的值來轉換。之後,實際加入進 位位元312 (若封包差值314為負數,則一個布林數值為υ至^轉換的 差值内。所以,假如被轉換的封包數值314,作為選擇性轉換差值322中 的數值’則將具有一個布林數值1。相反的,假如已知的封包差值314為 正數,則其絕對值可經由非轉換(non-inverted)封包差值314所產生^ 多工器318的數值來完成,然後實際加入進位位元312 (若封包差值314 為正的數值,則一個布林數值為0)到非轉換的封包差值314中。所以, 假如被非轉換的封包數值314,被作為選擇性轉換差值322中的數值,則 將具有-個布林數值Q。更進-步而言,#所加人的進位位元312與選擇 性轉換錄322同時執行時,而不是先產生差值的絕對值後在將其連續的 相加起來,因此,將產生一個快速的絕對差值封包總和指令結果/、、 參考第四圖,係根據本發明第二圖中,微處理器2〇〇所執行的一個絕 對差值封包總和指令之流程圖。其流程圖由方塊4Q2開始。 在方塊402中,-個微處理器200,讀取在第一圖中的一個絕對差值 封包總和巨集指令100。接著,執行方塊4〇4。 在方塊404巾,第二圖中的指令轉換邏輯202,將轉換絕對差值封包 總和指令,轉綱PSUBSAD 214與PMULSAD 242微指令巾,並且儲 巾。之後’再傳送到第二圖_職延伸技術單元 206。接者,執行方塊406。 在方塊406係表示多媒體延伸技術單元2〇6執行psUBsAD微指令 15
I 1249685 214。並針對PSUBASAD微指令214的動作,0 中的減法器,將減數106與被減數104 第=減=30 位位7G 312,表不封包差值314的數值為备乾· c 的布林數值朴職稍包編14隨鶴 方塊棚絲雜元轉換n 316將職 且假設所對應的進錄元312的树數值為 r器⑽將選擇封包差值31二:=== 斗產^健值到如第三圖中的選擇性轉換差值322心接著,執行方塊 方塊412係表示微指令型態324的訊號將提供到加數多工器326内 如圖三中所示。接著,執行方塊414。 方塊414係表示加數多工器326將決定微指令型態3私,是否為一個 PMULSAD微指令212。如果是的話’整個流程將繼續進行到方塊422, 及夕,目丨I勒ϋ古祕_ 在方塊416中表示,加數多工器326將選擇如第三圖中,部分乘積產 生器336所產生的部分乘積334的訊號。接著,執行方塊418。、 在方塊418中表示,將第三圖内的加法器328與332之部分乘積334 相加,產生一個由乘法指令所控制的結果。而此流程到此結束,也就是由 从才a令型悲324所選擇一個乘法指令所產生的流程結果。 方塊422係表示微指令型態324選擇pmulSAD微指令212作為訊 號,因此加數多工器326的功能則是選擇八個選擇性轉換差值322,與進 1249685 位位元312所產生的輸出值。接著,執行方塊424。 方塊424表示,加法器328與322,將八個選擇性轉換差值犯2與 八個進位位元312相加,並產生出PSADBW 100指令的結果1〇8。而 個流程到424截止。 因此,由之前所提及的觀念可知,本發明可更進一步的在兩個微指令 的週期内,執行絕對差值封包總和指令。在本實施例中,絕對差值封包總 和巨,指令1CK)的執行,是經由在微處理器2⑻内細個核心時脈週期。 也就是說,多雜延倾術單元2Q6執行封包減法與差_轉 σ 依照PSUBSAD微指令214,在一個單一核心週期内的;而執行進位位$ _ 312與選擇性轉換差值322的加法,則是依照pMULSAD微指八 處理的時間則是在三個核心週期内。 206所的古描述中可知,多工器326致能多媒體延伸教術單元 ,包總和指令或乘法器的指令。因此,透過重複使用共㈣ 月匕可以減4在執行多個指令時,所需電路的總數。 雖然本發明的主旨、碰與優點已被詳 , 相關的實施例仍被包含於本發明中 他與本發明 媒體延傭彳賴實蝴所提及的是關於多 媒體U申技★、纟ε縣值封包總和齡版柄 施例的裝置村操作麵貫 ,’雖然轉換的布林數值在本實婦被描述為i或:==數 值也终可以縣現為其他不 -疋布林數 邏輯或是慣用的電麼、件中’特別是利用不同級數的 發明的觀各。3 ^ 其31式’且所表現㈣式並沒有脫離本 延伸技卿;行單ί 實施例所提之微處理器亦可以包含多個多媒體 17 /1249685 同樣的,完成本發騎的硬體之外,本發明完成於電腦可讀 :例如·電細可讀取程式碼、資料等等),並具體實現於一個可使用的 電腦媒體上。而電腦酬是根據本發賴揭露的功能輕置或兩者皆是, 來完成,如:本發明可經由—般的程式語言(例如·· c、c++、java或 類似的語言)、GDSII資料庫、機械語言(HDL)包含 Altera HDL(AHDL) Τ , : schematic) 娜、碼可被裝置於任何已知可使用的電腦媒體上,包含半導體記憶 Γ曰叮:光碟(例如··CEKROM、DVDR0M或其他類似的裝置)以及 X將電具體表現出來的電腦可使用(例如:可讀取)傳輸裝 波或其他裝置包含數位、光學、類比等裝置)。好比說,電腦 :二? #輸於通訊網路,其包含網際網路及企業内部的網路。因此可以 機满,Ϊ明s可以被具體化,經由電腦碼(例如:部分人工智慧碼)、微處理 (sori Γ、個系統級的設計,像是一個系統晶片(System on chiP ,以及可以將其轉換到積體電路的硬體中。 雨的之所述之内容’其僅為本發明之較佳實施例而已,其所有已揭 =替以限林發明之中請專利範圍;凡其它未脫離本發明所揭 ;、月^下所7〇成之較改變或修飾,均應包含在下述之中請專利範圍内。 【圖式簡單說明】 知細’乡媒體㈣技舰縣韻包總和(PSADBW) 124^685 第二圖係根據本發明所揭露之第二圖,所表示之多媒體延伸技術單元 之方塊圖;以及 第四圖所表示為本發明第二圖中之微處理器執行絕對差值封包總和之 方塊流程圖。 【主要元件符號說明】
1 〇〇多媒體延伸技術絕對差值封包總和(PSADBW)指令方塊圖 102絕對差值封包總和指令作業碼1〇4被減數指令算元 106減數指令運算元 108絕對差值封包總和指令結果 200微處理器 202指令轉換邏輯 204 —個微指令儲列 200多媒體延伸技術單元 306微指令 308進位產生封包減法邏輯 •312差值進位位元 314封包差值 316位元組轉換器 318多工器 322選擇性轉換差值 324微指令型態
326A加數多工器A 326B加數多工器B
328A節省進位加法器a 328B節省進位加法器3 332全加器 334A部分乘積A
334B部分乘積B 336A部分乘積產生器A
336B部分乘積產生器B 338A乘法器A 338B乘法器B 19
Claims (1)
1249685 十、申請專利範圍:
说】丄1 出原説贺香. 1· 一種執行多媒體延伸技術絕對差值封包總和(PSADBW)指令的裝 置,包含: 一減法器,由一封包運算元指令產生一封包差值,以及與每個封包差值 相關的進位位元; 一轉換器,連接該減法器,用以產生每個該封包差值的一轉換值; 一第一多工器,連接於該轉換器與該減法器,用以判別由該進位位元所 指示的該封包差值為正數或是負數,並選擇相對應該封包差值為正數或是 負數的一輸出值;以及 一加法器,連接該第一多工器,將該進位位元與該第一多工器的該輸出 值相加,產生一多媒體延伸技術絕對差值封包總和(pSAD_指令的結果。φ 2·如申請專利範圍第1項所述之執行多媒體延伸技術絕對差值封包 總和(PSADBW1指令的裝置,更包含·· -指令型態輸人,用以指示魏置執行—珊差值封包總和(pSADBW) 指令或是一乘法指令;以及 -第二多工器,連接於該第一多工器’當該指令型態輸入為絕對差值 封包總和(PSADBW)齡時,提供該進錄元無第—多巧之咳輸出值 至該加法器^當該齡型態輸人為__乘法指令時,職供部分乘積至該 3.如申請專利範圍第i項所述之執行多媒 和(PSADBW)指令的裝置,其中上述加法器更包含:Μ巴對差值封匕〜 一第一加法器與一第二加法器,當勃并$ + 個第-部分乘積與多數個第二部分乘積分別相力^4指令時,將多數 4·如申請專概Μ 3項·述之執行 對 包總和(PS腦W)指令的襄置,其中上述加法器更&職術獨差值封 一第三加法器,連接於該第一加法器盥W = · ”以第_加法器,將該第一加法器 20 Ί249685 器產生似^ 勹第4項所描述之執行多媒體延伸技術絕對差值封 包矣和(PSADB爾曰令的裝置’其中上述第三加法器在至少一個乘法指 令k ’選擇㈣操似生-_分乘_和健果。 6. 如申„月專她圍第4項所描述之執行多媒體延伸技術絕對差值封 包總和(PSADBW)指令的裝置’其中上述第一總和值包含該進位位元的 總和值。 參 7. 如申4專她_ 4項所叙執行㈣體延伸麟麟差值封包 總和(PSADBW)指令的裝置,其巾上述第二總和值包含該第—多工器輸出 的總和值。, 8·如申4專利補第1項所述之執行乡雜延伸技舰對差值封包 總和(PSADBW)指令的裝置,射上述每麵進位位元包含·· 當該相_差值封包為正_,該進位位·包含—布林數值“零,,; 當該相關的差值封包為負數時,則該進位位元則包含一布林數值“一”。 9·如申响專利範圍第i項所述之執行多媒體延伸技術絕對差值封包總 和(PSADBW)指令的裝置,更包含乡數_存元件用靖存該進位位元。 10·如申W專利範g第i項所述之執行多舰延伸技術絕對差值封包總 和(PSADB爾曰令的裝置,其中上述加法器將該進位位元與該第一多工器 的該輸出值相加時,係為同時進行的。 11·如申轉概_ 1項騎之執行乡雜延倾舰聽值封包總 和iPSADBW)指令的裝置’更包含具有_電腦可使祕體之—電腦程式產 。口’該屯腦可使用媒體具有根據該裝置所使用之—電腦可讀程式媽,另外, 21 1249685 該電腦程式產品與一計算裝置一起使用。 12·如申清專利範圍第1項所述之執行多媒體延伸技術絕對差值封 包、,、心和(PSADBW)才曰令的裝置,更包含一電腦資料訊號具體化於一傳輸媒 體,該電«料減包含該裝置提供之—電腦可讀程式碼。 13^ · —種產生一絕對差值封包總和的微處理器,該微處理器包含: 才曰令轉換器,將多媒體延伸技術絕對差值封包總和(pSADBW)巨集 指令轉換到至少第一微指令與至少第二微指令;以及 ^ 一多媒體延伸技術單元,連接到該指令轉換器,對應於至少一第一微 指令與至彡、-第二微齡的湖,綠魏縣值聽總和(psAD巨 集指令的結果。 抑14·如申轉利範圍帛13項所述之產生一絕對差值封包總和的微處理 益’其中當該㈣觀伸技術單元制於該第_微齡,產生運算元的封 匕差值’ *當對應_第二微齡時,產生該封包差值的絕對值總和。 15·如申請專利範圍第13項所述之產生—絕對差值 器,其中上述多媒體延伸技術單元係包含: 多數個減法器,產生該運算元的該封包差值。 _ 16·如申請專利範圍第15項所述之產生一絕對差值封包總和的微處理 器一其中5亥上述多數個減法器,在一個單一微處理器時脈週期内,產生該 運算元的該封包差值。 μ _ I7·如申請專利範圍第15項所述之產生一絕對差值封包總和的微處理 ,差ί中上述多數個減法器將產生一個訊號,對應於每個該運算元的該封 22 /1249685 π 18·如申明專利範圍第13項所述之產生一絕對差值封包總和的微處理 器,其中上述多媒體延伸技術單元包含: —一多工邏輯器,具有微指令型態控制輸入端,其中上述微指令型態控制 輸^若是為該第二微指令,則該多工邏輯器將選擇選擇性轉換該差值封包 運算元,提供到一加法器,作為多數個加數。 %、19·如申請,利範圍第18項所述之產生一絕對差值封包總和的微處理 器,其中上述每個封包差值被選擇性的轉換,是根據該封包差值是否為正 數或是負數。 。。=.如申請專利範圍第19項所述之產生一絕對差值封包總和的微處理修 為,其中假如該封包差值為負值,則轉換該封包差值,假如該封包差值 正值,則不轉換該封包差值。 ^ 專利範圍第18賴述之產生—絕對差值封包總和的微處理 ^工控Γ輸人表示該微指令型態不是該第二微指令,職多數個 夕為L乘法器之多數個部分乘積,提供至該加法器作為該多數個 22.—; 處理料令的裝置,置於'微處理时,該微 =旨令作減法,產生—差值的封包位元組;該微處㈣具有 至乂-乘法指令’產生部分乘積;以及該微處理 以將該部分乘積相加,其中,該裝置係包含: 有》法域輯用 多數個儲存元件’用财轉—訊齡^,其 的該差值枝為正數或·; 鎌灿不所對應 多數個多H接崎觸賴數鑛存元件 輸出值包含若觀錄福錢,職輸紐 === 為負數,則該輸出值包含該差值的補數;以及 紐右該減位兀 23 1249685 一多工邏輯,連接至該多數個多工器,用以執行至少一個乘法指令時, 選擇部分乘積提供至加法邏輯,當執行絕對差值封包總和指令時,選擇該 訊號位元之該輸出值提供至加法邏輯。 23·如申請專利範圍第22項所述之產生絕對差值封包總和指令的裝 置,其中上述加法邏輯將該訊號位元與該輸出值相加,係以同時的方式進 行。 24·如申請專利範圍第22項所述之產生絕對差值封包總和指令的裝 置,其中上述訊號位元與該輸出值,在該加法邏輯相加時,至少包含16個 加數。 25· —種執行多媒體延伸技術絕對差值封包總和(pSADBW)指令的方 法,包含: 產生一個指令運算元封包的封包差值,並產生每個封包差值相關的一 進位位元; 判斷該封包差值,由該封包差值相關的該進位位元指示該封包差值為 正數或負數; 選擇該進位位元之對應數值,若該封包差值為正數,則選擇該進位位 元之對應數值為封包差值,若該封包差值為負數,則選擇該進位位元之對 應數值為封包差值的補數;以及 相加該對應數值與該進位位元,產生指令結果。 26·如申請專利範圍第25項所述之執行多媒體延伸技術絕對差值封 包總和(PSADBW)指令的方法,其中該相加步驟包含: 將該進位位元相加產生第一總和值; 將該對應數值相加產生第二總和值;以及 將第一總和值與第二總和值相加,產生一結果。 24 1249685 27·如申請專娜圍第25項所減之執行多舰延伸脑絕對差值 封包總和(PSADBW)指令的方法,更包含: =別絕對差值封包總和(pSADBW)指令與乘法指令是否被執行; 右執行絕對差值封包總和(PSADBW)指令執行,將該對應數值與該進 位位元相加;以及 若執行乘法指令,則將部分乘積相加。 28·如申明專利㈣第25項所描述之執行多媒體延伸技術絕對差值 封包總和(PSADBW)指令的方法,更包含: 產生進位位元之後,儲存該進位位元。
29·如申μ專利㈣第25項所描述之執行多雜延伸技術絕對差值 封包總和(PSADBW)指令的方法,更包含: 卜在產生搞位位疋之前,轉換絕對差值封包總和(psadbw)指令到至 少第一微指令與第二微指今内。 明專利範圍第29項所描述之執行$媒體延伸技術、絕對差值封 包總和(PSADBW)指令的方法,更包含: 由该第一微指令產生該進位位元;以及 由該第二微指令執行該相加步驟。 = 利1巳圍第25 ^所描述之執行乡媒體延伸技術絕對差值 步驟為同時執行。 麵擇舰健元讀應數值之 日7的以’其巾上述彳目加騎絲健魏位位元之 步驟為同時執行。 25 1249685 € ..................一Twm-丄 _......^ 體,Γ包含—種執行多媒體延伸技術轉差值封包總和指令之電腦可讀取媒 -電腦可讀取程柄,提供作為執 總和(PSAD_指令的裝置,該程柄係包I 技棘縣值封包 -作為減法邏輯之第—程式碼,用 數個封_,减產___健y 的複 封包差轉触 咖,伽__,树瓣數個 擇功:作第三程式碼’連接該轉換邏輯與該減法邏輯作為選 =月b ’右該多數個相關進位位元其中之一進她元指*該多數個封包差 中之-個封包差值為正數’則選擇該多數個封包差值其中之一個封包 多ϊ==ίΓ ί該相關複數個進位位元其中之一進位位元指示該 k差值八中之-封包差值封包為負數,則選擇該多數個封包差值 其中之一封包差值的轉換值作為輸出值;以及 -作為加法器之第四程式碼’連接到該多工邏輯,將該多數個進位位元 與該夕數個多工邏輯之該輸出值相加,產生一指令結果。 26
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/765,497 US7376686B2 (en) | 2003-01-31 | 2004-01-27 | Apparatus and method for generating packed sum of absolute differences |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200525381A TW200525381A (en) | 2005-08-01 |
TWI249685B true TWI249685B (en) | 2006-02-21 |
Family
ID=34886504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093123708A TWI249685B (en) | 2004-01-27 | 2004-08-06 | Apparatus and method for generating packed sum of absolute differences |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100418054C (zh) |
TW (1) | TWI249685B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI502494B (zh) * | 2011-12-23 | 2015-10-01 | Intel Corp | 用以執行絕對差之雙塊總數之方法,製品及裝置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10481870B2 (en) * | 2017-05-12 | 2019-11-19 | Google Llc | Circuit to perform dual input value absolute value and sum operation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6377970B1 (en) * | 1998-03-31 | 2002-04-23 | Intel Corporation | Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry |
US7054895B2 (en) * | 2001-06-21 | 2006-05-30 | Ligos Corporation | System and method for parallel computing multiple packed-sum absolute differences (PSAD) in response to a single instruction |
-
2004
- 2004-08-06 TW TW093123708A patent/TWI249685B/zh not_active IP Right Cessation
-
2005
- 2005-01-27 CN CNB2005100058802A patent/CN100418054C/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI502494B (zh) * | 2011-12-23 | 2015-10-01 | Intel Corp | 用以執行絕對差之雙塊總數之方法,製品及裝置 |
US9582464B2 (en) | 2011-12-23 | 2017-02-28 | Intel Corporation | Systems, apparatuses, and methods for performing a double blocked sum of absolute differences |
US10303471B2 (en) | 2011-12-23 | 2019-05-28 | Intel Corporation | Systems, apparatuses, and methods for performing a double blocked sum of absolute differences |
Also Published As
Publication number | Publication date |
---|---|
CN1641565A (zh) | 2005-07-20 |
CN100418054C (zh) | 2008-09-10 |
TW200525381A (en) | 2005-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7312879B2 (ja) | ハードウェアにおける行列乗算の実行 | |
Riazi et al. | HEAX: An architecture for computing on encrypted data | |
TWI263167B (en) | Method and system for performing calculation operations and a device | |
TWI332625B (en) | Power-efficient sign extension for booth multiplication methods and systems | |
Molahosseini et al. | Efficient Reverse Converter Designs for the New 4-Moduli Sets $\{2^{n}-1, 2^{n}, 2^{n}+ 1, 2^{2n+ 1}-1\} $ and $\{2^{n}-1, 2^{n}+ 1, 2^{2n}, 2^{2n}+ 1\} $ Based on New CRTs | |
Han et al. | High-speed parallel decimal multiplication with redundant internal encodings | |
TW550498B (en) | Method and apparatus for modular multiplying and calculating unit for modular multiplying | |
JP2003016051A (ja) | 複素ベクトル演算プロセッサ | |
WO2010049218A1 (en) | A high radix digital multiplier | |
Kudithi | An efficient hardware implementation of the elliptic curve cryptographic processor over prime field | |
TW200841235A (en) | X87 fused multiply-add instruction | |
TW201106258A (en) | Parallel processing and internal processors | |
Hong et al. | Cellular-array modular multiplier for fast RSA public-key cryptosystem based on modified Booth's algorithm | |
TW384447B (en) | Processor with reconfigurable arithmetic data path | |
Molahosseini et al. | A multifunctional unit for designing efficient RNS-based datapaths | |
Kshirsagar et al. | Implementation of pipelined booth encoded wallace tree multiplier architecture | |
Ni et al. | A high-performance SIKE hardware accelerator | |
TWI223751B (en) | Method and apparatus for performing modular multiplication | |
TW201224916A (en) | Carryless multiplication apparatus and method | |
TWI249685B (en) | Apparatus and method for generating packed sum of absolute differences | |
CN116366248B (zh) | 基于紧凑指令集扩展的Kyber实现方法及系统 | |
JP2725544B2 (ja) | Dct及び逆dct演算装置並びにその演算方法 | |
Timarchi et al. | A unified addition structure for moduli set {2 n− 1, 2 n, 2 n+ 1} based on a novel RNS representation | |
TWI220716B (en) | Method and apparatus of constructing a hardware architecture for transfer functions | |
Hazarika et al. | Energy efficient VLSI architecture of real‐valued serial pipelined FFT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |