《计算机组成原理》——存储器层次结构学习笔记(一)


一、相关概念

1.局部性原理

①时间局部性
定义:某个数据项在被访问之后可能很快再次被访问的特性。
解释:如果某个数据项被访问,那么在不久的将来可能再次被访问。
举例:当我们在图书馆读书,从书架上取来一本书放在了自己的书桌上,我们很有可能会很快再次翻阅它。
②空间局部性
定义:某个数据项子啊被访问之后,与其地址相近的数据项可能很快被访问的特性。
解释:图书馆经常将同一类的书放在一起,便于读者查询,当我们找到一本需要的书时,其附近的书也很有可能很快被我们用到。

2.存储器的层次结构

我们利用局部性原理将计算机的存储器组织成存储器层级结构。
定义:一中由多存储器层次组成的结构,存储器的容量和访问时间随着离处理器距离的增加而增加。
图片来自于《计算机组成与设计:硬件/软件接口》图5-1
越靠近处理器的存储器越快、越小、每位价格越高;
相反越原理处理器的存储器越慢、越大、每位价格越低。

存储器层次可以由多层构成,但数据每次只能在相邻的两个层次之间进行复制。
我们将一个两级层次结构中存储信息交换的最小单元称为

3.命中与缺失

①如果处理器需要的数据存放在高层存储器的某个快中,则成为一次命中;反之,若在高层存储器中没有找到所需要的数据,本次数据请求则成为一次缺失
②命中率(命中比率):在高层存储器中找到数据的存储访问比例。命中率通常为衡量存储器层次结构性能的标准。
③缺失率:(1-命中率)在高层存储器中没有找到数据目标的存储访问比例。
④命中时间:访问某存储器层次结构所需要的时间,其中包括本次访问是命中还是失效的判定时间。
⑤缺失代价:将相应的块从地层存储器替换到高层存储器所需要的时间。包括访问块将数据逐层传输将数据插入发生缺失的层将信息块传送给请求者的时间。

4.局部性与存储器的层次结构

①存储器层次结构利用了时间局部性,将最近被访问的数据项放在靠近处理器的地方,以便在不久的将来再次访问。
②存储器层次结构也利用了空间局部性,将一些包含连续字的块移动到存储器层次结构的较高层次,以便接下来访问其邻近数据项。

补充:在存储器的层次结构中,距离处理器越近的层次容量越小而速度越快。因此当数据在层次结构的最高层命中时,可以很快被处理器处理;而当缺失时,处理器需要访问容量大但速度慢的低层存储器层次。所以当命中率足够高时,整个的存储器层次结构对处理器来说,就拥有接近最高层的处理速度和最低层的容量。

二、存储器技术

1.前言

构建存储器层次结构的主要有四种技术:
①SRAM(静态随机存取存储器):构成靠近处理器的层次。
②DRAM(动态随机存取存储器):主要用来构成主存储器(主存)。
③闪存:一种非易失性存储器,常用作个人移动设备中的二级存储器。
④磁盘:通常是服务器中容量最大且速度最慢的一层。

补充:RAM中的R指“随机”,其含义为:访问任意地址单元的时间是相同的。

2.SRAM技术

SRAM是一种组织成存储阵列结构的简单集成电路,对任何数据访问时间都是固定的。

SRAM的一个基本存储单元通常由6-8个(一般为6个)晶体管组成。其相对稳定,不容易收到干扰,在空闲模式下仅需最小的功率来保持电荷,不需要刷新。

任何一个SRAM都有三组信号线与外部打交道:
①地址线:地址线决定了存储器的容量,对于有n条地址线的存储器,其容量为2n个存储单元。
②数据线:数据线的数量制定了存储器的字长,对于有n条数据线的存储器,其字长为n位。
③控制线:指定了对存储器进行读操作还是写操作。
(例如R/ W \frac{}{W} W,表示高电平时进行读操作,低电平进行写操作)

3.DRAM技术

DRAM使用电容保存电荷的方式存储数据。其每一位都只是用一个晶体管(对比SRAM需要使用6个),密度比SRAM要高很多,因此容量一般比SRAM大得多。

DRAM在电容上保存电荷,由于漏电等原因不能长久地保持数据(一般只能保持几微秒),从而必须周期性地刷新,这也是动态随机存取存储器中“动态”的原因。

刷新:为了对单元进行刷新,我们只需要将其中的数据读出来后重新写入即可。但如果DRAM中的每个位都需要独立地读出/写入,那么则陷入“死区”,即所有的时间都用来进行刷新操作,而没有时间用于正常的访问操作。为了解决这个问题,DRAM采用了亿中两级译码结构,可以通过在一个读周期后紧跟一个写周期的方式一次刷新一整行

常见的三种刷新方式
前提说明:由于刷新相当于进行一次存取过程,所以刷新一行的时间=存取周期
①集中刷新
集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新。
若采用集中刷新,则在一个刷新周期钟,所有行全部刷新完毕之前不能进行任何的存取操作,因此刷新时间又称为“死区”或“死时间”。
集中刷新的效率是非常低的,当行数较多时甚至会出现无法相应处理器存取指令的情况。
优点:速度高,刷新快
缺点:存在死区,行数较多时死时间很长

②分散刷新
分散刷新:是指对每行存储单元的刷新分散到每个存储周期内完成。
可以简单理解为对哪一行进行读写操作,就对哪一行进行刷新。
同时,分散刷新将刷新放到存取周期内进行,即扩大了存取周期(由于刷新时间=存取时间,故此时存取周期为原来的两倍)。
对于分散刷新来说不存在死区。
原因:死区是由于存储器在刷新时不能相应处理器的请求而阻塞的时间。而此时将刷新放在了存取周期内,存取周期中既包含了读写时间,也包含了刷新一行的时间,对于处理器来说是看不到刷新时间的(可以理解为每个存取周期是个原子周期,以处理器的角度来看一直在进行存取操作),所以才没有死区。
优点:消除了死区
缺点:存取周期延长,导致整个系统的速度降低

留个疑问(待解决):分散刷新是在存取操作后进行刷新,若有某行长时间未进行读写操作,会不会出现不刷新导致数据丢失的情况?

③异步刷新
异步刷新:将每一行的刷新都分开来看,只要在规定的时间完成对每一行一次的刷新就可以。
举例:对64*64的矩阵刷新,存取周期为0.5us,每行需要在2ms内刷新一次。此时每经过(2/64)ms刷新一行,就可以保证2ms内将所有的64行都进行了一次刷新。
对每一行来说,其都要间隔64个周期才会被再次刷新。

对于异步刷新来说,死区仍然是存在的,但死时间被大大缩短,以刚刚的例子来说,每次刷新时会有0.5us的时长不能相应处理器操作,因此死时间为0.5us。

有关于DRAM的刷新方式,还可以参照其他几位大佬写的几篇非常优秀的博客,链接如下:
https://blog.csdn.net/qq_43610614/article/details/105660357
https://blog.csdn.net/qq_40627648/article/details/83626288

4.闪存

闪存是一种电可擦除的可编程只读存储器(EEPROM)
在对闪存进行写操作时,会对存储位带来损耗。(相较之下,磁盘与DRAM不必担心此问题)
解决方案:大多数闪存产品中会带有一个控制器,用来将写操作从写入次数较多的块映射到写入次数较少的块中,从而使写操作尽量的分散,这种技术称为损耗均衡
优点:虽然均衡技术降低了闪存的潜在性能,但不需要再高层次的软件中监控块的损耗情况,所以不必担心影响高层的效率。同时,闪存控制器的损耗均衡也实现了将制造过程中出错的存储单元进行屏蔽,从而提高成品率。

5.磁盘存储器

待补充,留空。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值