Microarquitectura

Microarquitectura
Microarquitectura del Core 2 de Intel.
Microarquitectura del Nehalem de Intel.

En ingeniería de computación, la microarquitectura (a veces abreviada como µarch o uarch), también llamada como organización del computador, es la manera que una arquitectura del conjunto de instrucciones (ISA) es implementada por el procesador. Un ISA dado puede ser implementado con diferentes microarquitecturas.[1] Las implementaciones pudieran variar debido a diferentes objetivos de un diseño dado o debido a los cambios en la tecnología.[2] La arquitectura de computadora es la combinación del diseño determinado de la microarquitectura y del conjunto de instrucciones.

Contenido

Relación del conjunto de instrucciones con la arquitectura

El conjunto de instrucciones (ISA) es más o menos el mismo que el modelo de programación de un procesador, en la manera que es visto por un programador de lenguaje ensamblador o escritor de un compilador. El ISA incluye el modelo de ejecución, los registros del procesador, los formatos de la dirección y los datos, entre otras cosas. La microarquitectura incluye a las partes constituyentes del procesador y cómo éstos se interconectan e interoperan para implementar el ISA.

La microarquitectura de una máquina se presenta generalmente como diagramas más o menos detallados que describen las interconexiones de los diferentes elementos microarquitectónicos de la máquina. Estos elementos pueden ser desde simples puertas y registros, hasta unidades arritméticas lógicas completas así como elementos más grandes. Estos diagramas se dividen en la trayectoria de datos (data path), que es donde se colocan los datos; y la trayectoria de control (control path), que son para dirigir los datos.[3]

Cada elemento microarquitectónico es, a su vez, representado por un diagrama esquemático que describe las interconexiones de las puertas lógicas usadas para implementarlo. Cada puerta lógica se representa por un diagrama de circuito describiendo las conexiones de los transistores usados para implementarla en alguna familia lógica particular. Esto hace que máquinas con diferentes microarquitecturas puedan tener la misma arquitectura del conjunto de instrucciones, por lo que son capaces de ejecutar los mismos programas. Se consigue seguir utilizando un mismo ISA al tiempo que se alcanzan mayores rendimientos mediante nuevas microarquitecturas y/o soluciones de circuitos, así como con avances en la fabricación de semiconductores.

Lo que se consigue con esto es que una sola microarquitectura pueda ejecutar diferentes ISA haciendo cambios menores al microcódigo.

Una microarquitectura describe, entre otros:

La microarquitectura y la arquitectura de conjunto de instrucciones forman la arquitectura de una computadora.

Aspectos de la microarquitectura

La trayectoria de datos intubada (pipelined datapath) es el diseño más común de la trayectoria de datos en la microarquitectura de hoy. Esta técnica se usa en la mayoría de los microprocesadores, microcontroladores, y DSPs modernos. 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,[3] 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. Algunas arquitecturas incluyen otras etapas tales como acceso a la memoria. El diseño de las tuberías es una de las tareas centrales de la microarquitectura.

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.

Las decisiones de diseño a nivel de sistema tales como incluir o no periféricos como controladores de memoria también pueden considerarse como partes del proceso de diseño microarquitectónico. Esto incluye decisiones sobre el nivel de desempeño y la conectividad de dichos periféricos.

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

Conceptos microarquitectónicos

Todas las CPU, así como las implementaciones de microprocesadores en un simple chip o multichips en general, ejecutan los programas realizando los siguientes pasos:

  1. Se lee una instrucción
  2. Se decodifica la instrucción
  3. Se encuentra cualquier dato asociado que sea necesario para procesar la instrucción
  4. Se procesa la instrucción
  5. Se escriben los resultados

Esta serie de pasos, simple en apariencia, se complican debido a la jerarquía de memoria, en la que se incluye la memoria caché, la memoria principal y el almacenamiento no volátil como pueden ser los discos duros, (donde se almacenan las instrucciones y los datos del programa), que son más lentos que el procesador en sí mismo. Con mucha frecuencia, el paso (2) origina un retardo muy largo (en términos de ciclos de CPU) mientras los datos llegan en el bus del computador. De hecho, se sigue investigando intensamente sobre la forma crear diseños que eviten estos retardos tanto cuanto sea posible. Durante muchos años, una de las metas principales del diseño microinformático ha sido la de ejecutar el mayor número posible de instrucciones en paralelo, aumentando así la velocidad efectiva de ejecución de un programa. Al principio, estos esfuerzos crearon estructuras lógicas y de circuito bastante complejas. De hecho, en un principio estas técnicas sólo podían implementarse en costosos mainframes y supercomputadores debido a la cantidad de circuitería necesaria para realizarlas. No obstante, estas técnicas han podido implementarse en chips semiconductores cada vez más pequeños a medida que la fabricación éstos fue progresando y avanzando, lo que ha abarado notablemente su costo.

