第十章 输入输出结构

Post on 12-Jan-2016

147 views 0 download

description

第十章 输入输出结构. 10.1 异步数据传输 10.2 可编程 I/O 10.3 中断 10.4 直接存储器访问 10.5 I/O 处理器 10.6 串行通信 10.7 实例:串行通信标准. 为了有效地执行功能,计算机除了能实现与存储器的交互,还应能与外部世界和设备交互信息,所有这些与计算机进行交互的设备可以归类为 输入输出设备( I/O 设备). 举例: 输入设备:键盘、鼠标、扫描仪 输出设备:显示器、打印机 输入 / 输出设备:硬盘、调制调解器. 第十章 输入输出结构. 10.1 异步数据传输 10.2 可编程 I/O 10.3 中断 - PowerPoint PPT Presentation

Transcript of 第十章 输入输出结构

湖南大学计算机与通信学院 1

第十章 输入输出结构10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O 处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 2

为了有效地执行功能,计算机除了能实现与存储器的交互,还应能与外部世界和设备交互信息,所有这些与计算机进行交互的设备可以归类为输入输出设备( I/O 设备)

举例:输入设备:键盘、鼠标、扫描仪输出设备:显示器、打印机输入 / 输出设备:硬盘、调制调解器

湖南大学计算机与通信学院 3

第十章 输入输出结构

10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 4

输入 / 输出设备通过系统的地址总线、数据总线、控制总线和 CPU 相连(如图 10.1 )

图 10.1 CPU 与 I/O 设备的连接

地址总线:单向数据总线:单 / 双控制总线:单向

湖南大学计算机与通信学院 5

根据是源还是目的设备启动传送以及是否使用握手,异步数据传送可分为四种

1. 不带握手的源启动数据传送

2. 不带握手的目的启动数据传送

3. 带握手的源启动数据传送

4. 带握手的目的启动数据传送

湖南大学计算机与通信学院 6

10.1.1 源启动数据传送

源设备输出数据

选通控制信号并维持一段时间

目的设备读入数据

源设备使控制信号和数据无效

图 10.2 不带握手的源启动数据传送 ( a )时序

湖南大学计算机与通信学院 7

实现源数据传送更新 LED 的电路如图 10.2 ( b )

每隔 30 秒,源设备向输出设备发送一个新值,输出设备将此值存贮于一个 8位寄存器中;

寄存器的输出转换成相应的信号,在 LED 上显示两位数字。

图 10.2 不带握手的源启动数据传送 : ( b )实现

湖南大学计算机与通信学院 8

10.1.1 目的启动的数据传送

目的设备传输选通信号给源设备

一段时间后源设备使数据有效,并将数据稳定一段时间

目的设备读入数据后置数据选通信号无效

源设备停止传输有效数据

图 10.3 不带握手的目的启动数据传送 ( a )时序

湖南大学计算机与通信学院 9

实现目的数据传送更新 LED 的电路如图 10.3 ( b )

图 10.3 不带握手的目的启动数据传送:( b )实现

当 30 秒时钟信号为高时,数据选通信号置 1 ,选通三态缓冲器,使源设备传输有效数据,一个规定的延迟确保数据稳定后,目的寄存器读取数据,然后时钟信号为低,数据选通信号无效,有效数据不能传输。

湖南大学计算机与通信学院 10

10.3.1 握手不带握手的数据传送无需确认数据收

到,适合于在规定的时间内传送。

当每次传送所花费的时间不同时,设备可采用握手( handshaking )方式来协调数据传送。

湖南大学计算机与通信学院 11

带握手的源启动数据传送

源设备置数据请求信号为高,然后使有效数据可用

数据稳定后,目的设备读取此数据

目的设备读完数据,就发送一个数据确认信号给源设备

源设备停止传输有效数据,目的设备复位数据确认信号

图 10.4 带握手的源启动数据传送 ( a )时序

湖南大学计算机与通信学院 12

