200411540 玖、發明說明: 【發明所屬之技術領域】 本發明係關於使用由一組至少兩個管線階段,至少一 個資料輸入介面,及至少一個資料輸出介面所構成的管線 化計算裝置内實行運算的方法,該管線階段包括至少一個 資料輸入介面及一個資料輸出介面,此方法中實行第一與 第二運算所用資料是輸入該裝置;本發明也是關於由一組 至少兩個管線階段,至少一個資料輸入介面,及至少一個 資料輸出介面所構成的管線化計算裝置内實行運算的系 統,該管線階段包括至少一個資料輸入介面及一個資料輸 出介面,且該計算裝置還包括第一與第二運算用的資料輸 入;本發明還是關於由一組至少兩個管線階段,至少一個 資2輸入介面,及至少一個資料輸出介面所構成的管線化 計算裝置内實行運算的裝置,該管線階段包括至少一個資 料輸入介面及一個資料輸出介面,且該計算裝置還包括第 一與第二運算用的資料輸入。 【先前技術】 有許多應用系統是須要使用乘法運算、乘法累加運算 (AMC)及其他運算的。在一非限制性的例子中,許多訊號處 理應用系統,例如數位訊號過濾應用、視訊/圖像處理應用 等等,疋貫行即時乘法運算的應用。其他須使用向量且/ 或矩陣的應用也須使用乘法及MAC運算。乘法運算通常以 求和及順位元運算實行。如此之乘法運算是高資^要求的 作業,因為一個介於兩個運算元的乘法運算是須要大量的 200411540 即時計算。因此,高速效率是對不同的視訊/圖像處理運 算法或次作業發展平行專門結構(加速器)的動力。先前 的視訊/圖像處理系統技術包括數種類似的加速器(例 如,絕對差和(SAD ),餘弦變換,等等),每一種皆包括了 大量的硬體元件。然而,由於行動通訊系統之發展,在硬 體方面,其影響系統的成本以及電源/能源的消耗,與高 速效率為同等重要的特性。一種趨向滿足所有這些要求的 方法是更現代化的數位化訊號處理器(DSPs),並減少專門 加速器的數目。縱然在這些方面有所改進,但是這樣的系 統仍然無法滿足高速率及能量消耗的要求。 表1概括一些主要的計算模式及經常使用這些模式的 視訊/圖像處理運算法的例子。這些模式中的運算是彳艮基 本且相當為人所熟悉的。許多的文章已陳述過這些運算 的執行。在此強調與視訊/圖像處理運算相關的兩個特 第’運算元通常為中精確度(8至16位元)整數值。 第一,大部分的運算法利用大量平行運算。在某些情況, 這些平行運算共用同樣的運算元,例如,在數值量化方面, 同一個數目被許多的影像的像素(pixels)相乘;在向量矩 陣乘積中,矩陣中不同的列被乘以相同的輸人向量;在有 『脈衝回應(FIR)滤波器中’相同的系數被包括在若 MAC運算中,等等。 200411540 表1 計算模式 列式 運算法 平行加/減法 4土 6/, /=人…,灸 動態補償,明度改變,離散餘弦轉換 (DCT)、離散波元轉換(DWT)、絕對 差和(SAD)之次運算,等等。 累加計算 Κ ^ = Σ / = 1 前置,後置處理之平均過濾,DWT 之次運算,向量對向量及矩陣對向量 之内積,捲積,等等。 平行乘法 mi=aiXi,or m产a{x, i~l, ...,K 量化,DCT,DWT,向量對向量及矩 陣對向量之内積,捲積,等等之次運 算。 乘法累加計算 (MAC) st i = 1,…,K, 外是未知整數 FIR濾波器之基本運算及矩陣對向量 運算 向量對向量之内 積 Κ ^ = Σ aixi /=1 DCT,DWT,向量對向量及矩陣對向 量之内積,捲積,等等之前置,後置 處理,次運算。 矩陣對向量乘積 P si = Σαυχ] i = 1,..., K 顏色轉換,幾何操作,仿射運動估計 ,DCT,等等之前置,後置處理,次 運算。 FIR濾波(捲積) P si = HajxH i = 1,..., K 前置,後置處理(圖像濾光強化,内 插,外插),DWT之基本運算。 絕對差和(SAD) /=1 動態估計,圖像逼真度標準平均絕對 誤差(MAE)。 視訊/圖像處理以及其他訊息處理之先前技術結構是 基於傳統的乘法運算。許多執行乘法運算及/或乘法累加 運算的方法及裝置已經發展出。以下所要考慮的情況是祇 有當乘法運算方法及一般乘法結構的兩個運算元(被乘數 與乘數)皆未知,兩個符號定點整數以2之補數表示的乘法 200411540 運算,即所謂的基數T(radix_T)方法。 ”位元(包括符號)乘數α的2之補數表示為 ,及w位元(包括符號)被乘數X表示 /〜—2···χ/χ〇。α與泛(同樣的關係於X與X)表示如'下為 a r Ί m-2 τ r=0 1=0 0) 在基數T的乘法運算方,法.中 少一少«-iYw+w-2…乂/%的公式如下: 乘積 y = a'x 的 2 之補敖 nradix-T 一 1 (2) Γ—7 使式(2) £ {Arx)2rt^ix-T r=〇 其主要兩個步驟是: 步驟1 ·產生部分乘積(PP)斗 有效。 π 位置的第广> 刀乘積為^尸:^…^⑺血—厂/總和起來。 基數TMAC單元以類似的方法運算,回β 個數字(累加項)被加在第 2 步驟的 4 :x,r = 0 ” 、 現將步驟1作更進一步考岸。不η y气“不冋的乘法運算方$ ‘:二=:,·_.,Wr一7的定義及取得方式可推導出不同: 之:异:法。d_Γ,選擇事實上 心衣不法而定。 200411540 最簡單的乘法運算方法是為基數2之方法,其使用α 的2之補數表示於式(1)的左邊。於此情況,乘積的2之 補數可依以下求得: ? = "Σ2 (Arx)2^2 = {arX)2r _ (a^jx)2^j 5 r^〇 r=0 ’及部分乘積木·χ,Γ = 0,···,《一7由木 r 0”··,η 2 ’且」《一7 =一7當r =万-7所定義。這些部分乘 積可簡單地(並通常地)形成於使用一個2輸入及閘(and Gates)陣列於乘數3被乘數$的2之補數位元間。 Λ ·χ,γ = 0,·.·,/ζ-i之值乘以/ (及向左移r個位置)於累加至 第2個步驟之前。應注意的是此方法中的部分乘積、-厂工有 時也稱為修正因數,其視為不同於其他的部分乘積。 部分乘積之非一致性的性質可避免於使用另一種基數 2乘法運算法,其基於B00TH重新編碼使乘數的補數位元& 成為額外的符號位元。該乘積可表示為: 〜nradix-2-1 ^ ~ Σ (Arx)2r = X (-+ ar_j)x2r , a^j = 〇 (4)
r=〇 r^O 亦即,也-2 =”,如同之前的表示式,但部分乘積 ^•^ = 0,···,《 —/現在都定義為牟=—。與之前的方法 相似,將4.x,r==0,,w —y之值乘以/於加至第2步驟之 前。在此方案中,部分乘積於0,士χ中選擇一個。這些值的 其中兩個與χ)是即得的,而-X之求得要反轉无的位元 10 200411540 並加上單位元。通常,單位元加法執行於部分乘積加總的 第2步驟中。 無論是BOOTH重新編碼或是非重新編碼,在基數2 乘法運算中共有心〃心-2=«個部分乘積。為了減少部分乘積 的數目,即減少第2階段(部分乘積加總)的延遲,於是發 展出基於基數4修正BOOTH重新編碼(MBA )的方法。 MBA是最通用的乘法運算之一,且被進一步的研究及優化 中。 為了簡化以下之公式,在任何情況下,當有一項,例 如n/A發生時,即假設n*k的整數倍。這是有效的假設, 因為2之補數可由任一數目的位元作補數(重覆最高有效位 元)。 在MBA中,乘積的2之補數由”個部分乘積 之總和獲得: 〜η! 2-1 (5) y ^ Σ (^rx)2 Γ = Σ 12a2r+l + a2r + a2r-?^P?r , r=0 r=〇 a-1=0
Ar e {-2-1,0,1,2 » r = 0,7,···,π/2-7,是依據乘數 3 的 2 之 補數表示的3個連續位元仏+7,吩,〜4(17=0)而選擇。^:, ,乘以(即在硬體中移左2r個位置)於加入 步驟2之前。 使用高於基數2非重新編碼的乘法運算以減少部分乘 積數目也是可能的。例如,在基數4非重新編碼運算法中, 200411540 依據乘數的2個連續位元選擇部分乘積jx, Λ.{0X2,3} ^ ,/2-1 〇 積。可能部分乘積2x可由移動可能部分乘&向左一次而 產生。奇數部分乘積々須再加叫固义求和而得。若負數乘 法運算也錢,麟號延伸必須❹,部分乘積的最高有 效位元(即符號位元)複製多次直至達到所須的位元長度。 在基數8非重新編碼乘法運算中,部分乘積卓尤 O{o,i,2,3,4,5,6,7} ’ r = (U"”w/3—卜的選擇是依據乘數的3個 連續位元。可能部分乘積列是〇,你3Wx,所有這些可藉由 執行3個分別的加/減法以得到3χ = χ + 2ρ只^ +打, 7x = 8x_x。可能部分乘積分可移動可能部分乘積分向左一 個位置而得。對於較高基數的情況(> =16),有些可能部 分乘積(例如,7k及)無法由一次的加/減;求得。 圖1表示用以實行修正Β00ΤΗ運算法的裝置1〇1。共 有個BOOTH編碼/解碼列,每一列包括工個β〇〇τη編 碼器102,及m+1個Β〇〇ΤΗ解碼器1〇3,每兩個列為一組。 每個BOOTH編碼器102解析乘數_ 2之補數的3個連續 位兀,有一位元重疊,且輸出9個訊號對應至解碼器1〇3列。 在一些先則的設計中,ί = 3。根據此9個訊號,解碼器列與 被乘數位元f輸入形成部分乘積e机±^,土以}。X非負值 倍數可即時求得,因為以是由固線式移位形成。X的負值 倍數的求得方式是將相應的X正值倍數的位元反向並加i, 此通常於步驟2中實施。例如,美國專利6,173,304是一執 行BOOTH編碼及解碼的系統。於基數2的方法中,部分乘 12 200411540 積的獲得比修正booth運算法簡單,但是使用修正b〇〇th 運异法時,部分乘積的數目減至《/2,如此,導向速度效率, 面積及電源消耗上顯著之優勢。 為進一步減少部分乘積數目,booth編碼已更延伸至 多位元(任意基數τ)編碼。該乘積的一般方程式如下: nradix-T 一 1 nlt—ly- Σ M2rt= Σ r=0 r=〇 T = 2t = 2tradix^T. ' atr^t-l ^ ^ + Σ atr+i ^ + atr-l i=0 x ⑹ 亦即,有= π"個部分乘積(j = /),且每個部分 乘積是依據乘數$的〖+/個連續位元選擇於可能部分乘積办 數列,該j介於與之間。每個可能部分乘積可能相 對地容易形成於兩個或更多(Γ>Μ)的尤的2 次方倍數之相加,及可能地位元反轉後加丨(於第2步驟 例如’基數8重新編碼的情況,可能部分乘積列為 ,士 Wx,±h,±¥x。所有數财的非貞數倍數,除了氕得 自於-加法:3χ = χ + 2χ外,皆為即時可得。如同之前,負絮 倍數可依反向加丨之方法求得。在基數16重新 況 可能部分乘積列為咏仏执_.·,地,所有料可藉由執行 3個分別的加/減法以得到3…“η — ”心, 74-,。可能部分乘積知可移動可能部分 Γ=寻;/Γ:高基數的情況,有些可能部分_ 如心及他)無法由—次的加/減法求得。 圖2表示先前技術之基數Τ(τ>=8)多位元β〇〇τη 13 200411540 碼及基數τ(τ>=4)新的非重新編碼(基數高於4) 乘法益之一般結構20卜此結構包括加法器陣列2〇2以計管 可能部分乘積數列’ 一個選擇區塊203以選擇…個部分; 積,以及-個總和區& 2〇4將被選擇的部分乘積加總,最後 一個是加法器205由總和區塊204產生之總和s及進位匸 項以產生乘積歹。 典型先進技術的基數高於4之乘法器的加法器陣列包 括d固加法/減法器,其中S是可能部分乘積列内之讀的 奇數倍(W,於T = 8 B〇QTH重新編碼或非重新編碼 乘法器的情況;以及S=3,於T= i 6 B〇〇TH重新編碼或τ=8 非重新編碼乘法器的情況,等等)。通常快速進位預測(cla) 加法器使用,因為可能部分乘積形成於如此的乘法器是相 當,的。在專利US_5,875,125中提出申請的特殊χ…口 法f可用於基數8乘法器中。應注意的是混合式基數4/8乘 法器也已提出申請,例如,在美國專利號碼4,965,762中, 主要用在相互作用的(非平行的)乘法器,其中部分乘積 是序列地產生及累加。美國專利號碼5,646,877揭示一種乘 法⑽構,其中任一基數的所有可能部分乘積由办的移位形 式,以及包括一個產生分之χ+2χ加法器,兩個移位器及一 個加/減法器之加法器陣列的χ之求和或差數而得。 典型先前技術的基數高於4乘法器的選擇區塊包括n/t 個基數T BOOTH編碼器及相同數目的解碼器列。每一個編 碼器解析相應乘法器的(t+1)元組(tuple),及輸出複數控 制訊號,依據該訊號,相應的部分乘積由解碼器列形成。 14 200411540 關於如何延伸基數4 BOOTH編碼器及解碼器至更高階的基 數,可以專利US-6,240,438為例。 以下’對部分乘積之加總,即第2個步驟,作更細節之 考慮。大部分的平行乘法器/MAC單元結構用包括一個壓 縮陣列跟隨著一個快速加法器(最終加法器)的總和區塊 作為步驟1部分乘積之加總(見圖丨及圖2)。壓縮陣列將 的部分乘積數列減至2個數列對應到總和s及進位 C項,其於最加法器中相加。壓縮陣列通常包括全部或半個 加法器(進位儲存加法器樹或Wallace樹)或4: 2壓縮器。 取終加法器通常為快速預先進位加法器,其是依據壓縮陣 列的不同位元的延遲詳加設計。 應注意的是,如果利用B00TH重新編碼之方案,則實 行單位元加法之結果於第丨步驟而非第2步驟,每個部分乘 積列伴隨一個位元值,若部分乘積是被乘數的負數倍,該 值為〇,否則為單位元值。如此,實際上,數列的數目是 Γ。僅管這些1位元值可能合併至部分乘積列中,如 此數列的數目是心α血-r或但所須付的代價是增 加乘積列的長纟(1個位元)及變得不規則。在非重新編石: 的方案中,至多祇有1個額外的位元值,所以可設計較簡 的壓縮陣列。 9 另-個與BOOTH重新編碼乘法器之總和區塊相關聯 的問題是如何處理訊號延伸,因為部分乘積列在加總前須 彼此相對地移位。一個簡單的執行是每個部分乘積(移位 後)應延伸至+岣位元數,這是非常耗時的作法。特殊 15 200411540 符號的延伸方法及電路已經發展可以減少符號延伸位元數 至母列中兩個。在非重新編碼乘法器中,符號伸處 的更簡單,而沒有額外的符號位元,因為所有 除了一個以外皆是同符號的。 原則上有兩個延伸乘法器結構至M A c單元的方法如圖 3a及3b所示。在第i個方案(圖3a),兩個壓縮陣列3〇1 的輸出(總和項S及進位項C)回饋至其輸入,以使目前的 部分乘積與目前累加值的兩個加數作累加。最終的總和項s 及進位項C然後於最終加法器3 〇2内相加。在第2個方案 (圖3b) ’這些輸出供給另一個壓縮陣列3〇3,其輸出再回 饋至自身(第2個壓縮陣列)的輸入。再來,目前乘積的總 和:S及進位項C累加至目前的累加值直至最後一個循環 ,當最終的總和項S及進位項c於最終加法器302内相加 時:整個壓縮陣列的深度(即所有的延遲)可能於第】個方 案為較小,但寬度,即因此,面積及電源消耗卻是以第2 個方案為較小。 作為高基數乘法器的總結,應注意的是基數愈高則步驟 1(產生部分乘積)愈驅複雜,但是步驟2則愈驅簡單。基 數高於4的乘法運算法尚未穫得普及,或許因為其使用相$ 的時間$面積於部分乘積器,包括加法陣列及選擇區塊。田 通㊉,基數4 MB A被視為是最好的先前技術乘法運算 法,且被用在許多實業上之乘法器中。 # 一種稱為管線的方法可以用在與運算連接。亦即,一個 利用管線的裝置、包括2個或以上的管線階段,每個管線階段 16 200411540 用以實仃運异中的特定的某一或數個部分(即子運算),管 線間彼此聯繫’每個管線階段實行1或多個子運算,並於最 ?-個管線階段輸出計算結果。在此管線裝置,,不同的 s線4又之操作疋採接續式地,因此,下—個管線階段開 始操作子運算於前—個管線階段完成子運算之後。若管線 階段是純粹地平衡(即某些階段㈣地快於其他的階段), 這意謂著所有的管線除了一個以外大部分的時間皆在等待 或閒置此外所有的管線皆保留給某一特定的作孝(計 算子運算h無法實行其他料算。 ^# ( f β有些乘法H/MAC單元的特性,從視訊及圖像的觀點 疋希望具備的’但是先前技術的解決辦法是缺乏或不足 的此將揭示於後。首先,最普及的基數4 重新編 碼的乘法II/MAC方法將被考慮。這個方法的—般缺點是 比起較高基數的方法消耗更多的電源。另一個一般的缺點 疋,即使相較於基數2乘法運算方法,部分乘積的數目減 半,但其仍可減至更少若使用更高的基數。亦即,這個方 法的複雜性主要集中在第2個步驟(部分乘積的加總)。當 管線化一個基數4 B00th重新編碼乘法器/mac之結構 ,通常部分乘積產生區塊被考慮作第丨個管線階段,然而是 平衡於(即,較快於)其他的管線階段。 就基數高於4的BOOTH重新編碼器而言,已有不同的 此類乘法器實現,當僅考慮乘法運算的實行,其與基數4 的乘法器就時間及面積的標準而言,有相當的競爭性,然 而在能源消耗的表現上,卻遠勝過基4數乘法器。基數高於 17 200411540 4的主要缺點是在部分乘積產生區塊内須要有一個加法器 陣列。 基數高於4的BOOTH重新編碼乘法器還有一項缺點是 關於必須處理被乘數的負倍數及符號的延伸。 基數T非重新編碼與基數2T BOOTH重新編碼於部分 乘積產生區塊内包括有相同數目的加法器。當使用基數高 於8的非重新編碼或基數高於16 BOOTH重新編碼之乘法 器,須要使用1個階層以上的加法以產生可能部分乘積。 表2a 乘法器型式 BR, T=4 BR,T=8 BR, T=16 AA寬度,s - 1 3 可能部分乘積數目 5 9 17 SB之部件 編碼器 n/2BR4 n/3BR8 n/4BR16 解碼器 n/2 (m+l)-BD4 n/3 (m+2)-4:l t/c n/4 (m+3)-8:1 t/c SE Yes Yes Yes SB之延遲 6t 12t 16t CA之輸入數 n/2 (m+l)-bit + 3n/2 n/3 (m+2>bit n/4 (m+3)-bit 1-bit +4n/3 1-bit +5n/4 1-bit FA-CA5 之 π=13,χ 7/4/8t 5/3/6t 4/2/4t 輸入數/ MAC 9/5/10t 8/4/8t 6/3/6t 階層/延遲 n=16,x 8/4/8t 6/3/6t 4/2/4t MAC 10/5/lOt 8/4/8t 6/3/6t n=64,x 32 / 8 / 16t 22/7/14t 16/6/12t MAC 34/9/18t 24/7/14t 18/6/12t 4:2-CA 之 n=13,x 7/2/6t 5/(4:2)+FA/5t 4/l/3t 輸入數/ MAC 9/2(4:2)+FA/8t 7/2/6t 6/2/6t 階層/延遲 n=16,x 8/2/6t 6/2/6t 4/l/3t MAC 10/3/9t 8/2/6t 6/2/6t n=64,x 32/4/ 12t 22 / 4 / 12t 16/3/9t MAC 34/5/15t 24 / 4 / 12t 18/4/12t 18 200411540 表2b 乘法器型式 NR1, T=4 NR1, T=8 NR2, T=4 NR2, T=8 AA寬度,s 2 4 1 3 可能部分乘積數目 4 8 4 8 SB之部件 編碼器 No No 1BR4 1 BR8 解碼器 n/2 (m+1)-4:1 n/3 (m+2)-8:l (m+lHBD4+n/2(4:l)) (m+2)(4:l t/c +n/3(8:l)) SE No No No No SB之延遲 5t 6t 6t 12t CA之輸入數 (㈣/2 + 1) (m+2)-bit ((11-1)/3+1) (m+3)-bit (n-l)/2 (m+4)-bit + 1 1-bit (n-l)/3 (m+6)-bit + 1 1-bit FA-CA5 之 輸入數/ 階層/延遲 n=13,x MAC 7/4/8t 9/4/8t 5 / 3 / 6t 7/4/8t 6/3/6t 8/4/8t 4/2/4t 6/3/6t n=16,x MAC 9/4/8t ll/5/10t 6/3/6t 8/4/8t 8/4/8t 10/5/10t 5/3/6t 7/4/8t n=64,x MAC 33/8/16t 35/9/18t 22/7/14t 24 / 7 / 14t 32/8/16t 34/9/18t 21/7/14t 23/8/16t 4:2-CA 之 輸入數/ 階層/延遲 n=13,x MAC i met 9/2(4:2)+FA/8t 5/(4:2)+FA / 5t 7/2/6t 6/2/6t 8/2/6t 4/l/3t 6/2/6t n=16,x MAC 9/2(4:2)+FA/8t ll/3/9t 6/2/6t 8/2/6t 8/2/6t 10/3/91 5/(4:2)+FA/5t 7/2/6t n=64,x MAC 33/4(4:2)+FA/14t 35/5/15t 22/4/12t 24/4/12t 32/4/12t 34/5/15t 21/4/12t 23/4/12t 表2c BR Booth重新編碼基數-T乘法器 NR1 非重新編碼基數-T乘法器類型1 NR2 非重新編碼基數-Τ乘法器類型2 SE 符號延伸電路 BR4, BR8, BR16 相應基數Booth重新編碼器電路 BD4 基數-4 Booth解碼器電路 4:1,8:1,4:1 t/c, 8:1 t/c 相應輸入數目之多工器或實/補多工器 SB 選擇區塊 CA,FA-CA,4:2 壓縮陣列,含全加法器(FA)及半加法器(HA)之壓縮陣列,含4:2 CA 壓縮器之壓縮陣列 , 19 200411540 表2a表示不同區塊之不同特性,該區塊用於先前技術 之Booth重新編碼基數T乘法器/MAC單元作為n位元乘 數與m位元被乘數之乘法運算。表2b表示不同區塊之不同 特性,該區塊用於非重新編碼基數τ乘法器作為n位元乘 數與m位元被乘數之乘法運算。表2c表示仏及沘内所使 用的縮寫。當分析表2a與2b時,可以發現對於大部份的^ 與m值,每個乘法器/mac單元型態内每個乘法器區塊的 延遲實質上的不同。亦即,這些乘法器之直接管線化實施 將因管線階段間之不良平衡而受阻礙。為使管線階段間有 車父佳平衡,可藉由設計於一個進位傳遞區塊内有不同 數目的進位預測(CLA)加法器,而彈性地增加第j與最後管 線階段的傳輸率。此即何以這些區塊的延遲沒有表示在表 2a與2b之中。某些情況,例如,小n、較高基數τ,意謂 著非#小的進位傳遞區塊,而因此大的面積。無論如何, 使用CLAs可能為此兩階段增速之解決方法,儘管其未必 是最有效率的。此狀況對於中間之兩個管線階段(SB及ca) 是不同的,因為用於這些區塊的最先進電路是為發揮要徑 隶大效盈而設計,以致於使得這些電路的内部管線作業並 不合理。此外,這些區塊的延遲對於每個先前技術之乘法 器/MAC單元結構之每個型態(BR(T=8,16),NRlcr=4, 8))於不同η值,彼此間之相對差異是非常的大。於更小n、 較高基數T(例如τ=16及任一 η值),選擇區塊較壓縮陣列 為慢,然於其他情況則相反。這意指著為一個或另一個區 塊設計較快之電路並無法解決階段之間平衡的一般問題。 20 200411540 所有這些皆使得為先前技術之乘法器/ MAC結構具有良好 &線化平衡而發展系統化之方法發生困難。 另一方面,若將獨立之先前技術乘法器/MAc單元之 平行陣列應用於複數個相應之運算,即使較快的區塊可以 共用而不影響整體傳輸率,大的矽面積使用是必須的。此 外,如上所壤,官線階段會產生不良平衡,若將管線化乘 法裔/ MAC早元應用於該陣列中。 先刖技術的矩陣向量算術平行架構的設計是用複數獨 立乘法器結合加法器或複數獨立MAC單元。同時,對於不 同的運算通常有複數特定的電路。然而高基數乘法器包括 區塊(管線階段)其可再使用於其他的運算,例如,加/ 減法,累加運算,等等。同時應提及的是,在矩陣向量算 術中,特別是用於視訊/圖像處理方面,如果高基數乘法 被使用,在許多情況,一個被乘數被乘以 被乘數的可能部分乘積可能已被使用在所有的=者 中。例如,在向量與矩陣運算中,同樣的乘數將使用許多 次,同樣的部分乘積將使用超過一次以上。當此種運算實 行於先前技術架構,其計算部分乘積於每次須要時,=導 致硬體資源的無效率使用及增加電源之消耗^此外,如上 所述’有許多情況,先前的管線階段技術的乘法器是純粹 的平衡,因此減低裝置的效率。 【發明内容】 ^本發明的目標是提供一改良的計算結構及方法以實行 運异’其能夠儲存運算過程中的中間結果,特別是館存乘 21 200411540 法運异之可能部分乘積之能力。依據本發明之方法,至少 個運异中的計算階段,例如管線階段,之輸出資料是儲 存於記憶體中,而儲存的資料作為另一個運算的輸入資 料-除了儲存可能部分乘積之外,計算裝置之記憶體可用 於許多運异。依據本發明之一有效計算裝置實施例是可依 一組控制訊號而多功能化/可組態化成數種不同之結構。 本發明之結構可有效地實行為超大型積體電路(vlsi)架構。 本發明有不同的實施例,其中一些將於下文中揭示。 第1個實施例是利用一個記憶體單元儲存及再使用可 旎部分乘積於同樣的被乘法被乘以數個乘數的情況時。有 無數的例子,如矩陣向量乘法運算,FIR濾波器,等等。 如此,在這些具有相同被乘數的乘法運算中,祇有最初的 一個被執行,而避免了最須資源的可能部分乘積之計算。 例如,當矩陣乘以向量時,祇有輸出向量的第丨個分量須作 完全的乘法運算,而其他輸出分量的乘法運算祇須作部份 執行。當實施FIR過濾時,完全的乘法運算祇須於計算第工 個選樣輸出時實施一次,而於其他選樣輸出時,乘法運算 乃非完全地執行。 第2個實施例是在矩陣向量中運用一平行乘法 ,並同時彈性地將其組構成較小的作業。 °… 第2個實施例的結構可組構成執行—些運算的裝置包 括.(a)複數乘法運异,(b )複數mac運算;(c )不同 精確度(位元)的複數加/減法運算;且 累加運算。 22 200411540 第3個實施例是結合平行乘法器結構與絕對差和 (SAD)加速結構的視訊及圖像處理結構1結構是多功能 架構’依-組不同的控制訊號可以組構成不同的架構。 確切地說,根據本發明之方法的主要特徵在於所述之 第-個運算中’至少-個管線階段的輸出資料被儲存至記 憶體’而於所述之第二個運算中,該被健存之資料作為管 線階段的輸人資料1據本發明之系統的主要特徵在於包 括-記憶體作為儲存所述之第—個運算中至少__個管線階 段的輸出資:,且有一個資料取出器將儲存資料用於所述 之第二個運异中之管線階段輸人資料。根據本發明之裝置 的主要特徵在於包括-記憶體作為財所述 中;t一個管線階段的輸出資料,且有-個資料取出器; 健存貧料用於所述之第二個運算巾之管線階段輸入資料。 本發明與先前技術之比較表現了顯著的優勢 積體電路(VLSI)架構適用於廣泛的計算模式,常詩訊號處 理應用,例如,視訊/圖像處理運算1由使用本發明之 方法在視訊/圖像處理方面,乘法運算與先前技術及裝置 之比較,可表現得較快速且較節省電源 數乘法運算/MACS及有—個共用運算W共用被 的複數乘法運算/MACS時特別有效率。由於可健存可能 =ΐ=Γ1,於接續的運算中’可達成顯著面積及 電源祕方面之減少。另外_個本發明的有效實施例能 設定不同管線階段為節省能源模式’當其不須且/或實質 同步地制不同管㈣段實行不_運科,可明顯地減 23 200411540 二'電源的消耗。高速效率(高傳輸 =;:::r平衡不同管線階段的延遲:總: ==:4速或區更塊=?傳,率相較於單管線 及不增加輪入/輸出匯流排的寬度:二增加最少的面積 其他的記階\%單彳元也Γ-1管㈣段可料其他的作業而與 , 丁 ρ同步執仃以乘法為基礎的運算時,平 订加/減法運算(不同精確度)可能執行於其他的作業。 段,發明實施例的優點是架構的第1管線階 二/、作為计鼻可能部分乘積的加法器陣列,不須盘盆他 :管線階段平衡,因為在大部分的循環中,其並不在= 置点構使得對於不㈣11算4覆使用相同的裝 2為可能。此外,運算可用以執行不同精確度的參數, 例如’8個平行8位元加法,或4個平行16位元加法。 顯著的時間與電源/能源消耗的 f能部分乘積的計算從大部分上= 專作H多功能架構,本發明的—有效實施例可取代數個 2為某-訊號處理運算的硬體加速器,例如,
像處理運算。 U 【實施方式】 以下,是第i個有效實施例的詳細說明。根據本發明 弟1個實施例的裝置的一般結構如圖7所示。該裝置1以 24 200411540 不同管線階段P1到P 4為一組。本實施例裝置1含4個管線 階段,但是本發明的範圍可包括4以外之不同管線階段。此 結構還可組入一個記憶體區塊,使得相應於一個運算之第 一管線階段的輸出可以被寫入及再使用於相應之另一個運 算之第二管線階段的輸入。 管線技術是一通常用於實行複數個類似的操作以增加 系統的傳輸率,例如,乘法運算且/或MAC。考慮一典型 的先前技術基數T Booth重新編碼(T=8,16)或非重新編石馬 (Τ==4,8)乘法結構的管線化實施,第1管線階段ρι是表^ 中的s加法器陣列,第2管線階段P2是選擇區塊,第3管 線階段P3是壓縮陣列,及最後數個階段P4(其數目將因不 同實施而有所不同)。 依據本發明第1個有效實施例的裝置組入了複數(排) 乘法器/MAC單元。基數ΤΒ00ΤΗ重新編碼(τ=8,16) 或非重新編碼(Τ=4,8)乘法器之不同排的一般結構顯示在 圖7。一排乘法器/MAC單元的有效實施例結構通常可描 述為一個管線化裝置1,其中第一個管線階段P1含複數個, 如户,包括個加法器的陣列(AA’s)2,且所有陣列之$個加法 器2共用同一個輸入線6。第2個管線階段P2是複數個, 如9,選擇區塊(SB,s)3,第3個管線階段P3是複數個,如 “,壓縮陣列(CA’s) 4,及第4個管線階段P4是複數個,如v, 最終進位預測加法器(CLA’s)5。這些基本功能區塊(AA,s,sb,s CA’s,及CLA’s)實際上與用在先進技術的乘法器且/或 MAC單元之相應的類型相同。因此,當p=q=u==v== 1的情況, 25 200411540 對應至先進技術的乘法器且/或MAC單元結構,主要差別 在於該裝置包括一個記憶體21可用以儲存一個或多個運算 過程之中間結果,一非限制性的例子,譬如可能部分乘積二 多工器22可用以選擇第—管線階段的輸出或記憶體“作為 管線階段P2的輸人。本裝置的優點之_是包括轉換内部訊 號路徑至裝置且從-組内部訊號中選擇_個輸出訊號的選 擇裝置。該選擇裝置是由至少兩個不同的選擇中,選擇至 少一個官線階段的輸入。在一個有效的實施例中,至少一 些基本區塊於先前技術結構中被取代一個基本區塊以上。 I置的操作依據數個參數(P,q,u & v),適當的選擇該朱 數可設計出有良好均衡的管線階段裝置。一管線階段内 區塊以時差的方式操作較優,如此管線階段的傳輸率可以 改殳以使得彼此大致相同,而符合希求的操作步驟區間。 複數個功能區塊的時間交錯操作原則扼要說明於下。 設想功能區塊FB使用於較大系統中的管線階段,及假設其 有估六延遲DFB s pTdes (但是dfb S pTdes),其中是系统 希求的操作步驟區間。如此,為使管線階段ρι,…,p4 操作傳輸率配合步驟區間,此功能區塊序列可被代之以複 數w個功能區塊,尸巧^巧””厂^’該區塊有管線暫存器^鎖 存态)及7,···,心於其輸入,及一個多工器1〇,,12, 13於其輸出。參數w依問題中的管線階段而定。對於第^ 官線階段P1,參數w對應至p,即有p個管線暫存器A,··.』, 及第1管線階段的多工器1〇選擇ρ輸入的其中之一至其^ 出。對於第2管線階段Ρ2,參數w對應至q,即有q個管 26 200411540 及第2管線階段的多工器u選擇q輸入 的”中之一至其輸出。對於第3管線階段p3,參數w對應 至U,即有u個管線暫存器々,,奂,及第3管線階段的多工 !二2山,其包含兩個多工器(未圖示),各選擇u輸入之-為 1出。對於第4管線階段P4,參數w對應至v,即有v 個吕線暫存器々,…為,及第4管線階段的多卫器13選擇v 輸入的其中之—至其輸出14。至管線階段PI,P2,P3,P4 =共,輸人連接到每個w暫存器然而,這些暫存 裔的每-個僅開放於每…個操作步驟的其中之一,各步驟 有一時間差。如此’在每個操作步驟,輸入/實際上祇連 接到㈤功能區塊的輸人,而其他的連接則是不活動的。 口為,所有其他形成管線階段的功能區塊群之輸入暫存器 皆關閉無法寫人。在每w操作步驟的第1個步驟中,第丨 個功能區塊FBI的輸人是開放的’在每w操作步驟的第2 個步驟中’第2個功能區塊FB2的輸人是開放的,等等。 大體而言,於操作步驟ί = /,2,··』中,輸入,實際上僅連接 到1的輸出,其中,/叶一加士十7。於是,輸入j在空 間上是共用的,而暫時分配至管線階段的功能區塊 仰h.··,仰w之間。於系統操作過程之步驟i = u,···,尺中,一個 至該階段之輸入資料流的取樣A進入功能區塊仰厂 / =(卜7)卿於該階段設定。一但厂々於操作步驟i + w一 7, &人2,···,尺之最後完成其對&的操作,在多功能區塊之輸出 的W · 1夕工态1〇,u,12,13傳遞由仲/所得之結果至 該階段之輸出於下個操作㈣⑽,卜u。因此,多工 27 200411540 器10’ 11 ’ 12,13依循環w規則操作。 由替換每個先前技術乘法器/MAC單元結構的功能 區塊為複數個相似的功能區塊,及由時間差操作的原則, 一個較平衡的管線階段或可達成於適當地選擇在每個管線 階段(即參數/7,ήΤ,W,及V)的區塊數目於預定的操作步驟。 假設在先前技術乘法器/ MAC單元結構的4個階段的延遲 分別是,且希求的系統傳輸率是乘 法運算MAC/運算每秒,則所希求的操作步驟區間將選擇為 T—s使付了如5 l/Afey ’及上述之設計參數將為ρ Ί, 及 ν =「Ζ^/7^1 ,其中,符號[γ] 表不進位至下一個整數。 圖8揭示依據本發明的第2個有效實施例的計算裝 置,結構的可組態性依據本發明的第2個有效實施例是藉由 包括一或數個選擇裝置而達成,例如,位於第1個pi,第 3個Ρ3,及第4個Ρ4輸入管線階段的多工器15,16,17。 多工器15, 16, 17是2: 1多工器,其分別由對應的cl, c2,c3訊號控制。此結構還包括一個輸出選擇器2〇,其由 第1個訊號c 1控制,以及第2個訊號及第3個訊號的〇R 組合(即qvc3)。輸出選擇器20選擇資料於第1管線階段 P1,或於第4管線階段P4的輸出連接至結構的輸出匯流排 14。多工器15,16,17的第1個輸入連接至對應的輸入匯 ml排6 ’多工器15 ’ 16 ’ 17的第2個輸入是彼此相連的, 當第2個輸入啟動時,結構作為乘法器/ΜΑ(:運算裝置。 使用不同的控制訊號cl,C2,C3組合可能產生不同的結構 28 200411540 組嘘。選擇裝置可用以重新選擇内部訊號路徑至計算裝 置,且從一組内部訊號中選擇一個輸出訊號。選擇裝置由 至少兩個可供選擇中選擇至少一個管線階段的輸入。據些 訊號所產生的組態揭示於後。 當所有控制訊號cl,C2,c3設定為邏輯1狀態,即 ,結構作為乘法器/MAC裝置。當第ι個控制訊 唬cl為邏輯〇狀態,而其他控制訊號c2,c3是邏輯1狀態, P el-〇 ’ C2一c3=i ’結構作為Sp加/減法陣列。祇有第1 個笞線#又P1 (即加法器2陣列)是啟動的,其他則是閒 置的。第3個可取組合是第丨個控制訊號cl為邏輯丨狀態, 其他控制訊號C2,C3是邏輯〇狀態(cl=〇,C2=〇,c3 = 1 )。 此時,結構作為累加器。祇有壓縮陣列4及最終加法器運 作,其他的加法器陣列及選擇區塊則閒置。第4個可取組合 疋第1個控制訊號cl及第2個控制訊號C2為邏輯丨狀態, 第3個控制訊號c3設定為邏輯〇狀態(cl=c2=i,c3=〇)。 此時,結構作寬精確度器快速加法器。尚有另一可取組合, 當CfCfCfO,結構同時作為sp加〆減法陣列及累加器。 报顯然的,上述之選擇裝置16,17,2〇及依控制訊號cl, c2,c3之狀態而定的結構/運算模式祇是可能的方式之 ’尚有其他不同的可能方式可資應用於本發明範圍之 内。這包括了運用其他的控制訊號,此將揭示於後。 圖8之結構有另兩個其他的控制訊號c4及c5,其增加 結構的多功能性而不用重新組構。第4個控制訊號c4啟動 (例如c4=l )或停止(例如c4=〇)介於第3管線階段内之 29 200411540 壓縮陣列4的輸出與輸入之間的回饋迴路。於是,若 cl=c2=c3 = l ’ C4=0 時,該結構作為乘法器;若 c1==c2=c3==c4==i 時,該結構作為MAC單元。第5個控制訊號c5 (其可能為 1,2或3位元訊號)控制第丨管線階段p丨的加/減法器的 精確度,以允許(例如C5為邏輯丨)或停止(例如c5為邏 輯0)介於全加器5區塊間之進位傳送(canTpr〇pagati〇n)。 如此,複數加法器陣列包括Sp個m位元輸入的加/減法器 也可操作為複數2sp個m/2位元輸入的加/減法器,或可操 作為複數4sp個m/4位元輸入的加/減法器,等等。另外, 選擇區塊3,壓縮陣列4 ,及最終加法器5可稍作修改,以 由一個訊號控制及實行不同精確度的乘法器/MAC運算 也是可能的。 # 矩陣向量算術架構 以下’依據本發明的有效實施例之乘法器/Mac單 元結構用於實行矩陣向量運算,例如,純量至向量,或純 量至矩陣之運算。矩陣至向量乘法運算(及矩陣至矩陣乘法 運算,反矩陣計算,顏色反轉,快速正交變換,例如卯丁, 快速DCT,等等),以及捲積,有限脈衝回應濾波,及濾波 器組,特別是分離小波轉變應用。這些運算的共同點是被 乘數X是被乘以若干乘數屮,ζ· = 1,…,尺。另一方面,一個高基 數乘法的重要特徵是顯著的複雜性從第2步驟(部分乘積加 總)移至第1步驟(形成部分乘積)。基數越高,越多複雜 性轉移。 此可取之應用的主要構想是共同被乘數Χ與第1個乘 30 200411540 數ai的可能部分乘積祇計算一次,然後重複使用這些部分 乘積於x與其他乘數屮,/=2,.··,尤,相乘時。如此,k個乘法 運异中祇須一個被完全執行,其餘的k-1的乘法運算則為非 完全地’亦即不執行基數高於4乘法運算中最複雜的部分 (即計异可能部分乘積)。很明顯地,如此將可在時間及電 源/能源消耗方面達到顯著的節省。 依據此構想,為矩陣向量算術設計的架構之一般結構 可推導自本發明的第1個有效實施例中的乘法器/MAC單 元結構及第2個有效實施例中的可組態化裝置。此可由組入 一個§己憶體21而達成,如圖7及圖8所示。存在一第6個 控制訊號c6,記憶體21據之以開放(第6個控制訊號c6 例如設定為邏輯0(低))或關閉(第6個控制訊號c6例如 設定為邏輯1 (高))寫入。當設定記憶體21為開放寫入, 可能部分乘積可由複數加法器陣列2的輸出儲存至記憶體 21。同一個控制訊號C6可用在控制2 : 1多工器22。多工 器22的第1個輸入是連接到複數加法器陣列2,且多工器 22的第2個輸入是連接到記憶體21的輸出。於是,可能部 分乘積可直接由複數加法器陣列2 (第6個控制訊號〇6例 如設定為邏輯0)或記憶體21 (第6個控制訊號e6例如設 定為邏輯1)進入複數選擇區塊3。 圖9揭不矩陣向置算術結構之例子,其中兩個 位元倍數累加運算可以同時實行。此結構組入分開的選擇 區塊3a及3b,由兩個不同的乘法器位元所控制。相同被乘 數(若c2=c3)的可能部分乘積,或不相同兩個被乘數(若 31 200411540 9 ~3)的可能部分乘積可選擇作為選擇區塊3a,3b的輸 入。兩個選擇區塊的輸出接著輸入至兩個各別有31個位元 回饋(於此例,b=32是最終累加結果的最高位元精確度) 的壓縮陣列。這些壓縮陣列的總和s及進位c的輸出可合 併於(4x31)輸入壓縮陣列,其後跟隨一個最終加法器形成的 累加項,或可成對相加形成兩個累加項。如此,兩個分開 的壓縮陣列各有一個較小深度,即較短的回饋迴路,操作 於累加階段。之後,兩對的總和項與進位項,或分開地(以 成對方式)相加於兩個CPAs(carry-propagateadders,進位 傳送加法器),或共同地相加於第3個總和區塊。在第i個 If况,兩個分開的運算的結果(例如,矩陣向量乘法運算 =兩個輸出元素)是同時得到,在第2個情況,一個複合運 异被分成兩個較小的運算,再將所得結果合併。 —實際上,任何讀/寫記憶體可用在設計的矩陣向量計 算結構中。兩個可取的記憶體形式揭示於圖1〇a及i〇b中。 圖j〇a中的記憶體形式相當於有R個長度L的暫存器之暫 存。己隐體其中L之長度是大到^以儲存—個被乘數的可 能部分乘積於-個暫存器中··叫料少,其中讲是被乘數的 位兀精確度,卜1〇gr,Γ是乘法運算中所用的基數,以及$ 是,個加法陣列中的加/減法器的數目。這個記憶體的定 址早兀應可依據循環modp規則對於每個正整數川產生 位址。這表示在運算階段卜;,2,···,定址單元產生 能部分乘積值寫到暫存器會· {〇乂·冬7},若第6個控 32 200411540 制訊號c6是低值(至記憶體),或者,暫存器α(〇, 吣)€{0,/”",及-7}的内容,即之前儲存的可能部分乘積值被寫 至輸出線,若第6個控制訊號c6是高值(從記憶體)。 第2個記憶體形式揭示在圖i〇b,以類似於m〇dp的方 式操作,但是被組構成一個能控制回饋的移位暫存器。在 每個運算步驟,第p個暫存器單元的資料,ρ = 0,·.·,ρ —2,被 移至第(Ρ + 7)個暫存器單元,如果這後者沒有停止。每個暫 存器單元都有回饋線,所有的回饋線皆輸入至0 + 多工 裔,該多工器有一輸入線作為輸入(至記憶體)。多工器由 位元訊號控制,該值設定為,使得由輸入來的資料 (若c6-0 ) ’或者由第(p-1)個暫存器輸出的回饋迴路的資料 (右c6=l )被寫至第〇個暫存器中。此記憶體通常都是由 第〇個暫存器作輸出。 以下,三個經常應用於視訊及圖像處理的執行過程將 更詳細地說明。應注意的是這些應用例子祇是特定的運算 ,本發明不設限於祇有這些運算,而這些例子也非即本發 月所有其他的運算包括一共同被乘數乘以數個乘數的乘 法運算可依本發明矩陣向量算術之架構作相似的運算。此 外,其他類似的運算法可發展於以下考量中。 第一,考慮純量對向量的運算xa,此乃最明顯的有效 實施例,一共同被乘數(純量)被乘以多數個乘數、, 沁1,…/。f 一個步驟,當執行共同被乘數與第一個乘數al 的乘法運异時,第6個控制訊號c6設定為低值,使得可能 部分乘積X直接由第i管線階㈣的加法器陣列2傳遞至 33 200411540 第2管線階段P2的複數選擇區塊3’同時寫至記憶體2ι。 記憶體21依據modi模式設定啟動,而其他的暫存器除 個外皆停^。i管線階段的所有的加法器陣列2狂除第又 個外也皆停止,若祇有一個純量與一個或數個向量之乘法 運算實行時。由第二個運算步驟開始,第6個控制訊號“ 設定為高值,使得記憶體21停止寫入,並將在第一個步驟 之後,寫入記憶體的可能部分乘積\由記憶體21取出,經 由對應的2: 1多工器的第二個輸入至選擇區塊3。同時, 所有加法器陣列2 (包括第一個)或停止,或轉換至另一個 作業。如此時間節省的目的可達成,目為去除了最耗時的 部分,即計算可能部分乘積,而使要徑縮短了。顯著電源 及能源的節省可達成,因為於κ中的K_i個運算步驟中,' 第1管線階段是停止或轉移至另一個作業。另一個優點是, 在此計算系統中,第1管線階段P1無須與其他線階段P2 至P4平衡,因為於κ中的K-1個運算步驟,其並不在要徑 上。還有一個優點是被乘數x由外部記憶體(未圖示)提取 祇須一次,然而於先前技術中,必須提取κ次。 第二,考慮矩陣向量運算, sdx,或等同地,,/ = 1,2,,尤。 7=1 此運算是許多代數及視訊/圖像處理運算法的—部 分,例如,矩陣對矩陣乘法運算,反矩陣計算,圖像顏色 空間轉換,快速正交轉換(例如TFT,快速DCT,等等) 幾何操作,邊緣偵查,等等。矩陣向量乘法運算可視為多 34 200411540 重的向量對向量乘法運算’所以可與一個或一排Mac單元 執行運算。然而,應注意的是輸入向量X的分量(被乘數) 勹,·7=α··.,ρ,乘以κ個乘數,其為矩陣A的第』行分量。 =康本發明的貫施例,利用結構中的記憶體21作為矩陣向 ,,術,允許對輸入向量x的每個分量勹,y=i,,p,祇計算 可月b。卩刀乘積一次。可能部分乘積則儲存於記憶體2 1,若 其包含足夠的暫存器(即户以)。 上述之要徑,在圖形理論中是表示起始點至終點的最 長,線。當應用於本發明時,要徑表示在管線化系統中, 計算處理過程的起點至終點的最長路線。要徑的長度表示 執订计异所須的時間。藉由要徑分析,可發現影響要徑長 度的系統某部分。當發現後,可解析並找尋縮短該部分長 度之可能性。相對地,試圖縮短不屬於要徑的部分通常是 不須要且也是無助益的。 為初始化(A:xP)矩陣對向量的乘法運算,依據本發明實 施例,結構應依適當的控制訊號值組構如下。依模 式,記憶體21設定啟動,且暫存器從記憶體的p至R停止。 架構的壓縮陣列4藉由將控制訊號C5設定為高值,而作為 累加器使用。第6個控制訊號C6於開始時設定為低值,當 每個分量勹’ ,…,P的可能部分乘積於p個操作步驟 + + 中形成,其中步驟p是第一個管線階段的延遲, 其等於管線階段内加法器陣列的數目。在這些操作步驟 中’分量勺,7 = 1,.··,Ρ的可能部分乘積直接從第丨管線階段 Ρ1的加法器陣列2經由多工器22傳至第2管線階段Ρ2的 35 200411540 複數選擇區塊3,並於同時寫至記憶體21。於是陣列A的 第1列與輸入向量X的乘法運算得以實施,並且同時地將每 個分量勹,/Μ,···,,的可能部分乘積儲存於連續的暫存器 内。在/7 + P運算步驟後,控制訊號C6設定為高值,使得記 憶體21關閉寫入,且勺,X,,p,可能部分乘積循環地由 記憶體21經由2:1多工器的第2個輸入擷取複數選擇區塊 3。同時,第5個控制訊號C5於一個步驟設定為低值以重 新開始新的累加器。如此重複κ]次,直至矩陣A所有的 列皆乘以向量x。由操作步驟”尸開始,所有加法器”車列 (包括第1個)若非停止就是轉移至另一個作業。如此, PK個乘法運算中的p個是完全實施的,而其餘的ρ(κ·丄)個 2疋部分實施,即不包括最複雜的第一步驟。與純量對向 篁乘法運算之案例相似,這個運算也導向顯著時間及電源 /能源消耗的節省。 乂下將依據本發明的捲積或FIR滤波作更詳細的考 慮。該運算式為 p 其中,通常ρ«尺。有兩個方案是可能實行FIR濾波於 依據本發明矩陣對向量運算的結構。 ^個方案中’ FIR濾波被視為p_對角線矩陣A與輪 入向乘法運算,該向量有p個分量〜卜一户+^對應 至負指標並向下移動P個位置。基於矩陣A是稀疏的(祇 有斜、、友有非〇項),上述之矩陣向量乘法運算的一般方案 36 = 慮波稍作修改。矩陣ΑΙ列,叫,ρ祇有ρ個 m击目慮波系數~ ’ y = U,P:^U + W + P_1。在此實 日±儲户冑輸人向里的所有分量而言,可能部分乘積非同 記憶體中’而是祇有p個分量的可能部分乘積被 =儲存。母P個運算步驟,—組新的目前輸人之可能部 刀乘積計算於複數加法陣肋,並取代記憶體21中較早的 個運异㈣。這是藉由每p個運算步驟設定第6個控制訊 M6至低值而達成。因此加法器陣列2無法完全停止,伸 可比執行時緩慢P倍,且不儲存可能部分 _ 的柯個乘法運算是完全實施,而其他祇有部分實施。中 第-個方案,當計算第—個輸出取樣時,?個濾波系數 $可能部分乘積儲存於記憶體21。然後,當計算其他k] J ^日夺這些可*部分乘積循環地從記憶體2!取出。 =意謂著祇有PK中的P個乘法運算是完全實施,其他的抵 二邛刀貝%。一旦所有的濾波系數的可能部分乘積儲存於 =憶體2卜所有的加法器2陣列將停止或轉移至其他的作 業。如此,帛2個方案是更有利於第j個方案。然而,第2 個方案祇有在第丨管線階段^的加/減法器2有足夠精確 度以計算遽波系數的可能部分乘積時,才有可能實施。 視訊/囷像處理之多功能架構 本發明的結構可有效地應用為視訊/圖像處理多功能 架構(一MAVIP)。圖㈣示一個依據本發明視訊處理結構的 有效實施例。此實施例結構利用一所謂絕對差和(sad)架 構24。SAD架構之一般結構揭示於圖4,其巾包括以時間 37 200411540 差方式操作所谓sfl號差(DS)單元25的複數陣列,一有回饋 的壓縮陣列4,及一個最終加法器5其後跟隨一個最小評量 器(M)單元26,此單元須用於動態評估處理(基於SAD), 但對SAD的計算本身是不須要。每個DS單元25(DS陣列 或縮寫為DSA)包括S個DS單元27(圖5),其中每一個是8 位元減法器,其後跟隨著XOR閘28介於符號位元及其他的 差值位元之間。壓縮陣列的輸入是由S個1位元(符號資 料),S個n位元(差值資料,通常n=8),及兩個(/rH〇gf;) 位元回饋(通常,K=256)。最終加法器可能有(w+1〇g幻位 元精確度。一個SAD架構的例子包括8個Ds單元(減法 器)及對應至;7 = /,及,的情況顯示於 圖6 〇 比較圖4的SAD結構與基於圖8之結構的乘法器,及 特別是比較圖6與圖8或圖9之結構,可注意到兩個結構間 一些重要的相似處。兩種結構類型主要皆包括一含複數加 法器或減法器的區塊4,27 (在SAD實例,其跟隨著一個 X〇R閘)’資料選路區塊(data routing block),其在以乘法 器為基礎的結構之情況是選擇區塊3,在SAD之情況則是 直接連接’以及總和區塊包括壓縮陣列及最終加法器。這 些相似性可作為統一這兩種結構,並結合為一可組態化架 構’其可使用少許控制訊號而組構成這兩種結構任何之 一。如此’更進一步的架構之多功能性可用極少的簡單邏 輯訊號控制之代價而達成。 有數個可選擇方式用以結合SAD結構與乘法器結構。 38 200411540 Η 表示可^擇方式之一的視訊/圖像處理多功能架構的 一般2構。此結構是經由簡單修改基本乘法器為基礎之結 ,的,個區塊而得。此情況,基本結構是圖8所示的矩陣向 里计架構。圖13表示由圖9之矩陣向量計算架構推導得 之視汛/圖像處理多功能架構之實施例。 在一個實施中,視訊/圖像處理多功能架構包括加法 器2陣列,其可依第1個控制訊號C1及第5個控制訊號C5 組構成加/減法器或DS單元,因此可表示為AA/dsa。一 個AA/DSA單元之可能實施例表示於圖12。每茁位元加 /減法器陣列由r個連續(m/r)位元加/減法器跟隨著一 XOR閘組成(於圖13,m=i6,r=2)。因此,x〇R閘祇活 動於當= /時’即(Cl,Cs)=(1,〇),當架構操作為sad架 構時。另一方面,介於Γ個連續(m/r)位元加/減法器之間 的進位延伸可提供於祇當C5 = 〇時。第1個控制訊號c i及第 5個控制訊號C5的結合也可用於控制是否數個不同輸入 (Qcj = 0)(加數或SAD運算元)或者一個輸入(被乘 數)進入陣列中。無論是實施加法或減法皆由訊號Cin控 制,其依據乘法運算法及位於AA/DSA單元内之m位元加 /減法器的位置而定。如此,依控制訊號C1及C5, AA/DSA單元可以組構成不同型態的運算如下: 39 200411540 (Cl,Cs) AA/DSA運算模 式 輸入 輸出 使用目的~ (〇,〇) α平行(m/r)-位元 加/減法 α加/r」-位元配 對(X以), i=i, ...,r rs (m/r+1)-位元 總和少/, 平行加/減法器~ (〇,1) •S1平行h)-位元加 /減法 -位元配 對(㈣), 卜1,…,r rs (m/r+1)-位 元差值c产;cr<yz·, (1〇) a 位元平行 減法,然後XORs α (^>*>位元配 對(X/,少/·), zW,…, rs (m/r)-位元 1 值資料,及rd-位元資料 SAD架構之第一 階段(複數DS單 元) (U) s加法或減法依據 基數-T乘法運算法 ------- l(m-t)-位元乘 數(/=log7) •s m-位元部分 乘積及a 7-bit 0值 基數-T乘法器的 第一階段(AA) 圖11的MAVIP實施例中,有一個資料選路區塊介於 AA/DSA單元區塊與壓縮陣列區塊之間,其由與AA/DSa單 元相同的訊號Cl與C5控制。選擇區塊的時鐘訊號(未圖 不)藉由一個友閘結合訊號C1使得選擇區塊停止於當C1=0 時。架構在此情況操作為加/減法器的平行陣列。依據控 制訊说C5 ’資料選路區塊或組構成直接連接,如同在SAD 架構内(若C5=〇)直接由AA/DSA單元的輸出傳送個(m/r) 位兀差資料及1«個丨位元資料至壓縮陣列,或作為相應的乘 法器結構内的標準選擇區塊,由八八/〇8入單元或記憶體傳 送S個m位元平行乘積至壓縮陣列區塊。此藉由插入一個 資料一體化編碼器/多工器區塊(data unifier / multiplexer) 23從相應的線路選擇資料而達成。資料一體化編碼器/多 工器區塊23或選擇AA/DSA單元區塊的輸出,若c5=0,或 選擇區塊的輸出,若c5=1,並將資料類型轉換為適於壓縮 陣列4的型態。例如,圖13中的壓縮陣列的輸入包括兩組 40 200411540 群,每一組群包括5個25位元及2個31位元回饋迴路。每 一組群内的輸入組對應至乘法運算移位後的部分乘積。因 此,一體化編碼器/多工器區塊23沒有任何部分乘積的轉 換,而祇是貫施相應的移位及送兩組部分乘積至壓縮陣列 區塊,若c5=l。然而,當SAD實施時(C5=〇),一體化編碼 器/多工器區塊23轉換8個8位元及8個丨位元的差值及 符號資料於送其至壓縮陣列區塊之前。此8個丨位元資料被 壓縮至2個2位元於一個小的壓縮陣列中,然後用〇作補數 運算使成為25位元的數目。同樣,8個8位元也用〇作補 數運算使成為25位元的數目。此1〇個25位元數目的結果 再依5個數目組成一組。 相較於圖8之矩陣向量算術架構,圖u之架構内的總 和區塊作修改是必須的,使其可依訊號C1與C5成為可組 態化。首先’總和區塊4停止,若(的)=(0,;),使得架構於 此情況作為平行加/減法器使用。然而,若(⑽)=㈣,總 和區塊4作為累加n,而直接從匯流排6獲取資料。如此, 架構事實上分開成為兩部分,第一部分作為加,減法平行 陣列’而第二部分作為累加器。若(⑽) = (")且㈣,則總 和區塊4組構成SAD架構,於每個操作步驟接受並累加由 貧料-體化編碼器/多工器區塊23轉換為aa/dsa單元區 塊的rs (m/r)位元及rs i位元資料。在fo,C2) = (/,;)且々句之 情況,總和區塊4組構絲本乘法器為基礎的結構(例如, 圖8之矩陣向量算術架構的總和區塊結構),其於每個操作 步驟接X S個m位元部分乘積,並加總或累加具適當移位 41 200411540 的資料一體化編碼器/多工器區塊内的部分乘積。有許多 可組態化總和區塊的設計方法,圖13的例子使用兩個師 區塊(壓縮陣列),其跟隨著一第3總和區塊(最終加法器) 如圖9所示。 圖13代表一個視訊/圖像處理系統的多功能架構的有 效實施例,其推導自圖9之矩陣向量架構計算於n=m==13位 兀之被乘數及乘數之情況。此實施例的架構包括一個可重 組化的8個8位元,或者4個16位元加/減法器2陣列, 一儲存加/減法器2之結果的記憶體21,一可組態化資料 選路區塊3,-個可操作為兩個分開的總和/累加區塊的總 和區塊4,及作為選擇正確輸出的輸出多工器2〇。此架構 由7個控制訊號C/,…,9控制,架構的時鐘訊號(未圖示) 疋經由及閘結合C1及C2依運算的執行停止架構内之某些 區塊。例如,當(9,〇2)=(似),在此情況架構單純地作為加/ 減法器的平行陣列。當,所有的區塊皆有作用,但是 貧料選路區塊被組構成或直接連接作為SAD施行,或以乘 法器為基礎的資料選路區塊,乃依相對的或q句而 疋,並且壓縮陣列之不同部分的操作依C5而定。 如此,架構被組構成SAD架構(若c厂^且以^),或 以乘法器為基礎的結構(若㈣且^=1),乃依訊號^而 定。再者,當乘法器為基礎的結構被重新組構成 任-可能的組態乃依訊號而定,此與上述類同。此 外,總和區塊或可組構成分開的兩部分(若^使得有 機會即刻執行一對乘法運算,或可組構成單一個(若幻 42 200411540 以較快速地累加更多的部分結果。 表3列出一些運算其可實行於圖13的MAVIP實施例伴 隨著相關控制訊號c/,···,c7之選擇。 表3 運算 控制訊號 Ci C2 Cs C4 C5 C6 Cj 平行8-位元加/減法 0 x x x 0 1 1 SAD 1 x x x 0 0 1 成對13-位乘法運算 1x001 10 (kxl)至(lxk)13位元向量對向量内積(k<65) 10 0 110 1 (記憶體不在使用) (kxl)至(lxk)13位元向量對向量内積(k<65) 111110 0 (記憶體在使用) (pxk)至(1^1)13位元矩陣對向量乘積(]<:<65) 1 〇2 〇3 1 1 0 0 C2=C5=〇 first (k/2) cycles and C2=C3=7 after that 長度p訊號h輕擊FIR濾波 1--—-—-—- 1 C2 C3 1 1 0 0 最初循環及 之後 上述實施例有許多不同的可選擇方案,因為乘法器/ MAC單元結構有若干不同類型的延伸可供使用。此外,每 個結構中不同設計參數的選擇導致不同的可選擇方案。本 發明的有效實施例適用於,例如,獨立(緊密或分開成對) 裝置。一可選擇的方案是一個系統處理器内的功能單元。 這種配置可取代處理器内的乘法單元。尚有其他許多可選 擇方案可達相同目的。其中之一是實施於不同實施例之一 部分,不包括複數加法器陣列(第1管線階段P1)及記憶體 43 200411540 21,而用作為處理器内的功能單元。處理器的加/減法器 則作為複數加法器陣列,而暫存器作為使用於矩陣對向量 運算結構内的記憶體。 例如,德州儀器(Texas Instruments)TMS320C64x DSP 包括8個功能單元,其中6個可操作為64位元的加/減法 器,這每一個可操作2個32位元或4個16位元或8個8位 元之加/減法器。其尚包括128個64位元暫存器,這每一 個可用為2個32位元或4個16位元或8個8位元之暫存器。 假設另一個功能單元(FC)類似圖6所示,但沒有加法器陣 列,將包括在處理器内。如此,此功能單元包括複數個選 擇區塊,複數個壓縮陣列,個及複數個快速最終加法器可 用於乘法運算或乘法為基礎的運算於以下兩個循環(目前 TMS320C64X乘法器之乘法運算也採兩個循環)。於第1個 循環時,加/減法器計算被乘數X的可能部分乘積,並儲存 結果於暫存器。接下來步驟中,適當的部分乘積組將被挑 選並加總於上述之功能單元。在此實例中,被乘數X被重複 使用,當實行第一個X涉入的乘法運算時,第1個循環可能 祇執行一次,但於接續與X之乘法運算中則省略而導向顯著 時間與能源之節省。此外,當實施FIR濾波(捲積)以一合理 地小的系數,TMS320C64X的加/減法器於開始時,將祇被 用於數個(可能一個)循環以計算濾波系數的可能部分乘 積,並儲存結果於暫存器。之後,剩餘之計算則依本發明 實行於功能單元,而載入/儲存單元則給予機會使用加/ 減法器於其他的目的(或暫停使用以節省電源)。在 44 200411540 TMS320C64x 目箭脊 m 上 器及加/減法器’所有功能單元包括乘法 尚有其他的可選擇方案可對不同的位元精確度 ! Γ ^ ^ Γ# # ^ ^ ^1 ^ ma^ ^ 雜法運算,或 4個㈣x(m/2)乘法運算於-個操作步驟。 ’ 囷揭示個依據本發明的有效實施例之裝置29。此 裝置包括一個控制單元30以控制裝置的操作。此裝置還包 括「個數位訊號處理單元31作為實行其他處理作業.,例如 訊號處理。依據本發明—有效實施例的計算裝置i適合應用 於處理單7G 3卜此處理單元也可包括_個有效的共同記憶 體40為計算裝置及控制單元3〇所用,及一個内部記憶體 41由處理單元31作為内部使用,例如儲存可能部分乘積。 此裝置的使用者介面33包括顯示裝置34,音響裝置%,鍵 盤36,及例如一個視訊相機37。裝置29包括通訊裝置%, 例如行動通訊裝置,以與通訊網路聯通及與其他類似的裝 置互換資訊(未圖示)。記憶體裝置39用於儲存不同的資料 及程式,例如控制單元3 〇的操作指令。 本發明不受限以上揭示的實施例,而可依據下列之申 請專利範圍作修改。 45 200411540 【圖式簡單說明】 圖1基數4 BOOTH重新編碼乘法器的標準結構, 圖2基數T BOOTH重新編碼(7Ή )或非重新編碼(r 2 4 ) 乘法器的一般結構, 圖3a在平行基數TMAC單元結構内之總和區塊的實施 例’其中總和區塊是作為η/t選擇部分乘積及回饋與 進位項的一般壓縮區塊, 圖3b另一個在平行基數TMAC單元結構内之總和區塊的 實施例,其中總和區塊被實行為分開的壓縮陣列, 圖4絕對差和的一般結構,其中DS單元作為減法器, XOR(互斥或)閘跟隨其後, 圖5 DS單元的一般結構, 圖6絕對差和結構,其中户习 圖7根據本發明第一個有效實施例之計算裝置的一般結 構簡化圖, 圖8根據本發明第二個有效實施例之複數個乘法/ MAc 運算之可組態化計算裝置的一般結構方塊簡圖, 圖9根據本發明的兩個同步(73x73)位元倍數累加運算 的矩陣向量計算架構的有效實施例, 圖10a備有一個在循環m〇d尸模式的暫存記憶體, 圖1 Ob備有一個在循環m〇(j p回饋迴圈的移動暫存記憶體, 圖11根據本發明作為視訊/圖像處理多功能架構的結構, 圖U AA/DSA單元的實施例, 、。 圖13將圖6中的SAD結構及圖9中的矩陣向量計算架構 46 200411540 成為一體的視訊/圖像處理多功能架構, 圖14根據本發明有效實施例的裝置之方塊簡圖。 【符號說明】 3a 選擇區塊 4 壓縮陣列 10 p對1多工器 11 q對1多工器 12 2u對2多工器 13 v對1多工器 21 記憶體 20 輸出選擇器 21 5P 16位元暫存器記憶體平行5x16 I/O . 23 資料一體化編碼器/多工器 30 控制單元 34 顯示裝置 35 音響裝置 36 鍵盤 37 視訊裝置 38 通訊裝置 39 記憶體 40 共用記憶體 41 内部記憶體 102 Booth編碼器 103 m+1 Booth解碼器 202 加法器陣列 203 選擇區塊 204 壓縮陣列 205 最終加法器 301 n/t+2列壓縮陣列 302 最終加法器 303 4列壓縮陣列 47