본문 바로가기
CS/컴퓨터 구조

CISC와 RISC [혼공컴구]

by 블로블로글 2023. 11. 22.

1. 명령어 집합, 명령어 집합 구조(ISA)

  - CPU가 이해할 수 있는 명령어들의 모음

  - 인텔의 x86-64 ISA, 애플의 ARM ISA등등

  - ISA가 다르면 컴퓨터가 이해할 수 있는 명령어와 어셈블리가 달라짐

    - 같은 소스 코드로 만들어진 같은 프로그램이라 할지라도 ISA가 다르면 CPU가 이해할 수 있는 명령어와 어셈블리어도 달라짐

  - ISA가 달라지면 제어장치가 명령어를 해석하는 방식, 사용되는 레지스터의 종류와 개수, 메모리 관리 방법 등 많은 것들이 달라짐

  - CPU 설계에도 큰 영향

 

2. CISC

  - Complex Instruction Set Computer

  - 복잡한 명령어 집단

  - x86, x86-64 등이 대표적인 CISC 기반의 ISA

  - 다양하고 강력한 기능의 명령어 집합을 활용

    - 명령어의 형태와 크기가 다양함

    - 가변 길이 명령어를 사용

    - 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있음

    - 메모리를 최대한 아끼며 개발해야하던 시절에 인기

  - 단점

    - 활용하는 명령어가 워낙 복잡하고 다양한 기능을 제공하는 탓에 명령어의 크기와 실행되기까지의 시간이 일정하지 않음

    - 복잡한 명령어 때문에 명령어 하나를 실행하는 데에 여러 클럭 주기를 필요로 함

    - 명령어 파이프라인을 구현하는데 큰 에로사항이 됨

      - 명령어 수행 시간이 길고 가지각색이기 때문에 파이프라인이 효율적으로 명령어 처리 불가

  - 정리

    1. 복잡하고 다양한 기능을 제공

    2. 적은 수의 명령으로 프로그램을 동작시키고 메모리를 절약

    3. 명령어의 규격화가 어려워 파이프라이닝이 어려움

    4. 대다수의 복잡한 명령어는 사용 빈도가 낮음

 

3. RISC

  - Reduced Instruction Set Computer

  - CISC에 비해 명령어의 수가 적음

  - 1클럭 내외로 실행되는 짧고 규격화된 명령어를 가짐

    - 고정 길이 명령어를 활용

  - 위의 특성들 덕분에 명령어 파이프라이닝에 최적화됨

  - 메모리 접근을 단순화하고 최소화를 추구함

    - CISC보다 주소 지정 방식의 종류가 적은 경우가 많음

  - 대신, 레지스터를 적극적으로 활용

    - CISC보다 레지스터를 이용한 연산이 많고, 일반적인 경우보다 범용 레지스터의 개수도 더 많음

    - 따라서, CISC보다 많은 명령으로 프로그램을 실행함