图 10.4 带握手的源启动数据传送:( b )实现

当 30 秒时钟为高时,数据请求触发器置 1 ; 数据请求信号也置 1 ,并依次选通三态缓冲器,使有效数据对目的设

备可用。 经一段延迟后,目的设备读取此数据并向源设备发送数据确认信号。 清除数据请求触发器,置数据请求信号为低并使数据无效。 最后数据确认信号置低。

湖南大学计算机与通信学院 13

带握手的目的启动数据传送

目的设备传输一个数据选通信号,源设备使有效数据可用

数据稳定后,目的设备读取此数据

目的设备读完数据,就发送一个数据准备就绪信号给源设备

源设备停止传输有效数据,目的设备复位数据准备就绪信号

图 10.5 带握手的目的启动数据传送 ( a )时序

湖南大学计算机与通信学院 14

图 10.5 带握手的目的启动数据传送:( a )时序和( b )实现

湖南大学计算机与通信学院 15

第十章 输入输出结构

10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 16

可编程 I/O ( programmed I/O )用指令编程来控制 CPU 输入或输出数据。

可编程 I/O 的编址方式 独立编址

有专门的指令访问 I/O 端口 存储器编址

把 I/O 端口视为存储器的一个单元,采 用存储器存取指令即可访问它们

湖南大学计算机与通信学院 17

相对简单 CPU ,其结构不能采用独立的 I/O 方式,但可利用存储器编址 I/O 方式

例:执行指令 LDAC FFFF

为了实现此 I/O 端口,设计硬件如图 10.6

图 10.6 地址为 FFFFH 的输入端口

当地址总线上的值为 FFFFH ,控制信号READ=1 时,三态缓冲器才选通

湖南大学计算机与通信学院 18

用相对简单的 CPU 设计自动调温器,它控制房间的加热和制冷系统,它可能执行下列操作:

1.由外部传感器读取温度;2.如果(温度≥自动调温器的设置温度 +2° ),则

打开空调;3.如果(温度≤自动调温器的设置温度且空调打

开),则关空调;4.如果(温度≤自动调温器的设置温度 -2° ),则打

开加热器;5.如果(温度≥自动调温器的设置温度且加热器打

开),则关加热器;6.返回至 1 。

湖南大学计算机与通信学院 19

1. CPU从存储器编址输入端口地址 FFFFH中读取当前温度

2. CPU从端口地址 FFFEH 中获取调温器的设定温度

3. CPU 向地址为 FFFDH 的输出端口中写入下面的值,以控制加热器和空调系统。

01= 打开空调 02= 关闭空调03= 打开加热器 04= 关闭加热器

4. 当前状态存贮于存储单元 1000H 中 00= 加热器和空调均关闭 FF= 加热器打开 FE= 空调打

湖南大学计算机与通信学院 20

系统控制程序的算法如图 10.7 所示

图 10.7 自动调温器控制算法

湖南大学计算机与通信学院 21

10.2.1 新指令

为了修改相对简单 CPU 以支持独立的 I/O 方式:必须在 CPU 指令集中增加输入、输出指令;产生必要的新控制信号;在状态图中增加新状态;开发 RTL代码支持新状态;修改寄存器、 ALU 和控制单元硬件来支持新的

指令;

湖南大学计算机与通信学院 22

增加两条新指令:一条输入数据、一条输出数据。如表 10.1 所示

指令 指令码 操作

INPT 0010 0000Γ AC←输入端口 Γ

OTPT 0010 0001Γ 输出端口 Γ←AC

表 10.1 相对简单 CPU 的独立 I/O 指令

湖南大学计算机与通信学院 23

增加一个新控制信号 IO , IO=1 时为 I/O 操作, IO=0 时为存储器操作

新状态

图 10.8 实现 INPT 指令执行周期的状态

RTL代码 INPT1 : DR←M , PC

←PC+1 , AR←AR+1 INPT2 : TR←DR , DR

