• 沒有找到結果。

可應用於算術電路的機率性組合電路之正確 值計算

N/A
N/A
Protected

Academic year: 2022

Share "可應用於算術電路的機率性組合電路之正確 值計算 "

Copied!
63
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

可應用於算術電路的機率性組合電路之正確 值計算

Correctness Computation of a Probabilistic Combinational Circuit with Application to

Arithmetic Circuits

系 所 別:資訊工程學系碩士班 學號姓名:M09702024 高佳涵 指導教授:顏金泰 博士

中 華 民 國 101 年 2 月

(2)

中文摘要

晶片在奈米的製程過程中,由於受到熱干擾、接地彈跳雜訊和製程變異數的干 擾,邏輯電路會發生錯誤的機率將會提高。根據 Palem 提出的干擾模型,我們介紹 PCMOS 電路的觀念所設計的組合電路。

首先,我們選擇 NOT、NAND、NOR 以及 XOR 為基本邏輯閘。再根據 Palem 的干擾模型可以計算 PCMOS NOT、NAND、NOR 以及 XOR 的正確機率值。全加法 器是算術電路中最基本的電路,根據 PCMOS 基本邏輯閘的正確機率值,我們可以設 計以及計算 PCMOS 全加法器中的進位位元與總和位元的正確機率值。最後,根據 PCMOS 全加法器的正確機率值,我們可以更進一步的完成設計與計算漣波進位加法 器與矩陣乘法器這兩種算術電路的正確機率值。實驗結果顯示漣波進位加法器與矩陣 乘法器的正確機率值取決於組合電路中基本邏輯閘的干擾。

關鍵字:基本邏輯閘、PCMOS 電路、正確機率值、算術電路

(3)

Abstract

Due to the effect of thermal noise, ground bounce noise and process variations in nanometer process, the behavior of any logical circuit may become increasingly probabilistic. Based on Palem’s noise model, PCMOS circuits are introduced to design combinational circuits.

Firstly, the NOT, NAND, NOR and XOR CMOS gates are selected as primitive gates.

Based on Palem’s noise model, the correctness probabilities of the PCMOS NOT, NAND, NOR and XOR gates can be computed. For arithmetic circuits, fall adder (FA) is a basic circuit. Based on the correctness probabilities of the PCMOS primitive gates, the PCMOS FA can be designed and the correctness probabilities of the carry and sum bit in the PCMOS FA can be computed. Finally, based on the correctness probabilities of the PCMOS FA, the PCMOS ripple-carry adder and array multiplier can be designed and the correctness probabilities of the two arithmetic circuits can be further computed. The experiment results show that the correctness probabilities of the two arithmetic circuits depend on the noise of the primitive gates in combinational circuit design.

Keyword:Primitive gates、PCMOS circuit、Correctness probability、Arithmetic circuit

(4)

誌 謝

此篇論文的完成要特別感謝我的指導教授顏金泰博士以及陳永源博士,感謝老師 們在我讀研究所這段時間教我用正確的觀念以及積極的態度面對問題以及解決問 題,感謝老師這段時間的指導,在此致上最深的感謝。

在求學期間,感謝實驗室的學長-陳志瑋、呂昆龍、張坤鈞、許仲賢、宋東彥給 予指導與建議還有同學方仁杰、陳威志、陳科銓、鐘明清在課業以及生活上的鼓勵,

以及學弟鐘潤民、黃明謙、黃建榮、游銘群以及黃聖凱的幫忙與協助,很感謝你們讓 我在研究所的生活中增添了許多歡笑,讓我在研究所的生活多采多姿。此外要感謝我 的家人,在這求學這段時間的支持與關心,讓我能無後顧之憂的專心於課業,這份感 謝是千言萬語都無法說明的。

僅將這篇論文獻給我做親愛的家人、老師與朋友們,與大家分享這份得來不易的 榮耀。

(5)

目 錄

中文摘要 ... I Abstract ... II 誌 謝 ... III 目 錄 ... IV 圖目錄 ... VI 表目錄 ... VIII

第一章 簡介 ...1

1.1 CMOS 製成與數位電路設計 ...1

1.2 MOS 製成之干擾因素 ...2

1.2.1 熱干擾(Thermal Noise) ...2

1.2.2 接地彈跳雜訊(Ground Bounce Noise)...3

1.2.3 製程變異(Process Variation) ...3

1.3 機率式 CMOS(PCMOS)元件模型 ...4

1.4 相關研究 ...6

第二章 研究動機與問題描述 ... 13

2.1 干擾模型 ... 13

2.2 研究動機 ... 14

2.3 問題描述 ... 14

第三章 PCMOS 基本邏輯閘之成功機率生成 ... 15

3.1 基本邏輯閘選取 ... 15

3.2 NOT 邏輯閘 ... 17

3.3 NAND 邏輯閘 ... 18

3.4 NOR 邏輯閘 ... 19

3.5 XOR 邏輯閘 ... 20

第四章 PCMOS 組合電路之成功機率生成... 22

4.1 產生基本邏輯閘之成功機率 ... 23

4.2 相鄰圖之建立 ... 24

4.3 獨立輸入節點區塊之分割 ... 26

4.4 組合電路機率之生成 ... 29

第五章 應用於算術電路之成功機率計算 ... 35

5.1 PCMOS 全加法器 ... 35

5.1.1 和位元之正確機率值計算 ... 37

5.1.2 進位位元之正確機率值計算 ... 39

5.2 PCMOS 漣波進位加法器(Ripple-Carry Adder) ... 42

5.3 PCMOS 矩陣乘法器(Array Multiplier) ... 44

(6)

第六章 實驗結果 ... 47

6.1 實驗環境 ... 47

6.2 實驗結果 ... 47

第七章 結論與未來展望 ... 50

參考文獻 ... 51

(7)

圖目錄

圖 1- 1 反向器輸入電壓< Vdd/2 的輸出示意圖 ...4

圖 1- 2 (a)反向器受到干擾之示意圖(b)反向器發生錯誤的機率之示意圖 ...5

圖 1- 3 電晶體出現錯誤的趨勢圖(圖來源於論文[25]) ...6

圖 1- 4 (a)原始圖像(b)BGPS 加法器(c)n-BIVOS(d)UVOS...8

圖 1- 5 12 位元加法器供應電壓示意圖 ... 10

圖 1- 6 (a)原始圖像(b)傳統電壓縮放圖像(c)非均勻電壓縮放圖像 ... 10

圖 1- 7 循序邏輯閘之示意圖 ... 11

圖 2- 1 第一種 PCMOS 邏輯閘型態 ... 13

圖 2- 2 第二種 PCMOS 邏輯閘型態 ... 13

圖 3- 1 電晶體組成之基本邏輯閘示意圖 ... 15

圖 3- 2 布林代數之 XOR 邏輯閘 ... 16

圖 3- 3 CMOS 製程之 XOR 邏輯閘 ... 16

圖 3- 4 電晶體組成之 XOR 邏輯閘 ... 16

圖 3- 5 PCMOS NOT 邏輯閘 ... 17

圖 3- 6 PCMOS NAND 邏輯閘 ... 18

圖 3- 7 PCMOS NOR 邏輯閘 ... 19

圖 3- 8 PCMOS XOR 邏輯閘 ... 20

圖 4- 1 計算組合電路的正確機率之流程圖 ... 22

圖 4- 2 基本邏輯閘組成之電路 ... 25

圖 4- 3 邏輯閘轉換為節點相鄰圖示意圖 ... 25

