SSE4
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
SSE4는 인텔과 AMD에서 개발한 일련의 명령어 집합 부분집합을 의미한다. 인텔은 펜린 프로세서부터 SSE4.1을, 네할렘 프로세서부터 SSE4.2를 지원하며, 멀티미디어 처리, 3D 그래픽 연산, 데이터 정렬 및 변환 등의 성능 향상을 제공한다. AMD는 SSE4a를 바르셀로나 마이크로아키텍처부터 지원하며, 잘못 정렬된 SSE 기능도 도입했다. SSE4.1은 47개의 새로운 명령어를 포함하며, SSE4.2는 문자열 및 텍스트 처리, XML 처리, CRC32 연산 등의 성능을 향상시키는 7개의 명령어를 추가했다. Windows 11 24H2는 SSE4.2와 POPCNT를 지원하는 CPU를 요구한다.
더 읽어볼만한 페이지
- SIMD 컴퓨팅 - SSE2
SSE2는 인텔이 개발한 x86 아키텍처의 SIMD 명령어 집합 확장으로, MMX 명령어의 정수 벡터 연산을 확장하고 XMM 레지스터를 사용하여 부동 소수점 연산 성능을 향상시키며, AMD64 아키텍처에서도 지원된다. - SIMD 컴퓨팅 - SSE3
SSE3는 인텔에서 개발한 스트리밍 SIMD 확장 3 명령어 세트로, 부동 소수점 연산, 디지털 신호 처리, 3차원 컴퓨터 그래픽 처리 성능 향상을 위해 기존 SSE2 명령어 세트에 몇 가지 새로운 명령어를 추가한 것이다. - X86 명령어 - 스트리밍 SIMD 확장
스트리밍 SIMD 확장(SSE)은 x86 아키텍처의 SIMD 명령어 집합으로, 128비트 XMM 레지스터를 사용하여 데이터 병렬 처리를 통해 성능을 향상시키며, 인텔 펜티엄 III 프로세서에 처음 도입되어 여러 후속 버전으로 발전했다. - X86 명령어 - SSE2
SSE2는 인텔이 개발한 x86 아키텍처의 SIMD 명령어 집합 확장으로, MMX 명령어의 정수 벡터 연산을 확장하고 XMM 레지스터를 사용하여 부동 소수점 연산 성능을 향상시키며, AMD64 아키텍처에서도 지원된다.
SSE4 | |
---|---|
SSE4 | |
일반 정보 | |
유형 | SIMD CPU 명령어 집합 |
개발사 | 인텔 |
아키텍처 | x86 |
SSE4.1 | |
추가된 명령어 수 | 54개 |
도입 시기 | 2007년 11월 12일 (45nm 공정 기반의 Penryn 마이크로아키텍처) |
주요 개선 사항 | 텍스트/문자열 처리 가속화 애플리케이션 특성별 데이터 정렬 가속화 XML 가속화 비디오 인코딩/디코딩 가속화 |
명령어 예시 | `PCMPESTRI` (Packed Compare Explicit Length Strings, Implicit Index) `PCMPESTRM` (Packed Compare Explicit Length Strings, Explicit Mask) `PCMPISTRI` (Packed Compare Implicit Length Strings, Implicit Index) `PCMPISTRM` (Packed Compare Implicit Length Strings, Explicit Mask) `PHMINPOSUW` (Packed Horizontal Minimum Position Unsigned Word) `ROUNDSD` (Round Scalar Double-Precision Floating-Point) `ROUNDSS` (Round Scalar Single-Precision Floating-Point) `DPPD` (Dot Product of Packed Double Precision Floating-Point Values) `DPPS` (Dot Product of Packed Single Precision Floating-Point Values) `BLENDPD` (Blend Packed Double Precision Floating-Point Values) `BLENDPS` (Blend Packed Single Precision Floating-Point Values) `PBLENDW` (Packed Blend Word) `PMOVSXBW` (Packed Move with Sign Extend Byte to Word) `PMOVSXBD` (Packed Move with Sign Extend Byte to Doubleword) `PMOVSXBQ` (Packed Move with Sign Extend Byte to Quadword) `PMOVSXWD` (Packed Move with Sign Extend Word to Doubleword) `PMOVSXWQ` (Packed Move with Sign Extend Word to Quadword) `PMOVSXDQ` (Packed Move with Sign Extend Doubleword to Quadword) `PMULDQ` (Packed Multiply Doubleword) `PTest` (Bitwise test for SIMD data) `MOVPxMM` (Move Packed integer values between XMM registers and memory) |
SSE4.2 | |
추가된 명령어 수 | 7개 |
도입 시기 | 2008년 (45nm 공정 기반의 Nehalem 마이크로아키텍처) |
주요 개선 사항 | 문자열/텍스트 처리 성능 향상 XML 구문 분석 가속화 |
명령어 예시 | `PCMPEQQ` (Packed Compare Equal Quadword) `CRC32` (Cyclic Redundancy Check) `PCMPGTQ` (Packed Compare Greater Than Quadword) `POPCOUNT` (Population Count) |
2. SSE4 부분집합
SSE4는 인텔과 AMD에서 각각 개발한 여러 부분집합으로 나뉜다.
인텔 SSE4는 총 54개의 명령어로 이루어져 있다. 이 중 47개의 명령어 집합은 펜린에서부터 사용 가능한 '''SSE4.1'''이며, 나머지 7개의 명령어는 인텔 코어 i7(네할렘)에서부터 지원하는 '''SSE4.2'''이다. 인텔은 명령어 집합을 개발할 때 개발자들의 의견을 중요하게 생각한다고 알려져 있다.
AMD는 '''SSE4a'''라고 불리는 4개의 명령어를 도입했고, 추후에 2개의 SSE 명령어를 추가했다. 이 명령어들은 인텔 프로세서에서는 지원되지 않는다. AMD 프로세서는 불도저 기반 FX 프로세서부터 인텔의 SSE4.1 및 SSE4.2(전체 SSE4 명령어 집합)를 지원하기 시작했다. SSE4a는 잘못 정렬된 SSE 기능도 도입했는데, 이는 잘못 정렬된 로드 명령어가 정렬된 주소에서 정렬된 버전만큼 빠르다는 것을 의미한다. 또한 메모리에 액세스하는 비 로드 SSE 연산에 대한 정렬 검사를 비활성화할 수 있었다.[4] 인텔은 나중에 네할렘 프로세서에서 잘못 정렬된 SSE에 비슷한 속도 향상을 도입했지만, AVX까지 비 로드 SSE 명령어에 의한 잘못 정렬된 액세스는 도입하지 않았다.[5]
2. 1. SSE4.1
인텔 SSE4는 54개의 명령어로 구성되어 있으며, 이 중 첫 47개의 명령어 집합은 '''SSE4.1'''로 불린다. SSE4.1은 펜린 프로세서에서 처음으로 도입되었다.[4]SSE4.1 명령어는 멀티미디어 응용 프로그램에 국한되지 않고, 다양한 연산을 수행한다. 특히, 펜린의 단일 사이클 셔플 엔진을 활용하는 명령어들이 포함되어 있다. (셔플 연산은 레지스터 내에서 바이트의 순서를 재정렬한다.)[5]
다음은 SSE4.1 명령어의 목록과 설명이다.
명령어 | 설명 |
---|---|
MPSADBW | 8개의 절대 차이의 오프셋 합을 계산한다. HD 코덱 처리에 유용하며, 8x8 블록 차이를 빠르게 계산할 수 있다.[9] |
PHMINPOSUW | 가장 작은 부호 없는 16비트 워드와 그 인덱스를 찾는다. |
PMULDQ | 32비트 부호 있는 정수 2개를 곱하여 64비트 결과를 생성한다. |
PMULLD | 32비트 부호 있는 정수 4개를 곱하여 32비트 결과를 생성한다. |
DPPS , DPPD | 내적 연산을 수행한다. |
BLENDPS , BLENDPD , BLENDVPS , BLENDVPD , PBLENDVB , PBLENDW | 조건부 복사를 수행한다. |
PMINSB , PMAXSB , PMINUW , PMAXUW , PMINUD , PMAXUD , PMINSD , PMAXSD | 다양한 정수 유형에 대한 최소/최대 값을 계산한다. |
ROUNDPS , ROUNDSS , ROUNDPD , ROUNDSD | 부동 소수점 값을 정수로 반올림한다. |
INSERTPS , PINSRB , PINSRD , PINSRQ , EXTRACTPS , PEXTRB , PEXTRD , PEXTRQ | 레지스터 또는 메모리에서 값을 읽어 대상 레지스터에 삽입하거나, 반대로 추출한다. |
PMOVSXBW , PMOVZXBW , PMOVSXBD , PMOVZXBD , PMOVSXBQ , PMOVZXBQ , PMOVSXWD , PMOVZXWD , PMOVSXWQ , PMOVZXWQ , PMOVSXDQ , PMOVZXDQ | 더 넓은 유형으로 부호/0 확장을 수행한다. |
PTEST | TEST 명령어와 유사하게 Z 플래그와 C 플래그를 설정한다. |
PCMPEQQ | 64비트(쿼드워드) 비교를 수행한다. |
PACKUSDW | 부호 있는 DWORD를 부호 없는 WORD로 변환한다. |
MOVNTDQA | 쓰기 결합 메모리 영역에서 효율적인 읽기를 수행한다. |
2. 2. SSE4.2
인텔 코어 i7(네할렘 아키텍처)부터 지원하는 SSE4의 두 번째 부분집합이다. SSE4.2는 문자열 및 텍스트 처리, XML 처리, 순환 중복 검사(CRC32) 연산 등의 성능을 향상시키는 7개의 새로운 명령어를 추가했다.[10][11] 이러한 명령어들은 네할렘 마이크로아키텍처 기반 제품부터 적용되었으며, SSE4 명령어 집합을 완결한다.SSE4.2는 STTNI(String and Text New Instructions, 문자열 및 텍스트 새로운 명령어)를 추가했으며,[10] 한 번에 16바이트의 두 피연산자에 대해 문자 검색 및 비교를 수행하는 여러 새로운 명령어를 추가했다. 이러한 명령어는 XML 문서의 구문 분석 속도를 높이도록 설계되었다.[11] 또한 특정 데이터 전송 프로토콜에서 사용되는 순환 중복 검사를 계산하기 위한 `CRC32` 명령어가 추가되었다.
AMD는 불도저 마이크로아키텍처부터 SSE4.2 지원을 시작했다. CPUID.01H:ECX.SSE42[비트 20] 플래그를 통해 지원 여부를 확인할 수 있다.
Windows 11 24H2는 CPU가 SSE4.2를 지원해야 하며, 그렇지 않으면 Windows 커널이 부팅되지 않는다.[12]
2. 3. SSE4a
AMD가 바르셀로나 마이크로아키텍처에서 독자적으로 도입한 SSE4 부분집합이다. 인텔 프로세서에서는 지원되지 않는 4개의 새로운 명령어를 포함한다.[4] SSE4a는 이전의 모든 SSE와 달리 멀티미디어 응용 프로그램에 국한되지 않는 연산을 수행하는 명령어를 포함하고 있다. 상수 필드에 의해 동작이 결정되는 다수의 명령어와 XMM0을 암묵적인 세 번째 피연산자로 사용하는 명령어 집합을 특징으로 한다.AMD의 바르셀로나 마이크로아키텍처에서 처음 도입되었으며, CPUID.80000001H:ECX.SSE4A[비트 6] 플래그를 통해 지원 여부를 확인할 수 있다.[17]
2. 4. 이름의 혼동
인텔 코어 2 제품군에 도입된 SSSE3(Supplemental Streaming SIMD Extension 3)는 개발 기간 동안 일부 언론에서 SSE4로 잘못 언급되었다. 인텔은 SSSE3라는 명칭을 사용하기 전까지 이 기술에 특별한 이름을 부여할 계획이 없었고, 이는 일부 언론인들의 비판을 받았다.[6] 인텔은 결국 이러한 혼란을 정리하고 다음 명령어 집합 확장을 위해 SSE4라는 이름을 남겨두었다.[7]3. 지원 CPU
SSE4 명령어 집합을 지원하는 CPU는 다음과 같다.
제조사 | 제품군 | SSE4.1 지원 | SSE4.2 지원 | SSE4a 지원 | POPCNT 지원 | LZCNT 지원 | 비고 |
---|---|---|---|---|---|---|---|
인텔 | 펜린 | O | X | X | X | X | 펜티엄 듀얼 코어 및 셀러론 제외 |
네할렘/웨스트미어 | O | O | X | O | X | 펜티엄 및 셀러론 제외 | |
실버몬트, 골드몬트, 골드몬트 플러스, 트리몬트 | O | O | X | O | X | ||
샌디 브릿지 및 이후 | O | O | X | O | X | 펜티엄 및 셀러론 포함 | |
해스웰 및 이후 | O | O | X | O | O | ||
AMD | K10 기반 | X | X | O | O | O | |
밥캣 | X | X | O | O | O | ||
재규어, 푸마 및 이후 | O | O | O | O | O | ||
불도저, 파일드라이버, 스팀롤러, 익스케베이터 및 이후 | O | O | O | O | O | ||
젠, 젠+, 젠2, 젠3, 젠4, 젠5 | O | O | O | O | O | ||
VIA | Nano 3000, X2, 쿼드코어 프로세서 | O | X | X | X | X | |
Nano 쿼드코어 C4000 시리즈 프로세서, 에덴 X4 프로세서 | O | O | X | X | X | ||
자오신 | ZX-C 프로세서 및 이후 | O | O | X | X | X |
3. 1. 인텔
인텔 펜린 프로세서에는 SSE4.1 명령어 집합이 지원된다. 네할렘 프로세서에는 SSE4.1, SSE4.2 및 POPCNT 명령어가 지원된다. 실버몬트 프로세서에도 SSE4.1, SSE4.2 및 POPCNT 명령어가 지원된다. 하스웰 프로세서에는 SSE4.1, SSE4.2, POPCNT 및 LZCNT 명령어가 지원된다.인텔 SSE4는 54개의 명령어로 구성되어 있다. 페린에서는 SSE4.1로 언급되는 47개의 명령어 하위 집합을 사용할 수 있다. 네할렘 기반 코어 i7에서는 SSE4.2로 불리는 7개의 나머지 명령어로 구성된 두 번째 하위 집합을 처음으로 사용할 수 있다. 인텔은 명령어 집합 개발에 개발자들의 피드백이 중요한 역할을 했다고 밝혔다.[4] 인텔은 나중에 네할렘 프로세서에서 잘못 정렬된 SSE에 비슷한 속도 향상을 도입했지만, AVX까지 비 로드 SSE 명령어에 의한 잘못 정렬된 액세스는 도입하지 않았다.[5]
3. 2. AMD
AMD의 바르셀로나 기반 프로세서는 SSE4a, POPCNT, LZCNT 명령어를 지원한다. 불도저 기반 프로세서는 SSE4a, SSE4.1, SSE4.2, POPCNT, LZCNT 명령어를 지원하며, 밥캣 기반 프로세서도 SSE4a, POPCNT, LZCNT 명령어를 지원한다. 재규어 기반 프로세서는 SSE4a, SSE4.1, SSE4.2, POPCNT, LZCNT 명령어를 지원한다.AMD는 바르셀로나 기반 프로세서부터 ''SSE4a'' 명령어 집합을 도입했는데, 여기에는 4개의 SSE4 명령어와 4개의 새로운 SSE 명령어가 포함된다.[4] SSE4a는 인텔 프로세서에서는 지원되지 않으며, AMD 프로세서는 불도저 기반 FX 프로세서부터 인텔의 SSE4.1 및 SSE4.2 (전체 SSE4 명령어 집합)를 지원하기 시작했다. SSE4a는 잘못 정렬된 SSE 기능도 도입하여, 잘못 정렬된 로드 명령어가 정렬된 주소에서 정렬된 버전만큼 빠르게 동작하도록 했다. 또한, 메모리에 접근하는 비 로드 SSE 연산에 대한 정렬 검사를 비활성화할 수 있었다.[4]
3. 3. 기타
- VIA의 Nano 프로세서는 SSE4.1 명령어를 지원한다.
4. 새로운 명령어
SSE4는 이전의 모든 SSE와 달리 멀티미디어 응용 프로그램에 국한되지 않는 연산을 수행하는 명령어를 포함하고 있다. 상수 필드에 의해 동작이 결정되는 다수의 명령어와 XMM0을 암묵적인 세 번째 피연산자로 사용하는 명령어 집합을 특징으로 한다.[1]
이러한 명령어 중 일부는 펜린의 단일 사이클 셔플 엔진에 의해 활성화된다. (셔플 연산은 레지스터 내에서 바이트의 순서를 재정렬한다.)[1]
참조
[1]
웹사이트
Intel Streaming SIMD Extensions 4 (SSE4) Instruction Set Innovation
http://www.intel.com[...]
2009-05-30
[2]
웹사이트
Tuning for Intel SSE4 for the 45nm Next Generation Intel Core Microarchitecture
https://intel.wingat[...]
2021-03-08
[3]
웹사이트
Intel SSE4 Programming Reference
https://software.int[...]
2014-12-26
[4]
웹사이트
"Barcelona" Processor Feature: SSE Misaligned Access
http://developer.amd[...]
AMD
2015-03-03
[5]
웹사이트
Inside Intel Nehalem Microarchitecture
http://www.hardwares[...]
2015-03-03
[6]
웹사이트
My Experience With "Conroe"
http://www.dailytech[...]
DailyTech
2013-10-15
[7]
웹사이트
Extending the World’s Most Popular Processor Architecture
ftp://download.intel[...]
2011-11-24
[8]
웹사이트
Intel - Data Center Solutions, IOT, and PC Innovation
http://www.intel.com[...]
2009-09-17
[9]
웹사이트
Motion Estimation with Intel Streaming SIMD Extensions 4 (Intel SSE4)
https://software.int[...]
2018-06-16
[10]
웹사이트
Schema Validation with Intel® Streaming SIMD Extensions 4 (Intel® SSE4)
http://software.inte[...]
2012-02-06
[11]
웹사이트
XML Parsing Accelerator with Intel® Streaming SIMD Extensions 4 (Intel® SSE4)
http://software.inte[...]
2012-02-06
[12]
웹사이트
Microsoft blocks some PCs from Windows 11 24H2 — CPU must support SSE4.2 or the OS will not boot
https://www.tomshard[...]
2024-04-24
[13]
웹사이트
Intel SSE4 Programming Reference
https://software.int[...]
2020-02-15
[14]
뉴스
Fast, Parallelized CRC Computation Using the Nehalem CRC32 Instruction
http://drdobbs.com/c[...]
Dr. Dobbs
2011-04-12
[15]
웹사이트
Microsoft fixes a misfired PopCnt block but Windows 11 24H2 requirements may be here to stay
https://www.neowin.n[...]
2024-03-17
[16]
웹사이트
Intel® 64 and IA-32 Architectures Software Developer's Manual, Volume 2B: Instruction Set Reference, N–Z
http://www.intel.com[...]
2011-03-08
[17]
웹사이트
AMD CPUID Specification
http://developer.amd[...]
2013-10-30
[18]
웹사이트
"Barcelona" Processor Feature: SSE4a Instruction Set
http://developer.amd[...]
2007-09-17
[19]
웹사이트
"Barcelona" Processor Feature: SSE4a, part 2
http://developer.amd[...]
2007-10-02
[20]
웹사이트
AMD FX-Series FX-6300 - FD6300WMW6KHK / FD6300WMHKBOX
http://www.cpu-world[...]
2015-10-09
[21]
웹사이트
Intel Streaming SIMD Extensions 4 (SSE4) Instruction Set Innovation
http://www.intel.com[...]
[22]
웹사이트
Tuning for Intel SSE4 for the 45nm Next Generation Intel Core Microarchitecture
https://intel.wingat[...]
2021-03-08
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com