11第四章存储器4.1概述4.2主存储器4.3高速缓冲存储器4.4辅助存储器224.1概述一、存储器分类1.按存储介质分类(1)半导体存储器(2)磁表面存储器(3)磁芯存储器(4)光盘存储器易失TTL、MOS磁头、载磁体硬磁材料、环状元件激光、磁光材料非易失33(1)存取时间与物理地址无关(随机访问)•顺序存取存储器磁带4.12.按存取方式分类(2)存取时间与物理地址有关(串行访问)•随机存储器•只读存储器•直接存取存储器磁盘在程序的执行过程中可读可写在程序的执行过程中只读44磁盘磁带光盘高速缓冲存储器(Cache)FlashMemory存储器主存储器辅助存储器MROMPROMEPROMEEPROMRAMROM静态RAM动态RAM3.按在计算机中的作用分类4.155高低小大快慢辅存寄存器缓存主存磁盘光盘磁带光盘磁带速度容量价格位/1.存储器三个主要特性的关系二、存储器的层次结构CPUCPU主机4.166缓存CPU主存辅存2.缓存—主存层次和主存—辅存层次缓存主存辅存主存虚拟存储器10ns20ns200nsms虚地址逻辑地址实地址物理地址主存储器4.1(速度)(容量)77第四章存储器4.1概述4.2主存储器4.3高速缓冲存储器4.4辅助存储器884.2主存储器一、概述1.主存的基本组成存储体驱动器译码器MAR控制电路读写电路MDR....................地址总线数据总线读写992.主存和CPU的联系MDRMARCPU主存读数据总线地址总线写4.21010高位字节地址为字地址低位字节地址为字地址设地址线24根按字节寻址按字寻址若字长为16位按字寻址若字长为32位字地址字节地址11109876543210840字节地址字地址4523014203.主存中存储单元地址的分配4.2224=16M8M4M1111(2)存储速度4.主存的技术指标(1)存储容量(3)存储器的带宽主存存放二进制代码的总数量读出时间写入时间存储器的访问时间•存取时间•存取周期读周期写周期连续两次独立的存储器操作(读或写)所需的最小间隔时间位/秒4.21212芯片容量二、半导体存储芯片简介1.半导体存储芯片的基本结构译码驱动存储矩阵读写电路1K×4位16K×1位8K×8位片选线读/写控制线地址线……数据线……地址线(单向)数据线(双向)1041411384.21313存储芯片片选线的作用用16K×1位的存储芯片组成64K×8位的存储器32片当地址为65535时,此8片的片选有效8片16K×1位8片16K×1位8片16K×1位8片16K×1位4.214140,015,015,70,7读/写控制电路地址译码器字线015…………16×8矩阵…………07D07D位线读/写选通A3A2A1A0……2.半导体存储芯片的译码驱动方式(1)线选法4.200000,00,7…0……07……D07D读/写选通1515A3A2A1A0A40,310,031,031,31Y地址译码器X地址译码器32×32矩阵……A9I/OA8A7A56AY0Y31X0X31D读/写……(2)重合法4.200000000000,031,00,31……I/OD0,0读1616三、随机存取存储器(RAM)1.静态RAM(SRAM)(1)静态RAM基本电路——自学A´触发器非端1T4T~触发器5TT6、行开关7TT8、列开关A触发器原端T1~T4T5T6T7T8A´A写放大器写放大器DIN写选择读选择DOUT读放位线A位线A´列地址选择行地址选择4.2T1~T41717(2)静态RAM芯片举例①Intel2114外特性存储容量1K×4位4.2......I/O1I/O2I/O3I/O4A0A8A9WECSCCVGNDIntel2114②Intel2114RAM矩阵(64×64)读/写——自学1818DD预充电信号读选择线写数据线写选择线读数据线VCgT4T3T2T11(1)动态RAM基本单元电路2.动态RAM(DRAM)读出与原存信息相反读出时数据线有电流为“1”数据线CsT字线DDV010110写入与输入信息相同写入时CS充电为“1”放电为“0”4.2T3T2T1T无电流有电流1919(2)动态RAM芯片举例①②三管动态RAM芯片(Intel1103)读/写——自学4.2③单管动态RAM4116(16K×1位)外特性——自学2020(3)动态RAM时序行、列地址分开传送写时序行地址RAS有效写允许WE有效(高)数据DOUT有效数据DIN有效读时序4.2行地址RAS有效写允许WE有效(低)列地址CAS有效列地址CAS有效2121(4)动态RAM刷新刷新与行地址有关①集中刷新(存取周期为0.5μs)“死时间率”为32/4000×100%=0.8%“死区”为0.5μs×32=16μs周期序号地址序号tc0123967396801tctctctc3999VW0131读/写或维持刷新读/写或维持3968个周期(1984)32个周期(16)刷新时间间隔(2ms)刷新序号•••••••μsμstcXtcY••••••4.2以32×32矩阵为例2222tC=tM+tR读写刷新无“死区”②分散刷新(存取周期为1μs)(存取周期为0.5μs+0.5μs)W/RREF0W/RtRtMtCREF126REF127REFW/RW/RW/RW/R刷新间隔128个读写周期4.2以128×128矩阵为例2323③分散刷新与集中刷新相结合对于128×128的存储芯片(存取周期为0.5μs)将刷新安排在指令译码阶段,不会出现“死区”“死区”为0.5μs若每隔15.6μs刷新一行而且每行每隔2ms刷新一次若每隔2ms集中刷新一次“死区”为64μs4.224243.动态RAM和静态RAM的比较DRAMSRAM存储原理集成度芯片引脚功耗价格速度刷新电容触发器高低少多小大低高慢快有无主存缓存4.22525四、只读存储器(ROM)1.掩膜ROM(MROM)行列选择线交叉处有MOS管为“1”行列选择线交叉处无MOS管为“0”2.PROM(一次性编程)VCC行线列线熔丝熔丝断为“0”为“1”熔丝未断4.226263.EPROM(多次性编程)(1)N型沟道浮动栅MOS电路G栅极S源D漏紫外线全部擦洗D端加正电压形成浮动栅S与D不导通为“0”D端不加正电压不形成浮动栅S与D导通为“1”SGDN+N+P基片GDS浮动栅SiO2+++++___4.22727…控制逻辑Y译码X译码数据缓冲区Y控制128×128存储矩阵…………PD/ProgrCSA10A7…A6A0..…DO0…DO7112………………A7A1A0VSSDO2DO0DO1……27162413………………VCCA8A9VPPCSA10PD/ProgrDO3DO7…(2)2716EPROM的逻辑图和引脚4.2PD/ProgrPD/Progr功率下降/编程输入端读出时为低电平28284.EEPROM(多次性编程)电可擦写局部擦写全部擦写5.FlashMemory(快擦型存储器)比E2PROM快4.2EPROM价格便宜集成度高EEPROM电可擦洗重写具备RAM功能2929五、存储器与CPU的连接(重点内容)1.存储器容量的扩展(1)位扩展(增加存储字长)用2片1K×4位存储芯片组成1K×8位的存储器10根地址线8根数据线DD••••D0479AA0•••21142114CSWE4.23030(2)字扩展(增加存储字的数量)用2片1K×8位存储芯片组成2K×8位的存储器11根地址线8根数据线1K×8位1K×8位D7D0•••••••••••••••••WEA1A0•••A94.2CS0A101CS13131(3)字、位扩展用8片1K×4位存储芯片组成4K×8位的存储器8根数据线12根地址线WEA8A9A0...D7D0……A11A10CS0CS1CS2CS3片选译码................4.21K×41K×41K×41K×41K×41K×41K×41K×432322.存储器与CPU的连接控制(1)地址线的连接(2)数据线的连接(3)读/写线的连接(4)片选线的连接(5)合理选用芯片:位、字扩展(6)其他时序、负载4.23333[例题4.1](详见P94)解:(1)写出对应的二进制地址码(2)确定芯片的数量及类型0110000000000000A15…A12A11…A8A7…A4A3…A0…01100111111111110110100000000000…01101011111111112K×8位1K×8位RAM2片1K×4位ROM1片2K×8位4.23434(3)分配地址线A10~A0接2K×8位ROM的地址线A9~A0接1K×4位RAM的地址线(4)确定片选信号CBA0110000000000000A15A13A11A10…A7…A4A3…A0…01100111111111110110100000000000…01101011111111112K×8位1片ROM1K×4位2片RAM4.235352K×8位ROM1K×4位RAM1K×4位RAM………&PD/ProgrY5Y4G1CBAG2BG2A……MREQA14A15A13A12A11A10A9A0…D7D4D3D0WR…………例4.1的CPU与存储器的连接图4.2………36(1)写出对应的二进制地址码假设同前。要求最小8K为系统程序区(ROM);相邻16K为用户程序区(RAM1+RAM2);4K为系统程序工作区(RAM3)。(2)确定芯片的数量及类型(3)分配地址线(4)确定片选信号1片8K×8位ROM,2片8K×8位RAM,1片4K×8位RAM3A12~A0接ROM和RAM1-3的地址线4.2[例题4.2](详见P95)A15~A13接74138译码3737设CPU有20根地址线,8根数据线。并用IO/M作访存控制信号。RD为读命令,WR为写命令。CPU可以按字节或按字两种形式访存。用74138译码器及其他门电路,画出CPU和ROM、RAM的连接图。4.2[例题4.3](详见P97)按字节访存需要分为奇偶体,ROM最大空间为64K,RAM最大空间为64K。设ROM地址范围为F0000H-FFFFFH(64K×8位),RAM地址范围为E0000H-EFFFFH(64K×8位)。3838六、存储器的校验(重点内容)编码的纠错、检错能力与编码的最小距离有关:L—编码的最小距离D—检测错误的位数C—纠正错误的位数汉明码是具有一位纠错能力的编码。4.2L1=D+C(D≥C)1.编码的最小距离任意两组合法代码之间二进制位数的最少差异3939汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错。简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为海明码。4.22.汉明码校验:汉明码利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。4040纠错:在接收端通过纠错译码,自动纠正传输中的差错来实现码纠错功能,称为前向纠错。在数据链路中存在大量噪音时,前向纠错可以增加数据吞吐量。通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。但这种方法比简单重传协议的成本要高。汉明码利用奇偶块机制降低了前向纠错的成本。4.241414.2校验方法:进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据1001总共是4个比特位,包括2个1,1的数目是偶数,因此,如果是偶校验,那么增加的校验位就是一个0;反之,奇校验增加一个1作为校验位。用“异或”运算来实现偶校验;用“异或”再取反运算来实现奇校验。42424.2单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在