Hola, quería saber que opinan ustedes de esta idea.
He buscado artículos pero no encontré demasiado. Los datos están ahí pero no me apetece analizarlos de momento, quizá ustedes lo sepan.
La idea es que los procesadores x86 son muy ineficientes en general intrínsecamente por su diseño y arquitectura.
Mi argumento principal que respalda esto es su complicado juego de instrucciones.
Quizá muchos de ustedes han intentado alguna vez crear un desensamblador de x86, en C por ejemplo, y no es algo trivial ni fácil, el código que necesita es bastante y necesariamente complicado, no hay soluciones demasiado elegantes (a mi juicio).
Eso que nosotros hacemos en C o cualquier otro lenguaje, los microprocesadores tienen que hacerlo pero por medio de hardware, transistores, unidades lógicas. Ello hace que necesiten muchos más transistores que otras arquitecturas, y por tanto más consumo de potencia, o sea, eficiencia (da igual, energética o de potencia de cálculo, no diferencio).
Quizá sea por ello que en los sistemas empotrados x86 desaparece por completo, en general. Se tiende a microprocesadores ARM por ejemplo que consumen muchísimo menos y tienen gran potencia (aunque menos que los x86 que usan mucha más energía y frecuencias).
Es otra de las causas quizá por la que las GPU's, sus núcleos de procesamiento, tampoco usan x86, bueno, esto sería obvio ya que tienen otros usos más específicos, pero bueno, podrían compartir el juego básico, todo microprocesador tiene instrucciones de control, de movimiento de datos, etc.
Me consta también que Intel muchas veces "inteltó" (chiste malo) deshacerse del juego de instrucciones sustituyéndolo por otros, pero no pudo por el mercado.
Y mi atrevida sugerencia: si usáramos el mismo número de transistores y la misma frecuencia (y la misma técnica de última generación litográfica, etc), en un procesador tipo ARM, RISC o lo que sea, que un x86 actual, se superaría enormemente la potencia de cálculo.
El problema es arrastrar esa vieja compatibilidad "hacia atrás" (por la voz inglesa), que sólo obliga al diseño a estar estancado, cargando con viejas funcionalidades obsoletas que lo limitan, es una especie de evolución darwiniana de los procesadores, en que quedan miembros inútiles que antiguamente eran usados (tenía un nombre que ahora no recuerdo, si me lo pudieran recordar...
Otra idea que arroja esto, es que Intel debería estar realmente interesado en la pervivencia del modelo de código cerrado, ya que si pudiéramos usar sólo código abierto, no habría tanta dificultad en compilar los sistemas para cualquier máquina.
Se me olvidó mencionar también la idea, de que mucha de la lógica de los x86, se empeña en optimizar este código, de alguna manera estas unidades sobran en otra arquitectura, y habría espacio para otro tipo de lógica, o son complejas, en otra arquitectura serían más simples.
En resumen, más transistores = más potencia, es obvio, pero transitores mejor utilizados, también = a más potencia.
He buscado artículos pero no encontré demasiado. Los datos están ahí pero no me apetece analizarlos de momento, quizá ustedes lo sepan.
La idea es que los procesadores x86 son muy ineficientes en general intrínsecamente por su diseño y arquitectura.
Mi argumento principal que respalda esto es su complicado juego de instrucciones.
Quizá muchos de ustedes han intentado alguna vez crear un desensamblador de x86, en C por ejemplo, y no es algo trivial ni fácil, el código que necesita es bastante y necesariamente complicado, no hay soluciones demasiado elegantes (a mi juicio).
Eso que nosotros hacemos en C o cualquier otro lenguaje, los microprocesadores tienen que hacerlo pero por medio de hardware, transistores, unidades lógicas. Ello hace que necesiten muchos más transistores que otras arquitecturas, y por tanto más consumo de potencia, o sea, eficiencia (da igual, energética o de potencia de cálculo, no diferencio).
Quizá sea por ello que en los sistemas empotrados x86 desaparece por completo, en general. Se tiende a microprocesadores ARM por ejemplo que consumen muchísimo menos y tienen gran potencia (aunque menos que los x86 que usan mucha más energía y frecuencias).
Es otra de las causas quizá por la que las GPU's, sus núcleos de procesamiento, tampoco usan x86, bueno, esto sería obvio ya que tienen otros usos más específicos, pero bueno, podrían compartir el juego básico, todo microprocesador tiene instrucciones de control, de movimiento de datos, etc.
Me consta también que Intel muchas veces "inteltó" (chiste malo) deshacerse del juego de instrucciones sustituyéndolo por otros, pero no pudo por el mercado.
Y mi atrevida sugerencia: si usáramos el mismo número de transistores y la misma frecuencia (y la misma técnica de última generación litográfica, etc), en un procesador tipo ARM, RISC o lo que sea, que un x86 actual, se superaría enormemente la potencia de cálculo.
El problema es arrastrar esa vieja compatibilidad "hacia atrás" (por la voz inglesa), que sólo obliga al diseño a estar estancado, cargando con viejas funcionalidades obsoletas que lo limitan, es una especie de evolución darwiniana de los procesadores, en que quedan miembros inútiles que antiguamente eran usados (tenía un nombre que ahora no recuerdo, si me lo pudieran recordar...
Otra idea que arroja esto, es que Intel debería estar realmente interesado en la pervivencia del modelo de código cerrado, ya que si pudiéramos usar sólo código abierto, no habría tanta dificultad en compilar los sistemas para cualquier máquina.
Se me olvidó mencionar también la idea, de que mucha de la lógica de los x86, se empeña en optimizar este código, de alguna manera estas unidades sobran en otra arquitectura, y habría espacio para otro tipo de lógica, o son complejas, en otra arquitectura serían más simples.
En resumen, más transistores = más potencia, es obvio, pero transitores mejor utilizados, también = a más potencia.