ITGenerations
2018_0524 임베디드 수업자료 본문
프로세스: 현재 실행중인 프로그램
프로세어: H/W
Processor란?
메모리에 저장된 명령어를 실행하는 finit-state automation
마이크로프로세서
(Micro Processor = mp)
반드시 기억해야될것 2가지!!!! ->>> (1)Instruction Set (명령어 집합) / (2)Register
Single Board Computer
Raspberry Pi 에는 마이크로프로세서가 들어가 있다. BCM2835와 같은 mp가 있다.
파이에서 프로그램을 짤 때, C, Python같은 하이레벨 언어를 사용하여 컴파일 해서 실행 시킴.
(Arm128 같은것)
mp
Assembler Language (어셈블리어) --> Instruction Set 작성.
어셈블리어로 mp에서 명령어 집합을 작성한다.
ARM과 같은 mp은 RISC 타입의 명령어를 가진다.
RISC란? Reduce Instruction Set Computer ( Reduce )
CISC란? Complex Instruction Set Coomputer ( Complex )
어셈블리 종류 - 클락이 움직여야 마이크로 프로세서가 동작한다.
MOV 8비트 클락, 7비트 클락
LDV 16비트 클락, 7비트 클락
LOAD 12비트 클락, 7비트 클락
RISC는 비트가 일정하게 해서 가볍게 만든것임.
CISC는 비트가 일정하지 않아서 복잡하게 만들어진것임
IC Intergrated Circuit(집적회로)
ps, 직접회로 아님!!!
모을 집, 쌓을 적, 회, 로
集積回路.
(한자로 쓰는것도 알아두기,,, 시험에 나올수있음)
Stored program
명령어와 데이터들 같은 메모리 시스템에 저장한다.
필요할 경우 명령어를 데이터로 취급할 수 있도록 한다.
Instruction Set (RISC & CISC)
각각의 명령어는 전체 상태가 변화하는 특정 방법을 정의하고, 어떤 명령어가 다음에 실행되어져야 할지를 정의한다.
Register
메모리 체계
SDRAM - cache(SRAM) - RAM, ROM < HDD
레지스터를 구성하는 단위 플리 플롭
플리 플롭을 구성하는 단위는 트랜지스터
트랜지스터는 데이터를 저장 못한다.
따라서, 저장을 할 수 있게 만들게 플리플롭이다.
1플리 플롭은 1비트를 저장할 수 있다.
플리플롭들로 이루어진게 레지스터다.
레지스터는 마이크로 프로세서(mp) 내부에 구성되어있다.
마이크로 프로세서 내부에 있는 메모리를 레지스터라고 한다.
이 레지스터가 8 비트, 16비트다 라고 정의하는건 레지스터의 크기에 따라 정의된다.
(다른 말로, 레지스터에 있는 플리플롭의 갯수에 따라 정해진다.)
Aram has a total of 37(32bit) registers
- 30general purpose / 6 status / pc
- At any one time, sixteen are visible, the other registers used to speed up exception.
Special Purpose General Register
- Program counter (r15 = pc)
A pointer to the instruction
- Link register(r14 = lr)
To hold the address of the next instruction after a Branch with Link
At all other times, r14 can be used as a general - purpose
Register(2)
Status Register
CPSR(Current Program Status Register) : 현재 cpsr 상태
SPSR(Saved Program Satus Register): 이전 모드의 cpsr 상태
31 |
30 |
29 |
28 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
N |
Z |
C |
V |
|
I |
F |
T |
M4 |
M3 |
M2 |
M1 |
M0 |
M[4:0] |
MODE (6가지) |
10000 |
USER |
10001 |
FIQ |
10010 |
IRQ |
10011 |
SUPERVISOR |
10111 |
ABORT |
11011 |
UNDERFINDE INSTRUCTION |
|
|
N - Negative/Less Than
Z - Zero
C - CArry/Borrow/Extend
V - Overflow
I - IRQ Disable bit
F - FIQ Disable bit
T - 0 indicates ARM excution(Default)
/ 1 indicates THUMB excution
M[4:0] - Present current processor mode
"Shadow" Register
CPU 동작 모드가 USER 모드 -> Supervisor 모드로 바뀔 경우, Supervisor 모드에서만 동작하는 Shadow register R13과 R14가 끼어든다.
[사진]
[설명]
새로 바뀐 레지스터를 Shadow 레지스터라고 한다.
Shadow register는 평상시에는 없다가 특정한 모드일 경우 나타내는 레지스터를 말한다.
ARM 레지스터에는 37개가 있다.
System&User 16개
FIQ 7개
Supervisor 2개
Abort 2개
IRQ 2개
Undefined 2개
CPSR 1개
SPSR-fiq 1개
SPSR-svc 1개
SPSR - abt 1개
SPSR - irq 1개
SPSR - und 1개
16+7+2+2+2+2+1+1+1+1+1+1 = 37
->16+7+8+6
-> 37
http://forum.falinux.com/zbxe/index.php?document_srl=571055&mid=lecture_tip
참조
'Univ > 임베디드' 카테고리의 다른 글
2018_06_05 임베디드 수업 (0) | 2018.06.05 |
---|---|
2018_0529_수업자료 (0) | 2018.05.29 |
2018_05_17 수업자료 (0) | 2018.05.17 |
2018_05_15 임베디드 수업자료2 (0) | 2018.05.15 |
20180515 수업자료 (0) | 2018.05.15 |