计算机组成结构—IO接口(IO控制器)

目录

一、I/O 接口的功能

二、I/O 接口的基本结构

1. 总线连接的数据通路

2. I/O 接口的基本组成

三、I/O 端口及其编址

1. 统一编址

2. 不统一编址

四、I/O 接口的类型


        两个系统或两个部件之间的交接部分,一般就称为 接口。接口可以是硬件上两种设备间的连接电路;也可以是两个软件之间交互的逻辑边界。

        主机与 I/O 设备之间,专门设置一套硬件电路、配合相应的软件控制,实现两者间的信息交互,这就是 I/O 接口。不同的 I/O 设备都有其相应的设备控制器,而它们往往都是通过 I/O 接口与主机取得联系的。

一、I/O 接口的功能

        I/O 接口主要的功能如下:

  • 选址功能:根据 I/O 指令中的设备码进行设备选择;

  • 数据缓冲:I/O 设备速度不一,与 CPU 相差比较大,需要进行数据的缓冲达到速度匹配、防止丢失数据;

  • 串并转换:有些 I/O 设备采用串行传输方式,而 CPU 一般为并行传输,需要进行数据格式转换;

  • 电平转换:I/O 设备的输入输出电平可能与 CPU 不同,需要进行电平转换;

  • 传送控制命令:CPU 会向 I/O 设备发出各种控制信号,需要相应的传输通路;

  • 反馈状态信息:I/O 设备需要将工作状态(比如 “忙” “准备就绪” “错误” “中断请求” 等)报告给 CPU,并且可能需要将状态信息进行保存,供 CPU 查询。

二、I/O 接口的基本结构

        总线结构的计算机中,每一台 I/O 设备都是通过 I/O 接口挂到 I/O 总线上的。

1. 总线连接的数据通路

        由于需要实现设备选择、数据缓冲、传送命令和状态等功能,总线中必须有相应的数据通路:

        上图中的 I/O 总线,就包含了 数据线设备选择线命令线状态线

  • 数据线

        数据线是 I/O 设备与主机之间传送数据的线路。

        数据线的根数一般等于存储字长的位数,通常是 双向的。若采用单向数据总线,则必须用两组才能实现数据的输入和输出功能,而双向数据总线只需一组即可。

  • 设备选择线

        设备选择线用来传送设备码,如果把设备码看做是地址号,那么设备选择线又可称为 地址线

        设备选择线的根数取决于 I/O 指令中设备码的位数,决定了能够连接设备的数量。设备选择线一般是一组,也可以有两组,其中一组用于主机向 I/O 设备发送设备码,另一组用于 I/O 设备向主机回送设备码。

  • 命令线

        命令线主要用来传输 CPU 向设备发出的各种命令信号,比如启动、清除、屏蔽、读、写等。

        命令线是一组单向总线,根数与命令信号的数量有关。

  • 状态线

        状态线主要用来向主机报告 I/O 设备的状态信号,比如设备是否准备就绪、是否向 CPU 发出中断请求等。

        状态线也是一组单向总线。

2. I/O 接口的基本组成

        根据 I/O 接口的功能,以及总线结构中整体的数据通路,就可以推出接口应该具有的硬件配置。

(1)选址功能

        设备码通过设备选择线(地址线)送至所有设备的接口,因此需要每个接口都必须具有选址功能。

        当设备选择线上的设备码与本设备码相符时,发出一个 设备选中信号 SEL,这种功能可通过接口内的设备选择电路来实现。

(2)传送命令的功能

        当 CPU 向 I/O 设备发出命令时,要求 I/O 设备能做出响应,因此通常在 I/O 接口中设有存放命令的 命令寄存器 以及 命令译码器

        命令寄存器用来存放 I/O 指令中的命令码,它受设备选中信号 SEL 控制。命令线和所有接口电路的命令寄存器相连,只有被选中设备的 SEL 信号有效,才会将命令线上的命令码存入命令寄存器。

(3)传送数据的功能

        接口处于主机与I/O设备之间,因此主机与 I/O 设备之间进行数据传输必须经过接口。这就要求接口中具有数据通路,完成数据传送。这种数据通路还应具有 缓冲 能力,也就是能将数据暂存在接口内。

        接口中通常设有 数据缓冲寄存器(Data Buffer Register,DBR),它用来暂存 I/O 设备与主机准备交换的信息,与 I/O 总线中的数据线是相连的。

