leehyeon-dv 님의 블로그
3.7 실례: x86의 SSE와 AVK 본문
🔑Table of Contents
- x86 FP Architecture
- Streaming SIMD Extension 2 (SSE2)
📌 x86 FP Architecture
- 8087 FP Coprocessor 기반
- 8개의 80비트 확장 정밀도 레지스터 사용
- 스택구조 사용
- 데이터를 스택에 푸시하고 스택의 상위 두개 요소를 사용해 연산을 수행한 뒤 결과를 스택에 저장
- 레지스터 인덱스 : 스택의 최상단을 기준으로 인덱싱
- FP 값의 메모리 표현
- 메모리에서 부동소수점 값은 32비트 또는 64비트로 저장된다
- 메모리에 저장되거나 로드될때 형변환이 이루어진다
- 정수도 부동소수점으로 변환될 수 있다
- 코드 생성 및 최적화의 어려움
- FP 성능 저하 (스택 기반으로 코드 생성과 최적화가 어려움, FP 연산 성능이 비교적 낮음)
- 스택기반으로 설계된 x86 FP 아키텍처는 단순하지만 최적화와 성능에 한계가 있다
📌 Streaming SIMD Extention 2 (SSE2)
- 8개의 64비트 레지스터를 추가
- 컴파일러가 필요에 따라 8개의 SSE 부동소수점 레지스터를 사용할 수 있음
- 레지스터가 16개로 확장되어 더많은 데이터 병렬 처리를 지원
- 다중 FP(부동소수점) 연산
- 2개의 64비트 데이터를 동시에 처리
- 4개의 32비트 데이터를 동시에 처리
- SIMD 방식
- 한번의 명령어로 여러 데이터에 대해 동일한 연산을 수행
- 데이터 병렬성을 활용해 연산 속도를 대폭 향상
'컴퓨터구조 및 설계 > 3장. Arithmetic for Computers' 카테고리의 다른 글
3.5 Floating Point (0) | 2024.11.20 |
---|---|
3.4 Division (0) | 2024.11.18 |
3.3 Multiplication (1) | 2024.11.18 |
3.2 Addition and Subtraction (0) | 2024.11.17 |
3.1 Introduction (0) | 2024.11.17 |