第七章 输入输出系统

78
1 第第第 第第第第第

Upload: oleg-mason

Post on 30-Dec-2015

53 views

Category:

Documents


7 download

DESCRIPTION

第七章 输入输出系统. CPU. 主存. CPU. 主存. 总线. 总线. I/O 管理部件. I/O 接口. I/O 接口. I/O 接口. I/O 接口. …. …. I/O 设备. I/O 设备. I/O 设备. I/O 设备. I/O 通过 CPU ( 标准化 方式 ). I/O 可以 不 通过 CPU ( 标准化 方式 ). §7.1 I/O 系统概述. 一、 I/O 系统的基本组成. 1 、 I/O 系统的硬件 * I/O 系统的发展: 可扩展性、性能. 主存. 主机. CPU. I/O 设备. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第七章  输入输出系统

1

第七章 输入输出系统

Page 2: 第七章  输入输出系统

2

§7.1 I/O 系统概述一、 I/O 系统的基本组成

1 、 I/O 系统的硬件 *I/O 系统的发展:可扩展性、性能

CPU 主存

I/O 接口 …

总线

I/O 设备

I/O 接口

I/O 设备

I/O 通过 CPU( 标准化方式 )

CPU 主存

I/O 接口 …

总线

I/O 设备

I/O 接口

I/O 设备

I/O 管理部件

I/O 可以不通过 CPU( 标准化方式 )

*I/O 硬件的组成: 由 I/O 设备、 I/O 接口、 I/O 管理部件组成

主存

I/O 设备

CPU

I/O 通过 CPU( 非标准化方式 )

主机

Page 3: 第七章  输入输出系统

3

2 、 I/O 系统的软件

*I/O 软件的组成:用指令或程序表示 I/O 指令— CPU 发出的 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 系统的传送工作协调

Page 4: 第七章  输入输出系统

4

二、 I/O 设备与主机的联系1 、 I/O 设备与主机的连接方式

CPU 主存

I/O 接口 …

总线

I/O 设备

I/O 接口

I/O 设备

* 总线方式连接的 I/O 实现需求: 机器指令 —能区分操作的目标设备类型 [ 主存或 I/O 设备 ],

能区分操作的目标设备 [ 哪个单元或 I/O 设备 ]

1 n

* 连接方式:有辐射方式、总线方式两种, 常采用总线方式 ( 需设置 I/O 接口 [ 操作标准化 ])

I/O 设备 ( 接口 )— 能主动判断自身是否为操作的目标设备

Page 5: 第七章  输入输出系统

5

2 、 I/O 设备的编址方式 指机器指令 如何区分操作的目标设备类型 ( 主存或 I/O 设备 )

(1) 统一编址方法 *I/O 实现方法: 机器指令— 用统一的 MEM 读、 MEM 写指令表示

MEM

I/O 设备X+N

-1…X

X-1…0MEM 读 /MEM 写指令的地址

码范围

CPU主存

I/O 设备或接口

地址、数据

MEMR# 、

MEMW#

地址、数据

MEMR# 、

MEMW#

总线信号—用统一的 MEMR# 、 MEMW# 信号实现操作控制

设备选择—用机器指令中 地址码 ( 设备码 ) 选择 * 特点:无需增加机器指令、地址码较长,主存不易扩展

Page 6: 第七章  输入输出系统

6

(2) 独立编址方法 *I/O 实现方法: 机器指令— 用单独的输入、输出指令表示

MEM 读 /MEM写指令

的地址码范围

输入 / 输出指令的地址码范围

X-1

0

MEMN-1

…0

I/O 设备

总线信号—用单独的 IOR# 、 IOW# 信号实现操作控制

设备选择—用机器指令中 操作码、地址码 ( 设备码 ) 选择 * 特点:需增加 2 条机器指令、地址码较短, 易单独扩展主存及 I/O 设备

3

CPU主存

I/O 设备或接口

地址、数据

IOR# 、 IO

W#

地址、数据

MEMR# 、

MEMW#

Page 7: 第七章  输入输出系统

7

3 、 I/O 设备的寻址 指机器指令 如何区分操作的目标设备, I/O 设备 ( 接口 ) 如何判断自身是否为操作的目标设备 *I/O 设备的编址及实现: 编址—每个 I/O 设备分配有一个惟一的设备号

*I/O 设备的寻址实现: 内部的设备选择电路监视总线状态,有 I/O 操作时比较自身设备号与总线上的地址、判断自身是否为目标设备

设备号寄存器或电路

=1

比较器

地址锁存器 数据缓冲器

命中

&

&

设备硬件

CPU

主存

IOR# IOW#

MEMR# MEMW#

实现—电路 ( 固定 ) 、或寄存器 (OS 分配 [ 机器启动时 ])

Page 8: 第七章  输入输出系统

8

4 、 I/O 设备与主机的联络方式 指 I/O 设备与主机 ( 或 I/O 接口 ) 间的传送定时方式

I/O 设备

CPU 主存

I/O 接口 …总线

I/O 设备

I/O 接口

I/O 设备

Strob

e

Ack

CLK

I/O 接口… …

* 异步联络方式:采用异步定时方式, 联络信号可为 Strobe 、 Ack/Ready 等 * 同步联络方式:采用同步定时方式,联络信号可为 CLK

* 立即响应方式: I/O 设备随时响应主机操作,无联络信号

Page 9: 第七章  输入输出系统

9

三、 I/O 设备与主机的传送控制方式 指主机对 I/O 操作的管理方式,又称 I/O 方式

*I/O 设备的特征:①传送速度不同 ② 传送数据量不同 ( 字符 / 次、块 / 次 ) *I/O 方式 ( 操作管理 ) 的目标:

键盘…

CPU 主存

键盘接口

摄像机

视频压缩卡

打印机

打印机接口

显示器

显卡

① 减少传送所占 CPU 时间 如 I/O 设备 ( 接口 )─ 主存直接传送

② 提高传送速度 如批量传送 ( 字符 / 次 × 次数 / 批 )

*I/O 操作的特征: I/O 设备 - 主存间的传送

Page 10: 第七章  输入输出系统

10

*I/O 组织方式示例:老师要 10 个孩子轮流、每人吃 4 颗糖

① 先给某孩子一颗糖,看着他,等到他吃完时给下一颗…; 再给另一孩子…

③ 先告诉某孩子吃糖规则 ( 共 4 颗糖,自己拿、每次一颗… ) ,改作业,收到他全部吃完的报告时,再告诉另一孩子… ④ 先写好吃糖规则及孩子名单、告诉班长按规则处理,改作业,收到他管理有困难的报告时处理该问题…;或由班长全权负责

② 先给某孩子一颗糖,改作业,收到他一颗吃完的报告时给下一颗…; 再给另一孩子…

*I/O 传送控制方式的种类:

程序控制方式程序查询方式程序中断方式直接存储器访问 (DMA) 方式通道及 I/O处理机 (IOP) 方式

类比于总线连接

Page 11: 第七章  输入输出系统

11

1 、程序查询方式 *功能:可实现 CPU-I/O 设备间的单个数据传送 * 传送控制原理: CPU 启动 I/O 操作后、不停地查询 I/O 设备状态,在 I/O 设备准备就绪 [ 或空闲 ] 时,才进行数据传送

