计算机组成原理 之 第三章存储器

本文介绍了计算机存储器的基本组成,包括主存、辅存和IO,以及存储器的层次结构,如Cache和虚拟存储系统。讨论了存储器的分类,如半导体、磁性和光介质材料,以及RAM、ROM和Cache的区别。此外,还详细阐述了主存储器的组成,存储芯片的构造,以及SRAM和DRAM的差异。文章还涉及了ROM芯片的类型,主存与CPU的连接方式,以及双端口RAM和多模块存储器的优化策略。最后,提到了磁盘存储器的性能指标和虚拟存储器的概念,特别是页式存储器和虚拟存储器的工作机制。
摘要由CSDN通过智能技术生成

1. 存储器的基本组成

主机:运算器+控制器+主存储器、 IO:输入+输出

存储器:主存(主机)+辅存(IO)

2. 存储器的层次结构

        外存、辅存、内存、高速缓冲存储器(Cache)、寄存器(操作数的存储)

(1)主存-辅存(硬件+操作系统,虚拟存储系统):解决主存容量不够的问题,辅存的数据需要调入内存才能被CPU访问

(2)Cache-主存:解决了主存与CPU速度不匹配的问题

3. 存储器的分类

(1)存储介质:半导体、磁性材料、光介质

(2)存取方式:RAM(随机存取存储器,如内存条)、SAM(顺序存取存储器,如磁带)、DAM(直接存取存储器、磁盘)【都是按照地址访问,DAM具有随机存取和顺序存取的双重特性】CAM(相联存取存储器,按照内容检索,如快表)

(3)信息的可更改性:读写存储器、只读存储器(蓝光光碟、ROM)

(4)信息的可更改性:易失性存储器(主存、cache)、非易失性存储器、破坏性读出(DRAM、读出数据要进行重写)、非破坏性读出

4.存储器的性能指标

(1)存储容量

(2)单位成本

(3)存储速度:数据传输率(数据的宽度(存储字长)/存取周期(存取时间+恢复时间))

4. 主存储器的基本组成

(1)存储元(MOS)存储体(存储元矩阵)

        a. 存储元:MOS管(达到一定的电压才通电、造就半导体的特性)+电容

        充电:MOS管和电路都接通5V的电压,即为充

        放电/读取:MOS管接通5V,电路接0V,更具电路的电流情况,判断电容的电位

        b. 存储字由8个(存储字长)存储元构成

        c. 存储体:存储元矩阵

(2)利用地址寄存器在存储体中取数据「见存储芯片构造图」

        a. MAR->译码器->某条字选线接通

        b. 8位存储元的信息通过8条数据线(位线)流入MDR,或从MDR流出

        c. 控制电路(优化):保证电信号稳定,才进行MAR、译码器、MDR的数据读出、读写控制线、片选线(芯片使能\选择信号(CE'\CS'))

        d. 以上操作完成了一次数据的存取

        e. 片选线的作用:一个内存条有多个存储芯片

(3)存储芯片的构造、大小、寻址

        a. 存储芯片的引脚:

                地址线数据线片选线(使能)、读写线、供电引脚、接地引脚

        b. 存储芯片大小的描述:n*8位的存储芯片,n = 8k(2^13)\64(2^16)k(存储单元数量)                                           

        c. 寻址:若字长位4B,按字节\字\半字\双字寻址,每个单元分别为1B\4B\2B\8B

5. SRAM 和 DRAM

        S:静态,D:动态;DRAM用于主存,SRAM用于Cache

        RAM:Random Access Memory随机存取存储器(存取时间与地址无关,区别于SAM)

(1)元件区别(栅级电容、双稳态触发器)

(2)对比

 

(3)DRAM的刷新(电容的电荷只能维持2ms,由元件特性决定)、采用行列地址(减少选通线):分散刷新、集中刷新、异步刷新

 

6. ROM芯片

        (1)区别RAM与ROM(是否具有易失性)

        (2) ROM的分类:MROM(定制不可重写)->PROM(不可重写)->EPROM(可擦除UV-、E-)->Flash Memory(闪速存储器,SD、U盘)->SSD(固态硬盘)

         (3)BIOS芯片(安装操作系统):统一编址

        (4)ROM总结 ​​​​​​​       

 

 7. 主存与CPU的连接

        (1)MAR与MDR通常集成在CPU内部

        (2)支持位扩展和字扩展

        (3)复习存储芯片的基本构造

 

         (4)位扩展与字扩展(线选法(CE都为使能)、译码片选法)、字位同时扩展

 

 

  

 

         (5)译码器:接受CPU的使能信号,保证稳定,即决定地址有效时间(RAM的读周期不等于地址有效时间段),74ls138芯片

8. 双端口RAM和多模块存储器

        问题:DRAM的恢复时间较长(存取周期 = 存取时间+恢复时间)

        改进策略:双口RAM、多模态存储器,实际应用:’双通道内存‘

         (1) 双端口RAM

        两套数据线、地址线、控制线,遇到冲突时(有cpu写)置忙并关闭一个端口 

        (2)多体并行存储器(低位交叉编址的多体存储器)将连续的地址放在m根内存条中,当存储周期T/存取时间(总线传输周期)r <= 模块数m时,最大程度发挥了存取的效率

         (3)多体并行存储器 和 单体多字存储器(位扩展)都能提高存取的效率

