ARM Processor

꾸Jun·2024년 3월 16일

ARM Instruction Set, Format

“ARM(Advanced RISC Machine)은 임베디드 기기에 많이 사용되는 RISC 프로세서이다.”위키백과-ARM 아키텍쳐 임베디드 기기에 주로 사용되고, 32bit 프로세서이다.

ARM은 RISC 프로세서라고 했는데, RISC(Reduced Instruction Set Computer)는 적은 수의 명령어를 수행하도록 설계된 마이크로프로세서이다. 수많은 명령어 들의 집합을 자주 사용하는 명령어들을 집합으로 단순화하여 간략하고 일관성 있게 만들어 처리 속도를 향상시킨 프로세서이다. 이를 통해 기본적인 명령어 집합만 가지고 있어서 각 명령어는 단순하고 가볍고 실행 시간도 일정하다. 명령어가 단순하고 실행 시간도 일정해서 병렬로 처리하기에 유리하다. 컴퓨터의 처리 속도를 높이기 위해 복잡한 처리들은 소프트웨어에게 맡겨 명령어를 단순하게 유지하고, 명령어 실행을 위한 하드웨어를 최소화했다. 하드웨어를 최소화했기 때문에 소프트웨어가 복잡하고 크기가 커져 컴파일러의 최적화가 요구된다. 또한 RISC 프로세서는 수많은 레지스터를 가지고 있어서 데이터를 빠르게 접근할 수 있다. 그와 달리 intel 계열 프로세서의 CISC(Complex Instruction Set Computer)는 다양하고 복잡한 명령어를 수행하도록 설계된 마이크로 프로세서이다. CISC 프로세서는 다양한 명령어를 가지고 있고, 하나의 명령어로 다양한 작업을 수행할 수 있다. 명령어가 복잡하고 실행 시간과 명령어의 길이가 일정하지 않아서 RISC와 달리 병렬로 처리하기 어렵다. 다양하고 복잡한 명령어들이 여러 작업을 수행할 수 있어서 속도가 느리다. CISC 프로세서는 Memory 접근을 위해 캐시를 사용하여 성능을 향상시킨다.

간단하게 설명하자면, RISC는 단순하고 간결한 명령어 집합을 가져서 속도가 빠르고, CISC는 다양한 명령어와 복잡한 형식을 가지고 있어 속도가 느린 대신 다양한 작업을 수행할 수 있다.

ARM 프로세서의 명령어는 다양한 기능을 수행한다. 몇가지를 소개하자면, 데이터 처리, 분기, 로드/스토어, 서브루틴 호출 등 다양한 기능을 수행하는 명령어가 있다. 데이터 처리 산술, 논리, 시프트 연산이 있다. 산술 연산은 ADD(덧셈), SUB(뺄셈), MUL(곱셈), MLA(곱셈 후 덧셈), UDIV(부호 없는 나눗셈), SDIV(부호 있는 나눗셈)이 있다. 논리 연산은 AND(논리곱), ORR(논리합), EOR(배타적 논리합)이 있고, 시프트 연산은 LSL(왼쪽 시프트 논리), LSR(오른쪽 시프트 논리)가 있다. 분기는 조건부 분기의 B(분기), BEQ(동등 조건 분기), BNE(부등 조건 분기)가 있고, 점프 명령어인 JMP(점프), BL(점프 및 링크)가 있다. 로드/스토어는 메모리 로드의 LDR(로드), LDRB(바이트 단위 로드)가 있고, 메모리 스토어의 STR(스토어), STRB(바이트 단위 스토어)가 있다. 마지막으로 서브루틴 호출 명령어에는 서브루틴 호출의 BL(점프 및 링크)와 BX(레지스터 기반 점프 및 링크)가 있다.

ARM 프로세서는 또한 다양한 format을 지원한다. 보통 32비트 형식이다. ARM 프로세서의 명령어 형식은 명령어 코드, Operand1, Operand 2로 되어있다. 명령어 코드는 명령어의 종류와 연산을 나타낸다. 예를 들어 ADD, ORR, EOR 같은 논리 연산, ADD, SUB, MUL과 같은 산술 연산 등이 있다. Operand 1은 명령어의 종류가 결정되고, 해당 명령어가 실행될 때 사용되는 첫번째 값 또는 레지스터이다. Operand 1은 주로 소스 데이터, 결과가 저장된 레지스터를 나타낸다. Operand 2 명령어가 실행될 때 사용되는 두번째 값 또는 레지스터이다. Operand 2는 주로 해당 데이터 또는 연산에 필요한 레지스터를 나타낸다. 명령어의 종류에 따라 사용되지 않을 수 있다.

예를 들면 ADD 목적_레지스터 Operand 1 Operand 2 이런 형태이다.



참고 자료 출처

profile
꾸준🐢

0개의 댓글