공학/프로그래밍

프로세스공부:명령어 집합구조,가상머신,RISC,CISC

뤠이튼 2024. 2. 26. 15:53

프로세스:명령어 집합구조

명령어 집합 구조 (ISA)

  • ISA는 프로세서가 인식하고 실행할 수 있는 기계어 명령어의 집합입니다.
  • 컴파일러 없이는 프로그래머가 직접 프로세서가 이해할 수 있는 기계어나 어셈블리어로 프로그램을 작성해야 합니다.
  • Intel, AMD 등의 제조사는 자신들만의 ISA를 정의합니다 (예: x86).
  • 다른 ISA를 사용하는 프로세서 간에는 직접적인 호환성이 없습니다.

가상 머신

  • .NET, JVM과 같은 가상 머신은 프로그램을 운영체제와 프로세서의 영향을 받지 않고 실행할 수 있게 합니다.
  • 이는 ISA의 차이로 인한 문제를 해결하는 한 가지 방법입니다.

ISA의 구성 요소

  • 명령어 종류, 피연산자 타입, 레지스터 개수, 인코딩 방법 등을 정의합니다.
  • 응용 프로그램과 운영체제 사이의 약속인 ABI(Application Binary Interface)도 중요합니다.

CISC와 RISC의 차이

  • CISC (Complex Instruction Set Computing)
    • 명령어 길이가 가변적입니다.
    • 다양한 주소 모드를 지원합니다.
    • 범용 레지스터의 개수가 비교적 적습니다.
  • RISC (Reduced Instruction Set Computing)
    • 명령어 크기를 고정하고 개수를 줄여서 설계됩니다.
    • 모든 명령어는 R(Register), I(Immediate), J(Jump) 타입 중 하나로 표현됩니다.
    • 단순화된 명령어 세트를 사용하여 하드웨어의 복잡성을 줄이고 성능을 최적화합니다.

출처CS61C L17 MIPS Instruction Format III (1) Spring 2010

주요 차이점

  • 명령 처리 방식: CISC는 하드웨어의 복잡성을 높이고 메모리 접근을 최적화하는 반면, RISC는 소프트웨어(컴파일러)의 역할을 강조합니다.
  • 주소 모드: CISC는 복잡한 메모리 주소 모드를 지원하는 반면, RISC는 레지스터 기반 연산에 중점을 둡니다.

결론적으로, CISC와 RISC는 각각의 설계 철학과 목표에 따라 다른 접근 방식을 취합니다. CISC는 프로그래밍의 유연성과 메모리 효율성을 높이기 위해 복잡한 명령어 세트를 사용하는 반면, RISC는 성능 최적화와 하드웨어의 단순화를 위해 간소화된 명령어 세트에 초점을 맞춥니다. 이러한 차이는 태어난 시기와 하드웨어 및소프트웨어의 분담에 대한 접근차이로 이어짐

'공학 > 프로그래밍' 카테고리의 다른 글

스케줄링,가상메모리  (0) 2024.03.05
자료구조)Stack구조-C  (0) 2021.12.11
자료구조)링크드리스트-단일 링크드 리스트  (0) 2021.07.22
메모리 구조  (0) 2021.02.27