정수 연산 SIMD 프로그래밍
2022. 11. 26. 19:08ㆍSSE
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 |
---|