“软件设计师精讲 CPU的组成(运算器与控制器)”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第62行: 第62行:
 
数据缓冲寄存器DR:写内存时,暂存指令或数据
 
数据缓冲寄存器DR:写内存时,暂存指令或数据
  
状态条件寄存器PSW:存状态标志与控制标志
+
状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的)
 
 
(争议:也有将其归为控制器的)
 
  
 
=== 控制器 ===
 
=== 控制器 ===

2024年5月7日 (二) 13:29的版本

https://www.bilibili.com/video/BV13U4y1E7oA/?p=12

计算机结构

软件设计师 计算机结构 3.png

CPU结构

软件设计师精讲 CPU结构.png

状态条件寄存器的归属存在争议:也可能划分到控制器中。

算术逻辑单元:做算术逻辑运算。

累加寄存器(AC):放算术逻辑单元进行数据加工的数据材料,也是为ALU提供工作区的部件。

数据缓冲寄存器:CPU和存储做交互时读写内存时做中转的部件,先中转、再运输。

CPU结构3.png

这个程序的目的是计算2+4+6,然后赋值给sum,通过sum返回。

里面的过程包含声明、定义,sum的初值等于0,计算sum的值,输出sum的值。

在这个过程当中,程序在计算机当中肯定是存储起来的,存储的地址依次有个相应的地址编号。

在运算的过程当中,先看控制器。控制器会控制计算机按照这些指令依次完成相应的功能。

首先,要想读取到程序,我们会将程序的起始位置读入到指令的程序计数器(PC)当中,会将1001H记录进去。

1001H是一个地址,根据地址,可以找到指令“int sum=0”,把这个指令放到指令寄存器(IR)当中去。

放进去之后,这个1001H就没用了,内容已经找到了。

所以接下来会给PC一个新的赋值:PC=PC+1,变成了1002H,这个过程就是顺序读取的过程。

如果涉及到条件判断跳转的话,这里可以是偏移量代替加1的过程。

当读到指令寄存器(IR)当中,它的内容并不是“sum=0”,而是以一定的0、1二进制字符串表示,这个字符串如何体现在计算机当中的软、硬件呢?

会通过指令译码器(ID)翻译,告诉软硬件做哪些动作,这就是程序计数器(PC)、指令寄存器(IR)以及指令译码器(ID)的功能。

在这中间,还有一些控制信号、时序信号会通过时序部件传输。这里面有一个地址寄存器没有提到,它是使用的时候,用来保存内存地址的。

这些就是程序控制器

除了程序控制器以外,CPU还有一部分是运算器部分。

运算器就是做算术逻辑运算的,就是做计算的,在进行2+4+6的运算过程的时候,是如何顺序计算的?

首先,第一步,计算的是2+4=6,第二部计算6+6=12,在这中间的6怎么处理呢?

在这个过程当中进行加法运算的过程是在算术逻辑单元(ALU)当中进行的中间的“6”是个中间数据,暂存在累加寄存器,也就是累加器(AC)当中它可以给ALU提供数据加工的材料,也可以给ALU提供工作区。

得出的结果12有个进位,进位标志会记录在状态条件寄存器党中,记录它的状态标志。

记录完之后,如果这个状态标志当中,有一些会用来做控制标志、控制条件,这个时候,它也可以归于控制器的范畴,最终会输出sum=12。

输出会通过输入/输出设备来进行输出,甚至可能会写到存储器当中去,与外部这些内容做交互的话,会通过缓冲寄存器中转数据,这些就是运算器当中的具体过程。

运算器

算数逻辑单元ALU:数据的算数运算和逻辑运算

累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据

数据缓冲寄存器DR:写内存时,暂存指令或数据

状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的)

控制器

程序计数器PC:存储下一条要执行指令的地址

指令寄存器IR:存储即将执行的指令

指令译码器ID:对指令中的操作码字段进行分析解释

时序部件:提供时序控制信号