1.
Introducción
2. Características
Técnicas
3. Unidad de Búsqueda y
Decodificación
4. Unidad de Despacho y
Ejecución
5. Unidad de Interfaz con el
Bus
6. Bibliografía
En Marzo de 1999 apareció en el mercado el Pentium III, conocido en la etapa de proyecto como Katmai. Es un Pentium II mejorado, por lo que durante casi 2 años fue el microprocesador de bandera de Intel, pues, a las ventajas del Pentium II Xeon, incorpora nuevas instrucciones de microcódigo que mejoran la capacidad de manejo de 3-D (instrucciones Katmai). En un inicio el Pentium III se comercializó a 500 MHz, pero actualmente su velocidad supera el 1 GHz. Como miembro de la familia de procesadores P6, generación de procesadores que le sucedió a la línea Pentium de Intel se caracteriza por la implementación de la microarquitectura de ejecución dinámica, la cual incorpora una única combinación de la predicción de salto múltiple, análisis del flujo de datos y la ejecución especulativa. Esto hizo posible que la familia P6 tuviera un mayor rendimiento que la familia Pentium mientras mantenía la compatibilidad binaria con la arquitectura de los procesadores anteriores de Intel.
La potencia de un procesador Intel® Pentium III, brinda desempeño y confiabilidad, que es mejor para la mayor parte de los consumidores y usuarios de negocios, a continuación las características que especifican el procesador Pentium III.
- Visualización y manipulación de
imágenes de mayor resolución y calidad.
- Vídeo MPEG2 y sonido de alta calidad, y
codificación y decodificación MPEG2
simultáneas.
- Gran parte de los procesadores Intel Pentium III vienen
equipados con una cache de transferencia avanzada, y un avanzado
sistema de almacenaje intermediario para alcanzar los requisitos
de datos que requieren gran ancho de banda en los ambientes de
hoy (tratamiento de imagen, CAD,
Windows
NT).
Arquitectura de ejecución dinámica en
Pentium III
El mecanismo de ejecución fuera de orden llamado
"Ejecución Dinámica incorpora tres conceptos
importantes:
Puede afirmarse que la ejecución dinámica elimina las limitaciones del empleo de una secuencia lineal de instrucciones entre las fases de búsqueda y ejecución tradicionales. Esta permite decodificar instrucciones que se encuentren en múltiples niveles de ramificaciones para mantener el pipeline de instrucciones lleno. También permite la ejecución de instrucciones fuera de orden para mantener las unidades de ejecución de instrucciones del procesador corriendo a toda capacidad. Finalmente entrega los resultados de las instrucciones ejecutadas en el orden original del programa para mantener la integridad de los datos y la coherencia del programa sobresaliente de ejecución fuera de orden, optimizando el uso de las unidades de ejecución, todo esto se logra con la implementacion por hardware de la arquitectura que garantice la Ejecución Dinámica y a la cual hacemos referencia seguidamente.
La microarquitectura de un superpipeline con características multietapas, el cual trata de trabajar menos por etapa de pipeline para un numero de 20 etapas 33 % menos que en el procesador Pentium, lo que ayuda a lograr un mayor rango del reloj en el proceso. Esta microarquitectura elimina la secuencia tradicional entre las fases de búsqueda y ejecución y amplia el ancho de la ventana de instrucciones con la utilización de la piscina de instrucciones. Esto le permite al procesador tener mucho mas visibilidad dentro del flujo de instrucciones del programa en la fase de ejecución lo que mejora la planificación. Esto necesita de una mayor eficiencia del procesador en la fase de búsqueda y decodificación en términos de la predicción del flujo del programa. Una planificación optimizada necesita la fase de ejecución que es reemplazada por fase doble "despacho /ejecución" y la fase de "retiro". Esto permite que las instrucciones sean comenzadas en cualquier orden pero que siempre sean completadas en el orden original del programa, por lo que se puede considerar tres mecanismos acoplados con una piscina de instrucciones como se muestra en la figura.