*I/O 特点: CPU 与 I/O 设备串行工作 * 对 I/O 接口的要求: 需设置暂存及缓冲操作命令、数据、设备状态的电路

时间

CPU

I/O 接口

I/O 设备

IOW 指令

( 命令 )

接收命令

设备启动

监视就绪启动设备

IOR 指令( 状态=0)

转发状态 (=0)

IOR 指令

( 状态=1)转发状

态 (=1)

IOW 指令

( 数据D1)接收操作转发数据接收状态

传送实现

启动设备

IOW 指令

( 命令 )

接收命令

Page 12: 第七章  输入输出系统

12

2 、程序中断方式 *功能:可实现 CPU-I/O 设备间的单个数据传送 * 传送控制原理: CPU 启动 I/O 操作后、继续执行现行程序, I/O 设备准备就绪后、提出请求, CPU 响应请求、进行数据传送

*I/O 特点: CPU 与 I/O 设备可并行工作 * 对 I/O 接口的要求:需增设 I/O请求产生及撤消电路

10

设备启动t

CPU

I/O 接口

I/O 设备

事务 B 程序

主程序

收命令

监视就绪启动设备

IOW 指令

( 命令 )

设备启动

IOW 指令

(D1)…

中断程序

传送实现

收操作转发数据接收状态 监视就绪启动

设备

IOW 指令

( 命令 )

收命令

事务 B 程序(续 )

主程序

Page 13: 第七章  输入输出系统

13

3 、直接存储器存取 (DMA) 方式 *功能:可实现 MEM-I/O 设备间成组数据传送 (功能弱 ) * 传送控制原理: CPU 发出传送需求后、继续执行现行程序, I/O 接口控制 MEM-I/O 设备间批量传送、结束时提出请求, CPU 响应请求、进行结束处理 ( 如校验、再次启动传送 )

中断程序

*I/O 特点: CPU 无需干预传送过程及中转传送数据

CPU

ME

M

I/O接口

外设

监视就绪

t设备启动

IOW 指令( 启动设备 )

接收传送需求接收命令

启动设备

IOW 指令串( 传送需求 ) 事务 B 程序

等待设备就绪

监视就绪

设备启动

启动设备

启动I/O

D1( 输出 )

传送实现

接收 D1

传送控制1

中转 接收设操作 备状态

D2( 输出 )

传送实现

接收 D2

传送控制2

中转 接收设操作 备状态

10

Page 14: 第七章  输入输出系统

14

4 、通道及 I/O处理机 (IOP) 方式 *功能:可实现 MEM-I/O 设备间成组数据传送 (功能强 )

* 通道方式原理: CPU 编写传送控制程序、发出通知后,继续执行现行程序, I/O 通道管理与控制 MEM- 设备间数据传送

*IOP 方式原理: CPU 发出传送需求 (更简单 )后,继续执行现行程序, IOP 管理与控制 MEM- 设备间的数据传送

10

CPU

MEM

I/O通道

外设

MEMW 指令串

( 写通道程序 )事务 B 程序

IOW 指令

( 启动通道 )

收通道程序

接收命令启动

收OP

监视就绪

启动设备

收 D2中转 接收设操作 备状态

D2( 出 )

控制

D1( 出 )

执行通道程序 (功能较强 )

收OP

启动 等待

监视就绪

启动设备

收 D1控制

中转 接收设操作 备状态

程序( 出 )

Page 15: 第七章  输入输出系统

15

§7.2 I/O 设备

*I/O 设备的基本组成:

*I/O 设备的种类:

CPU 主存I/O 接口主机

I/O 设备

① 按功能分类— 人 - 机交互设备、信息存储设备、机 - 机通信设备 ② 按 I/O 方向分类— 输入设备、输出设备、输入输出设备

设备控制器

机、电、 光、磁部件

Page 16: 第七章  输入输出系统

16

一、输入设备1 、键盘 -- 字符输入设备

* 非编码键盘组成原理: CPU执行键盘扫描程序,软件实现按键检测及编码转换

* 种类:有非编码键盘、编码键盘两种 按设备控制器功能实现发方法分

并行接口

+5V

行号i←0 、 L←1110

N

输出行线L(L←0000)输入列线 C

C=1111?

i←i+ 1L←L循环左移 1位

键号 k←i*4+ C 的编码

i> 3?Y

Y

N

异常

输出行线 L

输入列线 C

N

Y C=1111?

Page 17: 第七章  输入输出系统

17

* 编码键盘组成原理: 控制电路实现按键检测及编码转换,可送至键盘接口

单稳电路输出有效→ CNT暂停、 ROM 读出编码、传送电路接收编码, 延迟电路启动 ( 一定延迟后输出有效 ) ; 延迟电路输出有效→单稳电路输出无效; 单稳电路输出无效→ CNT正常输出、延迟电路停止

键盘接口

4×4键盘阵列

译码器

译码器

单稳电路

4位计数器 CNT

ROM

时钟发生器

RD

CS

&传送电路

延迟电路

Page 18: 第七章  输入输出系统

18

2 、鼠标 --图形输入设备 * 种类:有机械式鼠标、光电式鼠标、触摸式鼠标等 * 机械式鼠标组成原理:

*光电鼠标组成原理: 第 1代—

LED

光电传感器

带栅孔滚轴

Y计数器

X计数器

传送控制电路按键检测电路 LE

D

Y计数器

X计数器

传送控制电路按键检测电路

光学引擎微型摄像头LE

D

滚球滚动→滚轴转动→栅盘转动→计数器变化

鼠标移动→反射光强弱变化→计数器变化 第 2代— 鼠标移动→图像变化→比较图像→计数器变化

Page 19: 第七章  输入输出系统

19

二、输出设备1 、显示器 -- 字符及图形输出设备 * 种类:阴极射线管 (CRT) 、液晶 (LCD) 、等离子(PDP) 、场致发光 (EL) 、真空荧光 (VFD) 等

*液晶材料特征:透光性、旋光性 *技术指标:分辨率、灰度级

温度低 温度高

双光轴 单光轴 等方性(亮度逐步变暗 )

固态结晶 液晶态 液态偏振光穿过液晶特性: ①光轴与分子长轴平行 ② 可随分子排列方向而扭曲长分子、受结构影响

液晶层

亮度控制特性:偏振光易控制

Page 20: 第七章  输入输出系统

20

*液晶显示原理:用控制电极的电压值控制灰度

(a)液晶盒不加电压

(X 方向 ) 上偏振片

玻璃基片(Y沟槽 )公共电

极液晶层

(X沟槽 ) 控制电极

玻璃基片(X 方向 ) 下偏振

框胶

彩色滤光片

灯管 / 扩散板反射板

框胶

(b)液晶盒加电压

*LCD 组成原理:①像素点颜色由 3 个单元格的灰度组成 ②行扫描可用同时控制所有源电极实现

…像素点

LCD 像素点矩阵

单元格

LCD 单元格组成

门电极源电极

液晶盒

存储电容

显示适配卡

LCD 的基本组成

A/D

转换

显示控制

像素点矩阵

HSYNCRGB

VSYNC

Page 21: 第七章  输入输出系统

21

2 、打印机 -- 字符及图形输出设备 * 种类:击打式 ( 机械式 /针式 ) 、非击打式 (激光 /喷墨 )

