교재집필
명령어 세트 정의 및 설계 문서화
서호60
2024. 12. 1. 11:27
명령어 세트를 정의하고 문서화하는 작업은 CPU 설계의 핵심입니다. 명령어 세트를 문서화하면 CPU의 기능과 동작 방식을 명확히 설명하고, 설계 및 디버깅 과정을 체계적으로 진행할 수 있습니다.
1. 명령어 세트 정의 문서의 구조
- 명령어 세트 개요
- CPU의 데이터 폭과 명령어 구조.
- Opcode 및 Operand의 정의.
- 명령어 세부 목록
- 명령어 이름, 코드, 기능 설명.
- 입력 및 출력 동작 정의.
- 명령어 형식
- 명령어 비트 구조.
- Opcode와 Operand의 위치 및 의미.
- 예제 코드
- 명령어 사용 예제.
- 명령어 실행 결과.
- 디버깅 정보
- 명령어 테스트 시 유의사항.
2. 명령어 세트 정의 문서 예시
1. 명령어 세트 개요
- CPU 데이터 폭: 8비트
- 명령어 형식: 8비트
- Opcode: 상위 4비트 (명령어 구분)
- Operand: 하위 4비트 (데이터 또는 주소)
- 메모리 구조: 256바이트
- 레지스터 구성:
- A: 기본 연산 레지스터
- B: 보조 연산 레지스터
2. 명령어 세부 목록
명령어 이름 Opcode Operand 설명LOAD | 0001 | 메모리 주소 | 지정된 메모리에서 레지스터 A로 데이터 로드 |
STORE | 0010 | 메모리 주소 | 레지스터 A의 데이터를 지정된 메모리에 저장 |
ADD | 0100 | 레지스터 B | 레지스터 A와 B를 더해 결과를 A에 저장 |
SUB | 0101 | 레지스터 B | 레지스터 A에서 B를 빼서 결과를 A에 저장 |
JUMP | 1000 | 메모리 주소 | 지정된 메모리 주소로 프로그램 흐름 이동 |
JZ | 1001 | 메모리 주소 | 레지스터 A가 0이면 지정된 주소로 이동 |
NOP | 0000 | 없음 | 아무 작업도 하지 않음 |
HLT | 1111 | 없음 | 프로그램 종료 |
3. 명령어 형식
명령어는 8비트로 구성되며, 상위 4비트는 Opcode, 하위 4비트는 Operand입니다.
비트 위치7 6 5 43 2 1 0구성 | Opcode | Operand |
설명 | 명령어 유형 | 데이터/주소 |
- Opcode 예시:
- 0001: LOAD
- 0010: STORE
- 0100: ADD
- 1111: HLT
4. 명령어 동작 정의
LOAD- 동작: 메모리 주소의 데이터를 레지스터 A로 로드.
- 명령어 형식: 0001 [주소]
- 예: 0001 0100 → 메모리 0x04의 데이터를 A에 로드.
- 동작: 레지스터 A의 데이터를 지정된 메모리에 저장.
- 명령어 형식: 0010 [주소]
- 예: 0010 0110 → A의 데이터를 메모리 0x06에 저장.
- 동작: 레지스터 A와 B를 더해 A에 저장.
- 명령어 형식: 0100 0000 (Operand는 사용하지 않음)
- 예: 0100 0000 → A = A + B.
- 동작: 레지스터 A에서 B를 빼서 결과를 A에 저장.
- 명령어 형식: 0101 0000
- 예: 0101 0000 → A = A - B.
- 동작: 프로그램 흐름을 지정된 메모리 주소로 이동.
- 명령어 형식: 1000 [주소]
- 예: 1000 0011 → PC = 0x03.
- 동작: 레지스터 A가 0이면 지정된 주소로 이동.
- 명령어 형식: 1001 [주소]
- 예: 1001 0101 → (A == 0) → PC = 0x05.
- 동작: 아무 작업도 하지 않음.
- 명령어 형식: 0000 0000.
- 동작: CPU 동작 정지 및 프로그램 종료.
- 명령어 형식: 1111 0000.
5. 예제 코드
메모리에서 두 숫자를 더하는 프로그램- 목표: 메모리 0x01, 0x02의 값을 더해 결과를 0x03에 저장.

- 목표: 메모리 0x00에 저장된 숫자를 플레이어가 입력값으로 맞추는 간단한 게임.

6. 디버깅 정보
- 명령어 디코딩 확인: Opcode와 Operand가 올바르게 해석되는지 확인.
- 시뮬레이션 시나리오:
- 메모리 및 레지스터 상태 변화 추적.
- 각 명령어 실행 후 CPU 상태를 기록.
- 오류 처리:
- 정의되지 않은 Opcode가 입력된 경우 CPU 동작 중단 또는 디버깅 메시지 출력.
이 명령어 세트 설계 문서는 CPU 설계와 디버깅의 기준으로 활용됩니다.