最新的处理器不支持SSSE3指令?

时间:2018-10-17 15:30:24

标签: x86 simd processor instruction-set

是否还有不支持SSSE3指令的相关CPU(Intel / AMD / Atom)?

没有SSSE3的最新CPU是什么?

1 个答案:

答案 0 :(得分:11)

没有SSSE3的最新CPU基于AMD K10 microarchitecture

  • AMD Phenom II ,是推土机家族之前的最新一代K10插槽式台式机CPU。它们是从2008年到2012年生产的
  • AMD Llano APUs,于2011年6月推出。 (基于推土机的APU于2012年10月推出,IDK是最后一批Llano APU的制造/销售)。同样基于K10内核,但是报告CPUID“ family” = 12h。

K10 CPU支持SSE3(FP指令,例如movdduphaddps)以及仅AMD的SSE4a。某些早期的K8内核仅具有SSE2,但后来的K8内核也具有SSE3。

请注意,https://en.wikipedia.org/wiki/SSSE3#CPUs_with_SSSE3中列出的AMD CPU仅从Bulldozer开始,但确实包括AMD的低功耗Bobcat / Jaguar CPU。

如果您通过Google AMD Phenom II ssse3进行搜索,则会找到一些页面,其中某些游戏删除了SSSE3要求,因此它们可以在Phenom II上运行。


在Intel上,您必须追溯到Pentium M / Core,因为SSSE3是Core 2引入的。(第一代core2(Conroe / Merom)仅具有64位宽的随机执行单元,因此{{1 }}相对较慢,但SSE2 pshufb也是如此。请参阅Fastest way to do horizontal float vector sum on x86。)

我认为甚至第一代Atom都具有SSSE3。 https://en.wikipedia.org/wiki/Intel_Atom

有些像AMD Geode这样的CPU根本没有SSE,,但我认为问题的关键是的CPU具有SSE2 / 3,但不是SSSE3。


目前还没有生产没有SSE4.2的新主流CPU,但是某些Phenom II CPU甚至在2018年仍在使用。它们越老,预计新软件可能无法运行的可能性就越大。他们。

不幸的是,仍在生产没有AVX和BMI的全新主流CPU:英特尔的Pentium和Celeron型号,甚至适用于Skylake / Kaby Lake。大概是当裸片在其向量ALU的高128位中有缺陷时,例如大型FMA单元将其融合并禁用VEX前缀的解码,并将其标记为Pentium或Celeron 1 。 (这可能就是为什么Pentium / Celeron型号也不支持BMI1 / BMI2的原因;除了pshufd / pext以外,它们的模具面积很小。)

因此,在将来的某个时刻,我们不会再接近BMI1 / BMI2的基线,这确实是不幸的,因为它是Intel CPU上单uup可变计数移位所必需的。 ({cl pdep为3 oups,因为可能有cl = 0的无标志更新情况; SHLX / SHRX为1 uop)。在整个代码中使用BMI1 / 2最为有用,而不仅仅是在几个函数中使用。


脚注1 :当然,一些功能完善的芯片也得到了这种处理,特别是一旦新工艺的产量提高后,但是对于一致性/市场细分,它们仍然处于瘫痪状态。

但是我认为 shl cl,reg ERMSB仍可用于256位加载/存储,因此FP寄存器文件,加载/存储单元和旁路转发网络仍然需要支持全屏宽度。 (而且ERMSB与矢量循环相比更具吸引力,因为它可以使用两倍的宽度。

我想知道是否有一种方法可以用保险丝对CPU进行重新布线,以便它可以使用正在工作的FMA单元的4个128位通道中的任何2个。我们知道Skylake-AVX512可以将FMA单元与端口0、1和5混合和匹配,仅对512位向量的p5 FMA(如果可用)上电,并将p0和p1上的256位FMA单元合并为一个512位FMA单元。用保险丝静态地做这样的事情可以使英特尔使用的芯片有缺陷,而这两个缺陷会影响到原本属于FMA的两个通道。

无论如何,这纯粹是猜测。这很可能,但是不知道我们是否有可靠的消息来源,英特尔实际上曾经这样做过,以此作为销售具有FMA缺陷的芯片的方法。我们确实知道,整个物理内核中有缺陷的芯片会以较低内核数量的SKU的形式出售,例如来自四核芯片的双核芯片。而只有6MB L3缓存而不是8MB的四核i5 CPU意味着它们禁用了其4个L3缓存片中的一个,这再次可能是为了挽救缺陷。