当前位置: 首页 > news >正文

输入输出接口

IO接口的作用

又被称为IO控制器,设备控制器,负责协调主机和外部设备之间的数据传输

1.数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设的工作速度匹配

2.错误或状态检测:通过状态寄存器反馈设备的各种错误,状态信息,供cpu查用

3.控制和定时:接受从控制总线发过来的控制信号,时钟信号

4.数据格式转换:串-并,并-串 等格式

5.与主机和设备通信 :实现主机-IO接口-io设备之间的通信

内部接口:内部接口与系统总线相连,实际上与内存cpu相连,数据的传输方式可以并行也可以串形

外部接口:外部接口通过接口电缆与外设相连,数据传输可能是串形也可能是并行

结构和工作原理

1.数据线->状态/控制寄存器:【发命令】发送命令字到io控制寄存器,向设备发送命令(需要驱动器的帮助)

2.状态/控制寄存器->数据线:【读状态】从状态寄存器读取状态字,获得设备或者io控制器的状态信息

3.数据线<->数据缓冲寄存器:【读写数据】从数据缓冲寄存器发送或者读取数据,完成主机和外设的数据交换

控制寄存器和状态寄存器在使用时间上是错开的,所以有的io接口中,可以将二者合二为一

io控制器中,各种寄存器称为io端口

有些教材吧命令字叫做控制字

IO端口的编址方式

1.统一编址

把io端口当作存储器的单元进行地址分配,用统一的仿存指令就可以访问io端口,又称为存储器映射方式

靠不同的地址码 区分内存和io设备,io地址要求相对固定在地址的某个部分

优点:不需要专门的io端口,所有访存指令,都可以直接访问端口,程序设计灵活性高,端口又较大的编制空间

缺点:会占有主存的地址空间,使主存地址空间变小,外设寻址时间长

2.独立编址

io端口地址与存储器地址无关,独立编址cpu需要设置专门的io指令访问端口,又称为io映射方式

不同的指令区分内存和io设备 或者不同的地址码

优点:使用io指令,程序编制清晰。可读性强;io端口的地址位数少,地址译码速度快;io端口的地址不占用主存地址空间

缺点:io指令的类型少,只能对端口传送操作程序灵活性差;需要cpu提供存储器读写,io读写两组控制信号,增加了逻辑电路的复杂性。

http://www.hskmm.com/?act=detail&tid=16698

相关文章:

  • Go语言中的信号捕获与优雅退出:SIGINT、SIGTERM和SIGKILL详解 - 若
  • (二)3.1.9 生产“稳”担当:Apache DolphinScheduler Worker 服务源码全方位解析
  • 完整教程:生产环境实战:Spring Cloud Sleuth与Zipkin分布式链路追踪实践
  • 训练“系统级思维”,听时序数据库 IoTDB Committer 说说从设计到应用的成长
  • 关于gradle项目启动
  • Day08
  • 常见闪存区别
  • 进程、线程、协程、虚拟线程,傻傻分不清楚
  • 事倍功半是蠢蛋55 ctrl+shift+f 每次搜索都按倒繁体
  • Ini文件的读写
  • 数据跨境传输解决方案助力企业安全合规高效流通
  • 题解:P9454 [ZSHOI-R1] 巡城
  • QuestaSim奔溃后再次打开无法仿真
  • 软考架构备考-软件可靠性、知识产权和标准化
  • 医院内外网文件传输:平衡安全与效率的关键链路!
  • 我的第一个赚钱网站 -- 从网站源码到集成AdSense获利的全过程
  • Gradle读取仓库配置文件的优先级
  • opencv学习记录5
  • PCS PMA,如何理解硬核IP
  • pycharm中使用调试模式运行 uvicorn.run(app)报错TypeError: _patch_asyncio.locals.run() got an unexpected keywor解决
  • 交换机命令
  • 2025.9.25
  • 易基因:Cell Rep:华农任文凯团队利用ChIP-seq及多组学解析过敏性疾病的关键调控机制|项目文章
  • 详细介绍:STL 容器 --- list 类
  • Idea代码回退已经push到远段仓库的代码分支到指定提交记录
  • 开写第一篇
  • 大模型function calling多轮对话开发示例
  • ViTables 安装与 HDF5 数据可视化全指南 - 实践
  • elementuiplus修改el-checked多选框样式
  • DataGrip格式化SQL模板