(4)反映 I/O 设备工作状态的功能

        为了使 CPU 能及时了解 I/O 设备的工作状态,接口内必须设置一些反映设备工作状态的触发器。

        比如,可以用 完成触发器 D工作触发器 B 来标志设备所处的状态。

  • 当 D = 1,B = 0 时,表示 I/O 设备已经准备就绪;

  • 当 D = 0,B = 1 时,表示 I/O 设备正处于工作状态;

  • 当 D = 0,B = 0 时,表示 I/O 设备处于暂停状态。

        由于现代计算机系统中大多采用中断技术,因此接口电路中一般还设有 中断请求触发器 INTR,当为 “1” 时,表示该设备向 CPU 发出中断请求;

        接口内还有 中断屏蔽触发器 MASK,它与中断请求触发器配合使用,完成设备的屏蔽功能。

        所有的状态标志触发器都与I/O总线中的状态线相连。此外,不同的 I/O 设备的接口电路中还可根据需要增设一些其他状态标志触发器。

        这样就可以得到 I/O 接口的基本组成:

        目前大多数 I/O 设备所共用的电路都制作在一个芯片内,作为 通用接口芯片。另一些 I/O 设备专用的电路,制作在 I/O 设备的 设备控制器 中。

三、I/O 端口及其编址

        需要注意区分 “接口” (Interface)和 “端口” (Port)的概念:

        端口 指的是接口电路中的一些寄存器,这些寄存器用来存放数据信息、控制信息和状态信息,相应的端口就称为 数据端口控制端口状态端口

        CPU 执行 I/O 指令中的输入操作时,从端口读入信息;执行输出操作时,将寄存器(比如 ACC)的信息写入到端口中。这样,CPU 对 I/O 设备的操作,就可以转换为对 I/O 端口的操作。一些端口,再加上对应的控制逻辑,就组成了接口。

        CPU 要想访问某个 I/O 端口,就需要对 I/O 端口进行统一编号,每个端口对应一个 端口地址。对 I/O 端口的编址,可以选择跟内存统一,也可以完全独立。

1. 统一编址

        统一编址就是把 I/O 地址看作存储器地址的一部分,也就是把 I/O 端口当做存储器单元统一进行地址分配。也称为 存储器映射方式

        这样,CPU 访问 I/O 端口时就可以直接用访存指令,而不需要专门的 I/O 指令,CPU 控制 I/O 设备更加方便;而缺点是端口会占用内存地址空间,减少了主存容量。

2. 不统一编址

        不统一编址就是 I/O 地址和存储器地址完全分开,两者都有自己独立的地址空间,所以又叫 独立编址。也称为 I/O 映射方式

        不统一编址时,CPU 访问一个地址时,就无法从地址码上进行区分;所以必须通过设置专门的 I/O 指令 来访问 I/O 端口。这样就不会占用主存地址空间,用专门的 I/O 指令编写程序也会更加清晰;缺点是让指令系统更加复杂,CPU 需要提供对内存和 I/O 设备的两套读/写控制信号,硬件成本也更高。

四、I/O 接口的类型

        I/O 接口按不同的方式,可以有以下几种分类。

  • 按数据传送方式:分为 并行接口串行接口

  • 按功能选择的灵活性:分为 可编程接口不可编程接口

  • 按通用性:分为 通用接口专用接口

  • 按数据传送的控制方式:分为 程序型接口DMA 型接口

        程序型接口用于连接速度较慢的 I/O 设备,如显示终端、键盘、打印机等;具体的控制方式包括 程序查询方式程序中断方式。DMA 型接口用于连接高速 I/O 设备,如磁盘、磁带等;控制方式采用 DMA 方式

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:医疗健康智能服务

作为国产运动医学的领导者,致力于提供运动医学的整体临床解决方案,公司坐落于北京经济技术开发区。应用于肩关节、膝关节、足/踝关节、髋关节、肘关节、手/腕关节的运动医学设备、植入物和手术器械共计300多个品规通过NMPA的批准,临床应用于国…

docker构建java项目镜像

资料参考 参考自黑马教程:10.Docker基础-自定义镜像_哔哩哔哩_bilibili 初步准备 打包好java项目jar包,和Dockerfile文件一起放到指定目录下,后续操作都是在该目录下操作, 我这边是:/usr/local/src/train-ticket/ …

React -- memo允许你的组件在 props 没有改变的情况下跳过重新渲染。

memo(Component, arePropsEqual?) 使用 memo 将组件包装起来,以获得该组件的一个 记忆化 版本。通常情况下,只要该组件的 props 没有改变,这个记忆化版本就不会在其父组件重新渲染时重新渲染。但 React 仍可能会重新渲染它:记忆化…

vue3路由详解,从0开始手动配置路由(vite,vue-router)

创建一个不含路由的vue项目 (查看路由配置可以直接跳过这一段) 输入npm指令,然后写一个项目名称,之后一路回车即可 npm create vuelatest 注意这里我们不选引入vue router,成功后可以 查看目录 然后按提示信息输入指…

PLC通过Profinet转Modbus网关与流量计通讯案例

1、案例背景 在工业自动化系统中,PLC(可编程逻辑控制器)与流量计之间的通信是保证以后设备生产数据准确传输和实现控制功能的关键。但是,由于PLC和流量计可能使用不同的通信协议(如Profinet和Modbus),因此需要一种转换机制来实现它们之间的通…

Telnet发邮件的功能如何实现?有哪些限制?

