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

Most recent processor without support of SSSE3 instructions?

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

没有 SSSE3 的最新 CPU 是什么?

没有 SSSE3 的最近 CPUs 基于 AMD K10 microarchitecture:

  • AMD Phenom II,比推土机家族早CPU的上一代K10插座台式机。它们 生产于 2008 年至 2012 年
  • AMD Llano APUs,2011 年 6 月推出。 (基于推土机的 APU 于 2012 年 10 月推出,IDK 是在制造/销售最后一个 Llano APU 时)。同样基于 K10 内核,但报告 CPUID "family" = 12h.

K10 CPUs 支持 SSE3(FP 指令,如 movdduphaddps),以及仅 AMD 的 SSE4a。一些早期的K8内核只有SSE2,后来的K8也有了SSE3

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

如果您 google AMD Phenom II ssse3,您会发现一些页面介绍了一些游戏删除了 SSSE3 要求,因此它们可以在 Phenom II 上运行。


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

我认为即使是第一代 Atom 也有 SSSE3。 https://en.wikipedia.org/wiki/Intel_Atom.

有CPU像AMD Geode根本没有SSE,但我认为问题的重点是CPU有SSE2/3但没有SSSE3。


没有新的主流 CPU 没有 SSE4.2,但一些 Phenom II CPU 可能甚至在 2018 年仍在使用。它们越老, 预计新软件可能无法在它们上运行的可能性越大。

不幸的是,仍有全新的主流 CPU 在没有 AVX 和 BMI 的情况下制造:Intel 的 Pentium 和 Celeron 型号,即使是 Skylake / Kaby Lake。据推测,当芯片在其矢量 ALU 的高 128 位中存在缺陷时,例如大型 FMA 单元,他们将其融合并禁用 VEX 前缀的解码,并将其标记为 Pentium 或 Celeron1。 (这大概就是为什么 Pentium/Celeron 模型也不支持 BMI1/BMI2 的原因;除了 pext/pdep 那些占据微不足道的裸片面积。)

所以我们不会在未来的某个时候接近 BMI1/BMI2 成为基线,这真的很不幸,因为它是英特尔 CPU 上单 uop 变量计数转换所必需的秒。 (shl cl,reg 是 3 微指令,因为 cl=0 无标志更新情况是可能的;SHLX / SHRX 是 1 微指令)。 BMI1/2 在整个代码中使用时最有用,而不仅仅是在几个函数中使用。


脚注 1:当然,一些功能完备的芯片也会得到这种处理,尤其是在新工艺的良率提高后,但为了一致性/市场细分,它们仍然残废。

但我认为 rep movs/rep stos ERMSB 仍然可以使用 256 位loads/stores,所以 FP 寄存器文件,load/store 单位,和绕过转发网络仍然需要支持全宽度。 (而且 ERMSB 变得比矢量循环更有吸引力,因为它可以使用两倍的宽度。

我想知道是否有办法为 CPU 重新连接保险丝,以便它可以使用正在工作的 FMA 单元的 4 个 128 位通道中的任意两个通道。我们知道 Skylake-AVX512 可以混合和匹配端口 0、1 和 5 的 FMA 单元,只为 512 位向量启动 p5 FMA(如果可用),并将 p0 和 p1 上的 256 位 FMA 单元组合为一个512 位 FMA 单元。用保险丝静态地做类似的事情可以让英特尔使用有缺陷的芯片,这些芯片会影响一个 FMA 单元的两个通道。

无论如何,这纯属猜测。很有可能,但不知道我们是否有任何可靠消息来源表明英特尔实际上曾经这样做过,以此作为销售具有 FMA 缺陷的芯片的一种方式。我们确实知道,整个物理内核中存在缺陷的芯片会作为内核数较少的 SKU 出售,就像四核裸片中的双核芯片一样。而四核 i5 CPUs 只有 6MB 的 L3 缓存而不是 8MB 意味着它们禁用了 4 个 L3 缓存片之一,同样可能是为了修复缺陷。