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

计算机外设与CPU通信

计算机外设与CPU通信

不同的IO设备的连线数量、传输的信号不一样,而且各自的插头和插孔也千差万别,这该如何让处理器跟它们打交道?

I/O接口可以是一个电路板,也可能是一块小芯片,这取决于它有多复杂。无论如何,它是一个典型的变换器,或者说是一个翻译器,在一边,它按处理器的信号规程工作,负责把处理器的信号转换成外围设备能接受的另一种信号;在另一边,它也做同样的工作,把外围设备的信号变换成处理器可以接受的形式。

IO接口不可能直接与CPU相连,需要先接在总线上。为了避免IO接口与CPU通信时发生冲突,需要一个输入输出控制设备集中器(ICH)芯片,该芯片的作用是连接不同的总线,并协调各个I/O接口对处理器的访问。在个人计算机上,这块芯片就是所谓的南桥。

IO端口和端口访问

实际上,CPU与外围设备的通信是通过IO端口进行的。IO端口本质上是寄存器,位于IO接口上。一个IO接口上可能有多个IO端口用于实现不同的功能。IO端口的宽度取决于硬件设计值。

在Intel处理器中,IO端口有两种不同的访问方式:

  • 映射到地址空间中
  • 采用独立编址

第一中便是把IO端口映射到某一段特定的物理RAM中,如果访问那些特定的地址,实际上就是访问IO端口。

第二种IO端口不与主存发生关系,在这种计算机中,处理器的地址线既连接内存,也连接每个I/O接口。但是,处理器还有一个特殊的引脚M/IO#,在这里,“#”表示低电平有效。也就是说,当处理器访问内存时,它会让M/IO#引脚呈高电平,这里,和内存相关的电路就会打开;相反,如果处理器访问I/O端口,那么M/IO#引脚呈低电平,内存电路被禁止。与此同时,处理器发出的地址和M/IO#信号一起用于打个某个I/O接口,如果该I/O接口分配的端口号与处理器地址相吻合的话。这里着重讲一下第二种实现。

in和out指令

in指令用于从特定端口中读取数据,指令格式为:

  • in ax, dx
  • in al, dl

只能使用ax或dx寄存器,其中dx是IO端口号。in al,dx的机器指令码是0xEC,in ax,dx的机器指令码是0xED,都是一字节的。之所以如此简短,是因为in指令不允许使用别的通用寄存器,也不允许使用内存地址作为操作数。

也许是为了方便,in指令还有2字节的形式。此时,前一字节是操作码0xE4或者0xE5,分别用于指示8位或者16位端口访问;后一字节是立即数,指示端口号。如in ax, 0xf0

相应的,如果要通过端口向外围设备发送数据,则必须通过out指令。

http://www.dtcms.com/a/576995.html

相关文章:

  • 玩转Rust高级应用 如何编译器对于省略掉的生命周期,不使用“自动推理”策略呢?
  • Python全栈项目:基于Django的电子商务平台开发
  • 网站建设怎么开票网站设计网页设计公司
  • Python实现GPT自动问答与保存
  • 深度强化学习,用神经网络代替 Q-table
  • seo网站建设技巧电线电缆技术支持中山网站建设
  • supabase外键查询语句
  • 【linux端cursor CLI常用命令】
  • 表的增删改查
  • Git 工作区、暂存区和版本库
  • MIT-矩阵链相乘
  • Go语言实战:入门篇-5:函数、服务接口和Swagger UI
  • 国产化Excel处理控件Spire.XLS教程:使用Java将CSV转换为PDF(含格式设置)
  • 【Hot100|3 LeetCode 128. 最长连续序列】
  • 一键搭建 Coze 智能体对话页面:支持流式输出 + 图片直显,开发效率拉满!
  • 十大免费ae模板网站短视频素材下载网站
  • 那里做直播网站网页打不开是什么问题
  • 论文分享 | AirRoom:物体是关键!革新室内房间重识别的新范式
  • 游戏 IPA 如何防修改,面向开发者的多工具实战(IPA 加固/无源码混淆/Ipa Guard CLI)
  • 从0到1做一个“字母拼词”Unity小游戏(含源码/GIF)- 项目的创建及准备
  • 在扣子上搭建测试用例自动编写智能体
  • 2023年第二十届五一数学建模竞赛-A题 无人机定点投放问题-基于抛体运动的无人机定点投放问题研究
  • 影刀RPA一键生成销售日报!AI智能分析,效率提升1000%[特殊字符]
  • Rust开发实战之密码学基础——哈希计算与对称加密实战
  • 技术解析:清洗无人机在高空清洁中的应用与优势
  • Linux LVM NAT 模式部署实践
  • 使用 DVC(Data Version Control)进行数据版本管理
  • 网站建设选择哪种开发语言最好从哪里下载wordpress
  • 微服务之网关(Spring Cloud Gateway)
  • ES脚本语言Painless介绍