Transcript Chap. 7

記憶體與可規劃邏輯
Chapter 7
 記憶體
7-1 前言
 儲存被轉移的二元資訊
 記憶體單元是儲存格的集合,它被用來儲存大量的二元資
訊。
 隨機存取記憶體(RAM – Random-Access Memory)
 讀取 (read) 的操作
 寫入 (write) 的操作
 唯讀記憶體 (ROM – Read-Only Memory)
 僅能做讀取的操作
 唯讀記憶體是一種可規劃邏輯裝置 (programmable logic
device, PLD)。
2
 可規劃邏輯裝置 (programmable logic device, PLD)




ROM
PLA –可規劃邏輯陣列 (programmable logic array)
PAL –可規劃陣列邏輯 (programmable array logic)
FPGA –現場可規劃邏輯陣列 (field-programmable gate array)
 可規劃邏輯區塊 (programmable logic blocks)
 可規劃內部連接 (programmable interconnects)
3
7-2 隨機存取記憶體
 記憶體單元
 記憶體單元是以一組位元為儲存單位,此一組二元資
訊稱為字組 (words)。
 8-位元(一位元組), 2 位元組, 4 位元組
 方塊圖
4
 ㄧ個 1024  16 記憶體
5
寫入與讀取操作
 寫入操作
• 將所需字組的二進位位址轉移至位址線。
• 將必須儲存於記憶體的資料位元轉移至資料輸入線。
• 啟動「寫入(write)」輸入。
 讀取操作
• 將所需字組的二進位位址轉移至位址線。
• 啟動「讀取(read)」輸入。
6
記憶體的種類
 靜態 (static)
 二元資訊儲存在內部閂鎖中
 只要此單元的電源持續供應,所儲存的資訊便保持正確。
 較易使用且其讀寫週期較短
 動態 (dynamic)





以電荷加在電容器上的形式來儲存二進位資訊
電容器所儲存的電荷會隨時間而放電
電容器必須週期性的再充電 (refreshing) 來恢復動態記憶體。
功率消耗較少
在單一記憶體晶片內提供較大的儲存容量
7
 有揮發性 (volatile)記憶體
 當電源關閉時,記憶體單元會失去所儲存的資訊
 SRAM, DRAM
 非揮發性(Non-volatile)記憶體




在電源關閉後仍保有其所儲存的資訊。
ROM
EPROM, EEPROM
快閃記憶體
8
7-3 記憶體的解碼
 記憶體單元
 儲存元件
 解碼電路來選取由輸入位址所指定的記憶體字組。
 記憶體儲存胞元 (memory cell)
9
內部結構
 m 個字組且每一個字組n-位元的 RAM
 m  n 個二進位儲存胞元
 一個解碼器來選取其中一個字組。
 k-至-2k 線解碼器
10
 4  4 RAM
11
一致的解碼
 基本的構想就是二維解碼
 用來減少所需使用的解碼器複雜度
12
 10-至-1024線解碼器
 1024 個AND 閘,每ㄧ閘具有10 條輸入
 兩個 5-至-32線解碼器
 2  (32 個AND 閘,每ㄧ閘具有5 條輸入)
 減少電路複雜度與週期時間
13
漢明碼 (Hamming Code)
 將 k 個同位位元加至 n 個位元的資料字組,形成一
個 n + k 個位元的新字組。




(2k –1  n + k)
位元的位置則是依序的由1至 n + k 來加以編碼。
若是2的冪次方編號,則保留給同位位元
其餘的位元則是資料位元
14
 範例:8-位元的資料字組 11000100
 將 4個同位位元與 8-位元字組合併  12位元
2k –1  n + k, n = 8  k = 4
位元位置:
1
2
3
4 5
6 7
8 9 10 11 12
P1
P2
1
P4 1
0 0 P8 0
1
0 0
 計算同位位元:偶同位  假設
P1 = 位元(3, 5, 7, 9, 11) 的XOR = 1  1  0  0  0 = 0
P2 =位元(3, 6, 7, 10, 11)的XOR = 1  0  0  1  0 = 0
P4 =位元(5, 6, 7, 12)的XOR = 1  0  0  0 = 1
P8 =位元(9, 10, 11, 12)的XOR = 0  1  0  0 = 1
 將這個12-位元的合成字組一起儲存在記憶體
位元位置:
1
2
3
4 5
6 7 8 9 10 11 12
0
0
1
1
0 0 1
15
1
0
1
0 0
 當將這個12-位元從記憶體讀取出來時
 檢查位元的計算如下:
C1 = 位元(1, 3, 5, 7, 9, 11)的XOR
C2 = 位元(2, 3, 6, 7, 10, 11)的XOR
C4 = 位元(4, 5, 6, 7, 12)的XOR
C8 = 位元(8, 9, 10, 11, 12)的XOR
 若無錯誤發生
位元位置:1 2
0
3
0
4
1
5
1
6
1
7
0
8 9 10 11 12
0 1 0 1 0 0
 C = C8C4C2C1 = 0000
♣ 0檢查位元代表這些檢查位元為偶同位,而1則代表奇同位。
16
 單-位元錯誤
 錯誤在位元1位置





C1 = 位元(1, 3, 5, 7, 9, 11)的XOR = 1
C2 = 位元(2, 3, 6, 7, 10, 11)的XOR = 0
C4 = 位元(4, 5, 6, 7, 12)的XOR = 0
C8 = 位元(8, 9, 10, 11, 12)的XOR = 0
C8C4C2C1 = 0001
 錯誤在位元5位置
 C8C4C2C1 = 0101
 雙-位元錯誤
 錯誤在位元1位置與位元5位置
 C8C4C2C1 = 0100