9.磁盘存储器

        (1)外存储器,主要使用磁表面存储器

        (2)磁盘的存储区域:1.磁头数 2.柱面数 3.扇区数

        (3)磁盘驱动器、磁盘控制器

        (4)性能指标:

                1. 格式化容量(非格式化容量)

                2. 道密度、位密度(每条磁道的存储容量相同,越靠里的磁道越高)面密度(道密度*位密度)

                3. 平均存储时间(寻道+旋转延迟(默认半圈)+传输时间+磁盘控制器延迟)

                4. 数据传输率:磁盘存储器在单位时间内向主机传输的字节数(D = rN)

        (5)磁盘编址:驱动器号、柱面号、盘面号、扇区号

        (6)磁盘冗余阵列:RAID0(多体并行存储器)、RAID1(完全copy)、RAID2(多体并行存储器+3位海明校验码)

(5)

​​​​​​​​​​​​​​

 10.固态硬盘SSD (重点为读写性能特性:块、页???、磨损均衡技术 )

11. 重点:Cache

(1)Cache的基本概念与原理

        a. 解决内存与CPU速度不匹配的问题:改DRAM为SRAM        

        b. Cache被集成在CPU里(只有几MB大小)

        c. 局部性原理:指令和数据有具有空间局部性、时间局部性(循环结构);代码的空间局部性也有差别

        d. 主存与Cache之间以‘块’(页\页框\行\Cache行)为单位进行数据交换,​​​​​​​比如下图交换8个块,交换策略(映射关系、保证一致性)*

        e. 引入Cache命中率的概念(分为同时访问Cache和主存、不同时访问)

(2)Cache与主存的三种映射关系(全相联映射’随意放‘、直接映射、组相联映射)

        a. 全相联映射:任意块能存放在任意地方

        直接映射:Cache块号 = 主存块号 % Cache块数

优缺点:灵活性变差,有效位*可以减少3位(以Cache块数=8计算)

        组相联映射:Cache组块号 = 主存块号 % Cache组数,(同组随机挑一个)

折中方法:即命中率(自由度) 与对比速度的平衡

        b. 有效位与标记:只有有效位为1内容才有效,标记:记录映射的主存块号

        c. CPU如何取数据(如何判断Cache是否命中):1⃣️先用地址中的块号(即计算出来的地址前n位)与cache的有效位进行对比且有效位为1,则命中。2⃣️若不命中则正常走主存。​​​​​​​

  

​​​​​​​(3)Cache替换算法

        ​​​​​​​直接映射不用考虑替换算法:如果对应位置非空,直接替换即可,组相联映射和全相联映射可使用以下四种替换算法:

 先进先出算法(FIFO):容易出现抖动现象,只管何时进入、不关心进入后的使用情况

最近最少使用算法:LRU(实际最好,也可能出现抖动):关键在于巧妙设计的计数器,范围为Cache行数,刚命中\取出的Cache块置为0,其余Cache块则为1,2,3……递增且不重复

最不经常使用算法LFU算法(实际没有LRU算法好):打视频完相关指令难以清除(计数器很大)

(4)Cache写策略

        CPU修改了Cache中的数据副本,如何确保主存中的数据母本一致性

 ​​​​​​​        a. 写命中-写回法:当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有换回的时候才写回,用脏位记录是否被修改过,但是存在数据不一致的隐患

         b. 写命中-全写发(写直通法):对Cache与主存(写缓冲,SRAM实现的FIFO队列)同时写(对于主存有一个写缓冲,CPU做其他事情时再缓慢写入主存);

        CPU的写速度很快,但可能会出现写缓冲饱和而发生阻塞。

        c. 写不命中-写分配法:1.调入Cache而不修改 2.配合写回法

        d. 写不命中-非写分配法:1. 不放回Cache直接在内存中修改(只有读才会调入Cache)2. 配合全写法

         多级Cache实例:多级Cache之间使用全写发与非写分配法,Cache与主存之间使用写回法与写分配法。

12. 虚拟存储器

(1)页式存储器

        a. 为了提高存储效率,使得进程可以离散的存储,因此将进程拆分为多个页面(页和块的大小相同)。

        b. 何为逻辑地址(逻辑页号+页内地址),逻辑地址与物理地址的关系映射表——页表(页表存放在主存中,没进行一次地址转换都要进行一次访存操作,每一行叫做页表项)

        c. 地址转换过程——页表(访存操作):按照页表基地址寻找到页表,再将逻辑页号转化为物理页号。

        d. (优化)由于页表的查询是访存操作,耗费时间大,结合局部性原理,因此定义了块表(Cache),加快了逻辑页号的转化

(2)虚拟存储器(只做简单的了解,主要的内容在操作系统)

        辅存与主存之间 与 主存与Cache之间 相似

        如:

        访问位为页面替换提供依据(等同于Cache中的‘计数器’,记录LRU算法中最近访问的时间间隔);

        有效位即为数据是否存在于主存中,存在即直接利用主存块号访问该地址,不存在则利用外存块号访问外存,也可能调入主存(等同于Cache的‘有效位’,表示‘标记’中记录的物理地址是否存在于Cache中,如果没有则不命中);

        脏位也等同于Cache中的脏位;

        不同的是Cache不存在类似页表的结构,而是直接标记Cache行,而内存中的页表则直接将信息汇总

 块表TLB命中则Cache一定命中吗

 (3)段式虚拟存储器与页式虚拟存储器、段页式虚拟存储器(重点在操作系统里)

        段式虚拟存储器 与 页式虚拟存储器 的不同在于 不进行固定大小的页面拆分,而是按照进程的功能模块拆分,段表(对应页表)中记录的是段首址段长(对应)

段页式虚拟存储器:将程序块又按页大小分为不同的页(详情见操作系统)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值