여기서 RISC는 Reduced Instruction Set Computer이고 V는 로마숫자로 '5'를 의미하며, 5번째 Version이라는 의미이다.
위의 키워드를 보면 'Reduced' , 'Instruction Set', 'Computer'로 구분해 볼 수 있다.
'Computer'는 우리가 흔히 알고 있는 연산 장치이며, Instruction은 흔히 CPU에서 사용되는 명령어를 의미하고, Instruction Set은 명령어들의 집합을 나타낸다. 'Reduced'는 영어 사전을 찾아보면 'make smaller or less in amount, degree, or size.'로 크기를 작게 혹은 수량을 적게 만든다는 의미이다. 작고 적다는 건 기준이 있어야 하는데, 이와 대비되는 개념으로 CISC(Complexed Instruction Set Computer)라는 것이 있다. 이 부분은 나중에 두 개념의 차이를 설명하도록 하겠다.
즉, RISC-V는 적은 수의 명령어로 이뤄진 집합을 사용하는 컴퓨터라고도 할 수 있다.
앞서 Instruction은 CPU가 사용하는 것이라고 하였다. 그러면 CPU가 어떤 것인지 개념적으로 알아보자.
CPU는 Central Processing Unit으로 우리가 흔히 알고 있는 Intel/AMD의 Processor를 의미한다. CPU가 명령어를 수행하는 관점에서 그림을 도식화하면 아래와 같다.
CPU는 순차적으로 Instruction들을 처리한다. 프로그램은 어떤 동작을 수행하기 위한 것으로, 연속된 Instruction으로 구성되어 있다. CPU는 프로그램의 Instruction을 순차적으로 처리하려면, 다음에 어떤 명령어를 수행해야 하는 지를 기록해야 한다. 이때, 수행해야 할 명령어가 저장되어 있는 주소를 저장해 두는 데, 이를 PC(Program Counter) 값이라고 한다. 프로그램을 수행할 때, 저장 공간이 필요하다. 이때 사용되는 것이 Register File이다. 예를 들어 0~10까지 숫자의 합을 출력하는 프로그램을 수행하다고 했을 때, 결괏값은 55이지만, 내부적으로 0+1 = 1, 1+2 = 3과 같이 중간중간 데이터를 저장해야 하는 상황이 발생한다. 이때 쓰이는 것이 Register File이다.
ALU는 Arithmetic & Logic Unit으로 산술 연산 혹은 로직 연산을 수행한다. 예를 들어 '+'과 같은 연산을 수행하는 것이다.
Control logic은 Instruction을 메모리로부터 가져오거나, 어떤 Instruction인지 확인하는 등의 작업을 수행한다.
Instruction Set은 명령어 집합을 의미한다. 이를 Software와 Hardware 관점에서의 기능을 명시하여 ISA(Instruction Set Architecture)라고 표현한다. 여기서 Architecture는 프로그래머 혹은 유저에게 보이는 해당 시스템의 성질 혹은 특성을 의미한다. 여기서 Software는 Computer 상에서 수행되는 Application program이나 High-level code를 Instruction으로 변경해 주는 Compiler, 자원 관리를 수행하는 운영체제가 속한다. Hardware의 경우 CPU Design, 더 세부적으로 회로 설계, chip 구조를 말한다. 즉, Instruction Set은 Software가 프로그램의 동작을 수행할 때 사용되는 것이며, Hardware는 실제 물리적으로 Instruction Set의 동작을 수행한다.
RISC-V Instruction Set은 UC Berkely에서 개발되었으며, open ISA로 무료로 학계나 산업계에서 이용할 수 있다. ISA를 무료로 배포하는 데는 아래와 같은 이유가 있다.
1. 많은 사람들이 쉽게 이용가능하여 이용자 간의 경쟁으로 큰 발전을 이룰 수 있음.
2. Core design을 공개하므로써 많은 사람들이 더 빨리 만들어 시장에 출시할 수 있고, 재사용비용 또한 줄일 수 있다. 그리고 Core design이 공개되어 있으므로 다른 trap doors를 추가하는 것이 어렵다.
3. 동일한 ISA를 많이 사용하면, 해당 ISA를 기반으로 만들어진 소프트웨어는 오래 쓸 수 있다.
4. 연구/교육적인 측면에서 실제와 같은 환경에서 연구 및 교육을 진행할 수 있다.
RISC-V를 동작에 따라 Registers, 지원하는 Data Types, Addressing 방법, 수행할 수 있는 Operations 등으로 나눠볼 수 있다. 다음 글에서는 각 항목에 대해서 알아보겠다.
'IT_Study > CS_Study' 카테고리의 다른 글
[Computer Architecture] (4-3) RISC-V Arithmetic / Logical Operation (0) | 2024.04.27 |
---|---|
[Computer Architecture] (4-2) RISC-V Register 설명 (0) | 2024.04.27 |
[Computer Architecture] (3) Big endian & Little endian (0) | 2024.04.27 |
[Computer Architecture] (2) Memory Alignment (2) | 2024.04.27 |
[Computer Architecture] (1-1) Pipelining (0) | 2024.04.24 |
댓글