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

文章目录

一、数据传输控制方式


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 均不参与 数据传输操作 ;

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

相关推荐
犬余3 天前
漫话架构师|什么是系统架构设计师(开篇)
架构·软件工程·软考·系统架构设计师
winin20245 天前
软考高级5个资格、中级常考4个资格简介及难易程度排序
软考
一几文5 天前
2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)
架构·系统架构·软考高级·软考·系统架构设计师·it考证·架构真题
软考诸葛老师6 天前
系统架构设计师-第1章-计算机系统知识要点
软考高级·软考·系统架构设计师
芝士架构 APP 凯恩6 天前
2024年11月系统架构设计师考试复盘
软件工程·软考·系统架构设计师
YunB西风英7 天前
(STM32笔记)十二、DMA的基础知识与用法 第二部分
笔记·stm32·嵌入式硬件·学习·dma·嵌入式
智联物联12 天前
工业 4G 路由器赋能远程医疗,守护生命线
wifi·4g·数据传输·工业4g路由器·智慧医疗·远程医疗·无线通信模块
YunB西风英12 天前
(STM32笔记)十二、DMA的基础知识与用法 第三部分
笔记·stm32·单片机·嵌入式硬件·dma·嵌入式
GIS程序媛—椰子13 天前
【软考】软件设计师
软考·软件设计师
小参宿18 天前
【开源监控工具】Uptime Kuma:几分钟设置实时监控你的网站性能
linux·运维·服务器·windows·容器·开源·计算机组成