免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: Cyberman.Wu
打印 上一主题 下一主题

问一个PCIe设备的问题(已解决) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-12-31 21:33 |只看该作者

回复 #7 accessory 的帖子

是的,这本书挺好的,我就是看着这本书逐渐理解一些东西的。不过这本书讲的是1.0a的,细节上和1.1有一些差异,但这个很少。

规范是最权威的,不过不熟悉一阵子看起来挺麻烦的;规范里面比较好的是它给了许多Implementation Notes,很有参考价值。不过在规范中关于Memory Read的Length好像有两个地方描述是矛盾的。

[ 本帖最后由 Cyberman.Wu 于 2009-12-31 21:36 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2009-12-31 21:53 |只看该作者
原帖由 北极狐BILL 于 2009-12-31 09:10 发表


bus, dev, function不是OS分配的麽,在PCI设备的枚举过程中,会为每个pci_dev分配bus, dev, function。


是的,OS(或BIOS)对下面的总线进行编号,每一个Bridge上面的相关寄存器也会被配置。我只是疑问设备自己如何知道,因为它的Completion中有一个Completer ID,并且PCIe设备可以主动做一些操作,此时它的Reqeust ID也是一样的问题。后来才发现规范中提到配置空间中没有定义这个,不过要求设备在收到Configuration Write的时候需要自己去记录。

论坛徽章:
0
13 [报告]
发表于 2009-12-31 22:14 |只看该作者
原帖由 snail_314 于 2009-12-31 09:59 发表
是软件写的阿,楼主的意思是说硬件还会detect这个写的事件然后纪录下来软件写的base address


Base Address和这个是两回事。

论坛徽章:
0
14 [报告]
发表于 2010-01-17 02:18 |只看该作者
问一个很弱的问题:
PCI Express构架中,同一个switch不同port下的endpoint之间通信时,packet不会通过root complex, 那CPU怎么知道这次通信的相关信息呢?

论坛徽章:
0
15 [报告]
发表于 2010-01-17 10:23 |只看该作者
为啥“CPU知道这次通信的相关信息呢”? 也许CPU根本不知道呢?

老兄你是在想JF CPU? 还是一般的X86 32下的CPU + PCIE 啊?

论坛徽章:
0
16 [报告]
发表于 2010-01-18 14:10 |只看该作者
原帖由 accessory 于 2010-1-17 10:23 发表
为啥“CPU知道这次通信的相关信息呢”? 也许CPU根本不知道呢?

老兄你是在想JF CPU? 还是一般的X86 32下的CPU + PCIE 啊?


我的疑问就是:CPU是否有必要知道这次通信的相关信息?
1)如果有必要,CPU通过什么手段得知?
2)如果没必要,那么这些PCIE设备对于CPU就是不可控的?

我现在还不清楚JF CPU与PCIE以及root complex之间是个怎样的topology, intel上没搜到,汗~

论坛徽章:
0
17 [报告]
发表于 2010-01-19 03:55 |只看该作者
我觉得没必要然CPU获得这些信息。

因为设备和设备之间DMA的根本动机就是减少CPU的使用率。 解放CPU,让它可以做一些其他更重要的事情。

如果某些信息一定要让CPU知道。比如发送了多少数据。那么设备自己可以做一个硬件接口,在数据接收满了后给CPU发个中断。然后在提供了寄存器。这样CPU可以收到中断后直接读取设备上的某个寄存器。获得它想要的信息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP