微機原理——擴展存儲器設計

目錄

    • 【1】存儲器的層次結構
    • 【2】存儲器的分類
    • 【3】SRAM
      • 1、基本原理:
      • 2、結構:
      • 3、芯片參數與引腳解讀:
      • 4、CPU與SRAM的連接方式
    • 【4】DRAM
      • 1、基本原理:
      • 2、結構
      • 3、芯片引腳解讀:
    • 【5】存儲器系統設計
    • 【6】存儲器擴展設計(重點)
      • 1、位擴展(位并聯法)
      • 2、字節擴展(地址串聯法)
      • 3、字節和位擴展
    • 【7】片選信號產生(譯碼電路)(重點)
      • 1、全地址譯碼
        • 例題
      • 2、部分地址譯碼
        • 例題
      • 3、線選譯碼方式
      • 4、三種譯碼方式的比較
      • 4、地址譯碼電路設計
        • 步驟:
        • 【1】基于74LS138專用譯碼器的設計
        • 【2】基于74LS688比較器的設計

【1】存儲器的層次結構

存儲器的層次結構

【2】存儲器的分類

存儲器的分類
這里我們揀SRAM和DRAM來講

【3】SRAM

1、基本原理:

靜態隨機存取存儲器(SRAM):
所謂的“靜態”,是指這種存儲器只要保持通電,里面儲存的數據就可以恒常保持。
當電力供應停止時,SRAM儲存的數據還是會消失(被稱為volatile memory),這與在斷電后還能儲存資料的ROM或閃存是不同的。

2、結構:

? 存儲矩陣,決定存儲器中存儲單元的排列形式,有字結構和位結構兩種
? 地址譯碼器,用來選擇存儲單元,有線性譯碼和復合譯碼兩種,通常采用復合譯碼
? 控制邏輯與三態數據緩沖器,控制CS、WR、RD信號

3、芯片參數與引腳解讀:

以6116(2K x 8)為例:
2K:表示該芯片內部存儲單元的數目,這個數決定存儲芯片地址線的數目
8:表示該芯片每個存儲單元存儲信息的位數,這個數決定存儲芯片數據線的數目
引腳號如下:
芯片引腳

4、CPU與SRAM的連接方式

在這里插入圖片描述
注意:地址和控制BUS是單向指向存儲器,數據BUS雙向。

【4】DRAM

1、基本原理:

1
2

2、結構

? DRAM的地址線是復用的,即地址線分為行地址和列地址兩部分。在對存儲單元進行訪問時,由行地址選通信號RAS把行地址送入行地址鎖存器;再由列地址選通信號CAS把列地址送入列地址鎖存器
? CPU與DRAM之間的信息交換由DRAM控制器完成。

3、芯片引腳解讀:

1

【5】存儲器系統設計

所要考慮的問題:

1、總線的負載能力
2、CPU時序和存儲器存取速度之間的配合
3、存儲芯片的選擇以及數目
4、片內尋址和片間尋址地址線的分配
5、譯碼電路的選取(線性譯碼、全譯碼、部分譯碼)
6、數據線、控制線的連接

【6】存儲器擴展設計(重點)

1、位擴展(位并聯法)

? 位擴展指用多個存儲器器件對字長進行擴充。一個地址同時控制多個存儲器芯片。
進行位擴展時,模塊中所有芯片的地址線和控制線互連形成整個模塊的地址線和控制線,而各芯片的數據線并列(位線擴展)形成整個模塊的數據線(8bit寬度)。
位擴展
為何需要位擴展?
在微機系統中,存儲器是按字節來構成的,而所選擇的存儲器芯片的字長不足8位
時,用這樣的存儲器芯片構成系統所需的存儲器子系統電路,就必須進行位擴展,即
用幾片存儲器芯片并起來,以增加存儲字長。例如上圖,兩個4位組成一個8位。所以稱為“位擴展”。

2、字節擴展(地址串聯法)

