Instruction   명령어

(2020-07-11)

ISA, Instruction Set, 명령어 집합, CPU Instruction, CPU 명령어, CPU 명령어 싸이클

1. Instruction (명령어 또는 명령)

  ㅇ [프로그램]  프로그램 상에서의, 최소 실행 단위명령문 (Statement) 참조

  ㅇ [하드웨어]  컴퓨터 하드웨어에서, 이해되고 수행 가능한 단위 
     - 주로, CPU에서의, 작은 작업 수행 단위기계어/어셈블리어 참조
        . 기계어 : 비트들의 집합체
        . 명령어 : 기계어를 구성하는 개개의 요소 단위
     - 이는, 기억장치에 저장되어 있다가, CPU가 이를 인출하여 실행하게 됨


2. CPU 명령어 집합 (Instruction Set) 이란?

  ㅇ 명령어들로 구성된 어휘 집합을 말함
     - 특정 CPU 마다, 특정 명령어 집합 만을 수행할 수 있음
        . 특정한 구조(특히,컴퓨터구조)에 따라 정의된 명령들의 집합

  ㅇ 명령어 집합 구조에 대한 추상화 : ISA (Instruction Set Architecture)
     - 하드웨어와 저수준 소프트웨어인터페이스에 대한 추상화의 일종
        

  ㅇ 결국, 프로그래밍에 관련된 컴퓨터 구조의 일부로써, 상호작용하는 다음 사항들을 반영하게 됨
     - 데이터타입, 명령어, 레지스터, 주소지정방식(Addressing Mode), 메모리 구조,
       인터럽트예외 처리, 외부 I/O 장치3. CPU 명령어 집합설계 관점

  ㅇ 명령어 집합설계CPU 설계 간의 연관성 
     - 명령어 집합설계는, CPU 설계 상의 핵심적인 요소 임
        . 각 명령어 마다 CPU에 특정 회로가 필요하며,
        . 지원 명령어가 많을수록 CPU 복잡도가 증가됨

  ㅇ 명령어 집합설계 상의 `원칙/목표`
     - 컴퓨터 하드웨어 및 컴파일러 제작의 용이성/간결성
     - 최대 성능 보장(처리속도) 등

  ㅇ 명령어 집합CPU 설계 구조 상의 2가지 큰 `방향`
     - 최소한의 명령어 집합 => RISC
     - 많은 수의 다양하고 중복되는 명령어 집합 => CISC

  ㅇ 명령어 집합의 결정 요소
     - 연산 종류
     - 데이터 유형
     - 명령어 형식
     - 주소지정방식


4. CPU 명령어의 문법적 구성

  ㅇ 명령어 구성 (Instruction Structure)
     - 구성 : 명령 코드(operation code,op code) + 피연산자(operand,오퍼랜드)
     - 명령(코드) : STORE, LOAD, SHIFT, XOR, JUMP 등
     - 피연산자 : 데이터 위치 (메모리 셀 위치, 어느 레지스터 인가? 등) 또는 실제 데이터

  ㅇ 명령어 종류 (연산 종류)
     - 데이터 전송 : LOAD, STORE 등
     - 연산 : ADD, AND, OR, XOR, SHIFT, ROTATE 등
        . 논리 연산 : AND, OR, NOT, XOR
        . 산술 연산 : ADD
           .. 뺄셈은, 덧셈과 부호반전(negation)의 조합으로써,  ☞ 1의 보수,2의 보수 참조
           .. 곱셈은, 덧셈의 반복으로써,
           .. 나눗셈은, 뺄셈의 반복으로써, 구현 가능
        . 회전,자리이동 연산 : SHIFT, ROTATE
     - 제어 : BRANCH, JUMP, CALL 등

  ㅇ 주소 지정 방식
     - 오퍼랜드에 기억장치 내 위치(유효 주소)를 지정 하는 방식
        . 직접 주소지정 방식
        . 간접 주소지정 방식
        . 묵시적 주소지정 방식
        . 즉시 주소지정 방식
        . 레지스터 주소지정 방식

  ㅇ (기타 문법)
     - 줄 (line) : 고급 프로그래밍 언어와 달리, 한 줄에 하나의 명령어 만 씀 
     - 주석 (comment, ;) : 통상, 줄 끝에 붙이며, 줄이 끝나면 주석도 끝남 


5. CPU 명령어 싸이클 (Machine Cycle, Instruction Cycle)

  ※ (하나의 명령어를 실행하는데 필요한 전체 과정)

  ㅇ 2단계 구조 : 명령어 인출(fetch) -> 명령어 실행(execute)
  ㅇ 3단계 구조 : 명령어 인출 -> 명령어 해석(decode) -> 명령어 실행
  ㅇ 4단계 구조 : 명령어 인출 -> 간접(indirect) -> 명령어 실행 -> 인터럽트(interrupt) 싸이클


[중앙처리장치 (CPU)] 1. CPU 2. MPU,MCU,FPU,GPU 3. RISC,CISC 4. ALU 5. 제어 장치 6. 내부 레지스터 7. 파이프라인 8. 명령어 9. 80x86

 
        최근수정     요약목록     참고문헌