当前位置: 首页 > news >正文

谁还能不知道计算机组成结构与缓存

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
😊 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

最近在架构师方面的书籍,内容可真多,有些基础遗忘了,现在重新拾起。

文章目录

  • 冯·诺伊曼结构
  • 工作原理
  • 冯·诺伊曼结构特点
  • 存储结构
    • Cache
    • Cache 的映射与组织方式
    • Cache一致性

冯·诺伊曼结构

冯·诺伊曼结构也称为普林斯顿结构,是一种将程序指令存储器数据存储器合并在一起的存储器结构。
冯·诺伊曼结构明确将计算机划分为五个逻辑部分:输入设备、输出设备、运算器、控制器、存储器。

(图片来源于希赛网)

部件功能补充
运算器执行所有算术运算和逻辑运算的核心部件。1.累加寄存器AC:通用寄存器,为ALU提供一个工作区,用于暂存数据; 2.数据缓冲寄存器DR:写内存时,暂存指令或数据;3. 状态条件寄存器PSW:存状态标志与控制标志
控制器指挥协调整个系统。它从内存取指令、译码、分析,并发出控制信号驱动其他部件。1. 程序计数器PC:存储下一条要执行指令的地址;2. 指令寄存器IR:存储即将执行的指令;3. 指令译码器ID:对指令中的操作码字段进行分析解释;4. 时序部件:提供时序控制信号
存储器存放程序数据的记忆装置。可按地址访问。
输入设备将外界信息(程序和数据)转换为计算机可识别的二进制形式并送入存储器。鼠标、键盘
输出设备将计算机内部的二进制结果转换为人或其它设备可识别的形式。显示器

运算器和控制器在现代计算机中通常被集成在一块芯片上,合称为中央处理器

工作原理

(冯·诺依曼结构如何运作的关键步骤)

  1. 取指令:控制器根据程序计数器中的地址,从存储器中读取一条指令。
  2. 指令译码:控制器分析该指令,确定要执行什么操作(操作码),以及操作数在哪里(地址码)。
  3. 取操作数:根据地址码,从存储器或寄存器中获取执行操作所需的数据。
  4. 执行指令:运算器在控制信号下,对操作数进行指定的算术或逻辑运算。
  5. 存储结果:将运算结果写回存储器或指定的寄存器。
  6. 更新程序计数器:为取下一条指令做好准备(通常是PC+1,除非遇到跳转指令)。

在文章最初有提到冯·诺伊曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

冯·诺伊曼结构特点

  1. 用于PC处理器,如I3、I5、I7 处理器
  2. 指令与数据存储器合并在一起
  3. 指令与数据都通过相同的数据总线传输

不得不提另一种结构——哈弗结构

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

特点如下:

  1. 一般用于嵌入式系统处理器(DSP)数字信号处理 (DSP,Digital Signal Processing)
  2. 指令与数据分开存储,可以并行读取,有较高数据的吞吐率
  3. 有4条总线:指令和数据的数据总线与地址总线

试题:计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作,首先是将程序计算器PC的内容送到地址总线上。

存储结构

存储系统是通过层次化存储结构,包含以下内容:

  • 外存(辅存):硬盘、光盘、U盘等
  • 内存(主存):通常是DRAM存储器(动态)
  • Cache:按内容存取(相联存储器),解决存储与速度不匹配的问题。
  • CPU:寄存器,容量小,速度快

容量越小速度越快

试题:计算机采用分级存储体系的主要目的是为了解决存储的容量、价格和速度之间的矛盾

Cache

Cache 是高速缓冲存储器,简称缓存。是用来解决CPU与主存之间速度容量不匹配的问题,这个问题也是冯诺伊曼瓶颈。在CPU和主存之间加上Cache 能够提高 CPU 数据输入输出的速率。

