408考研计算机组成原理思维导图
易混淆概念
字长
指令字长:一条指令的长度(可变)
机器字长:CPU一次整数运算能够处理的二进制数据的位数(ALU位数)
存储字长:一个存储单元中的二进制代码位数(MDR位数)(主存最小单位)
指令
关系
指令~一个微程序
微程序~多个微指令
微指令~一个或几个微命令
微命令,微操作
微操作:强调做什么
微命令:强调完成这个操作需要发出什么控制信号
两个概念相等,一个微命令对应一个微操作
微指令,微周期
微指令:可以包含多个微操作
一个指令对应一个微程序
第一章、计算机系统概述
1.1 计算机发展历程
硬件发展
电子管—晶体管—中小规模集成电路—大规模集成电路
摩尔定律:价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月增加一倍,性能也增加一倍
软件发展
计算机分类:
模拟计算机,数字计算机
数字计算机分为专用计算机,通用计算机
通用计算机分为:巨型机,大型机,中型机,小型机,微型机,单片机
1.2 计算机系统层次结构
计算机系统
硬件:有形的物理设备
软件:在硬件上运行的程序和相关的数据及文档
软硬件在逻辑上等效,但不等价
#错题感悟
硬件组成
早期冯诺依曼机:(运算器,存储器,控制器),(输入设备,输出设备)
基本工作方式:控制流驱动
按地址访问,顺序执行指令
现代计算机:CPU=运算器+控制器,其他不变
存储器
主存储器
工作方式:按存储单元的地址进行存取
构成:
MAR:地址寄存器,用于寻址,地址位数等于存储单元个数(memory address register)
MDR:数据寄存器,用于交换数据,位数和存储字长相等(memory data register)
MAR,MDR对程序员透明
【注】寄存器对汇编程序不透明
#错题感悟
相联存储器
工作方式:按内容访问
(待补充)
运算器
作用:进行算数和逻辑运算
构成:ALU(核心);状态(标志)寄存器,变址寄存器等通用寄存器;数据总线(注意);不含地址寄存器(注意)
控制器
作用:指挥其他部件工作
构成:程序计数器PC,指令寄存器IR,控制单元CU
【注】IR对程序员透明
软件分类
系统软件和应用软件
机器语言,汇编语言,高级语言
高级通过编译程序变成汇编或机器,汇编通过汇编程序变成机器
硬件只执行机器语言
注:软硬件可以等效,但不会等价
#错题感悟
1.3 计算机的性能指标
概念:
机器字长:计算机进行一次整数运算所能处理的二进制的位数,通常为8的整数倍
数据通路带宽(
数据字长
):总线一次能并行传送的信息的位数
主存容量:主存储器所能存储信息的最大容量
运算速度:每秒能执行的
指令
数
吞吐量:系统在单位时间处理请求的数量(
评价计算机系统性能的综合参数
)
响应时间:用户向计算机发送一个请求,到系统对该请求做出相应并获得结果所用的时间
CPI:执行一条指令所需时间周期数 clock cycle per instruction
CPU执行时间:运行一个程序所花费的时间
MIPS:每秒执行多少百万条指令
MFLOPS:每秒进行多少百万次浮点运算
注:
CPU速度提高50%,耗费的时间不是变为原来的50%,不要弄混
注意:
影响程序执行时间本质:运算速度,数据交换速度。
指令寄存器对用户完全透明
CPI与时钟频率无关
总结:
计算机的中心元件
以前:
运算器
为中心,其他部件通过运算器完成信息传递
现在:
存储器
为中心!
翻译程序,汇编程序,编译程序,解释程序的区别
透明性
IR,MAR,MDR对各类程序员都是透明的
机器字长,指令字长,存储字长
机器:计算机能直接处理的二进制数据的位数,决定了计算机处理的精度
指令:一个指令字包含的二进制位数
存储:存储单元包含的二进制位数
第二章:数据的表示和运算
2.1 数制和编码
二进制编码
只有两种状态,简单易实现
制造成本低
进位计数法
数制转换
二到十,十到二:硬算
二八十六:都化为二进制,再转
真值和机器数
真值:机器数代表的实际值
机器数:把真值的符号数字化,用计算机存储
BCD码:用二进制表示十进制数字
ASCII码
0-31:控制字符;32:空格;127:DEL
32-126:可印刷字符
汉字编码
区位码:矩阵形式,由4位十进制数构成,前2位区码,后2位位码
国标码:区位码(16进制)+2020H
原因:区分控制字符,防止冲突
汉字内码:国标码(16进制)+8080H
原因:区分ASCII码
校验码:自动纠错
概念
码距:任意两个合法码字之间最少变化的二进制位数
码距不小于2的数据校验码,开始有检错能力。码距越大,检错能力越强。
检错能力大于纠错能力
奇偶校验
原理:在原码上添加一位(1 or 0),添加后使1的个数为奇数就是奇校验,偶数就是偶校验。
缺点:只能检测奇数位错误
检错能力:1位检错,不能纠错
海明校验
原理:多重奇偶校验;分组偶校验(难点)
检错纠错能力:2位检错,1位纠错
CRC循环冗余校验
原理:在K位二进制数后添加R位校验码。
传输双方事先规定
校验数
(就是除数)(题目里给的是生成多项式)。对传输数据做模2除法得到余数(即为校验码)拼接在尾巴上,接收方检验余数是否相等
检错能力
余数的位数能表示的范围若不大于信息位的位数(尾巴小)则可以唯一确定出错位置。
可以纠错,但一般只用来检错(计网)
2.2 定点数的表示和运算
定点数概念,分类
概念:小数点位置固定
分类依据:看二进制数有无符号位
无符号数
有符号数
机器数
定点小数
纯小数,小数点隐含在符号位之后,有效数值部分最高位之前
定点整数
纯整数,小数点在有效数值部分最低位之后
四个码:原反补移
原码:带符号二进制数
反码:原码除符号位按位取反
补码:原码除符号位按位取反加1
0唯一
用来计算。原码减法可用补码加法代替
表示范围:-2^n ~ +2^n-1
【注意】
正数补码=原码!!
补码比大小全部转换成原码,别偷懒
移码:补码符号位取反
0唯一
数字有唯一的大小次序关系(移码大真值就大,反之同理),可用来排序
移码只能表示整数
【注意】移码问题转换成补码求解
定点数运算
移位运算
算数移位:符号位保持不变,移动数值位
注:反码补1;补码算术移位高位补1,低位补0(这里做题犯过错,涉及补码值注意🔴)
逻辑移位:将操作数视为无符号数,全移
注:不管左移还是右移,都补0
循环移位
带进位标志位CF(大循环)
CF参与循环
不带CF(小循环)
CF存储最新移出的数字的副本
加减运算
注:B的补码转为-B的补码:带符号位取反加1
溢出问题
一位符号位溢出判断:参与操作的两个数符号相同,结果符号不同,则溢出
双符号位溢出判断:符号位两个数字不同,则溢出
乘法运算(难)
原码一位乘法
被乘数,乘数取绝对值参与运算。符号位异或直接求出结果
从乘数最低位开始:若为1,部分积=部分积+乘数;若为0,部分积=部分积+0;
右移一位,重复判断n次
理解:普通的乘法计算过程
补码一位乘法
放弃,遇到题目直接转换成原码算就完事了,小题不怕,大题不考
除法运算(难)
源码除法运算
不恢复余数法
恢复余数法
补码除法运算
加减交替法
C语言中整数类型和类型转换
有符号数--无符号数
强制类型转换:不改变任何二进制数值,只改变解释数值的方式
不同字长整数转换
长-->短:直接切
短-->长:按位填写,缺位补符号位值(使数值相等)
数据存储和排列
大端方式和小端方式
big endian:按从最高有效字节到最低有效字节顺序存储数据【说人话:从左往右(大部分情况下)越来越大,顺着走】
little endian:按从最低有效字节到最高有效字节顺序存储数据【说人话:从左往右(大部分情况下)越来越小,逆着走】
边界对齐
目的:一次访存取出,提高指令效率
代价:存储空间的浪费
2.3 浮点数表示和运算
表示
概念
阶符:阶码正负性
阶码:指数部分
数符:数字的符号
尾数:数字部分
规格化浮点数
说人话:调整尾数和阶码,保证尾数最高位是有效值(根本逻辑,规格化的目的就是为了保证最高位是有效位,根据此可以推出原码补码规格化后的格式)
为什么:提高运算精度,充分利用尾数有效位
左归:
尾数左边无效位太多,往左移
阶码减少,尾数增大
右归
尾数超出表示范围(溢出)
阶码增加,尾数减小
原码规格化:
正数(尾数格式):0.1XXX
负数:1.1XXX
补码规格化
正数:0.1XXX
负数:1.0XXX
技巧:对于原码编码的尾数,只要看尾数第一位是否为1;对于补码编码的尾数,只要看符号位和尾数最高位是否相反
IEEE754标准
1位数符,阶码用移码表示,尾数用原码表示
短浮点数阶码偏置值2^8-1 = 127(计算时阶数加127就是阶码值)
尾数默认小数点前有1(即1.xxxx),尾数默认保存的是纯小数
运算
加减运算
对阶
两个数小数点对齐
小阶向大阶看齐(即缩小尾数放大阶码,尾数右移)(原因:左移溢出,计算机表示不了)
尾数求和
规格化
舍入
溢出判断
注:尾数运算结果溢出并不代表浮点运算结果溢出,右归后根据阶码再来判断是否溢出
C语言中浮点数类型
int转float:不会溢出,但int可以保留32位,float保留24位,所以可能会有舍入(坑)
int,float转double:精确
double转float:可能溢出,可能舍入
double,float转int:int无小数部分,可能会被截断;可能会溢出
2.4 算术逻辑单元ALU
作用:加减乘除四则运算,与或非异逻辑运算,移位,求补等
加法器:
一位全加器
两个加数,一个进位,共三个输入
一个和,一个进位,共两个输出
串行加法器
只有一个全加器,输出后再送回给自己
并行加法器
多个全加器组成
串行进位加法器:低位运算,进位送给高位,逐个进行
并行进位加法器:
原理:进位可由低位的所有加数逻辑求得,因此各级进位可同时生成。但当一次参与运算的位数过多时,逻辑电路会变得很复杂,成本陡增
单级先行进位方式:组内并行,组间串行
多级先行进位方式:组内并行,组间并行
ALU的功能和结构(略)
第三章:存储系统
存储器概述
分类
按层次:cache,主存,辅存
按存储介质:磁表面存储器,磁心存储器,半导体存储器(MOS型存储器,双极型存储器),光存储器
按存取方式:
cache
概念:高速缓存,提高读取访问速度,满足程序的局部性原理
基本问题
区分cache和主存的数据块对应关系——cache和主存的映射方式
cache满了——替换策略
cache和主存的数据同步——cache写策略
cache和主存的映射方式(cache大小:2^n块)
直接映射
主存对cache大小取余,每个块只能放到固定位置
缺点:灵活性差,利用率低
cache内标记字段保存的是主存中对应块号 - 末尾n位(n位刚好对应cache的行号)
全相联
想放哪放哪
cache内标记字段保存的是
主存中对应块的完整块号
组相联
组间直接映射,组内全相联
cache内标记字段保存的是主存中对应块号 - 末尾m位(m位刚好对应cache的组号)(组号就是直接映射的行,理解就行)
k路组相联:k个cache行为一组
替换策略
随机替换(RAND)
随机选一个替换
先进先出(FIFO)
抖动:频繁的换入换出
近期最少使用(LRU)
记录cache块
多久没有被访问过
【注意】命中时,命中行计数器清零,比其低的计数器+1,其余不变(这样计数器最多只需要n位来表示,且cache装满后所有计数器的值一定不重复)
效率最高,最优秀
最近不经常使用(LFU)
记录cache块
被访问过几次
不遵守局部性原理
cache写策略
写回法
块被换出时写回内存
用
脏位
记录块内容是否改动
有数据不一致的隐患
全写法(写直通法)
用
写缓冲
暂存改动,控制电路同步
适合写操作不频繁的情况
写分配法(写不命中时)
把内存块调入cache,搭配写回法使用
非写分配法(写不命中时)
搭配全写法
细节问题
cache块都有一个标记字段,标记该块是否存有内存副本
虚拟存储器
虚地址,实地址
页表:物理逻辑地址转换
快表(类似cache)
快表放在cache内
未命中时把慢表内容调入快表
加快地址变换的速度
第四章:指令
指令概念,分类
概念:
地址形式分类
零地址
不需要操作数,或操作数隐含
一地址
只需要一个操作数
取指令,取数,写回,三次访存
需要两个操作数,另一个数由
ACC(累加寄存器)
隐式给出
取指令,取数,
写回ACC(不访存)
,共两次访存
二地址
两个操作数,结果默认存到操作数1,四次访存
三地址
两个操作数,结果显式给出,四次访存
四地址
三地址的操作,第四个地址指明下一次要执行的程序的地址
0123默认下一次执行的指令地址由PC自动+1给出
指令字长分类
定长
变长
操作码长度分类
定长操作码
可变长操作码
操作类型分类
数据传送
算术逻辑操作
移位操作
转移操作
拓展操作码
概念
指令长度固定,操作数位数少,操作码位就多;操作数位数多,操作码位数就少
方法
类似Huffman Tree的思想
指令寻址
指令寻址
顺序寻址:PC+1
(1为当前指令字长)
跳跃寻址:指令直接更改PC内容
数据寻址(重要)
概念:指明操作数的真实物理地址(对相对地址的解释方式)
构成:把 操作数 部分分为【寻址特征】+【形式地址】
分类
1.直接寻址
指令内地址 = 真实地址
取指,取数,两次访存
缺点:不灵活,寻址范围不大
2.间接寻址
指令内地址-->主存地址-->真实地址
取指,取间接地址,取数,三次访存
扩大了寻址范围
多次访存,效率低
3.寄存器寻址
指令内地址-->寄存器地址
取指,取数(不访存),一次访存
速度快
寻址能力有限
4.寄存器间接寻址
指令内地址-->寄存器地址-->主存真实地址
速度更快
5.隐含寻址
6.立即寻址
操作数就在指令中
寻址特征:#
数字表示范围有限
7.偏移寻址
基址寻址
基址寄存器:保存当前程序的起始地址
基地址由操作系统处理,不关程序员的事
优点:可以扩大寻址范围,用户不用考虑程序在主存的位置,有利于
多道程序设计,编制浮动程序
缺点:偏移量(指令内地址)较短,导致程序较短
变址寻址
形式地址(指令内的地址)不变——作为基地址
变址寄存器内容可以由用户改变——作为偏移量
优点:偏移量位数足以表达整个循环空间,适合
编制循环程序,处理数组
相对寻址
程序计数器PC加上形式地址A,提供下一条指令地址(A可正可负)
【注意】PC会自动+1,故A是相对
下一条
指令的偏移量
方便代码在程序内部的挪动
10.堆栈寻址
CISC,RISC
CISC:复杂指令集系统
RISC:精简指令集系统
区别
第五章:中央处理器
CPU结构
运算器
功能:接收控制器命令,对数据进行处理
构成
算数逻辑单元ALU
算术逻辑运算
暂存寄存器
用户透明
累加寄存器ACC
通用寄存器
程序状态字寄存器PSW
保存各种flag位
表征
程序和机器的运行状态
移位器
计数器
控制器
功能:控制整个计算机运行,执行指令
构成:
程序计数器PC
每次执行后自增
一个指令的长度(即PC+“1”)
PC执行指令后都要判断是否正确执行
,否则跳转回出错位置
指令寄存器IR
IR给微操作信号发生器传送指令
控制单元CU
指令译码器
时序系统
微操作信号发生器
包含指令译码器
存储器地址寄存器MAR
存储器数据寄存器MDR
控制部件和执行部件
计算机可以划分为两个部分
控制部件:控制器
执行部件:运算器,存储器,外围设备等
指令执行过程
指令字长
一般取存储字长的整数倍(几倍就是几次访存取出)
和机器字长没有关系
指令周期
概念
CPU从主存取出并执行一条指令的时间
不同指令的指令周期不同,一个指令周期有多个
时钟周期(CPU操作的最基本单位)
分类
取指周期(触发器代号:FE,fetch)
取指令代码,放入IR
PC
提供主存地址
【注】不同长度指令取指操作不同
间址周期(IND,indirect)
取操作数有效
地址
IR
提供主存地址(因为上一步已经将要执行的指令取到IR中了)
执行周期(EX,execute)
各不相同
中断周期(理解)(INT,interrupt)
处理中断请求(SP代表栈顶指针)
步骤
后退一个栈顶指针SP
把PC内容存入SP指示的地址内(保存断点)
CU给PC提供终端服务子程序入口
指令执行方案
单指令周期
全部向最长的看齐
多指令周期
执行周期各不相同
流水线
每tik启动一个新指令,尽量错开
数据通路
概念:数据在功能部件间传颂的路径
分类
CPU内部总线
单总线,三总线
优点:简单,便宜
缺点:冲突多,效率低
专用数据通路
优点:速度快,基本无冲突
缺点:成本高,复杂
【注】内部总线是指同一部件,系统总线指同一台计算机系统的各个部件
传送方式
寄存器间数据传送
传送的两个寄存器开关控制电路即可
主存&CPU
借助MAR,MDR发送地址和接受数据,所有的控制信号都由CU发出
执行算数或逻辑运算
【注】单总线CPU计算
对于单总线CPU,需要两个数的算数运算,无法同时传送两个数字。
要用一个寄存器暂时保存,该操作数一直在ALU的一端就绪。
控制器
概念
功能:
从主存取出一条指令,并指出下一条指令的位置
对指令进行译码或测试,产生相应的操作控制信号,以启动规定的动作
指挥并控制CPU、主存、IO设备的数据流动方向
【注】
微操作可以并行,一个节拍内可以完成多个相容的微操作
同样的微操作也会被重复使用
不同的指令需要的节拍数不同(通常用
访存所需节拍数作为参考
)
若所需节拍数少,则将操作安排在机器周期末尾几个节拍上
控制器分类
硬布线控制器
微程序控制器
组成
控制存储器CM(重要)
CMDR(μIR):类似IR,存放从CM中取出的微指令
微地址寄存器CMAR(μPC):类似PC,接受为地址形成部件送来的微地址
微地址形成部件:产生初始微地址和后继微地址,保证微地址的连续执行
地址译码
【注】
取指周期对所有微程序来说都相同,因此如果某个指令系统中有n个机器指令,则CM中微程序的个数至少是n+1个
取值,间址,中断的微指令序列通常是公用的,执行周期各不相同
【易混淆概念】微控制器和控制器的元件
程序//微程序
指令//微指令
主存储器//控制器存储器CM:CM是一块ROM
MAR//CMAR
MDR//CMDR
PC//μPC:指明接下来要执行的指令
IR//μIR:暂存当前执行的指令
微命令
格式(水平,竖直)
水平型
微程序短,微命令长,便于执行
竖直型
微程序长,微命令短,便于编写
编码方式(直接,分字段)
直接编码(直接控制)※
一位对应一个微操作命令
指令字太长
设计简单,执行快速
字段直接编码※
将控制字段分成若干段,每段分别译码
互斥的微命令在同一段,相容的微命令在不同段
字段间接编码
微指令地址形成方式
断定方式※
微指令的下地址字段给出
根据机器指令的操作码形成
增量计数法※
(CMAR)+1,类似(PC)+1
分支转移
指令流水
前提:把指令执行分成几个阶段,分别使用不同的部件处理。
执行方式
顺序
一次重叠:指令a的最后一步和指令a+1的第一步同时执行
二次重叠:指令a的最后两步和指令a+1的前两步同时执行
性能指标
吞吐率:单位时间内流水线完成的任务数量
加速比:不使用流水线的耗时/ 使用流水线的耗时
效率:部件有效时间/ 总时间
影响流水线执行的因素
结构相关
资源冲突
概念:多条指令在同一时刻争用同一资源
解决办法
等待一周期
资源重复配置(比如多给一个存储器)
数据相关※
数据冲突
概念:要求使用同一块存储空间上数据时冲突
解决办法
1、忙等:硬件阻塞(硬件),插入空指令nop(软件)
2、数据旁路:将产生后续指令需要的操作数的部件直接和后续指令的输入端连接
3、编译优化:改变指令执行顺序
控制相关
概念:确定程序执行位置时出错
解决办法
转移指令分支预测:简单预测,动态预测
预取转移成功和不成功两个控制流方向上的目标指令
提前形成条件码
提高猜测准确率
流水线分类
部件功能级,
单功能,多功能
静态,动态
线性,非线性
有无反馈电路
多发技术
【注】不能改变指令的执行顺序
超标量技术(空分复用)
每个时钟周期内可以并发运行多条指令
超流水技术(时分复用)
每个时钟周期再分割
一个时钟周期内
多次使用部件
超长指令字
编译程序挖掘出指令潜在的并行性
第六章:总线
基本概念
定义
一组能为多个部件分时共享公共信息的传送线路
总线内有多个数据线,但整体抽象成 “一根总线”
分时:同一时刻只允许一个部件向总线发送信息
共享:总线上可以挂多个部件,多个部件可同时从总线上接收相同的信息
猝发传送
在一个总线周期内传输存储地址连续的多个数据字的总线传送方式
说人话:送出一个地址,收到多个地址连续的数据
提高访存效率
分类
按数据传输格式
串行总线
优点:只需要一条传输线,成本低,远距离传输,节省布线空间
缺点:相对慢,串并行转换开销
并行总线
优点:时序逻辑简单,
实现较容易
缺点:占空间,远距离传输成本高,
易产生码间串扰(速度反而较慢)
按连接的部件不同※
重点
传输内容
方向
根数
片内总线
系统总线
数据(data bus DB)
总线宽度:参考机器字长、存储字长
双向传递
【注】区分数据通路和数据总线
数据同路表示数据流经的路径
数据总线是承载的媒介
地址(AB)
宽度:主存地址空间大小
单向
控制(CB)
传输控制命令,反馈信号
通信总线
连接不同计算机
系统总线的结构分类
单总线
优点:简单
缺点:浪费
双总线
引入通道
优点:解放效率
缺点:加硬件
三总线
对高速外设设置DMA总线,提高访存效率,提高高速外设性能,更快响应
缺点:整体工作效率低(因为同一时刻三个总线只能有一个工作)
性能指标
传输周期(总线周期)
一次总线操作的时间
时钟周期
就是机器的时钟周期
工作频率
总线上各种操作的频率,总线周期的倒数
时钟频率
总线时钟频率的倒数
宽度
总线可以并行传输的数据位数
带宽
总线上可传输数据的位数
总线复用
常把地址线和数据线复用
信号线数
地址总线,数据总线,控制总线的线数和
总线仲裁
概念,背景
背景:多个设备都要使用总线,同时竞争总线控制权
解决办法:总线仲裁,选择一个设备优先获得总线控制权
集中仲裁方式
流程
主设备发出请求
总线控制器判优
传输
链式查询
总线控制器检测到请求信号,则依次询问设备。若有设备确认则分配。
离总线控制部件近,优先级高
优点:优先级固定;简单;易扩充(3条线)
缺点:对硬件电路故障敏感;优先级无法改变。
计数器定时查询
当地址线上的计数值和请求使用总线设备的地址一致时,该设备获得总线控制权
可以从任意位置开始
优点:对电路故障不那么敏感;优先级更灵活
缺点:增加了控制线数,控制也更复杂(log2n+2 条线)
为什么是log2n:设备地址线
独立请求方式
排队器决定分配给谁
每个设备都有一个请求线,一个允许线;全部设备共用一根总线忙线
优点:响应快,优先级灵活
缺点:控制线多(2n+1),复杂
分布仲裁方式
根据仲裁号决定优先级
过程
放仲裁号到公共池
每个人判断有无比自己优先级更高的
留一个
总线操作和定时
总线传输的阶段
申请分配
寻址
传输
结束
同步定时
用一个统一的时钟信号协调双方收发
一个总线周期进行一次完整的数据传送。一个周期结束另一个即开始
优点:速度快;易实现
缺点:主从设备强制性同步,速度不匹配;无法检验数据有效性
适用于总线长度短;各部件存取时间接近的系统
异步定时
传输双方通过“握手”实现定时控制
优点:周期长度可变,适合速度差较大的设备
缺点:复杂,慢
分类
不互锁:发出信号后过一段时间自动撤消
半互锁:主设备发出请求后,必须等收到应答信号再撤销
全互锁:双方必须收到应答信号后再撤销
半同步通信
统一时钟的基础上,增加一个wait信号
适合速度差异大的设备交互
分离式通信
当慢速设备在准备数据时,占用浪费总线资源
将一个传输周期分为两个
提高总线利用率
总线标准
分类
系统总线
局部总线
设备总线,通信总线
第七章:IO系统
三种IO方式
程序查询:忙等
流程
初始化,启动外设
取外设状态,如果外设未准备就绪则一直查询(踏步等待)
准备就绪后传送一次数据,修改传送参数
优点:接口设计简单,设备量少
缺点:效率极低
独占查询和定时查询
独占:CPU 100%的时间都在查询IO状态,完全串行
定时:在保证数据
不丢失
的前提下,每隔一段时间查询一次,两次查询期间可以执行其他操作
程序中断:利用中断系统
中断系统
概念
程序正常执行流中转而执行另一段程序
中断处理流程
中断请求
中断响应
可以不响应,即关中断
中断隐指令
CPU响应中断时,由硬件自动处理的操作
内容:关中断,保存断点,引出中断服务程序
引出中断服务程序
软件查询
硬件向量:两层指针嵌套
中断判优
中断处理
中断屏蔽
给中断设置优先级
中断屏蔽字:表示中断优先次序的二进制代码
比自己优先级高的(不屏蔽的):0
比自己低或等同的(
包括自己!
)(要屏蔽的):1
程序中断方式
DMA:完成一整块主存的读写后再中断
流程
预处理:指定外设地址、主存地址,传送数据个数;启动IO设备
数据传送:数据写入寄存器,由总线传输入主存
区分:DMA请求,DMA中断请求
【注意】提出总线使用权不走程序中断,直接给出总线请求
请求:请求使用总线资源
中断请求:告诉CPU已经完成
总线分配策略
如果使用三总线结构,二者同时访存会有冲突
停止CPU访问主存
完全停止CPU工作,简单粗暴
DMA与CPU交替访存
硬件逻辑复杂,对主存利用不充分
周期挪用
当CPU不访存时:直接访存
当CPU正在访存:DMA等待释放
同时请求访存:IO访存优先
对比中断方式
DMA用硬件控制,中断响应频率低,适合高速设备,优先级更高,只能传送数据
程序中断方式需要在一条指令执行结束才能得到响应,DMA可以在指令周期内的任意存储周期结束时响应
通道
通道:特殊的CPU(更简单)
通道管理IO接口
IO系统组成
硬件
软件
IO指令
CPU执行的指令,控制IO接口或通道
通道指令
通道执行的指令,与CPU机器指令不同
注意
大题需要针对性做的题目
第二章:CRC循环冗余检验,海明码
以上内容整理于
幕布文档