❶ 如何解決存儲器和CPU之間的時序配合問題,述說其詳細過程
http://blog.21ic.com/user1/3794/archives/2007/40244.html
分享】存儲器與CPU的連接2007-7-19 16:46:00
存儲器與CPU的連接
存儲器與CPU或系統匯流排的連接,這個題目很大。注意到以位元組為單位組織的存儲器是16位寬度、乃至32位寬度的存儲器的基礎,本著由易到難、由淺入深的原則,這里先考慮以位元組為單位組織的存儲器與8位CPU的連接,在下一節介紹16位寬度的存儲器與16位CPU(以8086為例)的連接,在後面的章節再討論32位CPU(以80386為例)的存儲器組織。
在考慮存儲晶元類型時,也是先考慮與CPU連接較為方便的SRAM和ROM,然後再指出DRAM與CPU連接時要特別考慮的地方。
在存儲器與CPU連接時一般要考慮以下幾個問題:
·CPU匯流排的負載能力。
·CPU與存儲器速度的配合問題。
·存儲器的地址空間分配。
·讀/寫控制信號的連接。
·數據線的連接。
·地址線的連接與存儲晶元片選信號的產生。
1.CPU匯流排的負載能力
CPU匯流排的驅動能力有限,通常為一到數個,TTL負載,因此,在較大的系統中需要考慮匯流排驅動。一般做法是,對單向傳送的地址和控制匯流排,可採用三態鎖存器(如74LS373、8282等)和三態單向驅動器(如74LS244)等來加以鎖存和驅動;對雙向傳送的數據匯流排,可採用三態雙向驅動器(如74LS245、8286等)來加以驅動。三態雙向驅動器也稱匯流排收發器或數據收發器。
2.CPU與存儲器速度的配合問題
每一種存儲晶元都有自己固有的時序特性,這在前面已多次講到。在和cPu相連時必須處理好時序的配合問題。處理這個問題應以CPU的時序為基準,從CPU的角度提要求。
例如,存儲晶元讀取時間應小於CPU從發出地址到要求數據穩定的時間間隔;存儲晶元從片選有效到輸出穩定的時間應小於系統自片選有效到cPu要求數據穩定的時間間隔。如果沒有滿足要求的存儲晶元,或者出於價格因素而選用速度較慢的存儲晶元時,則應提供外部電路,以產生READY信號,迫使CPU插入等待時鍾Tw。看一個具體的例子,2114-2的讀取時間最大為200 ns,而cPu要求的從地址有效到數據穩定的時間間隔為150 ns,則不能使用2114—2,可選用比它快的晶元。如果出於價格因素,一定要用2114—2,則需要設計READY產生電路,以便插入Tw。
3.存儲器的地址空間分配
內存通常分為RAM和ROM兩大部分,而RAM又分為操作系統佔用區和用戶區。另外,目前生產的存儲器晶元,單片的容量仍然是有限的,即它的定址空間是有限的,一般要由若干晶元組成一個存儲器。所以,在和CPU連接時需進行存儲器的地址空間分配,即需要事先確定每個晶元(或由「×l位」或「×4位」晶元組成的晶元組)所佔用的地址空間。
4.讀/寫控制信號的連接
總的原則是CPU的讀/寫控制信號分別和存儲器晶元的讀/寫信號輸入端相連。實際上,一般存儲器晶元沒有讀輸入端,是用寫無效時的片選信號兼作讀信號。有的存儲器晶元設有輸出允許()引腳,一般將該引腳和CPU的讀信號相連,以便該片被選中且讀信號有效時將片內數據輸出三態門打開。對於不需要在線編程的ROM晶元,不存在寫信號的連接。
5.數據線的連接
這個問題與存儲器的讀/寫寬度有關,而存儲器讀/寫的最大寬度一般為CPU對外數據匯流排的位數。在考慮存儲器與CPU的數據線連接時,總的原則是:如果選用晶元的晶元字和所要設計的存儲器的讀/寫寬度相同,則直接將它的數據線分別和CPU的數據線相連;如果晶元字的位數小於所要設計的存儲器的讀/寫寬度,則需進行「位擴展」,即用幾片組合在一起,使它們的晶元字位數的總和等於存儲器的讀/寫寬度,將它們的數據線分別和CPU的數據線按對應關系相連。
這里以8位CPU配8位寬度的存儲器為例。若選用「×8位」存儲晶元,則將它的8根數據線分別和CPU的8根數據線相連即可;而選用晶元字不足8位的存儲晶元,則需要用幾片(「×1位」晶元需8片,「×4位」位晶元需2片)才能構成一個8位寬度的存儲器,這時,需將這些晶元的數據線按位的對應關系分別和CPU的8根數據線相連。
有些存儲晶元,數據的輸入和輸出分別緩沖,一位數據設置DIN和DOUT兩個數據線引腳。對於這種晶元,需將一位的DIN和DOUT引腳連起來,再和CPU的一根數據線相連。
6.地址線的連接及存儲晶元片選信號的產生
一個存儲器系統通常需要若干個存儲晶元。為了能正確實現定址,一般的做法是,將cPu或系統的一部分地址線(通常是低位地址線,位數取決於存儲晶元的容量)連到所有存儲晶元,以進行片內定址(存儲晶元內均設有地址解碼器);而用另一部分地址線(高位地址線)進行晶元選擇。存儲器系統設計的關鍵在於如何進行晶元選擇,即如何對高位地址解碼以產生晶元的片選信號,常用以下三種方法:
(1)線選法
用一根地址線直接作一個存儲晶元的片選信號。例如,一台8位微機,有16根地址線,現要配2 KB RAM和2 KB ROM,均選用2 K×8位的晶元,則各需一片。這時可採用一種最簡單的地址選擇方法,如圖3.24所示。將CPU的地址線的低11位(A10~A0)和兩個晶元的地址線分別相連,晶元的片選直接和其他的高位地址線中的一根相連,圖中A15反相後接RAM的,A14反相後接ROM的。這樣,A15、A14為1 0時選中RAM片,為0 1時選中ROM片。
這里分析一下RAM晶元佔用地址空間的情況。未用的地址位(這里是A13~A11)通常取0,即RAM晶元的設計地址空間為8000H~87FFH。將A15、A14固定為1 0,A10一AO作片內定址,當A13~A11取不同的組合時,可形成包括上述設計空間在內的8個區域。除去設計空間外,其他區域是:8800H~8FFFH,9000H~97FFH,…,B800H~BFFFH。由於A13~A11沒有參加解碼,訪問這7個區域中的任何一個單元都會影響到設計空間中相應的單元,因此,這7個區域不得他用。可以認為這些區域也被該RAM晶元所佔用著,稱這些區域為設計空間的重疊區。對於該例中的ROM晶元,同樣也存在7個重疊區,讀者可自行分析。
線選法的優點是簡單、無需外加選擇電路;缺點是不能有效地利用地址空間,也不便於系統的擴充。該方法可用在存儲容量需求小,且不要求擴充的場合,例如單片機應用系統。
(2)全解碼
全部地址線參加解碼,除去進行片內定址的低位地址線外,其餘地址線均參加解碼,以進行片選。例如,一台8位微機,現要求配8 KB RAM,選用2 K×8位的晶元,安排在64 KB地址空間低端的8 KB位置。圖3.25所示為該8 KB RAM與CPU(或系統匯流排)的連接。圖中74Lsl38是3線一8線解碼器。它有3個代碼輸入端c、B、A(A為低位)和8個解碼輸出端Y0~Y7。74LSl38還有3個使能端(或叫允許端)G1、和,第一個為高電平有效,後兩個為低電平有效。只有當它們為l 0 0時,解碼器才進行正常解碼;否則,解碼器不工作,所有的輸出均無效(為高)。表3.5是74LSl38的真值表。此外,常用的3線一8線解碼器還有8205,其輸入/輸出特性和74LS138完全一樣,只是使用了另一組信號名稱。
從圖3.25中可以看到,除片內定址的低位地址線外,高位地址都參與了解碼。根據圖中的接法,當A15~A1l為00000時,YO有效,選中左起第一片;為00001時,Y1有效,選中左起第二片,其他依此類推。
全解碼的優點是可利用全部地址空間,可擴充性好;缺點是解碼電路開銷大。
(3)部分解碼
它是前兩種方法的綜合,即除進行片內定址的低位地址線外,其餘地址線有一部分參加解碼以進行片選。以圖3.26所示為例,這里最高位A15沒有參加解碼。因為A15沒有參加解碼,所以也存在重疊區問題。
部分解碼是界於線選法和全解碼之間的一種方法,其性能也界於二者之間:可定址空間比線選法大,比全解碼小;而解碼電路比線選法復雜,比全解碼簡單。
上面圍繞存儲晶元片選信號的產生,說明了三種解碼方法。這些方法也適用於後面要介紹的I/O埠的定址。
❷ cpu存儲器和io設備是通過什麼連接起來的
子系統。CPU存儲器io設備通過子系統連接起來。CPU存儲器是微處理器中存放數據和各種程序的裝置。CPU存儲器是微處理器的一個重要的組成部分,由存儲單元集合體,地址寄存器,解碼驅動電路。讀出放大器以及時序控制電路等幾部分組成。
中央處理器存儲器又叫CPU存儲器,CPU存儲器是微處理器中存放數據和各種程序的裝置。CPU存儲器是微處理器的一個重要的組成部分,由存儲單元集合體,地址寄存器,解碼驅動電路,讀出放大器以及時序控制電路等幾部分組成。
❸ 存儲晶元通過什麼與外部連接
存儲器晶元與CPU的連接方式。是指與CPU匯流排相關的信號線的連接。控制匯流排由晶元類型決定,只能隨晶元一塊討論。
(1)根據CPU外部數據匯流排的位數確定主存結構。
(2)根據CPU外部地址匯流排的位數與存儲器的容量確定主存儲器晶元連接原則。
(3) 8位數據匯流排CPU與存儲器介面。
❹ 計算機組成原理,CPU與存儲器的連接
因為有16根地址線,8根數據線對應8位。所以內存地址是從0000 0000 0000 0000開始,8K就是2的13次方。所以A(12)對應就是1。所以最小系統程序區就是0000 0000 0000 0000~0001 1111 1111 1111。取到A(14)是因為用了兩片RAM。這里最重要要理解一點:二進制
加1的情況。例如:0011 1111的下一個內存地址是0100 0000。
最大4K位是先取16根地址線的最後一位。用二進製表示就是1111 1111 1111 1111,然後向前4K
❺ 8086cpu與存儲器連接時要考慮哪幾方面的因素
-數據鎖存:指令周期解碼和數據周期數據分別處理
-片選:如何避免與其他外設沖突
-讀寫信號:如何解碼才能在正確的時刻給正確的地址送數
-數據線和地址線:實際需要連多少根線
以上信號還要規劃好時序,配合好速率,看需不需要做信號間搭電平轉換
❻ cpu與存儲器連接的步驟是什麼
1)CPU可訪問的最大存儲空間看地址位數地址匯流排18條故2^18
2)CPU可提供數據匯流排8條存儲空間為16KB故要拼湊一個16K*8--->(16K*8)/(4K×4
)=8
3)要求用138解碼器實現地址解碼應該就是3-8解碼器那麼有3根地址線做解碼輸入。
全部用4K×4位的RAM晶元構成,那麼4K=2^12需要12根地址線A11-A0,之前3根就是A14-A12---這里的推算的沒考慮要求其地址范圍為08000H——0BFFFH的。
這里是從低位考慮的。
考慮地址空間必須先把地址從16進制轉成2進制觀察他們「1」最高位的位置然後設計。