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