ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:155.62KB ,
资源ID:25078238      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25078238.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第3章 存储器.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第3章 存储器.docx

1、第3章 存储器第3章 存储器本章系统地介绍计算机中存储系统的基本知识,要求学生掌握计算机中存储层次的组织和半导体存储器的工作原理。重点提示: 存储层次 随机读写存储器 只读存储器和闪速存储器 高速存储器 cache存储器 虚拟存储器 存储保护3-1 重点难点指导3-1-1存储器概述字地址:存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址。字节地址:存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址。如果计算机中可编址的最小单位是字存储单元,则该计算机称为按字寻址的计算机。如果计算机中可编址的最小单位是字节,则该计算机称为按字节寻址的计算机。存储器的特性: 存储容量:在一个

2、存储器中可以容纳的存储单元总数通常称为该存储器的存储容量。 存取时间:存取时间ta又称存储器访问时间。 存储周期:存储周期tc是指连续启动两次读操作所需间隔的最小时间。 传输率:传输率是指数据传入或传出存储单位的速率。 带宽:单位时间内存储器可读写的字节数(或二进制的位数)称为存储器的带宽。 价格:价格是存储器的一个经济指标,一般用每位价格来表示。存储器的分类方法: 按存取方式分:顺序存取、直接存取、随机存取、相联存取; 按存储介质分:半导体存储器、磁表面存储器、光存储器; 按读写功能分:ROM、RAM; 按信息的可保存性分:非永久记忆存储器、永久记忆存储器; 按在计算机系统中的作用分:主存储

3、器、辅助存储器、Cache等。存储器是计算机的核心部件之一。其性能直接关系到整个计算机系统性能的高低,如何以合理的价格,设计出容量和速度满足计算机系统要求的存储器系统是我们关心的问题。在存储系统,存在如下关系: 存取时间越短,每位的价格就越高。 容量越大,每位的价格就越低。 容量越大,存取时间就越长。但计算机系统中的存储器不仅需要大容量,而且需要低的每位价格,因此希望采用提供大容量存储器的技术,但为了满足性能要求,设计者又必须使用昂贵、容量较低和存取时间快的存储器。解决这个难题的方法是采用存储器层次结构(Memory Hierarchy),而不只是依赖单一的存储部件或技术。图3-1-1 存储器

4、的层次结构在通用的存储层次中,如图3-1-1所示,从上到下有如下关系: 每位价格降低 容量增大 存取时间增大 处理器访问存储器的频度降低在微机系统中,存储器的层次结构主要是缓存主存和主存辅存这两个存储层次。3-1-2半导体随机存储器存储器的构成单元是存储位元,用于保存一位二进制的信息,这是现代计算机采用二进制的重要原因。但存储位元只要具备了以下3个条件就可以作为存储位元。存储位元的性质: 呈现两种稳态(或半稳定),分别代表二进制的1和0 能够写入(至少一次)来设置状态 能够读出状态。常用的半导体存储位元: 双极型半导体TTL(Transistor-Transistor Logic):速度高,驱

5、动能力强,但集成度低,功耗大,价格高,多用于小容量高速存储器; 金属氧化物场效应晶体管MOS(Metal Oxide Semiconductor):集成度高,功耗小,工艺简单,成本低,但速度较低,主要用于大容量存储器。在计算机中MOS器件组成的存储器是最为常用的。计算机中使用的半导体存储器主要有两类:半导体RAM(Random Access Memory)和半导体ROM(Read Only Memory),RAM具有易失性,而ROM是非易失性的。RAM分为: 静态RAM(Static RAM):速度快,集成度低,容量小,使用方便; 动态RAM(Dynamic RAM):速度比SRAM慢,容量大

6、,需要定时刷新操作。静态随机存储器SRAM(Static Random Access Memory)是一种快速存储器,所谓“静态”的含义是这种存储器不需要刷新操作。但SRAM造价较高,通常用作高速缓冲存储器(Cache)。动态随机存储器DRAM(Dynamic Random Access Memory)是目前在个人计算机中使用最多的存储器形式。“动态”的含义是指这种存储器必须定时的进行刷新操作,否则,其存储的数据就会丢失。存储器芯片中,存储位元的组织形式: 一维地址译码方式(单译码方式) 二维地址译码的位选方式 二维地址译码的字选方式常用的形式为二维地址译码的字选方式。采用地址线的复用和方阵型

