中央处理器怎样得到从外部设备来的数据呢?

。。截至到现在,中央处理器只和内存打交道,从内存中取一个数,或者把一个数写入内存,这都可以,但她怎样才能得到从外部设备来的数据呢?毕竟她和内存不是一伙的。千万不要说使用开关手工把她放到内存里,这太折磨人了。

为了在外部设备和计算机核心之间传送数据,需要在这两者之间连线,并构造逻辑电路。在逻辑电路里,有一些寄存器,通常称之为I/O端口,或直接称为端口。当中央处理器有话要对外部设备说时,就把她放在端口(逻辑电路的寄存器)上,由后者(逻辑电路)取走;当外部设备也有话要跟中央处理器说时,也照此办理。从形式上看,端口类似于企事业单位门口的传达室。

计算机内的所有端口都应当像内存地址一样顺序编号,以方便读写。

具体cpu怎么访问端口呢?

为cpu增加新的指令,专门用于访问io端口,比如:in ra,61

她的意思是从61号端口把数据读入RA寄存器。

个人理解:

每个外部设备都有自己的逻辑电路、端口。比如:键盘控制器、显卡、声卡等等。

而外部设备和cpu交互,都是通过端口(也是寄存器),二者之间有连线。

外部设备只管把数据放到端口上,接下来由cpu自己来拿。是cpu轮询来查看有无数据吗?

我想这样的话,cpu太忙了吧。应该是这样设计的:端口上一旦有了数据,就通知cpu来拿(通过中断,让cpu来处理这些数据)。这很合理。

我们公司在做一个智能车位锁项目,车位锁有无线模块、单片机,车位锁和网关通信,网关再和mina服务器通信,从而实现通信。

mina服务端就是一直监听(mina软件在网卡上的)端口,当网关把数据放到这个端口上,mina服务端就拿走。

声卡(对应音响设备)、显卡(显示器)。

cpu只认识二进制数字。声卡上的逻辑电路,需要把模拟信号(电压、电流模拟声音)转成二进制数字信号,再放到端口上。

同样,播放声音时,cpu把二进制放到声卡的端口上,由声卡转成模拟信号,这些模拟信号来控制音响设备。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容