码迷,mamicode.com
首页 > 其他好文 > 详细

存储器的写操作、行组块的区别_15.09.17/1-第六章(6.4)

时间:2015-10-27 00:03:30      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

     之前的说明全部都是有关存储器的读操作,现在进行关于写操作的学习:
     在高速缓存的读的过程就是在高速缓存中查找所需关键字的拷贝,如果命中就将该字返回给CPU。如果不命中的话,就从存储器的层次结构的较低层中查找并取出包含该字的块存储到高速缓存行中,然后再将其返回给CPU。
     但是在写的情况就会复杂些。如果在写的过程中,如果对一个已经缓存字发生了写命中write hit,在高速缓存中更新了这个字之后还要对低层次的存储器进行更新操作。有两种方式进行这个操作:
     1、直写write-through:就是在高速缓存中更新了字之后马上对低层存储器进行更新,这种操作简单直接,但是它每次写操作都会引起总线流量。
     2、写回write-back:尽可能地推迟对存储器的更新,只有当这个更新过的关键字所在的块要被替换算法驱逐时才将它写入下一层,这种方法会减少总线流量,但是其增加了复杂度,并且要为每个高速缓存行维护一个修改位dirty bit,以确定这个高速缓存块是否被修改过。
     以上讨论的是写命中发生时,但是当写不命中发生时也有两种处理方法:
     1、写分配write-allocate:将相应的块从低层次加载到高速缓存,然后再按照以上所说更新这个高速缓存块,利用写的空间局部性,但是这个每次写不命中都会导致一个块从低一层传送到高速缓存。
     2、非写分配not-write-allocate:不经过高速缓存,直接将关键字写入低一层。
     通常直写高速缓存是非写分配的,写回高速缓存是写分配的。
     高速缓存行、组、块的区别:
     块是一个固定大小的信息包,在高速缓存和主存(或下一级高速缓存)之间来回传送
     行是高速缓存中存储块以及其他信息(例如有效位和标记位)的容器
     组是一个或多个行的集合。直接映射高速缓存中的组只有一行组成。组相联和全相联高速缓存总的组是由多个行组成的。在直接映射高速缓存中,组和行是等价的。不过,在组相联高速缓存中,组和行是不一样的。
     

存储器的写操作、行组块的区别_15.09.17/1-第六章(6.4)

标签:

原文地址:http://www.cnblogs.com/xd-g/p/4912594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!