Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
중앙대학교 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

학부생 CS/컴퓨터 시스템 설계

Computer System Design - 1 : 컴퓨터와 레지스터에 대해 간단히

sm_amoled 2019. 3. 12. 22:56

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