SSE4

SSE4(Streaming SIMD Extensions 4)는 인텔 코어 마이크로아키텍처와 AMD K10(K8L)에서 지원되는 명령어 집합이다. 2006년 9월 27일에 2006 추계 인텔 개발자 포럼에서 약간 모호한 백서와 함께 발표되었다. 이후 2007년 봄 북경에서 개최된 인텔 개발자 포럼에서 47개의 자세한 명령어가 소개되었다. SSE4 프로그래밍 참조서가  인텔로부터 제공된다.

SSE4 부분집합
인텔 SSE4는 총 54개 명령어로 이루어졌다. 첫 47개의 명령어 집합은 인텔자료에서 SSE4.1로 불리며, 이것은 펜린에서부터 사용 가능하다. 이후 인텔은 추가적으로 7개의 명령어 SSE4.2를 인텔 코어 i7(네할렘 아키텍처)에서부터 지원한다. 인텔은 일반적으로 명령어 집합을 개발하는 데 있어서 개발자들의 의견을 중시하여 반영한다고 알려져 있다.

AMD는 SSE4 명령어 집합 중 SSE4A라고 불리는 4개의 명령어. 나중에 2개의 SSE 명령어를 추가하였다. 이 명령어는 인텔의 프로세서에서는 지원되지 않고있다.

이름의 혼동
인텔 코어 2 제품 계열에서 발표된 SSSE3(Supplemental Streaming SIMD Extension 3)는 개발기간 동안에 미디어에 의해 SSE4로 잘못 언급되었었다.

신규 명령어
이전 모든 SSE와는 다르게 SSE4는 멀티미디어 애플리케이션과 관련이 없는 명령어들이 포함되었다. 상수항과 함축적인 3번째 피연산자로서 XMM0를 사용하는 명령어에 의해 그 동작이 결정되는 명령어 집합이다.

이러한 여러 명령어들은 펜린에서부터 한 싸이클 셔플 엔진(shuffle engine)에 의해 구현된다.( 셔플은 비트들을 재배치 시키는 것에 관련된 동작이다.)

SSE4.1
이 명령어들은 코어 마이크로아키텍처의 더 미세화된 공정 45 nm를 사용하는 펜린 마이크로아키텍처에서 적용되었다.

SSE4.2
이 명령어들은 네할렘 마이크로아키텍처 기반 제품부터 적용되었다. SSE4 명령어 집합을 완결한다.

SSE4a
이 그룹은 AMD의 바르셀로나 마이크로아키텍처에서 소개되었다. POPCNT명령어외엔 인텔 프로세서에서 지원되지 않는다. 단, 하스웰 이후로는 POPCNT, LZCNT 명령어를 지원한다.

지원 CPU
 인텔
 Intel 펜린 프로세서 (SSE4.1 지원)
 Intel 네할렘 프로세서 (SSE4.1, SSE4.2 ,POPCNT 명령어 지원)
 Intel 실버몬트 프로세서 (SSE4.1, SSE4.2, POPCNT 명령어 지원)
 Intel 하스웰 프로세서 (SSE4.1, SSE4.2, POPCNT ,LZCNT 명령어 지원)
 AMD
 AMD 바르셀로나-기반 프로세서 (SSE4a, POPCNT ,LZCNT 명령어 지원)
 AMD 불도저 기반 프로세서 (SSE4a, SSE4.1, SSE4.2, POPCNT ,LZCNT 명령어 지원)
 AMD 밥캣 기반 프로세서 (SSE4a, POPCNT ,LZCNT 명령어 지원)
 AMD 재규어기반 프로세서 (SSE4a, SSE4.1, SSE4.2, POPCNT ,LZCNT 명령어 지원)

 VIA
 VIA Nano 프로세서 (SSE4.1 명령어 지원)

같이 보기

각주 

SIMD 컴퓨팅
X86 명령어