计算机组成原理之机器:输入输出系统

计算机组成原理之机器:输入输出系统

笔记来源:哈尔滨工业大学计算机组成原理(哈工大刘宏伟)

Chater3:输入输出系统

3.1 输入输出系统的发展概况

早期阶段
外部设备与主机之间采用分散连接,即每一个设备都有专门的控制线路,这些控制电路和CPU控制电路设计在一起,增加或删除设备很难
输人输出过程是穿插在CPU执行程序过程之中进行的,当I/O设备与主机交换信息时,CPU不得不停止各种运算,因此,I/O设备与CPU是按串行方式工作的,极浪费时间。
外部设备和主机的信息交换采用程序查询方式

接口模块和DMA阶段
外部设备通过接口模块与主机连接,计算机系统采用总线结构,CPU和I/O设备并行工作。

虽然这个阶段实现了CPU和I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要中断现行程序,即CPU与I/O设备还不能做到绝对的并行工作。为了进一步提高CPU的工作效率,又出现了直接存储器存取(Direct Memory Access,DMA)技术,其特点是I/O设备与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,使CPU在I/O设备与主存交换信息时能继续完成自身的工作,故资源利用率得到了进一步提高。

具有通道结构的阶段
在小型和微型计算机中,采用DMA方式可实现高速I/O设备与主机之间成组数据的交换
大中型计算机中,I/O设备配置繁多,数据传送频繁,若仍采用DMA方式会出现一系列问题,因此采用I/O通道方式进行数据交换

具有I/O处理机(外围处理机)的阶段
输入输出系统发展到第四阶段,出现了I/O处理机。I/O处理机又称为外围处理机(Peripheral Processor),它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的输入输出系统与CPU工作的并行性更高,这说明I/O系统对主机来说具有更大的独立性。

3.2 输入输出系统的组成

输入输出系统由I/O软件和I/O硬件组成
I/O软件
(1)I/O指令(CPU指令的一部分)

(2)通道指令(通道自身的指令)
通道程序即由通道指令组成,它完成某种外围设备与主存之间传送信息的操作。

I/O硬件
硬件组成一般包括接口模块以及I/O设备两部分

3.3 I/O设备与主机的联系方式

I/O设备是有地址的,若要与主机连接必须要给出I/O设备的地址
I/O设备编址方式
(1)统一编址
统一编址就是将I/O地址看做是存储器地址的一部分。例如,在64K地址的存储空间中,划出8K地址作为I/O设备的地址,凡是在这8K地址范围内的访问,就是对I/O设备的访问,所用的指令与访存指令相似。
(2)不统一编址
不统一编址就是指I/O地址和存储器地址是分开的,所有对I/O设备的访问必须有专用的I/O指令。

显然统一编址占用了存储空间,减少了主存容量,但无须专用的I/O指令。
不统一编址由于不占用主存空间,故不影响主存容量,但需设I/O专用指令。

设备选址
用设备选择电路识别是否被选中
传送方式
串行和并行

联络方式
不论是串行传送还是并行传送,I/O设备与主机之间必须互相了解彼此当时所处的状态,如是否可以传送、传送是否已结束等。

3.4 I/O设备与主机的连接方式

3.5 I/O设备与主机信息传送的控制方式

3.5.1 程序查询方式

程序查询方式是由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。

3.5.2 程序中断方式

倘若CPU在启动I/O设备后,不查询设备是否已准备
就绪,继续执行自身程序,只是当I/O设备推备就绪并向
CPU发出中断请求后才予以响应


3.5.3 DMA方式

主存和I/O设备之间有一条直接数据通道,无需CPU参与

3.6 I/O设备

3.7 I/O接口

接口可以看做是两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。
I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的软件控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是微隔离技术?

微隔离产生的背景 首先来看下南北向流量以及东西向流量的含义 南北向流量 指通过网关进出数据中心的流量,在云计算数据中心,处于用户业务虚拟机(容器)跟外部网络之间的流量,一般来说防火墙等安全设备部署在数…

Python打印Linux系统中最常用的linux命令之示例

一、Linux中的~/.bash_history文件说明: 该文件保存了linux系统中运行过的命令的历史。使用该文件来获取命令的列表,并统计命令的执行次数。统计时,只统计命令的名称,以不同参数调用相同的命令也视为同一命令。 二、示例代码&am…

【C语言步行梯】分支语句if...else、switch详谈

🎯每日努力一点点,技术进步看得见 🏠专栏介绍:【C语言步行梯】专栏用于介绍C语言相关内容,每篇文章将通过图片代码片段网络相关题目的方式编写,欢迎订阅~~ 文章目录 什么是语句?引入分支语句&am…

Charles-抓包工具的使用

文章目录 Charles简介与安装Charles的简介Charles的安装Charles 安装证书 抓包在PC端抓取HTTPS请求在移动端进行抓包移动端配置Androd端配置iOS端配置 Charles使用小技巧: 模拟慢速网络 Charles简介与安装 Charles的简介 Charles 是在 PC 端常用的网络封包截取工具…

数字化转型导师坚鹏:科技金融政策、案例及营销创新

科技金融政策、案例及营销创新 课程背景: 很多银行存在以下问题: 不清楚科技金融有哪些利好的政策? 不知道科技金融有哪些成功的案例? 不知道科技金融如何进行营销创新? 课程特色: 以案例的方式解…

