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

这里我们所说的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. Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法 使用介绍

    第7周第3次课(5月9日) 课程内容: 10.11 Linux网络相关10.12 firewalld和netfilter10.13 netfilter5表5链介绍10.14 iptables语法 扩展 ...

  2. Java判断字符串相等"=="和"equal"详解

    在初学Java时,可能会经常碰到下面的代码: public static void main(String[] args) { //两种声明方式,有所差别 String s1="hello& ...

  3. Flask开发VIP版HttpServer #华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  4. 转:领域模型中的实体类分为四种类型:VO、DTO、DO、PO

    经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析.得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于 ...

  5. 线阵CCD-TCD1209采集系统&驱动设计

    关键字:CPLD+AD9945+TCD1209+CY7C68013A TCD1209,一款经典的CCD线阵单色传感器.本次设计一款基于usb2.0高速采集图像. CPLD+AD9945+TCD1209 ...

  6. Python 3 对象关系映射(ORM)

    ORM 对象关系映射 Object Relational Mapping 表 ---> 类 字段 ---> 属性 记录 ---> 对象 # mysql_client.py impor ...

  7. Day 02 计算机的基本组成及工作原理

    目录 计算机的构成 CPU 控制器 运算器 存储器 内存 外存 I/O (input & output) 输入设备 输出设备 什么是编程语言 什么是编程 为什么要编程 多核CPU 32位和64 ...

  8. 【全栈修炼】OAuth2 修炼宝典

    一.OAuth 概念 开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. -- 维基百 ...

  9. 【Taro】363- 玩转 Taro 跨端之 flex 布局篇

    Taro 是一套遵循 React 语法规范的跨平台开发解决方案,但是目前当我们使用 Taro 的时候,在不同平台上的开发体验还有不一致的地方,所以我们也都期待有一套跨平台统一的解决方案,能够以最小差异 ...

  10. JavaWeb中的MVC 下

    代码较多,请先略过代码,看懂逻辑在研究代码 引入 回顾上一节中的项目,最终的层次结构: 在MVC上中,我们分析了MVC设计模式具备的优点,以及不足,并在其基础上增了Service层用于处理业务逻辑,但 ...