? 字擴展指的是增加存儲器中字的數量。
進行字擴展時,模塊中所有芯片的地址線、控制線和數據線互連形成整個模塊的低位地址線、控制線和數據線 , CPU的高位地址線(擴展的字線)被用來譯碼以形成對各個芯片的選擇線 —— 片選線
圖

3、字節和位擴展

1
1、首先對芯片分組進行位擴展,以實現按字節編址;
2、其次設計個芯片組的片選進行字擴展,以滿足容量要求;
3

【7】片選信號產生(譯碼電路)(重點)

譯碼電路

1、全地址譯碼

除了用于存儲器芯片片內地址外,CPU總線的其他地址總線都參加芯片的片選地址譯碼。
特點:
存儲器芯片只占用整個存儲空間中的一塊區域,訪問該存儲芯片片內單元采用唯一的地址。

例題

例:在8088CPU工作在最大方式組成的微機應用系統中,擴充設計8KB的
SRAM電路,SRAM芯片用Intel6264。若分配給該SRAM的起始地址為62000H~
63FFFH,片選信號(CS1) 為低電平有效。請用全地址譯碼方法設計該SRAM存儲器的
片選信號形成電路

分析:
1、Intel 6264

8K ×8位的SRAM
1

2、8K ×8位:8KB,所以只需要1片6264,不需要擴展
3、8086/8088CPU的地址總線均為20位,8086/8088CPU的尋址范圍為1MB; 8086有16根數據線和20根地址線,它既能處理16位數據,也能處理8位數據。可尋址的內存空間為1MB。
4、6264片內地址線有13根:A0~A12,所以CPU總線的低13位直接與片內地址引腳相連接,作為片內尋址,來選擇片內具體單元。
5、由于采用全譯碼方式,CPU高7位A19~A13全部參加譯碼。且芯片數量是1MB/8KB=128片。所以有128個片選地址。2^7=128.
62000H/2000H=49(10000H=8*2000H)轉換成二進制:0110001
6、片選信號是低電平有效,所以在地址譯碼設計中,若采用門電路,注意:A19~A13所有1進行邏輯與非,所有0進行邏輯或。
7、系統總線IO/M‘也參加譯碼
最終結果:
1
總結:…感覺步驟還挺多的,不過按照這個流程走一遍,第二次做的時候就很簡單了。

2、部分地址譯碼

也稱局部地址譯碼。片選信號不是由地址線中所有不在存儲器上的地址線譯碼產生,而是只有部分高位地址線被送入譯碼電路產生片選信號。
特點:某些高位地址線被省略而不參加地址譯碼,簡化了地址譯碼電路,但地址空間有重疊。
例如,在8088 CPU組成的微機系統中,存儲器芯片采用8KB容量的6264芯片。在設計地址譯碼時,地址線A19未參加譯碼,只有A13—A18 6條地址線參加譯碼。這時每塊6264將占有兩個8KB的內存空間。也就是說,內存空間發生了重疊現象,其重疊情況如圖6.23所示。從圖中可以看到,連接到內存空間最低8KB地址區的那一塊6264芯片,實際占有的內存地址空間為:00000H—01FFFH、80000H—81FFFH。它占有了兩個8KB的內存空間。可以依此類推,如果有兩條高位地址線不參加地址譯碼,那么就會使4個存儲空間發生重疊; 3條高位地址線不參加地址譯碼,則會產生8個重疊空間。重疊空間數滿足下述關系:重疊空間數=2",其中,n為不參加地址譯碼的高位地址線。

例題

例:在8088 CPU工作在最小方式組成的微機應用系統中,擴充設計8KB的SRAM電路,SRAM芯片用Intel6264。若分配給該SRAM的地址范圍為00000H~0FFFFH,片選信號(CS)為低電平有效。請用部分地址譯碼方法設計該SRAM存儲器的片選信號形成電路。
分析:
1、6264的容量是8KB,然而00000H0FFFFH是64KB,所以重疊區域有64KB/8KB=8個,且2<sup>3=8,所以三條高位地址線不做譯碼,如A15A13
2、IO/M‘=0參加譯碼
1

