版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第四章存儲器系統(tǒng)
2/2/20231?第7版2011.09本章學(xué)習(xí)內(nèi)容存儲器的分類及主要技術(shù)指標(biāo)
存儲系統(tǒng)的層次結(jié)構(gòu)半導(dǎo)體存儲器的工作原理存儲器與CPU的連接輔助存儲器的工作原理Cache的工作原理并行存儲系統(tǒng)2/2/202324.1存儲器概述存儲器:計(jì)算機(jī)的存儲部件,用于存放程序和數(shù)據(jù)。計(jì)算機(jī)發(fā)展的重要問題之一,就是如何設(shè)計(jì)容量大、速度快、價格低的存儲器。2/2/202334.1.1存儲器分類1.按與CPU的連接和功能分類(1)主存儲器
CPU能夠直接訪問的存儲器。用于存放當(dāng)前運(yùn)行的程序和數(shù)據(jù)。主存儲器設(shè)在主機(jī)內(nèi)部,所以又稱內(nèi)存儲器。簡稱內(nèi)存或主存。2/2/20234(2)輔助存儲器為解決主存容量不足而設(shè)置的存儲器,用于存放當(dāng)前不參加運(yùn)行的程序和數(shù)據(jù)。當(dāng)需要運(yùn)行程序和數(shù)據(jù)時,將它們成批調(diào)入內(nèi)存供CPU使用。CPU不能直接訪問輔助存儲器。輔助存儲器屬于外部設(shè)備,所以又稱為外存儲器,簡稱外存或輔存。2/2/20235(3)高速緩沖存儲器(Cache)Cache是一種介于主存與CPU之間用于解決CPU與主存間速度匹配問題的高速小容量的存儲器。Cache用于存放CPU立即要運(yùn)行或剛使用過的程序和數(shù)據(jù)。2/2/202362.按存取方式分類(1)隨機(jī)存取存儲器(RAM)RAM存儲器中任何單元的內(nèi)容均可按其地址隨機(jī)地讀取或?qū)懭?,且存取時間與單元的物理位置無關(guān)。RAM主要用于組成主存。(2)只讀存儲器(ROM)ROM存儲器中任何單元的內(nèi)容只能隨機(jī)地讀出而不能隨便寫入和修改。ROM可以作為主存的一部分,用于存放不變的程序和數(shù)據(jù),與RAM分享相同的主存空間。ROM還可以用作其它固定存儲器,如存放微程序的控制存儲器、存放字符點(diǎn)陣圖案的字符發(fā)生器等。2/2/20237(3)順序存取存儲器(SAM)SAM存儲器所存信息的排列、尋址和讀寫操作均是按順序進(jìn)行的,并且存取時間與信息在存儲器中的物理位置有關(guān)。如磁帶存儲器,信息通常是以文件或數(shù)據(jù)塊形式按順序存放,信息在載體上沒有唯一對應(yīng)的地址,完全按順序存放或讀取。(4)直接存取存儲器(DAM)DAM是介于RAM和SAM之間的存儲器。也稱半順序存儲器。典型的DAM就是磁盤。當(dāng)對磁盤進(jìn)行信息存取時,先進(jìn)行尋道,屬于隨機(jī)方式,然后在磁道中尋找扇區(qū),屬于順序方式。2/2/20238
3.按存儲介質(zhì)分類存儲介質(zhì):具有兩個穩(wěn)定物理狀態(tài),可用來記憶二進(jìn)制代碼的物質(zhì)或物理器件。目前,構(gòu)成存儲器的存儲介質(zhì)主要是半導(dǎo)體器件和磁性材料。(1)磁存儲器
磁存儲器就是采用磁性材料制成的存儲器。磁存儲器是利用磁性材料的兩個不同剩磁狀態(tài)存放二進(jìn)制代碼“0”和“1”。早期有磁芯存儲器,現(xiàn)多為磁表面存儲器,如磁盤、磁帶等。2/2/20239磁芯存儲器2/2/2023103.5英寸軟盤2/2/202311硬盤2/2/202312(2)半導(dǎo)體存儲器半導(dǎo)體存儲器是用半導(dǎo)體器件組成的存儲器。根據(jù)制造工藝不同,可分為雙極型和MOS型。2/2/202313U盤2/2/202314(3)光存儲器利用光學(xué)原理制成的存儲器,它是通過能量高度集中的激光束照在基體表面引起物理的或化學(xué)的變化,記憶二進(jìn)制信息。如光盤存儲器。2/2/202315(1)易失性存儲器電源掉電后,信息自動丟失。如半導(dǎo)體RAM。(2)非易失性存儲器電源掉電后,信息仍能繼續(xù)保存。如ROM、磁盤、光盤等。4.按信息的可保存性分類2/2/2023164.1.2主存儲器的組成和基本操作2/2/202317⑴存儲元件(存儲元、存儲位)能夠存儲一位二進(jìn)制信息的物理器件。如一個雙穩(wěn)態(tài)半導(dǎo)體電路、一個CMOS晶體管或一個磁性材料的存儲元等。存儲元是存儲器中最小的存儲單位。作為存儲元的條件:①有兩個穩(wěn)定狀態(tài)。即可以存儲“0”、“1”。②在外界的激勵下,能夠進(jìn)入要求的狀態(tài)。即可以寫入“0”、“1”。③能夠識別器件當(dāng)前的狀態(tài)。即可以讀出所存的“0”、“1”。2/2/202318六管靜態(tài)RAM基本存儲元電路
2/2/202319單管DRAM基本存儲元電路
2/2/202320⑵存儲單元:由一組存儲元件組成,可以同時進(jìn)行讀寫。⑶存儲體(存儲陣列):把大量存儲單元電路按一定形式排列起來,即構(gòu)成存儲體。存儲體一般都排列成陣列形式,所以又稱存儲陣列。存儲單元的地址:存儲體中每個存儲單元被賦予的一個唯一的編號。存儲單元的地址用于區(qū)別不同的存儲單元。要對某一存儲單元進(jìn)行存取操作,必須首先給出被訪問的存儲單元的地址。因?yàn)榈刂肥怯枚M(jìn)制進(jìn)行編碼的,所以又稱為地址碼。
2/2/202321存儲單元的編址編址單位:存儲器中可尋址的最小單位。①按字節(jié)編址:相鄰的兩個單元是兩個字節(jié)。②按字編址:相鄰的兩個單元是兩個字。例如一個32位字長的按字節(jié)尋址計(jì)算機(jī),一個存儲器字中包含四個可單獨(dú)尋址的字節(jié)單元。當(dāng)需要訪問一個字,即同時訪問4個字節(jié)時,可以按地址的整數(shù)邊界進(jìn)行存取。即每個字的編址中最低2位的二進(jìn)制數(shù)必須是“00”,這樣可以由地址的低兩位來區(qū)分不同的字節(jié)。2/2/202322地址11100100000032100100765410001110981100151413122/2/202323⑷地址寄存器:用于存放所要訪問的存儲單元的地址。要對某一單元進(jìn)行存取操作,首先應(yīng)通過地址總線將被訪問單元地址存放到地址寄存器中。⑸地址譯碼與驅(qū)動電路:用于對地址寄存器中的地址進(jìn)行譯碼,通過對應(yīng)的地址選擇線到存儲陣列中找到所要訪問的存儲單元,并提供驅(qū)動信號驅(qū)動其完成指定的存取操作。⑹讀寫電路:根據(jù)CPU發(fā)出的讀寫控制命令,控制對存儲單元的讀寫。⑺數(shù)據(jù)寄存器:暫存需要寫入或讀出的數(shù)據(jù)。數(shù)據(jù)寄存器是存儲器與計(jì)算機(jī)其它功能部件聯(lián)系的橋梁。2/2/202324⑻時序控制電路:用于接收來自CPU的讀寫控制信號,產(chǎn)生存儲器操作所需的各種時序控制信號,控制存儲器完成指定的操作。2/2/2023252.主存與CPU的連接及主存的操作主存儲器用于存放CPU正在運(yùn)行的程序和數(shù)據(jù)。主存與CPU之間通過總線進(jìn)行連接。2/2/202326主存的操作過程MAR:主存地址寄存器MDR:主存數(shù)據(jù)寄存器CPU讀操作(取操作)地址(MAR)ABMEM讀命令(Read)CBMEMMEM存儲單元內(nèi)容(M)DBMDR寫操作(存操作)地址(MAR)ABMEM寫命令(Write)CBMEMDBMDR數(shù)據(jù)2/2/202327同步控制方式:數(shù)據(jù)傳送在固定的時間間隔內(nèi)完成,即在一個存取周期內(nèi)完成。異步控制方式:數(shù)據(jù)傳送的時間不固定,存儲器在完成讀/寫操作后,需向CPU回送“存儲器功能完成”信號(MFC),表示一次數(shù)據(jù)傳送完成。目前多數(shù)計(jì)算機(jī)采用同步方式控制CPU與主存之間的數(shù)據(jù)傳送。由于異步控制方式允許不同速度的設(shè)備進(jìn)行信息交換,所以多用于CPU與外設(shè)的數(shù)據(jù)傳送中。CPU與主存之間的數(shù)據(jù)傳送控制方式2/2/2023284.1.3半導(dǎo)體存儲器的主要性能指標(biāo)衡量主存的性能指標(biāo)主要有:1.存儲容量:存儲器所能存儲的二進(jìn)制信息總量。存儲容量的表示:①用存儲單元數(shù)與每個單元的位數(shù)的乘積表示。如:512k×16位,表示主存有512k個單元,每個單元為16位。②在以字節(jié)為編址單位的機(jī)器中,常用字節(jié)表示存儲容量,例如4MB、16MB分別表示主存可容納4兆個字節(jié)(MB)信息和16兆個字節(jié)信息。2/2/202329容量與存儲器地址線的關(guān)系1K=210需要10根地址線1M=220需要20根地址線256M=228需要28根地址線2G=231需要31根地址線2/2/2023302.速度由于主存的速度慢于CPU速度,所以主存速度直接影響著CPU執(zhí)行指令的速度。因此,速度是主存的一項(xiàng)重要技術(shù)指標(biāo)。⑴訪問時間(取數(shù)時間tA)從啟動一次存儲器存取操作到完成該操作所需的全部時間。即從存儲器接到CPU發(fā)出的讀/寫命令和地址信號到數(shù)據(jù)讀入MDR/從MDR寫入MEM所需的時間。讀出時間:從存儲器接到有效地址開始到產(chǎn)生有效輸出所需的時間。寫入時間:從存儲器接到有效地址開始到數(shù)據(jù)寫入被選中單元為止所需的時間。2/2/202331與tA相關(guān)的參數(shù):tCA:指從加載到存儲器芯片上的()引腳上的選片信號有效開始,直到讀取的數(shù)據(jù)或指令在存儲器芯片的數(shù)據(jù)引腳上可以使用為止的時間間隔。tOE:指從讀(OE)信號有效開始,直到讀取的數(shù)據(jù)或指令在存儲器芯片的數(shù)據(jù)引腳上可以使用為止的時間間隔。2/2/2023322/2/202333⑵存取周期(存儲周期、讀寫周期TM)對存儲器連續(xù)進(jìn)行兩次存取操作所需要的最小時間間隔。由于存儲器進(jìn)行一次存取操作后,需有一定的恢復(fù)時間,所以存儲周期TM大于訪問時間tA。半導(dǎo)體存儲器的存取周期tMTM=tA+一定的恢復(fù)時間MOS型存儲器的TM約100ns雙極型TTL存儲器的TM約10ns2/2/202334帶寬是指存儲器單位時間內(nèi)所存取的二進(jìn)制信息的位數(shù)。帶寬也稱存儲器數(shù)據(jù)傳輸率、頻寬Bm帶寬等于存儲器總線寬度除以存取周期。W:存儲器總線的寬度,對于單體存儲器,W就是數(shù)據(jù)總線的根數(shù)。帶寬的單位:兆字節(jié)/秒3.帶寬2/2/202335提高存儲器速度的途徑①采用高速器件②減少存取周期TM,如引入Cache。③提高總線寬度W,如采用多體交叉存儲方式。④采用雙端口存儲器。⑤加長存儲器字長。2/2/2023364.價格存儲器的價格常用每位的價格來衡量。設(shè)存儲器容量為S位,總價格為C總,每位價格為cc=C總/SC總不僅包含存儲器組件本身的價格,也包括為該存儲器操作服務(wù)的外圍電路的價格。存儲器的總價格與存儲容量成正比,與存儲周期成反比。2/2/2023374.可靠性存儲器可靠性的衡量指標(biāo)——主存的平均無故障時間MTBF。MTBF越長,可靠性越高。除上述幾個指標(biāo)外,功耗也是影響存儲器性能的因素之一。2/2/202338容量、速度、價格三個指標(biāo)是相互矛盾、相互制約的。高速的存儲器往往價格也高,因而容量也不可能很大。為了較好地解決存儲器容量、速度與價格之間的矛盾,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,通常都是通過輔助軟、硬件,將不同容量、不同速度、不同價格的多種類型的存儲器組織成統(tǒng)一的整體。即構(gòu)成存儲器系統(tǒng)的多級層次結(jié)構(gòu)。4.1.4存儲器系統(tǒng)的層次結(jié)構(gòu)2/2/202339存儲器層次結(jié)構(gòu)輔助軟硬件輔助硬件2/2/202340按層次結(jié)構(gòu)自上而下
⑴訪問時間逐漸增長寄存器的訪問時間是幾個納秒高速緩存的訪問時間是寄存器訪問時間的幾倍主存儲器的訪問時間是幾十個納秒磁盤的訪問時間最少10ms以上磁帶和光盤的訪問時間以秒來計(jì)量。
2/2/202341⑵存儲容量逐漸增大寄存器約幾十到幾百字節(jié)Cache約幾百到幾M字節(jié)主存在幾十MB到幾GB之間磁盤的容量為幾十GB到幾TB磁帶和光盤一般脫機(jī)存放,其容量只受限于用戶的預(yù)算2/2/202342⑶存儲器每位的價格逐漸降低例如主存的價格約每兆字節(jié)幾角磁盤的價格是每兆字節(jié)幾分或更低磁帶的價格是每G字節(jié)幾元或更低2/2/202343Cache——主存層次主要解決速度問題通過輔助硬件,把主存和Cache構(gòu)成統(tǒng)一整體,使它具有接近Cache的速度、主存的容量和接近于主存的平均價格。主存——輔存層次主要解決容量問題大量的信息存放在大容量的輔助存儲器中,當(dāng)需要使用這些信息時,借助輔助軟、硬件,自動地以頁或段為單位成批調(diào)入主存中。2/2/2023444.2半導(dǎo)體存儲器4.2.1半導(dǎo)體存儲器的分類2/2/2023454.2.2隨機(jī)存取存儲器的結(jié)構(gòu)及工作原理
1.
半導(dǎo)體存儲器芯片結(jié)構(gòu)及實(shí)例存儲器組件把存儲體及其外圍電路(包括地址譯碼與驅(qū)動電路、讀寫放大電路及時序控制電路等)集成在一塊硅片上,稱為存儲器組件。存儲器芯片存儲器組件經(jīng)過各種形式的封裝后,通過引腳引出地址線、數(shù)據(jù)線、控制線及電源與地線等,制成存儲器芯片。
2/2/202346存儲器芯片2/2/202347存儲器芯片一般做成雙列直插形式,有若干引腳引出地址線、數(shù)據(jù)線、控制線及電源與地線等。半導(dǎo)體存儲器芯片一般有兩種結(jié)構(gòu):字片式結(jié)構(gòu)和位片式結(jié)構(gòu)?!瑼n-1~0…Dm-1~0R/WCS電源地線2/2/202348讀/寫控制線R/W:控制存儲芯片的讀/寫操作。片選控制線CS:CS為低電平時,選中芯片工作;CS為高電平時,芯片不被選中。操作00寫01讀1×未選中2/2/2023491)字片式結(jié)構(gòu)的存儲器芯片(64字×8位)2/2/202350單譯碼方式(一維譯碼):訪存地址僅進(jìn)行一個方向譯碼的方式。每個存儲單元電路接出一根字線和兩根位線。存儲陣列的每一行組成一個存儲單元,存放一個8位的二進(jìn)制字。一行中所有單元電路的字線聯(lián)在一起,接到地址譯碼器的對應(yīng)輸出端。6位訪存地址經(jīng)地址譯碼器譯碼選中某一輸出端有效時,與該輸出端相聯(lián)的一行中的每個單元電路同時進(jìn)行讀寫操作,實(shí)現(xiàn)一個字的同時讀/寫。2/2/20235164字×8位的存儲體中共有64個字,每個字為8位,排成64×8的陣列。存儲芯片共需6根地址線,8根數(shù)據(jù)線,一次可讀出一個字節(jié)。存儲體中所有存儲單元的相同位組成一列,一列中所有單元電路的兩根位線分別連在一起,并使用一個讀/寫放大電路。讀/寫放大電路與雙向數(shù)據(jù)線相連。2/2/202352字片式結(jié)構(gòu)存儲器芯片,由于采用單譯碼方案,有多少個存儲字,就有多少個譯碼驅(qū)動電路,所需譯碼驅(qū)動電路多。雙譯碼方式(二維譯碼):采用行列譯碼的方式,位于選中的行和列的交叉處的存儲單元被唯一選中。采用雙譯碼方式的存儲芯片即位片式結(jié)構(gòu)存儲器芯片。2/2/2023532)位片式結(jié)構(gòu)的存儲器芯片(4K×1位)2/2/2023544K×1位的位片式存儲器芯片中有4096個存儲單元電路,排列成64×64的陣列。4096個單元需12位地址。將12位地址分為6位行地址和6位列地址。對于給定的訪存地址,經(jīng)行、列譯碼后,選中一根行地址選擇線和列地址選擇線有效。行地址選擇線選中一行中的64個存儲電路進(jìn)行讀寫操作。列地址選擇線用于選擇64個多路轉(zhuǎn)接開關(guān),控制各列是否能與讀/寫電路的接通。每個多路轉(zhuǎn)接開關(guān)由兩個MOS管組成,控制一列中的64個存儲電路的位線與讀/寫電路的接通。2/2/202355當(dāng)選中存儲芯片工作時,首先給定訪存地址,并給出片選信號CS和讀寫信號R/W6行列地址,被選的行、列選擇線的交叉處的存儲電路被唯一地選中,讀出或?qū)懭胍晃欢M(jìn)制信息。采用雙譯碼方案,對于4096個字只需128個譯碼驅(qū)動電路。而若采用單譯碼方案,4096個字將需4096個譯碼驅(qū)動電路。2/2/2023563)Intel2114芯片Intel2114是1K×4位的靜態(tài)MOS存儲器芯片。采用N—MOS工藝制作,雙列直插式封裝。共18個引腳。A9~A0:10根地址線,用于尋址1024個存儲單元I/O4~I(xiàn)/O1:4根雙向數(shù)據(jù)線CS:片選信號線WE:讀/寫控制線+5V:5V電源線GND:地線2/2/202357三態(tài)門X0X63Y0Y152/2/2023582/2/2023592114芯片由存儲體、地址緩沖器、地址譯碼器、讀/寫控制電路及三態(tài)輸入輸出緩沖器組成。存儲體中共有4096個六管存儲單元電路,排列成64×64陣列。地址譯碼采用二維譯碼結(jié)構(gòu),10位地址碼分成兩組,A8~A3作為6位行地址,經(jīng)行地址譯碼器驅(qū)動64根行選擇線。A2~A0及A9作為4位列地址,經(jīng)列地址譯碼器驅(qū)動16根列選擇線,每根列選擇線同時選中64列中的4列,控制4個轉(zhuǎn)接電路,控制被選中的4列存儲電路的位線與I/O電路的接通。被選的行選擇線與列選擇線的交叉處的4個存儲電路,就是所要訪問的存儲字。4個存儲電路對應(yīng)一個字的4位。2/2/202360在存儲體內(nèi)部的陣列結(jié)構(gòu)中,存儲器的讀/寫操作由片選信號CS與讀/寫控制信號WE控制。CS為高電平時,輸入與輸出的三態(tài)門均關(guān)閉,不能與外部的數(shù)據(jù)總線交換信息。CS為低電平時,芯片被選中工作,若WE為低電平,則打開4個輸入三態(tài)門,數(shù)據(jù)總線上的信息被寫入被選的存儲單元;若WE為高電平,打開4個輸出三態(tài)門,從被選的存儲單元中讀出信息并送到數(shù)據(jù)總線上。2/2/2023612114的讀、寫周期在與CPU連接時,CPU的控制信號與存儲器的讀、寫周期之間的配合問題是非常重要的。對于已知的RAM存儲片,讀寫周期是已知的。⑴讀周期讀出時間(tA):從給出有效地址后,經(jīng)過譯碼、驅(qū)動電路的延遲,到讀出選中單元的內(nèi)容,再經(jīng)過I/O電路延遲后,在外部數(shù)據(jù)總線上穩(wěn)定出現(xiàn)所讀數(shù)據(jù)信息所需的時間。片選到數(shù)據(jù)輸出延遲時間(tCO)
:從CS給出并有效(低電平),到存儲器讀出的數(shù)據(jù)穩(wěn)定地送到外部數(shù)據(jù)總線上所需要的時間。2/2/202362讀周期(tRC):存儲芯片進(jìn)行兩次連續(xù)讀操作時所必須間隔的時間。tRC≥tACPU訪問存儲器讀數(shù)據(jù)時,從給出地址有效起,只有經(jīng)過tA長的時間才能在數(shù)據(jù)總線上可靠的獲得數(shù)據(jù),而連續(xù)的讀數(shù)操作必須保留間隔時間tRC。否則存儲器無法正常工作,CPU的讀數(shù)操作就失效。2/2/2023632/2/202364⑵寫周期要使數(shù)據(jù)總線上的信息能夠可靠地寫入存儲器,必須要求片選CS和寫命令WE信號都為低。其相“與”的寬度至少應(yīng)為tW寫數(shù)時間(tW):片選CS和寫命令WE信號均為低的時間。滯后時間(tAW):在有效寫入數(shù)據(jù)出現(xiàn)前,RAM的數(shù)據(jù)線上存在著前一時刻的數(shù)據(jù)DOUT,故在地址線發(fā)生變化后,CS、WE均需滯后tAW才能有效,以避免將無效數(shù)據(jù)寫入到RAM中。寫恢復(fù)時間(tWR):WE變?yōu)楦唠娖胶?,需再?jīng)過tWR時間,地址信號才允許改變。為了保證有效數(shù)據(jù)的可靠地寫入,地址有效的時間至少應(yīng)為tAW+tW+tWR。2/2/202365寫周期(tWC):對芯片進(jìn)行連續(xù)兩次寫操作的最小間隔時間。tWC=tAW+tW+tWR為保證數(shù)據(jù)可靠寫入,CPU送至RAM的寫入數(shù)據(jù)DIN必須在CS、WE失效前的tDW時刻出現(xiàn),并延續(xù)一段時間tDH(此刻地址線仍有效,tWR>tDH)。2/2/202366tAW
—滯后時間2/2/202367例如某SRAM的寫入時序圖。其中R/W是讀/寫命令控制線,當(dāng)R/W線為低電平時,存儲器按給定地址把數(shù)據(jù)線上的數(shù)據(jù)寫入存儲器。指出圖中寫入時序中的錯誤,并畫出正確的寫入時序圖。
2/2/202368解釋:寫入存儲器的時序信號必須同步。通常,當(dāng)R/W線加負(fù)脈沖時,地址線和數(shù)據(jù)線的電平必須是穩(wěn)定的。當(dāng)R/W線達(dá)到低電平時,數(shù)據(jù)立即被存儲。因此,當(dāng)R/W線處于低電平時,如果數(shù)據(jù)線改變了數(shù)值,那么存儲器將存儲新的數(shù)據(jù)⑤。同樣,當(dāng)R/W線處于低電平時地址線如果發(fā)生了變化,那么同樣數(shù)據(jù)將存儲到新的地址②或③。2/2/202369單管動態(tài)MOS存儲單元電路2/2/202370保持狀態(tài):當(dāng)字線W為低電平時,MOS管T截止,電路不被選中,保持原存信息。寫入信息:字線W加高電平,T導(dǎo)通。寫“1”:位線b加高電平,使b經(jīng)T管對C充電,
實(shí)現(xiàn)寫“1”。寫“0”:位線b加低電平,使C經(jīng)T管向位線放電,實(shí)現(xiàn)寫“0”。讀出信息:字線W加高電平,T導(dǎo)通。原存“1”:C上有電荷。T導(dǎo)通后,C上電荷經(jīng)T
向位線b上泄放,位線上有輸出信號,經(jīng)讀出再生放大器輸出為“1”信息。原存“0”:C上無電荷,所以位線上無輸出信號,經(jīng)讀出再生放大器輸出為“0”信息。2/2/202371由于單管存儲電路是靠電荷泄放檢測“1”信息的,讀后信息被破壞,所以該電路是破壞性讀出的,因此必須采取再生措施,即讀后立即重寫。讀出再生放大器具有這種再生功能。動態(tài)MOS存儲器是靠柵極電容上的電荷存儲信息,由于電路中存在著一定的漏電流,致使電容電荷慢慢放電,以至使所存信息丟失。所以需要定時刷新。2/2/2023724)TMS4116芯片TMS4116是由單管動態(tài)MOS存儲單元電路構(gòu)成的動態(tài)RAM芯片。容量為16k×1位。16k的存儲器應(yīng)有14根地址線,為了節(jié)省引腳,該芯片只使用7根地址線A6~A0,采用分時復(fù)用技術(shù),分兩次把14位地址送入芯片。行地址選通信號RAS:用于將低7位地址A6~A0打入行地址緩沖器鎖存。列地址選通信號CAS:用于將高7位地址A13~A7,打入列地址緩沖器鎖存。2/2/202373TMS4116的外部引腳2/2/202374TMS4116的內(nèi)部邏輯結(jié)構(gòu)2/2/20237516k×1位共16384個單管MOS存儲單元電路,排列成128×128的陣列,并將其分為兩組,每組為64行×128列。每根行選擇線控制128個存儲電路的字線。列選擇線控制讀出再生放大器與I/O緩沖器的接通,控制數(shù)據(jù)的讀出或?qū)懭搿C恳桓羞x擇線控制一個讀出再生放大器,128列共有128個讀生再生放大器,一列中的128個存儲電路分為兩組,每64個存儲電路為一組,兩組存儲電路的位線分別接入讀出再生放大器的兩端。2/2/202376TMS4116的存儲陣列結(jié)構(gòu)
2/2/202377行地址經(jīng)行地址譯碼選中某一根行線有效,接通此行上的128個存儲電路中的MOS管,使電容所存信息分別送到128個讀出再生放大器放大。同時,經(jīng)放大后的信息又回送到原電路進(jìn)行重寫,使信息再生。列地址經(jīng)列地址譯碼選中某根列線有效,接通相應(yīng)的列控制門,將該列上讀出放大器輸出的信息送入I/O緩沖器,經(jīng)數(shù)據(jù)輸出寄存器通過數(shù)據(jù)輸出引腳DOUT輸出到系統(tǒng)數(shù)據(jù)總線上。TMS4116的讀出2/2/202378TMS4116的寫入首先將要寫入的信息通過數(shù)據(jù)輸入引腳DIN經(jīng)由數(shù)據(jù)輸入寄存器、I/O緩沖器送入被選列的讀出再生放大器中,然后再寫入行、列同時被選中的存儲單元。為寫允許控制線為高電平,讀出;為低電平,寫入。TMS4116芯片沒有專門設(shè)置選片信號,一般用
信號兼做選片控制信號。只有當(dāng)有效(低電平)時,芯片才工作。
2/2/202379TMS4116的刷新當(dāng)某個存儲單元被選中進(jìn)行讀/寫操作時,該單元所在行的其余127個存儲電路也將自動進(jìn)行一次讀出再生操作,即完成一次刷新操作。TMS4116的刷新是按行進(jìn)行的,每次只加行地址,不加列地址,即可實(shí)現(xiàn)被選行上的所有存儲電路的刷新。即一次可以刷新128個存儲單元電路。2/2/202380TMS4116芯片的讀、寫周期時序在讀周期中,行地址必須在RAS有效前有效,列地址必須在CAS有效前有效,并且在CAS到來之前,WE必須為高電平,并保持到CAS結(jié)束之后。在寫周期中,當(dāng)WE有效之后,所加的DIN信號必須保持到CAS變?yōu)榈碗娖街?,RAS、CAS和WE全部有效時,將DIN數(shù)據(jù)寫入被選的存儲單元。2/2/202381讀周期(列選通下降沿觸發(fā))2/2/202382寫周期(列選通下降沿觸發(fā))2/2/2023835)動態(tài)存儲器的刷新方式
因?yàn)殡娙蓦姾傻男狗艜鹦畔⒌膩G失,所以動態(tài)MOS存儲器每隔一定時間需進(jìn)行一次刷新操作。刷新的間隔時間主要由電容電荷泄放速度決定。①刷新最大周期(刷新最大間隔)設(shè)存儲電容為C,其兩端電壓為u,
電荷Q=C?u,則泄漏電流I為:2/2/202384所以泄漏時間為Δu:電容兩端的電壓變化I:泄露電流C:存儲電容例如設(shè)某動態(tài)MOS元件的C=0.2pf,
當(dāng)I=0.1nA,電壓變化Δu=1V時,信息將丟失。則泄漏時間Δt為:說明該動態(tài)MOS元件每隔2ms必須刷新一次,Δt就是刷新最大周期(刷新最大間隔)。2/2/202385動態(tài)存儲器芯片的刷新均是按行刷新。例如,對于16K的4116芯片,存儲體排成128×128陣列。刷新時,共需要刷新128行。每次由刷新地址計(jì)數(shù)器給出刷新的行地址,每刷新一行,刷新地址計(jì)數(shù)器加1。2/2/202386②動態(tài)存儲器的刷新方式
當(dāng)主存需要刷新時,CPU不能訪存,所以要盡可能讓刷新時間少占用CPU時間。A.集中式刷新
按照存儲器芯片容量的大小集中安排刷新操作的時間段,在此時間段內(nèi)對芯片內(nèi)所有的存儲單元電路執(zhí)行刷新操作。CPU的“死區(qū)”
在刷新操作期間,禁止CPU對存儲器進(jìn)行正常
讀/寫的訪問操作,稱這段時間為CPU的“死區(qū)”。2/2/202387例如,設(shè)16k×1位芯片的存儲矩陣為128×128。存儲器的刷新最大周期為2ms,存儲器的存取周期為500ns,一次刷新操作可同時刷新128個存儲單元電路。因?yàn)榇鎯仃嚍?28×128,所以對芯片內(nèi)的所有存儲單元電路全部刷新一遍需要128個存取周期。因此在2ms內(nèi),必須留出128個周期專用于刷新。因?yàn)榇鎯ζ鞯拇嫒≈芷跒?00ns,所以在2ms內(nèi)需要有500×128=64μs專門用于刷新操作,其余1936μs可用于正常的存儲器讀寫操作。2/2/202388集中式刷新的優(yōu)點(diǎn)
系統(tǒng)的存取周期不受刷新工作的影響,讀寫操作和刷新工作在最大刷新周期內(nèi)分開進(jìn)行,控制簡單。集中式刷新的缺點(diǎn)
在“死區(qū)”內(nèi)CPU必須停止訪存操作,CPU利用率低。2/2/202389B.分散式刷新
定義系統(tǒng)對存儲器的存取周期是存儲器本身的存取周期的兩倍。再把系統(tǒng)的存取周期平均分為兩個操作階段,前一個階段用于對存儲器的正常訪問,后一個階段用于刷新操作,每次刷新一行。分散式刷新的優(yōu)點(diǎn):沒有“死區(qū)”,每一系統(tǒng)周期都可進(jìn)行讀/寫操作。分散式刷新的缺點(diǎn):沒有充分利用所允許的最大刷新間隔(2ms),且刷新過于頻繁,人為降低了存儲器的速度。
2/2/202390以128×128陣列、存取周期為500ns的存儲器芯片為例。采用分散式刷新時,系統(tǒng)總線周期為存取周期的兩倍,即1μs。這樣每隔128μs就可以將存儲器全部刷新一遍。2/2/202391C.異步式刷新異步式刷新是前兩種刷新方式的折衷。其思想是充分利用最大刷新間隔,每隔一段時間刷新一行。以128×128陣列、存取周期為500ns,刷新最大周期為2ms的存儲器芯片為例。因?yàn)橐笤?ms內(nèi)將所有128行都刷新一遍,所以只要每隔2ms/128=15.6μs的時間刷新一行即可。取兩次刷新的間隔時間為周期的整數(shù),可使存儲器每隔15.5μs執(zhí)行刷新操作一次,一次刷新一行。這樣在15.5μs中,前15μs即30個存取周期用于讀/寫操作,后0.5μs用于刷新。2/2/202392異步式刷新既充分利用了2ms的最大刷新間隔,保持了存儲系統(tǒng)的高速性,又大大縮短了主機(jī)的“死區(qū)”,所以是一種最常用的刷新方式。2/2/202393D.透明式刷新
利用CPU不訪存操作時主存的空閑時間進(jìn)行刷新。透明式刷新方式的優(yōu)點(diǎn):完全消除了“死區(qū)”。透明式刷新方式的缺點(diǎn):較難控制何時能夠進(jìn)行刷新,刷新控制電路極其復(fù)雜。2/2/2023944.2.4半導(dǎo)體存儲器的組成由于一塊存儲器芯片的容量總是有限的,因此一個存儲器總是由一定數(shù)量的存儲器芯片構(gòu)成。要組成一個主存儲器,需要考慮的問題:①如何選擇芯片根據(jù)存取速度、存儲容量、電源電壓、功耗及成本等方面的要求進(jìn)行芯片的選擇。②所需的芯片數(shù)量:
2/2/202395例:用2114芯片組成32K×8位的存儲器,所需2114芯片數(shù)為:③如何把許多芯片連接起來。要考慮地址、數(shù)據(jù)和控制信號線的連接。
通常存儲器芯片在單元數(shù)和位數(shù)方面都與實(shí)際存儲器要求有很大差距,所以需要在字方向和位方向兩個方面進(jìn)行擴(kuò)展。2/2/2023961.位擴(kuò)展當(dāng)芯片的單元數(shù)滿足存儲器單元數(shù)的要求,但單元中的位數(shù)不滿足要求時,需要進(jìn)行位擴(kuò)展。位擴(kuò)展:只進(jìn)行位數(shù)擴(kuò)展(加大字長)。采用位擴(kuò)展時,芯片的單元數(shù)(字?jǐn)?shù))與存儲器的單元數(shù)是一致的。位擴(kuò)展的連接方式:①將所有存儲器芯片的地址線、片選信號線和讀/寫控制線均對應(yīng)的并接在一起,連接到地址和控制總線的對應(yīng)位上。②將各芯片的數(shù)據(jù)線單獨(dú)列出,分別接到數(shù)據(jù)總線的對應(yīng)位。2/2/202397例:用2114存儲器芯片構(gòu)成1K×8位的存儲器。2114為1K×4位的芯片,現(xiàn)存儲器要求容量為1K×8位,單元數(shù)滿足,位數(shù)不滿足,需要1K×8/1K×4=2片2114來構(gòu)成存儲器。1K×8位的存儲器共需8根數(shù)據(jù)線D7~D0,兩片2114各自的4根數(shù)據(jù)線分別用于連接D7~D4和D3~D0。2114本身具有10根地址線,稱為片內(nèi)地址線,與存儲器要求的10根地址線一致,所以只要將他們并接起來即可。電路中CPU的讀/寫控制線(R/W)與2114的WE信號并接。MREQ為CPU的訪存請求信號,作為2114的片選信號連接到CS上。2/2/202398存儲器位擴(kuò)展舉例2/2/2023992.字?jǐn)U展當(dāng)芯片單元中的的位數(shù)滿足存儲器位數(shù)的要求,但芯片的單元數(shù)不滿足存儲器單元數(shù)要求時,需要進(jìn)行字?jǐn)U展。字?jǐn)U展:僅是單元數(shù)(字?jǐn)?shù))擴(kuò)展,而位數(shù)不變。采用字?jǐn)U展時,芯片單元中的位數(shù)與存儲器的數(shù)據(jù)位數(shù)是一致的。2/2/2023100字?jǐn)U展的連接方式:①將所有芯片的地址線、數(shù)據(jù)線、讀/寫控制線均對應(yīng)地并接在一起,連接到地址、數(shù)據(jù)、控制總線的對應(yīng)位上。②由片選信號區(qū)分被選芯片。片選信號:通常由高位地址經(jīng)譯碼進(jìn)行控制。高位地址:存儲器總地址減去芯片內(nèi)部尋址的地址得到的地址。2/2/2023101例:用16K×8位的存儲器芯片構(gòu)成64K×8位的存儲器。16K×8位的芯片,可以滿足64K×8位的存儲器數(shù)據(jù)位的要求,但不滿足單元數(shù)的要求。需要4片16K×8位的芯片采用字?jǐn)U充方式來構(gòu)成存儲器。64K×8位的存儲器需要16位地址線A15~A0,而16K×8位的芯片的片內(nèi)地址線為14根,所以用16位地址線中的低14位A13~A0進(jìn)行片內(nèi)尋址,高兩位地址A15、A14用于選擇芯片,即選片尋址。2/2/2023102設(shè)存儲器從0000H開始連續(xù)編址,則四塊芯片的地址分配:第一片地址范圍為:0000H~3FFFH第二片地址范圍為:4000H~7FFFH第三片地址范圍為:8000H~BFFFH第四片地址范圍為:C000H~FFFFH2/2/2023103A15A14A13A12………A2A1A0000000000000000000111111111111110000H~3FFFH第一片010000000000000001111111111111114000H~7FFFH第二片100000000000000010111111111111118000H~BFFFH第三片11000000000000001111111111111111C000H~FFFFH第四片片內(nèi)地址片選地址2/2/20231042/2/20231053.字和位同時擴(kuò)展當(dāng)芯片的單元數(shù)和單元的數(shù)據(jù)位均不滿足存儲器的要求時需要進(jìn)行字和位的同時擴(kuò)展。字和位同時擴(kuò)展:按位擴(kuò)展和字?jǐn)U展的方法分別在位方向和字方向進(jìn)行擴(kuò)展。2/2/2023106①所有芯片的片內(nèi)地址線、讀/寫控制線均對應(yīng)地并接在一起,連接到地址和控制總線的對應(yīng)位上。②同一地址區(qū)域內(nèi),不同芯片的片選信號連在一起,接到片選譯碼器的同一輸出端;
不同地址區(qū)域內(nèi)內(nèi),各組芯片的片選信號分別接到片選譯碼器的不同輸出端。③不同地址區(qū)域內(nèi),同一位芯片的數(shù)據(jù)線對應(yīng)地并接在一起,連接到數(shù)據(jù)總線的對應(yīng)位上。不同位芯片的數(shù)據(jù)線分別連接到數(shù)據(jù)總線的不同位上。字和位同時擴(kuò)展的連接方式2/2/2023107例4.4
:用2114芯片組成4K×8位存儲器需用8片2114芯片構(gòu)成4K×8位存儲器。8片芯片排成4行×2列,每行按位擴(kuò)展方法連接,每列按字?jǐn)U展方法連接。存儲器地址線A11~A0,芯片片內(nèi)地址A9~A0,高兩位地址A11、A10用于選片尋址。存儲器數(shù)據(jù)線D7~D0,芯片數(shù)據(jù)線I/O3~I(xiàn)/O0,兩片芯片的數(shù)據(jù)線一同構(gòu)成存儲器的8位數(shù)據(jù)線。2/2/2023108A11A10A9……A2A1A00000000000000011111111110000H~03FFH第一組0100000000000111111111110400H~07FFH第二組1000000000001011111111110800H~0BFFH第三組1100000000001111111111110C00H~0FFFH第四組2/2/20231092/2/2023110例:某微機(jī)系統(tǒng)有16根地址線,8根數(shù)據(jù)線,地址空間安排為:16K系統(tǒng)程序存儲區(qū),用ROM芯片,安排在地址最低區(qū);接著留出16K的設(shè)備地址空間;其后的32K作為用戶程序區(qū),采用RAM芯片。給定芯片如下,請畫出連線圖,給出各存儲區(qū)的地址范圍。ROMD7~D0A13A0CSDE…RAMD7~D0A13A0CSRD…WR2/2/2023111ROM區(qū):16K×8位,需1片16K×8位ROM芯片RAM區(qū):32K×8位,需2片16K×8位RAM芯片I/O區(qū):16K×8位,主存不應(yīng)使用A15A14A13A12………A2A1A0000000000000000000111111111111110000H~3FFFHROM區(qū)010000000000000001111111111111114000H~7FFFHI/O區(qū)100000000000000010111111111111118000H~BFFFHRAM區(qū)111000000000000001111111111111111C000H~FFFFHRAM區(qū)22/2/2023112ROMA13~A0CSDERAMD7~D0A15A14CSRDWRRAMY0CSRDWR地址譯碼器MEMRY2Y3Y1R/W2/2/2023113書后習(xí)題P1864.82/2/2023114作業(yè)P1854.74.9(不畫圖)4.102/2/2023115地址分配與片選的關(guān)系當(dāng)存儲器存儲容量大于芯片容量時需要利用片選信號進(jìn)行擴(kuò)容。產(chǎn)生片選信號的三種方法:(1)線選法將芯片片內(nèi)地址以外的高位地址直接(或經(jīng)反相器)分別接到各存儲器芯片的CS引腳。特點(diǎn):無需外加邏輯電路,但僅適用于芯片較少的場合。2/2/2023116例:系統(tǒng)有12根地址線,用2片2K×8的芯片構(gòu)成4K×8的存儲器。采用線選法。2/2/2023117例:系統(tǒng)有15根地址線,用4片2K×8的芯片構(gòu)成8K×8的存儲器。采用線選法。各芯片地址:芯片A14~A11A10~A0地址范圍0#111000……0011……117000H~7FFFH1#110100……0011……116800H~6FFFH2#101100……0011……115800H~5FFFH3#011100……0011……113800H~3FFFH2/2/2023118(2)全譯碼法將芯片片內(nèi)地址以外的高位地址全部接到譯碼器的輸入端,將譯碼器的輸出作為片選信號。特點(diǎn):芯片的地址范圍確定,連續(xù),無重疊存儲區(qū),對譯碼電路要求較高。2/2/2023119例:系統(tǒng)有15根地址線,用4片2K×8的芯片構(gòu)成8K×8的存儲器。采用全譯碼法。各芯片地址:芯片A14~A11A10~A0地址范圍0#110000……0011……116000H~67FFH1#110100……0011……116800H~6FFFH2#111000……0011……117000H~77FFH3#111100……0011……117800H~7FFFH2/2/2023120(3)部分譯碼法將芯片片內(nèi)地址以外的高位地址部分地與譯碼器相連,將譯碼器的輸出作為片選信號。特點(diǎn):對譯碼電路要求相對較低,但存在重疊存儲區(qū)。2/2/2023121例:系統(tǒng)有15根地址線,用4片2K×8的芯片構(gòu)成8K×8的存儲器。采用部分譯碼法。各芯片地址:芯片A12A11A10~A0地址范圍0#0000……0011……110000H~07FFH1#0100……0011……110800H~0FFFH2#1000……0011……111000H~17FFH3#1100……0011……111800H~1FFFH2/2/2023122重復(fù)地址:A14A13=00,01,10,110000H~07FFH:2000H~27FFH,4000H~47FFH,6000H~67FFH0800H~0FFFH:2800H~2FFFH,4800H~4FFFH,6800H~6FFFH1000H~17FFH:3000H~37FFH,5000H~57FFH,7000H~77FFH1800H~17FFH:3800H~3FFFH,5800H~5FFFH,7800H~7FFFH2/2/20231234.多種數(shù)據(jù)位輸出的組織問題多種數(shù)據(jù)的傳輸是指存儲器按照CPU的指令要求,與CPU間分別傳輸8位、16位、32位或64位數(shù)據(jù)的情況。此時,CPU要增加控制信號,控制存儲器傳輸不同位數(shù)的數(shù)據(jù)。
2/2/2023124整數(shù)邊界存儲當(dāng)計(jì)算機(jī)具有多種信息長度(8位、16位、32位等),則應(yīng)當(dāng)按存儲周期的最大信息傳輸量為界(Bm為界),保證數(shù)據(jù)都能在一個存儲周期內(nèi)存取完畢。例如,設(shè)計(jì)算機(jī)字長為64位,一個存儲周期內(nèi)可傳輸8位、16位、32位、64位等不同長度信息。那么1個8位、2個16位、2個32位、1個64位等信息的存儲地址應(yīng)如何給出呢?2/2/2023125⑴無邊界規(guī)定0000H0008H0010H64位/存儲周期0020H64816163232321664??????0018H2/2/2023126無邊界規(guī)定時存在的問題若地址分配不合理,則會出現(xiàn)兩個周期才能將數(shù)據(jù)傳送完畢的情況。如上圖的第1個16位、第2個32位和64位都需兩個存儲周期才能完成訪問。無邊界規(guī)定有可能造成系統(tǒng)訪存速度的下降。2/2/2023127⑵采用整數(shù)邊界0000H0008H0010H64位/存儲周期0020H??????0018H816163232642/2/2023128整數(shù)邊界地址安排8位(1個字節(jié))地址碼最低位為任意值XXXXXB16位(半字)地址碼最低1位為0XXXX0B32位(單字)地址碼最低2位為00XXX00B64位(雙字)地址碼最低3位為000XX000B2/2/2023129采用整數(shù)邊界存在的問題浪費(fèi)空間隨著半導(dǎo)體存儲器的擴(kuò)容,以空間換取速度勢在必行。2/2/2023130例:請用2K×8bit的SRAM設(shè)計(jì)一個8K×16bit的存儲器,要求:⑴存儲器可以分別被控制訪問8位和16位數(shù)據(jù)??刂莆粩?shù)的信號B由CPU提供:當(dāng)B=0時訪問16位數(shù)據(jù);當(dāng)B=1時訪問8位數(shù)據(jù)。⑵存儲芯片地址按交叉方式編址。⑶畫出存儲器與CPU的連接原理圖。條件:①SRAM芯片除地址、數(shù)據(jù)線外,控制信號有(低電平有效)、(高電平讀、低電平寫)。②CPU提供的控制信號有(低電平有效)
、(高電平讀、低電平寫)等。2/2/2023131地址線的安排因?yàn)樾枰L問8位數(shù)據(jù),所以將16位數(shù)據(jù)分為高8位和低8位,分別用奇存儲體和偶存儲體存放。即訪問16位數(shù)據(jù)時實(shí)際需要訪問兩個存儲體,而訪問8位數(shù)據(jù)時只需訪問一個存儲體,因此在地址線中需要有1位用于區(qū)分奇、偶存儲體。由于8K×16bit的存儲空間需要13根地址線,再加一根地址線用于選擇奇、偶存儲體,共14根地址線,這樣存儲空間實(shí)際變成了8K×2×8bit,相當(dāng)于214×8bit。2/2/2023132為了符合整數(shù)邊界的要求,規(guī)定一個16位的單元必須由一個A0=1和一個A0=0的存儲單元構(gòu)成,即系統(tǒng)采用低位交叉方式編址;而一個16位的數(shù)據(jù)必須存放在高位地址相同,低位分別為A0=1和A0=0的兩個單元中。規(guī)定14根地址線中,A0與B組合用于控制8位、16位數(shù)據(jù)的存取。由于每個SRAM芯片容量是2K,所以A11~A1用于片內(nèi)地址,A13、A12用于2-4譯碼。得到4組譯碼信號,與A0、B組成每個芯片的片選信號。2/2/2023133邏輯表達(dá)式BA0POddPEven001(選中)1(選中)讀寫16位0100不讀寫1001(選中)讀寫低8位111(選中)0讀寫高8位2/2/2023134Peven=A0Podd=A0B2-4譯碼器Y0Y1Y2Y3A13A122/2/2023135CS1=Y(jié)0+PoddCS0=Y(jié)0+PevenCS3=Y(jié)1+PoddCS2=Y(jié)1+PevenCS5=Y(jié)2+PoddCS4=Y(jié)2+PevenCS7=Y(jié)3+PoddCS6=Y(jié)3+Peven每個芯片的片選信號2/2/20231362/2/20231372/2/2023138請用2K×8bit的SRAM設(shè)計(jì)一個8K×32bit的存儲器,寫出各芯片的片選信號的邏輯表達(dá)式。(要有詳細(xì)過程)要求:⑴存儲器可以分別被控制訪問8、16、32位數(shù)據(jù)??刂莆粩?shù)的信號B1B0由CPU提供:當(dāng)B1B0=00時訪問32位數(shù)據(jù);當(dāng)B1B0=01時訪問16位數(shù)據(jù);當(dāng)B1B0=10時訪問8位數(shù)據(jù)。⑵存儲芯片地址按交叉方式編址,即一列為奇地址,一列為偶地址。⑶滿足整數(shù)邊界地址的安排。2/2/20231394.4高速緩沖存儲器(Cache)4.4.1Cache在存儲體系中的地位和作用
高速緩沖存儲器是位于主存與CPU之間的高速小容量存儲器,用來存放系統(tǒng)中當(dāng)前最活躍的程序和數(shù)據(jù)。Cache的容量比主存小得多。采用Cache的主要目的解決CPU和主存之間的速度匹配問題。提高整個存儲系統(tǒng)的平均訪問速度,進(jìn)而提高CPU的效率。2/2/2023140CPU在一個較短的時間間隔內(nèi),由程序產(chǎn)生的地址往往聚集在一個很小的區(qū)域內(nèi)。如果把這一局部區(qū)域的程序和數(shù)據(jù)從主存復(fù)制到Cache中,使CPU能夠高速地在Cache中讀取指令和數(shù)據(jù),就可大大提高CPU的訪存速度。程序局部性原理2/2/20231412/2/2023142Cache是按塊進(jìn)行管理的Cache和主存均被分割成大小相同的塊。信息以塊為單位調(diào)入Cache。Cache中數(shù)據(jù)塊的大小一般為幾個~幾百個字節(jié)。主存中的數(shù)據(jù)塊可稱為“塊(block)”,Cache中數(shù)據(jù)塊可稱為“行(line)”或“槽(slot)”。2/2/2023143...........主存主存塊號塊A-1塊1塊0........塊C-1塊0CacheCache塊號B個字2/2/2023144...........主存主存塊號塊A-1塊1塊0....塊C-1塊0CacheCache塊號塊12/2/2023145Cache既保存數(shù)據(jù)又保存指令。只保存指令的稱為i-Cahce。只保存數(shù)據(jù)的稱為d-Cache。既保存指令的又保存數(shù)據(jù)的稱為統(tǒng)一的高速緩存(unifiedcache).如IntelPentium有一個在芯片上的L1i-cache,一個在芯片上的L1d-cache。還有一個不在芯片上的L2統(tǒng)一cache。2/2/2023146Cache的命中根據(jù)程序局部性原理,可將包含CPU馬上要訪問的內(nèi)容從主存復(fù)制到Cache中,復(fù)制時以塊為單位。當(dāng)CPU欲訪問某主存字時的兩種情況:①所需內(nèi)容已在Cache中,稱為CPU訪問Cache命中,CPU可直接訪問Cache。②所需內(nèi)容不在Cache中,稱為CPU訪問Cache不命中(失?。?。CPU需訪問主存獲得所需內(nèi)容,并將包含所需內(nèi)容的主存塊調(diào)入Cache中,以備下次訪問。2/2/2023147Cache命中率Cache命中率:CPU要訪問的內(nèi)容在Cache中的比率。設(shè)在一個程序執(zhí)行期間,訪問Cache的總命中次數(shù)為Nc,訪問主存的次數(shù)為Nm,CPU訪問Cache的命中率為H,則有:2/2/2023148Cache-主存系統(tǒng)的訪問時間設(shè)Tc為Cache命中時的訪問時間,Tm為Cache不命中時的主存訪問時間,1-H為不命中率,Ta為Cache-主存系統(tǒng)的平均訪問時間,則有:Ta=H
Tc+(1-H)
Tm2/2/2023149帶Cache存儲系統(tǒng)的加速比SpCache-主存系統(tǒng)的訪問效率e2/2/2023150例:設(shè)CPU執(zhí)行某程序時共訪問Cache命中2000次,訪問主存50次,已知cache的存取周期為50ns,主存的存取周期為200ns。求該Cache-主存系統(tǒng)的命中率、平均訪問時間和訪問效率。解:Cache的命中率:H=2000/(2000+50)≈0.97平均訪問時間:ta=0.97×50+(1-0.97)×200≈54.5ns訪問效率:2/2/2023151利用目前的大規(guī)模集成電路技術(shù)和生產(chǎn)工藝,人們可以在CPU芯片內(nèi)部放置一定容量的高速緩沖存儲器(Cache)。一級(L1)Cache:CPU芯片內(nèi)部的高速緩沖存儲器。二級(L2)Cache:CPU外部由SRAM構(gòu)成的高速緩沖存儲器。目前最新的CPU內(nèi)部已經(jīng)可以放置二級乃至三級Cache。2/2/20231524.4.2Cache的基本結(jié)構(gòu)及工作原理2/2/2023153⑴Cache存儲陣列由高速存儲器構(gòu)成,用于存放主存信息的副本。容量小于主存,但編址方式、物理單元長度均與主存相同。分為內(nèi)容Cache和標(biāo)識Cache標(biāo)識(tag)又叫標(biāo)記。標(biāo)識Cache一般由相聯(lián)存儲器組成,用以記錄主存內(nèi)容存入Cache時兩者地址的對應(yīng)關(guān)系。注意,每個Cache塊(行)有一個標(biāo)識。1.Cache的基本結(jié)構(gòu)2/2/2023154⑵地址映像變換機(jī)構(gòu)用于實(shí)現(xiàn)主存地址與Cache地址轉(zhuǎn)換的部件。⑶替換策略實(shí)現(xiàn)機(jī)構(gòu)根據(jù)一定的算法,用硬件實(shí)現(xiàn)塊的替換。2/2/2023155在帶Cache的存儲器中,CPU的訪存地址被分割成兩部分:①塊地址(塊框架地址、塊號)用于查找該塊在Cache中的位置。②塊內(nèi)偏移量(塊內(nèi)位移)用于確定所訪問的數(shù)據(jù)在塊中的位置。01011010001000000100101110011100塊號塊內(nèi)偏移量2/2/2023156⑴當(dāng)CPU需要進(jìn)行訪存時,首先給出主存實(shí)地址。2.Cache的工作過程⑵地址映像變換機(jī)構(gòu)接收到主存實(shí)地址后,根據(jù)塊號判定所訪問的信息字是否在Cache中。若在(Cache命中),通過地址變換機(jī)構(gòu)將主存塊號變換為Cache塊地址,再根據(jù)塊內(nèi)偏移量,對Cache進(jìn)行存取。若不在(Cache不命中),則通知訪問Cache塊失效。然后通過CPU與主存之間的直接數(shù)據(jù)通路訪問主存,將被訪問字直接送給CPU,并將包含該字的新塊裝入Cache。若Cache巳滿,則通過替換策略實(shí)現(xiàn)機(jī)構(gòu),調(diào)出某一Cache塊,然后裝入所需的塊。2/2/2023157Cache的存在對程序員是透明的。在處理機(jī)每次訪問存儲器時,系統(tǒng)自動將地址轉(zhuǎn)換成Cache中的地址。提高Cache的訪問速度的方法⑴Cache的地址變換和數(shù)據(jù)塊的替換算法均用硬件實(shí)現(xiàn)。⑵在物理位置上讓Cache盡量靠近CPU,以減少CPU與Cache之間的傳輸延遲。如將Cache集成在CPU芯片內(nèi)。⑶為了加速調(diào)塊,一般將每個數(shù)據(jù)塊的容量規(guī)定為并行主存系統(tǒng)一個存儲周期所能訪問到的字?jǐn)?shù)。2/2/20231584.4.3Cache的地址映像方式因?yàn)镃PU以主存地址訪問Cache,所以訪存時必須把主存地址變換為Cache的實(shí)際地址。地址變換取決于地址的映像方式,就是主存信息按什么規(guī)則裝入Cache。2/2/2023159直接映像是指任何一個主存塊只能復(fù)制到Cache的某一固定塊中。設(shè)Cache中有2m個塊,主存中有2n個塊,將主存按Cache的大小分區(qū),共可分為2n-m個區(qū)。主存每個區(qū)中區(qū)內(nèi)塊號相同的塊映射到Cache的同一塊中。如果Cache塊號i和主存塊號j采用十進(jìn)制統(tǒng)一編號,則i與j的對應(yīng)關(guān)系為:i=j(luò)mod2m1.直接映像方式2/2/2023160主存Cache0區(qū)0塊0區(qū)1塊……0區(qū)2m-1塊1區(qū)0塊1區(qū)1塊……1區(qū)2m-1塊……2n-m-1區(qū)0塊2n-m-1區(qū)1塊……2n-m-1區(qū)2m-1塊0塊1塊…2m-1塊2/2/2023161采用直接映像方式時,主存地址分成三段:區(qū)號用于判斷Cache命中與否。區(qū)內(nèi)塊號直接用于在Cache中進(jìn)行塊尋址。塊內(nèi)偏移量用于塊內(nèi)字或字節(jié)的尋址。地址映像機(jī)構(gòu)在判斷塊命中與否時,只需判斷Cache中某一塊對應(yīng)于主存中哪一區(qū)即可。區(qū)號區(qū)內(nèi)塊號塊內(nèi)偏移量n-mnm2/2/2023162地址變換方式利用標(biāo)識Cache實(shí)現(xiàn)地址變換。標(biāo)識Cache共有2m個單元(即Cache的塊數(shù))。在直接映像方式中,標(biāo)識Cache每個單元存放的是對應(yīng)的內(nèi)容Cache中相應(yīng)塊的主存區(qū)號,長n-m位(主存區(qū)號的長度)。區(qū)號區(qū)內(nèi)塊號塊內(nèi)偏移量n-mnm主存地址Cache地址塊號塊內(nèi)偏移量m2/2/2023163直接映像下的標(biāo)識Cache
標(biāo)識tag(主存區(qū)號)有效位012m-1n-m1塊0塊1塊2m-1標(biāo)識Cache內(nèi)容Cache2/2/20231642/2/2023165訪存時,以主存塊號為地址定位到塊表的相應(yīng)位置,再將主存地址中的區(qū)號與標(biāo)識Cache中的相應(yīng)塊的標(biāo)識比較。如果相等,表示Cache命中,用主存塊號和塊內(nèi)偏移量(即Cache地址)直接訪問Cache即可。2/2/2023166例:主存大小為128B,Cache大小為64B。則主存地址為7位,Cache地址為6位,假設(shè)每塊4B,標(biāo)識Cache每項(xiàng)的寬度為1位,再加1位有效位則2位。區(qū)號塊號塊內(nèi)地址5位塊號塊內(nèi)地址4位主存地址1位4位2位Cache地址2位2/2/2023167在直接映像方式下,主存中存儲單元的數(shù)據(jù)只可調(diào)入Cache中的一個位置,如果主存中另一個存儲單元的數(shù)據(jù)也要調(diào)入該位置,則將發(fā)生沖突。直接映像方式的特點(diǎn):⑴硬件線路簡單;⑵地址變換速度快;⑶因?yàn)橹鞔鎵K在Cache中的位置固定,一個主存塊只能對應(yīng)一個Cache塊,所以沒有替換策略問題;⑷塊的沖突率高,若程序往返訪問兩個相互沖突的塊,將會使命中率急劇下降。⑸Cache利用率低。2/2/20231682.全相聯(lián)映像及變換任何主存塊可映像到任意一個Cache塊。主存Cache0塊1塊…k塊…2n-1塊0塊1塊…2m-1塊設(shè)主存有2n塊Cache有2m塊2/2/2023169地址變換方式全相聯(lián)映像的塊表(標(biāo)識Cache)共有2m個單元,每個單元記錄與內(nèi)容Cache相對應(yīng)的主存塊號,占n位。在全相聯(lián)映像中,主存塊號又稱為標(biāo)識,塊內(nèi)偏移量稱為又稱為索引。2/2/2023170全相聯(lián)映像下的標(biāo)識Cache
標(biāo)識tag(主存塊號)有效位內(nèi)容Cache012m-1n1塊0塊1塊2m-1標(biāo)識Cache2/2/20231712/2/2023172在訪存操作時,根據(jù)主存地址中的塊號在塊表中查找是否有相同的主存塊號。如果有相同的主存塊號,則表示Cache命中。如果沒有相同的主存塊號,則表示不命中,則對主存進(jìn)行訪問并將主存中的塊調(diào)入Cache中,同時將主存塊號寫入塊表中,以改變地址映像關(guān)系。在調(diào)入新的數(shù)據(jù)塊時,可能需根據(jù)替換策略確定將Cache中的哪一個數(shù)據(jù)塊替換出去。2/2/2023173例:主存大小為128B,Cache大小為64B。則主存地址為7位,Cache地址為6位,假設(shè)每塊4B,標(biāo)識Cache每項(xiàng)的寬度為5位,再加1位有效位則為6位。主存塊號塊內(nèi)地址塊號塊內(nèi)地址4位主存地址5位2位Cache地址2位2/2/2023174⑴塊沖突概率小,Cache命中率高全相聯(lián)方法只有在Cache中的塊全部裝滿后才會出現(xiàn)塊沖突,所以塊沖突概率小。⑵Cache利用率高。⑶由于需要相聯(lián)存儲器實(shí)現(xiàn)相聯(lián)訪問和實(shí)現(xiàn)替換策略的硬件,故硬件復(fù)雜,成本高。⑷相聯(lián)訪問影響訪問速度。全相聯(lián)映像方式的特點(diǎn)2/2/2023175組相聯(lián)映像是前兩種方式的一種折衷。該方式將主存按照Cache的塊尺寸分割成若干塊,同時將Cache分組,每組中塊數(shù)固定。主存中的任何一塊只能存放到Cache中的某一固定組中,但存放在該組的哪個位置是靈活的。主存某個塊映像到Cache對應(yīng)組的公式:Cache組號=主存塊號MODCache組數(shù)3.組相聯(lián)映像方式2/2/2023176將主存第i塊映象到Cache的第k組,即:k=imodG(G為Cache的組數(shù))設(shè)組數(shù)G=2g,用二進(jìn)制表示主存地址,則主存某塊所對應(yīng)的Cache組號就是主存塊地址的低g位:g位組號主存塊號i標(biāo)識n-g位n位2/2/2023177主存Cache0組0塊0組…0組3塊1組0塊1組…1組3塊2組0塊2組…2組3塊3組0塊3組…3組3塊塊號對應(yīng)組00組11組22組33組40組51組62組73組80組91組102組113組2/2/2023178在組相聯(lián)映像方式下,同一組中的主存塊可調(diào)入該組中的任何位置。如果組的大小為1時就變成了直接映像;如果組的大小為整個Cache的尺寸時就變成了全相聯(lián)映像。如果一個組里有k塊,則這種組相聯(lián)映像方式稱為k路組相聯(lián)。2/2/2023179在組相聯(lián)映像中,Cache分為2g個組,主存地址和Cache地址的形式為:標(biāo)識組號塊內(nèi)偏移量ng主存地址Cache地址m組號組內(nèi)塊號塊內(nèi)偏移量m-ggn-gngmm-ggn-g組相聯(lián)的地址變換方式2/2/2023180標(biāo)識(tag)(n-g位)有效位(1位)內(nèi)容Cache01…2m-g-1………2m-10組2g-1組組相聯(lián)映像下的標(biāo)識Cache2/2/2023181為了提高查塊表和比較的速度,可以將一組的所有標(biāo)識項(xiàng)同時讀出,分別與主存地址中的標(biāo)識進(jìn)行相聯(lián)比較。2/2/2023182在訪存操作時,根據(jù)訪存地址中的組號,在塊表中查找該組對應(yīng)的若干項(xiàng)中是否有相應(yīng)的標(biāo)識(標(biāo)記),此為關(guān)聯(lián)查找。如果有且有效位為“1”,表示Cache命中,將在對應(yīng)的Cache塊中根據(jù)塊內(nèi)偏移地址對Cache中的相應(yīng)單元進(jìn)行訪問;
如果沒有或有效位為“0”,表示不命中,對主存進(jìn)行訪問并將主存中的塊按所屬的組調(diào)入Cache組中合適的塊中,同時將標(biāo)識(主存的組內(nèi)塊號)寫入塊表,以改變地址映像關(guān)系。在新的數(shù)據(jù)塊調(diào)入時,可能還需確定將組內(nèi)的哪一個數(shù)據(jù)塊替換出去。2/2/2023183例:某主存容量為64B,Cache容量為16B,Cache塊的大小為4B,采用組相聯(lián)映像方式,每組的大小為2塊。主存為16塊,Cache為4塊,分為2組。主存與Cache地址:標(biāo)識組號塊內(nèi)偏移量41主存地址Cache地址2組號組內(nèi)塊號塊內(nèi)偏移量113222/2/2023184主
存Cache00000組00011組00100組00111組01000組01011組01100組01111組10000組10011組10100組10111組11000組11011組11100組11111組000組0塊010組1塊101組0塊111組1塊主存中塊數(shù):16主存每組塊數(shù):16/2=8
Cache中塊數(shù):4Cache中組數(shù):2每組塊數(shù):22/2/2023185上述例題中的標(biāo)識Cache
標(biāo)識(3位)有效位(1位)00011011組0組12/2/2023186某計(jì)算機(jī)機(jī)主存容量為16MB,采用8位數(shù)據(jù)總線;數(shù)據(jù)Cache容量為32KB,主存與數(shù)據(jù)Cache均按64B的大小分塊。
請回答下列問題:(1)設(shè)標(biāo)識Cache中每個單元只包含標(biāo)識位和1位有效位。若Cache采用直接映像方式,則該計(jì)算機(jī)中標(biāo)識Cache的容量是多少?(2)若Cache采用直接映像方式,則主存地址為123456H的存儲單元有可能裝入到Cache中哪個地址對應(yīng)的單元中?(3)若Cache采用組相聯(lián)映像方式,每組塊數(shù)為4塊。寫出主存與Cache地址的結(jié)構(gòu)格式并標(biāo)出各個字段的位數(shù)。(4)若Cache采用組相聯(lián)映像方式,每組塊數(shù)為4塊,則主存地址為123456H的存儲單元有可能裝入到Cache中哪幾個地址對應(yīng)的單元中?2/2/20231875.Cache的替換算法當(dāng)訪存Cache不命中時,必須從主存中調(diào)入所需塊,此時,若Cache已滿或已裝不進(jìn)新塊,則必須按一定算法,選擇一個Cache塊將其替換出去,然后才能調(diào)入新塊。如何選擇被替換塊,這就是替換算法的問題。常用替換算法有兩種:FIFO法和LRU法。2/2/2023188FIFO法(先進(jìn)先出法)按調(diào)入Cache的先后決定替換順序,即需要替換時,總是淘汰最先調(diào)入Cache的塊。FIFO法控制簡單,容易實(shí)現(xiàn)。但最先調(diào)入的信息不一定是最近不使用的信息,所以這種算法可能影響Cache命中率。LRU法(近期最少使用法)把近期最少使用的Cache塊替換出去。這種算法需隨時記錄Cache中各塊使用情況,以確定哪個塊為近期最少使用的塊。LRU法是按使用頻繁程度決定淘汰順序的,比較合理,使Cache命中率高于FIFO法,是目前使用最多的一種替換算法。2/2/20231894.5存儲系統(tǒng)組織為了更好地解決存儲器速度、容量、價格之間的矛盾,在構(gòu)成存儲器系統(tǒng)時,還會采用雙端口存儲器、并行主存系統(tǒng)、高速緩沖存儲器和虛擬存儲技術(shù)等技術(shù)。2/2/20231904.5.1雙端口存儲器單端口存儲器:單端口存儲器每次只接收一個地址,訪問一個編址單元,從中讀取或存入一個字節(jié)或一個字。雙端口存儲器:
雙端口存儲器具有兩個彼此獨(dú)立的讀/寫口,每個讀/寫口都有一套獨(dú)立的地址寄存器和譯碼電路,可以并行地獨(dú)立工作。兩個讀/寫口可以按各自接收的地址,同時讀出或?qū)懭耄蛞粋€寫入而另一個讀出。與兩個獨(dú)立的存儲器不同,兩套讀/寫口的訪存空間相同,可以訪問同一區(qū)間、同一單元。2/2/2023191雙端口存儲器2/2/2023192雙端口存儲器的常用場合:⑴在運(yùn)算器中采用雙端口存儲芯片作為通用寄存器組,能快速提供雙操作數(shù),或快速實(shí)現(xiàn)寄存器間傳送。⑵讓雙端口存儲器的一個讀/寫口面向CPU,通過專門的存儲總線(或稱局部總線)連接CPU與主存,使CPU能快速訪問主存;另一個讀/寫口則面向外圍設(shè)備或輸入輸出處理機(jī)IOP,通過共享的系統(tǒng)總線連接,這種連接方式具有較大的信息吞吐量。⑶在多機(jī)系統(tǒng)中采用雙端口存儲器甚至多端口存儲器,作為各CPU的共享存儲器。實(shí)現(xiàn)多CPU之間的通信。2/2/20231934.5.2并行主存系統(tǒng)為提高系統(tǒng)速度,在高速的大型計(jì)算機(jī)中普遍采用并行主存系統(tǒng)。并行主存系統(tǒng):在一個存儲周期內(nèi)可并行存取多字的存儲系統(tǒng)。利用并行主存系統(tǒng)可以提高整個存儲器系統(tǒng)的吞吐率(數(shù)據(jù)傳送率),解決CPU與主存間的速度匹配問題。2/2/20231941.單體多字并行主存系統(tǒng)單體多字并行主存系統(tǒng)多個并行存儲器共用一套地址寄存器,按同一地址碼并行地訪問各自的對應(yīng)單元。2/2/2023195單體多字并行主存系統(tǒng)2/2/202
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)挖掘課程設(shè)計(jì)安排
- N-Nitroso-desloratadine-生命科學(xué)試劑-MCE
- Nickel-octaethylporphyrin-生命科學(xué)試劑-MCE
- LSD1-HDAC-IN-1-生命科學(xué)試劑-MCE
- 環(huán)保理念及綠色發(fā)展策略推廣
- 安卓猜數(shù)字游戲課程設(shè)計(jì)
- 2024書法藝術(shù)培訓(xùn)課程合作開發(fā)協(xié)議3篇
- 2024年度企業(yè)員工休假及員工請假制度執(zhí)行合同3篇
- 2024年標(biāo)準(zhǔn)型生產(chǎn)設(shè)備買賣協(xié)議模板一
- 媒體行業(yè)數(shù)字化轉(zhuǎn)型實(shí)施方案
- 精準(zhǔn)醫(yī)學(xué)演講課件
- JC-T935-2004玻璃纖維工業(yè)用玻璃球
- 合同簽訂的風(fēng)險(xiǎn)防范課件
- 【星巴克國際避稅的案例分析12000字(論文)】
- 骨腫瘤的分類和治療原則
- 保安隊(duì)長年終工作匯報(bào)
- 腫瘤的類型和治療手段
- 美麗文字 民族瑰寶
- 化肥減量培訓(xùn)課件
- 牙合畸形的早期矯治通用課件
- 四川省資陽市安岳縣2023-2024年九年級上期期末化學(xué)試題
評論
0/150
提交評論