2EMHWLYRV 5HIHUHQFLDV

Tamaño: px
Comenzar la demostración a partir de la página:

Download "2EMHWLYRV 5HIHUHQFLDV"

Transcripción

1 7HPD6HJPHQWDFLyQ,,,QWURGXFFLyQ DORV6XSHUHVFDODUHV 2EMHWLYRV 5HIHUHQFLDV $SURYHFKDPLHQWRGHXQDDUTXLWHFWXUDVHJPHQWDGD 3ODQLILFDFLyQGLQiPLFD 3UHGLFFLyQGLQiPLFDGHVDOWRV 5HQRPEUDGRGHUHJLVWURV 3UHGLFDFLyQ 3URFHVDGRUHV6XSHUHVFDODUHV (MHPSORHO3HQWLXP3UR 1 Objetivos 2EMHWLYRV &RQRFHUODVWpFQLFDVGHFRPSLODFLyQTXHSHUPLWHQVDFDUPiV UHQGLPLHQWRDXQDPiTXLQDVHJPHQWDGD &RQRFHUORVHOHPHQWRV\WpFQLFDVTXHVHSXHGHQDxDGLUDXQ SURFHVDGRUSDUDKDFHUPiVHIHFWLYDODVHJPHQWDFLyQ &RPSUHQGHUHOFRQFHSWRGHSURFHVDGRUVXSHUHVFDODUFRPR XQDH[WHQVLyQQDWXUDOGHOGHSURFHVDGRUVHJPHQWDGR 2 1

2 Segmentación de instrucciones Referencias 5HIHUHQFLDV Este tema está sacado de forma prácticamente íntegra (otra vez) del Hennessy-Patterson (la 2ª edición) Para algunas transparencias se han usado como modelo las de Al Davis Como complemento se puede mirar el Kai Hwang (todo como el tema anterior, porque es la continuación) Para ver más sobre predictores de saltos: &RPELQLQJ%UDQFK 3UHGLFWRUV 6FRWW0F)DUOLQJ:5/7HFKLFDO1RWH71MXQLR La descripción del Pentium Pro se puede mirar en los manuales de Intel (en cuanto a diseño, es prácticamente igual que el Pentium III) o en el libro: µ3hqwlxp3ur3urfhvvru6\vwhp $UFKLWHFWXUH 7RP6KDQOH\$GGLVRQ:HVOH\ Mirar también en la página de Intel. 3 Aprovechamiento de la segmentación 5HRUGHQDFLyQSODQLILFDFLyQGHOFyGLJR Consiste en reordenar las instrucciones para eliminar parones Hay que tener cuidado con las dependencias Ejemplo: a partir del bucle siguiente, que suma a un vector de 1000 componentes en coma flotante un valor escalar: for(i=1;i<1000;i=i+1) x[i] = x[i] + s; 4 2

3 Aprovechamiento de la segmentación (OFyGLJRHQHQVDPEODGRUFRUUHVSRQGLHQWHDOEXFOHHV Bucle:ld f0,0(r1) add f4,f0,f2 sd 0(r1),f4 subi r1,r1,8 bnez r1,bucle 6XSRQLHQGRODWHQFLDV 3URGXFWRU &RQVXPLGRU /DWHQFLD FP ALU FP ALU 3 ciclos FP ALU Store 2 ciclos Load FP ALU 1 ciclo Load Store 0 ciclos enteros: Load - ALU, 1 ciclo; resto 0 ciclos 5 Aprovechamiento de la segmentación &RQODVODWHQFLDVYLVWDVODHMHFXFLyQGHOEXFOHHV LQVWUXFFLyQ Bucle: ld f0,0(r1) 1 SDUyQ 2 addd f4,f0,f2 3 SDUyQ 4 SDUyQ 5 sd 0(r1),f4 6 subi r1,r1,8 7 bnez r1,bucle 8 SDUyQ 9 FLFOR 7LHPSRGHHMHFXFLyQFLFORVSRULWHUDFLyQSDURQHV 6 3

4 Aprovechamiento de la segmentación 6HSXHGHUHRUGHQDUHOFyGLJRSDUDHOLPLQDUSDURQHV Bucle: ld f0,0(r1) SDUyQ addd VXEL EQH] sd f4,f0,f2 UU U%XFOH (r1),f4 7LHPSRGHHMHFXFLyQFLFORVUHGXFFLyQGHOSDUyQ 7 Aprovechamiento de la segmentación $SHVDUGHODUHRUJDQL]DFLyQ el cuerpo de la iteración, lo que hace es: cargar una componente del vector sumarle el escalar almacenar el resultado el resto de ciclos (3, el 50%) es sólo recargo 3DUDUHGXFLUHOSRUFHQWDMHGHUHFDUJR ³GHVHQUROODPRV HOEXFOH se copia el cuerpo del bucle varias veces para trabajar sobre varias componentes del vector en cada iteración 8 4

5 Aprovechamiento de la segmentación 'HVHQUROODGRGHEXFOHV³ORRSXQUROOLQJ Consiste en solapar distintas iteraciones del mismo bucle Hay que tener cuidado con las dependencias Partimos del mismo bucle: Bucle:ld f0,0(r1) add f4,f0,f2 sd 0(r1),f4 subi r1,r1,8 bnez r1,bucle 9 Aprovechamiento de la segmentación 1XHYDYHUVLyQGHOEXFOH Bucle: ld f0,0(r1) ;componente 1 add f4,f0,f2 sd 0(r1),f4 ld f6,-8(r1) ;componente 2 add f8,f6,f2 sd -8(r1),f8 ld f10,-16(r1) ;componente 3 add f12,f10,f2 sd -16(r1),f12 ld f14,-24(r1) ;componente 4 add f16,f14,f2 sd -24(r1),f16 subi r1,r1,32 ;control del bucle bnez r1,bucle 10 5

6 Aprovechamiento de la segmentación 6LQGHVHQUROODUQLUHRUGHQDU 4 iteraciones supondrían 4 * 9 = 36 ciclos 'HVHQUROODQGR 1 iteración (lo equivalente) supone 27 ciclos (25% menos) /DJDQDQFLDSURFHGHGH eliminar las instrucciones de control del bucle en 3 de las 4 iteraciones desenrolladas eliminar el parón que hay después de la instrucción de salto en 3 de las 4 iteraciones En resumen: se elimina el recargo en 3 de las 4 iteraciones 11 Aprovechamiento de la segmentación $KRUDVHUHRUGHQDHOFyGLJRGHOEXFOHGHVHQUROODGR Bucle: ld f0,0(r1) ;componente 1 ld f6,-8(r1) ;componente 2 ld f10,-16(r1) ;componente 3 ld f14,-24(r1) ;componente 4 add f4,f0,f2 ;sumas add f8,f6,f2 add f12,f10,f2 add f16,f14,f2 sd 0(r1),f4 ;almacenamientos sd -8(r1),f8 sd -16(r1),f12 subi r1,r1,32 ;control del bucle bnez r1,bucle sd 8(r1),f16 ;8-32=

7 Aprovechamiento de la segmentación 5HRUGHQDQGRVHKDQUHOOHQDGRORVSDURQHVSRUGHSHQGHQFLDV FRQWUDEDMR~WLO&DGDLWHUDFLyQVHHMHFXWDDKRUDHQFLFORV PHQRVTXHHQODYHUVLyQUHRUGHQDGDSHURQRGHVHQUROODGD 'LILFXOWDG podemos desenrollar el bucle así, si se ejecuta un número de veces múltiplo de 4 (el número de iteraciones antiguas a las que equivale la nueva). 6ROXFLyQ si el número de iteraciones no es múltiplo de 4, sustituimos el bucle original por dos consecutivos: el primero, con FXHUSRLJXDO al original, se ejecuta QPRG veces el segundo, con FXHUSRGHVHQUROODGRYHFHV, se ejecuta Q veces 13 3ODQLILFDFLyQGLQiPLFD 2EMHWLYRHOLPLQDUSDURQHVLQQHFHVDULRV (como la estática, pero más flexible) Ej.: en el siguiente código: divd f0,f2,f4 addd f10,f0,f8 subd f8,f8,f14 La segunda instrucción no se puede ejecutar hasta que la primera genere f0 Esto impide que se ejecute la tercera, aunque tenga todos sus datos preparados => parón innecesario 'RVVROXFLRQHVPDUFDGRUHVµVFRUHERDUGLQJ \ HODOJRULWPRGH7RPDVXOR 14 7

