支持SSE4的处理器是否支持SSSE3指令?

问题描述 投票:4回答:2

我正在开发一个需要SSSE3指令集的硬件平台。在查看IntelAtom®x5-Z8350等处理器时,datasheet表示它支持SSE4.1和SSE4.2。这是否允许为SSSE3指令编写的软件运行?

我相信这个问题与this问题略有不同,因为它从未明确表示SSE4是SSSE3的超集。它只说AVX是一个超集。

x86 sse instruction-set sse4
2个回答
5
投票

这个答案仅适用于英特尔处理器。

首先,所有英特尔凌动处理器从最早的处理器到最新的处理器都支持SSSE3。英特尔手册第1.2.14节规定:

最初的英特尔凌动处理器系列和后续产品包括英特尔凌动处理器D2000,N2000,E2000,Z2000,C1000系列,提供以下功能:

  • ...
  • 支持指令集扩展,包括Supplemental Streaming SIMD Extensions 3(SSSE3)。
  • ...

并且手册的表5-1说明:

SSSE3扩展:Intel Xeon处理器3xxx,5100,5200,5300,5400,5500,5600,7300,7400,7500系列,Intel Core 2 Extreme处理器QX6000系列,Intel Core 2 Duo,Intel Core 2 Quad处理器,Intel Pentium Dual-核心处理器,Intel Atom处理器。

这也与Wikipedia一致。

我不确定手册是否明确声明如果支持SSE4则支持SSSE3,但我们可以推导出来。

第12.7.3节讨论了如何检查SSSE3支持:

在应用程序尝试使用SSSE3扩展之前,应用程序应遵循第11.6.2节“检查SSE / SSE2支持”中所示的步骤。接下来,使用下面提供的附加步骤:

  • 检查处理器是否支持SSSE3(如果CPUID.01H:ECX.SSSE3 [bit 9] = 1)。

第12.12.2节还讨论了如何检查SSE4.1支持:

检查处理器是否支持SSE4.1(如果CPUID.01H:ECX.SSE4_1 [bit 19] = 1),SSE3(如果CPUID.01H:ECX.SSE3 [bit 0] = 1)和SSSE3(如果CPUID.01H) :ECX.SSSE3 [bit 9] = 1)。

最后,第12.12.3节讨论了如何检查SSE4.2支持:

检查处理器是否支持SSE4.2(如果CPUID.01H:ECX.SSE4_2 [bit 20] = 1),SSE4.1(如果CPUID.01H:ECX.SSE4_1 [bit 19] = 1)和SSSE3(如果CPUID) .01H:ECX.SSSE3 [bit 9] = 1)。

如您所见,SSE4.1和SSE4.1都需要支持SSSE3。我们还可以得出结论,SSSE3需要支持SSE2。

CAVEAT:尽管很难确定100%,但未来很可能会继续这样做。

但有一个有趣的观察结果是,将支持SSSE3的处理器列表与支持SSE4.1和SSE4.2的处理器列表(表5-1和表5-2)进行比较时,只有一个处理器,Intel Core i7 965处理器,在SSE4.2列表中但不在SSSE3中,但处理器实际上支持SSSE3。不确定这是手册中的错误,还是更可怕,它是不完整的。

另一个有趣的观察是,对于Atom以外的处理器(参见上面第1.2.14节的引用),似乎对SSSE3,SSE4.1或SSE4.2的支持并不一定意味着支持SSE3。我没有在手册中找到任何能够让我得出结论的内容。同时,我不知道任何支持SSSE3,SSE4.1或SSE4.2的处理器,但不支持SSE3。

第12.1.1节规定了SSSE3中可用的寄存器:

在兼容模式下,SSE3,SSSE3和SSE4的功能与它们在保护模式下的功能相同。在64位模式下,可以访问8个额外的XMM寄存器。通过使用REX前缀访问寄存器XMM8-XMM15。

第12.7.1节讨论了对SSSE3的操作系统支持:

确保您的操作系统支持SSE / SSE2 / SSE3 / SSSE3扩展。 (对SSE扩展的操作系统支持意味着对SSE2,SSE3和SSSE3的足够支持。)

因此,任何需要SSE的操作系统都会自动支持SSSE3。


0
投票

我认为新处理器中的“支持”意味着“新”事物,而向后兼容性是强制性的,至少在英特尔领域 - 对于AMD来说可能有所不同,那么最低的共同点用于操作系统代码并且只有低 - 如果它真的值得,可以优化级别内核变体/路径。特殊/科学/实验/媒体软件可能需要处理器ISA(视频渲染,音频DSP FX等)

© www.soinside.com 2019 - 2024. All rights reserved.