- x86/
- X86 支持SSE4的处理器是否支持SSSE3指令?
X86 支持SSE4的处理器是否支持SSSE3指令?
X86 支持SSE4的处理器是否支持SSSE3指令?,x86,sse,instruction-set,sse4,X86,Sse,Instruction Set,Sse4,我正在开发一个需要SSSE3指令集的硬件平台。当查看诸如Intel Atom x5-Z8350之类的处理器时,会发现它支持SSE4.1和SSE4.2。这是否允许为SSSE3指令编写的软件正常工作
我相信这个问题和这个问题略有不同,因为它从来没有明确地说SSE4是SSSE3的超集。它只是说AVX是一个超集。这个答案只适用于英特尔处理器
首先,从最早的到最近的所有Intel Atom处理器都支持SSSE3。《英特尔手册》第1.2.14节规定:
最初的Intel Atom处理器系列和包括Intel A
我正在开发一个需要SSSE3指令集的硬件平台。当查看诸如Intel Atom x5-Z8350之类的处理器时,会发现它支持SSE4.1和SSE4.2。这是否允许为SSSE3指令编写的软件正常工作
我相信这个问题和这个问题略有不同,因为它从来没有明确地说SSE4是SSSE3的超集。它只是说AVX是一个超集。这个答案只适用于英特尔处理器
首先,从最早的到最近的所有Intel Atom处理器都支持SSSE3。《英特尔手册》第1.2.14节规定:
最初的Intel Atom处理器系列和包括Intel Atom在内的后续各代处理器
处理器D2000、N2000、E2000、Z2000、C1000系列提供
以下特点:
- 支持指令集扩展,包括补充数据流单指令多数据扩展指令集3(SSSE3)
手册的表5-1也说明:
SSSE3扩展:英特尔至强处理器3xxx、5100、5200、5300、5400、,
5500560073007400 7500系列英特尔酷睿2极限处理器
QX6000系列,英特尔酷睿2双核处理器,英特尔酷睿2四处理器,英特尔
奔腾双核处理器,英特尔Atom处理器
这也符合我的看法
我不确定手册是否明确指出,如果支持SSE4,则支持SSSE3,但我们可以推导出这一点
第12.7.3节讨论了如何检查SSSE3支持:
在应用程序尝试使用SSSE3扩展之前
应用程序应遵循第11.6.2节中说明的步骤,
“检查SSE/SSE2支持。”接下来,使用附加步骤
提供如下:
- 检查处理器是否支持SSSE3(如果CPUID.01H:ECX.SSSE3[位9]=1)
第12.12.2节还讨论了如何检查SSE4.1支持:
检查处理器是否支持SSE4.1(如果CPUID.01H:ECX.SSE4_1[位
19] =1)、SSE3(如果CPUID.01H:ECX.SSE3[位0]=1)、和SSSE3(如果
CPUID.01H:ECX.SSSE3[位9]=1)
最后,第12.12.3节讨论了如何检查SSE4.2支持:
检查处理器是否支持SSE4.2(如果CPUID.01H:ECX.SSE4_2[bit
20] =1)、SSE4.1(如果CPUID.01H:ECX.SSE4_1[位19]=1)、和SSSE3(如果
CPUID.01H:ECX.SSSE3[位9]=1)
如您所见,SSE4.1和SSE4.1都需要对SSSE3的支持。我们还可以得出结论,SSSE3需要对SSE2的支持
警告:这很可能会在未来继续保持,尽管很难确定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位模式下,需要另外八个XMM寄存器
可到达的使用REX前缀访问寄存器XMM8-XMM15
第12.7.1节讨论了操作系统对SSSE3的支持:
确保您的操作系统支持SSE/SSE2/SSE3/SSSE3
扩展。(对SSE扩展的操作系统支持意味着
对SSE2、SSE3和SSSE3的充分支持。)
因此,任何需要SSE的操作系统都会自动支持SSSE3。我认为,在新处理器中,“支持”意味着“新”的东西,而向后兼容性是强制性的,至少在英特尔领域是如此——AMD的情况可能很少有不同,然后,在操作系统代码中使用最低公分母,只有低级别的内核变体/路径可以优化,如果它真的值得的话。特殊/科学/实验/媒体软件可能会说明处理器需要ISA(视频渲染、音频DSP FX等)是………有任何来源或参考资料吗?我认为对所有英特尔CPU都是如此,但也有AMD例外。我脑子里没有任何参考资料。但就曾经存在的实际处理器而言:SSE4.1意味着从MMX到SSSE3的一切。(除了SSE3中AMD没有实现的几个例外)SSE4a是AMD的东西,它只意味着通过SSE3向上。IIRC,第一个使用SSE4a的AMD处理器不支持SSSE3。