CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?

这篇具有很好参考价值的文章主要介绍了CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

快速学习嵌入式开发其他基础知识?>>>>>>>>> 返回专栏总目录 《嵌入式工程师自我修养/C语言》<<<<<<<<<

Tip📌:鼠标悬停双虚线关键词/句,可获得更详细的描述

一、CPU内部结构及工作原理

1.1 CPU的结构

  CPU内部构造很简单,宏观上划分为算术逻辑运算单元、控制单元和存储单元。程序代码存储在内部存储器(内存)中,CPU可以从内存中一条一条地取指令、翻译指令并执行它。

RAM、ROM、DRAM、SRAM、Flash、EMMC傻傻分不清?建议先阅读:>>>>>> 一文帮你快速区分常用存储器!<<<<<<

算术逻辑单元(Arithmetic and Logic Unit,ALU):由算术单元和逻辑单元组成(他俩分别负责加、减、乘等数学运算以及与、或、非等逻辑运算),是处理器最核心的部件。ALU只是纯粹的运算单元,要想完成一个指令运行的整个流程,还需要控制单元的协助。

控制单元:通俗的讲,该部分会根据程序计数器PC中的地址,会不断地从内存RAM中取指令,放到指令寄存器中并进行译码,将指令中的操作码和操作数分别送到ALU,执行相应的运算。实际上,该单元还可以进一步划分,比如划分为:

  • 指令控制:完成取指令、分析指令、PC自增等操作,然后交给执行单元来执行;
  • 时序控制:主要分为时钟发生器、倍频定义单元,时钟发生器由石英晶体振荡器发出非常稳定的脉冲信号,也就是CPU的主频,而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍;
  • 总线控制:控制地址总线、数据总线、控制总线等CPU的内外部总线;
  • 中断控制:控制各种各样的中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。

存储单元:主要包括通用寄存器(比如R0、R1. . .)、状态寄存器(CPSR)以及内部cache(缓存)。

  • 通用寄存器:用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果;
  • 状态寄存器:主要有两大功能,第一是存放当前指令执行结果的各种状态或条件码,比如结果是否为负、是否为0、是否进位、是否溢出等;其次就是存放控制信息,比如中断标志位;
  • cache:进行高速数据交换的存储器(为了解决CPU的工作频率与内存访问速度间差异过大导致的性能问题而存在,后文会解释)。

1.2 CPU工作流程举例

  假设通过高级语言编写的一行代码实现的功能是两个整数A、B相加,该程序代码经过编译器编译后,作为机器指令存储在内存RAM中,如下图所示;
CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?,嵌入式软件开发 / C语言,架构,嵌入式硬件,单片机
  控制单元通过指令译码电路会将该指令分解为操作码和操作数,再根据操作数地址从内存RAM中加载数据A和B,传送到ALU的输入端,然后将操作运算类型(操作码)即加法也告诉ALU。ALU有了输入数据和操作类型,就可以直接进行相应的运算了,并输出运算结果。

  为了效率考虑,运算结果一般会先保存到寄存器中,然后由控制单元将该数据从寄存器存储(Store)到内存RAM中。至此,一个完整的加法指令执行流程就结束了,控制单元会继续取下一条指令,然后翻译指令、运行指令, 周而复始。

Tips📌:

  • 内存带宽的瓶颈会拖CPU的后腿,影响CPU的性能。为了提高性能,防止RAM拖后腿,CPU一般都会在内部配置一些寄存器,用来保存CPU在计算过程中的各种临时结果和状态值。
  • ALU在运算过程中,当运算结果为0、为负、数据溢出时,会有一些Flags标志位输出,这些标志位对控制单元特别有用,如一些条件跳转指令,其实就是根据运算结果的这些标志位进行跳转的

