정수 연산 SIMD 프로그래밍

2022. 11. 26. 19:08SSE

XMM 레지스터 

SIMD는 한 번에 여러개의 데이터를 연산. XMM 레지스터의 크기는 128-bit으로 32-bit 범용 레지스터 크기의 4배. XMM 레지스터의 개수는 총 8개로 XMM0~XMM7 사용 가능. 64-bit 컴퓨터 프로그래밍에서는 XMM15까지 총 16개 사용. 

 

범용 데이터 레지스터 

EAX : Accumulator

EDX : Data

ECX : Count

EBX : Base

ESI : Source Index Pointer

EDI : Destination Index Pointer

EBP : Base Pointer

ESP : Stack Pointer      

 

 

SIMD에는 정수형, 실수형 두가지 병렬 연산 방식이 존재. 

P <SIMD_op> <suffix>
//P :'packed'를 의미하며 정수형 SIMD 명령어. 실수형 SIMD 명령어는 P가 뒤에 붙음. 
//<SIMD_op> : 명령어 종류, <suffix> : 연산을 수행할 pack 사이즈

XMM 레지스터에 값 대입

XMM 레지스터는 SIMD 명령어에서 변수라고 볼 수 있음. 고정된 변수 이름으로 XMM0 부터 XMM7까지 8개의 변수를 사용할 수 있음. 해당 레지스터의 크기는 128-bit이다. XMM 레지스터에 값을 대입하는 방법은 메모리 배열의 주소 포인터를 이용해 한 번에 여러개씩 입력. 

'SSE' 카테고리의 다른 글

SIMD Introduction  (0) 2022.11.26