←M , PC←PC+1 INPT3 : AR←DR , TR INPT4 : DR← 输入端口 INPT5 : AC←DR

湖南大学计算机与通信学院 24

硬件的修改 ( 1 )修改寄存器;( 2 )修改 ALU ;( 3 )修改控制单元

图 10.9 产生 INPT 执行周期的状态信号的硬件

湖南大学计算机与通信学院 25

计数器控制信号修改:INC= ( INC原有值)∨ INPT1 INPT2 INP∨ ∨T3 INPT4∨CLR= ( CLR原有值)∨ INPT5

组合 INPT1状态所需进行的修改:DRLOAD= ( DRLOAD原有值)∨ INPT1

MEMBUS= ( MEMBUS原有值)∨ INPT1

PCINC= ( PCINC原有值)∨ INPT1

ARINC= ( ARINC原有值)∨ INPT1

设定为 IO=INPT4 存储器读 =READ IOˊ∧

湖南大学计算机与通信学院 26

第十章 输入输出结构

10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 27

10.3.1 CPU 和 I/O 设备之间的数据传送

解决 I/O 设备变化延迟查询( polling )

中断( interrupt )减少由不确定性造成的延迟,

优化系统性能的一种机制

湖南大学计算机与通信学院 28

查询( polling )

CPUI/O

传送数据

请求信号

准备好没有?

湖南大学计算机与通信学院 29

考察计算机系统的一个输入设备

CPU 通过向 I/O 地址 1001H 中输出 01H 值,启动一个请求 然后不断查询输入端口 1002H 直至其最低位置 1 继后 CPU从输入端口 1000H 中读取数据

图 10.10 采用查询方式实现 I/O 端口的硬件

湖南大学计算机与通信学院 30

查询方式在设计和编程方面都相对直观,常用于 CPU负荷不很重的情况

不适合对于 CPU 时间很宝贵的系统

等待状态( wait state ) 处理器向 I/O 设备请求数据(或发送数据给 I/O 设备), I/O 设备经控制总线向 CPU 发送一个等待信号。只要等待信号有效, CPU 就一直处于等待状态

湖南大学计算机与通信学院 31

中断请求( interrupt request )

当 I/O 设备采用中断方式时, CPU 在向 I/O 设备输出请求后,能够继续执行指令,完成有用的工作,而无需查询设备或进入等待状态

设备准备传输数据时,它向 CPU 发送中断请求信号CPU响应中断,置中断响应信号有效,完成数据传输

湖南大学计算机与通信学院 32

10.3.2 中断类型

外部中断 CPU 采用外部中断与输入 / 输出设备进行交互 内部中断

内部中断完全发生在 CPU 内部,没有任何输入 / 输出设备介入

软中断 由 CPU 指令集中的特定中断指令产生

湖南大学计算机与通信学院 33

10.3.3 中断处理

中断服务程序:处理中断工作的服务软件

一对一 或 一对多一个中断服务程序对应一个中断一个中断服务程序对应多个中断

湖南大学计算机与通信学院 34

不管是一个还是多个中断服务程序的配置方式,每个中断都执行下列事件

无操作(直至当前指令执行完 )

获取中断服务程序地址(仅向量型中断)

调用中断服务程序

湖南大学计算机与通信学院 35

考察相对简单 CPU 的 LDAC 指令的执行周期:

无操作(直至当前指令执行完 )

LDAC1 : DR←M , PC←PC+1 , AR←AR+1

发生中断……LDAC2 : TR←DR , DR←M , PC←PC+1

LDAC3 : AR←DR , TR

LDAC4 : DR←M

LDAC5 : AC←DR

如果执行周期完成后产生中断,则仅需保存 PC 的内容

否则必须保存 CPU 内部寄存器内容和控制单元的状态信息

湖南大学计算机与通信学院 36

获取中断服务程序地址(仅向量型中断)

向量中断

向 CPU提供中断向量,此中断向量用于产生该中断的中断服务程序的地址

非向量中断

