Presentation is loading. Please wait.

Presentation is loading. Please wait.

임베디드 하드웨어 Lecture #6.

Similar presentations


Presentation on theme: "임베디드 하드웨어 Lecture #6."— Presentation transcript:

1 임베디드 하드웨어 Lecture #6

2 목 차 임베디드 시스템 구조 임베디드 하드웨어 구성 요소 버스 폰 노이만 및 하버드 아키텍처 임베디드 프로세서
CISC 및 RISC 구조 메모리 – RAM, ROM, Cache, MMU I/O 디바이스 및 I/O Addressing 인터럽트 DMA

3 임베디드 시스템 구조 소프트웨어 하드웨어 응용프로그램 컴파일러 운영체제 어셈블러 명령어 집합 구조 프로세서 메모리
입/출력 시스템 데이터 패스와 제어 디지털 설계 회로 설계 트랜지스터

4 임베디드 하드웨어 구성 요소 마이크로 프로세서(마이크로 컨트롤러) 메모리 – RAM, ROM, Cache, MMU
주변 장치 – 입출력 디바이스, 타이머, 카운터, DMA 등 버스(Bus)

5 버스(Bus) 프로세서, 메모리 및 입출력 장치 등을 연결하여 데이터를 이동시키는 선들의 집합(a set of wires)
데이터 버스, 주소 버스, 제어 버스 등으로 나누어짐 프로세서 메모리 입출력 장치 버스

6 폰 노이만 아키텍처 프로세서 메모리 메모리는 프로그램과 데이터를 동시에 저장 현재 대부분의 마이크로 프로세서가 채택한 구조
address data add r3,r1,r2 프로세서 100 메모리 1000 200 instruction

7 하버드 아키텍처 프로그램 메모리 프로세서 데이터 메모리 프로그램 메모리와 데이터 메모리를 동시에 접근 가능
self-modifying code를 사용할 수 없음 대부분의 DSP(Digital Signal Processor)는 효율적인 데이터 스트리밍을 위하여 이 구조를 사용 100 프로그램 메모리 1000 add r3, r1, r2 address data add r3,r1,r2 프로세서 instruction 데이터 메모리

8 임베디드 프로세서 판매되는 프로세서 중 대부분(약 80%)의 프로세서가 임베디드 시스템용으로 사용 Direct 2%
Embedded Systems 80% Robots 6% Vehicles 12% Direct 2% 8.5B parts per year

9 CISC 및 RISC 구조 CISC - Complex Instruction Set Computer
한 명령어가 많은 일을 수행한다 LOAD에서 STORE까지 모두 한 명령어로 수행한다 프로그램의 길이가 짧다 CPU의 크기가 크다 RISC - Reduced Instruction Set Computer 한 명령어가 하나의 일을 수행한다 LOAD, STORE는 각각 하나의 명령어이다 프로그램의 길이가 길다 CPU의 크기가 작다

10 임베디드 프로세서 연산 작업을 수행 제어 장치(control unit)와 연산부(data path)로 구성
다양한 주변 인터페이스를 포함하는 SoC (System-on-Chip) 형태로 발전 처리 속도, 전력 소비, 가격 뿐만 아니라 개발 환경과의 연관 관계가 매우 중요 주어진 응용에 최적인 프로세서의 선택이 매우 중요 ARM, PPC, MIPS, i386, Alpha, Sparc, m68k SH, CRIS, IA64, PA-RISC 등

11 명령어 사이클 한 명령어(instruction)의 수행은 여러 사이클의 수행으로 나누어짐 (아래는 보기에 불과함)
Fetch: PC(Program Counter)가 가리키는 명령어를 IR(instruction Register)로 이동 Decode: IR에 저장된 명령어의 의미를 파악 Fetch operands: 명령어 수행에 필요한 데이터를 메모리에서 레지스터로 이동 Execute: ALU등을 사용하여 계산을 수행 Store results: 레지스터에 있는 계산된 결과를 메모리로 이동

12 메모리 - RAM Static RAM 속도가 빠르다 기억 밀도가 낮다 (1비트당 4~6 트랜지스터) 시간이 지나도 값이 변하지 않는다 Dynamic RAM 속도가 느리다 기억 밀도가 높다 (1비트당 1개의 트랜지스터) 시간이 지나면 값이 변한다 (주기적인 재생이 필요) 다른 유형: SDRAM(Synchronous), Video RAM(동시에 2개 디바이스에 의하여 access 가능)

13 RAM의 기본 구조 word lines bit lines bit cell sense amplifier address
(4bits) high (2bits) low data (1bit)

14 메모리 - ROM OTPROM(One Time Programmable Read-Only Memory)
Mask ROM, Fuse ROM PROM (Programmable Read-Only Memory) EPROM(Erasable), EEPROM(Electrically), Flash Memory(Block based I/O) Word Line Bit Line Mask ROM Fuse ROM EPROM EEPROM Flash Memory Floating gate Brief tour of computer memory. Storing data and retaining program state were early and fundamental problems in computer development. Tubes arranged as flip-flops very expensive—waste of active devices. Early attempts included delay line approaches (mechanical spring, mercury pool), phosphor state, magnetic domains (core, drums, tape, etc.) Semiconductor memory only became cheap enough around 1970, and was Intel’s first product.

15 캐쉬(Cache) 시스템 CPU 캐쉬 Data object transfer Block transfer 400MHz 10MHz
메모리 10MHz Bus 66MHz 메모리