3、線選譯碼方式

高位
線選法:選擇除存儲器芯片片內尋址以外的高位地址線中的某一條,作為存儲器芯片的片選信號。
由于片選的地址線每次尋址時只能有一位有效,不允許同時有多位有效,這才保證每次只選中一個芯片或一個芯片組。
優點:選擇芯片不需要外加邏輯電路,姨媽線路簡單。
缺點:把地址空間分成了相互隔離的區域,且地址重疊區域多,不能充分利用系統的存儲器空間。

4、三種譯碼方式的比較

全譯碼:

系統所有地址線全部都應該參與譯碼
低段地址線應直接接在模塊上,尋址模塊內單元;
中段地址線譯碼后產生片選信號區分不同模塊;
高段地址線可用作片選信號有效的使能控制;

部分譯碼:

高端地址信號不參與譯碼,會造成地址空間的重疊和不連續

線譯碼;

電路結構簡單,但系統必須保證參與片選的地址線不能同時為有效電平;
同部分譯碼法一樣,因為有地址信號不參與譯碼,也存在地址重疊及不連續的問題

4、地址譯碼電路設計

步驟:

1、根據系統中實際存儲器容量,確定存儲器在整個尋址空間中的位置
2、根據所選用存儲芯片的容量,畫出地址分配圖,地址分配表
3、根據地址分配圖或分配表確定譯碼方法并畫出相應的地址位圖
4、選用合適期間,畫出譯碼電路

某微機系統地址總線為16位,實際存儲器容量為16KB,ROM區和RAM區各占8KB。其中,ROM采用2KB的EPROM,RAM采用1KB的RAM,試設計譯碼電路.
1、該系統的尋址空間最大為64KB,假定實際存儲器占用最低16KB的存儲空間,即地址為0000H3FFFH。其中0000H1FFFH為EPROM區,2000H~3FFFH為RAM區。
2、根據所采用的存儲芯片容量,可畫出地址分配圖;地址分配表
在這里插入圖片描述
對于ROM來說每個子區域為2KB=2^11,需要11位地址線作為片內尋址:A0~A10;
對于RAM來說每個子區域為1KB=2^10,需要10位地址線作為片內尋址:A0~A9;
采用3—8譯碼器,前四根指向4片ROM,后四根加上一個A10構成二次譯碼,指向8片RAM;
在這里插入圖片描述

【1】基于74LS138專用譯碼器的設計

引腳
在這里插入圖片描述
真值表
在這里插入圖片描述
例題1:在某 8088微處理器系統中,需要用8片6264構成一個64KB的存儲器。其地址分配在0000H~0FFFFH內存空間,地址譯碼采用全譯碼方式,用74LS138作譯碼器,請畫出存儲器譯碼電路。
分析:
1、6264片內地址線有13根:A0~A12,所以CPU總線的低13位直接與片內地址引腳相連接,作為片內尋址,來選擇片內具體單元。
2、由于采用全譯碼方式,CPU高7位A19~A13全部參加譯碼。且芯片數量是8片。
這里我們只是用A13~A15作為譯碼器的輸入,這樣正好有8種輸出。A16到A19作為選通信號3,全為0.
1

【2】基于74LS688比較器的設計

引腳
在這里插入圖片描述
工作原理:
在這里插入圖片描述
例:利用 74LS688設計譯碼電路,輸出端(P= Q)'作為Intel 62128 SRAM的CS片選信號,分配給Intel 62128的地址范圍為74000H~77FFFH。畫出8088 CPU工作在最大方式下的譯碼電路。
分析:
74000H轉換成2進制:0111 0100, 0000 0000 0000
77FFFH轉換成2進制:0111 0111 ,1111 1111 1111
觀察發現前6位都是一樣的,這樣就可以定位大的范圍,就可以確定Q的值了:101110(從低位到高位)
所以結果如下:
結果
如果需要改變內存芯片的地址,只需要改變Q那邊開關就行了。所以這種結構可以為改變內存地址帶來方便。
如果不需要改變地址,則可以直接給定Q邊的編碼就行了。