7、行列结构,每增加一个专用的地址引脚,便使得行地址和列地址的指示范围加倍,因此存储器芯片的容量以4的倍数增长。由于DRAM存储单元被访问是随机的,有可能某些存储单元长期得不到访问,无读出也就无重写,其原信息必然消失,为此,必须采用定时刷新的方法。常用的刷新方式有三种: 集中式 分散式 异步式在实际应用中,经常使用DRAM控制器与DRAM配合使用。DRAM控制器是CPU与DRAM芯片之间的接口电路,负责完成刷新、刷新/访存裁决等操作。借助DRAM控制器,可把DRAM看作SRAM一样使用,为系统设计带来很大方便。3-1-3半导体只读存储器ROM主要用于存放系统程序、常用功能的库例程和功能表,当程序或

8、数据需要永久保存在主存中,不需要从辅助存储器中调入时,存放在ROM中。计算机中配置ROM的原因:由于目前绝大部分计算机的工作方式为指令流驱动,因此要求计算机加电后必须要运行程序,因此不能只用易失性的RAM构成主存储器,需要有ROM存储引导程序。常用ROM芯片有如下几种: 半导体掩模只读存储器MROM(Masked Read Only Memory) 一次性编程只读存储器PROM(Programmable ROM) 可擦写可编程只读存储器EPROM(Erasable PROM) 电可擦写可编程只读存储器EEPROM(Electrically Erasable PROM) 快闪存储器FLASH M

9、emory3-1-4存储器与CPU连接存储器和CPU的连接,必须按照芯片提供的引脚特征进行连接。CPU对存储器进行读/写操作,首先由地址总线给出地址信号,然后发出读操作或写操作的控制信号,最后在数据总线上进行信息交流。因此,存储器同CPU连接时,要完成地址线、数据线和控制线的连接。半导体存储器是封装的芯片,封装在陶瓷外壳中,并有与外界相连接的引脚。一般的存储芯片的引脚包括:地址、数据,片选信号、读写信号等。常用的存储容量扩展方法:位扩展法、字扩展法、字位同时扩展法。在字扩展中需要使用译码器,常用的有38译码器74138和24译码器74139。存储芯片与CPU芯片相连时,特别要注意片与片之间的地

10、址线、数据线和控制线(如片选等)的连接。由于CPU和主存的发展方向不太一样,CPU重点提高的是处理速度,而主存重点是提高容量,兼顾访问速度的提高。不同的发展策略导致CPU和主存的速度差异越来越大,使主存的存取速度成为计算机系统的瓶颈。可以采取一些加速CPU和存储器之间有效传输的特殊措施,这可以通过下列几种途径来实现: 主存储器采用更高速的技术来缩短存储器的读出时间,或加长存储器的字长; 采用并行操作的双端口存储器; 在每个存储器周期中存取几个字(多体交叉存储器); 在CPU和主存储器之间插入一个高速缓冲存储器(Cache),以缩短读出时间。一个由若干个模块组成的主存储器是线性编址的。这些地址在

11、各模块中如何安排,有两种方式:一种是顺序方式,一种是交叉方式。顺序组织方式的特点是:当某个模块进行存取时,其他模块不工作,优点是某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。缺点是各模块串行工作,存储器的带宽受到了限制。交叉组织方式的特点是:连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。优点是对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。使用场合为成批数据读取。3-1-5高速缓冲存储器(Cache)多级存储体系能够解决存储器容量、速度、价格之间的矛盾的关键:程序执行的局部性原理。程序局部性原理,是指程序在执行时所呈现的局

12、部性规律,即在一段较短时间内,程序的执行仅限于某个部分。相应地,它所访问的存储器空间也局限在某个空间。局部性原理表现为两个方面: 时间局部性:如果某条指令被执行,则不久以后该指令很可能再次被执行;如果某条数据结构被访问,则不久以后该数据结构很可能再次被访问。产生时间局部性的主要原因是程序中有大量的循环操作。 空间局部性:一旦程序访问了某个内存单元,不久以后,其附近的内存单元也要被访问,即程序在一段时间内所访问的存储器空间可能集中在一定的范围之内,其最常见情况就是程序的顺序执行。高速缓冲存储器是为了解决CPU和主存之间速度不匹配而采取的一项重要技术。Cache的基本原理可总结如下: Cache的

