SlideShare una empresa de Scribd logo
9
Lo más leído
16
Lo más leído
17
Lo más leído
Introducción



Los procesadores segmentados sirven para mejorar el rendimiento sin
necesidad de duplicar excesivamente el hardware.

Se usaron por primera vez en los años 60 para los grandes sistemas
(mainframes) de altas presentaciones, y fueron muy importantes en los años
80 para el enfoqué RISC1del diseño de computadores (la mayoria de técnicas
RISC se relacionan con el objetivo de conseguir una buena segmentación).

El Intel i486 fue la primera implementación segmentada de la arquitectura
IA32.

La segmentación se utiliza mucho actualmente para el desarrollo de juegos de
instrucciones del procesador. Actualmente, la tendencia es lograr
segmentaciones más profundas para obtener frecuencias de reloj muy altas. Es
un método muy eficaz para obtener un mayor rendimiento.




              Procesamiento Segmentado
Segmentación:


La segmentación (pipelining) es una técnica de implementación de
procesadores que desarrolla el paralelismo a nivel de intrainstruccion.
Mediante la segmentación se puede solapar la ejecucion de múltiples
instrucciones.

El procesamiento segmentado aprovecha la misma filosofía de trabajo de la
fabricación en cadena: cada etapa de la segmentación (o segmento) completa
una parte (subtarea) de la tarea total.

Los segmentos están conectados cada uno con el siguiente, de forma que la
salida de uno pasa ser la entrada del siguiente.

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 cauce2. Las instrucciones entran por un extremo, son procesadas a través de
las etapas y salen por el otro extremo.




Lo más importante de la segmentación es que las diferentes subtarea pueden
procesarse de forma simultánea, aunque se sobre diferentes datos.

Una contribución clave de la segmentación es la posibilidad de comenzar una
nueva tarea sin necesidad de que la anterior se haya terminado.
La medida de la eficacia de un procesador segmentado no es el tiempo total
transcurrido desde que se comienza una determinad tarea hasta que se termina
(tiempo de latencia del procesador), sino el tiempo máximo que puede pasar
entre la finalización de dos tareas consecutivas.



Considérese una tarea, compuesta por n subtarea. Si estas subtarea se procesan
de forma totalmente, el tiempo necesario para procesar la tarea total será la
suma de los tiempos necesarios para la terminación de cada una de las
subtarea




En este esquema, Tij representa la subtarea j dentro de la tarea i.

Por otra parte, para comenzar el tratamiento de una nueva tarea será necesario
esperar ese mismo tiempo. Esto se debe a que habrá algunas unidades
funcionales que serán necesarias para llevar a cabo varias de las subtarea y por
ello esas subtareas no podrán superponerse en el tiempo



Si para procesar esa misma tarea, se emplea un procesador segmentado, basta
que se haya terminado la primera subtarea para poder empezar a procesar una
nueva tarea.
En la citada figura puede verse el continuo flujo de tareas que se van
procesando a través de los n segmentos encargados de procesar cada una de
las subtareas.
Procesador Segmentado:


Un procesador segmentado es aquel que divide el proceso de
ejecucion de una instrucción en N etapas de similar duracion con el
objetivo de procesar N instrucciones simultáneamente,
encontrándose cada una en una etapa diferente de su ejecucion.
Conseguimos asi, 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.


Recordemos que:
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 ejecucion 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 5 etapas son:
IF: búsqueda
ID: decodificación
EX: ejecucion de unidad aritmético lógico
MEM: memoria
WB: escritura


De esta manera, mientras el procesador escribe una instrucción, ejecuta
simultáneamente las 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 ejecucion simultánea de cinco
instrucciones 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. Asi, lo
normal en la séptima generación es encontrarnos con cauces de ejecucion
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



La gran ventaja de la aplicación de la segmentación en el diseño de
losmicroprocesadores es que el aumento del rendimiento se consigue con solo
reorganizar las unidades funcionales existentes, por lo que no supone un incre
mento 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 d
e las instrucciones pero es despreciable si lo comparamos con el espectacular i
ncremento del rendimiento.



