명령어 포맷에 있는 opcode 가 명령어를 구분해주기 때문에 중요하게 쓰입니다.

CISC

CISC는 명령어의 길이가 가변적이기 때문에 Prefixes, Displacement, Immediate들이 0~4바이트까지, Opcode 가 1~3바이트까지 가변적으로 변합니다.

RISC

opcode: 어떤 명령어고 어떻게 작동해야 하는지 수식

operand: 피연산자

Immediate: 상수 또는 인코딩된 숫자 표현식

funct7, funct3: opcode와 함께 쓰이고 수행할때 어떻게 작동할지 설명

rs1, rs2: 첫번째, 두번째 피연산자 레지스터

rd: 결과를 저장할 레지스터

 

RISC는 모든 명령어의 길이가 다 같아서 이렇게 포맷이 6가지로 정해져 있습니다.

 

Register/register: 논리/산술 연산

Immediate: 상수 연산(메모리에서 상수를 가져오는 lw연산을 피할 수 있으므로 연산을 매우 빠르게 할 수 있음), 메모리 로드

Upper Immediate: 32bit의 immediate value를 특정 register에 넣을 수 있음.

Store: 메모리에 저장

Branch: 레지스터 비교

Jump: 해당 위치로 점프

 

riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf

CPU 구성요소

1. 프로세서 레지스터

 

0. 레지스터, 캐시, 램, 클럭 설명

램 램은 메인보드에 램 슬롯이란 곳에 끼워서 사용하며 cpu와는 버스라는 시스템을 이용해서 통신하게 됩니다. 이 버스는 일반적으로 주소 버스, 제어 버스, 데이터 버스의 세 부분으로 구성되게

rmagur1203.tistory.com

2. 산술 논리 연산 장치(Arithmetic Logic Unit)

두 숫자의 산술 연산과 논리 연산을 계산하는 디지털 회로입니다.

- 산술 연산 장치 : 산술 연산(+ - * /) 수행

- 논리 연산장치 : 논리 연산 (AND, OR, XOR, NOT...)을 수행

- 보수기(complementer) : 데이터에 대하여 2의 보수를 계산 (음수화)

- 시프트 레지스터(shift register) : 비트들을 좌, 우로 이동시키는 기능을 가진 레지스터

- 상태 레지스터(status register) : 연산 결과의 상태를 나타내는 플래그(flag)를 저장하는 레지스터

2-1. 부동소수점 장치(Floating Point Unit)

ALU와 비슷하지만 부동소수점 실수에 대한 사칙연산을 지원하며, 모듈에 따라 거듭제곱 뿐만 아니라 삼각 함수 등 다양한 수학 계산을 할 수 있습니다.

3. 제어부

 

3. CPU의 명령어 처리 구조

위 자료들은 CPU가 명령을 처리할 때 명령을 주기억 장치에서 가져오고, 해독, 실행하는 절차입니다. 명령 주기 1. Instruction Fetch(명령 인출) cpu가 전 글에서 설명한 명령어를 메모리에서 가져오는

rmagur1203.tistory.com

4. 내부 버스

중앙처리장치 내 각 구성 요소를 연결하여

데이터, 주소 또는 제어신호를 전달하는 신호 회선입니다.

 

연산장치와 레지스터들 사이의 데이터 통로가 되며,

데이터 선과 제어장치로부터 발생하는 제어 신호선으로 구성됩니다.

 

내부 버스는 시스템 버스와 직접 연결되지 않으며,

버퍼 레지스터를 통해 시스템 버스와 연결됩니다.

728x90

'해킹 > 과제' 카테고리의 다른 글

4. 파이프라이닝(Pipelining)  (0) 2021.04.17
3. CPU의 명령어 처리 구조  (0) 2021.04.16
1. CPU 명령어 집합 구조  (0) 2021.04.16
0. 레지스터, 캐시, 램, 클럭 설명  (0) 2021.04.16
2. 메모리들의 작동 방식 - RAM  (0) 2021.04.09

+ Recent posts