IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 输入/输出(I/O)管理 -> 正文阅读

[嵌入式]输入/输出(I/O)管理

标题## 输入/输出(I/O)管理

  1. I/O管理概述
    1.1 I/O设备
    定义:将数据输入到计算机,或可接受计算机输出数据的外部设备
    设备的分类
    ?按信息交换单位
    ? 块设备
    ? 信息交换以数据块为单位,如磁盘等
    ? 特点:传输速率较高,可寻址,可以随机读写任一块
    ? 字符设备
    ? 信息交换以字符为单位,如交互式终端机,打印机
    ? 特点:传输速率低,不可寻址,时常采用中断I/O方式
    ?按传输速率
    ? 低速设备
    ? 传输速率仅为每秒几字节到数百字节的一类;磁盘,鼠标等
    ? 中速设备
    ? 传输速率为每秒数千字节到数万字节的一类;激光打印机
    ? 高速设备
    ? 传输速率为每秒数百千字节到千兆字节的一类;磁盘机,光盘机等
    I/O接口
    在这里插入图片描述

?组成部分
? 设备控制器与CPU的接口
? 接口含有三类数据线
? 数据线
? 与数据寄存器和控制、状态寄存器相连
? 地址线
? 控制线
? 设备控制器与设备的接口
? 一个设备控制器连接一个或多个设备,故控制器中有一个或多个设备接口。每个接口中都存在数据,控制,状态三类信号
? I/O逻辑
? 用于实现对设备的控制。通过一组控制线与CPU交互,对从CPU收到的I/O命令进行译码。CPU启动设备时,将启动命令发送给控制器,同时通过地址线把地址发送给控制器,由控制器的I/O逻辑对地址进行译码,并相应地对所选设备进行控制
?主要功能
? 接收和识别CPU发来的命令
? 如磁盘控制器能接收读写查找等命令
? 数据交换
? 包括设备和控制器之间的数据传输,以及控制器和主存之间的数据传输
? 标识和报告设备的状态
? 数据缓冲
? 差错控制
I/O端口
?三类寄存器
? 数据寄存器
? 实现CPU和外设之间的数据缓冲
? 状态寄存器
? 获取执行结果和设备的状态信息,以让CPU知道是否准备好
? 控制寄存器
? 由CPU写入,以便启动命令或更改设备模式
?通信方法
? 独立编址
? 为每个端口分配一个I/O端口号 ,所有I/O端口形成I/O端口空间,普通用户程序不能对其进行访问,只有操作系统使用特殊的I/O指令才能访问端口
? 特点:要设置专门的指令实现对控制器的操作,不仅要指明寄存器的地址,还要指明控制器的编号
? 统一编址(内存映射)
? 每个端口被分配唯一的内存地址,且不会有内存被分配这一地址,通常分配给端口的地址靠近地址空间的顶端
? 特点:简化了指令,可以采用对内存进行操作的指令来对控制器进行操作
1.2 I/O控制方式
程序直接控制方式
在这里插入图片描述

?思想
? 计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。
?特点
? 优点
? 控制方式简单且易于实现
? 缺点
? CPU干预频率高,利用率相当低。
? 在程序直接控制方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了CPU资源的极大浪费
? 数据传送每次读写一个字
中断驱动方式
在这里插入图片描述

?基本思想
? 允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作
?特点
? 优点
? 比程序直接控制方式有效
? 缺点
? 数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,导致了中断驱动方式仍然会消耗较多的CPU时间。
DMA方式
在这里插入图片描述

DMA的工作模式CPU接收到I/O设备的DMA请求时,它给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作。之后CPU就把控制操作委托给DMA控制器,由该控制器负贵处理。DMA控制器直接与存储器交互,传送整个数据块,每次传送一个字,这个过程不需要CPU参与。传送完成后,DMA控制器发送一个中断信号给处理器。因此只有在传送开始和结束时才需要CPU的参与
?基本思想:在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放”CPU
?DMA方式的特点
1)基本单位是数据块。2)所传送的数据,是从设备直接送入内存的,或者相反。3)仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。
? 优点:数据传输以块为单位,CPU频率进一步降低,数据的传输不再需要先经过CPU再写入内存,数据传输效率进一步增加
? 缺点:CPU每发出一条指令,只能读写一个或多个连续块(不能离散的读取)
?DMA中的四类寄存器
? 命令/状态寄存器(CR) 。用于接收从CPU 发来的I/0 命令或有关控制信息,或设备的状态。
? 内存地址寄存器(MAR) 。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
? 数据寄存器(DR) 。用于暂存从设备到内存或从内存到设备的数据。
? 数据计数器(DC) 。存放本次要传送的字(节)数。
通道控制方式
?基本思想
? 把对一个数据块的读/写为单位的干预,减少为对一组数据块的读/写及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备的并行操作,从而更有效地提高整个系统的资源利用率。
?操作过程
? 在通道控制方式中,CPU只需发出启动指令,指出要求通道执行的操作和使用的I/O设备,该指令就可以启动通道并使该通道从内存中调出相应的通道程序执行
?特点
? 优点
? 通道控制进一步减轻了CPU的工作负担,增加了计算机系统的并行工作程度。把CPU从繁琐的输入/输出操作中解放出来。采用通道技术后,不仅能实现CPU和通道的并行操作,而且通道与通道之间也能实现并行操作,各通道上的外设也能实现并行操作,从而可提高整个系统的效率。
? 缺点
? 由于需要更多硬件(通道处理器),因此其成本较高。通道控制方式通常应用于大型数据交互的场合。
通道控制与其他的区别
?I/O通道与一般处理器的区别
? I/O通道的指令类型单一,其所能执行的命令主要局限于与I/O操作有关的指令;通道没有自己的内存,通道所执行的通道程序放在主机的内存中,也就是说通道是与CPU共享内存的
?通道控制方式与DMA控制方式的区别
? 1)DMA控制方式中需要CPU来控制所传输数据块的大小,传输的内存地址;通道控制方式中这些信息都是由通道来控制管理的。
? 2)一个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存的数据交换。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:07:48  更:2022-09-30 01:10:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 17:45:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码