13、主要目的是为了解决存储器速度问题; Cache的容量要远小于主存,因此必须考虑两者间的地址变换问题; Cache中使用的所有算法均由硬件实现; Cache技术实现的基本目标是提高命中率; Cache和主存之间以块为单位交换信息; Cache与主存同时进行读写。在Cache系统的设计中,需要考虑的基本要素有: Cache容量的大小; 主存地址映射到Cache的方法; 当新的数据块装入Cache时,替换掉原数据块的策略; CPU执行写操作时写的策略; 数据块大小的选择; Cache数目的选择。映射功能的选择决定了Cache的结构,通常采用三种技术: 全相联:灵活,不易产生冲突。其缺点是比较电路难于

14、实现,且效率低,速度慢。 直接映射:硬件简单,成本低,但容易产生冲突,不能有效利用Cache空间。 组相联:以上两种方式的结合,组间采用直接映射,组内采用全相联映射。当使用全相联和组相联方式时,当新的一块数据装入Cache时,原存储的一块数据就有可能被替换掉,这就会使用到替换策略或是替换算法。常用的替换策略有: 先进先出(FIFO)算法:替换掉那些在Cache中停留时间最长的块。FIFO用循环或环形缓冲技术很容易实现。 最不经常使用(LFU)算法:这种算法将计数周期限定在对这些特定行两次替换之间的时间间隔内,因而不能严格反映近期访问情况。没有考虑对新调入行的处理,因为新调入行的计数值小,容易被

15、替换出去。 近期最少使用(LRU)算法:目前使用较多的一种策略,能够有效的提高命中率。 随机替换:硬件上容易实现并且速度快,虽然表面看起来算法比较随意,但实际模拟显示,其性能还是不错的。Cache的写操作过程比较复杂,因为对Cache块内写入的信息,必须与被映象的主存块内的信息完全一致。当程序运行过程中需要对某个单元进行写操作时,会出现如何使Cache与主存内容保持一致的问题。目前采用的方法主要有以下2种: 写直达法又称为通过式写(Write Through),是最简单的实现技术。优点是数据不会出现不一致,缺点是对写操作没有高速缓存的作用。 写回法(Write Back)。优点是速度快,缺点是

16、存在数据不一致隐患。Cache块大小与命中率的关系是复杂的,它取决于特定程序的局部性特征,目前还没有找到确定的最优值。较大的块能减少装入Cache的块数。因为每装入一块要改写Cache中原来的内容,少量的块导致了装入的数据很快被改写;当块变得较大时,每个附加的字离所要的字更远。因此,将被使用的可能性就更小。最早引入Cache时,通常系统只有一个Cache。近年来,使用多个Cache己相当普通。我们所考虑的两个设计问题是关于Cache的级数以及采用统一或分立的Cache。 单级与两级Cache:一些研究已经表明,使用两级或两级以上Cache确实可以提高性能。 统一和分立Cache:统一Cache

17、的好处是可充分利用Cache空间,便于管理。分立Cache的好处是取消了指令和数据的访问冲突,便于实现流水线。3-1-6虚拟存储器虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之能被更大或更多的程序所使用。虚拟存储器不仅是解决存储容量和存取速度矛盾的一种方法,而且也是管理存储设备的有效方法。程序的逻辑地址称为虚拟地址(虚地址),程序的逻辑地址空间称为虚拟地址空间。物理地址(实地址)由CPU地址引脚送出,它是用于访问主存的地址。虚拟存储器和Cache的主要区别: Cache用硬件实现,对操作系统透明,而虚拟存储器是用软件、硬件

18、相结合组成。 虚拟存储器对未命中更加敏感。主存外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。 段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立的部分。页式管理系统的基本信息传送单位是定长的页。3-2 典型例题解析1、假定一个存储器容量为512MB,按字节编址,每次读写操作最多可以一次存取32位。则存储器地址寄存器MAR和存储器数据寄存器MDR的位数分别为( )。A.29,8 B.29,32 C.27,8 D.27,32参考答案:选项B解析:存储器容量为512MB,按字节编址,说明该存储器的每个存储单元有8位 ,因而共有512M=229个存储单元。所以,地址位数应

19、该有29位,存放主存地址的存储器地址寄存器MAR也应该有29位。假定一次最多存取32位,则用来作为读/写数据缓冲的存储器数据寄存器MDR的位数应该有32位。所以,选项B是正确的。2、下面有关半导体存储器的叙述中,错误的是( )。A.主存由RAM和ROM构成,它们都是半导体存储器 B.半导体存储器都采用随机访问方式进行读写C.SRAM是静态随机访问存储器,可以用作CacheD.DRAM是动态随机访问存储器,主存RAM用DRAM芯片实现参考答案:选项B解析:选项A:主存储器由RAM和ROM组成。对于台式PC机来说,就是指插在主板上的内存条和其他存储芯片。它们都是用半导体元器件来实现的。选项B:半导

