首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据更改为原始状态后的脏位值

将数据更改为原始状态后的脏位值
EN

Stack Overflow用户
提问于 2016-12-12 15:05:47
回答 1查看 682关注 0票数 1

如果缓存的某些部分中的值为4,我们将其更改为5,则将该数据的脏位设置为1。但是,如果我们将值设置为4,那么脏位仍然是1还是更改为0呢?

我对此很感兴趣,因为这意味着在处理主存和缓存之间的读写操作时,计算机系统将得到更高级别的优化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 16:25:47

为了像您所说的那样使缓存工作,它需要保留一半的数据空间来存储旧值。

因为缓存之所以昂贵,恰恰是因为它们的每比特成本很高,并且考虑到:

  • 该机制只检测到两个编写历史的级别:一个是-> B -> A,而不是更深层次(比如A -> B -> C -> A)。
  • 写入将意味着旧值中当前值的副本。
  • 缓存中可压缩数据的最小量是行,需要将整行更改回原来的值。考虑到一条线的大小在64字节左右,这是不可能发生的。
  • 缓存的层次结构(L1,L2,L3,.)这正是为了减轻驱逐问题

您提出的解决方案与缺点相比几乎没有什么好处,因此没有实现。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41103742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档