스트리밍 SIMD 확장: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
잔글 HotCat을 사용해서 분류:X86 명령어 추가함
TedBot (토론 | 기여)
잔글 봇: 틀 이름 및 스타일 정리
6번째 줄:
 
SSE는 x86 아키텍처에서 XMM0~XMM7의 8개의 128비트 레지스터를 추가한다. 또한 [[x86-64]]에서는 XMM8~XMM15의 8개의 레지스터가 추가되었다(단, 이 레지스터는 64비트 모드에서만 사용가능하다). 추가적으로, 32비트 레지스터 MXCSR는 SSE 명령어의 상태 및 제어에 사용된다.
 
[[그림파일:XMM registers.png|right|220px]]
 
SSE는 XMM 레지스터의 자료구조로 4개의 32비트 단정도 부동 소수점을 사용했다. 즉, 하나의 레지스터에 4개의 값이 들어가는 형태였다. SSE에서는 정수 계산을 지원하지 않는다. 이것은 [[MMX]] 명령어를 사용하는 방식으로 극복이 가능했다. 또한, SSE2부터는 SSE를 확장하여 다음의 자료구조를 지원한다.
16번째 줄:
* 16개의 8비트 정수
 
SSE를 처음 지원한 [[펜티엄 III]]는 SSE와 [[부동 소수점 장치|FPU]]를 동시에 사용할 수 없도록 만들어졌다. 이러한 구조는 [[명령어 파이프라인]] 효율성을 떨어뜨렸다.
 
XMM 레지스터는 태스크 스위치 시에 값을 보존해야 하는 대상이기 때문에, [[운영 체제]]가 이 레지스터를 사용하도록 명시적으로 활성화하기 전까지는 사용이 불가능하다. 다시 말하면, 운영 체제가 SSE 레지스터를 보존하는 명령어인 FXSAVE와 FXSTOR를 사용할 수 있어야 한다는 의미이다. 이러한 지원은 주요 IA-32 운영 체제에서 빠르게 추가되었다.
62번째 줄:
<source lang="asm">
movaps xmm0,address-of-v1 ;xmm0=v1.w | v1.z | v1.y | v1.x
addps xmm0,address-of-v2 ;xmm0=v1.w+v2.w | v1.z+v2.z | v1.y+v2.y | v1.x+v2.x
movaps address-of-vec_res,xmm0
</source>