對於互連網絡的設計,通常是希望其結構不要過分複雜以降低成本,能提供串連的很大靈活性以滿足演算法以及應用的需要,提高其效能。同時還希望這種互連網絡又可以通過使用一系列規整單一的基本構件組合而成, 或者經多次通過, 或者經多級串連來實現複雜的互聯,模組性好,以便於用大規模整合電路來實現。
7.2.1 互聯函數的表示
為了反映不同互連網絡的串連特性,每種互連網絡可用一組互聯函數來定義。如果把互連網絡的N個入端和N個出端分別用整數0,1,…,N-1來表示, 則互聯函數就是表示互連網絡的出端號和入端號的一一對應關係。 令互聯函數為f,則它的作用是:對於所有的0≤j≤N-1,同時存在入端j連至出端f(j)的對應關係。當互聯函數用來實現處理機之間資料變換時,互聯函數也反映了網路輸入數組與輸出數組間對應的排列關係或者為置換關係。互聯函數有三種標記法,一種是輸入輸出對應標記法,一種是迴圈標記法,另一種是函數標記法。
1.輸入輸出對應標記法
這種標記法把互聯函數表示為:
這就是說0變換為f(0), 1變換為f(1),…,N-1變換成f(N-1), f是互聯函數。例如,N=8,均勻洗牌函數的這種表示形式為:
2.迴圈標記法
把互聯函數函數f(x)表示為(X0X1X2…Xj…Xk-1)其中k≤N, 迴圈表示有下列對應的函數關係f(X0)=X1,f(X1)=X2,……,f(Xj)=Xj+1,……f(Xk-1)=X0
其中Xi為結點編號,這裡k為迴圈長度。
3.函數標記法
這裡用x表示輸入變數,用f(x)表示互聯函數,常常把輸入端x和輸出端f(x)都用二進位編碼錶示,從中看出對應的函數關係和規模,寫出運算式。
如x:{bn-1bn-2…bi…b0}互聯函數對應地表示為f(bn-1bn-2…bi…b0)。
例如交換置換寫為
它表示實現式二進位地址編號中第0位位值不同的輸入端和輸出端之間串連。
直接畫出輸入結點和輸出結點互聯拓撲結構圖,稱為互連接構圖法,後面將介紹。
7.2.2 幾種基本的互聯函數
下面介紹常用的基本互聯函數、它們的函數運算式以及主要的特徵。以下例子中,用N表示節點數目, 當用二進位表示這些節點號碼時,將用n位位元表示,其中n=LOG2N
1.恒等置換
相同編號的輸入端與輸出端一一對應互聯所實現的置換即為恒等置換,其運算式為:
其中等式左邊括弧內的Xn-1Xn-2…X1X0和等式右邊的Xn-1Xn-2…X1X0均為網路輸入端和輸出端的二進位地址編號。這種置換完成的變換圖形如7.2.1所示。圖的左部為輸入端,右部為輸出端。
2.交換置換
交換置換是實現二進位地址編號中第0位位值不同的輸入端和輸出端之間的串連。其運算式為:
它所實現的輸入端與輸出端的互聯圖形見圖7.2.2。
3.方體置換
方體置換是實現二進位地址編號中第k位位值不同的輸入端輸出端之間的串連。其運算式為:
這是上述交換置換的一般情形。它應有n個方體置換,如以N=8為例,則有
這裡是實現二進位第0位的方體變換
這裡是實現二進位第1位的方體變換
這裡是實現二進位第2位的方體變換
其變換圖形見圖7.2.3,其中即C0為交換置換。
4.均勻洗牌置換
均勻洗牌置換是將輸入端分成數目相等的兩半,前一半和後一半按序一個隔一個地從頭至尾依次與輸出端相連,這好比洗撲克牌時,將整副牌分成相等的兩疊來洗,以達到理想的一張隔著一張的均勻情況, 故稱為均勻洗牌置換,或簡稱為洗牌置換, 其函數關係可表示為:
由此運算式可見,洗牌變換是將輸入端二進位地址迴圈左移一位即得到對應的輸出端二進位地址。
逆均勻洗牌是均勻洗牌的逆函數, 它完成的變換圖形7.2.4所示。兩者的輸入端和輸出端正好互換了位置,其函數運算式為:
這就說明逆洗牌是將輸入端二進位地址編號迴圈右移一位即得到相應的輸出端地址。均勻洗牌與逆均勻洗牌是兩種十分有用的互聯函數,以它們代表的鏈路與以交換置換代表的開關多級組合起來可構成Omega(Ω)網與逆Omega(Ω-1)網路。σ函數在實現多項式求值、矩陣轉置和FFT等並行運算以及並行排序等方面都得到廣泛的應用。
5.蝶式置換
蝶式置換的名稱源於FFT 變換的實現時圖形的形狀如蝴蝶式樣。它被定義為:
這種置換是將輸入端二進位地址的最高位和最低位互換位置即可求得相應輸出端的地址。同樣, 可定義子蝶式(subbutterfly)β(k)置換和超蝶式置換β(k)如下:
β(k)置換將輸入端二進位地址第k位和最低位互換位置求得輸出端地址。而β(k)是將輸入端第n-k-1位和最高位互換位置求得輸出端地址,圖7.2.5給出N=8的蝶式β(2)、β(2)變換圖。
6.移數置換
移數置換是將輸入端數組迴圈移動一定的位置向輸出端傳輸。其函數運算式無需用二進位編號來寫,可表達如下:
a(X)=(X+k)mod N,0≤X≤N
k為常數, 指移動的位置值,也可以將整個輸入數組分成若干個子數組,在子數組內進行迴圈移數置換,這種段內迴圈移數的運算式可寫成為兩個式子如下:
a(X)(r-1):0=((X)(r-1):0+k) mod 2r
a(X)(n-1):r=(X)(n-1):r
其中下標(n-1):r和(r-1):0分別指從n-1位到r位和從r-1到0位。
迴圈移數的變換圖形見圖7.2.6, 這種變換在實現並行計算和影像處理中很有用。
7.加減2i(PM2I)置換
加減2i置換實際上是一種移數置換包含2N個互聯函數,其運算式為:
圖7.2.7給出了這一函數的變換映像, 它是構成資料變換網路的基礎。