4.1 存储器
4.2 存储器的分类
4.2.1 存储介质
半导体器件(半导体存储器):随机存储器
磁性材料(磁表面存储器):磁盘存储器和磁带存储器
4.2.2 存储方式
随机存储器RAM
只读存储器ROM
串行访问存储器
4.2.3 存储作用
主要分为主存储器、辅助存储器、缓存存储器
4.3 存储器层次结构
4.4 主存储器
4.4.1 主存的基本组成
4.4.2 主存和CPU的联系
备注:MDR、MAR在CPU里。
4.4.3 主存中存储单元地址的分配
4.4.4 主存的技术指标
- 存储容量:主存存放二进制代码的总位数,即存储单元个数* 存储字长
- 存储速度:存取时间是存储器的访问时间(读出时间、写入时间);存取周期是连续两次独立的存储器操作(读或写)所需的最小间隔时间。通常,存储周期>存取时间
- 存储器的带宽:位/秒
4.5 高速缓冲存储器
4.5.1 问题的提出
避免CPU“空等”现象
CPU和主存(DRAM)的速度差异
4.5.2 Cache的工作原理
4.5.3 Cache-主存地址映射
直接映射
某一主存块只能固定映射到某一缓存块
主存字块标记
Cache字块标记
字块内地址
——————
——————-
—————
全相联映射
主存中的任一块可以映射到缓存中的任一块
主存字块标记
字块内地址
——————
—————
组相连映射
某一主存块只能映射到某一缓存组中的任一块
主存字块标记
组地址
字块内地址
——————
———
—————
4.6 小结
- 在主存和CPU之间增加高速缓存的目的是解决主存和CPU速度不匹配问题。
- 存储器是计算机系统中的记忆设备,同来存放程序和数据。
- 存储器速度、容量、位价的关系:寄存器>缓存>主存>磁盘>磁带。
- 通常用8位二进制数表示一个字节。
- 储存容量是指主存能存放的二进制代码的总位数。
- 存储速度由存储时间和存储周期来表示。
- 提高存储器带宽的方法:缩短存储周期、增加存储字长、增加存储体。
- 静态RAM是用触发器工作原理存储信息,动态RAM是靠电容存储电荷的原理来寄存信息。
- 集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。
4.7 例题
4.5 什么是存储器的带宽?若存储器的数据总线宽度为32位,存取周期位200ns,则存储器的带宽是多少?
存储器的带宽指单位时间内从存储器进出信息的最大数量。
存储器的带宽=时钟频率*总线宽度=1/200ns*32位=160M 位/秒=20MB/秒
注意:字长32位,不是16位。
4.6 某机字长为32位,其存储容量为64KB,按字编址其寻址范围是多少?若以主存以字节编址,试画出主存字地址和字节地址的分配情况。
存储容量为64KB时,按字编址其寻址范围就是64K,若以主存以字节编址,其寻址范围为64K/(32/8)=16K
主存字地址和字节地址的分配情况:如图
4.7 一个容量为16K*32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1K*4位,2K*8位,4K*4位,16K*1位,4K*8位,8K*8位。
16K=2^14,所以地址线有14根,数据线有32根,一共46根。
选择不同芯片时,各需要的片数为:
1K*4位:(16K*32)/( 1K*4)=16*8=128片
2K*8位:(16K*32)/(2K*8)=8*4=32片
4K*4位:(16K*32)/(4K*4)=4*8=32片
16K*1位:(16K*32)/(16K*1)=1*32=32片
4K*8位:(16K*32)/(4K*8)=4*4=16片
8K*8位:(16K*32)/(8K*8)=2*4=8片
4.9 什么叫刷新?为什么要刷新?说明刷新的几种方法。
刷新指对DRAM定期进行的全部重写过程;
刷新原因:因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;
种类:
集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间;
分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间;
异步式:是集中式和分散式的折衷。
4.15
4.18 已知接收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001、检查上述代码是否出错?第几位出错?
1100100:
p1 = C1 ^ 3 ^ 5 ^ 7 = 0; p2 = C2 ^ 3 ^ 6 ^ 7 = 1; p3 = C4 ^ 5 ^ 6 ^ 7 = 1
p3p2p1 = 110 即第6位出错,有效信息为0110
1100111:
p1 = C1 ^ 3 ^ 5 ^ 7 = 1; p2 = C2 ^ 3 ^ 6 ^ 7 = 1; p3 = C4 ^ 5 ^ 6 ^ 7 = 1
p3p2p1 = 111 即第7位出错,有效信息为0110
1100000:
p1 = C1 ^ 3 ^ 5 ^ 7 = 1; p2 = C2 ^ 3 ^ 6 ^ 7 = 1; p3 = C4 ^ 5 ^ 6 ^ 7 = 0
p3p2p1 = 011 即第3位出错,有效信息为1000
1100001:
p1 = C1 ^ 3 ^ 5 ^ 7 = 0; p2 = C2 ^ 3 ^ 6 ^ 7 = 0; p3 = C4 ^ 5 ^ 6 ^ 7 = 1
p3p2p1 = 100 即第4位出错,有效信息为0001
4.28 设主存容量为256K字,Cache容量为2K字,块长为4,
(1)设计Cache地址格式,设计主存地址格式 (2)在直接映射方式下,设计主存地址格式 (3)在四路组相连映射方式下,设计主存地址格式 (4)在全相连映射方式下,设计主存地址格式 (5)若存储字长为32位,是存储器按字节寻址,写出上述三种映射方式下主存的地址格式。
(1)Cache容量为2K字节,块长为4,Cache共有2K/4=2^11/2^2=2^9=512块
Cache字地址9位,字块内地址为2位
因此,Cache地址格式设计如下:
Cache字块地址(9位)字块内地址(2位)
(2)主存容量为256K字节=2^18字节,主存地址共18位,共分256K/4=2^16块
主存字块标记为18-9-2=7位
直接映射方式下主存地址格式如下:
主存字块标记(7位)Cache字块地址(9位)字块内地址(2位)
(3)根据四路组相联的条件,一组内共有4块,得Cache共分为512/4=2^7块
主存字块标记为18-7-2=9位
主存地址格式设计如下:
主存字块标记(9位)组地址(7位)字块内地址(2位)
(4)在全相联映射方式下,主存字块标记为18-2=16位,其地址格式如下:
主存字块标记(16位)字块内地址(2位)
(5)若存储字长为32位,存储器按字节寻址,则主存容量为256K*32/8=2^20B
Cache容量为2K*32/8=2^13B,块长为4*32/8=2^4B,字块内地址为4位。
在直接映射方式下,主存字块标记为20-9-4=7位,主存地址格式为:
主存字块标记(7位)Cache字块地址(9位)字块内地址(4位)
在四路组相联映射方式下,主存字块标记为20-7-4=9位,主存地址格式为:
主存字块标记(9位)组地址(7位)字块内地址(4位)
在全相联映射方式下,主存字块标记为20-4=16位,主存地址格式为:
主存字块标记(16位)字块内地址(4位)
4.29 假设CPU执行某段程序时共访问Cache命中4800次,访问主存200次,已知Cache的存取周期是30ns,主存的存取周期是150ns,求Cache的命中率以及Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少?
命中率=4800/(4800+200)=0.96
平均访问时间=0.96*30+(1-0.96)*150=34.8ns
效率=30/34.8*100%=86.2%
性能变为原来的150/34.8=4.31倍,即提高了3.31倍
4.31 设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试问主存地址为ABCDEH的存储单元在Cache中的什么位置?
假设按照字节编址。
4*32/8=16B=2^4B 得字块内地址为4位
16KB/16B=2^10 得Cache字块地址为10位
1MB/16B=2^16 得直接映射下主存地址为6位
ABCDEH=1010 1011 1100 1101 1110 …
故该主存单元应映射到Cache的101010块的第1110字节,即第42块第14字节位置
4.38 磁盘组有6片磁盘,最外两侧盘面可以记录,存储区域内径22cm,外径33cm,道密度为40道/cm,内层密度为400位/cm,转速3600转/分。
(1)共有多少存储面可用?
(2)共有多少柱面?
(3)盘组总存储容量是多少?
(4)数据传输率是多少?
(1)共有6*2=12个储存面可用
(2)有效存储区域=(33-22)/2=5.5cm,柱面数=40*5.5=220道
(3)内层道周长=PI*22=69.08cm
道容量=400位/cm*69.08cm=3454B
面容量=3454B*220道=759880B
盘组总容量=759880B*12面=9118560B
(4)转速=3600转/分=60转/秒
数据传输率=3454B*60转/秒 = 207240B/s
4.39 某磁盘存储器转速位3000转/分,共有4个记录盘面,每毫米5道,每道记录信息12288字节,最小磁道直径位230mm,共有275道,求:
(1)磁盘存储器的存储容量。
(2)最高位密度(最小磁道的位密度)和最低位密度。
(3)磁盘数据传输率。
(4)平均等待时间。
(1)存储容量=275*12288*4=13516800B
(2)最高位密度=12288B/(PI*230mm)=17B/mm
最大磁道直径=230+2*275/5=230+110=340mm
最低位密度=12288B/(PI*340)=11.5B/mm
(3)3000转/分=50转/秒
磁盘数据传输率=12288B*50转/秒=614400B/s
(4)平均等待时间=1/(2*50转/秒)=10ms
假设CPU执行某段程序时,共访问Cache命中20 00次,访问主存50次。已知Cache的存储周期为50ns,主存的存储周期为200ns。求Cache-主存系统的命中率、效率和平均访问时间。
(1)2000/(2000+50)*100%=97%
(2)设访问Cache的时间为t,访问主存时间为4t,则效率e = t/(0.97*t+(1-0.97)*4t)*100%=91.7%
(3)平均访问时间=50ns*0.97+200ns*(1-0.97)=54.5ns
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2021/06/16/jizu3/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!