层次化存储结构

CPU内存很小需要以外的存储空间,来进行相应的操作。

存储部件名关键特性
CPU寄存器:最快、容量小、成本高
Cache按内容抓取
内存(主存)分两类:随机存储器(RAM)、只读存储器(ROM)
外存(辅存)硬盘、光盘、U盘等

速度和价格对比是:CPU>Cache>内存(主存)>外存(辅存)

容量对比是:CPU<Cache<内存(主存)<外存(辅存)

由于

内存与CPU速度相差非常大,所以在中间加了一个Cache层,也称为高速缓存。

CPU访问Cache、Cache访问内存都是由硬件决定的

CPU在调用一些文件都是把他切分成多个小块,然后进行调用,这就是涉及到局部性原理。例如访问第一个小块但是会将第一个小块第二个小块都调用进去,这就会提高他的运行效率。局部性原理是层次化储存结构的支撑。

局部性原理又分为时间局部性、控件局部性。

时间局部性:刚被访问的内容,立即又被访问。(例如循环体)

控件局部性:刚被访问的内容,临近的空间又要被访问。(例如顺序执行)

一般内存(主存)、外存(辅存)两个一起一般被称为虚拟存储结构:当内存不够的时候外存可以作为相邻的把他囊括进去,就好像主存看起来特别大。

Cache、内存(主存)、外存(辅存)三个一起一般被称为三级存储体系

分类方法类别
按存储器位置内存、外存
按内容存取相连存储器(Cache)
按地址存取随机存取储存器(内存)、顺序存取存储器(磁带)、直接存取存储器(磁盘)
按工作方式随机存取存储器RAM(内存DRAM)、只读存储器(BIOS)

内存关机也就是掉电是会擦除储存的,而底层储存器掉电还是会保留

出场底层存储器意思
DRAM动态随机存取存储器
SPAM静态随机存取存储器
Cache高速缓存
EEPROM电可擦可编程只读存储器

下面我来来看一些例题

CPU访问存储器时,被访问数据一般聚集在一 个较小的连续存储区域中。若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为()。 A、数据局部性 B、指令局部性 C、空间局部性 D、时间局部性

首先我们知道局部性只有空间局部性和时间局部性、所以排除AB。而根据题意说附近的存储单元有可能还要被访问。所以这题选C

虚拟存储体系由( )两级存储器构成。 A、主存-辅存 B、寄存器Cache C、寄存器-主存 D、Cache-主存

A

在微机系统中,BIOS (基本输入输出系统)保存在( )中。 A、主板上的ROM B、CPU的寄存器 C、主板上的RAM D、虚拟存储器

A、主板上的ROM掉电是不会清除数据的,所以选A

1、Cache-概念

  • 在计算机的储存体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)

  • 使用Cache改善性能的依据是程序的局部性原理。

    时间局部性

    空间局部性

    (如果CPU想要的数据一直在Cache能够找到,那么性能就会提高)

  • 如果以h代表对Cache的访问命中率(一般为90%以上),t_1表示Cache的周期时间,t_2表示主储存器周期时间,以读操作为例,使用"Cache+主储存器"的系统的平均周期为t_3,则:

    t_3=h*t_1+(1-h)*t_2

    其中,(1-h)又称为失效率(未命中率)。

    例如,Cache周期为1ms,主储存周期为100ms,命中率为90%。

    则系统的平均周期=90%×1ms+10%×100ms

    读取100次的平均周期=\frac{100*90\%*1ms+100*10\%*100ms}{100}

  • 映射地址是将主存与Cache的存储空间划分为若干大小相同的页(块),将主存上的块映射到Cache上。主存与Cache之间的地址映射由硬件直接完成。

    例如,某及的主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB。

    • 直接相连映像:将主存分为与Cache相同大小的区域,每个区域拥有和Cache相同的页数,这样每个区域第0页对应Cache第0页,每个区域第1页对应Cache第1页,一次类推。电路简单,冲突率高

    • 全相联映像:主存的所有页数可以放Cache的所有页数。冲突率低,电路复杂。

    • 组相联映像:将主存分为与Cache相同大小的区域,每个区域拥有和Cache相同的页数,没组主存每一区域可以任意存放Cache所有页。电路复杂度折中,冲突率折中。

    冲突率电路复杂度
    直接相连映像简单
    全相联映像复杂
    组相联映像折中

一下关于Cache(高速缓冲储存器)的叙述中,不正确的是()。

A、Cache 的设置扩大了主存的容量 B、Cache 的内容是主存部分内容的拷贝 C、Cache 的命中率并不随其容量增大线性地提高 D、Cache 位于主存与CPU之间

BD一眼看出是对的,主要是C选项,Cache的命中率会随着容量提高,但是并不是线性的提高,所以这题选A

在程序执行过程中,高速缓存(Cache)与主存间的地址映射由( )

A、操作系统进行管理 B、存储管理软件进行管理 C、程序员自行安排 D、硬件自动完成

D

主存与Cache的地址映射方式中,( )方式可以实现主存任意-块装入Cache中任意位置,只有装满才需要替换。

A、全相联 B、直接映射 C、组相联 D、串并联

A

2、主存编址计算

计算机内容实质是0101的二进制数据,一个二进制的数据我们称为一个比特位bit。

将4个bit位为存储单元就是该计算机的字长,现在一般的计算机字长为32bit或者64bit。

一个字节等于8bit

编制:存储单元一行行计算机字长排在一起为一个存储单元,每一行给一个行号

  • 存储单元

    存储单元个数=最大地址-最小地址+1

  • 编址内容

    按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字。

    按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节。

  • 总容量=存储单元个数*编址内容

  • 根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总容量,即:

    总片数=总容量/每片的容量

内存按字节编址,地址从A0000H到CFFFFH的内存,共有( )字节,若用存储容量为64K*8bit的存储器芯片构成该内存空间,至少 需要()片。

A、80KB B、96KB C、160KB D、192KB

A、2 B、3 C、5 D、8

首先我们算出总容量地址范围=A0000H-CFFFFH+1=30000H,又因内存是按字节编址的(1字节等于8bit)所以总容量=\frac{3*16^4*8bit}{1KB}因为1KB=2^{10}B所以最后计算可得总容量等于192KB,所以选D

总片数:192KB/64K*8bit=3,所以选B

1B=8bit 1K=10^{10};1M=10^{10}k;1G=10^{10}M

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值