*激光打印机组成 原理: 由激光扫描系统、电子照相系统、打印控制系统组成

打印机接口

字符发生器

缓冲存储器

接口及控制电路

感光硒鼓显影器 (含炭粉盒 )

充电电晕清扫刷

消电电晕

收纸盒 供纸盒

搓纸辊

导纸辊定位辊

定影热辊

光调制驱动器 激光器 扫描电机

多面转镜

聚焦镜

透镜

Page 22: 第七章  输入输出系统

22

三、存储设备 *辅存种类:常有磁表面MEM 、光介质MEM ←降低存储成本 *辅存结构:常为盘状、带状 ←降低操作成本

磁道 磁道 位信息磁化元

*辅存性能指标: 存储密度— 存储容量— 寻址时间— 数据传输率— 误码率—

T =平均寻道时间+平均等待时间

FD =道密度 ×位密度S =磁道数 ×记录密度

D =记录密度 ×磁盘转速

格式化后:记录密度<位密度

磁盘寻址步骤—寻道、道内定位 ( 等待转动到位 )

Page 23: 第七章  输入输出系统

23

1 、磁盘存储器 *磁盘类型:软 / 硬、固定 /移动磁头、单面 /双面等

定长记录格式组织— 容量 /磁道= p 个扇区 ×q 个字节 /扇区, P 及 q 为常数

0 道 0扇区0 道 1扇

区1 道 2扇

区磁盘地址: 磁道号 盘面号 扇区号台号

头空 同步字符

地址标志

扇区地址

CRC

间隙 同步字符

数据标志 数据 CR

C尾空

ID域 数据域扇区记录格式:

容量 /磁盘= n 个柱面 = n 个磁道 / 盘面×m 个盘面 = m×n×p×q

变长记录格式组织—数据块 ID域中含数据长度信息

* 信息记录格式:记录单位为数据块, 记录格式有定长格式、变长格式

Page 24: 第七章  输入输出系统

24

*磁盘存储器组成:由盘片、驱动器、控制器组成

磁盘适配器

数据缓冲

接口控制电路

格式控制 并 /串转换

串 /并转换

数据编码器

数据译码

读时钟发生器

DMA 控制接口 数据控制

数据(并 )

REQ/ACK

BUSY

命令 / 数据

DREQ/DACK 数据分离

磁盘控制器

读出放大写入驱动

磁头选择

比较与控制 音圈电机

位置检测

写入信息读出信息盘面地址

柱面地址

磁道地址

定位状态

主轴电机

传动皮带控制信号

盘片

Page 25: 第七章  输入输出系统

25

例—磁盘组有 6 个双面盘片 (最外两侧盘面不使用 ) ,每个盘面有 204 个磁道、每个磁道有 12 个扇区、每个扇区可记录512B 数据,磁盘机转速为 7200rpm ,平均寻道时间为8ms。 ⑴计算磁盘存储空间; ⑵计算磁盘平均寻址时间; ⑶计算磁盘数据传输率;⑷画出磁盘地址格式及参数 解—⑴存储空间=

⑶数据传输率= ⑷磁盘地址格式:

8位 4位 4位磁道号 盘面号 扇区号

⑵平均等待时间= 平均寻址时间=平均寻道时间+平均等待时间 = 8ms+ 4.165ms = 12.165ms

(6×2-2)×204×12×512B =12,533,760B[1/

(7200÷60)]×0.5≈4.165ms ,

12×512B×(7200÷60) =720KB/s

23

22

Page 26: 第七章  输入输出系统

26

2 、磁盘阵列 RAID(Redundant Array of Inexpensive

Disks)

* 目标:扩展容量 (磁盘组 ) ,提高访问性能、可靠性 *RAID 提高性能的方法:使多个磁盘并行工作逻辑盘 物理盘 0 物理盘 1 物理盘 2 物理

盘 3

阵列管理控制器

条带 1

条带 0

条带 5 条带 6 条带 7

条带 1 条带 2 条带 3

条带 4

条带 0

*RAID 提高可靠性的方法:有 RAID0~ RAID6 等冗余级别

RAID0— 数据分块盘 ( 无冗余 )

A B C D

E F G H

RAID 控制器

RAID1— 数据镜像盘

A B A B

C D C D

RAID 控制器

条带:可为数据块、扇区、字节等

Page 27: 第七章  输入输出系统

27

RAID 控制器

RAID2—位交叉海明校验盘

A1

A2

A3

B1

B2

B3

PA1

PA2PB

1

PB2

B0

A0

PA0PB0

RAID3—位交叉奇偶校验盘

A1

A2

A3

B1

B2

B3

B0

A0

PB

PA

RAID 控制器

RAID4— 块交叉专用奇偶校验盘

A1

A2

A3

B1

B2

B3

B0

A0

PA

PB

RAID 控制器

RAID5— 块交叉分布式奇偶校验盘

A1

A2

A3

B1

B2

B0

A0

B3

PA

PB

RAID 控制器

RAID6—双维奇偶校验盘

A1

A2

B1

PB

A3

B2QC

PC

C1PD

QD

D0QE

E1PE

D1E2

A0B0C0

RAID 控制器

QB

PA

C2D2E3

B3

QA

C3D2E4

Page 28: 第七章  输入输出系统

28

3 、光介质存储器 *光记录原理:以介质某种物态存储信息, 通过“光→电”、“光→物态”转换实现读、写

*光盘类型:按读写性质—只读型、写一次型、可重写型 按物理结构—紧致盘 (CD) 、数字通用盘 (DVD)

保护层反射层

盘基

强 弱(a) 形变型 [ 有 / 无凹坑 ]

(b)相变型 [晶态 / 非晶态 ]

保护层反射层

盘基

强 弱

保护层反射层

盘基Iw 外加磁场

(c)磁光型 [磁化方向 ]

* 信息记录格式:与磁盘的定长记录格式类似, CAV 与 CLV 工作方式的格式有所不同 *光盘存储器组成:由盘片、驱动器、控制器组成

23

24

Page 29: 第七章  输入输出系统

29

*I/O 接口:是主机与 I/O 设备间的连接电路, 负责“中转”各种操作信息

一、 I/O 接口的功能§7.3 I/O 接口

CPU 主存 (模块 )

I/O 接口 …

I/O 设备1

ABDBCB

I/O 接口

I/O 设备n

主存控制器BIU

*I/O 接口的连接:一侧连接总线、一侧连接 I/O 设备各种操作信息均通过 DB 中转

标准化操作

*I/O 接口的作用:实现对 I/O 设备的操作标准化

① 设备控制② 数据传送③ 状态查询

Page 30: 第七章  输入输出系统

30

*I/O 接口的功能:

数据缓冲—用寄存器暂存来自总线及 I/O 设备的数据

设备寻址—监视总线状态, 判断自身是否为目标部件 ←与总线地址比较

操作中转—用寄存器暂存来自总线的操作命令, 适时转发操作 ←根据 I/O 设备状态

信号转换—实现总线与 I/O 设备间的信号转换 包括格式、电平、时序等←┘ 设备状态监视—监视设备状态,并暂存到寄存器中, 用于被动查询、或向 CPU 主动报告 *I/O端口:可与数据总线 (DB) 直接交换信息的寄存器 种类—数据端口、命令端口、状态端口