20、体存储器大多用随机存储方式进行存取。通过对地址进行译码,选中要访问的单元进行读写。但是,有一种相联存储器,也可以用半导体元器件实现,但它不按地址进行访问,而是按内容进行访问的。通过比较每个存储字的内容来查找给定的二进制字串。所以,并不是所有半导体存储器都采用随机存取方式进行读写。选项C:SRAM是Static RAM的缩写,表示静态随机访问存储器,SRAM记忆单元由6个MOS管组成,利用双稳态触发器来存储信息,速度很快,可以用作Cache。选项D:DRAM是Dynamic RAM的缩写,表示动态随机访问存储器,一个DRAM记忆单元有三管MOS电路或单管MOS电路等。DRAM芯片的集成度高,适合

21、于做大容量的主存,因此主存中的RAM芯片都是DRAM芯片。由于它是利用栅极电容来存储信息的,因而需要读后再生,并定时刷新。综上所述,错误的是B。3、某机主存储器有16位地址,每个存储单元有8位,问:如果用1K4位的RAM芯片构成该存储器,需要多少片芯片?该存储器能存放多少字节的信息?片选逻辑需要多少位地址?解析:存储器有16位地址,所以容量为64K个存储单元,每存储单元占8位。因此需要的芯片数为:(64K / 1K)(8 / 4)= 642 = 128(片)。该存储器能存放64K字节的信息。存储器在字方向上扩展了64=26倍,因而片选逻辑需要6位地址。存储器共16位地址,而芯片共有1K=102

22、4=210个单元,所以芯片内地址位数为10位, 剩下16-10=6位地址正好用于片选逻辑。4、用64K1位的DRAM芯片构成256K8位的存储器,要求:计算所需芯片数采用异步刷新方式,如每单元刷新间隔不超过2ms,则刷新信号周期是多少?如采用集中刷新方式,存储器刷新一遍最少用多少读/写周期?解析: 该存储器所需芯片数:(256K / 64K)(8 / 1)= 32(片)。 DRAM芯片的容量为64K1位,假定芯片内部只有一个位平面,则存储阵列的结构为256256,则存储器刷新一遍至少需要256次刷新操作。若采用异步刷新方式,则相邻两次刷新的时间间隔为2ms/2567.8s,所以,刷新信号周期应

23、为7.8s。 若采用集中刷新方式,则存储器刷新一遍最少用256个读/写周期。注1:DRAM芯片的内部结构可从手册中查出。如不知芯片的内部结构,按惯例可将芯片按nn的结构处理,本例是64 K1的芯片,则存储器刷新一遍需要256次刷新操作。注2:若由四个128128的矩阵构成,则刷新时4个存储矩阵同时对128个记忆单元进行操作。整个存储器刷新一遍只需要128次刷新操作。5、某计算机主存8M字节,分成4096个主存块,Cache有64K字节,采用直接映射方式。请问: Cache有多少个字块? Cache的字块内地址为多少位? Cache的字块地址为多少位? 解析:假设主存按字节编址,则: 每字块大小

24、为:8MB / 4096 = 2K字节,故 Cache有64KB / 2KB = 32个字块。 由于每字块大小为2KB,故Cache的字块内地址为11位。 因为采用直接映射技术,Cache共有32个字块,故Cache 的字块地址为5位。6、一个组相联高速缓存由64个字块组成,每个字块有256字,分为8组,主存有4096个字块。请问: 主存地址有多少位? 主存地址的划分如何?即:标志字段、组字段和块内地址字段各有多少位?解析: 主存容量为4096块x256字=220字,故主存地址为20位。 Cache容量为64块x256字= 8组x 8字块/ 组x 256字/字块。主存容量按每8个字块对于Cac

25、he的8组,共有4096/8=512=29个组群即:220字=29组群x 23块/组群x 28字/块因此,主存地址划分:标志位为9位,组号为3位,字块内地址为8位。所以,Cache的每个字块的标志位有9位。7、某计算机有64K字节的主存和4K字节的Cache,Cache每组4字块,每字块64字节。存储系统按组相联方式工作。请问: 主存地址的标志字段、组字段和块内地址字段各有多少位? 若Cache原来是空的,CPU依次从0号地址单元顺序访问到4344号单元,采用LRU替换算法。若访问Cache的时间为20ns,访问主存的时间为200ns,试估计CPU访存的平均时间。解析:假设按字节编址 Cach

