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

Slides:



Advertisements
Similar presentations
Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
Advertisements

ARM core UNIT 03 로봇 SW 교육원 조용수. 학습 목표 PIC, AVR, 8051 ARM 이란 ? ARM 특징 ARM and Thumb ARM Cortex-M0 Interrupt Vector 2.
1/37 Chapter 4: 프로세서 성능과 휴대성을 위한 하드웨어 © The McGraw-Hill Companies, Inc., 세기의 가장 중요한 발명품 : 마이크로 프로세서 일상생활에 널리 사용됨 프로그램에 의한 적응성.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
2.1 컴퓨터 시스템의 구성 2.2 컴퓨터 시스템의 정보 표현 2.3 중앙처리장치 2.4 저장장치 2.5 컴퓨터 주변기기
Understanding of Ubiquitous & Computers Plus
마이크로 컨트롤러 Microcontroller.
AVR.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
AMBA BUS Protocol의 이해 (AMBA 2.0 Specification)
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
컴퓨터 하드웨어 Computer Hardware
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
제 2장 컴퓨터 구조.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
마이크로프로세서 메모리 및 입출력장치 인터페이스
하드웨어 3 : RAM.
마이크로프로세서(Microprocessor,µP)
CPU (central Processing Unit)
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
10장 주변장치 (PIO) Slide 1 (of 28).
3.1 기억장치와 저장장치의 구분 3.2 기억장치 3.3 자기 저장장치 3.4 광 저장장치 3.5 백업의 중용성
3장. 컴퓨터의 기억장치 학번 : 이름 : 김현화.
7장 : 캐시와 메모리.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
컴퓨터 구조학 정보보호학과.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
임베디드시스템 2013년도 가을학기.
연습문제풀이/도움말.
DSP와 TMS320F28X의 이해
DSP와 TMS320F28x의 이해.
6장. 기 억 장 치 Lecture #6.
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
컴퓨터 구조.
컴퓨터 중앙처리장치, 기억장치, 입력장치 및 출력장치를 알아보자.
Chapter 02 시스템 구조(System Structure)
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Chapter 10. Interrupt.
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
DSP 소개 및 TMS320LF2407A 6th hyaoo.
정보(information) 데이터(data) 어떤 사물에 대한 소식이나 자료 가공된 데이터
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제 2장 컴퓨터동작의 기본 개념.
전자의료시스템 및 실습 C-언어 구 환 경희대학교 전자정보대학 동서의료공학과.
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
Computer System Architecture
CHAPTER 03. 컴퓨터 구조 컴퓨터 시스템의 구성과 동작 원리_컴퓨터 시스템에 대한 근본적 이해
Programmable Logic Device
Chapter 4 The Von Neumann Model.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer System Architecture
13장 CTC and DMA Slide 1 (of 10).
Chapter 12 Memory Organization
Lecture #6 제5장 기억장치 (1).
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture 7 7-Segment LED controller using u-controller
제 1 강 컴퓨터의 구조.
Presentation transcript:

임베디드 하드웨어 Lecture #6

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

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

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

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

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

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

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

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

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

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

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

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

메모리 - 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.

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

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

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

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

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의 주변 장치를 가리킨다

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

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

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

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

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

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

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