Está en la página 1de 15

2

EL PROCESADOR

2.1. Estructura de un ordenador propuesta por Von Neumann.


Un hito importante en la breve e intensa historia de los ordenadores es la idea de Von
Neumann, expuesta en 1946, de construir un ordenador de programa almacenado que sustituyera a los hasta entonces existentes, que trabajaban con programa cableado.
Antes de Von Neumann los programas se introducan en los ordenadores estableciendo
manualmente las conexiones entre las diferentes unidades. La memoria se utilizaba nicamente para introducir los datos, de forma similar a lo que se hace con las calculadoras de bolsillo. La idea de Von Neumann consisti en conectar permanentemente determinadas unidades del ordenador, colocndolas bajo un control central, donde las instrucciones eran tratadas
secuencialmente en un ciclo repetitivo de operaciones. Los dos puntos ms importantes a tener en cuenta son:
a) Todos los datos y las instrucciones se representan en cdigo binario y se almacenarn
juntos en la memoria del ordenador.
b) El ordenador no har distinciones entre datos e instrucciones.
Von Neumann propuso una estructura concreta para los ordenadores, y los que se ajustan
a esa estructura se conocen como mquinas de Von Neumann. Una mquina de Von Neumann consta de 3 unidades bsicas: Procesador, tambin llamado CPU (siglas de Unidad
Central de Proceso, en ingls Central Process Unit), memoria y unidad de E/S, que sern estudiados en este tema y en sucesivos. La unidad de E/S permite que el ordenador reciba y enve informacin al exterior.

21

Apuntes de Informtica

PROCESADOR

MEMORIA

Unidad de control
(UC)
(1)
Unidad aritmticolgica (ALU)

UNIDAD DE E/S

(2)

Puerto salida
Puerto entrada

(1) Buses de datos y direcciones internos


(2) Buses de datos y direcciones externos

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)

2.2. Concepto de procesador. Objetivos de un procesador.


El objetivo principal de un procesador es el de ejecutar los distintos pasos de una tarea.
Debe tambin conseguir funcionar lo mas rpidamente posible, consumiendo la mnima potencia y evitando errores y paradas. Para ello, el procesador utiliza una serie de operaciones
elementales, a partir de las cuales se pueden resolver tareas ms complejas. Cada una de las
operaciones elementales tiene un cdigo binario y puede tener uno, o varios operandos sobre
los que actuar.
El procesador dispone habitualmente de un conjunto reducido de posiciones de memoria
internas, que se conocen como registros, y que le permiten almacenar los datos y los resultados con los que est trabajando en ese momento.
El procesador, o CPU, consta bsicamente de dos partes: La unidad aritmtica-lgica
(ALU, es decir aritmetic-logic unit) y la unidad de control (CU o control unit). Ambas las
veremos a continuacin con ms detalle.

2.3. La unidad aritmtica lgica.


La unidad aritmtica lgica o ALU de nuestro ordenador es la encargada de realizar las
operaciones aritmticas (suma, resta, comparacin, producto, cociente) y lgicas (y, o, no, o
exclusivo). Est formada por el acumulador, un conjunto de circuitos lgicos, y el registro de
cdigos de condicin o flags.
En los procesadores ms primitivos el acumulador era el registro que contena obligatoriamente uno de los operandos y el resultado de las operaciones. Los procesadores ms modernos no tienen un registro tan especializado, normalmente cualquier registro puede contener
los operandos y los resultados de las operaciones.
Los cdigos de condicin (o flags de estado del programa), informan acerca de la operacin ms reciente que ha ejecutado la ALU. Los flags ms importantes son C (carry), Z (zero)
y OV (overflow). El primero (carry) se activa (pone a 1) cuando el resultado de la ltima ope23

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.

2.4. La unidad de control.


