16kx1位的DRAM存儲晶元
1. 用容量為16K x 1位存儲器晶元構成一個32K x 8 位的存儲系統,需要多少根地址線多少根數據線
需要5根地址線和2根數據線。而且需要2*8個16K x1存儲器。
16Kx1到32Kx8,字數和字長都變化了,也就是綜合兩種拓展方法拓展。16K到32K是兩倍,使用非門作為解碼器(1線-2線),故需要兩個存儲晶元。
構成存儲器的存儲介質主要採用半導體器件和磁性材料。存儲器中最小的存儲單位就是一個雙穩態半導體電路或一個CMOS晶體管或磁性材料的存儲元,它可存儲一個二進制代碼。由若干個存儲元組成一個存儲單元,然後再由許多存儲單元組成一個存儲器。
注意事項:
分類:
cf快閃記憶體卡:一種袖珍快閃記憶體卡。像pc卡那樣插入數碼相機,它可用適配器,使之適應標準的pc卡閱讀器或其他的pc卡設備。
sd快閃記憶體卡:存儲的速度快,非常小巧,外觀和MMC一樣,市面上較多數數碼相機使用這種格式的存儲卡。
數字膠卷:一種數碼相機的存儲介質,同日立的sm卡、松下的sd卡、索尼的memorystick屬同類的數字存儲媒體。
2. 一個容量為16k*32位的儲存器,其地址線和數據線的總和是多少
一個容量為16K*32位的存儲器,其地址線和數據線的總和為:46。
計算過程:
因為容量為16K=2^14,所以說地址線的數目為14根,又因為32位,所以說數據線的根數為32根,所以說地址線與數據線的總和為46根。
選用1K*4位晶元時需要128片,選用2K*8位的晶元時需要32片,選用4K*4位的晶元時需要32片,
選用16K*1位位的晶元時需要32片,選用8K*8位的晶元時需要8片。
(2)16kx1位的DRAM存儲晶元擴展閱讀:
存儲管理的目的:
1、存儲管理要實現的目的是為用戶提供方便、安全和充分大的存儲空間。
2、方便是指將邏輯地址和物理地址分開,用戶只在各自的邏輯地址空間編寫程序,不必過問物理空間和物理地址的細節,地址的轉換由操作系統自動完成。
3、安全是指同時駐留在內存的多個用戶進程相互之間不會發生干擾,也不會訪問操作系統所佔有的空間。
4、充分大的存儲空間是指利用虛擬存儲技術,從邏輯上對內存空間進行擴充,從而可以使用戶在較小的內存里運行較大的程序。
地址線的作用:
用來傳輸地址信息用的。舉個簡單的例子:CPU在內存或硬碟裡面尋找一個數據時,先通過地址線找到地址,然後再通過數據線將數據取出來。
3. 電路板上的Tⅴ一cⅴBS代表什麼
1. 計算機組成原理概論
計算機:數字電子計算機
組成:計算機硬體系統的邏輯實現
原理:不以具體機型為依託的,基本實現原理。
計算機組成原理:掌握如何實現的具體細節。
1.1 計算機系統簡介
計算機系統由兩大部分組成:硬體和軟體。軟體又包括系統軟體和應用軟體。
系統軟體可以管理整個計算機系統:
- 語言處理程序(將高級語言轉換為機器可以懂得指令)
- 操作系統
- 服務性程序(比如數學庫、MPI服務程序進行並行之間的通信)
- 資料庫管理系統
- 網路軟體
應用軟體是按照任務需要編製成的程序。
可以簡單將軟體看作一個層次結構,硬體為軟體提供介面,系統軟體又為應用軟體形成介面,來完成不同的程序。
對於計算機的物理結構層次,我們這門課主要研究邏輯層和微電路層的具體實現方式。
計算機系統的指令層次如下圖所示
操作系統可以管理軟硬體的資源。
計算機系統結構定義了系統軟硬體的交界面,定義了哪些功能由軟體實現,哪些功能由硬體實現,定義為==程序員所見到的計算機系統的屬性概念性的結構與功能特性==。(指令系統,數據類型,定址技術,I/O機理),即程序員需要理解的東西。
計算機組成:實現計算機體系結構所體現的屬性,即具體指令的實現。
1.2 計算機的基本組成 1.2.1 馮諾依曼結構
上圖實線表示數據流動,虛線表示控制反饋。
- 計算機結構由五大部件組成:存儲器、運算器、控制器、輸入設備、輸出設備
- 以運算器為中心==程序存儲在存儲器中==
- 指令和數據以同等地位保存在存儲器中,可以按照地址尋找。
- 指令和數據由二進製表示,指令由操作碼和地址碼組成,操作碼指明指令要干什麼,地址碼指明操作數晌運的地址。
馮諾依曼結構以運算器為中心,容易形成瓶頸。我們可以使用存儲器作為中心來進行優化,但是還不夠。
1.2.2 現代計算機硬體框圖
指令和數據都是保存在存儲器中的。
1.2.3 存儲器的基本組成
MAR是存儲器地址寄存器,保存了存儲單元的地址和編號,長度猛清反映存儲單元的個數。
MDR是存儲器數據寄存器,保存了要存入存儲體的數據或剛從存儲體拿出來的數據,長度反映存儲字長。
利用MAR和MDR來將數據放入存儲器。
1.2.4 運算器的結構
ALU(算術邏輯單元),通常是一個組合電路,輸入撤銷,輸出也撤銷,因此需要加上寄存器保存參與運算的計算。
數據寄存器X保存輸入參數,ACC為累加寄存器,保存結果,乘法可能使得數據位數保存不下,使用MQ寄存器保存低位。
上表中存放了不同運算中,運算器的工作過程,以乘法為例,操作過程如下:
- 首先將被乘數取出來放到ACC中
- 從指令中的乘數地址M中取出乘數,送入MQ中
- 將被乘數送到X中
- 將ACC清零
- 完成乘法操作,結果由ACC和MQ保存
這些操作的過程順序是由控制器來控制完成的。
1.2.5 控制器的基本結構
控制器的功能是解釋指令(完成指令)、保證指令的按序執行。
- PC(程序計數器)寄存器保存了當前指令的地址,進行取指令,PC有計數功能。
- IR(指令寄存器)存放當前要執行的指令,將操作碼送入CU進行分析。
- CU(控制單元)發出控制信號,控制相對應的部件來執行指令。
下面以取數指令為例分析指令執行過程(取數送到ACC中)
- PC保存指令的地址,送到MAR進行定址
- MAR根據地址到存儲體中找到保存的指令
- MDR從存儲體中取出指令
- 送到IR中,IR存放要執行的指令
- IR將操作碼送入CU中進行分析
- 同時將地址碼送到MAR中找這個數的數據
- MAR根據地址到存儲體中找到要取的數
- MDR保存從存儲體中取出的數
- CU控制下,將宴知梁要取的數送到ACC中。
CU分析控制這些步驟的過程。
1.3 計算機硬體的主要技術指標
- 機器字長:CPU一次能處理數據的位數,與CPU中寄存器位數有關。
- 運算速度:主頻、核數以及每個核支持的線程數、CPI(執行一條指令所需的時鍾周期數)、MIPS(每秒執行百萬條指令)、FLOPS(每秒浮點運算次數)。
- 存儲容量:主存容量(可使用存儲單元個數×存儲字長來表示存儲體容量,MAR * MDR)(也可使用位元組數來表示)、輔存容量(位元組數表示)。
第一台計算機,1946年ENIAC,十進制運算。
電子技術的發展與計算機體系結構技術的發展對計算機的發展產生了決定性作用。
根據硬體技術來對計算機進行劃分代碼
電子管→晶體管→大規模集成電路→大規模集成電路→超大規模集成電路
軟體技術的發展:機器語言(面向機器)、匯編語言(面向機器)、高級語言(面向問題)。
2.2 計算機的應用
- 科學計算和數據處理
- 工業控制和實時控制
- 網路技術
- 虛擬現實
- 辦公自動化和管理信息系統
- CAD/CAM/CIMS
- 多媒體技術
- 人工智慧
匯流排是連接各個部件的信息傳輸線,是各個部件共享的傳輸介質,是信號的公共傳輸線。
如果使用單匯流排結構(系統匯流排),那麼同時只能有一對部件進行信號傳輸,效率較低,使用雙匯流排結構效率會更高。
上面的結構,無法在I/O和主存之間進行直接的信息傳輸,必須要通過CPU。
3.2 匯流排的分類
- 片內匯流排:晶元內部的匯流排。
- 系統匯流排:計算機各部件之間的信息傳輸線。可分為:
- 數據匯流排,雙向的,一般小於等於機器字長和存儲字長。
- 地址匯流排,單向的,與存儲地址、I/O地址有關。
- 控制匯流排,雙向(CPU發出存儲器讀寫指令,匯流排允許,中斷確認等;CPU接收中斷請求、匯流排請求)
- 通信匯流排:計算機之間或計算機和其它設備之間的通信,並行通信匯流排和串列通信匯流排。
匯流排印刷到電路板上(主板),其他設備插板插到電路板上。
匯流排的性能指標:
- 匯流排寬度:數據線根數,同時可以傳輸多少位。
- 標准傳輸率:每秒傳輸的最大位元組數MBps
- 時鍾同步/不同步
- 匯流排復用:地址線與數據線是否可以復用
- 信號線數:地址線、數據線和控制線的總和
- 匯流排控制方式
- 其他指標:負載能力等
3.4 匯流排結構
增加了DMA(直接存儲器訪問)匯流排,外部設備直接訪問存儲器內存。高速設備直接通過DMA訪問主存。
CPU與cache通過局部匯流排進行相連,擴展匯流排將外部設備連接。
高速設備和低速設備分離,分別連接到高速匯流排和擴展匯流排上。
PCI高速匯流排來連接高速設備,PCI匯流排可以通過橋來進行擴展。
3.5 匯流排控制 3.5.1 匯流排判優控制
通過是否能對匯流排發出佔用請求,我們將設備分為主設備(主模塊)和從設備(從模塊)。主設備可以對匯流排有控制權,從設備響應從主設備發來的匯流排命令。
匯流排判優控制可以分為兩種:集中式和分布式。下面介紹幾種集中式的匯流排判優控制結構。
主設備通過BR申請匯流排的控制權,有設備在使用匯流排,則設置BS。匯流排控制部件通過BG來鏈式查詢這些介面是否提出了BR,遇到了BR則交出控制權。
因此,優先順序則為BG的查詢順序。這種結構對電路故障特別敏感,尤其是BG,如果BG後面出了問題,會導致後面的設備一直不會響應。
數據線用於數據的傳輸,地址線用於從設備的查找。通過設備地址線來查找某個設備是否發出匯流排請求。計數器的值通過設備地址線進行傳輸,來查找某個設備是否發出請求。可以自定義計數器的計數方式,來改變從哪個設備先查詢等。
為每個I/O介面增加了BR和BG,通過排隊器來進行優先順序排隊。這種方式使用的線數較多。
3.5.2 匯流排通信控制
為了解決通信雙方(主從設備)協調配合的問題。
匯流排的傳輸周期(完成一次主從設備完整可靠的傳輸所需要的時間):
- 申請分配階段:主設備申請,匯流排決定
- 定址階段:主設備向向從設備給出地址和命令
- 傳數階段:主設備和從設備進行交換數據
- 結束階段:主從設備撤銷有關信息
- T1,主設備給出地址信號
- T2,給出從設備的讀命令信號
- T3,從設備給出數據,輸出到匯流排,完成數據交換
- T4,撤銷地址信號,結束周期
強制同步,如果設備之間速度不同,快的設備需要等慢的設備。
不互鎖:不管從設備是否接收到請求信號,過段時間主設備都會撤銷請求。不管主設備是否接收到應答信號,從設備多段時間都會撤銷應答。
半互鎖和全互鎖針對上面進行改進。
增加等待響應信號,當wait為低電平,則等待一個T。
使用分離式通信來將匯流排空閑的時間也充分利用起來。
4. 存儲器 4.1 概述
按照存取方式對存儲器進行分類:
- 存取時間與物理地址無關(隨機訪問):隨機存儲器、只讀存儲器。
- 存取時間與物理地址有關(串列訪問):順序存取存儲器(磁帶)、直接存取存儲器(磁碟)。
按照在計算機中的作用分類:
存儲器的層次結構:
- 寄存器包括體系結構寄存器和非體系結構寄存器。
- 一部分緩存放在了CPU之中。
- 緩存——主存層次,使用硬體方法連接到一個整體(對程序員透明,即不需要了解),速度較快,解決CPU和主存之間速度差距較大的問題,緩存即為cache,CPU可以直接從緩存調用數據,cache和主存也進行數據交換。使用主存儲器的實地址和物理地址。
- 主存——輔存層次,使用軟硬體結合方式連接,容量較大,解決容量不足問題。這個層次稱為虛擬存儲器,使用虛地址和邏輯地址。
主存的基本組成:
主存與CPU之間的聯系:
主存中存儲單元地址的分配:
- 每個位元組(8位)一個地址,如果一個存儲單元存儲32位,即四個位元組為一個字,可以將高位位元組/低位位元組,放在小的地址作為字地址。
主存的技術指標:
4.2.2 主存儲器半導體晶元簡介
基本結構:
- 地址線(單向)給出地址,經過解碼驅動電路來選擇指定的存儲單元,完成數據的讀寫操作(數據線雙向)。
- 片選線是晶元選擇信號,給出這次選擇的地址是不是這個晶元的地址。
- 讀寫控制線,控制操作允許讀還是寫。
- 根據地址線和數據線條數,可以計算出晶元容量。如果地址線10條,數據線4條,那麼晶元容量則為1K×4位。即1K個地址,每個地址數據4位。
解碼驅動方式:
第一種方法是線選法
- 使用地址解碼器,給定輸入,輸出只有一根線(字線)是有效的,圖中一根線中是8個晶元組合成一個字,那麼只有一根線的這一組晶元有效。
- 這種方法,每個字的存儲單元都需要一根線,當容量較大的時候,很麻煩。
第二種方法是重合法
- 將所有存儲單元布置成二維的陣列,使用兩個地址解碼器XY,一組(X,Y)對應一個存儲單元。
- 這樣會大大降低所需要的線數量。
SRAM的基本電路:
- 使用觸發器T1-T4來存儲0/1,T5、T6控制存儲單元讀寫,實際中會有許多虛線框進行堆疊,T7、T8列開關,一列共用。同樣,可以橫向進行堆疊,那麼行地址選擇的這一行,所有存儲單元的T5和T6都會導通,但是只有對應列也有效的那個存儲單元才進行讀寫。
- 通過行選和列選,選中進行讀寫操作的存儲單元。
SRAM晶元舉例(Intel 2114):
- WE讀寫控制信號,CS片選信號,A0-A9為地址線,4個I/O數據線。
- 10根地址線,使用重合法,6線為行地址,4線為列地址,每個列信號控制四列,這樣一次就可以選擇4位,將這4位看做是一個存儲單元。就完成了1K×4位的選擇。
DRAM的基本電路:
- 利用電容,如果電容保存了電荷,則認為保存是1,沒有電,則認為是0。
- 保存在Cg上,T1、T2、T3是控制管。
- 讀出信息與原信息相反,需要加非門。
- 寫入信息與輸入信息相同。
還有一種結構是單管動態RAM:
- 讀出數據時,數據線有電,則為1。
- 寫入時,Cs充電為1,放電為0。
三管DRAM晶元舉例(Intel 1103):
- 因為電容會漏電,刷新放大器會定時對存儲的信息進行刷新。
單管DRAM晶元舉例(Intel 4116 16k×1位):
- 只有7根地址線,通過兩次,來接受行地址和列地址,存放到對應的緩存器中。
- 通過行時鍾、列時鍾、寫時鍾來控制讀寫。
動態RAM的刷新:
- 每一次刷新只與行地址有關,與列地址沒有關系,每次刷新一行。
- 集中刷新(在某段時間集中刷新所有的電容),這段時間DRAM是不可用的,稱為死區。
- 分散刷新(每次讀寫操作之後,將某一行刷新),相當於將原來的讀寫操作的時間變長,把刷新操作放在讀寫操作中,這樣就不存在死區。分散刷新比較頻繁,有點過度刷新了。
- 非同步刷新(將上面兩種結合),則每隔一段時間對某一行進行刷新,即多個讀寫操作加一個刷新操作。
- DRAM的集成度較高,每個存儲單元復雜度較低。
- SRAM的速度較快,一般用作緩存。
ROM中一般保存系統信息或系統程序。早期是只讀的,不可以寫,經過多年的發展和改進,現在的ROM可以自己多次讀寫。
- 掩模ROM(MROM):只讀,不能修改。行列選擇線交叉處有MOS管則為1,沒有則為0。
- PROM(一次性編程):熔絲斷了,則為0,否則為1。可以一次性的破壞性編程。
- EPROM(可以多次編程):N型溝道浮動柵MOS電路。S與D導通為1,不導通為0。
- EEPROM(多次性編程):電可擦寫、局部擦寫、全部擦寫。
- Flash Memory(快閃記憶體型存儲器):比EEPROM快,具有RAM的一些功能。
存儲器容量擴展可以通過位擴展(增加存儲字長)、字擴展(增加存儲字的數量)、同時擴展。
CPU與存儲器的連接:
- 地址線的連接:低位作為地址,高位作為片選信號
- 數據線的連接
- 讀寫命令控制線的連接
- 片選線的連接:MREQ信號(表示該信號是連接存儲器還是I/O介面)一定要連接到片選信號中,使得只有這個信號有效,才是CPU和內存連接工作。
- 合理選擇存儲晶元(ROM/RAM,晶元的性能參數)
- 其他:時序、負載
校驗,檢測合法代碼,對非法代碼進行糾錯。
編碼的糾錯、檢錯能力與編碼的最小距離有關。最小距離為任意兩組合法代碼之間二進制位數的最小差異。$$ L-1 = D + C (D≥C) $$L為最小距離,D為檢測錯誤的位數,C為糾正錯誤的位數。
漢明碼是具有一位糾錯能力的編碼,漢明碼都採用了奇偶校驗和分組校驗(分組的奇偶校驗,分組之間是有重疊的,校驗位放在2 ^ k處,k=0,1,2,3...)。
漢明碼的分組,將代碼中每一位進行分組(1,2,3,4,5,6,7序號),將每一位的序號進行分組,序號的二進制最右邊一位為1的,第一組,右邊第二位為1的,第二組......
==最後的校驗結果,哪一位是1,那麼這位對應的那組中的那個序號的代碼位出錯。如果出現了多個1,那麼就是這幾個組中公共的那位出錯了。==
4.2.7 提高主存的訪問以及存儲速度
CPU速度提升很快,但是存儲器的速度提升較慢。
我們可以採用高速器件,採用層次結構(Cache-主存),==調整主存結構。==
- 單體多字系統:使得存儲器的存儲字長大於CPU的字長(比如是CPU字長的4倍),這樣一次讀取就可以讀取多個指令。但是這樣會導致存儲器結構復雜, 而且,如果需要執行的指令不是連續存放的,會更麻煩。
- 多體並行方式:
- 高位交叉:對各個存儲體進行編號,存儲體內部自行編號,每個存儲體獨立,有自己的控制編號。這樣CPU給出的地址是體號+體內地址,各個存儲體可以並行處理。(類似存儲器容量的擴展)如果程序指令存方式順序的,實際上還是在一個存儲體中,並無法提升存儲體速度。
- 低位交叉:體內地址+體號,使用橫向的編碼,比如存儲體為M0-M3,那麼第一個地址為M0的第一個位置,第二個地址為M1的第一個位置......這樣M0中所有地址後兩位都為00,M1都為01,M2都為10,M3都為11。後兩位給出了存儲體的選擇地址。這樣如果程序指令順序存放的地址,實際上是不同存儲體並行處理,這樣就提升了效率,流水操作。
CPU與主存(DRAM)之間存在速度差異,為了避免CPU「空等」的現象,使用cache。
程序訪問的局部性原理:
- 時間的局部性:當前正在使用的指令或數據,會在不久的將來還會使用到,那麼應該把這種數據或指令放在緩存中。
- 空間的局部性:當前正在使用的指令或數據,不久的將來,相鄰的指令或數據會使用到,那麼應該把當前和相鄰的指令和數據放到緩存中。
cache的工作原理:
把主存和cache分成大小相等的塊,每個塊大小相等,主存的塊數量遠遠大於cache的塊數量。==主存與cache之間的信息傳送是按塊傳送,塊內地址不變,cache的每個塊的標記,標記了這個塊是主存的哪個塊。==
主存塊調入了緩存(即cache標記了),稱為命中,CPU可直接在緩存中取得數據;如果沒有調入,稱為未命中。
我們希望,每次執行程序,都盡可能的在cache中提取數據,這樣速度會很快。CPU欲訪問的信息在Cache中的比率稱為命中率,命中率與Cache的容量和塊長有關。一般每塊取4-8個字,一般為一個存取周期內從主存調出的信息長度。
cache與主存的訪問效率:
這裡面平均訪問時間為每次訪問的平均時間(可能從cache,可能從主存)。
4.3.2 cache的基本結構與讀寫操作
cache的基本結構:
讀寫操作:
- 前者時刻保持了cache和主存的一致,後者只寫cache中,當cache中退出時才寫回主存。
cache的改進:
- 增加cache的級數:片內cache,片外cache。
- 分立緩存:指令cache,數據cache。
即主存的任意一塊載入到cache中的哪塊。
直接映射:
即主存中任意一個塊,只能映射到指定的一個cache塊中,cache塊可以是一對多的。相當於將主存分區,每個區內的這些塊,對應於cache的所有塊;這樣在cache的標記中,有t位的標記,表示當前該cache塊存放的是主存哪個區的對應位置信息。
這種方法cache塊的利用率比較低,且可能會沖突。
全相聯映射:
主存中任意一個塊,可以被放入cache中的任意一個塊中。
這樣的話,雖然塊的利用率高了,但是因為塊可以映射到任意一個位置,如果查詢某個主存塊是否已經放入cache,需要比較所有的cache標記,速度較慢。
==組相聯映射==:
與直接映射相似,==將cache分組,每個組可以有多個塊;將主存分區,每個區的大小為cache的組數==。這樣每個區的第0塊,可以放入cache第0組的任何一個位置,因為每個組有多個塊,解決了直接映射的沖突問題;想查詢某個主存的塊是否放入了cache,只需要在對應的組進行查詢即可,解決了全相聯映射的問題。
4.3.4 替換演算法
如果內存塊滿了,如何替換,將誰彈出。
先進先出(FIFO)演算法
近期最少使用(LRU)演算法
4.4 輔助存儲器
輔助存儲器的主要作用是保存程序、文檔和影音資料,不能直接與CPU交換信息,需要調入主存才能進行讀寫。
包括磁碟存儲器和光碟存儲器等。