【计算机组成原理】五、中央处理器:1.CPU的功能与结构&指令执行过程(运算器、数据通路、控制器、指令周期)

五、中央处理器

1.CPU的功能与结构

在这里插入图片描述

存储程序的概念是指将指令以代码形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按程序的规定顺序执行其他指令,直至程序执行结束。

CPU和主存之间通过一组总线相连,总线中有地址、控制、数据3组信号线。

MAR(主存地址寄存器)中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;

控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。

1.1CPU功能

  1. 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
  2. 操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
  3. 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
  4. 数据加工。对数据进行算术和逻辑运算。
  5. 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。

1.2运算器

运算器是计算机的执行部件,用于进行算术运算和逻辑运算。

算术运算是按算术运算规则进行的运算,如加、减、乘、除;逻辑运算包括与、或、非、异或、比较、移位等运算。

1.2.1基本结构
  1. 算术逻辑单元ALU(Arithmetic and Logical Unit),运算器的核心。
  2. 通用寄存器组,用于暂存操作数和中间结果,如累加器ACC乘商寄存器MQ操作数寄存器X变址寄存器IX基址寄存器(堆栈寄存器)BR等,其中ACC,MQ,X是必须有的
    • 累加寄存器ACC用于暂时存放ALU运算的结果信息,实现加法运算。
  3. 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
  4. 程序状态字寄存器PSW:也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息。保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。
  5. 移位器:对运算结果进行移位运算。
  6. 计数器:控制乘除运算的操作步数。

在这里插入图片描述


1.2.2 ALU和寄存器的数据通路

详见本章第三节 3.数据通路

  1. 专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路。
    性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。

在这里插入图片描述

  1. CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。
    结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。

在这里插入图片描述

1.3控制器

控制器是计算机的指挥中心,协调并控制计算机各部件执行程序的指令序列。

1.3.1基本结构

控制器由程序计数器PC指令寄存器IR、**控制单元CU(control unit)**组成。

  • PC用于存放当前欲执行指令的地址,可自动+1以形成下一条指令的地址,与主存的MAR之间有一条直接通路。
  • IR用来存放当前的指令,其内容来自主存的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;地址码Ad(IR)送往MAR,用以取操作数。(操作码表示机器所执行的各种操作,地址码表示参加运算的数在存储器内的位置)。

控制器CU又包含五大部件:

  1. 指令译码器ID instruction decoder
  2. 操作控制器OC operation controller
  3. 时序发生器ST sequence timer

上面3个也可以看作控制单元CU。

两个寄存器

  1. 程序计数器PC program count

  2. 指令寄存器IR instruction register


详细:

  1. 程序计数器PC(program count)。用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以Pc有自增功能。
  2. 指令寄存器IR(instruction register)。用于保存当前正在执行的那条指令,就是一条指令OP+Ad
  3. 指令译码器ID(instruction decoder)。仅对操作码字段进行译码,向控制器提供特定的操作信号。
    • 操作控制器OP,operation controller。
  4. 微操作信号发生器。根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
  5. 时序系统。用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
  6. 存储器地址寄存器MAR。用于存放所要访问的主存单元的地址。
  7. 存储器数据寄存器MDR。用于存放向主存写入的信息或从主存中读出的信息。

在这里插入图片描述

1.3.2控制器功能
  1. 取指令。自动形成指令地址;自动发出取指令的命令。
  2. 分析指令。操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
  3. 执行指令。根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及l/O设备完成相应的操作。
  4. 中断处理。管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。

在这里插入图片描述

1.4CPU的基本结构

橙色寄存器是对用户可见的,灰色不可见。

在这里插入图片描述

CPU就可以主要分为ALUCU寄存器中断系统四大部分。

在这里插入图片描述

2.指令执行过程

2.1指令周期

指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。

指令周期常常用若干机器周期(也叫CPU周期)来表示。

在这里插入图片描述

一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。

CPU主频:3.0GHz,就是1秒中CPU发出3G CPU内数字脉冲信号震荡。

  • 指令周期
    • 机器周期(CPU周期)
      • 时钟周期(节拍、T周期、CPU时钟周期)

每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。

在这里插入图片描述

四个常见性质:

  1. 一个节拍内可以并行完成多个“相容的”微操作。
  2. 同一个微操作可能在不同指令的不同阶段被使用。
  3. 不同指令的执行周期所需节拍数各不相同。为了简化设计,选择定长的机器周期,以可能出现的最大节拍数为准(通常以访存所需节拍数作为参考)。
  4. 若实际所需节拍数较少,可将微操作安排在机器周期末尾几个节拍上进行。

在这里插入图片描述

例子:

在这里插入图片描述

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流水线方案

在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值