PCI 学习(2)
本篇主要是介绍英文SPEC中的第三章的内容
bus command
![图1 C/BE[3::0]#命令](https://i-blog.csdnimg.cn/blog_migrate/b2bfc240f5613a2fa23caa9710b6f588.png)
Interpuy Acknowlege:提供一个命令能够隐式的读取中断控制器的地址,该命令个人认为基本用不上。
Special Cycle:在PCI总线上向每一个设备进行一个消息广播。
I/0 read,I/O write:分别是对I/O映射空间的读取与写入。
Memory Read,Memory Write:分别是对内存空间的读和写。
Configuration Read,Configuration write:对配置空间的读和写。
重点说一下 Memory Read,Memory Read Multiple,Memory Read Line的区别,这三个的区别主要是读取的数据大小的区别,因为PCI总线只有32bit,4个btye的AD输入,因此每次只能传输1个DWORD的数据,但是当你需要读取3个DWORD的数据时,你使用Memory Read的命令的话,PCI只会读取完1个DWORD后就会把相应的引脚deasserted,后续的DWORD的读取就需要重新asserted比如FRAME#,TRDY#等引脚信号,这样效率比较低,但是如果你使用Memory Read Line的命令读取时他就可以连续读取Cacheline的长度的数据,这里的Cacheline的长度是由Configuration Space中的Cacheline进行决定的,对于最后一个Memory Read Multiple它读取的数据时可以超过Cacheline的长度的。

本文详细介绍了PCI总线的bus command,包括Memory Read、Memory Read Multiple、Memory Read Line的区别,以及PCI地址解码中的I/O Space、Memory Space和Configuration Space。重点讨论了Memory Space的不同读取模式以及配置空间解码的关键作用,同时阐述了PCI设备的地址映射和预取特性。
最低0.47元/天 解锁文章
2200

被折叠的 条评论
为什么被折叠?



