ELECTRÓNICA DIGITAL TMA Introducción al Microprocesador
• Este es un chip cuya función principal es la de buscar,
decodificar y ejecutar instrucciones. Una instrucción es una orden que indica al procesador lo que debe hacer con los datos que tiene. • Un microprocesador recibe instrucciones y datos de la memoria para ser ejecutados, en otras palabras, busca los datos y lleva a cabo la orden de la instrucción. Introducción al Microprocesador Las partes principales de un microprocesador son: • Registros para el almacenamiento temporal de direcciones y datos; • Unidad Aritmética lógica (ALU) que es capaz de realizar operaciones matemáticas y lógicas; • Una unidad que recibe y decodifica instrucciones; • Un medio para controlar y sincronizar las operaciones dentro del sistema. Sistema mínimo basado en microprocesador. Un sistema mínimo está basado en la estructura de von Newman. Sus bloques básicos son los siguientes: El microprocesador.
Diagrama de bloques general de un Microprocesador.
El microprocesador. Ejemplo de un Microprocesador de 8 bits el 6502. Unidad de Memoria. • La memoria se emplea para dos funciones básicas: • Almacenamiento de las instrucciones que constituyen el programa. Las instrucciones se codifican mediante su Código de Operación (COP), formado por uno o varios Bytes. • Almacenamiento de los datos y variables del programa. Normalmente agrupados en paquetes de 8 bits (Byte), 16 bits (Word) o 32 bits (Long Word). • La velocidad (o el tiempo de respuesta) de la memoria debe ser compatible con el Microprocesador empleado. Unidad de Memoria. Normalmente se emplean memorias basadas en semiconductores: • RAM, memorias de lectura/escritura para almacenamiento de variables y datos del programa. Son volátiles. • ROM (EPROM, EEPROM), memorias de sólo lectura para almacenamiento programas fijos (aplicaciones, rutinas básicas de sistemas operativos, etc.) y constantes. Son no volátiles. Unidad de Memoria. Interacción entre el Microprocesador y la Memoria. Unidad Central de Proceso (CPU). Está formada por los siguientes bloques: • Registros internos • Unidad de Control • Unidad de Proceso u Operativa Registros Internos de la CPU • Los registros de la CPU son bloques de Biestables que permiten el almacenamiento de los datos básicos con los cuales va a trabajar la CPU durante la ejecución de cada instrucción. Unidad Central de Proceso (CPU). Ejemplo de registro: Unidad Central de Proceso (CPU). Los registros pueden escribirse, leerse e intercambiar información entre ellos por medio de los Buses Internos de la CPU. Se puede intercambiar información entre registros, cargar registros, descargarlos, etc.
Existen diferentes tipos de registros:
• De Desplazamiento, empleando biestables D encadenados. Permiten hacer rotaciones y desplazamientos de bits (x2, %2, E/S serie, etc.) • Contadores, con biestables T encadenados. Permiten medir tiempos, temporizar, etc. • Registros Índices o de Direcciones, permiten el acceso estructurado a datos de memoria • Registros de datos, para almacenamiento de variables del programa • Registros especiales, contador de programa (Program Counter, PC), puntero de pila (Stack Pointer, SP) Unidad Central de Proceso (CPU). Los registros básicos en un microprocesador son: • Contador de Programa (PC): Este registro almacena la dirección absoluta de la siguiente instrucción de máquina que se ejecutará. • Tiene un papel central en el control de la secuencia de las instrucciones de máquina que ejecuta el procesador. Su contenido es afectado por las instrucciones de bifurcación y de salto así como también por las interrupciones.
• Registro de Instrucciones (IR): Almacena el código de la instrucción que
se esta ejecutando. La unidad de control extrae el código de operación del IR y también determina la secuencia de señales necesarias para realizar el procesamiento que requiere la instrucción. Unidad Central de Proceso (CPU). Los registros básicos en un microprocesador son: • Registro de Estado: Almacena el estado de ciertas condiciones del procesador. Cada bit representa una bandera booleana que indica el estado de una condición. Las banderas o bits se fijan durante la operación del procesador.
• Apuntador de Pila (SP): Apunta a la parte superior de la pila
del procesador, o sea que contiene la dirección de la entrada más reciente de la pila. Unidad Central de Proceso (CPU). Los registros básicos en un microprocesador son: Registros de propósito general: Estos registros se usan en forma por lo general para almacenar datos e información de direccionamiento. Dentro de esta categoría de registros se encuentran: los acumuladores y los registros índice. Los primeros se utilizan para almacenar resultados de operaciones aritméticas y los segundos para el direccionamiento indexado o indirecto. Unidad Central de Proceso (CPU). • Unidad de Control Su misión principal consiste en interpretar y ejecutar las instrucciones que le llegan desde la memoria: Unidad Central de Proceso (CPU). • Unidad de proceso El bloque principal es la ALU o Unidad Lógico-Aritmética, que permite realizar un las operaciones aritméticas y lógicas indicadas por las instrucciones del programa. • El secuenciador (UC), instruido por el código de la instrucción en curso, activa las líneas de selección de la ALU para realizar la operación. Unidad Central de Proceso (CPU). Unidad de proceso • El Registro de Estado esta formado por bits denominados banderas (flags) que se ponen a 1 ó 0 de acuerdo con el resultado obtenido. Algunos bits típicos son: • Z, bit zero, se pone a 1 si el resultado fue nulo. • C, bit carry, se pone a 1 si hubo acarreo de orden superior • V, bit overflow, se pone a 1 si hubo desbordamiento • I, bit de interrupción; Este bit es independiente del resultado. Escribiendo un 1 en él por medio de la instrucción correspondiente se pueden inhibir la interrupción exterior enmascarable. Diagrama general de un sistema basado en un Micro P de 8 bits Realización de una instrucción La mayoría de las operaciones realizadas por un microprocesador implican el movimiento de datos. El código del programa (un conjunto de instrucciones almacenado en ROM o RAM) debe ser recuperado desde la memoria antes de la ejecución. La acción de buscar un código de instrucción (o valor de datos) de la memoria implica una operación de lectura mientras que la acción de mover datos de el microprocesador a una ubicación de memoria involucra una operación de escritura. Realización de una instrucción Cada ciclo de funcionamiento de la CPU se conoce como ciclo de la máquina. Las instrucciones del programa pueden requerir varios ciclos de máquina (típicamente entre dos y cinco). El primer ciclo de máquina en cualquier ciclo consiste en una búsqueda de instrucción (la instrucción el código se lee de la memoria) y se lo conoce como ciclo M1. Y los ciclos subsecuentes M2, M3, y así, dependiendo del tipo de instrucción que se está ejecutado. Realización de una instrucción • La realización de una instrucción se lleva a cabo en dos fases: Fase de Búsqueda • Es común a todas las instrucciones. Se inicia en el contador de programa (PC), que contiene la dirección de memoria donde se encuentra el código binario de la instrucción. • Esta dirección se coloca en el registro de direcciones de la CPU y de ahí a la memoria a través del bus de direcciones. • Una vez decodificada la dirección en la memoria, su contenido se traslada al bus de datos hacia el registro de Instrucciones de la Unidad de Control. • En este momento finaliza la fase de búsqueda. Realización de una instrucción Fase de Búsqueda Realización de una instrucción Fase de ejecución • En esta fase se decodifica la instrucción dentro de la unidad de control. Se busca su código de micro-Instrucciones en la memoria interna de la CPU y se activan las señales correspondientes del secuenciador para ejecutar la instrucción completa. • Durante la fase de ejecución los buses externos del sistema no son utilizados por la CPU. Pueden ser empleados por otros dispositivos externos para transferir datos. Realización de una instrucción Fase de ejecución Realización de una instrucción • Las instrucciones que constituyen el programa se almacenan en memoria en paquetes de 8 bits (Bytes). Normalmente de la forma siguiente: • Byte 1: es el código de operación (COP ó OPCODE) que indica la operación de la que se trata y su función. Por ejemplo operación lógica AND. • Byte 2 y siguientes: normalmente nos dan la información necesaria para acceder al dato sobre el que va a trabajar la instrucción. Pueden ser el propio dato, la dirección de memoria donde se encuentra el dato, etc. las diferentes posibilidades para acceder a ese dato se denominan modos de direccionamiento del m P. • Los COPs suelen ser del mismo tamaño que el bus de datos del micro. En los micros de 8 bits (6502, Z80, 8088) los COPs son de 8 bits. En los micros de 16 bits (68000, 8086, Z8000) los COPs son de 16 bits. Realización de una instrucción
Diagrama de tiempo del ciclo de ejecución de una instrucción en un Mp
Realización de una instrucción Fases de búsqueda y ejecución en un Microprocesador Aplicación de microprocesadores en aeronaves El Microprocesador AMD 29050 ha sido uno de los más utilizados por fabricantes de aviónica El fabricante Honeywell utilizó el núcleo del 29050 (familia 29K) como base de una aplicación utilizada en su paquete de Aviónica Integrada Versátil (VIA). La VIA proporciona una variedad de funciones integradas de aviónica, como el registro de datos, la visualización de datos, y control de subsistemas críticos. Cada sección de la VIA forma un Módulo de procesamiento central (CPM) y cada CPM está basado en un par de procesadores AMD 29050. Aplicación de microprocesadores en aeronaves Las CPU están configuradas en un sistema conocido como «Voting». Todas las salidas (dirección, datos y control) pasan a través de un comparador, si cada CPU envía las mismas señales, el sistema continúa. Si las señales no coinciden, entonces se presenta una condición de falla y el sistema entra en un modo de error en el que interrumpe el procesamiento, registra el error y luego procede a recuperar el sistema. Aplicación de microprocesadores en aeronaves
Diagrama de bloque del Basic Core Processor Modules (CPM)
Aplicación de microprocesadores en aeronaves El set de instrucciones de la familia 29K fue diseñado para optimizar la programación y reducir el tiempo de ejecución evitando la ejecución de instrucciones redundantes. La familia 29K se basa en la arquitectura de Computadora de conjunto de instrucciones reducido (RISC). Esencialmente, esto significa que relativamente se usan pocas instrucciones y estas instrucciones se estructuran de forma simple. Estas instrucciones se ejecutan de forma mucho más rápida. Aplicación de microprocesadores en aeronaves Otra característica importante de la familia 29K es el uso de la canalización de instrucciones o «Pipelining». Cada procesador tiene una tubería de cuatro etapas que consiste primero en una etapa de búsqueda, seguida de una decodificación de instrucción, luego las etapas de ejecución y reescritura. Las instrucciones (con algunas excepciones) se ejecutan en un ciclo único. Las versiones de gama alta de la familia 29K incluido el 29050 utilizado en aplicaciones criticas de aviónica, usan una arquitectura Harvard en la que se agrega un bus de instrucciones, con lo que se logra la separación de las instrucciones del bus de direcciones. Las instrucciones son alimentadas al procesador por medio de un bus de instrucción separado. Aplicación de microprocesadores en aeronaves