下面我们进入第七章的第三节,I/O接口。

I/O接口呢就是解决了外设和主机之间的一个连接的问题。那么我们这一节就要来看一下I/O接口它有哪些功能,以及它是怎么组成的,还有就是我们主机如何来定位到那样一个外设也就是包括I/O端口和它的编址方式。我们这一部分内容呢相较于前两节来说还是比较重要的。

那么我们在第一节当中就已经说过了,I/O接口,这个接口啊就可以看成是任何两个部件之间的一个交接的部分。就比如硬件和硬件的交接部分呢,可以把它看成是一个接口,不仅如此,硬件和软件之间的交接部分,也可以把它看成是一个接口。软件和软件之间,大家应该也听说过这个接口,所以呢接口就是两个部件之间的交接部分,而I/O接口就是说,主机和外部设备这样的一个交接部分。那么这个外设啊,如果再把它细分的话,又可以把分为设备控制器和这样的一个机械部分。反正就是说主机和外设之间的一个交接部分,它就是一个I/O接口。大家要注意和我们操作系统那门课当中做一个区别,操作系统那门课当中我们说了,就是说它把整个接口和I/O控制器把它统称为设备控制器。但是呢在我们计组里面,我们就把I/O接口把它单拎出来了,也就是说把主机和外设之间的一个交接的部分把它称为I/O接口。好的,这个定义大家知道了。

那么I/O接口有哪些功能呢?我们以一个单总线的方式给大家看一下。这个单总线方式我们在第六章就看过了,那么就是说I/O接口它就是实现了主机和外设之间的一个信息交换,那么这个主机想和我们的外设进行一个信息交换的话,必须要通过我们的这个I/O接口然后来实现这样的一个信息交换。

所以I/O接口有哪些功能呢,它要解决哪些问题呢?首先,我们知道啊,第一大功能肯定是为了实现主机和外设之间的一个信息的交换,所以就是要实现主机和外设之间的一个通信的联络控制。还有呢,我们要找到这样的外设,所以我们要进行地址译码和设备选择。那么之后呢要进行信息交换我们知道,我们的主机和外设之间的这样一个传输速度肯定是不一样的,所以还要解决一个速度匹配的问题,所以它就要实现数据缓冲。还有就是说,我们的主机和我们的外设之间要进行一个信息交换的话,它的这样的格式也是可能不同的,所以接口还要解决信息格式转换的一个问题。最后,我们的主机和外设要进行一个信息交换,它要向我们的设备、外设啊传输一个控制的信息,而我们的外设收到主机的控制信息之后,还要给主机一个反馈,所以接口它还有一个作用就是传送控制信息、控制命令和状态信息。那么这是按照要解决的问题来划分的,那么显然这样划分的话有一些碎,就是有一些不太系统,就是想到哪儿说到哪儿,这个记忆起来是不太方便的。

那么我们换一种角度。我们按照这样的一个具体操作的这样的角度呢,它的功能呢有4个。

第一个就是说我要对我们的数据进行一个传送的话,首先我们的主机要对我们的设备进行一个选择。

