每个连接到i/o总线上的设备都有自己的i/o地址集,即所谓的i/o端口(i/o port)。
在ibm pc体系结构中,i/o地址空间一共提供了65,536个8位的i/o端口。可以把两个连续的8位端口看成一个16位端口,但是这必须是从偶数地址开始。同理,也可以把两个连续的16位端口看成一个32位端口,但是这必须是从4的整数倍地址开始。有四条专用的汇编语言指令可以允许cpu对i/o端口进行读写:它们分别是in、ins、out和outs。在执行其中的一条指令时,cpu使用地址总线选择所请求的i/o端口,使用数据总线在cpu寄存器和端口之间传送数据。
i/o端口还可以被映射到物理地址空间:因此,处理器和i/o设备之间的通信就可以直接使用对内存进行操作的汇编语言指令(例如,mov、and、or等等)。现代的硬件设备更倾向于映射i/o,因为这样处理的速度较快,并可以和dma结合起来使用。也就解释了为什么32位系统名义上支持4g内存,实际上你装上4g内存条在机器上是不行了。因为访问不到4g,还需要为显卡,声卡等设备提供物理地址的映射。
系统设计者的主要目的是提供对i/o编程的统一方法,但又不牺牲性能。为了达到这个目的,每个设备的i/o 端口都被组织成一组专用寄存器。cpu把要发给设备的命令写入控制寄存器(control register),并从状态寄存器(status register)中读出表示设备内部状态的值。cpu还可以通过读取输入寄存器(input register)的内容从设备取得数据,也可以通过向输出寄存器(output register)中写入字节而把数据输出到设备。
i/o端口的编址方式
i/o端口的编址方式有两种,即独立编址和统一编址。
1.独立编址(专用的i/o端口编址)----存储器和i/o端口在两个独立的地址空间中
(1)优点:i/o端口的地址码较短,译码电路简单,存储器同i/o端口的操作指令不同,程序比较清晰;存储器和i/o端口的控制结构相互独立,可以分别设计
(2)缺点:需要有专用的i/o指令,程序设计的灵活性较差
2.统一编址(存储器映像编址)----存储器和i/o端口共用统一的地址空间,当一个地址空间分配给i/o端口以后,存储器就不能再占有这一部分的地址空间
(1)优点:不需要专用的i/o指令,任何对存储器数据进行操作的指令都可用于i/o端口的数据操作,程序设计比较灵活;由于i/o端口的地址空间是内存空间的一部分,这样,i/o端口的地址空间可大可小,从而使外设的数量几乎不受限制
(2)缺点:i/o端口占用了内存空间的一部分,影响了系统的内存容量;访问i/o端口也要同访问内存一样,由于内存地址较长,导致执行时间增加
使用isa汇流排结构的传统pc机其i/o位址空间范围是0x000--0x3ff,有1024个i/o端口位址可供使用
对於使用eisa或pci等汇流排结构的现代pc机,有64kb的i/o位址空间可供使用。在普通linux系统下透过查看/proc/ioports-(对应的i/o口),可以得到相关控制器或设置使用的i/o位址范围
华为新MateBook德国三连发 与此同时微软于上海发布新Surface Pro
手机电池的基础知识
2018 T行神州北京站 艾拉比邀您共话AI 趋势下车主需求和体验
三星调查爱尔兰Galaxy手机爆炸事件
建设高性能终端平台——传音元宇宙的基础设施探索
io端口编址方式有哪些?
随着技术应用的智慧化 LED显示屏越来越“懂人心”
英飞凌联手安克创新与盛弘电气,加速SiC与GaN技术应用
镜头,镜头的种类和作用有哪些?
语言模型GPT-4在北京高考题目上的测试结果
一种基于微悬臂梁的电流天平的光子力测量MEMS装置
光电式液位传感器该如何安装,它有哪些应用
关于无线充电正确使用的技巧
罗永浩:下个创业项目是元宇宙
ChatGPT已经有9岁小孩的心智了
一文了解ELD透明屏的应用领域和优点
美信推出MAXREFDES67通用输入微型PLC参考设计
人员定位系统医养结合式养老,实现高精准人员定位
关于实现逻辑循环的方法分析和介绍
销售破百万!一加手机开售22天,海外市场助推