第二章 存储器层次结构

存储器的分类

按存储介质分类:半导体存储器,磁表面存储器,磁心存储器和光盘存储器

半导体存储器包括随机存储器和只读存储器

磁表面存储器包括磁盘和磁带

光盘存储器一般叫光盘

按存取方式分(重点):随机存取存储器,只读存储器,串行访问存储器

随机存取存储器(RAM):存取时间和存取位置没有关系。分静态RAM(SRAM)和动态RAM(DRAM),SRAM常被用做高速缓冲寄存器,DRAM常被用做主存。RAM的优点是读写方便,使用灵活,缺点是断电信息丢失。

只读存储器(ROM):其中存储的内容只能随机的读取而不能写入,断电信息不会丢失,所以一般会将一些固定不变的程序存放在ROM中。ROM包括有掩膜型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)电可擦除可编程只读存储器(EEPROM)快擦除读写存储器(Flash Memory)

串行访问存储器:对存储单元进行读写时,依照物理位置顺序先后读写。如磁盘和磁带等等。

存储器的指标

存储容量 = 存储字长 * 存储单元数

存储周期:连续两次独立地访问存储器操作之间的最小时间间隔

存取时间:启动一次存储器操作到完成该操作所需要的时间,一般小于存储周期

存储器带宽:单位时间内存取信息量

速度:寄存器 > 缓存 > 主存 > 磁盘 > 光盘 > 磁带

存储器层次

CPU -> 缓存 -> 主存 -> 辅存

主存和缓存之间的数据交换对程序员透明,由硬件自动完成

主存和辅存之间的数据交换由硬件和操作系统共同完成

半导体随机存取存储器

分为线选法和重合法(了解)

SRAM使用六管静态MOS存储单元电路,触发器保存信息。SRAM的时序电路图了解即可

DRAM的原理是电容存储电荷,有电荷则是1,没有电荷则是0。由于电荷在电容上并不能长期存在,在2ms内会消失,所以要采用刷新技术来维持电荷的长期存在

对于SRAM和DRAM,其时序图不算考试重点(没怎么考过),但不排除考的可能性

读周期:对芯片两次连续读操作的最小时间间隔

读时间:存储器进行一次读操作的时间

读周期 > 读时间

写周期:对芯片两次连续写操作的最小时间间隔

写时间:存储器进行一次写操作的时间

写周期 > 写时间

DRAM刷新机制(重点)

刷新:将数据读出后,再原样写入。刷新是按行刷新,一行刷新的时间默认为一个存储周期。刷新必须在2ms内完成,即刷新周期为2ms。

(1)集中刷新

在刷新周期内,取一部分存储周期作为集中刷新的时间,这段时间是不能进行读写操作的,因此也称之为死时间,或者访存死区。

(2)分散刷新

将存储周期的定义改变,此时的存储周期:

存储周期 = 读/写周期 + 刷新一行的时间

也就是此时的存储周期是传统存储周期的两倍。此时死时间降低为0,但死时间客观上还是存在的。

(3)异步刷新

将存储周期每行的刷新时间均匀的分配在刷新周期里面。这样可以保证异步刷新的死时间为一个读/写周期(因为不连续,所以只算一块)。

刷新和再生:都是读后恢复;刷新可以理解为对整个存储体要刷新,再生只是对特定读写单元进行读后恢复

只读存储器(ROM)

首先,ROM和RAM都是随机存取方式,只不过只读存储器只能读,而不能写

内存非易失性可否写
Flash
SRAM不是
DRAM不是
ROM不是
PROM不是
EPROM
EEPROM
扩充存储器的三大方式(重点)

单个芯片的容量有限,需要将这些芯片按照一定的方式连接在一起,才能达到扩充存储器容量的要求

例题:要求实现一个 8K * 16 的芯片,需要多少 4K * 4 的芯片?

解: 8 * 16 / (4 * 4) = 8 片

(1)位扩充:增加存储字长

将两块 1K * 4 位的芯片组成一个1K * 8 位的芯片,即位扩充

