TEMA I PROCESADORES SEGMENTADOS UNED Manuel Fernandez Barcell Http:

  • View
    221

  • Download
    0

Embed Size (px)

Text of TEMA I PROCESADORES SEGMENTADOS UNED Manuel Fernandez Barcell Http:

INGENIERIA DE COMPUTAORES II

INGENIERIA DE COMPUTADORES IITEMA IPROCESADORES SEGMENTADOSUNEDManuel Fernandez BarcellHttp://www.mfbarcell.es Captulo 1. Procesadores segmentados1.1. Guin-esquema1.2. Introduccin1.3. Procesadores RISC frente a procesadores CISC1.4. Clasificacin de las arquitecturas paralelas1.5. Evaluacin y mejora del rendimiento de un computador1.6. Caractersticas de los procesadores segmentados1.7. Arquitectura segmentada genrica1.7.1. Repertorio de instrucciones de la ASG1.7.2. Implementacin de la segmentacin de instrucciones en la ASG1.8. Riesgos en la segmentacin1.8.1. Riesgos estructurales1.8.2. Riesgos por dependencias de datos1.8.2.1. La reorganizacin de cdigo1.8.2.2. El interbloqueo entre etapas1.8.2.3. El adelantamiento (caminos de bypass o forwarding)1.8.3. Riesgos de control1.9. Planificacin dinmica: Algoritmo de Tomasulo1.10. Resumen1.11. Referencias1.12. Preguntas de autoevaluacin1.13. ActividadesCONTENIDO TEMA IUn procesador segmentado es capaz de procesar varias instrucciones simultneamente, aunque cada una de ellas puede encontrarse en una etapa distinta de su procesamiento.Aprovecha el paralelismo intrnseco existente entre las instruccionesDos etapas del RISC I (1982),Las 10 etapas del Pentium III.Las 20 31 etapas del Pentium 4 (2000-2005) segn modelo.Hasta las 14 etapas de los procesadores basados en la micro arquitectura Intel Core (2006-2010).

1.2 IntroduccinCICS (COMPLEX INSTRUCTION SET COMPUTER)Inicialmente los procesadores fueron dotados de conjunto de instrucciones muy potentes, que realizaban gran cantidad de operaciones internasMemoria escasa: Programas con pocas instrucciones que hacan muchas operaciones en el micro cdigoUn gran numero de modos de direccionamientoDificultad para el paralelismosInstrucciones de distintos tamaos, distinto nmero de argumentosEstudios demostraban que el 80 % del tiempo ejecutaban un 20% de Instrucciones1.3. Procesadores RISC frente a procesadores CISCConjunto de instrucciones sencillas con formatos fijosHardware de control mas sencilloVentajasAumenta la velocidad de ejecucinReduce el tamao de la CPU, con menor consumo y ms fcil diseo al tener lgica de control ms simpleAumenta el nmero de registrosReduce los acceso a memoria cargando los datos en registrosPosibilita la segmentacin y el paralelismo

RISC (REDUCED INSTRUCTION SET COMPUTER)Clasificacion de Flynn (aos 60)Computadores SISD (SI, Single Instruction, SD, Single data)Computadores SIMD (SI, Single Instruction, MD, Multiple Data)Computadores MIMD (MI, Multiple Instruction MD, Multiple Data)Computadores MISD (MI, Multiple Instruction SD, Single data)1.4. Clasificacin de las arquitecturas paralelas

SISDEJEMPLO

Un SISD necesita 12 Intervalos.

Tarda 3 intervalos de tiempoCon SISD seran 12SIMD

Tarda 4 intervalos de tiempoMIMDParalelismo de DatosCuando una misma funcin, instruccin, se ejecuta repetidas veces en paralelo sobre datos diferentesParalelismo FuncionalCuando las funciones (iguales o distintas) se ejecutan en paralelo

Tipos de ParalelismoGranularidadCantidad de trabajo asociado a cada tipo de tarea candidata a la paralelizacinNivel de instrucciones (ILP, Instruction Level Parallelism)En paralelo instrucciones.Granularidad fina Nivel de BucleEn paralelo distintas iteraciones de un bucle o secuencias de instrucciones de programa.Granularidad fina-media.Nivel de funcinLos distintos procedimientos se ejecutan simultneamente. Granularidad media.Nivel de ProgramaProgramas ejecutados en paralelo. Granularidad gruesa.Niveles de paralelismoParalelismo entre instrucciones ILP

VLIW: Very Long Instruction WordCPI: Nmero de Ciclos por InstruccinSPMD: Simple Program Multiple Data

Tiempo de Respuesta: Tiempo que tarda el computador en procesar una entradaProductividad (Throughput)Nmero de entradas por Unidad de tiempoFuncionalidadTipos de entradas diferentes que es capaz de procesarExpansibilidadPosibilidad de ampliar la capacidad de procesamiento aadiendo bloquesEscalabilidadPosibilidad de ampliar el sistema sin devaluar sus prestacionesEficaciaRelacin entre el rendimiento obtenido y el coste que ha supuesto conseguirlo (eficiencia = rendimiento/ coste).1.5. Evaluacin y mejora del rendimiento de un computador

DenominacinLa denominacin de estos parmetros y su importancia depende del elemento que se estudia

(Ciclos por emisin)(Instrucciones por emisin)

Factor de mejora o gananciaP= factor de mejoraF= fraccin de tiempo que no se aplica la mejora

