单周期cpu设计步骤_挑战408——组成原理(20)——CPU的功能和组成

本文介绍了CPU的主要功能,包括指令控制、操作控制、时间控制和数据加工等。CPU由运算器和控制器组成,运算器负责数据加工,控制器协调指令序列。文章详细阐述了运算器的组成部分,如ALU、寄存器等,并解析了控制器的构成,如程序计数器、指令寄存器等。还讨论了指令执行的过程,包括取指、间址、执行和中断周期。

511d8d63bf2b8469b00facdf992677af.png

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

CPU的功能和组成

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

CPU的具体功能包括:

- 指令控制

- 操作控制

- 时间控制

- 数据加工

- 中断处理

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

1. 按规定的操作执行(即程序的顺序执行)

5e9813ee7cc7f5ba3d84078424126235.png

2. 自动执行

7e718c58e36d2749c2f83d74e85c7a7c.png

3. 有秩序的执行

6b0e31534c52f7c0672cc90fde9ad9cf.png

结合之前学过的指令系统知识,可以通过下面的视频来了解指令的执行过程。

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

运算器

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

- 算术逻辑单元(ALU):主要进行算术/逻辑运算

- 暂存寄存器:用于暂存从主存读出来的数据,该数据不能放在通用寄存器上,对应用程序员透明。

- 累加寄存器(ACC):一个通用寄存器组,用来暂存ALU的运算结果,当ALU执行算术和逻辑运算的时候,为ALU童工一个工作区(比如我们之前提到过的R1+R2 ->R1)

- 通用寄存器组:AX,BX,CX,DX.SP等等,用于存放操作数(包括源操作数,目的操作数以及中间结果)和各种地址信息。SP是堆栈指针,用于指向栈顶的地址。

- 程序状态字信息(PSW): 用来表示各种工作状态信息跟中断情况。如下图所示:

683b7b45765750726697144e5925f032.png

- 移位器:对操作数或者运算结果进行以为操作

- 计数器:控制乘除运算的步数

控制器

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

- 程序计数器(PC):用于指出下一条指令在主存中的存放地址,CPU是根据PC中的内容去取得指令的。

- 指令寄存器(IR):用来保存从存储器中取出,正在执行的指令,在执行该指令的过程中,指令寄存器的内容不允许更改,以确保实现指令的全部功能。

- 指令译码器:对操作码字段进行译码,向控制器提供特定操作信号。

- 存储器地址寄存器(MAR):用于存放将要访问的主存单元的地址。

- 存储器数据寄存器(MDR):用于存放向主存写入/读出的信息。

- 时序系统:用于产生各种时序信号。由统一时钟分频所得。

- 微操作信号发生器:由IR,PSW的内容以及时序信号,产生控制整个计算机系统所需的各种控制信号。

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

寄存器的可见性

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

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

指令的执行过程

指令周期

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

机器周期:也称为CPU周期,把一条指令周期划分为若干个机器周期,每个机器周期内完成一个基本操作,不同的指令可能包含不同数目的机器周期。通常它等于取指时间或者访存时间。

T周期也称时钟周期或者节拍,是CPU操作的最基本的单位。在一个机器周期内,要完成若干个微操作,因而需要分成若干个时间段。所以也称为节拍T。节拍的宽度取决于CPU完成一次基本的微操作所需要的时间。下图说明了三者间的相互关系:

28cbcc1892e92f9a4918ae0e80cdde34.png

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

064628739a3926986b5306d91fac21fe.png

实际上,每个周期都有CPU在访存,只不过是访存的目的不同,分别为取指令,取EA,取操作数,保存断点。

指令的执行过程:

取指周期:根据PC中的内容,聪明和主存中取出指令代码,并放在IR中。(即CPU从何处取指,如何形成后续的指令)

间址周期:取操作数的有效地址

执行周期:根据IR中指令字的操作码,操作数,通过ALU操作产生结果。

中断周期:处理中断请求,将程序断点存入堆栈中,SP指示栈顶地址,则进栈操作是先秀海栈顶指针,后存入数据(那么出栈的操作我们前面说过)。

下面的视频是指令的执行过程(建议下载后观看):

https://pan.baidu.com/s/1NjVBeaDtoaRu1RwylWBddQ​pan.baidu.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值