二、计算机体系结构

  上文提到CPU内部的结构其实很简单,除了ALU、控制单元、寄存器和少量Cache,根本没有多余的空间存放我们编写的代码。因此我们通常将编写的程序(指令序列)存储在额外的内部存储器——内存RAM中(建议先阅读:>>>>>> 一文帮你快速区分常用存储器!<<<<<<)。

  但上文我们也提到,内存带宽瓶颈会影响CPU的性能,于是为了兼顾存储和效率,计算机系统一般会采用内存+外存的存储结构:程序指令保存在诸如磁盘、NAND Flash、SD卡等外部存储器中,当程序运行时,相应的程序会首先加载到内存,然后CPU从内存一条一条地取指令、翻译指令和运行指令。

  计算机主要用来处理数据。我们编写的程序,除了指令,还有各种各样的数据。指令和数据都需要保存在存储器中,根据保存方式的不同,计算机可分为两种不同的架构:冯·诺依曼架构和哈弗架构

2.1 冯·诺依曼架构

  采用冯·诺依曼架构的计算机,其特点是程序中的指令和数据混合存储,存储在同一块存储器的不同物理地址上。

  一般我们会把指令和数据存放到外存储器中,当程序运行时,再把这些指令和数据从外存储器加载到内存储器(内存储器支持随机访问并且访问速度快,这里说的外存储器通常是flash、EMMC等,内存储器指的是RAM,通常为DRAM,再次建议先阅读:>>>>>> 一文帮你快速区分常用存储器!<<<<<<),如下图所示。
CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?,嵌入式软件开发 / C语言,架构,嵌入式硬件,单片机
Tips📌:
  由于该架构结构简单,工程上容易实现,所以很多现代处理器都采用这种架构,如X86、ARM7、MIPS等。

2.2 哈弗架构

  采用哈弗架构的计算机,其特点是程序中的指令和数据被分开独立存储,它们分别被存放到程序存储器和数据存储器,如下图所示。
CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?,嵌入式软件开发 / C语言,架构,嵌入式硬件,单片机
Tips📌:

  • 每个存储器都独立编址,独立访问,而且指令和数据可以在一个时钟周期内并行访问;
  • 使用该架构的处理器运行效率更高,但缺点是CPU实现会更复杂。8051系列单片机采用的就是哈弗架构。

三、总结

  综上所述,CPU是计算机的核心组件,它负责执行计算机程序中的指令。冯·诺依曼架构和哈弗架构是两种不同的计算机体系结构。

  冯·诺依曼架构的特点是将程序指令和数据存储在同一块内存中,通过一个共享的总线进行数据传输。这种结构的优点是简单易懂,容易实现,广泛应用于现代计算机系统中。而哈弗架构则是将指令和数据分开存储,通过不同的总线进行数据传输,这种结构可以提高计算机的并行处理能力。总的来说,他们都各有优劣,选择哪种架构取决于具体的应用场景和需求。

>>>>>>>>> 返回专栏总目录 《嵌入式工程师自我修养/C语言》<<<<<<<<<文章来源地址https://www.toymoban.com/news/detail-833386.html