17
 漢明碼可應用於任意長度的資料
 k 個檢查位元
 2k –1  n + k
18
單-錯誤更正,雙-錯誤檢測
 漢明碼
 漢明碼僅能檢測及更正單一錯誤
 多重錯誤則無法檢測
 漢明碼 + ㄧ個同位位元
 可以用來更正單一錯誤及檢測出雙錯誤
 額外加入的同位位元與其他12個位元做互斥-OR (XOR)
 例如:原先12位元已編碼的字組
0 0 1 1 1 0 0 1 0 1 0 0 P13  0 0 1 1 1 0 0 1 0 1 0 0 1
(偶同位)
19

當將這個字組從記憶體讀取出來時
 若 P = 0,同位位元是正確的 (偶同位);但若 P = 1 時,
則此13個位元上的同位不正確 (奇同位) 。
 可能發生下列四種狀況:
1. 若 C = 0 且 P = 0,無錯誤發生。
2. 若 C  0 且 P = 1,發生單一錯誤,且可被更正。
3. 若 C  0 且 P = 0,發生雙錯誤,可被檢測但無法更正。
4. 若 C = 0 且 P = 1,有一錯誤發生在 P13 位元。
20
7-5 唯讀記憶體 (Read-Only Memory,
ROM)
 是一個可以永久儲存二進位資訊的記憶體裝置。
 2k x n ROM
 k條位址輸入線
 致能輸入(s)
 三態的輸出來促成大型的ROM陣列結構。
21
 32 x 8 ROM
 5-至-32 線解碼器
 8個OR閘
 每個OR閘有32條輸入
 32  8個可以規劃的內部交叉點
22
 ROM真值表(部份)
 範例
23
 可規劃連接
 「關閉」(意思是兩條線相連接)
 或是「開啟」(意思是兩條線不相連)
 最簡單的方法就是利用熔絲。藉由加一個高電壓到此熔絲來熔
斷它。
24
組合邏輯電路的製作

ROM:一個解碼器 + 數個OR閘




最小項(全及項)之和
布林函數 =最小項之和
對ㄧ個n-輸入, m-輸出的組合電路而言
 2n  m ROM
設計程序:
1. 決定ROM的大小
2. 求出ROM 規劃真值表
3. 真值表 = 熔絲圖
25
 例題 7-1




3輸入,6輸出
B1=0
B0=A0
8x4 ROM
26
 ROM的製作
 真值表
27
 ROM的種類
ROM的種類
 罩冪規劃 (mask programming)ROM
 IC製造商須依據顧客的真值表,製作相對應的罩冪,以產生1與0
的路徑。
 大量製造相同ROM的組態時,罩冪規劃才會較經濟些。
 PROM:可規劃唯讀記憶體 (programmable read-only memory)
 熔絲
 萬用規劃器 (programmer)
 EPROM:可清除的PROM (erasable PROM)
 浮接邏輯閘
 紫外線可清除
 EEPROM:可電性清除的 (electrically erasable) PROM
(EEPROM或EPROM)
 需較長的時間進行寫入
 快閃ROM
28
組合型PLDs
 可規劃雙階層邏輯
 一個AND陣列及一個OR陣列
29
7.6 可規劃邏輯陣列
 PLA
 一種可規劃AND閘陣列
 可以產生輸入變數所組成的任何乘積項。
 一種可規劃OR閘陣列
 可以產生乘積項之和。
 比ROM更具彈性
 使用比ROM 少的電路
 僅必要的乘積項才需產生
30
 範例




31
F1 = AB + AC + ABC
F2 = (AC + BC)
XOR 閘
可使輸出反相
 PLA 規劃表
 指定熔絲圖
 破折號 “─” 表示一個熔斷的熔絲同時位在輸入變數和它的補數
之間。
32
 PLA的大小是由
 輸入數目
 乘積項數目(AND閘)及
 輸出數目(OR閘)來指定的。
 利用PLA來設計一個數位系統時,所需要的就是一個PLA
的規劃表。
 必須仔細地檢查以減少不同乘積項的數目。
 每一項的文字符號數目並不重要
 每一個函數的真值和補數均需加以簡化,以便了解哪一個可
用較少的乘積項來表示,及哪一個乘積項可與其他函數共用。
33
 例題 7-2
 F1(A, B, C) =  (0, 1, 2, 4); F2(A, B, C) =  (0, 5, 6, 7)
 這兩個函數的真值與補數都用積項和的形式加以簡化以便
核對驗證。
34
 F1 = (AB + AC + BC)
 F2 = AB + AC + ABC
35
7-7 可規劃陣列邏輯
 PAL是一個具有一固定OR陣列與一可規劃AND陣列
的可規劃邏輯裝置。
 PAL較容易規劃,但不像PLA那樣的較具彈性。
36
 PAL範例
 乘積項不可能由
兩個或更多的OR
閘來分享
37
用PAL來設計組合邏輯電路的範例
w(A,B,C,D) = (2,12,13)
x(A,B,C,D) = (7,8,9,10,11,12,13,14)
y(A,B,C,D) = (0,2,3,4,5,6,7,8,10,11,15)
z(A,B,C,D) = (1,2,8,12,13)
 簡化這些函數:
w = ABC + ABCD
x = A + BCD
y = AB + CD + BD
z = ABC + ABCD + ACD + ABCD
= w + ACD + ABCD
38
 PAL 規劃表
39
w = ABC + ABCD
x = A + BCD
y = AB + CD + BD
z = w + ACD + ABCD
40