computadores supersegmentados
Post on 30-Jul-2015
54 Views
Preview:
TRANSCRIPT
Arturo Marzo de la Fuente
Arquitecturas Basadas en Microprocesadores
3º I.T.I. Gestión
Curso 200708
COMPUTADORES/PROCESADORES SUPERSEGMENTADOS
2
1. Introducción
En su descomposición funcional más sencilla, un microprocesador se compone de una Unidad de Control y una Unidad de Proceso. En esta última convivían inicialmente la ALU y el banco de registros, pero enseguida se añadieron nuevas unidades funcionales en la búsqueda de un aumento del rendimiento. La mayoría de estas adiciones ayudan a obtener alguna forma de paralelismo a nivel de instrucción. Esto consiste en romper con la ejecución secuencial de instrucciones (una detrás de otra en el tiempo) para obtener a ejecución de varias simultáneamente.
La supersegmentación de los procesadores es una técnica de implementación que busca el mencionado paralelismo a nivel de instrucción, pero antes de explicarlo, conviene explicar otras técnicas que también sirven para lograr el paralelismo y que suelen combinarse todas juntas en el diseño de los actuales microprocesadores como son la segmentación, la superescalaridad y la combinación de ambas.
3
2. Segmentación
La segmentación (pipelining) es una técnica de implementación de microprocesadores por la cual se solapa la ejecución de múltiples instrucciones. Hoy día, la segmentación es la técnica de implementación clave utilizada para hacer CPU rápidas.
La segmentación es como una línea de ensamblaje: cada etapa de la segmentación completa una parte de la instrucción. Como en una línea de ensamblaje de automóviles, el trabajo que va a realizar una instrucción se descompone en partes más pequeñas, cada una de las cuales necesita una fracción del tiempo necesario para completar la instrucción completa. Cada uno de estos pasos se define como etapa de la segmentación o segmento. Las etapas están conectadas, cada una a la siguiente, para formar una especie de cauce ‐ las instrucciones entran por un extremo, son procesadas a través de las etapas y salen por el otro extremo.
2.1. Procesador segmentado
Un procesador segmentado es aquel que divide el proceso de ejecución de una instrucción en N etapas de similar duración con el objetivo de procesar N instrucciones simultáneamente, encontrándose cada una en una etapa diferente de su ejecución.
Conseguimos así, que un procesador compuesto por N unidades funcionales que trabajan a la vez en circunstancias ideales, incremente su rendimiento en un factor de N.
Las instrucciones fluyen secuencialmente por las distintas unidades funcionales del procesador de igual forma que el agua fluye por el cauce de una tubería, de ahí que en la jerga de la calle se les conozca como procesadores pipeline que significa tubería en inglés.
El modelo de segmentación más repetido en la primera mitad de los años 90 es el compuesto por las siguientes cinco etapas: búsqueda de la instrucción, decodificación, lectura de operandos, ejecución de la operación asociada, escritura de su resultado.
El DLX es un microprocesador diseñado por John L. Hennessy y David A. Patterson presenta una ejecución en cinco etapas, similares a las del microprocesador MIPS, también diseñado por John L. Hennessy en la Universidad de Stanford, buscando la filosofía de la segmentación. Estas cinco etapas son:
IF: búsqueda
ID: decodificación
EX: ejecución de unidad aritmético lógica
MEM: memoria
WB: escritura
De esta manera, mientras el procesador escribe una instrucción, ejecuta simultáneamente la siguiente, busca los operandos de una tercera, decodifica una cuarta y busca en memoria una quinta instrucción, lográndose en un caso ideal una aceleración de cinco para el rendimiento del chip.
4
Podemos observar en el siguiente grafico la ejecución simultánea de cinco instrucciones en distintas etapas en un procesador DLX:
Figura 1.
Todos los microprocesadores actuales se encuentran segmentados, habiendo aumentado el número de etapas con el paso de las generaciones. Así, lo normal en la séptima generación es encontrarnos con cauces de ejecución entera de 20 etapas de segmentación en el caso del Pentium IV (2003) de Intel o 31 etapas en los procesadores Prescott (2004) también de Intel.
Junto al cauce (pipeline) de ejecución entero se sitúan otros cauces por donde circulan otros tipos de instrucciones, principalmente multimedia y de punto flotante. No obstante, hasta que no concluya la fase de decodificación de instrucción (ID) no se puede realizar la ramificación, las primeras etapas de segmentación son siempre comunes a todos los cauces del procesador, lo cual se puede observar con facilidad en la Figura 2 mostrada más adelante.
La gran ventaja de la aplicación de la segmentación en el diseño de los microprocesadores es que el aumento del rendimiento se consigue con solo reorganizar las unidades funcionales existentes, por lo que no supone un incremento de coste para la Unidad de Proceso. El diseño de la Unidad de Control sí se complica un poco a medida que aumenta el número de etapas y el grado de concurrencia en la ejecución de las instrucciones pero es despreciable si lo comparamos con el espectacular incremento del rendimiento.
5
3. Superescalaridad
La superescalaridad consiste en la replicación de la circuitería de las unidades funcionales de un microprocesador, creando por lo tanto varios cauces (pipelines) de manera que se puedan ejecutar varias instrucciones a la vez.
3.1. Procesador superescalar
Un procesador superescalar de factor N es aquel que replica N veces la circuitería de alguna de sus unidades funcionales con el fin de poder ejecutar N instrucciones en sus respectivas etapas de computación.
Con la mejora de la capacidad de integración de circuitos que permiten concentrar más y más componentes dentro de un chip, los diseñadores de microprocesadores también ha aumentado el factor de Superescalaridad, logrando, al igual que en la segmentación, mejoras del rendimiento de un factor de N.
Sin embargo, el coste de incrementar el rendimiento mediante la Superescalaridad es superior al de la segmentación. El hecho de que el coste de integración por transistor se reduzca con la evolución de las generaciones de microprocesadores indica que es un método de incremento del rendimiento altamente rentable para los diseñadores.
En el siguiente grafico se muestra la ejecución en paralelo de 5 instrucciones cada una en su cauce o pipeline, lo que representa una superescalaridad de factor 5.
Figura 2.
6
4. Combinación de segmentación y superescalaridad
Como puede observarse en la Figura 3, las filosofías de segmentación y superescalaridad son perfectamente compatibles.
Figura 3
Sin embargo, existen ciertos conflictos a la hora de poner en práctica simultáneamente ambas ideas, y es que cada técnica exige unos requisitos diferentes:
‐ La segmentación requiere una elevada frecuencia, de forma que solo un periodo de reloj muy corto permitirá descomponer cada instrucción en un número elevado de etapas.
‐ La superescalaridad, por el contrario, necesita un ingente número de transistores para poder ser implementada, y esto solo se consigue con mejoras en la tecnología de integración.
7
Por lo tanto, la superescalaridad estorba a la segmentación porque ésta provoca un desdoble de la circuitería existente, que perjudica la frecuencia de reloj, lo que dificulta el obtener un número elevado de etapas de segmentación.
De igual forma la segmentación estorba a la superescalaridad ya que cuando las etapas son tan minúsculas, es difícil incrementar la complejidad replicando la circuitería.
Por tanto, los diseños fuertemente segmentados no utilizan un factor de superescalaridad alto, y los que apuestan por la superescalaridad reducen el número de etapas de segmentación. Por ejemplo, el Pentium IV de Intel llega a las 20 etapas de segmentación pero solo tiene un factor tres de superescalaridad, mientras que el K7 de AMD consigue un factor cinco de superescalaridad a costa de reducir a 14 el número de etapas del cauce de ejecución entero. Al final, las dos estrategias alcanzan un paralelismo de entorno a las 60‐70 instrucciones simultáneas compatibilizando los dos conceptos, pero en cada caso se da prioridad a una de las dos filosofías.
8
5. Supersegmentación
La palabra supersegmentación nos lleva a la tentación de aplicar la ecuación superescalar + segmentado = supersegmentado, cuando en realidad la ecuación correcta es segmentado + segmentado = supersegmentado.
La supersegmentación consiste en segmentar algunas de las etapas (en concreto las más lentas) que mencionamos para los procesadores segmentados, en dos o más etapas de manera que se permite que haya dos instrucciones a la vez dentro de la misma etapa y unidad funcional sin tener que replicar ésta (superescalaridad). De esta forma, dividiendo por ejemplo cada etapa en 2, el ciclo de reloj de periodo T se verá reducido a la mitad, T/2, de esta forma al máximo de capacidad el cauce o pipeline produce un resultado cada T/2 segundos.
5.1. Procesadores supersegmentados
Un procesador supersegmentado es aquel que aplica dos veces el concepto de segmentación, la primera al nivel de diseño global, y la segunda al nivel interno de sus unidades funcionales.
Por ejemplo, una descomposición en cinco etapas de segmentación como la del Pentium, compuesta por las etapas de búsqueda, decodificación, lectura, ejecución y escritura, permite aplicar otra segmentación a cada una de las unidades funcionales que intervienen en cada ciclo como son: la caché de instrucciones, el decodificador de instrucción, la caché de datos, la ALU o el banco de registros.
En el caso de la caché de instrucciones, que es referenciada en la primera etapa, esta puede ser una caché segmentada en dos etapas, que permite simultanear la búsqueda de una instrucción y la localización de su celda de caché asociada, con la lectura del código de la anterior instrucción y su volcado al bus de datos del procesador. Así se obtienen dos niveles de segmentación como se muestra en el aparatado d) de la Figura 4, en la que se comparan las cuatro técnicas de paralelismo expuestas:
9
Figura 4
Esta segmentación ha provocado un desdoble de la señal de reloj, que discurre por el eje temporal de abscisas al doble de frecuencia que en los otros tres diagramas mostrados. En general, la supersegmentación lleva asociada la subdivisión del ciclo de reloj base en ciclos supersegmentados (como se aprecia en la Figura 5), tantos ciclos como etapas se hayan establecido para el segundo nivel de segmentación, lo que desemboca en diseños que trabajan a muy alta frecuencia.
Figura 5
10
Una buena implementación supersegmentada siempre incluye la ejecución de instrucciones fuera de orden. La ejecución de instrucciones fuera de orden es un paradigma utilizado en la mayoría de los microprocesadores de alto rendimiento por el cual, si una vez capturada una instrucción los operandos no están disponibles, para evitar esperas improductivas del procesador hasta que estén disponibles la instrucción se pone en una cola a la espera, de forma que otras instrucciones puedan abandonar la cola y ejecutarse si sus operandos están disponibles. La ejecución fuera de orden minimiza el efecto negativo que producen las esperas por dependencias de datos sobre el rendimiento del procesador pero para desarrollarla hace falta también implementar la superescalaridad en los procesadores.
5.2. Ejemplos de procesadores supersegmentados
5.2.1. R4000 y R4400
La empresa MIPS Technologies, fundada por investigadores de la Universidad de Stanford, incluido John L. Hennessy, lanzó en 1991 el primer microprocesador de 64 bit, el R4000. Integraba la FPU dentro para crear un microprocesador de un solo chip y operaba a unas frecuencias radicalmente altas para la época (cuando fue introducido, trabajaba a 100 MHz).
Sin embargo para lograr aumentar la frecuencia del reloj hubo que reducir las 3 cachés a 8Kb (con respecto a los 64 Kb que presentaban los anteriores procesadores R3500) y requerían 3 ciclos para ser accedidas.
Estas grandes velocidades de operación fueron posibilitadas usando la técnica llamada deep pipelining (segmentación profunda) y denominada más tarde como supersegmentación o superpipelining.
Presentaba una supersegmentación de 8 etapas (en vez de las 5 del DLX), como los accesos a la caché son críticos, las etapas que acceden a memoria se han subdividido:
IF, IS RF, EX DF, DS, TC WB
Acceso a caché de instrucciones Acceso a caché de datos
Con el desarrollo del R4000 se desarrolló un número de versiones mejoradas como el R4400 de 1993, que incluía cachés de 16 Kb, un operador de 64 bit ampliamente depurado y soporte para una caché externa de nivel 2.
A continuación podemos observar un esquema de la supersegmentación de 8 etapas que presentaban estos procesadores MIPS:
11
Figura 6
5.2.2. Pentium PRO
El procesador Pentium PRO desarrollado en 1995 y perteneciente a la sexta generación de procesadores estaba compuesto por 5.500.000 transistores, incrementó su velocidad usando una supersegmentación de 14 etapas y trabajaba a una frecuencia de 200 MHz, con un Front Side Bus (FSB) de 66 MHz.
Potenció el paralelismo mediante la ejecución de instrucciones fuera de orden y la incorporación de más unidades de ejecución que trabajan simultáneamente. Incluyó una caché interna de segundo nivel y la caché de nivel 1 presenta 2 cauces de instrucciones y 4 de datos. En cuanto a su rendimiento se ha estimado en 220 SPECInt92.
5.2.3. ALPHA 21264
Un clásico ejemplo de diseño supersegmentado es el procesador Alpha 21264 de Digital, procesador RISC de principios de la década de los 90 y hermano menor del Alpha 21364 de COMPAQ que fue el encargado de decodificar el genoma humano en la empresa Celera Genomic.
El segundo nivel de segmentación de esta arquitectura incluye una descomposición en nueve etapas para el caso de la caché, lo que dio lugar a una frecuencia de reloj de 600 MHZ a finales de 1997, cuando en esa época los Pentium II y demás modelos para PC operaban a menos de la mitad de esa frecuencia.
12
5.2.4. UltraSPARC
El procesador UltraSPARC II lanzado a mediados de 1996 por Sun Microelectronics, pertenece a la segunda generación de la familia UltraSPARC y fue pensado para mantener estaciones de trabajo.
Presenta una arquitectura de 64 bits supersegmentada y un factor 4 de superescalaridad. Está compuesto por 5.400.000 transistores, opera a un rango de frecuencias de entre 250 y 480 MHz y dispone de dos cachés de nivel 1 de 16 Kb y una caché de nivel 2 de entre 256 KB y 16 Mb. Finalmente, se le estima un desempeño de:
• 350‐420 SPEC Int92.
• 550‐660 SPEC Fp92.
5.2.5. Pentium IV
Desarrollado en el 2000, está compuesto de 42.000.000 de transistores, funciona a una frecuencia de 2’4 GHz, con un FSB de 400 MHz. Presenta una supersegmentación de 20 etapas y ofrece 144 nuevas instrucciones para procesar video y audio, optimizando el rendimiento para las tecnologías modernas de Internet y visualización de gráficos en 3 dimensiones. A continuación un gráfico que muestra la ejecución de 4 instrucciones en las 20 etapas supersegmentadas de un Pentium IV.
Figura 7
Su rendimiento se estima en:
• 410 SPEC int2000.
• 14,6 SPEC int95.
13
6. Bibliografía
‐ Recursos electrónicos:
http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(inform%C3%A1tica)
http://es.wikipedia.org/wiki/DLX
http://es.wikipedia.org/wiki/Arquitectura_MIPS
http://vagos.es/showthread.php?t=63741
http://www.angelfire.com/ca6/angie/segmentados.htm
http://aulavirtual.uji.es/file.php/2648/Teoria/Primer_cuatrimestre/Tema2_superescalares/2_1_introduccion_procesadores_superescalares.pdf
http://www.atc.us.es/asignaturas/asp‐itis/descargas/Transparencias_ASP_Tema_5_Introduccion_al_Paralelismo.pdf
http://osito.disca.upv.es/aic/es/teoria/t9.pdf
http://dac.escet.urjc.es/docencia/Micros/Microprocesadores2.pdf
http://www.dacya.ucm.es/hidalgo/arquitectura/pipeline.pdf
http://www.cag.lcs.mit.edu/raw/documents/R4400_Uman_book_Ed2.pdf
http://www.macuarium.com/cms/index.php?option=com_content&task=view&id=218&Itemid=93
http://www.dcc.uchile.cl/~rbaeza/cursos/proyarq/maraya/node9.html
http://research.sun.com/features/tenyears/volcd/papers/SPARCv9.pdf
‐ Publicaciones:
Arquitectura del PC – Volumen 1. Autor: Manuel Ujaldón Martínez. Editorial: Megamultimedia S.L.
Arquitectura de computadores – Un enfoque cuantitativo. Autores: John L. Hennessy, David A. Patterson. Editorial: McGraw Hill.
Tema 4 de apuntes de Arquitectura de los computadores.
top related