Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali Microprocesadores y microcontroladores M.C. Jorge Eduardo Ibarra Esquer jorge.ibarra@uabc.edu.mx Semestre 2012-1 Conceptos básicos n Computadora ¨ Máquina diseñada para procesar, almacenar y recuperar datos ¨ Los datos se almacenan como números ¨ La manipulación de los datos se efectúa aplicando operaciones sobre los números Computadoras n De escritorio n Empotradas Historia 1623 – Wilhelm Shickard diseñó y construyó una máquina para calcular tablas astronómicas. Realizaba sumas y restas de números de 6 dígitos. 1642 – Blaise Pascal construye su calculadora mecánica (Pascalina). Realizaba sumas y restas en complemento a 9. Historia 1671 – Gottfried von Leibniz diseñó la primer calculadora mecánica capaz de realizar las cuatro operaciones básicas. 1801 – Joseph Marie Jacquard inventó un telar mecánico. Es considerada la primer máquina que podía ser programada (por medio de tarjetas de papel perforadas) Historia El retrato de Jacquard fue tejido en seda utilizando el telar que el inventó. Sólo se hacían sobre pedido. Se necesitaron 24000 tarjetas perforadas. Charles Babbage tenís uno de estos retratos, lo que lo inspiró a utilizarlos en su máquina analítica. Historia Diseñada en 1822 para “computar” valores de funciones polinomiales. Utilizaba el método de diferencias finitas. De haberse completado, habría sido compuesta de 25000 partes y pesado alrededor de 15 toneladas. La Máquina Diferencial de Charles Babbage Historia Se trata de una serie de diseños que estuvo realizando hasta su muerte. Podía ser programada por medio de tarjetas perforadas. El diseño consideraba control secuencial, saltos e iteraciones. La Máquina Analítica de Charles Babbage Historia Hollerith inventó una manera de grabar información que podía ser leída por máquinas. Utilizaba tarjetas perforadas. Su primera versión se utilizó para los cálculos del censo de 1890. La Máquina Tabuladora de Herman Hollerith (1890) Historia Utilizadas principalmente a principios del siglo XX. Se basan en cambios contínuos en los valores de fenómenos físicos (eléctricos, mecánicos, hidráulicos) para modelar los problemas que resuelven. Si el problema cambiaba más allá de ciertos límites, se requería realizar reconexiones de sus componentes. Computadoras analógicas Historia Es un dispositivo que manipula símbolos sobre una cinta de acuerdo a una tabla que define ciertas reglas. Se puede adaptar para simular la lógica de cualquier algoritmo computacional. Se trata de un dispositivo hipotético que representa a una máquina computacional. Consite en: - Cinta - Lector (Cabeza) - Tabla finita (Función de transición) - Registro de estado La Máquina de Turing Historia Se le considera como el padre de la ciencia de la computación moderna. La máquina de Turing proporcionó una guía para el funcionamiento de las computadoras digitales actuales. Alan Turing Historia Primer dispositivo de cómputo digital electrónico. (1937) No era programable. Diseñada para resolver sistemas de ecuaciones lineales. La Computadora Atanasoff-Berry (ABC) Historia n Z3 – Primera computadora automática programable funcional (1941) ¨ Electromecánica n Colossus Mark 1 – Primera computadora electrónica digital programable (1943) n ENIAC – Primera computadora electrónica de propósito general (1946) ¨ Turing complete Historia n Tercera generación ¨ Marcada por la invención de los transistores n Mainframes n Minicomputadoras (Basadas en circuitos LSI) n IBM n Cuarta Generación ¨ Circuitos n Intel integrados VLSI 4004 (1971) n Computadoras personales y empotradas Historia n Intel ¨ Fundada en 1968 ¨ Gordon Moore y Robert Noyce ¨ Hasta 1981, su producto principal eran circuitos de memoria SRAM y DRAM ¨ Arquitectura x86 Características n De escritorio ¨ Hardware n n n Procesador Memoria E/S ¨ Software n n n Sistema operativo Múltiples aplicaciones Podemos cambiar de aplicación n Empotrada ¨ Hardware n n n Procesador Memoria E/S ¨ Software n n Puede tener un sistema operativo Aplicación específica Conceptos básicos n Software ¨ Controla la operación y funcionalidad de la computadora Conceptos básicos n Firmware ¨ Está almacenado de manera permanente en la memoria de la computadora ¨ Se ejecuta al encender la computadora ¨ Inicializa los subsistemas de hardware a un estado conocido ¨ Configura la computadora para su correcta operación ¨ Contiene el bootloader Conceptos básicos n Sistema operativo ¨ Controla el funcionamiento de la computadora ¨ Organiza el uso de la memoria y controla los dispositivos de la computadora ¨ No todos los sistemas empotrados utilizan o necesitan un sistema operativo n Aplicaciones ¨ Programas que dan la funcionalidad a la computadora Conceptos básicos n Procesador ¨ Es el componente central de la computadora ¨ Dispositivo electrónico capaz de manipular datos de una manera especificada por una secuencia de instrucciones (opcode o código máquina) ¨ La secuencia de instrucciones es lo que se conoce como un programa n ADD #$34 n AB 34 48 9E EB A0 4F Arquitectura de computadoras n Es la ciencia y arte de seleccionar e interconectar componentes de hardware para crear computadoras que cumplan con ciertos criterios de funcionalidad, desempeño y costo. Arquitectura de computadoras n Es una descripción detallada de: ¨ Hardware – Elementos computacionales, de comunicación y de almacenamiento de datos. ¨ Organización de computadoras – La forma en la que los componentes de hardware interactúan. ¨ Set de instrucciones – La forma en la que los componentes de hardware son controlados. Thisted, 1997 Arquitectura del set de instrucciones (ISA) n Se refiere a la parte del procesador que es visible al programador o al desarrollador de compiladores. ¨ Tipos de datos nativos ¨ Instrucciones ¨ Registros ¨ Modos de direccionamiento ¨ Arquitectura de la memoria ¨ Manejo de interrupciones y excepciones Complex Instruction Set Computer (CISC) n Instrucciones especializadas, muchas de las cuales son rara vez utilizadas. ¨ Múltiples modos de direccionamiento. ¨ Instrucciones de longitud variable. ¨ Sets de instrucciones grandes. Arquitecturas CISC n m68k – Motorola 68000 ¨ Apple Macintosh ¨ HP LaserJet ¨ Sega System 16 ¨ Atari Jaguar ¨ TI-89, TI-92, TI-Voyage Arquitecturas CISC n x86 – Intel 8086 CPU ¨ Procesadores Intel, AMD, Cyrix y otros. ¨ Implementaciones de 16, 32 y 64 bits. ¨ Utilizada por la IBM PC Reduced Instruction Set Computer (RISC) n Conjunto de instrucciones pequeño que permita la implementación de tareas frecuentes de una forma eficiente. ¨ Tamaño de instrucciones fijo ¨ Pocos modos de direccionamiento. Arquitecturas RISC n ARM ¨ Procesadores Kinetis n AVR ¨ Procesadores n PIC ¨ PIC24F (IOIO) n Sparc n PowerPC Atmel (Arduino) Organización de computadoras o Microarquitectura n Se refiere a la forma en la que los componentes del sistema se interconectan e interoperan. n Se representa mediante diagramas de bloques que muestran la relación entre los componentes. Intel 8086 Motorola 68000 Arquitectura de hardware n Consiste de los detalles a bajo nivel de la computadora: ¨ Requerimientos de tiempo ¨ Componentes ¨ Descripciones ¨ Diseño de los circuitos lógico ¨ Requerimientos de voltaje y corriente Taxonomía de Flynn n Single Instruction, Single Data (SISD) n Single Instruction, Multiple Data (SIMD) n Multiple Instruction, Single Data (MISD) n Multiple Instruction, Multiple Data (MIMD) Conceptos básicos n Arquitectura de una computadora Arquitectura Von Neumann Arquitectura Von Neumann Arquitectura Harvard Comparación Conceptos básicos n Microprocesador ¨ Procesador implementado en un solo circuito integrado (registros, unidad de control, ALU, unidad de interfaz de bus) ¨ Se le conoce también como CPU n Microcontrolador ¨ Microprocesador, memoria y dispositivos de E/S incluidos en un solo circuito integrado ¨ Por lo general se utiliza en sistemas empotrados Conceptos básicos n Memoria ¨ Se utiliza para almacenar el software y los datos ¨ La memoria no volátil permite almacenar el software y los datos constantes ¨ La memoria de acceso aleatorio (volátil) se utiliza para almacenar datos que están siendo manipulados por un programa Conceptos básicos n Espacio de memoria Conceptos básicos n Dispositivos de E/S (Periféricos) ¨ Permiten que el microprocesador se comunique con el mundo exterior para intercambiar datos ¨ Hay tres formas de hacer dicho intercambio: n E/S Programada n E/S controlada por interrupciones n Acceso Directo a Memoria DMA Conceptos básicos n Clasificación ¨ Paralela ¨ Serial ¨ Analógica ¨ De tiempo de interfaces E/S Conceptos básicos n Interrupciones ¨ Son una técnica para distraer al procesador del programa que esté ejecutando, para que atienda algún evento que se presente ¨ Le evitan al procesador el tener que estar verificando el estado de cada dispositivo de E/S presente en el sistema Sistema basado en microprocesador Sistema basado en microcontrolador