www.xataka.com/componentes-de-pc/arquitectura-x86-una-his... por
PJFry el 22-01-2013 21:58 UTC publicado: 23-01-2013 07:10 UTC

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 negativos:
0 usuarios:
181 anónimos:
188
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.
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.
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.
Para cuando la memora fue suficientemente barata para que los diseños RISC fueran funcionales y disponibles en el mercado, el IBM-PC ya se había establecido como la norma, acostumbrando a los usuarios a dos cosas que hoy nos parecen obvias: compatibilidad entre diferentes fabricantes, y compatibilidad entre diferentes generaciones. Nuevamente, el costo de la ineficiencia del x86 era ampliamente compensado por el ahorro derivado de la compatibilidad.
Hoy en día no existen procesadores CISC, sino que son superescalares, con líneas de ejecución larga que primero traducen de x86 a otra arquitectura RISC, y luego sí ejecutan. Nuevamente, el precio de la traducción es bajo comparado con el costo de perder compatibilidad.
#28 Si lo miras con los ojos de ahora, con aplicaciones web o java ejecutándose en máquinas virtuales, con memoria barata, el usar procesadores tan complejos como los x86 puede parecer un absurdo, pero hay que tener en cuenta que los procesadores, más que diseñarse cada vez desde cero, han evolucionado, y hay herencias de las que no es fácil deshacerse.
Para empezar y como dice #18, los procesadores x86 actuales (en realidad x86_64) no son CISC puramente, sino que traducen internamente dichas instrucciones CISC en intrucciones RISC.
Y, en cuanto a las licencias, la empresa que diseñó el actual juego de instrucciones x86_64 no fue Intel, sino AMD (el primer procesador con ella fue el Athlon64).
Por lo demás, está interesante recordar la historia.
Impresoras, lavadoras, microondas, televisores, routers... Estamos rodeados de ellos
#31 Donde están empezando a meterse es en el mercado de servidores. La relación consumo/potencia de los ARM es muy golosa para un CPD.
Por lo demás estoy de acuerdo contigo, y es lo que intentaba decir: Intel le ha dedicado tanta I+D (y espionaje, industrial, como comentas) a su arquitectura que ni ellos mismos son capaces de hacer una nueva "limpia" y que rinda mejor. Y el resto de competidores están a años luz. ARM es una gran arquitectura en la relación prestaciones/consumo eléctrico, pero un ARM en un sobremesa, por mucho que quiera usar más energía, no supera a un x86. Es ahora que la potencia "sobra" que los fabricantes están empezando a poner ARM en servidores para poder ahorrar energía (un servidor que sólo se encargue de tareas I/O no necesita un Xeon y si está 24/7 el ahorro en consumo se nota mucho).
De este modo, los Pentium II se conocen coloquialmente como 686, Pentium 4 como 786... en.wikipedia.org/wiki/80786#Chronology
Tal vez os interese ver fotos de alta resolución de las entrañas de algunos micros en visual6502.org. La he descubierto hoy mismo y ya le estoy dando vueltas a la idea de hacerme algún póster
Os dejo enlaces a varios ejemplos. ¡¡OJO!! Algunos llevan a archivos muy grandes.
MOS Technology’s 6502 CPU (1975) Apple I, II, Commodore PET, C64, Atari 2600 (6507), Atari 400, 800, Nintendo NES
visual6502.org/images/6502/6502_pad_annot_07.png
visual6502.org/images/6502/6502_top_op10x_BF_4677.png (60 MB)
visual6502.org/JSSim/index.html (Esto es un simulador online de la arquitectura física del micro!!!!)
Motorola 68000
visual6502.org/images/68000/Motorola_68000_die_20x_1c_noMetal_6500w.jp (20 MB)
visual6502.org/images/68000/Motorola_68000_die_20x_1c_noMetal_10000w.p (238 MB)
visual6502.org/JSSim/expert-6800.html (Simulador)
Intel 8086
visual6502.org/images/8086/8086_5x_top_cwP025614_4301w.jpg (10 MB)
Intel 80286
visual6502.org/images/80286/Intel_80286_die_shot_20x_1a_1600w.jpg (50 MB)
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?
Edit:
#27 Yo no me acuerdo, jeje. En cuanto al 68000, suscribo lo que dices. Era una arquitectura mucho mejor pensada que la x86.
Por cierto, uso Ubuntu, pero no lo pongas como ejemplo de Linux bien hecho, haz el favor. Sobre todo si te refieres a usarlo con Unity, que será muy bonito, pero de ligero no tiene nada. Otra cosa es si tiras de Lubuntu o Xubuntu, que entonces va más rápido que XP en el mismo equipo.
Así que para nada están dejando de apostar por ellos, lo que pasa es que no se les da tanta publicidad.
#37 Yo diría que los procesadores ARM no tienen mucho que hacer en el campo de lo que es la informática tradicional, pero últimamente se veían ciertos movimientos para integrarlos en netbooks y cosas así. En principio un menor gasto energético no debería penalizar el rendimiento. La principal forma de lograrlo es tener instrucciones más simples, evitar ciertas mejoras en el cauce (ahí viene la penalización al rendimiento) y finalmente programar con algoritmos más eficientes (menos e/s, localidad espacial y temporal de las caches de CPU). Un ejemplo de lo segundo lo puedes ver aquí en.wikipedia.org/wiki/Hyperthreading#Drawback_history, precisamente es ARM criticando el Hyperthreading de Intel por su ineficiencia energética. De todas formas las mejoras en la autonomía de las baterías está haciendo que se replanteen incluir estas mejoras en sus chips.
A día de hoy me cuesta creer que yo programase en ensamblador usando esos registros (recuerdo sus nombres y todo).
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.
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!
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
#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...
De todas formas mi punto no era criticar a Linux y su entorno, sino mostrar cómo un sistema que no se reinventa, sino que evoluciona, puede a pesar de ello ser muy eficaz y eficiente gracias a la cantidad de gente que se preocupa de que así sea. La eficiencia energética de Windows 7 está ahí a pesar de ser un sistema pesado que soporta compatibilidad con varios SO anteriores y con características para aprovechar hardware más potente.
Ya intentaré probarlas, pero por el momento en portátiles Windows 7 se ha ganado el hueco preferente en el disco duro, sin hacer nada especial ahorra una barbaridad con respecto a XP y Ubuntu.
En cuanto a la resolución, en parte lo entiendo, por lo menos la parte normal de Windows sigue funcionando. Aunque me parece que Microsoft la está cagando con algunas cosas. Total, al final con una pantalla pequeña a veces te encuentras con que algunas ventanas no caben, así se evita eso.
El límite por arriba sí que lo veo más problemático, me parece muy poca, aunque parece que muestra que en el futuro dejarán de imponer Metro en los sobremesa, por que ahí sí que no tiene sentido esa resolución (ni Metro).
No entiendo porque el autor del articulo marca la arquitectura x86 como hito tecnologico cuando ya estaba obsoleta en los 80, de hecho solo la usaban los pcs e intel hace años que quiere librarse de ella.Cualquier maquina recreativa, ordenador, consola tiraba por otro lado.
Y por cierto el powerpc no viene de los 680x0, de los 680x0 vinieron los coldfire los powerpc fueron un diseño en principio risc que supuestamente partían de cero aunque al final fueron evolucionando por otros derroteros.
en un powerpc y eso acabo influyendoles. De hecho eso solo le importaba a aple ya que comodore ya había dicho que pasaba del powerpc y atari estaba bien muerta en lo que a ordenadores se refiere.
A mi me parecería perfecto lo de borrón y cuenta nueva, total lo de la retrocompatibilidad hoy día vale para más bien poco y en el tema de los juegos no es indispensable, las consolas no han sido siempre retrocompatibles y ahí están. Las aplicaciones de escritorio se saca la ultima versión para la nueva arquitectura y punto. Si hoy dia son todo lenguajes de alto nivel y aplicaciones web que no serían ningún problema.
#19 #20 El 80186 se uso muy poco en ordenadores personales, pero se convirtió prácticamente en un estándar para automatismos y sistemas de control.
Por eso cambiamos los Amigas por PC: El tiempo de renderizado era muy inferior y el hardware mucho más barato.
Motorola nunca fue bueno haciendo microprocesadores. Hay que admitirlo. Buena arquitectura sobre el papel, pero pésima implementación.
#65 Instala Powertop, laptop-mode, sdparm, pmtools y jupiter y vuelve a comparar. Y normal que Windows 7 gaste menos, los fabricantes trucan sus portátiles con mierdas de tablas ACPI no compatibles con el standard al igual que hace Apple.
Así cualquiera.
Se trata de unos ajustes ehchos para mejorar la batería de tu portatil sin levantar o meter mierda para portátiles como hacen en Windows.
Con Powertop y tales herramientas que te he dicho, ahorras más que Windows. Añade TMPFS y en cuanto abras Chrome con 12 pestañas, y Windows empieza a llorar... Linux ni lo huele.
"s. Total, al final con una pantalla pequeña a veces te encuentras con que algunas ventanas no caben, así se evita eso."
Torpes. GTK y QT pueden poner la fuente que quieras, junto con un tema minimalista, hace que se pueda usar hasta en 648x480. Y si no cabe, con ALT+Mouse1 puedes mover la ventana pinchando en cualquier parte de esta.
¿Siguen en Windows algunos dialogos restringidos restringidos a la fuente Tahoma 8 como en 1998? Por ejemplo... los iconos del escritorio.
Un asco en pantallas de más de 20" con resoluciones grandes.
Los escritorios Linux y MAC escalan las fuentes que da gusto. En Windwos me tengo que joder...
Un detalle: esa extensión es de AMD. Desgraciadamente parece que no siguieron apostando por ella.
#4: Bueno, en el artículo explican sus ventajas e inconvenientes. Y como dice #2, ARM también triunfa, pero en otros ámbitos.
Creo que eso ya sucede ahora mismo.
Lo último ha sido introducir una unidad de procesamiento gráfico junto a la CPU, lo cual permite abaratar costes y ofrecer un conjunto que si bien no es excesivamente potente en el procesamiento de imágenes, sí es suficiente para muchos usuarios.
#37: 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?
¿Y dónde pones el punto? Imagina la cantidad de juegos que quedarían imposibles de usar por no poder tener un procesador que los haga correr ni el código fuente para poderles adaptar, ni la licencia que permitiera hacer esa adaptación.
Eso sí, me encantaría que entraran aunque fuera de puntillas en los de escritorio... pero va a ser que me quedaré con las ganas.
En cuanto a lo de volver a hacer los juegos, no sería algo raro. Eso mismo es lo que pasa con los multiplataforma y nadie se rompe las vestiduras... salvo cuando las versiones van en plan máximo común denominador (se hace para la menos potente y se copia a las demás).
Renders y animaciones -> coma flotante a punta pala.
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).
Los procesadores ARM más potentes no tienen nada que hacer con un i7, pero en cambio están a la par de un Atom.
Lo que pasa es que el Atom no obliga a recompilar nada, con lo que parte con ventaja (Un Atom es muy barato y además ya consume poco, menos de 20W a toda potencia). Aún así, puede que ahora que Windows8 ha sido compilado para ARM aparezcan portátiles de gama baja con procesadores con esta arquitectura.
En principio, como las instrucciones RISC son más sencillas, se requiere más cantidad de instrucciones para hacer lo mismo que con CISC, lo que significa un aumento del uso de la memoria RAM, cachés más grandes... pero no sé si eso significa algo a estas alturas: si el procesador tiene una arquitectura más sencilla, puedes usar más transistores en otras cosas: estamos hablando de unos mil millones de transistores en un procesador hoy día, la mayoría dedicados a la caché.
Pues no, la gama más baja es Celeron:
en.wikipedia.org/wiki/Ivy_Bridge_%28microarchitecture%29
Lo curioso es que ya no venden ninguno con un único núcleo. Hay muchos ordenadores donde más de un núcleo es tirar el dinero, por ejemplo, un cajero automático. Aunque también es cierto que podría haber arquitecturas más baratas y eficaces para esa función.