LECCIÓN N 13 MICROCOMPUTADORES Introducción: Conceptos básicos Sistema microcomputador Unidad Central de Proceso (CPU) 13-1 Introducción Por qué surgen los microprocesadores? Circuitos digitales Avance técnico Circuitos más complejos Especialización Alto coste Circuitos específicos con alto coste de desarrollo Difícil justificación utilidad/coste Nueva aplicación Nuevo diseños Es posible un circuito para varias tareas? 13-2 1
Introducción Solución: Microprocesadores Circuito de propósito general Programable Sistema computador Hardware Componentes físicos Software Programa que controla su funcionamiento 13-3 Secciones primarias CPU Entrada/Salidas CPU Entrada Salida Almacena: datos programa Ejecuta instrucciones del programa Dispositivos para comunicarse con el exterior 13-4 2
Comunicación dentro del microcomputador Bus de datos (longitud de palabra) Bus de direcciones Bus de control La comunicación tiene lugar a través de buses Bus conjunto cables que permiten flujo información CPU Entrada Salida Bus direcciones Bus datos Bus control 13-5 Registros, direcciones FFF formada por registros, o posiciones de memoria Cada registro tiene un número de identificación dirección Registro 1 0 0 1 1 0 0 1 Dirección 005 004 003 002 001 000 Capacidad de direccionamiento: Número de posiciones de memoria que el procesador puede especificar. Determinada por el nº de bits del bus de direcciones (NA). 2 NA Ejemplo: Bus de direcciones 10 bits puede direccionar 2 10 =1024 (1k) posiciones de memoria 13-6 3
Salidas triestado Para evitar que dos registros impongan tensiones distintas en un bus, lo que produciría a un cortocircuito se utilizan salidas triestado X 1 X 2 X 3 Bus Si X 1 = 1 y X 2 = 0 en la línea del bus aparecería un conflicto, para evitarlo salidas triestado Salidas triestado A C = 1 Y = A (salida = entrada) C = 0 Y = Z (salida = alta impedancia) X 1 X 2 X 3 c 1 c 2 c 3 c Y C 2 =1 Seleccionamos qué dato (X 2 ) queremos poner en el bus 13-7 Almacenamiento de datos y programa Libre Dirección 1004 1003 Contenido 1005 operando operando opcode Ejemplo, si el ancho de la memoria es de 1byte: instrucción de 3 bytes Programa 1002 1001 operando opcode instrucción de 2 bytes 1000 opcode instrucción de 1 byte Datos Numéricos Enteros (con/sin signo) Punto fijo/flotante Texto Opcode (código de operación): define la operación que ha de ejecutar una instrucción. Operando: información que acompaña al opcode (dato, dirección) 13-8 4
Estructura de un microprocesador Bus Datos Interno Bus Datos Externo Acumulador Reg Instr SP PC R0 R1 RN ALU Control y Decodificación Banderas Bus Direcciones Interno Bus Direcciones Externo 13-9 Estructura de un microprocesador Acumulador Registro de uso general Mayor parte de operaciones sobre él o relacionadas con él Muy ligado con la ALU Registros índice Almacenan información sobre direcciones Normalmente se pueden incrementar o decrementar de forma automática para acceso secuencial de direcciones 13-10 5
Estructura de un microprocesador Registro instrucciones Registro que almacena el opcode para su ejecución Conectado a unidad de control y decodificación de instrucciones Contador de programa Almacena la dirección de memoria del siguiente byte de programa. Al finalizar la ejecución de una instrucción, el contador del programa apunta a la siguiente instrucción a ejecutar. Se incrementa cada vez que se extrae un byte, señalando al siguiente de manera automática. 13-11 Estructura de un microprocesador Unidad Aritmético tico Lógica L (ALU) Realiza operaciones aritméticas y lógicas necesarias para ejecutar distintos opcodes Resta, suma, incremento, decremento AND, OR, XOR Desplazamiento izquierda, derecha, rotación de palabras de datos Registro de estado (Banderas) Relacionado con la ALU Indican estados de operaciones Existen reglas de cuando cambian Existen instrucciones que dependen de banderas saltos Ejemplo Z (Zero) se pone a 1 si el resultado de una operación es cero y a cero si el resultado es distinto de cero 13-12 6
Estructura de un microprocesador Unidad de control y decodificación Corazón del procesador Extrae de forma secuencial instrucciones y las ejecuta Ciclo de Búsqueda Secuencia fija de señales de control Objetivo: pone el opcode en el registro de instrucciones opcode Registro Instrucciones Decodificador de Instrucciones Ciclo de Ejecución Después de decodificar la instrucción se genera la secuencia apropiada de señales de control para poder ejecutarla. Esta secuencia de señales es el ciclo de ejecución. Depende de cada instrucción. 13-13 Búsqueda y ejecución de una instrucción. Ejemplo LDA 3F 1 byte Cargar acumulador con dato 3F Ciclo de Búsqueda 1 CP(CF01) AB (Address Bus) CP 3F LDA CF03 CF02 CF01 CF00 2 Habilita señal de lectura en memoria LDA DB (Data Bus) 3 DB( LDA ) RI 4 CP =CP+1 (CF02) 13-14 7
Búsqueda y ejecución de una instrucción. Ejemplo El código de la instrucción se decodifica y se lanza la secuencia de señales apropiada Ciclo de Ejecución 5 CP(CF02) AB (Address Bus) 6 Habilita señal de lectura en memoria 3F DB (Data Bus) 7 DB(3F) A 8 CP =CP+1 (CF03) El contador del programa se queda apuntando a la siguiente instrucción a ejecutar. 13-15 Estructura de un microprocesador Puntero de pila Registro especial que poseen la mayoría de microprocesadores. Almacena dirección que apunta a la posición actual de memoria de la pila. Hay instrucciones cuyo opcode origina tratamiento de información en la posición definida por el apuntador de pila. pila pila pila SP 1000 SP 1001 A SP 1000 Push A Pull Introduce A Incrementa SP Decrementa SP Extrae valor 13-16 8
Tipos de memoria Las memorias son dispositivos capaces de almacenar información, que se puede leer o modificar por el procesador cuando éste ejecuta una instrucción de lectura o escritura en memoria. Primaria (RAM, ROM, acceso rápido) y secundaria (disco duro o unidades de disco, acceso relativamente lento). RAM (Random( Access Memory) de Acceso Aleatorio. Suele almacenarse información que debe cambiarse durante la ejecución de un programa. El tiempo de acceso a cualquier dato es el mismo. Es volátil, sin alimentación de cc. se pierden los datos. Tipos de RAM (dos técnicas diferentes): RAM estática (Biestables). La información se mantiene siempre que haya alimentación. RAM dinámica (Matriz de carga/descarga de condensadores). Necesita refresco, es decir, actualizar el valor de los condensadores. 13-17 Tipos de memoria ROM (Read( Only Memory) de sólo lectura. El procesador no puede escribir en ella. No volátil. Almacenan programas o información que no deba cambiar. Programados por el fabricante del dispositivo por litografía. PROM (Programmable( Read Only Memory) ROM programable por el usuario. Una sola programación. EPROM (Erasable( and Programmable Read Only Memory) PROM que se puede borrar (rayos ultravioletas, ventana de mica) y volver a programar por medio de un programador EPROM. EEPROM (Electrically( Erasable and Programmable Read Only Memory) EPROM que se puede borrar y volver a programar eléctricamente sin quitarla de su sitio en el circuito electrónico. 13-18 9
Estructura de una memoria 00 1 0 1 0 01 Bus direcciones N a bits Direcciones 2 Na bits 0 1 0 0 1 0 0 1 10 11 DEC A 1 = 0 A 0 = 1 Selecciona la línea 01 0 0 1 0 Lectura/Escritura CONTROL D 3 D 2 0 1 D 1 D 0 0 0 Bus datos N d bits 13-19 Dispositivo típico de memoria Bus de direcciones Bus de control Lectura Escritura CS Vcc (alimentación) Tierra Bus de datos Ejemplo: 1 kbytes Si la longitud de palabra de la memoria es de 8 bits, se necesitan 10 bits para direccionar 1 kbytes (1k direcciones x 8 bits de datos = 1 kbytes) Si la longitud de palabra de la memoria es de 16 bits, se necesitan 9 bits para direccionar 1 kbytes (512 direcciones x 16 bits de datos =1 kbytes) CS (Chip Select): Habilita la selección del chip, cuando se encuentra deshabilitado el dispositivo no responde al resto de señales de control. 13-20 10
Configuración de la memoria Mapa de memoria Configurar mapa de memoria Bus datos 8 bits ROM 2 kbytes EPROM 2 kbytes RAM 4 kbytes 1FFF RAM 4Kbytes RAM Tamaño 4 kbytes Líneas bus direcciones 12 líneasl Direcciones A0 A11 1000 0FFF 0800 07FF 0000 EPROM 2Kbytes ROM 2Kbytes EPROM ROM Total 2 kbytes 2 kbytes 8 kbytes 11 líneasl 11 líneasl 13 líneasl A0 - A10 A0 - A10 A0 - A12 8 kbytes = 2 3 2 10 13 líneas 13-21 Configuración de la memoria Decodificación n de direcciones Mapa de memoria 12 11 A 12 A 11 RAM 4Kbytes EPROM 2Kbytes ROM 2Kbytes 1FFF 1000 0FFF 0800 07FF 0000 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 RAM EPROM ROM 13-22 11
Configuración de la memoria Circuito decodificador de direcciones A12 Solución 1 CS RAM A 12 A 11 A11 CS EPROM 1 1 1 0 RAM CS ROM A12 CS RAM 0 1 EPROM Solución 2 A11 E 0 en S 1 S 0 CS EPROM CS ROM 0 0 ROM DEC 13-23 Configuración de la memoria Esquema de memoria con conexión n de buses Bus de direcciones A12 CS A0-A11 Bus de datos A11 RAM R/W D0-D7 Decodificador de direcciones CS A0-A10 EPROM D0-D7 R Señal escritura sólo en RAM CS ROM A0-A10 D0-D7 R 13-24 12
Periféricos de E/S típicos Tipo E/S paralelo E/S serie Temporizadores y contadores Perro guardián (watchdog) Convertidores A/D y D/A Sirven para Control y comunicaciones (entrada, salida, bidir) Comunicaciones Control (en general) Datado (en particular) Control de la ejecución correcta de un programa Adquisición y generación DSP: Digital Signal Processing Ejemplos (estándares) Centronics (impresoras) UART, USART, USB, I2C, FireWire, CAN, etc. Controladores específicos Discos duros, disquetes, etc. SCSI, IDE, ATAPI, VGA,... 13-25 Puertos y registros de Entrada/Salida Puerto de E/S Circuitería que permite leer y/o gobernar señales externas. Diferentes tipos: E/S paralelo, E/S serie, E/S analógica, controladores,... Registros de E/S up Mem E/S Señales externas Direcciones Datos Control Registros asociados a los puertos de E/S. Cada puerto de E/S puede tener asociados varios registros (o un registro afectar a varios puertos). Existen registros asociados a los datos (las señales a controlar) y al control del flujo de información (el modo de operación). Los registros de E/S se acceden mediante instrucciones de lectura/escritura o de entrada/salida. Puertos de E/S paralelo Puerto de E/S en el que se controlan varias señales externas al mismo tiempo. El tamaño (nº de bits) del puerto suele coincidir con la longitud de palabra del up. Pueden ser de entrada, salida, o programables (E/S) 13-26 13
Puertos de E/S en el 68HC11 Los puertos de E/S en el 68HC11 pueden operar en varios modos Puertos de E/S Puerto B: sólo salidas, también usado como bus de direcciones. Puerto C: programable, también usado como bus de datos/direcciones. Puerto E: sólo entradas, compartido con el CAD. Puerto A: Mixto, especializado en tratamiento de interrupciones. Puerto D: programable, compartido con la E/S serie. 13-27 Microprocesadores y Microcontroladores Microprocesador (up): circuito de computación integrado en un chip Microprocesador ALU CU REGS Dispositivos de Entrada y Salida (interruptores, relés, teclado, ratón, pantalla, disco, etc.) Microcontrolador (uc): Dispositivo integrado que incluye un microprocesador, memoria y dispositivos periféricos (dispositivos de entrada/salida, convertidores A/D, puertos de comunicación, etc.). Microcontrolador CPU (micro) ALU E/S CU REGS (interruptores, relés, teclado, ratón, pantalla, disco, etc.) 13-28 14