參考鏈接:

SRAM
《微機原理與接口技術.樓順天版》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378519.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378519.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378519.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

floatvalue 重寫_Java Number floatValue()方法與示例

floatvalue 重寫Number類floatValue()方法 (Number Class floatValue() method) floatValue() method is available in java.lang package. floatValue()方法在java.lang包中可用。 floatValue() method is used to return the value denoted by this Number object converted …

array_column php什么版本可以用,array_column兼容php5.5以下版本

gistfile1.txt// ----------------------------------------------------------------------// |獲取二維數組中指定的一列&#xff0c;PHP5.5以后有專用函數array_column()// ----------------------------------------------------------------------// |param array $arr// …

。net學習之控件的使用注意點

jQuery使用 1、自定義屬性的使用<script>$(#xwjj_i_main br[brinfoPd_KangQiao_Subject_Xwjj_br_1]).hide();</script> 2、ready代碼塊$(document).ready(function(){ //你的代碼}); 3、簡單的特效hide&#xff08;&#xff09;$("a").click(function()…

09-CNN手寫數字識別

CNN卷積神經網絡的本質就是卷積運算 維度的調整&#xff1a; tf.reshape(imageInput,[-1,28,28,1]) imageInput為[None,784]&#xff0c;N行* 784維 調整為 M28行28列*1通道 即&#xff1a;二維轉化為四維數據 參數一&#xff1a;等價于運算結果M 參數二&#xff1a;28 28 表示…

【轉】左值與右值

出處&#xff1a;http://www.embedded.com/electronics-blogs/programming-pointers/4023341/Lvalues-and-Rvalues C and C enforce subtle differences on the expressions to the left and right of the assignment operator If youve been programming in either C or C for…

Opencv將處理后的視頻保存出現的問題

問題描述&#xff1a; 代碼運行過程中&#xff0c;imshow出來的每幀的效果圖是正確的&#xff0c;但是按照網上的方法保存下來卻是0kb&#xff0c;打開不了。 參考的網上的一些方法&#xff0c;均是失敗的&#xff0c;具體原因我也不清楚&#xff1a; 1、例如我這樣設置&#x…

Java Number shortValue()方法與示例

Number類shortValue()方法 (Number Class shortValue() method) shortValue() method is available in java.lang package. shortValue()方法在java.lang包中可用。 shortValue() method is used to return the value denoted by this Number object converted to type short (…

MATLAB可以打開gms文件嗎,gms文件擴展名,gms文件怎么打開?

.gms文件類型&#xff1a;Gesture and Motion Signal File擴展名為.gms的文件是一個數據文件。文件說明&#xff1a;Low-level, binary, minimal but generic format used to organize and store Gesture and Motion Signals in a flexible and optimized way; gesture-related…

黑白圖片顏色反轉并保存

將圖像的黑白顏色反轉并保存 import cv2 # opencv讀取圖像 img cv2.imread(rE:\Python-workspace\OpenCV\OpenCV/YY.png, 1) cv2.imshow(img, img) img_shape img.shape # 圖像大小(565, 650, 3) print(img_shape) h img_shape[0] w img_shape[1] # 彩色圖像轉換為灰度圖…

家貓WEB系統

現在只放源碼在些.為它寫應用很簡單有空整理文檔演示地址:jiamaocode.com/os/ 源碼&#xff1a;http://jiamaocode.com/ProCts/2011/04/14/1918/1918.html轉載于:https://www.cnblogs.com/jiamao/archive/2011/04/16/2018339.html

C# DataRow數組轉換為DataTable

public DataTable ToDataTable(DataRow[] rows) { if (rows null || rows.Length 0) return null; DataTable tmp rows[0].Table.Clone(); // 復制DataRow的表結構 foreach (DataRow row in rows) tmp.Rows.Add(row); // 將DataRow添加…

plesk 運行不了php,如何在Plesk中使用composer(使用其他版本的PHP運行Composer)

對于基于Plesk的服務器, composer的默認安裝將使用系統安裝的PHP版本, 而不使用Plesk所安裝的任何版本。盡管Composer至少需要PHP 5.3.2, 但是當你嘗試在需要特定版本PHP的項目中安裝依賴項時, 就會出現問題。例如, 如果你有一個至少需要PHP 7.2的項目, 并且系統的默認PHP安裝是…

Java Calendar hashCode()方法與示例

日歷類hashCode()方法 (Calendar Class hashCode() method) hashCode() method is available in java.util package. hashCode()方法在java.util包中可用。 hashCode() method is used to retrieve the hash code value of this Calendar. hashCode()方法用于檢索此Calendar的哈…

Error: Flash Download failed - Target DLL has been cancelled

博主聯系方式: QQ:1540984562 QQ交流群:892023501 群里會有往屆的smarters和電賽選手,群里也會不時分享一些有用的資料,有問題可以在群里多問問。 由于換了新電腦,keil重裝了下,然而之前的MCU的支持包沒有安裝,以及一些其他的問題,導致可以編譯但是不能將程序燒錄到單片…

設計一個較為合理的實驗方案來研究芳綸纖維的染色熱力學性能

請你設計一個較為合理的實驗方案來研究芳綸纖維的染色熱力學性能?包括吸附等溫線、親和力、染色熱和染色熵的測定,并指出實驗中應注意哪些事項來減少實驗誤差? 標準答案: 染色熱力學理論研究染色平衡問題。研究染色熱力學性能:首先研究選擇適宜的染料 吸附等溫線類型測定…

我也談委托與事件

雖然在博客園里面已經有很多關于C#委托和事件的文章&#xff0c;但是為了自己在學習的過程中&#xff0c;加深對委托的理解&#xff0c;我還是決定寫一下自己的心得體會。以備他日在回來復習。委托&#xff08;delegate&#xff09;是一個類&#xff0c;但是這個類在聲明的時候…

php錯誤攔截機制,php攔截異常怎么寫-PHP問題

php攔截異常可以通過PHP的錯誤、異常機制及其內建數set_exception_handler、set_error_handler、register_shutdown_function 來寫。首先我們定義錯誤攔截類&#xff0c;該類用于將錯誤、異常攔截下來&#xff0c;用我們自己定義的處理方式進行處理&#xff0c;該類放在文件名為…

智能車復工日記【4】:關于圖像的上下位機的調整問題總結

系列文章 【智能車Code review】—曲率計算、最小二乘法擬合 【智能車Code review】——坡道圖像與控制處理 【智能車Code review】——拐點的尋找 【智能車Code review】——小S與中S道路判斷 【智能車Code review】——環島的判定與補線操作 智能車復工日記【1】——菜單索引…

設計合理的實驗方案來研究陽離子改性棉織物與未改性棉的染色動力學性能

染色動力學性能研究染色的什么問題?設計合理的實驗方案來研究陽離子改性棉織物與未改性棉的染色動力學性能?并指出如何計算反映染色動力學的主要參數? 標準答案: 染色動力學研究染色速率問題。 為了研究陽離子改性棉纖維及未改性棉纖維對活性染料染色動力學性能,首先要測…

Java ArrayList toArray()方法及示例

ArrayList類的toArray()方法 (ArrayList Class toArray() method) Syntax: 句法&#xff1a; public Object[] toArray();public T[] toArray(T[] elements);toArray() method is available in java.util package. toArray()方法在java.util包中可用。 toArray() method is us…