计算机组成原理——I/O接口以及I/O设备数据传送控制方式
接口可以看作是两个部件之间交接的部分。硬件与硬件之间有接口,硬件与软件之间有接口,软件与软件之间也有接口。
这里我们所说的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设备数据传送控制方式的更多相关文章
- linux的系统组成和计算机组成原理,linux常用操作
Linux入门 linux简介 学习目的:linux服务器操作系统稳定长期运行,python,pycharm装于linux上 linux系统组成 应用软件:调用系统软件接口 linux操作系统分两 ...
- 计算机组成原理 — CPU 中央处理器
目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...
- 计算机组成原理往年试题以及答案(tzf!!!)
计算机组成原理往年试题以及答案(下载链接!!!) 太子妃升职记(1~36) ::http://pan.baidu.com/s/1dDP5Kqd
- 计算机组成原理实验之CPU组成与指令周期实验
(实验五 CPU组成与指令周期实验) 课程 计算机组成原理实验 实验日期 2015 年 12 月 8 日 一.实验目的 1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机. 2. ...
- day01-编程与计算机组成原理
什么是编程 编程语言:是人与计算机沟通交流的介质,通过标准化的规则传递信息 编程:就是为了使计算机能够理解人的意图,通过编程语言写出一个个文件,这堆文件完成相应的目的 编程的目的:用计算机取代人完成工 ...
- 【0725 | Day 1】计算机编程/计算机组成原理/计算机操作系统
什么是编程 编程语言:人与计算机交流的手段 编程:通过编程语言编写文件 学习编程的目的:让计算机代替人力,为我们服务 计算机组成原理 计算机由五大部分组成:控制器.运算器.存储器.输入设备.输出设备. ...
- 重学计算机组成原理(五)- "旋转跳跃"的指令实现
CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if-else.for这样的条件和循环存在,这些指令也不会一路平直执行下去. 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CP ...
- 重学计算机组成原理(六)- 函数调用怎么突然Stack Overflow了!
用Google搜异常信息,肯定都访问过Stack Overflow网站 全球最大的程序员问答网站,名字来自于一个常见的报错,就是栈溢出(stack overflow) 从函数调用开始,在计算机指令层面 ...
- 重学计算机组成原理(十)- "烫烫烫"乱码的由来
程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二 ...
随机推荐
- C语言I博客作业01
C语言I博客作业01 作业1 这个作业属于哪个课程? C语言程序设计I 这个作业要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-2/homewo ...
- ThinkPHP 实现数据库事务回滚示例代码
ThinkPHP提供了数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法: 启动事务: $User->startTrans(); 提交事务: $User->commit( ...
- .Net Core+Vue.js模块化前后端分离快速开发框架NetModular更新日志(2019-12-08)
源码 GitHub:https://github.com/iamoldli/NetModular 码云:https://gitee.com/laoli/NetModular 欢迎star~ 文档 ht ...
- 一、Java基础篇
1.简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java 平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出 ...
- ef6+mysql的bug
entityFramework6在mysql数据库下,用linq进行排序会出现一个bug. Expression<Func<blog, bool>> expr_filter=p ...
- 关于CSS选择器连续性的问题
在html中有以下结构: --- ----- <div class="row100"> <div class="col"> <di ...
- go基础之并发
1.Goroutines是轻量级线程 2.channels的同步通信 1.Goroutines是轻量级线程 go语句在单独的线程中运行一个函数. 你可以使用go语句启动一个新的执行线程,即一个goro ...
- 字典dict的深入学习(item() / items() 一致的)
字典Dict的跟进学习: 一. items()方法的遍历:items()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回. dict = {"name" ...
- 第5节:Java基础 - 必知必会(下)
第5节:Java基础 - 必知必会(下) 本小节是Java基础篇章的第三小节,主要讲述Java中的Exception与Error,JIT编译器以及值传递与引用传递的知识点. 一.Java中的Excep ...
- CF240E Road Repairs(最小树形图-记录路径)
A country named Berland has n cities. They are numbered with integers from 1 to n. City with index 1 ...