处理器(续)_缓存(cache)

发布时间:2020-09-18 20:07:48 作者:三九感冒灵
来源:网络 阅读:958

4.处理器(续)_缓存(cache)

4.1硬件的处理速度

由于经济因素,处理器和内存所使用的半导体工艺不同,工艺的差异导致了处理器和内存的速度差异,处理器总是要等待内存,处理器速度远远大于内存。所以在两者之间增加缓存是及其必要的。
通常:V处理 > V处理器内部寄存器 > V缓存 > V内存 > Vflash

4.2程序访问的局部性

程序运行时有一个特点,在短时间内,处理器访问的储存空间是一个很小的范围。
A.时间局部性:某个存储单元在短时间内很可能被再次访问
B.空间局部性:某个存储单元的邻近单元在短时间内也可能被访问
4.3 cache
Cache是一种小容量高速存储器,其存取速度与处理器的运算速度几乎同量级,现代计算机通常将其内置于处理器芯片内。
在处理器和内存之间设置cache,把内存中别频繁访问的指令和数据复制到cache中。大多数情况下,处理器能直接从cache中取得指令和数据。
处理器(续)_缓存(cache)

4.4 内存和缓存之间的映射

内存与缓存之间的映射最简单的方法是直接映射法。特点是任意一个内存地址都能映射到cache中的一个固定位置。

直接映射法

将cache和内存分成固定大小的块(如512Byte/块)
内存中每一块在cache中有固定的映射位置
映射公式为:pos_cache = 内存块号 % cache总块数,如下图示:
处理器(续)_缓存(cache)

地址划分:

![](https://s1.51cto.com/images/blog/201803/09/1037cd3857ebfbac7c4c45dc02e2a74c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

映射原理:

根据访问地址中的c位找到cache中的对应块,比较地址中的t位和对应块号的flag是否相同。
相同,则根据块内地址做为偏移量直接读取数据
不同,说明要访问的内存数据不在缓存中,则从内存中复制块内容到缓存。

直接映射法示例:

处理器(续)_缓存(cache)

直接映射法的特点:

优点:映射过程简单,所需耗时短
缺点:当短时间访问的地址有同余冲突(两片内存对应同一片缓存),会造成缓存失效。

4.5 Cache原理软件应用:

背景:日志系统对系统效率影响很大,同时不易分析,无法高效打印二进制数据,需要自定义日志的解析格式,并且可以对日志进行分类,控制其输出。
最初方案:开发一个日志解析软件,配合脚本实现日志解析,每一种日志都有自己对应的解析程序。当有日志来时,通过日志类型查找对应的解析程序。
问题:短时间内有大量日志需要打印时,性能无法满足要求。性能的瓶颈在于每次频繁查找耗时太多。
解决方案:根据cache原理,设置二级缓存,尽可能避开查找。

推荐阅读:
  1. 处理器之缓存(四)
  2. Spring- Cache缓存

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

处理器 缓存 he

上一篇:C语言手把手教你实现贪吃蛇AI(中)

下一篇:SpringBoot 实战 之 优雅终止服务的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》