ESTRUCTURA DE MICROPROCESADORES Introducción a la arquitectura i8086 Profesor Ing. Johan Carvajal Godínez
AGENDA DE LA CLASE HISTORIA DEFINICIONES ANTECEDENTES MICROCOMPUTADORA INTRODUCCION AL 8086
HISTORIA (1) 1930: Transistor MOS es ideado teóricamente por el alemán Julius von Edgar Lilienfeld 1949 : el ingeniero alemán Werner Jacobi (Siemens AG) completa la primera solicitud de patente para circuitos integrados (No se pudo Fabricar) 1958: El primer CI fue construido por Texas instrument
HISTORIA (2) 1960-1970: Se desarrollan los conceptos de micro-programa, micro-código, tecnología de fabricación 1970: El Microprocesador F14 CADC (militar) Esto introdujo un concepto novedoso que en la actualidad se conserva: Lógica programable integrada en un circuito 1971-1974: i4004
DEFINICIÓN El microprocesador es un circuito integrado que contiene todos los elementos necesarios para conformar una "unidad central de procesamiento" también es conocido como CPU (por sus siglas en inglés: Central Processing Unit) Procesador Intel 45 nm Procesador AMD
CARACTERÍSTICAS DE UN MICROPROCESADOR ARQUITECTURA SET DE INSTRUCCIONES MODELO DE PROGRAMACIÓN TECNOLOGÍA DE MANUFACTURA VELOCIDAD Y ANCHO DE BANDA TAMAÑO BUS DE DATOS PUERTOS DE ENTRADA Y SALIDA DISPOSITIVOS DE SOPORTE ARQUITECTURA DE INTERCONEXIÓN
LIMITANTES DE UN MICROPROCESADOR ELÉCTRICAS Potencia consumida Tolerancia al ruido electromagnético Interfaz con otros dispositivos Respuesta de frecuencia MECÁNICAS Empaquetamiento Dimensiones TÉRMICAS Disipación de calor Degradación de rendimiento [Mhz/ºC]
ANTECEDENTES (1) MCS-4 (1971) Primer microprocesador comercial i4004 i4004 implementó por primera vez RLM con SGT para integrar la circuitería en un chip Forma parte de esta familia MCS-4: 4001 (ROM (read-only memory) con 4 lineas de I/O 4002 (RAM (random access memory) 4 lineas de salida the 4003 (registro) static shift register usado para ampliar los I/O ejemplo: un teclado, puerto de impresora, etc 4004 CPU con las siguientes especificaciones 16 registros de propósito general PC y 3 niveles en la pila ID y lógica de control interno de los bloques Generador de temporización Lógica de control del bus externo: Memoria/IO
ANTECEDENTES (2) Especificaciones técnicas i4004 Velocidad máxima 740 khz Memoria de programa y de datos separada Bus de datos y direcciones de 4 bits multiplexado 12 bits para direccionamiento de memoria Ancho de la instrucciones 8 bits (mayoría) Ancho de los datos 4 bits # instrucciones: 46 (41 de 8 bits y 5 de 16 bits) 16 registros de 4 bits Pila de 3 niveles
ANTECEDENTES (3) ARQUITECTURA i4004
ANTECEDENTES (4) Mas sobre del i4004 http://www.youtube.com/watch?v=j00au LJLCNo
ANTECEDENTES (4) Intel 8008 (1972) 3500 transistores 0.5 MHz Microprocesador orientado a byte Originalmente la intención era ser el núcleo del DATAPOINT 2200 (terminal programable) Implementado sobre una tecnología P-MOS de 10 micrómetros de ancho de compuerta Características 18 pin DIP Bus único de 8 bits 14 bits para direccionar memoria 8 puertos de entrada, 24 puertos de salida #instrucciones = 48 1 Línea de interrupción por HW
ANTECEDENTES (5)
ANTECEDENTES (6) Intel 8080 (1974) Fabricado en NMOS Bus de datos de 8 bits Bus de direcciones de 16 bits Velocidad de operación 2 MHz 40 pines DIP 8 registros de propósito general B, C, D, E, H y L se podían combinar 256 puertos (I/O) Pila externa en memoria Tres fuentes de poder +5,-5,+12 Líneas para DMA/INT Núcleo para la ALTAIR 8800
MICROCOMPUTADORA 8085 (1977) Compatible con 8080 y optimizado. Habilitó microcomputadoras más baratas Solo requería una fuente de +5 V Se migró su uso a microcontrolador, desplazado el Zilog Z80 Soportaba sistema operativo CP/M Velocidad de operación 3.5 a 6 MHz 40 pins DIP
DISTRIBCION DE PINES 8085
CARACTERÍSTICAS 8085 ARQUITECTURA Von Neumann Bus de direcciones y datos multiplexados 16 bits de bus de direcciones 8 bits bus de datos 6500 transistores Generador de reloj/controlador de sistema integrados
DIAGRAMA DE BLOQUES 8085
ISA 8085
iapx 432 8086?
8086: RESPUESTA INTERMEDIA (1978) DESARROLLADO EN 2 AÑOS BASADO EN MICROARQUITECTURA 8085 MODIFICACION DEL SET DE INSTRUCCIONES CON BACKWARD COMPATIBILITY FULL 16 BITS 29 000 TRANSISTORES HMOS VELOCIDAD BUS INTERNO 4,5,8 MHz TAMAÑO ORIGINAL DEL CHIP 33mm2
8086 El microprocesador 8086 es el primer procesador de la arquitectura IA (Intel Architecture) o x86. Referencia imagen: http://www.cpu-world.com/cpus/8086/l_intel-c8086-pbs.jpg
Terminales del 8086
8086: Resumen de características Arquitectura de 16 bits -Direccionamiento directo a memoria de 1 MB Execution unit Register file Data, pointer & Index regs (8 words) Bus interface unit Relocation register file Segment, register & instruction pointer (8 words) -Bus de datos 16 bits (8 bits 8088) -14 registros internos de 16 bits 16 bits ALU Flags Bus interface unit BHE/S7 4 A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE -Bus de direcciones 20 bits (1 MB memoria física) -12 modos de direccionamiento -Operaciones de bits, bytes, words y RQ/GTo blocks 2 -ISA CISC TEST INT NMI HOLD HLDA Control & Timing CLK RESET READY MN/MX 6-byte instruction queue 3 GND Vcc LOCK 2 3 QSo,QS S2,S2,S0
Bus Interface Unit (BIU) Execution unit Bus interface unit Los sistemas anteriores tenían el bus de datos sin uso cuando se ejecutaba la instrucción. Con el 8086, se busca con anticipación la siguiente instrucción mientras se ejecuta la actual (BIU) TEST INT NMI RQ/GTo HOLD HLDA Register file Data, pointer & Index regs (8 words) 2 16 bits ALU Flags Control & Timing Relocation register file Segment, register & instruction pointer (8 words) Bus interface unit 6-byte instruction queue LOCK 2 3 BHE/S7 4 A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE QSo,QS S2,S2,S0 3 CLK RESET READY MN/MX GND Vcc
Utilidad de unidades independientes Problema: Unidades ociosas, y por lo tanto, pérdida de tiempo. Ejemplo: 8085: El canal es cuello de botella, sin embargo está ocioso Microprocesador Recuperar 1 Decodificar 1 Ejecutar 1 Recuperar 2 Decodificar 2 Ejecutar 2 Recuperar 2 Decodificar 3 Ejecutar 3 Canal Recuperar Ocupado 1 Ocioso Ocupado Ocupado Ocioso Ocupado Ocupado Ocioso Ocupado
Ejecución de instrucciones en forma simultánea Solución: El uso de unidades independientes para optimizar su uso. Ejemplo 80486, unidad se encarga de hacer fetch de varias instrucciones por anticipado, aprovechando el canal (canal siempre ocupado) Unidad de interface de canal Recuperar 1 Recuperar 2 Recuperar 3 Recuperar 4 Almacenar 1 Recuperar 5 Recuperar 6 Leer 2 Recuperar 7 Unidad de instrucción Decodificar 1 Decodificar 2 Decodificar 3 Decodificar 4 Ociosa Decodificar 5 Decodificar 6 Ociosa Unidad de ejecución Ejecutar 1 Ejecutar 2 Ejecutar 3 Ejecutar 4 Ociosa Ejecutar 5 Ejecutar 6 Unidad de direccionamiento Generar dirección 1 Generar dirección 2
Pila de instrucciones Execution unit Register file Bus interface unit Relocation register file Data, pointer & Index regs (8 words) Segment, register & instruction pointer (8 words) Las Instrucciones se obtienen por anticipado, por lo que se logra cierto grado de paralelismo 16 bits ALU Flags Bus interface unit 6-byte instruction queue BHE/S7 4 A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE TEST INT NMI RQ/GTo HOLD HLDA 2 Control & Timing LOCK 2 3 QSo,QS S2,S2,S0 3 CLK RESET READY MN/MX GND Vcc
Unidad de ejecución Execution unit Register file Data, pointer & Index regs (8 words) Bus interface unit Relocation register file Segment, register & instruction pointer (8 words) BHE/S7 Ejecución de instrucciones en el procesador. Trabajo en paralelo con BIU 16 bits ALU Flags Bus interface unit 6-byte instruction queue 4 A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE TEST INT NMI RQ/GTo HOLD HLDA 2 Control & Timing LOCK 2 3 QSo,QS S2,S2,S0 3 CLK RESET READY MN/MX GND Vcc
Modos de operación Modos de Operación: - Modo máximo - Modo mínimo
Modos de operación para 8086 Se controla a través de la terminal MN/MX -Modo mínimo similar al 8085A de 8 bits -Modo máximo se utiliza para manejo de coprocesador
Sistema Mínimo Todas las señales de memoria y I/O se generan sin mediar un árbitro de bus
Modo máximo En el modo máximo, algunas señales de control son generadas de manera externa. Se agrega controlador de canal externo, el 8288. Modo máximo solo se utiliza si el sistema tiene coprocesadores externos, como el coprocesador aritmético 8087
Sistema Máximo
Canal de direcciones y de datos (AD 15 -AD 0 ) Canal multiplexado de datos y direcciones menos significativos Cuando ALE está activo aparecen los bits menos significativos de la dirección, cuando está desactivo, los menos significativos de datos
Control de los buses del sistema Debido a que el bus del sistema está multiplexado, el sistema debe ser demultiplexado para trabajar adecuadamente A19 Canal de dirección A0 BHE Sistema 8086 Canal de datos (16 bits) D15 D0 Canal de control RD WR M/IO
Control de los buses del sistema (2) Sin embargo, dicho canal se encuentra multiplexado A19 Canal de dirección A0 BHE Sistema 8086 Canal de datos (16 bits) D15 D0 Canal de control RD WR M/IO
Temporización de los canales del 8086 Se debe hacer un correcto manejo de la temporización con la que se realiza la lectura y escritura en el canal A19 Canal de dirección A0 BHE Sistema 8086 Canal de datos (16 bits) D15 D0 Canal de control RD WR M/IO
Escritura en el 8086 Ciclo de escritura simplificado
Lectura en el 8086 Ciclo de lectura simplificado
Escritura en el 8086 Es necesario el uso del latches externos para el manejo de la dirección/datos
Demultiplexación de canales Datos y direcciones deben ser multiplexados para su uso. Ejemplo: canal de direcciones demultiplexado
Ejercicio Realizar un circuito esquemático para la conexión del procesador 8086 Debe incluir Conexión en modo mínimo Demultiplexación de los buses de datos, dirección y lectura escritura Justificar el usos de componentes adicionales Conexión del reloj
Bibliografía Brey, B. Los microprocesadores intel: Arquitectura, programación e interfaces. Tercera Edición. Prentice Hall. 1995 Intel 8086 microprocessor family www.cpu-world.com/cpus/8086/ Von Neumann, J. First Draft of a report on the EDVAC. University of Pennsylvania. 1945 (http://www.virtualtravelog.net/entries/2003-08- TheFirstDraft.pdf) - Furben, S. VLSI RISC Architecture and Organization. CRC. -Sin-Min Lee. RISC Architecture. San Jose State University: www.cs.sjsu.edu/~lee/cs147/25spl19risc%20architecture.ppt