Home
practica1 - pipeline
Contents
1. 8 add ri0 r0 r0 lw r1 0 r10 addi r3 r1 2 lazol1 add r2 r3 r0 subi r3 7r3 1 bnez r3 lazo1 add r3 r3 r0 addi r11 r0 4 lw r3 0 r11 addi ri r3 4 add r4 r0 r0 addi r5 r0 7 lf 3 0 r8 lf f2 0 r6 multf f4 f3 f2 divf f5 f4 f2 addf f5 1f3 f2 sf O r8 5 j fin nop nop nop fin trap 0 CPI resultante Ap ndice A Directivas e instrucciones del ensamblador DLX A l Directivas While the assembler is processing an assembly file the data and instructions it assembles are placed in memory based on either a text code or data pointer Which pointer is used is not selected by the type of information but whether the most recent directive was data or text The program initially loads into the text segment By default the code is loaded at location CODE initially set to 0x100 and the data are loaded at location DATA initially set to 0x1000 align n Cause the next data code loaded to be at the next higher address with the lower n bits zeroed the next closest address greater than or equal to the current address that is a multiple of 2 e g align 2 means the next word begin ascii stringl Store the strings listed on the line in memory as a list of characters The strings are not terminated by a 0 byte asciiz string1 Similar to ascii except each string is terminated by a 0 byte byte bytel byte2 Store the bytes listed on the line sequentially in memory data
2. Ra Rb XORI Rd Ra Imm LHI Rd Imm SLL Rd Rs Re SRL Rd Rs Re SRA Rd Rs Re SLLI Rd Rs Imm SRLI Rd Rs Imm SRAI Rd Rs Imm S__ Rd Ra Rb S__I Rd Ra Imm S__U Rd Ra Rb S__UI Rd Ra Imm NOP Or Or immediate Xor Xor immediate Load high immediate loads upper half of register with immediate Shift left logical Shift right logical Shift right arithmetic Shift left logical immediate bits Shift right logical immediate bits Shift right arithmetic immediate bits Set conditional __ may be EQ NE LT GT LE or GE Set conditional immediate __ may be EQ NE LT GT LE or GE Set conditional unsigned __ may be EQ NE LT GT LE or GE Set conditional unsigned immediate EQ NE LT GT LE or GE No operation may be Control instructions Control is handled through a set of jumps and a set of branches The four jump instructions are differentiated by the two ways of specifying the destination address and by wether or not a link is made Two jumps use a 26 bit offset added to the program counter to determine the destination address the other two specify a register that is the destination address There are two flavors of jumps plain jump and jump and link used for procedure call The latter places the return address in R31 All branches are conditional The branch condition is specified by the instruction which may test the register source for zero or nonzero this may be a data va
3. ciclos que consume en el caso de que la anticipaci n forwarding o cortocircuitos est activada y en el caso de que no lo est Calcular el CPI en ambos casos Activada No activada Ciclos CPI Con la anticipaci n forwarding activa especifica cu ntos ciclos se pierden por paradas stall o burbujas en cada uno de los posibles tipos de riesgos En los riesgos de datos desglosa el n de ciclos que se pierden en cada uno de los riesgos posibles RAW o WAW Riegos Estructurales Control Datos Ciclos En el caso de que sean dependencias de datos Cu les son los registros causantes y de qu tipo son estas dependencias a RAW WAW Que tipo de estrategia se emplea para los saltos detener siempre salto retardado predicci n est tica etc C mo aparece reflejado en el diagrama de ciclo de reloj clock cycle diagram Pr ctica 1 Arquitectura de Computadores Analizar los cortocircuitos implementados entre qu etapas se dan Es posible reducir el n mero de ciclos empleados en la ejecuci n del c digo mediante una reorde naci n del mismo En caso afirmativo indicar c mo quedar a el nuevo c digo y calcular el nuevo n mero de ciclos empleados en la ejecuci n y el CPI resultante Marca con flechas en el codigo original las modificaciones que crees necesarias text 0x100 comienzo del codigo global start start addi r8 r0 12 addi r6 r0
4. de la etapas de la segmentaci n a la espera de que la dependencia causante se resuelva La forma m s intuitiva de visualizar estos conceptos es la representaci n de un cronograma en el que representamos la evoluci n del tiempo en el eje horizontal y las diferentes instrucciones el eje vertical El simulador winDLX permite la visualizaci n de dicho cronograma En el cronograma nos pueden aparecer diferentes tipos de paradas R Stall causada por un riesgo RAW W Stall causada por un riesgo WAW S Stall causada por un riesgo estructural T Stall causada por una interrupci n denominada excepci n o TRAP Espera a que se ejecute por completo la instrucci n anterior a Stall causada por una parada de una instrucci n anterior Los riesgos RAW y WAW se muestran mediante una flecha roja Para paliar la posibilidad de riesgos se introduce una mejora en la segmentaci n que se denomina anticipaci n forwarding o short circuit Dicha mejora consiste en facilitar el operando que produce la dependencia a la siguiente instrucci n en la etapa en que est disponible sin esperar a que se llegue en la ltima etapa cuando es escrito en los registros As logramos una 1 4 EJEMPLO 5 mayor eficiencia El simulador WinDLX permite habilitar o deshabilitar la opci n de forwarding En caso de que est activa una flecha verde muestra las etapas a trav s de las cuales se anticipa el valor del operando Por ejemplo en las instruccio
5. del procesador RISC segmentado DLX proce sador que presenta un gran n mero de similaridades con el procesador MIPS 1 2 El procesador DLX A continuaci n resumimos las caracter sticas m s importantes de la arquitectura del procesador DLX Arquitectura de carga y almacenamiento s lo las instrucciones del tipo load store acceden a memoria las instrucciones de operaci n son s lo entre registros a Unidades de operaciones aritm ticas separadas Una de n meros enteros y varias de punto flotante suma multiplicaci n y divisi n Tama o de palabra de 32 bits 1 word 32 bits 1 halfword 16 bits 32 registros de prop sito general GPR de 32 bits para enteros Se denotan RO R1 R2 R31 El registro RO siempre tiene el valor 0 32 registros de n meros en punto flotante de simple precisi n 32 bits a los que se refiere como F0 F1 F31 Los registros Fx se pueden agrupan en pares consecutivos para operaciones de punto flotante en doble precisi n 64 bits a estos registros de doble precisi n nos referiremos como DO D1 D30 El registro Di est constitu do por los registros Fi 1 Fi a Estructura segmentada La ejecuci n de una instrucci n se divide en 5 etapas Dichas etapas pipeline son las siguientes 1 Etapa IF B squeda de instruci n 2 Etapa ID Decodificaci n de instrucci n 3 Etapa EX Ejecuci n operaci n o c lculo de direcci n efectiva Esta etapa puede realizarse en dif
6. r0 addi r5 r0 7 lf f3 0 r8 f3 lt r8 12 26 0 lf f2 0 r6 f2 lt r6 8 17 0 multf f4 f3 f2 divf f5 f4 f2 addf f5 f3 f2 sf 0 r8 5 Mem r8 Mem 12 lt 5 j fin Saltar al final del prog nop nop nop fin trap 0 finalizar el programa El c digo ejemplo s consta de dos partes datos y c digo Las l neas que comienzan con un punto p e data 0 son directivas La parte de datos empieza en la direcci n 0 y se define con la directiva data 0x0 La parte de c digo empieza en la direcci n 0x100 y se indica con la directiva text 0x100 Para que el simulador funcione correctamente hemos de inicializar estas posiciones comienzo de los datos y c digo Para ello en la opci n MEMORY SYMBOLS del simulador donde se muestran los valores de las etiquetas hemos de cambiar los valores de las etiquetas TEXT y DATA a los valores 0x100 y 0x0 respectivamente De esta forma indicamos al simulador donde comienzan los datos y la primera l nea ejecutable La ltima l nea del programa es una llamada a la interrupci n excepci n 0 que finaliza la ejecuci n del programa En la opci n CONFIGURATION debemos de asegurarnos que la configuraci n de punto flo tante FLOAT POINT STAGES est puesta a los siguientes valores aconsejados no obligatorio count delay addition units 1 2 multiplication units 1 5 division units 1 19 con esto decimos el n mero de unidades de punto flotante y el n mero de ciclos ne
7. Simulador de Procesador Segmentado WinDLX 1 1 Introducci n Al ejecutar un programa uno de los objetivos que generalmente perseguimos es que dicho programa se ejecute lo mas r pidamente posible obteniendo el m ximo provecho del procesador el m ximo rendimiento Para medir este rendimiento son varios los par metros que podemos tener en cuenta a Nc N mero de ciclos de reloj de CPU para ejecutar un programa a N N mero de instrucciones de las que se compone el programa a Tck Duraci n de un ciclo de reloj a Tcpu N Cc x Tck Tiempo requerido en ejecutar un programa a CPI Nc N N mero medio de ciclos por instrucci n De aqu Tcpu N CPI x Teck Si queremos hacer este tiempo lo m s peque o posible tendr amos que disminuir alguno de los tres factores N CPI Tck No obstante esta tarea no es tan simple ya que los factores interact an mutuamente y cuando disminuye alguno de ellos los otros aumentan El ciclo de reloj depende de la tecnolog a usada en el hardware el CPI de la organizaci n y repertorio de las instrucciones y el n de instrucciones del repertorio de instrucciones y de la tecnolog a del compilador La idea de segmentar la ejecuci n de las instrucciones pretende acercar el valor de CPI a su valor m s peque o posible 1 valor ideal en el que todas las instrucciones tardan un ciclo de reloj 2 Pr ctica 1 Arquitectura de Computadores En este tema nos centraremos en la simulaci n
8. address Cause the following code and data to be stored in the data area If an address was supplied the data will be loaded starting at that address otherwise the last value for the data pointer will be used If we were just reading data based on the text code pointer store that address so that we can continue from there later on a text directive double number1 Store the numbers listed on the line sequentially in memory as double precision Floating point numbers global label Make the label available for reference by code found in files lo aded after this file space size Move the current storage pointer forward size bytes to leave some empty space in memory text address Cause the following code and data to be stored in the text code area If an address was supplied the data will be loaded starting at that address otherwise the last value for the text pointer will be used If we were just reading data based on the data pointer store that address so that we can continue from there later on a data directive 10 AP NDICE A DIRECTIVAS E INSTRUCCIONES DEL ENSAMBLADOR DLX word word1 word2 Store the word listed on the line sequentially in memory A 2 Conjunto de instrucciones Instructions for Data Transfer Move data between registers and memory or between integer and FP or special registers only memory address mode is 16 bit displacement contents of a GPR LB Rd Adr Load byte sign extens
9. cesarios para la ejecuci n de estas etapas En MEMORY SIZE nos aseguraremos que la memoria tiene un tama o de 0x8000 bytes En la opci n CONFIGURATION tambi n habilitamos o deshabilitamos la anticipaci n con ENABLE FORWARDING El manejo del simulador es bastante intuitivo constando de diferentes ventanas en las que se muestra el cronograma de ejecuci n el c digo cargado contenido de los registros estado del pipeline puntos de ruptura y estad sticas de ejecuci n Es posible tambi n ver el contenido de la memoria en la opci n DISPLAY de MEMORY Para la ejecuci n del programa dentro de la opci n EXECUTE podemos ejecutar el c digo en su totalidad RUN ejecutar un n mero de ciclos MULTIPLE CYCLES ejecutar hasta una 1 5 PRACTICA 1 7 posici n dada RUN TO o ejecutar un s lo ciclo de reloj SINGLE CYCLE Cuando se ejecuten varios ciclos de reloj de una vez se debe tener en cuenta que el simulador solo conserva los ltimos por lo que si se ejecutan muchos de una vez puede que se pierda la informaci n de los primeros 1 5 al Pr ctica 1 Ejecutar el c digo ejemplo s en el simulador DLX El resultado de este c digo es el mismo al ejecutarlo en el DLX y en una m quina escalar no segmentada o por el contrario hace falta que el compilador programador introduzca intrucciones nop entre algunas instrucciones para que esto sea as Realizar la ejecuci n completa del c digo y calcular el n mero de
10. erentes unidades seg n la instrucci n sea una operaci n de enteros in tEX o flotantes y estos ltimos suma producto o divisi n denomin ndose faddEX fmulEX fdivEX las unidades fmulEX y fdivEX tambi n realizan la multiplicaci n y divisi n de enteros 4 Etapa MEM Carga o almacenamiento de datos en memoria 5 Etapa WB write back Almacenamiento de los resultados de la instrucci n en los registros correspondientes Se realiza en la primera mitad del ciclo de reloj de forma que una instrucci n que simult neamente est en la etapa ID puede tomar el valor de los registros en la segunda mitad del ciclo sin necesidad de cortocircuito forwarding Todas las etapas ocupan un ciclo de reloj salvo las de ejecuci n de punto flotante faddEX fmulEX fdivEX que tardan m s de un ciclo en ser realizadas Conjunto reducido de instrucciones Dicho conjunto contiene los siguientes 4 tipos de instrucciones 1 3 RIESGOS EN LA SEGMENTACI N 3 Transferencia de datos carga almacenamiento Instrucciones aritm ticas y l gicas sobre enteros Instrucciones de control Instrucciones de punto flotante a Modos de direccionamiento soportados e Inmediato Ejemplo addi ri r0 1 ri r0 1 e Directo a memoria Ejemplo lb r1 0x10 ri 0x10 lb ri label ri label Los n meros en hexadecimal se expresan como OxN e Indirecto con desplazamiento Se expresa como c Rx donde c es un desplazamiento de 16 bits y Rx e
11. ibir un operando antes que una instrucci n previa que tambi n lo modifica Este riesgo deriva en las instruc ciones de punto flotante ya que su ejecuci n tarda un n mero de ciclos de reloj mayor al resto de instrucciones En este tipo de instrucciones multiciclo pueden terminar instruc ciones en un orden diferente al que se emitieron por ejemplo en la siguiente secuencia la segunda instrucci n es m s r pida que la primera e intenta escribir f2 antes cuando no deber a de ser as multf 2 f1 f0 f2 f1x f0 mov f2 f0 f2 f0 2 Riesgos estructurales derivan de la imposibilidad del hardware en realizar a la vez dos actividades As si tenemos solamente una unidad para multiplicar flotantes mientras que se realiza una multiplicaci n es imposible realizar otra En el siguiente ejemplo la segunda instrucci n ha de esperar a que la primera acabe la multiplicaci n para poder efectuar su multiplicaci n Por ejemplo multf f4 f1 f0 como ocupa mas de un ciclo multf f5 f2 f0 la unidad fmulEX esta ocupada 3 Riesgos de control en aquellas instrucciones en las que se modifica el contador del programa PC como saltos llamadas a subrutinas interrupciones En DLX a diferencia de MIPS la direcci n de salto es conocida en la etapa ID con lo que la cancelaci n de la siguiente instrucci n en caso de fallo es menos costosa Como se ha dicho los riesgos se traducen en una parada stall en el flujo de las instrucciones dentro
12. ion LBU Rd Adr Load byte unsigned LH Rd Adr Load halfword sign extension LHU Rd Adr Load halfword unsigned LW Rd Adr Load word LF Fd Adr Load single precision Floating point LD Dd Adr Load double precision Floating point SB Adr Rs Store byte SH Adr Rs Store halfword SW Adr Rs Store word SF Adr Fs Store single precision Floating point SD Adr Fs Store double precision Floating point MOVI2FP Fd Rs Move 32 bits from integer registers to FP registers MOVI2FP Rd Fs Move 32 bits from FP registers to integer registers MOVF Fd Fs Copy one Floating point register to another register MOVD Dd Ds Copy a double precision pair to another pair MOVI2S SR Rs Copy a register to a special register not implemented MOVS2I Rs SR Copy a special register to a GPR not implemented Integer arithmetic and logical instructions Operations on integer or logical data in GPRs overflows by signed arithmetics are not reported ADD Rd Ra Rb Add ADDI Rd Ra Imm Add immediate all immediates are 16 bits ADDU Rd Ra Rb Add unsigned ADDUI Rd Ra Imm Add unsigned immediate SUB Rd Ra Rb Subtract SUBI Rd Ra Imm Subtract immediate SUBU Rd Ra Rb Subtract unsigned SUBUI Rd Ra Imm Subtract unsigned immediate MULT Rd Ra Rb Multiply signed MULTU Rd Ra Rb Multiply unsigned DIV Rd Ra Rb Divide signed DIVU Rd Ra Rb Divide unsigned AND Rd Ra Rb And ANDI Rd Ra Imm And immediate A 2 CONJUNTO DE INSTRUCCIONES 11 OR Rd Ra Rb ORI Rd Ra Imm XOR Rd
13. lue or the result of a compare The branch target address is specified with a 16 bit signed offset that is added to the program counter In WINDLX the jumps and the branches are completed by the end of the ID cycle to reduce the number of control stalls In the DLX pipeline the predict not taken scheme is implemented by continuing to fetch instructions as if the branch were a normal instruction The pipeline looks as if nothing out of the ordinary is happening If the branch is taken we neeed to stop the pipeline and restart the fetch BEQZ Rt Dest BNEZ Rt Dest BFPT Dest BFPF Dest J Dest JR Rx JAL Dest Branch if GPR equal to zero 16 bit offset from PC Branch if GPR not equal to zero 16 bit off from PC Test comparison bit in the FP status register true and branch 16 bit offset from PC Test comparison bit in the FP status register false and branch 16 bit offset from PC Jump 26 bit offset from PC Jump target in register Jump and link save PC 4 to R31 target is PC relative 12 APENDICE A DIRECTIVAS E INSTRUCCIONES DEL ENSAMBLADOR DLX JALR Rx TRAP Imm Jump and link save PC 4 to R31 target is a register Transfer to operating system at a vectored address Floating Point Instructions Floating point instructions manipulate the floating point registers and indicate whether the operation to be performed is single or double precision Single precision operations can be applied to any of the registers
14. nes add r3 r2 r1 r3 r2 r1 add r4 r3 r3 r4 r3 r3 el valor de r3 est disponible en la ALU a la salida de la etapa de ejecuci n EX con lo cual se puede pasar directamente a entrada de la etapa de ejecuci n EX de la siguiente instrucci n sin necesidad de esperar a que sea guardado en r3 etapa WB 1 4 Ejemplo En este apartado se presenta un peque o c digo ensamblador para DLX y se explica el proceso a seguir para su simulaci n con el simulador WINDLX El c digo ensamblador se carga desde la opci n FILE Primero se selecciona el nombre del archivo s SELECT y luego se carga LOAD Con ello cargamos en la memoria simulada el c digo Desde la opci n FILE podemos hacer un reset bien del procesador sin borrar la memoria o de todo el sistema incluyendo la memoria borr ndose por tanto el programa cargado Como ejemplo cargaremos el siguiente c digo ejemplo s data 0 comienzo de los datos global datol dato1 word 1 6 global dato2 dato2 float 17 0 26 0 text 0x100 comienzo del codigo global start start addi r8 r0 12 inicializa r8 a 12 addi r6 r0 8 inicializa r6 a 8 add ri0 r0 r0 inicializa r10 a 0 lw r1 0 r10 ri lt ri0 0 1 addi r3 r1 2 inicializa r3 a 3 lazol add r2 r3 r0 subi 13 r3 t1 bnez r3 lazol saltar si r3 no es cero add r3 r3 r0 addi rii r0 4 lw r3 0 r11 13 lt r11 4 6 addi ri r3 4 6 Pr ctica 1 Arquitectura de Computadores add r4 r0
15. s un registro que contiene una direcci n de memoria Ejemplo addi r1 r0 label ri label direcci n de memoria lb r2 8 r1 r2 label 8 Para mayor detalle acerca de las instrucciones es conveniente consultar el contenido de la ayuda del programa simulador 1 3 Riesgos en la segmentaci n Aunque hemos pensado en la segmentaci n como un m todo para mejorar la eficiencia del pro cesador la aparici n de dependencias entre las instrucciones limita dicha mejora La dependencia entre instrucciones provoca que la instrucci n que sucede a aquella con la cual posee dependencias no pueda ejecutarse en el ciclo de reloj que le corresponde ya que ha de esperar alg n resultado para poder efectuar su ejecuci n Denominamos riesgo hazard a esta situaci n que impide a una instrucci n la ejecuci n de sus etapas al depender de otra anterior Los riesgos se traducen en una parada stall en el flujo del pipeline La causa de los riesgos puede ser variada Los que podemos encontrar en el procesador DLX son los siguientes 1 Riesgos de datos son aquellos en los que una instrucci n necesita de un resultado obtenido en una instrucci n previa Podemos distinguir a Riesgo RAW read after write una instrucci intenta leer un valor calculado en una instrucci n previa Por ejemplo add r3 r2 r1 r3 r2 r1 add r4 r3 r3 r4 r3 r3 4 Pr ctica 1 Arquitectura de Computadores a Riesgo WAW write after write una instrucci n intenta escr
16. while double precision operations apply only to even odd pair e g F4 F5 which is designated by the even register number ADDD Dd Da Db ADDF Fd Fa Fb SUBD Dd Da Db SUBF Fd Fa Fb MULTD Dd Da Db MULTF Fd Fa Fb DIVD Dd Da Db DIVF Fd Fa Fb CVTF2D Dd Fs CVTD2F Fd Ds CVTF21 Fd Fs CVTI2F Fd Fs CVTD2I Fd Ds CVTI2D Dd Fs Add double precision numbers Add single precision numbers Subtract double precision numbers Subtract single precision numbers Multiply double precision Floating point numbers Multiply single precision Floating point numbers Divide double precision Floating point numbers Divide single precision Floating point numbers Converts from type single precision to type double precision Converts from type double precision to type single precision Converts from type single precision to type integer Converts from type integer to type single precision Converts from type double precision to type integer Converts from type integer to type double precision
Download Pdf Manuals
Related Search
Related Contents
notice d`utilisation Appel d`urgence pour Gaza - Centre de crise 11 1 プラス1セール プラス1セール プラス1セール プラス1セール sitrans lu10 - Lesman Instrument Company Titel Titel Titel Titel Titel 取扱説明書(PDF) Route d`Englisberg 11 · 1763 Granges-Paccot · P.O.Box 128 取扱説明書 Avision MiWand 2 Pro Copyright © All rights reserved.
Failed to retrieve file