下面我们进入第七章的第三节,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. docker for windows 中挂载文件到容器

    docker for windows版本: 宿主机:windows10 场景: 容器是基于microsoft/donet的webapi 想把宿主机的文件挂载到容器中,比方说:a.txt 命令如下: d ...

  2. PHP入门培训教程 php中的时间处理

    php中的时间处理 PHP入门培训教程 兄弟连PHP培训 小编整理的 php中的时间处理: <? /** * 转换为UNIX时间戳 */ function gettime($d) { if(is ...

  3. Oralce动态的创建按月的分区

    说明: XXX为一个配置表,里面配置了要分区的表明,即CODENO = 'PARTITIONTABLENAME',只有每个月月底的时候,才会进入IF的判断,此外还有一个定时任务,每天去执行即可. 存储 ...

  4. CF643E Bear and Destroying Subtrees

    题解 我们可以先写出\(dp\)式来. 设\(dp[u][i]\)表示以\(u\)为根的子树深度不超过\(i-1\)的概率 \(dp[u][i]=\prod (dp[v][i-1]+1)*\frac{ ...

  5. 图论——图的邻接表实现——Java语言(完整demo)

    1.图的简单实现方法——邻接矩阵 表示图的一种简单的方法是使用一个一维数组和一个二维数组,称为领接矩阵(adjacent matrix)表示法. 对于每条边(u,v),置A[u,v]等于true:否则 ...

  6. How to call javascript function on page load in asp.net

    How to call javascript function on page load in asp.net 解答1,使用RegisterStartupScript来运行 需要注意的是,下面的dem ...

  7. native-echarts 组件封装

    CommunalChart.js /** * 封装 图表组件 */ import React, { Component } from 'react'; import { StyleSheet, Tex ...

  8. React-Native 之 GD (十七)小时风云榜按钮处理

    小时风云榜按钮处理 在服务器返回给我们的 json 数据中,提供了 hasnexthour 字段,当这个字段返回为 1 的时候,表示后面还有内容,按钮可以点击,否则不能点击,按照这个思路,我们就来完成 ...

  9. 关于.NET Core的一些问题和疑惑

    1 为什么会出现.NET Core这个东西?即它为了解决什么问题. .NET Core是NET的ECMA标准的一种新的实现.目前.NET已有Framework,Mono,Unity等实现. 原先所有的 ...

  10. DelayQueue 源码分析

    DelayQueue DelayQueue 是基于 PriorityQueue 实现的线程安全的无界优先级阻塞队列, 队列的头部元素必须在超时后才能移除,元素必须实现 Delayed 接口. 创建实例 ...