Ejemplo de Ley de AMDAHLSi una mquina pasa un 25% de su tiempo procesando instrucciones de coma flotante y se mejora la mquina haciendo que esas instrucciones se ejecuten en la mitad de tiempo, esto es p = 2, entonces la ganancia que se puede obtener es

Es decir, la mquina mejorada solo es un 14% mejor.Por mucho que se mejore el recurso, la ganancia ser siempre limitada por 1/f

Se desea mejorar el rendimiento de un computador introduciendo un coprocesador matemtico que realice las operaciones aritmticas en la mitad de tiempo. Cul sera la ganancia en velocidad del sistema para la ejecucin de un programa si el 60% del mismo se dedicase a operaciones aritmticas? Si el programa tarda 12 segundos en ejecutarse sin la mejora, Cunto tardar con la mejora?Ganancia: p=2f= fraccin de tiempo sin mejora. Mejora el 60% del tiempo 1-0.6= 0.4 sin mejora

Ejemplo

Procesamiento segmentado = fabricacin en cadenaAl nmero de etapas: Profundidad de segmentacinPara que el tiempo de latencia del procesador segmentado sea el mnimo posible, es necesario que el procesador est equilibradoQue todas las subtareas en que se haya dividido la tarea total tarden en procesarse el mismo tiempo.La relacin de precedencia de un conjunto de subtareas T1, . , T17 que componen cierta tarea T, especfica para cada subtarea Tj que no puede comenzarse hasta que hayan terminado ciertas subtareas Ti.Las relaciones de precedencia para todas las subtareas de T forman su grafo de precedencia. En el ejemplo de la Figura se ha supuesto que las tareas que se procesan en el cauce tienen un grafo de precedencia lineal. Esto significa que una subtarea Tj no puede comenzar hasta que todas las subtareas previas, es decir Ti, i < j , hayan finalizado. A los procesadores segmentados que solo pueden procesar tareas con grafo de precedencia de este tipo se les denomina de cauce lineal.

1.6. Caractersticas de los procesadores segmentados

Existen dos caractersticas importantes de los repertorios de instrucciones que permiten clasificar las arquitecturas de propsito general:El nmero de operandos que pueden tener las instrucciones aritmtico-lgicas.El nmero de operandos que se pueden direccionar en memoria en las instrucciones aritmtico-lgicas.Las instrucciones aritmtico-lgicas de la ASG utilizan en total tres operandos y ninguno de ellos se referencia en memoria.A las mquinas en las que los operandos no se referencian en memoria se les denomina mquinas registro-registro o mquinas de carga/almacenamiento.

1.7. Arquitectura segmentada genrica (ASG)

Descripcin de la ASG (propsitos educativos)32 registros de 32 bitsRegistros de coma flotante de 64 bitsMquina registro-registroLos operandos no hacen referencia a memoria (carga/almacenamiento)

1.7.1.Repertorio de instrucciones de la ASG

1.7.1.1.Aritmticas y lgicas

EtapasIF (Instruction Fetch)Lectura de la instruccin de la cach de instruccionesID (Instruction Decoding) Decodificacin y lectura de los operandos del fichero de registrosEX (Execution)Ejecucin de las operaciones si se trata de una instruccin aritmtico-lgica y del clculo de la condicin y de la direccin de salto si se trata de una bifurcacin o salto condicional.MEM (Memory Access) Acceso a la cache de datosAcceso a la cach de datos para lecturas (cargas) o escrituras (almacenamientos).WB (Write-Back results)Escritura del resultado en el fichero de registros1.7. Arquitectura segmentada genrica (ASG)

Patrn de ejecucin segmentacin ASG

Factores que determinan el tiempo de ejecucin de las instruccionesLos cerrojos o buffers de contencinLa duracin de todas las etapas de la segmentacin es similarViene determinada por la duracin de la etapa ms lentaLos riesgos que se producen en la segmentacin y que introducen detenciones en el cauce.La segmentacin aumenta el nmero de instrucciones completadas por unidad de tiempo,Pero no reduce (incrementa) el tiempo de ejecucin de una instruccinEl tiempo total de ejecucin de la instruccin segmentada es ligeramente superior al de su equivalente no segmentada debido al tiempo que se consume en el control de la segmentacin.

Ejecucin no segmentada y segmentada

RiesgoA la situacin que impide a una instruccin acceder a la ejecucin de sus etapas al depender de otra anterior.Riesgos estructuralesInsuficiencia de hardware El hardware que necesita est ocupadoRiesgos de dependencia de datosUna instruccin necesita los datos de otra anteriorRiesgos de controlLas instrucciones de control de flujo (saltos y bifurcaciones)No pueden leer la instruccin siguiente hasta que no se conoce su direccin, que se calcula en la instruccin de control de flujo1.8. Riesgos en la segmentacin

La ASG no se presenta este inconveniente porque se dispone de dos memorias cach, una para instrucciones (I-cach) y otra para datos (D-cach).1.8.1. Riesgos estructuralesDos instrucciones necesitan el mismo recurso hardwareInstrucciones ms complejas que otras

Mayor duracin de la etapa de ejecucinSolucin 1:Duplicar la unidad funcional

Solucin 2:Planificacin de cdigo

Cambiar el orden de ejecucin de las instrucciones)Cuando dos instrucciones comparten algn datoTipos de dependencias de datosRiesgo de tipo WAR (Write After Read Escritura tras lectura)Instruccin j trata de escribir en su destino antes que ste sea ledo por la instruccin Riesgo del tipo WAW (Write After Write)