到了这里,关于CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机架构】如何计算 CPU 动态功耗

           本篇博客全站热榜排名: 8 📜 本章目录: 0x00 动态功耗(Dynamic Power) 0x01 集成电路成本(Integrated Circuit Cost) 0x02 基准测试(SPEC CPU Benchmark) 0x03 SPEC功率基准测试(SPEC Power Benchmark) 0x04 Pitfall:Amdahl’s 定律 0x05 Pitfall:将 MIPS 作为性能指标 0x00 动态功耗(Dynamic P

    2023年04月21日
    浏览(59)
  • Ubuntu 如何查看 CPU 架构、系统信息、内核版本、版本代号?

    Ubuntu 查看 CPU 架构、系统信息、内核版本、版本代号等相关信息有很多方式,本文介绍几种常用的命令。 x86 架构与 ARM 架构的 CPU 架构不同,如果回显为 aarch64 表示为 ARM 架构,如果回显为 x86_64 表示为 x86 架构,参考《CPU 架构(x86/ARM)简介》这篇文章。 Ubuntu 基础版本号由日

    2024年02月09日
    浏览(73)
  • [深度学习入门]什么是神经网络?[神经网络的架构、工作、激活函数]

      在大多数资料中,神经网络都被描述成某种 正向传播的矩阵乘法 。而本篇博文 通过将神经网络描述为某种计算单元 ,以一种更加简单易懂的方式介绍神经网络的功能及应用。   广义上讲,神经网络就是要 在输入数据中找寻某种规律 ,就像这个经典的例子: 手写数

    2024年02月17日
    浏览(50)
  • 一文读懂CPU工作原理、程序是如何在单片机内执行的、指令格式之操作码地址码

    CPU的控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。由运算器执行对应的机器指令,并将结果通过地址总线写回数据段 中间处理器(CPU,Central Processing Uni

    2024年01月16日
    浏览(41)
  • 嵌入式软件测试笔记12 | 什么是状态转换测试?如何开展?

    嵌入式系统有些表现出基于状态的行为,设计此系统可使用基于状态的建模; 在设计过程中,创建的模型可作为测试设计的基础; 以下将描述基于状态的模型来导出测试用例的技术。 此技术目标是:验证事件、动作、行为与转台转换之间的关系; 通过此技术,可判定系统基

    2024年02月17日
    浏览(59)
  • 了解Transformer架构的前奏_什么是预训练_理解预训练---人工智能工作笔记0034

    我们会先来说预训练有什么用,其实    之前说的机器学习,其实都是跟数学相关性很大的,比如,支持向量机,回归算法, 1.最早的时候,做机器学习,就是偏数学的,比如用的决策树,支持向量机,线性回归,逻辑回归等算法. 这种是偏向数学的,偏向统计的. 然后这个深度学习,其实就是偏

    2023年04月22日
    浏览(36)
  • 01_什么是ansible、基本架构、ansible工作机制、Ansible安装、配置主机清单、设置SSH无密码登录等

    1.什么是ansible 1.1.基本介绍 1.2.基本架构 1.3.基本特征 1.4.优点 1.5.ansible工作机制 2.Ansible安装 2.1.机器准备 2.2.安装ansible 2.2.1.安装epel源 2.2.2.安装ansible 2.2.3.查看ansible版本 2.2.4.树状结构展示文件夹 2.2.4.1.其中ansible.cfg的内容如下 2.2.4.2.host的默认内容是 2.3.配置主机清单 2.4.设置

    2024年02月14日
    浏览(45)
  • 什么是敏捷工作流程?如何实施?

    依赖传统的项目管理流程(即使它们效率不高),会阻碍团队协作,难以管理不断变化的项目需求。 而另一方面,现代项目管理方法(如敏捷工作流程)为项目带来了简单性、自主性和高效性。它能帮助你了解团队的工作内容,使每个人都致力于实现项目目标,并赋予团队成

    2024年02月09日
    浏览(43)
  • 【科普】1分钟帮你搞懂机械硬盘、固态硬盘、内存、cpu是什么?如何挑选?

    当你使用电脑时,机械硬盘、固态硬盘、内存和CPU都是非常重要的组件。以下是它们的基本定义和作用: 机械硬盘(HDD) 机械硬盘是计算机中的一种数据存储设备,它使用旋转的盘片和移动的磁头来读写数据。机械硬盘通常比固态硬盘容量更大,价格更便宜,但是速度相对

    2024年02月09日
    浏览(47)
  • 什么是物联网?物联网如何工作?

    物联网(Internet of Things,IoT)的概念最早于1999年被提出,官方解释为“万物相连的互联网”,是在互联网基础上延伸和扩展,将各种信息传感设备与网络结合起来而形成的一个巨大网络,可以实现在任何时间、任何地点,人、机、物的互联互通,曾被称为继计算机、互联网之后

    2024年03月17日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包