8 7DQWRFRQPDUFDGRUHVFRPRFRQHODOJRULWPRGH7RPDVXOR se pretende que una instrucción con sus operandos disponibles no se quede paralizada si tiene posibilidad de ejecutarse (porque otra anterior esté bloqueada) para ello se divide la fase ID en dos: ODQ]DPLHQWR: decodificación y comprobación de dependencias estructurales OHFWXUDGHRSHUDQGRV: espera por operandos; cuando están listos, se leen y se pasa a ejecutar (no necesariamente respetando el orden del programa) de esta forma, una instrucción puede adelantar a otra que esté bloqueada por dependencias /DLGHDHVTXHHOFyGLJRVH³UHRUGHQD VRORGHIRUPDGLQiPLFD \VHJ~QODVLWXDFLyQGHOFDXFH 15 9HQWDMDV no sólo trabaja sobre dependencias estáticas, sino también sobre dinámicas el compilador es más sencillo además, la reordenación en tiempo de compilación sólo valía para el cauce concreto con el que se trabaja: ahora es más general,qfrqyhqlhqwhv el hardware es bastante más complejo (lo de siempre) ahora ya sí se pueden dar las dependencias EDL hay que tener cuidado con las excepciones (interrupciones) 16 8

9 0DUFDGRUHVµ6FRUHERDUGLQJ (CDC 6600, 1964) 17 (VQHFHVDULRPRGLILFDUODVHWDSDVGHOFDXFH(OIOXMRDKRUDHV %~VTXHGD: como antes /DQ]DPLHQWR: si su UF está libre, y no hay dependencias EDE con otra instrucción, la instrucción se envía a la UF; en caso contrario, el lanzamiento se bloquea /HFWXUDGHRSHUDQGRV: si los datos están listos, el marcador indica a la UF correspondiente que los lea. Esto permite la ejecución fuera de orden, garantizando que se respetan las dependencias LDE (MHFXFLyQ: puede durar varios ciclos. Cuando termina, la UF avisa al marcador. $OPDFHQDPLHQWR: el marcador comprueba que no hay dependencias EDL, y si no los hay, indica a la UF que actualice el banco de registros 18 9

10 &RPSRQHQWHVGHOPDUFDGRU (VWDGRGHODVLQVWUXFFLRQHV indica en qué fase se encuentran las instrucciones (VWDGRGHODV8)V ocupada/no ocupada operación que tiene que realizar operandos fuente para la operación (qué registros)(fj,fk) operando destino (qué registro) (fi) UF que genera cada operando fuente (qj,qk) Estado de los operandos fuente (listo/no listo) (rj,rk) (VWDGRGHORVUHJLVWURV UF que va a generar el siguiente valor del reg (en blanco si no usado) 19 (MHPSORGHHMHFXFLyQ Vamos a ejecutar el código: ld f6,34(r2) ld f2,45(r3) multdf0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2 El cauce tiene una unidad de enteros y operaciones comunes, dos multiplicadores, un sumador y un divisor 20 10

11 6XSRQHPRVTXHODHMHFXFLyQVHHQFXHQWUDHQHOVLJXLHQWHHVWDGR,QVW ODQ] OHFW HMHF DOPDF ld f6,34(r2) sí sí sí sí ld f2,45(r3) sí sí sí multdf0,f2,f4 sí subd f8,f6,f2 sí divd f10,f0,f6 sí addd f6,f8,f2 21 (VWDGRGHODVXQLGDGHVIXQFLRQDOHV 8) RFXS RS IL IM IN TM TN UM UN int sí load f2 r3 no(*) mult1 sí mult f0 f2 f4 int no sí mult2 no add sí sub f8 f6 f2 int sí no div sí div f10 f0 f6 mult1 no sí (VWDGRGHORVUHJLVWURV I I I I I I I «I mult1 int add div (*) cuando una instrucción se ejecuta, sus operandos se ponen a no 22 11

12 (VWDGRFXDQGRPXOWG HVWiOLVWDSDUDHVFULELU,QVW ODQ] OHFW HMHF DOPDF ld f6,34(r2) sí sí sí sí ld f2,45(r3) sí sí sí sí multdf0,f2,f4 sí sí sí subd f8,f6,f2 sí sí sí sí divd f10,f0,f6 sí addd f6,f8,f2 sí sí sí (Hemos supuesto add: 2ciclos, mult: 10 ciclos y div: 40 ciclos) 23 (VWDGRGHODVXQLGDGHVIXQFLRQDOHV 8) RFXS RS IL IM IN TM TN UM UN int no mult1 sí mult f0 f2 f4 no no mult2 no add sí add f6 f8 f2 no no div sí div f10 f0 f6 mult1 no sí (VWDGRGHORVUHJLVWURV I I I I I I I «I mult1 add div 24 12

13 (VWDGRFXDQGRGLYG HVWiOLVWDSDUDHVFULELU,QVW ODQ] OHFW HMHF DOPDF ld f6,34(r2) sí sí sí sí ld f2,45(r3) sí sí sí sí multdf0,f2,f4 sí sí sí sí subd f8,f6,f2 sí sí sí sí divd f10,f0,f6 sí sí sí addd f6,f8,f2 sí sí sí sí 25 (VWDGRGHODVXQLGDGHVIXQFLRQDOHV 8) RFXS RS IL IM IN TM TN UM UN int no mult1 no mult2 no add no div sí div f10 f0 f6 no no (VWDGRGHORVUHJLVWURV I I I I I I I «I div 26 13

14 9HQWDMDVGHOHVTXHPDGHPDUFDGRUHVHQHO&'& 70% de mejora en programas en FORTRAN 150% de mejora en programas codificados a mano el coste total del marcador era aprox. el de una UF (es decir, muy bajo; el grueso del coste estaba en los buses) 7RGRHVWRDSHVDUGHTXH no había cachés no había memorias de semiconductores los compiladores eran muy tontos (comparados con los de hoy) 27 )DFWRUHVTXHOLPLWDQODFDSDFLGDGGHOPDUFDGRU SDUDHOLPLQDUSDURQHV (OSDUDOHOLVPRH[LVWHQWHHQODDSOLFDFLyQ si no hay instrucciones independientes, no se pueden eliminar los parones (OQ~PHURGHHQWUDGDVHQHOPDUFDGRU es decir, con cuántas instrucciones se puede trabajar a la vez (en el ejemplo, hasta el siguiente salto) (OQ~PHUR\WLSRGH8)V influye sobre la cantidad de parones estructurales /DH[LVWHQFLDGHDQWLGHSHQGHQFLDVHGO\GHSHQGHQFLDV GHVDOLGDHGH 28 14

15 $OJRULWPRGH7RPDVXOR IBM 360/91 (1967) Basado en el esquema de marcadores Incorpora el concepto de renombrado de registros (que elimina las dependencias EDL y EDE) Características malas del IBM 360: pocos registros de coma flotante en d.p. (4) accesos a memoria lentos grandes retardos en coma flotante El algoritmo de Tomasulo se diseño para contrarrestar estas características malas 29 /DXQLGDGGHFRPDIORWDQWHGHO,%0SRGtDWUDEDMDU GHIRUPDVLPXOWiQHDFRQ tres operaciones para el sumador dos operaciones para el multiplicador 6 loads 3 stores 8VDHVWDFLRQHVGHUHVHUYDTXHDOPDFHQDQODVLQVWUXFFLRQHVTXH HVWiQSHQGLHQWHVGHHQWUDUDXQD8)FDGD8)WLHQHODVX\D 'LIHUHQFLDVFRQHOPDUFDGRU cada ER controla cuándo pueden ejecutarse sus instrucciones los resultados van directamente de las ER a las UF, sin pasar por los registros 30 15

16 (VWUXFWXUDGHODXQLGDGGHFRPDIORWDQWHGHO,%0 31 &RQODHVWUXFWXUDGHODPiTXLQDODVIDVHVGHOFDXFHVRQ /DQ]DPLHQWR se toma una instrucción de la cola si hay espacio en su ER, se coloca ahí si los operandos están en el banco de registros, se envían a la ER si no hay espacio en la ER, hay un parón estructural (MHFXFLyQ si falta algún operando, se vigila el CDB cuando están listos los dos, se ejecuta la operación $OPDFHQDPLHQWR cuando termina la ejecución, los resultados se ponen en el CDB. De ahí van a los registros y a las UF que los esperen

17 'LIHUHQFLDVFRQHOPDUFDGRU no se comprueban las dependencias EDE y EDL: se eliminan al renombrar en la fase de lanzamiento no se espera a que los datos lleguen a los registros: el CDB los lleva a las UF que los necesitan los ORDGV y VWRUHV se tratan como unidades funcionales básicas,psohphqwdflyqghouhqrpeudgrghouhjlvwurv hay 11 fuentes de datos: 6 entradas del buffer de loads, 3 entradas en la ER de suma y 2 en la de multiplicación a cada operando en la fase de lanzamiento se le da un identificador de 4 bits, que indica qué fuente proporciona el dato (0 si listo) de esta manera, se extiende el nº de registros de 4 a 11 33,QIRUPDFLyQTXHVHDOPDFHQDHQODHVWDFLyQGHUHVHUYD Op: operación que se tiene que ejecutar Qj,Qk: ER que producen los operandos (0 si listo o no necesario) Vj,Vk: valor de los operandos Ocupado: si la entrada está ocupada 6yORHVYiOLGDODLQIRUPDFLyQGH4R9QRDPEDVDODYH],QIRUPDFLyQTXHVHDOPDFHQDHQFDGDUHJLVWUR\HQORVEXIIHUV GHVWRUHV Qi: ER que genera el valor que hay que enviar a memoria V: valor que hay que enviar a memoria 34 17

18 (MHPSORGHHMHFXFLyQ De nuevo vamos a ejecutar el código: ld f6,34(r2) ld f2,45(r3) multdf0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2 35 3XQWRGHSDUWLGDHOFyGLJRVHHQFXHQWUDHQHVWDVLWXDFLyQ,QVW ODQ] HMHF DOPDF ld f6,34(r2) sí sí sí ld f2,45(r3) sí sí multdf0,f2,f4 sí subd f8,f6,f2 sí divd f10,f0,f6 sí addd f6,f8,f2 Vt 2-2HQHVWHFDVRHVWDLQIRUPDFLyQQRVHHQFXHQWUDItVLFDPHQWH HQQLQJXQDWDEOD6HPXHVWUDSDUDIDFLOLWDUODFRPSUHQVLyQ (En negrita las variaciones frente al modelo de marcador) 36 18

19 (VWDFLRQHVGHUHVHUYD 8) RFXS RS 9M 9N 4M 4N add1 sí sub M(34+R(r2)) load2 add2 sí add add1 load2 add3 no mult1 sí mult R(f4) load2 mult2 sí div m(34+r(r2)) mult1 (VWDGRGHORVUHJLVWURV I I I I I I I «I mult1 load2 add2 add1 mult2 37 (VWDGRFXDQGRPXOWG HVWiOLVWDSDUDHVFULELU,QVW ODQ] HMHF DOPDF ld f6,34(r2) sí sí sí ld f2,45(r3) sí sí sí multdf0,f2,f4 sí sí subd f8,f6,f2 sí sí sí divd f10,f0,f6 sí addd f6,f8,f2 sí sí Vt /DLQVWUXFFLyQGHVXPDKDSRGLGRWHUPLQDUSRUTXHHO UHQRPEUDGRHOLPLQDODGHSHQGHQFLD('/FRQODGLYLVLyQ \ODUHVWD 38 19

20 (VWDFLRQHVGHUHVHUYD 8) RFXS RS 9M 9N 4M 4N add1 no add2 no add3 no mult1 sí mult m(45+r(r3)) R(f4) mult2 sí div m(34+r(r2)) mult1 (VWDGRGHORVUHJLVWURV I I I I I I I «I mult1 mult2 39 3UHGLFFLyQGLQiPLFDGHVDOWRV (QHOWHPDDQWHULRUYLPRVSRVLELOLGDGHVDOHQFRQWUDUXQVDOWR parar el cauce suponer que se toma suponer que no se toma ejecución retardada 9LPRVTXH parar significa perder rendimiento suponer que se toma o no significa una gran penalización en caso de equivocarnos (una fracción considerable de las veces) la ejecución retardada tiene una efectividad limitada 40 20

21 6XSRQHUTXHHOVDOWRYDDLUHQXQGHWHUPLQDGRVHQWLGR tiene una fracción de fallo importante si se supone tomado, se tarda en calcular el destino 3(52 es transparente al programador si se acierta en el sentido, la penalización es la menor SRUORWDQWR hay que estudiar mejor esta solución 41 2EMHWLYR adivinar en qué sentido va a ir cada salto (OSUREOHPDGHORVHVTXHPDVXWLOL]DGRVHVTXHHUDQHVWiWLFRV siempre hacen la misma predicción (porque es estática, se hace a priori y no hay otra posibilidad) 3HURORVVDOWRVQRVHFRPSRUWDQDVt no todos saltan en el mismo sentido bastantes saltos (analizados de forma individual) no saltan siempre en el mismo sentido,qirupdflyqvreuhodtxhvhwudedmd el comportamiento anterior del salto (del salto concreto, o de todos los saltos, según el esquema) 42 21

22 (VTXHPDLQLFLDOOD7DEODGH%LWV &RQVLVWHHQXQDWDEODGHELWVDODTXHVHDFFHGHFRQOD GLUHFFLyQGHOVDOWR Ejemplo: si hay 1024 bits, se accede con los 10 bits inferiores de la dirección del salto (OELWHVWiDVLOD~OWLPDYH]HOVDOWRVHWRPyDVLQR /DSUHGLFFLyQHVTXHHOVDOWRVHFRPSRUWDFRPROD~OWLPDYH] 6LVHSUHGLFHPDOVHFRUULJHODSUHGLFFLyQ 3UHVHQWDHOSUREOHPDGHTXHDYDULRVVDOWRVOHVFRUUHVSRQGH ODPLVPDHQWUDGDHQODWDEODDOLDVLQJ 43 5HYLVLyQOD7DEODGH&RQWDGRUHV7& (QOXJDUGHXQELWODVHQWUDGDVGHODWDEODVRQFRQWDGRUHVGH ELWVFRQVDWXUDFLyQ cuando un salto se toma, se incrementa (sin pasar de 3) cuando no se toma, se decrementa (sin pasar de 0) (ODFFHVRDODWDEODVHKDFHLJXDOFRQORVELWVLQIHULRUHVGHOD GLUHFFLyQGHOVDOWR /DSUHGLFFLyQVHKDFHGHODVLJXLHQWHPDQHUD si el contador vale 2 ó 3, el salto se predice tomado si vale 0 ó 1, se predice no tomado &XDQGRHOVDOWRVHHMHFXWDHOYDORUGHOFRQWDGRUVHDFWXDOL]D VHJ~QHODOJRULWPRYLVWR 44 22

23 6HSODQWHDXQSUREOHPD hasta el fin de la fase de decodificación no se sabe si es un salto para entonces, ya podemos saber si se toma en muchos casos 3RUORWDQWRQHFHVLWDPRVLGHQWLILFDUORVVDOWRVDQWHV 3DUDHOORXWLOL]DPRVRWUDWDEODHOEXIIHUGHGHVWLQRVGHVDOWRV ( branch-target buffer ) (VWDWDEODVHYDDDFFHGHUHQODIDVHGHE~VTXHGDFRQHO&3 GHIRUPDVLPXOWiQHDDODE~VTXHGDGHODLQVWUXFFLyQ (ODFFHVRQRVGLUiVLODLQVWUXFFLyQTXHEXVFDPRVHVXQVDOWR \VLORHVODGLUHFFLyQDODTXHVDOWDVLVHWRPD 45 (O%UDQFK7DUJHW%XIIHU7'6%7% 6HWUDWDGHXQDWDEODGHGRVFROXPQDV en la primera (de memoria asociativa) se almacenan direcciones de saltos en la segunda, los sitios a los que se salta en esos saltos si se toman 6LHQFXHQWUDHOYDORUTXHVHOHSLGH la instrucción que estamos buscando (recordad: estamos en la fase de fetch) es un salto la entrada correspondiente de la segunda columna es el destino del salto 6LQRORHQFXHQWUDQRHVXQVDOWRRORHVSHURQRVHKD HMHFXWDGRD~QQLQJXQDYH] &XDQGRVHVDEHTXHXQDLQVWUXFFLyQHVXQVDOWRVHDOPDFHQDQ VXGLUHFFLyQ\ODGHVXGHVWLQRHQODWDEOD 46 23

24 (O%'6%7% 47 5HVXPLHQGRHOPHFDQLVPRGHSUHGLFFLyQ 7HQHPRVHOE~IIHU GHGHVWLQRVGHVDOWRV%'6TXHQRVGLFH VLXQDLQVWUXFFLyQLGHQWLILFDGDSRUVXGLUHFFLyQHVXQVDOWR \DGyQGHVDOWD 7HQHPRVODWDEODGHFRQWDGRUHV7&TXHQRVGLFHVLHOVDOWR VHYDDWRPDURQR (QODIDVHGHE~VTXHGDKDFHPRVWUHVDFFHVRVVLPXOWiQHRV a la memoria, por la instrucción al BDS (BTB), para ver si es un salto, y cuál es el destino a la TC, para ver si se toma el salto o no

25 0HFDQLVPRGHSUHGLFFLyQFRQW 6LHO%'6GLFHTXHQRHVXQVDOWRVHVLJXHODE~VTXHGDVHFXHQFLDO 6LHO%'6GLFHTXHHVXQVDOWR\OD7&TXHQRVHWRPDORPLVPR 6LHO%'6GLFHTXHHVXQVDOWR\OD7&TXHVHWRPDVHVLJXHOD E~VTXHGDSRUHOGHVWLQRGHOVDOWR &XDQGRVHKDHMHFXWDGRHOVDOWRKD\TXHDFWXDOL]DUOD LQIRUPDFLyQGHODVWDEODV si era un salto y el BDS no nos avisó, se habilita una entrada para este nuevo salto si el salto se toma, se incrementa la entrada correspondiente de la TC si no, se decrementa OJO: incrementos y decrementos con saturación 49 5HQGLPLHQWRV7&FRQHQWUDGDV 50 25

26 5HQGLPLHQWRVFRPSDUDFLyQHQWUH7&FRQ HQWUDGDV7&FRQHQWUDGDVLOLPLWDGDV 51 0HMRUDHQODSUHGLFFLyQODKLVWRULDJOREDO $FFHGHUDOD7&FRQODGLUHFFLyQGHOVDOWR!SDUDUHDOL]DUOD SUHGLFFLyQVyORVHXWLOL]DHOFRPSRUWDPLHQWRGHOVDOWRFRQFUHWR 3(52DYHFHVHOFRPSRUWDPLHQWRGHVDOWRVSUy[LPRVDOTXH HVWXGLDPRVQRVGDLQIRUPDFLyQ~WLO if(aa==2) aa=0; if(bb==2) bb=0; if(aa!=bb) {

27 En DLX: subi r3,r1,#2 bnez r3,l1 add r1,r0,r0 l1: subi r3,r2,#2 bnez r3,l2 add r2,r0,r0 l2: sub r3,r1,r2 beqz r3,l3 6LORVVDOWRV\QRVHWRPDQHOVDOWRVHWRPDUi U\UVRQLJXDOHV 53 8WLOL]DFLyQGHODKLVWRULDJOREDO 54 27

28 &RPSDUDFLyQGHUHQGLPLHQWRV 55 9DULDQWHVGHOSUHGLFWRUEDVDGRHQKLVWRULD (OHVTXHPDYLVWRHTXLYDOHDFRQFDWHQDUODKLVWRULDFRQOD GLUHFFLyQGHOVDOWR PROBLEMA: las tablas se hacen grandes enseguida: 10 bits de dirección + 6 de historia =>64K entradas (QOXJDUGHFRQFDWHQDUKDFHUOD;25 dirección historia = índice de esta forma, el tamaño de las tablas no se dispara 7DPELpQVHSXHGHXWLOL]DUXQDKLVWRULDSDUWLFXODUSDUDHOVDOWR 3DUDHOPLVPRFRVWHHOTXHPHMRUUHQGLPLHQWRGDHVHOVHJXQGR 56 28

29 &RPSDUDFLyQGHSUHGLFWRUHV, Gráfica tomada de: Combining Branch Predictors. Scott McFarling. Compaq WRL. 57 &RPSDUDFLyQGHSUHGLFWRUHV,, Gráfica tomada de: Combining Branch Predictors. Scott McFarling. Compaq WRL

30 4XpKDFHPRVFRQORVVDOWRVLQGLUHFWRV" /DGLUHFFLyQGHGHVWLQRQRHVWiHQHOFyGLJRGHODLQVWUXFFLyQ 3RUORWDQWRKD\TXHKDFHUXQDFFHVRDPHPRULDRDXQUHJLVWUR 3(25$Ò1HOGHVWLQRQRHVVLHPSUHHOPLVPR Ejemplos: retorno de subrutina, sentencias switch (OGHORVVDOWRVLQGLUHFWRVHQORV63(&VRQUHWRUQRV UHVXOWDDSURSLDGRFHQWUDUVHHQHOORV 59 3LODGHGLUHFFLRQHVGHUHWRUQR (VXQDHVWUXFWXUD/,)2HQOD&38 $OPDFHQDODVGLUHFFLRQHVGHUHWRUQR se introduce una nueva cuando se ejecuta una instrucción CALL se retira con el retorno 60 30

31 3RUFHQWDMHVGHDFLHUWRGHODSLODGHUHWRUQRV 61 Renombrado de registros 5HQRPEUDGRGHUHJLVWURV 6HWUDWDGHXQDWpFQLFDSDUDHOLPLQDUGHSHQGHQFLDV³IDOVDV (VDOJRSDUHFLGRDORTXHVHKDFtDFRQHODOJRULWPRGH 7RPDVXORDOOtVHKDFtDGHIRUPDLPSOtFLWDDKRUDHVH[SOtFLWR %ivlfdphqwhfrqvlvwhhqlpsohphqwdupivuhjlvwurvghorvtxh YHHOSURJUDPDGRU/RVQRPEUHVTXHXVDHOHOSURJUDPDGRU VRQOyJLFRVORVTXHXVDODPiTXLQDItVLFRV(O+ZHVWDEOHFH XQDFRUUHVSRQGHQFLDHQWUHHOORV 62 31

32 Renombrado de registros (MHPSORGHIXQFLRQDPLHQWRGHOUHQRPEUDGR or ld ld ld ld add add st ld r5,r0,dir r6,0(r5) r8,8(r5) r9,16(r5) r7,24(r5) r1,r8,r9 r8,r9,r7 r1,0(r8) r8,0(r6) or ld ld ld ld add add st ld f1,r0,dir f2,0(f1) f3,8(f1) f4,16(f1) f5,24(f1) f6,f3,f4 f7,f4,f5 f6,0(f7) f8,0(f2) 63 Renombrado de registros /DWDEODGHHTXLYDOHQFLDVDOILQDOGHOFyGLJRHV r5 f1 r6 f2 -- f3 r9 f4 r7 f5 r1 f6 -- f7 r8 f8 -- f

33 Predicación 3UHGLFDFLyQ 2EMHWLYRHOLPLQDUODSUHVHQFLDGHDOJXQRVVDOWRV Ejemplo: la función valor absoluto: a=abs(b); si b es positivo, a=b; si es negativo, a=-b; if(b<0) a=-b; else a=b; 65 Predicación (OFyGLJRHQHQVDPEODGRU cmpl r1,r3,r0 beqz r1,l1 ;saltar si r3 (b) es positivo sub r2,r0,r3 ;r2 (a) -r3 br L2 L1: sub r2,r3,r0 ;r2 r3 L2:

34 Predicación Introducimos en el repertorio una instrucción de transferencia condicional: cmovz transfiere el contenido de un operando al destino, si el segundo operando es cero. Su uso para este ejemplo: cmpl r1,r3,r0; r2:a; r3:b; sub r2,r0,r3; a -b cmovzr2,r3,r1; si r1==0 (b>0), a b (QHOFDVRSHRUVHHOLPLQDQVDOWRVHQHOPHMRU 67 Predicación (QJHQHUDOODSUHGLFDFLyQFRQVLVWHHQLQVWUXFFLRQHVTXHVH HMHFXWDQRQRGHSHQGLHQGRGHOYDORUGHXQRGHVXVRSHUDQGRV 6HSXHGHQLQFOXLUXQDVFXDQWDVGHORVWLSRVPiVXVDGRV WUDQVIHUHQFLDVXPD 2VHSXHGHDPSOLDUDWRGRHOUHSHUWRULRKDFLHQGRTXHVHDQ FRQGLFLRQDOHVLPSOtFLWDPHQWHVHJ~QXQYDORUSUHHVWDEOHFLGR XQUHJLVWURYDULRVXQFRQMXQWRGHUHJLVWURVRXQDHWLTXHWD GHOGDWR,PSRUWDQWHODLQVWUXFFLyQQRGHEHFDXVDUH[FHSFLRQHV HQJHQHUDOGHMDUUDVWURVGHVXH[LVWHQFLDVLODFRQGLFLyQ QRVHFXPSOH 68 34

35 Predicación 9HQWDMDV: elimina saltos, que implican parones no tiene prácticamente coste Hw.,QFRQYHQLHQWHV: no es transparente al compilador / programador sólo es útil para saltos cortos, del tipo if (else), con cuerpos pequeños si la condición no se cumple, se ha desaprovechado un ciclo 69 Procesadores Superescalares 3URFHVDGRUHVVXSHUHVFDODUHV $XPHQWDQODVSUHVWDFLRQHVODQ]DQGRYDULDVLQVWUXFFLRQHVHQ FDGDFLFOR /DOyJLFDGHFRQWUROVHYXHOYHPX\FRPSOHMD /DVLQVWUXFFLRQHVGHEHQFXPSOLUXQDVHULHGHUHVWULFFLRQHV SDUDSRGHUVHODQ]DUDODYH] no deben existir dependencias entre ellas (de datos, de control, estructurales) algunas máquinas no permiten lanzar un load hasta que se comprueba que no hay ningún store previo a la misma dirección 70 35

36 Procesadores Superescalares (O3HQWLXP lanza hasta 2 instrucciones por ciclo, pero: el segundo cauce es más simple =>dependencias estructurales no permite lanzar instrucciones con dependencias de datos realiza especulación en el primer salto que se encuentra (con una tabla de contadores sencilla) (O$OSKD lanza hasta 4 instrucciones por ciclo, pero: máx. 2 de enteros máx. 2 de coma flotante no permite el paso a loads hasta comprobar los stores especula el primer salto 71 Procesadores Superescalares 3URFHVDGRUHV9/,:9HU\/RQJ,QVWUXFWLRQ:RUG $JUXSDQYDULDVLQVWUXFFLRQHVHQXQDSDODEUDPX\ODUJD 7UDVODGDQODSODQLILFDFLyQDOFRPSLODGRUHVHOTXHDJUXSD ODVLQVWUXFFLRQHV 9HQWDMDV la lógica es más simple que para un superescalar,qfrqyhqlhqwhv la rigidez de la planificación (es estática) impide aprovechar todo el paralelismo de la aplicación en muchos casos 72 36

37 Procesadores Superescalares 3URFHVDGRUHV6XSHUHVFDODUHV$YDQ]DGRV 8WLOL]DQSODQLILFDFLyQGLQiPLFD\HMHFXFLyQIXHUDGHRUGHQ )DVHVYLVLyQJHQHUDO E~VTXHGD: acceden a caché, y obtienen varias instrucciones de una vez; las depositan en la cola de prebúsqueda GHFRGLILFDFLyQ: se toman instrucciones de la cola de prebúsqueda, se decodifican, y se identifican sus operandos UHQRPEUDPLHQWR: real (no como el alg. de Tomasulo). Las instrucciones se almacenan en el búffer de reordenamiento (Reorder Buffer) 73 Procesadores Superescalares )DVHVFRQW ODQ]DPLHQWRcuando sus operandos estén listos, y haya hueco en la UF que les corresponde, se ejecutan UHWLUDGDFRPPLW: las instrucciones se ejecutan fuera de orden, en cuanto están listos los operandos, pero no se eliminan del búffer de reordenamiento. Se retiran de él en el orden del programa. Con esto se consigue: acortar las cadenas de dependencias mantener la ilusión de ejecución secuencial (MHPSORVHO3HQWLXP3UR3,,3,,,HO$OSKD HO0,

38 Ejemplo: el Pentium Pro (MHPSORGHVXSHUHVFDODUHO3HQWLXP3UR &DUDFWHUtVWLFDV lanzado en 1995 frecuencia de 150 MHz arquitectura de 32 bits repertorio de instrucciones CISC juego de 40 registros (la arquitectura tiene 8) planificación dinámica, ejecución fuera de orden decodifica hasta 3 instrucciones por ciclo retira hasta 3 instrucciones ejecutadas por ciclo cauce de 11 etapas 75 Ejemplo: el Pentium Pro 'LDJUDPDGH EORTXHVGHO 3HQWLXP3UR 76 38

39 Ejemplo: el Pentium Pro 'HVFULSFLyQGHOFDXFH %~VTXHGD descompuesta en 3 sub-etapas: 1. cargar una línea de caché (32B) 2. identificar instrucciones, comprobar saltos, realizar predicción (si hay) 3. alinear instrucciones 'HFRGLILFDFLyQ descompuesta en 2 sub-etapas: 1. traducir a micro-operaciones (RISCificar) 2. copiar a la cola de instrucciones decodificadas (hasta 6 micro-operaciones) 7UDGXFFLyQGHRSHUDQGRV se determina la situación de los operandos fuente (en registros físicos o lógicos) 77 Ejemplo: el Pentium Pro 'HVFULSFLyQGHOFDXFHFRQW 52%: se busca una entrada en el ROB (búffer de reordenamiento) a la instrucción (máx. 3 por ciclo). Si los datos están listos, se copia la instrucción a la estación de reserva /DQ]DPLHQWR: cuando una instrucción de la ER tiene sus datos listos, y hay sitio en su UF, se envía (no necesariamente en orden) (MHFXFLyQ: el número de ciclos depende de la operación 5HWLUDGD: descompuesta en 3 sub-etapas: 1. si una instrucción se ha ejecutado, y todos los saltos anteriores han sido bien predichos, y se comprueba que la instrucción debía ser ejecutada, se marca para retirar 2. la instrucción se elimina del ROB, se actualizan los registros físicos implicados (máx. 3 por ciclo). Esto se hace en orden 78 39

Departamento de Automática

Departamento de Automática Departamento de Automática Tema 3 Paralelismo a nivel de instrucción (I) Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Tema 3. Paralelismo a Nivel de Instrucción I Planificación

Más detalles

Paralelismo al nivel de instrucciones

Paralelismo al nivel de instrucciones Paralelismo al nivel de instrucciones Arquitectura de Computadoras M. C. Felipe Santiago Espinosa Mayo de 2017 Qué es la segmentación o pipelining? O Técnica para la generación de paralelismo en microprocesadores.

Más detalles

Arquitectura de Computadores Problemas (hoja 4). Curso

Arquitectura de Computadores Problemas (hoja 4). Curso Arquitectura de Computadores Problemas (hoja 4). Curso 2006-07 1. Sea un computador superescalar similar a la versión Tomasulo del DLX capaz de lanzar a ejecución dos instrucciones independientes por ciclo

Más detalles

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Apellidos Nombre Grupo: Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Instrucciones.- Cada pregunta consta de cinco afirmaciones, y cada una de las afirmaciones puede ser cierta

Más detalles

6. PROCESADORES SUPERESCALARES Y VLIW

6. PROCESADORES SUPERESCALARES Y VLIW 6. PROCESADORES SUPERESCALARES Y VLIW 1 PROCESADORES SUPERESCALARES Y VLIW 1. Introducción 2. El modelo VLIW 3. El cauce superescalar 4. Superescalar con algoritmo de Tomasulo 2 PROCESADORES SUPERESCALARES

Más detalles

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2.1. Completa tus conocimientos del MIPS64 (una versión de MIPS). Debes aprender qué registros tiene, tipos de

Más detalles

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2.1. Completa tus conocimientos del MIPS64 (una versión de MIPS). Debes aprender qué registros tiene, tipos de

Más detalles

Tema 7: Procesadores superescalares

Tema 7: Procesadores superescalares Tema 7: Procesadores superescalares Arquitectura de Computadores y Sistemas Operativos I 4º Curso Plan 96 Escuela Técnica Superior Ingenieros Telecomunicaciones DISCA Tema 7: Procesadores superescalares

Más detalles

Arquitectura de Computadores Problemas (hoja 2). Curso

Arquitectura de Computadores Problemas (hoja 2). Curso Arquitectura de Computadores Problemas (hoja 2). Curso 2006-07 1. El siguiente fragmento de código se ejecuta en un DLX con segmentación: SUB R1,R2,R3 ADD R4,R5,R6 SUB R5,R4,R8 ADD R7,R2,R3 ADD R9,R7,R3

Más detalles

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0 P2. (3 puntos) El siguiente código en ensamblador recorre un vector v, que comienza en la posición 0, calculando para cada v[i] el número de combinaciones que pueden darse con v[i] elementos tomados de

Más detalles

Ejercicios de Paralelismo a Nivel de Instrucción

Ejercicios de Paralelismo a Nivel de Instrucción Ejercicios de Paralelismo a Nivel de Instrucción J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo

Más detalles

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; }

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; } PROBLEMA 1 Memoria Cache (10 puntos) Supongamos un sistema con un procesador que lanza direcciones de 32 bits. Dispone de dos caches, una para instrucciones y otra para datos, de 8 KBytes cada una. La

Más detalles

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX Arquitectura de Sistemas Paralelos 3 er curso de Ingeniería Técnica en Informática de Sistemas Práctica: Procesador segmentado DLX. Técnicas de optimización Curso 2005/2006 OBJETIVOS En esta práctica se

Más detalles

Estrategias de predicción dinámicas.

Estrategias de predicción dinámicas. Estrategias de predicción dinámicas. Las técnicas que vamos a ver ahora para predicción de saltos se basan en información conocida sólo en tiempo de ejecución. Dos estructuras son necesarias para realizar

Más detalles

Definición de prestaciones

Definición de prestaciones Definición de prestaciones En términos de velocidad. Diferentes puntos de vista: Tiempo de ejecución. Productividad (throughput) Medidas utilizadas En función de la duración del ciclo de reloj y del número

Más detalles

Explotación del paralelismo a nivel de instrucción

Explotación del paralelismo a nivel de instrucción Explotación del paralelismo a nivel de instrucción Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato

Más detalles

Tema 10. Introducción a la op5mización de código

Tema 10. Introducción a la op5mización de código Tema 10. Introducción a la op5mización de código Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO

Más detalles

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.. CONCEPTOS FUNDAMENTALES 3., 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

Más detalles

COMPUTADORES SEGMENTADOS (DLX)

COMPUTADORES SEGMENTADOS (DLX) DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica

Más detalles

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o Unidad 4 - Procesamiento paralelo. D o c e n t e : E r n e s t o L e a l E q u i p o : J e s s i c a F i e r r o L u i s N a v e j a s Arquitectura de computadoras Introducción Cuestionario Conclusiones

Más detalles

CAPÍTULO 2 PROCESADORES SUPERESCALARES

CAPÍTULO 2 PROCESADORES SUPERESCALARES CAPÍTULO 2 PROCESADORES SUPERESCALARES LECTURA DE INSTRUCCIONES (etapa if) Falta de alineamiento Rotura de secuencialidad Tratamiento de los saltos Estrategias de predicción dinámica Pila de dirección

Más detalles

Tema 5. Segmentación: conceptos básicos

Tema 5. Segmentación: conceptos básicos Tema 5. Segmentación: conceptos básicos Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI

Más detalles

1.2. Implementación de Procesadores Superescalares

1.2. Implementación de Procesadores Superescalares 1.2. Implementación de Procesadores Superescalares Técnicas dinámicas: Complejidad alta desde el p. de v. de estructura o arquitectura Aquí las instrucciones son las normales o clásicas : compatibilidad

Más detalles

Paralelismo en monoprocesadores. Procesadores VLIW

Paralelismo en monoprocesadores. Procesadores VLIW Paralelismo en morocesadores Procesadores VLIW Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura de Computadoras y técnicas Digitales Carrera: Ingeniería de Sistemas Ciclo: 4º año Arquitectura VLIW básica

Más detalles

Procesadores segmentados. El DLX.

Procesadores segmentados. El DLX. Procesadores segmentados. El DLX. Curso 2011-2012 Características de las Arquitecturas Tipos de Arquitectura Organización de la Memoria Direccionamiento de Memoria Operaciones en el Repertorio de Instrucciones

Más detalles

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1 SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 5. PROCESADORES SUPERESCALARES: PLANIFICACIÓN DINÁMICA. OBJETIVOS. En esta práctica se trata de estudiar, por un lado, el aumento de prestaciones que

Más detalles

int vector[100]; // en principio vector tiene al menos // cien elementos aunque pueda tener más... for (i=0; i<100; i++) vector[i] = vector[i] + 1;

int vector[100]; // en principio vector tiene al menos // cien elementos aunque pueda tener más... for (i=0; i<100; i++) vector[i] = vector[i] + 1; ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERIA TECNICA EN INFORMATICA DE SISTEMAS. BOLETÍN DE EJERCICIOS DE Introducción al paralelismo. Curso 04/05 (SOLUCIONES) 1. Inicialmente R3 = R2 + 400. como

Más detalles

Arquitectura de Computadores II Clase #16

Arquitectura de Computadores II Clase #16 Arquitectura de Computadores II Clase #16 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Organización general Superescalar Varios pipelines. 2 operaciones enteras,

Más detalles

Autor: Longinos Recuero Bustos

Autor: Longinos Recuero Bustos Actividad 1.1 Autor: Longinos Recuero Bustos Suponiendo que se aplica una mejora a una máquina de tal forma que el rendimiento es 20 veces superior al que tenía y considerando que la mejora únicamente

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación Curso 2012-2013 Contenidos Introducción: ILP Técnicas SW: Compilador Planificación dinámica. Algoritmo

Más detalles

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones Arquitectura de Computadoras Clase 4 Segmentación de Instrucciones Segmentación de cauce: Conceptos básicos La segmentación de cauce (pipelining) es una forma particularmente efectiva de organizar el hardware

Más detalles

Arquitectura de Computadores. TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación

Arquitectura de Computadores. TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación Arquitectura de Computadores TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación Curso 2015-2016 Contenidos Introducción: ILP Técnicas SW: Compilador Planificación dinámica. Algoritmo

Más detalles

Introducción a los procesadores ILP (Instruction-Level Parallel)

Introducción a los procesadores ILP (Instruction-Level Parallel) Introducción a los procesadores ILP (Instruction-Level Parallel) Herramientas básicas para conseguir paralelismo entre instrucciones: Encauzamiento (pipelining) Se usa en todo procesador ILP Utilizar varias

Más detalles

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 1. La

Más detalles

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Exámenes Ingeniería Computadores II Tutor: Antonio Rivero Cuesta Exámenes TEMA 1 Centro Asociado Palma de Mallorca Tutor: Antonio Rivero Cuesta Un procesador sin segmentación

Más detalles

5. PREDICCIÓN DINÁMICA DE SALTOS

5. PREDICCIÓN DINÁMICA DE SALTOS 5. PREDICCIÓN DINÁMICA DE SALTOS 1 PREDICCIÓN DINÁMICA DE SALTOS 1. Introducción 2. Buffer de Predicción de Saltos (BPB) 3. Buffer de Destinos de Saltos (BTB) 4. Predictores Globales 5. Predictores Adaptativos

Más detalles

Tema 4. Condiciones para el paralelismo: Dependencias

Tema 4. Condiciones para el paralelismo: Dependencias Tema 4. Condiciones para el paralelismo: Dependencias Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO

Más detalles

Procesadores superescalares. Introducción

Procesadores superescalares. Introducción Procesadores superescalares Introducción Introducción El término superescalar (superscalar) fue acuñado a fines de los 80s. Todas las CPUs modernas son superescalares. Es un desarrollo de la arquitectura

Más detalles

1. Objetivo y evolución de los procesadores ILP.

1. Objetivo y evolución de los procesadores ILP. Arquitectura de Computadores Tema 3: Procesadores ILP Índice. Objetivo y evolución de los procesadores ILP. 2. Segmentación (Pipeline).. Concepto y medida de rendimiento. i 2. Pipeline de instrucciones..

Más detalles

Introducción a la arquitectura de computadores

Introducción a la arquitectura de computadores Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina

Más detalles

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes Introducción PROCESADOR SUPERESCALAR Paralelismo bus d/le eje mem es t ciclo seg =t ciclo supes Grado m: en cada ciclo se buscan/decodifican m instrucciones Introducción CICLOS POR INSTRUCCION tciclo identico

Más detalles

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 1. La

Más detalles

3 - Arquitectura interna de un up

3 - Arquitectura interna de un up cei@upm.es 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos

Más detalles

Cuestionario Unidad 4: Procesamiento paralelo 2012

Cuestionario Unidad 4: Procesamiento paralelo 2012 SEP SNEST DGEST INSTITUTO TECNOLÓGICO DE CHIHUAHUA II INGENIERÍA EN SISTEMAS COMPUTACIONALES ARQUITECTURA DE COMPUTADORAS Ing. Ernesto Leal Procesamiento paralelo ELABORADO POR: Miguel Angel Chávez Reza

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores TEMA 4 ILP, Panificación dinámica, Predicción de saltos, Especulación Curso 2010-2011 Contenidos Introducción: ILP Técnicas SW: Compilador Planificación dinámica. Algoritmo

Más detalles

Práctica 4. DESENROLLADO DE BUCLES.

Práctica 4. DESENROLLADO DE BUCLES. Práctica 4. DESENROLLADO DE BUCLES. Objetivos. Aplicar la técnica del desenrollado de bucles para extraer paralelismo a los programas y aplicar la técnica de reorganización de código para ver cómo mejora

Más detalles

Departamento de Automática

Departamento de Automática Departamento de Automática Tema 2 Estructuras segmentadas Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Tema 2. Estructuras segmentadas Noción de segmentación Rendimiento.

Más detalles

TEMA 3. ILP BASADO EN PLANIFICACIÓN DINÁMICA Sistemas Paralelos y Distribuidos 3º GIC. pág 1

TEMA 3. ILP BASADO EN PLANIFICACIÓN DINÁMICA Sistemas Paralelos y Distribuidos 3º GIC. pág 1 TEMA 3 (Segunda Parte) PARALELISMO A NIVEL DE INSTRUCCIONES (ILP) BASADO EN TÉCNICAS DINÁMICAS ÍNDICE 3.1. Técnicas de Planificación dinámica: Algoritmo del marcador, Implementación del Algoritmo de Tomasulo,

Más detalles

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN De Diego Varona, Rubén Romay López, Oscar Manuel Vega Martínez, Jorge INTRODUCCIÓN La representación de la instrucción en la computadora se denomina formato.

Más detalles

Planificación Dinámica - 1. Arquitectura de Computadores

Planificación Dinámica - 1. Arquitectura de Computadores Hasta ahora hemos visto que los procesadores en pipeline ejecutan varias instrucciones simultáneamente pero manteniendo el mismo orden del programa, es decir, dadas dos instrucciones i y j de un programa

Más detalles

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos Arquitectura de Computadoras Clase 5 Posibles soluciones a atascos Ejemplo de segmentación Notas de Clase 5 2 Atascos de un cauce (stall) Situaciones que impiden a la siguiente instrucción que se ejecute

Más detalles

TEMA 4. ARQUITECTURA IA-64

TEMA 4. ARQUITECTURA IA-64 TEMA 4. ARQUITECTURA IA-64 Stalling, W.Computer Organization and Architecture cap. 15 Intel IA-64 Architecture Software Developer s Manual Generalidades IA-64 Desarrollo conjunto Intel-HP Nueva arquitectura

Más detalles

ARQUITECTURA DE COMPUTADORAS

ARQUITECTURA DE COMPUTADORAS 2-12-2012 INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS Cuestionario Unidad 4 Claudia Cristina Enríquez Zamarrón 10 55 05 10 Laura Michell Montes Blanco 10 55 05 02 INTRODUCCIÓN: En

Más detalles

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Pipeline Facultad de Ingeniería - Universidad de la República Curso 2017 Objetivo Mejorar el rendimiento Incrementar frecuencia de reloj? Ancho de los

Más detalles

Arquitectura del MIPS: Introducción

Arquitectura del MIPS: Introducción Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización

Más detalles

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES Escuela Universitaria de Informática Ingeniería de Computadores ARQUITECTURA DE COMPUTADORES PRÁCTICA Nº 3 DESENROLLADO DE BUCLES INTRODUCCIÓN Este documento contiene el enunciado de la práctica de desenrollado

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Segmentación (Pipeline) 7. Memoria Caché 8. Arquitecturas RISC Arquitectura de

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados Departament d Informàtica Sistemes i Computadors ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados SUGERENCIAS PARA LA RESOLUCIÓN DE LOS PROBLEMAS La ruta datos propuesta en todos

Más detalles

Multiplicación de matrices con DLX

Multiplicación de matrices con DLX Multiplicación de matrices con DLX Universidad de Salamanca Depto. Informática y Automática Arquitectura e Ingeniería de computadores Trabajo presentado por: Sergio Garrido Chamorro Santiago González Pérez

Más detalles

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Paralelismo a nivel de instrucción

Más detalles

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores.

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores. HISTORIA DEL PIPELINE CRONOLOGÍA Introducción ppo. S. XX IBM 704 1955 IBM 7030 (proyecto Stretch) 1956-1961 CDC 6600 1964 VAX 8800 1987 RISC vs CISC (MIPS vs VAX 8700) 1989 R4000 (Supersegmentado) 1991

Más detalles

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos Universidad del País Vasco Facultad de Informática Departamento de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I Sistema de memoria 3 (Solución): Segmentación + Bancos En un

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique

Más detalles

CAPÍTULO 2 PROCESADORES SUPERESCALARES

CAPÍTULO 2 PROCESADORES SUPERESCALARES CAPÍTULO 2 PROCESADORES SUPERESCALARES INTRODUCCIÓN Características de los procesadores superescalares Paralelismo Diversificación Dinamismo Arquitectura de un procesador superescalar genérico Características

Más detalles

Arquitectura. TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading. Curso

Arquitectura. TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading. Curso Arquitectura de Computadores TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading Curso 2010-2011 Contenidos o Introducción: CPI < 1 o o o o o o o Lanzamiento múltiple de instrucciones: Superescalar,

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

Tecnologías, Organización y Microarquitectura

Tecnologías, Organización y Microarquitectura Septiembre 2012 Tecnología de Integración Nanotecnología Tecnología de Integración Imágenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la influenza, y de un transistor

Más detalles

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos Arquitectura de ordenadores (fundamentos teóricos) Representación de la información Estructura de un microprocesador Memorias Sistemas de E/S Elementos de un ordenador Microprocesador Placa base Chipset

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz)

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz) UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III SIMULADOR DLX (jbz) Integrantes: Denis José Torres Guadamuz 2001 10500

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión Diego R. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice. Arquitectura

Más detalles

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.1. CONCEPTOS FUNDAMENTALES 3.2, 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

Más detalles

ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 3.

ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 3. ARQUIECURA DE SISEMAS PARALELOS I. 4º INGENIERÍA INFORMÁICA. PRÁCICA 3. BLOQUEOS DE COROL, DESENROLLADO DE BUCLES Y PREDICCIÓN DINÁMICA DE SALOS. OBJEIVOS. En esta práctica se trata de estudiar teóricamente,

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión 2 Diego. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice 1. Segmentación

Más detalles

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1 Arquitectura I Sistema de memoria 1 1. En un espacio de direcciones de 64 Kbytes deben colocarse los s de memoria que se indican. Suponer que el direccionamiento de la memoria se hace al byte. Dibujar

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras 4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice

Más detalles

TEMA 3 PROCESADORES VECTORIALES

TEMA 3 PROCESADORES VECTORIALES TEMA 3 PROCESADORES VECTORIALES A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o PROCESADORES VECTORIALES V e n t a j a s d e

Más detalles

Arquitectura de Computadores II Clase #5

Arquitectura de Computadores II Clase #5 Arquitectura de Computadores II Clase #5 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Algunas ideas para mejorar el rendimiento Obvio: incrementar la frecuencia

Más detalles

TEMA VI DISEÑO DEL PROCESADOR

TEMA VI DISEÑO DEL PROCESADOR TEMA VI DISEÑO DEL PROCESADOR Diseño del procesador 6.1 Repertorio de instrucciones 6.1.1 Procesadores de tres direcciones 6.1.2 Procesadores de dos direcciones 6.1.3 Procesadores de una dirección (procesadores

Más detalles

Repaso concepto de programa

Repaso concepto de programa Repaso concepto de programa ANTES se tenían sistemas cableados Datos Secuencia de funciones aritmético/lógicas Resultados Programación en hardware: cuando cambiamos las tareas, debemos cambiar el hardware

Más detalles

Predicción Dinámica - 1. Arquitectura de Computadores

Predicción Dinámica - 1. Arquitectura de Computadores Para conseguir el rendimiento óptimo de una instrucción por ciclo, otro de los obstáculos que nos encontramos es el de las dependencias de control, esencialmente, los saltos. Ya vimos que hay soluciones

Más detalles

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador PROBLEMAS TEMA 1: Estructuras de interconexión de un computador Problemas propuestos en examen 1.1 Una CPU que emplea un tamaño de palabra de 16 bits tiene un repertorio de 16 instrucciones con un formato

Más detalles

Bus de direcciones. Bus de datos

Bus de direcciones. Bus de datos 1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.

Más detalles

Diseño de un computador sencillo. Ejercicios

Diseño de un computador sencillo. Ejercicios Escola Politècnica Superior d Enginyeria de Vilanova I la Geltrú Diseño de un computador sencillo. Ejercicios Sergio Sánchez Xavier Masip Departament d Arquitectura de Computadors 1. Dado el siguiente

Más detalles

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION SEGMENTACION SEGMENTACION SEGMENTACION I I I I I 1 2 3 4 5 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB SEGMENTACION INTRODUCIR NUEVA INSTRUCCIÓN CADA CICLO 1 CICLO,

Más detalles

ARQUITECTURA VON NEUMANN

ARQUITECTURA VON NEUMANN ARQUITECTURA VO EUMA Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de Entrada

Más detalles

ARQUITECTURA DE VON NEUMANN Y HARVARD

ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA VON NEUMANN En esta arquitectura se observa que las computadoras utilizan el mismo dispositivo de almacenamiento para datos e instrucciones conectados

Más detalles

ARQUITECTURA VON NEUMANN

ARQUITECTURA VON NEUMANN ARQUITECTURA VON NEUMANN Computador bus de datos bus de direcciones bus de control Usuario y aplicaciones Lenguajes de alto nivel Sistema operativo Unidad Central de Proceso Memoria principal Unidad de

Más detalles

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-11

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-11 6.3.3 Riesgo de Control. Los riesgos por control en DLX son menos frecuentes que los riesgos por dependencia de datos, pero al no haber una solución tan buena como el adelantamiento de datos, se convierten

Más detalles

Organización de Computadoras. Clase 6

Organización de Computadoras. Clase 6 Organización de Computadoras Clase 6 Tema de Clase Ciclo de Instrucción Notas de Clase 6 2 Función de la computadora(1) Ejecutar programas El programa está compuesto de instrucciones almacenadas en memoria

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

PROCESADORES SUPER-ESCALARES

PROCESADORES SUPER-ESCALARES PROCESADORES SUPER-ESCALARES ARQUITECTURA DEL PROCESADOR II 1. De los procesadores escalares a los procesadores super-escalares En la materia ya hemos visto el pipeline de 5 etapas. 1 La idea básica entonces

Más detalles

Arquitectura de Computadores II Clase #16

Arquitectura de Computadores II Clase #16 Arquitectura de Computadores II Clase #16 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Organización general Superescalar Varios pipelines. 2 operaciones enteras,

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo Arquitectura de Computadoras Clase 9 Procesamiento paralelo Introducción al procesamiento paralelo Sea cual sea el nivel de prestaciones, la demanda de máquinas de mayor rendimiento seguirá existiendo.

Más detalles

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre. FUNDAMENTOS DE COMPUTADORES 18 de junio de 2014. Examen parcial del 2º cuatrimestre. Nombre DNI Apellidos Grupo Ejercicio 1 (2.5 puntos) Para el computador MIPS estudiado en clase, responder a las siguientes

Más detalles

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software Tema 2: Lenguaje máquina La interfaz entre el hardware y el software 1 Índice Introducción. Formatos de Instrucción. Modos de Direccionamiento. Ortogonalidad y Regularidad. Frecuencia de Utilización de

Más detalles

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Organización del Computador 1 CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Estructura de una máquina von Neumann Ciclo de Ejecución 1. 2. 3. 4. 5. 6. UC obtiene la próxima instrucción de

Más detalles

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico Organización de computadoras Clase 4 Universidad Nacional de Quilmes Lic. Martínez Federico Memoria: Organización Lectura Escritura Direcciones Qué pasó? Qué pasó? Memoria: Organización Lectura Escritura

Más detalles