Arquitectura x86, una historia imprescindible de la informática

#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
#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
#32   #30 Sí, pero después de hacer cagadas en el diseño como olvidarse de poner una instrucción (o un procedimiento rápido) para pasar de modo protegido a modo real en el 286. Tenías que poner un valor concreto en un registro concreto y hacer un reset cada vez que querías ir en esa dirección. De modo real a protegido era mucho más fácil. Supongo que pensaban que nadie querría usar el modo real una vez probaran el protegido... sin tener en cuenta que existía el MS-DOS y era lo más usado. Imagino que esperaban que saliera algún nuevo MS-DOS que trabajara todo el rato en protegido o algo así, porque sino no lo entiendo.
votos: 1    karma: 19
#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
#44   #38 Teniendo en cuenta que puedes hacer funcionar en un x86/x86-64 juegos que están creados para procesadores 6502, Z80, 68K, 65C816, ARM7, MIPS, PowerPC (Broadway), ... no veo el problema en que los juegos de x86/x86-64 se pudieran utilizar en otra arquitectura.
votos: 0    karma: 9
#48   #44 hombre el problema estaría en que si lo emulas es un bajón de rendimiento o sino tienes que simplemente volver a hacer los juegos
votos: 0    karma: 6
#52   #48 Claro que hay bajada de rendimiento. Hace falta una buena máquina para emular una Wii, pero eso no significa que no sea un equipo normal en poco tiempo. Los juegos actuales se podrían emular a su velocidad en no demasiado tiempo. Además, cualquiera que juega a un juego emulado sabe que no va a ser como el original a menos que sea un juego muy antiguo (10 años o más).

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).
votos: 0    karma: 9
#47   #37 Bastaría con que dejara de tener tanta importancia Windows. Cualquier otro sistema no tendría demasiado problema en pasar a otra arquitectura. De hecho, quitando Windows y MacOS, casi todos los SSOO son multiplataforma.
votos: 0    karma: 9
#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
 *   --151124--
#54   #50 ¿Desprecio por la compatibilidad en Linux? ¿En qué? Funcionan cacharros que en Windows dejaron de funcionar hace una década. Y si te refieres a compatibilidad de los programas, mientras haya actualización de las librerías correspondientes no suele haber problemas.

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.
votos: 2    karma: 26
#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
 *   --151124--
#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_
#70   #64 ¿Menos de 1024 x 768? ¿En serio me estás diciendo que un problema real de Windows 8 es que necesita como mínimo 1024x768 de resolución para funcionar?
votos: 0    karma: 10
#59   Por cierto no podría terminar de opinar en esta noticia sin decir que los procesadores Alpha eran mis preferidos en cuanto a diseño, tan elegantes. No por cualquier cosa eran el ejemplo a seguir en modelos de otras marcas. También se ven al detalle en algunas universidades en las asignaturas de arquitectura de computadores para estudiar predictores de salto y demás historias. -> en.wikipedia.org/wiki/Alpha_21264

#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.
votos: 2    karma: 21
#67   Veo mucho aficionado a la arquitectura de ordenadores :-) #13 #14 #18 #22 #25 #27 #35 #37 #59

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)
votos: 3    karma: 29
#69   #67 Viendo los mapas se me ha pasado por la cabeza calcular el tamaño que tendría con la tecnología de ahora el 6502... creo que hay granos de arena más grandes xD
votos: 1    karma: 15
#71   #37 La diferencia: www.phoronix.com/scan.php?page=article&item=samsung_exynos5_dual&a

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é.
votos: 0    karma: 6
#35   #4 El triunfo de la arquitectura CISC fue más que lógico. Los procesadores se inventaron en una época en que la memoria era muy cara, las desventajas de tener instrucciones de longitud diferente y tiempos de ejecución diferente no competían con la ventaja de tener el código comprimido y usar menos memoria.

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.
votos: 8    karma: 78

menéame