圖 4- 4 (a)輸入節點(b)邏輯閘節點(c)輸出節點 ... 26

圖 4- 5 向前群集 ... 27

圖 4- 6 向後組合產生之區塊 ... 28

圖 4- 7 區塊轉換圖 ... 29

圖 4- 8 區塊相鄰圖經拓樸排序得到之序列 ... 29

圖 4- 9 區塊排列之順序 ... 29

圖 4- 10 機率消除法消除輸入相依 ... 30

圖 4- 11 針對每種機率條件的分析與計算 ... 31

圖 5- 1 半加法器 ... 35

圖 5- 2 兩組半加法器及 OR 邏輯閘組成之全加法器 ... 35

圖 5- 3 基本邏輯閘組成之全加法器... 36

(8)

圖 5- 4 PCMOS 全加法器之正確機率值位置示意圖 ... 36

圖 5- 5 PCMOS 總和位元之正確機率值示意圖 ... 37

圖 5- 6 PCMOS 進位位元之正確機率值示意圖 ... 40

圖 5- 7 進位位元之節點轉換圖 ... 40

圖 5- 8 非獨立輸入節點分解圖 ... 40

圖 5- 9 n 個單位漣波進位加法器示意圖 ... 43

圖 5- 10 n × n 單位矩陣乘法器 ... 44

圖 5- 11 進位保存加法器輸入來源示意圖 ... 45

圖 6- 1 漣波進位加法器之折線圖 ... 48

圖 6- 2 矩陣乘法器之折線圖 ... 49

(9)

表目錄

表 1- 1 NOT 邏輯閘輸出機率表示 ...7

表 1- 2 AND 邏輯閘輸出機率表示 ...7

表 1- 3 OR 邏輯閘輸出機率表示 ...8

表 3- 1 NOT 邏輯閘輸入值為 1 之正確機率值分析 ... 18

表 3- 2 PCMOS NOT 邏輯閘之正確機率值列表... 18

表 3- 3 PCMOS NAND 邏輯閘之正確機率列表 ... 19

表 3- 4 PCMOS NOR 邏輯閘之正確機率值列表 ... 20

表 3- 5 XOR 邏輯閘之正確機率列表 ... 21

表 4- 1 PCMOS NOT 邏輯閘之正確機率 ... 23

表 4- 2 PCMOS NAND 邏輯閘之正確機率 ... 23

表 4- 3 PCMOS NOR 邏輯閘之正確機率 ... 24

表 4- 4 PCMOS XOR 邏輯閘之正確機率 ... 24

表 4- 5 PCMOS 非獨立輸入區塊之正確機率列表 ... 32

表 4- 6 B2 區塊之正確機率值... 32

表 4- 7 PCMOS 組合電路正確機率列表 ... 32

表 5- 1 PCMOS 和位元之正確機率值 ... 37

表 5- 2 PCMOS 進位位元之正確機率值 ... 40

表 6- 1 漣波進位加法器之實驗數據... 47

表 6- 2 矩陣乘法器之實驗數據 ... 49

(10)

第一章 簡介

1.1 CMOS 製成與數位電路設計

積體電路(Integrated Circuit,簡稱 IC)是將電晶體、二極體、電阻、電容等電子元 件利用精密的微電子技術將元件放置晶片上,積體電路的優點是:體積小、功能種類 多、可靠性高以及價錢也很便宜,因此現在所有的電子電路都盡量採用積體電路。根 據積體電路的使用方向大約可以分為消耗性以及工業性,消耗性積體電路是使用在一 般家庭及日常生活有關的電器用品上,例如:遊戲機、音響等,特性就是要講求功能 的多樣性;而工業性的積體電路,除了講求功能性之外還會要求可靠性以及標準化。

在電晶體製程,互補式金氧半導體(Complementary Metal Oxide Silicon, 簡稱 CMOS)在積體電路設計中是佔有非常重要的地位,而 CMOS 製程技術提供兩種型態 的電晶體,分別是 n 型電晶體(nMOS)與 p 型電晶體(pMOS),其工作原理是利用擴散 負電荷產生大量的電子或是擴散正電荷產生大量的電洞。形成 n 型電晶體的原理是選 擇要製程帶大量電子的 n 型區域,p 型半導體為基底將 n 型擴散區域分為兩個部分,

分別稱為源極(Source)和汲極(Drain)。分隔源極和汲極的區域往上再增加二氧化矽(絕 緣體)和一層導電極(導體),此端稱為閘極(Gate)。而 p 型電晶體是以 n 型半導體為基 底,分別也有源極(Source)、汲極(Drain)和閘極(Gate)。閘極(Gate)是控制端,電壓則 是影響源極與汲極兩端電流的大小,因此源極與汲極可以視為開關的兩端。

CMOS 電晶體的閘極是控制源極與汲極之間的電流量,若簡化討論的話,CMOS 電晶體是一個簡單的開關。將’1’視為高電位;’0’則視為低電位,而區分高、低電壓 的臨界值是供應電壓的百分之六十五到供應電壓 Vdd,在這區間的電壓值稱為高電 壓;而從 Vss到供應電壓的百分之三十五,這區間的電壓值為低電壓的範圍,在高電 壓與低電壓之間的區間是未知的區域,若資料在這範圍之內都是為錯誤。

(11)

1.2 MOS 製成之干擾因素

早些時代所需要推動晶片的供應電壓很大,而高、低電壓之間的間隙相對較大,

但是隨著電子產品逐漸縮小的情況之下,供應電壓也漸漸縮小,導致高、低電壓之間 的間隙逐漸變小。然而雜訊就是來自於非本體的訊號,其特色就是微小而且出現的時 間不固定也無法預測的電壓,在供應電壓變小的情況之下再受到雜訊的干擾會造成電 壓的改變。例如:對於電晶體 180 奈米製程的供應電壓為 1.8 伏特時,高電壓為 1.17 伏特到 1.8 伏特;低電壓為 0 伏特到 0.63 伏特,中間的間隔有 0.54 伏特的間隔。因 此在受到干擾的情況之下雖然電壓值有微小變動的狀態發生,但是因為高、低電壓範 圍大,所以還是會落在 1.17 伏特到 1.8 伏特之間或是 0 伏特到 0.63 伏特之間。

但是隨著製程變小在電晶體為 65 奈米或是 90 奈米的供應電壓變成 1.2 伏特時,

高電壓為 0.78 伏特到 1.2 伏特之間;低電壓為 0 伏特到 0.42 伏特,這中間只有 0.36 伏特的差距。當受到雜訊干擾的時候可能會從原本應該輸出的電位調到另外一個範圍 內而讓原本的輸出變成另外一個輸出值,例如:原本應該是輸出為 1,但是經過干擾 之後電壓值降到低電壓的範圍裡面,導致結果為錯誤的。因為並不是落在中間不確定 的範圍內,其輸出值都是可判斷為正確的,所以間距的變小導致最後輸出的結果會是 錯誤的,因此電壓值的變化值會影響資料的正確性[7]。因此針對會改變電壓值的三 種干擾分別做探討,提出以下會影響電壓值之三種干擾:

1.2.1 熱干擾(Thermal Noise)

在論文中[1]提到晶片的運作方式是讓電子移動,造成高、低電壓的方式呈現資 料,在電子移動的同時會造成電阻,而電阻的產生會形成熱。當散熱能力大於熱的產 生時,就不會形成熱干擾(Thermal Noise);相對的,如果散熱能力小於熱的形成時,

