一、计算机系统概述
计算机系统的基本组成
冯·诺依曼机
基本工作方式:控制流驱动方式;
最根本的特征:采用“存储程序”原理,即按地址访问并顺序执行指令;
指令和数据均以二进制形式存放在存储器中;
冯·诺依曼计算机:以运算器为中心
现代的计算器:以存储器为中心
5大部件:存储器、运算器、控制器、输入设备、输出设备(适配器)
3大部分:CPU(运算器、控制器)、I/O设备(输入设备、输出设备)、主存储器
计算机系统的多级层次结构
通常将除硬件系统外的其余层级称为虚拟机器,包括操作系统机器 M2、汇编语言机器 M3 和高级语言机器 M4,虚拟机器就是由软件实现的机器。
计算机硬件组成
MDR:数据寄存器;MAR:地址寄存器
IR:指令寄存器,当前指令地址;PC:指令计数器,下一条指令地址;CU:控制单元
ACC:累加器;MQ:乘商寄存器;X:通用寄存器,存放操作数;ALU:算术逻辑单元
过程:
取指令:PC->MAR->M->MDR->IR
分析指令:op(IR)->CU
执行指令:ad(IR)->MAR->M->MDR->ACC
(PC)+1->PU
计算机性能指标
主要性能指标:机器字长、数据通路带宽、存储容量、运算速度
机器字长:计算机的位数是机器字长
字长=CPU通用寄存器宽度=CPU内用于整数运算的运算器位数ALU
CPU时钟周期=1/主频
CPU:最基本的时间单位;
主频:机器内部主时钟的频率
IPS=主频/平均CPI
IPS:每秒执行多少条指令;
CPI:对程序或机器来说,是指所有指令执行所需要平均时钟周期
CPU执行时间=(指令数*CPI)/主频=指令条数*CPI*时钟周期
MIPS=主频/(CPI*10^6)=指令条数/(执行时间*10^6)
MIPS:每秒执行百万条指令的数目
MFLOPS(Million FLOPS),即每秒执行多少百万(10^6)次浮点运算。
GFLOPS(Giga FLOPS),即每秒执行多少十亿(10^9)次浮点运算。
TFLOPS(Tera FLOPS),即每秒执行多少万亿(10^12)次浮点运算。
PFLOPS(PetaFLOPS),即每秒执行多少千万亿(10^15)次浮点运算。
EFLOPS(Exa FLOPS),即每秒执行多少百京(10^18)次浮点运算(1京 =1亿亿=10^16)
ZFLOPS(Zetta FLOPS),即每秒执行多少十万京(10^21)次浮点运算。
常用的数量单位:
描述存储容量、文件大小:K=2^10,M=2^20,G=2^30,T=2^40
描述频率、速率:K=10^3,M=10^6,G=10^9,T=10^12
第二章 数据的表示和运算
定点数及其编码表示
真值:机器数所代表的实际值,带“+”“-”,实际数
机器数:把符号“数字化”的数
原码:0有0两个编码,[+0]原=00000,[-0]原=10000
纯小数:X为真值,[X]原为原码机器数
纯整数
反码:正数:反码=原码
负数:反码=原码取反(除符号位)
补码:在原码的基础上,取反+1,0的编码唯一
变形补码:采用双符号位的补码表示法 :双符号位00表示正,11表示负,10和01表示溢出
移码:补码符号位取反,0的表示唯一
定点数运算
1.定点数的移位
2.溢出判别
溢出 :指运算结果超出了数的表示范围,结果与原操作数符号不同,就表示结果溢出。
(1)采用一位符号位
一正一负相加必然不会溢出;
两正数相加得到一个负数(符号位为1),则正溢出;
两负数相加得到一个正数,则负溢出。
(2)采用双符号位
浮点数
浮点数 :小数点的位置可以浮动的数
S 称作 尾数(可正可负),j 称作 阶码(可正可负),r 是 基数
1.IEEE 754 标准浮点数
浮点数的位数不同,可以表示不同的数值范围和精度。IEEE 标准中常用的浮点数有三种:短浮点数(单精度)、长浮点数(双精度)和临时浮点数(延伸双精度)。
IEEE 标准还规定了几种特殊情况:
阶码 E 所有位全为 0,且尾数 M 为 0 时,表示 0 值(浮点数 0)根据数符不同可以分别表示 ± 0
阶码 E 所有位全为 1,且尾数 M 为 0 时,表示 无穷大。根据数符不同可以分别表示 ±∞。
阶码 E 所有位全为 1,且尾数 M 不为 0 时,表示这不是一个数(NaN)。
2.浮点数规格化
数据的存储和排列
最低有效字节(LSB):数据低位、 最高有效字节(MSB):数据高位
小端模式:低序字节存储在起始地址
大端模式:高序字节存储在起始地址
第三章存储器
存储器的分类
存储器性能
1.存储时间:读书/写入时间
2.存储周期:连续进行两次读或写需要的最小时间
存储周期=存储时间+恢复时间
3.存储器带宽:衡量数据传输率(表示存储速度)
存储带宽=数据带宽/存储周期
4.存储容量:存储器能存放的数据总量,一般用二进制代码的总位数
存储容量(字节数) = 存储字数 × 存储字长/8
(存储字数:代表了存储器地址空间的大小,由地址线的位数决定)
5.位价:存储器的单位成本
位价 = 总成本 / 总容量
速度越高,位价就越高;容量越大,位价就越低;而且容量越大,速度也会越低
主存容量的扩展
位扩展 对字长进行扩展,就是增加存储字长
当 系统地址线位数=芯片地址线位数,系统数据线位数>芯片数据线位数
连接方式:地址线、片选线和读写控制线与系统总线并联, 数据线单独引出
字扩展 对存储字数量进行扩展,而存储字位数满足系统要求
系统数据线位数=芯片数据线位数,系统地址线位数>芯片地址线位数
地址线与系统地址线低位相连,芯片数据线和读写控制线与系统总线并联;由系统地址线高位译码得到各芯片的片选信号
字和位同时扩展 既增加存储字的数量,又增加存储字长。
磁盘的性能指标
磁盘的地址格式:
记录密度:
指单位长度内所存储的二进制信息量
1.道密度:
为避免电磁干扰,磁道之间会保持一定距离,称为道距,道密度就是道距 P 的倒数
2.位密度:
3.面密度=位密度*道密度
存储容量
n 为 盘面数,k 为每个盘面的磁道数,s 为每条磁道上记录的二进制代码数
C = n * k * s
平均寻址时间
ts为磁头寻找目标磁道的时间,tw为磁头等待要读写的磁道区段(扇区)旋转到磁头下方的时间,tsa平均寻道时间,twa平均等待时间
平均寻址时间=平均寻道时间(磁头移动找到磁道)+平均等待时间(磁头已在,等盘片旋转到对应扇区的时间)
平均访问时间
一个扇区的访问时间由 寻道时间、等待时间、传输时间 三部分组成。
平均访问时间=平均寻道时间+平均等待时间+数据传输时间+控制器延迟(有则加)
平均寻道时间=磁头移动到对应磁道的时间
平均等待时间=磁盘转半圈所需要的时间
平均传输时间=一个扇区划过磁头下方所需要的时间
数据传输率
单位时间内,磁盘向主机传送数据的位数或字节数
Dr数据传输率,记录密度位Db,V磁道运动速度
Cache
Cache 和主存之间的映射方式
1.直接映射
就是 “挨个对应”,按顺序存储,主存中的每一块只能装入 Cache 中的唯一位置。
直接映射方式,主存块号位数 m = 标记位数 t + Cache 行号位数 q。
快表(TLB)
在 CPU 芯片中,加入一个专门存放最常访问的页表项的 Cache,就叫做 转址旁路缓存一般简称为 “快表”。TLB 实质上就是 “页表的 Cache”,TLB 通常采用 全相联映射 。
有效位:也称 装入位,用来表示对应页面是否在主存
脏位:也称 修改位,用来表示页面是否被修改过,虚拟存储机制中采用回写策略,利用脏位可判断替换时是否需要写回磁盘。
引用位:也称 使用位,用来配合替换策略进行设置,例如是否使用先进先出(FIFO)或近期最少使用(LRU)策略等。
2.全相联映射
让主存的每一个块都可以映射到 Cache 的任意位置;简单来说就是 “有空就填”,放在哪里都可以
3.组相联映射
把直接映射和全相联映射两种方式结合起来 ,将 Cache 分成 Q 个大小相等的组,每个主存块可装入对应组的任意一行;它所在的组则按顺序依次排列得到。也就是 组间采用直接映射、而 组内采用全相联映射 方式。
组相联映射方式下,主存块号位数 m = 标记位数 t + Cache 组号位数 q。
Cache 写策略
Cache 行总位数 = 1位有效位 + 1位修改位 +(LRU位)+ 标记 + 数
虚拟存储器
1.页式虚拟存储器
以页为基本单位。虚拟空间与主存空间都被划分成同样大小的页,主存的页称为 实页 或 页框,虚存的页称为 虚页。虚页和实页之间采用全相联映射。
2. 段式虚拟存储器
在段式虚拟存储器中,将虚拟空间用 “段” 进行分割;而段是按程序的逻辑结构划分的,各段的长度因程序而异。虚地址分为两部分:段号 和 段内地址。
3.段页式虚拟存储器
把程序按逻辑块分段,段内再分页,主存空间也划分为大小相等的页,程序对主存的调入调出仍以页为基本单位,这样的虚拟存储器称为 段页式虚拟存储器 。
第四章 指令系统
指令和指令格式
指令由 操作码 和 地址码(操作数地址)两部分组成。
指令系统分为 定长指令字结构(eg,RISC) 和 变长指令字结构(CISC)。
寻址方式
寻址方式分为指令寻址和数据寻址两大类。
指令寻址方式有两种:一种是顺序寻址方式,另一种是跳跃寻址方式。
由于地址字段表达的含义不同,可以有多种不同的寻址方式:比如 直接寻址、间接寻址、寄存器寻址 等。
偏移寻址 :将某个寄存器内容与一个形式地址相加而生成有效地址。 偏移寻址又包括基址寻址、变址寻址 和 相对寻址。
1. 立即寻址
指令的地址字段 是操作数本身,不是操作数的地址。
执行阶段不访问主存,指令执行速度快,A的位数限制了立即数的范围,只适合操作数较小情况。
A:形式地址,不一定代表操作数的真实地址。EA:有效地址
2. 直接寻址
指令格式的地址字段中直接指出操作数在内存中的地址,就称为 直接寻址, EA=A
指令简单,不需要专门计算操作数的地址,指令在执行阶段仅访问一次主存。A的位数决定了操作数的寻址范围,操作数的地址不易修改。
3. 间接寻址
是相对于直接寻址而言的,是指指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数地址所在的存储单元地址;也就是 “地址的地址”。EA=(A)
可扩大寻址范围(有效地址 EA 的位数大于形式地址 A 的位数);便于编制程序。指令在执行阶段要多次访存(一次间址需两次访存,多次间址需多次访存)。
4. 隐含寻址
隐含寻址 是指指令字中不直接给出操作数的地址,而是隐含在某个寄存器中(通过操作码表示)。因为隐含寻址可以省去指令字中的一个地址,所以这种方式可以缩短指令字长,在计算机的指令集中被广泛使用。
5. 寄存器寻址
寄存器寻址 的指令在执行时所需的操作数来自寄存器,运算结果也写回寄存器;地址码字段直接指出了寄存器的编号,即EA=R(i)。
指令在执行阶段不访问主存,只访问寄存器,指令字短且执行速度快。寄存器的价格昂贵,且数量有限。
6.基址寻址
基址寻址 是一种偏移寻址的方式,需要设有基址寄存器 BR ;将基址寄存器 BR 的内容(基地址)加上指令中的形式地址,就可以形成操作数的有效地址。EA=(BR)+1
可扩大寻址范围;有利于多道程序设计和浮动程序编制, 偏移量(形式地址 A)的位数较短。
7. 变址寻址
变址寻址 和基址寻址极为相似,需要设有变址寄存器 IX;将变址寄存器 IX 的内容加上指令中的形式地址,就可以形成操作数的有效地址。即EA=(IX)+A
8. 相对寻址
相对寻址 也是偏移寻址的一种,它所基于的是 程序计数器 PC 。即EA=(PC)+A
9. 堆栈寻址
堆栈寻址是一种 隐含寻址,操作数的地址被隐含在了 SP 中。从本质上看,把 SP 看作存放有效地址的寄存器,堆栈寻址就是一种 寄存器间接寻址。
硬堆栈:堆栈既可以用寄存器组来实现 。
软堆栈:可以利用主存的一部分空间作为堆栈。
CISC和RISC
CISC复杂指令集:通过设置更多、更复杂的指令来实现更多的功能
RISC精简指令集:减少指令种类、简化指令功能,降低单个指令执行周期数(CPI)来提高 MIPS,提升运行速度
第五章:中央处理器
CPU 的功能和基本结构
指令流水线
指令流水线 就是改进处理器架构的一项并行处理技术,可以极大地提高 CPU 的工作效率。
流水线冒险:
在指令流水线中,往往会出现一些造成 ”断流“ 的情况,导致流水线无法正确处理指令。
流水线冒险主要有三种:结构冒险、数据冒险 和 控制冒险。
流水线的性能指标
流水线的性能,一般用三项指标来衡量:吞吐率、加速比、效率。
吞吐率
单位时间内流水线所完成的指令数,或者输出结果的数量,称为流水线的 吞吐率。吞吐率又有两种:最大吞吐率和实际吞吐率。
最大吞吐率: 各段时间均为 Δt,流水线只在达到稳定、连续流动的时候,才能获得最大吞吐率。
实际吞吐率:假设流水线中总共有 n 条指令,完成 n 条指令的总时间为 t,那么实际吞吐率就是 n / t。同样,对于 m 段指令流水线,若各段时间为 Δt,那么连续处理 n 条指令时,除了第 1 条指令需要 m · Δt 时间,其它 n - 1 条指令都是每隔 Δt 就会完成一条。
实际吞吐率的计算公式:
带入最大吞吐率的公式,可以得到:
加速度
指的是采用流水线处理指令的速度,和同样功能的非流水线的速度之比。
用 m 段流水线需要的时间,每段时间均为 Δt,是完成 n 条指令:
不使用流水线时需要时间:
加速度比:
效率
指流水线中各功能段的利用率。
流水线有建立时间和排空时间,所以各功能段设备不会一直处于工作状态,会有一段空闲时间。
数据通路的概念和功能
数据通路 :各个功能部件连接起来、可以进行数据传送的路径
数据通路的功能:实现计算机中不同部件之间信息传送和数据交换
根据 CPU 内是否采用总线方式进行连接,数据通路可以分为:不采用 CPU 内部总线和采用 CPU 内部总线
不采用 CPU 内部总线
要将 CPU 内的所有需要进行数据传递的部件单独连接起来,相当于为两者之间搭建了一条 “专线”,所以这种方式也叫做 专用数据通路 方式。
专用数据通路中所有的路径都是 “专线专用”,不存在冲突,因此性能更好;但所有部件之间都需要进行线路连接,布线比较复杂,硬件成本较高,可扩展性比较差。
采用 CPU 内部总线
类似于系统总线,CPU 内部也可以采用总线方式连接,这种总线也叫做 片内总线。片内总线就是 CPU 内部所有部件的公共数据通路,寄存器之间、寄存器与 ALU 之间都由片内总线连接。
类似于系统总线,CPU 内部也可以采用总线方式连接,这种总线也叫做 片内总线。片内总线就是 CPU 内部所有部件的公共数据通路,寄存器之间、寄存器与 ALU 之间都由片内总线连接。
每个寄存器都与总线直接相连,这里同样省略了控制门的符号,用一个小圆圈代替,上面用箭头标出了对应的控制信号。控制信号的下标为 i 表示这是输入端的控制,下标为 o 表示输出端的控制。
CU 的控制方式
CU 的控制方式,主要有 同步控制、异步控制、联合控制 和 人工控制 四种。
微程序控制器
微程序/微程序控制器:存储程序的方法,形成具体的微操作序列。
微指令的基本格式:
微指令编码方式:
微指令操作控制字段怎样去发出控制信号,如何具体产生下一条微指令的地址,这跟 微指令编码方式 和 微地址形成方式 有关
直接编码(直接控制):每一位对应一个微操作命令,速度快,容量过大
字段直接编码(显示编码):由字段直接译码发出微命令如何
相容:微命令可以同时产生
互斥:微命令不能同时发生
注:一字段内互斥,不同字段内相容。字段长度不等,留一种状态字,表示不发出任何微命令。
字段间接编码(隐式编码):在字段直接编码的基础基础上,又增加转换
减少字段位数,电路更复杂,削弱微指令并行,作为字段直接编码辅助手段
混合编码:直接编码和字段编码(直接和间接)混合使用。
中断和异常
中断源:能够引起中断的各种因素
异常(内中断,同步中断):内部设备遇到意外暂停处理,是在指令执行后发生
中断(外中断,异步中断):外部设备CPU时钟随机产生
中断的分类:可屏蔽中断(I/0设备)和不可屏蔽中断(电源掉电)
异常的分类:
故障(程序性的故障):通常可以纠正,纠正后可以正常执行原先的指令。
陷阱(资源中断):人为设置
异常中止:程序发生严重错误,无法继续执行,只能强制停止运行
中断请求标记:中断请求触发器INTR,区分中断源。寄存器每位对应一个INTR,任意一个触发器为 1,表示对应中断源发出中断请求。
中断判优:分为硬件排队和软件排队
1.硬件排队:
CPU 内设置排队器:通过接入一个多输入的与非门来封住低优先级的中断请求
接口电路中设置排队器(链式排队器):接口电路放一个反相器和一个与非门,与非门输出接入下一级,实现对更低优先级中断请求封锁
2.软件排队:
直接通过编写查询程序实现中断请求的排队
程序中断过程是由硬件(中断隐指令)和中断服务程序共同完成的。
中断隐指令:关中断,保存断点,引出中断服务程序(通用寄存器的保护)。
中断处理过程:
(1)关中断(2)保存断点(3)识别中断源(4)保存现场(5)中断事件处理(6)恢复现场(7)开中断(8)中断返回
其中1-3是硬件完成,4-8由中断服务程序完成
CPU响应中断的3个条件:
1.CPU接收到中断请求信号。中断源发出中断请求,CPU接收到这个请求。
2.CPU允许中断,即开中断。
3.指令执行完毕,中断响应时在指令执行末尾。
(注:指令执行完毕肯响应中断,但是它本身不会引起中断请求)
中断响应,CPU完成的工作:关中断,保护断点(PC,PSW),发中断响应信号形成向量地址。
中断优先级:响应优先级和处理优先级
响应优先级:由中断服务程序或中断判优决定的。
处理优先级:中断屏蔽标志改变的。决定了是否能打断正在执行的中断服务程序,决定了多个中断服务程序执行的次序。
多处理器基本概念
费林分类法:
SISD:单指令流单数据流,CPU 同时只能执行一条指令,处理一条数据。
SIMD:单指令流多数据流,单条指令可以同时对应处理多个数据,从而实现了数据的并行处理。
MISD:多指令流单数据流。多条指令同时执行,但只处理一条数据,这种架构非常罕见,只是作为一种理论模型。
MIMD:多指令流多数据流。同时执行多条不同的指令,它们分别处理不同的数据;这种方式实现了线程、指令和数据的全方位并行处理。
硬件多线程
硬件多线程:一个处理器,可以允许多个线程(可以同时执行不同的指令流,又称进程)以重叠的方式,共享处理器的功能部件;当一个线程停顿时,就切换到另一个线程,从而更加充分地利用了硬件资源。
硬件多线程主要有两种实现方法:细粒度多线程、粗粒度多线程。
多核处理器和 SMP
每个处理单元就称为一个 ” 核 ,有多个核的处理器就被称为 多核处理器。
多核处理器也采用硬件多线程技术,会将单个核心上同时运行多个线程称为有多个 ”逻辑内核“,而对应的真正的核心则称为 ”物理内核“。
共享内存多处理器(SMP)
为所有处理器提供统一的物理地址空间。处理器通过存储器中的 共享变量 进行通信,所有处理器都能通过加载(Load)和存储(Store)指令访问任意的主存位置。
SMP分为两种类型:统一内存访问UMA、非统一内存访问NUMA。
第六章总线和输入输出(I/O)系统
五大部件互连方式有两种:
分散连接(是各部件间用单独线连)、总线连接(是各部件连到一组公共信息传输线上)
总线的两个特点:
分时、共享
总线的性能指标
常见总线标准
总线标准,就是系统与各模块、以及各模块之间进行连接的一个标准界面。
这个界面对两端的模块来说,都是透明的,只需要按照总线标准完成自己的接口功能即可。
I/O接口的及其编址
端口 :是接口电路中的寄存器,这些寄存器用来存放数据信息、控制信息和状态信息,相应的端口就称为 数据端口、控制端口 和 状态端口。
接口:一些端口,加上对应的控制逻辑,组成的。
统一编址/ 存储器映射方式 :把 I/O 地址看作存储器地址的一部分,也就是把 I/O 端口当做存储器单元统一进行地址分配。
采用统一编址时, CPU 访存和访问 I/O 端口用的是一样的指令,所以访存指令可以访问 I/O 端口
不统一编址/ 独立编址 / I/O 映射方式 :I/O 地址和存储器地址完全分开,两者都有自己独立的地址空间。
I/O接口的功能:选址功能,传送命令功能,传送数据功能,反应I/O设备工作状态的功能
I/O方式
信息传送控制方式:程序查询方式、程序中断方式、直接存储器存取方式(DMA)、I/O 通道方式、I/O 处理机方式,串行。
程序查询方式
程序查询方式是由 CPU 通过程序不断查询 I/O 设备是否已做好准备,从而控制 I/O 设备与主机交换信息。
采用这种方式实现主机和 I/O 设备交换信息,要求 I/O 接口内设置一个 状态标记,用来反映 I/O 设备是否准备就绪。
当 I/O 设备较多时,CPU 就需要按 I/O 设备在系统中的 优先级 进行逐级查询。
查询流程的3条指令:测试指令,传送指令,转移指令
DMA 方式
DMA传送:由外部设备向DMA控制器发出DMA请求信号,DMA向CPU发出总线请求信号,在传送器件DMA有总线控制权,此时CPU不能响应I/O中断。DMA是靠硬件电路实现的。
DMA不需要CPU干预传送操作,仅在开始和结束时借用CPU一点时间,其余不占用CPU任何资源
一个完整的DMA过程,部分由DMA控制器控制,部分由CPU控制
DMA优先级高于中断请求(中断每次都需要保护和恢复现场,DMA方式无需保护现场)
CPU会在每个存取周期(总线周期)结束后检查是否有DMA请求。
只有DMA接口的设备才能产生DMA请求。
CPU对DMA响应可以在指令执行过程中的任何两个存取周期之间
直接存储器存取(DMA):能直接与主存交换信息而不占用 CPU。高速I/O设备,辅存采用DMA,不用等待CPU中断响应,不会造成数据丢失。
DMA与CPU的访存冲突
由于 DMA 接口与 CPU 都可以访问主存,这就有可能出现两者争用主存的冲突。I/O 设备请求进行 DMA 传送时,会遇到三种情况:
1.CPU 不需要访问主存:这时 I/O 设备与 CPU 不发生冲突。
2.CPU 正在访问主存:这时必须等存取周期结束,CPU 才会将总线占有权让出。
3.CPU 也同时要求访问主存:这就出现了访存冲突。
解决冲突的三种办法:
1.DMA与CPU交替访问
2.停止CPU访问
3.主存周期挪用(周期窃取),窃取的是存取周期
程序中断方式
程序中断方式:利用 I/O 中断,暂时中断 CPU 现行程序、转入 I/O 服务程序方式。
中断流程:
启动 I/O 设备,CPU继续执行原程序;
执行第 M 条指令,I/O 准备就绪,发中断请求, CPU 第 M 条执行结束入中断周期,执行中断服务程序;
中断服务程序执行完毕,返回到程序断点处,继续执行第 M + 1 条指令。
I/O 设备中断处理分为 :中断请求、中断判优、中断响应、中断服务 和 中断返回 5 个阶段。
向量中断、中断向量、向量地址三个概念:
中断向量:每个中断源都有对应处理程序,这个处理程序为中断服务程序,中断服务器入口地址。
(注:中断向量地址指中断服务器地址的地址)
向量地址:中断向量表或中断向量跳转表中每个表项所在的内存地址或表象的索引值。
向量中断:一种识别中断源的技术或方式。识别中断源的其目的是找到中断源对应的中断服务程序入口地址的地址,即向量地址。
程序中断方式和DMA方式
中断请求不同:
程序中断方式在数据传输时,首先发出中断请求,CPU中断正在进行的操作,转而进行数据传输,知道传输结束,才返回中断执行的操作。
DMA是在后处理阶段需要用中断方式请求CPU做结束处理,但是在整个数据传输过程中,并不需要中断请求。
目的不同:
DMA中断时是在DMA传送后请求CPU做DMA结束处理。
程序中断处理是为了进行数据传送。