FAMILIA DE PROCESADORES ARM
Enviado por Antony Gonzales • 18 de Octubre de 2015 • Documentos de Investigación • 2.643 Palabras (11 Páginas) • 561 Visitas
FAMILIA DE PROCESADORES ARM
Como se ha indicado, las características de las arquitecturas RISC favorecen un diseño sencillo del cauce que puede integrarse en un microprocesador, y facilitan un aprovechamiento eficiente del mismo. De hecho, desde el principio, las propuestas de procesadores RISC se planteaban como procesadores segmentados. La segmentación de cauce se fue incorporando en las microarquitecturas de procesadores con repertorios de instrucciones CISC. Así, por ejemplo, el microprocesador 80486 de lntel (1989) utiliza un cauce de cinco etapas, y el MC68040 de Motorola, uno de seis (1991). En la actualidad es difícil encontrar un fabricante sin un producto RISC o que no incorpore principios RISC en sus microprocesadores. De hecho, desde finales de los 8O, hablar de procesadores RISC puros puede considerarse algo del pasado [Clements 00].
Con el tiempo, los procesadores segmentados han ido introduciendo nuevos elementos para ser capaces de procesar más de una instrucción por ciclo, dando lugar a los procesadores superescalares y VLIW, que se estudian en los Capítulos 3, 4 y 5de esta forma. Prácticamente todos los procesadores utilizados en el ámbito de los computadores de sobremesa y servidores (incluidos los computadores de altas prestaciones para calculo científico) son procesadores segmentados con microarquitectura superescalares, VLIW, etc. No obstante, sigue existiendo un mercado para el que siguen desarrollándose procesadores segmentados: el de los procesadores embebidos en circuitos integrados para aplicaciones que requieren niveles de prestaciones que no pueden alcanzarse, por ejemplo, mediante otros microcontroladores o dispositivos más sencillos. En la Figura 2.42 [Makimoto 01], junto con la evolución de las prestaciones de los procesadores RISC Y CISC para el mercado de servidores y equipos de sobremesa, se ha incluido también la línea de nuevos procesadores RISC, representada fundamentalmente por las arquitecturas ARM de Advance RISC machine y SH de Hitachi, que suponen un rediseño de la arquitectura RISC para proporcionar un cociente prestaciones/ potencia elevado. La potencia disipada por estas nuevas arquitecturas RISC está en torno a uno o dos watios, de forma que puedan incluirse en los computadores de bolsillo o dispositivos similares. A continuación, y como ejemplo de procesador segmentado, se proporcionan algunos detalles de la arquitectura ARM y de su implementación a través de microarquitecturas segmentadas.
La familia de procesadores ARM se dirige fundamentalmente al mercado de los sistemas embebidos, por lo que las restricciones de bajo coste y consumo tienen una importancia determinante en el diseño de los sucesivos modelos de procesadores de la familia. El primer procesador ARM se desarrolló en Inglaterra entre 1983 y 1985. En ese momento ya se habían propuesto las primeras arquitecturas RISC: RISC l y RISC ll, en Berkeley, y MIPS, en Stanford. La arquitectura ARM incorpora una serie de características de la arquitectura de Berkeley: se trata de una arquitectura de tipo carga/almacenamiento, con instrucciones de tamaño fijo de 32 bits y formatos de instrucciones con tres direcciones.
Han aparecido cinco versiones diferentes del repertorio de instrucciones ARM, v1 a V5. Las versiones V1 y V2 sólo disponen de 26 bits para direcciones de memoria. En la versión v3 ya se introducen direcciones de byte de 32 bits y operandos de 32 bits. La versión v2 introdujo instrucciones de multiplicación con operandos de 32 bits, y la versión v4 las de multiplicación con operandos de 64 bits. Además, la versión v5 (y una ampliación de la misma denominada V5E) añade instrucciones para normalizar números, para realizar operaciones de multiplicación y acumulación de 16 bits (muy útiles en las rutinas de procesamiento de señales digitales) y para la gestión de puntos de ruptura en la depuración de programas.
Una característica importante del repertorio de instrucciones ARM, es la existencia de una codificación compacta del conjunto de instrucciones ARM de las versiones v4 y v5.
[pic 1]
…………………………………….
Esta codificación se denomina conjunto de instrucciones thumb, para el que se tienen las versiones v4T y v5T, según la variante del repertorio ARM (v4 y v5, respectivamente) en el que se incluyen. Cada instrucción del repertorio thumb ocupa 16 bits, de forma que es posible reducir la memoria ocupada por los programas de las aplicaciones en sistemas embebidos de bajo costo y consumo. Tras captarse de memoria, las instrucciones thumb se descomprimen dinámicamente, generándose, a partir de su formato de 16 bits, la instrucción ARM de 32 bits que pasa a ejecutarse. En algunas implementaciones de procesadores ARM de altas prestaciones no se produce la descompresión, sino que se ejecutan directamente de instrucciones thumb. En el registro de estado del procesador (registro CPSR, current program status register ) existe un bit, el bit T, cuyo valor indica si en procesador entran instrucciones thumb (T=1) o ARM estándar (T=0). Junto con el registro de estado CPSR, al que nos hemos referido, existen otros 16 registros de 32 bits que forman parte del modelo de programación en modo usuario. De estos, los registros r0 a r14 son registro de propósito general, mientras que el registro r15 es el contador del programa. Existe otra seria de registros en el modelo de programación que solo utilizan para los programas de sistema y la gestión de excepciones.
Una característica importante del repertorio de instrucciones ARM, sobre todo desde el punto de vista del uso eficiente del cauce, es la posibilidad de ejecución condicional de cualquier instrucción (excepto algunas instrucciones de la versión v5T). Es decir, es posible condicionar la ejecución de cualquier instrucción al cumplimiento de una condición que se compruebe en el CPSR. La condición a comprobar se indica en la propia instrucción. Se trata de una característica poco usual en otras arquitecturas, sobre todo en lo que respecta a que cualquier instrucción se pueda ejecutar condicionalmente, y contribuye de forma importante a reducir el número de instrucciones de salto condicional con el consiguiente efecto beneficioso en el rendimiento del cauce. En los capítulos 3 y 5 se consideran con más detenimiento las instrucciones de ejecución condicional, o instrucciones con predicado. En [furber 00] se describen con bastante detalle todas las características del repertorio ARM, incluyendo las características de su codificación.
...