前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【系统架构设计师】计算机组成与体系结构 ⑪ ( 数据传输控制方式 | 程序直接控制方式 | 中断控制方式 | 直接内存访问方式 )

【系统架构设计师】计算机组成与体系结构 ⑪ ( 数据传输控制方式 | 程序直接控制方式 | 中断控制方式 | 直接内存访问方式 )

作者头像
韩曙亮
发布2024-07-14 08:21:42
630
发布2024-07-14 08:21:42
举报
文章被收录于专栏:韩曙亮的移动开发专栏

一、数据传输控制方式


1、IO 设备数据传输

I / O 输入输出 设备 与 计算机系统 进行交互 , 由以下要素组成 :

  • IO 设备
  • IO 接口
  • IO 控制软件

IO 设备 通过 IO 接口 接入到 计算机系统中 , 当 IO 设备 产生输入 , 输入的数据传输到内存中 , 然后 由 CPU 处理这些数据 , 再产生输出信息 , 再将 输出信息 对应的数据 输出到 IO 设备中 ;

  • 如 : 键盘 / 鼠标 操作产生输入数据 , 传输 键盘 / 鼠标 事件到内存中 , 然后 CPU 处理这些事件 , 产生结果输出到 屏幕中 ;

整个过程中 , IO 设备 需要 进行数据传输 , 在传输过程中需要进行 传输控制 ;

2、数据传输控制方式

IO 设备 的 数据传输控制方式 , 指的是在 数据 从一处 传输 到另一处 的过程中 , 所采用的 控制机制 和 控制方法 ;

常见的 数据传输控制方式 如下 : 效率从高到低进行排列 ;

  • 程序直接控制方式 , 重点考点
  • 中断控制方式 : 鼠标键盘 ;
  • DMA ( 直接内存访问 ) 控制方式 : 移动硬盘 ;
  • 通道控制方式
  • IO 处理机方式

二、程序直接控制方式 ( 重点考点 )


1、无条件传送 和 程序查询方式

程序直接控制方式 , 分为以下两种情况 :

  • 无条件传送 : 这是 最简单的数据传送方式 , 适用于那些总是处于准备好状态的外设 , 外设无条件地 随时接收 CPU 发来的输出数据 , 也能够 无条件地 随时向 CPU 提供需要输入的数据 ;
    • 这种传输方式的前提是 外设始终处于准备好状态 , 在实际应用中受到很大的限制 ;
  • 程序查询方式 : 又称为 轮询方式 , 在这种方式下 , CPU 需要不断查询外设的状态 , 判断外设是否准备好进行输入或输出操作 ;

2、程序查询方式

程序直接控制方式 中的 程序查询方式 , CPU 直接控制 内存 或 CPU 与 外围设备 之间的 数据传送 , CPU 会 不断地检测 设备控制器 的状态 , 确定 数据 是否 传输完毕 ,

  • 如果传输完毕 , 则开始进行下一次的数据传输 ;
  • 如果没有传输完毕 , 则继续等待 , CPU 继续进行重复检测 ;

3、程序直接控制方式 的 优缺点

程序直接控制方式 的 优缺点 :

  • 优点 : 实现比较简单 , 成本低廉 ;
  • 缺点 :
    • 效率低 : CPU 与 外围设备 串行工作 , 在同一时间只能与一台外设通信 , 无法与多态设备并行通信 , 工作效率低下 ;
    • 时效差 : 对于需要实时响应的外设 , CPU 需要等待大量时间 , 程序查询方式可能无法满足要求 ;

三、程序中断方式


1、程序中断方式 流程

程序中断方式 传输数据 , 当 外围设备 准备好数据 或 需要 CPU 处理时 , 向 CPU 发送中断信号 , CPU暂停当前任务 , 转而处理 中断服务程序 , 完成 数据传输 后再返回原任务 ;

数据传输 时 由于不需要 CPU 等待 , 提高了数据传输 的响应速度 ;

程序被中断后 , 断点位置的程序状态 , 会存放到 栈 中 , 这个过程称为 " 保护现场 " , 会增加额外的开销 ;

CPU 终止当前程序的执行 , 保护现场 后 , 需要 响应中断 , 查询 " 中断向量表 " , 通过对应的入口 , 找到中断程序 , 查询 是由什么原因导致的中断 , 然后处理对应的 IO 数据传输 ;

外设 IO 数据传输处理完毕后 , 需要 返回原来的 " 断点 " , 继续执行原来的程序 ;

程序中断方式 适用于 处理 情况紧急 必须 马上处理的特殊情况 ;

2、程序中断方式 优缺点

程序中断方式 优缺点 :

  • 优点 : 支持 多个程序进程 和 外围设备 的 并行数据传输操作 , 提高了 CPU 的利用率 ;
  • 缺点 :
    • 每次 数据传输 都需要 向 CPU 发送中断信号 , 如果 中断次数 较多 , 会占用大量 CPU 时间 ;
    • 外围设备 数量较大时 , 过多的 中断次数 导致 CPU 无法及时响应中断 , 出现 数据丢失 的情况 ;

四、DMA 方式


1、DMA 简介

DMA 全称为 " Direct Memory Access " , 直接内存访问 ;

DMA 由硬件执行 I/O 数据交换 , 核心在于 DMA 控制器 完全接管对总线的控制 , 数据交换直接在 内存 和 I/O 设备 之间进行 , 无需 CPU 参与 ;

2、DMA 无需 CPU 参与

DMA 直接内存访问控制方式 是 外设 与 内存 之间直接进行数据传输 , 无需 CPU 的干预 , DMA 可以实现 高速 批量 数据交换 , 数据传输 的基本单位是数据块 , 整个过程由 DMA 控制器控制 ;

DMA 方式中 , 不需要 CPU 参与 , CPU 的效率 比

  • 程序中断方式
  • 程序直接控制方式

都要高 ;

3、DMA 工作流程

DMA 工作流程 :

  • 首先 , DMA 控制器 向 总线裁决 逻辑 , 提出 总线请求 ;
  • 然后 , 等待 CPU 完成 当前的 总线周期 , 释放 总线控制权 ;
  • 最后 , 响应 DMA , 通过 DMA 控制器 通知 IO 设备开始进行 数据传输 ;

五、数据传输控制方式示例


嵌入式系统 中 采用 中断方式 实现 输入输出 , 主要原因是 可以 对 突发事件 进行快速响应 ;

程序被中断后 , 程序的 断点数据 保存在 栈 内存 中 ;

中断方式 不是速度最快的方式 , 下面的顺序是从慢到快 , IO 处理机方式速度最快 ;

  • 程序直接控制方式 , 重点考点
  • 中断控制方式 : 鼠标键盘 ;
  • DMA ( 直接内存访问 ) 控制方式 : 移动硬盘 ;
  • 通道控制方式
  • IO 处理机方式

除 程序直接控制方式 外 , CPU 均不参与 数据传输操作 ;

实现起来 最容易的是 程序直接控制方式 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数据传输控制方式
    • 1、IO 设备数据传输
      • 2、数据传输控制方式
      • 二、程序直接控制方式 ( 重点考点 )
        • 1、无条件传送 和 程序查询方式
          • 2、程序查询方式
            • 3、程序直接控制方式 的 优缺点
            • 三、程序中断方式
              • 1、程序中断方式 流程
                • 2、程序中断方式 优缺点
                • 四、DMA 方式
                  • 1、DMA 简介
                    • 2、DMA 无需 CPU 参与
                      • 3、DMA 工作流程
                      • 五、数据传输控制方式示例
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档