Algunas técnicas microarquitectónicas comunes en los CPU modernos son:

Referencias

  1. Miles Murdocca and Vincent Heuring (2007). Computer Architecture and Organization, An Integrated Approach. Wiley. pp. 151. 
  2. Michael J. Flynn (2007). Computer Architecture Pipelined and parallel Processor Design. Jones and Bartlett. pp. 1–3. 
  3. a b John L. Hennessy and David A. Patterson (2006). Computer Architecture: A Quantitative Approach (Forth Edition edición). Morgan Kaufmann Publishers, Inc. ISBN 0123704901. 

Lectura adicional

  • D. Patterson and J. Hennessy (02-08-2004). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers, Inc.. ISBN 1558606041. 
  • V. C. Hamacher, Z. G. Vrasenic, and S. G. Zaky (02-08-2001). Computer Organization. McGraw-Hill. ISBN 0072320869. 
  • William Stallings (15-07-2002). Computer Organization and Architecture. Prentice Hall. ISBN 0130351199. 
  • J. P. Hayes (03-09-2002). Computer Architecture and Organization. McGraw-Hill. ISBN 0072861983. 
  • Gary Michael Schneider (1985). The Principles of Computer Organization. Wiley. pp. 6–7. ISBN 0471885525. 
  • M. Morris Mano (19-10-1992). Computer System Architecture. Prentice Hall. p. 3. ISBN 0131755633. 
  • Mostafa Abd-El-Barr and Hesham El-Rewini (03-12-2004). Fundamentals of Computer Organization and Architecture. Wiley-Interscience. p. 1. ISBN 0471467413. 
  • IEEE Computer Society
  • PC Processor Microarchitecture
  • Computer Architecture: A Minimalist Perspective - book webpage

Véase también

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем написать курсовую

Mira otros diccionarios:

  • Sandy bridge (microarquitectura) — Sandy Bridge Microprocesador Producción 2011   2013 Fabricante(s) Intel Frecuencia de reloj de CPU 2 GHz a 3,8 GHz …   Wikipedia Español

  • NetBurst — La Microarquitectura NetBurst, Llamada también P68 fue el sucesor de la microarquitectura P6 ambos pertenecientes a la familia del conjunto de instrucciones x86 de los CPU creados por Intel. Los primeros CPU en usar esta arquitectura fue el… …   Wikipedia Español

  • Intel Core 2 — Duo Microprocesador Producción 2006   2009 Fabricante(s) Intel Frecuencia de reloj de CPU 1,06 GHz a 3,33 GHz …   Wikipedia Español

  • Microprocesador — Procesador AMD Athlon 64 X2 conectado en el zócalo de una placa base. El microprocesador o simplemente procesador, es el circuito integrado central y más complejo de un sistema informático; a modo de ilustración, se le suele asociar por analogía… …   Wikipedia Español

  • Intel P8 — La Microarquitectura de Núcleo de Intel (más conocida por su nombre inglés, Intel Core Microarchitecture y conocida previamente como Microarquitectura de Nueva Generación Intel, Intel Next Generation Micro Architecture o NGMA) es una… …   Wikipedia Español

  • Intel Pentium 4 — Pentium 4 Microprocesador Pentium 4 (Northwood) / 1,80 GHz Producción 2000   2008 …   Wikipedia Español

  • Intel Nehalem — Nehalem es el nombre en clave utilizado para designar a la microarquitectura de procesadores Intel, sucesora de la microarquitectura Intel Core. El primer procesador lanzado con la arquitectura Nehalem ha sido el procesador de sobremesa Intel… …   Wikipedia Español

  • Pentium Dual-Core — Microprocesador Intel Pentium Dual Core E2140 Producción 2006   presente …   Wikipedia Español

  • Superescalar — es el término utilizado para designar un tipo de microarquitectura de procesador capaz de ejecutar más de una instrucción por ciclo de reloj. El término se emplea por oposición a la microarquitectura escalar que sólo es capaz de ejecutar una… …   Wikipedia Español

  • Intel Core i7 (Nehalem) — Para la familia de procesadores Core i7 basados en Sandy bridge, véase Intel Core i7 (Sandy bridge). Core i7 Microprocesador Producción Desde 2008 Fabricante(s) Intel …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”