存储器_存储器

定义

计算机系统中的记忆设备,用来存放程序和数据

分类

存储器_存储器_02

ROM:只读存储器

RAM:读写存储器和随机存取存储器。分为静态随机存取存储器(SRAM)和​动态随机存取存储器(DRAM)

层次化结构

存储器_存储器_03

工作原理解释:

层次化结构的存储器也被称为​虚拟存储器​(并不是单独一个存储器所能够实现)


外存的存储空间很大,但是​处理速度很慢​,如果要执行程序,采用分时执行程序,首先在​操作系统(OS)​控制下,将外存中的即将执行一部分程序提取到内存中执行,然后在​CPU​的控制下,将内存中的一部分程序复制到cache中执行,运算后将结果向下传输。既可以拥有很快的速度,又可以拥有很大的存储空间

层次化结构要满足条件

(1)​一致性原则​:不同层次之间,值不能不同

(2)​包含性原则​:上层执行程序是下层存储空间存储的一部分的复制品

存储器_存储器_04

操作

存储器_存储器_05

相关概念

存储器_存储器_06


通俗解释

 ​存储元件:使用一位二进制表示两种不同的状态

 ​存储单元​:多个存储元件主城(多个为二进制位)

 ​存储器​:有多个存储单元组成的器件

静态随机存储器(SRAM)

存储器_存储器_07

存储元是一个触发器,有两个稳定的状态

存储器_存储器_08

存储器_存储器_09

寄存器

分类​:​​​https://www.yebaike.com/22/508816.html​​​​​​

地址寄存器:

作用:​用来保存当前CPU所访问内存单元地址

必要性:​ ​在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止

地址译码器:

存储器_存储器_10

重点了解:双译码的译码方式(可以说是“方阵“或是“​二维​”),减少了选择线的条数

动态随机存储器(DARM)

存储器_存储器_11

是由MOS晶体管和电容器组成的单晶DRAM记忆电路

存储器容量的扩展

字、字长、字、字位的区别?

https://zhidao.baidu.com/question/809753406143885452.html​​​​​​

扩展方式

存储器_存储器_12

存储器的容量通过使用M*N来表示,M被称为​字数​,N被称为​位数

(1)位拓展

存储器的位数不够,因此需要进行位拓展,将已知的低位数存储器并行工作,​片选必须连在一起(及同时被选中或不选中)​,必须保证被同时选中.

通俗理解,就是一次要取出​新存储器​的所有位数,所以数据总线的条数要增加

存储器_存储器_13

注意​:数据总线是增加的(并行,同时工作,也可以理解为数据读取时一次读取八位二进制,所以需要八根数据线​)

(2)字拓展

存储器的字数(可以理解为单元个数)不够,因此需要进行字拓展,将已知的低字数存储器串行即可以,但是需要让多片给定芯片分时工作。

通俗理解,就是用到的时候就选择,如果用不到就不选择。(片选控制),存储器之间是​串型关系。

存储器_存储器_14

注意:​分时工作的实现是通过地址译码器所决定的片选来实现的。(通俗来讲,片选决定是否使用该存储器,而通过地址译码器决定具体片选通与断)

(3)字位拓展

已知的存储器位数和均达不到要求,所以既需要进行位拓展又需要进行字拓展。

存储器_存储器_15

如上图:

芯片内部地址总线:​10条

系统地址总线:​12条

芯片内部数据总线:​4

系统数据总线:​8条

编址范围(十六进制表示):

(1)0000H~03FFH

(2)0400H~07FFH

  (3)  0800H~0BFFH

(4)0C00H~0FFFH

存储器_存储器_16

只读存储器

存储器_存储器_17

分类:

  ​ ​可修只读存储器​和​不可修只读存储器

不可修只读存储器:ROM掩模存储器(狭义的)(只能被写入一次,不能再被修改)

可以修改只读存储器:EPROM(​紫外线擦除​)

具体擦除原理可以参考:https://mtoou.info/510.html​​

存储器_存储器_18

介绍

只能读出不能够写入的存储器

特点

信息写入后便不能再被修改,其会被固定在ROM中,即使电源断开,信息也不会改变​。

优点

具有不易失性(信息很难丢失)

适用场景

可以用来存放一些不需要修改的程序,如​应用程序​或​操作系统

提出疑问:如果其中的内容可以被修改,为什么不能用“随机存储器”来代替“只读存储器”呢?只读存储器存在的必要性是什么?

解答过程

https://zhidao.baidu.com/question/546396007.html​​



Flash存储器

存储器_存储器_19

说明:​其属于电可擦、可在线编程的非易失性只读存储器

分类

NOR型和NAND型

介绍

NOR为线性闪存,拥有独立的数据线和地址线,存储信息的可靠性高,由于其擦除和编程速度较慢,所以不太适合纯数据和文件存储,存储容量较小。

NAND为非线性闪存,数据线、地址线和控制线复用在同一组总线信号上,位成本低、密度高,由于工艺限制,存在较高的比特错误率,不能随机读出,价格低,容量大,可擦除次数远多于NOR