熱干擾就會影響電子在運作的能力。影響電阻的大小有幾個主要因素,分別是導線長 度、導線之截面積以及溫度。導線在相同的截面積之下電阻的大小與導線長度成正 比,長度越長的導線,所累積的電阻就會越大;導線在相同的長度之下,電阻與導線

(12)

截面積成反比,當導線之截面積越大時可通過的電子數越多所產生的電阻值就會越 小。而溫度的變化跟導線的材質有關,一般導線都是金屬材質,而金屬材質的電阻值 是呈線性成長,表示溫度越高電阻值相對也會增加。所以電阻值越高表示資料在傳遞 的過程中受到阻抗的程度會越來越嚴重,因此造成延遲的問題,導致資料在傳遞的過 程中會不完整而導致輸出結果錯誤。

1.2.2 接地彈跳雜訊(Ground Bounce Noise)

在高速電路中,有許多的寄生電感、電容、電阻等等電子元件存在於訊號線與電 源平面層之間。在論文[2][3]中提到當晶片在做狀態的快速變換時,層與層之間會產 生暫態電流值,此暫態電流值即是接地彈跳雜訊。而電流值的改變會影響電壓值的變 化,間接就會影響電阻和溫度的改變。會造成接地彈跳雜訊的原因是當晶片狀態快速 從高電壓便低電壓或是低電壓轉換成高電壓時,而且有許多元件同時做狀態的改變 時,會造成接地彈跳雜訊越來越嚴重,而影響電壓值的情況就會越來越嚴重。

1.2.3 製程變異(Process Variation)

除了外在的干擾因素之外,在論文[4][5]中提到晶片在研發與製成的過程中也會 發生錯誤,原因是現在的晶片體積越來越小,線材之間的間隔也相對變小許多,在晶 片製造的過程中會因為體積縮小的情況而造成電壓與溫度的變化。其中在光罩的步驟 時,會造成繞射的現象,導致線材尚未達到預期設計的寬度,而比設計實際其還要寬。

這樣會導致線材之間的距離變的更接近,甚至出現重疊的問題,形成短路的狀況。另 外會發生的問題是在當初設計時的電阻值與經過此段的電流會因為線材的寬度改變 而使的電阻值與溫度而受影響。因此在製程方面的變異數也是會影響晶片中主要因素 之一。

(13)

1.3 機率式 CMOS(PCMOS)元件模型

當 CMOS 在遇到干擾時會發生錯誤的情況導致輸出有可能是錯誤的結果,論文 [8]提出機率式 CMOS (PCMOS)的觀念,表示 PCMOS 在運作的過程中有受到干擾影 響,本來的輸出值可能要為 1,因為干擾因素變成輸出為 0;也有可能輸出值要為 0,

但干擾而變成 1。因此有學者將干擾因素用常態分佈的觀念來思考,表示干擾是以常 態分佈的機率出現。

CMOS 的反向器為例,在基本原則之下輸入電壓若小於 Vdd 2

1 ,表示 PMOS 導通,

因此輸出電壓為V 輸出的訊號為 1(圖 1-1);相反的若輸入電壓大於dd Vdd 2

1 得情況之

下,NMOS 導通,輸出電壓就為 0 輸出的訊號為 0。

圖 1- 1 反向器輸入電壓< Vdd/2 的輸出示意圖

當 CMOS 的反向器若受到干擾的情況之下,如圖 1-2(a),在輸出的電壓值可能會 有所改變導致輸出結果為錯誤的情況,表示在輸入電壓值小於 Vdd

2

1 ,原本應該是要

輸出訊號為 1,曲線分佈應該是要在 Vdd 2

1 的右側,但是受到雜訊干擾之後,電壓值的

改變導致輸出訊號就有機會落在輸出訊號為 0 的部分(粉紅色區塊);相反地,在輸入 電壓值大於 Vdd

2

1 時,曲線分佈在正常的情況之下是左側小於 Vdd 2

1 的部分,但是受到 干擾後經由電壓值的改變,輸出訊號可能會變成為 1 的部分(綠色區塊)。根據常態分 佈的數學表示,在曲線下的面積為錯誤的機率值,表示對於 CMOS 反向器會出現錯

誤的機率是粉紅色與綠色區塊的面積總和 )

