计算机的输入输出设备

文章目录

  • 前言
  • 一、常见的输入输出设备
    • 1.字符输入设备
    • 2.图形输入设备
    • 3.图像输出设备
  • 二、输入输出接口的通用设计
  • 三、CPU与IO设备的通信
    • 1.程序中断
    • 2.DMA(直接存储器访问)


前言

今天给大家介绍计算机的输入输出设备,包括三个板块:常见的输入输出设备输入输出接口的通用设计CPU与IO设备的通信


一、常见的输入输出设备

常见的输入设备包括两种:字符输入设备图形输入设备

1.字符输入设备

字符输入设备主要就是键盘,键盘大家都用的比较多,但是细分种类很多人还是不知道。键盘分为三类:薄膜键盘机械键盘电容键盘

2.图形输入设备

常见的图形输入设备有:鼠标数位板扫描仪

鼠标不多说了,大家都在用。数位板主要是给设计师使用的,常用于绘图设计创作。包括输入板和压感笔,如下图所示:

在这里插入图片描述

扫描仪的作用是将图形信息转换为数字信号,现在很多打印机也集成了扫描仪的功能,如下图:

在这里插入图片描述

3.图像输出设备

图像输出设备主要有:显示器、打印机、投影仪。

显示器有CRT显示器、液晶显示器,如下图:

在这里插入图片描述

二、输入输出接口的通用设计

了解通用设计之前,大家不妨来想想:如果说要设计输入输出接口,需要完成哪些功能呢?比如能否读取数据?能否向设备发送数据?能否判断设备有无被占用?能否判断设备是否已经连接?能否判断设备是否已经启动?

完成上述这些功能才能称之为通用的输入输出接口设计,其实完整的输入输出接口的通用设计包含以下几部分:

  • 数据线
  • 状态线
  • 命令线
  • 设备选择线

接下来逐一了解这些线的具体功能,首先是数据线,其特征如下:

  • 是I/O设备与主机之间进行数据交换的传送线
  • 有单向传输数据线
  • 也有双向传输数据线

状态线特征如下:

  • I/O设备状态向主机报告的信号线
  • 查询设备是否已经正常连接并就绪
  • 查询设备是否已经被占用

命令线特征如下:

  • CPU向设备发送命令的信号线
  • 发送读写信号
  • 发送启动停止信号

设备选择线特征如下:

  • 主机选择I/O设备进行操作的信号线
  • 对连在总线上的设备进行选择

三、CPU与IO设备的通信

CPU与IO设备通信方法主要有两种:程序中断、DMA(直接存储器访问)。介绍这两种通信方法之前,我们先要明白一个前提:CPU速度与IO设备速度不一致,CPU速度比IO设备速度快多了。

1.程序中断

程序中断过程如下:

  • 当外围IO设备就绪时,向CPU发出中断信号
  • CPU有专门的电路响应中断信号
  • CPU收到中断信号时会暂停当前手上工作,转为处理外围IO设备的工作,等外围IO设备事件处理完毕才会继续加载之前的工作

我们通过如下图示来理解这里面的程序中断:

在这里插入图片描述

图中下面的最长的红色箭头代表时间轴,有CPU和外围的打印机这两个设备。我们现在以时间推进的方式来理解整个程序中断过程。首先在某个时刻,CPU在执行主程序,这时候打印机处于待机状态,接着在某一时刻,CPU发出一个信号,就是启动打印机的信号,启动之后呢,CPU继续执行主程序。打印机在接收到这个启动信号之后,就会进行准备工作,准备一段时间之后,准备完成了。这时候打印机会向CPU发出一个中断,CPU在得到这个中断之后就会响应这个中断。需要注意的是:这个响应不是立即发生的,可能会延时。这里为了简要介绍,图示会显示为立即响应中断。CPU响应中断之后,会进行发送数据的操作,同时打印机也会进行接收数据的操作,接着在某一时刻,CPU发送完成了,那么CPU就会进行中断返回,继续执行前面所执行的主程序,同时打印机也会开始打印数据,这就是程序中断的一个简化流程。

简单总结下程序中断的方法:程序中断提供低速设备通知CPU的一种异步的方式,这个方式就是低速设备发出一个中断,然后让CPU来响应这个中断。因为有了程序中断,CPU可以高速运转的同时兼顾低速设备的响应。CPU在没有中断的时候可以执行自己的主程序,当外围的低速设备发出了中断之后,CPU可以结束手上的工作,来处理低速设备的请求,这就是程序中断的全过程方法。

