CPU(중앙 처리 장치)구조
MIPS : 32bit, RISC, DMA 및 캐시 지원
ARM : 32bit, RISC, 입출력 기능 및 가상 기억 장치 기능 없음, 핸드폰/PDA등에서 사용
8051 : 8bit, CISC, 가격이 저렴
PowerPC : 32/64bit, RISC, 통신자입 구현용
x86 : 32/64bit, CISC
z80 : 8bit, CISC
레지스터
AR(Address Register) : 액세스하려는 메모리의 주소를 기억
PC(Program Counter) : 다음에 실행할 명령어의 주소를 기억
SP(Stack Pointer) : 메모리에 정의한 Stack 의 제일 위 주소를 기억
IR(Index Register) : 인데스 주소를 기억
BR(Base Register)/RR(Relocation Register) : 기준 주소를 기억
PR(Page Register) : 페이지 주소 방식에 있어서 페이지 번호를 기억
IR(Instruction Register) : 현재 실행중인 명령을 기억하고 있는 레지스터로 실행 명령을 보관
MBR(Memory Buffer Register) : 메모리에 써넣기 의한 데이터 및 메모리에서 읽어낸 데이터를 기억
ACC(Accumulator) : 산술 및 논리 연산, 입출력의 결과나 중간값을 일시적으로 보관하고 있는 중앙 처리 장치내의 레지스터
WR(Working Register) : 연산 과정에서 중간 결과를 일시적으로 기억
CC(Condition Code) : ALU가 연산을 할 때 발생하는 캐리나 연산 결과의 +,-,0 등의 상태를 표시
PSW(Program Status Word) : 인터럽트의 금지, 해제를 제어하기 위한 플래그, 인터럽트 원인별로 금지/해제하기 위한 마스크 등을 일괄해서 기억
GR(General Purpose Register) : 범용레지스터, 컴퓨터의 중앙 처리 장치(CPU)내에 있는 레지스터 중에서 계산 결과의 임시 저장, 산술 및 논리 연산, 주소 색인 등의 여러 가지 목적으로 사용될 수 있는 레지스터
MQ 누산기(Multiplier Quotient Register) : 곱셈을 연산할 때 누산기 하나로는 전체 결과를 기억할 수 없으므로 누산기를 보조하여 함께 실행한 부분을 기억한다.
명령어 형식의 종류
1. 0-주소 명령
- 스택 구조로 되어 있으며, 단항 연산에 적합
- 연산 자료 위치와 결과 입력 위치가 이미 결정되어 있으므로 주소가 필요 없다.
- 정보 전달을 위해 하나의 번지부가 필요하며, 명령어가 많아질 우려가 있다.
OP-Code (스택 구조)
2. 1-주소 명령
- 하나의 누산기를 이용하여 모든 데이터를 처리한다.
- CPU 내에 누산기(Accumulator)가 반드시 존재해야 한다.
- 연산자와 주소부로 구성되어 있다.
OP-Code | Operand (누산기 구조)
3 2-주소 명령
- 가장 일반적인 명령 형식으로 범용 레지스터 구조이다.
- 연산자와 2개의 주소부로 구성된다.
- 연산 후 결과 자료를 1번째 Operand에 기억시키므로 원래의 입력 값을 보존할 수 없다.
- Operand-1에 연산 데이터를 표현하고 연산 결과를 Operand-2에 기억시킨다.
OP-Code | Operand-1 | Operand-2 (범용 레지스터 구조)
4. 3-주소 명령
- 범용 레지스터 구조로 연산자와 3개의 주소부로 구성된다.
- 연산 후 입력 값을 보존할 수 있는 반면 수행 시간이 길다.
- 명령어의 길이가 길어서 특수 목적에 이용된다.
- Operand-1에 피연산 데이터를, Operand-2에 연산 데이터를, Operand-3에 연산 결과를 기억한다.
OP-Code | Operand-1 | Operand-2 | Operand-3 (범용 레지스터 구조)
연산자 전달기능
Load - 메모리에서 CPU로 데이터가 이동
Store - CPU에서 메모리로 데이터가 이동
Move - 레지스터에서 레지스터로 데이터가 이동
산술논리연산장치(ALU)
- 산술, 논리 연산을 하는 중앙 처리 장치내의 회로이다.
- 기억 장치로부터 필요한 데이터를 입력받아 레지스터를 이용하여 산술 연산광논리연산, 관계연산 등을 실행
- 연산 장치에서 산술 연산인 가감승제는 가산기, 보수를 만드는 회로, 시프트 회로에 의해 이러우진다.
주소지정방식
1. 묵시적 주소 지정 : Stack을 이용하는 0 주소 지정 방식에 사용
2. 즉시 주소 지정 : Operand에 실제 데이터를 기억
3. 직접 번지 지정 : 주소 참조 1회
4. 간접 번지 지정 : 메모리 참조 2회이상
5. 상대 번지 지정 : PC + 유효주소
처리속도 1 -> 5 (1이 빠름)
명령어 길이 1->5(1이 길다)
구분 |
RISC |
CISC |
처리 속도 |
빠름 |
느림 |
명령어 종류 |
적음 |
많음 |
전력 소모 |
적음 |
많음 |
프로그래밍 |
복잡 |
간단 |
설계 |
간단 |
복잡 |
ARM
- 32bit RISC 프로세서
- PSR 레지스터는 현재 프로그램이 실행되는 모드를 나타내는 레지스터(CPSR:현재상태, SPSR:이전상태, User/Systm 모드의 CPSR을 저장하는 용도로 사용됨)
- FIQ : ISR 중에 특별히 빨리 처리되어야 하는 인터럽트 처리 모드
- IRQ : 일반적인 인터럽트 처리 모드
메모리 종류
1. 메인 메모리 : DRAM -> 컴퓨터에서 작업중인 내용을 저장
2. 레지스터 : CPU 안에 내장되어 있어서 연산을 위한 저장소 제공
3. 캐시 : SRAM -> CPU와 램사이에서 중간 저장소 역할
레지스터->L1캐시->L2캐시->메인메모리-저장장치(플래시,디스크) 순으로 속도가 느려지고 용량이 커진다.
MMU는 가상 메모리와 메모리 보호 기능을 하드웨어적으로 구현하며 MPU는 메모리 보호 기능을 구현
페이지 교체 알고리즘
FIFO : 가장 오래 존재하는 페이지를 선택하여 삭제
LRU(Least Recently Used) : 가장 적게 사용된 페이지를 선택하여 교체(계수기나 스택 알고리즘을 사용)
LFU(Least Frequently Used) : 각 페이지마다 참조 계수기를 두어 사용 빈도가 가장 적은 페이지를 선택하여 교체
최적화 기법(Optimal) : 앞으로 가장 오랫동안 사용되지 않을 페이지를 선택하여 교체
DMA
- CPU를 거치지 않고 입출력 장치와 메모리 사이에 보다 빠른 데이터를 직접 전송하는 방식
- 컴퓨터 프로그램의 개입 없이 개별 채널을 사용하여 전송 작업을 수행
- 중앙 처리 장치의 부담을 최소화하고 입출력 동작의 속도 향상을 목적
- 대량전송모드(Burst) : 버스 사용권 획득 후 버스 사이클을 독점, 고속의 입출력 장치를 대상으로 데이터들을 블록 단위로 전송
- 사이클 스틸(Cycle Stealing) : 저속의 입출력 장치에서 볼 수 있는 한 워드를 데이터 전송 단위로 한다. 하나의 워드 전송 후 버스 사용권을 CPU 에게 돌려준다.
버퍼링
- 속도가 느린 I/O 장치와 CPU 사이의 속도 차를 줄이기 위해 Buffer를 이용
- CPU가 입출력 버퍼를 사용하여 데이터를 한번에 입출력하면 효율적으로 사용할 수 있다.
폰노이만 아키텍쳐
- 명령어와 데이터를 위한 메모리 인터페이스가 하나
- 명령어를 읽을 때 데이터를 읽거나 쓸 수 없다.
- IBM 계열 C, ARM7등
하버드 아키텍쳐
- 명령어를 위한 메모리 인터페이스와 데이터를 위한 메모리 인터페이스가 분리
- 명령어를 읽을 때 데이터를 읽거나 쓸 수 있어서 성능이 우수
- 버스 시스템이 복잡하여 설계가 복잡
- ARM9, ARM10
입출력 장치 제어
- 표준 I/O 맵 방식 : 전용의 입출력 장치 주소 공간을 할당하여 사용, 인텔의 x86 CPU 계열이 대표적
- 메모리 맵 방식 : 메모리 주소 공간의 일부를 활용하여 사용, 대부분의 임베디드 프로세서에서 사용
버스(Bus)
- 컴퓨터 내에서 CPU와 주기억 장치, 입출력 장치 등의 각종 인터페이스들 사이의 데이터 전송을 위한 통로
- 버스의 위치에 의한 분류는 중앙 처리 장치 내부에서 레지스터를 연결하는 내부 버스와 중앙 처리 장치의 입출력 장치를 연결하는 외부 버스가 있음
'임베디드기사' 카테고리의 다른 글
2017년 임베디드SW기사 실기 (4회차) (2) | 2018.01.23 |
---|---|
펌웨어 (0) | 2017.09.14 |
논리회로 (0) | 2017.09.05 |
댓글