核心目标:让CPU尽可能快地拿到它需要的数据和指令,从而减少甚至避免CPU因等待慢速的主存而“空转”的时间。

  • Cache是除了寄存器外,访问速度最快的层次。

  • Cache 对程序员是透明的,程序员无法操作CaChe。

  • 使用Cache 改善系统性能的依据是程序的局部性原理(即计算机程序在短时间内,倾向于访问一小部分集中的内存区域。)

    • 时间局部性
      • 如果一个内存位置被访问,那么它在不久的将来很可能再次被访问
      • 例子:循环变量i在循环中被反复读写。
    • 空间局部性
      • 如果一个内存位置被访问,那么它附近的内存位置也很有可能在不久后被访问。
      • 例子:顺序执行程序指令、顺序访问数组元素。

    基于此,Cache的策略是:当CPU需要某个数据时,不仅把这个数据从慢速内存取到快速Cache,还会把其周围的一整块数据(称为一个“Cache行”)都取过来。这样,当CPU接下来需要相邻数据时,就能直接从Cache中命中,无需访问主存。

Cache 的映射与组织方式

主存中的一个数据块到底可以放在Cache的哪个位置?主要有三种方式:

  • 直接映射:主存块只能放在Cache中唯一的一个特定位置。简单,但容易冲突。
  • 全相联映射:主存块可以放在Cache中的任意位置。灵活,但查找电路复杂、成本高。
  • 组相联映射(最常用):将Cache分成若干组,每组有多个行。主存块可以映射到特定组内的任意一行。这是直接映射和全相联的折中方案(如“8路组相联”)。

Cache一致性

在多核系统中,每个核心有自己的私有缓存(L1, L2)。如果核心A修改了自己缓存中的数据,如何保证核心B不会读到旧的、过时的数据?

  • 这就是缓存一致性问题,由硬件实现的缓存一致性协议(如MESI协议)来解决。该协议通过维护缓存行的状态(Modified, Exclusive, Shared, Invalid),来确保所有核心看到的内存视图是一致的。

何时葡萄先熟透,你要静候再静候。
何时功成与名就,你要静心再静心。
辞家千里又千里,务必争气再争气。

http://www.zskr.cn/news/110336.html

相关文章:

  • TMS SQL server连接查询恢复条码
  • 腾讯HunyuanVideo-Foley开源本地部署指南
  • 定时执行任务crontab用法
  • LobeChat能否接入天气API?智能生活服务拓展
  • 2025空气加热器定制厂家TOP5权威推荐:节能效果与定制能 - 工业推荐榜
  • GitHub Wiki文档梳理:GPT-SoVITS常见问题解答
  • ACE-Step:一键生成AI歌曲的音乐创作利器
  • Python安装opencv-python等依赖包时使用清华源提速
  • Navicat 15 数据库管理工具安装指南
  • 《60天AI学习计划启动 | Day 12:本地模型部署 - 实现离线 AI 功能》
  • pcb5-ez_java
  • 小程序通过页面截图识别进入后白屏
  • 构建高性能、领先合规的主动防御体系:运营商数据库风险监测与审计最佳实践指南
  • 从零开始配置PaddlePaddle开发环境:ubuntu安装+cuda安装一站式教程
  • Ubuntu20.04安装TensorFlow/PyTorch GPU及开发环境
  • Mysql入湖Iceberg
  • 基于PyTorch-CUDA容器的PM2.5浓度预测实战
  • Qwen-Image-Edit-2509本地部署与智能图像编辑指南
  • 2025Deepseek知识库建设方案商部署优选清单:企业知识库部署厂商全收录 - 品牌2026
  • 上海到武汉黄石襄阳荆州宜昌十堰孝感荆门鄂州黄冈咸宁随州恩施搬家公司搬家物流推荐!跨省搬家排行榜 - 物流人
  • Kotaemon:开源RAG框架的混合检索突破
  • 2026留学语言培训价值榜发布:多次元教育以98.6分引领行业从规模竞争走向质量深耕 - 速递信息
  • LobeChat能否驾驶无人机?空中任务指挥官
  • Wan2.2-T2V-A14B:16倍压缩与双专家架构突破
  • 大数据环境下数据仓库的微服务架构
  • 从认知自我到行为塑造,自我管理经典必读书籍推荐
  • 2025年度办公室装修公司TOP5权威推荐:甄选公装企业破解 - mypinpai
  • 2025-2026北京婚姻家事律师事务所口碑排名:专业解析与靠谱机构推荐 - 苏木2025
  • NVIDIA官方TensorRT镜像在PyTorch安装环境中的集成方案
  • java:链表,栈和队列(手写)和java当中的栈和队列