임베디드시스템하드웨어구조 2. 임베디드시스템하드웨어 / 프로세서 SRAM/ROM CPU timer interrupt UART GPIO DMA USB I/F LAN ROM Flash SRAM 2 - 마이크로프로세서를사용한시스템 - 마이크로콘트롤러를사용한시스템 microprocessor timer interrupt DMA CPU micro-, SoC timer interrupt DMA SRAM/ROM UART GPIO USB I/F LAN SRAM/ROM UART GPIO USB I/F LAN ROM Flash SRAM ROM Flash SRAM 3 4
임베디드프로세서 AVR AVR 인텔 8051 인텔 386 ARM7, ARM9, ARM Cortex A7/A8/A9, Xscale AE3200 MIPS PPC (PowerPC) S390 2K * 16 Program Memory Instruction Register Instruction Register Control lines AVR CPU Program Counter Direct addressing Indirect addressing 8 비트 AVR RISC core 를내장한 Atmel 사의 micro Status & Control 32 * 8 General Purpose Registers ALU 128 * 8 Data SRAM 256 * 8 EEPROM 20 I/O Lines Interrupt Unit SPI Unit Serial UART 8-bit Timer /counter 16bit Timer /Counter with PWM Watchdog Timer A/D Converter Analog Comparator 5 6 -AVR 의종류 - Arduino 내장된메모리와외부접속장치규모에따라분류 tiny AVR (ATtiny..) 512B ~16KB program memory, 6~32 pin, 제한된입출력제어기 ( 용도 ) 메인마이컴보다여러회로를하나로구현한보조역할의칩 mega AVR (ATmega..) 4~512KB program memory, 28~100 pin, 추가된입출력제어기 확장명령어집합 ( 용도 ) 대형이고입 / 출력핀이많은시스템. 무선전화기, 프린터용제어기, FAX, CD-ROM 제어기, 통신장비 XMEGA (ATxmega..) 16~384KB program memory, 32/44/64/100 pin, 저전력, 고성능, 풍부한 peripherals (DMA, USB, LCD 제어기, Crypto 엔진등 ), advanced ADCs AVR32 : 32 비트 AVR UC3 마이크로콘트롤러 (AT32UC3..) 오픈소스기반의 AVR 기반마이크로콘트롤러보드 2005 년에 Italy 의 Interaction Design Institute Ivrea 에서학생들의교육을위한프로젝트로시작 Arduino 프로그램 ( 스케치 ) 은 C/C++ 언어로작성 Arduino 제어와입출력장치제어를위한 library 들이제공됨 많은수의간단한입출력장치들을입수가능 Arduino USB ATMega328P 사용 Arduino Mega ATMega2560 사용 7 8
8051 마이크로콘트롤러 80386EX Embedded Microprocessor 1980 대초부터현재까지사용되고있는 Intel 사의 8 비트 micro 모뎀, 타자기, 게임기등에광범위하게사용됨 현재도 Atmel, Maxim, NXP, TI, Cypress 등많은회사에서호환제품출시 Intel 80386SX core 를내장 large software 기반 Interrupt Control 4KByte ROM 128 byte RAM Timer1 Timer0 CPU 버스제어부 8-bit 병렬 I/O 포트 4 개 직렬포트 P0 P1 P2 P3 TxD RxD 9 10 ARM ARM Architecture 의종류 영국 ARM (Advanced RISC Machine) 사에서설계한 RISC CPU core 반도체회사 /SoC 제조사에서주변장치를추가하여 SoC 형태로판매 Apple, Atmel, Broadcom, Cypress, Freescale, Nvidia, NXP, Qualcomm, Samsung, ST Microelectonics, Texas Instruments 32bit RISC Architecture 간단하고도강력한명령어지원 32bit ARM 명령과 16bit Thumb 명령을제공 Jazelle core 를확장한경우 8bit Java byte 코드도실행가능 저전력소모 Fast interrupt 지원 빠른인터럽트처리를위해별도의 fast 인터럽트방식제공 fast 인터럽트를위한별도의레지스터를가지고있어서비스루틴 (Interrupt Service Routine) 을작성할때레지스터를저장하고복구하는시간을줄일수있다 Thumb ARMv8 32/64-bit ARMv7 Cortex ARM1176 Java Enhanced DSP 11 12
ARM Architecture 의종류 (2) Cortex Application Processors Cortex Application Processors (Cortex-A..) 복잡한운영체제를수행시킬수있는성능제공, MMU 내장 Linux, Android/Chrome, Windows CE/Embedded 등 single-core 또는 multi-core 내장 optional NEON multimedia processing blocks and advanced Floating Point execution units. Applications Smartphone Smartbook & Netbooks ebook Readers Digital TV Set-top Box & Sattellite Receiver Home Gateways High-End Printers 등 13 14 Cortex Embedded Processors ARM-based processor Samsung S3C6410 Cortex-M series processors (Cortex-M..) - embedded have been developed primarily for the micro domain where the need for fast, highly deterministic, interrupt management is coupled with the desire for extremely low gate count and lowest possible power consumption. Applications: Micros, Mixed signal devices, Smart sensors, Automotive body electronics and airbags Cortex-R series processors (Cortex-R..) real-time however have been developed for deeply embedded real-time applications where the need for low power and good interrupt behaviour are balanced with exceptional performance and strong compatibility with existing platforms. Applications: Automative braking systems, Powertrain solutions, Mass storage, Networking & Printing ARM1176 ARMv6KZ 15 16
Samsung S5C110 ARM Cortex A8 based Mobile Application Processor Samsung Exynos 4210 ARM Cortex A9 (dual core) 17 18 - Samsung Exynos 5420 ARM Cortex A15 (quad core) + ARM Cortex A7 (quad core) - Samsung Exynos 7420 64-bit ARM Cortex A57 (quad) + ARM Cortex A53 (quad) Galaxy S5 Galaxy S6 19 20
ARM-based processor Intel PXA255 ARM-based processor Marvell PXA320 Now Marvell PXA255 PXA270 PXA300/310 PXA320 XScale core 21 22 Marvell ARMADA610 Qualcomm Snapdragon Krait Snapdragon 에서사용하는 ARM-based CPU Cortex-A15 와유사한구조 (ARMv7-A instruction set) Galaxy S5 23 24
- Snapdragon 820 ARM 기반소형보드 BeagleBone Kryo CPU 64-bit ARMv8-A instruction set ARM Cortex-A53 과유사한구조 Beagle Board Beaglebone Black Hexagon DSP - TI OMAP3530 사용 (ARM Cortex-A8, TI DSP core 내장 ) - 리눅스지원 - TI AM3358 Sitara processor (ARM Cortex-A8) Galaxy S7 25 26 ARM 기반소형보드 : Raspberry Pi Raspberry Pi Raspberry Pi 2 / Raspberry Pi 3 - Broadcom BCM2835 사용 (ARM1176JZ-F, VideoCoreIV multimedia 프로세서내장 ) - 리눅스지원, Phython 언어 - Broadcom BCM2836 (Cortex A7) / BCM2837 (Cortex A8, 64-bit) 사용 TI AM335x 27 28
PowerPC 계열프로세서 PowerPC: IBM, Apple, Motorola( 현재 Freescale) 3 사가공동개발 ( 예 ) AMCC(AppliedMicro) 사의 PPC405GP embedded processor - NXP freescale MPC5748 Automotive & Industrial Control and gateway 용 powerpc MCU NXP( 네덜란드회사 ) 2015 년 freescale 을인수 29 30 Freescale(now NXP) ColdFire/68K ColdFire - Motorola 680x0 프로세서구조를 Freescale 사에서 embedded 시스템용으로개선한프로세서, 68K 와 assembly source compatible MIPS 계열프로세서 Cisco 라우터, Sony Playstation 등에사용됨 ( 예 ) Cavium Network 사의 OCTEON II CN68xx Freescale MCF51Qx 31 32
MIPS 계열프로세서 (2) Tilera NetLogic 사의 XLR500 scalable communication processor MIPS64 기반, 최대 8 MIPS core, 각 core 는 4-way multi-threaded 16-100 개의 VLIW processor cores(tiles) 를 imesh on-chip network 으로연결한고성능임베디드프로세서 33 34 Processor core 내장 FPGA Cyclone V ARM based SoC Altera Excalibur ARM922T core 내장 FPGA Xilinx Virtex 4 PowerPC405 core 내장 FPGA Xilinx Microblaze Xilinx사의 FPGA에내장될수있는 softcore processor Altera NIOS-II Altera사의 FPGA에내장될수있는configurable processor Altera Cyclone V SoC, Arria 10 SoC dual-core ARM cortex-a9 MPCore 내장 FPGA Xilinx Zynq-7000 SoC dual-core ARM Cortex-A9 Processor 내장 FPGA 35 36