在这里面,虽然说通过程序中断,CPU可以在高速运转的同时兼顾低速设备的响应。但是,如果频繁的打断CPU,并不是一个很好的方法,因为这样会降低CPU的使用效率。所以接下来,我们学习第二个方法:DMA(直接存储器访问)

2.DMA(直接存储器访问)

DMA其实也是一种硬件设备,其特征如下:

  • DMA直接连接主存与IO设备
  • DMA工作时不需要CPU的参与

DMA图示过程如下:

在这里插入图片描述

如图所示,对于主存与IO设备的缓存,他们之间并不是直接连接,而是通过DMA的设备进行连接。当主存与IO设备交换信息时,不需要中断CPU,因为有DMA就可以处理主存与IO设备进行信息交换的操作。所以通过DMA直接存储器访问的方法,可以大大提高CPU的效率

DMA在我们常见的硬盘和外置显卡中都有存在。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/158208.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于QT的简易计算器(一)

目录 0 简介1.设计原理1.1界面设计1.1.1界面基本布局1.1.2 界面调整和美化1.1.2 控件重命名 1.2 连接信号和槽1.3 软件逻辑1.3.1四则运算1.3.2 连续运算(不完全)的原理1.3.3 清屏1.3.4 退格1.3.5 等于1.3.6 小数点 2.总结与拓展 0 简介 最近在学QT&…

初识FFmpeg

前言 无意间见到群里的小伙伴展示视频工具。功能比较多,包括视频编码修改,画质处理,比例处理、名称提取,剪辑、标题拆解。因此开始了FFmpeg学习。以下摘自百度百科的解释。 FFmpeg是一套可以用来记录、转换数字音频、视频&#xf…

BUUCTF ningen 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 人类的科学日益发展,对自然的研究依然无法满足,传闻日本科学家秋明重组了基因序列,造出了名为ningen的超自然生物。某天特工小明偶然截获了日本与俄罗斯的秘密通信,文…

Flutter 01 目录结构入门

一、Flutter目录结构: 二、Flutter入口文件、入口方法: 三、Flutter Demo: demo1: import package:flutter/material.dart;//MaterialApp 和 Scaffold两个组件装饰App void main() {runApp(MaterialApp(home: Scaffold(appBar: A…

致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC]

文章目录 致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用…

OpenGL ES入门教程(一)编写第一个OpenGL程序

OpenGL ES入门教程(一)编写第一个OpenGL程序 前言 从本文开始我将参考学习OpenGL ES应用开发实践指南 Android卷 [(美)KevinBrothaler著](提取码: 394m),并基于自己的理解以更加通俗易懂的方式…

docker 下安装mysql8.0

在docker中查询mysql镜像 PS C:\Users\admin> docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation……

QT+SQLite数据库配置和使用

一、简介 1.1 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite(Qt自带驱动)。 二、下载和配置 2.1 SQLite下载…

零日漏洞预防

零日漏洞,是软件应用程序或操作系统(OS)中的意外安全漏洞,负责修复该漏洞的一方或供应商不知道该漏洞,它们仍然未被披露和修补,为攻击者留下了漏洞,而公众仍然没有意识到风险。 零日攻击是如何…

90 数组中的第K个最大元素

数组中的第K个最大元素 题解1 最小堆(STL实现)题解2 快排的partition思想题解3 手撸大根堆(记忆理解)参考link: 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k…

偶数矩阵判断【C语言作业】

题目 若一个布尔矩阵所有行和所有列的和都是偶数&#xff0c;则称为偶数矩阵。请编写一个程序&#xff0c;判断一个布尔矩阵是否是偶数矩阵。 要求&#xff1a; &#xff08;1&#xff09;输入:首先输入一个正整数n(n<100),代表该矩阵的大小&#xff0c;接下来是n行n列的矩…

【数据结构】希尔排序

文章目录 前言一、希尔排序的演示图例二、希尔排序&#xff1a;插入排序的优化版本☆三、核心算法思路四、算法思路步骤&#xff08;一&#xff09;预排序 gap>1&#xff08;二&#xff09;gap1 插入排序 完成排序收尾 五、码源详解&#xff08;1&#xff09;ShellSort1 ——…