其他分享
首页 > 其他分享> > 计算机组成原理-笔记

计算机组成原理-笔记

作者:互联网

第三章 存储器

3.1.1存储器的分级结构

  1. 基于程序的局部性原理:某一段时间内频繁访问某一局部的存储器地址空间,对其范围之外的地址空间则很少访问的现象。(时间局部性,空间局部性)

    时间局部性:最近被访问的信息可能还被访问

    空间局部性:最近被访问信息的邻近地址的信息也可能被访问

  2. 多级存储系统的组成

    内存(内存储器):存储正在执行的程序指令和数据;容量小、速度快、价格高

    外存(辅存):CPU不能直接访问,存储容量大、价格便宜、速度低;

    Cache:存放内存中正在被使用的信息快;在CPU和内存之间;

3.1.2 存储器的分类

  1. 按存储介质分

    半导体存储器:用半导体器件(MOS管)组成的存储器;(系统主存Cache)

    磁表面存储器:用磁性材料(磁化作用)做成的存储器;(软盘、硬盘、磁带)

    光盘存储器:用光介质(光学性质)构成的存储器;(光盘)

  2. 按存取方式分

    随机存储器:存取时间和存储单元的物理地址无关;(半导体存储器)

    顺序存储器:存取时间和存储单元的物理地址无关;(磁带)

    半顺序存储器:存取时间部分依赖于存储单元的物理位置;(磁盘存储器)

  3. 按内容的可变性分

    只读存储器 ROM --> read only memory

    随机读写存储器 RAM --> random access memory

  4. 按信息易失性分

    易失性存储器:断电后信息即消失(半导体存储器)

    非易失性存储器:断电后仍然能保存信息(磁盘光盘)

  5. 按在计算机系统中的作用分

    主存储器:能被CPU直接访问,速度快,用于保存系统当前需要的所有程序和数据(半导体存储器)

    辅助存储器:不能被CPU直接访问,速度较慢,用于保存系统中所有的程序和数据(磁盘光盘)

    高速缓存存储器(Cache):能被CPU直接访问,速度快,用于保存系统当前运行中频繁使用的程序和数据(半导体)

    控制存储器:CPU内部的存储器

    速度:控制存储器 > 高速缓冲存储器 > 主存储器 > 辅助存储器

    材质: 半导体 半导体 半导体 磁盘光盘

3.1.3 主存储器的技术指标——存储容量

存储容量:指存储器能存放二进制代码的总数。

存储容量=存储单元个数 × 存储字长

存储容量=存储单元个数 × 存储字长 / 8 B(字节)

3.1.3 主存储器的技术指标——存储速度

  1. 存取时间:从启动一次访问操作到完成该操作所需要的时间,以纳秒(ns)为单位,分为写入时间和读出时间

  2. 存取周期:存储器连续启动两次独立访问操作所需要的最小时间间隔,以纳秒为单位。

    存取周期 = 存取时间 + 回复时间

  3. 存储器带宽:每秒从存储器进出信息量的最大数量。单位:bit/s或Byte/s,位/秒或字节/秒

    存储器带宽 = 每周期的信息量 / 周期时长


3.2 SRAM存储器

