来自美国波士顿
更专业的论文润色机构
400-110-1310

咨询学术顾问:400-110-1310

服务时间:周一至周日,9:00-23:00

建议反馈/客户投诉:Editsprings@163.com

微信扫码二维码,添加学术顾问企业微信

您还可以点击在线咨询按钮,与人工客服直接对话,无需等待,立马接入。

在线咨询
欢迎关注“艾德思EditSprings”微信公众号

关注微信获取最新优惠和写作干货,
随时手机询价或咨询人工客服,更可实时掌握稿件
进度,加速稿件发表。

微信扫描二维码关注服务号

Cache 5软件介绍

论文服务工具 | 2019/10/08 17:30:28  | 686 次浏览

  艾德思为您提供论文服务软件、工具服务介绍,帮助您在科研道路上一帆风顺。

  1、为什么要使用Cache?

  这些年存储器存储容量虽然增长的非常快速,但是访问速度却增长的却没有CPU那么明显;而CPU执行的指令和数据都来自于内存,结果也要保存到内存当中去,如果存储器的速度很慢CPU再快也无法提高电脑速度,CPU得不到需要的指令和数据就只能“空等”,Cache就是解决这种问题的方法之一;在CPU与主存之间加入一级Cache,将主存中经常用到的数据和指令放在Cache中,由于Cache的高速性就可以提高CPU与主存之间交换数据的时间。要达到这点就要使用程序的局部性原理;

  程序的局部性原理包含两方面:一方面是时间的局部性原理,意思是当前正在使用的数据和指令将来也会使用到,那么这些指令和数据就应该放在Cache里面;将来再次使用时就直接从Cache中取出来。另一方面是空间局部性:当前正在使用的数据和指令旁边的数据和指令将来也可能会使用到;因此需要将当前使用的数据和指令以及旁边的数据和指令都放在Cache里面去。这样可以看出数据交换的最小单位是块,这个块有多大需要根据实验得到。

  2、Cache的工作原理

  (1)主存与Cache的编址

  将主存和Cache的存储空间进行分块,主存一共M块,Cache一共C块,显然M>>C。主存与Cache的地址都为块号+块内地址。

  由于Cache与主存数据交换的最小单位是块,所以快内地址是不变的。注意到Cache旁边有一个“标记”,这个“标记”是干嘛的呢?

  “标记”里面是用来保存主存的块号的,CPU如果从主存里面取数据发送的是主存的地址,那怎么判断Cache里面有没有CPU需要的东西呢?就是通过“标记”来判断的,如果CPU取主存里面某块地址的数据,而Cache里面恰好有这块的内容并且这个Cache块是有效的,那么就可以直接从Cache里面访问这些信息,这样可以提高速度。注意Cache-主存这个层次里面是按块来进行存储的,按块来进行访问的,块的大小相同。

  (2)命中与未命中

  前面已经说到过主存里面的块是远远大于Cache里面的块的,如果Cache恰好存在CPU需要的指令或者数据,那么称为命中。

  反之则为未命中。如果命中了,Cache就和主存建立了一种对应关系,这种对应关系就可以利用“标记”来进行标识,用“标记”记录与某Cache块建立对应关系的主存块号。由此可见,Cache的命中率非常重要,因为如果Cache命中了,那么CPU与主存之间访问的速度就会大大加快。

  (3)Cache命中率

  Cache命中率与许多因素有关,这里主要介绍两个;一个是存储容量,一个是块长。对于存储容量,如果Cache的容量与主存一样大,那么CPU需要的指令与数据都可以在Cache里面找到,这样就可以大大提高速度,但是这个是不可能的。对于块长,如果块长过短,那么CPU还没执行几条指令这一块就用完了,就需要再去主存里面取下一条指令,所以这样不行,当然块长太长也不行,过长那么Cache里面存放的块就会过少,命中率也会降低。一般块取4-6个字。实际上块长与一个存取周期从主存中调出信息的长度有关。

  (4)Cache-主存系统的效率

  e=(访问Cache的时间)/(访问的平均时间)*100%e表示效率。从上面这个式子可以看出,e与Cache命中率的关系很大。

  3、Cache基本结构

  CPU如果需要访问内存,那么需要给出内存地址(包括块号和快内地址两部分),由于主存和Cache传输的基本单位是块,所以块内地址可以直接送到Cache中,块号通过主存Cache地址映射变换机构确认是否发生命中,如果命中需要给出当前内存块保存在那个Cache块中,如果没有命中,那么查看Cache里面是否有足够的空间让该地址块装入,如果有将该地址块装入Cache中,如果没有启用Cache替换机构,由Cache的替换机构根据替换算法决定,Cache里面哪一个块可以重新写回到主存或者作废并且将当前访问的块放入Cache中。

  主存Cache地址映射变换机构其实是两个功能:主存Cache地址映射(map)和变换机构,主存Cache地址映射给出的是一个规则:主存中的一个块可以放在Cache中的哪个块或哪几个块的位置,这就是映像规则;所谓变换就是将主存块号转换为Cache块号。

  主存与Cache之间有一条直接通路,用于主存与Cache之间的数据交换。有些计算机为了提高访问速度,如果发生了未命中,那么主存先通过数据总线将数据送入CPU中,然后再将块送入Cache存储体中。

  4、Cache的读和写

  Cache满主要是指主存中的那个块可以放入Cache里面那一个或者几个块的位置是否满。如果还有位置,将直接将内存块调入Cache中。

  读操作的时候Cache内容并没有改变,但是写操作就不是这样了,因为有可能只对Cache写,所以写操作一定要解决的问题是Cache与主存的一致性。

  对Cache的写操作有两种方法:

  写直达法(write-through):写操作时既对Cache写同时又对主存写,写操作数的时间就是访问主存的时间,Cache退出时不需要对主存执行

  写操作。这种方法可以保持Cache与主存的一致性写回法:写操作时只把数据写入Cache而不写入主存,只有当Cache中内容被替换出去时才写入主存;这种方法允许一段时间内Cache与主存的不一致,写操作时间就是访问Cache的时间。

  5、对Cache的改进a,Cache的分级现在的Cache都是分级的,离CPU比较近的直接就放在CPU芯片里面,甚至可以放两级Cache进CPU芯片。这种叫片内Cache。大容量的Cache放在主板上,CPU外面,叫片外Cache。现在的多核处理器,每个核都有自己的Cache,各个核之间还有共用的Cache。b,统一缓存与分立缓存数据Cache,指令Cache是否统一,与指令执行的控制方式有关。

  文章来源:CSDN博主「williamgavin」

  原文链接:https://blog.csdn.net/williamgavin/article/details/78600230

  特别声明:本文转载仅仅是出于传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载,请联系我们删除。

母语润色专业翻译论文预审修改指导图表服务 ¦基金标书用户评价联系我们

语言不过关被拒?美国EditSprings--专业英语论文润色翻译修改服务专家帮您!

上一篇:sci翻译润色软件,比Deeply还好用!

下一篇:Ansys CFX软件介绍

特别声明:本文转载仅仅是出于传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载或者联系转载稿费等事宜,请与我们接洽。

凡注明来源为“EditSprings”的论文,如需转载,请注明来源EditSprings并附上论文链接。

最热论文