版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1節(jié)存儲器概述第2節(jié)RAM第3節(jié)ROM和FLASHROM---附應(yīng)用系統(tǒng)中的存儲器設(shè)計(結(jié)合書中例子)第4節(jié)高速存儲器第5節(jié)CACHE存儲器*第6節(jié)虛擬存儲器當(dāng)前1頁,總共184頁。第1節(jié)存儲器概述一、存儲器的分類二、存儲的分級結(jié)構(gòu)三、主存儲器的技術(shù)指標(biāo)當(dāng)前2頁,總共184頁。存儲位元(存儲1位信息存儲單位)、存儲單元、存儲器一、存儲器的分類(1)按存儲介質(zhì)分
半導(dǎo)體存儲器:半導(dǎo)體器件組成的存儲器
磁表面存儲器:磁性材料做成的存儲器(2)按存儲方式分
隨機(jī)存儲器:任何存儲單元的內(nèi)容都能被隨機(jī)存取,且存取時間和存儲單元的物理位置無關(guān)。
順序存儲器:只能按某種順序來存取,存取時間和存儲單元的物理位置有關(guān)存儲器是計算機(jī)系統(tǒng)中的記憶設(shè)備,用來存放程序和數(shù)據(jù).當(dāng)前3頁,總共184頁。(3)按存儲器的讀寫功能分(存儲內(nèi)容可變性)
只讀存儲器(ROM):存儲的內(nèi)容是固定不變的,只能讀出而不能寫入的半導(dǎo)體存儲器。
隨機(jī)讀寫存儲器(RAM):既能讀出又能寫入的半導(dǎo)體存儲器。
(4)按信息的可保存性分(信息易失性)
非永久記憶的存儲器:斷電后信息即消失的存儲器。
永久記憶性存儲器:斷電后仍能保存信息的存儲器。(5)按在計算機(jī)系統(tǒng)中的作用分根據(jù)存儲器在計算機(jī)系統(tǒng)中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。當(dāng)前4頁,總共184頁。二、存儲的分級結(jié)構(gòu)存儲系統(tǒng)的分級結(jié)構(gòu)目標(biāo):容量大、速度快、成本低當(dāng)前5頁,總共184頁。DRAM,硬盤與CPU之間的速度差距愈來愈大:問題:由于CPU工作速度很快,內(nèi)存儲器速度比較慢(差1~2個數(shù)量級),從內(nèi)存取數(shù)或向內(nèi)存存數(shù)時,CPU往往需要等待當(dāng)前6頁,總共184頁。寄存器cache內(nèi)存硬盤1ns1~2ns10ns10ms解決方案::采用多種不同的存儲器技術(shù),構(gòu)成多級存儲器的層次結(jié)構(gòu)容量小但速度快容量大而速度慢工作過程:
CPU運(yùn)行時,需要的操作數(shù)大部分來自寄存器如需要從(向)存儲器中取(存)操作數(shù)和指令時,先訪問cache,如在,則取自cache如操作數(shù)/指令不在cache,則訪問RAM,如在RAM中,則取自RAM如不在RAM,則訪問硬盤,操作數(shù)從硬盤中讀出→RAM→cache當(dāng)前7頁,總共184頁。分層存儲器系統(tǒng)之間的連接關(guān)系寄存器當(dāng)前8頁,總共184頁。三、主存的技術(shù)指標(biāo):存儲容量、存取時間、存儲周期、存儲器帶寬存儲容量:存儲單元總數(shù)存取時間:從啟動一次存儲器操作到完成該操作所經(jīng)歷的時間。存取周期:連續(xù)啟動兩次操作所需的最小間隔時間存儲器帶寬:單位時間里存儲器所存取的信息量,是衡量數(shù)據(jù)傳輸速率的重要指標(biāo)。(Bit/s,Byte/s)當(dāng)前9頁,總共184頁。第2節(jié)RAM一、SRAM(靜態(tài)RAM)
二、DRAM(動態(tài)RAM)當(dāng)前10頁,總共184頁。利用雙穩(wěn)態(tài)觸發(fā)器來保存信息,只要不斷電信息就不會丟失集成度低,成本高,功耗較大通常作為Cache的存儲體一、SRAM(靜態(tài)RAM)當(dāng)前11頁,總共184頁。
內(nèi)部:存儲體內(nèi)部譯碼器譯碼輸出驅(qū)動器片選與讀寫控制單元輸出驅(qū)動1SRAM的組成(基本的靜態(tài)存儲元陣列)--------與外部(與系統(tǒng))相連的信號線:三組信號線地址線如圖3.2A5-A0數(shù)據(jù)線I/O0-I/O3控制線1位鎖存器當(dāng)前12頁,總共184頁。譯碼器A0A1A2A3A4A5010100110111選擇線0選擇線1選擇線63數(shù)據(jù)輸入/輸出,緩沖與控制控制線R/-W地址線I/O0I/O3I/O1I/O2數(shù)據(jù)線00000001010101當(dāng)前13頁,總共184頁。存儲體16*116個單元,1個單元1位信息位譯碼器數(shù)據(jù)1位信息位A0A1A2A3另外的一個例子01215當(dāng)前14頁,總共184頁。011存儲體441譯碼器(行)譯碼器(列)數(shù)據(jù)“0”1位信息位16個單元,1個單元1位信息位A0A1A2A30000012301230當(dāng)前15頁,總共184頁。存儲體或存儲體64644096*14096個單元,1個單元1位信息位(內(nèi)部構(gòu)成)當(dāng)前16頁,總共184頁。2、基本的SRAM邏輯結(jié)構(gòu)(1)存儲體(2)尋址系統(tǒng)---地址譯碼器(3)讀寫系統(tǒng)--寫入信息和讀出信息所需線路(4)控制線路-讀寫邏輯控制線路寫入信息所需線路包括寫入線路、寫驅(qū)動器等讀出信息所需線路包括讀出線路、讀驅(qū)動器和讀出放大器等當(dāng)前17頁,總共184頁。存儲體:存儲位元的集合,通常用X選擇線(行線)和Y選擇線(列線)的交叉來選擇所需要的單元。地址譯碼器:將用二進(jìn)制代碼表示的地址轉(zhuǎn)換成輸出端的高電位,用來驅(qū)動相應(yīng)的讀寫電路,以便選擇所要訪問的存儲單元。地址譯碼有兩種方式。單譯碼適用于小容量存儲器一個地址譯碼器雙譯碼適用于大容量存儲器
X向和Y向兩個譯碼器。
讀寫系統(tǒng)控制線路當(dāng)前18頁,總共184頁。地址地址數(shù)據(jù)當(dāng)前19頁,總共184頁。當(dāng)前20頁,總共184頁。存儲體(256×128×8)通常把各個字的同一個字的同一位集成在一個芯片(32K×1)中,32K位排成256×128的矩陣。8個片子就可以構(gòu)成32KB。地址譯碼器采用雙譯碼的方式(減少選擇線的數(shù)目)。A0~A7為行地址譯碼線A8~A14為列地址譯碼線讀寫系統(tǒng)控制線路當(dāng)前21頁,總共184頁。其他例子當(dāng)前22頁,總共184頁。當(dāng)前23頁,總共184頁。4SRAM存儲器與CPU的連接DRARSRAM256*8當(dāng)前24頁,總共184頁。3SRAM存儲器與CPU的連接(CAI)CPU對存儲器進(jìn)行讀/寫操作:1)首先由地址總線給出地址信號,
2)然后要發(fā)出讀操作或?qū)懖僮鞯目刂菩盘枺?/p>
3)最后在數(shù)據(jù)總線上進(jìn)行信息交流,存儲器與CPU相連要完成地址線的連接、數(shù)據(jù)線的連接和控制線的連接。位擴(kuò)展:只加大字長,而存儲器的字?jǐn)?shù)與存儲器芯片字?jǐn)?shù)一致,對片子沒有選片要求字?jǐn)U展:僅在字向擴(kuò)充,而位數(shù)不變.需由片選信號來區(qū)分各片地址字位同時擴(kuò)展:M*N,若使用l*k位的芯片(l<M,k<N),則共需(M/l)*(N/k)個當(dāng)前25頁,總共184頁。當(dāng)前26頁,總共184頁。每一片RAM的字?jǐn)?shù)是16K(214),故其地址線為14條(A0~A13)4片芯片的數(shù)據(jù)線與數(shù)據(jù)總線的D0~D7相連,對應(yīng)8位數(shù)據(jù),地址總線低位地址A0~A13與各片芯片的14位地址端相連,兩位高位地址A14、A15經(jīng)2:4譯碼器與4片芯片的片選端相連地址空間分配地址片號片外A15A14片內(nèi)A13A12A11…A1A0說明000000…00最低地址00111…11最高地址101000…00最低地址01111…11最高地址210000…00最低地址10111…11最高地址311000…00最低地址11111…11最高地址當(dāng)前27頁,總共184頁。用16K*8擴(kuò)展64K*8(字?jǐn)U展)當(dāng)前28頁,總共184頁。4讀寫周期波形圖(存儲器的時序)讀周期:讀出時間Taq讀周期時間TRC寫周期寫周期時間Twc寫時間twd當(dāng)前29頁,總共184頁。
讀周期是指連續(xù)兩次讀存儲器必須間隔的時間;讀出時間為在地址出現(xiàn)后經(jīng)譯碼選中單元,并將單元內(nèi)容送到總線上所須時間;讀周期大于讀出時間WE為高當(dāng)前30頁,總共184頁。寫操作中要求-CS和-WE都為低當(dāng)前31頁,總共184頁。二、DRAM(動態(tài)RAM)利用MOS電容存儲電荷來保存信息,使用時需要不斷給電容充電才能保持信息電路簡單,集成度高,成本低,功耗小,但需要反復(fù)進(jìn)行刷新(Refresh)操作,工作速度較慢適合作為主存儲器的主體部分當(dāng)前32頁,總共184頁。刷新操作為防止存儲的信息電荷泄漏而丟失信息,由外界按一定規(guī)律不斷地給柵極進(jìn)行充電,補(bǔ)足柵極的信息電荷主要采用“讀出”的方式進(jìn)行刷新,依次讀出存儲器的每一行,就可完成對整個DRAM的刷新由于要不間斷地進(jìn)行刷新,故稱這種存儲器為動態(tài)存儲器當(dāng)前33頁,總共184頁。DRAM控制器DRAM刷新的控制線路可以集成在一個半導(dǎo)體芯片上,形成DRAM控制器借助于DRAM控制器,可以把DRAM當(dāng)作SRAM一樣使用,從而為系統(tǒng)設(shè)計帶來很大的方便當(dāng)前34頁,總共184頁。單管動態(tài)存儲單元(存1位信息)-DRAM存儲位元工作原理由一個MOS管和電容組成當(dāng)前35頁,總共184頁。刷新行線DoutR/-WDin高低高低高位線列線1+-(a)寫“1”刷新行線DoutR/-WDin高低低位線列線0低低(b)寫“0”1DRAM存儲位元的記憶原理(了解不考試)當(dāng)前36頁,總共184頁。刷新行線DoutR/-WDin高低高高位線列線1(c)讀高刷新行線DoutR/-WDin高高高位線列線1(d)刷新存儲位元的1高高當(dāng)前37頁,總共184頁。2DRAM芯片邏輯結(jié)構(gòu)(了解,不考試)1M*4位DRAM芯片的管腳圖當(dāng)前38頁,總共184頁。刷新控制與定時刷新計數(shù)器行譯碼行地址鎖存器列地址鎖存器存儲陣列1024*1024*4輸入/輸出緩沖與讀出放大列譯碼2選1MUX地址線系統(tǒng)A19-A0A9-A0A19-A1011024102410101010-RAS-CAS-E-R/-W當(dāng)前39頁,總共184頁。1M*4,需20條地址線,存儲體為1024*1024單元,將20條分為兩部分:10位行地址、10位列地址,通過芯片A0-A9分次送入,與行地址相關(guān)的控制信號是-RAS;與列地址相關(guān)的是-CAS
時序上是先送行地址,再送列地址。當(dāng)某一行被選中,則這一行的1024個存儲單元都被選通到輸出放大器,列譯碼器產(chǎn)生的譯碼信號最終從里面選出1個單元當(dāng)前40頁,總共184頁。3DRAM讀寫周期行地址列地址有效數(shù)據(jù)地址RASCASR/-W數(shù)據(jù)讀周期讀周期當(dāng)前41頁,總共184頁。行地址列地址有效數(shù)據(jù)地址RASCASR/-W數(shù)據(jù)寫周期寫周期當(dāng)前42頁,總共184頁。讀周期:行地址應(yīng)先于-RAS有效
寫周期刷新周期:從上一次對整個存儲器刷新結(jié)束到下一次對整個存儲器全部刷新一遍為止的一段時間間隔。RAS為低,CAS為高,一行一行地刷新-RAS、-CAS與地址的關(guān)系同讀周期-RAS-CAS地址當(dāng)前43頁,總共184頁。集中刷新:集中前一段讀寫,拿出一段固定時間刷新(死時間內(nèi)對所有行刷新)刷新周期2ms,128行,刷新一行時間=讀寫時間當(dāng)前44頁,總共184頁。分散刷新:分散式刷新:每一行的刷新插入到正常的讀/寫周期之中。例如,將2ms(2000μs)分散的把128行刷新一邊,2000/128=15.5μs當(dāng)前45頁,總共184頁。例2說明1M×1位DRAM片子的刷新方法,刷新周期定為8ms
解如果選擇一個行地址進(jìn)行刷新,刷新地址為A0—A8(不同的芯片行、列地址分配不同,共29行),因此這一行上的2048個存儲元(211,11位列地址)同時進(jìn)行刷新,即在8ms內(nèi)進(jìn)行512個周期的刷新。按照這個周期數(shù),512×2048=1048567個存儲元,即對1M位的存儲元全部進(jìn)行刷新。刷新方式可采用:在8ms中進(jìn)行512次刷新操作的集中刷新方式,或按8ms÷512=15.5μs刷新一次的異步刷新方式。當(dāng)前46頁,總共184頁。當(dāng)前47頁,總共184頁。地址多路開關(guān):分出行地址和列地址刷新定時器:定時刷新地址計數(shù)器:行地址計數(shù)仲裁電路:讀寫與刷新同時產(chǎn)生定時發(fā)生器:產(chǎn)生-RAS、-CAS當(dāng)前48頁,總共184頁。4DRAM存儲容量的擴(kuò)充1字長位數(shù)(位擴(kuò)展)擴(kuò)展與SRAM一樣,若給定的DRAM芯片的字長位數(shù)較短,不滿足設(shè)計要求的字長,需要用多芯片擴(kuò)展字長位數(shù).地址線\控制線公用,數(shù)據(jù)線分開.[例2]1M*4的SRAM芯片,構(gòu)成1M*8的存儲器,所需芯片數(shù)目??當(dāng)前49頁,總共184頁。[例3]1M*8的DRAM芯片,構(gòu)成2M*8的存儲器,所需芯片數(shù)目??2字存儲容量擴(kuò)展與SRAM一樣,若給定的DRAM芯片存儲容量小,不能滿足總存儲容量,此時需要采用多片芯片擴(kuò)展。地址線\數(shù)據(jù)線公用控制線R/-W公用,EN(-CS)不公用,一般與由地址高位譯碼產(chǎn)生的片選信號連接。當(dāng)前50頁,總共184頁。A0A19&END7D0I/O7I/O00-1M-E1-E0A0A19&END7D0I/O7I/O01M-2M-E1-E021地址線A0-A20A2021地址線A0-A20A20圖3.10p73當(dāng)前51頁,總共184頁。5存儲器模塊條(內(nèi)存條)存儲器通常以插槽模塊條形式供應(yīng)市場。這種條塊常稱為內(nèi)存條,它們是在一個條狀形的小的PCB板,用一定數(shù)量的存儲器芯片(如8個DRAM芯片),組成一個存儲容量固定的存儲模塊。當(dāng)前52頁,總共184頁。內(nèi)存條線數(shù)
:30,72,100,144,168,172,184,232240,30,72線稱作SIMM單列內(nèi)存條內(nèi)存條,已淘汰DIMM雙列存儲器模塊內(nèi)存條:DIMM內(nèi)存條是專門為PENTIUNM級CPU推出的內(nèi)存條。目前的DDRDIMM與SDRAMDIMM的物理元數(shù)相同,但兩者的線數(shù)不同,DDR內(nèi)存采用2.5V電壓,具有184線管腳和一個小缺口,而SDRAM則用168線,采用3.3V電壓并有2個缺口。因此,DDR內(nèi)存不兼容SDRAM,使用要求有專門為DDR設(shè)計的主板。
補(bǔ)充閱讀:
RIMM內(nèi)存條(RambusIn-lineMemoryModules,Rambus內(nèi)嵌式內(nèi)存模塊),RAMBUS公司推出的采用DIRECTRAMBSDRAM(DRDRAM)的內(nèi)存模塊,稱之為RIMM模塊。該模塊有184Pin腳,工作電壓1.8或2.5伏電壓,數(shù)據(jù)的輸出方式為串列,與現(xiàn)行使用的DIMM模式168Pin并列輸出的架構(gòu)有很大的差異。RDRAM的插槽叫做RIMM槽。注意:新的RIMM-4200RDRAM內(nèi)存,需要新的232線接口支持。當(dāng)前53頁,總共184頁。6高級的DRAM結(jié)構(gòu)簡介(僅了解概念)1)FPM-DRAM快速頁模式動態(tài)存儲器程序局部性原則這里頁是指:唯一的行地址和此行中所有列地址確定的若干存儲單元的組合。快速頁模式:允許在選定的行中對每個列地址進(jìn)行快速的讀或?qū)?;RAS保持為低(該行一直處于選中),使CAS在高低電平之間轉(zhuǎn)換。行地址列地址列地址列地址列地址有效數(shù)據(jù)有效數(shù)據(jù)有效數(shù)據(jù)有效數(shù)據(jù)-RAS-CASR/-W地址數(shù)據(jù)FPM讀操作當(dāng)前54頁,總共184頁。2)CDRAM(帶有內(nèi)部高速緩沖存儲器的DRAM)
在DRAM芯片上集成一個高速小容量的SRAM芯片這個小容量的SRAM芯片起到高速緩存的作用,從而使DRAM芯片的性能得到顯著。當(dāng)前55頁,總共184頁。當(dāng)CPU從主存DRAM中讀取數(shù)據(jù)時,將包含此數(shù)據(jù)的整個數(shù)據(jù)塊都寫入高速緩存SRAM內(nèi),下次讀取連續(xù)地址數(shù)據(jù)時,CPU就可以從這個SRAM中直接取用,而不必到較慢的DRAM中讀取,如此即可加快CPU的存取速度將由若干CDRAM芯片組成的存儲模塊做成小電路插件板形式,就是實際使用過的內(nèi)存條當(dāng)前56頁,總共184頁。當(dāng)前57頁,總共184頁。1M*4(20條地址線,每存儲單元4位),11位行線(高位地址線),9位列線,(211*29)*4(2048*512*4)突出的特點:在DRAM中集成了一個SRAM(可高速存取)容量512*4(存1行內(nèi)容)
a若前后對EDRAM前后兩次讀的單元地址中高11位相同(同一行),則在SRAM快速讀出
b在SRAM讀出期間可對DRAM陣列刷新
當(dāng)前58頁,總共184頁。
以SRAM保存一行內(nèi)容的辦法,對成塊傳送非常有利。如果連續(xù)的地址高11位相同,意味著屬于同一行地址,那么連續(xù)變動的9位列地址就會使SRAM中相應(yīng)單元連續(xù)讀出,這稱為猝發(fā)式讀取。
CDRAM的這種結(jié)構(gòu)還帶來另外兩個優(yōu)點:
1)在SRAM讀出期間可同時對DRAM陣列進(jìn)行刷新。
2)芯片內(nèi)的數(shù)據(jù)輸出路徑與輸入路徑是分開的,允許在寫操作完成的同時來啟動同一行的讀操作。當(dāng)前59頁,總共184頁。CDRAM內(nèi)存條1M*4,用8片可構(gòu)成1M*32的模塊。1M*8BE1BE0BE2BE3當(dāng)前60頁,總共184頁。存在內(nèi)存條內(nèi)為位擴(kuò)展,內(nèi)存條間為字?jǐn)U展當(dāng)前61頁,總共184頁。3)SDRAM同步動態(tài)隨機(jī)存取存儲器:
SDRAM為168腳,是PENTIUM及以上機(jī)型曾經(jīng)普遍使用的內(nèi)存。SDRAM將CPU與DRAM通過一個相同的時鐘鎖在一起,使CPU和DRAM能夠共享一個時鐘周期,以相同的速度同步工作,每一個時鐘脈沖的上升沿便開始傳遞數(shù)據(jù).當(dāng)前62頁,總共184頁。SDRAM內(nèi)部結(jié)構(gòu)(不要求)當(dāng)前63頁,總共184頁。SDRAM例子(不要求):
如圖3.14所示64Mb的SDRAM的內(nèi)部邏輯圖。外部除了地址、數(shù)據(jù)、控制三組信號線外,CLK為系統(tǒng)時鐘輸入信號、CKE為時鐘允許信號,DQM為數(shù)據(jù)有效信號;BA1BA0為BANK選擇信號。內(nèi)部有4個獨立的存儲體,每個體(BANK)為2M*8.通過模式寄存器設(shè)置突發(fā)傳送長度(1,2,4,8,全頁字)
芯片存在初始化(補(bǔ)充閱讀)
SDRAM芯片內(nèi)部還有一個邏輯控制單元,并且有一個模式寄存器為其提供控制參數(shù)。因此,每次開機(jī)時SDRAM都要先對這個控制邏輯核心進(jìn)行初始化。有關(guān)預(yù)充電和刷新的含義在補(bǔ)充文獻(xiàn)中有講述,關(guān)鍵的階段就在于模式寄存器(MR,ModeRegister)的設(shè)置,簡稱MRS(MRSet),這一工作由北橋芯片在BIOS的控制下進(jìn)行,寄存器的信息由地址線來提供。(詳細(xì)資料在課程的ftp上,2/黃嵐)當(dāng)前64頁,總共184頁。DDRSDRAM(DoubleDataRateSDRAM):雙倍數(shù)據(jù)速率存儲器
DDRSDRAM我們平時將其簡稱為DDR內(nèi)存.DDRSDRAM是從主流的PC-100,PC-133標(biāo)準(zhǔn)規(guī)格的SDRAM技術(shù)發(fā)展而來的SDRAM更新產(chǎn)品。SDRAM每周期只在時鐘的上升沿傳遞數(shù)據(jù),并且讀,寫數(shù)據(jù)是通過同一條數(shù)據(jù)總線進(jìn)行,讀寫不能同時進(jìn)行,轉(zhuǎn)換讀寫狀態(tài)時需要一個周期的等待,DDR在SDRAM基礎(chǔ)上經(jīng)過改進(jìn),每個周期在時鐘的上升沿和下降沿都能進(jìn)行數(shù)據(jù)傳輸,這樣等于數(shù)據(jù)傳輸效率翻了一番,其速度是標(biāo)準(zhǔn)同頻率SDRAM的兩倍.DDR內(nèi)存與SDRAM并不兼容,它采用184個引腳.
DDR2(DoubleDataRate2)SDRAM內(nèi)存:DDR2SDRAM其實是一種高工作的頻率,低價格的DDRSDRAM內(nèi)存,采用同DDRSDRAM一樣的封裝形式,因此具有向下兼容性。由JEDEC(電子設(shè)備工程聯(lián)合委員會)進(jìn)行開發(fā)的新生代內(nèi)存技術(shù)標(biāo)準(zhǔn),它與上一代DDR內(nèi)存技術(shù)標(biāo)準(zhǔn)最大的不同就是,雖然同是采用了在時鐘的上升/下降延同時進(jìn)行數(shù)據(jù)傳輸?shù)幕痉绞?,但DDR2內(nèi)存卻擁有兩倍于上一代DDR內(nèi)存預(yù)讀取能力(即:4bit數(shù)據(jù)讀預(yù)取)。換句話說,DDR2內(nèi)存每個時鐘能夠以4倍外部總線的速度讀/寫數(shù)據(jù),并且能夠以內(nèi)部控制總線4倍的速度運(yùn)行。規(guī)格有400/533/667MB/s的數(shù)據(jù)傳輸率,它們的工作頻率分別是200/266/333MHz,工作電壓1.8V,功耗要比DDR低很多,非常適合圖形卡和筆記本使用。補(bǔ)充閱讀材料當(dāng)前65頁,總共184頁。補(bǔ)充閱讀材料當(dāng)前66頁,總共184頁。7DRAM主存讀寫的正確性校驗*(理解奇偶校驗之應(yīng)用)存儲器Fkm輸入數(shù)據(jù)F比較器km出錯信號糾正器數(shù)據(jù)輸出m當(dāng)前67頁,總共184頁。第3節(jié)ROM和FLASHROM(掌握本節(jié)課件所要求的內(nèi)容)一、不可重寫只讀存儲器二、可重寫只讀存儲器當(dāng)前68頁,總共184頁。只讀存儲器ROM是一種存儲固定信息的存儲器其特點是在正常工作狀態(tài)下只能讀取數(shù)據(jù),不能即時修改或重新寫入數(shù)據(jù)只讀存儲器電路結(jié)構(gòu)簡單,且存放的數(shù)據(jù)在斷電后不會丟失特別適合于存儲永久性的、不變的程序代碼或數(shù)據(jù)(如常數(shù)表、函數(shù)、表格和字符等)計算機(jī)中的自檢程序就是固化在ROM中的當(dāng)前69頁,總共184頁。ROM的最大優(yōu)點是具有不易失性只讀存儲器有兩大類不可重寫只讀存儲器(MROM、PROM)可重寫只讀存儲器(EPROM、EEPROM、閃速存儲器等)當(dāng)前70頁,總共184頁。一、不可重寫只讀存儲器1掩模只讀存儲器(MROM)2可編程只讀存儲器(PROM)當(dāng)前71頁,總共184頁。1掩模只讀存儲器(MROM)在制造時,生產(chǎn)廠家利用掩模(Mask)技術(shù)把信息寫入存儲器中,使用時用戶無法更改,適宜大批量生產(chǎn)可分為二極管ROM、雙極型三極管ROM和MOS管ROM三種類型當(dāng)前72頁,總共184頁。2可編程只讀存儲器(PROM)可編程只讀存儲器(ProgrammableROM,簡稱PROM),可由用戶一次性寫入信息缺點是用戶只能寫入一次數(shù)據(jù),一經(jīng)寫入就不能再更改當(dāng)前73頁,總共184頁。二、可重寫只讀存儲器1光擦可編程只讀存儲器(EPROM)2電擦可編程只讀存儲器(EEPROM或E2PROM)3閃速存儲器(FlashROM)當(dāng)前74頁,總共184頁。由用戶寫入數(shù)據(jù)(程序),當(dāng)需要變動時還可以進(jìn)行修改,使用起來比較方便有三種類型紫外線擦除EPROM電擦除EEPROM閃速存儲器FlashROM當(dāng)前75頁,總共184頁。1光擦可編程只讀存儲器(EPROM)其中的內(nèi)容可以用特殊的裝置進(jìn)行擦除和重寫EPROM出廠時,其存儲內(nèi)容為全“1”,用戶可根據(jù)需要改寫為“0”當(dāng)需要更新存儲內(nèi)容時,可將原存儲內(nèi)容擦除(恢復(fù)為全“1”),以便寫入新的內(nèi)容EPROM一般是將芯片置于紫外線下照射15~20分鐘左右,以擦除其中的內(nèi)容,然后用專用的設(shè)備(EPROM寫入器)將信息重新寫入,一旦寫入則相對固定在閃速存儲器大量應(yīng)用之前,EPROM常用于軟件開發(fā)過程中當(dāng)前76頁,總共184頁。2電擦可編程只讀存儲器(EEPROM或E2PROM)可以用電氣方法將芯片中的存儲內(nèi)容擦除擦除時間較快,甚至可以在聯(lián)機(jī)狀態(tài)下操作既可使用字擦除方式又可使用塊擦除方式使用字擦除方式可擦除一個存儲單元使用塊擦除方式可擦除數(shù)據(jù)塊中所有存儲單元當(dāng)前77頁,總共184頁。3閃速存儲器(FlashROM)閃速存儲器FlashROM是20世紀(jì)80年代中期出現(xiàn)的一種塊擦寫型存儲器,是一種高密度、非易失性的讀/寫半導(dǎo)體存儲器其中的內(nèi)容或數(shù)據(jù)不像RAM一樣需要電源支持才能保存,但又像RAM一樣具有可重寫性在某種低電壓下,其內(nèi)部信息可讀不可寫,類似于ROM而在較高的電壓下,其內(nèi)部信息可以更改和刪除,類似于RAM當(dāng)前78頁,總共184頁??梢杂密浖赑C機(jī)中改寫或在線寫入,信息一旦寫入即相對固定在PC機(jī)中可用于存儲主板的BIOS程序由于能進(jìn)行改寫,便于用戶自行升級BIOS,但這也給病毒以可乘之機(jī)著名的CIH病毒正是利用這個特點來破壞BIOS,從而導(dǎo)致整個系統(tǒng)癱瘓的由于單片存儲容量大,易于修改,F(xiàn)lashROM也常用于數(shù)碼相機(jī)和U盤中因其具有低功耗、高密度等特點,且沒有機(jī)電移動裝置,特別適合于便攜式設(shè)備,成為替代磁盤的一種理想工具當(dāng)前79頁,總共184頁。根據(jù)編程方法不同,可分為三類:掩膜式的只讀存儲器:在芯片制造過程中一次寫入,不能改變。(用戶需向廠商定做)一次編程只讀存儲器(PROM):熔絲型和PN擊穿型(已被淘汰)多次編程只讀存儲器:EPROM(光擦除可編程只讀存儲器)、EEPROM(E2PROM)FLASHROM當(dāng)前80頁,總共184頁。A0A1A2A3A4A5A6A7&E0E1ENROM256*4O3O0O1O2(A)掩膜ROM邏輯符號行譯碼器列譯碼器和I/O電路32行*8列*4...A0A1A2A3A4行地址列地址..E0E1A7A6A5O0O1O2O3當(dāng)前81頁,總共184頁。2716(2K*8)D7………….D0實例2716----2K*8EPROM(第3版)PPT第83-98張僅供參考當(dāng)前82頁,總共184頁。
PD/PGM
CS
Vpp
Vcc數(shù)據(jù)輸出讀低低
+5V
+5V輸出未選中無關(guān)高
+5V
+5V高阻功率下降高無關(guān)
+5V
+5V高阻編程由低到高脈沖高
+25V
+5V輸入對芯片的操作當(dāng)前83頁,總共184頁。ABCSDBPD/PGM=低讀周期時序ABPD/PGMDB后備時序當(dāng)前84頁,總共184頁。編程時序Vpp地址線數(shù)據(jù)線-OE-CE/PGM當(dāng)前85頁,總共184頁。通用編程器當(dāng)前86頁,總共184頁。當(dāng)前87頁,總共184頁。Flash存儲器(閃速存儲器)閃速存儲器是一種高密度、非易失性的讀/寫半導(dǎo)體存儲器,它突破了傳統(tǒng)的存儲器體系,改善了現(xiàn)有存儲器的特性。有256K、512K、1M、2M,4M位….的存儲器。當(dāng)前88頁,總共184頁。例子閃爍存儲器—FLASHMEMORY(電可擦除、非易失器件)28F256(課外閱讀)1、功能特點:28F256為256K位,32K字節(jié)(32K*8)的存儲器,。地址線:15位,數(shù)據(jù)線8,有片選信號-CE、輸出允許-OE、寫命令信號-WE,VCC(+5v)、編程供電VPP(+12v)當(dāng)前89頁,總共184頁。
除了指令寄存器在內(nèi)的控制和定時邏輯,其余部分與一般半導(dǎo)體存儲器的結(jié)構(gòu)相似。其中VCC(+5V)是對器件供電,VPP(+12V)是擦除/編程供電的電源。當(dāng)前90頁,總共184頁。當(dāng)VPP上加高電壓時,28F256中的寄存器才工作。(寫)3、擦除、編程(寫)操作28F256的擦除和寫需多步操作才能完成,而每步需要執(zhí)行兩條CPU指令。28F256的擦除和寫需將對其中控制命令先寫28F256內(nèi)部的寄存器,內(nèi)部寄存器不占用地址,只要-WE、-CE為低就可以寫入。2、工作方式:
(1)只讀方式(Vpp上無高電壓)此方式與EPROM相同(讀)(2)指令存儲器工作方式(修改存儲器方式,Vpp=高)當(dāng)前91頁,總共184頁。操作命令第1條CPU指令第2條CPU指令指令類型地址數(shù)據(jù)指令類型地址數(shù)據(jù)讀存儲單元寫x00啟動擦除/擦除寫x20h寫X20h擦除校驗寫被擦單元A0H讀X被校驗單元讀出數(shù)據(jù)啟動寫(編程)寫x40寫寫單元的地址要寫入的數(shù)據(jù)復(fù)位寫XFF寫XFHH當(dāng)前92頁,總共184頁。
中間部分是接口電路。地址總線和控制總線由CPU發(fā)向存儲器和接口邏輯,數(shù)據(jù)總線為雙向總線。地址總線的寬度決定了存儲器的存儲容量,數(shù)據(jù)總線的寬度決定了存儲器的字長。當(dāng)前93頁,總共184頁。
CPU的地址總線16根(A15—A0,A0為低位),雙向數(shù)據(jù)總線8根(D7—D0),控制總線中與主存有關(guān)的信號有MREQ(允許訪存,低電平有效),R/W(高電平為讀命令,低電平為寫命令)。主存地址空間分配如下:0—8191為系統(tǒng)程序區(qū),由只讀存儲芯片組成;8192—32767為用戶程序區(qū);最后(最大地址)2K地址空間為系統(tǒng)程序工作區(qū)。上述地址為十進(jìn)制,按字節(jié)編址。現(xiàn)有如下存儲器芯片:EPROM:8K×8位(控制端僅有CS);SRAM:16K×1位,2K×8位,4K×8位,8K×8位.請從上述芯片中選擇適當(dāng)芯片設(shè)計該計算機(jī)主存儲器,畫出主存儲器邏輯框圖,注意畫出選片邏輯(可選用門電路及3∶8譯碼器74LS138)與CPU的連接,說明選哪些存儲器芯片,選多少片。思考題(不要求)當(dāng)前94頁,總共184頁。主存地址空間分布如圖當(dāng)前95頁,總共184頁。00000000000000000000EPROM00011111111111111FFFEPROM8K00100000000000002000RAM00111111111111113FFFRAM8K01000000000000004000RAM01011111111111115FFFRAM8K8K01100000000000006000RAM01111111111111117FFFRAM1000
0000000000008000空1001
1111111111119FFF空24K8K1010
000000000000A000空1011
111111111111BFFF空8K1100
000000000000C000空1101
111111111111DFFF空8K24K空1110
000000000000E000空1110011111111111E7FF空2K1110
100000000000E800空1110111111111111EFFF空2K1111
000000000000E000空1111011111111111E7FF空1111
100000000000E800RAM1111111111111111EFFFRAM2K2K6K空當(dāng)前96頁,總共184頁。根據(jù)給定條件,選用EPROM:8K×8位芯片1片。SRAM:8K×8位芯片3片,2K×8位芯片1片。3∶8譯碼器僅用Y0,Y1,Y2,Y3和Y7輸出端,且對最后的2K×8位芯片還需加門電路譯碼。主存儲器的組成與CPU連接邏輯圖如圖所示,詳細(xì)框圖請參看教材。圖3.24主存儲器組成與CPU的連接邏輯圖當(dāng)前97頁,總共184頁。第4節(jié)高速存儲器一、雙端口存儲器IDT7133*二、多模塊交叉存儲器三、相聯(lián)存儲器*(閱讀)當(dāng)前98頁,總共184頁。
由于CPU和主存儲器在速度上不匹配,而且在一個CPU周期中可能需要用幾個存儲器字,這便限制了高速計算,為了使CPU不至因為等待存儲器讀寫操作的完成而無事可做,可以采取一些加速CPU和存儲器之間有效傳輸?shù)奶厥獯胧┊?dāng)前99頁,總共184頁。一、雙端口存儲器---IDT7133的介紹主存儲器是信息交換的中心一方面CPU頻繁地與主存交換信息另一方面外設(shè)也較頻繁地與主存交換信息常規(guī)存儲器是單端口存儲器每次只接收一個地址,訪問一個存儲單元,從中讀取或?qū)懭胍粋€字節(jié)或字影響存儲器的整體工作速度為此,在某些系統(tǒng)中采用了雙端口存儲器當(dāng)前100頁,總共184頁。雙端口存儲器具有兩個彼此獨立的讀寫口每個讀寫口都有一套自己的地址寄存器和譯碼電路,可以并行地獨立工作兩個讀寫口可以按各自接收的地址同時讀出或?qū)懭?,或一個寫入而另一個讀出與兩個獨立的存儲器不同兩個讀寫口的訪存空間相同,可以訪問同一個存儲單元通常使雙端口存儲器的一個讀寫口面向CPU,另一個讀寫口則面向外設(shè)或輸入輸出處理機(jī)當(dāng)前101頁,總共184頁。雙端口存儲器是一種高速工作的存儲器由于具有兩組相互獨立的讀寫控制線路,可以對存儲器中任何位置上的數(shù)據(jù)進(jìn)行并行、獨立的存取操作讀寫沖突處理如果兩個端口同時訪問存儲器的同一個存儲單元,便會發(fā)生讀寫沖突為解決此問題,可以設(shè)置一個“忙”標(biāo)志在發(fā)生讀寫沖突時,片上判斷邏輯決定對哪個端口優(yōu)先進(jìn)行讀寫操作,而對另一個被延遲的端口置“忙”標(biāo)志,即暫時關(guān)閉此端口等到優(yōu)先端口完成讀寫操作,才將被延遲端口的“忙”標(biāo)志復(fù)位,重新開放此端口,允許延遲端口進(jìn)行存取當(dāng)前102頁,總共184頁。雙端口存儲器是同一個存儲器件有兩套獨立的讀寫控制線路1、IDT7133為2K*16位的雙端口SRAM兩個端口有各自的地址線A10-A0,數(shù)據(jù)線IO0-IO15,控制線(R/-W,-CE,-OE,-BUSY)當(dāng)前103頁,總共184頁。當(dāng)前104頁,總共184頁。當(dāng)前105頁,總共184頁。2、無沖突的讀寫
*對兩個端口地址(單元地址)不相同,在兩個端口讀寫*兩個端口地址(單元地址)相同,在兩個端讀當(dāng)前106頁,總共184頁。當(dāng)前107頁,總共184頁。左端口或右端口功能R/WLBR/WUB
CE
OEI/O0-7I/O8-15
×
0
0
1
0
1
1
1
×
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1/0
×
0
0
1
1
0
1Z入入出入Z出Z
Z入出入Z入出Z
端口不用低位和高位字節(jié)數(shù)據(jù)寫入存儲器低位字節(jié)數(shù)據(jù)寫入存儲器,存儲器中數(shù)據(jù)輸出至高位字節(jié)存儲器中數(shù)據(jù)輸出至低位字節(jié),高位字節(jié)數(shù)據(jù)寫入存儲器低位字節(jié)寫入存儲器高位字節(jié)寫入存儲器存儲器中數(shù)據(jù)輸出至低位字節(jié)號高位字節(jié)
高阻抗輸出當(dāng)前108頁,總共184頁。端口取勝的判斷方式:A
左右端口相同地址號同時出現(xiàn),比較-CE
若相同單元地址以-CE前有效((A0-A10)L,(A0-A10)R),就在-CEL和-CER間比較,如表中LL5R:-CEL先于-CER50ns變低,故左端口取勝B左右端口-CE已變低,則比較地址的先后(左右端口相同地址號)如:LV5R:比較地址的先后,左地址先于右地址50nsLL5R:-CEL變低先于-CER50ns
3、有沖突:對相同地址單元,兩邊同時寫或同時一邊寫而另一邊讀當(dāng)前109頁,總共184頁。例子雙端口RAM在模型計算機(jī)TEC4A中的應(yīng)用結(jié)果RD當(dāng)前110頁,總共184頁。當(dāng)前111頁,總共184頁。二、多模塊交叉存儲器1、存儲器的模塊化組織
順序方式和交叉方式2、多模塊交叉的基本結(jié)構(gòu)
3、舉例當(dāng)前112頁,總共184頁。順序方式:某個模塊進(jìn)行存取時,其他模塊不工作,某一模塊出現(xiàn)故障時,其他模塊可以照常工作,通過增添模塊來擴(kuò)充存儲器容量比較方便。但各模塊串行工作,存儲器的帶寬受到了限制.
地址安順序分配給各模塊,與字?jǐn)U展相同,32個單元,共4個模塊,每塊8個單元當(dāng)前113頁,總共184頁。低位交叉方式:
地址碼的低位字段經(jīng)過譯碼選擇不同的模塊,而高位字段指向相應(yīng)模塊內(nèi)的存儲字。相鄰塊相同位置的在系統(tǒng)中的單元地址編號連續(xù),塊內(nèi)物理上相鄰單元地址不連續(xù)當(dāng)前114頁,總共184頁。2、多模塊交叉的基本結(jié)構(gòu)高位用于選擇單元(單元地址編號),低位選擇模塊,地址連續(xù)分布在相鄰的不同模塊中,目的是提高存儲器帶寬。當(dāng)前115頁,總共184頁。設(shè)m為模塊(存儲體)個數(shù),k為存儲模塊的編號(模塊號,0,1,2…m);j為模塊內(nèi)存儲單元物理順序號;A為主存地址(兩部分:高位,低位),則主存地址與上述變量(m,k)關(guān)系:A=m*j+k塊內(nèi)地址(塊內(nèi)存儲單元物理順序號)j=[A/m]([]表示取整)存儲塊號(模塊號k):k=AMODm每個模塊(存儲體)都有自己的讀寫控制電路、地址寄存器MAR、數(shù)據(jù)寄存器,每個存儲體以同等的方式與CPU傳送信息。當(dāng)前116頁,總共184頁。若存儲周期(T),則啟動間隔為t(總線傳送周期τ),τ=t=[T/m](取整,交叉存取度),m個模塊交叉(m體),在一個存儲周期內(nèi)m個存儲體分時啟動,實質(zhì)是一種流水工作方式,對于連續(xù)取m個字(單元)所須時間=T+(m-1)*t順序讀取則=m*T當(dāng)前117頁,總共184頁。多體交叉存儲器工作時序圖當(dāng)前118頁,總共184頁。當(dāng)前119頁,總共184頁。m=4,多體交叉存儲器工作時序圖TTTTτ當(dāng)前120頁,總共184頁。例4設(shè)存儲器容量為32字,字長64位,模塊數(shù)m=4,分別用順序方式和交叉方式進(jìn)行組織。存儲周期T=200ns,數(shù)據(jù)總線寬度為64位,總線傳送周期τ=50ns。問順序存儲器和交叉存儲器的帶寬各是多少?解順序存儲器和交叉存儲器連續(xù)讀出m=4個字的信息總量都是:q=64位×4=256位順序存儲器和交叉存儲器連續(xù)讀出4個字所需的時間分別是:
t2=mT=4×200ns=800ns=8×10-7s;
t1=T+(m-1)=200ns+50ns*3=350ns=35×10-7s順序存儲器和交叉存儲器的帶寬分別是:
W2=q/t2=256÷(8×10-7)=32×107[位/s];
W1=q/t1=256÷(35×10-7)=73×107[位/s]當(dāng)前121頁,總共184頁。兩模塊交叉例子(CAI,課外閱讀)A2=0,RAS0有效A2=1,RAS1有效體選擇當(dāng)前122頁,總共184頁。三、相聯(lián)存儲器(考試不要求,課外閱讀)1、相聯(lián)存儲器的基本思路
按內(nèi)容訪問,一次查找成功2、相聯(lián)存儲器的組成
3、相聯(lián)存儲器的應(yīng)用
用于存儲管理,存放地址轉(zhuǎn)換表完成地址變換當(dāng)前123頁,總共184頁。2、相聯(lián)存儲器的組成*檢索寄存器:存檢索項*屏蔽寄存器:對不參加檢索的位屏蔽(置0)*符合寄存器(匹配寄存器):用來存放與內(nèi)容相符的單元地址*比較線路*代碼寄存器(數(shù)據(jù)寄存器):存放讀出或要寫入的代碼*存儲體當(dāng)前124頁,總共184頁。當(dāng)前125頁,總共184頁。****存儲體中的每個單元都應(yīng)有一套比較線路,最終產(chǎn)生使匹配寄存器相應(yīng)置1的信號。設(shè)檢索項的某一位為Ai,存儲陣列中某個字(某個單元)的對應(yīng)位為Wij,屏蔽寄存器為Ki,則對應(yīng)位的條件為:匹配寄存器相應(yīng)位mj為邏輯真的條件是:當(dāng)前126頁,總共184頁。第5節(jié)cache存儲器一、存儲體系(層次)原理二、cache存儲器的基本原理三、主存與cache的地址映射四、替換策略五、cache的寫操作策略當(dāng)前127頁,總共184頁。一、存儲體系(層次)原理1、存儲體系的形成和發(fā)展
2、存儲層次的設(shè)計基礎(chǔ)(局部性原則)3、存儲體系的基本要求和性能評價當(dāng)前128頁,總共184頁。1、存儲體系的形成和發(fā)展
容量的要求---虛擬存儲
速度要求---從通用寄存器發(fā)展到Cache存儲系統(tǒng):兩個或兩個以上速度、容量和價格不相同的存儲器用硬件、軟件或硬件與軟件結(jié)合的方法連成系統(tǒng)。當(dāng)前129頁,總共184頁。M1C1,S1,TA1M2C2,S2,TA2Ci為每位價格,Si是用位來描述的存儲容量,TAi為訪問時間(i=1,2…)*兩級存儲體系平均位價格C=(C1*S1+C2*S2)/(S1+S2)*兩級存儲體系平均訪問時間TA=H*TA1+(1-H)*TA2H=N1/(N1+N2),N1為在M1中訪問到的次數(shù)當(dāng)前130頁,總共184頁。2、存儲層次的設(shè)計依據(jù)(局部性原則)
程序的局部性(Locality)原則:在一段時間內(nèi),典型的程序所需的地址趨向于集中在一個較小的范圍內(nèi),在給定的主存內(nèi)容被處理后,下一個要處理的指令或數(shù)據(jù)極大可能的在該主存單元附近區(qū)域,即程序的執(zhí)行時的地址不是隨機(jī)分布的,而是自然的簇集成“塊”和“頁”。當(dāng)前131頁,總共184頁??臻g的局部性(Spatiallocality):當(dāng)處理機(jī)訪問某個單元時,該單元附近的存儲單元最有可能被隨后訪問。時間的局部性(Temporallocality):處理機(jī)訪問某個單元后,該單元最有可能再次被訪問。處理機(jī)在某段時間經(jīng)常使用的空間范圍被稱作工作集合(workingset)在幾乎所有的程序中,工作集合的改變是非常緩慢的,有時甚至是不變的。當(dāng)前132頁,總共184頁??臻g局部性:當(dāng)前訪問的某個數(shù)據(jù)(或指令),其鄰近范圍的數(shù)據(jù)(或指令)可能很快也會被訪問時間局部性:當(dāng)前訪問的某個數(shù)據(jù)(或指令)可能很快又會再次被訪問時間存儲器地址程序的局部性當(dāng)前133頁,總共184頁。
局部性原理舉例sum=0;for(i=0;i<n;i++) sum+=a[i];*v=sum;每條指令4個字節(jié);每個數(shù)組元素4個字節(jié)指令和數(shù)組元素在內(nèi)存中均連續(xù)存放sum,ap,i,t均為通用寄存器;A,V為內(nèi)存地址I0: sum<--0I1: ap<--AA是數(shù)組的起始地址I2: i<--0I3: if(i>=n)gotodonei4: loop: t<--(ap)數(shù)組元素a[i]的值I5: sum<--sum+t
累計在sum中I6: ap<--ap+4
計算下1個數(shù)組元素的地址I7: i<--i+1
I8: if(i<n)gotoloopI9: done: V<--sum
累計結(jié)果保存至地址v對應(yīng)的匯編語言指令:I1I2I3I4I5I60x1000x1040x1080x10C0x1100x114a[0]a[1]a[2]a[3]a[4]a[5]0x4000x4040x4080x40C0x4100x414?
?
?0x7A4?
?
?主存的布局:I00x0FC指令數(shù)據(jù)AV當(dāng)前134頁,總共184頁。性能:速度、容量、每位價格存儲系統(tǒng)設(shè)計目標(biāo)
*希望訪問速度近似等于存儲周期中最小者*容量與最大者相近*每位價格接近最便宜者3、存儲體系的基本要求和性能評價當(dāng)前135頁,總共184頁。二、cache存儲器的基本原理1、cache的功能
cache是一種高速緩沖存儲器,解決CPU與主存速度不匹配的一項重要技術(shù)。2、cache的基本原理3、cache的命中率當(dāng)前136頁,總共184頁。2、cache的基本原理當(dāng)前137頁,總共184頁。*cache與主存之間以塊(教材中稱行)為單位交換數(shù)據(jù),塊的大小以主存一個周期內(nèi)能訪問到的數(shù)據(jù)長度為限;并將cache作為主存的“副本”基本工作原理(1)將cache與主存都用容量相同的塊或者行(塊或行內(nèi)字?jǐn)?shù)相同)來劃分,并將主存與cache地址分成兩部分:塊(行)號:塊內(nèi)地址;并將主存塊號(行號)與cache塊號(行號)建立對應(yīng)關(guān)系存于表(相聯(lián)存儲器中)(2)當(dāng)CPU訪cache,CPU來的地址→MAR(主存地址→塊號塊:塊內(nèi)地址),用主存塊號在與表中的標(biāo)記內(nèi)容比較,該塊是否已在cache中,若在則命中,并從表中讀出對應(yīng)的cache中塊號→從cache中讀→CPU當(dāng)前138頁,總共184頁。(3)若該主存塊不在cache中則不命中,用主存地址訪主存→CPU,并在cache未滿時直接送cache,若cache滿則將使用替換算法將不常用的塊先換出再送。(4)CACHE全部由硬件調(diào)度,對系統(tǒng)和應(yīng)用程序員是透明的3、cache的命中率Nc為在cache中存取次數(shù),Nm為在主存儲器中存取次數(shù)則定義h為命中率
h=Nc/(Nc+Nm)CAHCE/主存系統(tǒng)的平均訪問時間ta=h*tc+(1-h)*tm訪問效率e,e=tc/ta
當(dāng)前139頁,總共184頁。如果被訪問的信息不在cache中,稱為失效(miss)如果被訪問的信息在cache中,稱為命中(hit)Cache收到地址碼A讀出A的內(nèi)容送給執(zhí)行部件A的內(nèi)容在cache中嗎?訪問主存讀出A及相鄰地址內(nèi)容將A的內(nèi)容發(fā)送給執(zhí)行部件在cache中騰出空位置供接收用cache接收A及相鄰地址的內(nèi)容
命中率H是CPU需要的指令或數(shù)據(jù)在cache中能直接找到的概率,通常在95%以上!當(dāng)前140頁,總共184頁。如何提高cache的命中率?增大cache容量采用2級或3級等多級cache技術(shù)cache中采用快速的查找算法,判定是否命中沒有命中時,采用有效的算法將讀入的內(nèi)容替換cache中暫時不使用的內(nèi)容編譯器優(yōu)化目標(biāo)程序程序員寫出cache-friendly的程序當(dāng)前141頁,總共184頁。Cache-friendly程序舉例哪個程序運(yùn)行速度快?voidcopyji(inta[2048][2048],intb[2048][2048]){inti,j;for(j=0;j<2048;j++)for(i=0;i<2048;i++)b[i][j]=a[i][j];}voidcopyij(inta[2048][2048],intb[2048][2048]){inti,j;for(i=0;i<2048;i++)for(j=0;j<2048;j++)b[i][j]=a[i][j];}(59,393,288時鐘周期)(1,277,877,876時鐘周期)快21.5倍!(2GHzIntelPentium4)I1I2I3I4I5I6a[0,0]a[0,1]a[0,2]a[0,3]a[0,4]a[0,2047]?
?
??
?
?I0指令數(shù)據(jù)a[1,0]a[1,1]a[1,2]a[1,3]a[1,4]a[1,2047]?
?
?a[2,0]a[2,1]a[2,2]?
?
?當(dāng)前142頁,總共184頁。三、主存與cache的地址映射1、全相聯(lián)映射方式2、直接映射方式3、組相聯(lián)映射方式Cache的行數(shù)遠(yuǎn)比主存的塊數(shù)要少,需要一種算法將主存的塊映射到Cache行中當(dāng)前143頁,總共184頁。1、全相聯(lián)映射方式全相聯(lián)變換方式的特點:若cache有b塊(行),主存B塊則映射關(guān)系有B*b種;塊的沖突率小且cache的利用率高。比較電路難設(shè)計和實現(xiàn),適用于小容量cache。當(dāng)前144頁,總共184頁。當(dāng)前145頁,總共184頁。例某全相聯(lián)映射的高速緩存為128B,每塊(行)為4個字,即4*32位(16B),主存容量4096B,寫出緩存地址和主存地址cache128B,為32個字(128B/4B=32字)=25字,塊大小4字=22,有32/4=23塊,塊內(nèi)字地址2位。字節(jié)地址2位(32位=4字節(jié))主存4096B,為1024字(4096B/4B)=210字,有210字/4字=28塊,塊內(nèi)字地址2位。字節(jié)地址2位322塊(行)號cache822塊號塊內(nèi)-字:字節(jié)主存塊內(nèi)-字:字節(jié)當(dāng)前146頁,總共184頁。2、直接映射方式每個區(qū)有個b塊(行)(行0)(行1)(行b-1)Cache共有b塊當(dāng)前147頁,總共184頁。例某直接映射的高速緩存為128B,每塊(行)為4個字,即4*32位(16B),主存容量4096B,寫出緩存地址和主存地址cache128B,為32個字(128B/4B=32字)=25字,塊大小4字=22,有32/4=23塊(8塊,行),塊內(nèi)字地址2位。字節(jié)地址2位(32位=4字節(jié))主存4096B,為1024字(4096B/4B)=210字,有210字/4字=28塊(行),塊內(nèi)字地址2位。字節(jié)地址2位,并且一共有28塊/23塊=25(個區(qū)).322塊(行)號塊內(nèi)-字:字節(jié)cache322塊號塊內(nèi)-字:字節(jié)主存5區(qū)號(tag)當(dāng)前148頁,總共184頁。例某直接映射的高速緩存為8塊,每塊(行)為4個字,即4*32位(16B),字節(jié)地址為191應(yīng)該對應(yīng)cache哪一塊?└191/16┘(向下取整)=11,191在主存塊1111mod8=3,映射到cache塊3當(dāng)前149頁,總共184頁。①②③當(dāng)前150頁,總共184頁。直接映象方式是一種簡單的直接的方法,主存中的一塊只能映象到cache中的特定塊(行),以下式表示
bx(cache塊或行號)
=Bx(主存塊號)
MODb(Cache共b(塊或行),Cache的總行(塊數(shù)),與書中m相同)(i(cache塊或行號)=j(主存塊號)MODm,書中表達(dá)式)當(dāng)前151頁,總共184頁。把主存按cache容量大小(共有b塊)分成區(qū),一般主存容量是cache的整倍數(shù),。主存每區(qū)內(nèi)的塊(行)數(shù)與Cache容量相等,可用下式表示主存地址A,E為區(qū)號,k為與cache對應(yīng)的塊號(行號)A=E*b+k因此主存地址三部分:區(qū)號(tag):塊號:塊內(nèi)地址(主存比Cache長出的部分是區(qū)號,書中為tag
),為實現(xiàn)主存塊與Cache對應(yīng)需一個區(qū)表變換過程:(1)首先用主存地址中的塊(行)號訪問“區(qū)表”(按地址訪問)(2)比較表中區(qū)號與主存地址中的區(qū)號是否相等當(dāng)前152頁,總共184頁。(3)有效位是否為“1”,為“1”表示要訪問的塊已裝入cache中,用cache地址cacheCPU(4)其他情況均為不命中,即失效,要用主存地址訪問主存儲器
當(dāng)前153頁,總共184頁。3、組相聯(lián)映射方式
組相聯(lián)是組間采用直接映象,而組內(nèi)為全相聯(lián)當(dāng)前154頁,總共184頁。組相聯(lián)圖示當(dāng)前155頁,總共184頁。
這種方式是前兩種方式的折衷方案。如組相聯(lián)圖示,它將cache分成g組,每組Gb行(塊);主存塊(行)存放到哪個組是固定的,至于存到該組哪一行(塊)是靈活的;
Cache有如下函數(shù)關(guān)系:m=g×Gb
(m為cache
的總行數(shù)或塊數(shù),相當(dāng)于前邊講的;書上m=u(組)*v(行數(shù)/組),若每組有v(塊或行),則稱作v路組相聯(lián)
gx(cache組號)=Mb(主存組號)modg(書中q=jmodu(組數(shù)))當(dāng)前156頁,總共184頁。組相聯(lián)地址變換1223u=2d占d位1+當(dāng)前157頁,總共184頁。組相聯(lián)的地址變換過程:(1)當(dāng)要訪問Cache時用主存地址中組號訪問“表”,從表中讀出內(nèi)容為區(qū)號ex和塊號Bx
;(2)將表讀出內(nèi)容與主存地址中的區(qū)號和塊號相比,若相等即命中;(3)命中則將表中cache的組內(nèi)塊號讀出與w接在一起作為Cache的地址(4)若沒命中(失效),則用主存地址訪問主存當(dāng)前158頁,總共184頁。四、替換策略1、最不經(jīng)常使用(LFU)算法2、近期最少使用(LRU)算法3、隨機(jī)替換當(dāng)前159頁,總共184頁。最不經(jīng)常使用LFU:將一段時間內(nèi)被訪問次數(shù)最少(塊)行換出;有行計數(shù)器,計數(shù)最少者換出。缺點:不能反映近期使用情況。近期最少使用LRU:近期最少使用的(塊)行被換出;CACHE命中一次,命中行清零,其他行計數(shù)器加1,計數(shù)值最大者為“近期最少使用”的行。隨機(jī)替換:
從特定的行位置中隨機(jī)地選取一(塊)行換出。在硬件上容易實現(xiàn),且速度也比前兩種策略快。缺點是降低了命中率和cache工作效率當(dāng)前160頁,總共184頁。五、cache的寫操作策略1、寫回法2、全寫法3、寫一次法----cache與主存一致性問題當(dāng)前161頁,總共184頁。解決不一致問題應(yīng)采用cache更新算法:寫回法WB(WriteBack)CPU寫操作只寫cache,只有當(dāng)被替換時才依據(jù)塊表中修改位,決定是否寫主存(修改位=1,表示已修改,應(yīng)寫回主存,否則覆蓋即可)(與主存通信量少于WT)寫直達(dá)(全寫法)WT(WriteThrough)在CPU執(zhí)行寫操作時必須將數(shù)據(jù)同時寫入cache和主存,塊表中無須“修改位”。(可靠性高于WB
)cache與主存一致性問題(1)Cache內(nèi)容改,而主存未改(2)從輸入/輸出設(shè)備來的數(shù)據(jù)已修改了主存M,但Cache未改當(dāng)前162頁,總共184頁。無論WT或WB可能存在寫cache不命中的情況,寫不命中,則只能直接向主存寫入,都有一個是否把所寫字在主存的塊讀入cache的問題,讀入時可采用兩種方法。(1)“不按寫分配法”:寫cache不命中,只把所要寫的字寫入主存,而包括所寫的字在內(nèi)的塊不需要從主存調(diào)入cache(常用于WT)(2)“按寫分配法”:寫cache不命中,把所要寫的字寫入主存,而包括所寫的字在內(nèi)的塊須從主存調(diào)入cache,在cache中修改,換出時才寫回主存.(對應(yīng)WB)當(dāng)前163頁,總共184頁。
奔騰PC機(jī)采用兩級cache結(jié)構(gòu)。安裝在主板上的2級cache(L2)采用2路組相聯(lián)映射方式,集成在CPU內(nèi)的1級cache(L1)也采用2路組相聯(lián)映射方式,L1又是L2的子集,從而使L1未命中處理時間大大縮短。CPU中的L1分設(shè)成各8KB的指令cache和數(shù)據(jù)cache,有利于CPU高速執(zhí)行程序。
L1中的指令cache是只讀的,沒有寫操作,不存在一致性問題,因此只討論數(shù)據(jù)cache。數(shù)據(jù)cache采用2路組相聯(lián),分成128組,每組2行(塊),每行32字節(jié)(8個雙字=23),容量:128*2*32B=8KB。tag組號雙字字節(jié)31121154210主存地址奔騰PC機(jī)的cache當(dāng)前164頁,總共184頁。標(biāo)記MIE標(biāo)記S數(shù)據(jù)10020位2位32B/行1位標(biāo)記MEI標(biāo)記S數(shù)據(jù)10020位2位32B/行1位組號0127目錄0路04KLRU目錄1路14K
tag,區(qū)號當(dāng)前165頁,總共184頁。Pentium4中有3個cache存儲器,分成兩級:一級cache數(shù)據(jù)緩存(L1數(shù)據(jù)cache),8KB指令緩存,8KB二級緩存(L2cache),容量為256KB~2MB某些型號還有容量更大的L3cacheL2cache(48GB/s)L1數(shù)據(jù)cache(8KB)指令cache及指令預(yù)取部件前端總線256位,時鐘頻率64位,時鐘頻率總線接口部件預(yù)取控制邏輯Pentium4的cache存儲器當(dāng)前166頁,總共184頁。第6節(jié)虛擬存儲器(p100)1什么是虛擬存儲器虛擬存儲器只是一個容量非常大的存儲器的邏輯模型,不是任何實際的物理存儲器。它借助于磁盤等輔助存儲器來擴(kuò)大主存容量,使之為更大或更多的程序所使用。
它指的是主存-外存層次。以透明的方式給用戶提供了一個比實際主存空間大得多的程序地址空間。
物理地址由CPU地址引腳送出,用于訪問主存的地址。
虛擬地址由編譯程序生成的,是程序的邏輯地址,其地址空間的大小受到輔助存儲器容量的限制。
主存-外存層次和cache-主存層次用的地址變換映射方法和替換策
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋買賣置換合同樣式
- 債權(quán)轉(zhuǎn)為股權(quán)協(xié)議
- 服務(wù)維護(hù)合同
- 專業(yè)分包合同
- 經(jīng)濟(jì)型固定資產(chǎn)購銷合同
- 規(guī)范保姆服務(wù)合同樣本
- 培訓(xùn)講師合作協(xié)議
- 股權(quán)投資協(xié)議書范本
- 集資購房合同示例格式
- 技術(shù)服務(wù)合同的違約金計算方法
- 《逆向教學(xué)設(shè)計研究的國內(nèi)外文獻(xiàn)綜述》2500字
- 2024年保密協(xié)議書(信息技術(shù)行業(yè))2篇
- 2024-2025學(xué)年高一【數(shù)學(xué)(人教A版)】函數(shù)的零點與方程的解-教學(xué)設(shè)計
- 【課件】程式與意蘊(yùn)-中國傳統(tǒng)繪畫+課件-2024-2025學(xué)年高中美術(shù)人美版(2019)美術(shù)鑒賞
- 社會學(xué)概論-終結(jié)性考核-國開(SC)-參考資料
- 2022年全國應(yīng)急普法知識競賽試題庫大全-上(單選題庫-共4部分-1)
- 四川省南充市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 2024年廠長崗位聘用合同范本版B版
- 個人分紅協(xié)議合同范例
- 2024河北石家莊市辛集市大學(xué)生鄉(xiāng)村醫(yī)生專項計劃招聘5人筆試備考試題及答案解析
- 2023年護(hù)理人員分層培訓(xùn)、考核計劃表
評論
0/150
提交評論