2.2 y 2.3

40
2.3.2 Segmentación de instrucciones

Transcript of 2.2 y 2.3

  • 1. Introduccin La segmentacin o pipeline es una tcnica derealizacin de procesadores por la cual se solapa la ejecucin de las instrucciones. Hoy en da es la tcnica clave para la realizacin de CPU rpidas.

2. Introduccin Qu es la segmentacin o pipelining? Tcnica para la generacin de paralelismo enmonoprocesadores. Consiste en dividir una funcin en subfunciones independientes que pueden realizarse simultneamente (trabajo en cadena). En un instante determinado, se est trabajando sobre un nmero de elementos igual al nmero de etapas (paralelismo). 3. Caractersticas Caractersticas del proceso necesarias para poder aplicarsegmentacin: Se debe poder descomponer en etapas. Es necesario que las entradas de una etapa estn determinadas nicamente por las salidas de laanterior. Cada etapa debe poder ser realizada por un circuito especfico de forma ms rpida que el conjunto del proceso. Los tiempos de ejecucin de cada etapa deben parecidos. 4. La productividad de un computadora va a depender del nmero de instrucciones que acaben por unidad de tiempo, y no de lo que le cueste a una instruccin individual 5. Segmentacin en 5 Etapas (DLX). IF: Lectura de instruccin. ID: Decodificacin de Instruccin y lectura deoperandos. EXE: Ejecucin de la instruccin. MEM: Acceso a memoria de datos. REG: Acceso a banco de registros. 6. Etapas de cauce: funcionamiento Bsqueda (IF) se accede a memoria a por la instruccin se incrementa el CP Decodificacin / Bsqueda de operandos (ID) se decodifica la instruccin se accede al banco de registros a por los registros operandos se calcula el valor del operando inmediato con el signo extendido (por si hace falta ms adelante) Ejecucin / Direccin efectiva (EX) si es una instruccin de proceso, se ejecuta en la ALU si es un acceso a memoria, se calcula la direccin efectiva si es un salto, se calcula el destino, y si se toma o no 7. Etapas de cauce: funcionamiento Acceso a memoria / terminacin del salto (MEM) si es un acceso a memoria, se accede si es un salto, se almacena el nuevo CP Almacenamiento (WB) se almacena el resultado (si lo hay) en el banco de registros 8. La realizacin de cada etapa de segmentacin es un ciclomquina. Esta duracin est determinada por la duracin de la etapa ms lenta. con frecuencia el ciclo mquina es un ciclo de reloj, aunque el reloj puede tener mltiples fases. El objetivo del diseador de computadoras es equilibrar correctamente el diseo de cada segmento para que todos tengan la misma duracin. Si esto es as, entonces la duracin de una instrucciones ser (si no hay atascos): Tiempo por instruccin en mquina no segmentada -------------------------------------------------------------------Nmero de etapas de la segmentacin 9. Riesgos de la segmentacin. Cuando se detecta un riesgo, puede ser necesario detener lasegmentacin (no siempre). Pero detener el procesador en una mquina no segmentada es fcil, basta terminar la instruccin en curso. En una mquina segmentada hay varias instrucciones en curso, y por ello un detencin supone, en la mayora de los casos, que algunas de las instrucciones en curso deben ejecutarse hasta finalizar, otras se retardan y otras si pueden detenerse en un instante dado. Por lo general, cuando una instruccin se detiene, las instrucciones anteriores finalizan normalmente y las posteriores sufren un retardo en su ejecucin. Durante el tiempo de retardo, no se leen ms instrucciones. 10. Clases de Riesgos. Riesgos estructurales: Producidos por conflictos en lautilizacin del hardware. Impiden que dos instrucciones se solapen en determinados segmentos. Riesgos por dependencias de datos: Es cuando los datosque necesita una instruccin para ejecutarse son inicializados por instrucciones anteriores que aun no han finalizado. Riesgos de control: Suceden cuando hay un cambiobrusco en el valor del PC producido por una salto u otras instrucciones. 11. Riesgos estructurales. La ejecucin solapada de las instruccionesrequiere la segmentacin de unidades funcionales y duplicacin de recursos para permitir cualquier combinacin de instrucciones. Si alguna combinacin de instrucciones no se puede ejecutar porconflictos entre recursos: riesgo estructural. En los conflictos, la unidad de control detiene la ejecucin dealguna de las instrucciones hasta que el conflicto desaparezca. Los riesgos estructurales se permiten para: Reducir el coste. No aumentar la latencia de la unidad. 12. Riesgos por dependencia de los Datos. Se producen cuando alguna instruccin tiene un datofuente que es a su vez destino de otra instruccin anterior que se encuentra an dentro de la cadena. 13. Tipos de riesgos de dependencia de Datos. RAW: lectura despus de escritura. WAR: escritura despus de lectura. WAW: escritura despus de escritura. Tcnica de adelantamiento (forwarding), desvo (bypassing) ocortocircuito: El resultado de la ALU realimenta sus cerrojos de entrada. Los operandos entran a travs de una lgica de control que selecciona la entrada correcta. El adelantamiento se puede generalizar permitiendo que el resultado de una etapa pase a la entrada de otra etapa distinta 14. Con ello se consigue que si una instruccin utiliza un registro como fuente y la instruccin anterior lo tiene como destino de una operacin, entonces la segunda instruccin utilizar como valor del registro fuente la salida de la ALU. As, aunque el valor no se grabe en el registro conflictivo hasta 2 ciclos despus, la segunda instruccin ya habr hecho uso de su valor. 15. Riesgos de Control. Un riesgo de control se produce cuando es necesario llevar a cabo unadecisin basada en el resultado de una instruccin mientras se estn ejecutando otras instrucciones. Cuando se ejecuta un salto no se conoce de antemano cul ser la siguiente instruccin que deber ser ejecutada. Si la condicin del salto falla entonces se debe ejecutar la instruccin inmediata, si la condicin del salto se cumple se debe actualizar el PC con la direccin de la siguiente instruccin que debe ejecutarse. Una estrategia para atacar este tipo de problema es asumir que lacondicin del salto no se cumplir y por lo tanto la ejecucin continuar con la instruccin que se encuentra inmediatamente despus de la instruccin de salto. Si la condicin del salto se cumpli entonces se deber desechar del pipeline las instrucciones que fueron captadas y la ejecucin continua con la instruccin que se encuentra en la direccin de salto 16. 2.3.3 Conjunto de instrucciones: Caractersticas y funciones 17. Cada instruccin debe contener la informacin que necesita el procesador para su ejecucin. 18. Elementos de una instruccin maquina Cdigo de operacin: Especifica la operacin a realizar. Laoperacin se indica mediante un cdigo binario denominado cdigo de operacin. Referencia a operando fuente y origen: La operacin puedeimplicar a uno o mas operandos que son entradas para la instruccin. Referencia al operando de destino: La operacin puedeproducir un resultado. Referencia a la siguiente instruccin: Dice al procesador dedonde captar la siguiente instruccin tras completarse la ejecucin de la instruccin actual. 19. Los operandos origen y destino pueden estar en alguna de las tres reas siguientes: Memoria principal o virtual: Como en las referencias ainstrucciones siguientes, debe indicarse la direccin de memoria principal o de memoria virtual. Registrodel procesador: Salvo raras excepciones, un procesador contiene uno o mas registros que pueden ser referenciados por instrucciones maquina. Si solo existe un registro la referencia a el puede ser implcita. Si existe mas de uno, cada registro tendr designado un numero nico y la instruccin debe contener el numero del registro deseado. Dispositivo de E/S: la instruccin debe especificar el modulo dedispositivo de E/S para la operacin. En el caso de E/S asignadas en memoria, se dar otra direccin de memoria principal o virtual. 20. Los codops se representan mediante abreviaturas, denominadas nemotcnicos, que indican la operacin en cuestin. 21. Cada instruccin se representa por una secuencia de bits 22. Instruccin en alto nivel x=x+y; En instrucciones maquina Supongamos que X e Y corresponden a la posicin 513 y 514.Cargar un registro con el contenido de la posicin de memoria 513. 2. Sumar al registro el contenido de la posicin de memoria 514. 3. Memorizar el contenido del registro en la posicin de memoria 513. 1. 23. Un lenguaje de alto nivel expresa las operaciones deforma algebraicas concisa, utilizando variables. Un lenguaje maquina expresa las operaciones de una manera elemental, implicando operaciones de transferencia de datos a registros. 24. Clasificacin de la instrucciones. Procesamiento de datos: Instrucciones aritmticas ylgicas. Almacenamiento de datos: Instrucciones de memoria. Transferencia de datos: Instrucciones de E/S Control: Instrucciones de comprobacin y de bifurcacin. 25. NMERO DE DIRECCIONES Es una de las formas tradicionales de describir la arquitectura de un procesador. Estn contenidas en cada instruccin. Menos significativa a medida que aumenta la complejidad del diseo del procesador 26. NMERO MXIMO DE DIRECCIONES NECESARIAS EN UNA INSTRUCCIN? Aritmticas y lgicas requieren ms operandos. Unarias (un operando) Binarias (dos operandos)Necesitaramos mximo de dos direcciones para referenciar operandos. El resultado de la operacin debe almacenarse= tercera direccin. Tras completar una instruccin debe captarse la siguiente= direccin (cuarta) 27. RAZONAMIENTO ANTERIOR 4 Referencias a direcciones: Dos operandos Un resultado Direccin de la siguiente instruccinEn la prctica es muy raro encontrar este tipo de instrucciones. 28. EJEMPLO DE UNA OPERACIN CON (1,2,3) DIRECCIONES 29. INSTRUCCIONES CON CERO DIRECCIONES Se aplican a una organizacin especial de memoria =Pila (stack) Conjunto de posiciones del tipo last-in-first-outLa pila esta en una posicin conocida y los dos elementos de su cabecera estn en registros del procesador. Dichos elementos son referenciados. 30. En todos los casos la direccin de la siguiente instruccin esta implcita y se va a realizar una operacin con dos operandos origen y un resultado. 31. DISEO DEL REPORTORIO DE INSTRUCCIONES El diseo es muy complejo, ya que afecta muchosaspectos del computador. Define muchas funciones realizadas por el procesador. Es el medio que tiene el programador para controlar elprocesador. 32. NECESIDADES DEL PROGRAMADOR AL DISEAR Repertorio de operaciones: Cuantas y que operacionesconsiderar, y que tan complejas deben de ser. Tipos de datos: Diferentes tipos de datos con los que seefectan las operaciones. Formatos de instrucciones: Longitud de la instruccin (enbits), nmero de direcciones, tamaos de los distintos campos. Registros: Nmero de registros del procesador que pueden serreferenciados por las instrucciones y su uso. Direccionamiento: Modo(s) de direccionamiento mediante loscuales puede especificarse la direccin de un operando. 33. Gracias por su atencin.