`
eriol
  • 浏览: 401010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

cache写策略

    博客分类:
  • OS
阅读更多

Write Through (完全写入)

 

CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。

 


Write Back (回写)

 

CPU更新cache时,只是把更新的cache区标记一下,并不同步更新memory。只是在cache区要被新进入的数据取代时,才更新 memory。这样做的原因是考虑到很多时候cache存入的是中间结果,没有必要同步更新memory。优点是CPU执行的效率提高,缺点是实现起来技术比较复杂。

 

 

区别

 

完全写入(Write through)是一种实时同步的缓存机制,即每当缓存中的数据被更新后,这次改动会立即更新到计算机内存中。

 

而回写(Write Back)的机制则是一种非实时同步的缓存机制,也就是说,当CPU存取的数据在缓存中进行修改时,并不会马上将缓存中改变的数据实时同步到内存。回写相对于完全写入来说,是一个更为复杂的缓存使用策略。这种策略常被称作“延时写入”。使用该回写策略时,CPU每次对缓存中的数据做出修改,都会对修改的数据块做上一个“记号”,表示该数据被修改过。这些数据被称作“脏”数据,每当有CPU要求缓存中不存在的数据时,这些脏数据就会写入到内存中。所以,一旦 CPU请求一个缓存中不存在的数据时,就需要两次访问内存的操作,第一次是在内存中检索该数据,第二次则是将脏数据写入到内存中,为新数据让位。

 


Write allocate policy


在有cache的单机系统中,通常有两种写策略:write through和write back。这两种写策略都是针对写命中(write hit)情况而言的:write through是既写cache也写main memory;write back是只写cache,并使用dirty标志位记录cache的修改,直到被修改的cache 块被替换时,才把修改的内容写回main memory。

 

那么在写失效(write miss)时,即所要写的地址不在cache中,该怎么办呢?一种办法就是把要写的内容直接写回main memory,这种办法叫做no write allocate policy;另一种办法就是把要写的地址所在的块先从main memory调入cache中,然后写cache,这种办法叫做write allocate policy。

分享到:
评论

相关推荐

    计算机组成原理之Cache写策略

    计算机组成原理之Cache写策略

    高速缓存(Cache)的Verilog代码

    Cache写策略: 写回法+写分配 (二路)组相连16KB I_Cache Cache替换策略: LRU I_Cache的工作就是在cpu需要指令时将指令从主存中搬进I_Cache,再传给CPU,而D_Cache在解决数据读外,还要注意数据写入的问题。本工程...

    ARM高速缓存(Cache)Verilog代码 包含ISE工程

    Cache写策略: 写回法+写分配 (二路)组相连16KB I_Cache Cache替换策略: LRU I_Cache的工作就是在cpu需要指令时将指令从主存中搬进I_Cache,再传给CPU,而D_Cache在解决数据读外,还要注意数据写入的问题。本工程...

    Cache映像策略和数据访问流性能分析

    Cache映像策略和数据访问流性能分析

    文件Cache自适应策略研究.pdf

    文件Cache自适应策略研究 好东西,需要的下载学习吧

    前端cache 策略 .zip

    前端cache 策略

    分块矩阵优化cache

    矩阵分块优化,矩阵在cache下的分块优化方法的介绍

    cache替换策略lur 和fifo

    介绍cache替换的一个策略 这种方法真的很不错的,有兴趣的人可以去看看

    前端cache 策略 .pdf

    前端cache 策略 .pdf

    (5)--课件PPT1

    第5周 Cache替换算法和写策略第1讲 Cache替换算法第2讲 Cache写策略(一致性问题)第3讲 Cache实现的几个因素第4讲 Cache实现举例第5

    一种面向非规则引用的Cell多核处理器自适应Cache行策略.pdf

    一种面向非规则引用的Cell多核处理器自适应Cache行策略.pdf

    CACHE Simulator

    Cache模拟器,完成了以下功能: a. 能够设置 Cache 总的大小 ... 能够设置 Cache 的写策略:写回法、写直达法 f. 能够设置将 Cache 分为数据 Cache 和 指令 Cache g. 能够设置预取策略 h. 能够设置写不命中的调块策略

    Cache模拟器

    程序使用C/C++混合编程,基本实现的Cache的模拟功能(通过读取trace文件得到相应的命中率),能够实现直接映射、全相联、组相联三种映射方式,其中全相联和组相联能够实现随机、LRU两种替换策略。目前三种映射方式均...

    延长相变存储器寿命的写操作Cache及其调度策略

    延长相变存储器寿命的写操作Cache及其调度策略

    PrimoCache Server2.2.0服务器版.exe

    PrimoCache 是一款可以将物理内存、SSD 硬盘或闪存盘等虚拟成硬盘缓存的软件(虚拟内存盘软件),它可以... PrimoCache 实现了多种缓存策略以及灵活的缓存设置,您可轻松为您的物理硬盘创建缓存,提高硬盘的读写性能。

    PrimoCache2.2

    PrimoCache 是一款可以将物理内存、SSD 硬盘或闪存盘等虚拟成硬盘缓存的软件(虚拟内存盘软件),它可以... PrimoCache 实现了多种缓存策略以及灵活的缓存设置,您可轻松为您的物理硬盘创建缓存,提高硬盘的读写性能。

    cache_dict_test.zip_python策略

    用Python的字典来仿真cache的存储策略,即离散的读取用户请求来验证cache有效性

    Cache在嵌入式处理器中的使用问题

    采用Cache技术,即在Cache中存放CPU常用的指令和数据,然后将这些数据和指令以一定的算法和策略从主存中调入,使CPU可以不必等待主存数据而保持高速操作。这样就满足了嵌入式系统实时、高效的要求。但Cache的使用也...

    core.cache, 用于实现各种缓存策略的用于Clojure的缓存库.zip

    core.cache, 用于实现各种缓存策略的用于Clojure的缓存库 clojure.core. 缓存core.cache 是一个提供以下功能的新的Clojure contrib库:基础 CacheProtocol 用作实现新同步缓存的基抽象用于将 CacheProtocol 实现钩子...

Global site tag (gtag.js) - Google Analytics