计算机组成原理期末复习(三)存储器

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 主存的技术指标

  1. 存储容量:主存存放二进制代码的总位数,即存储单元个数* 存储字长
  2. 存储速度:存取时间是存储器的访问时间(读出时间、写入时间);存取周期是连续两次独立的存储器操作(读或写)所需的最小间隔时间。通常,存储周期>存取时间
  3. 存储器的带宽:位/秒

 

4.5 高速缓冲存储器

4.5.1 问题的提出

避免CPU“空等”现象

CPU和主存(DRAM)的速度差异

4.5.2 Cache的工作原理

4.5.3 Cache-主存地址映射

直接映射

某一主存块只能固定映射到某一缓存块

主存字块标记

Cache字块标记

字块内地址

——————

——————-

—————

 

全相联映射

主存中的任一块可以映射到缓存中的任一块

主存字块标记

字块内地址

——————

—————

组相连映射

某一主存块只能映射到某一缓存组中的任一块

主存字块标记

组地址

字块内地址

——————

———

—————

 

4.6 小结

  1. 在主存和CPU之间增加高速缓存的目的是解决主存和CPU速度不匹配问题
  2. 存储器是计算机系统中的记忆设备,同来存放程序和数据。
  3. 存储器速度、容量、位价的关系:寄存器>缓存>主存>磁盘>磁带
  4. 通常用8位二进制数表示一个字节
  5. 储存容量是指主存能存放的二进制代码的总位数
  6. 存储速度由存储时间存储周期来表示。
  7. 提高存储器带宽的方法:缩短存储周期、增加存储字长、增加存储体。
  8. 静态RAM是用触发器工作原理存储信息,动态RAM是靠电容存储电荷的原理来寄存信息。
  9. 集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作

 

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 协议。转载请注明出处!