收藏 分享(赏)

第五章 存储系统.doc

上传人:gnk289057 文档编号:6994756 上传时间:2019-04-29 格式:DOC 页数:11 大小:206KB
下载 相关 举报
第五章 存储系统.doc_第1页
第1页 / 共11页
第五章 存储系统.doc_第2页
第2页 / 共11页
第五章 存储系统.doc_第3页
第3页 / 共11页
第五章 存储系统.doc_第4页
第4页 / 共11页
第五章 存储系统.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、第五章 存储系统一、存储器的分类1、按存储介质分类半导体存储器(SemiConductor Memory,SCM) 体积小、功耗低、速度快磁表面存储器(Magnetic Surface Memory,MSF) 非易失、价格低廉光介质存储器(Ferro electric Memory,FeM) 记录密度大2、按访问周期是否均等分类随机访问存储器(Random Access Memory,RAM) 访问时间与存储位置无关顺序访问存储器(Serial Access Storage,SAS ) 访问时间与存储所在位置有关3、按访问类型分类可读/写存储器(亦称为 RAM)只读存储器(Read Only

2、Memory,ROM )4、按在计算机系统中的作用分类主存(亦称为内存) 通常在计算机系统中的内部辅存(亦称为外存) 通常在计算机系统中的外部,有时可以看作外部设备高速缓冲存储器(Cache)* 计算机存储系统的层次结构* 局部性原理(1)时间局部性:现在正在访问的信息可能马上还会被访问到(2)空间局部性:现在正在访问的信息,与之相邻的信息可能马上也会被访问到二、半导体存储器1、基本结构地址线位数由地址空间决定,如空间大小 1K(即 210) ,则地址线 10 位片内Cache寄存器片内CacheCPU主存 辅存从左至右容量依次增大、速度依次减慢、每位价格依次降低存储阵列译码驱动读写驱动地址线

3、数据线CS R/W数据线位数由存储单元决定,如存储单元字长为 8,则数据线 8 位* 译码驱动方式(1)线性译码,亦称单译码,即只有一个译码器特点:控制简单、速度快、但地址空间较小(2)多重译码,即包含多个译码器,只有当全部译码器选中才工作特点:控制复杂、地址空间大2、随机访问存储器 RAM(1)静态 RAM(Static RAM,SRAM )特点:存储一位二进制数需要 6 个三极管(触发器工作原理)速度快、控制简单、容量小(2)动态 RAM(Dynamic RAM,DRAM)特点:存储一位二进制数仅需要 1 个三极管(靠三极管的极间电容存储数据)速度略慢、控制复杂、需要刷新和重写操作、容量大

4、3、动态 RAM 的刷新* 原因:利用极间电容存储数据,电容会自放电* 周期:2ms,超过 2ms 不重新写入,原数据不可读* 方式:按行(或列)完成,即一次刷新完一行(或一列)(1)集中式刷新集中一段时间逐行刷新完整个存储阵列(由于刷新时无法进行读写操作,此段时间亦称为死时间)特点:实现简单(定时电路按时触发) 、存在死时间(2)分散式刷新扩展每个存储周期,读写操作后自动刷新一行(因此新的存储周期是原来的 2 倍)特点:对外无死时间、速度变慢、刷新操作过于频繁静态 RAM 与动态 RAM 的比较(1)动态 RAM 的优点(相对静态 RAM 来说)集成度高、容量大、地址可以分批写入、芯片引脚变

5、少、功耗低、价格低(2)动态 RAM 的缺点(相对静态 RAM 来说)需要刷新操作、需要重写等辅助电路、速度慢应用范围:一般来说,主存广泛使用动态 RAM,高速缓存采用静态 RAM4、只读存储器 ROM(1)掩膜 ROM(Masked ROM,MROM )生产厂家在生产芯片时,利用掩膜工艺,把需要的数据直接存入芯片内。芯片生产后,内部数据无法更改,典型意义的 ROM(2)可编程 ROM(Programmed ROM,PROM)内部由厂家设置熔丝,需要时可用特殊的写入电压把相应的熔丝熔断(该操作称为编程写入) ,熔丝熔断后无法再次设置,因此只可写一次(3)可擦除 PROM(Erasable PR

6、OM ,EPROM)内部的电子三极管栅极具有浮动栅,不设置浮动栅,正常的导通操作;设置浮动栅则阻碍导通。根据需要设置相应的浮动栅(由特定的写入电压完成) ,即写入相应的数据,如不需要用紫外线照射,电子获得能量后浮动栅去除,所以可以多次写入擦除(4)电可擦除 PROM(Electrically EPROM ,EEPROM 或 E2PROM)擦除操作不需要紫外线,直接用特定的电流完成,操作更简单* 闪存(Flash Memory )可以理解为一种快速的 EEPROM,即闪速存储器三、主存储器* 由 DRAM 芯片(通常为多片)构成,主要考虑速度、容量和价格的平衡1、容量的扩展(1)扩位连接:扩展数

