1. 程式人生 > >隨機計算(2)——A General Design of Stochastic Circuit and Its Synthesis

隨機計算(2)——A General Design of Stochastic Circuit and Its Synthesis

1、Abstract

在這篇文章中,為隨機計算電路的設計介紹了一種一般的組合電路設計方法。這種設計方法能夠完成具有任何算術方程功能的電路。

2、Introduction

超大規模積體電路(VLSI circuits)的可靠性成為一個最重要的問題,設計過程存在電壓變化和熱變化引起一系列問題。為此,隨機計算高容錯能力(tolerance of bit-flip errors)能夠很好的解決這些問題。

SC 簡介:它是將數位電路中邏輯域上的運算轉化成概率域上的運算。即:當一個邏輯器件的布林方程是
Y=F(X1,X2)Y=F(X_{1},X_{2})
轉化到概率域上運算就是把每個輸入輸出看作是一個隨機變數,那麼輸出是1的概率是:
P

(Y=1)=P(F(X1,X2)=1)=P(X1=a1,X2=a2)P(Y=1)=P(F(X_{1},X_{2})=1)=P(X_{1}=a_{1},X_{2}=a_{2})
例如一個二輸入的AND門,它的布林函式是:
Y=F(X1,X2)=X1X2Y=F(X_{1},X_{2})=X_{1}X_{2}
轉化到概率域上運算,要使得輸出隨機變數是1,則輸入變數需要都是1,即:
P(Y=1)=P(X1=1,X2=1)=P(X1=1)P(X2=1)P(Y=1)=P(X_{1}=1,X_{2}=1)=P(X_{1}=1)P(X_{2}=1)

利用伯努利大數定理可得:一些列獨立同分布的實驗,可以利用頻率去近似概率。所以利用隨機數序列去表示這些概率值,即利用一串二進位制數序列中1出現的頻率去表示這些概率值。如下圖:
在這裡插入圖片描述
SC一個重要特點就是:它具有強大的容錯能力。
設計SC電路的方法類似於邏輯電路中的設計方法,分為:組合和時序。

這篇文章主要貢獻是:
1、我們為SC引入了一般的組合設計,它只對必要的輸入概率做出假設,而不需要對底層組合電路進行任何額外的假設。 我們分析了隨機域中設計的一般行為。
2、我們提出了一種綜合方法來合成用於實現任意目標算術函式的隨機電路。 我們首先將目標函式轉換為可以通過所提出的設計實現的特殊形式。 但是,布林函式有很多選擇,可以在隨機域中實現轉換後的函式。 我們展示了這些候選布林函式的依據的特徵,並提出了有效的啟發式方法,以確定一個可以減小電路面積和延遲的組合電路的良好選擇。

3、A General Design of Stochastic Design

我們的目的在於設計一個算術函式f(x1,...,xn)f(x_{1},...,x_{n}),即輸出為11的概率是f(x1,...,xn)f(x_{1},...,x_{n})。下面我們討論的是組合電路。
首先,這個函式中的變數x1,...,xnx_{1},...,x_{n}需要由一系列的輸入X1,...,XnX_{1},...,X_{n}提供這些“概率值”(利用RNG產生)。另外這些變數一定會有係數,所以需要額外提供常量輸入,這些常量利用一系列的12\frac{1}{2}構成(利用LFSR提供)。因此,文章中提出的設計電路的輸入是:X1,...,Xn,Y1,...,YmX_{1},...,X_{n},Y_{1},...,Y_{m},其中XiX_{i}提供一系列的概率值xi[0,1]x_{i}\in[0,1],YiY_{i}提供一系列的常量12\frac{1}{2}。如下圖:
在這裡插入圖片描述
那麼,提出這樣的組合電路到底能夠實現怎麼樣的函式:
y=P(F(X1,...,Xn,Y1,...,Ym)=1)=(a1,...,an,b1,...,bm){0,1}m+n:F(a1,...,an,b1,...,bm)=1P(X1=a1,...,Xn=an,Y1=b1,...,Ym=bm)=(a1,...,an){0,1}n(b1,...,bm){0,1}m:F(a1,...,an,b1,...,bm)=1P(X1=a1,...,Xn=an,Y1=b1,...,Ym=bm)=(a1,...,an){0,1}ng(a1,...,an)P(X1=a1)...P(Xn=an)12mP(Xi=1)=xi,P(Xi=0)=1xiP(Xi=ai)=xiai(1xi)1aiy=f(x1,...,xn)=(a1,...,an){0,1}ng(a1),...,g(an)2mj=1nxjaj(1xj)1ajh(a1,...,an)=g(a1,...,an)2m,g(a1,...,an)[0,2m](a1,...,an)(b1,...,bm)使F(a1,...,an,b1,...,bm)=1.j=1nxjaj(1xj)1aj(a1,...,an)(BCP),h(a1,...,an)=g(a1,...,an)2m.y=P(F(X_{1},...,X_{n},Y_{1},...,Y_{m})=1)\\= \sum_{(a_{1},...,a_{n},b_{1},...,b_{m})\in\{0,1\}^{m+n}:\ F(a_{1},...,a_{n},b_{1},...,b_{m})=1} P(X_{1}=a_{1},...,X_{n}=a_{n},Y_{1}=b_{1},...,Y_{m}=b_{m})\\ \ \\ =\sum_{(a_{1},...,a_{n})\in\{0,1\}^{n}}\sum_{(b_{1},...,b_{m})\in\{0,1\}^{m}:\ F(a_{1},...,a_{n},b_{1},...,b_{m})=1}P(X_{1}=a_{1},...,X_{n}=a_{n},Y_{1}=b_{1},...,Y_{m}=b_{m})\\ \ \\ =\sum_{(a_{1},...,a_{n})\in\{0,1\}^{n}}g(a_{1},...,a_{n})P(X_{1}=a_{1})...P(X_{n}=a_{n})\frac{1}{2^{m}}\\ \ \\ \ \\ \because P(X_{i}=1)=x_{i},\ P(X_{i}=0)=1-x_{i} \therefore P(X_{i}=a_{i})=x_{i}^{a_{i}}(1-x_{i})^{1-a_{i}}\\ \therefore y=f(x_{1},...,x_{n})=\sum_{(a_{1},...,a_{n})\in\{0,1\}^{n}}\frac{g(a_{1}),...,g(a_{n})}{2^{m}}\prod_{j=1}^{n}x_{j}^{a_{j}}(1-x_{j})^{1-a_{j}}\\ \ \\ \ \\ 其中h(a_{1},...,a_{n})=\frac{g(a_{1},...,a_{n})}{2^{m}},\ g(a_{1},...,a_{n})\in[0,2^{m}]表示當(a_{1},...,a_{n})確定時,\\有多少種不同的(b_{1},...,b_{m})可以使得F(a_{1},...,a_{n},b_{1},...,b_{m})=1.\\ \prod_{j=1}^{n}x_{j}^{a_{j}}(1-x_{j})^{1-a_{j}}與(a_{1},...,a_{n})的二進位制組合是一致的,因此把\\這種形式的方程叫做二進位制組合多項式(BCP),\ h(a_{1},...,a_{n})=\frac{g(a_{1},...,a_{n})}{2^{m}}為多項式的係數.