맨위로가기

SSE4

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의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 명령어의 목록과 설명이다.

명령어설명
MPSADBW8개의 절대 차이의 오프셋 합을 계산한다. HD 코덱 처리에 유용하며, 8x8 블록 차이를 빠르게 계산할 수 있다.[9]
PHMINPOSUW가장 작은 부호 없는 16비트 워드와 그 인덱스를 찾는다.
PMULDQ32비트 부호 있는 정수 2개를 곱하여 64비트 결과를 생성한다.
PMULLD32비트 부호 있는 정수 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 확장을 수행한다.
PTESTTEST 명령어와 유사하게 Z 플래그와 C 플래그를 설정한다.
PCMPEQQ64비트(쿼드워드) 비교를 수행한다.
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]

명령어설명
CRC32다항식 0x11EDC6F41(또는 최고 차수 비트가 없는 경우 0x1EDC6F41)을 사용하여 CRC32C 값을 누적한다.[13][14]
PCMPESTRI팩 형식 명시적 길이 문자열 비교, 인덱스 반환
PCMPESTRM팩 형식 명시적 길이 문자열 비교, 마스크 반환
PCMPISTRI팩 형식 암시적 길이 문자열 비교, 인덱스 반환
PCMPISTRM팩 형식 암시적 길이 문자열 비교, 마스크 반환
PCMPGTQ팩 형식 부호 있는 64비트 데이터 비교, 큼


2. 3. SSE4a

AMD가 바르셀로나 마이크로아키텍처에서 독자적으로 도입한 SSE4 부분집합이다. 인텔 프로세서에서는 지원되지 않는 4개의 새로운 명령어를 포함한다.[4] SSE4a는 이전의 모든 SSE와 달리 멀티미디어 응용 프로그램에 국한되지 않는 연산을 수행하는 명령어를 포함하고 있다. 상수 필드에 의해 동작이 결정되는 다수의 명령어와 XMM0을 암묵적인 세 번째 피연산자로 사용하는 명령어 집합을 특징으로 한다.

AMD의 바르셀로나 마이크로아키텍처에서 처음 도입되었으며, CPUID.80000001H:ECX.SSE4A[비트 6] 플래그를 통해 지원 여부를 확인할 수 있다.[17]

명령어설명
EXTRQ/INSERTQ결합된 마스크-시프트 명령어.[18]
MOVNTSD/MOVNTSS스칼라 스트리밍 저장 명령어.[19]


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 지원비고
인텔펜린OXXXX펜티엄 듀얼 코어셀러론 제외
네할렘/웨스트미어OOXOX펜티엄셀러론 제외
실버몬트, 골드몬트, 골드몬트 플러스, 트리몬트OOXOX
샌디 브릿지 및 이후OOXOX펜티엄셀러론 포함
해스웰 및 이후OOXOO
AMDK10 기반XXOOO
밥캣XXOOO
재규어, 푸마 및 이후OOOOO
불도저, 파일드라이버, 스팀롤러, 익스케베이터 및 이후OOOOO
, 젠+, 젠2, 젠3, 젠4, 젠5OOOOO
VIANano 3000, X2, 쿼드코어 프로세서OXXXX
Nano 쿼드코어 C4000 시리즈 프로세서, 에덴 X4 프로세서OOXXX
자오신ZX-C 프로세서 및 이후OOXXX


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