컴퓨터 구조 - 6. Instruction Format

JeongSH·2024년 9월 30일

컴퓨터 구조

목록 보기
6/11

명령어 처리

  1. CPU는 메모리에서 처리할 Instruction을 가져옵니다. (Fetch)
  2. 해당 명령어를 CPU가 해석합니다. CPU가 해석하기 위해서는 정해진 Format에 맞춘 형식여야 합니다. (Decode)

명령어 포맷 (Instruction Format)

명령어는 고정된 형식으로 구성됩니다.
오퍼코드(Opcode): 어떤 연산을 수행할지를 나타냅니다. 예를 들어, 더하기, 빼기, 곱하기 등의 연산이 이 오퍼코드로 표현됩니다.
오퍼랜드(Operand): 연산에 필요한 데이터나 그 데이터의 주소입니다. 예를 들어, 덧셈 연산을 수행할 두 숫자, 혹은 그 숫자가 저장된 메모리 주소입니다.

종류

  • Arithmetic 연산 (ADD, SUB, SHIFT...) - R-format, I-format (상수 포함)
  • Data Transfer 연산 (LDUR, STUR...) D-format
  • Branch 연산 B-format

R-format

  • Opcode (11bits): 명령어가 수행해야 할 작업을 정의
  • Rd (5bits): 결과를 저장할 목적지 레지스터
  • Shamt (6bits): 시프트 연산을 할 때 데이터가 얼마나 왼쪽 또는 오른쪽으로 시프트되어야 하는지를 정의
  • Rn(5bits): 첫 번째 소스 레지스터 (더할 값 1)
  • Rm(5bits): 두 번째 소스 레지스터 (더할 값 2)

I-format

  • Opcode (10bits): 명령어가 수행해야 할 작업을 정의
  • immediate (12bits): 명령어 내에 포함된 상수 값, 레지스터나 메모리 주소를 참조하지 않고 즉시 수행 (메모리 참조 비용 최소화)
  • Rn (5bits): 첫 번째 소스 레지스터
  • Rd (5ibts): 결과를 저장할 목적지 레지스터

D-format

  • Opcode (11bits): 명령어가 수행해야 할 작업을 정의
  • Address (9bits): 메모리에서 데이터를 읽거나 쓸 때 사용하는 메모리 위치 (offset)
  • Op2 (2bits): Op2는 즉시 값, 레지스터 값, 시프트된 레지스터 값 등을 포함할 수 있다.
  • Rn (5bits): 첫 번째 소스 레지스터
  • Rt (5bits): 결과를 저장할 목적지 레지스터

예시

A[30] = h + A[30] + 1;

X10: base A, X21: h

compiled into:
LDUR X9, [X10, #240]
ADD X9, X9, X21
ADD X9, X9, #1
STUR X9, [X10, #240]

to instruction format
(LDUR-D-format) 1986(10), 240, 0, 10, 9
11111000010, 011110000, 00, 00110, 00101 (2)
=> 1111100010011110000000011000101(2)

0개의 댓글