首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何向PCI卡发送信号?

如何向PCI卡发送信号?
EN

Stack Overflow用户
提问于 2017-10-09 19:34:30
回答 2查看 241关注 0票数 0

PCI卡可以有一些与之关联的内存(映射到内存空间或映射到IO空间)。

现在假设我们有一个PCI以太网卡(它使用内存映射IO),以太网卡将有一些内存作为缓冲区,将数据放入线路中,无论何时以太网驱动程序想要通过线路发送数据,它都可以请求以太网卡这样做。

现在,我假设以太网卡的映射内存的一部分是“命令寄存器”,当您将字符串"send it"写入此命令寄存器时,以太网卡将沿线路发送缓冲区。

现在我的问题是,以太网卡如何知道控制寄存器的内存已被写入?以太网卡是否轮询控制寄存器的内存内容,或者是否有某种机制用于在控制寄存器的内存地址被写入时自动向以太网卡发送信号(所以有点像中断,但方向相反)?

EN

回答 2

Stack Overflow用户

发布于 2017-10-09 23:19:38

PCI卡的内存映射IO的地址范围由PCI设备的基址寄存器(BAR)控制。当CPU访问BAR范围内的存储器地址时,存储器访问被直接路由到设备(如果是写操作,则与数据一起),而不是被路由到存储器。当PCI设备接收到存储器访问时,它立即更新指定的控制寄存器。如果MMIO访问是读操作,则设备使用适当的值响应CPU。

票数 3
EN

Stack Overflow用户

发布于 2017-10-10 02:31:43

MMIO允许您使用加载和存储指令,而不是INOUT指令,但设备仍然可以看到命令,而不仅仅是内存访问。

这就是为什么它是MMIO,而不仅仅是内存映射设备内存的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46645468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档