导图社区 计算机组成原理
计算机组成原理思维导图终极版本!下图涵盖了计算机系统概论、控制单元、CPU的结构与功能、指令系统、计算机的计算方法、输入输出系统、存储器和系统总线等知识要点,希望能够帮助你对计算机组成原理形成一个初步认识!
编辑于2019-11-04 14:48:04计算机组成原理
计算机系统概论
层次结构
虚拟机器M4(高级语言机器)
虚拟机器M3(汇编语言机器)
虚拟机器M2(操作系统机器)
传统机器M1(机器语言机器)
微程序机器M0(微指令系统)
体系结构
概念性的结构与功能特性
指令集
数据类型
存储器寻址技术
I/O机理
组成
定义
如何实现计算机体系结构所体现的属性
软件
系统软件
标准程序库
语言处理程序
操作系统
服务程序
数据库管理系统
网络软件
应用软件
科学计算
数据处理
过程控制
事务管理
硬件
冯·诺依曼计算机
概念
存储程序
特点
指令和数据同等地位,按地址寻访
指令和数据均用二进制数表示
指令
操作码
地址码
指令顺序存放
运算器为中心
组成部件
运算器
算术逻辑单元(Arithmetic Logic Unit,ALU)
累加器(Accumulator,ACC)
乘商寄存器(Multiplier-Quotient Register,MQ)
操作数寄存器(X)
控制器
控制单元(Control Unit,CU)
程序计数器(Program Counter,PC)
指令寄存器(Instruction Register,IR)
中央处理器(Central Processing Unit,CPU)
存储器
主存储器
存储体M
存储器地址寄存器(Memory Address Register,MAR)
存储器数据寄存器(Memory Data Register,MDR)
主存储器
辅存储器
输入设备
输出设备
I/O设备(Input/Output Equipment)
工作步骤(P10)
技术指标
机器字长
CPU一次能处理数据的位数,与CPU寄存器位数有关
存储容量
存储单元个数×存储字长
存储单元个数
MAR的位数
存储字长
MDR的位数
运算速度
吉普森法
MIPS(Million Instruction Per Second,百万条指令每秒)
CPI(Cycle Per Instruction,执行一条指令的时钟周期,即机器主频的倒数)
FLOPS(Floating Point Operation Per Second,浮点运算次数每秒)
系统总线
概念
部件互连方式
分散连接
I/O设备与主机之间连接不灵活
总线连接
同一时刻,只能有一个部件向总线发送信息,而多个部件可同时从总线上接收相同信息
双总线结构框图(P41)
分类
按数据传送方式
并行传输总线
数据宽度:8,16,32,64...位
串行传输总线
按使用范围
计算机总线
测控总线
网络通信总线
按连接部件
片内总线
芯片内部的总线
寄存器之间
寄存器与ALU之间
系统总线(板级总线)
定义
CPU,主存,I/O设备间的信息传输线
按传输信息分类
数据总线
传输各部件之间的数据信息
双向
位数与机器字长,存储字长有关
数据总线位数:数据总线宽度
地址总线
指明CPU欲访问的存储单元或I/O接口地址
单向,由CPU输出
位数与存储单元的个数有关,logN
控制总线
发送控制信号,决定不同时刻各部件对总线是否具有使用权
单/双向
常见控制信号
时钟:同步操作
复位
总线请求/允许
中断请求/响应
存储器写/读
I/O写/读
传输响应
通信总线
定义
计算机系统之间或计算机系统与其他系统间的通信
按传输方式
串行通信
单条1位宽
远距离
并行通信
多条1位宽
近距离
特性
机械特性
机械连接方式
电气特性
信号
输出信号:由CPU发出
输入信号:送入CPU
电平
高低电平代表1或0
功能特性
不同线功能不同
时间特性
总线中任何一根线上的信号只在某一时间段内有效,信号时序图
性能指标
总线宽度
数据总线的宽度,用bit表示
总线带宽
数据传输速率,MBps(兆字节每秒)
时钟同步/异步
总线上数据与时钟是否同步工作
总线复用
一条线上传输多种信号
信号线数
控制方式
总线标准
系统,模块间互连的标准界面,透明性,任一方只需根据标准完成自身一方接口的功能,无需关注对方接口与总线的连接要求
举例
ISA
EISA
VESA
PCI
AGP
RS-232C
USB(Universal Serial Bus,通用串行总线)
即插即用
连接能力强
传输率高
标准统一,减少PC插槽
轻巧
总线结构(P52)
单总线
多总线
总线控制
判优控制(仲裁逻辑)
定义
多个主设备同时要使用总线时,由总线控制器按一定逻辑确定哪个主设备能使用总线
方式
集中式
定义
将控制逻辑集中在一处,如CPU
仲裁方式(P58)
链式查询
计数器定时查询
独立请求
分布式
定义
将控制逻辑分散在各个部件上
通信控制(P59)
总线周期
1. 申请分配阶段
2. 寻址阶段
3. 传数阶段
4. 结束阶段
定义
如何获知传输开始和传输结束,通信双方如何配合
方式
同步通信
异步通信
不互锁
半互锁
全互锁
半同步通信
分离式通信
存储器
概述
存储器分类
按存储介质
1. 半导体存储器
易失
2. 磁表面存储器
3. 磁芯存储器
4. 光盘存储器
非易失
按存取方式
1. 随机存储器(Random Access Memory,RAM,主存采用)
静态RAM(触发器)
动态RAM(电容)
2. 只读存储器(Read Only Memory,ROM)
MROM
PROM
EPROM
EEPROM
Flash Memory
3. 串行访问存储器
顺序存取存储器(磁带)
直接存取存储器(磁盘)
按作用
主存
RAM
ROM
辅存
磁盘
磁带
光盘
闪存(Flash Memory)
缓存(Cache)
存储器的层次结构
缓存-主存层次
解决CPU和主存速度不匹配的问题
主存-辅存层次
解决存储系统的容量问题
虚拟存储系统
主存储器
概述
基本组成(P72)
存储体
MAR
MDR
译码器
驱动器
控制电路
读写电路
存储单元地址分配(P73)
按字寻址
按字节寻址
技术指标
存储容量
二进制代码总位数=存储单元个数×存储字长
字节总数=存储单元个数×存储字长/8
存储速度
存取时间
定义
启动一次存储器操作(读/写)到完成该操作所需的全部时间
分类
读出时间
写入时间
存取周期
存储器进行连续两次独立的存储器操作所需的最小间隔时间
通常存取周期大于存取时间
存储器带宽
定义
单位时间内存储器存取的信息量
如何提高
缩短存取周期
增加存储字长
增加存储体
半导体存储芯片(P74)
基本结构
存储矩阵
地址线
单向
位数与芯片容量有关
数据线
双向
位数与读出和写入的数据位数有关
共同反映存储芯片的容量:2^A * D
控制线
读/写控制线
低电平写,高电平读
片选线
根据片选信号来确定选择哪个芯片
译码驱动
定义
把地址总线送来的地址信号翻译成对应存储单元的选择信号
方式(P75)
线选法
用一根字选择线直接选中一个存储单元的各位(一个字节)
结构简单
容量有限
重合法
由X,Y两个方向的地址决定哪一位被选中
读写电路
读出放大器
写入电路
随机存取存储器(RAM)(P76)
静态RAM(Static RAM,SRAM)
基本单元电路(P77)
定义
存储器中用于寄存0和1代码的电路
组成
由MOS管组成的触发器
行地址选择
列地址选择
读写原理(P77)
读写时序(P78)
动态RAM(Dynamic RAM,DRAM)
基本单元电路(P81)
共同特点
靠电容存储电荷的原理来寄存信息
漏电,因此必须进行刷新/再生过程
方式
三管式
单管式
读写原理(P81)
读写时序(P84)
刷新
定义
先将原信息读出,再由刷新放大器形成原信息并重新写入的再生过程
刷新周期
规定在一定时间内必须对DRAM的全部基本单元电路作一次刷新,一行行进行
方式
集中刷新
定义
在规定的刷新周期内,对全部存储单元集中一段时间逐行刷新,停止读写操作
死时间/死区
不能进行读写操作的时间
死时间率
分散刷新
定义
对每行存储单元的刷新分散到每个存取周期内完成
不存在停止读写操作的时间,但是存取周期变长,降低系统速度
异步刷新
定义
结合集中和分散的特点,每隔最大刷新间隔/行数的时间就刷新一行
优点
缩短死时间
充分利用最大刷新间隔
从根本上提高整机的工作效率
DRAM和SRAM的对比
DRAM
集成度高
芯片引脚少
功耗低
价格便宜
速度慢
需配置再生电路,消耗额外功率
广泛应用于主存
SRAM
集成度低
芯片引脚多
功耗高
价格昂贵
速度快
广泛应用于Cache
只读存储器(ROM)(P88)
原始定义
一旦注入原始信息后不能改变
改变
随着用户需要,能够任意修改原始信息
基本器件
MOS
TTL
种类
掩模ROM
用行列交叉处有无耦合元件MOS管区分0和1,无法改变原始状态
PROM
一次性编程
熔丝
未断为1
烧断为0
EPROM
可擦除可编程
浮动栅
擦写方式
紫外线照射
电气方法
EEPROM
既可局部擦写又可全部擦写
Flash Memory
定义
闪速存储器,快擦型存储器
特点
可擦写
非易失
擦写速度快
高速编程
适用场景
需要周期性的修改存储信息的应用场合
存储器与CPU的连接
存储容量的扩展(P92)
位扩展
增加存储字长
字扩展
增加存储器字的数量
字,位扩展
连接步骤(P94例题4.1-4.3)
根据地址范围写出二进制地址码,确定总容量
选择存储芯片
ROM:系统程序
RAM:用户程序
分配地址线
连接数据线
字/位扩展
连接读写命令线
高读低写
连接片选线
访存控制信号(MREQ)
低电平有效
片选有效信号
使用CPU上未与存储器连接的高位地址与访存控制信号共同产生片选信号,通常需要运用逻辑电路
关键
存储器的校验(P100)
方法
为发现并纠正数据存储过程中可能发生的错误,将原数据配成汉明编码
汉明编码
纠错理论
L-1 = D+C
2^k >= n+k+1
配置过程
配偶原则
配奇原则
纠错过程(P102例题)
高速缓冲存储器(Cache)
解决的问题
避免CPU和I/O设备争抢访存
主存与CPU的速度不匹配
基本结构(P110)
性能指标
命中率
CPU要访问的信息已在Cache内的比率
h=N_c/(N_c + N_m)
平均访问时间
T_a=hT_c + (1-h)T_m
访问效率
e=T_c/T_a
工作原理(P112)
Cache存储体
地址映射变换机构(P117)
定义
由主存地址映射到Cache地址
方式(P120例题4.8-4.11)
直接映射
映射关系固定
不灵活
全相联映射
较灵活
比较次数多
组相联映射
上述两种方式的折中
二路组相联,四路组相联……
替换机构
先进先出(FIFO)
近期最少使用(LRU)
随机法
读写操作
读操作
1. CPU发出主存地址
2. 判断是否命中(通过地址映射变换机构)
命中
直接访问Cache,将该字送入CPU
未命中
访问主存,将该字传给CPU,判断Cache是否满
Cache未满
将该字存入Cache
Cache已满
执行替换算法,将该字存入Cache
写操作
写直达法
数据既写入Cache又写入主存
主存与Cache内容始终一致
访存次数增加
写操作时间就是访问主存的时间
写回法
只写入Cache但不写入主存
Cache数据被替换时才写回主存
Cache的每一块都要增加标志位
写操作的时间就是访问Cache的时间
改进
增加级数
单一缓存
两级缓存
片内缓存
片外缓存
分立
统一缓存
分立缓存
指令Cache
数据Cache
辅助存储器
磁表面存储器
技术指标
记录密度
存储容量
平均寻址时间
平均找道时间
磁头寻找目标磁道的时间
平均等待时间
找道磁道后,磁头等待目标区段旋转到磁头下方的时间
数据传输率
误码率
磁记录原理(P125)
磁记录方式(P126)
举例
硬磁盘存储器
分类
固定磁头
移动磁头
结构
磁盘控制器
磁盘驱动器
盘片
记录格式
定长记录
台号
磁道号
柱面号
盘面号
磁头号
扇段号
不定长记录
起始标志
间隙
磁道地址块
间隙
磁道标识块
间隙
数据块
循环冗余校验码
软磁盘存储器
磁带存储器
光盘存储器
原理
应用激光在某种介质上写入信息
利用激光读出信息
分类
只读型
只写一次型
可擦写型
结构
控制器
驱动器
盘片
各种辅存比较
光盘
非接触式读写,耐用性高
可靠性高
记录密度高
写入速度低
互换性好
价格贵
硬盘的后备存储器
硬磁盘
容量大
速度快
主存的后备存储器
软磁盘
容量小
速度慢
不耐用
逐渐被淘汰
磁带
容量大
速度慢
价格低
硬盘的后备存储器
输入输出系统
概述
发展概况
分散连接阶段
每个I/O设备均与CPU相连
串行方式交换信息
采用程序查询方式
接口模块和DMA阶段
接口
通过接口模块与主机相连,总线结构
部分地并行方式
采用程序终端方式
DMA
直接存储器存取(Direct Memory Access)
I/O与主存直接交换信息
通道结构阶段
负责管理I/O设备以及实现主存与I/O设备交换信息
一个特殊的处理器
代替CPU,独立执行用通道指令编写的输入输出程序
I/O处理机阶段
独立于主机
完成各种功能
系统组成
I/O软件
I/O指令
操作码
判别代码
命令码
体现对I/O设备的具体操作
设备码
选择某一I/O设备
通道指令
指明数据在主存中的首末地址
指明字节数
指明设备码以及命令码
I/O硬件
带接口的系统
接口模块
设备模块
带通道的系统
多个设备控制器
多个设备
与主机的联系方式
I/O设备编址方式
统一编址
将I/O地址看作存储器地址的一部分
访问I/O类似于访存
不统一编址
I/O地址与存储器地址分开
需设I/O专用指令
设备寻址
设备选择电路
传送方式
串行
并行
联络方式
立即响应
异步应答
解决I/O设备与主机工作速度不匹配的问题
并行
串行
同步时标
要求I/O设备与CPU工作速度完全同步
连接方式
辐射式(分散式)
总线式
决定I/O设备的增删能力
与主机信息传送的控制方式
1. 程序查询方式
CPU不断查询I/O设备是否已经做好准备
串行
2. 查询中断方式
CPU启动I/O设备后,继续执行自身程序
I/O设备准备就绪后向CPU发出中断请求
需要编制中断服务程序
3. 直接存储器方式(DMA)
主存与I/O设备交换信息时,无须调用中断服务程序
DMA和CPU同时访存时,CPU让出总线占有权
窃取/挪用
4. I/O通道方式
5. I/O处理机方式
I/O设备(P166)
概述
结构
设备控制器
机电磁光部件
分类
人机交互设备
信息存储设备
机-机通信设备
输入设备
键盘
鼠标
触摸屏
……
输出设备
显示设备
打印设备
……
其他
I/O接口
概述
定义
主机与I/O设备间设置的一个硬件电路及其相应的软件控制
设置理由
1. 多台设备
实现设备选择
2. 速度差异
实现数据缓冲
3. 串并相异
实现串并转换
4. 电平不同
实现电平转换
5. 控制信号
传送控制命令
6. 监视状态
查询工作状态
基本组成(P190)
设备选择电路
选址功能
数据缓冲寄存器DBR
传送数据的功能
命令寄存器和命令译码器
传送命令的功能
设备状态标记
完成触发器D
工作触发器B
中断请求触发器INTR
屏蔽触发器MASK
反映I/O设备工作状态的功能
总线连接
设备选择线
数据线
命令线
状态线
接口类型
按数据传送方式
并行
串行
按功能选择的灵活性
可编程
不可编程
按通用性
通用
专用
按控制方式
程序型
低速I/O
DMA型
高速I/O
程序查询方式
程序查询流程(P191)
指令流程
1. 测试指令:查询I/O设备是否准备就绪
2. 传送指令:I/O设备准备就绪,执行传送指令
3. 转移指令:若I/O设备未准备就绪,执行转移指令,转至测试指令
程序流程
1. CPU保护寄存器内容
2. 设置计数值
3. 设置欲传送数据在主存缓冲区的首地址
4. CPU启动I/O设备
5. 调取设备状态标志至CPU测试I/O设备是否准备就绪
6. CPU执行I/O指令,读取/写入数据至数据寄存器,状态标志复位
7. 修改主存地址
8. 修改计数值
原码减一
补码加一
9. 若计数值不为零,则继续传送
10. 结束,执行现行程序
程序查询方式的接口电路(P192)
设备选择电路
触发器D
触发器B
数据缓冲寄存器
工作过程
1. 指令设备码通过地址线送至设备选择电路
2. 输出SEL有效
3. 完成触发器D置0
4. B触发器启动设备工作
5. 输入设备将数据传送到数据缓冲寄存器
6. 传输结束,将D置1,B置0,表示外设准备就绪
7. D触发器以准备就绪状态通知CPU,表示数据缓冲满
8. 数据缓冲寄存器内数据传送到CPU的通用寄存器,再存入主存
程序中断方式
中断
执行程序时,当出现异常情况或特殊请求时,计算机停止线性程序运行转向对其处理,处理结束后再返回到先行程序的间断处
I/O中断产生原因
适应I/O设备工作速度低的问题
程序中断方式接口电路(P198)
程序查询方式的接口电路
中断请求触发器(INTR)和中断屏蔽触发器(MASK)
排队器
中断向量地址形成部件(设备编码器)
工作过程(P198)
CPU响应中断的条件
CPU中允许中断触发器EINT为1(开中断)
CPU响应中断的时间
每条指令执行阶段的结束时刻
I/O中断处理过程
1. CPU发出启动I/O的命令,将接口B置为1,D置为0
2. 输入设备开始工作
3. 输入设备将数据送入BR
4. 输入设备向接口发出设备工作结束信号,将D置为1,B置为0,准备就绪
5. 当D=1,MASK=0,在指令执行阶段的结束时刻,CPU发出中断查询信号
6. 设备中断请求触发器INTR被置为1,标志设备向CPU提出中断请求
中断请求
7. INTR送至排队器,进行中断判优
中断判优
8. 若EINT=1,设备又被排队选中,则进入中断响应阶段,由中断响应信号INTA将排队器输入送至编码器形成向量地址
中断响应
9. 向量地址送至PC,作为下一条指令的地址
10. 转至该设备的服务程序入口地址,进入中断服务阶段,将BR中数据送至CPU的通用寄存器,再存入主存单元
中断服务
11. 中断服务程序最后一条指令为中断返回指令,即中断返回至原程序的断点处
中断返回
中断服务程序的流程
1. 保护现场
保存程序的断点
隐指令
保存通用寄存器和状态寄存器的内容
进栈
2. 中断服务
3. 恢复现场
将中断现场恢复到原来的寄存器中
取数或出栈
4. 中断返回
返回到原程序的断点处
中断服务程序分类
单重中断
多重中断
DMA方式
概述
主存和DMA间由一条直接的数据通路
适合高速I/O设备或辅存与主存直接的信息交换
DMA与主存进行信息交换的方法
停止CPU访问主存
DMA要访存时,CPU放弃对总线的使用权
控制简单
CPU利用率低
周期挪用(窃取)
情况
1. CPU不访存,不影响
2. CPU正在访存,待存取周期结束后再让出总线占有权
3. 同时要求访存,I/O窃取一两个存取周期
CPU效率高
适用于I/O设备读写周期大于主存周期的情况
DMA与CPU交替访问(不常用)
为DMA和CPU专门分配固定的访存周期
不需要总线占有权的申请建立归还
适用于CPU工作周期比主存存取周期长的情况
DMA接口的组成(P205)
主存地址寄存器(AR)
存放主存中需要交换数据的地址
传送数据前,程序将数据再主存中的首地址送到AR
每交换一次数据,将地址寄存器内容加1
字计数器(WC)
用于记录传送数据的总字数
补码预置,每交换一次加1
到达0后,向CPU发生中断请求信号
数据缓冲寄存器(BR)
暂存每次传送的数据
DMA控制逻辑
1. 每当设备准备好一个数据字,就像DMA接口提出申请(DREQ)
2. DMA控制逻辑向CPU请求DMA服务,发出总线使用权的请求信号(HRQ)
3. 收到CPU的响应信号HLDA后,DMA控制逻辑开始负责管理DMA传送的全过程
中断机构
请求CPU作DMA操作的后处理
设备地址寄存器(DAR)
存放I/O设备的设备码或设备信息存储区的寻址信息
工作过程(P206)
1. 预处理
1. 给DMA控制逻辑指明数据传送方向
2. 向DMA的AR送入交换数据的主存起始地址
3. 向DMA的WC赋予交换数据的个数
4. 向DMA的DAR送入设备号
5. 启动设备
2. 数据传送
1. 设备准备好一个字时,将该字读到DMA的BR中
2. 设备向DMA发请求(DREQ)
3. DMA向CPU申请总线控制权(HRQ)
4. CPU发回HLDA信号,允许让出总线控制权
5. 将DMA的AR中的主存地址送入地址总线,命令存储器写
6. 通知设备已被授予一个DMA周期(DACK),并为交换下一个字做准备
7. 将DMA的BR中的内容送入数据总线
8. 主存将数据总线上的信息写入指定的存储单元
9. 修改主存地址和字计数值
10. 判断数据块是否传送结束
未结束
继续传送
已结束
向CPU申请程序中断,标志数据块传送结束
3. 后处理
校验送入主存的数据
判断是否继续用DMA传送其他数据块
与系统的连接方式(P209)
链式查询
独立请求
接口类型
选择型
物理上可连接多个设备
逻辑上只允许连接一个设备
适用于数据传输率高的设备
多路型
物理上可连接多个设备
逻辑上也可让多个设备同时工作
适用于数据传输率低的设备
程序中断与DMA对比
程序中断
靠程序传送数据
在一条指令执行结束时响应
能处理异常事件
需保护现场
优先级低
DMA
靠硬件传送数据
在指令周期内的任意存取周期结束时响应
不能处理异常事件
无需保护现场
优先级高
计算机的计算方法
无符号数和有符号数
无符号数
寄存器的每一位均用来存放数值
有符号数
机器数和真值
机器数
把符号数字化的数
真值
带+或-符号的数
原码表示法
定义
符号位为0表示正数,符号位为1表示负数
数值位为真值的绝对值
表达式
备注
原码中0有两种表示形式
+0
0.0000
-0
1.0000
加减法运算很麻烦
补码表示法
补数
1. 一个负数可用它的正补数代替,正补数由模加上负数求得
2. 一个正数和一个负数互补时,它们绝对值之和为模数
3. 正数的补数为本身
表达式
备注
补码中0只有一种表示形式
0.0000
比原码多表示一个-1
1.0000
变形补码
模数为4,双符号位
从原码到补码
除符号位外,每位求反,末位加一
反码表示法
表达式
备注
原码和补码的中间过渡
从原码到反码
除符号位外,每位求反
移码表示法
表达式
作用
浮点数的阶码用移码表示时,能很方便地判断阶码的大小
从补码到移码
符号位求反
定点表示和浮点表示
定点表示
小数点固定在某一位置
纯小数
纯整数
浮点表示(P229)
组成
阶码
尾数
表示范围
上溢
下溢
规格化
目的
提高浮点数的精度
方式
左规
右规
比较
浮点机
表示范围大
精度高
需要规格化,运算复杂
溢出判断简单
通用大型计算机
定点机
表示范围小
精度低
运算简单
溢出判断复杂
小型计算机,控制机
定点运算(P234)
移位
特点
1. 正数,不论左移还是右移,均添0
2. 负数原码,符号位不变,其余空位添0
3. 负数补码,符号位不变,左移添0,右移添1
4. 负数反码,符号位不变,其余空位添1
逻辑移位
连同符号位,左移时高位移丢,低位添0;右移时,低位移丢,高位添0
算数移位
不连同符号位,为避免算术左移高位丢1,采用带进位的移位
加减
基本公式
溢出判断
用一位符号位判断
参加操作的两个数符号相同但结果与原操作数符号不同,即溢出
通常用符号位产生的进位与最高有效位产生的进位进行异或操作
用两位符号位判断
两位符号位不同时则溢出
高位符号位永远代表真正的符号
控制流程
ACC存放被加/减数的补码先从主存中取出加数[M],送至X寄存器,将被加/减数与加/减数相加,和保留在ACC中。若做的是减法,则要对[X]求补(每位求反,末位加1)再相加。最后进行溢出判断,放置溢出标志。
乘(原码)
基本步骤
1. 初始条件,部分积为0
2. 乘数末位为1,则部分积加上被乘数;否则加上0。
3. 部分积和乘数同时右移一位(逻辑右移),乘数的次低位变成了新的末位,空出的高位正好放置原部分积的最低位。
4. 重复2,3步骤,直到计数器减到0
5. 符号位单独判断
控制流程
ACC中先存放被乘数,取出主存中的乘数[M]送入乘商寄存器MQ,再把被乘数送入X寄存器,并将ACC清0,存放部分积。最后将乘积高位保留在ACC中,低位保留在MQ中。
除(原码)
恢复余数法
1. 被除数减去除数
2. 若余数为正,上商1;否则上商0,并恢复余数即加上除数。
3. 余数和和部分商均左移一位。
4. 重复上述步骤直至计数器减到0
5. 符号位单独判断
加减交替法
1. 被除数减去除数
2. 若余数为正,上商1,左移余数和部分商,再减去除数;否则上商0,左移余数和部分商,再加上除数。
3. 重复步骤2直至计数器减到0
4. 符号位单独判断
控制流程
ACC存放被乘数(余数),先从主存中取出除数[M]送至X寄存器,相除后商存储在MQ中,[ACC]为余数R。
浮点数四则运算
加减
1. 对阶
小阶向大阶看齐
右移一位,阶码加一
2. 尾数求和
将对阶后的尾数按定点加减运算规则进行运算
3. 规格化
左规
右规
处理尾数的溢出
4. 舍入
0舍1入
恒置1
5. 溢出判断
实际上就是判断阶码是否溢出,通过阶码的符号来判断
乘除
算术逻辑单元(ALU)
核心部件
加法器
寄存器
相应的逻辑电路
ALU电路
快速进位链
并行加法器
串行进位链
并行进位链
单重分组跳跃进位
双重分组跳跃进位
指令系统
机器指令
定义
机器语言的语句
一般格式
操作码
指明指令完成的操作
长度固定或可变
扩展操作码技术(P301)
地址码
指明源操作数的地址,结果地址以及下一条指令的地址
举例(P302)
四地址
三地址
二地址
一地址
指令字长
取决于操作码长度,操作数地址长度和操作数地址的个数
操作数类型和操作类型
操作数类型
地址
数字
字符
逻辑数据
数据存放方式
字节
半字
字
双字
操作类型
数据传输
算术逻辑操作
移位
转移
无条件
条件
调用与返回
陷阱
输入输出
其他
寻址方式(P310)
定义
确定本条指令的数据地址和下一条指令将要执行的指令地址的方法
指令寻址
顺序寻址
PC自动加一形成下一条指令的地址
跳跃寻址
通过转移类指令实现
数据寻址
1. 立即寻址
操作数本身就在指令字内
2. 直接寻址
形式地址就是真实地址
3. 隐含寻址
操作数地址隐含在操作码或某个寄存器中
4. 间接寻址
给出操作数的有效地址所在的存储单元的地址
5. 寄存器寻址
指出操作数所在寄存器的编号
6. 寄存器间接寻址
寄存器中存的是操作数的主存地址
7. 基址寻址
有效地址等于指令字中的形式地址与基址地址寄存器中的内容相加
应用于多道程序,将用户程序的逻辑地址转化为主存的物理地址
执行过程中,基址寄存器内容不可变,指令字中地址可变,通常由操作系统管理
8. 变址寻址
有效地址等于形式地址与变址寄存器中的内容相加
执行过程中,变址寄存器内容可变,指令字中地址不可变,通常由用户设定
应用:循环程序编制
9. 相对寻址
有效地址等于PC内容与指令字中的形式地址相加
形式地址被称为位移量
10. 堆栈寻址
指令格式的设计(P320)
RISC技术
主要特点
1. 选取使用频度较高的一些简单指令以及一些很有用又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现
2. 指令长度固定,格式种类少,寻址方式少
3. 只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成
4. CPU内又多个通用寄存器
5. 采用流水线技术,大部分指令在一个时钟周期内完成
6. 控制器采用组合逻辑控制
7. 采用优化的编译程序
CPU的结构与功能
CPU的结构
控制器的主要功能
1. 取指令
控制器自动从存储器中取出指令
2. 分析指令
分析指令要完成什么操作
分析参与这次操作的操作数地址
3. 执行指令
根据分析后的要求,形成操作控制信号序列
CPU的功能概述(P338)
1. 控制程序的顺序执行
指令控制
2. 产生完成每条指令的控制命令
操作控制
3. 对各种操作加以时间上的控制
时间控制
4. 对数据进行算术运算和逻辑运算
数据加工
5. 处理异常和特殊请求
中断处理
四大部分
寄存器
存放当前指令地址,存放当前指令的寄存器和译码部件,存放操作数
CU
发出各种操作命令序列
ALU
算逻运算
中断系统
处理异常和特殊请求
寄存器
用户可见寄存器
可编程
控制和状态寄存器
特点
控制CPU的操作和运算,对用户透明
分类
MAR
存储器地址寄存器
MDR
存储器数据寄存器
PC
程序计数器
IR
指令寄存器
指令周期
基本概念
1. 取指周期FE
取指令
2. 间址周期IND
取有效地址
3. 执行周期EX
取操作数
4. 中断周期INT
保持程序断点
指令周期的数据流(P344图片)
指令流水
如何提高处理器速度
提高器件性能
改进系统结构,开发系统的并行性
并行性
体现
同时性
多个事件在同一时刻发生
并发性
多个事件在同一时间段发生
等级
作业级
任务级
粗粒度
指令之间级
指令内部级
细粒度
原理(P346)
在指令执行有许多阶段,同时对不同阶段的指令进行处理
取指令
指令译码
形成地址
取操作数
执行指令
回写结果
修改指令指针
影响流水线性能的因素
结构相关
不同指令争用同一功能部件
设置两个独立的存储器分别存放操作数和指令或采用指令预取技术
数据相关
指令重叠操作可能改变对操作数的读写访问顺序
采用后推法或定向技术
控制相关
遇到转移指令
流水线性能(P353)
吞吐率
流水线在连续流动达到稳定状态后单位时间内流水线所完成指令或输出结果的数量
加速比
指m段流水线的速度与等功能的非流水线的速度之比
效率
流水线各段处于工作时间的时空区与流水线中各段总的时空区之比
流水线多发技术
超标量
超流水线
超长指令字
中断系统(P358)
概述
引起中断的因素
人为设置
程序性事故
硬件故障
I/O请求
外部事件
分类
不可屏蔽
CPU不能禁止响应,如电源漏电
可屏蔽
CPU可根据该中断源是否被屏蔽来确定是否给予响应
中断系统解决的问题
中断源如何向CPU提出中断请求
判优逻辑
如何响应
如何保护现场
如何转入中断服务程序的入口地址
如何恢复现场,回到间断处
如何处理中断嵌套
中断请求标记和中断判优逻辑
中断请求标记
中断请求标记触发器INTR
判断是哪个中断源提出请求,通常集中设在CPU的寄存器里
中断判优逻辑
硬件
链式排队器
CPU内的排队器
软件
中断服务程序入口地址的寻找
硬件向量法
利用硬件产生向量地址,再由向量地址找到中断服务程序的入口地址
中断向量地址形成部件
软件查询法
中断响应
响应中断的条件
允许中断触发器EINT=1
有中断请求INTR=1
响应中断的时间
在CPU的执行周期结束时刻同一向所有中断源发中断查询信号
中断隐指令
保护程序断点
将当前程序计数器PC的内容保存到存储器中或堆栈中
寻找中断服务程序的入口地址
关中断
中断标记触发器INT=1后,允许中断触发器EINT置为0
保护现场和恢复现场
保护程序断点和CPU内部各寄存器的内容的现场
中断返回前,将寄存器的内容恢复到中断处理前的状态
由中断服务程序完成
中断屏蔽技术
多重中断
中断嵌套
实现条件
提前设置开中断指令
CPU若想再次响应中断请求,必须由中断服务程序开中断
优先级别高的中断源有权中断优先级别低的中断源
采用屏蔽技术
屏蔽技术
屏蔽触发器和屏蔽字
屏蔽触发器MASK
屏蔽寄存器中存有屏蔽字,与中断源的优先级一一对应
屏蔽技术可改变优先级
通过改变屏蔽字可改变CPU处理中断的次序
多重中断的断点保护
断点保存在堆栈中或特定的存储单元中
控制单元
微操作命令分析
控制单元功能
发出各种微操作命令即控制信号
阶段
1. 取指周期
1. 现行指令地址送至存储器地址寄存器
PC -> MAR
2. 向主存发送读命令
1 -> R
3. 将MAR(通过地址总线)所指的主存单元中的内容(有效地址)经数据总线读至MDR
M(MAR) -> MDR
4. 将MDR的内容送至IR
MDR -> IR
5. 将指令的操作码送至CU译码
OP(IR) -> CU
6. 形成下一条指令的地址
(PC)+1 -> PC
2. 间址周期
1. 将指令的地址码(形式地址)送至存储器地址寄存器
Ad(IR) -> MAR
2. 向主存发送读命令
1 -> R
3. 将MAR(通过地址总线)所指的主存单元的内容(有效地址)经数据总线读至MDR中
M(MAR) -> MDR
4. (将有效地址送至指令寄存器的地址字段)
MDR -> Ad(IR)
3. 执行周期
非访存指令
清除累加器指令CLA
0 -> ACC
累加器取反指令COM
算术右移一位指令SHR
L(ACC) -> R(ACC),符号位不变
循环左移一位指令CSL
R(ACC) -> L(ACC),符号位循环
停机指令STP
0 -> G
访存指令
加法指令 ADD X
1. 将指令地址码部分送至存储器地址寄存器
Ad(IR) -> MAR
2. 向主存发读命令
1 -> R
3. 将MAR所指的主存单元中的内容经数据总线读至MDR中
M(MAR) -> MDR
4. 给ALU发送加命令,将ACC的内容和MDR的内容相加,结果存于ACC
(ACC) + (MDR) -> ACC
存数指令 STA X
1. 将指令地址码部分送至存储器地址寄存器
Ad(IR) -> MAR
2. 向主存发写命令
1 -> W
3. 将累加器的内容送至MDR
ACC -> MDR
4. 将MDR的内容写入到MAR所指的主存单元中
MDR -> M(MAR)
取数指令 LDA X
1. 将指令地址码部分送至存储器地址寄存器
Ad(IR) -> MAR
2. 向主存发读命令
1 -> R
3. 将MAR所指的主存单元中的内容经数据总线读至MDR中
M(MAR) -> MDR
4. 将MDR的内容送至ACC
MDR -> ACC
转移类指令
无条件转移指令 JMP X
将指令的地址码部分送至PC
Ad(IR) -> PC
条件转移(负则转)指令 BAN X
根据上一条指令运行的结果决定下一条指令的地址,若结果为负则指令的地址码送至PC
A_0 · Ad(IR) + A_0' · (PC) -> PC
4. 中断周期
1. 将特定地址0(假定的程序断点)送至存储器地址寄存器
0 -> MAR
2. 向主存发写命令
1 -> W
3. 将PC的内容(程序断点)送至MDR
PC -> MDR
4. 将MDR的内容通过数据总线写入到MAR所指的主存单元中
MDR -> M(MAR)
5. 将向量地址形成部件的输出送至PC,为下一条指令的取指周期做准备
向量地址 -> PC
6. 关中断,将允许中断触发器清零
0 -> EINT
控制单元的功能
外特性
输入信号
时钟
使控制单元按照一定的先后顺序,一定的节奏发出各个控制信号
指令寄存器
指令的操作码字段是控制单元的输入信号
标志
控制单元有时需依赖CPU所处的状态产生控制信号,故标志也是控制单元的输入信号
来自控制总线的控制信号
如中断请求,DMA请求等
输出信号
CPU内的控制信号
CPU内的寄存器之间的传送和控制ALU实现不同的操作
送至控制总线的信号
命令主存或I/O读写,中断响应等
举例(P380)
多级时序系统
机器周期
指令执行过程中的一个基准时间,在这个基准时间内所有指令的操作都能结束
时钟周期(节拍)
一个机器周期包含若干个微操作,可用时钟信号来控制产生一个微操作命令
时钟信号的频率即为CPU主频
是控制计算机操作的最小时间单位
时序控制方式
同步控制方式
定长机器周期
不定长机器周期
中央控制和局部控制相结合
异步控制方式
专门的应答线路,等待回答后再进行新的微操作
联合控制方式
同步和异步相结合
人工控制方式
控制单元的设计
组合逻辑设计
组合逻辑控制单元框图(P395)
微操作的节拍安排
注意微操作的先后顺序
凡是被控制对象不同的微操作,若能在一个节拍内执行,应尽可能安排在同一个节拍内,以节省时间
如果有些微操作所占时间不长,应该将它们安排在一个节拍内完成,并且允许它们由先后次序
设计步骤
1. 列出微操作命令的操作时间表
2. 写出微操作命令的最简逻辑表达式
3. 画出微操作命令的逻辑图
微程序设计
思想
将机器指令编成微程序,每个微程序包含若干条微指令。将微程序存到一个控制存储器(ROM)中,用寻找机器指令的方法来寻找每个微程序的微指令,每执行一条微指令,也就相应地完成了一条机器指令的全部操作。
工作过程
取值阶段
1. 将取指周期微程序首地址M -> CMAR
2. 取微指令,将对应控存M地址单元中的第一条微指令读到控存数据寄存器中,CM(CMAR) -> CMDR
3. 产生微操作命令,第一条微指令的操作控制字段发出控制信号
4. 形成下一条微指令的地址,微指令的顺序控制字段指出下一条微指令的地址,Ad(CMDR) -> CMAR
5. 以此类推,直到取出取指周期最后一条微指令
执行阶段
1. 取数指令微程序首地址的形成,当取数指令存入IR后,其操作码OP(IR)直接送到微地址形成部件,输出取数指令微程序的首地址P,OP(IR) -> 微地址形成部件 -> CMAR
2. 取微指令,将对应控存P地址单元的微指令读到CMDR中,CM(CMAR) -> CMDR
3. 产生微操作命令,微指令的操作控制字段发出控制信号
4. 形成下一条微指令的地址,微指令的顺序控制字段指出下一条微指令的地址,Ad(CMDR) -> CMAR
5. 以此类推,直到取出执行周期最后一条微指令
编码方式
直接编码
字段直接编码
字段间接编码
混合编码
序列地址形成
微指令格式
水平型
垂直型
静态和动态
毫微程序
串行和并行