计算机组成原理-中央处理器(CPU基本结构及功能、指令执行、数据通路、硬布线控制器、微程序控制器、指令...
时间:2022-08-23 22:00:01
目录??
- CPU功能和基本结构
-
- CPU的功能
-
- 运算器
- 控制器
- CPU的基本结构
- 指令执行过程
-
- 三个时间周期
- 指令周期流程
- 指令周期的数据流
-
- 取指周期
- 间址周期
- 执行周期
- 中断周期
- 数据通道的功能和基本结构
-
- 数据通道的功能
- 数据通道的基本结构
-
- CPU内部单总线
- CPU内部多总线
- 特殊数据通路方式
- 控制器的功能和工作原理
-
- 控制器的功能
- 硬布线控制器
- CPU的控制方式
- 微程序控制器
-
- 基本组成
- 微指令格式
- 微指令编码方
- 硬布线和微程序控制器的特点
- 指令流水线
-
- 基本概念
- 指令流水的定义
- 流水线的表达方式
- 性能指标
-
- 吞吐率
- 加速比
- 效率
- 影响因素
-
- 结构相关(资源冲突)
- 数据相关(数据冲突)
- 控制相关(控制冲突)
- 超标量流水线
-
- 超标量流水线技术
- 超流水技术
- 超长指令字
笔记??
计算机组成原理-计算机硬件的基本组成
计算机组成原理-计算机的功能部件和层次结构
计算机组成原理-计算机性能指标
计算机组成原理-数制与编码(进制转换)
计算机组成原理-定点数的表示和计算
计算机组成原理-浮点数的表示和计算
计算机组成原理-算术逻辑单元ALU
计算机组成原理-存储系统
计算机组成原理-高速缓冲存储器
计算机组成原理-指令系统 (指令、操作码、地址码、指令寻址、数据寻址)
资源??
计算机组成原理PPT:链接: https://pan.baidu.com/s/1EqL9NmQ-0glDNIFPBfUmVg 密码: sfwg
配套书:链接: https://pan.baidu.com/s/1cZx27Gfooj2uAhSP9sbrRA 密码: j5ms
CPU功能和基本结构
CPU的功能
「中央处理器」(CPU)由「运算器」和「控制器」组成。
「控制器」计算机各部件执行程序的指令序列主要负责协调和控制,包括「取指」、「分析」和「执行」指令;
「运算器」的功能是对数据进行加工。CPU具体功能包括:
- 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制。一个指令的功能通常是由多个操作信号的组合来实现的,从而控制这些部件单招指令的要求。
- 时间控制。控制各种操作的时间。
- 数据加工。对数据进行算术和逻辑运算。
- 中断处理。处理计算机运行过程中的异常情况和特殊要求。
运算器
「运算器」接收从「控制器」对数据进行处理和处理的命令和相应的动作。「运算器」它是计算机处理数据的中心,主要由算术逻辑单元组成(ALU)、临时存储和累加存储器(ACC)、通用寄存器组、程序状态字寄存器(PSW)、移位器,计数器(CT)等组成。
算术逻辑单元
主要功能是算术/逻辑操作
暂存寄存器
临时存储从主存储中读取的数据不能存储在通用寄存器中,否则会损坏原始内容。临时存储寄存器对应用程序是透明的。
累加寄存器
是临时存储的通用寄存器ALU操作结果信息可作为加法操作的输入端。
通用寄存器组
如AX、BX、CX、DX、SP存储操作数(包括源操作数、目的操作数和中间结果)和各种地址信息。SP用来表示栈顶地址的堆栈指针。
编程状态字寄存器
保留由算术逻辑操作指令或测试指令结果建立的各种状态信息,如溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW参与并决定微操作的形成。
移位器
移位操作数或操作结果。
计数器
控制乘除操作步数。
控制器
「控制器」是整个系统的指挥中心,在「控制器」的控制下,「运算器」、「存储器」和「输入/输出设备」根据指令的要求,等功能部件构成有机整体,指挥全机协调工作。「控制器」基本功能是执行指令,执行每个指令的时间「控制器」实现了一组微操作。
「控制器」分为硬布线控制器和微程序控制器两种。
「控制器」程序计数器(PC)、指令寄存器(IR)、指令译码器、存储器地址寄存器(MAR)、存储数据寄存器(MDR)、由时序系统和微操作信号发生器组成。
MAR和MDR逻辑上属于存储器。
程序计数器
在主存中指出下一个指令的存储地址。CPU根据PC在主存中找到指令。由于程序中的指令通常是按顺序执行的,因此PC具有自增功能。
指令寄存器
保存正在执行的指令。
存储器地址寄存器
存储即将到来的主存单元的地址。
存储数据存储器
用于存储写入主存或读取主存的内容。
时序系统
由统一的时钟生成各种时序信号(CLOCK)分频得到。
微操作信号发生器
根据IR内容(指令),PSW内容(状态信息)及时序列信号,产生控制整个计算机系统所需的各种控制信号,其结构包括组合逻辑和存储逻辑。
CPU内部寄存器可分为两类:
一类是用户可见的寄存器,可编程此类寄存器,如通用寄存器组、程序状态字寄存器;
另外一类是用户看不见的寄存器,对用户是透的,不可以对这类寄存器编程、如存储器地址寄
存器、存储器数据寄存器、指令寄存器等。
CPU的基本结构
指令执行过程
三个时间周期
参考:时钟周期、机器周期、指令周期的概念及三者之间的关系;定时器及计数器
时钟周期
「时钟周期」也称为振荡周期,定义为时钟脉冲的倒数(也可以理解为是单片机外接晶振的倒数,例如12M的晶振,其时钟周期为 1 12 μ s \frac{1}{12} \mu s 121μs,周期受硬件影响),是一个时钟脉冲所需要的时间。在计算机组成原理中又叫做「T周期」或者「节拍脉冲」。是计算机中的最基本的、最小的时间单位。
机器周期
在计算机命令操作过程中,通常将一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作,例如,取指令、存储器读、存储器写等基本操作,这每一项的工作称之为一个「基本操作」。完成一个「基本操作」所需要的时间称为「机器周期」。
指令周期
「指令周期」是执行一条指令所需要的时间,一般由若干个「机器周期」组成,指令不同,所需的「机器周期」数也不同。对于一条简单的单字节指令,在取指令周期中,将指令取出到指令寄存器中,立即通过指令译码器译码,不需要其他的「机器周期」。但是对于一些其他的复杂指令,例如转移指令、乘法指令则需要两个或者两个以上的「机器周期」。
三者之间的关系就是:「时钟周期」是最小的时间单位,多个「时钟周期」组成一个「机器周期」,多个「机器周期」可以完成一条完整指令,组成一条「指令周期」。
定长机器周期
「机器周期」所占用的节拍脉冲数是相同的,需要以最长的基本操作作为基准。
不定长机器周期
一条完整指令中的不同「机器周期」阶段是不同的。
指令周期流程
指令周期的数据流
取指周期
- 当前指令地址送至存储器地址寄存器,记做: ( P C ) − > M A R (PC) \ -> \ MAR (PC) −> MAR
- CU发出控制信号,经过控制总线传到主存,这里是读信号,记做: 1 − > R 1 \ -> \ R 1 −> R
- 将MAR所指的主存中的内容经数据总线送入MDR,记做: M ( M A R ) − > M D R M(MAR) \ -> \ MDR M(MAR) −> MDR
- 将MDR中的内容(该从主存中取出的指令)送入IR,记做: ( M D R ) − > I R (MDR) -> IR (MDR)−>IR
- CU发出控制信号,形成下一条指令地址,记做: ( P C ) + 1 − > P C (PC) + 1 \ -> \ PC (PC)+1 −> PC
间址周期
- 将指令的地址码送入到MAR中,记做: A d ( I R ) − > M A R Ad(IR) \ -> \ MAR Ad(IR) −> MAR或 A d ( M D R ) − > M A R Ad(MDR) \ -> \ MAR Ad(MDR) −> MAR,从MDR或者IR取都可,当前周期内数据都是同一条指令。
- CU发出控制信号,启动主存执行读操作,记做: 1 − > R 1 \ -> \ R 1 −> R
- 将MAR中所指的主存中的数据经过数据总线送入到MDR,记做: M ( M A R ) − > M D R M(MAR) \ -> \ MDR M(MAR) −> MDR
- 将有效地址送至指令的地址码字段,记做: M D R − > A d ( I R ) MDR \ -> \ Ad(IR) MDR −> Ad(IR)
执行周期
执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果,不同指令的执行周期操作不同。
中断周期
中断:暂停当前任务去执行其他任务。为了可以恢复当前任务,所以需要保存断点。一般使用堆栈来保存断点,这里用SP表示栈顶地址。
- CU控制SP减1,修改后的地址送入到MAR中,记做: ( P C ) − 1 − > S P (PC) - 1 \ -> \ SP (PC)−1 −> SP, ( S P ) − > M A R (SP) \ -> \ MAR (SP) −> MAR。本质上就是将断点存入到主存中的某个存储单元,假设其地址为a,则记做: a − > M A R a \ -> \ MAR a −> MAR。
- CU发出控制信号,启动主存做写操作,记做: 1 − > W 1 \ -> \ W 1 −> W
- 将断点(PC内容)送入到MDR,记做: ( P C ) − > M D R (PC) \ -> \ MDR (PC) −> MDR
- CU控制将中断程序的入口地址(由向量地址形成部件产生)送入到PC,记做: 向 量 地 址 − > P C 向量地址 \ -> \ PC 向量地址 −> PC
数据通路的功能和基本结构
数据通路的功能
「数据通路」:数据在功能部件之间传送的路径。
「数据通路部件」:「数据通路」路径上的部件,例如ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等。
「数据通路」描述了信息从哪里来,途中要经过哪些寄存器或多路开关,最后送往哪个寄存器。
数据通路的基本结构
「内部总线」:是指同一个部件,例如CPU内部各寄存器及运算部件之间的总线
「系统总线」:是指同一台计算机系统的各部件之间,如CPU、内存、通道和各类I/O接口间相连的总线
CPU内部单总线
将所有寄存器的输入端和输出端都连接到一条公共通路上,这种结构简单,数据传输过程中存在较多的冲突现象,性能较低。
寄存器之间数据传送
比如将PC的内容送至MAR,实现传送操作的流程及控制信号为:
( P C ) − > B u s (PC) \ -> \ Bus (PC) −> Bus, P C o u t PC_{out} PCout有效,PC内容送总线
B u s − > M A R Bus \ -> \ MAR Bus −> MAR, M A R i n MAR_{in} MARin有效,总线内容送MAR
主存及CPU之间的数据传送
比如CPU从主存读取指令,实现传送操作的流程及控制信号为:
( P C ) − > B u s − > M A R (PC) \ -> \ Bus \ -> \ MAR (PC) −> Bus −> MAR, P C o u t PC_{out} PCout和 M A R i n MAR_{in} MARin有效,当前需要需要执行的指令地址通过Bus传递给MAR
1 − > R 1 \ -> \ R 1 −> R CU发出命令,通过控制总线
M E M ( M A R ) − > M D R MEM(MAR) \ -> \ MDR MEM(MAR) −> MDR, M D R i n MDR_{in} MDRin有效
M D R − > B u s − > I R MDR \ -> \ Bus \ -> \ IR MDR −> Bus −> IR, M D R o u t MDR_{out} MDRout和 I R i n IR_{in} IRin有效,当前的指令从存储器数据寄存器中取出,经过Bus传递给IR
执行算术或逻辑运算
比如一条加法指令,微操作序列及控制信号为:
A d ( I R ) − > B u s − > M A R Ad(IR) \ -> \ Bus \ -> \ MAR Ad(IR) −> Bus −> MAR, M D R o u t MDR_{out} MDRout和 M A R i n MAR_{in} MARin有效
1 − > R 1 \ -> \ R 1 −> R CU通过控制总线发出读命令
M E M ( M A R ) − > 数 据 总 线 − > M D R MEM(MAR) \ -> 数据总线 \ -> \ MDR MEM(MAR) −>数据总线 −> MDR , M D R i n MDR_{in} MDRin有效
M D R − > B u s − > Y MDR \ -> \ Bus \ -> Y MDR −> Bus −>Y M D R o u t MDR_{out} MDRout和 Y i n Y_{in} Yin有效,操作数通过内部总线传递给Y
( A C C ) + ( Y ) − > Z (ACC) + (Y) \ -> \ Z (ACC)+(Y) −> Z A C C o u t ACC_{out} ACCout和 A L U i n ALU_{in} ALUin有效,CU向ALU发送加命令
Z − > A C C Z \ -> \ ACC Z −> ACC Z o u t Z_{out} Zout和 A C C i n ACC_{in} ACCin