【知识强化】第七章 输入/输出系统 7.3 I/O接口的更多相关文章

  1. 【知识强化】第七章 输入/输出系统 7.1 I/O系统基本概念

    那么下面,我们将要进入计算机组成原理的最后一章,也就是我们的第七章,输入输出系统的学习.那么这一部分内容呢,我们之前呢一直在提,但是并没有详细地讲解,那么进入到我们第七章输入输出系统这一部分,我们就要 ...

  2. 输入/输出系统的四种不同工作方式对CPU利用率比较

    程序控制工作方式:输入/输出完全由CPU控制,整个I/O过程中CPU必须等待其完成,因此对CPU的能力限制很大,利用率较低 程序中断工作方式:CPU不再定期查询I/O系统状态,而是当需要I/O处理时再 ...

  3. 第15章-输入/输出 --- 理解Java的IO流

    (一)理解Java的IO流 JAVA的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的输入/输出(键盘.文件.网络连接等)抽象表述为"流"( ...

  4. 【知识强化】第五章 输入/输出(I/O)管理 5.1 I/O管理概述

    这门课的最后一个章节——设备管理. 操作系统它作为系统资源的管理者,既需要对上层的软件进行管理,也需要对下层的硬件进行管理.操作系统它需要对处理机还有存储器这些硬件进行管理,但是这些硬件其实是在计算机 ...

  5. 【知识强化】第五章 输入/输出(I/O)管理 5.2 I/O核心子系统I

    学习I/O核心子系统相关的一系列功能. 设备独立性软件.设备驱动程序.中断处理程序这三层其实是属于操作系统的内核部分的,所以它们也称作“I/O核心子系统”,又可以简称为“I/O系统”.在考研当中我们需 ...

  6. 【知识强化】第二章 数据的表示和运算 2.4 算术逻辑单元ALU

    从本节开始我们就进入到本章的最后一节内容了,也就是我们算术逻辑单元的它的实现.这部分呢是数字电路的一些知识,所以呢,如果你没有学过数字电路的话,也不要慌张,我会从基础开始给大家补起.那么在计算机当中, ...

  7. 第15章-输入/输出 --- File类

    (一) Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入.输出两种IO流. 每种输入.输出流又分为字节流和字符流两大类: (1)字节流以字节为单位来处理输入.输出 ...

  8. JAVA输入/输出系统中的其他流学习笔记

    一.字节数组流 字节数组流类能够操作内存中的字节数组,它的数据是一个字节数组.字节数组流类本身适配器设计模式,它把字节数组类型转为流类型使得程序能够对字节数组进行读写操作. 1.ByteArrayIn ...

  9. 第四章输入/输出(I/O)4.1I/O涉及的设备及相关概念简介

    PCL中所有的处理都是基于点云展开的,利用不同的设备获取点云.存储点云等都是点云处理前后必须做的流程,PCL中有自己设计的内部PCD文件格式,为此,设计读写该该格式以及与其他3D文件格式之间进行转化的 ...

随机推荐

  1. Linux的学习:

    查看端口: netstat -anop | grep 80 netstat -ntlp 先看看不带n的 再看看带n的 我们发现在local address 即主机地址这一栏中,如果没有带n选项,会将套 ...

  2. UE4从4.15移植到4.16

    如果是旧版本的工程需要移植到4.16,有几个地方需要修改: 假设RC是工程名,修改如下(三个CS文件) 类似的,插件也需要这样修改

  3. 分类汇总统计mysql数据库一个字段中不同的记录的总和

    方法1.用 if 语句,如下例. 方法2.用case when then else 语句,用法如同if. mysql> select sum(if(id<500,1,0)),sum(if( ...

  4. 启用和配置 FILESTREAM

    2017/08/23 在开始使用 FILESTREAM 之前,必须在 SQL Server 数据库引擎实例中启用 FILESTREAM. 本主题说明了如何使用 SQL Server 配置管理器来启用 ...

  5. JavaScript-Templates

    https://github.com/blueimp/JavaScript-Templates https://blueimp.github.io/JavaScript-Templates/ http ...

  6. MyEclipse/Eclipse启动时workspace不提示,解决办法

    右键MyEclipse/Eclipse的快捷方式,选择属性(属性->快捷方式->目标),在目标的最后面加上" -clean",如:"D:\Myeclipse8 ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_12-对象数组

    对象数组是怎么回事呢? 新建Person类 代码生成后续的代码 生成一个无参构造 两个成员变量都选上,这是全参构造 生成getter和setter 数组的默认的第几0个元素是null 创建三个对象 输 ...

  8. Week 5 - 529.Minesweeper

    529.Minesweeper Let's play the minesweeper game (Wikipedia, online game)! You are given a 2D char ma ...

  9. 精灵图和base64如何选择

    Css Sprites: 介绍: Css Sprites(雪碧图或css精灵),是网页图片处理的一种方式,它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图 ...

  10. js获取select下拉框中的值

    现在有一id为userType的下拉框,怎么获取选中的值: 用户类型: <select name="type" id="userType"> < ...