首页 > 其他分享 >IO接口

IO接口

时间:2024-10-22 21:36:36浏览次数:1  
标签:主机 接口 IO 寄存器 CPU 外设

IO接口,又称IO控制器、设备控制器,负责协调主机与外部设备之间的数据传输

IO接口的作用

  • 进行地址译码和设备选择。CPU 送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。
  • 实现主机和外设的通信联络控制。解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。
  • 实现数据缓冲。CPU 与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据。
  • 信号格式的转换。外设与主机两者的电平、数据格式都可能存在差异,接口应提供主机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。
  • 传送控制命令和状态信息。CPU 要启动某外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给 CPU。外设向 CPU 提出中断请求时,CPU 也应有相应的响应信号反馈给外设。

IO接口的基本结构

img

I/O 接口中的数据线传送的是读/写数据、状态信息、控制信息和中断类型号。地址线传送的是要访问 I/O 接口中的寄存器的地址。控制线传送的是读/写控制信号,以确认是读寄存器还是写寄存器,此外控制线还会传送中断请求和响应信号、仲裁信号和握手信号。

I/O 接口中的 IO 控制逻辑还要能对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑送到外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器。另外,它还要具有收集外设状态到状态寄存器的功能。对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令来完成的,通常称这类指令为 I/O 指令,IO 指令只能在操作系统内核的底层 I/O 软件中使用,它们是一种特权指令。

数据缓冲寄存器和命令/状态寄存器的内容都是通过控制线来传送的,一定要记住这一点。面向考试的话,直接记住这一点即可

我们可以这样理解,控制总线是用来在主机和IO接口之间传递控制信息的,而数据总线写在控制寄存器里的信息,是用来控制外设执行具体的操作的,与外设的驱动程序有关

具体的信息等学完操作系统的IO软件一节后,需要再打磨一下

IO接口的类型

img

IO端口及其编址

img

img

img

标签:主机,接口,IO,寄存器,CPU,外设
From: https://www.cnblogs.com/AH20/p/18493784

相关文章

  • Saprk:数据插入的优化(forachPartition)
    在spark中处理数据,将处理好的数据保存到mysql中,如果直接处理RDD数据,将其循环使得每一条数据都能插入到数据库中,如果数据量不大的情况下,可以使用。但是针对大数据,处理的数据是海量的,所以每次循环一条数据都要创建新的数据库连接,就会非常耗时,如果把数据库的连接放在外面,这样又造......
  • Java调用第三方接口、http请求详解,一文学会
    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据......
  • C. Concatenation of Arrays
    进行排序的运算符必须满足严格弱序(满足传递性和不可比性的传递性)按逆序对数排序显然不满足不可比性的传递性,如(1,5)(3,3)(2,6)同一个组内的两个数的相对大小不影响答案,应该猜想按较小值排序点击查看代码#include<bits/stdc++.h>usingnamespacestd;inta[100005][2];i......
  • iOS - Swift 正则校验场景总结
    1.校验是否只含有“数字和字母”或者“字母”classfunccheckUserName(_username:String)->Bool{    letregex=try?NSRegularExpression(pattern:"^(?![0-9]+$)[0-9A-Za-z]{8,16}$",options:[])    returnregex?.firstMatch(in:usernam......
  • 【java】抽象类和接口(了解,进阶,到全部掌握)
    各位看官早安午安晚安呀如果您觉得这篇文章对您有帮助的话欢迎您一键三连,小编尽全力做到更好欢迎您分享给更多人哦大家好我们今天来学习Java面向对象的的抽象类和接口,我们大家庭已经来啦~一:抽象类1.1:抽象类概念在面向对象的概念中,所有的对象都是通过类来描绘的,但是......
  • PDF Shaper Professional v13.5 中文破解版
    PDFShaperProfessionalv13.5中文破解版https://www.aihao.cc/thread-93682-1-1.html新版变化Releasenotes-PDFShaperhttps://www.pdfshaper.com/release-notes.html•批量提取PDF中的文本、图像等内容•合并多个PDF文件为一个PDF即PDF合并功能•加密和解密PDF文......
  • ReactOS系统中MM_REGION结构体的声明
    ReactOS系统中MM_REGION结构体的声明ReactOS系统中MM_REGION结构体的声明文章目录ReactOS系统中MM_REGION结构体的声明MM_REGIONMM_REGIONtypedefstruct_MM_REGION{ULONGType;//MEM_COMMIT,MEM_RESERVEULONGProtect;//PAGE_READONLYY,PAGE_READ_WR......
  • 【Azure Developer】System.Net.WebException: The request was aborted: Could not c
    问题描述在Azure中,使用操作系统为WinServer2019和WinServer2012的虚拟机,同样代码可以链接同一个AzureServiceBus。Win2019成功运行,但是在Win2012上报错:CouldnotcreateSSL/TLSsecurechannel. 问题解答WinServer2012默认不支持TLS1.2,可以通过安装 Update3140245 ......
  • CBDD-Chemical Biology & Drug Design
    文章目录一、征稿简介二、重要信息三、服务简述四、投稿须知五、联系咨询一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述本次征文主题包括但不限于:虚拟筛选全新药物设计药物再利用毒性预测临床试验优化性质优化关键词:人工智能;自然......
  • 【Azure Developer】System.Net.WebException: The request was aborted: Could not c
    问题描述在Azure中,使用操作系统为WinServer2019和WinServer2012的虚拟机,同样代码可以链接同一个AzureServiceBus。Win2019成功运行,但是在Win2012上报错:CouldnotcreateSSL/TLSsecurechannel. 问题解答WinServer2012默认不支持TLS1.2,可以通过安装 Update314......