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 + ABC
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 + ABC
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 + ABCD
x = A + BCD
y = AB + CD + BD
z = ABC + ABCD + ACD + ABCD
= w + ACD + ABCD
38
PAL 規劃表
39
w = ABC + ABCD
x = A + BCD
y = AB + CD + BD
z = w + ACD + ABCD
40