Arquitectura De Computadoras
popitalorena25 de Junio de 2013
3.951 Palabras (16 Páginas)333 Visitas
ARQUITECTURA DE COMPUTADORAS
Arquitectura de Pentium
Abstract. Este trabajo pretende analizar la arquitectura interna del procesador Pentium Pro. La arquitectura de un procesador describe sus estructuras internas y cómo ellas trabajan. Estas son estructuras lógicas; todos los procesadores están hechos de material semiconductor, y es el cómo éste esté arreglado lo que determina cómo trabajará el procesador.
1 Introducción
Se explicará gráficamente las Unidades que componen a dicha arquitectura, en especial las Unidades Búsqueda/Decodificación, Despacho/Ejecución y Retiro, así como también Conjunto de Instrucciones, que serán detalladas en la sección siguiente. Además se expone en qué consisten las Microoperaciones y la Organización del Encausador de Segmentos.
1.1 Desarrollo de contenidos
Introducción a la microarquitectura de los procesadores Pentium Pro
La microarquitectura resultante Pentium Pro es una arquitectura superescalar con segmentación encausada de tres caminos. El término superescalar de tres caminos’ significa que, usando técnicas de procesamiento paralelo, el procesador es capaz en promedio de decodificar, despachar y completar la ejecución (retirar) de 3 instrucciones por ciclo de reloj. Para manejar este nivel de flujo de instrucciones, el procesador Pentium Pro usa un super encausador de segmentos de 12 etapas, que soportan la ejecución de instrucciones fuera de orden. La figura muestra una visión conceptual de este encausador de segmentos, con el encausador de segmentos dividido en 4 unidades de procesamiento (Unidad Búsqueda/Decodificador, Unidad Despacho/Ejecución, Unidad de Retiro y Conjunto de Instrucciones. Las instrucciones y datos son proveídos a estas unidades a través de la Unidad de Interface Bus.
La pieza principal de la microarquitectura del procesador Pentium Pro es un nuevo mecanismo de ejecución fuera de orden llamado ‘Ejecución Dinámica’. La Ejecución Dinámica incorpora 3 conceptos de procesamiento de datos:
1)Predicción profunda de salto.
2)Análisis de flujo de datos dinámicos.
3)Ejecución Especulativa.
Microoperaciones
Las microoperaciones son instrucciones primitivas que son ejecutadas por las 6 unidades de ejecución paralelas del procesador.
Las microoperaciones son más generales que las instrucciones Pentium Pro, tienen longitud fija y contienen un codificador, 2 operandos fuente y 1 operando destino. Hay 3 microopeaciones por reloj, lo que hace al procesador Pentium Pro un procesador superescalar de grado 3.
Organización del Encausador de Segmentos (Pipeline)
Una mejora en desempeño encima de la Pentium es que la Pentium Pro tiene una microarquitectura super encausadora de segmentos, superescalar. La Pentium Pro es, como se indicó repetidas veces, superescalar a nivel 3, lo que significa que el procesador puede despachar y retirar 3 microoperaciones por reloj. La implementación del encausador de segmentos del procesador Pentium usa 5 etapas. El Pentium Pro cambia a una implementación desconexa (decoupled) super encausadora de segmentos de 12 etapas, cambiando menos trabajo en cada etapa por más etapas. El procesador Pentium Pro reduce el tiempo de etapa en un 33%, comparado con el procesador Pentium, lo cual significa que el procesador Pentium Pro puede tener una velocidad de reloj 33% mayor que el procesador Pentium y seguir siendo igualmente fácil el producirlo desde una perspectiva de proceso de manufactura semiconductora.
Cabe señalar que el encausador de segmentos se encuentra dividido en 4 Unidades de Procesamiento:
• Unidad Búsqueda/Decodificación.
• Unidad Despacho/Ejecución.
• Unidad de Retiro
• Conjunto de Instrucciones o Memoria Intermedia de Reordenamiento.
El procesador Pentium Pro es implementado pues, como 3 motores acoplados independientes, con una Memoria Intermedia de Reordenamiento como la mostrada en la figura.
Recordemos además que el Pentium Pro remueve la restricción de un secuenciamiento de instrucciones lineal entre las fases tradicionales Búsqueda y Ejecución. Esta aproximación permite a la fase Ejecución del procesador Pentium Pro tener mucha más visibilidad dentro del flujo de instrucciones del programa para que una mejor esquematización pueda realizarse. Esto requiere que la fase de instrucción "Búsqueda/Decodificación" del procesador Pentium Pro sea mucho más inteligente en términos de predecir el flujo del programa. Una esquematización optimizada requiere que la fase fundamental "Ejecución" sea reemplazada por las fases desacopladas "Despacho/Ejecución" y "Retiro". Esto permite que las instrucciones empiecen en cualquier orden pero que siempre sean completadas en el orden original del programa.
Detallada descripción de la microarquitectura del procesador Pentium Pro
La figura muestra un diagrama de bloque funcional de la microarquitectura del procesador Pentium Pro. En este diagrama, los siguientes bloques hacen las veces de las 4 unidades de procesamiento y el subsistema de memoria mostrado.
Subsistema de Memoria: Bus del sistema, cache L2, Unidad Interface de Bus, cache de instrucción L1, cache de datos L1, Unidad de Interfase con la Memoria, y una memoria intermedia de reordenamiento de memoria.
Unidad Búsqueda/Decodificación: La Unidad de Búsqueda de Instrucción, Memoria Intermedia de Salto, Decodificador de Instrucciones, Secuenciador de Microcódigo, y Tabla Alias de Registros (Register Alias Table).
Conjunto de Instrucciones (Instruction pool): Memoria Intermedia de Reordenamiento (Reorder Buffer)
Unidad Despacho/Ejecución: Estación de Reserva (Reservation Station, (RS), 2 unidades enteras, 2 unidades de punto flotante y 2 unidades de generación de direcciones.
Unidad de Retiro: Unidad de Retiro y Archivo de Registros de Retiro (Retirement Register File).
Subsistema de Memoria
Consiste en: Memoria del Sistema Principal, la cache primaria L1 y la cache secundaria L2. La Unidad de Interfase Bus accesa a la Memoria del Sistema a través del bus del sistema externo. Este bus de 64 bit es un bus orientado-a-transacción, significando que cada acceso al bus es manejado como operaciones de pedido y respuesta separadas. Mientras que el Unidad de Interfase Bus está esperando por una respuesta a un pedido de bus, puede producir numerosos pedidos adicionales.
Jerarquía de Memoria
Cache
Como se mencionó anteriormente, la cache de Pentium Pro consiste en 2 diferentes caches: L1 y L2, de tamaño de 32 byte de línea.
L1: La cache L1 es separada en un set asociativo de instrucciones de Memoria de 8KB de 4 caminos y un set asociativo de datos de Memoria de 8KB de 2 caminos. Ambas están localizadas dentro de la CPU. L1 es no-bloqueable: si un acceso a L1 lleva a una falla, la cual pudo ser especulativa, el acceso detrás de ella no quedará esperando.
L2: Es una caché secundaria de tamaño 256 o 512 KB. No está dentro de la CPU.
Cuando el procesador requiere datos de la Memoria primero busca en L1, que es una memoria pequeña pero es muy rápida para encontrar el objetivo. Si L1 no contiene el dato, el procesador busca en L2 que es una memoria más grande pero más lenta. Si el dato se encuentra se llama ‘acierto’ si no se llama ‘fallo’. Cuando ocurre un ‘fallo’ el procesador envía su solicitud a la memoria principal (RAM).
Cualquier área de la memoria puede cachearse en L1 y L2. El procesador permite a regiones individuales usar métodos de cacheo específicos, los cuales pueden especificarse usando banderas. El procesador Pentium Pro tiene una memoria intermedia de escritura para almacenar cada escritura temporal. Esta memoria intermedia permite al procesador continuar ejecutando instrucciones sin tener que esperar a que un acceso de escritura sea completado.
Manejo de la memoria virtual, etiquetado e indexado
Segmentación
La Segmentación es un mecanismo de separación del espacio de las direcciones del procesador en espacios de direcciones protegidos más pequeños llamados segmentos, así se logra que múltiples tareas puedan correr en el mismo procesador sin interferir entre ellas. Los segmentos son usados para preservar la cache, datos y pila para un programa.
El espacio de direccionamiento lineal del procesador contiene todos los segmentos dentro del sistema. Para acceder a un byte en un segmento particular, el procesador usa una dirección lógica: Una dirección lógica tiene 2 campos:
Un selector de segmentos de 16 bit, que es un identificador único del segmento y..
Un desplazamiento de 32 bit que es sumado a la dirección base para localizar la dirección lineal del bloque segmentado.
Paginación, Memoria virtual
Pentium Pro soporta paginación, llamada también Memoria Virtual. Cuando se usa paginación, el procesador divide cada segmento en páginas (generalmente 4KB de longitud) las cuales son almacenadas en la Memoria Física o en el disco. Cuando un programa o tarea hace referencia a una dirección lógica de memoria, el procesador traduce la dirección en direcciones lineales y luego usa la paginación para traducir direcciones lineales en direcciones físicas correspondientes. Una falla de página ocurre cuando la página conteniendo la dirección lineal no está actualmente en la memoria física.
La Unidad Búsqueda/Decodificación
La Unidad Búsqueda de Instrucción, busca una línea
...