7、据例:用芯片 2114(1K4)组成 1K8 的存储器分析,2114 有 10 根地址、4 根数据,要组成的存储器需 10 根地址、8 根数据,则从数量上看需要 2 片 2114,共同构成 8 位数据,工作时一起操作。连接图见下图:(2)扩字连接:扩展地址例:用芯片 2114(1K4)组成 2K4 的存储器分析,2114 有 10 根地址、4 根数据,要组成的存储器需 11 根地址、4 根数据,则从数量上看需要 2 片 2114,共同构成 2K 个存储单元,工作时一次只一片操作,由高位地址片选控制。连接图见下图:(3)即扩字又扩位:即扩数据又扩地址,上述二者的结合方法同上,具体略例:设 CPU

8、 共有 16 根地址线,8 根数据线,并用 MREQ(低电平有效)作访存控制信号,R/W 作读/写控制信号(高电平读、低电平写) ,现有 8 片 8K8 位的 RAM 芯片。完成下列要求:* 用 74LS148 译码器画出 CPU 与 RAM 的连接图。2114 2114A9A8A0D4D0D3D7A8A10A9A0D0D3CS2114 2114CS* 写出每片 RAM 的地址范围* 如果运行时发现无论往哪片 RAM 写入数据时,以 A000H 为起始地址的存储芯片都有与其相同的数据,分析其原因。连接图见下图:各片 RAM 地址范围如下:0 片:0000H1FFFH1 片:2000H3FFFH

9、2 片:4000H5FFFH3 片:6000H7FFFH4 片:8000H9FFFH5 片:A000HBFFFH6 片:C000HDFFFH7 片:E000HFFFFH以 A000H 为起始地址的存储芯片为第 5 片,片选信号为 Y5,当无论往哪片 RAM 写入数据时,其都有相同的数据写入,说明其片选一直有效,如不考虑其他,可能 Y5 接地。2、几个主要的技术指标(1)存储容量存储单元个数存储字长* 为了便于相互比较,现在习惯上把存储字长转换为 Byte(8 位)的倍数。(2)速度* 存取时间:启动一次操作到完成该操作的时间(仅与器件本身有关)* 存储周期:在系统中,存储器进行两次连续独立操作

10、的最小间隔时间(与所在系统有关) ,通常存储周期的值要大于存取时间(3)带宽:单位时间内存储器完成的最大数据传输位数CPUA14A15A0A12A13D0D7R/WMREQ0 片 1 片 7 片G1G2BG2AY1Y0Y7CBA* 是一个速率值,单位时间通常取 1 s* 是理论上的最大值(即峰值) ,在实际中一般很少出现例:若某存储器一次读写操作最大可以传输 16 位,存储周期为 500ns(10 -9s) ,求该存储器的存储带宽。分析,一次操作 16 位,即 2Byte;一秒内最多可以完成 1s/500ns210 6 次存储操作;则存储带宽(210 6)2Byte4MB/s注意:在数值计算时

11、,因 210=1024,近似为 1000(即 103) ,所以 103 有时可缩写为 1K,同理 106 可缩写为 1M,看清前后上下文。3、主存储器的地址分配(1)字节地址和字地址* 主存的编址原则:按字节编址(一个 8 位数据对应一个物理地址)即不论机器的具体组织结构,一个地址就对应 1Byte(8 位二进制数)* 存储字:主存为了提高工作速度,实际一次访存数据要大于 8 位(通常为 Byte 的整数倍数) ,对应存储器的具体组织结构,一般称一次实际访存所对应的组织结构为存储单元(亦称存储字) ,该单元内存放的二进制数的位数值为存储字长。示例如下图:上图一个存储单元内含 4 个字节,对应字

12、节地址值为方框内数据,每个存储单元前的数据为字地址值。字节地址和字地址变换关系见下表(字节地址字长取 8 位):字节地址值(字节地址去掉 2 位后即变为字地址)十进制地址值字地址值 位置值0 000000 001 000000 012 000000 103 000000 114 000001 005 000001 016 000001 107 000001 118 000010 00上表每 4 行一组(对应示例图中的 4 个字节构成一个存储字) ,则每组内前 6 位相同(正好对应为存储单元的字地址) ,后两位依次变化,对应为每个存储字内的不同位置值。如每个存储单元由 8 个字节组成,则字节地址