La unidad de control, reducida a la mnima expresin, consta de contador de programa
(normalmente llamado PC), decodificador de instrucciones, puntero de pila (comnmente
llamado SP, en ingls Stack Pointer) y, opcionalmente, de registro ndice.
La unidad de control tiene, as mismo, algo muy necesario, que es el generador de impulsos de reloj, encargado de sincronizar el funcionamiento del procesador. Para ello, se emplea un cristal de cuarzo externo a la CPU que le suministra a travs de una de sus patas una
onda cuadrada. Cada perodo de la onda recibe el nombre de ciclo de reloj, y se utiliza su frecuencia para medir la velocidad del procesador. Para realizar cualquier operacin, el procesador tiene unas tablas en las que se especifica los ciclos de reloj que dura, la unidad de control
coloca los operandos necesarios para la misma, donde se necesiten y espera los ciclos que
marca la tabla, para darla por concluida.
Las funciones de la unidad de control son las de controlar el funcionamiento paso a paso
del procesador, mientras ste ejecuta cada una de las instrucciones de un programa. De forma
ms especifica, las funciones de la unidad de control son:
a) Controlar la secuencia en que se ejecutan las instrucciones.
b) Controlar el acceso del procesador a la memoria principal.
c) Regular las temporizaciones de todas las operaciones que ejecuta el procesador.
d) Enviar y recibir seales de control desde los perifricos.
El contador de programa, o PC, contiene la direccin de la instruccin del programa que el
procesador ejecuta en cada momento. Una vez que se ha tomado la instruccin de la memoria
principal se incrementa el contenido del contador del programa. Dependiendo del tamao en
bytes de las instrucciones que se ejecuten, as ser incrementado el contador de programa.
Una vez leda la instruccin, sta pasa a la unidad de decodificacin, que es la encargada
de ver que tipo de instruccin es, que operandos tiene, etc. Finalmente pasa a la unidad de
ejecucin donde es ejecutada. Si para ejecutar la instruccin se precisa realizar alguna operacin aritmtica o lgica se pasa el control a la ALU para que la realice. Despus con el PC ya
incrementado empieza un nuevo ciclo para ejecutar la instruccin siguiente. As pues, el procesador ejecuta los programas de modo secuencial, no obstante existen instrucciones que
permiten evitar esto, son las instrucciones de salto.
24

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.

2.5. Un modelo de ordenador: Buses.


Hasta ahora nos hemos ocupado de cmo es el procesador por dentro. Veamos ahora como se comunica con el exterior.
El procesador est encapsulado en plstico y tiene una serie de patas a travs de las que se
conecta al resto de componentes del ordenador. Se puede dividir el conjunto de patas en tres
25

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.

2.6. Lenguaje ensamblador. Modos de direccionamiento.


Las instrucciones que controlan el funcionamiento paso a paso de un procesador se escriben en lenguaje mquina o cdigo mquina, siendo estas instrucciones desarrolladas en funcin de la arquitectura del ordenador. En consecuencia, cada tipo de procesador tiene su propio lenguaje mquina. Siendo generales las siguientes caractersticas para todo lenguaje mquina:
a) Las instrucciones en lenguaje mquina estn en cdigo binario.
b) Cada instruccin en lenguaje mquina tiene una parte dedicada al cdigo de operacin
(que indica la operacin que va a llevarse a cabo) y, otra parte dedicada al operando, u
operandos, que necesita para hacer la operacin.
c) Cada procesador tiene su propio juego de registros y su propio cdigo mquina. Los
programas realizados especficamente para un procesador slo pueden funcionar en l.
En los tiempos primitivos de los ordenadores, se escriba directamente en lenguaje mquina, es decir, el programador deba mirar en unas tablas los cdigos binarios de cada instruccin e introducirlos de alguna forma en el ordenador. Pero los ordenadores son los aparatos
ideales para realizar cosas como mirar en una tabla y traducir con ella unos smbolos por
otros, por tanto, hoy nadie programa en lenguaje mquina, cada instruccin tiene un mnemnico, escrito en un lenguaje ms similar al de los humanos: ADD sirve para sumar, SUB para
restar, etc.; es lo que se conoce con el nombre de lenguaje ensamblador, y un programa de
ordenador, llamado tambin ensamblador, traduce las citadas expresiones al cdigo binario
que puede usar despus la CPU, es decir, al cdigo mquina.
Los operandos de las instrucciones en lenguaje mquina pueden estar en la memoria principal del ordenador, en registros, o en la propia instruccin. Los mtodos para especificar los
operandos se conocen habitualmente como modos de direccionamiento, aunque haya casos en
que no se empleen direcciones de memoria. Cada procesador tiene sus propios modos de direccionamiento, aqu estudiaremos los ms comunes.
Los ordenadores con uno o dos operandos por instruccin son los ms frecuentes, aunque
existen ordenadores con ms operandos por instruccin, e incluso, sin referencia a operandos
en la instruccin; en estos los operandos se obtienen de la memoria, considerando sta como
una pila. Nosotros nos limitaremos a considerar el caso de operaciones con uno o dos operandos.
A continuacin se dan ejemplos de instrucciones escritas en lenguaje ensamblador para la
familia 80x86 (cada procesador tiene tambin su propio lenguaje ensamblador), que hacen
referencia a ninguno, a uno, o a dos operandos.

28

TEMA 2 El procesador

Instrucciones sin operandos: CLC


