컴퓨터 구조 · 명령어

주소 수별 명령어 실행 캔버스

같은 산술식을 3주소, 2주소, 1주소, 0주소 명령어로 표현할 때 피연산자 위치와 임시 저장 위치가 어떻게 달라지는지 비교한다.

01

식 선택

A = B + C * D 같은 식을 하나의 기준 입력으로 둔다.

expression
02

명시 피연산자 배치

주소 수가 많을수록 명령어 안에 피연산자를 직접 적을 수 있다.

instruction width
03

암묵 저장소 사용

주소 수가 줄면 AC나 스택이 중간 결과 보관소 역할을 한다.

implicit operand
04

명령어 수 비교

명령어 길이와 개수, 메모리 접근 횟수를 함께 비교해야 한다.

tradeoff
3주소
명령어 수가 적고 표현이 직접적 한 명령어가 길어지고 레지스터 필드가 많이 필요하다.
R1 = R2 op R3
1주소
AC 중심으로 누적 계산 중간 결과가 AC에 모여 명령어 형식은 줄지만 이동이 늘 수 있다.
LOAD, ADD, STORE
0주소
스택 기반 계산 피연산자를 push한 뒤 연산자가 스택 위 값을 소비한다.
postfix와 친함

주소 수 비교

코드 크기 명령어 길이와 명령어 개수를 곱해 판단한다.
메모리 접근 피연산자가 메모리에 있으면 로드와 저장 비용이 커진다.
하드웨어 복잡도 레지스터 파일, 디코더, 스택 제어 방식이 달라진다.