中断驱动式IO.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断驱动式IO

* * * * * * * * * * * 课后思考 查看USB相关知识 比较其它通信标准,如以太网(Ethernet) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 82C59A 中断控制器 Intel 82C55A 可编程外设接口 82C55A的键盘/显示器接口 直接内存访问 中断驱动式和编程式I/O需要CPU的主动干预 传输速率受限 占用CPU资源 DMA提供了另一种解决方案 DMA功能 需要在总线上添加额外的硬件模块 DMA控制器接手了CPU在I/O中的任务 典型DMA框图 DMA操作 CPU通知DMA控制器: 读/写 设备地址 内存数据块的起始地址 需要传输的数据总量 CPU继续执行其它任务 DMA控制器负责数据传输 DMA完成数据传输后发出中断通知CPU DMA传输中的指令周期窃取 DMA控制器占用总线一个时钟周期 传输一个字的数据 不产生中断 CPU不需要进行上下文切换 CPU在需要使用总线时暂时挂起 即取数据或写数据时 CPU速度有下降但仍比让CPU来控制I/O时要快 CPU指令周期中的DMA断点和中断断点 附加思考 缓存(cache)对DMA的影响有哪些? 在主板上集成缓存如何? 提示: 有多少总线资源? DMA 配置 (1) 单总线, 分离的DMA控制器 每1次数据传输需要占用2次总线 I/O到DMA DMA到存储器 CPU挂起2次 DMA Configurations (2) 单总线, 集成的DMA控制器 控制器可以支持多于1个外设 每1次传输占用总线1次 DMA到存储器 CPU挂起1次 DMA Configurations (3) 独立的I/O总线 总线支持所有支持DMA的外设 每1次传输占用总线1次 DMA到存储器 CPU挂起1次 Intel 8237A DMA 控制器 提供到80x86系列CPU和DRAM的接口 当DMA模块需要使用总线时,它发送HOLD信号给CPU CPU回应HLDA信号 (对HOLD信号的应答) 准许DMA模块使用总线 例:从内存到硬盘传输数据 设备请求DMA服务(对DREQ线置高电平) DMA对HRQ线置高电平 (HOLD请求) CPU完成当前指令对总线的占用,然后回应以HDLA (对HOLD的应答). 在整个DMA传输过程中,HOLD信号都保持高电平 DMA发送DACK信号给设备(DMA 应答),通知设备开始传输 DMA把内存数据块的首地址放到地址总线上并发送MEMR信号读数据;DMA然后用IOW信号对外设进行写操作. DMA减计数器并增地址指针,然后重复以上操作直到计数器为0. DMA取消HRQ线上的高电平, 把总线控制权交还给CPU 8237 DMA对系统总线的使用 飞越式DMA控制器 当DMA占用总线时,处理器处于空闲状态 当处理器占用总线时,DMA处于空闲状态 称之为飞越式(fly-by)DMA 控制器 数据不流经DMA芯片,也不在其上缓存 DMA只在I/O端口和内存之间传输数据 DMA不在两个I/O端口之间或者两个内存区域之间传输数据 DMA通过寄存器可以实现内存到内存之间的数据传输 8237包含4个DMA通道 可分别独立编程控制 任何时候可以启用任何通道 编号为0, 1, 2,和3 I/O通道 I/O设备越来越复杂 例如3D显卡 CPU通过控制I/O控制器来实现数据传输 I/O控制器负责完整的传输操作 提高速度 减轻CPU工作负荷 专用硬件可以比CPU更快 I/O通道架构 接口 把设备连接在一起 串行还是并行? 专用的处理器/存储器/总线? 例子:FireWire, InfiniBand IEEE 1394 FireWire 高性能串行总线 快速 低成本 容易实现 在数码相机,录像机和电视中使用 FireWire 配置 菊花链 1个端口上最多连接63个设备 实际上是64个,有1个设备是接口本身 最多1022根总线可以用桥接的方式互相连接 自动配置 无需总线终结器(端连接器) 可以使用树状结构 简单的FireWire配置示例 FireWire 3层协议栈 物理层 传输媒介,电气和数据传输特性 链路层 以数据包为单位传输数据 业务层 请求-应答 协议 FireWire 协议栈 FireWire – 物理层 数据传输速率从 25Mbps 到 400Mbps 两种仲裁方式 树状结构下(线性菊花链是特殊的树状结构) 根节点成为仲裁器 先到先服务原则 对于并发请求,按自然优先级裁决 也即是,靠近根节点的设备具有高优先级 公平仲裁 紧急仲裁 FireWire – 链路层 两种传输类型 异步 将可变数量的数据和几个字节的传输层信息打包传输 对显示地址发送 收到数据需要确认应答 同

文档评论(0)

busuanzi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档