View
36
Download
0
Category
Preview:
Citation preview
UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS
ESCUELA ACADEMICO PROFESIONAL DE INFORMÁTICA
TEMA: SEGMENTACION (PIPE-LINE)
TOPICOS ESPECIALES EN INGENIERIA DE SOFTWARE
ELABORADO POR: Mendoza Simbal Carlos
cams21.em@gmail.com
1. INTRODUCCION
Los procesadores segmentados sirven para mejorar el rendimiento sin necesidad de
duplicar excesivamente el hardware.
2. EN LA ACTUALIDAD
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.
3. SEGMENTACION
La segmentación (pipeline) es una técnica de implementación por lo cual se solapa la
ejecución 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.
Segmentos: están conectados cada uno con el siguiente, de forma que la salida
de uno pasa ser la entrada del siguiente.
Recordemos que 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 estan 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.
4. IMPORTANCIA
Los mas importante de la segmentación es que las diferentes subtareas se
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.
Ejm: 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
Fig. 4.1. tarea procesada de forma totalmente secuencial.
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.
Fig. 4.2. Tarea ejecutada mediante un procesador segmentado.5. PIPELINES, APLICACIONES EN INFORMÁTICA
Pipelines gráficos: estos se encuentran en la mayoría de las tarjetas graficas, consiste en multiples unidades aritméticas o CPUs completas, que implementan variados escenarios de operaciones típicas de renderizado. Ejemplo: cálculos de luz y colores, renderizado, proyección de perspectiva, etc.
Pipelines de software o tuberías: consiste en múltiples procesos ordenados de tal forma que el flujo de salida de un proceso alimenta la entrada del siguiente proceso. Ejm: los pipelines de unix.
Es importante tener en cuenta que la arquitectura pipeline se aplica en dos lugares de la maquina, en la CPU y en la ALU.
6. RENDIMIENTO
Un procesador rinde mas cuando es mas rápido menor tiempo.
Medida de rendimiento Tiempo
7. FACTORES QUE REDUCEN EL RENDIMIENTO
Factores tecnológicos
Tiempo de carga de los registros
Desplazamiento del reloj (clock skew): El clock debería llegar a todas las
etapas en el mismo instante pero debido a diferentes factores físicos
(cableado,carga,drivers....) se produce un desplazamiento temporal en la
llegada del clock a cada etapa.
Factores de diseño y utilización
Participación en etapas inadecuadas.
Riesgos por dependencia de datos, surgen cuando una instrucción
depende de los resultados de un instrucción anterior de forma que ambas
no podrán ejecutarse de forma solapada.
8. RIESGOS ESTRUCTURALES
Surgen del conflicto de los recursos, cuando el hardware no puede soportar todas las
combinaciones posibles de instrucciones en ejecuciones solapadas simultáneamente.
9. PROCESADORES SEGMENTADOS
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 funcional es 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.
10. CASO
Funcionamiento de la arquitectura Pipe-line:
Supongamos que un procesador simple tiene un ciclo de instrucción sencillo, consiste solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de la instrucción.
En un procesador sin segmentación del cauce, las dos etapas se realizaran de manera secuencial para cada una de las instrucciones, como lo muestra esta figura.
Fig. 10.1. Procesador 1
Mientras que, en un procesador con segmentación del cause, cada una de estas etapas se asigna a una unidad funcional diferente, la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución.
Estas pueden trabajar en forma paralela en instrucciones diferentes.
Fig. 10.2. Procesador 2
11. OTROSComputadoras que utilizaron este Modelo de Arquitectura Segmentada
Recommended