12
UNIVERSIDAD NACIONAL DE PIURA ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA MICROCOMPUTADORAS II - CRUZ RAMÍREZ EDGARDO. Clasificación de esos procesadores 2015

Trabajo Encargado de Microcomputadoras 2

Embed Size (px)

DESCRIPTION

Trata sobre las técnicas para mejorar el rendimiento de un procesador

Citation preview

Page 1: Trabajo Encargado de Microcomputadoras 2

UNIVERSIDAD NACIONAL DE PIURA

ESCUELA PROFESIONAL DE INGENIERÍA

INFORMÁTICA

MICROCOMPUTADORAS II

- CRUZ RAMÍREZ EDGARDO.

Clasificación de esos procesadores

2015

Page 2: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 2

TÉCNICAS PARA MEJORAR EL RENDIMIENTO DE UN

PROCESADOR

1.- Paralelismo a nivel de instrucció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 en solitario, pero enseguida se les unieron nuevas unidades funcionales en la búsqueda de un aumento del rendimiento. La mayoría de estos aditivos llevan a la práctica alguna forma de paralelismo a nivel de instrucción, idea que de forma genérica consiste en romper con la ejecución secuencial de instrucciones (una detrás de otra en el tiempo) para simultanear su ejecución (varias a la vez). Distintas formas de explotar este paralelismo son la segmentación, la superescalaridad y la supersegrnentación.

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

Page 3: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 3

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.

Podemos observar en el siguiente grafico la ejecución simultánea de cinco

instrucciones en distintas etapas en un procesador DLX:

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.

NOTA 1: 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 y escritura de su resultado. 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 de memoria una quinta instrucción, lográndose en el caso ideal una aceleración de cinco para el rendimiento del chip. Tanto el MIPS, el procesador modelo de esta técnica desarrollado en Stanford, como el Pentium de lntel, presentan una división en cinco etapas muy similar a la descrita.

Page 4: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 4

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.

Page 5: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 5

NOTA 2: El Pentium de lntel y su versión MMXson procesadores superescalares de factor 2. Disponen de dos ALU para operar con números enteros y una tercera para operar con números reales, permitiendo ejecutar de forma simultánea dos instrucciones aritméticas de tipo entero, o bien una de tipo entero y otra de tipo real (con ciertas limitaciones). Las versiones posteriores de lntel, como el Pentium Pro, 11y 1Il, adoptan todos un factor tres de superescalaridad, que puede aplicarse sobre un total de cinco unidades funcionales de ejecución independiente.

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.

Page 6: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 6

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. 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.

5.- Supersegmentación

La palabra supersegmentación nos lleva a la tentación de aplicar la ecuación 𝒔𝒖𝒑𝒆𝒓𝒆𝒔𝒄𝒂𝒍𝒂𝒓 + 𝒔𝒆𝒈𝒎𝒆𝒏𝒕𝒂𝒅𝒐 = 𝒔𝒖𝒑𝒆𝒓𝒔𝒆𝒈𝒎𝒆𝒏𝒕𝒂𝒅𝒐, cuando en realidad la ecuación

correcta es 𝒔𝒆𝒈𝒎𝒆𝒏𝒕𝒂𝒅𝒐 + 𝒔𝒆𝒈𝒎𝒆𝒏𝒕𝒂𝒅𝒐 = 𝒔𝒖𝒑𝒆𝒓𝒔𝒆𝒈𝒎𝒆𝒏𝒕𝒂𝒅𝒐.

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.2.- Procesador Supersegmentado

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

Page 7: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 7

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 3, en la que se comparan las cuatro técnicas de

paralelismo conocidas:

Figura 3: Comparación de las 4 técnicas del paralelismo a nivel de instrucción que

podemos encontrar en los microprocesadores actuales. (a) Segmentación. (Superescalaridad). (c) Segmentación y superescalaridad combinadas. (d) Supersegmentación. En los cuatro casos se ha supuesto que todas las instrucciones pueden descomponerse en 5 etapas: Búsqueda de Instrucción (BI), Decodificación de Instrucción (DEC), Ejecución de operaciones (ALU/EJE), Generación de la dirección del destino (DIR/MEM), y Escritura del resultado (ESC/PE).

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 4), 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.

Page 8: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 8

Figura 4.

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. Aunque en teoría la supersegmentación sea un concepto independiente de la superescalaridad, en la práctica, necesita de ella. Esto es así porque una buena

implementación supersegmentada siempre incluye la ejecución de instrucciones fuera de orden para minimizar el efecto negativo que las dependencias de datos tienen sobre su rendimiento. Y como veremos más adelante, la ejecución fuera de orden sólo tiene cabida en procesadores que sean superescalares.

NOTA 3: 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, el que decodificó el mapa del genoma humano en la empresa Celera Genomics. El segundo nivel de segmentación de esta arquitectura incluye una descomposición en nueve etapas para el caso de la caché (ver figura 3.11), lo que dio lugar a una frecuencia de reloj de 600 MHz para la versión comercializada a finales de 1997, el marco temporal en el que los Pentium 11y demás modelos para PC estaban a menos de la mitad de esa frecuencia.

Page 9: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 9

CLASIFICACIÓN DE LOS PROCESADORES DE ACUERDO A LAS

