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

내용 삭제됨 내용 추가됨
Npsp (토론 | 기여)
잔글 못 하게 → 못하게
잔글편집 요약 없음
5번째 줄:
인텔은 일반적으로 최초의 [[IA-32]] SIMD의 결과인 [[MMX]]에 실망하였다. MMX는 기본적으로 두 가지 문제가 있었다. 기존의 [[부동 소수점]] 레지스터를 다시 사용하여 [[중앙 처리 장치|CPU]]가 [[부동 소수점]]과 SIMD 데이터를 동시에 활용하지 못하게 만들었으며, 또 [[정수]]에서만 동작하였다.
 
==레지스터들 레지스터 ==
SSE는 처음에 XMM0부터 XMM7까지 여덟개의 새로운 128비트 레지스터를 추가하였다. 이후 AMD의 [[x86-64]] 확장과 인텔은 XMM8부터 XMM15까지 8개의 레지스터를 추가하였다. 여기에 새로운 32비트 제어/상태 레지스터인 MXCSR이 있다. 모든 16개의 128비트 XMM레지스터는XMM 레지스터는 64비트 동작 모드에서만 접근 가능하다.
[[Image그림:XMM registers.png|right|220px]]
 
각각의 레지스터는 4개의 32비트 [[단밀도]](Single precision) 부동소수점 수, 두개의 64비트 [[배밀도]](Double precision) 부동소수점 수, 4개의 32비트 정수, 8개의 16비트 단 정수, 16개의 8비트 바이트나 글자로 구성된다. 정수 처리를 위해서는 부호가 있거나 없는 정수용 명령어가 있다. 정수 [[SIMD]] 처리는 8개의 64비트 MMX레지스터로 여전히 실행될 수 있다.
 
이러한 128비트 레지스터들은 운영체제가운영 체제가 반드시 테스크 스위치들간에스위치 간에 보호를 해야하는 추가적인 프로그램 상태이기 때문에 [[운영체제운영 체제]]가 명시적으로 활성화시키지 전까지는 기본적으로 비활성화된다. 이말은 모든 [[x87]]과 SSE레지스터SSE 레지스터 상태들은 한번에 저장할 수 있는 확장 명령어쌍인 FXSAVE와 FXSTOR 명령어를 OS가 어떻게 사용해야하는지 알아야 한다는 것이다. 이러한 사항은 모든 주요 IA-32 운영체제에서운영 체제에서 바로 지원되었다.
 
SSE는 부동소수점을 지원하기때문에 MMX보다 더 유용성이 크다. SSE2의 정수 지원은 SSE를 더 유연하게 만든다. 반면에 MMX가 부가적인면은 있지만 SSE처리와 함께 병렬로 처리되는 것은 경우에 따라서는 성능의 향상을 가져온다.
62번째 줄:
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 <br />
 
 
== 뒤에 나온 버전 ==