接口可以看作是两个部件之间交接的部分。硬件与硬件之间有接口,硬件与软件之间有接口,软件与软件之间也有接口。

这里我们所说的I/O接口,一边连接着主机,一边连接着外设。

I/O接口的功能

I/O接口的基本结构

CPU和外设之间通常传递的信息:数据、状态、控制。

组成:寄存器组、控制逻辑电路、主机与接口和接口与I/O设备之间的信号联接线、数据地址线、控制状态信号线。

其实中间红框内的部分就是对应到电路板上的插口,又分为内部接口和外部接口两种。

内部接口:与系统总线相连,实质上是与内存、CPU相连。数据的传输方式也只能是并行传输。

外部接口:通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串并转换功能。

接口与端口

接口就是I/O接口,端口实质接口电路中可以被CPU访问的寄存器。

I/O端口及其编址

为了便于CPU对I/O设备进行寻址和选择,必须给众多的I/O设备进行编址,也就是说给每一台设备规定一些地址码,称之为设备号或端口地址。

统一编址:与存储器共用地址,用访存指令访问I/O设备。

独立编址:单独使用一套地址,有专门的I/O指令。

接口类型

I/O设备数据传送控制方式

1.程序直接控制传送方式

又叫查询方式。是完全通过程序来控制主机和外围设备之间的信息传送。
通常的办法是在用户的程序中安排一段由输入输出指令和其他指令所组成的程序段直接控制外围设备的工作。也就是说CPU要不断地查询外围设备的工作状态,一旦外围设备“准备好”或“不忙”,即可进行数据的传送。

该方法是主机与外设之间进行数据交换的最简单、最基本的控制方法。
无条件传送:只有在外设总处于准备好状态
程序查询方式
优点:
较好协调主机与外设之间的时间差异,所用硬件少。
缺点:
主机与外设只能串行工作,主机一个时间段只能与一个外设进行通讯,CPU效率低。

程序查询方式接口结构:

一次只能查询一个字的原因?在这种传送方式下,外部数据是要存到CPU寄存器中的,故需要一个字。

我们通过一个例题来定量分析一下这种方式下CPU占用情况:

可以发现用程序查询的方式来管理高速设备是不科学的,该方式传单位是字,而高速方式产生一个字的时间是非常短的,在使用程序查询方式的时候,没查询这样一个字,CPU都要执行一次程序查询方式,并且这里仅仅考虑了查询的那部分时间,而数据处理的时间还没有考虑,若是考虑进去那就更不能满足高速设备的管理要求了。

2.程序中断传送方式

具体介绍:

https://www.cnblogs.com/wkfvawl/p/10957080.html

当外围设备完成数据传送的准备后,便主动向CPU发出“中断请求” 信号。若CPU允许中断,则在一条指令执行完后,响应中断请求,转去执行中断服务子程序,完成数据传送,通常传送一个字或一个字节。传送完后继续执行原程序。
中断请求方式在一定程度上实现了CPU和外围设备的并行工作。
若在某一时刻有几台设备发出中断请求,CPU可根据预先定好的优先级,去处理几台外设的数据传送。
但是对于工作频率较高的外设,如磁盘,数据交换通常是成批的,若采用中断方式,则不合适。一般采用DMA方式。
优点:避免频繁查询,适合随机出现的服务和中低速外设使用。
缺点:成批数据交换时,中断影响传送效率,一次传送一个字符,中断处理时间大于传送数据时间。需要一定的硬件电路。

3、直接存储器访问方式

具体介绍:

https://www.cnblogs.com/wkfvawl/p/10958751.html

1.    DMA方式的引入
前两种方式以CPU为中心,占用CPU时间。DMA方式以内存为中心。
2.    基本工作原理
在外围设备和主存之间开辟直接的数据通路。在正常工作时,所有的工作周期均用于执行CPU的程序。当外围设备完成I/O的准备工作后,占用CPU的工作周期,和主存直接交换数据。完成后,CPU又继续控制总线,执行原程序。
完成这项工作的是系统中增设的DMA控制器。
DMA控制器在进行DMA传送之前,由CPU将每次传送的主存地址、数据的个数等参数传送给DMA控制器,然后具体的数据传送就由DMA控制器实现,无须CPU的参与。
缺点:
 CPU需要在DMA传送的开始和结束时参与;
 每个需要进行DMA传送的外设都要对应一个DMA控制器,且DMA控制器是由硬件实现的,不易修改。于是在大型计算机系统中通常设置专门的硬件装置—通道。

三种方式的 CPU 工作效率比较:

观察上图,我们其实可以发现,程序中断方式和DMA方式主要是针对CPU参与的两个过程:I/O准备和数据传送来做出改进。

中断方式是对I/O准备做出改进,它不需要CPU不断查询来确认外设状态,而是引入了中断机制,在I/O准备好后,通过中断请求通知CPU,而在外设准备阶段,CPU是可以执行原来的主程序,也就是说CPU只参与数据传送阶段。而DMA方式更是将数据传送阶段也给省了,将数据传送的工作交给DMA控制器,使得CPU更加专注于主程序的执行。

4、I/O通道控制方式

说通道是一种弱鸡版的CPU是因为,与CPU相比,通道可以执行的指令很单一,并且通道程序是放在主机内存中的,也就是说通道与CPU共享内存。

