缓存,存储缓冲区和BIU / WCB在CPU中是否对每个物理缓冲区都有单独的物理缓冲区,或者对所有缓冲区都有单独的物理缓冲区?

亚历克斯

CPU:Intel Sandy / Ivy Bridge(x86_64)

我需要编写一个通过PCI Express连接到CPU的设备驱动程序,并且需要使用最大带宽。为此,我将映射的设备内存用于处理器的物理地址空间。然后使用将该内存映射到标记为WC(写合并)的内核虚拟地址空间ioremap_wc ()

x86_64 CPU中众所周知,有几个缓冲区:

  1. 高速缓存-众所周知的快速内存缓冲区,由三个缓冲区组成:L1 / L2 / L3每个级别包括一个64字节的高速缓存行。
    • WB(回写)模式下,后台CPU通过使用任意顺序的64字节块将数据从高速缓存写入RAM。
    • WT写)模式下-通过使用(同步)将每个存储区存储到内存中,MOV [addr], reg是立即将高速缓存行存储到高速缓存和RAM中。

有关缓存级别的详细信息:每个内核具有L1(64 KB,1 ns)和L2(256 KB,3 ns),并且整个CPU的所有内核缓冲区L3都有一个(4-40 MB,10 ns)。

  1. (SB)存储缓冲区-依次存储所有数据的缓冲区(队列)。并以相同的顺序将后台懒散的数据存储在内存中。但是有一个选项可以通过使用(例如,为了支持内核之间的顺序一致性)来将数据从存储缓冲区强制保存到Cache / RAMSFENCEMFENCE

  2. BIU(总线接口单元)/ WCB(写组合缓冲区) -在WC(写组合)模式下。当内存区域标记为WT时,不使用高速缓存,而将大小为64字节的BUI / WCB用作高速缓存行。当我们将MOV [addr], reg1字节存储到内存中64次时,只有存储了最后一个字节,然后整个BIU / WCB存储到内存-这是一种优化的机制,用于通过64个字节的整个块将数据写入存储区。例如,这是一种非常重要的机制,用于将数据存储到通过PCI-Express接口映射到CPU物理地址空间的设备内存,其中记录(发送)64字节与记录(发送)相比增加了实际带宽。 1个字节。但是有一个选项可以通过使用将数据从BIU / WCB强制保存到[远程]存储器SFENCEMFENCE

和一些密切相关的问题:

1.缓存,存储缓冲区和BIU / WCB是否都在CPU中使用相同的物理缓冲区,但是它们的不同部分,或者它们在CPU中都具有单独的物理缓冲区?

2.如果Cache和BIU使用相同的物理缓冲区,例如都使用Cache-L1的一部分,那么为什么SFENCE/MFENCEimapct放在第二位,而没有放在第一位。如果它们具有单独的物理缓冲区,那么为什么高速缓存行和BIU具有相同的64字节大小?

3. L1的高速缓存行数等于(65536/64)= 1024,L2等于(262144/64)= 4096,L3等于4 MB / 64字节。我们不知道存储缓冲区的大小。但是,在单个CPU内核或整个CPU上,我们有多少个BUI / WCB(每个64字节)

4.如我们所见,这些命令SFENCEMFENCE存储缓冲区BIU / WCB产生影响但是这些命令对缓存(L1 / L2 / L3)有什么影响吗?

马克兹
  1. 缓存,存储缓冲区和BIU / WCB都是CPU中单独的物理结构。

  2. 为什么高速缓存行和BIU的大小相同,为64个字节?为了方便和易于设计。并且由于各种可缓存性区域之间的边界至少对齐了64个字节。

  3. 单核上的BIU / WCB数量不是体系结构的一部分,它是一个实现细节,甚至可能一步一步地变化。

  4. SFENCEMFENCE导致待完成的存储完成,这可能会导致一些可缓存的数据从CPU存储缓冲区写入到缓存中。

(编辑)L1 / L2 / L3高速缓存形成了单个高速缓存一致性系统,这是外部存储器的捷径。

根据设计中实现的高速缓存包含属性,fence操作会使挂起的存储区写入高速缓存的某些特定级别(L1 / L2或L3)。最典型的是,fence指令会导致可缓存数据从存储缓冲区移动到L1,但我相信可能会将内存区域标记为仅可在L2或L3中缓存。在那种情况下,数据将从存储缓冲区移到L2或L3。(许多MIPS处理器支持此操作模式。)

不可缓存的数据将始终总是从存储缓冲区/ WCB直接写入内存,并且永远不会写入缓存。

自P6以来,我就没有从事过Intel处理器的工作,所以我不知道实现细节,例如WCB的数量或当前内核上的存储缓冲区。

如果您想了解特定Intel内核的实施细节,请查看Microprocessor ReportHot Chips会议记录。(两者都应在大学图书馆中使用。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章