Clasificación de los Procesadores Segmentado:
Puede establecerse una clasificación de los procesadores segmentados
atendiendo al uso que se da a la segmentación. Esta clasificación fue
propuesta por Handler (1997).



   a) Segmentación aritmética
   b) Segmentación de instrucciones
   c) Segmentación de procesadores

      Segmentación aritmética

      La ALU de un computador puede segmentarse para la ejecucion de
      algoritmos aritméticos complejos. La segmentación aritmética es muy
      útil para procesar sobre todas las componentes de un vector, esto se
      consigue provocando que un segmento de la unidad aritmética trabaje
sobre una de las componentes mientras que las demás trabajan sobre las
componentes siguientes
Un ejemplo clásico de este tipo de procesadores es el multiplicador
segmentado basado en un árbol de Wallace, tal como se muestra en la
figura.




En esta figura los bloques CSA representan a sumadores con
salvaguarda de llevadas y los bloques CLA, a sumadores con
generación anticipada de llevadas. Las líneas inclinadas hacia la
izquierda indican que los vectores de llevadas deben desplazarse a la
izquierda un lugar antes de entrar en la etapa siguiente.
Segmentación de instrucción

      La ejecución de un flujo de instrucciones puede adoptar una estructura
      segmentada que permita el solapamiento de la ejecución de una
      instrucción con la lectura, decodificación, búsqueda de operandos, etc.
      de las instrucciones siguientes. Esta técnica también se denomina
      anticipación de instrucciones (instru on lookahead).

      En la figura se muestra un ejemplo de segmentación de instrucciones.
      La citada figura corresponde a un computador de tipo registro-registro,
      es decir un computador en que los accesos a memoria están restringidos
      a instrucciones específicas (LOAD y STORE)

      Se supone que el computador dispone de arquitectura Harvard, es decir,
      que posee memorias cache separadas por codigo y datos

      En el ejemplo se ha dividido la ejecucion completa de casa instrucción
      en 4 segmentos

         A.   Lectura.
         B.   Decodificación y lectura de operandos.
         C.   Ejecucion.
         D.   Acceso a la memoria de datos (si es necesario).



Prácticamente, todos los computadores actuales disponen de segmentación de
instrucciones.
Procesamiento segmentado - INFORME
Segmentación de procesadores

Este tipo de procesamiento se producecuando el mismo flujo de datos es
tratado por una serie de procesadores, de forma que cada uno de ellos
efectué una subtarea del proceso total. Cada procesador dejara sus
resultados en una memoria, que también será accesible desde el
siguiente, para que este procese esos resultados para ejecutar la
siguiente subtarea sobre el flujo de datos. Este tipo de segmentación se
emplea solamente en procesadores vectoriales de muy altas
prestaciones.




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.

Procesador superescalar

Un procesador superescalar de factor N es aquel que replica N veces la
circuitería de algunas 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.
En el siguiente grafico se muestra la ejecucion en paralelo de 5
instrucciones cada una en su cauce o pipeline, lo que representa una
Superescalaridad de factor 5.




Combinación de segmentación y Superescalaridad

Como se puede observarse en la figura, las filosofías de segmentación y
Superescalaridad son perfectamente compatibles.
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 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.
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.




Supersegmentacion

La palabra Supersegmentacion nos lleva a la tentación de aplicar la
ecuación superescalar + segmentado = supersegmentado, cuando en
realidad la ecuación correcta es segmento + segmento =
supersegmentado.

La Supersegmentacion 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 esta (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.


Procesadores Supersegmentacion


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 5 etapas de segmentación como la
del Pentium compuesta por las etapas de búsqueda, decodificación,
lectura, ejecucion y escritura, permite aplicar otra segmentación a cada
una de las unidades funcionales que intervienen en cada ciclo como son:
la cache de instrucciones, el decodificador de instrucción, la cache de
datos, la ALU o el banco de registro.



En el caso de la cache de instrucciones que es referenciada en la
primera etapa, esta puede ser una cache segmentada en dos etapas,
que permite simultanear la búsqueda de una instrucción y la
localización de su celda de cache asociada, con la lectura del codigo de
la anterior instrucción y su volcado al bus de datos del procesador. Asi
se obtienen dos niveles de segmentación como se muestra en el
apartado d) de la figura, en la que se comparan las 4 técnicas de
paralelismo expuestas.
Procesamiento segmentado - INFORME
Procesamiento segmentado - INFORME
En general la Supersegmentacion lleva asociada la subdivisión del ciclo de
reloj base en ciclos supersegmentado