【重温设计模式】迭代器模式及其Java示例

迭代器模式的介绍 在编程领域,迭代器模式是一种常见的设计模式,它提供了一种方法,使得我们可以顺序访问一个集合对象中的各个元素,而又无需暴露该对象的内部表示。你可以把它想象成一本书,你不需要知道这本书是怎么印…

vue+nodejs超市购物商城在线选品系统wtk87

在此基础上,结合现有超市货品信息管理体系的特点,运用新技术,构建了以 vue为基础的超市货品信息管理信息化管理体系。首先,以需求为依据,根据需求分析结果进行了系统的设计,并将其划分为管理员和用户二种角…

章六、集合(1)—— Set 接口及实现类、集合迭代、Map 接口、Collections类

一、 Set 接口及实现类 Set接口不能存储重复元素 Set接口继承了Collection接口。Set中所存储的元素是不重复的,但是是无序的, Set中的元素是没有索引的 Set接口有两个实现类: ● HashSet :HashSet类中的元素不能重复 ● TreeSet :可以给Set集…

python(5)之处理数组

上次代码结果如下: 1、处理数组的缺失值 1、isnan()函数 isnan()函数是Numpy模块里的一个可以标记数组中缺失值的位置 代码示例如下: import numpy as np ac np.array([1,2,3,2,3,4,5,9,np.nan,1]) p…

系统分析与设计(一)

我们有这么多各式各样的工具,互联网给我们带来了这么多用户和数据,这是好事也有副作用。 世界上能访问用户数据,并根据数据做分析和改进的公司,大概Google是其中翘楚,这种 data-centric 的做法做过了头,也有悲剧发生: Douglas Bowman 曾经是Google 的视觉设计主管,2009年的一天…

设计模式:观察者模式 ⑧

一、思想 观察者模式是一种常见的设计模式,也称作发布-订阅模式。它主要解决了对象之间的通知依赖关系问题。在这种模式中,一个对象(称作Subject)维护着一个对象列表,这些对象(称作Observers)都…

Docker完整版(一)

Docker完整版(一) 一、Docker概述1.1、Docker简介1.2、Docker的用途1.3、容器与虚拟机的区别1.4、Docker系统架构1.5、Docker仓库 二、Docker引擎2.1、Docker引擎架构2.2、Docker引擎分类2.3、Docker引擎的安装2.4、Docker镜像加速器 三、Docker镜像3.1、…

线程-创建线程的方法、线程池

1.创建线程一共有哪几种方法? 继承Thread类创建线程 继承Thread类,重写run()方法,在main()函数中调用子类的strat()方法 实现Runnable接口创建线程 先创建实现Runnable接口的类,重写run()方法,创建类的实例对象&#…

kibana配置 dashbord,做可视化展示

一、环境介绍 这里我使用的kibana版本为7.17版本。 语言选择为中文。 需要已经有es,已经有kibana,并且都能正常访问。 二、背景介绍 kibana的可视化界面,可以配置很多监控统计界面。非常方便,做数据的可视化展示。 这篇文章&…

数据结构:顺序表的奥秘

🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生🐻‍❄个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE🐼本文由GOTXX原创,首发CSDN&a…

C#,排列组合的堆生成法(Heap’s Algorithm for generating permutations)算法与源代码

1 排列组合的堆生成法 堆生成算法用于生成n个对象的所有组合。其思想是通过选择一对要交换的元素,在不干扰其他n-2元素的情况下,从先前的组合生成每个组合。 下面是生成n个给定数的所有组合的示例。 示例: 输入:1 2 3 输出&a…

ZigBee技术与实践教程(无线传感网技术第三天)

1.MAC层规范 在IEEE802系列标准中,OSI参考模型的数据链路层进一步划分为逻辑链路控制子层和介子访问子层两个子层。MAC子层使用物理层提供的服务实现设备之间的数据帧传输,而LLC在MAC 层的基础上,在设备之间提供面向连接和非连接的服务&…

智慧城市的新引擎:物联网技术引领城市创新与发展

目录 一、引言 二、物联网技术与智慧城市的融合 三、物联网技术在智慧城市中的应用 1、智慧交通管理 2、智慧能源管理 3、智慧环保管理 4、智慧公共服务 四、物联网技术引领城市创新与发展的价值 五、挑战与前景 六、结论 一、引言 随着科技的日新月异,物…

注意!!墙裂推荐几个好用的实用小工具!一定会用到的!

前言 在开发的世界里,面对各种挑战和问题时,拥有一套合适的工具箱至关重要。这不仅能提升我们的工作效率,还能让复杂的任务变得简单,甚至在解决棘手问题的同时,还能让我们的心情略微舒畅。众所周知,有用的…

STM32F103 CubeMX ADC 驱动 PS2游戏摇杆控制杆传感器模块

STM32F103 CubeMX ADC 驱动 PS2游戏摇杆控制杆传感器模块 1. 工程配置1.1 配置debug口1.2 配置时钟1.3 配置ADC1.4 配置串口1.5 配置时钟1.6 生成工程 2. 代码编写2.1 串口代码2.2 ADC读取数据的代码 1. 工程配置 1.1 配置debug口 1.2 配置时钟 1.3 配置ADC 1.4 配置串口 1.5 …