Download ESTRUCTURA DE MICROPROCESADORES
Document related concepts
no text concepts found
Transcript
ESTRUCTURA DE MICROPROCESADORES Introducción a la arquitectura i8086 Profesor Ing. Johan Carvajal Godínez JCG-2009 AGENDA DE LA CLASE • HISTORIA • DEFINICIONES • ANTECEDENTES • MICROCOMPUTADORA • INTRODUCCION AL 8086 JCG-2009 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 JCG-2009 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 JCG-2009 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 JCG-2009 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 JCG-2009 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] JCG-2009 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 JCG-2009 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 JCG-2009 ANTECEDENTES (3) ARQUITECTURA i4004 JCG-2009 ANTECEDENTES (4) • Mas sobre del i4004 – http://www.youtube.com/watch?v=j00AU LJLCNo JCG-2009 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 JCG-2009 ANTECEDENTES (5) JCG-2009 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 JCG-2009 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 JCG-2009 DISTRIBCION DE PINES 8085 JCG-2009 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 JCG-2009 DIAGRAMA DE BLOQUES 8085 JCG-2009 ISA 8085 JCG-2009 iAPX 432 8086? JCG-2009 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 JCG-2009 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 JCG-2009 Terminales del 8086 JCG-2009 8086: Resumen de características Execution unit Arquitectura de 16 bits Bus interface unit Relocation register file Register file -Direccionamiento directo a memoria de 1 MB Segment, register & instruction pointer (8 words) Data, pointer & Index regs (8 words) BHE/S7 -Bus de datos 16 bits (8 bits 8088) 4 16 bits ALU -14 registros internos de 16 bits Bus interface unit A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE Flags -Bus de direcciones 20 bits (1 MB memoria física) 6-byte instruction queue -12 modos de direccionamiento LOCK TEST INT NMI -Operaciones de bits, bytes , words y blocks RQ/GTo Control & Timing 2 HOLD HLDA 3 -ISA CISC CLK JCG-2009 RESET READY MN/MX GND Vcc 2 QSo,QS 3 S2,S2,S0 Bus Interface Unit (BIU) Execution unit Bus interface unit Relocation register file Register file BHE/S7 4 16 bits ALU Bus interface unit A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE Flags 6-byte instruction queue LOCK TEST INT NMI RQ/GTo Control & Timing 2 HOLD HLDA 3 • 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) Segment, register & instruction pointer (8 words) Data, pointer & Index regs (8 words) CLK JCG-2009 RESET READY MN/MX GND Vcc 2 QSo,QS 3 S2,S2,S0 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 JCG-2009 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 Unidad de instrucción Decodificar Decodificar Decodificar 1 2 3 Decodificar 4 Ociosa Unidad de ejecución Ejecutar 1 Ejecutar 3 Ejecutar 4 Unidad de direccionamiento Ejecutar 2 Generar dirección 1 JCG-2009 Recuperar 6 Leer 2 Decodificar Decodificar 5 6 Ociosa Generar dirección 2 Ejecutar 5 Recuperar 7 Ociosa Ejecutar 6 Pila de instrucciones Execution unit Bus interface unit Relocation register file Register file Segment, register & instruction pointer (8 words) Data, pointer & Index regs (8 words) Las Instrucciones se obtienen por anticipado, por lo que se logra cierto grado de paralelismo BHE/S7 4 16 bits ALU Bus interface unit A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE Flags 6-byte instruction queue LOCK TEST INT NMI RQ/GTo Control & Timing 2 3 HOLD HLDA CLK JCG-2009 RESET READY MN/MX GND Vcc 2 QSo,QS 3 S2,S2,S0 Unidad de ejecución Execution unit Bus interface unit Relocation register file Register file Segment, register & instruction pointer (8 words) Data, pointer & Index regs (8 words) BHE/S7 4 Ejecución de instrucciones en el procesador. Trabajo en paralelo con BIU 16 bits ALU Bus interface unit A19/S6...A16/S3 16 AD15-AD0 3 INTA,RD,WR 3 DT/R,DEN,ALE Flags 6-byte instruction queue LOCK TEST INT NMI RQ/GTo Control & Timing 2 3 HOLD HLDA CLK JCG-2009 RESET READY MN/MX GND Vcc 2 QSo,QS 3 S2,S2,S0 Modos de operación Modos de Operación: - Modo máximo - Modo mínimo JCG-2009 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 JCG-2009 Sistema Mínimo Todas las señales de memoria y I/O se generan sin mediar un árbitro de bus JCG-2009 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 JCG-2009 Sistema Máximo JCG-2009 Canal de direcciones y de datos (AD15-AD0) • 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 JCG-2009 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 D15 Canal de datos (16 bits) D0 Canal de control JCG-2009 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 D15 Canal de datos (16 bits) D0 Canal de control JCG-2009 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 D15 Canal de datos (16 bits) D0 Canal de control JCG-2009 RD WR M/IO Escritura en el 8086 Ciclo de escritura simplificado JCG-2009 Lectura en el 8086 Ciclo de lectura simplificado JCG-2009 Escritura en el 8086 Es necesario el uso del ¨latches¨ externos para el manejo de la dirección/datos JCG-2009 Demultiplexación de canales • Datos y direcciones deben ser multiplexados para su uso. • Ejemplo: canal de direcciones demultiplexado JCG-2009 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 JCG-2009 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-08TheFirstDraft.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 JCG-2009