1.- INTRODUCCIÓN
Desde la aparición del 8088 hace los principios de
funcionamiento de los micros no se han modificado mucho, a pesar
de que ahora se ha llegado a la quinta generación de estos
chips y se ha profundizado en todo lo referente a las prestaciones,
en tema en los que hace diez años uno ni tan sólo
se atrevía a soñar. De todas maneras estas
modificaciones se refieren especialmente a la velocidad de
trabajo del procesador con el
cual se maneja el DOS, no al concepto
básico, por lo menos en lo referente al modo
real.
Echemos de todas formas, en primer lugar, un vistazo a
la historia del
desarrollo de
los procesadores
Intel.
La tarea del procesador es la
de tratar las series de órdenes en lenguaje
máquina, pues el lenguaje
máquina es el único que entiende el procesador. Las
instrucciones en el lenguaje
máquina no son exactamente iguales para todos los
ordenadores, sino que solo son validas para el tipo de microprocesador
en cuestión. Los diferentes miembros de la familia
80xxx trabajan sin embargo con el mismo lenguaje
máquina, lo que permite que estos sean compatibles entre
ellos.
El primer representante de esta familia, el 8086,
se desarrollo ya
en el año 1978. Sus sucesores fueron modificados de muchas
maneras, y en parte fueron modificados de forma radical, pero sin
perder la compatibilidad con los anteriores. En el caso del 8088
esto significó un paso hacia atrás, ya que si bien
el 8088 disponía del mismo grupo de
instrucciones y la misma estructura
interna que el 8086, se comunicaba con la memoria
mediante un bus de datos de 8 bits,
en lugar de 16 bits.
El resto de miembros de esta familia, son
desarrollos posteriores del 8086. De manera que por ejemplo el
80186 dispone de nuevas funciones
adicionales, mientras que al 80286 se le crearon mas registros en
comparación al 8086, así como también se le
amplió el área de direcciones. La novedad mas
decisiva del 80286 respecto a sus predecesores la representa el
modo protegido, que sin embargo no puede utilizarse con el
DOS.
Al 80286 le siguió el 80386, que marcó un
notable salto en la capacidad de rendimiento. Continuó
desarrollando el modo protegido y fue el primero de disponer de
un procesador Intel
de registros de
32 bits, que sin embargo no pudo utilizarse correctamente en la
programación del DOS. Este procesador existe
también en una versión SX y DX, que se diferencian
únicamente en la frecuencia y en el tamaño del
bus de dato; el
SX trabaja con un bus de datos de 16 bits,
mientras que el DX puede transmitir de una sola vez una palabra
de 32 bits mediante su bus.
El micro que sigue al 80386, también llamado
"i486" es el 80486. Este se distingue especialmente del 80386 por
la integración del coprocesador
numérico 80387, por la preparación de un
código-caché y el tratamiento más
rápido de muchas instrucciones en lenguaje
máquina, siendo también compatible con el
8086.
El hito técnico actual lo marca el procesador
Pentium que ha
mejorado la velocidad de
proceso
interna en relación con el 486. En determinadas
situaciones el procesador esta
en situación de procesar dos ordenes consecutivas al mismo
tiempo,
siempre y cuando la segunda no dependa del resultado de la
primera.
También la denominación en nueva en el
Pentium puesto
que se esperaba que tras el 80486 el sucesor se
denominaría 80586. Intel sin embargo rompió con la
tradición puesto que nombres como 8088 o 80486
no
pueden ser patentados. Esto lo aprovecharon durante
largo tiempo otros
fabricantes de estos componentes para distribuir procesadores
compatibles con Intel, con otros nombres parecidos.
2.- REGISTROS DEL
PROCESADOR
En el centro de todos los procesadores se
encuentran sus registros,
"variables de
hardware", en los
cuales pueden cargarse datos de la memoria,
tratarlos allí con l a ayuda de las instrucciones del
lenguaje
máquina y finalmente volverlos a escribir en la memoria.
Esto es mucho más rápido que la manipulación
de información dentro de la memoria, ya
que los registros se
evacuan directamente en el procesador y por
lo tanto no es necesario acceder al bus para poner su contenido
a disposición de las instrucciones en lenguaje
máquina. Por esta razón los registros del
procesador juegan
un papel muy
importante para la programación del sistema, ya que
es mediante estos registros que se
desarrollan el flujo de información entre un programa y las
funciones del
DOS y BIOS que este
llama.
Todos los registros tienen
un tamaño de 16 bits (2 bytes). Así pueden
registrar un valor entre 0
y 65535 (111111111111111b, o FFFFh).
3.- El Procesador
386
El microprocesador
386 (también conocido como 386 DX) supone un paso muy
importante frente al 286. Hasta entonces, tanto los micros 8088 y
8086 como el 286 eran microprocesadores
de 16 bits; trabajaban con 16 bits a la vez en cada ciclo de
reloj. Por el contrario, el 386 es un microprocesador
de 32 bits, que procesa 32 bits simultáneamente en cada
ciclo de reloj. Los ordenadores 386 tienen una velocidad
desde 16 a 50 Mhz.
El bus de direcciones del 386
tiene 32 bits. Con 32 bits se pueden redireccionar 232
celdas de memoria lo que
equivale a 4096 MB. También en este caso los primeros 1024
k se reparten como los micros 80886 y 286: 640k de memoria
convencional y los 364k restantes de memoria
superior.
El microprocesador
80386 esta diseñado para soportar aquellos sistemas
operativos optimizados para multitarea. El micro 80386 es
capaz de direccionar hasta 4 gigabytes de memoria física y 64
tetrabytes de memoria
virtual. La gestión
de memoria integrada
y arquitectura
de protección incluye registros de
traducción de direcciones y mecanismo de protección
para soportar sistemas
operativos y hardware avanzado de
multitarea.
El transvase entre instrucciones – pipelining -, una
elevada anchura del bus y una traducción
de direcciones en la pastilla acortan significativamente el
tiempo medio
de ejecución de la instrucción, manteniendo un alto
rendimiento del sistema. Estas
características de diseño
de arquitectura
habilitan al 80386 a ejecutar instrucciones a una frecuencia de 3
a 4 millones por segundo.
Características adicionales se incluyen autotest,
acceso directo a la memoria
interna (cache) donde se realiza la traducción de
página y cuatro nuevos registros de
"Breakpoint". El 80386 tiene el código objeto compatible
con el 8086, 8088 y 80286.
El procesador
386SX
Los microprocesadores
386SX aparecieron después que el 386 como una
solución intermedia en precio y
prestaciones
entre el 286 y el 386. Los micros 386 puros (386DX) necesitan a
su alrededor una circuiteria de 32 bits, mientras que los SX
necesitan una circuiteria de 16 bits, mucho mas barata. De esta
forma, los fabricantes podían utilizar todos los
componentes y la circuitería de 16 bits que usaban para un
286, pero ahora incorporando un microprocesador
de 32 bits.
La diferencia entre un ordenador 386DX y un ordenador
386SX se percibe en la velocidad del
ordenador, pero desde el punto de vista de las aplicaciones que
se pueden ejecutar, es totalmente, indiferente tener un microprocesador
386DX que un 386SX.
El procesador
386SL
El microprocesador
386SL es equivalente al 386SX con la particularidad de estar
diseñado especialmente para los ordenadores
portátiles, cuidando sus especiales necesidades de baja
potencia y
consumo. El
386SL posee un modo sleep que utiliza menso energía
durante su funcionamiento. Además, existen nuevos recursos para
poder
minimizar el funcionamiento del ordenador (el consumo de
energía) cuando no se utiliza. El resultado es que la
batería puede doblar su tiempo en un
portátil con 386SL frente a un 386SX. Los microprocesadores
386SL sólo se utilizan en portátiles y notebooks y,
hoy en día, son los únicos microprocesadores
386 en los que continúa desarrollando y
trabajando.
Tipos de datos
La pastilla microprocesadora 80386 soporta varios
tipos de datos
además de los soportados por sus predecesores (80×86).
Soporta enteros con signo y sin signo de 32 bits y campos de bits
de 1 a 32 bits de
longitud. También soporta los tipos de punteros
estándares, así como un puntero de desplazamiento
de 32 bits y un puntero completo de 48 bits.
Otros registros de 32
bits (ESI, EDI, EBP, ESP) no se pueden dividir en registros de 16
bits. Por otra parte, el puntero de instrucciones EIP,
también es un registro de 32
bits, cuyo contenido se modifica dependiendo de los cambios que
experimente el flujo del programa que el
procesador ejecute. Por lo tanto, EIP se modifica
implícitamente mediante instrucciones en código
máquina.
ARQUITECTURA BASE
La pastilla microprocesadora 80386 proporciona al
programador 32 registros. Estos 32 registros pueden ser divididos
en siete categorías principales.
– Registros de propósito general
– Registros de segmentos
– Puntero de instrucción y
señalizaciones
– Registros de control
– Registros de direcciones del sistema
– Registros de test.
Estos registros son un superconjunto de los registros
del 8086 y el 80286; además, todos los registros de 16
bits del 8086 y el 80286 están contenidos en el microprocesador
80386 de 32 bits.
REGISTROS DE PROPOSITO GENERAL
Los ocho registros de propósito general se
utilizan de forma análoga a los ocho registros de
propósito general asociados al 80286, excepto que los
registros tienen ahora 32 bits. Estos registros son capaces de
soportar operandos de datos de 1, 8, 16
y 32 bits y campos de bits de 1 a 32 bits. Los ocho registros son
el EAX (acumulador), EBX (base), ECX (contador), EDX (datos), ESP
(puntero de pila), EBP (puntero base), ESI (índice fuente)
y EDI (índice destino).
Para acceder a los 32 bits de un registro, todas
las referencias del registro deben
comenzar "E". Cada uno de los ocho registros de propósito
general puede ser descompuesto en sus equivalentes de 16 bits del
8086/80286 referenciando los registros sin usar el prefijo
"E".
REGISTOS DE SEGMENTOS
El microprocesador
80386 contiene seis registros segmento de 16 bits. Los seis
registros segmento mantiene los valores
del selector en las posiciones de memoria
actualmente direccionables. En modo de dirección real, un segmento puede variar
desde 1 byte hasta un tamaño de segmento máximo de
64 bytes, o 216. El direccionamiento en modo protegido
habilita rangos de segmento desde 1 byte hasta un máximo
de 4 gigabytes, o 232 bytes.
4.- Tecnologías
Paralelas
COPROCESADOR MATEMÁTICO
El coprocesador matemático esta diseñado
para que funcione en paralelo con el microprocesador.
El conjunto de instrucciones incluye muchas operaciones
extremadamente potentes en coma flotante.
Cuando el microprocesador
encuentre una instrucción en coma flotante, envía
el código de operación necesario y direcciones de
memoria de
operandos al coprocesador matemático. Esto libera al
microprocesador
de ejecutar la siguiente instrucción, mientras el
coprocesador matemático realiza simultáneamente el
cálculo
numérico.
El coprocesador matemático puede hacer peticiones
de acceso a memoria a
través de una canal de datos dedicado
permanente en el microprocesador.
OVERDRIVE
El nombre de OverDrive no corresponde
explícitamente a un microprocesador de Intel, sino que se
utiliza indistintamente para designar tanto un nuevo
zócalo que incluye algunas placas madres 486 como el
microprocesador que se puede insertar en dicho zócalo, que
no es otro que un 486DX2. En definitiva, OverDrive es
sinónimo de insertar un nuevo microprocesador en la placa
madre, ya sea en un zócalo vacío dispuesto para tal
fin o en el zócalo donde reside el antiguo
microprocesador. Hay que señalar que solo soportan
OverDrive las placas madres 486, ya sean 486DX o
486SX.
PROCESADOR Pentium
El Pentium es una
CPU que,
manteniendo la compatibilidad a nivel binario con procesadores
anteriores de la familia
80×86, introdujo en su día varias características hasta entonces desconocidas
para los programadores de esta serie de
micropocesadores.
Sin duda alguna, uno de los puntos más nefastos
de la arquitectura
80×86 es el limitado número de registros del procesador.
Debemos tener en cuenta que, sin embargo, esto es una
consecuencia lógica
al tratarse de una maquina CISC (Complex Instruction Set Chip).
Tradicionalmente los procesadores CISC
han estado dotado
de un menor número de registros a cambio de un
variado número de instrucciones, mientras que sus
competidores RISC (Reduced Instruction Set Chip) gozan de una
gran cantidad de registros a cambio de un
menor número de instrucciones.
El Pentium mantiene
el mismo juego de
registros que sus predecesores de 32 bits, el 386 y el 486, de
forma que el programador dispone de registros con una longitud de
32 bits. De estos registros 4 de ellos, denominados EAX, EBX, EFX
y EDX también se pueden manejar como registros de 16 bits,
tomando en dicho caso los nombre de AX, BX, CX, DX. Estos
últimos registros de 16 bits pueden manejarse,
además, como pares de registros de 8 bits: AX se divide en
AH y AL, BX se divide en BH y BL, CX se divide en CH y CL, y,
finalmente, DX lo hace en DH y DL.
Otros registros de 32 bits (ESI, EDI, EBP, y ESP) no se
pueden dividir en registros de 16 bits. Por otra parte el puntero
de instrucciones EIP, también es un registros de 32 bits,
cuyo contenido se modifica dependiendo de los cambios que
experimente el flujo del programa que el
procesador ejectute. Por lo tanto EIP se modifica
explícitamente mediante instrucciones como
CALL.
Para alcanzar un elevado rendimiento el Pentium es capaz
de ejecutar, en teoría,
dos instrucciones de forma simultánea ya que el procesador
dispone de dos unidades de enteros y una más de coma
flotante. Sin embargo la ejecución de mas de dos
instrucciones en paralelo tiene alguna restricciones, ya que el
Pentium impone
algunas condiciones para que esto sea posible. En concreto, solo
se pueden ejecutar dos instrucciones en paralelo si cualquiera de
ellas que sea dependiente de los resultados producidos por otra
anterior esta alejada de esta al menos tres
instrucciones.
Además el Pentium tiene
algunas instrucciones implementadas directamente en hardware y otras, debido a
su complejidad lo están en microcódigo. Si una de
las instrucciones a ejecutar esta implementada de esta
última forma no será posible la ejecución en
paralelo de dos instrucciones.
Intel dispone de modelos del
procesador Pentium
preparados para trabajar en equipos multiprocesador con hasta
cuatro CPUs. La principal diferencia entre un Pentium normal y
otro preparado para multiproceso, es la integración en el chip de la APIC
(Advanced Programmable Interrupt Controller).
Mediante la APIC integrada en el Pentium se forma
un bus especial
entre todos los procesadores
instalados en el sistema. A
través de este bus un procesador puede
enviar mensajes y recibirlos de otra CPU.
El Pentium dispone
también de una cache integrada de 16 KB, dividida en dos
bloques de 8 KB cada una, estando destinado uno de ellos a
código y, el otros, a datos. La
actualización en memoria RAM de
los datos contenidos
en la cache interna se lleva a cabo mediante los sistemas Write
Back o Write Through, ya que, al menos en modo
protegido, esta característica es modificable mediante
software, si bien
estos cambios no pueden realizarlos las aplicaciones ya que se
requiere un nivel de privilegio que, normalmente, no esta
disponible para las aplicaciones de los usuarios y solo
determinadas capas del sistema operativo
son capaces de acceder a esta funcionalidad del
procesador.
Desde el punto de vista del rendimiento, es mas
eficiente la política Write
Back de actualización de la cache y de la memoria RAM del
ordenador. Mediante este sistema el
contenido de la cache solo se vuelca a la RAM del sistema cuando
una línea de la cache es marcada como no valida.
Por otro lado el sistema Write
Through, refleja de forma inmediata en la RAM del ordenador
cualquier cambio que se
produzca en la cache del procesador, lo cual produce un mayor
consumo de
ancho de banda del bus de la CPU.
Al contrario que ocurría con el 486, Intel no ha
publicado la información técnica necesaria para
manejar directamente por software la memoria
interna cache del procesador. Por lo tanto, algunos
trucos, que hacían posible dejar residentes de
forma permanente en la caché interna del 486 un bloque de
código de datos, no puede
realizarse en el Pentium.
| Fecha de | Velocidad del Reloj | Ancho del Bus | Numero de transistores | Memoria direccionable | Memoria Virtual | Breve Descripción |
Pentium® Processor | 3/22/93 | 60MHz 66MHz 75MHz 90MHz 100MHz 120MHz 133MHz 150MHz 166MHz | 32 bits | 3.1 million (.8 micron) | 4 gigabytes | 64 terabytes | La Arquitectura Superescalar trajo la 5º de la del procesador Intel486 a 33-MHz |
5.- Nuevas Tecnologías.
5.1 Procesadores
MMX
La tecnología MMX es un
mejor realce a la arquitectura
Intel que convertirá a los PCs en una mejor plataforma de
Multimedia y
Comunicaciones. Es el más significativo en
la arquitectura
Intel desde el procesador i386. Este realce incluye 57 nuevas
instrucciones orientadas a operaciones
altamente paralelas con Multimedia y los
tipos de datos en
las Comunicaciones. Estas instrucciones usan una
técnica conocida como SIMD (Simple Instrucción,
Múltiples Datos) para dar
un mejor rendimiento a la Multimedia y la
computación de las comunicaciones. Los procesadores que
soportan la tecnología MMX
serán completamente compatibles con las generaciones
anteriores de la Arquitectura
Intel y el software
instalado.
La tecnología MMX
demostrará la calidad de las
aplicaciones Multimedia y de
las Comunicaciones. Por ejemplo, los juegos
usarán 24-bits de color Real en
lugar de 8-bits, y con grandes ratios de frames. La tecnología MMX
también permitirá más actividades en
tiempo real.
Un ejemplo sería múltiples canales de audio,
vídeo de gran calidad y
animación, y conexión a Internet, todo corriendo en
la misma aplicación. Esta tecnología MMX
será incorporada en general en la generación de
procesadores
P6.
Las aplicaciones Multimedia han
empezado a dirigir los procesadores.
Intel formó un grupo de chips
y algoritmos
expertos para analizar vídeo interactivo, realidad
virtual, y aplicaciones en 3D de gran calidad. Se ha
descubierto que estas aplicaciones aparentemente diferentes
tienen mucho en común. Hacen mucha computación, muchas de ellas en paralelo, y
tienden a usar pequeños tipos de datos
integer. Estas nuevas instrucciones – usando la arquitectura SIMD
– fueron específicamente seleccionadas para ayudar a
incrementar la velocidad de
la esencia de estos algoritmos y
mejorar así todas las aplicaciones.
Algunas de las aplicaciones que se beneficiarán
de la tecnología MMX son los gráficos
2D/3D, sonido,
reconocimiento de voz, vídeo y compresión de
datos. La
tecnología
MMX es compatible con los entornos de SO. Además, el
sistema operativo
no necesita modificación de la tecnología MMX para
funcionar. Sin embrago, las aplicaciones que más se
beneficiarán cuando se incorpore esta tecnología, tienden a
ser las aplicaciones de Multimedia y
Comunicaciones
con cierta cantidad de loops de computación-intensiva repetitivos donde la
información pueda ser organizada para ser
procesada en paralelo.
Es importante destacar que las instrucciones MMX son
nuevas instrucciones que no existen en generaciones anteriores de
los procesadores de
Intel. El soporte de la tecnología MMX debe
estar en el procesador para que se ejecuten estas
instrucciones.
En lo que corresponde al Software para utilizar estas
nuevas aplicaciones, se debe usar la instrucción CPUID en
tiempo de
ejecución para comprobar el tipo de procesador y saber si
soporta esta tecnología. Si la
soporta, se usarán las DLLs que usen la tecnología MMX, sino
se usarán las DLLs que usan las instrucciones corrientes
de la Arquitectura
Intel.
Para terminar, los usuarios de Internet quieren interactuar
con el mismo entorno, por ejemplo sonido,
vídeo y gráficos, como el usuario Multimedia. Se
espera que la tecnología MMX realzará los "plug
ins" o los "helpers apps" se convertirán muy comunes y
activarán incluso mejor el contenido de internet en los PCs con la
tecnología MMX.
5.2 P6
Intel sostiene que el P6 es, aproximadamente, el doble
de rápido que el Pentium. Pero Intel está
comparando el rendimiento estimado de un P6 de 133 Mhz (200
SPECint92) al de un Pentium de 100 Mhz (112,7 SPECint92). El P6
tiene superpipelines, de forma que su frecuencia de reloj es
más alta.
Los conductos pipeline del P6 tienen hasta 14 etapas
mientras que en el Pentium tienen solamente 5. Las instrucciones
se pueden mover más rápido por el pipeline del P6
porque las etapas tienen tiempos de latencia más bajos.
Además, P6 posee otras muchas ventajas como pipelines de 3
vías, una cache‚ secundaria integrada en el chip, un
bus transaccional
de entrada/salida y más unidades de ejecución.
Estas son exactamente las prestaciones
que distinguen una microarquitectura de otra.
Intel fabrica un Pentium de 133 Mhz con la misma
tecnología de proceso que se
utiliza para el P6 (0,6 micras, BiCMOS metálico de 4
niveles).
El rendimiento estimado de un Pentium de 133MHz es de
150 SPECint92. Entonces, un P6 que funcione a la misma velocidad de
reloj viene a ser un 33% más rápido, y no el doble
de rápido.
Novedades del P6.
F En el
núcleo de la CPU 5,5
millones de transistores, en
la caché secundaria integrada 15,5 millones.
F
Microarquitectura superescalar de 3 vías.
F Superpipeline
de 14 etapas.
F Cinco
unidades de ejecución paralelas: dos para enteros, una
para carga, una para almacenamiento y una para com
flotante.
F 8KB de
caché primaria asociada de instrucciones de dos
vías y 8 KB de caché primaria asociativa de
datos con
cuatro vías.
F 256 KB de
cach‚ secundaria SRAM (RAM
est tica) en un bus dedicado
con la misma velocidad
que la CPU,
integrada con ‚ esta en un solo paquete PGA
cerámico de 387 patillas de cavidad dual
F Bus
transaccional de entrada/salida y jerarquía de
caché no interferente.
F
Ejecución de variación de orden,
predicción din mica de bifurcaciones y
ejecución especulativa.
F Rendimiento
proclamado por Intel: 200 SPECint92 a 133 MHz.
F
Tecnología de proceso de
fabricación BiCMOS metálica de cuatro niveles, 0,6
micras y 2,9 voltios.
F Superficie de
la CPU: 306
mm2.
F Superficie de
la SRAM: 202 mm2.
F Consumo
energético estimado máximo: 20 vatios a 133
Mhz.