Caching 超线程数据缓存上下文别名

Caching 超线程数据缓存上下文别名,caching,cpu-cache,Caching,Cpu Cache,在英特尔手册中,以下部分让我感到困惑: 11.5.6.2共享模式在共享模式下,一级数据缓存在逻辑处理器之间竞争性共享。这是真的,即使 逻辑处理器使用相同的CR3寄存器和分页模式。 在共享模式下,一级数据缓存中的线性地址可以使用别名, 这意味着缓存中的一个线性地址可以指向不同的 物理位置。解决混叠的机制可能导致 痛击。因此,IA32_MISC_ENABLE[位24]=0是 基于英特尔NetBurst处理器的首选配置 支持英特尔超线程技术的微体系结构 由于intel使用VIPT(等于PIPT)访问缓

在英特尔手册中,以下部分让我感到困惑:

11.5.6.2共享模式在共享模式下,一级数据缓存在逻辑处理器之间竞争性共享。这是真的,即使 逻辑处理器使用相同的CR3寄存器和分页模式。 在共享模式下,一级数据缓存中的线性地址可以使用别名, 这意味着缓存中的一个线性地址可以指向不同的 物理位置。解决混叠的机制可能导致 痛击。因此,IA32_MISC_ENABLE[位24]=0是 基于英特尔NetBurst处理器的首选配置 支持英特尔超线程技术的微体系结构

由于intel使用VIPT(等于PIPT)访问缓存

缓存别名是如何发生的?

基于《英特尔64和IA-32体系结构优化参考手册》,2009年11月(248966-020),第2.6.1.3节:

物理处理器中的大多数资源都是完全共享的,以提高性能 资源的动态利用率,包括缓存和所有 执行单位。线性寻址的一些共享资源, 与DTLB一样,包含一个逻辑处理器ID位以区分 条目是否属于一个逻辑处理器或另一个逻辑处理器

根据上下文ID,第一级缓存可以在两种模式下运行 位:

  • 共享模式:一级数据缓存由两个逻辑缓存完全共享 处理器
  • 自适应模式:在自适应模式下,使用页面访问内存 目录在共享 一级数据缓存
别名是可能的,因为处理器ID/上下文ID位(这只是一个指示内存访问来自哪个虚拟处理器的位)对于不同的线程是不同的,共享模式使用该位。自适应模式只是像人们通常期望的那样寻址缓存,只使用内存地址

在共享模式下为缓存编制索引时,处理器ID的具体使用方式似乎没有文档记录。(与多个地址位的XORing将提供索引的分散,以便一个硬件线程的相邻索引映射到另一个线程的更多分离索引。为不同线程选择不同的位顺序的可能性较小,因为这样会增加延迟。分散可减少给定空间位置的冲突频率。)以上缓存线粒度,但小于路径大小粒度。)

相关问题: