首页
社区
课程
招聘
请教IO端口到底是个什么概念?
发表于: 2010-4-8 17:24 5161

请教IO端口到底是个什么概念?

2010-4-8 17:24
5161
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
CPU和其它设备之间通讯,都要通过IO端口,包括键盘、鼠标、显卡、声卡都在内
2010-4-8 19:09
0
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
I/O (input/output):输入输出端口
    每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。
  CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口.
2010-4-8 19:34
0
雪    币: 64
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
每个连接到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)中写入字节而把数据输出到设备。
2010-4-9 16:51
0
游客
登录 | 注册 方可回帖
返回
//