【计算机组成原理】 中央处理器

CPU 的功能和基本结构

中央处理器(CPU)由运算器和控制器组成。控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指指令、分析指令和执行指令;运算器的功能是对数据进行加工。CPU 的具体功能包括:

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

 

1.运算器

  运算器接收从控制器送来的命令并执行相应的动作,对数据进行加工和处理。运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑单元(ALU)、暂存寄存器、累加寄存器(ACC)、通用寄存器组、程序状态字寄存器(PSW)。移位器、计数器(CT)等组成。

  1. 算术逻辑单元。主要功能是进行算术/逻辑运算。
  2. 暂存寄存器。用于暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破坏其原有内容。暂存寄存器对应用程序员是透明的
  3. 累加寄存器。它是一个通用寄存器,用于暂时存放 ALU 运算的结果信息,可以作为加法运算的一个输入端。
  4. 通用寄存器组。如 AX、BX、CX、DX、SP 等(也常用 R0、R1...表示),用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP 是堆栈指针,用于指示栈顶的地址。
  5. 程序状态字寄存器。保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW 中的这些位参与并决定微操作的形成。
  6. 移位器。对操作数或运算结果进行移位运算。
  7. 计数器。控制乘除运算的操作步数。

2.控制器

  控制器是整个系统的指挥中枢,在控制器的控制下,使运算器、存储器和输入/输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作。控制器的基本功能是执行指令,每条指令的执行是由控制器发出的一组微操作实现的。

  控制器有硬布线控制器和微程序控制器两种类型。控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)、时序系统和微操作信号发生器等组成。

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

  控制器的工作原理是,根据指令操作码、指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号。计算机整机各硬件系统在这些控制信号的控制下协同运行,产生预期的执行效果。

  CPU 内部寄存器大致可分为两类:一类是用户可见的寄存器,可对这类寄存器编程,如通用寄存器组、程序状态字寄存器;另一类是用户不可见的寄存器,对用户是透明的,不可对这类寄存器编程,如存储器地址寄存器、存储器数据寄存器、指令寄存器。

 

数据总线的位数与处理器的位数相同,它表示 CPU 一次能处理的数据的位数,即 CPU 的位数。

程序计数器的位数取决于存储器的容量。

指令寄存器的位数取决于指令字长。

通用寄存器的位数取决于机器字长。

指令包括操作码字段和地址码字段,但指令译码器仅对操作码字段进行译码,借以确定指令的操作功能。

地址译码器是主存等存储器的组成部分,其作用是根据输入的地址码唯一选定一个存储单元,它不是 CPU 的组成部分。

间址周期结束时,CPU 内寄存器 MAR 的内容为操作数地址。

 

指令执行过程

  CPU 从主存每取出并执行一条指令所需的全部时间称为指令周期,即 CPU 完成一条指令的时间。

  指令周期常用若干机器周期来表示,一个机器周期又包含若干时钟周期(也称节拍或 T周期,它是 CPU 操作的最基本单位)。每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。

 

  对于无条件转移指令 JMP X,在执行时不需要访问主存,只包含取指阶段(包括取指和分析) 和执行阶段,所以其指令周期仅包含取指周期和执行周期。对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后访问主存。取出操作数,所以还需要包括间址周期。间址周期介于取指周期和执行周期之间。

  一个完整的指令周期应包括取指、间址、执行和中断 4 个周期。这 4 个周期都有 CPU 访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值