miércoles, 14 de enero de 2015

Comparativa x86/ARM





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