마이크로 명령어 집합과 구성
* 명령어 (instruction) 집합
* 주소 지정 모드 (addressing mode)
명령어 (instruction) 집합
* 실행 순서에 따른 명령어 분류
- 순차적 실행 명령어 - 전체 실행 명령어의 70 ~ 80% 차지
- 분기 명령어
- 부 함수 호출 명령어
- 복귀 명령어
* 명령어 구문 형식
① 명령 코드 | ② 오퍼랜드 주소 |
① 명령코드 | ② 주소지정 모드 | ③ 오퍼핸드 주소 |
① 명령 코드 : CPU가 실행할 수 있도록 디자인 된 연산
② 오퍼랜드 : 연산에 사용되는 자료 값, 자료가 저장 된 주소에 관한 정보
③ 주소 지정 모드 (addressing mode) : 오퍼랜드가 저장된 위치를 인덱싱 (지정)하는 방법
* 명령어 집합의 설계
설계 관점 | 자연어에 가까운 명령 코드 | 기계 중심의 명령 코드 |
프로그램의 관점 | ||
CPU 구조 설계 측면 |
* 협업에서 활용되는 명령어군의 활용 비율
명령 코드 | 실행 비율 |
Load, store, move | 38% → 자료전송 명령어 |
Compare, add, and, sub | 35% → 산술/논리 연산 명령어 |
Condition blench, call, return | 22% → 실행제어 명령어 |
※ 이상의 명령어가 전체 실행 명령어의 양 90% 이상임을 확인 함
주소 지정 모드 (addressing mode)
* 명령어의 구조상 자료가 저장되어 있는 장소를 지정하는 방법이 필요하다 최대한 하드웨어와 소프트웨어의 독립성을 유지하여 프로그램의 유연성을 가능하게 하여 명령어의 수와 길이를 줄이기 위한 세계적 표준화 기법이 주소 지정 모드이다
* 묵시적 모드 (oprand가 명령어에 포함되어 있지 않은 특수 모드)
- NOP : NO operation, 오퍼랜드가 필요 없는 명령어
- INC : 묵시적 오퍼랜드인 누산기(AC)의 연산 명령어
- ADD : 스택 수조의 명령어 (스택에 오퍼랜드가 저장)
* 직접 값 모드 : operand 자체가 명령어에 포함되어 있는 모드
* 레지스터 모드 (Register mode) : 오퍼랜드가 레지스터에 저장된 모드
* 메모리 직접 주소 모드 (Direct mode) : 오퍼랜드가 저장된 메모리 주소를 나타내는 모드
* 메모리 간접 주소 모드 (Memory indirect addressing mode) : 메모리를 이용하여 간접적으로 주소를 지정하는 모드
* 주소 지정 모드의 예) R1 = 100, R2 = 200 이라고 가정
① MOV R1, #150 => 직접 값 모드, R1 = 150 / R1에 직접 값 150을 지정
② MOV R1, R2 => 레지스터 모드, R1 = 200 / R1에 R2 값(200)을 지정
③ MOV R1, 192 => 직접 모드, R1 = 300 / R1에 192 의 값인 300을 지정
④ MOV R1, @191 => 메모리 간접 모드, R1 = 350 / 191의 값인 200을 다시 주소로 받아서 200의 값인 350을 R1에 지정
Add | Con |
190 | 150 |
191 | 200 |
192 | 300 |
… | … |
200 | 350 |
201 | 700 |
출처 : 제로베이스
'공부 Note > 컴퓨터 구조' 카테고리의 다른 글
Chapter 03 중앙처리장치 (6) (0) | 2022.02.24 |
---|---|
Chapter 03 중앙처리장치 (5) (0) | 2022.02.24 |
Chapter 03 중앙처리장치 (3) (0) | 2022.02.24 |
Chapter 03 중앙처리장치 (2) (0) | 2022.02.24 |
Chapter 03 중앙처리장치 (1) (0) | 2022.02.24 |