画图略

(2)字扩充:增加存储单元个数

将两片 1K * 4 位的芯片组成一个 2K * 4 位的芯片,即字扩充

画图略。注意字扩充中,有片选信号的情况要注意

(3)字位扩充:既增加存储字长,又增加了存储单元的个数

将四片 1K * 4位 的芯片组成一个 2K * 8 位的芯片。即字位扩充

画图略。要注意逻辑上的先后顺序,是先位扩充成8位,再字扩充成2K

单体多字存储器:指令和数据在内存中连续存放,存储字长被拉长。好处是理论上字长增加,带宽得到了提升,但一般来说,并不一定指令和所需要的数据是连续存放在一起的,所以不太可能达到最大的带宽

多体并行存储器(重点)

采用多个模块组成存储器,这些模块有相同的容量和存取速度,并且有着独立的地址寄存器,数据寄存器,地址译码器和读写电路。可以简单理解为每个模块就是一个独立的存储器。

(1)高位交叉编址:一个体存满数据后,再往下一个体中存储数据,所以可以理解是顺序存储

特点:高位地址表示体号,低位地址表示体内地址

优点:便于存储器的扩充 ,往后面直接加就行了

缺点:每个模块都是一个一个的串行工作,带宽得不到太大的提升

(2)低位交叉编址:程序存放在相邻的存储体中,理解为交叉存储,连续的地址是分到相邻的存储体中,同一个模块的地址是不连续的

特点:高位地址表示体内地址,低位地址表示体号

优点:连续字的成块传送,可以实现多模块流水线并行存取,极大的提高了存储器的带宽性能

高速缓冲寄存器(Cache)

CPU和主存频繁的交换数据,将会严重的拖慢CPU的工作效率。所以提出在CPU和主存间加上一级高速缓冲寄存器,即Cache,将最近或者有很大可能要访问交换的数据放在Cache中,以减少CPU和主存大量的数据交换。

局部性原理:CPU对主存的访问时,经常只会频繁的访问局部地区的数据。所以将这些将会被频繁访问的数据放在Cache中,以方便CPU直接从Cache中存取数据。

常见的Cache一般是采用高速SRAM制作,价格高,容量也比较小,但速度比主存快。

Cache和主存间的数据交换采用块。Cache和主存的块大小保持一致。Cache的块数远小于主存块数。

Cache包括地址映射变换机构,替换机构等等。

Cache中存放的是内存的副本,也就是说Cache并不能增加主存的存储容量。

主存和Cache的地址格式(重点)

主存地址分为两部分:主存块地址和块内地址

主存块地址用来寻找具体是主存中的哪一块,块内地址用来定位块中具体的字或者字节

Cache地址分为两部分:块号和块内地址

块号用来确定具体是哪一块,块内地址用来定位块中具体的字或字节

命中率:当CPU访问的块并不在Cache中时,即发生了未命中的情况。命中率即CPU访问的块在Cache中的比例

平均访问时间:hT + (1 - h) * t,其中h为命中率,T为命中时访问Cache的时间,t为未命中时访问主存的时间

Cache-主存系统效率:e = 命中时间 / 平均访问时间

Cache的命中率只和Cache的容量、Cache的字块长度有关

Cache和主存的三种映射方式(重点)

地址映射变换机构是将CPU送来的主存地址转换成对应的Cache地址,Cache地址和主存地址的块内地址无论是三种映射方式的哪一种,块内地址都是相同的。所以地址映射变换机构主要实现的是主存块号和Cache块号的转换。

(1)直接映射方式:每一部分的Cache块号对应一个“轮回”的主存块号,对应的画图略。

其转换地址的数学公式为:i = j mod C

其中,i是Cache块号,j是主存块号,C是Cache的块数。

直接映射方式不需要替换算法,因为每一块的位置已经固定,当需要替换时,直接替换掉Cache中对应位置的块即可。

优点:实现简单

缺点:不灵活,可能在一个“轮回”中有空闲的情况,却不能往里面放数据;冲突概率高