非向量中断在一个已知地址处读取中断服务程序

湖南大学计算机与通信学院 37

调用中断服务程序

1.阻止任何进一步的中断

3. 确保返回主程序前所有相关的寄存器保存原有值

2. 清除当前中断 ,避免一个中断请求 触发多于一个的中断

湖南大学计算机与通信学院 38

10.3.4 中断硬件和优先级非向量中断 (单个设备)

可用于简单嵌入式控制

湖南大学计算机与通信学院 39

向量中断 CPU必须从设备中读取中断向量,调用中断服务程序,程序的地址是该向量的一个函数

图 10.12 单个设备的向量中断( a )硬件 ( b )时序

在这种结构中如果在中断响应前,设备取消 IRQ会发生什么?

湖南大学计算机与通信学院 40

非向量中断 (多个中断)

图 10.13 多个非向量中断的硬件

每个设备均有自己的IRQ 和 IACK 信号

他们的优先级是预定的 , IRQn优先级最高

CPU首先响应和服务优先级最高的中断

湖南大学计算机与通信学院 41

向量中断 (菊花链方法)

菊花链:用于多中断优先权排队的一种方法

图10.14

菊花链

设备发出中断请求信号

CPU 发出中断响应信号

设备 n# 接受 IACK 信号

IACK=1?

IACK=0

CPU 读入中断向量 / 调用程序

一种可能的处理过程

IACK=0/传

给其他设备Y

N

湖南大学计算机与通信学院 42

IACKIN 和 IACKOUT 所有的可能值、状态

IACKin IACKout 状态

1 1 设备有权中断但未发送中断请求

1 0 设备中断 CPU

0 1 无效状态

0 0设备的中断请求被优先权更高的设备阻塞(设备可能或没有发送中断请求)

表 10.2 IACKIN 和 IACKOUT 的可能值及其状态

湖南大学计算机与通信学院 43

并行优先权排队

菊花链将引起硬件延迟,特别是当链较长时,延迟就更大

通过一个优先权编码器采用并行优先权排队( parallel priority )方式实现向量中断 ,减少延迟

湖南大学计算机与通信学院 44

图 10.15 并行方式实现优先级中断

防止干扰信号

湖南大学计算机与通信学院 45

10.3.5 CPU 内部实现中断

例:相对简单 CPU 处理中断的过程

1.添加一个 IRQ 输入引脚,其响应信号传至 IACK 输出引脚

2.添加新指令 LDSP 、 PUSHAC等3.识别中断并访问此中断处理的状态4.访问中断服务程序

湖南大学计算机与通信学院 46

指令 指令码 操作LDSP 10000000Γ SP←Γ

CALL 10000010ΓSP←SP-1;M[SP]←PC[15..8],SP←SP-1;M[SP]←PC[7..0],PC←Γ

RET 10000011PC[7..0]←M[SP],SP←SP+1;PC[15..8]←M[SP],SP←SP+1

PUSHAC 10000100SP←SP-1;M[SP]←AC

POPAC 10000101 AC←M[SP],SP←SP+1

PUSHR 10000110SP←SP-1;M[SP]←R

POPR 10000111 R←M[SP],SP←SP+1IESET 0100 0000 IE←1IERST 0100 0001 IE←0IPRST 0100 0010 IP←0

表 10.3 相对简单 CPU 的新指令

湖南大学计算机与通信学院 47

识别中断并访问此中断处理的状态

方法一

方法二

图 10.16 两种访问中断服务程序的方法( b )修改 FETCH1支持中断

( a )采用分离的 FETCH1状态和 INT1状态

(IE′ IP′) FETCH1 ∨ ∧IE IP FETCH1∧ ∧

湖南大学计算机与通信学院 48

访问中断服务程序(部分)

INT1 : AR←SP

INT2 : DR←PC[15..8] , SP←SP-1

INT3 : M←DR , AR←AR-1 , SP←SP-1

INT4 : DR←PC[7..0]

INT5 : M←DR

INT6 : DR← (数据总线来的向量)INT7 : PC←1111,DR,0000 , IP←0

湖南大学计算机与通信学院 49

第十章 输入输出结构

10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 50

直接存储器访问( DMA )

数据直接在 I/O 设备与存储器之间传送

DMA 控制器 (通道)

实现直接存储器访问

湖南大学计算机与通信学院 51图 10.17 带有 DMA 的计算机系统

DMA 控制器 CPU

置 BR=1, 发送总线请求

置 BG=1, 发送总线允许

湖南大学计算机与通信学院 52

DMA 控制器 CPU

置 BR=0, 发送取消请求

置 BG=0, 发送取消允许

当数据传输完成, DMA 交回控制权

湖南大学计算机与通信学院 53

DMA 内部结构

图 10.18 DMA 控制器的内部结构

湖南大学计算机与通信学院 54

DMA 控制器包括多个寄存器

DMA 地址寄存器存贮数据传输过程中需用到的存储器地址

DMA 计数寄存器保存传输数据的字节数

DMA 控制寄存器 从 CPU 中接受命令

状态寄存器 向 CPU提供信息

湖南大学计算机与通信学院 55

超时 :I/O 设备在某个预定的时间内没有准备就绪

湖南大学计算机与通信学院 56

10.4.2 DMA 传输方式

突发方式 在突发方式中,整个数据块连续传输

周期窃取方式连续地获取和放弃系统总线控制权 来传输

透明方式 DMA 利用空闲时间传输数据

湖南大学计算机与通信学院 57

10.4.3 修改 CPU 使其与 DMA共处

为了使 CPU 能与 DMA 控制器共同工作

1.增加控制输入信号 BR 和控制输出信号 BG

2.产生 BG 的逻辑电路 CPU允许在以下状态接受 DMA 的请求:

取指令后、译码后、取操作数后、指令执行完后、结果保存后

湖南大学计算机与通信学院 58

对 BG 的操作

如果 BR=1 且 CPU 处于 FETCH1状态,则 CPU 置 BG 为 1 ; CPU 将保持 FETCH1状态直至 BR 置 0

BR FETCH1∧ : BG←1

如果 BR=0 ,则 CPU 置 BG 为 0 且执行与 FETCH1状态相关的其它微操作

BR′ FETCH1∧ : BG←0 ,( FETCH1 的微操作)

湖南大学计算机与通信学院 59

实现 BG 的硬件

图 10.19 BG 的硬件实现状态图所需的修改

图 10.20 修改状态图接纳 BR 和 BG

湖南大学计算机与通信学院 60

第十章 输入输出结构

10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O 处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 61

DMA 控制器 仅能传输数据

I/O 处理器 与 CPU 交互,处理由 I /O 设备读出后数据可连接多个 I/O 设备 I/O 设备连接至 I/O 总线上,而不是系统总线上

湖南大学计算机与通信学院 62

图 10.21 带 I/O 处理器的系统结构

湖南大学计算机与通信学院 63

CPU 向 I/O 处理器发送一系列 I/O 指令,而不象处理 DMA那样将值存于寄存器中,指令分为三类:

1.块传送命令

2. 执行算术、逻辑、和分支操作的命令

3. 控制命令

传输数据块 ,类似于 DMA 数据块传输

有助于处理数据以便使数据能为 CPU 所用

通常是硬件相关并对计算机系统功能的正确发挥十分关键

湖南大学计算机与通信学院 64

一个 I/O 处理器的系列命令能执行许多连续的 I/O 传送,考虑以下任务:

1 、从端口地址 9000H 的磁盘驱动器处读取 247 字节的数据,写入起始地址为 1000H 的存储器中;

2 、从地址为 9001H 的输入端口读取 1 字节数据写入 CPU 的累加器中;

3 、将内存单元 2000H 至 207FH 的内容写至 I/O 地址为 9002H的打印机上。

