X86/ARM
Hablar de una
comparativa entre x86 y ARM es casi como comparar los dos sets de
instrucciones principales que nos podemos encontrar, CISC y RISC.
Con x86 nos
encontramos el tipo de procesador mas usado en equipos de
escritorios, el cual utiliza un set de instrucciones de tipo CISC
(Complex instruction set computing), es decir, que posee soporte para
un grupo de instrucciones más complejas, simultaneas y de ejecución
más lenta, pero que al fin y al cabo da lugar a códigos menores al
poseer menor uso de accesos a memoria (entrada/salida) y la
simplificación de la estructura de la programación concurrente.
Por otro lado, nos encontramos con los procesadores que lideran con mano firme el mercado móvil, ARM. En este caso estamos ante el uso de un set de instrucciones de tipo RISC (Reduced intruction set computing), es decir, cambiamos totalmente lo que CISC buscaba y nos centramos en la simplificación de instrucciones, buscando siempre la máxima eficiencia por ciclo y organizar mejor las operaciones dentro del núcleo de procesamiento.
El que cada uno contenga un conjunto de instrucciones “casi opuesto” y dominen mercados “tan diferentes” no es precisamente una casualidad. Vamos a exponer las características principales que hacen a estos dos grandes de la computación actual los elegidos para cada unos de estos mercados.
X86:
-Retrocompatibilidad
-Pocos
fabricantes (Intel, AMD, VIA)
-Amplio
abanico de instrucciones, de alta complejidad.
-Alto
rendimiento.
-Alto
uso energético.
ARM:
-Amplio
abanico de fabricantes, licencias.
-Simpleza,
número “pequeño” de instrucciones.
-Rendimiento
aceptable y en mejora.
-Bajo
uso energético.
Vamos
a detallar un poco más que quiere decir cada una de estas
características:
-Cuando
hablamos de retrocompatibilidad hacemos referencia a que es
completamente compatible con programas y/o procesos creados para
antiguos modelo. Esta característica es muy importante en el mundo
de la computación de sobremesa, ya que la misma lleva mucho tiempo
funcionando, y el ser compatible con lo ya previamente existente es
un punto a favor tanto para el consumidor como para programador.
-La
lucha por el mercado siempre es algo que tanto a la larga como al
futuro más cercano favorece sin duda a los consumidores y a los
productos. El que esté establecida esta lucha entre estas dos
arquitecturas no deja más que dejar mejoras y avances en el terreno.
Aún así, la cosa no se queda ahí. Ambas arquitecturas poseen a su
vez varias marcas productoras de ellas que dan lugar a una pequeña
“guerra civil”. En el caso de x86 la cosa no es tan grave,pues
Intel dio pocas licencias, pero no quiere decir que no sea intensa.
El número de empresas productoras de esta arquitectura las podemos
contar con los dedos de una mano, siendo su número de 3, Intel, AMD
y VIA, encontrándonos la gran lucha por el mundo del sobremesa entre
dos empresas casi hermanas, Intel y AMD. Por otro lado, ARM, permite
la compra a terceros de su licencia, dando lugar a un gran número de
marcas productoras de esta arquitectura, cada cual ofreciendo nuevas
mejoras, avances, y en general un mayor abanico de opciones para el
consumidor.
-Visto
por un programador, nos encontramos con dos ambientas bastantes
opuestos, y visto por cada cual uno diría que uno es mejor que el
otro. Cuando miramos a x86 nos encontramos con el modelo CISC, el
cual nos brinda un abanico cuanto menos grande de instrucciones a la
cual más compleja y que nos aportaran mejoras de tiempo, debido a
las mejoras en las implementaciones de paralelismo, bucles,
recursividad etc.. y un gran número de diferentes tamaños de
registros, destinados a operaciones muy precisas, tales como
procesamiento gráfico, instrucciones SIMD.
“Registers
availables in the x86 instruction set”:
http://en.wikipedia.org/wiki/X86
Sin embargo en el otro lado nos encontramos con una arquitectura de tipo RISC, ARM. En ella nos encontramos con un set de instrucciones mucho más pequeño, pero mucho más atómico, ¿qué quiere esto decir?. Pues esto quiere decir que las instrucciones se pueden prácticamente cambiar por instrucciones de tipo máquina, ahorrando tanto tiempo como energía en su traducción. Aparte de ello el que las instrucciones sean simples no quieren decir por defecto que sean malas, puesto que ayudan a su fácil comprensión y a su mejor implementación al ser más “fáciles de manejar”. En cuanto a los registros nos encontramos 37 registros de 32 bits:
*1
para el contador de programa
*1
para el registro de estado del programa actualmente
*5
para el registro de estado del programa guardado
*30
de propósito general
-Cuando hablamos de potencia y eficiencia energética, al decir x86, nos estamos refiriendo a una arquitectura muy potente pero que dejo de lado un poco la eficiencia energética en sus inicios. El porque de que esta arquitectura sea así, viene impregnado en su diseño. El que sea CISC nos dice de principio que usa un conjunto de instrucciones complejo y que requiere para su ejecución varios ciclos de reloj, pero que al usarlas, nos aportan mejoras de eficacia. Además el procesamiento de datos se presenta en diversas fases, siendo algunas de estas la decodificación o la asignación de memoria, y el tener microcodes, responsables de interpretar las instrucciones y pasarlas a procesos físicos. Esto que hemos mencionado anteriormente conlleva a un gran desempeño pero aparte de ello un gran consumo energético. Sin embargo cuando nos enfocamos en ARM nos encontramos con RISC, y su “simpleza”. Estos buscan la mayor eficiencia por ciclo, aparte de ello dan lugar chips más pequeños y más simples, dando lugar a una mejora considerable en cuanto a eficiencia energética.
CONCLUSIÓN
Podemos decir que x86 lleva la batuta en cuanto al mundo del
sobremesa y los servidores, debido a su gran desempeño. Aún así la
eficiencia energética que aporta ARM esta llamando mucho la atención
y están sustituyendo servidores de funcionamiento 24/7, debido a que
la mejora de potencia no equipara el mayor gasto que conlleva
tenerlos funcionando. Por otro lado el mundo móvil está siendo
dominado por ARM, sobre todo el de los smartphones, con más de un
90% de cuota de mercado. Todo esto debido a su papel en el ahorro de
energía, fundamental en las baterías, y su amplio abanico de
productores, lo que da juego al mercado y mayores opciones al
consumidor.
BIBLIOGRAFÍA
Varios
pdfs de las prácticas de laboratorio:
-The
ARM instruction set
-ARM:
Documentación Nociones básicas sobre la arquitectura ARM y el
lenguaje ensamblado
x86:
Documentación Nociones básicas sobre la arquitectura x86 y el
lenguaje ensamblador
Manuel Alba Caravaca
No hay comentarios:
Publicar un comentario