MICROPROCESADORES
Microprocesadores
¿Qué es un Microcomputador?
Diagrama de bloques de un Microcomputador
Memoria
Microprocesador Salida
Entrada
CPU
•1940 – 1950 PRIMERA GENERACION
Se construyeron gigantescas máquinas
computadoras diseñadas con dispositivos
electro-mecánico llamados RELE y tubos en
Evolución del Microprocesador
vacío denominadas bulbos.
Costo del hardware >> costo de los
programadores
Programs escritos en 1s y 0s
•MARK I (1944)
•ENIAC Calculador e Integrador Numerico
Digital Electrónico (1948)
Evolución del Microprocesador
• 1955 – 1965 SEGUNDA GENERACION
Se construyeron computadoras con transistores o
componentes de estado sólido (semiconductor).
Unidad de Control & ALU : Transistores
Memoria Central : Núcleos de Ferrita
• Software :
Lenguajes de Programación de alto nivel
• Aplicaciones Científicas : FORTRAN
• Aplicaciones de Negocios : COBOL
Evolución del Microprocesador
• 1965 - 1973 TERCERA GENERACION
Aparecen los circuitos integrados denominados chips que revoluciona
a los microprocesadores y sistemas de microcomputadoras asociadas
con ellos.
Software : Multiprogramación mantuvo ocupado al sistema
El software era inadecuado para estos sistemas
Se produjo una crisis de Software}
Evolución del Microprocesador
• 1973 - HOY CUARTA GENERACION
Aparecen los circuitos integrados denominados chips que
revoluciona a los microprocesadores y sistemas de
microcomputadoras asociadas con ellos.
• Unidad de Control & ALU : Circuitos Integrados
• Memoria Central : Circuitos Integrados
• Mas tipos de Computador:
•Computadoras Personales
•Servidores
•Supercomputadoras
•Computadoras Embebidas
• Redes y Computación Distribuida
• Software :
•Interfaces Gráficas
•Costo computadora << costo programador
1971 Intel UP 4004
• Bus de datos de 4 bits
• Bus de dirección 12 bits
• Maneja un conjunto de 45 instrucciones
• Capacidad de direccionamiento de 4K (localidad de
dirección)
• Densidad de 10000 transistores
4 Bus de Datos
UP 4004
12 Bus de Dirección
1974 Intel UP 8008
• Bus de datos de 8 bits
• Bus de dirección 14 bits
• Maneja un conjunto de 48 instrucciones
• Capacidad de direccionamiento de 16K (localidad de
dirección)
• Densidad de 12000 transistores
8 Bus de Datos
UP 8008
14 Bus de Dirección
1975 Intel UP 8080
• Bus de datos de 8 bits
• Bus de dirección 16 bits
• Maneja un conjunto de 243 instrucciones
• Capacidad de direccionamiento de 64K (localidad de
dirección)
• Densidad de 15000 transistores
8 Bus de Datos
UP 8080
16 Bus de Dirección
1977 Intel UP 8085
• Bus de datos de 8 bits
• Bus de dirección 16 bits
• Maneja un conjunto de 246 instrucciones
• Capacidad de direccionamiento de 64K (localidad de
dirección)
• Densidad de 19000 transistores
8 Bus de Datos
UP 8085
16 Bus de Dirección
1978 Intel UP 8086
• Bus de datos de 16 bits
• Bus de dirección 20 bits
• Opera 2.5 MIP millones de instrucciones por segundo
• Capacidad de direccionamiento de 1M
• Densidad de 30000 transistores
• CLK 10 Mhz
16 Bus de Datos
UP 8086
20 Bus de Dirección
1979 Intel UP 8088
• Bus de datos de 16 bits interno y 8 bits físico
• Bus de dirección 20 bits
• Opera 2.5 MIP Millones de instrucciones por segundo
• Capacidad de direccionamiento de 1M
• CLK 8 Mhz
8 Bus de Datos
UP 8088
20 Bus de Dirección
1982 Intel UP 80286
• Bus de datos de 16 bits
• Bus de dirección 24 bits
• Opera 4 MIP
• Capacidad de direccionamiento de 16M
• Densidad de 140000 transistores
• CLK 12.5 Mhz
16 Bus de Datos
UP 80286
24 Bus de Dirección
1986 Intel UP 80386 DX
• Bus de datos de 32 bits
• Bus de dirección 32 bits
• Opera 7 MIP
• Capacidad de direccionamiento de 4G
• Densidad de 275000 transistores
• CLK 33Mhz
32 Bus de Datos
UP 80386
32 Bus de Dirección
1989 Intel UP 80486
• Bus de datos de 32 bits
• Bus de dirección 32 bits
• Opera 27 MIP
• Capacidad de almacenamiento de 4G
• Densidad de 1’200000 transistores
• CLK 66 Mhz
• COPROCESADOR NUMERICO 80387
• MICROPROCESADOR 80386
32 Bus de Datos
UP 80486
32 Bus de Dirección
1993 Intel UP PENTIUM I
• Bus de datos de 32bits - 64 bits
• Opera 110 MIP
• Densidad de 3’000.000 transistores
• CLK > 100 Mhz1993, bus dir 32 bits(4GB)
• Chip de 66 Mhz – 2 instrucciones/clock
• 16 KB caché(8K datos+8K instrs) incorporado
Bus de Datos
UP Pentium
Bus de Dirección
1997 Intel UP PENTIUM II
• Bus de datos de 64 bits
• Opera 150 MIP
• Densidad de 21’000.000
transistores
• CLK 233 - 450 Mhz
Bus de Datos
UP Pentium
Bus de Dirección
1999 Intel UP PENTIUM III
• Bus de datos de 64 bits
• Versión mejorada del Pentium II
• Velocidad de bus 100 ó 133MHz
• CLK 600 Mz - 1 Ghz
Bus de Datos
UP Pentium
Bus de Dirección
2000 Intel UP PENTIUM IV
• Bus de datos de 64 bits
• Bus dirección de 36 bits
• Aquitectura similar a la de
Pentium III
• Velocidad de bus 100 →
400MHz
• Reloj 1.3 GHz → 3.0 GHz
Bus de Datos
UP Pentium
Bus de Dirección
Microprocesador
Bus de Datos
UP
Bus de Dirección
Microprocesador
Microcomputadora
• En este gráfico se puede apreciar tres buses: dirección, datos y control.
Bus Dirección
Microprocesador
Bus Datos
IORD
IOWC
MRDC
MWTC
ROM RAM Teclado Impresora
Bus de Control
Memoria Principal
• Memoria Principal es donde se almacenan las
instrucciones y datos que van a ser procesadas
inmediatamente por el CPU.
• ROM (Read Only Memory)
• RAM (Random Access Memory)
• Caché
• Registros
Memoria Secundaria
• Memoria Secundaria es donde se almacenan los
datos e instrucciones para ser archivados por un
tiempo indefinido.
• Disco Duro: memoria secundaria principal, su
estructura son discos con superficie magnética. Su
tamaño se mide en GB.
• Diskettes: su capacidad se mide en KB y MB.
• CD-RW: su capacidad va de 650MB a 700MB.
• CD-DVD: su capacidad va de 4GB a 18GB.
ROMBIOS Y RAM
• ROMBIOS: contiene las instrucciones para arrancar la
máquina y hacer revisión de ella.
• Actualmente se implementa en FLASH y puede ser
actualizada directamente en el circuito.
• RAM: almacena los datos y los programas que el
procesador va a ejecutar.
• La RAM normalmente es mas lenta que el procesador.
Memoria Caché
• Más rápida que la RAM, pero más cara.
• Se coloca entre el microprocesador y la RAM.
• Sirve para almacenar temporalmente aquellos
datos que están siendo procesados con mayor
frecuencia.
• Caché viene generalmente empacada dentro del
mismo procesador y trabaja a la velocidad de este.
• Mejora el rendimiento del sistema.
Buses
• Los buses, barras o canal representa el sistema de
comunicación del procesador.
• El bus de datos de la memoria RAM es el principal
“cuello de botella” de una computadora moderna.
Otros Tipos de Buses
• ISA: tarjetas antiguas.
• PCI: tarjetas modernas.
• IDE: discos duros/CD/DVD.
• SCSI: discos duros de servidores.
• AGP: targetas de video y gráficos.
• PCMCIA: computadoras LAPTOP.
Diagrama de un CPU y Memoria
D0 T1 T2 IR A0
CU
A3
ALU ACC
SP
MAR
D7 PC
+1
-
CPU Memoria
Memoria
• Es la capacidad de almacenamiento de información
(bits, bytes, ect..) en espacio de direccionamiento,
basado en un sistema de microprocesador.
Tipos de Memoria
• Memoria lógica.- Es la memoria tal como la ve el
programador, su estructura es un solo banco.
• Memoria Física (Real).- Denota la estructura interna
del microprocesador, esta dividida en bancos bytes
Memoria Lógica
• UP 8008
• 11 1111 1111 1111 3FFFH
16 KB
00 0000 0000 0000 0000H
8 BITS
Memoria Lógica
• UP 8086
• UP 8088
• 1111 1111 1111 1111 1111 FFFFFH
• 1MB
0000 0000 0000 0000 0000 00000H
8 BITS
• UP 80386 DX
• UP 80486 SX / DX
• 1111 1111 1111 1111 1111 1111 1111 1111 FFFFFFFFH
4 GB
0000 0000 0000 0000 0000 0000 0000 0000 00000000H
8 BITS
Memoria Física
• UP 8086
FFFFFH FFFFEH
00001H 00000H
8 BITS 8 BITS
Memoria Física
• UP 8088
FFFFFH
1MB
00000H
8 BITS
Memoria Física
• UP 80286
• UP 80386 SX
FFFFFFH FFFFFEH
000001H 000000H
8 BITS 8 BITS
Memoria Física
• UP 80386 DX
• UP 80486 SX / DX
FFFFFFFFH FFFFFFFEH FFFFFFFDH FFFFFFFCH
00000003H 00000002H 00000001H 0000000H
8 BITS 8 BITS 8 BITS 8 BITS
Memoria
Recuperar el dato Word que se encuentra en la
memoria a partir de la dirección 100H.
8
Dato Word 100H: 2B1AH
81 H
Dato Word 104H: 6F5EH
00107H
70 H 00106H Dato DWord 104H: 81706F5EH
6F H 00105H
5E H 00104H
4D H
Dato Word 101H: 3C2BH
00103H
3C H 00102H Dato DWord 101H: 5E4D3C2BH
2B H 00101H
1A H 00100H
ALMACENAR 6543H EN 103H
DATO WORD
8
00107H B7H
4 WORD
00106H B6H
7 WORD
00105H B5H
3 WORD
00104H B4H
6 WORD
00103H B3H
2 WORD
00102H B2H
5 WORD
00101H B1H
1 WORD
00100H B0H
Memoria
DATO DOBLE WORD
8
00107H B7H
00106H B6H
2 DWORD
00105H B5H
5 DWORD
00104H B4H
4 DWORD
00103H B3H
3 DWORD
00102H B2H
1 DWORD
00101H B1H
00100H B0H
TIPOS DE DATOS
• BYTE
D7 D6 D5 D4 D3 D2 D1 D0
28 - 1 =255 00H -FFH
• WORD
D15 D0
216 – 1 = 65535 0000H – FFFFH
64K
TIPOS DE DATOS
• BYTE CON SIGNO
27 - 1 = 127 00H -FFH
-128 a 127
• WORD CON SIGNO
215 – 1 = 32767 0000H – FFFFH
-32K a 32K-1 -32768 a 32767
ARQUITECTURA BÁSICA DEL
MICROPROCESADOR
Ciclo de Instrucción
• En su operación básica todos los computadores
modernos siguen un proceso que ha permanecido sin
muchos cambios desde que Von Neumann introdujo su
modelo. A este proceso lo llamamos Ciclo de
Instrucción
• Todas las computadoras tienen dos componentes
básicos:
• CPU
• Memoria
Ciclo de Instrucción
• La función del CPU es ejecutar programas que están
almacenados en memoria principal, eso se logra
siguiendo los siguientes pasos:
• Cargando las instrucciones desde memoria al CPU
• Decodificándolas
• Ejecutándolas.
• Este ciclo se repite hasta que el programa termina
Ciclo de Instrucción
Ciclo de Ejecución
• Una vez que la instrucción ha sido cargada en el IR y la
Unidad de Control la ha decodificado y determinado las
acciones a seguir, comienza el ciclo de ejecución
• Los pasos que se siguen para realizar un ciclo de
instrucción dependen del tipo de instrucción que se
este procesando
• Depende del código de operación (opcode)
ARQUITECTURA BASICA DEL MICROPROCESADOR
• Los microprocesadores modernos están estructurados
de manera que contengan mas unidades internas de
procesamiento, cada una de las cuales efectúa una
tarea específica. Entonces puede procesar cierto
número de instrucciones de forma simultánea.
• La capacidad de procesar más de una instrucción a la
vez se denomina “Pipeline” (TUBERIAS).
Funcionamiento del UP 8085A
MICRO RECUP DECO EJECU RECUP DECO EJECU RECUP DECO EJECU
PROCESADOR (1) (1) (1) (2) (2) (2) (3) (3) (3)
OCUPA OCIOS OCUPA OCUPA OCIOS OCUPA OCUPA OCIOS OCUPA
CANAL
Funcionamiento del UP 80486
UNIDAD DE
RECUP RECUP RECUP RECUP ALMAC RECUP RECUP LEER RECUP
INTERFACE (1) (2) (3) (4) (1) (5) (6) (4) (7)
DE CANAL
DECO DECO DECO DECO OCIOS DECO DECO OCIOS
UNIDAD DE (1) (2) (3) (4) (5) (6)
INSTRUCCIÓN
EJEC EJEC EJEC EJEC OCIOS EJEC EJEC
UNIDAD DE (1) (2) (3) (4) (5) (6)
EJECUCION
GENER GENER
DIREC DIREC
(1) (4)
UNIDAD DE DIRECCIONAMIENTO
Diferencias de Funcionamiento
MICRO
RECUP DECO EJECU RECUP DECO EJECU RECUP DECO EJECU
PROCESADOR (1) (1) (1) (2) (2) (2) (3) (3) (3)
OCUPA OCIOS OCUPA OCUPA OCIOS OCUPA OCUPA OCIOS OCUPA
CANAL
UNIDAD DE
RECUP RECUP RECUP RECUP ALMAC RECUP RECUP LEER RECUP
INTERFACE (1) (2) (3) (4) (1) (5) (6) (4) (7)
DE CANAL
UNIDAD DE DECO DECO DECO DECO OCIOS DECO DECO OCIOS
INSTRUCCIÓN (1) (2) (3) (4) (5) (6)
UNIDAD DE EJEC EJEC EJEC EJEC OCIOS EJEC EJEC
EJECUCION (1) (2) (3) (4) (5) (6)
GENER OCIOS OCIOS GENER OCIOS OCIOS
UNIDAD DE DIRECCIONAMIENTO DIREC DIREC
(1) (4)
Mejora del Ciclo de Instrucción
• En la actualidad se desarrollan procesadores usando la
tecnología superescalar (superscalar pipeline).
• Aquí más de una instrucción puede ser ejecutada por ciclo.
• Pentium puede ejecutar 2 instrucciones por ciclo
• Pentium 4 puede ejecutar hasta 6 instrucciones por ciclo.
ARQUITECTURA DEL SISTEMA
• El sistema de comunicación del microprocesador está dado por bus, canal o
barra que son:
• Bus de datos
• Bus de dirección
• Bus de control
• Bus de datos.- Contiene la información que se transmite o recibe entre el
microprocesador y la memoria del sistema o los dispositivos de entrada y
salida.
UP 8088 8 BITS (D7 a D0)
UP 8086 16 BITS (D15 a D0)
• Bus de dirección.- Indica la localidad de dirección de memoria para la memoria
del sistema o indica el espacio de entrada/salida para los dispositivos de E/S.
UP 8088 / UP 8086 20 BITS DE DIRECCIÓN (A19-A0)
• Bus de control.- Suministra señales de control para los procesos de lectura y
escritura. (RD.L WR.L READY…….. )
ARQUITECTURA BASICA DEL MICROPROCESADOR
Buses
• El tamaño del bus de datos determina el número de bits de
datos que se transfieren entre el microprocesador y la
memoria o los dispositivos de entrada y salida.
• El tamaño del bus de dirección del microprocesador
determina la capacidad de almacenamiento de memoria.
REGISTROS Y SEGMENTACIÓN DE
MEMORIA
REGISTRO DE SEGMENTO.
• Un segmento representa una unidad de memoria de
64KB consecutivos e independientemente direccionable.
• Cada segmento tiene asignado una dirección base que
identifica el puntero de inicio, a la vez indica la
localidad byte menos significativa.
REGISTROS DE SEGMENTOS
• Los registros de segmentos generan direcciones en la
memoria, junto con otros registros en el microprocesador.
• Los segmentos pueden ser contiguos, disjuntos o
superpuestos.
• SEGMENTO DE CÓDIGO (CS)
• SEGMENTO DE DATOS (DS)
• SEGMENTO DE PILA (SS)
• SEGMENTO EXTRA (ES)
• SEGMENTO DE DATOS F (FS)
• SEGMENTO DE DATOS G (GS)
REGISTROS DE SEGMENTOS
• SEGMENTO DE CÓDIGO (CS)
Es una sección de memoria que esta destinada para los
programas y procedimientos utilizados por el programa.
• SEGMENTO DE DATOS (DS)
Es una sección de memoria que almacena la mayor parte
de datos utilizados por el programa.
REGISTROS DE SEGMENTOS
• SEGMENTO DE PILA (SS)
Es una sección de pila de memoria que almacena datos de
manera LIFO. (PUSH, POP)
• SEGMENTO EXTRA (ES)
Es una sección de memoria que almacena datos para las
instrucciones de cadenas de datos.
REGISTROS
AX
AH AL
REGISTROS
• REGISTRO PUNTERO DE INSTRUCCION (IP)
Identifica la localidad de la siguiente instrucción que
ejecutará el microprocesador en el segmento de
código.
• IP contiene el desplazamiento con respecto a CS, se
denota por
CS : IP
REGISTROS DE PROPÓSITO GENERAL
• Registro de 8 bits:
AL, AH, BL, BH, CL, CH, DL y DH
• Registro de 16 bits:
AX, BX, CX y DX
• Registro de 32 bits:
EAX, EBX, ECX y EDX
• REGISTRO ACUMULADOR (AX)
• Almacena datos temporales después de una operación lógica o
aritmética.
• Se utiliza en las interrupciones del BIOS, DOS (INT 10H, INT 21H)
• Se utiliza para transferir o recibir datos desde o hacia periféricos de E /
S.
REGISTROS DE PROPÓSITO GENERAL
• REGISTRO BASE (BX)
• Indica la dirección del dato que se encuentra en memoria, o
indica la dirección del arreglo de datos o matrices en memoria.
• REGISTRO CONTADOR (CX)
• Lo utilizamos como conteo en las instrucciones de lazo o bucle.
LOOP CX = 0 pregunto si es cero
• Lo utilizamos para las instrucciones repetidas de cadenas de
datos.
• La utilizamos para las instrucciones de desplazamiento y
rotación.
• REGISTRO DATOS (DX)
• Se utiliza en operaciones de multiplicación y división que generan
o involucran datos de 32 bits.
• Almacena la dirección del puerto de E/S cuando se transfiere o
recibe datos de periféricos de E / S.
REGISTROS
• REGISTRO PUNTEROS
PUNTERO DE PILA (SP)
Apunta los datos al tope de la pila. Direcciona datos en una pila
de memoria “LIFO”.
Se modifica con las instrucciones PUSH POP
Se modifica con las instrucciones CALL RET
PUNTERO BASE (BP)
Representa un desplazamiento relativo al registro SS.
SS : SP
SS : BP
REGISTROS
• REGISTRO INDICES
INDICE DESTINO (DI)
Se utiliza para direccionar datos destinos en forma
indirecta.
INDICE FUENTE (SI)
Se utiliza para direccionar datos fuentes en forma
indirecta.
DS : DI
DS : SI
REGISTROS
O D I T S Z A P C
• REGISTRO DE BANDERAS
El registro de banderas indica el estado del
microprocesador y a la vez el control de su
funcionamiento.
Se modifica cada vez que se ejecutan las
instrucciones lógicas o aritméticas.
REGISTROS
• REGISTRO DE BANDERAS
• CARRY FLAG (CF) ACARREO BIT “0”
Indica el acarreo que existe después de una suma o el
préstamo después de una resta
CF = 1 => existe acarreo
CF = 0 => no existe acarreo
• PARITY FLAG (PF) PARIDAD BIT “2”
Indica la paridad de un resultado lógico o aritmético
PF = 1 => paridad par
PF = 0 => paridad impar
REGISTROS
AUXILIARY FLAG (AF) AUXILIARBIT “4”
Conserva el acarreo que existe después de una suma o
el préstamo después de una resta únicamente entre
los bits 3 y 4
AF = 1 => existe acarreo auxiliar
AF = 0 => no existe acarreo auxiliar
• ZERO FLAG (ZF) CERO BIT “6”
Indica el resultado de una operación lógica o
aritmética es cero
ZF = 1 => el resultado es cero
ZF = 0 => el resultado es diferente de cero
REGISTROS
• SIGNO FLAG (SF) SIGNO BIT “7”
Indica el signo de un resultado aritmetico
SF = 1 => Negativo
SF = 0 => Positivo
• TRAP FLAG (TF) TRAMPA BIT “8”
Se activa con la depuración del programa paso a paso
• INTERRUPT FLAG (IF) INTERRUPCION BIT “9”
Controla el funcionamiento de interrupción del UP
IF = 1 => esta habilitada la interrupción; STI
IF = 0 => no esta habilitada la interrupción; CLI
REGISTROS
• DIRECTION FLAG (DF) DIRECCION BIT “10”
Controla la selección de incremento o decremento de los
registros SI o DI
DF = 1 => existe auto decremento de SI o DI; STD
DF = 0 => existe auto incremento de SI o DI; CLD
• OVERFLOW FLAG (OF) SOBREFLUJO BIT “11”
Indica el desbordamiento después de una operación cuando
el resultado no cabe en el tamaño del operando destino
OF = 1 => existe sobreflujo
OF = 0 => no existe sobreflujo
GENERACION DE DIRECCION EN LA
MEMORIA
• Segmento Offset
CS : IP
SS : SP y BP
DS : SI, DI, BX y #16Bits
ES : DI
REGISTROS
Segmento
+
Desplazador
A19 – A0
PA = (Dirección Física) ADDER