Page 31: 第七章  输入输出系统

31

二、 I/O 接口的组成1 、 I/O 接口的硬件组成 * 硬件组成:核心是内部控制逻辑电路

* 工作过程: 缓冲总线操作—按照总线标准,总线 -I/O端口间通信 转发总线操作—按照设备协议, I/O端口 - 设备间通信

数据总线控制总线

地址总线

外设信号

内部控制逻辑电路

29

数据输出锁存寄存器

状态寄存器

数据输入缓冲寄存器

控制寄存器数据总线缓冲

地址总线锁存

设备选择电路

端口地址译码器

信号转换逻辑

Page 32: 第七章  输入输出系统

32

2 、 I/O 接口的软件组成 * 软件组成:按照设备操作特性、 I/O 传送方式需求,对 I/O

接口的相应 I/O端口进行按序操作的程序

*I/O 指令:功能—输入、输出 格式— 例: 8086汇编语言的 I/O 指令格式— IN AL, DX 及 OUT DX, AL

C语言的 I/O函数格式— BYTE inp(unsigned short usPort); BYTE outp(unsigned short usPort , BYTE btData);

操作码 I/O端口地址 CPU 中 REG地址

I/O端口地址组成 I/O 接口 ( 设备 )码

I/O端口序号 ( 内部 )

*I/O端口:种类—数据端口、命令端口、状态端口 编址—不同 I/O端口有不同的地址

Page 33: 第七章  输入输出系统

33

3 、 I/O 接口的分类 * 按数据传送方式分类: 并行接口—接口 - 设备间同时传输 n位数据 串行接口—接口 -外设间逐位传输 n位数据 * 按功能选择方式分类: 可 编 程接口—可通过软件选择接口功能及工作方式 不可编程接口—须通过硬连线选择接口功能及工作方式 * 按传送控制方式分类: 程序查询方式接口— CPU 完成设备状态查询及传送工作 程序中断方式接口— CPU在设备就绪时完成传送工作 DMA 方式接口— CPU只完成准备及结束工作

作业一: P293— 2 、 9 、 11

Page 34: 第七章  输入输出系统

34

§7.4 程序查询方式一、程序查询方式的流程 * 传送控制思想: CPU 不停地查询外设状态,在外设准备就

绪 ( 或空闲 ) 时,才与外设交换数据 * 传送控制流程:

11

写控制口

读状态口

读 / 写数据口

比较

条件转移

对应的机器指令

数据口操作联动启动外设

测试所读状态N

与外设交换数据

读取外设状态

Y外设就绪 ?

启动外设工作

字符设备传送流程

测试所读状态N

与外设交换数据

读取外设状态

Y外设就绪 ?

启动外设工作

块设备传送流程优化

Page 35: 第七章  输入输出系统

35

* 接口编程:程序须满足程序查询方式流程、外设传送控制协议需求

