存储器层次结构

存储器层次结构


存储器系统是一个层次结构,包括 CPU寄存器、高速缓存存储器、主存、磁盘。



6.1存储技术


随机访问存储器(RAM:

一断电就没了,易失的


静态RAMSRAM):

高速缓存


动态RAMDRAM):

主存


非易失性存储器:

包括ROM,闪存就是一种ROM技术。存储在ROM设备中的


磁盘:

由一个或者多个叠放在一起的盘片构成。

CPU读取磁盘的过程:

1、磁盘控制器收到CPU读指令后,将翻译成扇区地址。读该扇区的内容,然后将这些内容直接传送到主存,不需要CPU的干涉。

2、传送到主存之后,磁盘控制器通过给CPU发送一个中断信号来通知CPU

3CPU暂停当前工作,读取内存的信息。


6.2局部性


时间局部性:被引用过一次的内存位置很可能在不远的将来再次被引用。比如重复引用相同变量。


空间局部性:一个内存位置被引用了一次,这个程序很可能在将来引用附近的内存位置。对于步长为k的引用模式的程序来说,步长越小,空间局部性越好。


对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。


6.3存储器层次结构


存储器层次结构:一种组织存储器系统的方式。


高速缓存:cache,是小而快速的存储设备,作为更大更慢的设备的数据的缓冲区域。使用高速缓存的过程称为缓存。


存储器层次结构 的中心思想是,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。

也就是说,层次结构中的每一层都缓存来自较低一层的数据对象。



缓存命中:当程序需要k+1层的d时,现在k层中搜,搜到就叫命中。


缓存不命中:k层没有d。k层缓存从k+1层取出包含d的块,如果k层满了,可能就会覆盖现存的一个块。


6.4高速缓存存储器


结构:

CPU寄存器

L1高速缓存

L2高速缓存

L3高速缓存

内存

硬盘


直接映射高速缓存:每个组只有1行。

高速缓存确定一个请求是否命中,然后抽取被请求的字的过程分为三步:1、组选择  2、行匹配  3、字抽取

抖动:高速缓存反复地加载和驱逐相同的高速缓存块的组。


组相联高速缓存:每组大于一行

不命中时的替换策略:

1、随机选择要替换的行

2、LFU,替换过去某个时间窗口引用次数最少的那一行

3、LRU,替换最后一次访问时间最久远的那一行


全相联高速缓存: 只有一个组,所有行都在里面。

有关写的问题:

写一个已经缓存了的w:

1、直写。立即将w的高速缓存块写回到紧接着的低一层中。每次都会引起总线流量。

2、写回。尽可能推迟更新,只有当替换算法要驱逐这个更新过的块时,才把它写回到紧接着的低一层中。

写不命中:

1、写分配。加载相应低一层中的块到高速缓存中,然后更新这个高速缓存块。

2、非写分配。避开高速缓存,直接写到低一层中


真实的高速缓存结构:

保存指令的高速缓存:i-cache

保存数据的高速缓存:d-cache

现代处理器包括独立的i-cache和d-cache


高速缓存参数的性能影响:

1、高速缓存大小的影响:越大命中率越高,但是可能会增加命中时间。

2、块大小的影响:块越大命中率越高,但是不命中处罚也增大

3、相联度(组中的高速缓存行数)的影响:越大就越减小抖动的可能性,但是更加昂贵

4、写策略的影响:直写容易实现。越往层次结构下面走,传送时间增加,减少传送数量就很重要。

一般而言,高速缓存越往下层,越可能用写回而不是直写。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值