Tantos ciclos como etapas hayan establecido para el segundo nivel de
segmentación, lo que desemboca en diseños que trabajan a muy alta
frecuencia.



Una buena implementación supersegmentado siempre incluye la ejecucion
de instrucciones fuera de orden. La ejecucion de instrucciones fuera de
orden es un paradigma utilizado en la mayoria 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 un cola a la
espera, de forma que otras instrucciones puedan abandonar la cola y
ejecutarse si sus operando están disponibles.

La ejecucion 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
Ejemplos de procesadores supersegmentado

ALPHA 21264

Un clásico ejemplo de diseño supersegmentado es el procesador Alpha
21264 de Digital, procesador RISCde 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 9 etapas para el caso de la cache, 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.

Pentium IV

Desarrollada en el 2000, está compuesto de 42.000.000 de transistores,
funciona a una frecuencia de 2`4 GHz, con un FSB3de 400 MHZ.
Presenta una Supersegmentacion de 20 etapasy 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 ejecucion de 4
instrucciones en las 20 etapas supersegmentadas de un Pentium IV.

Más contenido relacionado

PPTX
Procesamiento segmentado
PDF
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
PPT
Procesadores segmentados arquitectura del computador
PPTX
Diseño caso de pruebas
PPTX
Numeros pseudoaleatorios
PPTX
Segmentacion de memoria
PDF
Estructura de Datos - árboles y grafos
Procesamiento segmentado
Tema 1: Procesadores segmentados.Tema 1: Procesadores segmentados.
Procesadores segmentados arquitectura del computador
Diseño caso de pruebas
Numeros pseudoaleatorios
Segmentacion de memoria
Estructura de Datos - árboles y grafos

La actualidad más candente (20)

PPT
REDES NEURONALES Mapas con Características Autoorganizativas Som
PPT
Tm03 modelo de casos de uso
DOCX
Requisitos funcionales y no funcionales
PPTX
Modelos de los sistemas distribuidos
PDF
Analizar mediante-ejemplos-de-la-vida-real-el-concepto-de-procesos
PPTX
Ejercicios de entidad relacion (2018-2)
DOCX
Ensayo sobre la calidad de software
PPTX
Taller casos de prueba
DOCX
Tareas de ingenieria de requerimientos
PDF
Gestion de proyectos - Estimación del Esfuerzo
PPTX
Algoritmo de planificación srt
PDF
Ads sistema-panaderia-ADS
PPTX
Metodologia clasica en cascada
PPTX
Lenguajes de simulación
PDF
Arquitectura de la computadora
DOCX
Gestión de proyectos de software - Tema 3: Planificación del proyecto
PPTX
Modelado basados en escenarios
DOCX
Diseño conceptual de una base de datos de una tienda de abarotes
PDF
Ingeniería web_Unidad 3
PPTX
calidad de los sistemas de informacion
REDES NEURONALES Mapas con Características Autoorganizativas Som
Tm03 modelo de casos de uso
Requisitos funcionales y no funcionales
Modelos de los sistemas distribuidos
Analizar mediante-ejemplos-de-la-vida-real-el-concepto-de-procesos
Ejercicios de entidad relacion (2018-2)
Ensayo sobre la calidad de software
Taller casos de prueba
Tareas de ingenieria de requerimientos
Gestion de proyectos - Estimación del Esfuerzo
Algoritmo de planificación srt
Ads sistema-panaderia-ADS
Metodologia clasica en cascada
Lenguajes de simulación
Arquitectura de la computadora
Gestión de proyectos de software - Tema 3: Planificación del proyecto
Modelado basados en escenarios
Diseño conceptual de una base de datos de una tienda de abarotes
Ingeniería web_Unidad 3
calidad de los sistemas de informacion
Publicidad

Similar a Procesamiento segmentado - INFORME (20)

DOCX
Arquitectura tipos lupe
PDF
Tarea 1.1
PDF
ARQUITECTURA_DE_COMPUTADORAS.pdf
PDF
Unidad 1 arquitectura
PPSX
Unidad 1
DOCX
Segmentación
PPTX
DOCX
Informe top sw
DOCX
Introduccion a la arquitectura de computadoras.docx
PPTX
Modelos de -arquitectura de Computo 2.pptx
PDF
Trabajo de ureche nataly el repertorio de instrucciones
PDF
computación paralela
PPTX
Segundo blog arquitectura de hardware tercer corte
PPTX
MICROPROCESADORES
PDF
Capacidad de la unidad de procesamiento por andres maica
DOCX
Tercer corte arquitectura
PPTX
Arquitectura de computadora_04-Superescalar.pptx
PPTX
Arquitectura de un microprocesador
PPTX
Arquitectura de computadoras
PPTX
SEMANA01a-Arquitectura-de-Computadoras.pptx
Arquitectura tipos lupe
Tarea 1.1
ARQUITECTURA_DE_COMPUTADORAS.pdf
Unidad 1 arquitectura
Unidad 1
Segmentación
Informe top sw
Introduccion a la arquitectura de computadoras.docx
Modelos de -arquitectura de Computo 2.pptx
Trabajo de ureche nataly el repertorio de instrucciones
computación paralela
Segundo blog arquitectura de hardware tercer corte
MICROPROCESADORES
Capacidad de la unidad de procesamiento por andres maica
Tercer corte arquitectura
Arquitectura de computadora_04-Superescalar.pptx
Arquitectura de un microprocesador
Arquitectura de computadoras
SEMANA01a-Arquitectura-de-Computadoras.pptx
Publicidad

Más de Jairo Quiroz Cabanillas (20)

PPTX
COMPUTACIÓN EVOLUTIVA
PPTX
Algoritmo voraces
DOCX
DOCX
Sql dataadapter
DOCX
Sql connection
PPTX
ACCIDENTES DE TRABAJO
PPTX
Segmentación
DOCX
PPTX
DOCX
Procesamiento superescalar
DOCX
Buses de arquitectura
PPTX
Planeacion de produccion
DOCX
Sistema justo a tiempo
DOC
Administración del mantenimiento y fiabilidad
PPTX
Mantenimiento y confiabiliadad
PPTX
Capa de transporte nivel enrutamiento - pat - nat
COMPUTACIÓN EVOLUTIVA
Algoritmo voraces
Sql dataadapter
Sql connection
ACCIDENTES DE TRABAJO
Segmentación
Procesamiento superescalar
Buses de arquitectura
Planeacion de produccion
Sistema justo a tiempo
Administración del mantenimiento y fiabilidad
Mantenimiento y confiabiliadad
Capa de transporte nivel enrutamiento - pat - nat

Procesamiento segmentado - INFORME

  • 1. Introducción Los procesadores segmentados sirven para mejorar el rendimiento sin necesidad de duplicar excesivamente el hardware. Se usaron por primera vez en los años 60 para los grandes sistemas (mainframes) de altas presentaciones, y fueron muy importantes en los años 80 para el enfoqué RISC1del diseño de computadores (la mayoria de técnicas RISC se relacionan con el objetivo de conseguir una buena segmentación). El Intel i486 fue la primera implementación segmentada de la arquitectura IA32. La segmentación se utiliza mucho actualmente para el desarrollo de juegos de instrucciones del procesador. Actualmente, la tendencia es lograr segmentaciones más profundas para obtener frecuencias de reloj muy altas. Es un método muy eficaz para obtener un mayor rendimiento. Procesamiento Segmentado
  • 2. Segmentación: La segmentación (pipelining) es una técnica de implementación de procesadores que desarrolla el paralelismo a nivel de intrainstruccion. Mediante la segmentación se puede solapar la ejecucion de múltiples instrucciones. El procesamiento segmentado aprovecha la misma filosofía de trabajo de la fabricación en cadena: cada etapa de la segmentación (o segmento) completa una parte (subtarea) de la tarea total. Los segmentos están conectados cada uno con el siguiente, de forma que la salida de uno pasa ser la entrada del siguiente. 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 cauce2. Las instrucciones entran por un extremo, son procesadas a través de las etapas y salen por el otro extremo. Lo más importante de la segmentación es que las diferentes subtarea pueden procesarse de forma simultánea, aunque se sobre diferentes datos. Una contribución clave de la segmentación es la posibilidad de comenzar una nueva tarea sin necesidad de que la anterior se haya terminado.
  • 3. La medida de la eficacia de un procesador segmentado no es el tiempo total transcurrido desde que se comienza una determinad tarea hasta que se termina (tiempo de latencia del procesador), sino el tiempo máximo que puede pasar entre la finalización de dos tareas consecutivas. Considérese una tarea, compuesta por n subtarea. Si estas subtarea se procesan de forma totalmente, el tiempo necesario para procesar la tarea total será la suma de los tiempos necesarios para la terminación de cada una de las subtarea En este esquema, Tij representa la subtarea j dentro de la tarea i. Por otra parte, para comenzar el tratamiento de una nueva tarea será necesario esperar ese mismo tiempo. Esto se debe a que habrá algunas unidades funcionales que serán necesarias para llevar a cabo varias de las subtarea y por ello esas subtareas no podrán superponerse en el tiempo Si para procesar esa misma tarea, se emplea un procesador segmentado, basta que se haya terminado la primera subtarea para poder empezar a procesar una nueva tarea.
  • 4. En la citada figura puede verse el continuo flujo de tareas que se van procesando a través de los n segmentos encargados de procesar cada una de las subtareas.
  • 5. Procesador Segmentado: Un procesador segmentado es aquel que divide el proceso de ejecucion de una instrucción en N etapas de similar duracion con el objetivo de procesar N instrucciones simultáneamente, encontrándose cada una en una etapa diferente de su ejecucion. Conseguimos asi, 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. Recordemos que: 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.
  • 6. El DLX es un microprocesador diseñado por John L. Hennessy y David A. Patterson presenta una ejecucion 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 5 etapas son: IF: búsqueda ID: decodificación EX: ejecucion de unidad aritmético lógico MEM: memoria WB: escritura De esta manera, mientras el procesador escribe una instrucción, ejecuta simultáneamente las 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 ejecucion simultánea de cinco instrucciones distintas etapas en un procesador DLX
  • 7. Todos los microprocesadores actuales se encuentran segmentados, habiendo aumentado el número de etapas con el paso de las generaciones. Asi, lo normal en la séptima generación es encontrarnos con cauces de ejecucion 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 La gran ventaja de la aplicación de la segmentación en el diseño de losmicroprocesadores es que el aumento del rendimiento se consigue con solo reorganizar las unidades funcionales existentes, por lo que no supone un incre mento 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 d e las instrucciones pero es despreciable si lo comparamos con el espectacular i ncremento del rendimiento. Clasificación de los Procesadores Segmentado: Puede establecerse una clasificación de los procesadores segmentados atendiendo al uso que se da a la segmentación. Esta clasificación fue propuesta por Handler (1997). a) Segmentación aritmética b) Segmentación de instrucciones c) Segmentación de procesadores Segmentación aritmética La ALU de un computador puede segmentarse para la ejecucion de algoritmos aritméticos complejos. La segmentación aritmética es muy útil para procesar sobre todas las componentes de un vector, esto se consigue provocando que un segmento de la unidad aritmética trabaje
  • 8. sobre una de las componentes mientras que las demás trabajan sobre las componentes siguientes Un ejemplo clásico de este tipo de procesadores es el multiplicador segmentado basado en un árbol de Wallace, tal como se muestra en la figura. En esta figura los bloques CSA representan a sumadores con salvaguarda de llevadas y los bloques CLA, a sumadores con generación anticipada de llevadas. Las líneas inclinadas hacia la izquierda indican que los vectores de llevadas deben desplazarse a la izquierda un lugar antes de entrar en la etapa siguiente.
  • 9. Segmentación de instrucción La ejecución de un flujo de instrucciones puede adoptar una estructura segmentada que permita el solapamiento de la ejecución de una instrucción con la lectura, decodificación, búsqueda de operandos, etc. de las instrucciones siguientes. Esta técnica también se denomina anticipación de instrucciones (instru on lookahead). En la figura se muestra un ejemplo de segmentación de instrucciones. La citada figura corresponde a un computador de tipo registro-registro, es decir un computador en que los accesos a memoria están restringidos a instrucciones específicas (LOAD y STORE) Se supone que el computador dispone de arquitectura Harvard, es decir, que posee memorias cache separadas por codigo y datos En el ejemplo se ha dividido la ejecucion completa de casa instrucción en 4 segmentos A. Lectura. B. Decodificación y lectura de operandos. C. Ejecucion. D. Acceso a la memoria de datos (si es necesario). Prácticamente, todos los computadores actuales disponen de segmentación de instrucciones.
  • 11. Segmentación de procesadores Este tipo de procesamiento se producecuando el mismo flujo de datos es tratado por una serie de procesadores, de forma que cada uno de ellos efectué una subtarea del proceso total. Cada procesador dejara sus resultados en una memoria, que también será accesible desde el siguiente, para que este procese esos resultados para ejecutar la siguiente subtarea sobre el flujo de datos. Este tipo de segmentación se emplea solamente en procesadores vectoriales de muy altas prestaciones. 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. Procesador superescalar Un procesador superescalar de factor N es aquel que replica N veces la circuitería de algunas 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.
  • 12. En el siguiente grafico se muestra la ejecucion en paralelo de 5 instrucciones cada una en su cauce o pipeline, lo que representa una Superescalaridad de factor 5. Combinación de segmentación y Superescalaridad Como se puede observarse en la figura, las filosofías de segmentación y Superescalaridad son perfectamente compatibles.
  • 13. 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 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.
  • 14. 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. Supersegmentacion La palabra Supersegmentacion nos lleva a la tentación de aplicar la ecuación superescalar + segmentado = supersegmentado, cuando en realidad la ecuación correcta es segmento + segmento = supersegmentado. La Supersegmentacion 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 esta (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. Procesadores Supersegmentacion 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.
  • 15. Por ejemplo una descomposición en 5 etapas de segmentación como la del Pentium compuesta por las etapas de búsqueda, decodificación, lectura, ejecucion y escritura, permite aplicar otra segmentación a cada una de las unidades funcionales que intervienen en cada ciclo como son: la cache de instrucciones, el decodificador de instrucción, la cache de datos, la ALU o el banco de registro. En el caso de la cache de instrucciones que es referenciada en la primera etapa, esta puede ser una cache segmentada en dos etapas, que permite simultanear la búsqueda de una instrucción y la localización de su celda de cache asociada, con la lectura del codigo de la anterior instrucción y su volcado al bus de datos del procesador. Asi se obtienen dos niveles de segmentación como se muestra en el apartado d) de la figura, en la que se comparan las 4 técnicas de paralelismo expuestas.
  • 18. En general la Supersegmentacion lleva asociada la subdivisión del ciclo de reloj base en ciclos supersegmentado Tantos ciclos como etapas hayan establecido para el segundo nivel de segmentación, lo que desemboca en diseños que trabajan a muy alta frecuencia. Una buena implementación supersegmentado siempre incluye la ejecucion de instrucciones fuera de orden. La ejecucion de instrucciones fuera de orden es un paradigma utilizado en la mayoria 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 un cola a la espera, de forma que otras instrucciones puedan abandonar la cola y ejecutarse si sus operando están disponibles. La ejecucion 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
  • 19. Ejemplos de procesadores supersegmentado ALPHA 21264 Un clásico ejemplo de diseño supersegmentado es el procesador Alpha 21264 de Digital, procesador RISCde 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 9 etapas para el caso de la cache, 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. Pentium IV Desarrollada en el 2000, está compuesto de 42.000.000 de transistores, funciona a una frecuencia de 2`4 GHz, con un FSB3de 400 MHZ. Presenta una Supersegmentacion de 20 etapasy 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 ejecucion de 4 instrucciones en las 20 etapas supersegmentadas de un Pentium IV.