| Artículos | 01 SEP 2006

Microarquitectura Core

Tags: Histórico
Eugenio Barahona.
Pensando en las necesidades de los usuarios exigentes, que van más allá de velocidad de reloj, y se centran en otros aspectos como la reducción de consumo o la ejecución de instrucciones en paralelo, Intel ha renovado la microarquitectura de sus procesadores para portátiles, sobremesa y servidores. Les presentamos la nueva microarquitectura Core.

Hasta ahora la gama de microprocesadores Pentium 4 y Xeon de Intel se basaba en una arquitectura denominada NetBurst, que hizo su primera aparición comercial de la mano de los primeros procesadores basados en el núcleo conocido como Willamette. A dicho núcleo le sucedieron sucesivas evoluciones, conocidas como Northwood y Presscot, de las que puede decirse que su objetivo principal consistía en permitir a Intel elevar la frecuencia de reloj a la que trabajaban sus microprocesadores. Dicha obsesión se debía a que estos procesadores descomponían la ejecución de las instrucciones en un elevado número de pasos. Este modo de funcionamiento hace posible elevar la frecuencia de reloj del procesador de manera relativamente sencilla, pero plantea también una pega importante: si el micro debe ejecutar un salto condicional, y la unidad de predicción de saltos realiza una predicción errónea, será preciso invalidar la ejecución de las instrucciones que se encuentran “en proceso” en las distintas unidades que forman el pipeline del procesador. Esta característica, unida a algunas otras, hace que los microprocesadores basados en NetBurst ejecuten menos instrucciones por cada ciclo de reloj que los productos de, por ejemplo, AMD.
Para solucionar estos problemas y algunos otros, como los relacionados con el elevado consumo eléctrico, de sus procesadores, Intel comenzó el desarrollo de una nueva arquitectura que daría lugar a la aparición en el mercado de variantes destinadas a los mercados de servidores, sistemas portátiles y ordenadores de sobremesa. La nueva arquitectura toma ciertos elementos de diseño de la familia de procesadores Pentium M que tan buen resultado ha obtenido en el segmento de los portátiles. Además se añade un segundo núcleo al procesador, lo que sin duda mejorará el rendimiento de las aplicaciones que empleen varios hilos de ejecución y, en general, cuando se usen varios programas simultáneamente.
Tampoco se desechan totalmente todas las tecnologías que formaban parte de la arquitectura NetBurst, sino que se mejoran algunas de ellas para incorporarlas a las nuevas familias de procesadores que nacerán basadas en la microarquitectura que Intel ha denominado Core.
Rendimiento no es igual a frecuencia de reloj
Los procesadores basados en núcleos de tipo Core funcionarán a una frecuencia de reloj notablemente inferior a la que utilizan los microprocesadores de tipo Pentium 4 y Xeon basados en NetBurst. Si bien Intel enfatizó en el pasado el uso del dato de la frecuencia de reloj como claro indicador del rendimiento de un determinado procesador lo cierto es que, aunque relevante, hay otras características que influyen de manera notable en la velocidad a la que una determinada arquitectura es capaz de ejecutar el software.
Otro dato de vital importancia es el número de instrucciones que se ejecutan por cada ciclo de reloj, de manera que un indicador más veraz del rendimiento de un sistema vendría dado por el producto de la frecuencia de reloj por el número de instrucciones ejecutables por cada ciclo. Hay que tener en cuenta que, sin embargo, el dato que se obtiene de dicho producto es un valor máximo teórico que podría alcanzarse en un caso ideal. Esto se debe a que la ejecución en paralelo de varias instrucciones siempre plantea ciertas limitaciones, por lo que en el cálculo del rendimiento de un procesador habrá que tener también en cuenta el software que se use. Un claro ejemplo de este tipo de contención puede apreciarse cuando para la ejecución de una instrucción se necesita conocer el resultado de una instrucción anterior y dicho resultado aún no está disponible.
La solución que Intel introduce en sus micros Core se denomina Wide Dynamic Execution y es una combinación de técnicas empleadas en la microarquitectura conocida como P6, en la que estaban basados los procesadores Pentium Pro, Pentium II y Pentium III. Con esta tecnología cada núcleo de un procesador de tipo Core es capaz de mantener en ejecución simultáneamente un máximo de cuatro instrucciones por ciclo de reloj. Arquitecturas anteriores de Intel, como NetBurst o la utilizada en los primeros Pentium M, era capaz de ejecutar a la vez un máximo de tres instrucciones. Además se combinan otra serie de técnicas que Intel ya había explorado anteriormente en sus diversas familias de procesadores, como el análisis del flujo de instrucciones, la ejecución especulativa y la ejecución fuera de orden y superescalar.
Otras mejoras en el rendimiento del sistema se obtienen gracias a una mejorada unidad de predicción de saltos, unos buffers de instrucciones de mayor capacidad y otra serie de características destinadas a reducir el número de ciclos de reloj que consume la ejecución del juego de instrucciones x86.

Macrofusion y microfusion
Precisamente esta tecnología está pensada para reducir el tiempo de ejecución de las instrucciones. A lo contrario de lo que sucedía en arquitecturas anteriores de Intel, en las que cada instrucción se decodificaba y ejecutaba independientemente, ahora es posible que determinados pares de instrucciones de tipo x86 se combinen internamente en una sola microinstrucción durante la fase de decodificación de instrucciones x86. Éste es el caso que se da cuando en un programa se encuentra una instrucción de comparación que está inmediatamente seguida por una de salto condicional. De esta manera es posible incrementar el número de instrucciones que se ejecutan en un determinado período de tiempo. La técnica de macrofusión está apoyada por una nueva unidad aritmético-lógica que permite la ejecución de instrucciones en un solo ciclo de reloj.
Microfusion es una tecnología que se ha heredado de la familia de procesadores Pentium M que Intel diseñó para el mercado de los sistemas portátiles. Se basa en que, en la mayoría de procesadores x86 modernos, el juego de instrucciones nativo se traduce a una serie de microinstrucciones que son las que el núcleo del procesador realmente entiende y es capaz de ejecutar. Algunas instrucciones x86 sencillas se decodifican directamente a una microinstrucción, mientras que las más complejas hacen que el procesador acceda a una pequeña memoria interna de donde se obtiene un conjunto de microinstrucciones que implementan la función de la instrucción x86 original. Microfusion combina en una sola microinstrucción varias microinstrucciones procedentes de la decodificación del código de operación del juego de instrucciones x86.

La nueva caché
Todos los procesadores modernos incluyen varios niveles de memoria caché. El uso de este tipo de memoria es fundamental, ya que las CPU actuales trabajan a velocidades muy superiores a las de funcionamiento de la memoria RAM e incluso de los dispositivos de entrada/salida disponibles en la actualidad. Es preciso por tanto disponer de algún mecanismo que, de alguna manera, oculte la latencia inherente a los accesos a la memoria RAM del sistema. La memoria caché, básicamente, mantiene una copia de diversas zonas de la memoria principal del or

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información