Dreaming Deve1oper

명렁어 세트 본문

컴퓨터 구조

명렁어 세트

주현테크 2022. 3. 26. 17:49
명령어 세트 (Instruction Set)
  • CPU의 기능은 이들에 의해 결정된다.
  • 그들의 수와 종류는 CPU에 따라 많이 다르다.
명령어 세트 정의를 위해 결정되어야 할 항목
오퍼랜드의 CPU 기억장소 스택 (stack)
범용 레지스터 (GPR)
누산기 (Accumulator)
연산명령어 CPU 명령어가 수행할 연산들의 수와 종류
오퍼랜드 / 명령어 일반적인 명령어가 처리 가능한 오퍼랜드의 수
오퍼랜드의 위치 CPU의 외부 혹은 내부
Reg-to-Reg, Mem-to-Reg, Mem-to-Mem
오퍼랜드 오퍼랜드의 크기와 형태
정의 방법

 


 

Stack Architecture 

Stack Architecture

장점 단점
코드가 짧아 효율적이다.
표현이 간단하다.
코드를 만드는데 비효율적이다.
병목현상이 발생한다.

 

 

Accumulator Architecture

Accumulator

장점 단점
코드가 짧아 효율적이다.
중간단계가 복잡하지 않다.
메모리 트래픽이 늘어난다.

 

 

General-purpose Register Architecture

장점 단점
대부분의 컴퓨터 아키텍처에 사용된다.  

 


명령어의 종류
데이터 전송명령 레지스터와 레지스터, 레지스터와 기억장치, 기억장치와 기억장치 간에 데이터를 이동시키는 명령.
산술 연산명령 2의 보수 및 부동소수점 수에 관한 덧셈, 뺄셈, 곱셉 및 나눗셈과 같인 기본적인 산술 연산 명령.
논리 연산명령 데이터의 각 비트들 간에 대한 AND, OR, NOT 및 Exclusive-OR와 같은 논리 연산 명령.
입출력 명령  
프로그램 제어명령  

 

명령어의 형식
  • 명령어는 CPU가 한번에 처리할 수 있는 비트 수의 크기(단어: word)로 정의된다.
  • 명령어를 구성하는 비트는 용도에 따라 몇 개의 필드(Field)로 나누어진다.
  • 기본적으로 Op-Code필드와 Operand 필드로 구성된다.
  • Operand 필드는 컴퓨터의 처리 능력에 따라 여러개의 Operand 필드로 구성된다.
명령어의 기본구성 요소
오퍼레이션 코드 (Op-Code) CPU에서 실행될 연산 지정.
LOAD/STORE, ADD, JUMP, etc...
오퍼랜드 (Operand)  

 

OP 필드의 비트 수 결정
  • CPU에서 수행될 연산 종류의 수에 따라 비트의 수가 결정된다.
  • 4비트 -> 2^4=16가지의 연산 정의
  • 5비트 -> 2^5=32가지의 연산 정의
  • 비트의 수가 증가할수록 많은 연산의 정의가 가능하지만, 반면에 오퍼랜드 필드의 비트 수가 감소한다.

 

Operand 필드의 비트 수 결정
  • 오퍼랜드의 종류에 따라 결정된다.
  • Immediate Value -> 표현 가능한 수의 범위가 결정된다.
  • Memory Address -> CPU가 직접 주소를 지정할 경우 기억장치 영역의 범위가 결정된다.
  • Register No. -> 범용 레지스터의 수를 결정한다.

 

 

명령어의 형식
ex) 
명령어의 길이가 전체 16Bit
Op-code: 4비트
범용레지스터: 16개


명령어 형식에 따른 실행 예제
- 명령어의 다양한 오퍼랜드 형식에 따라 실행될 프로그램의 전체 명령어들의 수량이 다르게 나타난다.
- 따라서 구성된 명령어의 형식에 따라 프로그램 실행 시간도 그 수에 비례하여 증가한다.

​- 실행될 프로그램: X=(A+B)*(C-D)

- 프로그램을 실행시키는 명령어의 종류
1. ADD: 덧셈
2. SUB: 뺄셈
3. MUL: 곱셈
4. DIV: 나눗셈
5. MOV: 데이터 이동
6. LOAD: 메모리로부터 데이터를 CPU에 저장.
7. STORE: CPU로부터 메모리에 데이터 저장.


 

 

 

 

'컴퓨터 구조' 카테고리의 다른 글

명령어 사이클 종류 / 간접 사이클  (0) 2022.04.15
명령어 주소 지정 방식  (0) 2022.03.26
CPU의 구조와 구성 요소  (0) 2022.03.26
ALU: Arithmetic Operations  (0) 2022.03.20
부동 소수점 (BFPN)  (0) 2022.03.20
Comments