Borra (CLear) el flag Carry, en realidad tiene un operando que es el carry, pero forma
parte del cdigo de la instruccin.
Instrucciones de un operando: INC I
Incrementa en 1 el contenido de la posicin de memoria o registro I. Las variantes
que se admitan para el valor de I dependen de los modos de direccionamiento del
procesador.
Instrucciones de dos operandos: ADD I,J
Suma los nmeros I y J (en registros o en memoria), y almacena el resultado en I. Hay
procesadores que funcionan con el esquema inverso, es decir el operando en el que
queda el resultado es el que se pone en segundo lugar, la que se ha descrito es la emplean los procesadores de Intel.
Veamos ahora los modos de direccionamiento ms comunes. Para ello vamos a usar la
sintaxis de los procesadores Intel de la familia 80x86 simplificada. Supondremos que el procesador tiene un bus de datos de 16 bits, un bus de direcciones tambin de 16 bits y registros
de 16 bits llamados AX, BX, CX, DX, que son a su vez divisibles en 2 mitades de 8 bits, AH
(parte alta) y AL (parte baja) para AX y de forma similar para el resto. Usaremos en todos los
casos (salvo en el relativo) la instruccin MOV que sirve para mover datos y tiene dos operandos, uno fuente, que es el dato que se copia, y otro destino, que es donde queda la copia.
Supondremos que el destino es siempre un registro, los procesadores de Intel slo permiten
que uno de los dos operandos este en memoria, el otro obligatoriamente es un registro. Todos
los nmeros empleados estn en hexadecimal.
DIRECCIONAMIENTO INMEDIATO
Este es el modo de direccionamiento ms sencillo. Un operando inmediato es un dato
que forma parte de la instruccin en lenguaje mquina. Por ejemplo MOV AX,5 pone
el nmero 5 en el registro AX. El nmero 5 forma parte del cdigo de la instruccin.
DIRECCIONAMIENTO REGISTRO
El operando no est en memoria, est en un registro. Por ejemplo la instruccin MOV
AX,BX copia el contenido del registro BX al registro AX.
DIRECCIONAMIENTO DIRECTO O ABSOLUTO
La instruccin lleva un operando que es la direccin de memoria del dato. Por ejemplo
MOV AX,[1234], lee el dato de 16 bits contenido en las posiciones de memoria 1234
y 1235 y lo pone en AX (en el caso de los procesadores Intel el contenido de la posicin baja 1234 va a la parte baja de AX: AL y el de la alta 1235 a AH, hay otros procesadores que funcionan a la inversa).

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.

2.7. Los procesadores reales, procesadores dedicados y de propsito general.


En muchos procesadores reales el contador de programa, el registro ndice, el puntero de
pila y el acumulador no son registros especficos dedicados a esas tareas, sino que forman
parte de un conjunto de registros de propsito general. Es decir, cualquier registro de propsito general se puede emplear para la tarea especifica de registro acumulador u otro de los
citados.

30

TEMA 2 El procesador

Algunos procesadores tienen hardware dedicado a realizar operaciones aritmticas, como


por ejemplo la multiplicacin en coma flotante, en vez de realizarlo por software, consiguiendo por tanto realizarlo en menos tiempo. Son pues ms potentes, pero obviamente ms caros.

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.

2.8. La familia de procesadores Intel 80x86.


En este ltimo apartado vamos a estudiar algo ms detalladamente la evolucin histrica
de los procesadores de Intel, empleados en los ordenadores IBM PC y compatibles.
El primer microprocesador de la historia, aunque hay alguna disputa al respecto, fue el
4004, creado por Intel a peticin de un fabricante de calculadoras japons, pero que al final no
se lleg a usar, era un micro de 4 bits y fue diseado a finales del ao 1971.
El sucesor del 4004 fue el 8008, diseado al ao siguiente, ya era un procesador de 8 bits,
pero tampoco tuvo gran difusin.
El primer procesador que se empleo en grandes cantidades fue el 8080, fabricado el ao
1974, tena un bus de datos de 8 bits, un bus de direcciones de 16 bits y 7 registros de 8 bits
de propsito general, ms el contador de programa, puntero de pila y registro de flags. Funcionaba a 2MHz.
El sucesor del 8080 fue el 8085 que casi no aportaba ninguna novedad con respecto al
anterior y que por tanto no merece mayor mencin.
El primer procesador de la familia 80x86 fue el 8086, fabricado el ao 1978, era ya un
procesador de 16 bits, que tena un bus de datos de 16 bits, un bus de direcciones de 20 bits y
31

Apuntes de Informtica

