View

300x250

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를 첨부할 계획입니다.

320x100
Share Link
reply
반응형
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31