在PCI配置空间中,缓存行大小以DWORD为单位表示系统缓存行大小。该寄存器必须由可以生成Memory Write和Invalidate命令的主设备实现。
主设备也使用该寄存器中的值来确定是使用Read,Read Line还是Read Multiple命令来访问内存。
希望允许使用高速缓存行换行寻址模式进行内存突发的从设备必须实现此寄存器,以了解突发序列何时换行到高速缓存行的开头。
但是,此字段由PCI Express设备实现为读写字段,用于传统兼容性目的,但不会影响任何PCI Express设备行为。
然后PCIe系统如何实现内存写入无效功能?
答案 0 :(得分:0)
PCIe具有一个称为地址转换服务(ATS)的补充协议,在该协议中,有一个无效说明(第3章)。最重要的是可以执行此操作的称为Invalidate的MsgD事务层数据包(TLP)。 请注意,通常,它与MWr TLP完全独立(按协议)。
答案 1 :(得分:0)
据我所知,PCIe没有显式的消息存储器写入和失效。取而代之的是,如果根联合体接收到恰好覆盖整个缓存行的写入操作,则可以避免读取该缓存行并使该缓存行立即失效。
我认为在大多数情况下,如果可能的话,您只会生成MaxPayloadSize请求,并希望也能触发这种行为。如果您必须从设备知道缓存行的大小,建议您设计一种设备特定的机制,并从驱动程序进行配置。