1 / 111

计算机硬件技术基础

计算机硬件技术基础. hardwarebasic@163.com. 输入输出接口概述. 接口概念: 输入 / 输出 (I/O) 接口是主机与外部设备(简称外设)之间所设置的逻辑控制部件,通过它实现主机与 I/O 设备之间的信息交换。. 思考问题: 微型计算机和外设之间为什么需要接口 ?. 输入输出接口概述. 微型计算机和外设之间为什么需要接口 ?. 一般情况下,存储器可以与总线直接相连,而外部设备却需要通过接口与 CPU 的总线相连,原因是由存储器和外设的特点决定: 存储器: 功能单一 传输方式单一(一次一个字或一个字节) 操作方式单一(读和写)

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. 计算机硬件技术基础 hardwarebasic@163.com

  2. 输入输出接口概述 • 接口概念: • 输入/输出(I/O)接口是主机与外部设备(简称外设)之间所设置的逻辑控制部件,通过它实现主机与I/O设备之间的信息交换。 思考问题: 微型计算机和外设之间为什么需要接口?

  3. 输入输出接口概述 微型计算机和外设之间为什么需要接口? • 一般情况下,存储器可以与总线直接相连,而外部设备却需要通过接口与CPU的总线相连,原因是由存储器和外设的特点决定: • 存储器: • 功能单一 • 传输方式单一(一次一个字或一个字节) • 操作方式单一(读和写) • 制造工艺与CPU相似,速度与CPU相匹配

  4. 输入输出接口概述 微型计算机和外设之间为什么需要接口? • 外设: • 种类繁多 (机械、机电、电子) • 信号种类不一 (A,D,开关量) • 信号格式不同 (串行,并行) • 同一个时刻CPU通常只和一个外设交换信息 • 工作速度不同,且范围宽。如硬盘和打印机 • 工作时序不匹配,无法和CPU时序取得统一 接口:解决以上差异,协调、匹配外设与主机正常工作的逻辑部件及相应控制软件。

  5. 输入输出接口概述 • 接口电路的任务: • 对数据提供缓冲(时间和电气性能上):设置数据的寄存、缓冲逻辑; • 信息格式相容性变换:如串并行的转换;电平转换、数/模或模/数转换等; • 协调时序差异:提供“准备好”“空”“满”等状态信号 • 提供地址译码或设备选择信号: • 提供中断和DMA控制逻辑及管理:

  6. 输入输出接口概述 I/O端口的寻址方式 CPU要操作接口,首先要能识别这个接口。 解决方法:通过地址识别。 (1)存储器映像寻址方式 若把系统中的每一个I/O端口都看作一个存储单元,并与存储单元一样统一编址,这样访问存储器的所有指令均可用来访问I/O端口,不用设置专门的I/O指令。 优点:简化了指令集, 对I/O设备的访问更加灵活方便,I/O地址空间可大可小 缺点:占用内存空间,访问速度慢。

  7. 输入输出接口概述 I/O端口的寻址方式 (2)I/O单独编址方式 对系统中的输入输出端口地址单独编址,构成一个I/O空间,他们不占用存储空间,而是用专门的IN和OUT指令来访问这种具有独立地址空间的端口。 优点:将输入输出指令和访问存储器的指令明显区分开,使程序清晰,可读性好;I/O指令长度短,执行速度快,不占用内存空间;I/O地址译码电路简单。 缺点:指令系统中需专门的指令,且这些指令的功能没有访问存储器指令强;CPU需提供区分存储器读/写和I/O读写的控制信号。

  8. 输入输出接口概述 CPU和I/O设备之间的接口信息 1、数据信息 数字量信息:离散的二进制形式数据,最小单位为“位(b)”,8位为一个字节(B)。 模拟量信息:用模拟电压或模拟电流幅值大小表示的物理量。 开关量:只有两个状态,“开”和“关”,用一位二进制数即可表示。

  9. 输入输出接口概述 CPU和I/O设备之间的接口信息 2、状态信息 反映当前外设所处的工作状态,实际中通过状态端口信息表现。例如:输入时:“准备好”(Ready) 输出时:“空”(Empty)、“忙”(Busy) 3、控制信息 由CPU发出的用来控制外设工作的信号。例如:控制输入/输出装置的启动或停止、读或写 问题提出:数据信息、状态信息、控制信息是不同性质的信息,被分别传送,如何实现?

  10. 输入输出接口概述 CPU和I/O设备之间的接口信息 • 问题解决:数据信息、状态信息、控制信息使用不同的端口地址。 • 问题结论:都通过数据总线传送,但放在接口的不同寄存器 (I/O端口)中,其中: • 输入输出的数据信息放在数据缓冲器 • 输入的状态信息放在状态寄存器 • 输出的控制信息放在控制寄存器

  11. 接口 数据输入寄存器 数据输出寄存器 控制输出寄存器 状态输入寄存器 输入输出接口概述 CPU和I/O设备之间的接口信息 外设通过接口与CPU之间的连接 CPU 外 部 输 入 或 输 出 设 备 DB DB 数据 控制 AB AB 状态 CB CB

  12. 输入输出接口概述 CPU和I/O设备之间的接口信息 • 访问接口的过程描述: • CPU先将地址信息发送到地址总线,将确定的控制信息发送到控制总线(打开相应端口); • CPU传输数据信息到数据总线上等待相应端口接收,或者CPU等待接口把指定端口的内容送到数据总线上(收发数据)。 • 注意:地址是端口(寄存器)的地址,而不是接口部件的地址,一个接口部件包含多个端口,即多个地址。

  13. 输入输出接口概述 CPU和I/O设备之间的接口信息 • 几点说明: • I/O端口即I/O接口的寄存器,接口中的每个寄存器都有一个端口地址,每个I/O接口都有一组寄存器。 • CPU与外设的信息交流就是CPU与接口寄存器(端口)的交流。 • 数据输入和数据输出寄存器可以使用同一地址;控制输出和状态输入寄存器可以使用同一地址。

  14. CPU和外设之间的数据传送方式 • 程序方式 • 无条件传送方式 • 查询传送方式 • 中断传送方式 • 直接存储器存取(DMA) 控制方式

  15. CPU和外设之间的数据传送方式 无条件传送方式 定义: 在数据传送过程中,输入或输出数据一方不查询、判断对方的状态,进行无条件的数据传送。 CPU能够确信外设准备就绪,就不用查询外设的状态而可以直接进行数据传输。 驱动指示灯、继电器、启动电机等 例如:CPU要输出一个数据到显示器显示,由于显示器是可以根据输入数据而随时改变显示内容的设备,因而CPU就可以直接向其发送数据,而无需查询。

  16. CPU和外设之间的数据传送方式 无条件传送方式 CPU 数据总线 输 入 设 备 三态 缓冲器 数据 地址总线 地址译码器 来自外设 IO/M & RD 无条件传送的输入方式

  17. CPU和外设之间的数据传送方式 无条件传送方式 CPU 数据总线 输 出 设 备 锁存器 数据 地址总线 地址译码器 到外设 CE IO/M & WR 无条件传送的输出方式

  18. CPU和外设之间的数据传送方式 查询传送方式 定义: CPU执行程序不断读取并测试外设的状态,如果外设处于准备好(输入)或空闲(输出)状态,则执行输入或输出指令,进行数据交换,否则等待。

  19. CPU和外设之间的数据传送方式 查询传送方式 完成一次数据传送的过程: 1) CPU从状态端口读取外设的状态字; 2) CPU检测状态字对应位是否满足“就绪”条件; 3) 如不满足,则重复执行1)2)过程,直到条件 满足; 4) 如果条件满足,表明外设就绪,则传送数据, 同时I/O的状态复位。

  20. 从状态端口读入状态信息 N 外设准备好否? Y 从数据端口传送一个数据 CPU和外设之间的数据传送方式 实现流程: 在与外设进行传送数据前,CPU先查询外设状态,当外设准备好后,才执行I/O指令,实现数据传送 特点: 1. CPU通过不断查询外设状态,实现与外设的速度匹配 2. CPU的工作效率低

  21. CPU和外设之间的数据传送方式 查询传送方式 两种查询传送方式: 1. 查询式输入 2. 查询式输出 查询式输入方式描述 查询式输入是程序控制下的查询式输入方式,在传送前,CPU必须去查询一下外设的状态,当外设准备好了才传送;若未准备好,CPU则等待。

  22. CPU和外设之间的数据传送方式 RD & CPU DB 数据 锁存器 锁存器 三态缓冲器 (8位) 三态缓冲器 (8位) 输 入 设 备 Di READY(状态信息) 地 址 译 码 器 AB R 三态缓冲器 (1位) 三态缓冲器 (1位) 选通信号 D Q 准备就绪触发器 & +5V IO/M 查询式输入接口电路

  23. CPU和外设之间的数据传送方式 RD & CPU DB 数据 锁存器 锁存器 三态缓冲器 (8位) 三态缓冲器 (8位) 输 入 设 备 Di READY(状态信息) 地 址 译 码 器 AB R 三态缓冲器 (1位) 选通信号 D Q 准备就绪触发器 & +5V IO/M 查询式输入接口电路

  24. CPU和外设之间的数据传送方式 查询式输入的过程: 1. 输入设备准备好后,发选通信号; 2. 数据进入锁存器锁存,并使D触发器置1,从而使三态缓冲器输出状态信号; 3. CPU从状态端口读入状态字; 4. CPU检测状态位,如果条件满足; 5. CPU从数据端口读入数据; 6. 清状态字。

  25. D7 D0 CPU和外设之间的数据传送方式 查询式输入时的数据和状态信息: 数据信息 数据端口(8位) (输入) 8位 状态信息 状态端口(1位) (输入) D7 “READY”(1位)

  26. CPU和外设之间的数据传送方式 查询式输入的查询程序: LOOP1: IN AL,STATUS_PORT ;读入状态值 TEST AL,80H ;READY=1? JZ LOOP1 ;未准备好?循环 IN AL,DATA_PORT ;是,输入数据 讨论:分析查询程序,熟悉汇编语言在接口电路中的应用。

  27. 例1查询方式输入 假设 外设的状态端口为21C H, 其中D4=1时,表示外设数据准备好 外设的数据端口为218 H。 实现从外设读入50H个字节到内存缓冲区buffer中。 地址线 C P U 输入 外 备 地址 译码 21CH端口 状态端口 数据线 数据 缓冲 218H端口 数据端口 控制线 控制 电路 CPU和外设之间的数据传送方式

  28. 编程从外设读入50H个字节到内存缓冲区buffer中 从21CH状态端口 读入外设状态信息 N Y Y D4=1, 外设准备好否? 从218H数据端口 读入一个字节数据 N 50H个数据传送结束? CPU和外设之间的数据传送方式

  29. 查询方式输入程序段: • 、、、 • MOV AX, SEG buffer ;取缓冲区首地址 • MOV DS, AX • LEA DI, buffer • MOV CX, 50H ;传送个数 • next: MOV DX, 21CH • ask:IN AL, DX ;从状态端口读入状态信息 • TEST AL, 0001 0000B ;检测D4位 • JZ ask ;D4=0,继续查询 • MOV DX, 218H • IN AL, DX ;从数据端口读入数据 • MOV [DI], AL ;送缓冲区 • INC DI ;修改缓冲区指针 • LOOP next ;传送下一个 • 、、、 CPU和外设之间的数据传送方式

  30. 数据 锁存器 CPU和外设之间的数据传送方式 查询式输出接口电路 DB CPU 数据 输 出 设 备 WR 选通信号 & 地 址 译 码 器 ACK AB R & +5V Q D IO/M 忙触发器 RD 状态缓冲器 (1位) BUSY 状态忙置1

  31. CPU和外设之间的数据传送方式 查询式输出的过程: 1. 通过M/IO,WR信号将数据写入锁存器,并同时将状态触发器置1,进而使状态位BUSY置1,防止CPU再次传送数据; 2. 外设读取数据; 3. 外设向接口发ACK信号,将状态位BUSY清零。

  32. D7 D0 CPU和外设之间的数据传送方式 查询式输出时的数据和状态信息: 数据信息 数据端口(8位) (输出) 8位 状态信息 状态端口(1位) (输出) D7 “READY”(1位)

  33. CPU和外设之间的数据传送方式 查询式输出的查询程序: LOOP2: IN AL,STATUS_PORT ;读状态信息 TEST AL,80H ;检查BUSY位 JNZ LOOP2 ;BUSY=0? MOV AL,STORE ;为零,取数据 OUT DATA_PORT,AL ;数据端口输出 问题:结合汇编语言,分析程序是如何实现查询输出功能的?

  34. 例2查询方式输出 假设 外设的状态端口为21C H, 其中D0 = 0时,表示外设准备好 外设的数据端口为219 H。 编程将缓冲区buffer的80H个字节输出到外设。 地址线 C P U 输出 外 设 地址 译码 21CH端口 状态端口 数据线 数据 缓冲 219H端口 数据端口 控制线 控制 电路 CPU和外设之间的数据传送方式

  35. 编程将缓冲区buffer的80H个字节输出到外设 从21CH状态端口 读入外设状态信息 N Y Y D0=0, 外设准备好否? 将一字节数据送至 219H数据端口 N 80H个数据传送结束? CPU和外设之间的数据传送方式

  36. 查询方式输出程序段: • 、、、 • MOV AX, SEG buffer ;取缓冲区首地址 • MOV DS, AX • LEA SI, buffer • MOV CX, 80H ;传送个数 • next: MOV DX, 21CH • ask:IN AL, DX;从状态端口读入状态信息 • TEST AL, 0000 0001B ;检测D0位 • JNZ ask;D0≠0,继续查询 • MOV AL, [SI] ;从缓冲区取数 • MOV DX, 219H • OUT DX, AL ;从数据端口输出数据 • INC SI ;修改缓冲区指针 • LOOP next ;输出下一个 • 、、、 CPU和外设之间的数据传送方式

  37. CPU和外设之间的数据传送方式 中断方式 工作原理: 当外设准备好数据或可以接收数据时,就通过接口向CPU发出中断请求信号,CPU在执行完当前的一条指令后,检测是否有中断信号,如果有中断信号,则CPU转向执行中断服务程序,执行完毕后CPU返回原来的程序继续执行。

  38. CPU和外设之间的数据传送方式 中断传送方式输入接口电路 CPU 数据 锁存器 数据 锁存器 DB 数据 三态 缓冲器 三态 缓冲器 输 入 设 备 RD & & IO/M AB 地址 译码器 中断请求 触发器 RDY 状态信号 D 1 1 Q INT +5V

  39. CPU和外设之间的数据传送方式 中断方式 中断传送方式的过程: 1. 输入设备准备就绪,发出就绪状态信号,数据暂存在锁存器中,同时中断请求触发器置“1”,向CPU发出中断请求信号; 2. CPU响应中断,执行中断服务程序,从数据端口输入数据,同时将中断请求触发器置“0”,撤销中断请求; 3. CPU返回被中断的程序。

  40. 中断方式下 CPU执行程序流程 外 设 发申请 中断服务程序 发申请 中断服务程序 CPU和外设之间的数据传送方式

  41. CPU和外设之间的数据传送方式 •  中断传送方式的特点: • CPU和外设大部分时间处在并行工作状态, • 只在CPU响应外设的中断申请后,进入数据传送的过程 • 2. 中断传送方式提高了CPU的效率

  42. CPU和外设之间的数据传送方式 三、查询传送方式VS中断传送方式 查询方式 中断方式 CPU不主动查询外设,只执行自己的程序,当外设准备好需要传送数据时,提出申请,若CPU准于请求,放下正在执行的程序,去传送外设的数据。

  43. CPU和外设之间的数据传送方式 直接存储器存取(DMA)控制方式 DMA传送方式的提出 DMA(Direct Memory Access)直接存储器存取控制方式下,I/O设备是和存储器直接交换信息,不需要CPU介入,外设与存储器间的数据传输是在硬件的作用下完成的。 优点:传输速度大幅提高。

  44. 主存 I/O设备 CPU 改进 主存 I/O设备 总线 CPU和外设之间的数据传送方式 直接存储器存取(DMA)控制方式 使用直接存储器传送方式(DMA),实现数据块操作。 DMA方式下,外设利用专门的接口电路直接和存贮器进行高速数据传送,而不经过CPU。数据的传输速度基本上决定于外设和存储器的速度。

  45. CPU和外设之间的数据传送方式 实现方法: 1. 由专用接口芯片DMA控制器(称DMAC) 控制传送过程, 2. 当外设需传送数据时,通过DMAC向CPU发出总线请求; 3. CPU发出总线响应信号,释放总线; 4. DMAC接管总线,控制外设、内存之间直接数据传送. DMA传送方式的特点 1. 外设和内存之间,直接进行数据传送,不通过CPU, 传送效率高。 适用于在内存与高速外设、 或两个高速外设之间进行大批量数据传送。 2. 电路结构复杂,硬件开销较大。

  46. DMA 传送方式过程 CPU 内存 总线 请求 总线 响应 外设 DMAC CPU和外设之间的数据传送方式

  47. 中断系统 • 什么是中断 • 中断源 • 中断分类 • 中断类型号 • 中断优先权 • 中断服务程序 • 断点和中断现场 • 8086/8088 CPU响应中断的过程 • 8086/8088 CPU如何获取中断类型号

  48. 什么是中断 中断系统 • 在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。

  49. 中断源 中断系统 • 引起中断的因素很多,将发出中断申请的外设或内部原因,称为中断源。例如:CPU指令执行产生的异常(如被零除)、停电等故障等。

  50. 中断的分类 中断系统 内中断(软中断) 指CPU执行某些特殊操作或由INT指令引起的中断 • ①被零除操作或OF=1时执行INTO指令引起 • ② 使用DEBUG中的单步或断点设置操作引起 • ③ 执行INT n 指令引起 按中断源的不同,中断分为内部中断和外部中断。

More Related