带 DMA 控制器而没有 I/O 处理器的系统首先将数据写入 DMA 控制器的寄存器中,并启动传输,等待它完成。然后它从地址为 9001H 的 I/O 端口输入 1 字节数据。最后为打印数据块启动第二个 DMA 传送。而在带 I/O 处理器的系统中, CPU 将执行三个任务所需的命令写入存储器的一个连续块中,并将块的指针给 I/O 处理器,从而减少了建立传输的开销。

湖南大学计算机与通信学院 65

第十章 输入输出结构

10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 66

并行通信:同一时间内传输多位数据 DMA 控制器和 I/O 处理器都采用并行通信

串行通信:在给定的时间内不能传输多位数据,传输数据要通过并串转换

打印机、 MODEM等通过串口与 CPU 通信

异步串行通信:连接的设备不共用同一时钟并且需同时传输数据

同步串行传输 :以帧( frame )的形式传输数据块,帧中包括传输信息头、数据和传输信息尾

湖南大学计算机与通信学院 67

10.6.1 串行通信原理

两个设备采用异步串行传输通信时,他们不共用同一时钟。必须采用许多措施同步数据流因而事先就一些传输参数达成一致

速度:比特 / 秒 ----- 每秒位数奇偶校验位 起始位 停止位

一些基本参数

湖南大学计算机与通信学院 68

图 10.22 显示了传输两字节数据及其传输间隔中传输线的值,此系统采用许多调制解调器传输时的典型设置 N81 :即没有奇偶位、八位数据位和一位停止位

图 10.22 两字节数据的传输实例

1 2 3 4 5 6 7 8

开销达到整个传输的 20%

湖南大学计算机与通信学院 69

字符数据如需按位操 ,必须将每个字符编码

美国信息交换标准码( 128 字符)前 32 个字符为控制代码 剩下的字符为打印字母、数字和符号

扩展 ASCII

Unicode

湖南大学计算机与通信学院 70

同步传输 通过减少开销来改善传输性能。它不给每个数据送起始位和停止位,而是将几个数据合成一个数据块,并在此数据块前和尾添加适当信息以形成一帧数据

高级数据链路控制

图 10.23 高级数据链路控制的帧格式

检查传输中错误

湖南大学计算机与通信学院 71

10.6.2 通用异步收发器( UART )

通用异步收发器

10.24 带 UART 的计算机系统

湖南大学计算机与通信学院 72

图 10.25 UART 的内部结构

湖南大学计算机与通信学院 73

第十章 输入输出结构

10.1 异步数据传输10.2 可编程 I/O10.3 中断10.4 直接存储器访问10.5 I/O处理器10.6 串行通信10.7 实例:串行通信标准

湖南大学计算机与通信学院 74

10.7.1 RS-232-C 标准传输速度可达 115,200bps ,包括 9 个信号如下

请求发送清除发送发送数据数据终端准备就绪数据设备准备就绪接收数据载波检测振铃指示接地

湖南大学计算机与通信学院 75

10.7.2 通用串行总线标准 USB

四种类型包记号包:指明传输方(或帧产生者)的地址

和端点数据包:包括传输到设备或从设备来的数据握手包:传递用于协调数据传输的信息专用包:还有一些具有许多不同功能的

湖南大学计算机与通信学院 76

图 10.26 USB包格式:( a )记号包,( b )数据包,( c )握手包

湖南大学计算机与通信学院 77

计算机可采用带握手或不带握手、源或目的启动的异步数据传输执行交互。计算机也可用存储器编址方式或独立编址方式的可编程 I/O 与 I/O 设备通信。这些方式中, CPU必须有逻辑电路去访问 I/O 设备和处理指令集中的 I/O 指令。

中断是计算机用于与 I/O 设备交互的有效方法。系统可以有多个中断,多个中断可采用菊花链或并行优先权硬件进行优先级排队。

直接存储器访问可提高存储器与 I/O 设备之间的数据传输速度

串行通信用于在计算机与外部设备之间每次传输一位数据