并行文件系统的特点 计算机科学基础知识(一)The Memory Hierarc(7)

电脑杂谈  发布时间:2018-02-21 23:50:19  来源:网络整理

上面的章节主要描述读操作,对于写操作其实也存在cache hit和cache miss,这时候,系统的行为又是怎样的呢?我们首先来看看当cache hit时候的行为(也就是说想要写入数据的地址单元已经在cache中了)。根据写的行为,cache分成三种类型:

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

(2)带write buffer的write through。策略同上,只不过不是直接写memory,而是把更新的数据写入到write buffer,在合适的时候才对memory进行更新。

(3)write back。CPU更新cache line时,只是把更新的cache line标记为dirty,并不同步更新memory。只有在该cache line要被替换掉的时候,才更新 memory。这样做的原因是考虑到很多时候cache存入的是中间结果(根据局部性原理,程序可能随后还会访问该单元的数据),没有必要同步更新memory(这可以降低bus transaction)。优点是CPU执行的效率提高,缺点是实现起来技术比较复杂。

在write操作时发生cache miss的时候有两种策略可以选择:

(1)no-write-allocate cache。当write cache miss的时候,简单的写入main memory而没有cache的操作。一般而言,write through的cache会采用no-write-allocate的策略。

(2)write allocate cache。当write cache miss的时候,分配cache line并将数据从main memory读入,之后再进行数据更新的动作。一般而言,write back的cache会采用write allocate的策略。

4、物理地址还是虚拟地址?

当CPU发出地址访问的时候,从CPU出去的地址是虚拟地址,经过MMU的映射,最终变成物理地址。这时候,问题来了,我们是用虚拟地址还是物理地址(中的cache set index)来寻找cache set?此外,当找到了cache set,那么我们用虚拟地址还是物理地址(中的Tag)来匹配cache line?

根据使用的是物理地址还是虚拟地址,cache可以分成下面几个类别:

(1)VIVT(Virtual index Virtual tag)。寻找cache set的index和匹配cache line的tag都是使用虚拟地址。

(2)PIPT(Physical index Physical tag)。寻找cache set的index和匹配cache line的tag都是使用物理地址。

(3)VIPT(Virtual index Physical tag)。寻找cache set的index使用虚拟地址,而匹配cache line的tag使用的是物理地址。

对于一个计算机系统,CPU core、MMU和Cache是三个不同的HW block。采用PIPT的话,CPU发出的虚拟地址要先经过MMU翻译成物理地址之后,再输入到cache中进行cache hit or miss的判断,毫无疑问,这个串行化的操作损害了性能。但是这样简单而粗暴的使用物理地址没有歧义,不会有cache alias。VIVT的方式毫无疑问是最快的,不需要MMU的翻译直接进入cache判断hit or miss,不过会引入其他问题,例如:一个物理地址的内容可以出现在多个cache line中,这就需要更多的cache flush操作。反而影响了速度(这就是传说中的cache alias,具体请参考下面的章节)。采用VIPT的话,CPU输出的虚拟地址可以同时送到MMU(进行翻译)和cache(进行cache set的选择)。这样cache 和MMU可以同时工作,而MMU完成地址翻译后,再用物理的tag来匹配cache line。这种方法比不上VIVT 的cache 速度, 但是比PIPT 要好。在某些情况下,VIPT也会有cache alias的问题,但可以用巧妙的方法避过,后文会详细描述。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-87804-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 牛霖杰
      牛霖杰

      具有领海和专属经济区

    • 李宝彩
      李宝彩

      也必须要留出公共空间以利大家通行的

    热点图片
    拼命载入中...