TW200411540A - Method and system for performing calculation operations and a device - Google Patents

Method and system for performing calculation operations and a device Download PDF

Info

Publication number
TW200411540A
TW200411540A TW092130873A TW92130873A TW200411540A TW 200411540 A TW200411540 A TW 200411540A TW 092130873 A TW092130873 A TW 092130873A TW 92130873 A TW92130873 A TW 92130873A TW 200411540 A TW200411540 A TW 200411540A
Authority
TW
Taiwan
Prior art keywords
data
pipeline
input
scope
operations
Prior art date
Application number
TW092130873A
Other languages
English (en)
Other versions
TWI263167B (en
Inventor
David Guevorkian
Aki Launiainen
Petri Liuha
Original Assignee
Nokia 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 Nokia Corp filed Critical Nokia Corp
Publication of TW200411540A publication Critical patent/TW200411540A/zh
Application granted granted Critical
Publication of TWI263167B publication Critical patent/TWI263167B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Description

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

Claims (1)

  1. 200411540 拾、申請專利範圍: 【申請專利範圍】 • 1 · 種使用由一組至少兩個管線階段,至少一個資料 朽丨面及至少一個資料輸出介面所構成的管線化計算 ,置内實行運算的方法,該管線階段含至少—個資料輸入 介面,及至少一個資料輸出介面;在本方法中,實行第一 與第二運算之資料是輸入至裝置,其特徵在於第一個運算 一至=個&線階段的輸出資料是儲存於記憶體,而於 二個運算中,將儲存之資料作為管線階段的輸入資料。 ’其特徵在於其為一高 2·如申請專利範圍第1項之方法 基數非Booth重新編碼運算方法。 卞、軍!:如/請專利範圍第1項或第2項之方法,其特徵在於 以,异/刀作為第一個次運算與複數個第二次運算,第一次 運异的結果儲存起來,再運用於複數個第二次運算中。 4·如申請專利範圍第!,2項或第3 =該運以為乘法運算,其中被乘數乘以—個乘數= 實行計算該乘數的可能部分乘積,並將可能 口 P刀乘積儲存於記憶體。 5.如申請專利範圍第卜2,3項或 徵在於該運算是為赉半搔瞀甘士 1羊 、心万次具将 疋為采法運异,其中破乘數X乘以數個乘數U., 48 200411540 z = l,...j〇以計算共同被乘數⑴的可能部分乘積;當被乘數乘 以第-個乘數一,可能部分乘_存於記憶體,而儲存之 可能部分乘制於乘數⑻與其他乘數(α;·,ί=2,』)相乘時。 6_如申請專利範圍第5項之方法,其特徵在於該運算至 是以時間差方式實行,將至少一個次運算分為數 個。卩为= 人運算,並指定每個部分次運算予不同的時間。 7.如申請專利範圍第丨至第6項之任_項之法,苴 徵在於其用於視頻資訊處理。 八 :如申請專利範圍第i至第7項之任一項之方法,其相 二個乘法運算與另—個乘法運算以管線化實行,此 ▲-個乘法運算開始操作於前—個乘法運算結束之前,此 則一個乘法運算至少分為第丨與第2個次運算, 算於一個管_財實行,至対—個切算是平行實人^ 於一個f線’第二個乘法運算的次運算 運算完成之前。 、#個采法 9.如申請專利範圍第丨至第8項之任一項之, 徵^於選擇㈣路錢實行料算裝置,其㈣於至少、_ 固貝料介面選擇於其他至少兩個資料介面, 一個資料介面與所選擇資料介面作為資料選路。 49 200411540 l〇· —種使用由一組至少兩個管線階段,至少一個資 料輸入介面,及至少一個資料輸出介面所構成的管線化計 算裝置内實行運算的系統,該管線階段含至少一個資料輸 入介面,及至少一個資料輸出介面,而該計算裝置還包括 第一與第二運算用之資料輸入;本系統特徵在於包括一個 3己憶體(21)以儲存上述至少一個管線階段的第一運算輸出 資料,及一個資料取出器(22)將所儲存之資料作為第二運算 中管線階段的輸入資料。 十u.如申請專利範圍第項之系統,其特徵在於該計 异裝置為一高基數非Booth重新編碼乘法器。 12.如申請專利範圍第1〇項或第丨丨項之系統,其特 徵在於該運算分成為—個實行於第—管線階段的第一次運 算,及複數個實行於其他管線階段的第二次運算;第一個 次運算的計算結果被儲存於記憶體(21),而一個資料取出 器’其包括-個多卫器連接記憶體之輸出至其他至少 管線階段的輸人資料介面,㈣存的計算結果使用於 之複數個第二次運算中。 …寻利範圍第10, 11項或第項之系统, ;:=在於第1管線階段包括加法器⑺陣列,帛2管線階 段包括選擇區塊⑺’第3管線階段包括壓 2 4管線階段包括進位預測加法器⑺;第-管線階段的輪3 50 200411540 料w面連接至記憶體之輸入及至資料取出器之一個輸入, °己?體之輸出連接至資料取出器之另-個輸入,而資料取 出态之輸出連接至第2管線階段的資料輸入介面。 么14,如申請專利範圍第丨〇,11,12項或第13項之系 j *其特徵在於該記憶體包括複數個暫存器,每一個暫存 =儲存’值’及包括一個定址單元當於暫存器之一定址 時,作為從/至暫存器讀/寫資料。 么 申請專利範圍第10,11 , 12項或第13項之系 、二’其特徵在於該記憶體包括複數個暫存器,每一個暫存 啫被女排儲存一個值,及包括一個多工器用以選擇記憶 人或暫存器之—的輸出,並將選資料儲存於第一個 子益,且第-個暫存器的輸出連接至記憶體之輸出。 16·如申請專利範圍第10至第15項之任一項之系 4其特徵在於其包括至少_個多卫器作為從至少一個第 ^輸出資料介面及-個第二輸出資料介面選擇至管線階段 在問Γ*Γ,Ρ4)的輸入資料介面,此第一輸出資料介面是 句碭中前一個管線階段的輸出。 17·如申請專利範圍第10至第16項之任一項之系 /、特徵在於其包括視頻資訊處理之裝置。 51 200411540 18· 一種使用由一紐5 + 1 , 料輸入介面,及至少一個:線階段,至少-個資 算裝置内實行運算的裝置二介面所構成的管線化計 入介面,及至少一個資:輸=階段含至少-個資料輸 第一盥第-運…:出介面,而該計算裝置還包括 弟興第一運异用之資料輸入,·本 個記憶體(21)以儲存上述 、在於匕括一 山^^丨 述至少一個管線階段的第一運算輸 二個資料取出器(22)將所儲存之資料作為第二運 "ΤΓ中g線)¾段的輸入資料。 I二二申:專利範圍第18項之裝置’其特徵在於該計 #裝置為一尚基數非B〇〇th重新編碼乘法器。 2〇·、,申請專利範圍第18或第19項之裝置,其特徵 ,於該運算分成為_個實行於第—管線階段的第一次運 异,及複數個實行於其他管線階段的第二次運算;第一個 次運异的計算結果被儲存於記憶體(21),而一個資料取出 器,其包括一個多工器連接記憶體之輸出至其他至少一個 官線階段的輸入資料介面,將儲存的計算結果使用於上述 之複數個第二次運算中。 21·如申請專利範圍第18,19項或第20項之裝置, 其特徵在於第1管線階段包括加法器陣列,第2管線階 段包括選擇區塊(3),第3管線階段包括壓縮陣列(4),及第 4管線階段包括進位預測加法器(5);第一管線階段的輸出資 52 200411540 料介面連接至記憶體之輸入及至資料取出器之 記,體之輸㈣接至資料取出器之另―個輸人,而J料取 出益之輸出連接至第2管線階段的資料輸入介面 ' 22·如申請專利範圍第18,19,20馆+哲 置,其特徵在於該記憶體包括複數 3 21項H 附Η固值,及包括一個定址單元==個= 時,作為從/至暫存器讀/寫資料。醫益之-疋址 23.如申請專利範圍第is,19,2〇Jf5^ @ 1 =徵在於該記憶體包括複數個暫存器或第每= 置,2其4特項之裝 -輸出資料介面及一個〆固作為從至少-個第 ^一,的輸入第資 == 在問題中前-個管線階段的輸出。 a“枓"面是 置,^特請專利範圍第18至第24項之任一項之裝 ’、’s在於其包括視頻資訊處理之裝置。 、 53 200411540 26.如申請專利範圍第18至第25項之任一項之裝 ,其特徵在於一個乘法運算與另一個乘法運算被安排以 管線化方式實行;就此,該裝置包括管線暫存器位於至少 -個管線階段的輸入資料介面,至少一個多工器位於所述 f少-個管線階段的輸出,以及控制輸人作為控制上述之 管線暫存器’使得祇有_個管線暫存器是開發於寫入資料 至所述管線階段的輸人資料介面;上述之乘法運算被分成 f少第-與第二次運算’此每—個第—與第二次運算被執 行於-個管線階段,而其中至少—個次運算被安排平行地 管線,其巾第1乘法運算的次運算被安排開始 於相應的第一個乘法運算的次運算結束時。 2?·如申請專利範圍第18至第26項之任一項之裝 置、,其特徵在於其包括選擇資料路徑之裝置(2,3 , 4,^, 此選擇裝置包括連接―個資料介面至最少兩個其他資 面之一作為資料選路。 、 28. 如申請專利範圍第18至第27項之任一項之 置其特徵在於其包括一個無線通訊裝置。 1 29·如申請專利範圍第18至第28項之任一項$ # 置,其特徵在於其為一積體電路。 項之裝 30.如申請專利範圍第18至第28項之任一 置,其特徵在於其為一計算裝置。 、、 54
TW092130873A 2002-11-06 2003-11-05 Method and system for performing calculation operations and a device TWI263167B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FI20021984A FI118612B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite

Publications (2)

Publication Number Publication Date
TW200411540A true TW200411540A (en) 2004-07-01
TWI263167B TWI263167B (en) 2006-10-01

Family

ID=8564893

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092130873A TWI263167B (en) 2002-11-06 2003-11-05 Method and system for performing calculation operations and a device

Country Status (10)

Country Link
US (1) US7536430B2 (zh)
EP (1) EP1576494B1 (zh)
KR (1) KR100714358B1 (zh)
CN (1) CN100405361C (zh)
AT (1) ATE359559T1 (zh)
AU (1) AU2003276292A1 (zh)
DE (1) DE60313215T2 (zh)
FI (1) FI118612B (zh)
TW (1) TWI263167B (zh)
WO (1) WO2004042600A1 (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565390B1 (en) * 2005-03-23 2009-07-21 Altera Corporation Circuitry for facilitating performance of multiply-accumulate operations in programmable logic devices
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8041759B1 (en) * 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US9268742B2 (en) * 2012-06-05 2016-02-23 Intel Corporation Reconfigurable variable length fir filters for optimizing performance of digital repeater
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
CN107315718B (zh) * 2016-04-26 2020-08-21 中科寒武纪科技股份有限公司 一种用于执行向量内积运算的装置和方法
CN106168941B (zh) * 2016-06-30 2019-06-14 中国人民解放军国防科学技术大学 一种支持复数乘法的fft蝶形运算硬件实现电路
KR102631381B1 (ko) * 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
CN106970896B (zh) * 2017-03-30 2020-05-12 中国人民解放军国防科学技术大学 面向向量处理器的二维矩阵卷积的向量化实现方法
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10678507B2 (en) 2017-12-22 2020-06-09 Alibaba Group Holding Limited Programmable multiply-add array hardware
CN110190843B (zh) * 2018-04-10 2020-03-10 中科寒武纪科技股份有限公司 压缩器电路、华莱士树电路、乘法器电路、芯片和设备
JP7183079B2 (ja) * 2019-03-08 2022-12-05 株式会社東芝 半導体装置
TWI798640B (zh) * 2021-02-09 2023-04-11 新唐科技股份有限公司 常數乘法器
CN113870918B (zh) * 2021-09-30 2023-03-28 华中科技大学 存内稀疏矩阵乘法运算方法、方程求解方法以及求解器
CN115718724B (zh) * 2023-01-09 2023-05-09 阿里巴巴(中国)有限公司 Gpu、数据选择方法及芯片

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3732410A (en) * 1969-12-22 1973-05-08 Postmaster Department Res Labo Self adaptive filter and control circuit therefor
GB8718488D0 (en) * 1987-08-05 1987-09-09 British Petroleum Co Plc Chemical process
US5220525A (en) * 1991-11-04 1993-06-15 Motorola, Inc. Recoded iterative multiplier
JP3140187B2 (ja) * 1992-07-23 2001-03-05 アイシン・エィ・ダブリュ株式会社 車両用経路誘導装置
JP3546437B2 (ja) * 1993-03-31 2004-07-28 ソニー株式会社 適応形ビデオ信号演算処理装置
US5825680A (en) * 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
US5935202A (en) 1997-03-25 1999-08-10 International Business Machines Corporation Compressor circuit in a data processor and method therefor
US6085214A (en) * 1997-09-04 2000-07-04 Cirrus Logic, Inc. Digital multiplier with multiplier encoding involving 3X term
US6367003B1 (en) * 1998-03-04 2002-04-02 Micron Technology, Inc. Digital signal processor having enhanced utilization of multiply accumulate (MAC) stage and method
US6141674A (en) 1998-06-10 2000-10-31 Hewlett-Packard Company Reducing the hardware cost of a bank of multipliers by combining shared terms
JP2000047852A (ja) * 1998-07-27 2000-02-18 Mitsubishi Electric Corp 乗算装置、該乗算装置を複数備える固定係数型firディジタルフィルタ
US6671708B1 (en) * 1998-11-26 2003-12-30 Matsushita Electric Industrial Co., Ltd. Processor and image processing device
US6353843B1 (en) * 1999-10-08 2002-03-05 Sony Corporation Of Japan High performance universal multiplier circuit
US7127482B2 (en) * 2001-11-19 2006-10-24 Intel Corporation Performance optimized approach for efficient downsampling operations

Also Published As

Publication number Publication date
KR20050065673A (ko) 2005-06-29
EP1576494B1 (en) 2007-04-11
FI20021984A0 (fi) 2002-11-06
US7536430B2 (en) 2009-05-19
TWI263167B (en) 2006-10-01
EP1576494A1 (en) 2005-09-21
DE60313215D1 (de) 2007-05-24
CN1735881A (zh) 2006-02-15
ATE359559T1 (de) 2007-05-15
CN100405361C (zh) 2008-07-23
DE60313215T2 (de) 2007-12-20
US20040139131A1 (en) 2004-07-15
FI118612B (fi) 2008-01-15
KR100714358B1 (ko) 2007-05-02
AU2003276292A1 (en) 2004-06-07
FI20021984A (fi) 2004-07-15
WO2004042600A1 (en) 2004-05-21

Similar Documents

Publication Publication Date Title
TW200411540A (en) Method and system for performing calculation operations and a device
KR100715770B1 (ko) 연산을 수행하는 방법 및 시스템 및 장치
Lang et al. A radix-10 combinational multiplier
JP4555356B2 (ja) 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
JPS6125188B2 (zh)
WO1999038088A1 (fr) Procede et dispositif pour operation arithmetique
JP2011034566A (ja) マルチmacアーキテクチャにおける低電力firフィルタ
WO2008116933A1 (en) Multiply and multiply- accumulate unit for signed and unsigned operands
US20120254271A1 (en) Arithmetic operation circuit and method of converting binary number
Kshirsagar et al. Implementation of pipelined booth encoded wallace tree multiplier architecture
TWI235954B (en) Method and system for performing a multiplication operation and a device
Wang et al. A radix-16 combined complex division/square root unit with operand prescaling
KR100481586B1 (ko) 모듈러 곱셈 장치
JP3982965B2 (ja) 繰り返し型乗算器とアレイ型乗算器
Hickmann et al. Improved combined binary/decimal fixed-point multipliers
Guevorkian et al. A method for designing high-radix multiplier-based processing units for multimedia applications
Ravi Design and implementation of Wallace tree multiplier using higher order compressors
Madhuri et al. Analysis of reconfigurable multipliers for integer and Galois field multiplication based on high speed adders
Kumar et al. Implementation and Performance Analysis of Reconfigurable Montgomery Modular Multiplier
Tenca et al. A High-Radix multiplier design for variable long-precision computations
KR100434391B1 (ko) 디에스피 프로세서 및 마이크로프로세서의 실시간영상데이터 처리를 위한 연산회로 및 그 연산방법
Nithya et al. An efficient fixed width multiplier for digital filter
Manikandababu et al. Integration of a Full Wavelet-Based Image Compression System on a Field-Programmable Gate Array
KUMAR et al. A Survey on Modular & hybrid multiplication using carry saves adder
Guevorkian et al. A radix-8 multiplier design and its extension for efficient implementation of imaging algorithms

Legal Events

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