Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 2 - El Procesador PDF
Tema 2 - El Procesador PDF
EL PROCESADOR
21
Apuntes de Informtica
PROCESADOR
MEMORIA
Unidad de control
(UC)
(1)
Unidad aritmticolgica (ALU)
UNIDAD DE E/S
(2)
Puerto salida
Puerto entrada
Antes de comenzar el estudio del procesador es conveniente ver la estructura de la memoria, que se explicar de modo ms detallado en el tema siguiente.
La memoria esta compuesta de varias celdas, cada una de las cuales es capaz de contener
1 byte y que tiene una direccin para permitirnos acceder a la misma, como se muestra en la
figura adjunta.
MEMORIA
.
..
.
..
00100
00010101
00011
01001001
00010
10110111
00001
10101101
00000
01101101
direccin
datos
Para que el procesador pueda acceder a un determinado byte (para leerlo o para escribir en
l) es preciso que conozca su direccin.
El procesador esta conectado con la memoria a travs de dos buses, que se llaman bus de
datos y bus de direcciones. El primero sirve para que el procesador intercambie datos con la
memoria y el segundo, para especificar que direccin de memoria debe emplear para ello.
Adems, existen unas seales de control que permiten, entre otras cosas, decir si queremos
leer o escribir.
Todo esto se puede ver en el diagrama siguiente:
22
TEMA 2 El procesador
Procesador
Bus de datos
Memoria
Bus de direcciones
Lectura/escritura (W/R)
Apuntes de Informtica
racin aritmtica, considerando los operandos sin signo, no puede almacenarse correctamente;
por ejemplo, suponiendo que la CPU fuera de 4 bits, al sumar 1010 con 1101, el resultado es
0111 y C=1, ya que el resultado real es 10111, que no puede almacenarse con 4 bits. El segundo (zero) se activa cuando el resultado es cero, por ejemplo al sumar 1001 con 0111. Finalmente, el overflow es como el carry, pero para operandos con signo.
Todas las operaciones realizadas por la ALU se expresan en trminos de un gran nmero
de pequeos pasos, involucrando cada una, a uno o varios de los circuitos lgicos.
TEMA 2 El procesador
Parte de la memoria principal se reserva para ser utilizada como una pila (LIFO), es decir,
el primer dato en entrar en la pila es el ltimo en salir. Con lo cual es ptima para guardar la
informacin del estado del programa (valores de los registros, flags, PC) cuando una interrupcin requiere al procesador para otra tarea, permitiendo as, regresar al estado original de una
forma natural.
El registro ndice se usa se usa para implementar el modo de direccionamiento indexado. Los
modos de direccionamiento se vern ms adelante en este mismo tema.
Apuntes de Informtica
bloques: el bus de datos, el bus de direcciones y las seales de control. Adems necesita unas
patas dedicadas a la alimentacin elctrica del chip.
El bus de datos son las lneas por las que el procesador lee o escribe datos en la memoria o
en los perifricos. Consta normalmente de 8, 16, 32 o 64 hilos, cada uno de ellos representa
un bit del dato que el procesador lee o escribe.
El bus de direcciones son las lneas por las que el procesador decide la posicin de memoria con la que quiere comunicarse. Cada posicin tiene un nmero y dependiendo del nmero
de hilos que compongan dicho bus, el procesador podr manejar ms o menos memoria. Aunque el bus de datos sea de ms de 8 bits, por razones de compatibilidad las posiciones de memoria se numeran de 8 en 8 bits. Anlogamente al bus de datos, por cada hilo del bus de direcciones circula un bit, y la direccin se forma con el nmero binario que representan dichos
bits. Los tamaos ms comunes de bus de direcciones son 16 (lo que permite tener 64Kb de
memoria), 20 (1Mb), 24 (16Mb) y 32 (4Gb).
Las seales de control sirven para que el procesador pueda controlar lo que hace, por
ejemplo hay una llamada W/ R que le sirve al procesador para indicar cuando quiere leer y
cuando quiere escribir, si la seal est a 0 se trata de una lectura y si est a 1 el procesador
necesita escribir.
26
TEMA 2 El procesador
El dibujo anterior corresponde a un procesador 80386SX de AMD, y en l se pueden observar el Bus de direcciones (A0, ... , A23), el bus de datos (D0, ... , D15) y lneas de control
como W/ R (seleccin escritura/lectura), M/ IO (seleccin memoria/Entrada-salida). Adems
la alimentacin corresponde a las marcadas como VCC y VSS es la masa de referencia, la entrada de reloj es la marcada como CLK2 y la pata de interrupcciones es INTR.
Hay dos formas de comunicacin con los perifricos. Algunos procesadores emplean lo
que se llama mapeado en memoria, que consiste en que determinadas direcciones de memoria
estn reservadas para los perifricos, y al leer o escribir en ellas se puede comunicar el procesador con un determinado perifrico. Los procesadores de Motorola suelen funcionar de este
modo. Por el contrario Intel en sus procesadores emplea un espacio de entrada/salida separado, eso quiere decir que existe una seal de control llamada M/ IO , con la cual el procesador
decide si quiere comunicarse con un perifrico (cuando est a 0) o con la memoria (cuando
est a 1). De todos modos sigue empleando el mismo bus para los datos y las direcciones. Las
direcciones de los perifricos se suelen llamar puertos.
En cualquiera de los dos casos anteriores, en el acceso a los perifricos el procesador emplea tres estrategias:
a) Escrutinio: Consiste en leer peridicamente el estado del perifrico para decidir lo que
debe hacer. Por ejemplo, si se usa un teclado de esta forma, peridicamente (por ejemplo, cada centsima de segundo) se lee a travs de un puerto un registro de estado del
teclado, que informa de s hay una tecla pendiente de ser leda, en ese caso el procesador lee la tecla a travs de otro puerto.
b) Interrupcin: El perifrico interrumpe al procesador cuando necesita ser atendido, para ello el procesador dispone de una seal de control llamada INTR, que debe ser usada en ese caso, existe adems un controlador de interrupciones externo encargado de
canalizar todas las posibles peticiones de interrupcin. Cuando se interrumpe al procesador, ste para lo que est haciendo y ejecuta un programa de atencin al perifrico.
Cuando acaba dicho programa, se vuelve al estado anterior y contina con lo que haca al ser interrumpido. La pila sirve para conservar el estado del procesador cuando
se produce la interrupcin, y poder continuar ms adelante. Por ejemplo, el reloj funciona de esta forma. Cada cierto tiempo (por ejemplo, una centsima de segundo) interrumpe al procesador y le fuerza a que ejecute un programa que se encarga de incrementar la hora, que est almacenada en varias posiciones de memoria (una para las
centsimas de segundo, otra para los segundos, etc.).
c) Acceso directo a memoria: Cuando un perifrico necesita enviar varios datos consecutivamente a memoria, los dos mtodos anteriores son muy difciles de emplear y se
emplea ste, que consiste en tener un chip de apoyo al procesador que se llama controlador de DMA (acceso directo a memoria) que es capaz de leer y escribir en memoria sin ayuda del procesador. Un ejemplo de esto es el caso de los disquetes, cuando se
lee un sector, se deben transferir 512 bytes del disquete a la memoria. En este caso, se
programa al controlador de disquetes para que lea el sector y lo enve al controlador de
DMA. Por otra parte, se programa al controlador de DMA para decirle que la unidad
de disquetes va a enviarle 512 bytes, que tiene que poner a partir de determinada posicin de memoria. Despus de hecho esto, el procesador no tiene que intervenir para
nada en la operacin, la realizan entera solos el controlador de disquetes y el controla27
Apuntes de Informtica
dor de DMA. Para avisar al procesador de que la lectura ha concluido se utiliza una
interrupcin.
28
TEMA 2 El procesador
29
Apuntes de Informtica
DIRECCIONAMIENTO INDIRECTO
La instruccin tiene un operando que contiene la direccin donde est el dato. Por
ejemplo MOV AX,[BX], lee el contenido de BX, supongamos que es 1234, entonces
el contenido de las posiciones de memoria 1234 y 1235 pasa a AX.
DIRECCIONAMIENTO INDEXADO
La instruccin contiene un nmero que sumado al contenido del registro ndice (puede
haber varios registros ndices y en ese caso hay que especificar cual de ellos hay que
emplear) nos dice la direccin de memoria en la que est el dato. Por ejemplo supongamos que tenemos una tabla en memoria en la posicin 1234 que contiene los das de
cada mes de ao, es decir en 1234 hay 31, en 1235 28, etc., supongamos que tenemos
en BX el mes del ao (0=enero, 1=febrero, etc.) del que queremos saber lo que dura,
entonces la instruccin MOV AL,1234[BX] nos permite saberlo, ya que se suman
1234 y BX y el resultado es la direccin de memoria que contiene la duracin del mes,
que es leda a AL (no empleamos AX pues las longitudes de los meses se pueden codificar con 8 bits).
Si escribimos en lenguaje ensamblador en lugar de en cdigo mquina la direccin de la
tabla en memoria la calcula el programa ensamblador, no tenemos que hacerlo nosotros,
por ejemplo en el caso anterior pondramos:
MOV
...
DIASMES:DB
AL,DIASMES[BX]
31,28,31,...
DIRECCIONAMIENTO RELATIVO
El operando representa un nmero que se debe sumar al PC para obtener la direccin.
En los procesadores de la familia 80x86 slo se emplea para instrucciones de salto. La
instruccin JMP +25 hace que el programa se salte 25 bytes (el registro PC contiene la
direccin de la instruccin que va a ejecutar a continuacin, el sumarle 25 bytes equivale a saltarse las instrucciones contenidas en ellos) y continue ejecutndose a partir
de la posicin PC+25. La utilidad de esto es hacer programas reubicables, si un programa comienza en la direccin de memoria 100 por ejemplo y deseamos cambiarlo a
la 200, si empleara saltos absolutos habra que modificarlo para que pudiera ejecutarse
en la nueva posicin de memoria, mientras que con saltos relativos se puede cambiar a
la posicin de memoria 200 y sigue funcionando perfectamente.
30
TEMA 2 El procesador
En el mundo de los ordenadores nos encontramos con mquinas dedicadas a tareas especficas, que han visto mermado su campo de aplicacin en aras de una mayor efectividad. Son
ordenadores que tiene procesadores dedicados, por ejemplo, a jugar al ajedrez, a resolver
ecuaciones diferenciales, a representar imgenes 3D en pantalla, etc., y que son ms competitivas que otras mquinas, con procesadores de propsito general, para la tarea concreta para la
que se disearon, en cambio no se pueden utilizar para otra cosa. En contraposicin, un ordenador de propsito general, es menos efectivo para esa tarea concreta pero puede ser empleado tambin para cualquier otra.
Por ltimo conviene citar que existen dos filosofas a la hora de disear un procesador de
propsito general: CISC y RISC. Los procesadores RISC son procesadores con un conjunto
reducido de instrucciones, esto significa que se ha reducido el nmero de instrucciones, siendo todas ellas ms sencillas, pero a cambio han ganado velocidad, ya que dedican ms transistores a la parte de la ALU quitndolos de la parte de control (CU). Los CISC, en cambio,
tienen un conjunto ms amplio de instrucciones, pero eso redunda en una prdida de velocidad. No obstante los procesadores CISC actuales se acercan cada vez ms al rendimiento de
los RISC, ya que cada vez se integran ms transistores por chip. Debido a ello, se pueda conseguir que las instrucciones ms elementales, que son por otra parte las ms utilizadas, puedan
realizarse en un ciclo de reloj, es decir, a la mxima velocidad posible. Las intrucciones ms
complejas (que no existen en un procesador RISC) se realizan en ms de un ciclo de reloj.
Apuntes de Informtica
TEMA 2 El procesador
como el 80286, y para colmo, el procesador arranca en modo real, tiene una instruccin que
permite pasar a modo protegido, pero olvidaron poner una instruccin para volver a modo
real, de modo que se impeda el funcionamiento de los antiguos programas al pasar a modo
protegido. Por todo ello, el modo protegido es prcticamente intil y el 80286 no es ms que
un 8086 rpido.
El ao 1985 INTEL empez la fabricacin del 80386, que pasara a denominarse posteriormente 386DX, en este caso las mejoras eran importantes, lo fundamental es que extendi
el bus de datos, el de direcciones y los registros a 32 bits, ahora se poda direccionar toda la
memoria, que en este caso es nada menos que 4Gb, sin necesidad de segmentos. Adems la
velocidad pas a ser entre 16 y 40 MHz y el modo protegido, nico en el que se puede acceder a las mejoras de memoria, se hizo ms compatible con el modo real: no slo incluyeron la
instruccin para volver a modo real, sino que hicieron que los programas diseados para modo real pudieran funcionar en un submodo del modo protegido, el modo V86, pudiendo ejecutarse en multitarea varios de ellos o con programas diseados para el modo protegido. Por
alguna extraa razn, IBM en principio no emple este micro en sus ordenadores y hubo que
esperar a la llegada de los PS/2 para verlo en modelos de IBM.
Tres aos ms tarde del lanzamiento del 386DX, Intel sac al mercado el 386SX, para
competir con AMD que fabricaba micros 80286 ms rpidos y baratos que los de Intel. Bsicamente el 386SX es un 386DX por dentro y un 80286 por fuera, es decir, tiene todas las caractersticas del 386DX, pero se ha reducido el bus de datos a 16 bits y el de direcciones a 24,
lo que permite emplear como chips de apoyo los mismos que para el 80286 y sin embargo
tener un autntico micro de 32 bits.
El siguiente de la serie fue el 486DX, bsicamente igual al 386DX, pero con el coprocesador y 8Kb de memoria cach incorporada en el chip. Los modelos anteriores disponan de un
compaero llamado 8087, 80287, 80387 que permita realizar operaciones en coma flotante,
ya que el procesador slo es capaz de operar con enteros, en el caso del 486DX no era ya necesario, pues estaba incluido en el propio procesador. La memoria cach era en este modelo
casi imprescindible, era el primero que se acercaba a los procesadores RISC, era capaz de
ejecutar algunas de sus instrucciones en tan slo un ciclo de reloj, y para poder hacer eso se
necesita tener los datos en el propio procesador, sin necesidad de ir a buscarlos a la memoria.
Empez a funcionar a 20MHz y lleg hasta los 50MHz.
Posteriormente y de modo anlogo al caso del 386SX, Intel sac una versin reducida del
486DX, llamada 486SX, a la que se le haba quitado el coprocesador. Tambin comercializ
un 487SX, que era en realidad un 486DX que adems desactivaba el 486SX junto al que se
instalaba.
Posteriormente aparecieron los 486DX2 y 486SX2, eran iguales que sus homnimos sin el
2, pero internamente doblaban la velocidad del reloj; as el 486DX2-66 funcionaba internamente a 66MHz y externamente a 33MHz igual que el 486DX-33, con ello y gracias a los
8Kb de memoria cach interna casi duplicaba el rendimiento de un 486DX-33. Ms adelante
aparecieron modelos 486DX4 que en realidad multiplicaban por 3 la frecuencia externa de
funcionamiento, es decir un 486DX4-100 funcionaba a 33MHz por fuera y a 100MHz por
dentro, AMD lleg incluso a fabricar 486DX5-133 que funcionaban a 33MHz por fuera y
133MHz internamente.
33
Apuntes de Informtica
En sus batallas legales con Cyrix y AMD para que no pudieran usar el mismo nombre en
los procesadores compatibles que fabricaban, no consigui que le dejaran usar los nmeros
386, 486, etc. como marca registrada, por tanto cambi la numeracin por una palabra como
Pentium que s le fue posible registrar como marca. Por eso los procesadores compatibles
Pentium de Cyrix se llaman 6x86 y los de AMD K5 y K6.
Los primeros Pentium aparecieron el ao 1991 y funcionaban a 60 y 66MHz (tanto interna
como externamente), las mejoras ms significativas de los mismos eran: un bus de datos de 64
bits, un tamao doble de la cache interna, pasando a 16Kb, 8Kb para datos y otros 8Kb para
cdigo, una unidad doble de operaciones con enteros, lo que le permite ejecutar simultneamente 2 instrucciones por ciclo de reloj (es lo que se llama superescalar) y diversas mejoras
en el rendimiento, como prediccin de saltos, etc.
Los siguientes microprocesadores fueron
el Pentium Pro, que cuenta en su interior no slo con la cache L1, sino tambin con
256 o 512Kb de cach L2, Utiliz encapsulado distinto del Pentium.
el Pentium MMX, que incorpora 57 nuevas instrucciones que operan con varios enteros a la vez, utilizando para ello los 64 bits de la mantisa de los registros del coprocesador, que pueden dividir en 8 registros de 8 bits, 4 de 16 o 2 de 32 y operar simultneamente con ellos. Utiliz el mismo encapsulado que el Pentium y se fabrico hasta
233 MHz (velocidad interna, la velocidad externa era 66 MHz).
El Pentium II, que es bsicamente un Pentium Pro con instrucciones MMX.. El Pentium MMX se fabrica hasta 233MHz y el Pentium II hasta 450MHz. Como en el caso
de los 486 estas velocidades son internas, externamente funcionan a 66MHz o a
100MHz (Pentium II, desde el 350MHz).
El Pentium III se lanz 28 de febrero de 1999 con velocidades de 450, 500 y 550
MHz, aunque posteriormente alcanz 1 GHz. Este procesador de Intel no descubre
ninguna arquitectura innovadora: simplemente, se trata de un Pentium II modificado
para emplear un conjunto de 70 nuevas instrucciones para la aceleracin de grficos
3D, reproduccin de vdeo y sonido digital, tratamiento de imgenes y reconocimiento
de voz. Otra caracterstica, que provoc cierto revuelo entre los consumidores y algunos medios informativos, fue la inclusin en cada procesador Pentium III de un nmero de serie nico. El nmero de serie lo lea el software con el fin de utilizarlo para diversos fines como, por ejemplo, realizar una identificacin de un usuario en una red
local o en Internet. Levant airadas crticas entre los grupos defensores de la privacidad de los usuarios de Internet, por lo que Intel decidi que dicha caracterstica se
deshabilitar por defecto en los Pentium III de nueva fabricacin y que fuera el usuario quin la activara mediante un software diseado para tal efecto.
TEMA 2 El procesador
de esta tecnologa de proceso, con el que el procesador lograr alcanzar los 42 millones de
transistores.
Todo lo anterior se puede resumir en las siguientes tablas.
Fecha
Velocidad
Introduccin
4004
15-11-71
108 KHz
8008
1-4-72
108 KHz
8080
1-4-74
2 MHz
8086
8-6-78
5 MHz 8 MHz
8088
1-6-79
5 MHz 8 MHz
80286
1-2-82
8 MHz 16 MHz
386DX
17-10-85
16 MHz 33 MHz
386SX
16-6-88
16 MHz 20 MHz
486DX
10-4-89
16 MHz 33 MHz
486SX
22-4-91
16 MHz 33 MHz
Pentium
22-3-93
60 MHz 200 MHz
Pentium Pro
27-3-95
150 MHz 200 MHz
Pentium MMX
enero 97
166 MHz 233 MHz
Pentium II
mayo 97
233 MHz 450 MHz
Celeron
abril-98
266 MHz- 850 MHz
Pentium III
28-2-99
450 MHz- 1 GHz
Pentium IV noviembre-2000 1.30 GHz- 1.70 GHz
micro
Micro
Bus
datos
4 bits
8 bits
8 bits
16 bits
8 bits
16 bits
32 bits
16 bits
32 bits
32 bits
64 bits
64 bits
64 bits
64 bits
64 bits
64 bits
64 bits
Memoria
fsica
640 bytes
16 Kb
64 Kb
1 Mb
1 Mb
16 Mb
4 Gb
16 Mb
4 Gb
4 Gb
4 Gb
4 Gb
4 Gb
4 Gb
4 Gb
4 Gb
4 Gb
Memoria
virtual
1 Gb
64 Tb
64 Tb
64 Tb
64 Tb
64 Tb
64 Tb
64 Tb
64 Tb
64 Tb
64 Tb
64 Tb
Transistores
2.300
3.500
6.000
29.000
29.000
134.000
275.000
275.000
1.200.000
1.185.000
3.100.000
5.500.000
4.500.000
7.500.000
19.000.000
28.000.000
42.000.000
Bus de Direcciones
Bus de Datos
8086
8088
20
20
16
8
80286
24
16
PC
PC-XT
PC-AT
Multitarea, Modo Real y Modo Protegido
80386
80486
P5
(PENTIUM)
P6
(PENTIUM
SX
DX
SL
SX
SL
DX
DX2
16
32
32
SIMILARES AL 80386
80386 + COPROCESADOR +
8K DE CACHE
32
64
32
64
PRO)
PENTIUM II
32
64
PENTIUM III
32
64
PENTIUM 4
32
64
PS-2
Bajo consumo
Bajo consumo
Velocidad interna doble
Ms de una instruccin por ciclo de reloj
L1 16 K ; L2 512 K
Hasta 5 instrucciones por ciclo. Pos RISC.
L1 32 K ; L2 1 M
Instrucciones MMX.
Se conecta mediante Slot a la placa.
Velocidad de placa hasta 100 MHz
L1 32 K ; L2 512 K
Arquitectura P6
70 nuevas instrucciones para internet.
N de serie; Velocidad de placa hasta 133 MHz
L1 32 K ; L2 512 K
Tecnologa 0.18 m
Conexiones internas de aluminio
Pinchado en placa base;Memoria tipo RIMM
144 instrucciones nuevas
6 instrucciones por ciclo de reloj
L1 20 K ; L2 256 K
35