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 Introducción | 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º generación de la representación del procesador Intel486 DX 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.