随机存储器{ 静态RAM SRAM --> Static Random-Access-Memory

​ { 动态RAM DRAM --> Dynamic Random-Access-Memory

静态RAM 主要用于构成Cache

优点:访问速度快,不掉电就可以永久保存信息

缺点:集成度低,功耗大,价格高

动态RAM 主要用于构成主存

优点:集成度高,功耗约为SRAM的1/6,价格低

缺点:访问速度慢,电容放电会导致信息丢失,因此需要定期充电,刷新存储单元

SRAM存储器的组成

  1. 存储体:用来存储数据

  2. 地址译码器:将CPU发出的地址信号转换成存储单元选通信号的电路

  3. 移码驱动器:用于增强移码输出选择线的驱动能力,驱动方式:

    单译码:一个地址对应一个存储单元

    双译码:被选单元有x,y两个方向确定

  4. I/O控制电路,一般包括读写电路和放大电路


3.3 DRAM存储器

DRAM需要定期刷新存储器,以保持信息

刷新原因:DRAM的基本存储元——电容,会随着时间和温度而减少

刷新:在固定时间内对所有存储单元,通过“读出-写入”的方式恢复信息的操作过程

刷新方式:以矩阵的行为单位刷新

刷新周期:从上一次刷新完成到下一次刷新完成

DRAM的刷新方式

集中式刷新:在一个刷新周期内,利用一段固定时间,依次对存储矩阵的所有行逐一刷新,在此期间停止对存储器的读/写操作;

缺点:存在死区时间,影响CPU访问

分散式刷新:在一个刷新周期内,分散地刷新存储器的所有行;

既不会产生明显的读写停顿,也不会延长系统的存取周期

3.3.5 存储器容量的扩展

位扩展:存储单元数不变,每个单元的位数增加(字长);

扩展方法:

​ 地址线:各芯片的地址线直接与CPU地址线连接;

​ 数据线:各芯片的数据线分别与CPU数据线的不同位连接;

​ 片选及读写线:各芯片的片选及读写信号直接与CPU的访存及读写信号连接;

CPU对该存储器的访问是对各位扩展芯片相同地址单元的同时访问。

image-20220428204324137

字扩展:每个单元位数不变,总单元个数增加

地址线:各芯片的地址线与CPU的低位地址线直接连接;

数据线:各芯片的数据线直接与CPU数据线连接;

读写线:各芯片的读写信号直接与CPU的读写信号连接;

片选信号:各芯片的片选信号由CPU的高位地址和访存信号产生;

CPU对该存储器的访问是对某一字扩展芯片的一个单元访问

image-20220428205058804

一般会借助2-4译码器或3-8译码器辅助片选

如果是字位同时扩展,则先进行位扩展,再进行字扩展


3.4 只读存储器和FLASH存储器

3.4.1 只读存储器

掩模式ROM

定义:数据在芯片制造过程中写入,不能更改;

优点:可靠性、集成度高,价格便宜;

缺点:通用性差,不能改写内容;

一次编程ROM(PROM)

定义:用户第一次使用时写入确定内容;

优点:用户可根据需要对ROM编程;

缺点:只能写入一次,不能更改;

多次编程ROM

定义:可用紫外光照射(\(EPROM\))或电擦除(\(E^2PROM\))多次改写其中内容;

优点:通用性较好,可反复使用;

3.4.2 FLASH存储器

Flash存储器

一种高密度、非易失性的读/写半导体存储器;

以E2PROM为基础,电擦除方式修改其内容的;(注意课本上的错误,不是 \(EPROM\);)

\(E^2PROM\)以字节为单位更新数据,而闪存则以块为单位。

目前数码产品中用的都是闪存卡;

U盘、CF卡、SM卡、SD/\(MMC\)卡、记忆棒、TF卡……

虽然外观、规格不同,但是技术原理都是相同的;

闪速存储器的可擦写次数一般在1万次以上,也有人说有的U盘可多达100万次左右(无法核实)。


3.5 并行存储器

3.5.1 双端口存储器(空间实现加速)

空间并行技术:同一个存储体使用两组相互独立的读写控制线路,可并行操作;(会发生冲突)

读写特点:访问不同存储单元时可以同时访问,访问同一存储单元时,会发生冲突,可使用BUSY信号控制先后顺序

显卡上的存储器一般是双端口存储器

3.5.2 多模块交叉存储器(时间实现加速)

存储器的模块化组织方式

顺序方式:通过直接增添模块来扩充存储器容量比较方便,各模块串行工作,存储器带宽受限

交叉方式:块数据传送时,可以大大提高存储器带宽,模块间的依赖性性强,且不宜进行存储器容量的扩充

多模块交叉存储器在CPU所访问连续存储空间时,主存的访问速度将会大幅度提高

顺序方式(高位交叉方式)

每个模块中的地址是连续的

某个模块进行存取操作时,其他模块不工作,某一个模块出现故障时,其他模块正常工作

存储单元地址:高位——模块号, 低位——模块内的字号

image-20220428225713535

交叉方式(低位交叉方式)

每个模块的地址单元是不连续的,连续的单元的地址分布在相邻的不同模块中;

对于数据成块传送,各模块可以实现多模块流水式并行存取;

存储单元地址:低位——模块号, 高位——模块内的字号

image-20220428230301783

交叉式存取图解

3

访存冲突:但是低位交叉存储可能导致访存冲突,当访存地址在相邻的四次访存中,出现在同一存储块内,就会发生访存冲突。

3.6 高速缓冲存储器Cache

使用Cache的原因:CPU速度越来越快,主存与CPU之间速度差距越来越大,影响CPU工作效率

Cache的作用:

在CPU和主存之间加一块高速的\(SRAM\)(Cache);
主存中将要被访问的数据提前送到Cache中;
CPU访存时,先访问Cache,若没有再进行数据调度。

使用Cache的依据:程序的局部性原理

CPU访问Cache或者主存时,数据交换单位按“字”交换,此处的指:数据线的位数

Cache与主存交换数据以为单位,Cache的一块也称作一行,Cache每一行都设置有标记,CPU访问数据时先访问标记

相邻层之间数据的传递

4

Cache的基本构成

存储体:基本单位为字,若干个字构成一个数据块

地址映射变换机构:用于将主存地址转换为Cache地址,已利用CPU发出的主存地址访问Cache

替换机构:更新Cache中存储数据的机制

相联存储器:即Cache的块表,快速指示所要访问的信息是否在Cache中

以及读写控制逻辑

Cache的命中率:命中率是指CPU要访问的信息在Cache中的比率;(一般>95%)

\[命中率 = 访问信息在Cache中的次数/访问总次数 * 1 \]

\[失效率:1 - 命中率 \]

影响命中率的主要因素

Cache 容量:过小时,局部信息装不完,命中率低。
过大时,对提高效率不明显,且成本高。

Cache中块的大小:
一般用一个主存周期所能调出的单元数(字或字节)作为一个块大小。

Cache/主存系统的平均访问时间

\[t_a = ht_c + (1 - h)t_m\tag{1} \]

\[t_a表示Cache/主存系统的平均访问时间\tag{2} \]

\[h 表示Cache的命中率\tag{3} \]

\[t_c 和 t_m分别表示Cache的访问时间和主存的访问时间\tag{4} \]

Cache的替换策略

1. 最不经常使用算法(LFU)

2. 近期最少使用算法(LRU)

3. 随即替换算法

Cache的写策略

1. 写回式

2. 全写式

3. 写一次法

Cache与主存的地址映射

全相联映射(Associate Mapping)

映射关系:主存中任意字块可以调进Cache中任一行中;

地址映射:主存中的数据块调入Cache时,可以调入Cache中的任一空行;其中,主存块号存于Cache的行的标记中。调入的同时,将主存标记(即主存块号)和Cache的行号同时写入块表

地址变换:

全相联映射示意图

image-20220726214201843

全相联映射地址变换示意图

image-20220726214225706

全相联映射主存地址格式

主存地址格式:前 m 位是主存块号,也称为主存标记,后 b 位是块内地址,总位数位 m + b 位

image-20220726214545371

Cache地址格式:前 c 位是Cache行号,后b位是块内地址,总位数为 c + b 位

image-20220726214744627

块表的基本结构:

块表的大小应为 \(2^c * (m + c)\) 位

全相联映射的特点

优点
灵活性好(最理想)
Cache中只要有空行,就可以调入所需要的主存数据块;
缺点
成本高
块表单元字长为m+c位,需要较大容量的Cache块表;
速度太慢
访问Cache时,需将所有标记比较一遍,才能最后判出所需主存中的字块是否在Cache中;
一般较少使用。

直接映射(Direct Mapping)

\[i = j\mod2^c \]

Cache行号为 i,主存块号为 j ,c是Cache行地址的位数,2^c即表示Cache有多少行

直接相联映射示意图

image-20220727202236554

Cache和主存地址格式

主存地址有 m + b 位, Cache地址有 c + b 位

解释:

​ m 表示主存的块号

​ c 位Cache行号

​ b位块内地址

Cache地址格式:

image-20220727203431250

主存地址格式:

image-20220727203455370

主存中每 2 的 t 次方个块对应同一Cache行(块)

块表基本结构

块表的大小为:

\[2^c \times (m - c) bit \]

直接相联映射Cache的特点

组相联映射(Set-associate Mapping)

组相联映射是直接映射和全相联映射的一种折中方案。

设Cache有 u 组,每组 r 行,j 为主存块号,则映射函数如下:

\[组号:q = j \mod u \]

当Cache一组中包含 r 行时,通常称为,r路组相联映射。

组相联映射示意图

image-20220727205620142

主存地址格式:

image-20220727210132611

Cache地址格式:

image-20220727210328742

块表基本结构:

块表的大小为:

\[2^c \times (t + r) \]

t 为主存标记的位数,r为行内组号的位数

地址映射:主存中的块调入到Cache中时,只能调入特定的组;在改组内,可选择任意行调入数据;调入的同时,将主存标记和Cache组内行号写入块表

地址变换:

例题

某系统的存储器为2MB,每字块为8个字,每字32位,若Cache为16KB,采用字节编址方式。

问:

(1)采用直接映射,主存地址格式是什么?

(2)采用全相联映射,主存地址格式是什么?

(3)采用16路组相联映射,主存地址格式是什么?

答:

主存地址格式

直接相联映射:

image-20220727213427116

全相联映射:

image-20220727213452939

16路组相联映射:

image-20220727213515384

标签:Cache,计算机,存储器,主存,笔记,访问,地址,原理,CPU
来源: https://www.cnblogs.com/paper-plane/p/16526775.html