五、中央处理器
文章目录
- 五、中央处理器
- 1.CPU的功能与结构
- 1.1CPU功能
- 1.2运算器
- 1.2.1基本结构
- 1.2.2 ALU和寄存器的数据通路
- 1.3控制器
- 1.3.1基本结构
- 1.3.2控制器功能
- 1.4CPU的基本结构
- 2.指令执行过程
- 2.1指令周期
- 2.2指令周期流程
- 2.3数据流
- 2.4指令执行方案:如何安排多条指令的执行?
- 2.4.1单指令周期![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9c6e997f5c0240a59d1095af60678ecd.png)
- 2.4.2多指令周期
- 2.4.3流水线方案
1.CPU的功能与结构
存储程序的概念是指将指令以代码形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按程序的规定顺序执行其他指令,直至程序执行结束。
CPU和主存之间通过一组总线相连,总线中有地址、控制、数据3组信号线。
MAR(主存地址寄存器)中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;
控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。
1.1CPU功能
- 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
- 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
- 数据加工。对数据进行算术和逻辑运算。
- 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
1.2运算器
运算器是计算机的执行部件,用于进行算术运算和逻辑运算。
算术运算是按算术运算规则进行的运算,如加、减、乘、除;逻辑运算包括与、或、非、异或、比较、移位等运算。
1.2.1基本结构
- 算术逻辑单元ALU(Arithmetic and Logical Unit),运算器的核心。
- 通用寄存器组,用于暂存操作数和中间结果,如累加器ACC,乘商寄存器MQ,操作数寄存器X,变址寄存器IX,基址寄存器(堆栈寄存器)BR等,其中ACC,MQ,X是必须有的。
- 累加寄存器ACC用于暂时存放ALU运算的结果信息,实现加法运算。
- 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
- 程序状态字寄存器PSW:也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息。保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。
- 移位器:对运算结果进行移位运算。
- 计数器:控制乘除运算的操作步数。
1.2.2 ALU和寄存器的数据通路
详见本章第三节 3.数据通路
- 专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路。
性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。
- CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。
结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。
1.3控制器
控制器是计算机的指挥中心,协调并控制计算机各部件执行程序的指令序列。
1.3.1基本结构
控制器由程序计数器PC、指令寄存器IR、**控制单元CU(control unit)**组成。
- PC用于存放当前欲执行指令的地址,可自动+1以形成下一条指令的地址,与主存的MAR之间有一条直接通路。
- IR用来存放当前的指令,其内容来自主存的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;地址码Ad(IR)送往MAR,用以取操作数。(操作码表示机器所执行的各种操作,地址码表示参加运算的数在存储器内的位置)。
控制器CU又包含五大部件:
- 指令译码器ID instruction decoder
- 操作控制器OC operation controller
- 时序发生器ST sequence timer
上面3个也可以看作控制单元CU。
两个寄存器
-
程序计数器PC program count
-
指令寄存器IR instruction register
详细:
- 程序计数器PC(program count)。用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以Pc有自增功能。
- 指令寄存器IR(instruction register)。用于保存当前正在执行的那条指令,就是一条指令OP+Ad。
- 指令译码器ID(instruction decoder)。仅对操作码字段进行译码,向控制器提供特定的操作信号。
- 操作控制器OP,operation controller。
- 微操作信号发生器。根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
- 时序系统。用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
- 存储器地址寄存器MAR。用于存放所要访问的主存单元的地址。
- 存储器数据寄存器MDR。用于存放向主存写入的信息或从主存中读出的信息。
1.3.2控制器功能
- 取指令。自动形成指令地址;自动发出取指令的命令。
- 分析指令。操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
- 执行指令。根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及l/O设备完成相应的操作。
- 中断处理。管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。
1.4CPU的基本结构
橙色寄存器是对用户可见的,灰色不可见。
CPU就可以主要分为ALU、CU、寄存器、中断系统四大部分。
2.指令执行过程
2.1指令周期
指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。
指令周期常常用若干机器周期(也叫CPU周期)来表示。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。
CPU主频:3.0GHz,就是1秒中CPU发出3G CPU内数字脉冲信号震荡。
- 指令周期
- 机器周期(CPU周期)
- 时钟周期(节拍、T周期、CPU时钟周期)
- 机器周期(CPU周期)
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
四个常见性质:
- 一个节拍内可以并行完成多个“相容的”微操作。
- 同一个微操作可能在不同指令的不同阶段被使用。
- 不同指令的执行周期所需节拍数各不相同。为了简化设计,选择定长的机器周期,以可能出现的最大节拍数为准(通常以访存所需节拍数作为参考)。
- 若实际所需节拍数较少,可将微操作安排在机器周期末尾几个节拍上进行。
例子:
2.2指令周期流程
标志触发器FE(取指周期)、IND(间址周期)、EX(执行周期)、INT(终端周期).
FE=1就代表取指周期。
2.3数据流
流程中的4种数据流,不同阶段要求依次访问的数据序列。
5.2_指令周期的数据流_哔哩哔哩_bilibili
- 取指周期
-
执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
-
中断周期
2.4指令执行方案:如何安排多条指令的执行?
有3种方案:
2.4.1单指令周期
对所有指令都选用相同的执行时间来完成。
优点:指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。
缺点:对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
2.4.2多指令周期
对不同类型的指令选用不同的执行步骤来完成。
优点:指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。
缺点:需要更复杂的硬件设计。
2.4.3流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。