26、e容量为:4KB=16组 x 4字块/组 x 64B/字块主存容量为: 64KB=64组群 x 16块/组群 x 64B/字块主存地址为16位,划分为标志位:6位,组号:4位,块内地址:6位所以,Cache的每个字块的标志位有6位。 因为每块为64字节,4345/64=67.89,67x64=4288,所以04344单元应对应前68块(第0到第67块),即处理器访问过程是对前68块连续访问。Cache共有64个字块,分成16组,每组4个字块(槽)。图中列方向是Cache的16组,行方向是每组的4个槽。根据组相联映射方式的特点,Cache字块(槽)和主存块之间的映射关系如表3-2-1所示。表3-

27、2-1 Cache映射关系0槽1槽2槽3槽0组0/641632481组1/651733492组2/661834503组3/671935514组420365215组15314763主存的第0块到第15块分别对应Cache的第0组到第15组,可以放在对应组的任意一块(槽)中,假定按顺序存放在第0槽;主存的第16块到第31块也分别对应Cache的第0组到第15组,放到第1槽中;同理,主存的第32块到第47块分别放到Cache的第0组到第15组的第2槽中,主存的第48块到第63块分别放到Cache的第0组到第15组的第3槽中。这样,第0到第63块都是没有冲突的,每块都是第一次在Cache中没有找到,然

28、后把这一块调到Cache对应组的某一块中,使得以后每次都能在Cache中找到。因此,每一块只有第一字未命中,其余都命中。主存的第64块到第67块分别对应Cache的第0组到第3组,此时,这4组的4个槽都已经满了,所以要选择一个字块淘汰出来,因为是采用LRU算法,所以,分别将最近最少用的第0块到第3块从第0槽中替换出来。再把第64块到第67块分别放到Cache中,每块也都是第一次在Cache中没有找到,调入后,以后每次都能在Cache中找到。因此,每一块只有第一字未命中,其余都命中。所以,总访存次数是4345次,未命中次数68次。命中率p =(4345-68)/4345=98.43%平均访存时间

29、 ta= 20p+200x(1-p)=19.69+3.14=22.83ns8、ROM是一种和RAM一样的随机存取存储器吗? 解析:是的。虽然经常把只读存储器ROM和随机访问存储器RAM放在一起进行分类,但ROM的存取方式和RAM是一样的,都是通过对地址进行译码,选择某个单元进行读写。所以两者采用的都是随机存取方式。不同的是:ROM是只读的,RAM是可读可写的。在程序执行过程中,ROM存储区只能读出信息,不能修改,而RAM区可以读出,也可以修改信息。9、寄存器和主存储器都是用来存放信息的,它们有什么不同? 解析:寄存器在CPU中,用触发器来实现,速度极快,价格高,容量只有几十个,多的机器也只有几

30、百个,主要用来暂存指令运行时的操作数和结果。主存储器在CPU之外,用MOS管电路实现,速度没有寄存器快,价格也比寄存器便宜,目前主存容量可以达到1GB左右,用来存放已被启动的程序代码和数据。10、存取时间Ta就是存储周期Tm吗? 解析:不是。存取时间Ta是执行一次读操作或写操作的时间。分为读出时间和写入时间。读出时间为从主存接受到有效地址开始到数据取出有效为止的时间;写入时间是从主存接受到有效地址开始到数据写入被写单元为止的时间。存储周期Tm是指存储器进行连续两次独立的读或写操作所需的最小时间间隔。所以存取时间Ta不等于存储周期Tm。通常存储周期Tm大于存取时间Ta。对于破坏性读出DRAM,T

31、m约为Ta的两倍。11、主存和Cache分块时,是否字块越大,命中率越高? 解析:不是。字块大,可以充分利用程序访问的空间局部性特点,字块大使得一个比较大的局部空间被一起调到Cache中,因而可以增加命中机会。但是,字块不能太大。主要原因有两个:(1)字块大使失效损失变大,也就是说,如果不命中的话,需花更多时间从主存读块。(2)字块太大,则Cache项数变少,因而,命中的可能性变小。12、指令和数据都是放在同一个Cache中的吗? 解析:现代计算机系统中,一般采用多级的Cache系统。CPU执行指令时,先到速度最快的一级Cache (L1 Cache) 中寻找指令或数据,找不到时,再到速度次快的二级Cache

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1