martes, 1 de mayo de 2007

CPU 386

Un paso de gigante, el 80386

El 80386 no comenzó con muy buen pie: en aquella época los ordenadores eran demasiados caros para que se estuvieran sustituyendo a cada momento. Es por ello por lo que los primeros 386 eran compatibles con los 286, para aprovechar las placas base.


El 80286 venía soldado en la placa base, o bien en zócalo SMD cuadrado, con terminales de soldadura por todos lados. Cuando salió el 386, este se podía soldar en lugar del zócalo del 286, de manera que el fabricante que montaba ordenadores aprovechaba las placas 286 que tenía, ahorrando costes.


Los primeros 386 fueron denominados 386SX, y se fabricaban a velocidades de 12, 16, 20, 25 y 33MHz,auténticas velocidades de vértigo. Incluso más, ya que la casa AMD sacó su propia versión del 386, que funcionaba a 40MHz.


El 386SX funcionaba a 16Bits, del mismo modo que el 286, siendo por tanto compatible con él. Por eso salieron al mercado unos kits de ampliación de 286 a 386SX. En realidad era una placa de circuito impreso en la cual se hallaba soldado un 386SX y un nuevo reloj del sistema, con unos terminales de conexión que encajaban en el zócalo del 286. A pesar de todo, el 386SX cojeaba bastante, debido a un motivo muy simple: Tenía varios registros de 32Bits, que le hacían ser muy potente, pero su bus de datos seguía siendo de 16Bits, para seguir siendo compatible con el 286. Fue entonces cuando se presentó el 386DX.


El 386DX representó un gran salto adelante, sobre todo por su bus de 32Bits, lo cual hacia que la ejecución teóricamente fuera más rápida, ya que los resultados de las operaciones en los registros de 32Bits no tenían que partirse en dos palabras de 16Bits, pues ya teníamos 32Bits de ancho de bus.


Las características del 386 son:
1. Bus de datos de 32Bits.
2. Bus de direcciones de 32Bits.
3. Nuevo modo de trabajo: Modo Real Virtual.
4. Tiempo de ejecución la mitad que el 286.



Además, el 386DX permitía administración de memoria caché, que aumentaba el rendimiento, así como velocidades de 20, 25, 33 y 40MHz. Con 32Bits de direccionamiento, pueden comandarse hasta 4GB de memoria, cantidad impensable en los ordenadores, al menos hasta hoy. Es por eso por lo que nació un modo de direccionamiento basado en un mapa de memoria virtual.

Cuando nos quedamos sin memoria, el 386 ayudado por Windows descarga parte de su contenido en otro dispositivo, al cual se le está tratando en ese momento como “memoria”, siendo normalmente el disco duro.


Por si fuera poco, además se dispone del modo Real Virtual, en el cual se coge 1MB de RAM (ya sea física ó virtual) y se asignan 640KB como memoria base y 384KB como memoria superior. En esa RAM fantasma pueden ejecutarse programas como si ahí estuviera realmente un 8088. Podemos tener incluso varias CPU’s virtuales al mismo tiempo.


Con el 386 nació la época de 32Bits, pero no pudo ser aprovechado por dos motivos: Desarrollar software de 32Bits hubiera significado en aquella época la incompatibilidad, y además no se podría aprovechar la gestión a 32Bits debido a que aún se seguían utilizando los buses ISA de 16Bits. Hubo que esperar a los buses VLB y PCI y al nacimiento de OS/2 WARP y Windows 95 para el correcto desarrollo de los sistemas a 32Bits, además de la potencia de los procesadores 486.
Tipos de datos

La pastilla microprocesadora 80386 soporta varios tipos de datos además de los soportados por sus predecesores (80x86). 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.