16 메모리 관리 장치 메모리 관리 장치(Memory Management Unit) 는 논리적인 주소를 물리적인 주소로 변환한다
보호 검사(protection check)수행 CPU 주 메모리 메모리 관리 장치 (MMU) 논리적 주소 물리적

17 I/O Devices 디지털 뿐만 아니라 비 디지털 디바이스도 포함됨 CPU에서는 디지털 인터페이스를 함 프로세서
status reg 프로세서 mechanism data reg

18 I/O Addressing 프로세서는 몇 개의 핀을 사용하여 입출력 장치와 통신한다 Port-based I/O
프로세서는 여러 개의 포트를 가지고 있다 프로그램은 이들 포트를 레지스터처럼 읽고 쓴다 예: P0 = 0xFF; v = P1; // P0 와 P1는 8비트 포트 Bus-based I/O 프로세서는 데이터 버스, 주소 버스, 제어 버스를 통하여 입출력을 한다. 명령어 수행을 통하여 읽기 및 쓰기를 수행

19 Bus-based I/O Memory-mapped I/O I/O-mapped I/O (Standard I/O)
주변 장치 레지스터는 메모리와 같은 주소 공간을 차지한다 예: 주소 버스가 16비트(=64K)인 경우 하위 32K 주소는 실제 메모리 주소를 가리키고 상위 32K 주소는 주변 장치 주소를 가리킨다 I/O-mapped I/O (Standard I/O) 버스에 부가적인 핀(M/IO)이 있어서 이 핀의 값에 따라 주소가 메모리 주소가 되기도 하고 주변 장치 주소가 되기도 한다 M/IO가 0 일 때 주소는 64K의 메모리를 가리키고 M/IO가 1 일 때 주소는 64K의 주변 장치를 가리킨다

20 Memory-mapped vs Standard I/O
Memory-mapped I/O 입출력을 위하여 특별한 명령어가 필요하지 않음 (일반 LOAD, STORE 명령어 사용) Standard I/O 입출력 장치를 위하여 메모리 크기를 희생하지 않음 입출력을 위하여 특별한 명령어가 필요하다, (예: IN, OUT 등) 일반적으로 입출력 장치의 개수가 메모리 크기보다 작기 때문에 입출력 장치의 주소 중 높은 비트 부분이 필요하지 않아서 주소 디코딩 회로가 간단하고 빠르다

21 Timer(타이머) Timer: 시간(time interval) 측정
주어진 시간이 지난 후 이벤트 발생 (예: 신호등의 녹색 신호를 60초 유지) 어떤 이벤트를 입력 시킬 때 (예: 차의 속도를 측정할 때) 카운터(counter)에 클럭(clock)을 입력하여 회로를 만듬 클럭 시간이 10ns일 때 20,000 클럭이 지나가면 200 msec 시간을 측정 16비트 카운터는 65,535 클럭을 셀 수 있으므로 msec 시간 측정 가능 16비트 up 카운터 클럭 출력 top reset 16

22 Counter(카운터) 타이머와 유사하나 클럭의 수를 세는 것이 아니라 주어진 입력 신호 수를 셈 (예: 센서 앞을 지나가는 자동차 수를 셈) 16비트 up 카운터 클럭 16 입력 2x1 mux top reset 출력 모드

23 Watchdog Timer 시스템이 비정상 상태로 가지 않게 하기 위하여 시스템에서 일어나는 다양한 신호를 모니터링 하여 주어진 조건을 만족하면 reset 신호를 발생시킴 전원이 적정 볼트 수준을 벗어날 때 주어진 시간 동안 시스템이 동작하지 않을 때 Watchdog Timer reset in reset out output port: bit 0 reset 프로세서

24 인터럽트 프로세서가 처리할 데이터를 디바이스가 비정기적으로 입력 받는 경우를 가정하면
프로세서가 프로그램을 수행하여 정기적으로 디바이스에 데이터가 입력되었는 지를 점검할 수도 있으나 (=program I/O) 프로세서는 다른 일을 하고 있다가 데이터가 디바이스에 도착하면 디바이스가 프로세서에게 인터럽트를 전달하여 데이터의 입력을 알릴 수 있다 프로세서는 인터럽트 처리를 위하여 추가 핀인 "int", "ack" 등이 필요하다 만약 "int"가 1이면 프로세서는 현재 처리하던 일을 잠시 중단하고 주어진 인터럽트를 처리하는 루틴(ISR: Interrupt Service Routine)을 수행 한 후 이전에 처리하던 일로 돌아와서 수행 (=interrupt I/O)

25 인터럽트 인터페이스 임베디드 시스템의 실시간성 요구에 필수적인 요소 프로세서 mechanism status reg data
interrupt request acknowledge address

26 Direct Memory Access (DMA)
프로세서를 사용하지 않고 메모리와 입출력 장치 사이의 데이터를 이동시키는 방법 입출력 장치는 "DMA 콘트롤러"라고 불리는 특별한 하드웨어의 도움이 필요하다 DMA 콘트롤러는 버스 사이클 스틸링(stealing)을 통하여 프로세서가 다른 일을 수행하는 도중에도 메모리와 입출력 장치 사이의 데이터를 이동시킨다 DMA 콘트롤러는 프로세서가 전달해 주는 명령(예: 메모리 시작 주소, 데이터 바이트 수, 데이터 전달 방향 등)을 받고 이를 독자적으로 수행할 수 있다


Download ppt "임베디드 하드웨어 Lecture #6."

Similar presentations


Ads by Google