海口专业网站搭建厂,Wordpress多站点为什么注册不了,南充房产网最新楼盘最近房价,凡客诚品正品官网Cache的一般设计 时间相关性#xff1a;如果一个数据被访问了#xff0c;以后很有可能被访问 空间想关性#xff1a;如果一个数据被访问了#xff0c;那么它周围数据再以后也可能被访问 sram#xff0c;dram#xff0c;disk#xff0c;flash都可以做cache L1 cache----s… Cache的一般设计 时间相关性如果一个数据被访问了以后很有可能被访问 空间想关性如果一个数据被访问了那么它周围数据再以后也可能被访问 sramdramdiskflash都可以做cache L1 cache----sram 指令cacheicache一般都是读取 数据cachedcache读取和写入支持每周期有多条load/store指令访问 cache有tag和data两部分组成。tag是公共地址data是一片连续地址的数据 chache line一个tag和它对应的所有数据组成的一行称为一个cache line cache set一个数据可以存储在cache中多个地方这些被同一个地址找到的多个cache line 称为cache set。 影响cache miss的三个条件称为3C定理 1compulsory强制性第一次访问肯定miss可以用预取方法来降低 2capcity容量容量越大命中率越高但面积也会增加 3conflict冲突多个数据映射到cache中同一个位置。解决方式有组相联victim cache cache的组成方式 直接映射易产生冲突如两个index相同但是tag不同的地址交互访问会一直miss 全相连 数据可以放在任意一个cache line中直接用整个cache中tag进行比较没有index。直接用存储器内容来寻址这就是内容寻址存储器CAMcam来存储tag值普通的sram来存储数据。 TLB和victim cache多采用全相连结构 组相连如果一个数据可以放在n个位置则称为n路组相连 如上图用index对chache进行寻址可以得到两个cache line这两个cache line称为一个cache set。根据tag比较结果才确定哪个cacheline。缺点是延迟会较直接映射大有时会进行流水线减少处理器周期时间影响会导致load指令延迟增大。优点是显著减少了cache miss。 一般tag和data是分开放置的tag sram和data sram分两种访问方式 1串行访问先访问tag根据tag比较结果再去访问data sram 2并行访问tag部分的某个地址被读取同时这个地址对应data也会被读取出来送到多路选择器根据tag比较结果选出对应data block根据block offset的值选择出合适的字节。选择字节过程称为数据对齐。 Icache修改将改写的指令作为数据写道dcache然后将dcache中内容写入l2 cache指令和数据共享并将Icahce中所有内容置为无效重新从l2 cache取指令到icache。 dcache写入 写通 write through数据写到dcache也写到下级存储器中 写回 write backstore指令数据只写到dcache中做dirty标记只有当cache 中dirty line被替换时才写到下级存储器中。优点是快缺点是数据不一致 写分配 write allocate如果发生write miss会首先从下级存储器中将miss的地址对应的整个数据块data block 取出来然后将要写入到d-cache中的数据合并到这个数据块中最后将这个被修改过的数据块写到dcache中。 写不分配 Non-write allocate当地址不在d-cache中发生write miss将数据直接写到下级存储器中不写到d-cache中。 写通和写不分配的流程 cache的替换策略LRU和随机替换 提高cache的性能 写缓存 流水线 多级结构 victim cache 全相联容量比较小与cache存在互斥的关系。 预取 一般采用多端口bank访问会引起bank冲突地址两个但是数据不用两个。