컴퓨터구조 및 설계/3장. Arithmetic for Computers

3.7 실례: x86의 SSE와 AVK

leehyeon-dv 2024. 11. 20. 14:19

🔑Table of Contents

  1. x86 FP Architecture
  2. 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