计算机组成原理:储存系统和结构
? ? ? ? ??強(qiáng)烈推薦人工智能學(xué)習(xí)網(wǎng)站???
? ? ? ? 儲(chǔ)存系統(tǒng)的組成:
? ? ? ? ? ? ? ? 1.按作用分類
? ? ? ? ? ? ? ? ? ? ? ?1>高速緩沖存儲(chǔ)器:位于主存和CPU之間,用來存放正在執(zhí)行的程序段和數(shù)據(jù),以便CPU能高速的訪問它們。其速度可以和CPU速度相匹配。
? ? ? ? ? ? ? ? ? ? ? ?2>主存儲(chǔ)器:存放計(jì)算機(jī)運(yùn)行期間所需要的程序和數(shù)據(jù),CPU可直接隨機(jī)地進(jìn)行讀/寫訪問。有一定容量,速度較高
? ? ? ? ? ? ? ? ? ? ? ?3>輔助存儲(chǔ)器:存放當(dāng)前暫時(shí)不參與運(yùn)行的程序和數(shù)據(jù)以及一些需要永久保存的信息。容量大,成本低,但存取速度較慢。
? ? ? ? ? ? ? ? 2.按存儲(chǔ)方式分類
? ? ? ? ? ? ? ? ? ? ? ?1>隨機(jī)存取存儲(chǔ)器(RAM):隨機(jī)存儲(chǔ)就是CPU可以對(duì)其中的內(nèi)容隨機(jī)地存取,對(duì)任何一個(gè)存儲(chǔ)單元的寫入和讀出時(shí)間是一樣的,與其所處的物理位置無關(guān)。主要用作主存,也可用作高速緩沖存儲(chǔ)器。
? ? ? ? ? ? ? ? ? ? ? ?2>只讀存儲(chǔ)器(ROM):存儲(chǔ)器內(nèi)容只能隨機(jī)讀出而不能寫入。信息一旦寫入,即使斷點(diǎn),內(nèi)容也不會(huì)丟失。如存放BIOS程序。
? ? ? ? ? ? ? ? ? ? ? ?3>順序存取儲(chǔ)存器(SAM):SAM的內(nèi)容只能順序讀取,存取時(shí)間長(zhǎng)短與信息在存儲(chǔ)體上的物理位置有關(guān)。如磁帶機(jī)
? ? ? ? ? ? ? ? ? ? ? ?4>直接存取儲(chǔ)存器(DAM):當(dāng)要存儲(chǔ)信息時(shí),第一步直接指向整個(gè)存儲(chǔ)器中的某個(gè)小區(qū)域(如磁盤上的磁道);第二步在小區(qū)域內(nèi)順序檢索或等待,直至找到目的地后再進(jìn)行讀/寫操作。
? ? ? ? ? ? ? ? 3.按存儲(chǔ)介質(zhì)分類
? ? ? ? ? ? ? ? ? ? ? ?1>磁芯存儲(chǔ)器:采用具有矩形磁滯回線的鐵氧體磁性材料,利用2中不同的剩磁狀態(tài)表示"1"或"0"。一棵磁芯存放一個(gè)二進(jìn)制位,成千上萬顆磁芯組成磁芯體。可以長(zhǎng)期存儲(chǔ)信息,讀出是破壞性讀出;存儲(chǔ)容量小,速度慢,體積大,可靠性低。
? ? ? ? ? ? ? ? ? ? ? ?2>半導(dǎo)體存儲(chǔ)器:采用半導(dǎo)體器件制造的存儲(chǔ)器,主要有MOS型存儲(chǔ)器和雙極型存儲(chǔ)器兩大類。MOS型集成度高,功耗低,價(jià)格便宜,存取速度較慢;雙極性存儲(chǔ)器具有存取速度快,集成度低,功耗大,成本較高等特點(diǎn)。半導(dǎo)體RAM存儲(chǔ)的信息會(huì)因?yàn)閿嚯姸鴣G失。
? ? ? ? ? ? ? ? ? ? ? ?3>磁表面存儲(chǔ)器:在金屬或塑料機(jī)體上,涂覆一層磁性材料,用磁層儲(chǔ)存信息,如磁帶。其容量大,價(jià)格低,存儲(chǔ)速度慢,多用作輔助存儲(chǔ)器。
? ? ? ? ? ? ? ? ? ? ? ?4>光存儲(chǔ)器:采用激光控制訪問的存儲(chǔ)器,儲(chǔ)存容量大,常用輔助存儲(chǔ)器。
? ? ? ? ? ? ? ? 4.按信息的可保存性分類:
? ? ? ? ? ? ? ? ? ? ? ?1>易失性存儲(chǔ)器:斷點(diǎn)后,存儲(chǔ)信息即消失的存儲(chǔ)器。如半導(dǎo)體RAM
? ? ? ? ? ? ? ? ? ? ? ?2>非易失性存儲(chǔ)器:斷點(diǎn)后信息仍保存的存儲(chǔ)器,如ROM。
? ? ? ? ? ? ?存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu):為了解決存儲(chǔ)容量,存取速度和價(jià)格之間的矛盾,通常把各種不同存儲(chǔ)容量,不同存取速度的存儲(chǔ)器,按一定的體系結(jié)構(gòu)組織起來,形成一個(gè)統(tǒng)一整體的存儲(chǔ)系統(tǒng)。
? ? ? ? ? ? ??
? ? ? ? ? ? ?上面是多級(jí)存儲(chǔ)層次,n中不同的存儲(chǔ)器在邏輯上是一個(gè)整體。M1容量小最小,速度最快,價(jià)格最高,用于存放最常用的數(shù)據(jù);Mn容量最大,速度最低,價(jià)格最低,存放最少使用的數(shù)據(jù)。整個(gè)系統(tǒng)具有接近M1的速度,Mn的容量。
? ? ? ? ? ? ??
? ? ? ? ? ? ?圖a為Cache存儲(chǔ)系統(tǒng),Cache是為解決主存速度不足而提出來的。在Cache和主存之間增加輔助硬件,讓它們構(gòu)成一個(gè)整體。從CPU上看,速度接近Cache的速度,容量是主存的容量,每位價(jià)格接近主存的價(jià)格。
? ? ? ? ? ? 圖b為虛擬存儲(chǔ)系統(tǒng)是為解決主存容量不足提出來的。在主存和輔存之間,增加輔助軟硬件,讓它們構(gòu)成一個(gè)整體。從CPU上看,速度接近主存的速度,容量是虛擬地址空間,每位價(jià)格接近輔存的價(jià)格。虛擬存儲(chǔ)系統(tǒng)需要通過操作系統(tǒng)來調(diào)控。
?
? ? ? 主存儲(chǔ)器的組織
? ? ? ? ? ? ? 1.主儲(chǔ)存器的基本結(jié)構(gòu):主存通常由存儲(chǔ)體,地址譯碼驅(qū)動(dòng)電路,I/O和讀寫電路組成。
? ? ? ? ? ? ? ??
? ? ? ? ? ? ?存儲(chǔ)體是主存儲(chǔ)器的核心,程序和數(shù)據(jù)都存在存儲(chǔ)體中。
? ? ? ? ? ? ?地址譯碼驅(qū)動(dòng)電路實(shí)際上包含譯碼器和驅(qū)動(dòng)器兩部分。譯碼器將地址總線輸入的地址碼轉(zhuǎn)換成與之對(duì)應(yīng)的譯碼輸出線上的有效電平,以表示選中了某一存儲(chǔ)單元,然后由驅(qū)動(dòng)器提供驅(qū)動(dòng)電流去驅(qū)動(dòng)相應(yīng)的讀寫電路,完成對(duì)選中存儲(chǔ)單元的讀寫操作。
? ? ? ? ? ? ? I/O讀寫電路包括讀出放大器,寫入電路和讀寫控制電路,用以完成被選中存儲(chǔ)單元中給位的讀出和寫入操作。
? ? ? ? ? ? ?主存的讀寫操作時(shí)在控制器的控制下進(jìn)行的,只有接收到來自控制器的讀寫命令或?qū)懺试S信號(hào)后,才能實(shí)現(xiàn)正確的讀寫操作。
? ? ? ? 主存儲(chǔ)器的存儲(chǔ)單元
? ? ? ? ? ? ?位:二進(jìn)制數(shù)的最基本單元,也是存儲(chǔ)器存儲(chǔ)信息的最小單位。? ?
? ? ? ? ? ? ?存儲(chǔ)字:一個(gè)二進(jìn)制數(shù)由若干個(gè)位組成,當(dāng)這個(gè)二進(jìn)制數(shù)作為一個(gè)整體存入或取出時(shí),這個(gè)數(shù)稱為存儲(chǔ)字。
? ? ? ? ? ? ?儲(chǔ)存單元:存放存儲(chǔ)字或存儲(chǔ)字節(jié)的主存空間。
? ? ? ? ? ? ?存儲(chǔ)體:大量存儲(chǔ)單元的結(jié)合構(gòu)成一個(gè)存儲(chǔ)體。
? ? ? ? ? ? ?存儲(chǔ)地址:為了區(qū)別存儲(chǔ)體中的各個(gè)存儲(chǔ)單元,必須將它們逐一編號(hào)。存儲(chǔ)單元的編號(hào)就是地址。
?
? ? ? ? ? ??0x123456 存放在0x40000~0x40003中的情況(12為高字節(jié))
? ? ? ? ? ? 大端:高字節(jié)存放在低地址,12 34 56
? ? ? ? ? ? 小端:高字節(jié)存放在高地址,56 34 12
??
? ? 主存儲(chǔ)器的主要技術(shù)指標(biāo)
? ? ? ? ? ? ? 儲(chǔ)存容量:對(duì)于字節(jié)編址的計(jì)算機(jī),以字節(jié)數(shù)來表示存儲(chǔ)容量。如計(jì)算機(jī)的主存容量為64K*16,表示它有64K個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元的字長(zhǎng)16位。1K=1024B,16為是2個(gè)字節(jié),若用字節(jié)數(shù)表示,則可記為128K字節(jié)。
? ? ? ? ? ? ? 存取速度:主存的存取速度通常由存取時(shí)間,存取周期,主存帶寬等來描述
? ? ? ? ? ? ? ? ? ? ? ? 存取時(shí)間:指從啟動(dòng)一次存儲(chǔ)器操作到完成該操作所經(jīng)歷的時(shí)間。
? ? ? ? ? ? ? ? ? ? ? ? 存取周期:主存進(jìn)行一次完整的讀寫操作所需的全部時(shí)間,即連續(xù)兩次訪問存儲(chǔ)器操作之間所需的最短時(shí)間。一般存儲(chǔ)周期>存取時(shí)間,因?yàn)樵谧x寫操作之后,總要有一段恢復(fù)內(nèi)部狀態(tài)的時(shí)間。
? ? ? ? ? ? ? ? ? ? ? ? 主存帶寬:又稱數(shù)據(jù)傳輸率,表示每秒從主存進(jìn)出信息的最大數(shù)量,單位是字每秒或字節(jié)每秒或位每秒。提高主存帶寬的措施:縮短存取周期;增加存儲(chǔ)字長(zhǎng);增加存儲(chǔ)體
? ? ? ? ? ? ? ? ? ? ? ? ? 可靠性:在規(guī)定的時(shí)間內(nèi),存儲(chǔ)器無故障讀寫的概率
? ? ? ? ? ? ? ? ? ? ? ? ? 功耗:反應(yīng)存儲(chǔ)器耗電多少,同時(shí)也反應(yīng)了其發(fā)熱的程序。
? ? ? ? ?數(shù)據(jù)在主存中的存放
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? 字節(jié)占8個(gè)位,半字16位,單字32位,雙字64位,它們出現(xiàn)的概率相同。
? ? ? ? ? ? ? ? ? ? ?圖a是一種不浪費(fèi)存儲(chǔ)資源的存放方法,4中不同數(shù)據(jù)長(zhǎng)度一個(gè)緊接著上一個(gè)存放。這樣的優(yōu)點(diǎn)是不浪費(fèi)存儲(chǔ)器資源,主要問題有2個(gè):一是除了訪問一個(gè)字節(jié)以外,當(dāng)要訪問一個(gè)雙字,一個(gè)單字或一個(gè)半字時(shí)都有可能需要花費(fèi)兩個(gè)存取周期。圖中一個(gè)雙字,一個(gè)單字或一個(gè)半字都有可能跨越2個(gè)存儲(chǔ)體存放,這使存儲(chǔ)器的工作速度降低了一半;二是存儲(chǔ)器讀寫控制比較復(fù)雜。
? ? ? ? ? ? ? ? ? ? ?圖b又是一種存放方法,每種類型都必須從一個(gè)存儲(chǔ)字的起始位置開始存放,而多余的部分浪費(fèi)不用。這種數(shù)據(jù)存放方法優(yōu)點(diǎn)是:訪問某種類型只要一個(gè)存取周期,缺點(diǎn)是浪費(fèi)了寶貴的存儲(chǔ)資源。
? ? ? ? ? ? ? ? ? ? ?圖c是前兩種方法的這種方案,雙字?jǐn)?shù)據(jù)(8字節(jié))的起始地址的最末3個(gè)二進(jìn)制位必須為000(8的整數(shù)倍),單字?jǐn)?shù)據(jù)的起始地址的最末兩位必須為00(4的整數(shù)倍)。這種方法也能保證訪問數(shù)據(jù)只要一個(gè)存儲(chǔ)周期,稱為邊界對(duì)齊的數(shù)據(jù)存放方法。? ? ? ? ? ??
?
? ? ? ? RAM記憶單元電路:6管SRAM記憶單元電路,4管DRAM記憶單元電路,單管DRAM記憶單元電路(電路圖可參考教材)
? ? ? ? 動(dòng)態(tài)RAM的刷新:
? ? ? ? ? ? ?刷新間隔:DRAM一直在放電,為了維持DRAM記憶單元 的存儲(chǔ)信息,沒隔一段時(shí)間需要進(jìn)行刷新,這主要根據(jù)珊極電容的放電速度,一般選定的最大刷新間隔為2ms或4ms甚至更大。
? ? ? ? ? ? 刷新方式
? ? ? ? ? ? ? ? ? 1>集中刷新方式:在允許的最大時(shí)間間隔內(nèi),按照存儲(chǔ)芯片容量的大小集中安排若干個(gè)刷新周期,刷新時(shí)停止讀寫操作。這里的刷新周期是指刷新一行所需的時(shí)間,由于刷新過程是假讀的過程,所以刷新周期就等于存取周期。其優(yōu)點(diǎn)是讀寫操作不受刷新工作的影響,因此系統(tǒng)存取速度較高。缺點(diǎn)是刷新期間必須停止讀寫,這一段時(shí)間稱為"死區(qū)",而且存儲(chǔ)容量越大,死區(qū)越長(zhǎng)。
? ? ? ? ? ? ? ? ? 2>分散刷新方式:把刷新操作分散到每個(gè)存取周期內(nèi)進(jìn)行,此時(shí)系統(tǒng)的存儲(chǔ)周期被分為兩部分,前一部分時(shí)間進(jìn)行讀寫操作或保持,后一部分時(shí)間進(jìn)行刷新操作。在一個(gè)系統(tǒng)存取周期內(nèi)刷新存儲(chǔ)矩陣中的一行。這種刷新方式?jīng)]有死區(qū),但是它加長(zhǎng)了系統(tǒng)的存取周期,降低了整機(jī)的速度;二是刷新過于頻繁。
? ? ? ? ? ? ? ? ? 3>異步刷新方式:前述兩種方式的組合,充分利用最大刷新間隔時(shí)間,把刷新操作平均分配到整個(gè)最大刷新時(shí)間內(nèi)進(jìn)行,注意是平均分配,分散刷新方式是每個(gè)存儲(chǔ)周期刷新一次,這樣可以減少"死區(qū)"。
? ? ? ? ? ?刷新控制:解決刷新和CPU訪問存儲(chǔ)器之間的矛盾。通常,當(dāng)刷新請(qǐng)求和訪問請(qǐng)求同時(shí)發(fā)生時(shí),應(yīng)優(yōu)先進(jìn)行刷新操作。
? ? ? ? ? ?RAM芯片分析
? ? ? ? ? ? ? ? ?RAM芯片:RAM芯片通過地址線,數(shù)據(jù)線和控制線與外部連接。地址線是單向輸入的,其數(shù)目與芯片容量有關(guān)。數(shù)據(jù)線是雙向的,即可輸入,也可輸出,其數(shù)目與數(shù)據(jù)位數(shù)有關(guān)。控制線主要有讀寫控制線和片選線兩種,讀寫控制線用來控制芯片是進(jìn)行讀操作還是寫操作的,片選線用來決定芯片是否被選中。由于DRAM芯片集成度高,容量大,為了減少芯片引腳的數(shù)量,DRAM芯片把地址線分成相等的兩部分,分兩次從相同的引腳送入。這樣每增加一條地址線,增加了4倍的容量。
? ? ? ? ? ? ? ? 地址譯碼方式:RAM地址譯碼電路能把地址線送來的地址信號(hào)翻譯成對(duì)應(yīng)存儲(chǔ)單元的選擇信號(hào)。地址譯碼方式有單譯碼和雙譯碼兩種。
? ? ? ? ? ? ? ? ? ? ? ?1>單譯碼方式
? ? ? ? ? ? ? ? ? ? ? ?2>雙譯碼方式
? ? ? ? 半導(dǎo)體只讀存儲(chǔ)器:ROM的最大優(yōu)點(diǎn)是具有非易失性,即使電源斷電,ROM中存儲(chǔ)的信息也不會(huì)丟失。ROM工作時(shí)只能讀出,不能寫入。
? ? ? ? ? ? ? ? ? ROM的類型
? ? ? ? ? ? ? ? ? ? ? ? 掩膜式ROM:內(nèi)容由半導(dǎo)體制造廠按用戶提出的要求在芯片的生產(chǎn)過程直接寫入,寫入之后任何人無法改變其內(nèi)容。
? ? ? ? ? ? ? ? ? ? ? ?一次性可編程ROM:允許用戶利用專門的設(shè)備寫入自己的程序,一旦寫入,其內(nèi)容無法改變。
? ? ? ? ? ? ? ? ? ? ? ?可擦除編程ROM:不僅可以由用戶利用編程器寫入信息,而且可以對(duì)其內(nèi)容進(jìn)行多次改寫。
? ? ? ? ? ? ? ? ? ? ? ?閃速存儲(chǔ)器:允許在操作中被多次擦除或重寫的只讀存儲(chǔ)器。它可以在不加電的情況下長(zhǎng)期保存信息,又能在線進(jìn)行快速擦除與重寫。
? ? ? ? ? ? 主存儲(chǔ)器的連接與控制
? ? ? ? ? ? ? ? ?主存容量的擴(kuò)展:要組成一個(gè)主存,首先要考慮選片的問題,然后就是如何把芯片連起來。將多片組合起來常用位擴(kuò)展法,字?jǐn)U展法,字和位同時(shí)擴(kuò)展法。
? ? ? ? ? ? ? ? ? ? ? ? 位擴(kuò)展:只在位數(shù)方向擴(kuò)展(加大字長(zhǎng)),而芯片的的字?jǐn)?shù)和存儲(chǔ)器的字?jǐn)?shù)是一致的。位擴(kuò)展的連接方式?是將各存儲(chǔ)芯片的地址線,片選線和讀寫線相應(yīng)地并聯(lián)起來,而將各芯片的數(shù)據(jù)線單獨(dú)列出。當(dāng)CPU訪問該存儲(chǔ)器時(shí),其發(fā)出的地址和控制信號(hào)同時(shí)傳給8個(gè)芯片,選中每個(gè)芯片的同一單元,相應(yīng)單元的內(nèi)容被同時(shí)讀至數(shù)據(jù)總線的各位,或?qū)?shù)據(jù)總線上的內(nèi)容分別同時(shí)寫入相應(yīng)單元。
? ? ? ? ? ? ? ? ? ? ? ?字?jǐn)U展:僅在字?jǐn)?shù)方向擴(kuò)展,而位數(shù)不變。字?jǐn)U展將芯片的地址線,數(shù)據(jù)線,讀寫線并聯(lián),由片選信號(hào)來區(qū)分各個(gè)芯片。
? ? ? ? ? ? ? ? ? ? ? ?字和位同時(shí)擴(kuò)展:當(dāng)構(gòu)成容量比較大的存儲(chǔ)器時(shí),往往需要在字?jǐn)?shù)方向和位數(shù)方向上同時(shí)擴(kuò)展。
? ? ? ? ? ? 存儲(chǔ)芯片的地址分配和片選:CPU要實(shí)現(xiàn)對(duì)存儲(chǔ)單元的訪問,首先要選擇存儲(chǔ)芯片,即進(jìn)行片選;然后再?gòu)倪x中的芯片中依地址碼選擇出相應(yīng)的存儲(chǔ)單元,以進(jìn)行數(shù)據(jù)的存取,這稱為字選。片內(nèi)的字選是由CPU送出的N條低位地址線完成的,地址線直接接到所有存儲(chǔ)芯片的地址輸入端。而儲(chǔ)存芯片的片選信號(hào)則大多是通過高位地址譯碼或直接連接產(chǎn)生的。片選信號(hào)的產(chǎn)生可細(xì)分為線選法,全譯碼法和部分譯碼法。
? ? ? ? ? ? ? ? ? ?線選法:用除片內(nèi)地址外的高位地址線直接分別接至各個(gè)存儲(chǔ)芯片的片選端,當(dāng)某地址線信息為"0"時(shí),就選中與之對(duì)應(yīng)的存儲(chǔ)芯片
? ? ? ? ? ? ? ? ? ?全譯碼法:除片內(nèi)地址的全部高位地址線都作為地址譯碼器的輸入,譯碼器的輸出做出各芯片的片選信號(hào),將它們分別接到存儲(chǔ)芯片的片選端,以實(shí)現(xiàn)對(duì)存儲(chǔ)芯片的選擇。
? ? ? ? ? ? ? ? ? ?部分譯碼:用除片內(nèi)尋址外的高位地址的一部分來譯碼產(chǎn)生片選信號(hào)。如用4片2K*8的存儲(chǔ)芯片組成8K*8存儲(chǔ)器,需要4個(gè)片選信號(hào),因此只需要用兩位地址線來譯碼產(chǎn)生。
? ? ? ? ? 主存儲(chǔ)器和CPU的連接
? ? ? ? ? ? ? ? ?主存和CPU之間的硬連接:主存與CPU硬連接有3組線,地址總線(AB),數(shù)據(jù)總線(DB),控制總線(CB)。
? ? ? ? ? ? ? ? ?主存的校驗(yàn)
? ? ? ? ? ? ? ? ? ? ? ? 主存的奇偶校驗(yàn):每個(gè)儲(chǔ)存單元中共存儲(chǔ)9位信息(其中8位數(shù)據(jù),1位奇偶校驗(yàn)位),信息中的"1"的個(gè)數(shù)總是奇數(shù)。
? ? ? ? ? ? ? ? ? ? ? ? 錯(cuò)誤檢驗(yàn)和校正(ECC):ECC主存用一組附加數(shù)據(jù)位來存儲(chǔ)一個(gè)特殊碼,稱為"校驗(yàn)和"。對(duì)每個(gè)二進(jìn)制都有相應(yīng)的ECC碼。產(chǎn)生的ECC碼所需的位數(shù)取決于系統(tǒng)所用的字長(zhǎng)。
? ? ? ?
?
參考資料:<<計(jì)算機(jī)組成原理>> 蔣本珊
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的计算机组成原理:储存系统和结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络:分组交换
- 下一篇: redis源码客户端和服务端通信过程