4. – INTRODUCCIÓN A LOS 4. – MICROPROCESADORES Introducción a los microprocesadores Arquitectura de un sistema microprocesador q p Diagrama de bloques Lenguaje de programación Funcionamiento de un microprocesador Introducción a los microprocesadores Comparación de números Sistemas basados en microprocesadores Hardware fijo + Software Hardware fijo + Software ASIC SC Hardware fijo Microprocesadores (Propósito general) ( p g ) Microcontroladores DSPs (Procesado di digital de señal) i ld ñ l) PLDs / FPGAs / G Hardware flexible Introducción a los microprocesadores Elementos constituyentes de un sistema microprocesador Comparación de números • Tres partes claramente diferenciadas: Hardware Software Conjunto de instrucciones que ejecuta el sistema. Circuitos físicos que implementan el sistema: CPU, Memoria, Periféricos, Buses. • Programas • Estructura Von Neumann • Estructura Harvard Firmware Es un software grabado en la estructura electrónica del sistema microprogramable. • BIOS (B i (Basic System) en los PCs I Input/Output t/O t t Introducción a los microprocesadores Campos de aplicación Comparación de números • Control y supervisión de procesos industriales C t l i ió d i d ti l Control de maquinaria Control de maquinaria Robótica Automatización de procesos Comunicaciones industriales • Tratamiento de información Procesado de imagen y de audio Procesado de imagen y de audio Televisión y radio digital Telefonía móvil Introducción a los microprocesadores Campos de aplicación Comparación de números • Electrónica de consumo • Electrónica del automóvil • Instrumentación Arquitectura de un sistema microprocesador Diagrama de bloques Comparación de números CPU (Central Procesing Unit): Es el núcleo del sistema y controla el resto de componentes. Memoria: Almacena las instrucciones y los datos necesarios para la CPU. Puertos de entrada/salida: Permiten la comunicación del sistema con el exterior. Buses del sistema (Bus de control, Bus de direcciones y Bus de datos): Permiten la conexión ió de d la l CPU con ell resto t de d componentes t Arquitectura de un sistema microprocesador CPU Comparación de números ALU (Aritmetic Logic Unit): Esta formada por un circuito combinacional complejo que se encarga de realizar las operaciones aritméticas (suma, resta,…), ) ló i lógicas (AND (AND, OR ) OR,…), desplazamientos, etc. PROCESADOR UNIDAD DE CONTROL Máquina de estados Finitos (FSM) DATAPATH ALU Operandos DI (Decodificador de instrucciones) CLK Resultado Registros A0 A1 PC IR A2 A3 Registros de propósito general: Son pequeñas memorias interna, donde se almacenan temporalmente los resultados intermedios de las operaciones. CU (Control Unit): Se encarga de gobernar el funcionamiento global del sistema. Esta formada por un circuito secuencial complejo que se encarga de generar todas las señales de control necesarias, el contador de programa (PC) que indica en que posición de la memoria se encuentra la próxima instrucción a ejecutar, el registro de instrucciones (IR) que almacena la instrucción a ejecutar y el decodificador de instrucciones (DI), (DI) dispositivo que traduce las instrucciones del programa a microordenes para saber los pasos que se deben realizar para la ejecución de la instrucción. Arquitectura de un sistema microprocesador Memoria Comparación de números Circuito Ci it integrado i t d que almacena l i f información ió organizada i d en forma f d de arrays de bits. D7..D0 110 Bus de datos Bus de direcciones Bus de control Bus de direcciones: Bus de direcciones: Selecciona el acceso a una determinada posición de memoria. Selecciona el acceso a una determinada posición de memoria 2n posiciones Bus de datos: Dato a leer o a escribir. Tamaño de la palabra: m bits Bus de control: Habilitación del integrado, selección de operación Bus de control: Habilitación del integrado, selección de operación Capacidad de la memoria: 23 x 8 bits = 64 bits=8 Bytes (2n x m bits) Arquitectura de un sistema microprocesador Clasificación de las memorias en función de la volatilidad de los datos: Comparación de números RAM (Random Access Memory):Volatiles Bits almacenados en un semiconductor latch o flip‐flop SRAM (Static RAM) RAM bits de datos almacenados en un condensador. DRAM (Dynamic RAM) Memorias RAM estáticas (SRAM ): No pierden información mientras están alimentadas. Memorias de datos en sistemas pequeños. pequeños Memorias RAM dinámicas (DRAM): Necesidad de refresco para mantener la información. Mayor capacidad que SRAM y mayor tiempo de acceso que SRAM. Memorias de datos en sistemas grandes (PC’s) Arquitectura de un sistema microprocesador Clasificación de las memorias en función de la volatilidad de los datos: Comparación de números ROM (Read Only Memory): No volatiles ROM (Read Memory): No volatiles ROM Mask ROM PROM (Programable ROM) UV EPROM UV EPROM (Ultraviolet EPROM) EEPROM (Electrically Erasable PROM) FLASH (Electrically Erasable PROM) Memorias ROM Los datos son permanentemente almacenados en la memoria durante el proceso de fabricación fabricación. Memorias PROM (Programmable ROM ) Usuario define contenido mediante un programador “Funde” Usuario define contenido mediante un programador. Funde fusibles fusibles Solamente se pueden programar una vez (OTP ) Arquitectura de un sistema microprocesador Clasificación de las memorias en función de la volatilidad de los datos: Comparación de números ROM (Read Only Memory): No volatiles ROM (Read Memory): No volatiles Memorias UV EPROM (Ultraviolet Erasable Programmable ROM ) Programación igual que PROM Programación igual que PROM Posibilidad de restaurar la información. Borrado mediante luz Ultravioleta. Memorias EEPROM (Electrically Erasable and Programable EEPROM (Electrically Erasable and Programable ROM ) ROM ) Se programan y se borran de forma eléctrica. Se pueden programar y borrar desde la aplicación final. Útiles para guardar parámetros de configuración Útiles para guardar parámetros de configuración. Tiempo de lectura rápido. Como memoria RAM. Tiempo de escritura lento. Orden milisegundos. Memorias FLASH Similares a las memorias EEPROM Ti d it h EEPROM Tiempo de escritura mucho menor que EEPROM Mayor capacidad de almacenamiento que EEPROM Arquitectura de un sistema microprocesador Acceso a la memoria Comparación de números Además del bus de direcciones y el bus de datos, para leer o escribir en las memorias , también son necesarias ciertas señales de control. Dependiendo del tipo de memoria, las señales pueden ser : Read Enable (RE) y Write Enable (WE): las señales se envían desde la CPU a la memoria para controlar la transferencia de datos hacia o desde la memoria. Chip Select (CS) o Chip Enable (CE): se utilizan como parte de la decodificación de las direcciones. Todos las otras señales de entrada son ignoradas si la señal CS no está activada. Output Enable (OE): está activa durante una operación de lectura, permite conectar la memoria al bus de datos. Arquitectura de un sistema microprocesador Líneas de control de memorias Comparación de números Líneas de control de una memoria RAM /CS H L L RD/WE X H L E/S de datos Tri-estado Salida dato Entrada dato Modo Inhabilitada Lectura Escritura Líneas de control de una memoria RAM con las entradas de lectura y escritura separadas /CE H L L L L /OE X L H L H /WE X H L L H E/S de datos Tri-estado Salida dato Entrada dato Entrada dato Tri-estado Modo Bajo consumo Lectura Escritura Escritura Inhabilitada Líneas de control de una memoria EPROM /OE L H X /CE L L H Salidas Dato Tri-estado Tri-estado Modo Lectura Salidas inhibidas Bajo consumo Arquitectura de un sistema microprocesador Ampliación de la memoria Comparación de números Para ampliar la capacidad de la memoria, es necesario agregar una línea de dirección Para ampliar la capacidad de la memoria es necesario agregar una línea de dirección como se muestra en este ejemplo RAM 2M 8 Address bus 21 bits RAM 1 1M 8 EN 20 bits 8 bits Control bus 8 bits 20 bits Data bus RAM 2 1M 8 EN 8 bits Sólo uno de los circuitos integrados estará activado en función de la línea de Sól d l i i i d á i d f ió d l lí d agregada al bus de direcciones. Arquitectura de un sistema microprocesador Puertos de entrada/salida Comparación de números • Permiten la comunicación del sistema con el exterior. • Los microcontroladores llevan incorporados periféricos sencillos. • Periféricos de carácter digital y de carácter analógico. fé d á d l d á ló • Ej Ejemplos de periféricos: l d ifé i – Pulsadores,, Finales de carrera,, Teclados,, Puertos p para comunicaciones ((RS‐232,, CAN, ETHERNET,...), Indicadores luminosos (Diodos Led), Display Numéricos, Visualizadores alfanuméricos, Temporizadores, Convertidores A/D y D/A, .... Arquitectura de un sistema microprocesador Puertos de entrada/salida Comparación de números Comunicación con un periférico Controlador de periférico Controlador CPU Interfaz con CPU Interfaz con Periférico PERIFÉRICO • Periféricos de muy diversa naturaleza – Necesidad de homogeneizar la comunicación con los diversos periféricos. periféricos • Controlador de periférico – Interfaz con periférico: Circuitos de activación y control. – Interfaz con CPU: Registros para comunicación con periférico. Arquitectura de un sistema microprocesador Buses Comparación de números – Bus de direcciones • Selecciona la dirección de memoria o I/O con la que se / q intercambia la información. – Bus de datos • Líneas por las que se intercambia la información. íneas por las que se intercambia la información. – Bus de Control Bus de Control • Señales auxiliares de gobierno y sincronización Arquitectura de un sistema microprocesador Clasificación Comparación de números Según ú su funcionalidad: f ld d CISC (Complex Instruction Set Computer): Poseen un juego complejo de más de 80 instrucciones, algunas de las cuales requieren muchos ciclos de reloj del sistema it para ejecutarse). j t ) RISC (Reduced Instruction Set Computer): Con un juego reducido de instrucciones, disponiendo de pocas instrucciones que se ejecutan normalmente en un ciclo de reloj y que permiten optimizar el hardware del sistema). SISC (Specific Instruction Set Computer): Con un juego específico de instrucciones o CPU destinadas a aplicaciones muy concretas cuyo juego de instrucciones, instrucciones se adapta a la aplicación concreta a la que se destina el sistema). Según su arquitectura interna: Según su arquitectura interna: Von Neumann: Se acceden a los datos y a las instrucciones a través del mismo bus de datos y direcciones. direcciones Harvard: Este modelo, tiene la CPU conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes. Arquitectura de un sistema microprocesador Estructura von Neumann Comparación de números BUSES Datos Direcciones Control CPU Memoria Programa (ROM) Memoria Datos (RAM) I/O Las instrucciones y los datos son almacenados en memorias a las que accede la CPU a través de un único bus de direcciones, de datos y de control. t é d ú i b d di i d d t d t l Arquitectura de un sistema microprocesador Estructura Harvard Comparación de números BUSES Datos Datos Datos Direcciones Control CPU BUSES Memoria Programa (ROM) Memoria Datos (RAM) I/O Datos Direcciones Control Instrucciones Diagrama de bloques Ejemplos Comparación de números Diagrama de bloques de un PC BUSES Periféricos Datos Modem Direcciones Control Ratón Impresora Monitor CPU Memoria I/O Teclado DVD Diagrama de bloques Ejemplos Comparación de números Diagrama de bloques de un teléfono móvil Interfaz RF TX RX LCD Teclado Audio Codec SIM Memory card Antena Lenguajes de programación Comparación de números Lenguaje de Lenguaje de alto nivel Lenguaje ensamblador Lenguaje máquina La mayoría de la programación se hace en un lenguaje de alto nivel, nivel que se puede ejecutar en diferentes máquinas. Es más fácil de escribir y mantener programas de alto nivel El lenguaje ensamblador fue desarrollado para hacer una interfaz más sencilla entre la CPU y el programador, programador es una traducción directa del lenguaje máquina mediante literales.. Un programa en lenguaje ensamblador es más eficiente aunque debe ser escrito para un eficiente, procesador específico y requiere más tiempo para el desarrollo de programas. El lenguaje máquina consiste en especificar las instrucciones a ejecutar mediante 0’s y 1’s, es el lenguaje que entiende la CPU. Lenguajes de programación Comparación de números Programa Compilador Los lenguajes de alto nivel se pueden ejecutar en cualquier máquina, el código fuente se convierte en código de máquina mediante un compilador. PROGRAMA FUENTE LENGUAJE DE ALTO NIVEL PRINT “HOLA” PROGRAMA TRADUCTOR PROGRAMA COMPILADOR PROGRAMA OBJETO LENGUAJE MAQUINA 11101001 01100101... Lenguajes de programación Comparación de números Programa Ensamblador El lenguaje ensamblador debe ser escrito para un procesador específico, esto implica que el programador debe entender la estructura de registros del procesador. El programa ensamblador convierte el código fuente en código máquina ensamblador convierte el código fuente en código máquina. PROGRAMA FUENTE PROGRAMA TRADUCTOR LENGUAJE ENSAMBLADOR PROGRAMA PRINT “HOLA” ENSAMBLADOR PROGRAMA OBJETO LENGUAJE MAQUINA 11101001 01100101... Lenguajes de programación Comparación de números Formato de una instrucción INSTRUCCIÓN CÓDIGO OPERACIÓN Indica a la CPU que tipo de operación debe realizarse (suma, resta, etc.) OPERANDOS Indica con que datos se deben realizar las operaciones, o bien, las direcciones de donde se deben obtener dichos datos. datos Clasificación de las instrucciones: Instrucciones aritméticas/lógicas: Realizan las operaciones aritméticas o lógicas entre dos operandos, tales como la suma, división, suma lógica, etc. Instrucciones de transferencia de datos (entrada/ salida): Estas instrucciones "ordenan" el paso de información entre distintos dispositivos del sistema. Instrucciones de control: Controlan el flujo del programa. Este tipo de i t instrucciones i corresponde d a los l saltos lt condicionales di i l o incodicionales i di i l . Funcionamiento de un microprocesador Fases de d ejecución ó de d una instrucción: ó Comparación de números PROCESADOR UNIDAD DE CONTROL CLK DECODE ALU EXECUTE MEMORIA FETCH Decodificación de la instrucción FETCH Lectura de la instrucción DECODE EXECUTE Ejecución de la instrucción Funcionamiento de un microprocesador Comparación de números PC 0 1 DI Tipo de instrucción IR Instrución 1 Fases de una instrucción: 1‐FETCH 2‐DECODE 3 EXECUTE 3‐EXECUTE Memory 0 1 2 3 Instrución 1 Instrución 2 Instrución 3 Instrución 4 Funcionamiento de un microprocesador Comparación de números Sincronización entre CPU y periféricos • La transferencia entre la CPU y los periféricos no se puede realizar en cualquier momento. • CPU y periféricos trabajan de forma independiente (no sincronizada). sincronizada) • No se pueden transmitir datos hasta que ambos están listos. p q • Para sincronizarlos existen dos técnicas: – Sincronización mediante encuesta “Polling” – Sincronización mediante interrupción Funcionamiento de un microprocesador Comparación de números Técnicas de sincronización • Sincronización por encuesta o polling. – La La CPU interroga al periférico para determinar si está listo para realizar CPU interroga al periférico para determinar si está listo para realizar la transferencia. – La CPU está a la espera de que el periférico esté listo. • Sincronización por interrupción. – La CPU ejecuta su programa. Cuando el periférico está listo se lo indica, Interrumpe a la CPU. Entonces la CPU abandona su tarea y atiende al periférico. ti d l ifé i Funcionamiento de un microprocesador Comparación de números Sincronización por encuesta o polling • La CPU interroga al periférico para determinar si está listo para realizar la transferencia. • La L CPU estáá a la l espera de d que ell periférico ifé i estéé listo. li Ventajas: • El control de flujo de la transferencia es totalmente por software (es ( mas sencillo programar el sistema). ) • No es necesario Hardware adicional. Inconvenientes: i • La CPU pierde mucho tiempo consultando a los periféricos (si sobra tiempo p de p proceso no es p problemático). Funcionamiento de un microprocesador Comparación de números Sincronización por encuesta o polling Algoritmo con un periférico é Lectura del estado NO Algoritmo con varios periféricos é Lectura estado 1 Listo? Listo? SI Transferencia NO Lectura estado 2 SI Transferencia Listo? SI Transferencia NO Lectura estado 3 Listo? . . . NO SI Transferencia Funcionamiento de un microprocesador Comparación de números Sincronización por interrupción Prog. Prin: RSI RSI: 1 2 INT 1 INT RETI 2 1 1. La CPU ejecuta su programa. programa Cuando el periférico está listo se lo indica, indica Interrumpe a la CPU. Entonces la CPU abandona su tarea y atiende al periférico. 2. La CPU pasa a ejecutar la rutina de Servicio de Interrupción (RSI). 3 3. Una vez finalizada esta rutina retorna a la ejecución del programa principal en el punto donde lo había dejado. Funcionamiento de un microprocesador Comparación de números Sincronización por interrupción • Para conocer el punto donde debe regresar la CPU guarda automáticamente esta dirección antes de ejecutar la RSI. • Las RSI finalizan siempre con la instrucción de retorno de interrupción (RETI). V t j Ventajas: • La CPU puede realizar otras tareas mientras el periférico no está listo. Inconvenientes: • La programación de la CPU es más compleja ya que no se conoce a priori, i i ell flujo fl j de d ejecución j ió de d instrucciones. i t i • Es necesario utilizar Hardware adicional. Funcionamiento de un microprocesador Comparación de números DMA (DIRECT MEMORY ACCESS) La transferencia de datos entre el módulo de E/S y la CPU se realiza a través de la memória. Así que se realiza como consecuencia de la ejecución de instrucciones. Con ell objetivo C bj ti de d liberar lib a la l CPU de d esta t tarea t se utiliza tili ell acceso directo a memoria DMA. • Permite transferencia directa de datos entre el módulo de E/S y la memoria, liberando completamente a la CPU. • Debe existir un módulo adicional que sea capaz de tomar el control de los buses para acceder directamente a la memoria como si fuese la CPU: controlador DMA. Funcionamiento de un microprocesador Controlador DMA Comparación de números Operación del controlador DMA: • Solicita la correspondiente petición a la CPU. • La CPU pone en estado de alta impedancia su conexión a los buses del sistema. • Cuando finaliza la E/S, el DMA genera una interrupción y la CPU vuelve a tomar control. control CPU