SSE5

SSE5(Streaming SIMD Extensions version 5, 스트리밍 SIMD 확장 버전 5의 줄임말)는 2007년 8월 30일 AMD가 AMD64 아키텍처의 128비트 SSE 코어 명령어의 보완으로 제안한 SIMD 명령어 집합 확장이다.

AMD는 처음에 제안된 SSE5를 구현하지 않기로 결정했다. 2009년 5월, AMD는 SSE5를 XOP, FMA4, F16C라는 세 가지 더 작은 명령어 집합 확장으로 대체했는데, 이들은 SSE5의 제안된 기능을 유지하지만, 인텔이 제안한 AVX 명령어 집합과의 더 나은 호환성을 위해 명령어를 다르게 인코딩한다.

세 가지 SSE5 파생 명령어 집합은 2011년 10월 32 nm 공정으로 출시된 불도저 프로세서 코어에 도입되었다.

호환성
AMD의 SSE5 확장 번들은 인텔의 SSE4 명령어 전체를 포함하지 않으므로, SSE4의 후속이라기보다는 경쟁자에 가깝다.

SSE5 개선 사항
제안된 SSE5 명령어 집합은 170개의 명령어(46개의 기본 명령어 포함)로 구성되었으며, 이들 중 다수는 단일 스레드 성능을 향상시키기 위해 설계되었다. 일부 SSE5 명령어는 3-피연산자 명령어이며, 이를 사용하면 X86 코드에서 달성할 수 있는 평균 클럭당 명령어 처리 횟수가 증가한다. 선택된 새로운 명령어는 다음과 같다:

 융합 곱셈-누산 (FMACxx) 명령어
 정수 곱셈-누산 (IMAC, IMADC) 명령어
 순열 (PPERM, PERMPx) 및 조건부 이동 (PCMOV) 명령어
 정밀도 제어, 반올림 및 변환 명령어

AMD는 SSE5가 특히 HPC, 멀티미디어, 컴퓨터 보안 애플리케이션에서 극적인 성능 향상을 제공할 것이라고 주장했으며, AES 암호화에서 5배, 비디오 처리 등에 사용되는 이산 코사인 변환 (DCT)에서 30%의 성능 향상을 예상했다.

2009년 개정
SSE5 사양에는 명령어가 두 개 이상의 피연산자를 가질 수 있도록 X86 명령어의 일반 코딩 스키마에 대한 제안된 확장이 포함되었다. 2008년, 인텔은 두 개 이상의 피연산자를 가진 명령어를 코딩하는 다른 방법을 제안하는 계획된 AVX 명령어 집합을 발표했다. SSE5와 AVX라는 두 가지 제안된 코딩 스키마는 상호 비호환적이지만, AVX 스키마는 SSE5 스키마에 비해 특정 장점이 있다. 가장 중요한 것은 AVX가 더 큰 벡터 크기를 포함하여 미래 확장을 위한 충분한 공간을 가지고 있다는 점이다.

2009년 5월, AMD는 계획된 미래 명령어에 대한 개정된 사양을 발표했다. 이 개정판은 코딩 스키마를 AVX 스키마와 호환되도록 변경했지만, AMD가 도입한 명령어와 인텔이 도입한 명령어 사이의 중복을 피하기 위해 접두사 바이트를 다르게 사용했다.

개정된 명령어 집합은 더 이상 오해의 소지가 있다는 비판을 받은 SSE5라는 이름을 사용하지 않지만, 새로운 개정판의 대부분의 명령어는 원래 SSE5 사양과 기능적으로 동일하며, 단지 명령어가 코딩되는 방식만 다르다. AMD 명령어 집합에 대한 계획된 추가 사항은 세 가지 하위 집합으로 구성된다.

XOP: 정수 벡터 곱셈-누산 명령어, 정수 벡터 수평 덧셈, 정수 벡터 비교, 시프트 및 회전 명령어, 바이트 순열 및 조건부 이동 명령어, 부동 소수점 분수 추출.
FMA4: 부동 소수점 벡터 곱셈-누산.
F16C: 반정밀도 부동 소수점 변환.

XOP와 FMA4는 젠 마이크로아키텍처를 사용하는 최신 AMD 프로세서에서는 제거되었다.

 같이 보기 
 x86 명령어 목록
 융합 곱셈-덧셈

 각주 

 외부 링크 
 새로운 SSE 명령어 집합: AMD, SSE5 발표, 아난드테크
 AMD64 아키텍처 프로그래머 매뉴얼 볼륨 6: 128비트 및 256비트 XOP 및 FMA4 명령어
 AMD 및 인텔 비호환 - 어떻게 해야 하나요? AMD 개발자 포럼

분류:X86 명령어
분류:SIMD 컴퓨팅
분류:AMD 기술