BYTE Buff[100], *pCur = &Buff[0], Stat;int i = 0; while ( *pCur != 0 && i < 100 ){ do{ Stat = inp(0x71); Stat = Stat & 0x80; } while ( Stat = = 0 ); outp(0x70,*pCur); pCur++; i++; // 可插入其他功能程序段}

例—打印机接口的数据口及状态口地址分别为 70H和 71H ,状态口信息格式约定如右图,用 C语言编写查询方式打印字符串 (结束符为“ \0”) 的程序段

BUSY# …… PE

bit7 bit0

BUSY# = 1— 准备好 = 0— 打印机忙

Stat←(71H端口 )

YN

70H端口← *pCur

Y

N

Stat←Stat&0x80

pCur++ , i++

Stat=0?

*pCur=0?

32

Page 36: 第七章  输入输出系统

36

设备选择电路 端口译码电路

控制口 数据口

Q S BS R

状态口 Q S RD R

I/O

设备

* 接口部件组织:须设置状态口,其中包含就绪 /忙位 (RD)

二、程序查询方式的接口组织

34

* 工作过程组织:可响应总线操作,可触发设备操作 启动设备操作时—触发启动设备、准备数据

③ 命令

⑤启动⑤ ⑧

状态查询操作时—不触发设备侧任何动作

⑴⑶

⑶状态

数据传送操作时—可触发启动设备、准备数据

㈠㈢

㈡㈢数据

程序查询方式流程优化时

⑥输入数据

⑦工作结束

Page 37: 第七章  输入输出系统

37

三、无条件传送方式 * 传送控制原理: CPU 可随时与外设通信,无需查询其状态

* 接口部件组织:无需设置状态口 * 应用范围:只适用于与简单外设通信,如灯、开关等

34

例 1— 设总线宽度为 8位,并行接口数据口 ( 设地址为 60H)

的各个位与引脚 (8根 ) 一一对应,用 C语言编写轮流点亮各个信号灯的程序。 while ( !kbhit() )

{ BYTE Lamp[8]={0xFE,0xFD,0xFB, 0xF7,0xEF,…}; for ( int i = 0; i < 8; i++ ) { outp(0x60, Lamp[i]); Sleep(1000); //产生延迟 }}

CPU 主存

并行接口

+5V

* 接口编程:程序随时使用 I/O 指令与 I/O 接口通信

Page 38: 第七章  输入输出系统

38

§7.5 程序中断方式一、中断基本概念1 、中断的概念 * 中断:暂停执行当前程序、转去执行其它程序后、继续执行

当前程序的过程

时间 t

程序A

程序

B

0~ i

0~ n

i+1~m

程序 A 指令 0

……程序 A 指令 i程序 A 指令

i+1……

程序 A 指令m

程序 B 指令0

……

程序 B 指令n当前程序 中断服务程序

Page 39: 第七章  输入输出系统

39

* 中断方式传送控制: I/O 设备提出请求时, CPU暂停现行程序、响应请求、处理数据传送后,再返回现行程序

t

当前程序中断程序

CPU

I/O 接口 ( 设备 )

传送指令

启动指令

中断请求

中断请求

传送指令

响应

返回

响应

返回

时间 t

中断服务程序

当前程序

…指令 a指令 b

……

中断服务程序

ii+1

k…k+n

主存

当前程序指令

地址 i i+1 k k+n

中断服务程序

当前程序

* 中断相关术语:中断请求、中断源、中断服务程序, 中断响应、中断服务、中断返回,中断处理

Page 40: 第七章  输入输出系统

40

2 、中断分类(1) 按中断请求分类 * 按请求的来源分: 外中断—来自 CPU外部的中断,称为中断 ( 硬中断 ) 例:时钟、键盘、磁盘、主存奇偶校验错、电源故障等 内中断—来自 CPU 内部的中断,称为异常 ( 软中断 ) 例: BIOS 调用,除零错、溢出、单步执行、访存页面失效等

※I/O 中断—用于数据传送的外中断 ( 可屏蔽 )

* 按请求的处理等级分: 可屏蔽中断—可稍后处理的中断,如数据传送的外中断 不可屏蔽中断—须立即处理的中断,如主存奇校验错、异常

Page 41: 第七章  输入输出系统

41

处理时机 中断返回点指令间(n 条 )

下条指令

指令间( 下条 )

当前指令或重启机器

下条指令

立即当前指令结束程序或重启机器

※应用选择: 处理时机及中断 返回点—

分类 举例 请求时机( 硬中

断 )(外中

断 )

中断

可屏蔽中断

键盘、鼠标、磁盘等 任何时刻( 与指令执行

无关 )

不可屏蔽中断

主存校验错、电源故障等

( 软中断 )

( 内中断 )

异常

陷阱BIOS 调用、 DOS调用 指令周期

( 由指令执行引起 )

单步执行,溢出等故障 页面失效等

中止 无效系统表格、硬件故障等

可屏蔽实现— ①CPU 中设置“中断允许”标志位 (IF位 ) IF=1(允许请求 ) , =0(屏蔽请求 )② 软件 ( 指令 ) 可修改

优点:便于实现

Page 42: 第七章  输入输出系统

42

(2) 按中断源识别及中断服务程序入口获得的方法分类

*向量中断:通过硬件方式获得相关信息的中断

程序入口获得—常用中断向量表 (IVT) 存放各中断程序入口 硬件查 IVT获得所选请求的中断程序入口

请求检测与选择—各中断源有独立的中断请求线, 硬件选择最紧急的请求

PC

CPU

I/O 接口

I/O 接口

IVT

……

IntiPrgAddr…

主存

Int0PrgAddr

IntPrgAddr

可有 n 个中断请求 / 同时

只能处理 1 个中断请求 / 次

中断请求

判优逻辑

中断请求检测逻辑

… 中断源编号

Page 43: 第七章  输入输出系统

43

* 非向量中断:通过软件查询方式获得相关信息的中断

程序入口获得—中断程序查询各请求标志选择最紧急请求 函数调用隐含获得所选中断程序入口

保存软件现场

A 的中断处理程序

读中断源 A 状态口

N

Y有请求 ?

B 的

中断源B

N

Y

Z 的中断处理程序

读中断源 Z 状态口

N

Y有请求 ?

恢复软件现场

公用中断服务程序

中断返回

请求检测—各中断源共用中断请求线

※应用选择:计算机系统— 大多选择向量中断方式 多种请求中断源—内部采用非向量中断方式

PCCPU

I/O 接口

I/O 接口公用中断服务程序入口地址

… 中断请求检测逻辑

Page 44: 第七章  输入输出系统

44

当前状态表示:

状态变换实现:

(3) 按中断处理过程能否重叠分类 * 单重中断:中断处理过程中不再响应新中断请求

*多重中断:中断处理过程中可以响应新中断请求

中断程序B

请求 A 请求 B (B 比 A重要 )

t

中断程序A

中断程序B

t

请求 A 请求 B

中断程序A

中断程序 A(续 )

41

实现:

指令系统设有开中断、关中断指令

常用 IF位表示

软件修改 IF位

※应用选择:现代系统—常可选用单重 /多重中断方式 中断响应时—均默认采用单重中断方式

中断响应时 IF←0

Page 45: 第七章  输入输出系统

45

1 、中断响应过程 --仅讨论向量中断 包含识别中断源、保存现场、获得中断服务程序入口、转入中断服务程序 4 个步骤

(1)识别中断源 -- 又称中断判优 (排优 )

* 任务:⑴选择一个最紧急的中断请求 ⑵获得所选中断请求的中断类型号 ( 中断源编号 )

* 实现方法:稍后讨论

42

…ab……

中断程序

B

ii+1k…k+n

主存

当前程序

中断程序A

指令 i 指令i+1

指令 k … 指令k+n

时间

指令 m … 指令m+p

中断程序B

当前程序

二、 I/O 中断的过程

=其在 IVT 中的行号

Page 46: 第七章  输入输出系统

46

(2)保存现场 —又称保存断点 * 任务:⑴保存硬件现场 ( 又称断点 )

⑵关中断 ( 实现系统默认的单重中断方式 )

*保存现场的实现: ① 采用后援寄存器堆 (栈 ) 实现保存 ②保存返回点现场 ←可简化中断返回的实现 ( 不用传递类型号 )

PC 其他REG

后援寄存器堆 (栈 )

状态REG

保存现场逻辑① ①

IF←0

44

EPC

中断类型号 当前指令地址 下条指令地址

返回点指令地址选择电路

取指周期实现

41

* 单重中断的实现:先保存 IF 、后 IF←0 ,中断返回时恢复IF

Page 47: 第七章  输入输出系统

47

易实现

44

tIF =

x IF = 0 IF =x中断响应 中断返回中断服务

IF←0 IF←x

检测不到 ( 或不响应 )新的 I/O 中断请求

I/O 中断请求的响应条件— ( 需全部满足 )

①I/O 中断请求信号有效时 ②当前指令结束时 ( 即指令周期结束 End = 1 时 )

③CPU处于开中断时 ( 即中断允许位 IF = 1 时 )

④ 无更高优先级中断请求及 DMA请求

CPU 的中断请求检测逻辑—

可屏蔽中断请求 ( 如I/O) &

+标志位

IF信号End

中断请求中断请求检测逻辑

中断机构内中断请求不可屏蔽中断请求

IF位作为检测条件之一

Page 48: 第七章  输入输出系统

48

(3)获得中断服务程序入口 -- 又称获得中断向量 * 任务:用中断向量地址 ( 所选请求的表中位置 )查 IVT , 可获得对应的中断服务程序入口 ( 中断向量 )

* 实现方法: IVT 存放—常放在主存某连续单元中 (OS维护 ) 查 IVT— 用中断向量地址 (源自中断类型号 )访问主存

(4)转入中断服务程序 * 任务:将获得的中断服务程序入口置入 PC

IVT

IProcAddr

其他空间

…主存

……

PC

中断请求判优逻辑

中断请求检测逻辑

… 中断类型号

中断机构

I/O 接口

I/O 接口

保存现场逻辑

其它 REG

时序系统

程序入口获得逻辑

⑶⑷

中断返回逻辑

Page 49: 第七章  输入输出系统

49

2 、中断处理过程(1) 中断服务过程 * 任务:执行中断服务程序,即 CPU 按 (PC)执行程序

44

中断服务程序

中断响应周期

识别中断源;保存断点、关中断;获得中断向量; PC← 中断向量

* 中断服务程序框架:单重中断方式、多重中断方式

不响应新I/O

保存软件现场 指令串

设备服务 指令串

恢复软件现场 指令串

中断返回 指令

某次服务对应程序

开中断 指令

保存软件现场 指令串

设备服务 指令串

恢复软件现场 指令串

中断返回 指令

识别中断源;保存断点、关中断;获得中断向量; PC← 中断向量

关中断 指令

可响应新 I/O请求

Page 50: 第七章  输入输出系统

50

(2) 中断返回过程 * 任务:⑴恢复硬件现场 ←─ 中断响应时所保存的 ⑵返回当前程序 ←─ 返回点指令地址→ PC

* 实现方法: ① 中断返回时机—

②返回点地址获得—

中断服务程序用中断返回指令指明中断处理=中断服务+中断返回

中断响应时保存返回点地址最理想 * 中断返回指令功能:

中断返回逻辑

PC 其他REG

后援寄存器堆 (栈 )

状态REG

保存现场逻辑

① ①

EPC

中断类型号

当前指令 下条指令返回点指令地址选择电路

IF←0

46

48

Page 51: 第七章  输入输出系统

51

例—某计算机的 CPU 主频为 50MHz ,机器指令 平均 CPI

为 5 ,中断响应需 6 个主时钟周期,某外设最大数据传输率为20KB/s ,该外设接口中的数据缓冲器为 16位,相应的中断服务程序包含 10 条机器指令 。请回答下列问题: ( 1)该外设是否可用中断方式 I/O?若能,在该设备持续工作期间, CPU 用于该设备 I/O 时间占整个 CPU 时间的百分比为多少? ( 2)若该外设最大数据传输率为 2MB/s ,则是否可用中断方式进行 I/O? 解—⑴中断方式 I/O 时,中断请求间隔为 2B/20KBps=100u

s , 每次中断时间为 (6+ 10*5)/(50*106)=1.12us , ∴可采用中断方式 I/O ; I/O 时间百分比为 1.12%

⑵速率为 2MBps 时,中断请求间隔为 2B/2MBps=1us , 1.12us> 1us ,∴不可采用中断方式 I/O

Page 52: 第七章  输入输出系统

52

三、 I/O 中断的组织1 、 I/O 接口的组织 * 组成:基于查询接口,增加中断请求产生、中断响应机构

I/O 接口

数据缓冲REG

控制REG

QS RD R

状态REG Q

S BS R

设备选择电路 端口译码电路ABus

启动线

DBus

状态线

数据线

中断请求

中断向量地址

&

QR INTR S

QR EI S中断

响应

① ②

③ ③

⑤⑧

&

* 中断请求产生: EI = 1&RD = 1( 中断方式且刚就绪 ) 时产生 * 中断响应:送出中断向量地址、撤消中断请求信号

36

读 / 写数据→触发启动设备→ RD=(0→1)

48

Page 53: 第七章  输入输出系统

53

又称 中断判优或中断排优

2 、识别中断源的组织 * 中断请求的基本连接方式:共用请求式、独立请求式

CPU 的中断机构

中断源 1 中断源 n……

CPU 的中断机构

中断源 1 中断源 n…

*识别中断源: 任务—⑴选择最紧急中断请求,⑵获得其中断类型号

45

方法 -- 软件查询、串行判优、并行判优 ←与连接方式有关

* 软件查询方式: --适用于共用请求式连接 ( 非向量中断 )

判优原理— [公用 ] 中断服务程序的查询次序决定了各中断请求的优先级 (静态 )

中断类型号获得—无需获得,查询时直接转入相应程序段

Page 54: 第七章  输入输出系统

54

*串行判优方式: --适用于共用请求式连接 (向量中断 )

判优原理—轮询, 中断类型号获得—中断源按预先约定送出 (向量地址电路 )

询问次序决定各请求优先级 (静态 )

*并行判优方式: --适用于独立请求式连接 (向量中断 )

判优原理—算法控制,判优算法决定各请求优先级 ( 动态 ) 中断类型号获得—判优逻辑按连接次序给出 ( 中断源无需电路 )

※应用选择:连接—常为共用式 (外中断 )+独立式 ( 内中断 )

判优— 并行 ( 增设硬件 ) 并行

中断类型号

中断源 1 …

中断机构之

判优逻辑 中断源 2 中断源 n

中断请求INTR

中断类型号

μOP

中断源 1 …

中断机构之

判优逻辑 中断源 2 中断源 nINTR

1INTR

2INTR

n

中断响应INTA

μOP

Page 55: 第七章  输入输出系统

55

中断控制器

… I/O 接口

I/O 接口

中断请求 INTR

IR0

IR7

中断响应 INTA 中断类型号

① 自动检测并记录引脚请求、并向 CPU 提出中断请求

3 、中断控制器的组织 * 作用:管理 I/O 中断请求,角色是“中断源+判优部件”

②处理中断响应 ( 提供最紧急请求中断类型号、复位请求 )

*功能与组成:

排队器( 编码器 )

中断请求REG

…≥1…

③ 接收并完成 CPU 的 I/O 操作 ( 如设置工作方式、修改优先级 )

复位电路

中断类型号形成逻辑

最高优先级请求编号

I/O 接口请求的复位—在数据传送时自动实现

Page 56: 第七章  输入输出系统

56

4 、中断系统的组织示例 * 基本组成: CPU 的中断机构、 OS 的中断向量表IVT 、 I/O 接口的中断请求 / 响应电路、中断控制器 ( 可选 )

保存现场逻辑

IV获得逻辑

PC

检测逻辑

判优逻辑

中断返回逻辑内中断请求

信号 End标志位 IF &

不可屏蔽请求 (1)

可屏蔽请求(1)

时序系统

CPU

中断控制器I/O 接口…

IVT

主存

……

中断机构

CU(产生uOP)

中断请求电路 中断响应电路

REGs

中断请求 中断响应⑴~⑹

⑴中断响应信号 ⑵中断类型号

⑷中断向量地址⑸中断向量 ⑷ ⑸

中断返回指令

* 工作原理:中断检测在指令周期末;中断响应为⑴~⑹步; 中断返回用指令实现

(n)

Page 57: 第七章  输入输出系统

57

5 、多重中断的组织 *多重中断实现思路:常采用“检测到就响应”的方法

* 单重中断 -多重中断转换的组织:

多重中断—用户可采用,中断服务程序中将 IF←1

tIF =

x IF = 0 IF =x中断响应 中断返回中断服务

IF←0 IF←x

检测不到新的 I/O 中断请求 单重中断—中断响应时默认使用,中断响应时 IF←0

可检测到新的 I/O 中断请求

49

程序A 程序

B

程序A 程序

B程序 C 程序

D

47

tIF =

x IF = 1 IF =x中断响应 中断返回中断服务

IF←0 IF←xIF←1 IF←0

Page 58: 第七章  输入输出系统

58

*新 I/O请求检测的组织:以中断控制器 (IC) 为例

新请求产生的条件— max(IRi优先级 )>max(ISi优先级 ) 检测机构组成—分类排队、比较判优,响应时改变状态

中断控制器

中断请求中断类型号 中断响应

排队器 A( 编码

器 )

中断请求REG

… …

≥1… IR

0

IR7

复位电路

中断类型号形成逻辑

比较器 (A>B)

&

中断服务REG

排队器 B( 编码

器 )

……

置位电路

复位电路

中断结束指令

I/O请求的状态—正在服务 (IS) 、正在请求 (IR)

*保存多重现场的组织: CPU 内部用寄存器栈代替寄存器堆

53

50

Page 59: 第七章  输入输出系统

59 作业二: P294— 13 、 16 、 17

6 、中断屏蔽的组织 * 中断屏蔽:使部分 I/O请求暂时无效 ←可增加应用灵活性 * 中断屏蔽的组织: 被屏蔽的 I/O请求用屏蔽 REG 指明、不参与排队

* 中断屏蔽的应用: [ 中断 ] 程序可改写屏蔽 REG

中断控制器

中断请求中断类型号 中断响应

排队器 A( 编码

器 )

中断请求REG

… …

≥1… IR

0

IR7复位

某位中断类型号形成逻辑

比较器 (A>B)

&

排队器 B( 编码

器 )

…中断服务REG置位某位

复位某位

中断结束指令 I/O 指令

屏蔽REG

&

&

…&

&

屏蔽REG…

49

Page 60: 第七章  输入输出系统

60

§7.6 DMA 方式 *I/O 基本特点:主存 -外设间传送,批量数据传送

程序控制方式

打印机

CPU 主存

打印接口

摄像机

视频卡

显示器

显卡…

DMA 方式①②

*DMA 方式的应用:适用于块设备的高速、大批量数据传送

* 传送不占 CPU 时间*1 个总线周期 / 传送

* 传送由 CPU 控制*2 个指令周期 / 传送

*DMA 方式对 CPU 的要求: ①负责传送准备及结束处理 └→如设置主存首址、传送字数 ②DMA 传送时放弃总线使用权 (DMA 接口为主设备 )

*DMA 方式: DMA 接口控制的主存 -外设间直接数据传送方式

*1 批数据 /DMA 传送

Page 61: 第七章  输入输出系统

61

*DMA 传送方式:指 DMA 接口获得总线使用权的方式1 、暂停 CPU访问方式 -- 又称 CPU停止法 DMA 接口从传送开始到全部结束期间,均不放弃总线使用权

一、 DMA 的传送方式

访存

总线使用权

CPU

工作状态应答HLDA请求HRQ

工作状态

DMA接口 传送

CPU

不能访存 ( 不使用总线 )

等待外设准备 传送CPU

访存

DMA接口

* 特点: 控制简单、传输效率高,总线利用率低、 CPU效率低; 适用于“外设速度≈总线速度”的 DMA 传送

Page 62: 第七章  输入输出系统

62

2 、周期挪用方式 -- 又称周期窃取法 DMA 接口在外设准备就绪时,请求总线使用权, 在等待外设就绪时,放弃总线使用权

*DMA请求的优先级: DMA请求的优先级高于 CPU请求

访存

总线使用权

CPU

工作状态应答HLDA请求HRQ

工作状态

DMA接口 传送

CPU

访存 … 访存

等待外设准备 传送CPU

访存

接口 CPU 接口

NO NO

* 特点: 传输效率、总线利用率、 CPU效率均高,控制略复杂; 适用于“外设速度<总线速度”的 DMA 传送

防止DMA 接口丢失数据 [ 如盘状设备的传送需求 ]

Page 63: 第七章  输入输出系统

63

3 、与 CPU交替访问方式 -- 又称透明DMA 方式 总线控制权轮流分配给 CPU 及 DMA 接口

* 特点: DMA 接口无需请求,传输效率低 ( 总线周期“长” ) ; 适用于“ CPU 及外设访存频率均较低”的 DMA 传送

访存

总线使用权

分时控制信号

CPU 工作状态

C1

C

2

传送

CPU

传送

CPU

访存

接口 接口

NO NO

DMA 接口 工作状态

CPU 接口 CP

U

访存 NO 空闲

思考— DMA 接口如何知道当前的传送方式?传送前被告知

*3 种 DMA 传送方式比较:周期挪用方式性能较好、较实用, 外设速度与其最佳DMA 传送方式有关 ※应用选择: DMA 接口常支持多种传送方式

Page 64: 第七章  输入输出系统

64

二、 DMA 接口的基本组成 *DMA 接口基本功能: I/O 设备接口、 DMA 传送控制

*DMA 接口基本组成: I/O 接口、 DMA相关逻辑

DMA 传送控制— MAC 及 WC ,总线控制, DMA请求、 DMA 控制逻辑

控制 REG

DBus 缓冲器

数据缓冲 REG

状态 REG

中断请求逻辑

I/O

设备

ABus 缓冲器CBus逻辑

INTR

IOW#

IOR#

CPU

总线操作控制 批量控制

主存地址计数器

MEMW#

MEMR#

传送字数计数器溢出

DMA请求逻辑

DREQ

DACK

HRQ

HLDA

DMA 方式 / 状态REG

DMA 控制逻辑

Page 65: 第七章  输入输出系统

65

三、 DMA 的数据传送过程

例:设硬盘适配器中存放磁道及扇区的端口分别为 RT 、 RP

1 、 DMA预处理 (DMA初始化 )

CPU 通过 I/O 指令实现通知传送需求、启动 I/O 设备 * 通知传送需求: ←与 I/O 设备无关 设置主存首址、传送字数、传送方向及传送方式等 * 启动 I/O 设备:设置操作参数和命令 ←与 I/O 设备有关

磁盘CPU 主存DMA逻辑 I/O逻辑

磁盘适配器 (DMA 接口 )

①MAC←BAS②WC←512③DMA 方式 REG←MEMW 、周期挪用

④RT←XX⑤RP←YY⑥控制 REG←DMA 方式、读磁盘

XX磁道

YY扇区

首地址为

BAS512B大小

①②③ ④⑤⑥

Page 66: 第七章  输入输出系统

66

2 、 DMA 传送 DMA 接口使用循环方式实现成组传送,直至传送结束

⑶HRQ↑⑷HLDA↑

一个字 / 次、改变主存地址及字数

*请求总线控制权:与传送方式有关 ( 以周期挪用为例 )

⑵就绪↑DMA 接

口 I/O 设备CPU 主存⑴启动↑

* 数据传送:与传送方向有关 ( 以 IO 设备→MEM 为例 )

⑹启动↑

⑺就绪↓

⑸MEMW

DMA 接口 I/O 设备CPU 主存

HRQ =1HLDA= 1

⑻HRQ↓⑼HLDA↓

*循环实现: MAC←(MAC)±1 、 WC←(WC)- 1 , 若WC≠0 ,等待外设就绪,然后转入⑵, 若WC = 0 ,置 INTR 有效,转入 DMA后处理

64

Page 67: 第七章  输入输出系统

67

3 、 DMA后处理 CPU 响应中断请求, ( 中断服务程序 ) 完成 DMA 传送的结束处理工作 ( 如数据校验、或启动下次 DMA 传送 )

例—某 CPU 主频= 500MHz 、 CPI = 5 、 DBus =32bit ,若外设数据缓冲器大小为 4B ,最大数据传输率=0.5MB/s ,中断程序= 18 条指令、中断处理其它开销 ( 响应 )

相当于 2 条指令时间。 ⑴中断方式下, CPU 用于该外设 I/O 的时间百分比? ⑵若外设数据传输率提高到 5MB/s ,改用 DMA 方式, DMA 传送预处理及后处理共需 500TC 、块大小=5000B , CPU 用于该外设 I/O 的时间百分比 (假设 CPU 与DMA 接口无冲突使用总线 )?

Page 68: 第七章  输入输出系统

68

解—⑴

TINT = (2+18)×5×[1÷(500×106)] = 0.2×10-6s

TI/O = 1÷[(0.5×106×8b)÷(32b)] = 8×10-6s

CPU 用于 I/O 时间 % = (0.2×10-6)/(8×10-6) =2.5%

1 次 I/O

执行中断程序 执行其它程序

外设

CPU 中断响应tTINT

TI/O

响应

解—⑵ DMA 传送 ( 块数据 )

执行其它程序

DMA接口CPU 预处理

t

TI/O

TDMA

收需求

后处理

收需求

预处理

TDMA = 500×[1÷(500×106)] = 1×10-6s

TI/O = 1÷[(5×106B)÷(5000B)] = 1×10-3s

CPU 用于 I/O 时间 % = (1×10-6 )/(1×10-3)=0.1%

Page 69: 第七章  输入输出系统

69

*DMA 方式与中断方式的比较:

不同点传送字数/CPU干预

每字传送过程请求优先级

异常处理传送控制 总线周期数

对 CPU 的影响

中断方式 1 个字 软件 ( 指令 )

≥2 个 暂停现行程序 DMA>中断

可以

DMA 方式

多个字 硬件 ( 接口 )

1 个 暂停使用总线 不行相同点 ① 对 CPU而言,两者均采用请求 - 响应方式

② 两者均须软件和硬件共同完成

指设备接口的数据缓冲器大小,通常为总线宽度,或机器字长

Page 70: 第七章  输入输出系统

70

四、 DMA 的组织1 、 DMA 接口的组织 为提高通用性, DMA 接口通常仅实现 DMA 传送控制功能

* 数据传送过程的变化: DMA预处理时— CPU 分别对 DMA 接口和 I/O 接口进行操作 DMA 传 送时— DMA 接口同时发出 MEM 操作、 DACK

及 IO 操作, I/O 接口提出中断请求

MEMW#

MEMR#

INTR

存CPU

I/O 接口(含DMA请

求 )HRQHLDA

主存地址计数器

DBus缓冲器

ABus 缓冲器

CBus逻辑

IOW#

IOR#

EOP

传送字数计数器

DREQDACK

DMA 方式 / 状态

REG

DMA 控制逻辑

I/O设备

65

66

64

约定端口、无需地址

Page 71: 第七章  输入输出系统

71

2 、 DMA请求判优的组织 解决多个 DMA 接口与 CPU 的连接及响应问题 *DMA请求连接方式:共用请求式、独立请求式

*CPU 响应 DMA请求的方式:只须给出响应信号 * 常见连接方式: “DMA 控制器”管理并中转各DMA 接口的请求

DMA接口 1

DMA

响应DMA接口 n

DMA接口 1 CPU

DMA请求 1

DMA接口 n

DMA 响应 1

DMA请求 n

DMA 响应 n

… …CPU …

可扩展性较好

功能类似于中断控制器

Page 72: 第七章  输入输出系统

72

3 、增强型 DMA 接口 为提高性能及节省成本,一个 DMA 接口常连接多个 I/O 设备 * 选择型 DMA 接口:增设设备号寄存器 ←独占服务

*多路型 DMA 接口:增设寄存器组、判优逻辑等 ←轮流服务

HRQHLDA

EOP

主存地址REGs

DREQ0DACK0方式

/ 状态REG

DMA 控制逻辑

I/O 设备0 ……

MAC WC

传送字数REGs

屏蔽 / 判优 / 响应逻辑DREQ3DACK3

I/O 设备3

CPU

CPU

HRQHLDA

MAC

EOP

WC

DREQDACK

方式 / 状态REG

DMA 控制逻辑

I/O 设备设备号寄存器

设备号

……

Page 73: 第七章  输入输出系统

73

§7.7 通道方式 * 通道方式目标:进一步减少 CPU 的传送控制工作负担

传送准备、结束处理

用通道程序 ( 主存中 ) 表示需求

编制执行

* 通道:具有特殊功能的处理器,执行程序实现 I/O 传送控制 * 通道方式:通道控制的主存 -外设间直接数据传送方式

CPU

主存

设备设备控制器

设备

通道 0

通道 i

…… 设备控制器 设备控制器

设备 设备…

通道总线 (I/O 总线 )

MEM

总线

“通道”负责处理

Page 74: 第七章  输入输出系统

74

一、通道的基本组成 * 通道的功能: ① 接收 CPU 的 I/O 指令; ←用作 I/O 接口 ②执行通道程序,来控制 I/O 设备及传送; ③ 组织与控制 I/O 传送; ←实现批量传送、总线转换 ④根据 I/O 设备状态形成通道状态; ⑤报告通道及 I/O 设备的中断请求 * 通道的组成:

主存地址计数器传送字数计数器方式 / 状态 REG

通道控制逻辑设备选择

MEM 总线

数据缓冲寄存器

装配 /拆卸

中断逻辑

I/O 总线 ( 或设备控制器 )

Page 75: 第七章  输入输出系统

75

二、通道的工作过程

1 、传送准备 * 用户程序的访管指令,调用 I/O 管理程序

*I/O 管理程序实现 I/O 传送需求表示、启动通道功能

操作 交换长度 主存首址 访管指令格式 操作码 通道号 设备号

登记或例外程序

用户程序 ( 主存中 )

访管指令

……

管理程序 ( 主存中 )

编制通道程序的程序段

置通道地址字启动通道指令返回指令

通道程序 ( 主存中 )

通道指令串

断开通道指令

通道CPU

I/O 中断请求

73

Page 76: 第七章  输入输出系统

76

2 、数据传送 通道执行通道程序,译码后组织并完成指定的 I/O 操作; 形成通道状态 (根据 I/O 设备状态 ) 、写到主存中;

3 、传送结束 CPU 响应中断请求, I/O 管理程序进行结束登记或异常处理

CPU执行用户程序

通道执行通道程序

访管指令

编制通道程序

组织并控制 I/O 传送

中断请求

中断响应

登记或处理

启动通道指令

执行 I/O 管理程序

※通道方式与 DMA 方式比较: ① 通道方式具有更强的 I/O处理能力 ( 如故障检测 )

② 通道承担部分准备与结束工作 (DMA 方式需 CPU 完成 )

报告通道及 I/O 设备的中断请求 ( 如传送结束、异常等 )

73

Page 77: 第七章  输入输出系统

77

三、通道的种类 * 选择通道:串行执行各个通道程序,串行控制多个块设备I/O( 单位为变长数据块 [ 传送需求 ]) ,各设备轮流处于工作状态

* 字节多路通道:交替执行多个通道程序,交叉控制多个字符设备 I/O( 单位为字节 ) ,各设备同时处于工作状态

通道

t

指令 1

设备 1设备 2

设备 1 通道程序设备 2 通道程序 1B

I/O

EndCH…

指令 N

1B I/O

指令 1

1B I/O

EndCH…

指令 M

1B I/O

通道

t

指令 i

设备 1

设备 2

设备 1 通道程序设备 2 通道程序

1B I/O

指令 i+1

1B I/O

…准备数据

准备数据

指令 j 指令 j+1

1B I/O 准备数据1B I/O

带宽= max{ 设备速率 }

带宽=∑ { 设备速率 }

Page 78: 第七章  输入输出系统

78

* 数组多路通道:交替执行多个通道程序,轮流控制多个块设备 I/O( 单位为定长数据块 ) ,各设备轮流处于工作状态

※通道的特点及应用: 字节多路通道—适用于中低速 ( 字符 ) 设备 选 择 通 道—适用于速度均匀的高速 ( 块 ) 设备 数组多路通道—适用于速度不均匀的高速 ( 块 ) 设备

通道

t

设备 1

设备 2

设备 1 通道程序设备 2 通道程序

1B I/O

… 1B I/O

指令1

指令K

…指令1

指令K

…指令K+1

指令2K

1B I/O … 1B

I/O

1B I/O … 1B

I/O

带宽= max{ 设备速率 }

作业三: P294— 25