A continuación una muestra detallada de cada una de las unidades que garantizan la ejecución dinámica.
3. Unidad de Búsqueda y Decodificación

En esta unidad la cache L1 es una cache de
instrucción local. La unidad Next_IP (próximo
índice) suministra el índice de la
instrucción de la cache L1, basado en las entradas desde
la Tabla de destino de Saltos BTB, estado
Lazo/Interrupción y de las indicaciones de perdida de la
predicción del salto desde la unidad de la sección
de ejecución de enteros.
La cache de instrucción L1 busca la línea de cache
correspondiente y el índice de la próxima
línea desde Next_IP y presenta 16 bytes alineados al
decodificador. Los bytes prebuscados son rotados así que
estos están ajustados para el decodificador de
instrucciones (ID). El comienzo y el final de las instrucciones
son marcados.
Los tres decodificadores paralelos aceptan este flujo de bytes
marcados, y proceden a encontrar y decodificar las instrucciones
contenidas allí dentro. El decodificador convierte las
instrucciones en µop de tres elementos (dos fuentes
lógicas y un destino lógico por µop.
Muchas instrucciones de la arquitectura Intel son convertidas
directamente en µops sencillas, alguna instrucciones son
decodificadas en de una a cuatro µops y las instrucciones
complejas requieren microcodigos (Secuenciador de instrucciones
microcodigo). Este microcodigo es un conjunto de secuencias
preprogramadas de las µops normales. Las µops
están en una cola y son enviadas a la unidad Tabla de
Registro de
Alias (RAT), donde los registros
lógicos son convertidos en registros físicos en la
familia P6 los registros físicos y el estado de
asignación el cual adiciona información del estado
a las µops y las introduce en la piscina de instrucciones.
La piscina de instrucciones esta implementada como un arreglo de
una
capacidad de memoria direccionable llamado Buffer de
Reordenamiento (ROB).
Durante cada ciclo de reloj pueden ser decodificadas hasta tres
macroinstrucciones en el primer estado de decodificación
del pipeline. Sin embargo si las instrucciones son complejas o
son de mas 7 bytes entonces el decodificador esta limitado a
decodificar algunas instrucciones. Los decodificadores pueden
decodificar:
Se tienen tres decodificadores. El primer decodificador es capaz de decodificar una macroinstruccion de la arquitectura Intel de cuatro o menos µops en cada ciclo de reloj. Los otros dos decodificadores pueden decodificar cada uno una instrucción de la arquitectura Intel de una µop en cada ciclo de reloj. En general:
4. Unidad de Despacho y Ejecución
La unidad de Despacho selecciona las µops desde la piscina de instrucciones dependiendo de su estado. Si el estado indica que una µop tiene todos sus operandos, entonces la unidad de Despacho chequea para ver si el recurso de ejecución necesitado por esa µop esta también disponible. Si ambas cosas son ciertas, la Estación de Reservación quita esa µop y la envía al recurso donde será ejecutada. Los resultados de la µop posteriormente son retornados a la piscina. Hay cinco puertos en la Estación de Reservación y los múltiples recursos son accesados como se muestra en la figura.

El procesador puede planificar hasta 5 µops por ciclo de reloj, una por cada puerto de recurso, pero lo más típico es 3 µops por ciclo de reloj. La actividad de este proceso de planificación es lo que se llama proceso fuera de orden; las
µops son despachadas a los recursos de ejecución estrictamente acorde al flujo de datos y a la disponibilidad del recurso sin tener en cuenta el orden original del programa. El algoritmo actual empleado por este proceso de planificación de la ejecución es vitalmente importante para el funcionamiento. Si una sola µop por recurso tiene los datos listos, entonces no es seleccionada. Pero si varios están disponibles este es seleccionado. La familia P6 utiliza el algoritmo de planificación pseudo(falso) FIFO.
Muchas de las µops son de saltos. En la predicción dinámica de saltos se tiene un historial de los últimos saltos ejecutados en Buffer de Destino de Saltos (BTB) que posee un buffer con 512 entradas de forma similar a las líneas de memoria cache en 32 conjuntos (set)de 16 entradas (way). Los bits del 4 al 8 dan la dirección de memoria donde se encuentra el salto, identifican cual de los conjuntos de entradas se utilizara para almacenar el historial de la instrucción de salto. Cuando se agota el espacio disponible en un conjunto de la BTB y es necesario introducir un nuevo salto, en el mismo se descarta una de las entradas. La primera vez que se ejecuta una instrucción de salto que no esta almacenada en la BTB se reserva espacio para mantener el historial de la misma. A menos que sea descartada por necesidad de espacio en el conjunto correspondiente de entradas en la BTB permanecerá en el mismo de forma indefinida. En la primera ejecución del salto la predicción dinámica de saltos no predice que dicha instrucción deba saltar y se continua interpretando el contenido posterior a la instrucción. Si ya existe una entrada en la BTB para la instrucción de salto, se predecirá el comportamiento de la misma dependiendo de sus ejecuciones anteriores. La predicción se hace en dos nivele diferentes. En primer lugar el microprocesador posee un registro de desplazamiento de 4 bits donde almacena el resultado de los últimos saltos guardando un ‘1’ si se llevo a cabo el salto y un ‘0’ si no fue así. Basándose en esta información, hay 16 posibles combinaciones en el historial de un salto.
La BTB predecirá correctamente muchos de estos saltos pero no podrá predecirlos todos correctamente. Considerando una BTB que está prediciendo correctamente el salto dirigida hacia atrás al final del lazo; en el futuro ese lazo va a terminar, y cuando lo hace, ese salto será una perdida de la predicción. Las µops de saltos son etiquetadas (en orden en el pipeline) con su fallo a través de la dirección y el destino que se predijeron para ellos. Cuando el salto se ejecuta, lo que el salto realmente hizo se compara contra lo que el hardware de predicción dijo que haría. Si aquéllos coinciden, entonces el salto se retira en el futuro y el trabajo especulativamente ejecutado entre él y la próxima instrucción de salto en la piscina de instrucción es bueno. Pero si ellos no coinciden, entonces la Unidad de Ejecución de Salto (JEU) cambia el estado de todas las µops detrás del salto para eliminarlos de la piscina de la instrucción. En ese caso el destino del salto se entrega a la BTB que reinicia todo el pipeline con la nueva dirección asignada.
Unidad de Retiro

La Unidad de Retiro también verifica el estado de las µops en la piscina de instrucciones. Está buscando µops que se han ejecutado y pueden ser retiradas de la piscina. Una vez retiradas, la arquitectura original de las µops es escrita según la Arquitectura Intel de la instrucción original. La Unidad de Retiro no sólo avisa que µops están completas, sino que también debe re-imponer el orden del programa original en ellos. Esta también debe hacer esto ante las interrupciones, trampas, faltas, puntos de ruptura y perdida de las predicciones.
La Unidad de Retiro debe leer primero la piscina de instrucciones para encontrar a los candidatos potenciales para el retiro y determina cuales de estos candidatos son los próximos en el orden del programa original. Entonces escribe los resultados de este ciclo de retiro al Registro de Ficheros Retirados (RRF). La Unidad de Retiro es capaz de retirar 3 µops por ciclo de reloj.
5. Unidad de Interfaz con el Bus
Hay dos tipos de acceso a memoria: cargas y
almacenamiento. Las cargas sólo necesitan especificar la
dirección de memoria que va a ser accedida, el ancho de
los datos, y el registro destino. Las cargas son codificadas en
una sola µop.
El almacenamiento necesita proporcionar una dirección de
memoria, el ancho del dato, y que los datos sean escritos. El
almacenamiento por consiguiente requiera de dos µops, una
para generar la dirección y una para generar los datos.
Estas µops después tienen que recombinarse para
completar el almacenamiento
El almacenamiento nunca se ejecuta especulativamente ya que no
hay ninguna manera transparente de deshacerlos. Los
almacenamientos nunca se reordenan entre ellos. Un almacenamiento
se despacha cuando la dirección y los datos están
disponibles y no hay ningún almacenamiento más
viejo en espera de ser despachado

Un estudio de la importancia del reordenamiento del acceso a memoria concluyo que:
El Buffer de Ordenamiento de Memoria (MOB) permite
cargas para pasar otras cargas y actúa como una
Estación de Reservación y Buffer de Reordenamiento.
Este mantiene suspendida las cargas y las almacena y las
redespacha cuando desaparece una condición de bloqueo
(dependencia o recurso).
El procesador Pentium III utiliza una arquitectura de
Ejecución Dinámica que mezcla la ejecución
fuera-de-orden y la ejecución especulativa con el hardware
de renombramiento de registros y la predicción de
saltos.
Éstos procesadores ofrecen un pipeline en orden que
convierte las macroinstrucciones Intel 386 del procesador en
simples µops , y un centro del procesador superescalar de
tres vías fuera de orden que ejecuta las µops. El
termino tres vías significa que utiliza técnicas
de procesamiento paralelo que el µP esta habilitado para
decodificar, despachar y completar la ejecución de tres
instrucciones por ciclo de reloj, para manejar este nivel de
instrucciones se utiliza un superpipeline de 11 estados con
transferencia avanzada de caches. El pipeline del procesador esta
dividido en cuatro secciones (primer nivel de cache, segundo
nivel de cache, unidad de ejecución fuera de orden y
sección de retiro). Las instrucciones y los datos son
suministrados a estas unidades a través de la unidad de
interfaz con el bus.
Varias unidades de ejecución pueden conectarse al mismo
pipeline por ejemplo: una unidad de direcciones lógicas de
enteros y una unidad de ejecución de punto flotante (de
suma, de multiplicación, y de división) comparten
un pipeline. La cache de entrelazado de puertos semiduales, con
un puerto dedicado a cargas y el otro a
almacenamiento.
La mayoría de las operaciones
simples (ALU de enteros, suma de punto flotante, incluso la
multiplicación de punto flotante pueden ser encausadas al
pipeline de una a dos operaciones por ciclo de reloj. La
división de punto flotante no puede ser encausada. Las
operaciones de latencia largas pueden proceder en paralelo con
operaciones de latencia corta.
En la ejecución fuera de orden la consideración
más importante es hacer segura la cantidad suficiente de
µops listas para la ejecución, la predicción
correcta de ramificaciones y la decodificación
rápida.
Resumen
El presente trabajo expone la implementación de esta
técnica en este microprocesador como ultimo miembro de la
familia de procesadores P6 para que Intel de paso a su nueva
arquitectura.
El microprocesador Pentium III implementa la arquitectura de
Ejecución Dinámica que es una innovadora
combinación de tres técnicas de procesamiento
diseñada para ayudar al procesador a manipular los datos
más eficientemente. Éstas son la predicción
de salto múltiple, el análisis del flujo de datos y
la ejecución especulativa.
La ejecución dinámica hace que el procesador sea
más eficiente manipulando datos en lugar de sólo
procesar una lista de instrucciones. La forma en que los programas de
software están escritos puede afectar al rendimiento del
procesador. Por ejemplo, el rendimiento del software será
afectado negativamente si con frecuencia se requiere suspender lo
que se está haciendo y "saltar" a otra parte en el
programa. También pueden producirse retardos cuando el
procesador no puede procesar una nueva instrucción hasta
completar la instrucción original. La ejecución
dinámica permite al procesador alterar y predecir el orden
de las instrucciones.
Palabras claves: Microprocesador Pentium III, ejecución
dinámica, predicción de saltos,
microoperaciones.
Autor:
Trabajos relacionados
Ver mas trabajos de Computacion |
|
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.
Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.
Ingrese el e-mail y contraseña con el que está registrado en Monografias.com
|
|