View
ARM architecture
32-bit ISA ( instruction set architecture : 명령어 집합 구조 )
마이크로프로세서가 알아들을 수 있는 기계어 명령어 ( assembly ), 프로세서가 실행할 수 있는 모든 명령어를 포함한다.
Abstraction in Computer
Hardward - 사람이 전기신호를 제어하며 조작하기 어렵다.
[Abstraction Layer]
-> Instruction Set Architecture - Machine Language ( assembly language ) : CPU에서 지원하는 language로 동작구현 가능
-> Operating System - Machine Language로 조작하지 않고 GUI 등으로 사용자가 쉽게 접근할 수 있음
User - Application Programming : 실제 프로그램 이용
Memory Hierarchy
Register File - Cashe Memory - Main Memory ( DRAM ) - Secondary Storage ( Disk )
고급 저장소 ( 굉장히 빠르지만 작다 ). 저급 저장소 ( 용량은 크지만 read/write가 느리다. )
캐쉬 메모리는 자동으로 관리 된다. 사용자가 볼 수 있는 건 Disk, Ram, Register 뿐.
Instruction categories CPU provides ( essental instructions 0
Data processing instructions
Arithmetic and Logical
Memory access instructions
Load and Store
Branch instructions
Conditional statements ( A == B )
CISC & RISC
CISC ( Complex Instruction Set computer )
One assembly instruction -. Many complex jobs
기게어 명령 하나로 여러가지 작업을 동시에 수행
Ex) movs
RISC ( Reduced Instruction Set Computer )
Each assembly instruction is small unit job
Ex) add, sub, ls, sw
Ex) movs 명령어를 실행 -> string의 주소를 가져오고 옮길 위치를 가져와 글자 하나를 복사, 주소값을 더하는 등 다양한 Unit 연산들을 수행
= CISC = RISC
ARM Architecture
ARM 은 RISC 방식이다. Desktop같이 General Perpose가 아닌 Embedded Computer에서 Special Perpose로 사용하는데 많이 사용된다. ( 작은 크기, 저전력 )
* 물리적으로 분리된 Register는 16개보다 많다.
좌측 index : 16개의 Register ( 32bit, ALU에 한번에 전송된다. )
상측 index : Operating mode ( 하나의 Register가 여러 목적으로 사용될 수 있기에, General perpose Register임 )
R0 ~ R7은 User 모드밖에 없다 => Unbanked
R8 ~ R15는 여러 Perpose로 쓰인다 => Banked
R13 : SP ( Stack Pointer ) : Memory 에서 stack area를 가리키는 주소를 담는다.
R14 : LR ( Link register ) : Program의 함수 흐름을 알려준다. ( main 함수 중에 다른 함수가 나오면, 그 함수를 수행하고 다시 main으로 돌아올 수 있도록 )
R15 : PC ( Program Counter ) : 명령의 수행 절차를 담은 List를 순서대로 수행할 수 있도록 명령 주소를 가리킨다. ( Instruction pointer, 명령 수행 후 +=4 )
CPSR ( Current Program Status Register )
Register를 가져오는 Mode에 대한 정보를 가지고 있다.
SPSR ( Saved Program Status Register )
현재 CPSR의 value ( mode ) 를 가지고 있다.
모든 CPU는 SP, LR, PC, Status Register를 포함하고 있다.
Format of the CPSR and SPSR ( 32 bit )
0 ~ 4 bit : mode bits - 현재 모드의 value를 알려준다.
[Condition flags]
28 : V ( oVerflow Flag ) - overflow가 일어나면 값을 1 가진다.
29 : C ( Carry Flag ) - MSB에서 Carry가 일어나면 값을 1 가진다.
30 : Z ( Zero Flag ) - value가 0일때 값을 1 가진다.
31 : N ( Negative Flag ) - value가 음수일 때 값을 1 가진다.
// 이 시리즈의 글들은 고려대학교의 Computer System Design 과목 ( COSE321 ) 을 수강하며 제가 공부한 내용입니다.
// 노트필기를 바탕으로 정리하여 올리고 있으므로, 부정확한 정보가 있을 수도 있습니다.
// 추후에 종강을 하면 워터마크를 삽입한 최종노트 PDF를 첨부할 계획입니다.
'학부생 CS > 컴퓨터 시스템 설계' 카테고리의 다른 글
Computer System Design - 3 : Assembly instruction (0) | 2019.03.28 |
---|---|
ARM assembly 로 정수 정렬하기 (3) -반복문, Loop, Branch link (0) | 2019.03.23 |
ARM assembly 로 정수 정렬하기 (2) -비교조건과 스왑 (0) | 2019.03.23 |
ARM assembly 로 정수 정렬하기 (1) - LDR, STR (1) | 2019.03.23 |
Computer System Design - 2 : arm & simple instruction (1) | 2019.03.14 |