13、后三位为位置值,去掉三位剩下的为字地址。0 1 2 34 5 6 78 9 10 11012(2)大端(Big endian)存储和小端存储(Little endian)* 小端:地址按从小到大排列,最低有效地址在前面(代表机型 Intel 系列)即 8086 汇编语言所说的:高高低低原则* 大端:地址按从小到大排列,最低有效地址在后面(代表机型 IBM370 系列)例:十六进制数 12345678H 存放在地址 100H 处,示例图如下:注意:无论大端存储还是小端存储,在高级语言编程中不可见;仅在底层数据传输时需考虑此问题。4、提高访存速度的措施(1)多端口 RAM两套或多套独立的读写逻辑,

14、可并行操作(2)单体多字一次访存,同时读出或写入多个存储字(提高了访存带宽)如连续操作相邻的地址单元,则效果明显,如连续操作跳跃的地址单元,效果不明显(3)多体并行多个存储体操作,并行效率高,但控制复杂分为高位地址交叉和低位地址交叉两种模式访存优先级原则:* 易发生代码丢失的优先级高 (一般来说 I/O 操作 CPU 操作)* 严重影响 CPU 工作的优先级高 (一般来说写操作读操作,不是绝对的,看具体情况)四、高速缓冲存储器 Cache* 问题的提出:CPU 和主存的速度不匹配* 基于的理论:局部性原理(即某一时间段,被访问的主存地址分布集中在某一区域)1、相关的基本原理(1)基本逻辑关系图

15、* 主存、Cache 均划分为大小相同的块,操作时以块为单位(不同于主存以字为单位)* 块的大小要适中,一般为几个字至十几个字块太小,影响命中率;块太大,一次调入调出的时间开销大* 地址分为块号(高位)和块内地址(低位)两部分如果一个块大小为 8 个字,则块内地址为 3 位,其余情况依次类推* Cache 的每个块均会设置相应的标志状态(包含多位) ,用来判断是否命中7856341210010110210312345678100101102103小端存储 大端存储注意:Cache 容量越大,则命中率越高,但价格越昂贵(2)Cache 组成结构分类* 旁视式 Cache 结构特点:处理器即可访问

16、 Cache,又可访问主存;假设访问 Cache 的时间为 T1,访问主存的时间为 T2,则 Cache 命中时,系统操作时间为 T1,Cache 不命中时,系统操作时间为 T2(主存与 Cache 同时启动) ;每次操作均需占用系统总线,总线负荷大。* 透过式 Cache 结构特点:处理器不可直接访问主存;假设访问 Cache 的时间为 T1,访问主存的时间为 T2,则 Cache 命中时,系统操作时间为 T1,Cache 不命中时,系统操作时间为 T1T 2(主存与 Cache 不同时启动) ;总线负荷降低。(3)完整的读数过程(以旁视式 Cache 结构为例,透过式 Cache 结构略有

17、不同)主存块号 块内主存地址 MAR块内Cache 块号Cache 地址MAR块 0块 1块 2块 n主存块 0块 1块 m标记Cache处理器Cache主存处理器 Cache 主存* 地址映像变换机构:把主存地址进行变换,判断是否能生成 Cache 地址能映像(即可以变换,称为命中) ,生成相应的 Cache 地址,访问 Cache不能映像(即无法变换,称为失效) ,无法访问 Cache,只能访问主存* 块替换机构:当 Cache 装满时,再需装入新块,要替换哪个块* 多字宽数据总线:Cache 体系所特有的结构,块不是一字一字写入的,而是一次直接写入的(主要考虑减小延迟、减小失效开销,硬件

18、开销增大)注意:透过式 Cache 结构操作上的几点不同* 透过式结构仅在映像地址失效后,才启动主存(主存启动次数少,主存利用效率高)* CPU 无法直接访问主存,必须调入 Cache 后,CPU 才能访问到相应的数据(失效开销大)* 多核系统比较常见此种结构(每个核对应一个 Cache,主存安全性较高)2、地址映像方式(Address Mapping)(1)直接映像(相当于对号入座)* 主存的块号直接决定映射 Cache 的位置* 硬件实现简单,主存的后几位地址即为 Cache 地址,只需一个比较器即可判断命中* Cache 的利用率相对较低,即使有空的槽位,依旧替换(2)全相联(相当于随便

19、入座)* 主存的块可以对应 Cache 的任意位置,没任何限制* Cache 的利用率相对较高,只要有空的槽位,即可装入* 硬件代价高,需要一个庞大的相联比较器,实际上无法实现(3)组相联(上述二者的折中)* Cache 分若干组,组内全相联映射,各组之间直接映像* 硬件代价不是很高,实际上最多 8 路相联判断是否有空块?有 无确定相应的空置位置算法决定替换的位置确定块位置访问主存相应块存入 Cache的指定的位置CPU 发主存地址地址映像变换命中 失效生成 Cache 地址访问Cache启动主存(同时)如失效则继续* 各组内编号相同的块可以组成一个逻辑结构,称为路,8 路即组内有 8 个块具