TÉCNICAS DE MEJORA DE RENDIMIENTO. Los procesadores se agrupan hoy en dos familias, la más antigua y común de las cuales es la "CISC" o "Complex InstructionSet Computer": computador de set complejo de instrucciones. Esto corresponde a procesadores que son capaces de ejecutar un gran número de instrucciones pre-definidas en lenguaje de máquina (del orden del centenar). Desde hace unos años se fabrican y utilizan en algunas máquinas procesadores "RISC" o "Reduced Instruction Set Computer", es decir con un número reducido de instrucciones. Esto permite una ejecución más rápida de las instrucciones pero requiere compiladores (o sea traductores automáticos de programas) más complejos ya que las instrucciones que un "CISC" podría admitir pero no un "RISC", deben ser escritas como combinaciones de varias instrucciones admisibles del "RISC". Se obtiene una ganancia en velocidad por el hecho que el RISC domina instrucciones muy frecuentes mientras son operaciones menos frecuentes las que deben descomponerse.

1.- Arquitectura RISC

En la arquitectura computacional, RISC (del inglés reduced instruction set computer) es un tipo de microprocesador con las siguientes características fundamentales:

- Instrucciones de tamaño fijo, y presentadas en un reducido número de formatos. - Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.

Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC... son ejemplos de algunos de ellos. RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución. La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más

Page 10: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 10

alta. Esto con llevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU, así como de reducir el número total de accesos a memoria. Las características que generalmente son encontradas en los diseños RISC son:

- Codificación uniforme de instrucciones, lo que permite una de codificación más rápida.

- Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y así simplificar el diseño del compilador.

- Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de instrucciones aritméticas simples.

- Los tipos de datos soportados en el hardware no se encuentran en una máquina RISC.

- Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos están conceptualmente separados.

RISC Moderno:

Los diseños RISC han llevado a un gran número de plataformas y arquitecturas al éxito, algunas de las más grandes: La línea MIPS Technologies Inc., que se encontraba en la mayoría de las

computadoras de Silicon Graphics hasta 2006, y estuvo en las consolas ya descatalogadas Nintendo 64, PlayStation y PlayStation 2. Actualmente se utiliza en la PlayStation Portable y algunos routers.

La serie IBM POWER, utilizado principalmente por IBM en Servidores y superordenadores.

La versión PowerPC de Motorola e IBM (una versión de la serie IBM POWER) utilizada en los ordenadores AmigaOne, Apple Macintosh como el iMac, eMac, Power Mac y posteriores (hasta 2006). Actualmente se utiliza en muchos sistemas empotrados en automóviles, routers, etc, así como en muchas consolas de videojuegos, como la Playstation 3, Xbox 360 y Wii.

El procesador SPARC y UltraSPARC de Sun Microsystems y Fujitsu, que se encuentra en sus últimos modelos de servidores (y hasta 2008 también en estaciones de trabajo).

El PA-RISC y el HP/PA de Hewlett-Packard, ya descatalogados. El DEC Alpha en servidores HP AlphaServer y estaciones de trabajo AlphaStation,

ya descatalogados. El ARM – El paso de hardware de instrucciones x86 en operaciones RISC llega a ser

significativo en el área y la energía para dispositivos móviles e integrados. Por lo tanto, los procesadores ARM dominan en PALM, Nintendo DS, Game Boy Advance y en múltiples PDAs, Apple iPods, Apple iPhone, iPod Touch (Samsung ARM1176JZF, ARM Cortex-A8, Apple A4), Apple iPad (Apple A4 ARM -based SoC), videoconsolas como Nintendo DS (ARM7TDMI, ARM946E-S), Nintendo Game Boy Advance (ARM7TDMI).

El Atmel AVR usado en gran variedad de productos, desde mandos de la Xbox a los coches de la empresa BMW.

La plataforma SuperH de Hitachi, originalmente usada para las consolas Sega Súper 32X, Saturn y Dreamcast, ahora forman parte del corazón de muchos equipos electrónicos para el consumo.SuperH es la plataforma base de el grupo Mitsubishi - Hitachi. Estos dos grupos, unidos en 2002, dejaron aparte la propia arquitectura RISC de Mitsubishi, el M32R.

Los procesadores XAP usados en muchos chips wireless de poco consumo (Bluetooth, wifi) de CSR.

Page 11: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 11

Entre las ventajas de RISC tenemos las siguientes:

- La CPU trabaja mas rápido al utilizar menos ciclos de reloj para ejecutar instrucciones. - Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a

diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones.

- Cada instrucción puede ser ejecutada en un solo ciclo del CPU

2.- Arquitectura CISC En la arquitectura computacional, CISC (complex instruction set computer) es un modelo de arquitectura de computadora. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones. Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de las computadoras personales actuales. Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos de reloj. Entre las ventajas de CISC destacan las siguientes:

- Reduce la dificultad de crear compiladores. - Permite reducir el costo total del sistema.

- Reduce los costos de creación de sftware. - Mejora la compactación de código.

- Facilita la depuración de errores. Ejemplo de microprocesadores basados en la tecnología CISC:

Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840.

Ejemplo de microprocesadores basados en la tecnología CISC:

MIPS, Millions Instruction Per Second. PA-RISC, Hewlett Packard. SPARC, Scalable Processor Architecture, Sun Microsystems. POWER PC, Apple, Motorola e IBM.

Page 12: Trabajo Encargado de Microcomputadoras 2

MICROCOMPUTADORAS II Trabajo encargado

Edgardo Cruz Ramírez 12

BIBLIOGRAFÍA

Publicación: “Computadores/Procesadores Supersegmentados”. Autor: Arturo Marzo

de la Fuente.

Libro: “Arquitectura del PC – Volumen 1”. Autor: Manuel Ujaldón Martínez. Editorial:

Megamultimedia S.L. Publicación: “Arquitectura RISC y CISC”. Página web:

http://rcmcomputointegrado.blogspot.com/2012/03/arquitectura-risc-y-cisc.html

Publicación: “Arquitectura RISC y CISC”. Página web:

http://rcmcomputointegrado.blogspot.com/2012/03/arquitectura-risc-y-cisc.html