1 / 86

第十章 输入输出结构

第十章 输入输出结构. 10.1 异步数据传输 10.2 可编程 I/O 10.3 中断 10.4 直接存储器访问 10.5 I/O 处理器 10.6 串行通信 10.7 实例:串行通信标准. 同济大学 软件学院. 10.1 异步数据传输. 输入 / 输出设备通过系统的地址总线、数据总线、控制总线和 CPU 相连(如图 10.1 ). 图 10.1 CPU 与 I/O 设备的连接. 1. I/O 接口的基本功能 实现主机和外设之间的数据传送控制。 如同步控制、设备选择、中断控制和 DMA 控制

ajay
Download Presentation

第十章 输入输出结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 10.1 异步数据传输 输入/输出设备通过系统的地址总线、数据总线、控制总线和CPU相连(如图10.1) 图10.1 CPU与I/O设备的连接

  3. 1. I/O接口的基本功能 • 实现主机和外设之间的数据传送控制。 如同步控制、设备选择、中断控制和DMA控制 (2) 实现数据缓冲,以达到主机与外设之间的速 度匹配。 (3) 接受主机的命令,提供设备接口的状态,并 按照主机的命令控制设备。

  4. 2. I/O接口类型 (1)按照数据传送的宽度可分为 并行接口和串行接口 (2)按照数据传送的控制方式可分为 直接程序控制、程序中断、DMA 通道、外围处理机 (3)按照时序控制方式可分为 同步接口和异步接口

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

  6. 10.1.1 不带握手的源启动数据传送 源设备 输出数 据 选通一个控制信号并维持一段时间 目的设备读入数据 源设备使控 制信号和数 据无效 图10.2 不带握手的源启动数据传送 (a)时序

  7. 实现源数据传送更新LED的电路如图10.2(b) 图10.2 不带握手的源启动数据传送:(b)实现

  8. 10.1.2 不带握手的目的启动的数据传送 目的设备读入数据后置数据选通信号无效 目的设备传输选通信号给源设备 一段时间后源设备使数据有效,并将数据稳定一段时间 源设备停止传输有效数据 图10.3 不带握手的目的启动数据传送 (a)时序

  9. 实现目的数据传送更新LED的电路如图10.3(b) 图10.3 不带握手的目的启动数据传送:(b)实现

  10. 10.1.3 握 手 不带握手的数据传送无需确认数据收到, 适合于在规定的时间内传送。 当每次传送所花费的时间不同时,设备可 采用握手方式来协调数据传送。

  11. ◆ 带握手的源启动数据传送 源设备置数据请求信号为高,然后使有效数据可用 数据稳定后,目的设备读取此数据 目的设备读完数据,就发送一个数据确认信号给源设备 源设备停止传输有效数据,目的设备复位数据确认信号 图10.4 带握手的源启动数据传送 (a)时序

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

  13. ◆ 带握手的目的启动数据传送 目的设备读完数据,就发送一个数据准备就绪信号给源设备 源设备停止传输有效数据,目的设备复位数据准备就绪信号 目的设备传输一个数据选通信号,源设备使有效数据可用 数据稳定后,目的设备读取此数据 图10.5 带握手的目的启动数据传送 (a)时序

  14. 图10.5 带握手的目的启动数据传送:(a)时序和(b)实现 数据准备就绪 数据请求

  15. 10.2 可编程I/O ◆ 可编程I/O(programmed I/O) 用指令编程来控制CPU输入或输出数据。 ◆ 可编程I/O的特点 • 何时何地进行输入/输出完全受CPU控制; • 数据的输入输出都要经过CPU; • 用于连接低速外围设备。

  16. ◆ 可编程I/O的编址方式 独立编址 有专门的指令访问I/O端口。 存储器编址 把I/O端口视为存储器的一个单元,采用 存储器存取指令即可访问它们。

  17. 相对简单CPU,其结构不能采用独立的I/O方式,但可利用存储器编址I/O方式。相对简单CPU,其结构不能采用独立的I/O方式,但可利用存储器编址I/O方式。 例:执行指令LDAC FFFF 为了实现此I/O端口,设计硬件如图10.6。 当地址总线上的值为FFFFH,控制信号READ=1时,三态缓冲器才选通 图10.6 地址为FFFFH的输入端口

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

  19. 1.增加两条新指令 一条输入数据 一条输出数据 表10.1 相对简单CPU的独立I/O指令

  20. 2. 增加一个新控制信号IO IO=1时为I/O操作,IO=0时为存储器操作 3. 新状态与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 图10.8 实现INPT指令执行周期的状态

  21. 4 .硬件的修改 (1)修改寄存器 (2)修改ALU (3)修改控制单元 图10.9 产生INPT执行周期的状态信号的硬件

  22. ◆ 计数器控制信号修改 INC=(INC原有值)∨ INPT1∨ INPT2∨ INPT3∨ INPT4 CLR=(CLR原有值)∨ INPT5 ◆ 组合INPT1状态所需进行的修改 DRLOAD=(DRLOAD原有值)∨ INPT1 MEMBUS=(MEMBUS原有值)∨ INPT1 PCINC=(PCINC原有值)∨ INPT1 ARINC=(ARINC原有值)∨ INPT1 ◆ 设定为IO=INPT4存储器读=READ ∧ IO

  23. 直接程序控制方式可分为两种传送方式: (1)直接传送方式 CPU在控制与外设之间的数据传送之前,不需了解外设的工作状态,即可直接执行I/0指令,实现数据传送。 直接传送方式无需查询设备的任何状态,也无需考虑同步问题。也称为无条件传送方式。多用于I/0操作时间固定且已知的情况下。

  24. (2)程序查询方式 ◆CPU向I/O设备发传送数据的请求信号。 ◆I/O设备处理该请求,当其准备传送数据时, 就置位设备准备就绪信号。 ◆CPU通过另一个I/O地址读此信号并检查其值。 如果信号置位,CPU执行数据传送。如果未置 位,则循环等待,继续读取并检查设备准备就 绪信号的值。

  25. 例:考察相对简单CPU的一个输入设备 (1) 输入/输出指令 INPT(AC←INPUT PORT Г) OTPT(OUT PORT Г←AC) (2)设备有三个I/O端口:两个输入、一个输出。 输出端口:1001H中输出01H值,启动一个请求。 输入端口:1002H(查询该端口直至其最低位置1) 1000H(从中读取数据)

  26. 图10.10 采用查询方式实现I/O端口的硬件 输出端口:1001H中输出01H值,启动一个请求。 输入端口:1002H(查询该端口直至其最低位置1) 1000H(从中读取数据)

  27. CLAC INAC (AC←1) MOVR (R←1) OTPT 1001H ( 01H → address 1001H) LOOP: INPT 1002H (Check whether the device is ready) AND (AC=1 and Z=0 if device is ready) JMPZ LOOP (If device not ready,AC=0 and Z=1,loop back) INPT 1000H (Device is ready,input data)

  28. 10.3 中 断 10.3.1 CPU和I/O设备之间的数据传送 1. 解决I/O设备变化延迟 ◆ 查询 ◆ 中断 中断是由I/O设备或其他非预期的急需处 理的事件引起的,它使CPU暂时中断现在正在 执行的程序,而转至另一服务程序去处理这 些事件。处理完后再返回原程序。

  29. 2. 中断输入输出方式的特点 (1) CPU与I/O并行工作; (2) 硬件故障处理; (3) 实现人机对话; (4) 实现多道程序和分时操作; (5) 实现实时处理; (6) 实现应用程序和操作系统的联系; (7) 多处理机系统各处理机间的联系。

  30. 10.3.2 中断类型 ◆ 外部中断 CPU采用外部中断与输入/输出设备进行交互。 ◆ 内部中断 内部中断完全发生在CPU内部,没有任何 输入/输出设备介入。 ◆ 软中断 由CPU指令集中的特定中断指令产生。

  31. 10.3.3 中断处理 1. 中断源 引起中断的事件或者发出中断请求的来源。 2. 中断源如何提出请求? (1) 中断请求信号的建立 ◆ 中断触发器 每个中断源对应有一个中断触发器。 ◆ 多个中断触发器构成中断寄存器,其内容称 为中断字或中断码。

  32. (2) 中断请求信号的传送 三种方案: ◆ 单独设置中断请求线 快速响应、中断请求线数目有限 ◆ 一根公共中断请求线 ◆ 兼有公共请求线与独立请求线 将中断源分级或分组 (3) 中断响应信号

  33. 3. 中断的优先级 设计中断系统时,应将全部中断源按中断 性质和处理的轻重缓急进行排队并给以优先级。 (1)优先级 指多个中断发生时,对中断响应的次序。 (2)判优的实现 ◆ 软件查询 ◆ 中断排队逻辑

  34. 4.中断的允许与禁止 ◆ 中断允许 中断源有中断请求信号就可使其对应的 中断触发器置“1”状态或参加排队判优。 ◆ 中断禁止 中断源即使有中断请求信号也不能使其 对应中断触发器置“1”状态或不允许参加排 队判优。 5. 中断服务程序:处理中断工作的服务软件。

  35. 6. 中断处理过程(中断响应与中断处理) 从某一个中断源发出中断服务请求,到这个 请求全部处理完成所经过的主要过程。 (1)中断查询 CPU在一条指令周期内要查询一次是否有中 断产生。 (2)中断响应 ◆关中断 ◆ 保存断点 ◆ 转入中断服务程序

  36. 程序屏蔽码 程序运行状态 条件码 中断码 指令计数器 获取中断服务程序地址: ◆向量中断 中断向量:中断服务程序的入口地址以及 程序状态字的合称。 程序状态字PSW:用来表征处理机运行程序的状态。 一般应包含如下内容:

  37. 编 码

  38. ◆非向量中断 CPU在响应中断时只产生一个固定的地址,该 地址是中断查询程序的入口地址,CPU转去执行查 询程序,通过软件查询确定中断源,然后执行相应 的中断服务程序。 查询程序:又称中断总服务程序。

  39. (3)执行中断服务程序 ◆ 保存现场 ◆ 开CPU中断 ◆ 执行中断服务程序 ◆ 关CPU中断 ◆ 恢复现场 ◆ 恢复屏蔽码 ◆ 恢复PSW、PC ◆ 开CPU中断 ◆ 返回断点

  40. 10.3.4 中断硬件和优先级 1. 单个设备的简单系统 ◆ 非向量中断 图10.11 单个设备的非向量中断(a)硬件 (b)时序

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

  42. 2. 多个设备的系统 ◆ 非向量中断 每个设备均有自己的IRQ和IACK信号 他们的优先级是预定的 ,IRQn优先级最高 CPU首先响应和服务优先级最高的中断 图10.13 多个非向量中断的硬件

  43. ◆ 向量中断 菊花链:用于多中断优先权排队的一种方法。 简单易实现 便于扩充 延迟大 图10.14 菊花链

  44. 菊花链将引起硬件延迟,特别是当链较长时,延迟就更大。 并行优先权排队 通过一个优先权编码器采用并行优先权排队(parallel priority)方式实现向量中断,减少延迟。 扩展困难。

  45. 防止干 扰信号 图10.15 并行方式实现优先级中断

  46. 10.3.5 多重中断处理 多重中断是指在处理某一中断过程中又发生了新的中断,从而中断该服务程序的执行,又转去进行新的中断处理。这种重叠处理中断的现象又称中断嵌套。 ◆ 中断响应次序与中断处理次序 中断响应次序是由硬件排队判优线路决定的, 不能改变,而中断处理次序可由屏蔽码决定,是可 以改变的。 中断处理次序可以不同于中断响应次序。

  47. 一级中断 处理程序 二级中断 处理程序 三级中断 处理程序 目的程序 m l k k+1 l+1 m+1

  48. 例如:某计算机的中断系统有4级中断优先级,每例如:某计算机的中断系统有4级中断优先级,每 级对应一个屏蔽码,下表为程序级别和屏蔽码的关 系,中断响应次序和处理次序一致,均为: 1 → 2 → 3 → 4

  49. 屏蔽码 程序级别 1级 2级 3级 4级 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 第1级 第2级 第3级 第4级

  50. 1 2 3 1 2 1 4 4 3 2 中断服务 程序 正常程序 按照这一次序可以看到CPU运动的轨迹,如下图。

More Related