20、体映像逻辑图如下:(1)直接映像(2)全相联映像块 0块 1块 2K-1块 0块 1块 2K-1块 0块 1块 2K-1区 0区 1区 2m-1主存块 0块 1块 2K-1Cache标记 m 位块内Cache 块号 Cache 地址块内主存块号区号 主存地址b 位K 位m 位标记比较器块 0块 1块 2K-1块 2n-1主存块内Cache 块号 Cache 地址块内主存块号 主存地址b 位n 位标记块 0块 1块 2K-1Cache标记 n 位比较器比较器比较器相联比较器(3)组相联映像(以 4 路组相联为例)3、替换算法(1)先进先出(FIFO):最先进入的块最先替换例:假设 Cache 只

21、有 4 个块,采用全相联映射,初始为空状态,块号调入次序为:1、2、4、6、1、3、1,示意图如下:* 实现简单,只需一个循环移位器,循环指示要替换的位置即可* 命中率相对较低,会出现颠簸现象(2)近期最少使用(LRU,Least Recently Used)上例示意图如下:块 0块 1块 2C-1块 0块 1块 2C-1块 0块 1块 2C-1区 0区 1区 2m-1主存块内主存块号区号 主存地址b 位C 位m 位标记C 位Cache 地址块内Cache 组号 路号2 位 b 位比较器 比较器 比较器 比较器4 路相联比较器000标记m 位111222333组 0组 1组 2C-10 路 1

22、 路 2 路 3 路11122124412466124613246331461命中11122124412466124611346313461命中 命中* 命中率相对较好,不会出现颠簸现象* 硬件实现复杂(3)随机法* 随机选中一个块作为替换块* 硬件代价最小* 模拟实现表明,命中率差的不多,所以在实际中也经常被采用4、写入策略* 读数操作(不改变原内容) ,即 Cache 与主存可以保持一致* 写数操作(改变相应内容) ,如何保持 Cache 与主存的数据一致,实际上写入策略主要考虑的就是数据一致性。(1)写命中时写数的地址可以映像到 Cache 中,当然主存中肯定有(即主存和 Cache 同

23、时存在) ,实现时有下面两种方法:* 写穿法(Write_Through,有时亦称写直达法)主存和 Cache 同时一起写,写入时间按慢速设备为基准(即主存的时间) ,所以速度慢;但可以保证数据时刻一致,安全性高。* 写回法(Write_Back)操作时,只写 Cache,在相应块设置标志位(习惯上称脏位,Dirty Bit) ,在该块替换时回写主存,所以速度较快;但某时间段,主存和 Cache 数据不一致,安全性较差。(2)写失效时写数的地址无法映像到 Cache 中,此时数据只在主存中(即 Cache 里不存在) ,因此只需操作主存(速度也只能以主存为基准) ,需要考虑是否把该块调入 Ca

24、che(根据局部性原理,下一个操作数据也可能在此块中,但写数操作不同于读数操作,即写数操作随机性较大,所以下一个数据也可能不在此块中) ,具体分配方法有下面两种:* 按写分配写主存的同时,相应块调入 Cache,因此命中率相对较高,但通信开销大。* 不按写分配只写主存,相应块不调入 Cache,通信开销小,但命中率相对较低。5、Cache 体系的性能评价(1)命中率 HR CR其中 RC 代表命中的次数,R 代表总的访存次数(2)平均访问时间在 Cache 体系中包含 Cache 和主存两个部件,它们的访问时间分别为:T C 和 TM则: TaH TC(1H )T M (旁视式)TaH TC(1H ) (T CT M) (透过式)(3)加速比 SPT MT a表示采用 Cache 后,系统的性能比没采用 Cache 时性能提升的倍数(4)效率 ET CT a因为不管命中率提升到多高,Cache 体系总会包含访问主存的时间,此参数表示 Cache 体系的性能和单纯访问 Cache 的时间的接近程度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报