I/O通道具有少数专用的指令系统,能实现指令所控制的操作,管辖其相应的设备控制器,所以I/O通道已具备简单处理机的功能。但它仅仅是面向外围设备的控制和数据的传送,其指令系统也仅仅是几条简单的与I/O操作有关的命令。
I/O通道要在CPU的I/O指令指挥下启动、停止或改变工作状态。因此,l/O通道不是一个完全独立的处理机,它只是从属于CPU的一个专用I/O处理器。它的进一步发展是引入专用的输入输出处理机。
 通道方式的出现进一步提高了CPU的效率。但需更多的硬件电路。

5、 输入输出处理机(IOP)方式

有单独的存储器和独立的运算部件,可访问系统的内部存储器
除数据传输外,还应有以下功能:能处理传送过程中出错及异常情况,数据格式翻译,数据块校验。
IOP方式是通道方式的进一步的发展。它们大多应用在中、大型计算机中。

计算机组成原理——I/O接口以及I/O设备数据传送控制方式的更多相关文章

  1. linux的系统组成和计算机组成原理,linux常用操作

    Linux入门 linux简介   学习目的:linux服务器操作系统稳定长期运行,python,pycharm装于linux上 linux系统组成 应用软件:调用系统软件接口 linux操作系统分两 ...

  2. 计算机组成原理 — CPU 中央处理器

    目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...

  3. 计算机组成原理往年试题以及答案(tzf!!!)

    计算机组成原理往年试题以及答案(下载链接!!!) 太子妃升职记(1~36) ::http://pan.baidu.com/s/1dDP5Kqd

  4. 计算机组成原理实验之CPU组成与指令周期实验

    (实验五  CPU组成与指令周期实验) 课程 计算机组成原理实验 实验日期 2015 年 12 月  8 日 一.实验目的 1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机. 2. ...

  5. day01-编程与计算机组成原理

    什么是编程 编程语言:是人与计算机沟通交流的介质,通过标准化的规则传递信息 编程:就是为了使计算机能够理解人的意图,通过编程语言写出一个个文件,这堆文件完成相应的目的 编程的目的:用计算机取代人完成工 ...

  6. 【0725 | Day 1】计算机编程/计算机组成原理/计算机操作系统

    什么是编程 编程语言:人与计算机交流的手段 编程:通过编程语言编写文件 学习编程的目的:让计算机代替人力,为我们服务 计算机组成原理 计算机由五大部分组成:控制器.运算器.存储器.输入设备.输出设备. ...

  7. 重学计算机组成原理(五)- "旋转跳跃"的指令实现

    CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if-else.for这样的条件和循环存在,这些指令也不会一路平直执行下去. 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CP ...

  8. 重学计算机组成原理(六)- 函数调用怎么突然Stack Overflow了!

    用Google搜异常信息,肯定都访问过Stack Overflow网站 全球最大的程序员问答网站,名字来自于一个常见的报错,就是栈溢出(stack overflow) 从函数调用开始,在计算机指令层面 ...

  9. 重学计算机组成原理(十)- "烫烫烫"乱码的由来

    程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二 ...

随机推荐

  1. 配置防盗链、访问控制Directory和FilesMatch

    5月31日任务 课程内容: 11.25 配置防盗链11.26 访问控制Directory11.27 访问控制FilesMatch扩展几种限制ip的方法 http://ask.apelearn.com/ ...

  2. TensorFlow2.0

    安装开发环境 1.首先安装 anaconda(https://www.anaconda.com/) 2.修改anaconda的镜像源 conda config --add channels https ...

  3. 在Linux下生成crypt加密密码

    [摘要]当我们用红帽Kickstart脚本或useradd或其他方式写东西的时候,经常会需要用到crypt命令加密生成的密码格式.那么,有没有其他方式可以生成这种格式的密码?事实上,方法有很多 1.我 ...

  4. 英飞凌TC297 PSPR与DSPR

    TC297的系统架构图如下,3个核CPU0/1/2有各自的RAM,分为程序RAM和数据RAM,即PSPR和DSPR.PSPR(或者叫做PRAM)主要用于放置静态函数,提高函数执行效率,或放置flash ...

  5. 图解leetcode —— 124. 二叉树中的最大路径和

    前言: 每道题附带动态示意图,提供java.python两种语言答案,力求提供leetcode最优解. 描述: 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到 ...

  6. openstack网络(一)

    什么是OpenStack Networking OpenStack网络的特性 交换机 路由器 负载均衡 防火墙 虚拟专用网络 网络功能虚拟化 网络类型 管理网络 API 网络 外部网络 访客网络 在一 ...

  7. 1010 Radix (25 分),PTA

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536 题意:给定n1.n2两个数,求可以是两 ...

  8. POJ 3281 Dining(网络流-拆点)

    Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will c ...

  9. 用Python爬虫轻松挣个上万块行不行?

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者: 小猿猿er 文章首发于我的技术博客:你可以在上面看到更多的Pytho ...

  10. solr索引基本原理

    solr是一个全局检索引擎,能够快速地从大量的文本数据中选出你所需要的数据,而你只需要提供相应的关键词进行检索.solr的高效率查询靠的是底层强大的索引库,所以solr最关键的技术也是其底层的索引设计 ...