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 |