CS/컴퓨터 구조

1장 : CPU - (4) 명령어 세트

infobox503 2024. 11. 8. 09:29

<요약>

  • 명령어 세트
    • 고려 사항
      • 연산 종류
        • 데이터 전송
        • 산술 연산
        • 논리 연산
        • 입출력
        • 프로그램 제어
      • 데이터 형태
      • 명령어 형식
      • 주소지정 방식
  • 명령어 구성 요소
    • 연산 코드
    • 오퍼랜드
    • 다음 명령어 주소
  • 오퍼랜드
    • 종류
      • 데이터
      • 기억장치 주소
      • 레지스터 번호
    • 오퍼랜드 개수에 따른 명령어 종류
      • 0-주소 명령어
      • 1-주소 명령어
      • 2-주소 명령어
      • 3-주소 명령어
    • 주소지정 방식
      • 기호
        • EA, A ,R (A), (R)

1. 명령어 세트

  • 의미
    • 해당 CPU가 동작하기 위한 명령어 구성 집합
  • 명령어 세트 구성을 위해 필요한 사항
    • 연산 종류
      • 연산들의 수, 종류, 복잡도
    • 데이터 형태
      • 연산을 위한 데이터 형태, 길이, 표현 방식
    • 명령어 형식
      • 명령어 길이, 오퍼랜드 필드 수/길이
    • 주소지정 방식
      • 오퍼랜드 주소 지정 방식

연산 종류

  • 데이터 전송
    • 레지스터, 기억장치 사이에 데이터를 이동하는 동작
  • 산술 연산
    • 사칙연산
  • 논리 연산
    • AND, OR, NOT 등의 연산
  • 입출력
    • CPU ↔ I/O 장치 사이의 데이터 이동 동작
  • 프로그램 제어
    • 명령어 실행 순서 변경 연산

2. 명령어 구성요소

  • 연산 코드(op : opcode)
    • 수행 연산(ADD, LOAD 등)
  • 오퍼랜드
    • 연산 수행에 필요한 데이터, 데이터 주소
  • 다음 명령어 주소
    • 현재 명령어 다음에 실행할 명령어 주소

명령어 형식

  • 의미
    • 명령어 내의 필드 수, 배치, 비트 수 정의

※ 필드 : 각 명령어에서 기능을 가지는 비트 부분(의미없이 빈 여백을 가진 비트도 있음)

  • 명령어 길이
    • 해당 명령어가 차지하는 비트 길이
  • 명령어 형식을 정하기위한 고려사항
    • 연산 코드 필드 길이
      • 예시
        • 연산 코드 필드 길이 = 4bit
        • 2^4가지의 연산 기호 정의 가능
    • 오퍼랜드 필드 길이
      • 오퍼랜드 종류에 따라 사용방안 다름
      • 오퍼랜드 종류
        • 데이터
        • 기억장치 주소
        • 레지스터 번호
          • 사용하는 레지스터 번호

3. 오퍼랜드 필드 범위

  • 예시1
    • 오퍼랜드1 : 레지스터 번호
      • 4bit = 2^4개 레지스터 사용 가능
    • 오퍼랜드2 : 기억장치 주소
      • 8bit = 기억장치 주소 범위 0~255(=2^8) 번지

오퍼랜드 수에 따른 명령어 분류

  • 0-주소 명령어
    • 의미
      • 명령어에 오퍼랜드 0개
      • 연산에 필요한 오퍼랜드, 저장 장소가 이미 지정돼있음
    • 예시
      • 스택을 사용한 후위 표기법 사용
        • 스택은 각 push, pop마다 어떻게 저장될지 이미 정해져있음
        • 해당 자료구조를 사용해서 각 연산마다 후위 표기법 사용
  • 1-주소 명령어
    • 의미
      • 명령어에 오퍼랜드 1개
      • 명령 수행에 필요한 저장소는 묵시적으로 AC(누산기)가 됨
    • 예시
      • ADD X 명령
        • AC ← AC+M[X]
  • 2-주소 명령어
    • 의미
      • 명령어에 오퍼랜드 2개
    • 예시
      • ADD R1, R2 명령
        • R1 ← R1 + R2
  • 3-주소 명령어
    • 의미
      • 3개의 오퍼랜드를 포함하는 명령어
    • 예시
      • ADD R1, R2, R3
        • R1 ← R2 + R3
  • 1,2,3 주소 명령어의 특징
    • 1→2→3 주소로 갈 수록 명령 수행에 드는 과정이 짧아짐. 다만, 해독이 점점 어려워짐

※ 1,2,3 주소 명령어에 대한 문제 풀이는 ppt 참고


4. 주소지정 방식

  • 의미
    • 오퍼랜드 값의 형태를 결정하는 방식
    • 예시
      • 오퍼랜드가 실제 데이터 값을 지닐지, 아니면 기억장치 주소를 가리킬지 등을 정함
  • 주소지정 방식이 달라지는 이유
    • 더 큰 기억장치를 사용하기 위함
  • 기호
    • EA
      • 실제 주소
    • A
      • 기억장치 주소 or 특정 주소 or 레지스터 값 or 오프셋 등
    • R
      • 레지스터 번호
    • (A)
      • 기억장치 A 번지의 내용
    • (R)
      • 레지스터 R의 내용
    • ex)
      • EA = A : 실제 주소는 기억장치 주소다
  • 종류(다음 시간에 배움)
    • 직접 주소지정
    • 간접 주소지정
    • 묵시적 주소지정
    • 즉시 주소지정
    • 레지스터 주소지정
    • 레지스터 간접 주소지정
    • 변위 주소지정
      • 상대 주소시정
      • 인덱스 주소지정
      • 베이스-레지스터 주소지정