控制器及其设计实现
中央处理器CPU的功能与结构
中央处理器的功能:
- 程序是指令的有序集合,程序运行过程实质是
指从程序首地址开始,连续自动的处理指令序列,直到程序最后一条指令
- 从存储程序来看,中央处理器的功能就是
实现连续自动的处理存储于主存储器的指令序列
- 程序中的指令用于只是计算机对数据进行传输与运算或指示下一条指令地址
中央处理器的任务
- 任何一条指令处理可以分为取指令和执行指令2个阶段,程序运行就是不断地取指执行指令循环往复直到结束
- 取指令2项任务:
- 1、将当前需要处理的指令代码从主存储器中取到CPU的寄存器上
- 2、顺序形成下一条需要处理的指令在存储器上的位置
- 执行指令3个任务:
- 1、分析指令功能和寻址特性 :
- 指令是采用二进制来表示其功能特性和和操作数存储位置的形成方式
- 2、生成发出控制信号序列:
- 在分析指令操作码和地址码的基础上由控制器生成并发出控制信号序列 ,分析本条指令的操作码,识别指令功能特性,分析地址码识别指令的寻址特性以获取源操作数,目的操作数或转移目标的存储物理位置
- 操作数的有效地址可以是主存储器存储单元地址,CPU寄存器编号、I/O设备端口地址
- 转移目标的有效地址只能是主存储器存储单元地址
- 3、指令的功能和寻址特性实现的执行
- 1、分析指令功能和寻址特性 :
CPU的五项任务
- 指令控制:
CPU的首要任务。按程序规定的顺序处理指令,并自动从主存储器中取到CPU的寄存器中
- 操作控制:根据从主存储器中取出的指令代码,产生一组控制信号,并把不同的控制信号送往相应的部件控制他们按指令的功能和寻址特性进行操作
- 时间控制:取指和执行指令两个阶段存在严格的时间要求
- 数据加工:对数据进行算术运算和逻辑运算以及对程序运行状态进行测试
- 中断请求处理:对中断请求处理进行控制是CPU的重要任务
中央处理器的结构模型
中央处理器的寄存器
- CPU常用寄存器的配置:
- 通用寄存器GR:一般用来存放原始数据和运算结果
- 累加器AC:累加寄存器。通常用来存放ALU运算的结果信息。
- 指令寄存器IR:用来暂时存放当前正在处理指令的代码
- 数据缓冲寄存器MDR:用来暂时存放CPU与主存储器或IO设备进行信息交换当前正在传输的
指令字或数据字
- 指令字:单向从CPU从主存储其读取
- 数据字:双向由CPU从主存储器或IO设备读取,由CPU向主存储器或IO设备写入。
- MDR的两个作用:
- 路径中转:通过MDR实现一对多或者多对一的路径选择的数据缓冲
- 速度补偿:CPU与主存储器或IO设备在信息传输上存在速度差异,通过MDR使CPU与主存储器或者IO设备各自独立进行信息传输操作避免互相等待
- 地址缓冲寄存器MAR:用来暂时存放CPU与主存储单元或IO设备进行信息交换时当前正在传输的指令字或数据字的
单元地址或端口地址
- 程序状态寄存器PSWR:暂时存放当前正在运行程序的状态字
CPU的主要性能指标
- 字长:指运算器能够同时加工的二进制数据的位数
- 主频:CPU的工作频率
- 片内Cache容量:对提高CPU速度有着重要作用
- 地址总线的宽度:CPU地址引脚线的线数,决定CPU可以访问的最大物理地址空间
- 数据总线的宽度:Cpu数据引脚线的线数,决定CPU与外部进行一次数据交换的二进制数的位数
控制器的功能与结构
- 控制器的功能任务
- 指令流动控制
- 指令读取控制:将指令代码从主存储器读取到CPU的寄存器之中
- 指令地址形成:自动形成下一条指令在主存储器中的地址
- 指令执行控制
- 指令功能识别
- 地址计算形成
- 指针读取控制
- 数据读取控制
- 数据保存控制
- 数据加工控制
- 中断处理控制
- 中断请求选择
- 程序暂停控制
- 程序转移控制
1、指令读取、指针读取、数据读取、数据保存、数据加工、程序暂停、程序转移是控制器的
控制型任务
,控制性任务仅需要控制单元产生控制信号序列 2、指令地址形成、指令功能识别、地址计算形成、中断请求选择是控制器的工作性任务
,由控制器自身具体执行 - 指令流动控制
控制器的组成结构
- 指令预处理部件
- 程序计数器PC
- 指令译码器ID:分开操作码和地址码
- 地址形成逻辑
- 时序信号产生器:一般采用应答方式来规定一条条指令的处理时间,实现先后次序的异步衔接,所以需要时序信号来规定执行时间
- 控制信号序列发生器:生成满足不同功能要求的控制信号序列
- 中断控制逻辑:对异常情况进行排队选择生成中断请求信号送往控制信号序列发生器
控制信号序列发生器的实现方法
- 硬步线控制
- 微程序控制器
- 门阵列控制器
指令处理的数据通路微操作与微命令
指令处理流程及其状态装换
- 指令处理的一般流程:
- 取指令
- 指令读取
- 指令地址形成
- 执行指令
- 指令功能识别
- 地址计算形成
- 指针读取
- 数据读取
- 功能实施
- 数据保存
- 取指令
- 地址计算形成后进行四种判断:
- 1、间接寻址?不是,转入第二种判断,若是,转入指针读取,继续1,直到间址结束得到操作数地址
- 2、源操作数是否需要外部访问?(即存储器或者IO)若不需要,转入3,若需要数据读取后转入3
- 3、是否是RS或SS型传输指令,若是,转入4,若不是,功能实施后转入4
- 4、目的操作数是否需要外部访问?若不需要,指令处理结束,若需要,转入数据保存,结束指令处理
扩展:第二章中的指令格式与指令功能分类中:
- 对于双目操作二地址(指令字中的地址码字段包括2个地址码OP+Ad1+Ad2,Ad1既为结果操作数地址同时也是另一个源操作数地址,Ad2为源操作数地址)指令,根据源操作数存放的物理存储部件不同,指令格式可分为三中类型:
- SS存储器存储器型:2个源操作数均来自主存储器,2个地址码指示的均是存储器的存储单元
- RR寄存器寄存器型:2个源操作数均来自通用寄存器,2个地址码指示的均是通用寄存器的编号
- RS寄存器存储器型:…
指令处理的数据通路及其微操作
- 地址编码:从控制器->存储器、IO
- 指令编码:存储器->控制器
- 数据编码:存储器、IO->运算器或者反向
- 数据通路:功能部件之间进行信息交换时形成一条信息传送的路径称为信息通路
指令读取:(地址编码、指令编码)
- 地址数据通路:
PC-MAR-ABUS-M
- 指令数据通路:
M-DBUS-MDR-IR-ID-CU
指针读取:(地址编码、指针编码)
- 地址数据通路:
IR-MAR-ABUS-M
(首次间接寻址)或者MDR-MAR-ABUS-M
(再次间接寻址) - 指针数据通路:
M-DBUS-MDR
或者M-DBUS-MDR-PC
(间接寻址转移指令)
数据读取:(地址编码和数据编码)
- 地址数据通路:
IR-MAR-ABUS-M
(直接寻址、相对寻址、变址寻址)或MDR-MAR-ABUS-M
(间接寻址) - 数据数据通路:
M-DBUS-MDR-AC
(GR通用寄存器)或者M-DBUS-MDR
(源操作数在M 的运算指令)
功能实施
- 运算型指令实现运算器内部传送
- 数据数据通路为:
AC(GR/IR(Ad))-ALUX-ALU-JPCL-AC(GR){RR指令}
或者AC(GR/IR(Ad))-ALUX-ALU-JPCL-MDR{RS指令}
或者MDR-ALUX-ALU-JPCL-AC(GR){SR指令}
或者MDR-ALUX-ALU-JPCL-MDR{SS指令}
- 数据数据通路为:
- RR传送型指令实现运算器内部传送或者控制器传送到运算器
- 转移型指令实现控制器内部传送
数据保存
- 地址数据通路和数据读取状态相同
- 数据数据通路:
JPCL-MDR-DBUS-M
(目的操作数在M运算指令)或AC(GR)-MDR-DBUS-M
(RS传送指令)
微命令及其与微操作的关系
微操作概念:
- 概念:是指令处理流程中由CPU控制或实现的不可再分的部件或器件动作
- 微操作是部件或器件的动作,由于器件和部件的特性不同,有的部件或者器件需要控制信号序列发生器的控制信号才能实现,因此微操作分成:硬微操作和软微操作
- 硬微操作:与控制信号序列发生器的功能无关
- 软微操作
- 根据操作功效,微操作还可以分成传输性和加工性的
- 传输性:用于创建数据通路
- 加工性:作用于规定信息加工方法
通常将微操作特指为软微操作
-
由控制信号序列发生器生成的控制实现微操作的
控制信号称为微命令
- 微命令是控制信号序列中的最小单位,一个微操作对应一个或者多个微命令
-
对于加工性微操作:
- 硬微操作:ID译码、时序信号生成、控制信号序列生成
- 软微操作:PC+△、ALU运算动作多样(±与或等等)
-
对于传输性微操作:
- 硬微操作:部件内部的信息传递,IR->ID(控制器内部)、ALU->JPCL(运算器内部传输)
- 软微操作:其余的,IR->AC(运算器与控制器)
-
控制部件、执行部件
- 控制部件:控制器
- 执行部件:运算器、存储器、IO
-
控制部件与执行部件之间通过控制线实现正向和反向2种作用关系
- 正向作用:控制部件通过控制线向执行部件发送各种控制信号即微命令,执行部件接到微命令后产生动作即微操作
- 反向作用:执行部件通过控制线向控制部件发送结果状态
1个例题
- 如果某CPU结构如6-10所示,给出 SHR I 31(右移、间接寻址、地址)指令所需要的控制信号
- 该指令包含读取指令,读取指针,功能实施和保存数据等4个状态操作
- 读取指令需要的控制信号包括传输的和加工的,用于传输的:
PCout、MARin、Read、MDRin、MDRout、IRin
,用于加工的控制信号有:PC+1
- 读取指针所需要的的控制信号仅包含传输的,
IR(Add)out、MARin、Read、MDRin
- 功能实施所需要的控制信号仅包含加工的,即
SHR
- 保存数据所需要的控制信号仅包含传输的:
MDRout、 MARin、 ACout、 MDRPin 、MDRout
时序信号体系及其控制实现
指令周期及其时段划分
-
指令周期:CPU对指令进行处理所需要的全部时间
-
-
机器周期(CPU周期、状态周期):指令流程中,状态的维持时间或两次状态转换之间的时间间隔
一个指令周期常用若干个机器周期来表示
- 指令处理流程包含五个状态:
- 1、读取指令
- 2、读取指针
- 3、读取数据
- 4、功能实施
- 5、保存数据
- 机器周期包括五种类型:
- 1、取指周期
- 2、间指周期
- 3、取数周期
- 4、实施周期(执行周期)
- 5、存数周期
1、各种机器周期的工作任务由对应的状态操作来规定
2、中断控制也是CPU运行中的一个状态,所以从CPU来看,除了那五种周期,还有一种中断周期,因此CPU有6种类型的机器周期
3、CPU的操作速度比主存储器快很多,绝大部分指令实施周期的状态操作可以在一个存取周期内完成,因此通常用存取周期来标定机器周期的长短
- 一个指令周期至多由多少个机器周期组成,除了与操作数的寻址方式有关,还与间址的次数和实施周期的机器周期有关
节拍与时钟周期
- 需要把一个机器周期的时间段分成若干个时间段,每个时间段执行一个微操作或者一组可并行微操作
- 节拍:执行一个微操作或者一组可并行微操作的时间
时钟周期是计算机中最小的时间单位
微操作是指令处理流程中不可再分的原子性操作,节拍则是指令周期中不可再分的原子性时间段,一个节拍用若干个时钟周期来表示
8086CPU一个机器周期由四个基本时钟周期T1-T4表示,T3-T4之间可以插入任意个等待时钟周期TW
指令周期的方框图表示(四条指令的流程)
基于单总线模型机的逻辑结构
- 单总线模型机特点:
- CPU内部通过片总线将ALU/PC/GR等部件连接起来
- CPU外部通过系统总线将CPU/M/IO设备等部件连接起来
- 多个部件和器件能同时接收总线上的数据但是某时刻仅能一个部件给总线发送数据
- 共有32个微命令
- 传输微操作21个
- 加工微操作11个
控制器的时序控制(CPU控制)
- 时序控制概念:
- 一个指令周期使用多少个机器周期来执行状态操作序列,一个机器周期使用多少个节拍来执行微操作序列,一个或者一组微操作使用多少个时钟周期来执行
- 是指不同机器周期微操作序列执行的时间标定与次序衔接的控制方法
- 三种方式
同步控制(集中控制中央控制)
- 概念;任何微操作与状态操作均采用统一的时序进行控制(固定时序控制)
- 三种实现方案
- 定长机器周期:各种机器周期所包含的节拍数目固定
- 延长节拍不定长机器周期
- 分散节拍不定长机器周期
- 优缺点:控制简单容易实现但是工作效率较低
异步控制:(分散控制局部控制)
- 概念:微操作与状态操作不采用统一的时序
- 方法:通过“结束-起始”信号通过应答方式实现,前一个操作的结束信号就是下一个操作信号的起始信号
- 优缺点:状态操作要多少节拍就使用多少节拍,微操作需要多少时钟就有多少时钟,没有空闲时钟和空闲节拍的浪费,工作效率高,指令处理速度快,但是控制复杂实现难度大
联合控制
- CPU内部的微操作和状态操作采用同步控制,外部使用异步
- 绝大部分指令的功能操作安排在同一机器周期内执行完,少部分时间过长或者过短的而难以确定的指令采用异步
- 同步基础上的异步
一个例题
-
设微处理器CPU的主频为8MHZ,其时钟周期是多少微秒?若每个机器周期包含4个时钟周期,CPU处理指令的平均速度是0.8MIPS。问:
- 1、指令周期平均是多少微秒?平均含有多少个机器周期?
- 2、若微处理器时钟周期改为0.4μs,处理指令的平均速度为多少MIPS?
- 3、若处理指令的平均速度需要40万次/s,微处理器的主频是多少MHZ?
-
答案
: -
时钟周期=1/f=1/(8*10^6)=0.125μs
-
1、平均指令周期:1/(0.810^6)=1.25μs 平均机器周期:1.25/(40.125)=2.5
- 所以一个指令周期有2.5个机器周期,一个机器周期有4个时钟周期
-
2、平均速度:1/(2.540.4)=0.25条/μs=0.25 MIPS
-
3、0.4*106=1/(2.5*4*T),T=0.25*10-6(s),主频为1/T=4MHZ
-
解析:
1、主频的倒数就是时钟周期
2、
3、周期就是一次多少秒,频率即一秒多少次
4、指令平均速度:一秒处理多少条指令,平均指令周期就是指令平均速度的倒数,注意MIPS是s,最后换算成微秒就是*10^6
5、MIPS:百万条/s
----------即条/μs
微指令及其基本格式
微指令及其微周期
- 微指令:
- 概念:是指一定时间单位内有效的若干微命令的集合
- 通常将读取微指令的时间隐藏在前一条微指令的执行之中,在T4节拍既之行微指令的操作也并行读取下一条微指令
微命令的兼容性与互斥性
- 兼容性:允许同时有效的微命令称为兼容性微命令互斥性相反
一个微命令(控制信号)就是一位二进制数,1有效0无效
微命令的基本格式
- 微操作控制域+顺序控制域
- 微操作控制域:
- 描述微指令执行微操作的相应控制信号
- 顺序控制域:
- 描述该微指令处理之后的下一条微指令的地址
- 因为顺序和跳转也分为2个字段
- 测试标志字段和微地址字段
测试成立则给出的为微地址要变换实现跳转否则给出的微地址就是下一条微指令地址
机器指令微程序和微指令的关系
- 指令程序地址与内存储器有关
- 微指令微程序为地址与控制存储器有关
- 一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的
- 一条机器指令分成很多个微操作,几个微操作由一个微指令控制,所有微指令合起来称为一个微程序即对应这一整条机器指令
微命令的编码方法
- 位直接法:即1表示有效0无效,速度更快不需要译码
- 统一编码法:将二进制数全部一起编码,通过译码器最后只显示1-2个有效
- 分段编码法:结合直接编码和统一编码
- 分段直接
- 分段间接:增强了指令之间的制约关系
- 混合编码法:位直接+分段直接
- 技巧编码法(常数字段控制法):
微指令格式的类型
- 水平型微指令:一位对应一个,常采用位直接、分段和混合便于并行操作
- 垂直型微指令:利用统一编码法,互斥
- 垂直型与机器指令一样有多个分类
-
传送型
- 微操作域控制格式:
微操作码+原编址+目的编址+读写等附加信息
- 微操作域控制格式:
-
运算型
- 微操作域控制格式:
微操作码+左输入编址+右输入编址+移位等附加信息
- 微操作域控制格式:
-
移位型
- 微操作域控制格式:
微操作码+寄存器编址+移位次数+移位方式等附加信息
- 微操作域控制格式:
-
转移型
- 微操作域控制格式:
微操作码+转移目标微地址+测试条件等附加信息
- 微操作域控制格式:
-
- 垂直型与机器指令一样有多个分类
水平型微指令和垂直型的比较
- 水平并行操作能力强且效率高垂直型相反
- 水平可以并行控制多条通路同时传送
- 水平执行时间短垂直的时间长
- 垂直要译码
- 水平微指令字较长,微程序短,垂直相反
- 水平型用户更难掌握,垂直型更好掌握
微程序设计的基本要求
- 控制存储器的容量小
- 微指令的执行速度快
- 微指令与微程序易修改且灵活