En ingeniería de computación, la
microarquitectura también llamada como organización de la computadora, es la
manera que una arquitectura del conjunto de instrucciones (ISA) es implementada
por el procesador.
La arquitectura de computadora es la
combinación del diseño determinado de la micro arquitectura y del conjunto de
instrucciones.
Aspectos
de la microarquitectura y arquitectura
La trayectoria de datos intubada es el
diseño más común de la trayectoria de datos en la microarquitectura de hoy.
La arquitectura entubada permite solapar
diferentes instrucciones durante la misma ejecución, siendo algo muy similar a
la línea de montaje de una fábrica. El intubado incluye varias etapas
fundamentales en diseños de las microarquitecturas,como pueden ser la lectura
de la instrucción (fetch), el decodificado de la instrucción, la ejecución, y
la escritura (write back) de los resultados.
Las unidades de ejecución son también
esenciales para la microarquitectura. Estas unidades incluyen las unidades
aritmético lógicas (ALU), las unidades de coma flotante (FPU), las unidades de
la lectura/escritura (load/store), la predicción de bifurcación, y SIMD. Estas
unidades realizan las operaciones o los cálculos del procesador. La selección
del número de unidades de ejecución, su latencia y rendimiento es otra de las
tareas centrales del diseño microarquitectónico. El tamaño, latencia, el
rendimiento y la conectividad de las memorias dentro del sistema son también
decisiones de dicho diseño.
A diferencia del diseño arquitectónico,
donde lo que se pretende es lograr un nivel de desempeño óptimo, el diseño
microarquitectónico presta una atención más cercana a otras necesidades. Puesto
que las decisiones de diseño microarquitectónico afectan directamente a lo que
va dentro de un sistema, se debe prestar atención a cosas como:
- Ø Área/coste del chip
- Ø Consumo de energía
- Ø Complejidad de la lógica
- Ø Facilidad de la conectividad
- Ø Facilidad de fabricación
- Ø Facilidad de la depuración
- Ø Facilidad de hacer pruebas
VENTAJAS
DE LAS ARQUITECTURAS
Pila:
Modelo sencillo para evaluación de expresiones (notación polaca inversa).
Instrucciones cortas pueden dar una buena densidad de código.
Acumulador:
Instrucciones cortas. Minimiza estados internos de la máquina (unidad de
control sencilla).
Registro:
Modelo más general para el código de instrucciones parecidas. Automatiza
generación de código y la reutilización de operandos. Reduce el tráfico a
memoria. Una computadora actualmente tiene como estándar 32 registros. El
acceso a los datos es más rápido.
DESVENTAJAS
DE LAS ARQUITECTURAS
Pila: A
una pila no se puede acceder aleatoriamente. Esta limitación hace difícil
generar código eficiente. También dificulta una implementación eficiente, ya
que la pila llega a ser un cuello de botella es decir que existe dificultad
para la transferencia de datos en su velocidad mk.
Acumulador:
Como el acumulador es solamente almacenamiento temporal, el tráfico de memoria
es el más alto en esta aproximación.
Registro:
Todos los operadores deben ser nombrados, conduciendo a instrucciones más
largas.
TRADE-OFF
Trade-off o simplemente tradeoff es una
situación en la cual se debe perder cierta cualidad a cambio de otra cualidad.
Implica una decisión en la cual se comprende totalmente las ventajas y
desventajas de cada elección.
Trade-off se refiere, generalmente, a
perder un tipo de cualidad, pero ganando otro tipo de cualidad. Un ejemplo
clásico de trade-off ocurre en el caso del juego de Damas. Un jugador puede
dejar que el adversario le coma una pieza en su juego. Pero esa acción le va a
permitir obtener el doble o triple de piezas en su jugada.
Esto significa, para
que el jugador pueda conseguir un buen resultado es preciso sacrificar una
pieza.
SET
DE INSTRUCCIONES
Los conjuntos de instrucciones de las
máquinas deben tender a poseer una serie de propiedades, bastante ideales e
imprecisas, que pueden resumirse en las siguientes:
- Ø El conjunto de instrucciones de un computador debe ser completo en el sentido de que se pueda construir un programa para evaluar una función computable usando una cantidad de memoria razonable y empleando un tiempo moderado, es decir, el número de instrucciones de ese programa no debe ser demasiado elevado.
- Ø Los juegos de instrucciones también tienen que ser eficientes, esto significa que las funciones más necesarias deben poder realizarse usando pocas instrucciones.
- Ø El conjunto de instrucciones de una máquina debe ser regular, es decir debe ser simétrico (por ejemplo, si existe una instrucción de desplazamiento a la izquierda, debe haber otra de desplazamiento a la derecha, etc.) y ortogonal, es decir, deben poder combinarse, en la medida de lo posible, todos las operaciones con todos los tipos de datos y modos de direccionamiento.
Es necesario encontrar un compromiso
entre la simplicidad del hardware y del software. Un mínimo para llegar a ese compromiso
se consigue con los tipos de instrucciones siguientes:
- Ø Instrucciones de transferencia de datos.
- Ø Instrucciones aritméticas.
- Ø Instrucciones lógicas.
- Ø Instrucciones de control del flujo del programa (bifurcaciones, bucles, procedimientos)
- Ø Instrucciones de entrada y salida.
REFERENCIA BIBLIOGRAFICA
Miles
Murdocca and Vincent Heuring (2007). Computer Architecture and Organization, An
Integrated Approach.
Michael
J. Flynn (2007). Computer Architecture Pipelined and parallel Processor Design.
Jones and Bartlett.
Wikipedia. (09 de octubre de 2012).
Recuperado el 20 de octubre de 2012, de http://es.wikipedia.org/wiki/Trade-off
Hennessy,
J.L., & Patterson, D.A. (2003). Computer Architecture. A Quantitative
Approach. 3 edn. Morgan Kaufmann Publishers.
No hay comentarios:
Publicar un comentario