计算机组成原理复习
第一章 计算机系统概论
1. 冯诺依曼型计算机特点
- 1.计算机由运算器,控制器,存储器,输入和输出设备5部分组成
- 2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制表示。
- 3.指令由操作码和地址码组成
- 4.指令在存储器中按执行顺序存放,由指令计数器(即程序计数器PC)指明要执行的指令所在的储存单元地址,一般按顺序递增,但可按运算结果或外界条件而改变
- 5.机器以运算器为中心,输入输出设备与存储器间的数据传送都通过运算器
区别以运算器为中心的计算机还是存储器的方法
- 看输入设备能否直接与存储器相连,是的话就是以存储器为中心
- 早期确实是运算器为中心,现在是存储器为中心
2. 计算机系统
- 硬件
- 结构
- 主机(包括cpu和主存)
- cpu
- ALU运算器
- 控制器
- CU控制单元(控制单元,分析指令,给出控制信号)
- IR指令寄存器(指令寄存器,存放当前执行的指令)
- PC程序计数器(自动加1)
- 存储器
- 主存
- 存储体(货架)
- MAR(地址寄存器)
- MDR(数据存储器,从MAR寄存器地址对应的位置拿到的或者写入)
- 辅存(辅存属于I/O设备)
- 主存
- cpu
- I/O
- 输入设备
- 输出设备
- 主机(包括cpu和主存)
- 主要技术指标
- 机器字长
- CPU一次能处理的数据位数
- 存储容量
- 存储容量=存储单元个数×存储字长
- 运算速度
- 单位时间执行指令的平均条数,MIPS
- 机器字长
- 结构
- 软件
- 系统软件
- 用来管理整个计算机系统
- 语言处理程序
- 操作系统
- 服务性程序
- 数据库管理系统
- 网络软件
- 用来管理整个计算机系统
- 应用软件
- 按任务需要编制成的各种程序
- 系统软件
3. 计算机系统的工作原理
-
高级语言(用编译程序翻译成汇编语言程序)->汇编语言(用汇编程序翻译成机器语言程序)->操作系统机器(向上提供广义指令,系统调用)->机器语言(执行二进制机器指令)->微指令系统(由硬件执行微指令)
-
高级语言:C/C++... 通过编译器翻译成汇编语言,(插一句,如果你的程序用的库函数,要经过链接的操作)汇编语言通过汇编器翻译成机器语言,即二进制代码,机器语言程序才是大家熟悉的可执行的程序。
-
还有一部分高级语言使用的是解释器,把高级语言代码解释为机器语言程序。脚本类python、js。
-
编译程序一次全部翻译,生成exe(机器语言)不用编译,执行exe即可。解释程序每一次都要翻译。编译型语言效率高一点。
第二章 数据的表示和运算
1. 数制与编码
1)进位计数制
2)BCD码
-
BCD码:四次二进制表示一位十进制(每个二进制的权重不同)
-
8421码
- 有映射关系
- 权值从高到低为8、4、2、1
- 算术运算时,需对运算结果进行修正。 方法:如果小于、等于(1001)2,[在映射表当中]不需要修正;否则加6修正
-
余三码:在8421码的基础上,把每个编码都加上0011(新的映射方案)
- 当两个余三码想加不产生进位时,应从结果中减去0011;产生进位时,应将进位信号送入高位,本位加0011
-
2421码:权值为2421
3)原码、反码、补码、移码
-
原码表示法(最高位表示符号位)
-
小数
-
正数:x
x=0.1101
x原=0.1101000
-
负数:1-x=1+|x|
x=-0.1101
x原=1.1101000
-
-
整数
-
正数:x
x=1110
x原=00001110
-
负数:2-|x|
x=-1110
x原=10001110
-
-
-
反码表示法
- 除了符号位取反即可
-
补码表示法(负数的补码其实就是从右往左找到第一个1,然后把这个1的左侧除了符号位全部取反)-
-
小数
-
正数:x
x=0.1001
x补=0.1001000
-
负数:2-|x|
x=-0.0110
x原=1.0110000
x反=1.1001111
x补=1.1010000
-
-
整数
-
正数:x
x=1010
x补=00001010
-
负数:2^n+1-|x|
x=-1101
x原=10001101
x反=11110010
x补=11110011
-
-
-
移码表示法(整数)=>补码的符号位取反
-
x移=2^n+x
x=10101
x原=00010101
x补=00010101
x移=10010101
x=-10101
x原=10010101
x补=11101011
x移=01101011
-
4)整数的表示
-
无符号整数:无符号整数省略了一个符号位,能表示的最大数比带符号的整数能表示的大。8位无符号整数能表示的范围是0-255,即2^n-1。
-
有符号整数:补码表示,能表示的范围是-2n-1-2n-1 -1。
11111111——01111111
2. 运算方法和运算电路
1)运算电路
- 感觉老师不会问,懒得看了,数字电路已经忘光了。
2)运算方法
-
移位
-
算术移位
-
算术移位的对象是有符号数,移位的过程当中符号位并不会改变。
码制 添补代码 正数 原码、反码、补码 0 负数 原码 0 负数 补码 左移添0,右移添1 负数 反码 1
-
-
逻辑移位
- 无符号数,添加0即可,高位或者地位直接舍去。
-
循环移位
- 移出的位数又被移入数据当中,是否带进位是要看是否将进位标志位加入循环位移。
-
-
加减
-
原码:不说
-
补码:
-
按照二进制加法规则,逢位进一。
-
符号位和数值位一起参与于是暖,多出来的位直接丢弃。
-
溢出判断办法:两个符号相同的数相加或者两个符号不同的数相减。
-
一位符号位:
V=0,无溢出;V=1,有溢出。
-
两位符号位:
-
-
-
-
乘法
-
原码
- 符号位单独处理
- 数值位取绝对值进行乘法运算
-
补码
-
-
除法
-
原码
-
补码
-
3. 浮点数的表示和运算
- 通常,浮点数表示为
S取0或者1,用来表示浮点数的符号,M是一个二进制定点小数,称为尾数,一般用定点小数原码表示,E是一个二进制定点整数,称为阶码或者指数,用移码表示。R是基数,可以约定为2,4,16。
-
格式
0 1 8 数符 阶码 尾数
第三章 主存储器
1. 存储器的分类
作用分类
* 主存储器
* 辅助存储器(外存)
* 高速缓冲存储器(cache)
可保存性
- 随机存储器RAM:随机存取,可读可写
- 只读存储器ROM:只读不写,断电不会消失
- RAM和ROM都是电脑硬件中的存储器件,但它们有以下不同:
- RAM(随机存取存储器):可以读取和写入数据,用于临时存储正在运行的程序和数据。RAM是易失性存储,当关闭电源时,其中的数据会消失。
- ROM(只读存储器):只能读取数据,不能写入数据,用于存储固定的数据和程序,如系统启动程序。ROM是非易失性存储,即使断电,其中的数据也不会消失。
2.主存和辅存区别
- 存储位置:主存通常是指内存,即计算机中CPU可以直接访问的存储器,而辅存通常是指硬盘或其他外部存储设备。
- 存储性质:主存是随机访问存储器,读写速度非常快,但是容量相对较小;辅存则是顺序访问存储器,读写速度相对较慢,但是容量相对较大。
- 数据保存:主存中保存的数据只能在计算机开机状态下保持,一旦关闭电源,数据就会消失;而辅存中保存的数据可以长期保存,并且可以在需要时读取。
- 访问方式:主存数据可以被CPU直接访问,而辅存数据必须先被读入到主存中才能被CPU访问。
- CPU只能直接访问cache和主存,辅存的数据需要先进入主存才能被CPU处理。
3. 存储器的性能指标
- 主存容量=存储字数*字长(想象一下菜鸟驿站的货架)
- 64×8等等
- 计算机可寻址的最小信息单元是一个存储字
- 主存储器存储单元的总数
- 存取速度
- 数据传输率=数据宽度/存储周期
- 由存储器存取时间和存储周期表示
- 存取时间
- 启动一次存储器操作(读/写)到完成该操作所经历的时间(启动存取到存取完毕)
- 存储周期(存取时间+恢复时间)
- 连续启动两次独立的存储器操作所间隔的最小时间(启动存取一直到下一次存取)
4. 多级存取的意义
cache-主存:解决CPU和主存速度不匹配的问题
主存-辅存:解决存储系统容量问题
由上到下依次为:CPU->寄存器->cache->主存->辅存(磁盘)->磁带/光盘(外存)
有时候外存和辅存其实混为一谈。
cpu只能处理cache和主存,辅存要被操作系统调用进入了主存才能被cpu处理。
5. 主存储器的组成
1)随机存储器(RAM)按存储元件在运行中能否长时间保存信息分为静态存储器和动态存储器
- 静态存储器,利用触发器保存信息,只要不断电,信息就不会丢失(SRAM)
- 电路简图
- MOS静态存储结构图
- 动态存储器,利用MOS电容存储电荷来保存信息,需要不断给电容充电才能使信息来保存信息(DRAM)
- 电路简图
- 16K×1位动态存储器框图
- 再生
- 集中式
- 分散式
- 时间小于或等于2ms
- 行读出再生
2)非易失性半导体存储器
- 只读存储器ROM
- 只读不能写
- 可编程序的只读存储器PROM
- 一次性写入
- 可擦可编程序的只读存储器EPROM
- 可多次写入、读出
- 可电擦可编程序只读存储器E2PROM
- 可多次读出但写入次数有限
- 快擦除读写存储器Flash Memory
- 重复写入、读出
6.主存储器与CPU之间的连接
1) 通过数据总线、控制总线、地址总线与CPU连接
2) 存储器容量扩展
-
位扩展:用多个存储器芯片对字长进行扩充,把数据线连完为止,数据线不能同时用,会冲突。地址总线可以并联。
-
字扩展:增加存储器中字的数量,提高存储器的寻址范围,注意地址要连续。
-
字位扩展,假设一个存储器的容量为M×N位,若使用L×K位存储器芯片,那么,这个存储器共需要(M/L)×(N/K)个存储器芯片
![image-20230515172642633](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230515172642633.png)
3) 一些注意事项
- 合理选择存储芯片:ROM存放系统程序、标准子程序和各类常数;RAM为用户编程考虑。
- 地址线的连接:通常来说,CPU的地址线比存储芯片的地址线要多,用CPU的地址线的低位和存储芯片的地址线连接,cpu地址线的高位是实现片选的(要连接译码器)。
- 数据线的连接:cpu的数据线和存储芯片的数据先必须相等,如果不相等,要进行位扩展。
- 读写控制线:cpu的读写命令线和存储芯片的读写控制线连接。
7. 外部存储器
- 磁盘:磁盘是一种通过磁性记录数据的存储介质,包括硬盘、软盘和磁带等。
- 固态硬盘:固态硬盘(SSD)是一种不含机械部件、利用闪存芯片存储数据的存储设备。相比传统机械硬盘,固态硬盘读写速度更快、抗震性能更好、寿命更长。
- 机械硬盘:机械硬盘(HDD)是一种通过机械方式读写数据的存储设备,主要由磁盘、读写头、电机和控制电路等组成。相比固态硬盘,机械硬盘价格更低、容量更大,但读写速度较慢。
- U盘:U盘是一种小型、便携式的闪存存储设备,容量一般较小,但读写速度快、易于携带,常用于数据传输和备份。
- 外置硬盘盒:外置硬盘盒是一种可以将内部硬盘装入其中的外置存储设备,方便用户进行数据备份和传输。
8. Cache
1)cache与主存之间的映射方式
-
直接映射
-
主存中的每一块只能装到cache中唯一的位置
-
直接映射的关系可以定义为:cache行号=主存块号 mod cache行数
-
直接映射地址结构:
标记 cache行号 块内地址
-
-
全相联映射
-
主存中的每一块可以装入cache的任何位置
-
全相联映射地址结构为:
标记 块内地址
-
-
组相联映射
-
将cache分为q个组,组内全相联映射,组间直接映射,主存中的每一块可以装入某一组的任何位置
-
cache组号=主存块号 mod cache组数
-
组相联映射地址结构为
标记 组号 块内地址
-
2)cache中主存块的替换方法
- 随机替换
- 先进先出算法:选择最早调入的行进行替换
- 近期最少使用算法:选择近期长久未访问过的cache行替换
- 最不经常使用算法:一段时间内被访问次数最少的存储行换出
3)cache的写策略
- 全写法:当cpu对cache写入时,同时写入主存和cache。
- 回写法:只写入cache,不写入主存。换出时才写入主存。
- 不命中的时候:
- 写分配法:先调入cache,更新cache块。
- 非写分配法:只写入主存,不进行调块。
9. 虚拟存储器
主存和辅存共同构成了虚拟存储器,虚拟存储器将主存和辅存的地址空间统一编址。实际的主存单元地址为物理地址。
cache使用虚地址时,由硬件找出虚拟地址和物理地址之间的关系,如果物理地址不在主存当中,还要调入主存中处理。
1)页式虚拟存储器
- 以页为基本单位
- 虚页号和页内地址
- 页表
- 快表
2)段式虚拟存储器
- 以段为基本单位
3)段页式虚拟存储器
- 先分段,再分页。
第四章 指令系统
1. 指令的基本格式
-
操作码+地址码
-
零地址指令:
OP -
一地址指令:
OP A1 - 含义:按照A1地址读取操作数,进行OP操作后,结果存回原来的地址。OP(A1)->A1。
-
二地址指令
OP A1 A2 - 含义:按照A1、A2读取操作数,进行OP操作后,结果存到A1当中。(A1)OP(A2)->A1。
-
三地址指令
OP A1 A2 A3 - 含义:按照A1、A2读取操作数,进行OP操作后,结果存到A3当中。(A1)OP(A2)->A3。
-
四地址指令
OP A1 A2 A3 A4 - 含义:按照A1、A2读取操作数,进行OP操作后,结果存到A3当中。(A1)OP(A2)->A3。A4为下一条指令的地址。
-
定长操作码
-
拓展操作码:操作码的长度随地址码的减少而增加,不同地址数的指令具有不同长度的操作码。
- 不允许短码是长码的前缀;
- 各个指令的操作码不能重复。
-
指令操作类型
- 数据传送:MOV、LOAD、STORE
- 算术和逻辑运算:ADD、SUB、CMP、MUL、DIV
- 移位操作
- 转移操作:JMP、CALL、TRAP
- 输入输出操作
2. 指令的寻址方式
1)指令寻址
- 指令寻址指的是查找下一条指令的地址
- 顺序寻址:通过程序计数器PC+1
- 跳跃寻址:转移类指令
2)数据寻址
- 数据寻址指的是寻找本条指令的数据
- 隐含寻址:累加器中
- 立即寻址:指令的地址字段指出的是操作数本身
- 直接寻址:指令的地址字段指出的是操作数的真实地址
- 间接寻址:指令的地址字段指出的是操作数的地址的地址
- 寄存器寻址:指令的地址字段指出的是操作数所在的寄存器编号,操作数再该寄存器当中
- 寄存器间接寻址:指令的地址字段给的是操作数所在的寄存器的地址
- 相对寻址:把PC的内容加上指令格式的形式地址A而形成操作数的有效地址,即EA=(PC)+A
- 基址寻址:把基址寄存器的内容加上指令格式的形式地址A 得到操作数的有效地址,即EA=(BR)+A
- 变址寻址:把变址寄存器的内容加上指令格式的形式地址A 得到操作数的有效地址,即EA=(IX)+A
- 堆栈寻址:去堆栈区寻址
3. 常用汇编指令
![image-20230516190416138](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230516190416138.png)
- MOV指令:将第二个操作数复制到第一个操作数
- push指令:将操作数压入内存的栈
- pop指令:出栈
- add/sub指令:将两个操作数相加,保存到第一个操作数当中
- inc/dec指令:自加/自减
- imul指令:将两个操作数相乘保存到第一个操作数中
- idiv指令:只有一个操作数,为除数,被除数是edx:eax中内容
- and/xor/or指令:操作结果放在第一个操作数中
- not指令:翻转
- neg指令:取负
- shl/shr指令:逻辑移位
- jmp指令:跳转到后面所指的位置
- cmp指令:比较两个操作数的值
- call指令:实现子程序的调用以及返回
4. 精简指令系统计算机(RISC)——用于小型机
5. 复杂指令系统计算机(CISC)——用于大型机
第五章 中央处理器
1. CPU的功能和结构
1)功能
- cpu由运算器和控制器组成,控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令、分析指令和执行指令。运算器的功能是对数据进行加工。
2)基本结构
-
运算器
- 算术逻辑单元(ALU):进行算术/逻辑运算
- 暂存寄存器:暂存从主存读来的数据
- 累加寄存器(ACC):通用寄存器,暂存ALU的运算结果,可以作为加法运算的一个输入端
- 通用寄存器组:用于存放操作数和地址信息
- 程序状态字寄存器(PSW):保留各种状态信息
- 移位器:对操作数或者运算结果进行移位操作
- 计数器:控制乘除运算的操作步数
-
控制器
- 控制器的功能
- 取指令
- 发出指令地址,取出指令的内容
- 分析指令
- (1)对操作码译码产生操作相应部件的控制信号
- (2)根据寻址方式形成操作数地址
- 执行指令
- (1)根据分析指令后产生控制信号、操作数地址信号序列,通过CPU及输入输出设备的执行实现每条指令的功能
- (2)结果回送存储器
- (3)形成下条指令的地址
- 控制程序和数据的输入和结果输出
- 对异常情况和某些请求的处理
- 异常情况的处理:例如算术运算的溢出、数据传送奇偶错
- 某些请求的处理
- “中断请求”信号
- DMA请求信号
- 取指令
- 控制器的组成
- 程序计数器(PC)
- 即地址寄存器,用来存放当前正在执行的指令地址或即将要执行的下一条指令地址
- 指令寄存器(IR)
- 用以存放当前正在执行的指令,以便在指令执行过程中控制完成一条指令的全部功能
- 指令译码器或操作码译码器
- 对指令寄存器中的操作码进行分析解释,产生相应的控制信号
- 存储器地址寄存器(MAR)
- 用于存放要访问的主存单元的地址
- 存储器数据寄存器(MDR)
- 用于存放向主存写入的信息或者从主存读出的信息。
- 时序系统
- 用来产生各种时序信号
- 微操作信号发生器
- 程序计数器(PC)
- 控制器的功能
![image-20230520155840362](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230520155840362.png)
![image-20230520155919105](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230520155919105.png)
2. 周期概念
- 指令周期
- 完成一条指令所需的时间,包括取指令、分析指令、执行指令
- 机器周期
- 也称为CPU周期,是CPU从内存中读取一个指令的时间,通常等于取指周期
- 时钟周期
- 称为节拍脉冲或T周期,是基准脉冲信号
![image-20230516142025295](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230516142025295.png)
![image-20230516142212231](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230516142212231.png)
四个标志触发器:FE(取址)、IND(间址)、EX(执行)、INT(中断)
- 取址周期
![image-20230516143854185](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230516143854185.png)
- 间址周期
![image-20230516144058926](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230516144058926.png)
- 执行周期
- 中断周期
3. 数据通路
![image-20230520161300243](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230520161300243.png)
4. 控制器
-
事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。
5. 指令流水线
![image-20230520180331544](https://cdn.jsdelivr.net/gh/jiejie1016-carry/picgo@main/image-20230520180331544.png)
-
流水线表示方法
-
影响流水线的因素
-
结构相关:由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。
- 解决办法
- 后一相关指令暂停一周期
- 资源重复配置:数据存储器+指令存储器
- 解决办法
-
数据相关:数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。
-
解决办法:
- 解决办法:
- 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(sta)和软件插入“NOP”两种方法。
- 数据旁路技术
- 编译优化
- 解决办法:
-
-
控制相关:转移指令导致
-
第六章 总线
1. 总线定义
- 被多个部件分时共享的公共信息线路
- 分时指的是同一时刻只能有一个设备向总线发送信息
- 共享指的是总线上可以挂接多个部件
2. 总线分类
1)片内总线:cpu内部寄存器与寄存器之间、寄存器与ALU之间
2)系统总线:各个功能部件之间的连线(cpu、I/O设备、主存)
- 数据总线DB
- 地址总线AB
- 控制总线CB
3)I/O总线
连接I/O接口与系统总线相连,把低速设备与高速设备进行分离
4)通信总线
计算机系统与其他系统之间的连线(远程通信设备、测试设备)
3. 系统总线的结构
1)单总线结构
将CPU、主存、I/O设备挂在一组总线上,带宽低、负载重。
2)双总线结构
一条主存总线:用于CPU、主存和通道之间传送数据;
一条I/O总线:用于在多个外部设备与通道之间传送数据;
把低速设备从单总线上分离出来,但需要增加通道等硬件设备。
3)三总线结构
主存总线用于在CPU和内存之间通信;
I/O总线用于在CPU和各类外设之间通信;
DAM总线用于在内存和外设之间通信;
提高了I/O设备的性能,更加快的响应命令。系统工作效率会变低。
4. 总线事务和定时
1)从请求总线到完成总线使用的操作系列称为总线事务。
2)典型的总线事务:
- 请求阶段:主设备发出总线传输请求
- 仲裁阶段:总线仲裁机构决定总线使用权授予给谁
- 寻址阶段:主设备给出要访问的从设备地址和有关命令
- 传输阶段:主模块和从模块进行数据交换
- 释放阶段:主模块的有关信息从系统总线撤除
主设备指的是获得总线控制权的设备;
从设备指的是被主设备访问的设备,只能响应从主设备发来的各种总线命令。
3)同步定时防守
系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。时钟产生相等的时间间隔,每个时间间隔构成一个系统总线。每个设备或者部件发送或接收信息都在固定的总线传送周期当中,一个总线传送周期结束,下一个总线传送周期开始。
传送速度高,具有较高的传输速率。
主从设备属于强制同步性,不能及时进行数据通信的有效性检验,可靠性较差。
4)异步定时方式
没有统一的时钟,没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。
主设备提出交换信息的请求信号,经过接口传送到从设备,从设备接到请求信号,通过接口发送回答信号。
总线周期长度可变,自动适应时间配合,能保证两个速度相差很大的部件或者设备之间可靠地进行信息交换。
缺点是速度慢。
- 不互锁
- 半互锁
- 全互锁
第七章 输入输出系统
1. 设备控制器(I/O)的基本功能
- 实现主机和外部设备之间的数据传送
- 实现数据缓冲,以达到主机同外部设备之间的速度匹配
- 接受主机的命令,提供设备接口的设备,并按照主机的命令控制设备
2. I/O控制方式
-
程序查询方式:由CPU通过程序不断查询I/O设备是否做好准备,从而控制I/O设备与主机交换信息。
-
程序中断方式:只有在I/O设备就绪并且向CPU发出请求的时候才予以响应。
-
中断服务程序的流程
- (1) 保护现场
- 程序断点的保护
- 寄存器内容的保护
- (2) 中断服务
- 对不同的 I/O 设备具有不同内容的设备服务
- (3) 恢复现场
- 出栈指令
- (4) 中断返回
- 中断返回指令
- (1) 保护现场
-
单重中断和多重中断
-
重 中断
- 不允许中断现行的中断服务程序
-
多重中断
- 允许级别更高的中断源
- 中断现行的中断服务程序
-
-
-
DMA方式:主存和I/O设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无须调用中断服务程序。
- 主存和 I/O 之间有一条直接数据通道
- CPU 和 I/O 并行工作
- DMA 的三种工作方式
- (1) CPU暂停方式
- (2) CPU周期窃取方式
- (3)直接访问存储器
- DMA 接口功能
- (1) 向 CPU 申请 DMA 传送
- (2) 处理总线 控制权的转交
- (3) 管理 系统总线、控制 数据传送
- (4) 确定 数据传送的 首地址和长度,修正 传送过程中的数据地址和长度
- (5) DMA 传送结束时,给出操作完成信号
- DMA 传送过程
- 预处理、数据传送、后处理
-
通道方式:在系统中设有通道控制部件,主机执行I/O命令时,只需要启动有关通道,通道将执行通道程序,从而执行I/O操作。
3. I/O接口
1)功能
-
- 实现设备的选择
-
- 实现数据缓冲达到速度匹配
-
- 实现数据串 格式转换
-
- 实现电平转换
-
- 传送控制命令
-
- 反映设备的状态
- (“忙”、“就绪”、“中断请求”)
2)I/O端口及其编址(直接被CPU访问的寄存器)
- 统一编址:当初存储器的单元地址分配,不需要专门的I/O指令。
- 独立编址:I/O端口的地址和主存地址是两个地址空间,需要专门的I/O指令来访问I/O端口。