Saltar al contenido

¿En qué se diferencia la arquitectura ARM de x86?

Nuestro team especializado luego de ciertos días de trabajo y recopilar de información, obtuvimos la solución, deseamos que te sea de gran utilidad para tu proyecto.

Solución:

ARM es una arquitectura RISC (Computación de conjunto de instrucciones reducido) mientras x86 es un CISC (Computación de conjuntos de instrucciones complejas).

La principal diferencia entre los que se encuentran en este aspecto es que las instrucciones ARM operan solo en registros con algunas instrucciones para cargar y guardar datos desde / hacia la memoria, mientras que x86 también puede operar directamente en la memoria. Hasta v8, ARM era una arquitectura nativa de 32 bits, que favorecía las operaciones de cuatro bytes sobre otras.

Por lo tanto, ARM es una arquitectura más simple, lo que lleva a un área de silicio pequeña y muchas funciones de ahorro de energía, mientras que x86 se convierte en una bestia de energía en términos de consumo y producción de energía.

Acerca de la pregunta sobre “¿La arquitectura x86 está especialmente diseñada para funcionar con un teclado mientras ARM espera ser móvil?“. x86 no está especialmente diseñado para funcionar con un teclado ni ARM para móvil. Sin embargo, nuevamente, debido a las opciones arquitectónicas centrales, en realidad x86 también tiene instrucciones para trabajar directamente con IO mientras que ARM no lo ha hecho. Sin embargo, con los buses de E / S especializados como los USB, la necesidad de tales funciones también está desapareciendo.

Si necesita un documento para citar, esto es lo que dice la Guía de programadores de la serie Cortex-A (4.0) sobre las diferencias entre las arquitecturas RISC y CISC:

Un procesador ARM es un procesador de computadora con conjunto de instrucciones reducido (RISC).

Los procesadores Complex Instruction Set Computer (CISC), como el x86, tienen un rico conjunto de instrucciones capaz de hacer cosas complejas con una sola instrucción. Estos procesadores suelen tener una cantidad significativa de lógica interna que decodifica las instrucciones de la máquina en secuencias de operaciones internas (microcódigo).

Las arquitecturas RISC, por el contrario, tienen un número menor de instrucciones de propósito más general, que podrían ejecutarse con significativamente menos transistores, lo que hace que el silicio sea más barato y más eficiente en el consumo de energía. Al igual que otras arquitecturas RISC, los núcleos ARM tienen una gran cantidad de registros de propósito general y muchas instrucciones se ejecutan en un solo ciclo. Tiene modos de direccionamiento simples, donde todas las direcciones de carga / almacenamiento se pueden determinar a partir del contenido del registro y los campos de instrucción.

La compañía ARM también proporciona un documento titulado Artículo de desarrollo de arquitecturas, procesadores y dispositivos que describe cómo esos términos se aplican a su negocio.

Un ejemplo que compara la arquitectura del conjunto de instrucciones:

Por ejemplo, si necesita algún tipo de bloque de comparación de memoria por bytes en su aplicación (generado por el compilador, omitiendo detalles), así es como podría verse en x86

repe cmpsb         /* repeat while equal compare string bytewise */

mientras tanto ARM La forma más corta podría verse como (sin verificación de errores, etc.)

top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2    /* subtract r2 from r3 and put result into r2      */
beq  top           /* branch(/jump) if result is zero                 */

lo que debería darle una pista sobre cómo los conjuntos de instrucciones RISC y CISC difieren en complejidad.

Tampoco tiene nada específico para el teclado o el móvil, aparte del hecho de que durante años ARM ha tenido una ventaja bastante sustancial en términos de consumo de energía, lo que lo hizo atractivo para todo tipo de dispositivos que funcionan con baterías.

En cuanto a las diferencias reales: ARM tiene más registros, predicación compatible para la mayoría de las instrucciones mucho antes de que Intel la agregara, y durante mucho tiempo ha incorporado todo tipo de técnicas (llámelas “trucos”, si lo prefiere) para ahorrar energía en casi todas partes.

También hay una diferencia considerable en cómo codifican las dos instrucciones. Intel utiliza una codificación de longitud variable bastante compleja en la que una instrucción puede ocupar desde 1 hasta 15 bytes. Esto permite que los programas sean bastante pequeños, pero hace que la decodificación de instrucciones sea relativamente difícil (como en: decodificar instrucciones rápidas en paralelo es más como una completa pesadilla).

ARM tiene dos modos de codificación de instrucciones diferentes: ARM y THUMB. En el modo ARM, tiene acceso a todas las instrucciones y la codificación es extremadamente simple y rápida de decodificar. Desafortunadamente, el código del modo ARM tiende a ser bastante grande, por lo que es bastante común que un programa ocupe aproximadamente el doble de memoria que el código Intel. El modo de pulgar intenta mitigar eso. Todavía utiliza una codificación de instrucciones bastante regular, pero reduce la mayoría de las instrucciones de 32 bits a 16 bits, por ejemplo, al reducir el número de registros, eliminar la predicación de la mayoría de las instrucciones y reducir el rango de ramas. Al menos en mi experiencia, esto todavía no suele dar bastante La codificación es tan densa como puede ser el código x86, pero está bastante cerca, y la decodificación sigue siendo bastante simple y directa. Una densidad de código más baja significa que generalmente necesita al menos un poco más de memoria y (generalmente más en serio) una caché más grande para obtener un rendimiento equivalente.

