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