CPU的运行机制——————ARM微控制器及嵌入式系统(清华大学慕课记录)

MCU的架构

MCU的架构主要包含三部分,CPU,存储器以及外设。
其中对于CPU的学习,主要需要掌握如下几个方面:

  1. 寄存器组
  2. 指令
  3. 中断
  4. 时钟

CPU的一个总体架构图:

在这里插入图片描述
在上图中,可以清晰地看到指令寄存器,控制单元、寄存器组、逻辑运算单元、程序状态寄存器,以及指令存储单元,数据存储单元。
下面对上述几个部分展开详细论述。

算术逻辑运算单元

在这里插入图片描述
算术逻辑单元英文缩写为ALU,是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由与门和或门组成的算术逻辑单元,主要功能是进行二位元的算术运算,加减乘(不包含除)。
其中算术逻辑运算单元主要包含如下四个要素:

  1. 两个输入数据 ———— operands(操作数)
  2. 一个指令 ———— operation(运算)
  3. 一个输出数据 ———— result(运算结果)
  4. 状态(Status)———— flag(标志位)

寄存器

逻辑运算单元操作数的来源

在进行简单的运算的时候,可以通过寄存器组提供操作数进行运算,具体过程如下图所示。
在这里插入图片描述

逻辑运算单元运算结果的存储

寄存器组除了上述提供操作数的来源以外,还具备将逻辑运算单元的运算结果存储到寄存器组的功能。示意图入下图所示。
在这里插入图片描述

因此对于寄存器组来讲,它可以用于临时保存两个操作数的运算结果,同时也能够提供操作数给ALU进行运算。除此之外,
任何CPU都包含若干通用以及专用寄存器
寄存器的数目以及宽度是衡量cpu的重要指标

数据存储器

逻辑运算单元操作数的来源

在CPU进行计算的时候,往往不能进行简单的运算,所以如果单单靠寄存器组无法保存比较大的数据,所以引入数据存储器的概念,需要注意的一点是,存储器不是CPU的组成部分,对存储器的访问要比对寄存器的访问慢很多。总体来说,操作数可以从寄存器中来,也可以从数据存储器中来。
在这里插入图片描述

逻辑运算单元运算结果的存储

数据存储器除了能够为逻辑运算单元提供操作数以外,还能够存储逻辑运算单元的运算结果。下图中的双向箭头即表示既可以从此处获取数据,也可以将计算结果存储到这里。而此处存储于数据存储器的逻辑运算单元的运算结果和存储于寄存器组中的逻辑运算单元结果的具有一定的区别。用一句易于理解的话来讲:
寄存器中存储的结果就像考试过程中在草稿纸中算出的一步的结果,但这个结果还不是最终答案,还不能誊抄至试卷上,还需要进一步计算
存储于数据存储器中的值相对于存储于寄存器中的值,可以比喻为是计算的最终结果,可以誊抄至试卷上结果
在这里插入图片描述

控制单元

上述分析了操作数的来源,逻辑运算单元结果的存储。两种过程在运行的过程中,都可能来自不同的对象,CPU在运行的过程中要有条不紊的执行这些操作,所需要的一个机制就是控制单元。如图所示就是关于控制单元的一个示意图。
在这里插入图片描述
从上图可以清晰的看到从控制单元出来的信号分别流向不同的开关,这些信号线也就控制着这些数据的流向,从而也就保证了CPU有条不紊地工作。而从上图还能得到的一个信息是控制单元还有一个输入量,而这个输入量正是指令寄存器中的若干条指令。因此,总体来说,控制单元主要负责接收指令寄存器的值,并相应的产生控制信号控制数据的流向,从而保证了CPU的工作。因此总结下俩,控制单元只要有以下两种功能。

  1. 接收指令寄存器中指令
  2. 产生相应的开关信号

在接收寄存器中的指令并给出相应的开关信号的过程中,用专业术语来描述,这个过程就是指令解析,产生相应的开关信号的过程也可以看做是数据流向。指令解析和数据流向的简要说明如下所示。

  1. 指令解析:分析改指令需要执行什么操作
  2. 数据流向:确定该指令用到的操作数来源和产生结果的去向

在CPU中,从哪里取得数以及说是将数以怎样的方式送到目标地址的这些过程也可以用一专业术语描述,即寻址方式,不同的CPU具有不同的寻址方式。
最后,对于控制器可以总结如下:

控制单元将一条特定的指令解析为对存储器,寄存器,逻辑运算单元的控制

获取指令

在讲述了上述过程中,控制单元接收指令,并对指令进行解析。那指令从哪里来,又是如何一条一条运行的。在这里就要有必要引出一下

                      程序是一切有序指令的集合

程序由指令序列构成,保存在程序存储器中。这些指令序列“依次”进入CPU中去执行。
而CPU是如何有序执行程序的,也就是如何有序的执行一系列指令呢?这里就要引入另一个寄存器的概念:

                         PC指针寄存器(程序计数器)

在这里插入图片描述
PC指针寄存器的功能主要是:

  1. 下一条待执行的指令地址保存在PC寄存器中
  2. 指令被取出后,PC更新指向下一条指令

总结

上述就是关于CPU核心部分的讲解,最后总结如下:
程序是一系列有序指令的集合,程序在CPU中的运行也就是一条条指令的有序运行。通过在一个时钟信号的驱动下,存储器中的指令被一条一条地送往控制单元进行解析,依据解析得到的信号控制CPU的运行,同时PC指针寄存器永远指向下一条待执行的指令,这一机制也就保证了指令的有序运行
通过控制单元解析得到的信息,从而决定CPU是从存储器还是从寄存器中获取操作数,当获取到操作数之后,操作数会被送往ALU进行计算,根据解析得到的信息,ALU计算得到的结果也会被送往寄存器或者存储器中进行存储

发布了19 篇原创文章 · 获赞 6 · 访问量 1734

猜你喜欢

转载自blog.csdn.net/weixin_42616791/article/details/103076026