7 registros de 16 bits de propsito general, adems de los consabidos PC (que rebautizaron


como IP), SP y flags. Funcionaba a 5MHz y posteriormente a 8MHz. Debido a que los registros no tienen suficiente capacidad para contener una direccin de memoria, emplea un modelo segmentado. Existen 4 registros extra de 16 bits DS, ES, CS y SS, llamados segmentos
de datos, extra, de cdigo y de pila, que sirven para poder formar las direcciones de 20 bits.
Para formar una direccin el procesador toma un registro de segmento, lo multiplica por 16
(con lo que obtiene un nmero de 20 bits) y le suma un offset de 16 bits, obteniendo as una
direccin final de 20 bits. Por este procedimiento se puede acceder a 4 zonas de memoria de
64Kb dentro del rango de 1Mb, de ellas una est reservada para el cdigo (la apuntada por
CS) y otra para la pila (la de SS), si se quiere acceder a ms memoria hay que cambiar los
registros de segmento.
Un ao despus apareci el 8088, idntico al anterior, salvo por tener un bus de datos de 8
bits, lo que lo haca muy apropiado para construir un ordenador personal, ya que para manejar
los perifricos poda ayudarse por los chips de 8 bits desarrollados para los microprocesadores
de 8 bits como el 8080, por ello fue el elegido por IBM para construir su ordenador IBM PC,
PC/XT, porttil y en el PCjr ( PC Junior ). La velocidad tambin se mantuvo en 5 y 8 Mhz.
El siguiente miembro de la familia, el 80186, ha pasado por el mundo del PC, prcticamente desapercibido. Supona respecto a sus predecesores, un aumento de velocidad pequeo
y no rentaba su fabricacin para las mejoras conseguidas, por lo que se instal en muy pocos
aparatos. Sus buses de datos y de direcciones eran iguales que en los micros anteriores. Tambin existi el 80188.
El 80286 fue un avance importante en la historia del PC, comercializndose a mediados
del ao 1.984 bajo el modelo AT y todos los compatibles con l.
Es un microprocesador que trabaja con un bus de datos de 16 bits, con un bus de direcciones de 24 bits (por lo que puede trabajar con una capacidad de memoria de 16Mb) y una velocidad de reloj que oscila entre 8 y 16Mhz. Adems de la mejora de velocidad (superior a lo
que indican los MHz del reloj), introdujo un nuevo modo de funcionamiento, el modo protegido, el modo compatible con el 8086 se llam modo real. El modo protegido estaba diseado
para trabajar en multitarea. La multitarea es la capacidad de una CPU de desarrollar varias
tareas al mismo tiempo (como por ejemplo realizar un dibujo, realizar un presupuesto en una
hoja de clculo, buscar un dato en una base de datos, etc.), en realidad el microprocesador
slo es capaz de realizar una sola cosa a la vez y se simula que hace varias mediante rpidos
cambios de atencin del micro a los distintos programas que estn funcionando. El nombre de
modo protegido deriva de que el procesador debe tener mecanismos especiales para proteger
unas tareas de otras y conseguir, por ejemplo, que cada una no pueda escribir ms que en su
propia memoria, o que s una aplicacin se cuelga (deja de funcionar por alguna razn), eso
no afecte al resto del sistema. En modo protegido adems poda disponer de memoria virtual,
es decir, poda simular que dispona de ms memoria de la que tena fsicamente, usando para
ello un fichero en el disco duro, en el que se almacenan los datos y programas que deberan
estar en memoria, pero que no hace falta que estn, pues no se necesitan en ese momento.
No obstante el 80286 tiene varios fallos, el primero y principal es que los programas diseados para funcionar en modo real no pueden hacerlo en modo protegido y viceversa, adems
el aumento de memoria, la multitarea, la memoria virtual, etc. es slo posible para los programas en modo protegido. Adems, segua empleando segmentos de 64Kb, lo cual es tolerable en un micro como el 8086 pensado para la monotarea, pero no lo es tanto en un micro
32

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.

El ltimo en salir al mercado ha sido el Pentium 4 disponible a velocidades de hasta 1.70


GHz, aunque parece que antes de finales del 2001 lo lanzarn a 2 GHz. Este chip es de diseo
totalmente nuevo. La mayor ventaja con respecto al anterior es que se ha aumentado la longitud de la pipeline, lo que permite alcanzar mayores velocidades de reloj (cada instruccin se
ejecuta en ms etapas, cada una de ellas ms sencilla), el inconveniente es que cuando falla
una prediccin de salto la penalizacin es mayor, por eso a igualdad de velocidad, es ms
lento que el Pentium III. Actualmente se fabrica con 0,18 micras, aunque la compaa tambin
ha anunciado la finalizacin de las pruebas sobre 0,13 micras, completando as el desarrollo
34

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

Equipo - Otras caractersticas

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

También podría gustarte