Intel Core Solo/Duo处理器微架构

Intel Core Solo/Duo处理器采用的微架构类似于Pentium M处理器的微架构,但是在性能和功能方面做了进一步的增强,主要包括:

  • Intel智能缓存 – Intel Core Duo的 二级缓存在两个处理器核之间共享,这样不需要额外的总线传输就可以让两个核访问二级缓存中数据。对于Intel Core Solo(或者当Intel Core Duo处理器中的某个核空闲时),单个处理器核也可以利用到全部的二级缓存。
  • SSE3 – Intel Core Solo/Duo支持SSE3扩展。
  • 译码器增强 – 在译码器与微熔合方面的增强使得前端可以生成更多的单条微指令,实际增加了前端译码器的吞吐量。
  • 增强的执行核 – 增加了SIMD指令(包括MMX/SSE等)的吞吐量,乱序引擎对于频繁使用的指令序列的处理更加健壮。增强的内部缓存和预取机制进一步增加了执行时数据存取带宽。
  • 总线功耗优化 – 系统总线更加高效的使用电能,即单位传输更加节能;总线速度增加到667MHz。
  • 数据预取 – Intel Core Solo/Duo处理器增强了硬件预取机制:一个机制是可以look-ahead,并将数据从二级缓存预取到一级缓存。这两种处理器还实现了类似于Pentium M处理器的硬件预取器,但是做了进一步增强。

Front End

相对于Pentium M处理器,Intel Core Solo/Duo处理器的SIMD指令在执行方面做的增强如下

  • 微熔合 – 相较于x87指令,操作寄存器和存储器的标量SIMD指令有单一微指令流。许多紧缩SIMD指令从4微指令流减少到了2微指令流。
  • 消除译码器限制 – Intel Core Solo/Duo处理器通过宏融合与微熔合技术增加了译码器吞吐量,因此更多的SSE/SSE2指令可以无限制的被译码。在Pentium M处理器上,许多单微指令的SSE/SSE2指令必须要由主译码器来译码。
  • 增强的紧缩SIMD指令译码 – 在Intel Core Solo/Duo处理器上,所有3个译码器都可以可以译码大部分紧缩SSE指令。因此,前端每个周期可以处理(即译码)最多达3条紧缩SSE指令。不过有一些例外,某些shuffle/unpackshift操作不能熔合,需要主译码器进行译码。

Data Prefetch

Intel Core Solo/Duo处理器有硬件预取机制可以将数据从存储器预取到二级缓存。有两种技术:

  1. 按访问模式预取:在一个触发距离阈值之内(例如256字节),当数据访问模式经过了2次缓存访问未中之后,处理器会激活数据预取机制。这种机制类似于Pentium M处理器上的预取机制,但是可以跟踪16个前向数据流和4个后向数据流。
  2. 缓存预取: 当经过一个缓存未中后,处理器会预取下一个相邻的缓存行。这种预取实际上相当于128字节扇区的预取(相当于Pentium 4处理器上的两个相邻的64字节缓存行)。

硬件预取请求会在总线系统上排队,其优先级低于正常的缓存未中请求(缓存未中时通过总线向存储器请求数据)。如果总线队列很忙(例如多个缓存未中),硬件预取请求有可能被忽略(不进入队列)或者取消(排队中的请求被删除),留下总线带宽给缓存未中数据请求或者其他的总线事务请求。相比Pentium M处理器,Core Solo/Duo处理器做了如下增强:

  • 数据写操作时,若该数据不在二级缓存中,处理器会产生属主读请求RFO。这些请求被当作读操作,可以触发数据预取。
  • 软件预取指令被当作读取操作,也可以触发数据预取。

猜你喜欢

转载自blog.csdn.net/qq_43401808/article/details/85525445