YZ ZONE

[ 컴퓨터구조 ] 2.4.3 명령어 세트 본문

IT/컴퓨터구조

[ 컴퓨터구조 ] 2.4.3 명령어 세트

러블리YZ 2023. 2. 5. 14:44

[ 실제 상용 프로세서들의 명령어 형식 ]

 CISC(Complex Instruction Set Computer) 프로세서

 명령어들의 수가 많음
 명령어 길이가 일정하지 않음(명령어 종류에 따라 달라짐) 

주소지정 방식이 매우 다양함명령어 실행 시간이 길다 

[] PDP 계열 프로세서, Intel 펜티엄 계열 프로세서

 RISC(Reduced Instruction Set Computer) 프로세서

 명령어들의 수를 최소화
 명령어 길이를 일정하게 고정
 주소지정 방식의 종류를 단순화
[] ATmega microcontroller, ARM 계열 프로세서

 PDP-10 프로세서 : 고정 길이의 명령어 형식 사용
 단어의 길이 = 36 비트, 명령어의 길이 = 36 비트
연산코드 = 9비트최대512종류의연산허용(실제365)

 PDP-11 프로세서 : 다양한 길이의 명령어 형식들 사용

 연산 코드 = 4 ∼ 16 비트
주소개수: 0,1,2

 PDP-11의 명령어 형식들

펜티엄 계열 프로세서의 명령어 형식 ]

▣ 펜티엄 계열 프로세서

▪  CISC 형으로 분류

▪  다양한 종류의 명령어 형식 사용

▪  펜티엄은 C FORTRAN과 같은 고급 언어가 효율적으로 실행될 수 있도록 하기 위해 여러 종류의 주소 지정 방식 제공

▪  기억장치 공간은 세그먼트(segment) 단위로 분리되어 엑세스

세그먼트 레지스터(SR)에 의하여 구분
SR 6개가 있음
 SR은 해당 세그먼트의 시작 주소를 가지고 있음

SR 이외에도 베이스 레지스터(BR)와 인덱스 레지스터(IX)가 주소지정에 사용됨

▪  펜티엄 계열 프로세서에서는 일단 유효 주소(EA)가 결정되면, 해당 세그먼트의 시작 주소와 유효 주소를 더하여 실제 기억장치를 엑세스 하는 데 사용되는 선형 주소(linear address: LA)를 생성함

▣ 선형 주소(linear address: LA)

 프로세서가 발생하는 주소 = 유효 주소 + 세그먼트의 시작 주소 (각 세그먼트의 시작 주소는 해당 Segment Register(SR)에 저장)

▣ 펜티엄의 주소지정 방식들

 즉시 방식(immediate mode)
데이터가 명령어에 포함되는 방식
데이터의 길이 = 바이트, 단어(word) 혹은 2중 단어(double word)

 레지스터 방식(register mode)
유효 주소(EA)가 레지스터에 들어 있는 방식

 변위 방식(displacement mode)
명령어에 포함된 변위(주소)가 유효 주소로 사용되는 방식으로서, 직접주소지정 방식에 해당

 베이스 방식(base mode)

레지스터 간접 주소지정에 해당

 상대 방식(relative mode)

변위값과 프로그램 카운터의 값을 더하여 다음 명령어의 주소로 사용하 는 방식

[ 펜티엄 계열 명령어 형식의 필드들 ]

▣ 연산 코드(Op code)

 연산의 종류 지정. 길이 = 1 or 2 바이트

 MOD/RM

 주소지정 방식 지정 

 SIB

 MOD/RM 필드와 결합하여 주소지정 방식을 완성 

▣ 변위(displacement)

 부호화된 정수(변위)

▣ 즉시(immediate)

 즉시 데이터

[ ATmega Microcontroller의 명령어 형식 ]

 ATmega128 microcontroller CPU 코어

 8-비트 CPU
 대부분 명령어들의 길이 : 16비트
 기억장치 액세스 명령어들(LOAD, STORE) : 32비트 

 내부 레지스터 : 32
 RISC 프로세서

특징
연산 코드의 비트 수가 명령어에 따라 달라짐 

오퍼랜드의 위치가 유동적

 ATmega128 microcontroller의 명령어 형식의 예

(a) ADD Rd,Rr         ; Rd ← Rd + Rr

(b)ASR Rd               ;레지스터Rd에대하여산술적우측시프트수행

(c) JMP K                ; K 번지로 무조건 점프

(d)BRVS K               ;V플래그가세트되었다면,K번지로분기

(f) LDS Rd,K            ; K 번지의 내용을 읽어서 Rd에 적재

[ ARM(Advanced RISC Machine) 계열 프로세서 ]

 ARM(Advanced RISC Machine) 계열 프로세서

 32-비트 RISC 프로세서
 공개형 아키텍처(Open Architecture) : 라이센스가 있으면 사용 가능 

 모바일 시스템용 프로세서로 널리 사용

 명령어 필드들
분기조건 필드, 연산 필드, 오퍼랜드 필드, 
조건 플래그(cond): 명령어의 분기 조건 지정 (N, Z, C, V)
명령어 연산 유형 결정 비트: 데이터 처리, 기억장치 액세스, 조건 분기 등 연산 코드(OP)
S 비트: 명령어 실행 후 조건 플래그 갱신 여부 결정
레지스터 필드: Rn, Rd, Rs
P, U, W 비트: 주소지정 방식 결정
B 비트: 연산처리 단위 결정 (바이트(B=1) 혹은 단어(B=0))

 ARM 계열 프로세서 명령어 형식들

 Thumb 명령어: 컴파일 과정에서 원래의 32-비트 명령어들을 분석하여 새로운 패턴의 16-비트 명령어 형식으로 축소

 프로그램 기억장치 용량 감소 (각종 임베디드 시스템에서 널리 사용)