操作系统(笔记)

本文介绍了冯·诺伊曼计算机结构,包括运算器、控制器、存储器、输入设备和输出设备,以及总线的作用。接着详细探讨了CPU缓存一致性问题,对比了写直达和写回两种策略。写直达每次写操作都更新内存和缓存,而写回策略则仅在替换时才将脏数据写回内存,以提高性能。缓存一致性问题涉及多核处理器中多个缓存如何保持数据同步。
摘要由CSDN通过智能技术生成

计算器硬件结构结构

冯.诺伊曼模型 : 1945年冯诺依曼和其他的计算机科学家提出了计算机的具体实现报告,其遵循了图灵机的设计,提出了用电子原件制造计算机,约定了二进制的存储。
定义了计算机的五个部分: 运算器、控制器、存储器、输入设备、输出设备。我们把这五个部分称为冯诺依曼模型。
在这里插入图片描述
运算器控制器在中央处理器中,存储器是我们常见的内存,输入设备输出设备是计算机的外接设备。
存储器和输入输出设备的数据传输要依赖总线。
在这里插入图片描述
在这里总线分为三种:

  • 地址总线 用于指定cpu中要操作的内存地址
  • 数据总线 用于读写内存的数据
  • 控制总线 用于发送和接受信号。

CPU缓存一致性

写直达

保持内存与 Cache 一致性最简单的方式是,把数据同时写入内存和 Cache 中,这种方法称为写直达
在这里插入图片描述

写回

既然写直达由于每次写操作都会把数据写回到内存,而导致影响性能,于是为了要减少数据写回内存的频率,就出现了写回(Write Back)的方法。
在写回机制中,当发生写操作时,新的数据仅仅被写入 Cache Block 里,只有当修改过的 Cache Block「被替换」时才需要写到内存中,减少了数据写回内存的频率,这样便可以提高系统的性能。
具体操作

  • 如果当发生写操作时,数据已经在 CPU Cache 里的话,则把数据更新到 CPU Cache 里,同时标记 CPU Cache 里的这个 Cache Block 为脏(Dirty)的,这个脏的标记代表这个时候,我们 CPU Cache 里面的这个 Cache Block 的数据和内存是不一致的,这种情况是不用把数据写到内存里的;
  • 如果当发生写操作时,数据所对应的 Cache Block 里存放的是「别的内存地址的数据」的话,就要检查这个 Cache Block 里的数据有没有被标记为脏的,如果是脏的话,我们就要把这个 Cache Block 里的数据写回到内存,然后再把当前要写入的数据,先从内存读入到 Cache Block 里(注意,这一步不是没用的,具体为什么要这一步,可以看这个「回答 (opens new window)」),然后再写入的数据写入到 Cache Block,最后也把它标记为脏的;如果 Cache Block 里面的数据没有被标记为脏,则就直接将数据写入到这个 Cache Block 里,然后再把这个 Cache Block 标记为脏的就好了。

缓存一致性问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值