挑战408——组成原理(20)——CPU的功能和组成

上一篇就刚刚好把指令的知识讲完了,原本应该写至少一篇指令系统刷题的。但是无奈,实习生活还是比较累的,为了质量,还是决定周末再写刷题版。

CPU的功能和组成

中央处理器(Control Processing Unit),是控制计算机自动完成取出指令跟执行指令的部件。是计算机的核心部件。
前面的概论我们知道,CPU主要是由运算器跟控制器组成。其中,运算器的功能是对数据进行加工,而控制器的功能是负责协调并控制各部件的指令序列(比如取指令,分析指令等等)。
CPU的具体功能包括:

  • 指令控制
  • 操作控制
  • 时间控制
  • 数据加工
  • 中断处理

CPU通过下面的三种方式,指挥全机运作:

  1. 按规定的操作执行(即程序的顺序执行)
    在这里插入图片描述
  2. 自动执行
    在这里插入图片描述
  3. 有秩序的执行
    在这里插入图片描述

结合之前学过的指令系统知识,可以通过下面的视频来了解指令的执行过程。(csdn不能上传视频,去知乎看吧)。

CPU的基本结构

在计算机系统中,CPU由运算器跟控制器组成。

运算器

运算器主要接收从控制器处传来的命令,并执行相应的操作,对数据进行加工处理,主要以下面的几部分组成

  • 算术逻辑单元(ALU):主要进行算术/逻辑运算
  • 暂存寄存器:用于暂存从主存读出来的数据,该数据不能放在通用寄存器上,对应用程序员透明。
  • 累加寄存器(ACC):一个通用寄存器组,用来暂存ALU的运算结果,当ALU执行算术和逻辑运算的时候,为ALU童工一个工作区(比如我们之前提到过的R1+R2 ->R1)
  • 通用寄存器组:AX,BX,CX,DX.SP等等,用于存放操作数(包括源操作数,目的操作数以及中间结果)和各种地址信息。SP是堆栈指针,用于指向栈顶的地址。
  • 程序状态字信息(PSW): 用来表示各种工作状态信息跟中断情况。如下图所示:
    在这里插入图片描述
  • 移位器:对操作数或者运算结果进行以为操作
  • 计数器:控制乘除运算的步数
控制器

控制器是整个系统的指挥中心,在其控制下,使运算器,存储器和输入输出设备等功能部件构成一个有机整体。其基本功能是执行指令。每条指令的执行是由控制器发出的一组微操做实现的。主要由以下几部分组成:

  • 程序计数器(PC):用于指出下一条指令在主存中的存放地址,CPU是根据PC中的内容去取得指令的。
  • 指令寄存器(IR):用来保存从存储器中取出,正在执行的指令,在执行该指令的过程中,指令寄存器的内容不允许更改,以确保实现指令的全部功能。
  • 指令译码器:对操作码字段进行译码,向控制器提供特定操作信号。
  • 存储器地址寄存器(MAR):用于存放将要访问的主存单元的地址。
  • 存储器数据寄存器(MDR):用于存放向主存写入/读出的信息。
  • 时序系统:用于产生各种时序信号。由统一时钟分频所得。
  • 微操作信号发生器:由IR,PSW的内容以及时序信号,产生控制整个计算机系统所需的各种控制信号。

控制器的原理,是根据指令操作码,执行步骤,条件信号来形成当前计算机各部件所要的控制信号

寄存器的可见性

CPU内部的寄存器大致可以分成两种;

  1. 用户可见寄存器:用户可以通过程序去访问的寄存器(如通用寄存器,PSW, PC等等)。
  2. 用户不可见寄存器:程序无法访问,在程序的执行过程中自动赋值(如MAR,MDR IR等等)
指令的执行过程
指令周期

指令周期:从取指令,分析指令,到执行完该指令所需要的全部时间,称为指令周期。也就是CPU完成一条指令的时间。

机器周期:也称为CPU周期,把一条指令周期划分为若干个机器周期,每个机器周期内完成一个基本操作,不同的指令可能包含不同数目的机器周期。通常它等于取指时间或者访存时间。
T周期也称时钟周期或者节拍,是CPU操作的最基本的单位。在一个机器周期内,要完成若干个微操作,因而需要分成若干个时间段。所以也称为节拍T。节拍的宽度取决于CPU完成一次基本的微操作所需要的时间。下图说明了三者间的相互关系:
在这里插入图片描述

对于一些执行期间不需要访存的指令,比如Jump,X.,这是一条无条件转移指令,此时指令周期仅仅包含取指周期和执行周期。但是对于间接寻址指令,为了取操作数,需要先访问内存一次,取出有效地址后,再访问主存,取出操作数,所以这种操作还包括间址周期。当CPU采用中断方式实现主机跟I/O设备的信息交换的时候,如果有中断请求,则CPU进入中断响应阶段,此时又称为中断周期。这样,完整的指令周期为:
在这里插入图片描述
实际上,每个周期都有CPU在访存,只不过是访存的目的不同,分别为取指令,取EA,取操作数,保存断点。

指令的执行过程:

取指周期:根据PC中的内容,聪明和主存中取出指令代码,并放在IR中。(即CPU从何处取指,如何形成后续的指令)
间址周期:取操作数的有效地址
执行周期:根据IR中指令字的操作码,操作数,通过ALU操作产生结果。
中断周期:处理中断请求,将程序断点存入堆栈中,SP指示栈顶地址,则进栈操作是先秀海栈顶指针,后存入数据(那么出栈的操作我们前面说过)。

下面的视频是指令的执行过程:
指令的执行过程

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值