ARM은 임베디드용으로는 가장 인기 있는 명령어 집합 구조입니다. ARM은 원래 Acorn RISC Machine의 약자였는데 후에 Advanced RISC Machine으로 바뀌었습니다. ARM은 MIPS와 같은 해에 나왔으며 같은 설계 철학을 따르고 있습니다. 다음 그림은 두 프로게서 사이의 유사성에 대해 보여주고 있습니다. 가장 큰 차이는 MIPS는 레지스터가 더 많고 ARM은 주소지정 방식이 더 많다는 점입니다.
주소지정 방식
MIPS와 달리 ARM에는 상수 0을 갖고 있는 레지스터가 없습니다. MIPS는 겨우 3개의 단순한 데이터 주소지정 방식을 갖고 있는 반면 ARM은 9개의 주소지정 방식을 갖고 있으며 이 중에는 상당히 복잡한 계산을 하는 방식도 포함되어 있습니다. 예를들면 레지스터를 원하는 만큼 자리이동한 후 다른 레지스터 값에 더하여 주소를 만든 다음, 이 주소를 이용하여 레지스터 값을 바꾸는 주소지정 방식을 갖고 있습니다.
비교 및 조건부 분기
조건부 분기 여부를 판단하기 위해 MIPS는 레지스터 값을 사용했습니다. 반면에 ARM은 프로그램 상태 워드에 저장되는 4개의 전통적인 조건 코드 negative, zero, carry, overflow비트를 사용합니다. 이 조건 비트들은 어느 산술 또는 논리 연산 명령 실행시에도 설정될 수 있습니다. ARM은 조건부 분기 명령어로 조건 코드를 검사해서 모든 부호없는 비교와 부호있는 비교를 수행합니다.
위는 ARM과 MIPS의 명령어 형식을 보여주고 있습니다. 주된 차이점은 모든 명령어가 4비트 조건부 실행 필드를 갖고 있으며 레지스터 필드가 짧다는 것입니다. ARM레지스터 개수가 MIPS의 절반밖에 되지 않기 때문입니다.
ARM의 고유한 특징
ARM은 MIPS에는 없는 몇가지 산술 논리 연산 명령어가 있습니다. ARM은 0값을 갖는 전용 레지스터가 없기 때문에 MIPS가 $zero를 가지고 할 수 있는 연산을 수행할 수 있는 별도의 op코드를 갖고있습니다. ARM은 다중워드 산술도 지원합니다.
'Computer Architecture > 컴퓨터 구조' 카테고리의 다른 글
[17] CH2 명령어:컴퓨터 언어 < RISC-V > (0) | 2022.01.19 |
---|---|
[16] CH2 명령어:컴퓨터 언어 < ARMv8 > (0) | 2022.01.19 |
[14] CH2 명령어:컴퓨터 언어 < MIPS 버전 6 > (0) | 2022.01.19 |
[13] CH2 명령어:컴퓨터 언어 < MIPS 버전 5 > (0) | 2022.01.19 |
[12] CH2 명령어:컴퓨터 언어 < Arm 버전 2 > (0) | 2022.01.19 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!