Hace unos dias vengo con una duda, a ver si alguien me la puede aclarar:
hace unos relativamente pocos años se cambio, despues despues de varias generaciones de microprocesadores, de 32 bits a 64 bits por la razon de que, un microprocesador de 32 bits solo puede direccionar 4GB de memoria, y ya se estaba necesitando mas. Ahora bien, fue esa la misma razon por la que se paso de 16 bits a 32? O hay algo mas?
Porque el 386, el primer micro de Intel de 32 bits, fue diseñado en 1985 y para ese entonces, tengo entendido que los 16 MB que podia manejar un micro de 16 bits era mas que suficiente! Ya una mega era demasiado! Que hubiese pasado si el 386 hubiese sido de 16 bits como el 286? Se podia haber llegado a la velocidad de reloj de 33 mhz alcanzada por los 386?
Hay, o hubo otras razones para haber pasado masivamente de los 16 bits a los 32 en ese momento?
Espero sus respuestas!
Los primeros chips de 64 bits poco y nada tienen que ver con una computadora hogareña. Fueron diseñados para el sistema de procesamiento de sonidos de los submarinos tipo Los Angeles (688 class). Y éso fue por lo menos 5 o seis años antes de 1985.
La razón principal de la ampliación del bus de 16 a 32 no es la capacidad de manejo de memoria, sino la velocidad de procesamiento, acceden al doble de data, a la misma cantidad de Mhz de clock.
El 386 además, funciona por paginación de memoria como un 8088 o un 80286, o en el modo en que trabajan los Motorola, direccionando directamente la memoria sin pasar por un descriptor de segmentos.
Aún más, mucho antes del MMX y SSE y todos los subset de instrucciones que vinieron después, el 386 ampliaba enormemente el set de instrucciones, marcando una diferencia muy importante con lo que vino antes de él.
Por último, los 33Mhz de velocidad a la que no podría llegar un 286 tienen que ver con el ancho de la máscara en la tecnología de fabricación, seguramente un 286 podría haber llegado a ésa velocidad, pero para qué hacerlo si un 386 al mismo o menor costo ya andaba mucho más rápido?
Salutes
Lo del menor costo de los 386 lo dudo, ya que para eso salieron los 386 SX, para reducir costo (al utilizar mothers similares a los del 286 de 16 bits).
Con los micros actuales de 64 bits mucha mas velocidad no se gana, vi varios benchmarks, al menos en esa transicion (de 32 a 64) si fue por la memoria, por ahi de los 16 a 32 si se gana mas velocidad, aunque, volviendo al ejemplo del 286, si vemos la cantidad de millones de instrucciones por segundo POR RELOJ, entre un 286 y un 386 casi no hay diferencia, creo que el 286 procesa 0,2 MIPS y un 386 0,3 MIPS, un salto significante fue al 486 que ahi si llega al 1,1 MIPS. Mi ejemplo muestra que el cambio de 16 a 32 no genero un gran cambio en cuanto a velocidad. Igual no la tengo bien clara, por eso pregunto a los que mas saben, y muchas gracias por tu respuesta Juan! Me aclaro bastante
Buenas,
Un cambio de arquitectura no tiene por qué implicar más velocidad. Cómo bien decís, del 286 al 386 casi no hay diferencia y no creo que sea por pasar a 32 bit la poca diferencia que hay sino más bien una optimización.
Lo que si implica es lo que podes direccionar en memoria. Un 286 no puede direccionar más de 16mb mientras que el 386 llega a 4gb. Y vos decís, EPA SI LO ESTANDAR ERA 4/8/16MB DE RAM PARA 386.. si, es verdad pero no te olvides que podías tener un SO que soportara memoria virtual y emular mucha más RAM de lo que tenías, podías emular hasta 4gb (suponiendo que el file system del SO soportara tanto).
Las comparativas son difíciles con el tema de arquitectura. Cuando hay salto de una a otra, muchas cosas viejas quedan por un tema de compatibilidad.
Por ejemplo, apenas salió el 32 bit tenías bus del tipo ISA de 16 bit. Cuando salio el 64 bit tenías PCI de 32... y por más que no lo tengas físicamente tal vez lo tenes en el chipset.
Lo mismo pasan con los SO. Si bien tenes un Windows 64 muy probable que tengas muchas cosas de 32.
Lo que comenta Master PO es muy cierto también, la existencia del SX responde a reducir precios. Por ahora es lo que se me viene a la mente sobre el cambio de arquitectura…
Saludos
Claro, calculo que es el tema de optimizacion. Algo que lei que para programar con operaciones de punto flotante es mejor usar un procesador de 32 bits. Sera que casi todas las nuevas aplicaciones/juegos (a partir de mediados de los ochenta) utilizan punto flotante. Eso no se.
No se si para lo que se usaba en la mayoria de las PCs el 286 y el 386 tenian diferencias tan drasticas, pero si eran de generaciones distintas y por lo tanto mucho mejor el 386, en particular mas preparado para correr sistemas multitarea/multiusuario como Unix. El 286 realmente era un muy buen procesador, pero de la forma en que lo usaba MSDOS no era mas que un 8086 un poco mas rapido, sin embargo tambien estaba pensado para sistemas multitarea/multiusuario.
Los 32 bits aceleran el proceso por hacer menos accesos a la memoria, pero con el soft de la epoca, donde mucho soft estaba escrito para 8 o 16 bits, un 386DX terminaba teniendo un rendimiento similar a un 286, porque si un programa esta escrito para un 8088, al acceder a un entero largo (32 bits) usa 4 accesos a memoria leyendo byte por byte, en lugar de usar una instruccion que lea los 4 a la vez. En esa epoca los procesadores no tenian "inteligencia" como ahora para leer anticipadamente los datos o guardarlos en cache. Por ejemplo con cache, el programa de 8 bits podia intentar acceder 4 veces a memoria para leer un numero de 32 bits, el 386 podia hacer el primer acceso, que leia los 4 bytes de los que solo veia uno, pero los 4 quedarian en cache, por lo cual en los siguientes 3 accesos, aunque se perderia tiempo ejecutando las instrucciones, ya no haria falta acceder a la RAM, por lo que se aceleraria algo. Los 486 ya implementaban bien esa tecnologia, pero igual el codigo de 8 o 16 bits los desperdiciaba.
Si las cosas se hubieran hecho bien, es decir sin Microsoft, el 286 tendria que haber sido un estandar mucho antes y con un DOS multitarea, el cambio a 386 fue drastico porque recien con el 386 se hicieron sistemas mas serios como las distintas variedades de Unix.
En cuanto al cambio a 64 bits, yo sigo en los 32 y hace años que no veo razon para cambiar, hago lo que se me ocurra y nunca me quede sin memoria con 3GB, la unica razon que veo para cambiar es instalarse los ultimos juegos, cosa que realmente no me preocupa. En algun momento no me va a quedar mas remedio que pasar a un sistema de 64 bits, pero va a ser porque el mercado me obligue (que no consiga drivers 32 bits por ejemplo), no porque sea necesario. Asi que, aunque tiene justificativos el cambio, lo vienen impulsando desde hace como 10 años cuando estabamos usando 128MB o 256Mb de RAM y no habia procesadores de varios nucleos para PC, por lo que la razon principal fue puramente comercial.
Un 386 es un 286 acelerado sólo con productos de Seatle, como procesador es muy superior.
Pero la bosta siempre fue microchotosoft.
Utilizado en otro tipo de aplicaciones, por ejemplo como controlador de procesos en telecomunicaciones es bien distinto a lo anterior.
Lo mismo ocurre con el cambio de 32 a 64, elproblema es que se sigue usando Güindous, que es para ver el correo, escuchar mp3 y èse tipo de tareas comunes.
Pero me imagino que utilizando un cad-cam o procesando video (que es lo único que hago, y a veces) la diferencia se nota.