viernes, 19 de octubre de 2012

Micro-arquitectura y Arquitectura


Micro-arquitectura.- Es el segundo nivel de la maquina contemporánea por encima de la lógica digital y debajo de la arquitectura de conjunto de instrucciones. Su función es la de implementar el nivel ISA (arquitectura de conjunto de instrucciones, ISA= Instruction Set Architecture) que esta un nivel por encima. El diseño del nivel de micro-arquitectura depende de la ISA  que se está implementando, objetivo de costo y desempeño de la computadora.
La micro-arquitectura contiene un microprograma en la memoria ROM cuya tarea es buscar, decodificar y ejecutar las instrucciones de la ISA, este microprograma tiene un conjunto de variables llamadas estado de la computadora, al que todas las funciones tienen acceso. Cada función modifica al menos algunas de las variables que constituyen el estado. Por ejemplo el contador de programa (PC) forma parte del estado; indica donde se encuentra la siguiente función (instrucción ISA) a ejecutar.


Fig. 1 Niveles de una computadora moderna

Fuente: Tanenbaum A. S. (1999), Organización de computadoras: un enfoque estructurado, México, Editorial Prentice Hall Hispanoamericana S. A.


Diseño de nivel de micro-arquitectura.- Las computadoras pueden tener muchas características deseables como ser velocidad, confiabilidad, bajo consumo de energía, facilidad de uso, etc. Pero siempre que se mejore uno de estos, se paga el precio de empeorar otra u otras características, esto depende del diseñador de la CPU que deberá busca un equilibrio entre todas o una gran mayoría de las características.

Rapidez VS Costo.- Existen varias formas de medir la rapidez, dependiendo de la tecnología de circuitos y su ISA. Hay 3 estrategias para de aumentar la velocidad de ejecución
                *Reducir los ciclos de trabajo para ejecutar una instrucción
                *Simplificar la organización para que el ciclo de reloj pueda ser más corto
                *Cubrir la ejecución de instrucciones
El costo depende del área del chip, mientras más grande sea más costara y será más complejo. El diseñador tiene que decidir si el aumento de terreno justifica el aumento de velocidad.
Uno de los factores clave para determinar con qué rapidez puede operar el reloj es conociendo cuanto trabajo tendrá que realizar en cada ciclo de reloj, mientras más trabajo tenga que hacer más largo será el ciclo de reloj.

Reducción de la longitud de trayectoria de ejecución.- El número de ciclos de reloj para ejecutar un conjunto de operaciones se llama longitud de trayectoria

                *Fusión del ciclo de intérprete con el micro-código.- Consiste en traslapar (cubrir) la instrucción anterior a la que se está ejecutando, reduciendo ciclos de reloj en la ejecución del programa.

                *Una arquitectura de tres buses.- Consiste en poner a la entrada de la ALU dos buses, accesibles para cualquier registro, haciendo que cualquier suma que realice esta, lo haga en un solo ciclo de reloj.

                *Unidad de obtención de instrucciones.- Consiste en añadir una segunda ALU para ahorrar tareas a la ALU original, esta nueva ALU se llama unidad de búsqueda de instrucciones (IFU) que interpreta cada código de operación y luego prepara lo necesario para que la unidad de ejecución principal se limite a usar lo preparado por la IFU.

Nivel de Arquitectura de conjunto de instrucciones (ISA).- También conocido como nivel de máquina, consiste en el reconocimiento del lenguaje maquina por parte de una arquitectura particular de la computadora. Un programa escrito en verdadero lenguaje maquina no necesita intérpretes, traductores o compiladores, la circuitería lo puede ejecutar directamente.
El ISA especifica las instrucciones que la computadora puede realizar y el formato para cada instrucción. Este nivel es como un intermediario entre el software y el hardware. La mayoría de los ISAs contiene set de instrucciones de movimiento, procesamiento de datos y controlar la secuencia de ejecución del programa. 


Fig. 2 Procesador IBM con arquitectura PowerPC

Fuente: 
http://arquitectura-powerpc.blogspot.com/2008/04/la-arquitectura-de-powerpc.html, La arquitectura del PowerPC, Orliana Parra, recuperado (19/10/12)

Relación entre micro-arquitectura y arquitectura.- La micro-arquitectura y arquitectura se encuentran en distintos niveles de una computadora moderna, por lo tanto tienen mucha relación, la micro-arquitectura es la que interpreta, decodifica y ejecuta las instrucciones del nivel superior que es el nivel de arquitectura. Un nivel depende del otro, se necesitan mutuamente para poder realizar sus trabajos a cabalidad, y hacer que la computadora trabaje de una forma más eficiente y rápida.

Unificación de set de instrucciones

                *Ventajas.-        - Compatibilidad entre arquitecturas
                                               -Mayor facilidad de aprender el set de instrucciones, que sería universal
                                               -Capacidad de migrar de arquitectura sin problemas

                *Desventajas.-
                                               -Surgimiento de problemas de intereses de las empresas fabricantes de                                           dispositivos haciendo que el avance tecnológico sea lento.
                                               -Estancamiento en la creación de nuevas arquitecturas

Ejemplos de micro- arquitectura y arquitectura en procesadores

Procesador
Micro-arquitectura
Set de Instrucciones
Pentium IV
NetBurst
SSE2
Procesadores Intel Core de 4º Generación
Haswell AVX 2.0
AMD Athlon
Trinity
AES, AVX




No hay comentarios:

Publicar un comentario