特点

(1)固有的非易失性

(2)廉价的高密度

(3)可直接执行

(4)固态性能

(5)高传输率

Cache高速缓存

存储器_存储器_20

存储器_存储器_21

(一)基本原理及相关计算

I.目的

为了解决​CPU与主存速度不匹配​而进行的一种重要技术

II.组成

高速的​SRAM和硬件​来实现

III.原因

为了平衡这种速度的差异,​cache的存取速度比主存快,但是容量却远小于主存​。cache 能够高速的向CPU提供指令和数据,加快了程序的执行效率。

IV.命中与不命中

CPU与cache之间的数据交换是以字为单位的,而cache与内存之间的数据交换是以块为单位的(​一个块由若干个字组成,是定长的​),当CPU读取一个字时,变发送​此字的地址(此地址在CPU中生成(由虚拟地址转化为物理地址))​发送给cache和主存。此时cache控制逻辑依据地址判断该字是否在cache中,如果在,则就是​cache命中​,反之就是​没命中。

问题引入:CPU在访问内存的过程中是如何生成地址的呢?

参考:https://zhuanlan.zhihu.com/p/36139950​​​​​

存储器_存储器_22

详情参考:

https://www.csdn.net/tags/MtjakgysNzY1NzktYmxvZwO0O0OO0O0O.html​​

(1)命中率

存储器_存储器_23

说明:​Nc​:cache完成存取的总次数

          ​Nm​:主存完成存取的总次数

          ​h​:命中率

(2)cache/主存系统平均访问时间

存储器_存储器_24

说明:

tc:命中时cache的访问时间

tm:未命中时的主存的访问时间

   ​(1-h)​:未命中率

(3)访问效率

存储器_存储器_25

说明:

r=tm/tc:主存与cache的访问时间之比

e:访问效率

为了提高访问效率,命中率h越接近1越好。

(二)映射算法

I.目的

为了解决从内存中调的程序如何在cache中存放的问题

II.方法如下

说明:主存所分的块的大小与cache所分得行的大小是一样的

(1)全相联映射方式
示意图

存储器_存储器_26

   ​将主存分为多个块,然后将“块号”和“块内容”一起传送到cach​e

中寻找空行,然后放到空行里。(​并没有什么规则​)

映射方法:主存内容可以拷贝到​任意行​(多对多:​一块对一行​)。

地址变换:标记实际上构成了一个目录表。

实例图

存储器_存储器_27

优点

冲突概率小,Cache的利用率高

缺点

比较器难实现,需要一个访问速度很快代价很高的相联存储器

适用场合

适用于小容量的Cache

检索过程图

存储器_存储器_28

(2)直接映射方式
示意图

存储器_存储器_29

将主存中的块多个(Cache的行号数)分为一个区,分为多个区,每个区的第一块均可以映射到Cache中的第一行,以此类推。

实例图

存储器_存储器_30

优点

比较电路少m倍线路,硬件实现简单,Cache地址为主存地址的低几位,不需变换。

缺点

冲突概率高(抖动)

适用场合

适合大容量Cache

检索过程图

存储器_存储器_31



(3)组相联映射方式
示意图

存储器_存储器_32

实例图

存储器_存储器_33

说明:不仅将内存分组,而且将Cache分组,不仅避免了冲突,也提高了效率

每个组(​主存​)的第i块可以映射到第i组(​cache​)中的v行中(​可以自由选择空余的行​)

存储器_存储器_34

检索过程图

存储器_存储器_35

总结

存储器_存储器_36

存储器_存储器_37

存储器_存储器_38

相关试题(1)

存储器_存储器_39

图形解析

存储器_存储器_40

注意:​主存所分的块与cache中的行的空间大小是一样的

相关试题(2)

存储器_存储器_41

(二)替换策略
目的

如果高速缓存区的已经存满,但是需要从内存中读取数据,应该如何做的问题

方法如下

存储器_存储器_42

(三)写回算法
目的

为了保证cache中的内容和和主存中的内容保持一致,需要通过一定的写回算法来实现。

方法如下

存储器_存储器_43

写回法

存储器_存储器_44

全写法

存储器_存储器_45

写一次法

存储器_存储器_46

虚拟存储器

在内存和外存之间的调用和访问中,需要解决三个问题:

(1)从外存中调入的程序应该放在内存的什么位置?(映射问题)

(2)如果内存空间已经满了,应该如何处理?(替换策略)

(3)如果内存中的程序发生了变化,外存中的数据或程序该如何变化?(写回算法策略)

虚存主要解决容量问题

​(一)​基本概念

实地址

 ​ 指的是外存所对应的物理地址

虚地址

存储器_存储器_47

程序进行从虚地址到实地址的转换过程称为程序的再定位

虚地址访问原理:

存储器_存储器_48

说明:辅存(外存)、实存(内存)

(二)页式虚拟存储器

(三)段式虚拟存储器

(四)段页式页面存储器

(五)虚拟的替换算法