FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES Enero de 2009 El examen es sin apuntes ni libros, sin teléfonos celulares y sin PDA. Duración: 4 horas como máximo. EJERCICIO 1: (3 puntos) En un procesador es posible que el cálculo que se efectúa en un circuito concreto no se utilice en la interpretación de la instrucción. Por ejemplo, la evaluación del contenido de un registro al interpretar una instrucción de suma. En estas condiciones, técnicas que eliminen actividades superfluas son de interés para reducir el consumo energético. La actividad superflua existe con distintos niveles de granularidad. Por ejemplo, a nivel de registros de desacoplo individuales y a nivel de unidades funcionales. En la tecnología utilizada, supondremos que si en un circuito combinacional no se modifican las señales de entrada no se consume energía. Por tanto, si en los registros de desacoplo de entrada de un circuito combinacional se inhibe la señal de reloj, el circuito no consume energía en el ciclo de inhibición. En una unidad funcional (UF) se procesan datos válidos el 70% del tiempo. La efectividad o eficacia de la técnica de inhibir la señal de reloj es el 90%. Esto es, el 90% de las veces que la señal de reloj no está inhibida la UF procesa información válida. En la siguiente figura se muestra un gráfico donde se dibujan de forma adyacente todos los periodos en que la UF procesa información válida o inválida y los periodos en que la señal de reloj está activada o inhibida. T 70% (válida) 30% 90% (de t1) señal de reloj activa (t1) T = t1 + t2 señal de reloj inhibida (t2) El área necesaria para implementar la lógica que permite inhibir la señal de reloj es un 5% del área de la UF, siendo el consumo energético por unidad de área el mismo que el de la UF. La eficiencia o ahorro de la técnica de inhibir la señal de reloj se evalúa mediante la siguiente expresión: Eficiencia o ahorro = [ 1 - ( potencia media con inhibición / potencia media sin inhibición)] x 100 Pregunta a: Calcule la fracción de tiempo que está activa la señal de reloj y la fracción de tiempo que está inhibida. Así mismo, calcule la eficiencia cuando se utiliza la técnica de inhibir la señal de reloj. En un procesador se interpretan los siguientes tipos de instrucciones con el formato y semántica que se especifica. Tipo Campos RR CoOp ra rb RI CoOp ra BR Inc CoOp 0 literal BR Cond CoOp ra literal literal Especificación semántica Tipo Campos Especificación semántica rc rcv = rav (CoOp, func) rbv Load CoOp ra rb literal rav = Mem [ rbv + ExtSig (literal) ] rc rcv = rav (CoOp, func) #literal Store CoOp ra rb literal Mem [ rbv + ExtSig (literal) ] = rav CPv if = CPv + (f[Rav 4 x ExtSig (literal) , CoOp]) then CPv = CPv + 4 x ExtSig (literal) else CPv = CPv + 4 El superíndice v indica contenido del registro En un diseño segmentado del procesador, las instrucciones de secuenciamiento actualizan el registro CP en la etapa ES. Un registro del banco de registro se puede escribir y leer, en este orden, en un mismo ciclo. Por otro lado no existen riesgos estructurales. Examen, enero de 2009 1 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES En la fase de decodificación de un procesador se conoce el tipo de instrucción y, por tanto, determinísticamente se conocen los recursos del camino de datos que se utilizan, excepto el sumador de la etapa CP. En estas condiciones, la información del tipo de instrucción, suministrada por el decodificador, se puede utilizar para gestionar la inhibición de la señal de reloj en algunos de los registros de desacoplo del camino de datos. A esta señal de inhibición la denominaremos señal de control de la señal de reloj (INH). En la siguiente figura se muestra parte de un camino de datos segmentado para interpretar los tipos de instrucciones especificados previamente. En esta implementación del procesador la lectura del banco de registros se efectúa concurrentemente con la decodificación. DL ALU BUS_DL DL_ALU +4 + ALU_MEM C rb 15..5 rc 1 ES MI 0 dir inst 1 B Reloj 1 Ed BR Rd Lb I 0 J D EsReg Rb Ra 2 1 0 MUXREG 0 func Reloj 1 EsMemDL K A E F G Ldm Edm EV L Reloj M N H 0 O EsMem Dec_CoOp CoOp 1 dir ALU La MD B 0 MEM_ES MUXBr 1 EXTSIG CP CoOp ra 0 MUXCP A MUXImp M MUXData BUS EsMemM CP EsRegM EsRegDL En un diseño segmentado, la señal INH se puede propagar a las siguientes etapas utilizando registros de desacoplo adicionales con la señal de reloj activada. A efectos de análisis de consumo de energía supondremos que todos los elementos del camino de datos actúan como si fuesen circuitos combinacionales (incluidos MI, MD y BR), excepto los registros de desacoplo. Por tanto, si se inhibe la señal de reloj en todos los registros de desacoplo que son entrada de un circuito o elemento, éste no consume energía. En el caso particular de los elementos MD y BR supondremos que ni la señal de reloj ni las señales provenientes de los registros N y Q respectivamente son entradas de estos elementos. Pregunta b: Sin que se modifique la semántica de la instrucción y una vez se ha decodificado una instrucción, indique para cada tipo de instrucción los registros de desacoplo superfluos (a los que se les puede inhibir determinísticamente la señal de reloj, aunque sea en ciclos distintos). En la etapa DL se dispone de las siguientes señales. Tipo de instrucción señal en DL RR RR RI RI Load LD Store ST BR Inc BRI BR Cond BRC Pregunta c: Diseñe la lógica de control para inhibir la señal de reloj en los registros de desacoplo. Para simplificar los cálculos supondremos que los multiplexores, el elemento EXTSIG y la lógica de interbloqueos no consumen energía. Así mismo, supondremos que todos los registros de desacoplo consumen lo mismo, aunque el número de bits de entrada sea distinto. Por otro lado, supondremos que los elementos MI, MD, BRL, BRE, ALU, EV, decodificador y sumador en la etapa CP consumen lo mismo (línea gruesa en la figura). Por BRL y BRE entendemos respectivamente las dos acciones de lectura y la acción de escritura en el banco de registros, lo cual es lo que hay que considerar desde el punto de vista del consumo. El consumo de los registros de desacoplo es un 5% del consumo de la ALU. Además suponga que un registro de desacoplo con la señal de reloj inhibida no consume. Consumo energético (julios) Examen, enero de 2009 Registros de desacoplo MI, MD, BRL, BRE, ALU, EV, decodificador, sumador en etapa CP RD = 0.05 x CE 1 x CE 2 Dep. Arquitectura de Computadores P Q FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES Si no se inhibe la señal de reloj en los registros de desacoplo que son entrada de los elementos de almacenamiento MD y BR supondremos consumo aunque no se actualicen. Cuando no se inhibe la señal de reloj todos los dispositivos del camino de datos conmutan (no tendremos en cuenta la posibilidad de que una señal del camino de datos mantenga el mismo valor en ciclos consecutivos). Entonces, de la figura previa se obtiene que el consumo energético para cualquier instrucción es: Número de registros de desacoplo activos Número de elementos activos TOTAL (consumo energético) 18 8 8.9 x CE Sin inhibir el reloj Pregunta d: Calcule por tipo de instrucción el ahorro energético cuando se utiliza la técnica de inhibición de la señal de reloj en los registros de desacoplo. El decodificador identifica explícitamente las instrucciones nop de lenguaje máquina y activa la señal NOPD, la cual se puede utilizar para inhibir registros de desacoplo. Además, desactiva las señales EsMemDL y EsRegDL que se utilizan para indicar respectivamente actualización de la memoria y el banco de registros. Pregunta e: Al interpretar una instrucción nop indique los registros de desacoplo a los que se les puede inhibir la señal de reloj. Así mismo, calcule el consumo energético. En el procesador descrito, para adecuar la semántica del procesador a la semántica del lenguaje máquina, se emula un funcionamiento secuencial en los casos de riesgos de datos debidos a registros y riesgos de secuenciamiento. En el caso de riesgos de datos debido a registros se bloquea la instrucción que detecta el riesgo en la etapa DL y se propaga, en el mismo ciclo, el bloqueo a las etapas previas. En el caso de un riesgo de secuenciamiento, una vez se ha decodificado una instrucción de secuenciamiento se descartan las instrucciones más jóvenes que empiezan a interpretarse. Este descarte se mantiene mientras no se determina la dirección de la siguiente instrucción que debe interpretarse. En la siguiente figura se muestran las acciones que se efectúan en los dos tipos de riesgos. ciclos instrucción load R1, 0(R2) load R3, 0(R1) store R5, 0(R6) add R4, R4, #8 1 2 3 4 5 6 CP B DL A M E CP B DL CP 7 8 9 10 instrucción 11 100 bne R1,1$ nop nop nop 104 load DL 108 add nop nop nop DL A M E 112 sub B B B DL A M E CP CP CP B DL A M 116 xor E 1$: 200 add R5, R10, R30 13 14 15 16 17 18 CP B DL A M E CP B CP 19 20 nop nop nop nop B CP nop nop nop nop B CP nop nop nop nop B CP nop nop nop nop B DL A La lógica de interbloqueos activa las señales RD y/o RS en los ciclos en que se detecta respectivamente un riesgo de datos debido a registros y/o un riesgo de secuenciamiento. En el caso de detectar un riesgo de datos debido a registros, la inyección de una instrucción nop (NOPDEC) desde la etapa DL se implementa simplemente desactivando las señales EsMemDL y EsRegDL. Pregunta f: Calcule el consumo energético de gestionar 1 ciclo perdido en un riesgo de secuenciamiento (por ejemplo, el consumo en la 2ª fila del diagrama de la derecha). Note que en 1 ciclo perdido están involucradas todas las etapas (sombreadas en la figura). Pregunta g: Diseñe la lógica que inhibe la señal de reloj de los registros de desacoplo en los siguientes casos: a) al interpretar una instrucción nop, b) cuando se detecta un riesgo de datos y c) cuando se detecta un riesgo de secuenciamiento. Para simplificar los cálculos de energía, en un riesgo de datos debido a registros supondremos que todos los ciclos de estancia en DL menos el 1º ciclo (ciclo 4 en el diagrama de la izquierda) consumen lo mismo. Durante estos ciclos no tendremos en cuenta la posibilidad de que se escriba un registro que modifique una de las entradas de alguno de los caminos de lectura. En un ciclo de bloqueo la información en los registros de desacoplo de entrada de las etapas CP, BUS y DL no se modifica (sombreadas Examen, enero de 2009 3 Dep. Arquitectura de Computadores M E FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES en la figura). Por tanto, el consumo energético de un ciclo perdido debido a un riesgo de datos es 0.3 x CE, ya que sólo consumen los registros no inhibidos. (No tenemos en cuenta que en todos los ciclos de bloqueo se inyecta la misma instrucción NOPDEC). En un conjunto de programas de prueba se mide la siguiente distribución de instrucciones, además a partir de ahora, supondremos los siguientes consumos energéticos cuando se inhibe la señal de reloj. Tipo de instrucción distribución consumo con inhibición RR 45% 6 x CE RI 15% 6 x CE Load 20% 7 x CE Store 5% 6 x CE BR Inc 5% 5 x CE BR Cond 10% 6 x CE Por otro lado, al ejecutar el conjunto de programas se pierden en media 0.8 ciclos por instrucción debido a riesgos de datos. Pregunta h: Calcule el ahorro energético, debido a la técnica que inhibe la señal de reloj en los registros de desacoplo, al ejecutar el conjunto de programas de prueba. EJERCICIO 2: (3.5 puntos) Un processador segmentat multicicle interpreta instruccions del següent repertori: ENT Rd = Ra op Rb CF Fd = Fa op Fb LDE Rd = M[Rb+d] LDF Fd = M[Rb+d] STE M[Rb+d] = Ra STF M[Rb+d] = Fa BCE si cond (Rb) llavors CP = CP+d altrament CP = CP+4 BCF si cond (Fb) llavors CP = CP+d altrament CP = CP+4 amb la següent segmentació: cicles 1 2 3 etapes CP B D 4 5 LE ALU EE LE @ LE 6 @ 7 8 M1 M2 EE LF X1 X2 M1/LF M2 EF 9 10 11 ENT, BCE LDE, STE X3 X4 EF CF, BCF LDF, STF El camí de dades corresponent a la part d'execució disposa de 3 ramificacions, tal com mostra la figura. La ramificació superior (ALU) executa les instruccions ENT i BCE. La ramificació del mig (MEM) executa les instruccions d'accés a memòria. La tercera ramificació (PF) executa les instruccions CF i BCF. El camí de dades disposa de suficients recursos per a que no es produeixin riscs estructurals. 1 0 (Ra) BRE Etapa D a XCE (Rb) literal b a BRE ALU a BRE EV @ M1 M2 a BRF mux (Fa) BRF a X1 XCF b (Fb) 3 2 FEV X2 X3 X4 a BRF Cada banc de registres (BRE, BRF) té 2 ports de lectura i 2 d'escriptura. En cada banc, un registre es pot escriure i llegir, en aquest ordre, en un mateix cicle. Observa que la lectura en el banc BRF es fa dues etapes després de la lectura del banc BRE. Els mòduls XCE i XCF contenen multiplexors per encaminar dades des de les sortides de les ramificacions cap als registres de desacoblament d'entrada de les ramificacions i de l'etapa M2 (només el mòdul XCF). Examen, enero de 2009 4 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES Els riscs de dades RAW (lectura després d'escriptura) degut a registres es detecten en l'etapa D. Quan es detecta un risc, es bloquegen les etapes D, B i CP. El processador no utilitza cap mecanisme per gestionar riscs WAW (escriptura després d'escriptura) degut a registres. Les instruccions han d'estar ordenades convenientment per a que les dependències de sortida no produeixin risc. Per interpretar instruccions de tipus BCE, el processador utilitza predicció de sentit. En l'etapa D es fa la predicció, es calcula l'adreça destí de salt i es modifica el seqüenciament si el literal (d) és negatiu. La verificació de la predicció es fa en l'etapa ALU i s'estableix el seqüenciament en cas de detectar error. L'interpretació de les instruccions BCF s'explica més endavant. El processador executa el següent fragment de codi: for (i=1; i<N; i++) x[i] = x[i] + x[i-1]; for: Fload f0,0(r0) i1 Fload f1,-8(r0) i2 Fadd f1,f0,f1 i3 Fstore f1,0(r0) i4 Add r0,r0,r3 i5 Cmpgt r1,r0,r2 i6 Beq r1,for i7 Valors inicials: r3=8; r0=adreça primer element del vector; r2=adreça últim element del vector Pregunta a: Mostra el cronograma d'execució d'una iteració i de la primera instrucció de la següent iteració. Assenyala els curtcircuits utilitzats mitjançant la notació (x,y), on x i y representen les entrades i sortides, respectivament, dels mòduls XCE i XCF. Calcula el CPI. El compilador pot reordenar les instruccions i modificar els literals de les instruccions d'accés a memòria per reduir els cicles perduts. Pregunta b: Mostra el codi planificat i els literals de les instruccions d'accés a memòria. Per cada instrucció d'una iteració i la primera de la següent iteració, indica en quin cicle de rellotge la lògica de control detecta que està Llesta. Calcula el nou CPI i el Guany obtingut per la planificació. La figura mostra els multiplexors d'encaminament de dades del mòdul XCF. Els senyals de control dels multiplexors es calculen en l'etapa LF. 2 (Fa) c3 0 c1 0 1 (Fb) 3 1 a 0 0 1 b 1 XCF c4 c2 Pregunta c: Utilitzant comparadors i portes lògiques, dissenya el circuit de control del mòdul XCF. No cal considerar els bits de validesa. Per detectar els riscs de dades, la lògica de control utilitza dos vectors de marques, VME i VMF. El vector VME conté tants bits com registres enters i el vector VMF tants com registres de punt flotant visibles a nivell de llenguatge màquina. Cada entrada d'un vector indica si el registre associat està disponible (valor 0) o si s'està calculant (valor 1). L'escriptura en aquests vectors està sincronitzada amb el flanc de pujada del senyal de rellotge. En el cas de que el retard productor-us sigui igual a 1 cicle, la instrucció productora no actualiza els vectors de marques. Suposa que el contingut d'una entrada de qualsevol vector de marques es pot escriure i llegir, en aquest orde, en el mateix cicle. Examen, enero de 2009 5 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES Pregunta d: Per cada tipus d'instrucció que modifica l'estat en registres, encercla els flancs de pujada del senyal de rellotge on s'escriuen els vectors de marques. Dedueix el nombre de ports d'escriptura dels vectors VME i VMF. Pregunta e: Dissenya la lògica per avaluar si la instrucció que ocupa l'etapa D està Llesta. No cal considerar els bits de validesa. Afegim un mecanisme que no requereix bloqueig per interpretar concurrentment instruccions amb dependència de sortida. El mecanisme es basa en que instruccions que s'executen en la mateixa ramificació no poden provocar risc WAW. Per tant, és suficient en anul•lar l'escriptura de la instrucció origen de la dependència quan s'executa en una ramificació distinta de la instrucció destí. Per cada banc, disposem d'un vector amb tantes entrades com registres lògics (VRE i VRF). Cada entrada indica la ramificació que calcularà el resultat en el registre associat. Suposarem la següent codificació per les ramificacions: 0 (ALU), 1 (MEM) 2 (PF). L'escriptura en aquests vectors està sincronitzada amb el flanc de pujada del senyal de rellotge. Un vector s'actualitza quan la lògica de control detecta que la instrucció que ocupa l'etapa D està llesta. L'avaluació del senyal del permís d'escriptura es fa en l'etapa d'escriptura tenint en compte el contingut de VRE o VRF (d1,d0). Suposa que el contingut d'una entrada de qualsevol vector es pot escriure i llegir, en aquest orde, en el mateix cicle. Observa que el mecanisme descrit també anul•la l'escriptura de la instrucció origen de la dependència de sortida fins i tot en ocasions on la instrucció destí no provoca risc. La figura mostra el circuit que controla les escriptures de la ramificació de punt flotant. Des de l'etapa D s'injecta per la cadena de registres l'identificador del registre lògic que actualitzarà (FdD). FdEF VRF '10' FdD d1d0 LlestaPF LF X1 X2 X3 X4 EF CTRL_PE PEF PEEF Pregunta f: Dissenya amb portes lògiques el circuit CTR_PE que avalua el senyal de permís d'escriptura de la ramificació de punt flotant (PEEF). L’incorporació d'aquest mecanisme per gestionar els riscs WAW requereix modificacions del mecanisme que gestiona els riscs RAW, en concret, l'actualització del vectors de marques VME i VMF. Pregunta g: Dedueix una seqüència de 3 instruccions de tipus CF que posi de manifest la necessitat de modificar el mecanisme de gestió dels riscs RAW. Es vol utilizar també predicció de sentit segons el signe del literal per interpretar eficientment les instruccions de salt condicional de tipus BCF. La predicció es fa en l'etapa D, modificant el seqüenciament si el literal és negatiu. La verificació de la predicció es fa en l'etapa X1 i s'estableix el seqüenciament en cas de detectar error. Pregunta h: Pel cas d'error de predicció, dedueix el nombre màxim d'instruccions que hauria de descartar la lògica de control. Indica també si és possible que alguna de les instruccions a descartar actualitzés l'estat abans de detectar un error de predicció. Si així fos, proposa un mecanisme per evitar-ho. Examen, enero de 2009 6 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES EJERCICIO 3: (3.5 puntos) PSTOM es un procesador segmentado con planificación dinámica y algoritmo de control con renombre dinámico de registros (Tomasulo), que tiene 4 ramas de ejecución con segmentación lineal en todas. Tiene 9 estaciones de reserva (ER). Cada rama tiene una pareja de buses de difusión de datos y de etiquetas (BD y BE) que están conectados a toda ER y a todo BReg. En el mismo ciclo en que se escriben BD y BE se puede capturar su información. La rama ENT/BRC con 1 ciclo de ejecución y 2 ER numeradas 1 y 2 . La rama FSUM con 2 ciclos de ejecución y 2 ER numeradas 3 y 4 . La rama FDIV con 4 ciclos de ejecución y 1 ER numerada 5. La rama MEM con 3 ciclos de ejecución y 4 ER numeradas 6 y 7 (para FLD) , 8 y 9 (para FST). Ejecuta las instrucciones BRC con predicción fija (estática), apostando siempre por romper la secuencia. Tiene un sumador en la 3ª etapa para calcular direcciones destino de salto, comprueba la predicción en la 4ª etapa y en ella se establece el secuenciamiento en caso de detectar error. La instrucción se decodifica, y se decide si se emite o no y si se inicia o no, todo ello en la 3ª etapa. PSTOM ejecuta el código siguiente, que es un bucle que itera varias veces, y tiene 10 instrucciones 1 2 3 4 5 6 7 8 9 10 FLD FLD ENT FLD FSUM FSUM ENT FDIV FST BRC $: F1 <---- M[R1 + 0] F2 <---- M[R1 + 4] R0 <---- R0 - 1 F3 <---- M[R1 + 8] F1 <---- F1 + F2 F3 <---- F3 + F1 R1 <---- R1 + 12 F2 <---- F3 / 3 M[R1 - 4] <---- F2 saltar a $ según (R0) Pregunta a: Construya el grafo de dependencias de datos del código. Presente por separado el grafo de cada tipo de dependencia, e identifique cada instrucción por su número del 1 al 10. Preguntas b, c: Suponemos que PSTOM tiene dos subramificaciones en la rama MEM y puede adelantar las FLD cuando no tengan riesgo de lectura de datos en memoria. Presente el cronograma de ejecución de la primera iteración y las 4 primeras instrucciones de la segunda iteración. Debe identificar el nº de la ER que ocupa cada instrucción al emitirse (p.ej. EL6). Calcule el número de ciclos que transcurren entre los ciclos en que se completa la 1ª instrucción de la primera y de la segunda iteración. Diga en qué ciclos se escribe en el registro F2 del BReg. Pregunta d: Indique en qué ciclos se producen capturas de la información que transportan los buses de difusión. Para cada captura debe señalar el nº de la ER que produce la información capturada. Pregunta e: Indique el número que identifica a cada ER que está ocupada durante el ciclo 11 de la ejecución. Pregunta f: Sin presentar ningún cronograma, calcule el número de ciclos que transcurren entre los ciclos en que se completa la 1ª instrucción de la primera y de la segunda iteración , suponiendo ahora que PSTOM no puede adelantar las FLD y mantiene estricto orden de programa en la ejecución de todas las instrucciones de la rama MEM. Examen, enero de 2009 7 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES PSMAR es un procesador segmentado con planificación dinámica y algoritmo de control Marcador (Scoreboard) , que tiene 4 ramas de ejecución no segmentadas. Cada rama tiene 2 caminos de lectura y 1 de escritura con su Banco de Registros (BReg). No tiene ningún cortocircuito. Ningún registro de BReg puede ser escrito y leído en el mismo ciclo. Cada rama tiene estas latencias de ejecución: rama 1 : MEM , 3 ciclos ; rama 2 : FMUL , 3 ciclos ; rama 3 : FSUM , 2 ciclos ; rama 4 : ENT , 1 ciclo La instrucción se decodifica, y se decide si se emite o no y si se inicia o no, todo ello en la 3ª etapa. PSMAR ejecuta el código siguiente, con 7 instrucciones: 1 2 3 4 5 6 7 FLD FMUL FLD FSUM ENT FST ENT F2 <---- M[R1 + 0] F4 <---- F2 x F0 F6 <---- M[R2 + 0] F6 <---- F4 + F6 R1 <---- R1 + 4 M[R2 + 0] <---- F6 R2 <---- R2 + 4 Pregunta g: Construya el grafo de dependencias de datos del código. Presente por separado el grafo de cada tipo de dependencia, e identifique cada instrucción por su número del 1 al 7. Preguntas h, i: Presente el cronograma de ejecución del código. Debe identificar el nº de la rama cuando se emite cada instrucción (p.ej. EL1). Escriba en qué ciclos está desocupada la rama 1, y en qué ciclos están simultáneamente ocupadas las ramas 3 y 4. Pregunta j: Identifique cada ciclo de bloqueo (en los que no se emite ninguna instrucción) y explique el motivo de cada uno de ellos. Examen, enero de 2009 8 Dep. Arquitectura de Computadores