北海 网站建设 公司,可以做伦铜的网站,ui页面设计规范,小学生编程课主要学什么文章目录 **一 CPU的功能和基本结构****1 CPU的功能****2 [基本结构](http://t.csdn.cn/bpCt3)****2.1 运算器****2.2 控制器** **二 指令执行过程****1 指令周期****2 指令周期的数据流****2.1 取指周期****2.2 间址周期****2.3 执行周期****2.4 中断周期** **3 指令的执行方案… 文章目录 **一 CPU的功能和基本结构****1 CPU的功能****2 [基本结构](http://t.csdn.cn/bpCt3)****2.1 运算器****2.2 控制器** **二 指令执行过程****1 指令周期****2 指令周期的数据流****2.1 取指周期****2.2 间址周期****2.3 执行周期****2.4 中断周期** **3 指令的执行方案****3.1 单指令周期****3.2 多指令周期****3.3 流水线方案** **三 数据通路的功能和基本结构****1 数据通路的功能****2 数据通路的基本结构** **四 控制器的功能和原理****1 控制器的结构和功能****2 硬布线控制器****2.1 硬布线控制单元图****2.2 硬布线控制器的时序系统及微操作****2.3 CPU的控制方式****2.4 硬布线控制单元的设计步骤** **3 微程序控制器静态****3.1 微程序控制的基本概念****3.2 微程序控制器的组成和工作过程****3.3 微指令的编码方式****3.4 微指令的地址形成方式****3.5 微指令的格式****3.6 微程序控制单元的设计步骤****3.7 动态微程序设计和毫微程序设计****3.8 硬布线控制器和微程序控制器的区别** **五 异常和中断机制****1 异常和中断的基本概念****2 异常和中断的分类****2.1 异常的分类****2.2 中断的分类** **3 异常和中断响应过程** **六 指令流水线****1 指令流水线的基本概念****1.1 指令流水的定义****1.2 流水线的表示方法** **2 流水线的基本实现****3 流水线的冒险与处理****3.1 结构冒险资源冲突****3.2 数据冒险数据冲突****3.3 控制冒险控制冲突** **4 流水线的性能指标****4.1 流水线的吞吐率****4.2 流水线的加速比** **5 高级流水线技术****5.1 超标量流水线技术****5.2 超长指令字技术****5.3 超流水线技术** 一 CPU的功能和基本结构
1 CPU的功能
CPU计算器控制器
控制器协调并控制计算机各部件执行程序的指令序列包括取指令分析指令执行指令
计算器对数据加工
1指令控制
2操作控制
3时间控制
4数据加工
5中断处理
2 基本结构
2.1 运算器
1算术逻辑单元ALU
2暂存寄存器
3累加寄存器ACC
4通用寄存器组
5程序状态字寄存器
6移位器
7计数器控制乘除运算的操作步骤
2.2 控制器
系统的指挥中枢基本功能是执行指令每条指令的执行由控制器发出一组微操作实现
控制器有硬布线控制器和微程序控制器
组成
1程序计数器PC取指令
2指令寄存器IR保存当前执行指令
3指令译码器对操作码字段译码
4存储器地址寄存器MAR
5存储器数据寄存器MDR
6时序系统产生时序信号由统一时钟CLOCK分频得到
7微操作信号发生器根据IR,PSW,时序信号产生控制整个计算机的控制信号有组合逻辑型和存储逻辑型
控制器—指令操作码指令的执行步骤条件信号—当前计算机各部件要用到的控制信号—各部件协同运行
用户可见的寄存器通用寄存器组程序状态字寄存器PSW
用户不可见的寄存器MARMDRIR
二 指令执行过程
1 指令周期
CPU取出一条指令并执行的时间周期因不同指令而异
指令周期 ⩾ \geqslant ⩾机器周期 ⩾ \geqslant ⩾时钟周期 那三个周期可以相等吗 一个完整的指令周期包括取指周期——间址周期不一定——执行周期——中断周期不一定
间址周期是指有些操作数需要访存去查找必须间接寻址
而无条件转移指令JMPX就没有间址周期只需要取指和执行
由于CPU和I/O设备直接会有信息的交换比如键盘鼠标显示器等都会与CPU进行联系这时候CPU就会采用中断方式来实现信息交换但是是在每条指令执行结束时才发中断查询信号如果有CPU就进入中断响应周期
四个周期CPU都会访存取指令取有效地址取操作数保存程序断点
怎么区别四个周期设置标志触发器FE取指IND间址EX执行INT中断1表示有效
2 指令周期的数据流
即不同周期数据的流动方向
2.1 取指周期 2.2 间址周期
1IR或MDR取出指令中的形式地址—MAR—地址总线—内存 找到操作数的地址
2CU发出读命令—控制总线—内存
3内存—数据总线—MDR(存放有效地址)
2.3 执行周期
从IR中的真实地址找到操作数并送到ALU中运算根据指令不同没有统一的数据流向
2.4 中断周期
处理中断请求程序断点压入堆栈中SP表示栈顶地址
进栈先修改指针再存入数据 3 指令的执行方案
由于一个指令周期有多个时间段不同的部件不同的执行步骤所有有不同的方案来安排这些执行步骤
3.1 单指令周期
所有指令都是固定的时间完成
指令串行完成时钟周期取决于最长的那条指令对短指令而言降低了系统速度
一个时钟周期就是一条指令
也就是说最长指令是1秒那时钟周期就是一秒其他指令也全是在一秒内执行完并且会有剩余因此效率不高
3.2 多指令周期
不同类型的指令选用不同的执行步骤
指令之间串行
但是可以选用不同个数的时钟周期来完成不同指令的执行过程
不要求统一时间也就是说我规定一个时钟周期需要1秒但是你这个指令需要3秒那就给你三个时钟周期不同的时间就给不同数量的时钟周期
3.3 流水线方案
指令之间并行执行
争取一个时钟周期一条指令也就是说我规定一个时钟周期1秒那你流水线就必须争取做到一秒一个指令尽管你一个指令需要三秒因为是并行执行除了最开始的几条指令后面无限接近于1一秒一个指令 三 数据通路的功能和基本结构
1 数据通路的功能
数据在功能部件之间传送的路径成为数据通路包括经过的部件
由控制器控制根据指令生成对数据通路的控制信号
实现了CPU内部运算器寄存等的数据交换
数据通路不仅仅是CPU内部的
2 数据通路的基本结构
1CPU内部单总线方式
所有寄存器输出端和输入端在一条公共通路上结构简单冲突多性能低
2CPU内部多总线方式
所有寄存器输出端和输入端在多条公共通路上提高效率
3专用数据通路方式
根据指令执行过程中的数据和地址的流动方向安排连接线路避免共享总线速度更快但硬件多
“in”表示部件允许输入控制信号“out”表示部件允许输出控制信号
CPU内部总线和外部的系统总线是不一样的区别如下 1寄存器之间的数据传送
如PC—MAR
2主存与CPU之间的数据传送
如PC—MAR
1—R
MEMMAR—MDR
(MDR)—IR
3执行算术或逻辑运算
相加的两个数必须在ALU的两个输入端同时有效所以ALU的一个输入端有一个暂存器Y输出端也有一个暂存器Z
(MDR)—MAR
1—R
MEN(MAR)—MDR
(MDR)—Y
(ACC)(Y)—Z
(Z)—ACC
四 控制器的功能和原理
1 控制器的结构和功能 功能1取指令并指出下一条指令的位置
2对指令进行译码或测试产生相应的操作控制信号
3指挥并控制CPU内存输入输出设备直接的数据流动方向
2 硬布线控制器
根据指令的要求当前的时序及外部和内部的状态按时间的顺序发送一系列微操作控制信号
由复杂的组合逻辑电路和一些触发器构成因此又称为组合逻辑控制器
2.1 硬布线控制单元图
CU的输入信号来源1指令译码器译码产生的指令信息
2时序系统产生的机器周期信号和节拍信号
3来自执行单元的反馈信息即标志 输出到CPU内部或外部控制总线上
控制单元还接受来自系统总线控制总线的控制信号如中断请求DMA请求
2.2 硬布线控制器的时序系统及微操作
1时钟周期
时钟信号—节拍发生器产生节拍每个节拍宽度正好一个时钟周期
2机器周期
指令执行过程中的一个基准时间因指令周期不同因此通常采用固定的存取周期内存存取一个指令字的最短时间作为基准时间
当存储字长指令字长取指周期机器周期
一个机器周期可以完成若干个微操作
3指令周期见上
4微操作命令分析
控制单元发出各种操作命令控制信号序列的功能不同的指令控制单元发出不同的微操作命令
以下是不同周期的微操作 2.3 CPU的控制方式
不同指令所对应的微操作数及复杂程度不同因此每条指令和每个微操作所需的执行时间也不同
1同步控制方式
系统有一个统一的时钟所有的控制信号均来自这个统一的时钟信号
一般以最长的最为标准
用完全统一的具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令
电路简单运行速度慢
2异步控制方式
不存在基准时标信号各部件自行工作通过应答的方式联络
速度快电路复杂
3联合控制方式
两者的折中对不同指令的微操作实现大部分同步控制小部分异步控制
2.4 硬布线控制单元的设计步骤 2进行微操作信号综合
然后进行分析归类写出逻辑表达式然后简化
微操作信号影响因素机器周期 ∧ \land ∧节拍 ∧ \land ∧脉冲 ∧ \land ∧操作码 ∧ \land ∧机器状态条件
比如M(MAR)—MDR
FE·T1IND·T1(ADDSTALDAJMPBAN)EX·T1(ADDLDA)
T1{FEIND(ADDSTALDAJMPBAN)EX(ADDLDA)}
3画出微操作命令的逻辑图
根据逻辑表达式画出对应的每个微操作信号的逻辑电路图
如M(MAR)—MDR但是未考虑门的扇入系数 3 微程序控制器静态
采用存储逻辑实现把微操作信号代码化每条机器指令转化成为一段微程序并存入一个专门的存储器中微操作控制信号由微指令产生
3.1 微程序控制的基本概念
设计思想每条机器指令编写成一个微程序每个微程序包含若干个微指令每条微指令对应一个或几个微操作命令
微程序 ⩾ \geqslant ⩾微指令微命令的集合 ⩾ \geqslant ⩾微操作
微程序可以存到一个控制存储器中用寻址用户程序机器指令的办法来寻址微指令
基本术语
1微命令与微操作
微操作一条机器指令可以分解成一个微操作序列是计算机中最基本的不可再分解的操作
微命令控制部件发出的控制命令构成控制序列的最小单位
两者一一对应微命令是微操作的控制信号微操作是微命令的执行过程
微命令有相容性和互斥性之分相容性同时产生共同完成一些微操作的微命令互斥性不允许同时出现的微命令
组合逻辑控制器也有这两个概念
2微指令与微周期
微指令若干微命令的集合存放微指令的控制存储器的单元地址称为微地址
微指令常包括操作控制字段微操作码字段产生某一步操作所需的各种操作控制信号和顺序控制字段微地址码字段控制产生下一条要执行的微指令地址
微周期执行一条微指令所需的时间通常为一个时钟周期
3主存储器与控制存储器
控制存储器CMCPU内部存放微程序用ROM实现
4程序与微程序
程序指令的有序集合完成特定功能
微程序微指令的有序集合一条指令的功能由一段微程序来实现描述机器指令
3.2 微程序控制器的组成和工作过程
1微程序控制器的基本组成
控制存储器核心部件存放微程序用ROM实现
微指令寄存器CMDR/ μ \mu μIR存放从CM中取出的微指令位数与微指令字长相等
微地址形成部件产生初始微地址和后继微地址
微地址寄存器CMAR存放读写微指令的地址 2微程序控制器的工作过程
在微程序的控制下计算机执行机器指令的过程
执行取微指令公共操作自动将取指微程序的入口地址送入CMAR并从CM中读出相应的微指令送入CMDR
机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址并送入CMAR
从CM中逐条取出对应的微指令并执行
执行完一个机器指令的微程序后又回到取指微程序的入口地址
3微程序和机器指令
一个机器指令对应一个微程序
可以形成公共的微程序比如取指间址中断
3.3 微指令的编码方式
1直接编码方式
无法进行译码每位代表一个微命令设计时选用或不选用某个微命令将对应位设置为0或1
简单直观速度快但数量有限 2字段直接编码方式
微命令字段分成若干小字段把互斥性微命令组合在用一个字段相容性微命令组合在不同字段中每个字段独立编码
缩短了微指令字长需要译码速度较慢
每个小段的信息位不能太多否则增加译码线路的复杂度和译码时间一个小段还留一个状态位表示不发出任何微命令
3字段间接编码隐式编码
一个字段的某些微命令需要由另一个字段的某些微命令来解释
进一步缩短微指令字长削弱了微指令的并行控制能力常作为直接编码的辅助手段
3.4 微指令的地址形成方式
后继微指令的形成的两大基本类型
1直接由微指令的下地址字段指出
2根据机器指令的操作码形成
3增量计数器法(CMAR)1—CMAR
4根据标志来决定微指令分支转移的地址
5通过网络测试形成
6有硬件直接产生微程序入口的地址
如果指令系统中n条机器指令则CM中微程序个数至少是n1
3.5 微指令的格式
与编码方式有关
1水平型微指令
直接编码字段直接编码字段间接编码和混合编码都属于水平型微指令
指令字中一位对应一个控制信号1或者0
一条水平型微指令定义并执行集中并行的操作
微程序短速度快但是微指令长编写程序麻烦 2垂直型微指令
在微指令中设置微操作码字段采用微操作码编译法
一条垂直型微指令只能定义并执行一种基本操作
微指令短简单规整便于编写微程序但是微程序长执行速度慢效率低 3混合型微指令
在垂直型的基础上增加一些并行操作
微指令较短便于编写速度较快
4水平型微指令和垂直型微指令的比较
水平型垂直型并行操作强效率高灵活性强较差执行一条微指令的时间短执行时间长微指令字长微程序短微指令字短微程序长用户难以掌握容易掌握
3.6 微程序控制单元的设计步骤
1写出对应机器指令的微操作的命令及节拍安排
比如取指阶段的微操作命令及节拍安排
T0PC—MAR1—R
T1M(MAR)—MDR(PC)1—PC
T2(MDR)—IROP(IR)—微地址形成部件
由于后继微指令的地址由上一条给出则改进后
T0PC—MAR1—R
T1Ad(CMDR)—CMAR
T2M(MAR)—MDR(PC)1—PC
T3Ad(CMDR)—CMAR
T4(MDR)—IR
T5OP(IR)—微地址形成部件—CMAR
2确定微指令格式
3编写微指令码点
3.7 动态微程序设计和毫微程序设计
1动态微程序设计
能根据用户的要求改变微程序
2毫微程序设计
解释微程序的微程序直接控制硬件
3.8 硬布线控制器和微程序控制器的区别
微程序控制器硬布线控制器工作原理微操作控制信号以微程序的形式存放在控制存储器中执行指令时读出即可微操作控制信号由组合逻辑电路根据当前的指令码状态和时序即时产生执行速度慢快规整性较规整烦琐不规整应用场合CISC CPURISC CPU易扩充性易扩充修改困难
五 异常和中断机制
1 异常和中断的基本概念
异常内中断CPU内部产生的意外事件与当前执行指令相关的同步事件CPU自身完成检测
中断外中断CPU外部设备向CPU发出的中断请求由外部设备触发与当前执行指令无关的异步事件
2 异常和中断的分类
2.1 异常的分类
异常分为
硬故障中断硬连线异常如存储器校验错总线错误
程序性异常软件中断CPU内部执行指令引起的如整除0溢出断点单步跟踪栈溢出地址越界缺页等又可分为
1故障
指令启动后执行结束前被检测到的异常事件如缺页整除0
2自陷
是预先安排的一中异常事件在程序中用一条特殊指令或通过某种方式设定特殊控制标志来人为设置一个陷阱
调试的断点设置和单步跟踪功能就是通过陷阱机制实现
3终止
计算机无法继续执行的硬件故障如控制器出错存储器校验错只能终止
终止异常和外中断属于硬件中断
2.2 中断的分类
1可屏蔽中断
通过可屏蔽中断请求线INTR向CPU发出的中断请求被屏蔽的中断请求将不被送到CPU
2不可屏蔽中断
通过专门的不可屏蔽中断请求线NMI向CPU发出的中断请求通常是非常紧急的硬件故障如断电
3 异常和中断响应过程
CPU对异常和中断响应的过程可分为
1关中断
保存断点和程序状态期间不能被新的中断打断因此要禁止响应新的中断即关中断
设置中断允许IF触发器来实现IF为0表示关中断
2保存断点和程序状态
通常保存在栈中为了支持异常或中断的嵌套
3识别异常和中断并转到相应的处理程序
软件识别大多数异常采用中断也用
硬件识别中断采用
软件识别CPU设置一个异常状态寄存器记录异常原因操作系统使用一个统一的异常或中断查询程序
硬件识别向量中断异常或中断处理程序的首地址称为中断向量所有中断向量都在中断向量表中每个异常或中断一个指定的中断类型号中断向量表中类型号和中断向量一一对应
六 指令流水线
之前的指令执行都是单周期处理器同一时刻CPU中只有一条指令在执行
现代计算机普遍使用指令流水线技术同一时刻多条指令在CPU不同部件并发执行大大提高了并行性和效率
1 指令流水线的基本概念
提高并行性的两大方面
时间上的并行一个任务拆为不同子阶段在不同部件上同时执行称为流水线技术
空间上的并行一个处理机内设置多个执行相同任务的功能部件并行工作称为超标量处理机
1.1 指令流水的定义
一条指令的执行过程分为若干个阶段每个阶段不同部件完成
假设一条指令的执行过程分为取指IF译码/读寄存器ID执行/计算地址EX访存MEM写回WB 理想情况每个时钟周期都有一条指令完成每条指令的时钟周期数CPI都为1
每个阶段时间长度以最复杂的阶段为准因此流水线方式不能缩短条指令的执行时间但是提高了整个程序的效率
为实现指令流水线指令集的特征
1指令长度应尽量一致简化了取指令和指令译码操作
2指令格式应尽量规整尽量保证源寄存器的位置相同
3采用Load/Store指令访问存储器
4数据和指令在存储器对齐存放有利于减少访存次数
1.2 流水线的表示方法
时空图 2 流水线的基本实现
数据通路 控制信号 执行过程
1取指IF
PC值作为地址从指令寄存器取出第一条指令字计算PC4送入PC输入端
指令字和PC4通过RD输出端送入IF/ID寄存器
可能用到的数据都向后传
时钟到来时PC4和指令字锁存到IF/ID寄存器
2译码/读寄存器ID
控制器根据指令字生成后续控制信号
对于lw访存指令根据指令字中的rsrt取出寄存器中的RS,RT
符号扩展单元可能会扩展这些数据
多路选择器根据指令字生成指令可能的写寄存器编号
时钟到来数据和信号和PC4锁存在ID/EX寄存器中
3执行/计算地址EX
由具体指令确定
时钟到来数据和信号会锁存在EX/MEM流水寄存器中
4访存MEM
也由具体指令确定
对于lw访存指令根据寄存器中锁存的地址写入数据和内存读写控制信号对存储器进行读和写
时钟到来数据和信号会锁存在MEM/WB流水寄存器中
5写回WB
也由具体指令确定
将读出的数据写回指定寄存器时钟到来时完成数据写入寄存器
运算类指令IF——ID——EX——WB
Load指令IF——ID——EX——MEM——WB
Store指令IF——ID——EX——MEM
条件转移指令IF——ID——EX——MEM写回PC
无条件转移指令IF——ID——EX写回PC
3 流水线的冒险与处理
有些情况使流水线不能正确执行后续指令而导致流水线阻塞或停顿称为流水线冒险
主要原因有以下三种
3.1 结构冒险资源冲突
多条指令同一时刻争夺同一资源硬件
解决方法1前一指令访存时后一相关指令暂停一个时钟周期
2单独设置数据存储器和指令存储器如指令cache和数据cache
3.2 数据冒险数据冲突
一个程序中下一条指令用到当前指令计算的结果但是发生数据冲突又可以细分为三类
1写后读当前指令写下一指令读先读后写读到的就是错数据
2读后写当前指令读下一指令写先写后读读的就是错数据
3写后写下一指令在当前指令之前写写入的就不是最新值
解决办法
1把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期直到数据相关问题消失分为硬件阻塞和软件插入NOP指令
2设置相关专用通路不等指令写直接在ALU计算完了作为结果开始下一条指令称为数据旁路技术
3通过编译器对数据相关的指令编译优化调整指令顺序
3.3 控制冒险控制冲突
指令一般是顺序执行但是有改变指令执行顺序的情况改变PC值造成断流引起控制冒险
解决办法
1对转移指令进行分支预测尽早生成转移目标地址分为静态和动态
静态预测预测条件不满足即继续执行分支指令的后续指令
动态预测根据程序执行的历史情况进行动态预测调整准确率较高
2预取转移成功和不成功两个控制流方向上的目标指令
3加快和提前形成条件码
4提高转移方向的猜准率
cache 缺失的处理过程也会引起流水线阻塞
4 流水线的性能指标
4.1 流水线的吞吐率
单位时间流水线完成的任务数量
吞吐率TPn/TK
n是任务数Tk是处理完n个任务所用的总时间k是流水段的段数t是时钟周期
任务连续的理想情况下一条k段流水线能在kn-1个时钟周期内完成n个任务
TPn/(kn-1)t
当n无穷大TP1/t
4.2 流水线的加速比
完成同样一批任务不使用流水线与使用流水线所用的时间之比
加速比ST0/TK
T0表示不使用流水线的总时间TK表示使用流水线的总时间
由TKn/(kn-1)tT0knt
则Skn/kn-1当n无穷大Sk
5 高级流水线技术
两种增加指令级并行的策略多发射技术多个功能部件和超流水线技术增加流水级数
5.1 超标量流水线技术
也称动态多发射技术
每个时钟中期并发多条独立指令配置多个功能部件
简单超标量指令顺序发射
复杂超标量动态流水线调度技术通过动态分支预测等手段指令不按顺序执行称为乱序执行 5.2 超长指令字技术
静态多发射技术
由编译程序挖掘出指令潜在的并行性将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字采用多个处理部件
5.3 超流水线技术
流水线功能段划分得越多时钟周期就越短通过提高流水线主频
但是流水寄存器数量有限所以划分级数有限制 超流水线CPU充满后CPI1但主频更高
多发射流水线CPU并行执行CPI1但成本更高控制更复杂