(2)全相联映射方式

允许主存的每一个字块可以映射到Cache的任意块上。

优点:既然可以映射到任意块上,则Cache的命中率很高,并且冲突概率也很低

缺点:要增加标记位数,访问Cache时要对比全部的标记才能找到对应的块;并且在物理实现上复杂,难度高

(3)组相联映射

直接映射和全相联映射的折中方案。可以理解为组间直接映射,组内全相联映射,比如二路组相联映射,就是分成的每个组中都有两块数据,所以当组相联每组中只有一块时,即直接映射;只有一组时,即为全相联映射。

组相联映射的主存地址共有三部分:字块标记,组号和块内地址。

【2009年408真题】某计算机的Cache一共有16块,采用二路组相联映射方式。每个主存块大小32B,按照字节编址。主存129号单元所在的主存块应该被装入到的Cache组号是()

A、0

B、2

C、4

D、6
补充:标记位

有效位:Cache中有无该块

脏位:写回法中需要用到

替换控制位:替换算法中需要用到

标记位:相当于主存地址中的标记字段

Cache替换算法

(1)先进先出算法【FIFO】

类似队列,没有考虑局部性原理,所以不能提高Cache的命中率。

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

随时记录Cache中所有字块的使用情况,才能确定是否为近期最少使用的块。一般只记录每个块最近一次的使用时间。

(3)随机法

随机的确定要被替换的块,很明显这种方式也没有考虑局部性原理,也就不能提高Cache的命中率。

Cache写操作

所谓写操作,是因为Cache和主存的内容应该保持一致,而CPU对Cache的操作将会改变Cache中的数据,这就需要考虑Cache具体实现的不同写操作策略。

(1)写回法

命中:先写入Cache中,当被修改的Cache块换出的时候再修改主存中对应的数据块

未命中:先写进主存中去。需要换进Cache中时,根据相应的替换算法换出对应的数据块;不需要换进则结束

这种方式由于不需要频繁的访问主存,所以减少访存次数,提高了计算机的运行效率

上面的提到的标记位中,有一个脏位,其目的就是标记写回法中,某个Cache被换出时,根据脏位是0或者1判断是否被修改过了。

(2)全写法

命中:Cache和主存中的对应块内容都要同时修改

未命中:先写入主存中去。需要换入Cache中时,直接替换掉对应的数据块即可;不需要换进Cache中则结束

(3)写一次法

前面两种方式的结合,只要求第一次写命中时要写入主存,其他则和写回法一样,不必着急写入主存中。

外存储器(重点)

硬盘存储器可以简单理解为硬盘,其主要由磁记录介质、磁盘控制器和磁盘驱动器组成。

磁盘分类

(1)是否可换

可分为可换盘磁盘存储器和固定盘磁盘存储器

(2)磁头是否可动

可分为移动磁头磁盘存储器和固定磁头磁盘存储器

硬盘存储器的指标

(1)记录密度

a.道密度:磁盘沿半径方向单位长度的磁道数。相邻磁道的间距称为道距。

b.位密度:单位长度磁道所能记录的二进制信息的位数。

(2)存储容量

外存所能存储的最大二进制信息的容量

(3)平均寻址时间

平均寻址时间 = 平均寻道时间 + 平均等待时间

(4)数据传输速率

单位时间内磁表面存储器向计算机传输的信息位数/字节数

(5)误码率

出错数据量/ 传输数据量

(6)平均存取时间
平均存取时间 = 寻道时间 + 旋转延迟时间(磁盘旋转半圈的时间) + 传输时间

柱面号即为磁道号,磁头号即为盘面号

扇区是磁盘寻址的最小单位

定长记录格式的磁盘地址分为四个部分:台号 + 磁道号 + 盘面号 + 扇区号

磁盘阵列RAID

RAID即由多个小容量磁盘代替一个大容量磁盘。

RAID 0:将数据分块送到不同的磁盘存储,使用时再拼接成一份完整的数据

RAID 1:镜像备份,在两个硬盘上各自保留一份完整的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值