Telnet发邮件有哪些步骤?使用Telnet发送邮件安全吗? 虽然大多数人使用图形化的电子邮件客户端发送和接收邮件,但了解如何通过Telnet发邮件依然是有益的。AokSend将详细介绍Telnet发邮件的功能如何实现,帮助读者掌握这种基础但有用…

问题:材料题请点击右侧查看材料问题 查看材料 #学习方法#经验分享#学习方法

问题:材料题请点击右侧查看材料问题 查看材料 A.Colleges may reduce their enrollment. B.Top universities become increasingly competitive. C.Universities become selective in student admission. D.Colleges invest less in academy and infrastructure…

模拟超市收银系统

题目 模拟超市收银系统 内容要求:使用文本命令行窗口设计模拟超市收银系统。要求由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从文件中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有…

「动态规划」如何求地下城游戏中,最低初始健康点数是多少?

174. 地下城游戏https://leetcode.cn/problems/dungeon-game/description/ 恶魔们抓住了公主并将她关在了地下城dungeon的右下角。地下城是由m x n个房间组成的二维网格。我们英勇的骑士最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士…

Node.js环境搭建

背景 想接触下node开发, 打算做个node环境 一、安装包获取 我喜欢使用压缩包解压然后配置的方式进行 地址为: Index of /download/release/ ,可按需选择自己的版本,我选择了如下版本 二、解压配置 将压缩包解压只自己想要安装的文件加下,配置环境变量,解压如下所示: …

Polar Web【中等】写shell

Polar Web【中等】写shell Contents Polar Web【中等】写shell思路&探索EXP运行&总结 思路&探索 初看题目,预测需要对站点写入木马,具体操作需要在过程中逐步实现。 打开站点(见下图),出现 file_put_contents 函数,其…

HarmonyOS开发-鸿蒙UiAbility 组件间跳转

前言 随着春节假期结束各行各业复产复工,一年一度的春招也持续火热起来。最近,有招聘平台发布了《2024年春招市场行情周报(第一期)》。总体来说今年的就业市场还是人才饱和的状态,竞争会比较激烈。 但是,…

算法学习笔记(7.6)-贪心算法(霍夫曼编码)

目录 1.什么是霍夫曼树 2.霍夫曼树的构造过程 3.霍夫曼编码 3.1具体的作用-频率统计 ##实战题目 1.什么是霍夫曼树 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也…

计算机组成结构—IO方式

目录 一、程序查询方式 1. 程序查询基本流程 2. 接口电路 3. 接口工作过程 二、程序中断方式 1. 程序中断基本流程 2. 接口电路 3. I/O 中断处理过程 三、DMA 方式 1. DMA 的概念和特点 2. DMA 与 CPU 的访存冲突 3. DMA 接口的功能 4. DMA 接口的组成 5. DMA 的…

STCunio数字电源带PID数字闭环(带详细的代码说明文档)

STCunio,即 system on chip unusual i/o,采用类似 arduino 构架设计,即使没有单片机知 识的设计师和艺术家们能够很快地通过它学习电子和传感器的基础知识,并应用到他们的设 计当中。设计中所要表现的想法和创意才是最主要的,至于…

Windows 搭建C++ 纯开源开发环境 进行 YOLOv8 模型推理的开发测试环境

文章大纲 IDE 选择纯开源首选 Codeblocks 跨平台开发IDE其次选择 visual studio 社区版 or visual studio code包管理MSYS2pacmanconda & mambavcpkgNuGetapt-get其他手动配置 Visual studio 开发环境下载 visual studio基本配置基本测试:打开图片,打开摄像头读取图片读取…

STL中stack和queue模拟实现+容器适配器

目录 容器适配器 STL标准库中stack和queue的底层结构 deque的简单介绍 deque的缺陷 为什么选择deque作为stack和queue的底层默认容器 stack的模拟实现 queue的模拟实现 容器适配器 适配器是一种设计模式(设计模式是一套被反复使用的,多数人知晓…

吴谨言墨雨背后用真诚柱铸就爆款之路

吴谨言:墨雨背后,用真诚铸就爆款之路在繁华的娱乐圈,每一个成功的背后隐藏着不为人知的努力和汗水。而今天,我们要讲述的,正是这样一位用真诚和执着,一步步走向成功的演员——吴谨言。近日,一则…

cs与msf权限传递

cs传递到msf 1,先启动cs ┌──(root㉿ring04h)-[~/cobalt_strike_4.7] └─# ./teamserver 192.168.196.144 123456 ​ ┌──(root㉿ring04h)-[~/cobalt_strike_4.7] └─# ./start.sh ​ 2,上传木马,上线主机 3,msf配置一个…

出售iPhone前的必做步骤:完全擦除个人数据的方法

当您准备在闲鱼上转售旧 iPhone、将其捐赠、送给朋友或通过 Apple 回收之前,您可能会选择执行“恢复”操作来擦除您的数据。但请注意,这一操作并不能真正删除设备中的数据。被“删除”或“格式化”的数据实际上仍存在于 iPhone 中,只是被系统…