En un momento, Intel puso mucho más énfasis en la velocidad que en el consumo de energía. Comenzaron a enfatizar el consumo de energía principalmente en el contexto de las computadoras portátiles. Para las computadoras portátiles, su objetivo de energía típico era del orden de 6 vatios para una computadora portátil bastante pequeña. Más recientemente (mucho más recientemente) han comenzado a apuntar a dispositivos móviles (teléfonos, tabletas, etc.) para este mercado, están buscando un par de vatios como máximo. Parece que les está yendo bastante bien en eso, aunque su enfoque ha sido sustancialmente diferente al de ARM, enfatizando la tecnología de fabricación donde ARM ha enfatizado principalmente la microarquitectura (no es sorprendente, considerando que ARM vende diseños y deja la fabricación a otros).

Sin embargo, dependiendo de la situación, el consumo de energía de una CPU suele ser más importante que su consumo de energía. Al menos, tal como estoy usando los términos, el consumo de energía se refiere al uso de energía de forma (más o menos) instantánea. Sin embargo, el consumo de energía se normaliza para la velocidad, por lo que si (por ejemplo) la CPU A consume 1 vatio durante 2 segundos para hacer un trabajo, y la CPU B consume 2 vatios durante 1 segundo para hacer el mismo trabajo, ambas CPU consumen la misma cantidad total de energía (dos vatios segundos) para hacer ese trabajo, pero con la CPU B, obtienes resultados el doble de rápido.

Los procesadores ARM tienden a funcionar muy bien en términos de consumo de energía. Entonces, si necesita algo que necesita la “presencia” de un procesador casi constantemente, pero que en realidad no está haciendo mucho trabajo, puede funcionar bastante bien. Por ejemplo, si está realizando una videoconferencia, recopila algunos milisegundos de datos, los comprime, los envía, recibe datos de otros, los descomprime, los reproduce y repite. Incluso un procesador realmente rápido no puede pasar mucho tiempo durmiendo, por lo que para tareas como esta, ARM funciona realmente bien.

Los procesadores de Intel (especialmente sus procesadores Atom, que en realidad están pensados ​​para aplicaciones de bajo consumo) son extremadamente competitivos en términos de consumo de energía. Mientras se ejecutan cerca de su velocidad máxima, consumirán más energía que la mayoría de los procesadores ARM, pero también terminan de trabajar rápidamente, por lo que pueden volver a dormir antes. Como resultado, pueden combinar una buena duración de la batería con un buen rendimiento.

Por lo tanto, al comparar los dos, debe tener cuidado con lo que mide, para asegurarse de que refleje lo que honestamente le importa. ARM funciona muy bien en el consumo de energía, pero dependiendo de la situación, es posible que le importe más el consumo de energía que el consumo instantáneo de energía.

Adicional al primer párrafo de Jerry Coffin. Es decir, el diseño ARM proporciona un menor consumo de energía.

La empresa ARM, solo licencia la tecnología de CPU. No fabrican chips físicos. Esto permite que otras empresas agreguen varias tecnologías periféricas, normalmente llamadas SOC o sistema en chip. Ya sea que el dispositivo sea una tableta, un teléfono celular o un sistema de entretenimiento en el automóvil. Esto permite a los proveedores de chips adaptar el resto del chip a una aplicación en particular. Esto tiene beneficios adicionales,

  1. Menor costo de la tabla
  2. Baja potencia (nota 1)
  3. Fabricación más sencilla
  4. Factor de forma más pequeño

ARM apoya a los proveedores de SOC con AMBA, lo que permite a los implementadores de SOC comprar módulos de terceros listos para usar; como Ethernet, memoria y controladores de interrupción. Algunas otras plataformas de CPU admiten esto, como MIPS, pero MIPS no es tan consciente de la energía.

Todos estos son beneficiosos para un diseño de mano / batería. Algunos son buenos para todos. Así como, ARM tiene un historial de dispositivos que funcionan con baterías; Apple Newton, organizadores de Psion. Algunas empresas aprovecharon la infraestructura de software de PDA para crear teléfono inteligente dispositivos de tipo. Aunque, aquellos que reinventaron la interfaz gráfica de usuario tuvieron más éxito para su uso con un teléfono inteligente.

El aumento de Open source juegos de herramientas y operating systems también facilitó las diversas SOC papas fritas. Una organización cerrada tendría problemas para tratar de admitir todos los diversos dispositivos disponibles para ARM. Las dos plataformas móviles más populares, Andriod y OSx / IOS, están basadas en sistemas operativos Linux y FreeBSD, Mach y NetBSD. Open Source ayuda SOC los proveedores brindan soporte de software para sus conjuntos de chips.

Con suerte, ¿por qué? x86 se utiliza para el teclado es evidente por sí mismo. Tiene el software y, lo que es más importante, personas capacitadas para usar ese software. Netwinder es uno ARM sistema que fue diseñado originalmente para el teclado. Además, los fabricantes están considerando ARM64 para el mercado de servidores. La energía / calor es una preocupación en los centros de datos las 24 horas del día, los 7 días de la semana.

Entonces yo diría que el ecosistema que crece alrededor de estos chips es tan importante como características como el bajo consumo de energía. ARM ha estado luchando por la informática de bajo consumo y alto rendimiento durante algún tiempo (desde mediados hasta finales de la década de 1980) y tienen mucha gente a bordo.

Nota 1: varios chips necesitan controladores de bus para comunicarse entre sí a voltajes y unidades conocidas. Además, los chips normalmente separados necesitan condensadores de soporte y otros componentes de potencia que se pueden compartir en un SOC sistema.

Nos puedes asentar nuestro trabajo escribiendo un comentario o puntuándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *