369 meneos
9337 clics

Arquitectura x86, una historia imprescindible de la informática

Conocer la arquitectura x86 es conocer la base de los procesadores de la todavía breve historia de la informática. Se cuentan por millones los procesadores vendidos a lo largo de la historia que la implementan, y además ha sido una arquitectura que dio pié al éxito de compañías como Microsoft e Intel así como al concepto de ordenador personal. x86 es un hito tecnológico que merece la pena ser analizado y estudiado con gran profundidad.
etiquetas: intel, procesador, arquitectura, informática
usuarios: 181   anónimos: 188   negativos: 0  
75comentarios mnm karma: 442
  1. #13   x86, o cómo conseguir potencia a base de fuerza bruta. Para mí la arquitectura x86 es decente como mucho hasta el 80386. A partir de ahí, está claramente forzada, empezando a conseguir el rendimiento a base de cachés y trucos diversos que no paran hasta los 64 bits, y siempre arrastrando toda la porquería de compatibilidad detrás.

    Frente a ella, arquitecturas hermosas como PowerPC o ARM, o cualquier otro RISC. Pero claro, la economía de escala ha conseguido que una arquitectura obsoleta triunfe.
    votos: 9    karma: 83
     *   pip pip
  2. #27   Lo curioso de la situación es que las cronologías de los procesadores (me) llevan a comparar momentos distintos:

    1) 8080 -> 8088 (PC) -> 8086 -> 80x86 -> x86-64
    2) 8080 -> Z80 (Amstrad, Sinclair, ...)
    3) 6800 -> 68000 (Atari, Commodore, Apple, ...) -> 68010 -> 68020 -> 68030 -> PowerPC
    4) 6800 -> 6502 (Commodore, Apple, ...) -> ARM

    Seguimos con las mismas arquitecturas, básicamente, que hace 35 años.

    #22 Los avances de Intel no siempre han sido de Intel. Robó cosas de DEC (hubo juicio), robó cosas de Transmeta (hubo juicio) y ha copiado a todas las demás empresas de procesadores que ha podido. De hecho, el éxito original de Intel tuvo que ver más con un enchufe que con su capacidad: el diseñador del IBM PC original era ex-trabajador de Intel y por eso eligió el 8088 en lugar del 68000, por ejemplo, cosa que hubiera preferído (mejor diseño que el remiendo que era el 8088).

    Por remiendo me refiero a que el 8086 era una versión 16 bits del 8080 y el 8088 era una versión recortada (lo mismo que el 68008, que casi ni se uso, excepto en el Sinclair QL). El 68000 por el contrario no era una versión del 6800; sólo compartían el bus externo en el 68008 y por abaratar las placas. El resto era totalmente nuevo. Por eso no tuvieron problemas a la hora de pasar a 32bits internos y externos, porque el procesador era de 32 bits directamente, con una memoria a la que se accedía directamente, sin usar la chapuza del solapamiento de bits.

    Si Apple se pasó a Intel no fue por la razón que dijo de cara a la galería. De hecho, poco tiempo después de pasarse Apple a Intel, los PowerPC superaron (otra vez) a los Intel en velocidad. En su momento se habló bastante de un acuerdo económico entre Apple e Intel, lo cual estaría muy en la línea de este (si no puedo ganar por diseño o potencia, gano por dinero).

    En cuanto a los Alpha y los SPARC, y si quieres añadimos los SuperH y los ARM durante años ¿comparamos presupuestos de desarrollo? Intel está donde está por el braguetazo que dio con el PC.

    PS: ¿Alguien recuerda el método para pasar de modo protegido a modo real del 80286? ;)
    votos: 4    karma: 26
  3. #37   Interesante, desconocía toda esta trama del RISC/CISC, la arquitectura x86 y ARM. Veo que hay expertos por aquí (#13, #22, #27, #30,..).

    Según entiendo, ARM es mucho más eficiente enérgeticamente que x86, de hecho en la actualidad muchas maquinas podrían utilizar esto y consumir menos energía (mas duración de la batería, uno de los grandes problemas). Quizás vale la pena perder un poco de potencia de cálculo ganar algo en batería? ¿Tanta es la diferencia?

    ¿Se prevé un futuro donde ARM tome protagonismo frente el x86?

    Sobre el tema de las retro-compatibilidades del x86 y los monstruos de Frankeintein que son ahora realizando traducciones de CISC a RISC dentro suyo y desperdiciando potencia de calculo, porque directamente no se establece un punto donde no haya compatibilidad con lo anterior y se hacen las cosas bien hechas? ¿Es viable migrar aun modelo con solo instrucciones RISC?

    Me habéis despertado la curiosidad malditos!
    votos: 1    karma: 19
  4. #4   La inexplicable historia del triunfo del CISC.
    votos: 8    karma: 84
  5. #22   #13 No estoy para nada de acuerdo. ¿Que x86 es una chapuza? Sí, y más desde el Pentium 4, que era el plan B en caso de que su flamante arquitectura EPIC (procesadores Itanium) no cuajara. El problema es que, por mucho que lo han intentado, nadie ha conseguido crear una arquitectura que en la práctica dé más potencia de cálculo que los actuales x86. El Itanium fue un desastre y el Itanium 2 casi nadie sabe que existe. Incluso creo que va a ser el último de su familia, por el escaso éxito en ventas.
    En los inicios sí es verdad que tenía un rendimiento regular en comparación con la competencia y fue IBM y su PC el que hizo que fuese el más usado, pero tantos años de optimización han dado sus frutos.
    Por algo Apple se pasó a x86, era la única forma de poder tener computadoras potentes a un precio aceptable y con un consumo "decente". Ni los Alpha de digital (cuya tecnología fue copiada por AMD para su bus frontal) ni los Sparc han conseguido un mayor rendimiento. Hoy día los procesadores intel/AMD son un monstruo de Frankenstein, una mezcla de RISC en el backend y CISC en el frontend, y sorprendentemente funcionan muy bien.

    #21 Hay muchas imprecisiones, por ejemplo cuando habla de P4 comenta de que hay instrucciones más complejas y tal... lo que no comenta es que el P4 tenía 21 etapas de segmentación (21 ciclos de reloj) en su línea de trabajo estándar para completar una instrucción, por lo que en realidad el rendimiento por ciclo era mucho peor que en el Pentium III. Tanto era así que el P4 a 1.3Ghz (la versión más baja) tenía menos rendimiento que un P3 a 1 Ghz. Por eso el P4 se llegó a vender a 3.0 Ghz (la versión Extreme llegó a los 3.7 Ghz, pero con 31! etapas), y cualquier procesador posterior rinde una barbaridad más a una frecuencia mucho menor.

    Otra imprecisión es la "facilidad de programación". En los inicios, cuando se programaba en ensamblador, cualquiera que hubiese programado un Motorola 68000 echaba pestes de las instrucciones x86.
    votos: 14    karma: 128
  6. #18   #4 Es que realmente hoy día, y desde al menos el Pentium Pro, se trata de un procesador internamente RISC, con una capa externa de traducción de CISC a RISC. De hecho, el Pentium Pro ha sido uno de los mejores procesadores de Intel. Toda la arquitectura Core está basada es él. Todas las instrucciones x86 se traducen a microinstrucciones internas, más pequeñas y sencillas. Es como un híbrido CISC/RISC. Está claro que toda esa capa de traducción podría estar dedicada a otra cosa si fuera directamente RISC, pero es así como han podido aumentar tanto el rendimiento.
    Además, de todo el juego de instrucciones x86, hay muchas que están desaconsejadas en los manuales de programación (normalmente, las más complejas). Se busca (en la medida de lo posible) un código ensamblador con una gran mayoría de instrucciones simples. Aunque la compatibilidad obliga a aceptar todo el juego de instrucciones.
    votos: 10    karma: 89
  7. #2   Para mí lo que es imprescindible e infravalorado en la historia d ela informática es la arquitectura ARM.

    Impresoras, lavadoras, microondas, televisores, routers... Estamos rodeados de ellos
    votos: 4    karma: 42
  8. #14   Que tiempos en los que aprendíamos a programar el Z80 en la facultad.
    votos: 0    karma: 8
     *   powernergia powernergia
  9. #19   ¿Alguien ha visto funcionar el 80186? Yo siempre había considerado que del 8088 pasó al 80286.
    votos: 3    karma: 38
  10. #28   #18 Exactamente, iba a comentar eso mismo, hablar de las ventajas de CISC es una quimera, porque por debajo todo es RISC. Las instrucciones complejas son muy tentadoras, pero no merecen la pena; claro ahora el coste de la traducción es bajo comparado con el cauce completo y no se nota, pero es rendimiento que se pierde. Y la forma de trabajar con la memoria en x86 tan absurda... En fin, es lo que hace el marketing.
    votos: 4    karma: 43
  11. #30   #28 Hombre, según tengo entendido (corregidme si me equivoco), la forma de tratar la memoria de x86, por segmentos hasta alcanzar un megabyte, es horrenda. Pero a partir del 386 existe el modo protegido, o modo flat, que permite acceder linealmente a los 4 GB de memoria. Este modo era el que proporcionaba el famoso "cargador" DOS/4GW que llevaban muchos juegos de la época de MSDOS. (Sí, tengo mis añitos). Y por supuesto, también en x86_64.
    Edit:
    #27 Yo no me acuerdo, jeje. En cuanto al 68000, suscribo lo que dices. Era una arquitectura mucho mejor pensada que la x86.
    votos: 2    karma: 26
     *   buloso buloso
  12. #50   #46 Sí pero tiene la ventaja de que te permite usar una aplicación o un juego antiguo sin tener que bajar al trastero a desempolvar un dinosaurio mientras rezas por que siga funcionando. Tener un cacharro distinto para cada cosa además es mucho más desperdicio de potencia por que sólo usas uno a la vez.

    De hecho una de las cosas que hace que Linux no triunfe más es el desprecio que hay en general por la compatibilidad. En equipos antiguos siempre pasa algo, actualizar y que por un problema de compatibilidad la pantalla deje de funcionar y tengas que modificar el arranque es de lo más cómodo... y el último Ubuntu ya es la polla, va más lento en ellos que Windows 7 y si la pantalla tiene poca resolución no hay forma de utilizar sus pantagruélicas e irredimensionables ventanas de configuración.

    #47 Pero no se adaptan tan bien al hardware... No te imaginas cuál fue mi sorpresa cuando en una especie de netbook de 7" que tengo tras probar Windows XP y Ubuntu, instalé Windows 7 con toda su horrorosa herencia y compatibilidad, y a pesar de ello, les saca a los otros 2 una hora de batería (y pasar de 2 tristes horas a 3 se nota).
    votos: 0    karma: 7
     *   Kherom Kherom
  13. #51   #49 ¿lentos? ¿a la misma velocidad de reloj? creo que el 68060 a 80 mhz rivaliza en enteros con el pentium a 200 mhz. hay test por ahi. En coma flotante ya eran mejores los pentium. ¿Un 486 a 25 mhz más rápido que un 68040 a la misma velocidad? No estaría yo muy seguro.
    votos: 1    karma: 15
  14. #56   #55 Que no que no, que se de lo que hablo: El software que utilizábamos no usaba coprocesador matemático, de hecho estaba diseñado para el 68EC020 del Amiga 1200. Hasta en enteros eran pateados por Intel. Otra cosa es que te creyeras las comparativas de Motorola que vamos, no podían estar más hinchadas.

    Motorola nunca fue bueno haciendo microprocesadores. Hay que admitirlo. Buena arquitectura sobre el papel, pero pésima implementación.
    votos: 0    karma: 11
  15. #64   #50 "y si la pantalla tiene poca resolución no hay forma de utilizar sus pantagruélicas e irredimensionables ventanas de configuración."

    Eso pasa con Windows 8, imposible meter algo menos que 1024x768. En Linux si se pueden redimensionar, y mover con alt+click aunque no puedas hacer click en el titulo. En Windows, NO.

    Si no sabes usar Linux, el problema no está en el PC si no entre el teclado y la silla.

    Por cierto en Linux puedo usar hardware antiguo, como sintonizadoras de TV viejas conectadas al VHS o scanners viejos que me prestan. En Windows...

    pffffffffffffft. Ni de coña.

    Avísame cuando 8 arranque en un i686.
    votos: 1    karma: 20
     *   Ander_ Ander_
  16. #65   #54 En linux, a base de muchas distros tienes de todo. Pero la compatibilidad no se respeta tanto como en Windows en una sola, donde además su mero peso en cuota hace a los fabricantes esforzarse más. Por ejemplo, llegó a Menéame una noticia en la que Linus se cabreó por que alguien quería introducir una característica que se cargaba la compatibilidad con algo y dijo que "no importaba".

    Claro que en equipos viejos no hay muchas opciones a no ser que quieras usar un Windows desactualizado y sin soporte y sabe dios en qué estado, pero en los intermedios, los que aún son funcionales, en Linux hay muchos problemas que no ayudan, desde la fragmentación, hasta que la distribución que usas tome un camino extraño pasando a ser bastante cuestionable, como pasa con la más popular, y te quedes enseguida sin soporte (hasta al fecha el soporte de las versiones de Windows es muucho más largo).

    Y luego está el problema de la batería, ¿de qué sirve un SO ligero si a pesar de ello traga más batería que Windows 7 con todas sus transparencias? Eso es lo que defiendo, Windows 7 (de 8 no puedo hablar mucho) a pesar de arrastrar muchas supuestas lacras como el NTFS, es casi seguro que en un equipo mínimamente actual va a funcionar y lo va ha hacer exprimiéndolo al máximo. Y en equipos más viejos (menos de 1GB de RAM o 512 ampliables) más vale cambiarlos por que gastan más de luz que lo que cuestan :-P Como ya te he dicho, probé Ubuntu 12, 9, y Windows XP, sin probar Win7, y fue mi sorpresa cuando al instalarlo para hacer una prueba gastaba menos con wifi que los otros 2 sin él, hacía menos ruido y funcionaba perfectamente.

    #64 En Ubuntu (que es del que he hablado) el mismísimo menú inicio no cabe en una pantalla pequeña, y la ventana de configuración principal, así como el mismísimo instalador, tampoco. Y respecto a Windows 8, la parte que no funciona es la de tablets, que además es bastante irrelevante. Las ventanas se pueden redimensionar con normalidad. Además, cuestiono bastante a Windows 8, pero lleva poco tiempo y aún pueden corregir cosas. En cualquier caso a Windows 7 le queda muuucho soporte así que nadie está obligado a actualizar.

    Además, para qué demonios iba a querer Win8 en un i686? Estos usuarios de lunix...
    votos: 1    karma: 17
     *   Kherom Kherom
comentarios cerrados

menéame