由於餘數數字系統(Residue Number System-RNS) 的算術運算無進位(carry-free)以 及可平行快速運算的特性,使得餘數系統廣泛地應用在數位信號處理上。近年來由於 超大型積體電路的進步,餘數系統上的運算開始以心縮式陣列(systolic array)架構 來達成。本文主要探討三種心縮式架構來處理餘數的內積運算(inner product oper- ations) 。第一種架構是一種一維的心縮式陣列,用來處理固定係數的內積運算,其 處理的方式是將運算元以位元層次(bit level) 來計算,每一位元的計算過程利用一 個心縮式陣列胞元(cell)來完成。此胞元內含一個模組運算對應表,亦即利用查表方 式快速取得計算結果。這種胞元結構簡單、規則、又具模組化條件。此外,為了縮短 陣列的長度節省空間,考慮加入改良式布氏乘法法則(modified Booth's multiplic- ation algorithm)使得一維陣列的長度縮短一半。此種作法,一個胞元內含一個模組 運算對應表,但一次處理兩個位元,所以處理長度可縮短一半。更進一步,考慮加入 多位元編碼方式(multibit recoding scheme),以使陣列的長度更短,並且分析硬體 複雜度,得到一個結論:三位元編碼方式為較適當的作法。另外,這種架構適合於大 模數(modulus)為基底的運算。 第二種架構是一種循環式的架構處理變動係數的內積運算,這種架構乃基於模組運算 的週期特性,將一維陣列作循環鏈結,免除陣列長度受運算元位數多寡的限制。其胞 元結構即第一種陣列之胞元結構,而陣列的長度及數目隨模數的不同而不同。 第三種架構是一種非循環式的架構,亦是基於模組運算的週期特性,用來處理變動係 數的內積運算。這種架構與第一種類似,但融合第一種和第二種架構的特性,其陣列 的長度與數目亦隨模數的不同而不同。 循環式和非循環架構都是由通用的胞元構成,每個胞元均包含一個模組運算對應表。 這兩種架構都適用於以小模數為基底的運算。 本文所探討的架構均在Valid Scald 系統上模擬和驗證過。
|