计算机组成原理 第三章 存储系统 中

1.提升主存速度(双端口RAM,多模块存储器)

在这里插入图片描述
在这里插入图片描述

双端口RAM

在这里插入图片描述

多体并行存储器

两种存储方式:
高位交叉编址:访问n个连续存储字用时 n T nT nT
低位交叉编址(408常考):访问n个连续存储字用时 T + ( n − 1 ) r T+(n-1)r T+(n1)r
连续访问时,低位比高位的效率更高。
在这里插入图片描述

存储体的数量选择

存 储 体 模 块 数 = 存 取 周 期 存 取 时 间 / 总 线 传 输 时 间 = T r 存储体模块数=\frac{存取周期}{存取时间/总线传输时间}=\frac{T}{r} =/线=rT
在这里插入图片描述

多模块存储器

单体多字存储器的灵活性相对多体并行存储器较差。
在这里插入图片描述
主频越高T越短,r也就越短。
在这里插入图片描述
在这里插入图片描述

2.Cache工作原理

在这里插入图片描述

为什么将指令cache和数据cache相分离?

主要是为了避免资源冲突,在五级指令流水线中,分为IF(取址),ID(译码),EXE(执行),MEM(访存),WB(写回)。当然也不一定是五级,现在处理器流水线的长度都在15级左右。但是IF和MEM这两步总是有的。
其中IF和MEM都会访问cache。但是IF访问cache是取指令,MEM访问内存是取数据。
当前指令的MEM和后面指令IF同时在流水线上执行,会产生同时访问cache的冲突(资源冲突),但是将指令cache和数据cache分开就能满足两者的同时访问了。就不会因为冲突,造成流水线暂停了,提高了流水线运行效率。
————————————————
版权声明:本文为CSDN博主「hopbox」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hopbox/article/details/84895398

局部性原理

空间局部性(spatial locality):如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
时间局部性(temporal locality):被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
在这里插入图片描述
Cache命中率H,访问Cache时间 t c t_{c} tc,访问Cache时间 t m t_{m} tm

两种访问策略:

先访问Cache,再访问主存:
系统的平均访问时间:t= H t c + ( 1 − H ) ( t m + t c ) Ht_{c}+(1-H)(t_{m}+t_{c}) Htc+(1H)(tm+tc)
Cache、主存同时访问:
系统的平均访问时间:t= H t c + ( 1 − H ) t m Ht_{c}+(1-H)t_{m} Htc+(1H)tm
在这里插入图片描述
在这里插入图片描述

主存与Cache之间以“块”为单位进行数据交换

主存中的块,也称为一个“页/页面”
Cache中的块,也称为一个“行”
在这里插入图片描述
在这里插入图片描述

3.Cache映射方式

在这里插入图片描述

全相联映射

主存块可以放在Cache的任意位置。
在这里插入图片描述

在这里插入图片描述

直接映射(只能放固定位置)

Cache块号= 主 存 块 号 % C a c h e 总 块 数 主存块号\%Cache总块数 %Cache
在这里插入图片描述

组相联映射

租号= 主 存 块 号 % 分 组 数 主存块号\%分组数 %
在这里插入图片描述
在这里插入图片描述

4.Cache替换算法

只有全相联映射组相联映射需要替换算法。
在这里插入图片描述
在这里插入图片描述

随机算法(RAND)

没有考虑局部性原理,命中率低、实际效果很不稳定。
在这里插入图片描述

先进先出算法(FIFO)

没有考虑局部性原理,实际运行效果低。
在这里插入图片描述

近期最少使用算法(LRU)

考虑到了局部性原理,Cache命中率高。
但是如果访问的主存块数>Cache行数,也有可能发生"抖动"。(1,2,3,4,5,1,2……)
在这里插入图片描述

最不经常使用算法(LFU)

计数器可能会加到很大的值,替换时可以按照行号递增FIFO策略
LFU没有很好地遵循局部性原理,实际效果不如LRU。
在这里插入图片描述
在这里插入图片描述

5.Cache写策略

读操作不会导致Cache和主存的数据不一致的问题。在这里插入图片描述

写命中
写回法(write back)

增加脏位,当cache块被替换时,若脏位为1,则写回主存。
减少了访存次数,但存在数据不一致的隐患。
在这里插入图片描述

全写法/写直通/写直达(write through)

数据同时写入Cache和主存,使用写缓冲
在这里插入图片描述
写缓冲机制
使用写缓冲,CPU写的速度很快,若写操作不频繁,则效果很好。若写操作很频繁,可能会因为写缓冲饱和而发生阻塞
在这里插入图片描述

写不命中
写分配法(搭配写回法)

当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改,通常搭配写回法使用。
在这里插入图片描述

非写分配法(搭配全写法)

当CPU对Cache写不命中时只写入主存,不调入Cache。
在这里插入图片描述

多级Cache

i5处理器就有三级Cache,L1,L2,L3.
各级Cache之间常采用“全写法”+非写分配法。
Cache-主存之间常采用“写回法”+写分配法。
可在任务管理器中进行查看
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay_fearless

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值