《记忆体和可控式编程》由会员分享,可在线阅读,更多相关《记忆体和可控式编程(64页珍藏版)》请在金锄头文库上搜索。
1、第七章記憶體和可程式邏輯記憶體和可程式邏輯隨機存取記憶體記憶體的解碼錯誤的檢測及更正唯讀記憶體可規劃邏輯陣列可規劃陣列邏輯循序可規劃裝置記憶體何謂記憶體 儲存格的集合,用來儲存大量二元資訊的一種裝 置。 記憶體的種類 隨機存取記憶體(random access memory ; RAM) 。 唯讀記憶體(read-only memory; ROM) 。 記憶體寫入(write)操作 儲存一個新的資訊至記憶體內的過程。 記憶體讀取(read)操作 將儲存在記憶體內的資訊轉移出記憶體的過程。隨機存取記憶體何謂隨機存取記憶體 由任意位置做轉移資訊進出的時間都是相 同的。 記憶體儲存單位位元組(byt
2、e) 位元組(byte):8位元。 字組長度:8位元的整數倍。 字組:可為數字、指令、字符。 記憶體單元容量儲存的位元組總數。記憶體單元的方塊圖記憶體單元方塊圖k位址線:選取記憶體中的某個字組 讀、寫:指定資料轉移方向 n資料輸入線:提供資訊儲存於記憶體內 n資料輸出線:由記憶體提供資訊出來記憶體容量範圍 210232個字組 字組單位 K(千)=210、 M(百萬) =220、 G(十億) =230 。 64K=216 、2M=221 、4G=232 。 記憶體1K x 16 有10個位元的位址,以16位元為一單位來操作。 記憶體的位址位元數目 視記憶體字組總數而定,2km , 與每一字組內
3、的位元數目無關。寫入與讀取操作寫入:字組儲存於記憶體 將所需字組的二進位位址轉移至位址線。 將要儲存的資料位元轉移至資料輸入線。 啟動寫入輸入。讀取:儲存在記憶體內的字組轉移出來 將所需字組的二進位位址轉移至位址線。 啟動讀取輸入。記憶晶片的控制輸入記憶體致能不動作 記憶體晶片不被啟動,因此不執行任何動 作。記憶體致能動作 讀取/寫入可決定所執行的操作。用 HDL描述記憶體記憶體的宣告 用一個二維陣列且用reg這個保留字, 陣列中第一個數代表字組中的位元數 陣列中第二個數代表記憶體內的總字組數 如 reg 15:0 memmord 0:1023; 讀取操作指令 DataOut MemAddre
4、ss 寫入操作指令 MemAddress DataInHDL範例 7-1例題時序圖存取時間(access time) 選取一個字組然後讀取它所花的時間週期時間(cycle time) 完成寫入操作所發的時間存取時間、週期時間 等於數個時脈週期例題:圖74記憶體週期時序圖記憶體的種類記憶體存取模式 隨機存取記憶體-揮發性記憶體 不管存取位置為何,存取時間相同 靜態RAM(SRAM) -包含內部閂鎖以儲存二進位 資訊 ,靜態RAM則較易使用且其讀寫週期較短 。 動態RAM(D RAM) -電荷加在電容器上的形式 來儲存二進位資訊,功率消耗較少,且在單一 記憶體晶片內提供較大的儲存容量 循序存取記憶
5、體-非揮發性記憶體 存取時間視字組相對於讀取磁頭的位置,存取 時間不同記憶體的解碼隨機存取記憶體的內部構造及說明其解 碼器的操作。 解碼器 選取由輸入位址所指定的記憶體字組。 一個安排二維陣列技巧的解碼器可展示 出更有效率的解碼構造的例子,它被使 用在大容量的記憶體 。 例子 -通常被應用在DRAM積體電路中 的位址多工 。儲存格儲存一位元資訊的二進位儲存格 二進位儲存格必須非常的小,內部閂鎖可 儲存一個位元。 4X4 RAM方塊圖4X4 RAM內部構造24解碼器 選取此四個字組的其中,一個用記憶體啟動輸入 來啟動。 讀取操作期間 所選取字組的四個位元即經由OR閘通至輸出端 。 在寫入操作期間
6、 出現在輸入線上的可用資料被轉移到所選取字組 的四個二進位儲存格 。 二維解碼一個陣列內安排記憶體儲存格盡可能的 讓它接近正方形。在此架構下,一個具 有k條輸入的解碼器就可以被兩個只有 k/2條輸入的解碼器所取代,其中一個解 碼器是用來做二維矩陣架構中列的選取 ,而另一個則是做行的選取。1k-字組記憶體使用二維選取方法的例子 二維選取方法的例子 二維選取方法的例子使用單獨一個101024的解碼器。 單獨的解碼器,我們可能需要1024 個AND閘,且 每個AND閘需有10條輸入線。 用兩個532的解碼器 只需要64個AND閘,且每個AND閘只有5條輸入。 在記憶體陣列的每一個字組是由X線的其中一
7、 條與Y線的其中一條同時來選取的。每個交叉 點代表一個字組而每個字組內可有任意個位 元。SRAM、DRAM記憶體 比較SRAM記憶體 DRAM記憶體 DRAM的單位密度是SRAM的四倍,這允許將四倍 的記憶體容量放置在一個已知大小晶片上。而儲 存在DRAM的每個位元其價格為SRAM的1/31/4 左右。我們了解到另一個較省錢的原因是因為 DRAM的功率消耗較SRAM來得低。這些優點,使 得在製造大記憶體時都喜歡用DRAM技術來完成 。因為它們的大容量,解碼DRAM位址的解碼就 使用二維陣列的方式,通常較大的記憶體就有多 個陣列。為了減少IC包裝的接腳數,設計者就利 用位址多工方法,藉由一組位址
8、輸入接腳來容納 位址元件。 位址多工方塊圖64K-字組的記憶體 64K-字組位址多工位址多工 有一個8-位元的位址輸入及兩個位址致能。 此位址致能包括啟動代表列與行暫存器的 位址。兩階段的使用RAS與CAS設定可以 將16-位元的位址應用到DRAM。這兩部分 的位址各自在它們的暫存器中,而解碼器 須將它們解碼以便選取相對應於列與行位 址的一個儲存格,然後在此儲存格中執行 讀取或寫入的操作。 錯誤的檢測及更正錯誤檢測方法 是用同位位元(見3-8節),同位位元與記憶體內的 資料字組一起產生與儲存。 錯誤更正碼 可以產生多重同位位元檢查元,這些與資料字組 一起儲存在記憶體內,每個檢查位元都是資料字
9、組內的一組位元的同位元,當字組從記憶體位置 讀取回來時,相關的同位位元也同時從記憶體讀 取,同時與已讀取資料所產生的一組新檢查位元 做比較,若這些檢查位元是正確的,那表示沒有 錯誤發生,若這些檢查位元與所儲存的同位位元 不相符,它們可產生一個唯一的圖型,稱之為多 義元(syndrome),可用來辨識位元的錯誤。 漢明碼 隨機存取記憶體中最常用的一種錯誤更正碼 。 漢明碼中,是將k個同位位元加至n個位元的資料字組 ,形成一個n+k個位元的新字組。 若是2的冪次方編號,則保留給同位位元,其餘的位 元則是資料位元。 此碼可被用在任何長度的字組 。 漢明碼有k個檢查字元及n的資料位元,總共有n+k個
10、字元。它們之間的關係如下:以k表示,解出n 此關係式可計算出,與k個檢查位元配合所使用之資料 位元數的公式。 漢明碼例子資料字組的8個位元為11000100 位元位置:1 2 3 4 5 6 7 8 9 10 11 12 P1 P2 1 P4 1 0 0 P8 0 1 0 0P1 = 位元(3,5,7,9,11)的XOR = 11000 = 0 P2 = 位元(3,6,7,10,11)的XOR = 10010 = 0 P4 = 位元(5,6,7,12)的XOR = 1000 = 1 P8 = 位元(9,10,11,12)的XOR = 0100 = 1 8位元資料字組與4個同位位元一起儲存在記憶
11、 體內而成為一個12位元的合成字組。 檢查位元之計算當這12個位元從記憶體讀取出來時,它 們再一次檢查可能的錯誤,此同位位元 依包括同位位元的相同位元組合來檢查 ,4個檢查位元的計算如下:C1 = 位元(1,3,5,7,9,11)的XOC2 = 位元(2,3,6,7,10,11)的XORC4 = 位元(4,5,6,7,12)的XORC8 = 位元(8,9,10,11,12)的XOR 結果C = C8C4C2C1 = 0 0 0 0,這表示無錯誤發生。 K個檢查位元所使用之資料位 元數單-錯誤更正 雙-錯誤檢測漢明碼僅能檢測及更正單一錯誤,多重錯誤 則無法檢測。 藉由加入另外的同位位元至編碼的字
12、組,漢 明碼可以用來更正單一錯誤及檢測出雙錯誤 。 先前12位元已編碼的字組變為001110010100P13 ,其中的P13是從其他12個位元做互斥或所得 到的。 字組從記憶體讀取出來時,檢查位元要被計 算,同時同位位元也包含在此13個位元。 偶同位例子若P=0,此同位位元是正確的(偶同位)。 但若P=1時,則此13個位元上的同位不正確(奇 同位)那麼可能發生下列四種狀況: 若C = 0且P=0,無錯誤發生。 若C0且P=1 ,發生單一錯誤,且可被更正。 若C0 且P=0,發生雙錯誤,可被檢測但無法更 正。 若C = 0 且P=1,有一錯誤發生在P13位元。 這種方式可以檢測出多於兩個的錯誤
13、,但並 不保證可以檢測出唯讀記憶體的方塊圖 ROM本身是一個可以永久儲存二進位資 訊的記憶體裝置。 ROM的方塊圖如圖7-9所示,它包含k個 輸入與n個輸出。 唯讀記憶體輸入提供了記憶體的位址,而輸出則是提供 儲存字組的資料位元,它是由address來選擇,至 於ROM中的所包含的字組數目則是由k條位址 輸入線,所定義出2 k不同的位元 數目,也來代表2k個不同的字組,注意,ROM並沒 有資料輸入,因為它並沒有寫的動作,積體電路 ROM晶片,有一個或是更多的致能輸入且有時 還有三態的輸出來簡化大的ROM陣列結構.32X8 ROM的內部邏輯五個輸入則是藉由一個532的解碼器將它們解碼成32 個不
14、同的輸出。每一個解碼器的輸出代表一個記憶體 的位址,而這32個解碼器的輸出和8個OR閘的每一個相連接。 ROM的真值表儲存在ROM內部的二進位可藉由真值表說明,此表可 以看出在每一個位址裡的字組內容。 328 ROM的內容可以用類似於表7-3的真值表來說明 依據表7-3所規劃的ROM規劃此ROM的硬體程序,就是依據所給 的真值表結果將其間的連接用熔絲熔斷組合邏輯電路的製作基本上ROM是一個包含解碼器及OR閘這兩者在一起 的單一裝置。 ROM的輸出可以被規劃成代表在組合邏輯電路中輸出 變數的布林函數,它是藉由選擇這些包含在函數裡的 最小項之連接來完成。 ROM內部的操作可以用兩種方式來解釋,第一
15、種解釋 就是包含一個儲存字組的固定模型;第二個解釋可以 把它看成是,一個組合邏輯電路製作的單元。從這個 觀點來看,每一個輸出端點可以分別被考慮成一個最 小項之和的布林函數之輸出。 當一個組合邏輯電路用一個ROM來設計,它就不需要 去設計邏輯電路,或是表示出此單元的內部邏輯連接 。 例題7-1用一個ROM來設計一個組合邏輯電路。此電 路接受一個3個位元的數,並且產生一個二進 位輸出,此輸出值等於輸入值的平方。 第一個步驟就是將此組合邏輯電路的真值表推導 出來。 此電路需要三個輸入及六個輸出以完成所有可能 的二進位數。 ROM的最小尺寸必須有三個輸入,四個輸出,此 三個輸出可以指定出8個字組,所以ROM的大小必 須為 84。 例題7-1的真值表例題7-1 ROM的完成ROM的種類ROM中所需的路徑可以用四種不同的方式來 規劃 第一種稱之為罩冪規劃(mask programming) 可由半導體製造公司在該單元製造的最後過程中完成。 製造ROM的程序則需要顧客填好適合他想要的ROM的真 值表。 此種程序是很昂貴的。因為賣方會向顧客收取製作此特 別