2 (2 2 1 2 1

dd i

erf V

p   ,圖 1-2(b)。而我們將

訊號 0 訊號 1

(14)

要計算的為正確機率值,因此設定為 p=1-pi

圖 1- 2 (a)反向器受到干擾之示意圖(b)反向器發生錯誤的機率之示意圖

Vdd

Vout

Vin Vn

干擾

(a) (b)

(15)

1.4 相關研究

根據莫爾定律(Moore’s Law),單晶片上電晶體的數量在每十八個月就會成長一 倍,因此製程技術不斷進步,在晶片越來越小以及電晶體數量越來越多的情況之下,

使得電晶體對於外在或內部干擾的程度也日益嚴重,論文[6]中提到在微處理器設計 方面製程的參數、供應電壓與溫度會決定系統正確性的重要因素,因此對於在高干擾 的環境下讓系統能夠正常運作已經漸漸成為設計者重要的挑戰。電路中最基本的元件 邏輯閘會因為干擾因素而造成運作上的錯誤,再加上電晶體對於干擾的抵抗力減少以 及環境造成的干擾增加,導致邏輯閘發生錯誤的機會也會隨之增加,在邏輯閘受到干 擾而發生錯誤的情況之下,組合電路運作的過程中是會處理到錯誤的資料,造成最後 輸出的結果有機會出現錯誤。

因為干擾出現錯誤的情況會隨著製程發展而漸漸嚴重,因此在論文[6][25]中提出 依照莫爾定律繼續發展,電晶體受到干擾程度會遠比我們想像中的還要嚴重,並且在 論文[25]預測電晶體在往後幾年會出現錯誤的機率的趨勢圖(圖 1-3),作者預測在西元 2014 年電晶體錯誤的機率大約是 10-35,但是到西元 2018 年電晶體的錯誤率更會提高 到 4.58*10-13,在這短短 4 年的時間錯誤率可以提高 1012倍,可見在數十年之後,系 統的正確率會不如以往來的高。

圖 1- 3 電晶體出現錯誤的趨勢圖(圖來源於論文[25])

(16)

表示電晶體在往後會有出現錯誤的機率,因此有學者利用 PMOS 與 NMOS 對於 供應電壓之高電壓與低電壓的反應提出機率式 CMOS(PCMOS)的概念。因此不同邏 輯閘的特性會因為 PMOS 與 NMOS 的組成方式不同而有 NOT、AND、OR 等不同特 性的邏輯閘。在電晶體的基本原理之下,輸入電壓若大於 Vdd/2 則是 NMOS 導通;相 反地,輸入電壓若是小於 Vdd/2 則是 PMOS 導通。但是因為干擾的影響造成邏輯閘不 一定會依照基本原理的規則運作,原本要輸出結果為 0 的不一定會輸出 0;要輸出 1 的也不一定會輸出 1,導致輸出的資料就不見得會是正確的。在論文[9][10][20]中針 對會發生錯誤的邏輯閘提出機率的概念,電晶體在不受任何干擾或是電晶體本身能抵 抗干擾的程度大於受干擾的影響時,所有邏輯閘可以依照本身對於供應電壓的條件有 相對應的輸出。但是當邏輯閘本身抵抗干擾的能力小於干擾的程度時,訊號經由受干 擾的邏輯閘之輸出值就不一定是正確的結果,因此學者對於會發生錯誤的邏輯閘提出 機率式的布林邏輯。在邏輯閘不受干擾的情況,輸出值是正確的機率值是 p(0<p<1);

相對地在邏輯閘受到干擾的情況之下,會出現錯誤的機率是(1-p),因此對於這種邏輯 閘的機率概念,學者提出 NOT、AND、OR 三種布林邏輯的基本邏輯閘對應不同的輸 入值會有不同機率的輸出值,如表 1-1、1-2、1-3。

表 1- 1 NOT 邏輯閘輸出機率表示

輸入值 輸出值

A 0 1

0 (1-p) P

1 p (1-p)

表 1- 2 AND 邏輯閘輸出機率表示

輸入值 輸出值

A B 0 1

0 0 p (1-p)

0 1 (1-p) p

1 0 (1-p) p

(17)

1 1 (1-p) p

表 1- 3 OR 邏輯閘輸出機率表示

輸入值 輸出值

A B 0 1

0 0 p (1-p)

0 1 p (1-p)

1 0 p (1-p)

1 1 (1-p) p

當機率式 CMOS 的概念出現之後,就有學者將這種機率式的邏輯閘應用在算術 電路的晶片上。但是在一般使用於計算加、減、乘、除數值方面的算術電路,計算結 果都要是正確,不允許計算結果是有錯誤的情況發生,因為此種算術電路是在計算一 個正確的”值”,例如:3+3=6,3×2=6…等,所以應用在此方面的電路都一定要是沒有 錯誤,使得最後結果必須是正確無誤的。在論文[22][23]分別對漣波進位加法器以及 矩陣乘法器做機率值提機率的概念,論文[22]中提出分級幾何(Binned Geometric Program Solution, BGPS)的方法,提出找到一個允許配置給多個電壓的方式,應用在 近似於漣波進位加法器的電路,最後應用在 16 位元以及 32 位元的近似於漣波進位加 法器的電路之結果與基本電壓縮放(Based voltage scaling, BIVOS)[21]以及均勻電壓縮 放(uniform voltage scaling, UVOS)的結果做比較,論文[22]提出的方式效果比由基本電 壓縮放與均勻電壓縮放好,品質也相較為佳(圖 1-4)。

圖 1- 4 (a)原始圖像(b)BGPS 加法器(c)n-BIVOS(d)UVOS

但是隨著製程不斷地演進發生錯誤的現象一定會逐漸發生,但是為了要確保計算 之後的結果是正確的情況,可以使用容錯的機制,在算術電路中多增加幾組相同的算

(a) (b) (c) (d)

(18)

術電路,資料經過相同的電路計算過後,採取投票的方式,以取得多數的資料就為輸 出資料,不過若是要讓資料正確性提高就是要多增加相同的算術電路,不過會有兩個 問題:第一,成本會大幅度提高;第二,增加的電路也是經由邏輯閘所組成的,因此 組合電路的出錯程度也會隨著邏輯閘的增加而逐漸增加。

算術運算電路雖然是要運算加法、減法、乘法、除法,但是運用的功能不同會有 不同的效果,接下來討論將算術電路運用在多媒體方面,在論文[13]中提出在許多不 同的應用中是不需要非常嚴格的要求必須要 100%的正確,例如:音頻或是視頻信號 處理的計算值之正確率。原因是因為處理圖片中的明亮度或是灰階度,而人類的眼睛 與腦無法判斷太微小的變化。論文[13]對於 CMOS 內部結構做分析,分析在 CMOS 中有哪些部份是需消耗能量,另外學者就針對允許可發生錯誤的 CMOS 運用在多媒 體方面,發現可以省電的優點。

論文[14][17][20][25]直接將機率式 CMOS 的概念運用在算術晶片上,提出用 PCMOS 的設計方式可以達到省電的效果,晶片是應用於影像處理方面,運算的模式 是將處理圖片的 n 個單位加法器後面幾個低位元的全加法器給予比較低的電壓值,在 邏輯閘做運算的過程中若電壓給予不足,基本上會造成運算的錯誤導致圖片中代表顏 色 RGB 色碼會有誤差,但是選擇低位元的原因是因為低位元佔有全部位元數的一小 部份,例如處理一張圖的全加法共有 12 位元,在 20~25位元部份給予低電壓,這部 份只有 207 位元,佔全部的 8271 位元只是一小部份,並不會影響整張圖形的品質,

高位元所會影響的位元數量相對就多非常多。因此不僅不會影響圖片的辨識程度,又 可以達到省電的目的。如下圖 1-5,圖 1-8(a)是原始的圖片,對於處理圖片的 12 個位 元加法器全部都給予高電壓值 2.5 伏特;而圖 1-5 (b)是利用傳統的電壓縮放的方式把 所有的加法器的電壓值都降到最低,這就導致圖片模糊的效果;在圖 1-5 (c)是選擇 非均勻的電壓縮放方式降低低位元的幾個加法器之電壓,對於圖片而言或許只是稍微 暗一點,對於肉眼的判斷上是不受影響的,是可以維持影像的品質。

(19)

圖 1- 5 12 位元加法器供應電壓示意圖

圖 1- 6 (a)原始圖像(b)傳統電壓縮放圖像(c)非均勻電壓縮放圖像

此外論文[23]將 PCMOS 的觀念應用在矩陣乘法器中,並實驗於調整圖片的銳化 程度,要將本身模糊的圖片增強圖片的清晰度,將 PCMOS 對於電壓的彈性用來調整 圖片,實驗結果分別有三張不同的影像,但是(a)排的圖像是模糊的狀況;而(b)是將 所有值都給予相同倍數的電壓值,雖然圖像會恢復清晰程度,但是並沒有達到省電的 觀念;(c)是透過機率式的矩陣乘法器計算後,給予是當得位元所需的電壓值,不僅可 以使圖像清晰也可以達到省電的功能;(d)給予電壓值的量與(c)相同,但是以平均給 予每個位元電壓值,這會導致整張圖像品質因為電壓值的增強產生黑點,使得圖片的 品質降低。因此 PCMOS 的概念對於影像處理方面有非常大的幫助,現在一般電腦或 是消費性電子產品的體積也越來越小在處理影像以及聲音的播放最消耗電力,若將這 個概念應用在手機或筆記型電腦,不旦不會影響影音品質,還讓電池的使用時間相對 可以增加許多。

但是不論機率式 CMOS 是用在算術電路中的計算加法、減法、乘法、除法或是 應用在多媒體影像或是聲音方面,前提都必需要知道算術電路出現錯誤的程度有多少 嚴重,才能預測錯誤程度以及提出錯誤發生的狀況,因此論文[24]是第一篇提出使用

(20)

干擾模型計算組合電路之正確機率值。

論文[24]是計算一個具有 m 個輸入以及 n 個輸出的組合電路之正確機率值,並定 義一個具有方向性的有向圖 G=(V, E, m, w)之模型,其中 V 表示邏輯閘的組合;E 表 示為連接邏輯閘之間的邊之集合,m(i)是表示基本邏輯閘的編號,作者定義四個邏輯 閘分別為 NOT、NAND、NOR 以及 XOR 為基本邏輯閘,因此 m(i)之範圍是 4 < m(i) <

1,此外 w(i)表示在邊上的正確之機率值。以邏輯閘 vi 而言,P(i)是代表是邏輯閘初 始的輸入之正確機率值,因此 Pin={Pin1,Pin2,…Pink}表示為輸入{in1,in2,…ink}的正確機 率值之集合。

學者提出作法是將組合電路轉換成為拓樸排序的相鄰圖,因此要計算此相鄰圖之 正確機率值之前必須先檢查相鄰圖每個節點的輸入是否為初始輸入,如果是,就將機 率值代入基本邏輯閘中;如果不是初始輸入,表示此邏輯閘的位置是在中間,其輸入 值來自上一個邏輯閘的輸出,因此要先計算前一個邏輯閘之正確機率值之後才能繼續 計算下一個邏輯閘之正確機率值,最終計算到組合電路的輸出邏輯閘再將正確機率值 輸出,就是此組合電路之正確機率值。學者將第一個輸入的邏輯閘之正確機率值算出 後,再接著利用第一個算出來的正確機率值計算下一個正確機率值,這樣以此類推,

一層一層的計算正確機率值,這種方法是利用循序計算的方式得到組合電路的正確機 率值(圖 1-7)。

圖 1- 7 循序邏輯閘之示意圖

在論文[24]中提出循序的方式計算組合電路的正確機率值,但是學者沒有考慮到 組合電路中經常使用到的扇出(Fan-out)電路,電路中扇出的問題會直接影響機率計算 上相依的情況。如果電路中的邏輯閘輸出都是一個的話就可以利用循序的方式做計 算;但是電路中有邏輯閘的輸出數量是等於或是大於二,表示此邏輯閘的輸出值會同

(21)

時影響兩個或是兩個以上的邏輯閘。在相依的情況時,計算機率值必須要同時考慮此 邏輯閘的正確機率值輸出,若是用論文[24]循序的計算方式,會出現同一個邏輯閘有 重複計算的問題,導致整個組合電路的正確機率值有降低的現象。因此本篇論文針對 於扇出電路計算正確機率值提出方法與計算。

(22)

第二章 研究動機與問題描述

2.1 干擾模型

根據論文[24]對於干擾模型的定義,在 PCMOS 邏輯閘中會受到干擾的部份是在 於導線上,也就是在邏輯閘的輸入與輸出的部份,而不考慮電晶體本身是否會出現錯 誤的問題,因為若是要考慮電晶體本身會出現錯誤的情況,要加入非常多的參考條件 與影響因素,這樣會降低整體的正確率。因此對干擾模型我們定義兩種 CMOS 邏輯 閘的型態,第一種是一個輸入的 NOT 邏輯閘;第二種是兩個輸入的 NAND、NOR 邏 輯閘,對於第一種邏輯閘我們定義資料從輸入端到進入邏輯閘之前是正確的機率值是 p1,而資料從邏輯閘輸出之後到輸出端之間是正確的機率值為 p0(圖 2-1)。另外對於 第二種邏輯閘輸入的部份是 p1與 p2,在輸出的地方給予正確的機率值為 p0(圖 2-2)。

圖 2- 1 第一種 PCMOS 邏輯閘型態

圖 2- 2 第二種 PCMOS 邏輯閘型態

NAND Gate NOR Gate p2

p1

p0

輸入 輸出

NOT Gate

p0

輸入 輸出

p1

(23)

2.2 研究動機

從先前的相關研究中,可以得知隨著時代的變遷,積體電路的設計也隨著有所改 變,首先是電路本身體積越來越小受干擾的程度會越來越嚴重,而現在的電子產品還 有足夠的能力抵抗這些干擾,讓輸出資料都還是正確的,但是在往後二十年電子產品 的發展未必能夠抵抗外界干擾,保證輸出的資料一定百分之百正確,因此在輸出的結 果有一定程度上的可能性會出現錯誤。因此可以利用計算的方式來瞭解錯誤的嚴重程 度,可以解決錯誤的方式有兩個方向,第一個是利用容錯機制,增加容錯的硬體,但 是增加硬體會增加成本而且硬體本身也是由邏輯閘組成,因此也會增加錯誤的機會;

另外一個是利用 PCMOS 的觀念,使用計算的方式,從計算基本邏輯閘之正確機率開 始,再推算到組合電路之正確機率值計算,因此當要求組合電路的正確機率時,可以 反向推算每個元件必須要達到一定程度的正確率。

2.3 問題描述

本論文要提出算術電路中常見的加法器與矩陣乘法器,在基本元件發生錯誤的時 候累積到整個電路時,電路的正確率會降低到多少。因此根據干擾模型定義在邏輯閘 上發生錯誤的地方,計算基本邏輯閘在不同的輸入條件之下的正確機率值,進而計算 具有 n 個輸入的組合電路之正確機率值。其中針對組合電路中的扇出電路,提出計算 組合電路中計算正確機率值的方法。

(24)

第三章 PCMOS 基本邏輯閘之成功機率生成

對於組合電路不論是多麼複雜或是不同功能的電路都是用使用基本邏輯閘所組 合而成的,所謂基本邏輯閘是指在不同情況或是不同需求之下任何電路都是由基本邏 輯閘組成,因此我們要先計算邏輯閘的正確機率值,在經由基本邏輯閘的正確機率值 計算整個組合電路的正確機率值。

3.1 基本邏輯閘選取

定義基本的邏輯閘可以分為兩種方式,第一種是用布林代數(Boolean Algebra)的 角度;第二個是用 CMOS 製程的角度定義。在布林代數中基本的邏輯閘分別是 NOT、

AND、OR;而在 CMOS 的製程方面,定義的基本邏輯閘分別是 NOT、NAND、NOR。

這兩種分類的差異在電晶體個數,工業製程上要考量成本的問題,而且 NAND、NOR 所需要的電晶體個數比 NAND、NOR 少,如下圖 3-1,而且 NOT、NAND、NOR 可 以組合成 AND、OR,因此本篇論文中選擇以 CMOS 製程定義方式的 NOT、NAND、

NOR 邏輯閘作為本篇論文的基本邏輯閘。

圖 3- 1 電晶體組成之基本邏輯閘示意圖

另外此篇論文也選擇將 XOR 邏輯閘作為基本邏輯閘之一,選擇的原因可分為功 能性與成本兩個方面闡述,首先考量功能性方面,由於現在許多大型算術電路中經常 使用 XOR 邏輯閘,例如:加/減法器、算術運算中的溢位判斷(Overflow)[26]、偶/奇

(25)

同位檢查法(parity Check)[27]、以及在網路安全方面經常會使用的加密/解密功能的電 路。另一方面是成本,依照 XOR 邏輯閘不同訊號同時輸入,輸出才會改變的特性,

按照 XOR 邏輯閘的函數A B AB用布林代數的方式組合(圖 3-2),依據每種邏輯閘的 所需電晶體個數計算,發現此種組合方式需要二十二顆電晶體;而依照 CMOS 的組 合方式(圖 3-3),則需要十六顆電晶體組成。但是依照 XOR 邏輯閘的特性,利用電晶 體直接組合而成的話(圖 3-4),只需要花費十二顆電晶體就可以達到 XOR 的功能。因 此綜合以上兩個原因,我們將 XOR 邏輯閘也列為基本邏輯閘。

圖 3- 2 布林代數之 XOR 邏輯閘

圖 3- 3 CMOS 製程之 XOR 邏輯閘

圖 3- 4 電晶體組成之 XOR 邏輯閘

(26)

3.2 NOT 邏輯閘

依照先前定義的干擾模型假設邏輯閘本身是不受干擾影響,而會受影響的位置是 在於導線上。假設在輸入端資料在傳遞的過程中不受干擾,正確地將資料傳送到邏輯 閘的機率設為 p1,而輸出端資料在輸出資料不受干擾,正確地將資料輸出的機率設為 p0(圖 3-5)。

圖 3- 5 PCMOS NOT 邏輯閘

在 NOT 邏輯閘前後對於訊號正確的判斷,p1與 p2分別都有正確與錯誤的情況發 生,因此 p1與 p2有 22種組合,分別是 p1p2、p1(1-p2)、(1-p1)p2、(1-p1)(1-p2)。輸入值 以低電位為例依照 p1與 p2的不同狀況做組合分析(表 3-1),第一種情況是 p1p0,低電 位在輸入端和輸出端不受干擾,因此輸出值為高電位是正確的;第二種和第三種情況 分別是 p1(1-p0)、(1-p1)p0,訊號都會在輸入端或是輸出端受到干擾導致輸出值為錯誤;

第四種情況是(1-p1)(1-p0),訊號在前後兩端都受到影響,但是訊號在輸入端變成錯誤 之後又在輸出端受到干擾產生錯誤的情況,導致最後輸出的結果是正確的,因此發現 在串連的偶數個錯誤的情況下會導致輸出值為正確的情形。最後將輸出狀態為正確的 機率值相加就得 NOT 邏輯閘在輸入值為 0 的狀態下之正確機率值。輸入值為 1 的情 況也是相同作法得到 NOT 邏輯閘在輸入值為 1 的狀態下之正確機率值,如下表 3-2。

(27)

表 3- 1 NOT 邏輯閘輸入值為 1 之正確機率值分析

輸入值 輸入端正確

機率值 p1

輸出端正確 機率值 p0

輸出值 輸出狀態 NOT Gate 之

正確機率值

0 V V 1 V p1*p0

0 V X 0 X p1*(1-p0)

0 X V 0 X (1-p1)*p0

0 X X 1 V (1-p1)*(1-p0)

表 3- 2 PCMOS NOT 邏輯閘之正確機率值列表

A FNOT(A,B)

輸入值 輸入端正

確機率值 輸出值 PANOT(A,B)

0 p1 1 (1-p1)+(-1+2p1)p0

1 p1 0 (1-p1)+(-1+2p1)p0

3.3 NAND 邏輯閘

根據先前定義的干擾模型,假設在輸入端正確的機率值分別為 p1和 p2,而正確 的機率設為 p0(圖 3-6)。

圖 3- 6 PCMOS NAND 邏輯閘

在 NAND 邏輯閘前後對於訊號正確的判斷,p1、p2以及 p0分別都有正確與錯誤 的情況發生,因此 p1、p2以及 p0共有 23種組合。對於每種輸入條件分別對 p1、p2及 p0的組合做 8 種狀態分析,可以求得在不同狀態下的機率值。最後將輸出狀態為

(28)

正確的機率值加總就可以得到每種輸入條件的正確機率值,如表 3-3。

表 3- 3 PCMOS NAND 邏輯閘之正確機率列表

(A,B) FNAND(A,B)

輸入 機率 輸出 pNANDA,B(p1,p2,p0)

(0,0) (p1,p2) 1 (1-p1-p2+p1p2)+(-1+2p1+2p2-2p1p2)p0

(0,1) (p1,p2) 1 (p2-p1p2)+(1-2p2+2p1p2)p0

(1,0) (p1,p2) 1 (p1-p1p2)+(1-2p1+2p1p2)p0

(1,1) (p1,p2) 0 (1-p1p2)+(-1+2p1p2)p0

3.4 NOR 邏輯閘

依照先前定義的干擾模型假設邏輯閘本身是不受干擾影響,而會受影響的位置是 在於導線上。假設在輸入端資料在傳遞的過程中不受干擾,正確地將資料傳送到邏輯 閘的機率設為 p1和 p2,而輸出端資料在輸出資料不受干擾,正確地將資料輸出的機 率設為 p0(圖 3-7)。

圖 3- 7 PCMOS NOR 邏輯閘

在 NOR 邏輯閘前後對於訊號正確的判斷,p1、p2以及 p0分別都有正確與錯誤的 情況發生,因此 p1、p2以及 p0有 23種組合。輸入值以(0,0)為例依照 p1、p2以及 p0的 組合做分析。最後將輸出結果為正確的機率值相加,得到下表 3-4。

(29)

表 3- 4 PCMOS NOR 邏輯閘之正確機率值列表

(A,B) FNOR(A,B)

輸入值 輸入端正確

機率值機率 輸出值 pNORA,B(p1,p2,p0) (0,0) (p1,p2) 1 (1-p1p2)+(-1+2p1p2)p0

(0,1) (p1,p2) 0 (p1-p1p2)+(1-2p1+2p1p2) p0

(1,0) (p1,p2) 0 (p2-p1p2)+(1-2p2+2p1p2) p0

(1,1) (p1,p2) 0 (1-p1-p2+p1p2)+(-1+2p1+2p2-2p1p2)p0

3.5 XOR 邏輯閘

對於電晶體組成的 XOR 邏輯閘可以分為三個部份的電路組成,其中左側是由兩 個 NOT 邏輯閘所組成、而右側為一個電路區塊,此電路區塊可以分為上與下兩個部 份,其中上面部份是四個 PMOS 組成,組合方式是輸入 A 和 B 並聯、A 和 B 並聯,

兩組並聯電路再做串聯;下面的電路區塊是由四個 NMOS 所組成,組合方式是輸入 A、B 做串聯、A 和 B 做串聯,兩組串連電路再做並聯。

圖 3- 8 PCMOS XOR 邏輯閘

(30)

根據模型的定義在輸入與邏輯閘輸出的位置,都有正確與錯誤的情況發生,在這 些位置分別給予正確的機率值分別是 p1、p2及 p0。依照圖 3-8 所示,正確的機率值分 別在兩個輸入與三個電路區塊的輸出位置,每一種輸入狀態經過機率值都可分為正確 與錯誤兩種情況,因此全部的情況會有 25種組合。對於每種輸入條件分別對 p1、p2

以及 p0的組合做 32 種狀態分析,可以求得在不同狀態下的機率值。最後將輸出狀態 為正確的機率值加總就可以得到每種輸入條件的正確機率值,如表 3-5。

表 3- 5 XOR 邏輯閘之正確機率列表

(A,B) FXOR(A,B)

輸入值 輸入端正確

機率值 輸出值 PAXOR,B (p1,p2,p0)

(0,0) (p1,p2) 0 (p1+p2-p1p2)+(1-3p1-3p2+4p1p2)p0+ (3p1+3p2-7p1p2)p02

+(-2p1-2p2+6p1p2)p03

(0,1) (p1,p2) 1 (p2-p1p2)+(2-p1-3p2+4p1p2)p0+ (-3+4p1+3p2-7p1p2)p02

+(2-4p1-2p2+6p1p2)p03

(1,0) (p1,p2) 1 (p1-p1p2)+(2-3p1-p2+4p1p2)p0+ (-3+3p1+4p2-7p1p2)p02

+(2-2p1-4p2+6p1p2)p03

(1,1) (p1,p2) 0 (1-p1p2)+(-1-p1-p2+4p1p2)p0+ (-1+4p1+4p2-7p1p2)p02

+(2-4p1-4p2+6p1p2)p03

(31)

第四章 PCMOS 組合電路之成功機率生成

上一章節是計算基本邏輯閘的正確機率值,這章節是針對多個以上邏輯閘組成的 電路做正確的機率值的分析與計算。電路中的邏輯閘有輸入端與輸出端,分別是資料 的輸入,再進入邏輯閘做運算之後輸出。然而電路是由許多不同特性的邏輯閘組成,

經由組成可能得到很多不同功能的電路。

電路中處理的資料是一層一層往輸出端傳遞,對於正確的機率值運算也是循序的 一層一層往輸出端做計算。若電路中的邏輯閘之輸出是唯一的,對於機率值運算是獨 立計算;但是若電路中的邏輯閘之輸出不是唯一,輸出的分支數大於二或等於二就是 我們所謂的扇出(Fan out)。扇出是指在同一個邏輯閘輸出的數量大於或等於 2,經過 這個邏輯閘的結果會同時影響下一個接受此結果的邏輯閘,而接受此結果的邏輯閘數 量可能是兩個,但是也有可能大於兩個,但是都是來自於同一個邏輯閘。在機率的角 度看這是相依的情況,機率的計算上必須考量重複計算而導致整個電路的正確率降低 的問題,因此需將有相依情況的所有邏輯閘做分析。針對計算組合電路的正確機率值 分為四大步驟(如圖 4-1),以下會逐步說明。

圖 4- 1 計算組合電路的正確機率之流程圖

(32)

4.1 產生基本邏輯閘之成功機率

在計算算術電路之前,我們首先要先得到先前定義的四種基本邏輯閘,分別是:

NOT、NAND、NOR、XOR。並且先計算出這四種基本邏輯閘在不同輸入值正確的 機率值,將這些情況發生的機率值都建立檔案,在計算大型組合電路的時候需要找這 四種基本邏輯閘的成功機率值時,可以利用查表的動作給予搜尋條件,如此一來就可 以找到基本邏輯閘的成功機率。

表 4- 1 PCMOS NOT 邏輯閘之正確機率

A FNOT(A)

輸入值 機率值 輸出結果 PNOTA(p1,p2,p0)

0 p1 1 (1-p1)+(-1+2p1)p0

1 p1 0 (1-p1)+(-1+2p1)p0

表 4- 2 PCMOS NAND 邏輯閘之正確機率

(A,B) FNAND(A,B)

輸入值 機率值 輸出結果 PANDA,B(p1,p2,p0)

(0,0) (p1,p2) 1 (1-p1-p2+p1p2)+(-1+2p1+2p2-2p1p2) p0

(0,1) (p1,p2) 1 (p2-p1p2)+(1-2p2+2p1p2) p0

(1,0) (p1,p2) 1 (p1-p1p2)+(1-2p1+2p1p2) p0

(1,1) (p1,p2) 0 (1-p1p2)+(-1+2p1p2) p0

(33)

表 4- 3 PCMOS NOR 邏輯閘之正確機率

(A,B) FNOR(A,B) 輸入

機率 值

輸出結果 PNORA,B(p1,p2,p0)

(0,0) (p1,p2) 1 (1-p1p2)+(-1+2p1p2) p0 (0,1) (p1,p2) 0 (p1-p1p2)+(1-2p1+2p1p2) p0 (1,0) (p1,p2) 0 (p2-p1p2)+(1-2p2+2p1p2) p0

(1,1) (p1,p2) 0 (1-p1-p2+p1p2)+(-1+2p1+2p2-2p1p2) p0

表 4- 4 PCMOS XOR 邏輯閘之正確機率

(A,B) FXOR(A,B)

輸入值 機率值 輸出結果 PXORA,B(p1,p2,p0)

(0,0) (p1,p2) 0 (p1+p2-p1p2)+(1-3p1-3p2+4p1p2)p0+ (3p1+3p2-7p1p2)p02+(-2p1-2p2+6p1p2)p03

(0,1) (p1,p2) 1 (p2-p1p2)+(2-p1-3p2+4p1p2)p0+ (-3+4p1+3p2-7p1p2)p02

+(2-4p1-2p2+6p1p2)p03

(1,0) (p1,p2) 1 (p1-p1p2)+(2-3p1-p2+4p1p2)p0+ (-3+3p1+4p2-7p1p2)p02

+(2-2p1-4p2+6p1p2)p03

(1,1) (p1,p2) 0 (1-p1p2)+(-1-p1-p2+4p1p2)p0+ (-1+4p1+4p2-7p1p2)p02

+(2-4p1-4p2+6p1p2)p03

4.2 相鄰圖之建立

電路有很多種不同的組成方式,相同的功能可以使用不同的邏輯閘做組合,但是 在成本以及速度兩方面的考量,因此我們拿到一個電路具有 m 個輸入和一個輸出時,

要將電路中的邏輯閘依照邏輯電路中所提到的轉換方式做轉換的動作,將所有的邏輯

(34)

閘都轉換為上一章節定義的四種基本邏輯閘:NOT、NAND、NOR、XOR,而且在 轉換的過程中必須符合迪摩根定律(Demorgan's Theorems),確保電路對於邏輯閘組成 元件都是基本邏輯閘(圖 4-2),但是在功能方面是平衡的電路,並不受到邏輯閘轉換 而改變電路的功能或結果。

圖 4- 2 基本邏輯閘組成之電路

接著就將邏輯閘轉換成節點的形式表現,轉換成節點的不僅只有邏輯閘,還包括 輸入點與輸出點都要變成節點的型態。其圖形類似於樹狀結構,但是相鄰圖沒有所謂 的父子關係,圖形的邊可以依照是否有方向性而區分為有向圖或無向圖,此產生的相 鄰圖是按照電路圖的功能做轉換,資料的傳遞方向與原始的電路圖必須相同,才會使 輸出結果不會產生錯誤。其圖形(Graph)是由節點(Vertices)與邊(Edges)所組成的集 合,可以表示為 Gn=(Vn,En),其中 Vn=(v1,v2,v3…vn)表示為輸入、輸出以及基本邏輯 閘的集合;En=(e1,e2,e3…en)表示所有基本邏輯閘之邏輯的連結。並且根據基本邏輯閘 的種類給予編號:NOT 的編號為 2、NAND 的編號為 3、NOR 之編號為 4、XOR 之 編號為 5,此外輸入節點給予編號為 1、輸入節點的編號為 0。

圖 4- 3 邏輯閘轉換為節點相鄰圖示意圖

A

B C

F

(35)

4.3 獨立輸入節點區塊之分割

當邏輯閘轉換成節點相鄰圖之後,針對節點相鄰圖中節點所在位置或有不同功能 定義節點的名稱:

 輸入節點:由輸入端的邏輯閘轉換成節點,稱為輸入節點(Input-Node)。輸入節點 的特性是輸入端個數等於 0;輸出端個數大於或等於 1,在此的編號為 1(圖 4-4(a))。

 邏輯閘節點:非輸入端或輸出端的節點,即為邏輯閘節點(Gate-Node)。邏輯閘節 點之特性為輸入端個數大於或等於 1;輸出端個數也有可能大於 1 或是等於 1,

在此的編號為 2、3、4 或 5(圖 4-4(b))。

 輸出節點:由輸出端的邏輯閘轉換成節點,稱為輸出節點(Output-Node)。輸出節 點的特性為輸入端個數大於或等於 1;輸出端的個數必定等於 0,表示此相鄰圖 已結束,在此的編號為 0(圖 4-4(c))。扇出節點:指在輸入節點或是邏輯閘節點的 輸出分支數至少為 2。

 獨立輸入節點:邏輯閘節點的輸入端來源之節點並非扇出節點。

圖 4- 4 (a)輸入節點(b)邏輯閘節點(c)輸出節點

在節點相鄰圖中有可能只有一個輸入節點(Input-Node),相對的也是會有多個以 上的輸入節點,首先要先從輸入節點開始檢查輸出端的分支數是否大於二或等於二,

若 輸 出 端的 分支 數 都沒 有 大於 二 或等 於二的 情 況 發生 就接 著 檢查 邏 輯閘 節 點 (Gate-Node)的輸出端分支數。因此執行以下兩個步驟,將檢查過得節點包成以節點為 元件的區塊:

(a) (b) (c)

(36)

步驟一:向前群集(Forward Clustering)

首先檢查的節點我們稱為初始向前節點(Initial Forward Node),而且利用此節點建 立一個向前群集(Forward Cluster),連接初始向前節點建立向前群集之其他節點稱為 新的向前節點。當新的向前節點的數量大於 2 時,就將所有連接向前群集的新向前節 點合併到此向前群集中,直到新的向前節點為 1 時才結束,如圖 4-5(a)(b)分別由編號 為 1 的輸入節點分別向前搜尋,而且下一層新的向前節點數量為 2,因此將編號為 3、

4 的節點合併進向前群集之中,直到再下一層編號為 5 的節點,此層的節點數量只有 一個,已達到收斂的狀態,因此結束此向前群集;因此終止一組向前群集的條件是新 的向前節點數量為一個的時候。若當向前群集的下一個新的向前節點數量只有一個 時,此向前群集直接結束,指此向前群的節點數量只有一個,就是那個初始的向前節 點。

圖 4- 5 向前群集

步驟二:向後組合(Backward Grouping)

當執行結束步驟一,表示所有的輸入節點以及邏輯閘節點都已經檢查結束,所有 節點都有群集包起來,有些群集中節點數量是 1 個;有些群集中的節點數量是大於 2,

因此步驟二要執行的動作是要檢查是否有相同的節點存在於不同群集之中,若有相同 的節點存在於不同的群集之中就將這個節點存在的不同群集合併成為一個區塊;若沒 有相同節點存在於不同群集的話,表示此群集中只有一個節點,此節點群集我們稱為 節點區塊。在圖 4-6 中,在(a)(b)之中分別有編號 3、4、5 三個節點是重複出現在不同 的群集之中,因為要將這兩個群集合併成為一個區塊,另外兩個編號為 2、4 的節點,

1 3

4

2

5

1

1 4 0

(a)

1 3

4

2

5

1

1 4 0

(b)

(37)

因為是獨立的節點,可視為節點區塊。

圖 4- 6 向後組合產生之區塊

原先所有邏輯閘已經轉換成為節點,在執行向前群集和向後組合兩個步驟之後,

所有節點已經完成分組的動作形成節點群集。接著將一個節點群集變成一個區塊,使 的由節點群集的圖形可以轉變成為區塊相鄰圖,圖形可以表示為 Gb=(Vb,Eb),其中 Vb 表示所有區塊的集合;Eb表示連接區塊與區塊的邊之集合,邊的連線要依照節點 相鄰圖順序,以確定資料在傳遞的過程中順序都是正確的。如圖 4-7 左圖節點群集將 節點分為三個部份分別是 B1、B2 和 B3,而轉換成區塊就變成圖 4-7 右圖,區塊之間 的連線必須依照群集的順序與方向。區塊相鄰圖是具有方向性的圖,資料傳遞也會有 先後順序之分,因此根據拓樸排序的方式將 B1、B2 和 B3 排列出計算機率的先後順 序,根據拓樸排序演算法先找到一個節點在消除此節點的連線,再找到下一個節點再 消除其連線,依序做完之後就可以得到一個序列,圖 4-8 表示依照此方法可以有兩種 排序的方式分別是圖 4-8(a)(b)。

1 3

4

2

5

1

1 4 0

1 3

4

2

5

1

1 4 0

(a) (b)

(c)

(38)

圖 4- 7 區塊轉換圖

圖 4- 8 區塊相鄰圖經拓樸排序得到之序列

4.4 組合電路機率之生成

經過之前的流程之後,電路圖已經變成區塊的相鄰圖而且也經由排序過後獲得每 個區塊在計算正確機率值的先後順序(圖 4-9)。接著在計算每個區塊的正確機率之前 都要檢查此區塊是獨立輸入區塊或是非獨立輸入區塊。若是獨立輸入區塊,表示此區 塊是由一個節點也就是由一個邏輯閘構成;相反地判斷結果若是非獨立輸入區塊,表 示此區塊是由多個節點以上的節點所構成。

圖 4- 9 區塊排列之順序

對於計算獨立輸入區塊的正確機率是利用查表的方式,原因是因為經過先前邏輯 閘轉換為基本邏輯閘的動作,表示此獨立輸入區塊中的節點是由基本邏輯閘轉換的,

加上先前已經將基本邏輯閘之正確機率算出並且列表,因此可以透過查表的方式查到 獨立輸入區塊的正確機率。

B1 B2 B3

B1

B2

B3

B1 B2 B3

B2 B1 B3

(a)

(b) B1

B2

B3

B1

B2

B3

(39)

相對地若是電路區塊,表示此電路區塊是由多個節點構成而且其中有節點的輸出 分支數至少為兩條,本論文提出遞迴程序來計算此電路區塊的正確機率。首先遞迴程 序的第一步是利用機率消除法(Probabilistic Elimination)針對非獨立輸入節點做分解 的動作,讓非獨立輸入節點變成獨立的輸入節點,圖 4-10 中 A 與 B 節點都是非獨立 輸入節點,A、B 分別正確的機率值為 p1和 p2,經過分解之後發現 A、B 分別都會同 時 影 響 節 點 3 、 4 , 因 此 可 以 將 A 、 B 節 點 拆 解 成 為 四 種 情 況 分 別 是

) (

) ( ) ( )

(ABABABAB 。對於 p1和 p2都設定為 1,依照 A、B 拆解的結果 每種對應的正確機率值分別為(p1×p2)、(p1×(1-p2))、((1-p1)×p2)、((1-p1)×(1-p2))。

圖 4- 10 機率消除法消除輸入相依

經由第一步對非獨立節點做分解之後,每個輸入都是獨立的狀態。接下來進行第 二步驟產生獨立輸入節點區塊的正確機率,對於 A、B 兩個節點共有四種輸入值,在 每種輸入值之下都有四種機率的條件,分別對於每個機率條件都做循序的計算此條件 的正確機率值。若 A、B 的輸入值是(0,0),將(0,0)代入相對應於節點上編號之邏輯閘,

P1

P2

3

4

5

A

B

1 1

3

4

5 1

1

A

A B

B p 

1

p

2

1 1

3

4

5 1

1

B

B A

A

) 1

(

2

1

p

p  

A

1 1

3

4

5 1

1

A

B

B ( 1  p 

1

) p

2

1 1

3

4

5 1

1

A

A

B

B ( 1  p

1

)  ( 1  p

2

)

參考文獻

相關文件

微算機原理與應用 第6

計算機網路 微積分上 微積分下

進而能自行分析、設計與裝配各 種控制電路,並能應用本班已符 合機電整合術科技能檢定的實習 設備進行實務上的實習。本課程 可習得習得氣壓-機構連結控制

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

請繪出交流三相感應電動機AC 220V 15HP,額定電流為40安,正逆轉兼Y-△啟動控制電路之主

„ &#34;Distributed Management Architecture for Multimedia Conferencing Using SIP&#34; ,Moon-Sang Jeong, Jong-Tae Park, and Wee-Hyuk Lee, International Conference on DFMA ,2005..

Hofmann, “Collaborative filtering via Gaussian probabilistic latent semantic analysis”, Proceedings of the 26th Annual International ACM SIGIR Conference on Research and

Research on Analog and Mixed-Signal Processing Integrated Circuit Design for ISFET-Based Linear Sensor Array