본문 바로가기
컴퓨터공학기초 개념/컴퓨터구조

15. CPU 내부구조 - 명령어의 구조

by devraphy 2021. 8. 10.

0. 시작하기 전에

- 이전 포스팅에서 CPU의 내부 구조와 동작 방식에 대해서 알아보았다.

- CPU의 동작 방식을 알기 위해서, 명령어를 처리하는 과정을 예시로 알아 보았는데, 

- 이번 포스팅에서는 CPU의 명령어가 어떻게 구성되어 있는지 알아 볼 예정이다.


1. 명령어(Instruction) 형식의 이해 

- 이전 포스팅에서 CPU의 내부 동작에 대해서 알아보았다.

- 그 과정에서 여러가지 레지스터를 통해, 주기억장치에 있는 명령어를 가져와서 실행했다. 

- 주기억장치에 올라와 있던 그 명령어의 형식에 대해서 알아보자. 

 

a) 명령어의 구성 

 

- 명령어는 연산자(operation 또는 op-code)와 피연산자(operand)로 구성되어 있다.

 

▶ operation - 어떤 행위를 가리키는 역할이다. 

operand - 주기억 장치에서 기억하고있는 데이터의 주소값이며, 이 주소값에 이름을 붙이면 변수명이라고 한다. 

 

- 즉, 행위와 대상으로 구성되어 있다. 

 

b) 비트 할당에 명령어의 개수

- operation이 몇 비트를 할당 받았냐에 따라서 표현할 수 있는 연산의 개수가 달라진다. 

ex) 1비트(= 2의 1승) → 0 과 1 → 2가지

ex) 2비트(= 2의 2승) → 00, 01, 10, 11 → 4가지 

ex) 7비트(= 2의 7승) → 128가지 

 

- 즉, operation이 많은 비트를 할당받을 수록 더 많은 종류의 명령어(=연산)를 가질 수 있다.

 

c) CPU 에서 명령어를 이해하는 방법 

- Decoder에게 전달되기 전에, 명령어는 IR에게 전달된다. 

- IR은 명령어의 op-code를 읽고 해당하는 명령어를 찾는다. 

- IR은 명령어의 OPRD(피연산자)를 확인한 후 MAR에게 요청한다. 

 

d) 명령어의 기능 (= operation의 기능)

▶ 전달 기능(Transfer) - operand를 전달해라

▶ 함수 연산(Function) - operand를 연산해라 

▶ 제어 기능(Control) - operand를 어떻게 다루어라

▶ 입출력 기능(I/O) - operand를 입출력 해라

 

- 이와같은 행위의 대상(= 피연산자)은 주기억장치에 있는 데이터다.

 

e) 명령어에는 operand(= 피연산자)가 없을 수도 있다. 

- 명령어의 기능이나 목적에 따라 명령어에 operan가 없을 수도, 3개까지 있을 수 도 있다. 

- 오퍼랜드의 개수에 따라서 0 주소 명령 형식 ~ 3주소 명령 형식이 있다.

댓글