본문 바로가기
이론/컴퓨터구조

피연산자의 수와 명령어 집합

by ohojee 2023. 11. 24.

컴퓨터 방식과 피연산자의 수

  • 누산기 컴퓨터 ⇒ 1-주소 명령어
  • 스택 컴퓨터 ⇒ 0-주소 명령어
  • 메모리-메모리 컴퓨터 ⇒ 2-주소 혹은 3-주소 명령어
  • 범용 레지스터 컴퓨터 ⇒ 2-주소 혹은 3-주소 명령어

각 컴퓨터의 폰노이만 트래픽 비교

  • 가정
    • 연산 부호: 8비트 (1바이트)
    • 메모리 주소: 16비트 (2바이트)
    • 데이터 크기: 32비트 (4바이트)

누산기 컴퓨터

  • ~ 1960s
  • 명시적으로 하나의 피연산자 사용
  • 데이터 저장을 위한 누산기(accumulator) 레지스터 사용
    • ex) lda a ← a라는 주소에 있는걸 load해라
      • 명령어 길이 3바이트 ⇒ 매 인출 때마다 3바이트의 트래픽 생김
      • 실행 트래픽(=데이터트래픽) 4바이트
      • ⇒ lda a는 총 7바이트의 트래픽 사용

fetch traffic = 명령어 길이

excution traffic = 데이터 크기

cpu내부에서 스택에 있는걸 연산하고 다시 넣기 때문에 실행 트래픽 발생 x

스택 컴퓨터

  • 1960~70s
  • CPU 내부에서 데이터 저장을 위해 Stack 사용
    • 최상위 1~2개 데이터 피연산자로 사용→ 최근 연산한 데이터는 Stack의 최상위에 저장

메모리-메모리 컴퓨터

  • 1970~80s
  • CPU 내부에 기억장치가 없는 컴퓨터, 연산 레지스터가 없음
    • 피연산자는 항상 메모리 주소만 사용
    • 모든 데이터는 메모리에서 → CPU에서 계산 → 메모리로 전송
    • 레지스터가 없어서 load store 명령 존재 x, 대신 move 명령 o
  • 2-주소 명령어와 3-주소 명령어
  • 데이터 2번 이동 = 4 + 4 ⇒ 8
  • 데이터 3번 이동 = 4 + 4 + 4 ⇒ 12

범용 레지스터 컴퓨터

  • 1970s~
  • CPU 내부에 데이터 저장을 위한 범용 레지스터를 사용하는 컴퓨터
    • 순서, 위치에 상관없이 임의 접근 가능
    • 모든 레지스터의 접근 시간 동일
    • 레지스터를 명시적 피연산자로 사용, 앞선 컴퓨터에서는 메모리주소를 피연산자로 사용
  • 2-주소 명령어와 3-주소 명령어
  • 적재-저장 명령어 컴퓨터(load-store machine)
    • 적재, 저장 명령어 사용 시에만 메모리 접근 o 다른 명령어 사용 시에는 메모리에 접근 x(레지스터끼리만 연산)
  • 실행트래픽(메모리트래픽) = 0(메모리에서 주소가 안 옴)

레지스터 사용과 트래픽의 관계

  • 인출단계에 사용되는 명령어 트래픽, 실제 명령어를 실행할 때 쓰는 데이터 트래픽
  • 메모리-메모리 → 범용 레지스터 ⇒ 데이터 트래픽이 현저하게 감소
  • 누산기의 경우 피연산자를 생략해 명령어 길이를 줄임
  • 반복적으로 사용되는 피연산자를 CPU 내부의 레지스터에 보관하여 데이터 이동 개수 줄임

Uploaded by N2T

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

주소 지정 방식  (1) 2023.11.30
명령어와 메모리  (0) 2023.11.27
연산의 종류  (1) 2023.11.20
명령어 특성  (0) 2023.11.06
명령어 집합  (0) 2023.11.03

댓글