ISA 이해하기: RISC-V를 중심으로

2024. 11. 14. 12:59

ISA란?

  • Instruction (명령어): 하드웨어가 수행할 특정 작업을 정의하는 기본 단위이다. 주로 산술 연산, 데이터 이동, 조건 분기와 같은 기능을 수행하며, low-level 언어에서 한 단어로 표현된다​​ (ex. add, lw, beq...)
  • Instruction Set (명령어 집합): 특정한 구조가 이해할 수 있는 명령어들의 모음이다. 하드웨어가 실행할 수 있는 명령어들의 유형과 형식을 정의하며, 프로그램을 기계어로 변환하는 기준이 된다.
  • ISA (Instruction Set Architecture, 명령어 집합 구조): 하드웨어와 Low-level 소프트웨어 간의 인터페이스이다. ISA는 Instruction Set뿐만 아니라 바이너리 기계어 프로그램을 작성하기 위해 필요한 모든 정보(데이터 타입, 레지스터, 메모리 접근 방식, 입출력 등)를 정의하는 규격이다.

* ISA는 추상화를 통해 하위 계층의 세부 사항이 상위 계층에서는 감춰지도록 한다.

  • 상위 계층의 관점: 컴퓨터를 프로그래밍하는 방식
    프로세서는 명령어들을 순차적으로 실행한다.
  • 하위 계층의 관점: 컴퓨터를 구성하기 위해 필요한 요소들
    성능을 높이기 위해 다양한 기법들을 사용한다.

* 대표적인 ISA로는 MIPS, Intel x86, ARM, RISC-V 등이 있다.

* ISA는 Abstract Data Type이다.

  • Objects: 레지스터(Register)와 메모리(Memory)
  • Operations: 명령어(Instructions)

* ISA의 목표는 high-performance & low-cost의 하드웨어 구현을 가능하게 하는 것이다.

RISC-V

Completely open ISA로, UC Berkeley에서 2010년에 처음 설계되었다.

* RISC-V는 RISC-V International이라는 기구에서 관리하며, ARM, MIPS, x86처럼 특정 회사의 소유물이 아니다.

Why Freely Open ISA?

  • 자유 시장 경쟁을 통한 혁신 촉진
  • 공유된 오픈 코어 설계로 출시 시간 단축 및 비용 절감
  • 투명성으로 비밀 백도어 추가 방지
  • 저비용 프로세서를 통한 IoT 기기 확산
  • 소프트웨어 스택의 장기적 유지 가능성
  • 실질적인 아키텍처 연구 및 교육 지원

RISC vs CISC

RISC (Reduced Instruction Set Computer)

명령어를 단순화하여, 처리 속도를 높이고 효율적인 하드웨어 구현을 목표로 하는 구조이다. 명령어 수는 적지만 각 명령어가 고정된 실행 시간을 갖고, 일반적으로 각 명령어는 레지스터를 이용한 연산에 초점을 맞춘다. 대표적인 RISC 아키텍처로는 RISC-V, ARM, MIPS가 있다.

CISC (Complex Instruction Set Computer)

많은 명령어와 다양한 주소지정 모드를 지원하여 복잡한 연산을 적은 명령어로 구현할 수 있다. 그러나 이러한 복잡성이 하드웨어 설계에 부담을 주며, 명령어 실행 시간이 고정적이지 않다. 대표적으로 x86 ISA가 CISC 철학을 따른다.

 

본 정리는 컴퓨터 구조 및 설계 RISC-V (2판)을 중심으로 다양한 자료를 참고하여 작성되었습니다.
일부 내용에 오류가 있을 수 있습니다.

'Computer Architecture > ISA' 카테고리의 다른 글

[RISC-V] Instruction (명령어)  (0) 2024.11.16
[RISC-V] Operand (피연산자)  (0) 2024.11.15