Documente Academic
Documente Profesional
Documente Cultură
Instituto de Computacin
Temas
Sistemas Operativos
Arquitectura de Computadores II
CISC vs RISC
CISC Complex Instruct Set Computers RISC Reduced Instruct Set Computers Caractersticas de CISC
Arquitectura de Computadores II
Hardvard vs Princeton
Memoria comn para almacenar el programa y las variables. Permite la ejecucin de cdigo automodificable. Un nico bus entre la CPU y la memoria.
Arquitectura de Computadores II
Harvard vs Princeton
Harvard
Ejecuta las instrucciones en menor cantidad de ciclos por instruccin, pues logra un paralelismo a nivel de instruccin mayor Cada palabra (datos e instruccin) tiene un tamao adecuado.
Arquitectura de Computadores II
Sistemas Embebidos
Arquitectura de Computadores II
Qu es un Sistema Embebido?
Un sistema embebido (S.E) es un sistema computador destinado a una aplicacin en particular. Los sistemas computadores de propsito general tienen muchas aplicaciones, segn el software que se instale.
Arquitectura de Computadores II
Caracteristicas
Es una combinacin de hardware, software y elementos mecnicos. Especficos para una tarea por lo que son optimizados para la misma.
Arquitectura de Computadores II
Caracteristicas
Arquitectura de Computadores II
Electrodomsticos, perifricos para computadora, control industrial, telfonos celulares, GPS, routers, mp3, mquinas de fotos, consolas de videojuegos, equipos para medicina, canaleras para TV, DVD, autos, entre otros.
Arquitectura de Computadores II
Confiabilidad
Arquitectura de Computadores II
Basados en microcontroladores Basados en System on chip (SOC) / Single board computers (SBC) Hbrido
Arquitectura de Computadores II
Microcontroladores
Arquitectura de Computadores II
Introduccin
(1/4)
Un microprocesador (P) es una CPU en un solo circuito integrado. Un computador es una CPU, ms memoria y puertos de E/S. Un sistema computador es un computador ms perifricos.
Arquitectura de Computadores II
Introduccin
(2/4)
Un microcontrolador (C) es un sistema autocontenido donde el microprocesador, soporte, memoria y entrada/salida se presentan dentro de un mismo integrado.
Power Reset Clocking Power Reset Control Clock & Timing Control Store Processor RAM
Arquitectura de Computadores II
I/O Ports
Introduccin
(3/4)
Caractersticas
Fciles de utilizar. Bajo costo. Flexibles. Debido a su tamao puede incluirse dentro del dispositivo que gobierna.
Arquitectura de Computadores II
Introduccin
(4/4)
Firmware
Rutinas de software almacenadas en memoria ROM. Software que se encuentra embebido en un dispositivo de hardware. Es una combinacin de software y hardware.
Arquitectura de Computadores II
Tipos de Microcontroladores
Microcontroladores embebidos de 8 bits. Microcontroladores de 16-32 bits Procesadores de seales digitales (DSP)
Arquitectura de Computadores II
Microcontroladores de 8 bits
(1/3)
Todos los recursos necesarios estn incluidos en el chip. Solo necesitan alimentacin y reloj. Proporcionan control e interfaz con dispositivos externos de manera econmica y programable.
Arquitectura de Computadores II
Microcontroladores de 8 bits
(2/3)
Disponen de:
Reset Reloj Procesador Memoria ROM para el programa e interfaz de programacin Memoria RAM para variables. I/O Pins. Capacidad de debugging Interrupciones I/O analgica Comunicacin serial y/o paralela Interfaz con memoria
Arquitectura de Computadores II
Microcontroladores de 8 bits
(3/3)
Muy poca RAM (decenas de KB). Muy poca velocidad de reloj (decenas de MHZ). Muy utilizados en aplicaciones de control. Bajo costo. Bajo consumo energtico (algunos A).
Arquitectura de Computadores II
Es una categora relativamente nueva de microprocesadores. El objetivo de los DSP es tomar un seal analgica y calcular una respuesta apropiada. Ejecutan a gran velocidad para permitir el control en tiempo real.
Arquitectura de Computadores II
Fabricantes
Intel
8048 8051 (Intel y Otros) 80186, 80186 y 80386 EX. PIC 68HC11 (Motorola y Toshiba) 683xx AVR
Microchip
Motorola
Atmel
Arquitectura de Computadores II
Registros de E/S
Son los componentes ms utilizados del microcontroladores . Los microcontroladores disponen de registros para controlar los dispositivos de E/S. Espacios
Arquitectura de Computadores II
Reset
Permite llevar al microcontrolador a un estado conocido. Inicializando todos los componentes del C. Power on reset (POR). Brown out reset (BOR).
Arquitectura de Computadores II
Los C estn diseados para ejecutar con poco soporte externo para el reloj del sistema. Los Cs corren en el entorno de las decenas de megahetz. Existen diversos mtodos para proporcionarle el reloj al C:
Arquitectura de Computadores II
Es utilizado para prevenir cadas del software. En entornos con ruido elctrico, puede ocurrir que el PC del C se vea afectado y ste comience a ejecutar en un lugar indeterminado. El circuito WDT se encarga de resetear el C si el registro WD se desborda.
Arquitectura de Computadores II
Alimentacin
Minimizar el consumo de corriente es un tema a tener en cuenta. Hay que tener en cuenta el consumo:
Arquitectura de Computadores II
Timers
Se utiliza para trabajar con eventos de tiempo. Contadores: cuentan acontecimientos que suceden en el exterior. Temporizadores: controlan perodos de tiempo.
Arquitectura de Computadores II
E/S Digital
La comunicacin del C con el mundo se da a travs de sus pines de E/S. Estos pines son compartidos con mdulos del C. Pueden configurarse con entrada o salida.
Arquitectura de Computadores II
E/S Analgica
ADC, es utilizado para procesar las entradas analgicas. El C puede incluir convertidores y comparadores analgicos. DAC, es utilizado para generar salidas analgicas.
Arquitectura de Computadores II
Comunicacin
Arquitectura de Computadores II
Arquitectura
Arquitectura de Computadores II
Desarrollo de software
Arquitectura de Computadores II
IDE
Arquitectura de Computadores II
Assembler
Arquitectura de Computadores II
Arquitectura de Computadores II
Multitasking Scheduling Context Switching Respuestas en tiempo a eventos del mundo. Comunicacin entre procesos. Stack TCP/IP Ejemplos: Salvo, FreeRTOS, C/OS, ...
Arquitectura de Computadores II
Consuman menos por transistor Cuesten menos por transistor Sean ms rpidos
Se refiere a integrar todos los componentes de un computador u otro dispositivo electrnico en un chip. La principal diferencia con un C es la memoria disponible. En general, los SOC corren sistemas operativos (S.O) tradicionales.
Arquitectura de Computadores II
Una SBC es un sistema computacional completo realizado en una sola placa que utiliza un SOC. Un SOC por si solo no puede funcionar, necesita de alimentacin, acondicionamientos de seales, conectores, y algun controlador adicional. Ms pequeas, energticamente ms eficientes, y con mayores posibilidades de E/S que un sistema tradicional.
Arquitectura de Computadores II
La arquitectura de hardware para los sistemas embebidos por lo general difiere a la de los sistemas de escritorio.
ARM, MIPS o PowerPC son muy utilizados por su bajo consumo y buena performance. X86 no es tan frecuente, pero tambin es utilizado. Almacenamiento en flash Tengo que tener en cuenta que los ciclos de borrado son limitados, para alargar la vida til de la memoria. Existen tcnicas para gastarIIde forma Arquitectura de Computadores
Cantidad de RAM limitada (desde unos pocos MB a varias decenas de MB) Velocidad de CPU inferior a sistemas de escritorio. Varios buses de interconexin (I2C, SPI, USB, serial) y puertos de E/S.
Arquitectura de Computadores II
Arquitectura de Computadores II
(1/3)
Procesador: Atmel AT91SAM9G20 ARM9 CPU Frecuencia de reloj: 400Mhz RAM: 64 MB Flash: 8 MB USB host: 2 USB device: 1 UART: 4 GPIO: 80 A/D: 4ch 10 bits I2C: 2 SPI: 2 Tensin: 5V Corriente: ~70 mA Costo: 139 euros
Arquitectura de Computadores II
(2/3)
Ethernet Conector para pantalla touch screen Serial port (debug) Slot mini-sd RTC 1 Switch y 1 Led
Arquitectura de Computadores II
(3/3)
Arquitectura de Computadores II
SBC BeagleBoard C4
(1/3)
Procesador: OMAP3530DCBB72 ARM Cortex-A8 Frecuencia de reloj: 720 MHZ RAM: 256 MB Flash: 256 MB USB host: 1 + 1OTG GPIO: 28 I2C: 1 SPI: 1 Tensin: 5V Corriente:350 mA Costo: 149 dolares
Arquitectura de Computadores II
SBC BeagleBoard C4
(2/3)
Salida HDMI Entrada/Salida audio Salida Super Video DSP Conector JTAG RS232 header Slot SD/MMC Conexin para LCD GPU con soporte para OpenGL
Arquitectura de Computadores II
SBC BeagleBoard C4
(3/3)
Sistemas operativos soportados: Angstrom Symbian Debian Ubuntu Android QNX WinCE Gentoo
Arquitectura de Computadores II
Esta orientada a aplicaciones multimedia donde puede ser sacado provecho al DSP. Posee una cantidad de RAM considerable, lo que posibilita ejecutar un manejador de ventanas (X server). La lnea ARM Cortex AX es utilizada en muchos dispositivos comerciales: Ipad, archos5, pandora, Sony Ericsson Satio. Muy bajo consumo y alto rendimiento. No necesita disipacin mecnica (coolers).
Arquitectura de Computadores II
Pocos puertos de E/S. No posee Ethernet onboard. No posee UART No posee Wifi onboard
Arquitectura de Computadores II
Muchos puertos de E/S RTC Bajo consumo/No necesita disipacin 2 puertos USB Ethernet onboard Muy adecuada para aplicaciones de control y robtica embebida.
Arquitectura de Computadores II
Costo Ausencia de DSP Poca memoria Flash No esta diseada para multimedia No posee wifi onboard
Arquitectura de Computadores II
GNU/Linux: Sistema operativo libre compuesto por el kernel (Linux) y herramientas del sistema GNU. El Kernel es el componente del S.O. que nos abstrae del hardware y nos facilita su uso. Actualmente es el sistema operativo de uso general ms utilizado en sistemas embebidos.
Arquitectura de Computadores II
El Kernel Linux
Originalmente no fue pensando como un sistema operativo embebido. Escrito originalmente para la arquitectura IA-32, portado por primera vez a procesadores Motorola. El proceso fue costoso, lo que implic un rediseo de la arquitectura para hacerlo fcilmente portable. Este cambio abri la puerta para ser portado a otras arquitecturas.
Arquitectura de Computadores II
El Kernel Linux
Soporta numerosas arquitecturas (2.6.33): alpha, blackfin, h8300, m32r, microblaze, parisc, score, um, arm, cris, ia64, m68k, mips, powerpc, sh, x86, avr32, frv, m68knommu, mn10300, s390, sparc, xtensa.
Arquitectura de Computadores II
Requerimientos mnimos
CPU de 32 bits CPU's sin MMU son tambin soportados mediante el proyecto uClinux. 4 MB RAM
Arquitectura de Computadores II
Reutilizacin de bibliotecas de software existente. Nos permite centrarnos en dar valor agregado a una solucin y no en reinventar la rueda. Calidad. Uso de lenguajes de programacin de mayor nivel de abstraccin (Java, Python, Lua). Posibilidad de prototipar y debugear en un PC muchos de los componentes del sistema. Brinda portabilidad de mi sistema a otras arquitecturas (independecia tecnolgica).
Arquitectura de Computadores II
Extensiones para manejo de tiempo real. Mantenibilidad Puedo auditar el cdigo fuente. Libertad de modificar el cdigo fuente. Menor costo en licencias. Acceso ms sencillo al software y a las herramientas. Permite hacer frente a los requerimientos cada vez ms complejos impuestos por el mercado. Herramientas de desarrollo independientes de la plataforma
Arquitectura de Computadores II
Algunos drivers propietarios solo existen para versiones viejas del kernel y el fabricante no publica sus fuentes. Algunos Sistemas Embebidos basados en GNU/Linux toman un fork del kernel vainilla y nunca integran sus cambios. Muchas veces no tengo opcin de que distribucin usar. Puede ocurrir que ni siquiera exista una distribucin (usar Buildroot, OpenEmbedded).
Arquitectura de Computadores II
RTOS: S.O con la habilidad de brindar el nivel requerido de servicio en un perodo de tiempo acotado (POSIX 1003.1b) Con el tiempo Linux fue incorporando parches RT, como los timers de alta resolucin. Es raro tener restricciones de tiempo blandas que un Kernel Vanilla no pueda proveer (Latencia de peor caso 1ms). Si se necesita menor latencia usar parches para el Kernel: PREEMPT_RT Ofrece una latencia mxima de 100us
Arquitectura de Computadores II
Cada vez se dispone de hardware con mayores prestaciones, que incluso permite ejecutar un S.O de proposito general con RT y seguir siendo econmicamente viable. El mercado le exige ms requerimientos a los dispositivos embebidos.
Arquitectura de Computadores II
Hoy en da los S.E. tienen ms puntos en comn con los sistemas de propsito general que en el pasado. Herramientas de desarrollo de mayor nivel de abstraccin. Reutilizacin de software y perifricos utilizados en sistemas de proposito general Es necesario contar con equipos interdisciplinarios.
Arquitectura de Computadores II
Arquitectura de Computadores II
Componentes de Software
Cross-toolchain: Compilador que corre en la mquina de desarrollo, pero genera cdigo para el sistema embebido. Bootloader: Iniciado por el hardware. Responsable de la inicializacin bsica, cargar y ejecutar el kernel. Kernel Linux: Contiene el manejo de los procesos, memoria, red, drivers y provee servicios para las aplicaciones de usuario. Biblioteca de C: Interfaz entre el Kernel y las aplicaciones (glibc, Clibc). Bibliotecas y aplicaciones: reutilizadas o desarrolladas por nosotros.
Arquitectura de Computadores II
Bibliografa
http://www.linuxfordevices.com/ http://free-electrons.com/ http://beagleboard.org http://eshop.acmesystems.it Embedded Linux System Design and Development (Auerbach, 2006)
Arquitectura de Computadores II
Preguntas
Arquitectura de Computadores II