본문 바로가기
System Programming

[시스템 프로그래밍] 인텔 프로세서 구조

by spareone 2025. 10. 21.

32비트 프로세스 실행 환경


펜티엄Pentium 프로세서는 한 번의 클럭에 두 개의 명령어를 실행할 수 있는 슈퍼 스칼라 구조를 가짐
내부적으로는 486과 같은 32bits 버스를 사용하지만 메모리와 연결되는 외부 데이터 버스가 64bits라 단일 버스 사이클 당 전송될 수 있는 데이터의 양이 486의 2배가 됨

  1. 주소 공간
    • 64GB 물리적 주소 공간
    • 4GB의 선형 주소 공간
  2. 기본 프로그램 실행 레지스터
    • 범용 레지스터 8개
    • 세그먼트 레지스터 6개
    • EFLAGS 레지스터
    • EIP 레지스터
  3. x87 FPU 레지스터
    • x87 FPU 데이터 레지스터 8개
    • x87 FPU 제어 레지스터
      • 상태 레지스터
    • x87 FPU IP 레지스터
    • x87 FPU 명령어 레지스터
    • 부동 소수점(단정도, 배정도) 연산 실행 환경 제공
  4. MMXTM 레지스터
    • 64비트로 패킷된 바이트, 워드, 더블워드 정수에 대한 SIMD 연산을 8개의 MMX 레지스터가 지원
  5. XMM 레지스터
    • 128비트로 패킷된 단정도, 배정도 실수 포인터 값, 바이트, 워드, 더블워드 등에 대한 SIMD 연산을 8개 XMM 레지스터와 MXCSR 레지스터가 지원

파이프라이닝과 슈퍼 스칼라


  1. 파이프라인
    • 명령어를 실행하는 과정을 나누어 여러 명령어를 실행할 수 있게 하는 것
  2. 슈퍼스칼라
    • CPU 내 파이프라인을 여러 개 두어 동시에 명령어를 실행하는 기술

기본 프로그램 실행 레지스터


  1. 범용 레지스터
    • EAX, EBX, ECX, EDX
    • ESI, EDI, EBP, ESP
  2. 세그먼트 레지스터
    • CS, DS, SS, ES, FS, GS
  3. EFLAGS 레지스터
    • 프로그램 실행 상태, 프로세스 제어 등 포함
  4. EIP
    • 다음에 실행될 명령어 포인터

[그림 1] EFLAGS 레지스터


기억장치


기억 장치에 명령어와 데이터가 저장되며, 바이트 단위로 주소 부여


레지스터


8086 CPU에서 세그먼트 레지스터의 물리 주소 계산

  • (세그먼트 값 * 16) + offset = 실제 물리 주소

댓글