ARQUITECTURA DE COMPUTADORES Junio de 2009 El

Anuncio
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES
Junio de 2009
El examen es sin apuntes ni libros, sin teléfonos celulares y sin PDA.
Duración: 4 horas como máximo.
Publicación de notas : 23 - junio - 2009
Revisión : 25 junio de 16 a 17 h y 26 junio de 12 a 13 h (C6E101)
EJERCICIO 1:(3 puntos)
Tenemos instrucciones de cuatro tipos y conocemos el valor de sus métricas CPI:
CPI(A) = 1
CPI(B) = 2
CPI(C) = 3
CPI(D) = 4
Tenemos tres códigos y conocemos la cantidad y la distribución de las instrucciones interpretadas:
COD-1
COD-2
COD-3
A
0
250 x 106
250 x 106
B
15 x 106
100 x 106
0
C
120 x 106
150 x 106
250 x 106
D
165 x 106
0
125 x 106
Diseñamos una carga de trabajo (CdT) para hacer medidas. Esta CdT consiste en ejecutar cada hora
400 veces el COD-1, 200 veces el COD-2 y todas las veces que sea posible para completar la hora el
COD-3. Cualquier medida se refiere siempre a horas completas, no se consideran fracciones de hora.
Tenemos dos procesadores, ambos con las mismas instrucciones. El PROC-1 tiene tiempo de ciclo de
5 ns y potencia de 25 w, cuando ejecuta esta CdT. El PROC-2 tiene productividad de 200 MIPS al ejecutar esta CdT, y está en un chip con capacidad efectiva equivalente igual a 10-7 Far. que funciona con
2v de tensión.
Pregunta a: Calcule el número de veces que PROC-1 ejecuta, cada hora, el COD-3.
Pregunta b: Calcule la eficiencia energética de PROC-1, expresada en millones de instrucciones por
julio (MIPJ).
Pregunta c: Calcule la frecuencia de PROC-2, expresada en MHz. Para calcularla debe encontrar
cuántas veces ejecuta el PROC-2, cada hora, el COD-3.
Pregunta d: Calcule la energía, en julios, que necesita PROC-2 cada hora. Calcule la intensidad
eléctrica, en amperios, de una batería que se agote en una hora alimentando al chip de PROC-2.
El computador COMP tiene dos procesadores idénticos. Este COMP usa los dos procesadores a la vez
solamente cuando ejecuta código paralelo. Ejecuta cuatro aplicaciones AP-1, AP-2, AP-3 y AP-4, empleando, respectivamente, el 24%, 16%, 40% y 20% del tiempo total.
Aplicando algunas optimizaciones conseguimos paralelizar el 60% del tiempo de AP-1, el 80% del tiempo de AP-2 y el 50% del tiempo de AP-3. La AP-4 se queda sin paralelizar.
Pregunta e: Calcule la ganancia obtenida si aplicamos las anteriormente citadas optimizaciones, y ejecutamos las cuatro aplicaciones.
Aplicando otras optimizaciones diferentes, conseguimos paralelizar el 80% del tiempo de AP-1, el 90%
del tiempo de AP-2 y el 60% del tiempo de AP-3.
Pregunta f: Calcule la fracción del tiempo total que funcionan los dos procesadores a la vez, cuando
ejecutamos sólo las aplicaciones con las nuevas optimizaciones y no ejecutamos la AP-4.
Examen, junio de 2009
1
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
El computador COMP puede trabajar con una pequeña reducción de los valores de su frecuencia y su
tensión. De esta manera sólo alcanza el 92 % de la productividad anterior, pero consigue disminuir convenientemente la potencia consumida, que originalmente es de 80w.
∆f
∆P
Pregunta g: Calcule, aplicando el escalado dinámico tensión frecuencia ( ------- ∼ 3 ----- ), el valor aproxif
P
mado de la potencia funcionando de esta manera.
Un procesador segmentado no lineal (PSNL) tiene un bloque combinacional en cada una de sus etapas.
Los bloques pùeden ser el A, el B, el C o el D que tienen , respectivamente, retardo de 11ns, 7ns, 14ns
y 7ns. Cualquier registro de desacoplo entre etapas tiene un retardo de 2ns.
Este PSNL interpreta instrucciones de dos tipos según las siguientes tablas de reserva:
ciclos
1
2
3
4
5
6
7
ciclos
1
2
3
4
5
6
Inst1
A
B
C
A
B
B
D
Inst2
A
B
C
A
A
D
Suponemos que cualquier conflicto (riesgo estructural) se resuelve retrasando el inicio de la ejecución.
Definimos utilización (U) de una etapa como el cociente del número de ciclos que se usa la etapa dividido por el número total de ciclos.
El PSNL ejecuta una sucesión ilimitada de instrucciones que combina en proporción arbitraria cualquiera de sus dos tipos.
Pregunta h: Calcule, expresadas en ciclos, las latencias de inicio prohibidas. Calcule, expresado en ciclos, el valor de su latencia media de inicio.
Pregunta i: Calcule el tiempo, en segundos, que tarda PSNL en ejecutar un millón de instrucciones.
Pregunta j: Calcule el valor máximo y el valor mínimo de la U de cada etapa, indicando para qué combinación de instrucciones es cada valor.
EJERCICIO 2:(3 puntos)
Un procesador utiliza un lenguaje máquina con el formato y la semántica de las instrucciones que se
describen seguidamente.
Clases
Campos de la instrucción
ENT RR
CoOp
ra
ENT RI
CoOp
ra
Load/Store
CoOp
ra
rb
0 .. 0
literal
rb
1
Especificación semántica
rc
rcv
func
rc
rcv = rav (CoOp, func) #literal
literal
=
rav
(CoOp, func)
rav
LOAD:
= Mem [
rbv
rbv +
add/sub rc, ra, #lit.
STORE: Mem [ rb + ExtSig (literal) ] = ra
CoOp
ra
literal
load ra, literal(rb)
ExtSig (literal) ]
v
BR
Lenguaje máquina
add/sub rc, ra, rb
func
v
if (f[rav , CoOp]) then CPv = CPv + 4 x ExtSig (liter.)
else
CPv
=
CPv +
store ra, literal(rb)
bne ra, 1$
4
En un diseño del procesador se utiliza la siguiente segmentación (diseño A).
ciclos
1
2
3
4
5
6
CP
B
DL
ALU
M
ES
La funcionalidad de las etapas se describe en la siguiente tabla.
ETAPA FUNCIONALIDAD
CP
determinar el CP
B
búsqueda de la instrucción
DL
decodificación y lectura del banco de registros. Cálculo de la dirección destino en instrucciones de secuenciamiento
ALU
operación aritmético-lógica, cálculo de la dirección efectiva y evaluación de la condición
M
acceso en la memoria de datos o etapa de retardo
ES
escritura en el banco de registros
En el procesador segmentado no se producen riesgos estructurales. Así mismo, el banco de registros
dispone de dos caminos de lectura y un camino de escritura. La actualización de un registro del banco
de registros requiere de todo el ciclo. Las instrucciones BR establecen el secuenciamiento en la etapa
Examen, junio de 2009
2
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
ALU, aunque calculan la dirección destino en la etapa DL. Un riesgo se detecta y gestiona en la fase de
decodificación, que en el procesador descrito previamente se corresponde con la etapa DL. Un riesgo
de datos debido a registro se gestiona mediante bloqueo de la instrucción que detecta el riesgo y de las
instrucciones más jóvenes mientras perdura el riesgo (etapas (DL, B y CP). Un riesgo de secuenciamiento se gestiona mediante el descarte de las instrucciones buscadas mientras perdura el riesgo.
El camino de datos sin los cortocircuitos es el siguiente.
BUS_DL
DL_ALU
ALU_MEM
MEM_ES
MUXBr
0
1
0
dir inst
CP
0
EsReg
Rb
Ra
CoOp ra
1
1
Ed BR
Rd
Lb
La
0
MUXREG
MD
B
1
dir
ALU
1
MUXData
MI
MUXB
+4
+
CP
Ldm
Edm
A
EV
MUXA
1
EXTSIG
Despla
rb 15..5 rc
MUXImp
0
MUXCP
+
0
EsMem
0
1
BUS
DL
ALU
M
ES
En el procesador se incluyen todos los cortocircuitos que permiten reducir la latencia efectiva de actualización del banco de registros. Al implementar los cortocircuitos se ha teniendo en cuenta lo siguiente:
si un cortocircuito lógico se puede implementar mediante varios cortocircuitos físicos se decide implementar y utilizar el que tiene como destino la etapa DL. Por tanto, el otro cortocircuito físico no es necesario a menos que se utilice para otro cortocircuito lógico. Los cortocircuitos se utilizan justo antes de
finalizar el ciclo.
En la siguiente pregunta se solicita añadir cortocircuitos al camino de datos previo. Estos cortocircuitos
deben priorizarse de forma que el control de cada uno de ellos sea independiente.
NOTAS: En la figura que se utiliza para contestar a la pregunta se muestran más multiplexores de los
necesarios. Si una entrada de un multiplexor no se conecta se supone que siempre se selecciona la
otra entrada. El trazo utilizado para indicar una conexión que cruce un registro de desacoplo está afectado por el registro de desacoplo.
Pregunta a: Añada en el siguiente trozo del camino de datos los cortocircuitos que faltan. El número
de cortocircuitos totales debe ser mínimo. Muestre mediante una secuencia de instrucciones si existe
posibilidad de riesgo de datos debido a registros.
BUS_DL
DL_ALU
MEM_ES
ALU_MEM
0
CoOp ra
rb 15..5 rc
EXTSIG
Despla
Ed BR
Rd
Lb
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
MD
B
EsReg
Rb
Ra
1
dir Ldm
Edm
ALU
1
La
0
1
0
1
0
1
1
0
1
0
EV
D/L
1
1
0
0
0
1
1
1
0
0
0
MUXData
1
+
A
0
EsMem
1
0
ALU
M
ES
Los diseñadores se plantean modificar la segmentación de la siguiente forma (diseño B).
ciclos
1
2
3
4
5
6
CP
B
DL
@
A/M
ES
La funcionalidad de la nueva etapa y modificaciones en las otras etapas se describen en la siguiente
tabla. Observe que no se especifica la evaluación de la condición en instrucciones de secuenciamiento.
Examen, junio de 2009
3
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
ETAPA FUNCIONALIDAD
@
cálculo de la dirección efectiva en instrucciones de acceso a memoria
A/M
operación aritmético-lógica o acceso en la memoria de datos
En la siguiente figura se muestran algunos elementos del camino de datos. Observe que no se especifica la ubicación del módulo EV, ni desde dónde se establece el secuenciamiento en instrucciones BR.
La actualización de un registro del banco de registros requiere de todo el ciclo.
BUS_DL
DL_@
@_AM
AM_ES
B
0
dir inst
CP
0
EsReg
Rb
Ra
CoOp ra
1
1
Ed BR
Rd
Lb
MD
MUXB
+4
MI
A
+
0
MUXREG
1
dir
Ldm
Edm
1
La
1
MUXA
+
CP
rb 15..5 rc
1
MUXCP
MUXImp
0
EXTSIG
Despla
MUXData
ALU
+
0
EsMem
0
0
1
BUS
DL
@
A/M
ES
Este diseño del procesador segmentado también dispone de todos los cortocircuitos que permiten eliminar riesgos de datos debidos a registros y en las mismas condiciones que el diseño previo. Además
no se pueden producir riesgos estructurales. Suponemos que un multiplexor de cortocircuito siempre se
ubica antes que cualquier multiplexor en la etapa destino.
Pregunta b: Calcule el número mínimo de cortocircuitos (número de multiplexores de dos entradas necesarios) en el diseño B. Justifique la respuesta.
Pregunta c: Muestre una secuencia de instrucciones en la que se pierdan ciclos en el diseño A pero
no se pierdan ciclos en el diseño B.
Pregunta d: Muestre una secuencia de instrucciones en la que no se pierdan ciclos en el diseño A pero
sí se pierdan ciclos en el diseño B.
Para evaluar las prestaciones de ambos diseños disponemos de las siguientes estadísticas obtenidas
de ejecutar un conjunto de programas de prueba. Entre dos instrucciones dependientes a distancia mayor que uno no hay instrucciones que dependan de la instrucción productora y tampoco hay instrucciones de secuenciamiento. La tabla de la izquierda muestra la distribución de instrucciones en un conjunto
de programas de prueba. Dada una pareja de instrucciones dependientes, la tabla de la derecha muestra la probabilidad de que estén a distancias 1, 2 y 3.
instrucciones distribución
consumidor
loa d
20 %
sto re
10 %
productor
ENT
50 %
ENT
load
ENT
load
store registro rb
store registro ra
distancia
distancia
distancia
distancia
1
2
0. 4
0. 1
3
0.05
1
2
3
1
2
3
1
2
0.08
0.1
0.08
0.04
0.02
0.01
0.03
0 .0 2
0 .0 1
0.01
0.02
0.02
0.01
0.01
0.01
0.02
0 .0 1
0 .0 1
Pregunta e: Teniendo en cuenta sólo la penalización por riesgos de datos debido a registros y sólo las
instrucciones ENT, load y store como productoras y/o consumidoras calcule los ciclos perdidos por instrucción en cada diseño.
En el diseño B existen varias posibilidades para ubicar el circuito que evalúa la condición (EV) y establecer el secuenciamiento. En cualquiera de los casos, el contenido del registro que se evalúa, la dirección de la instrucción y la dirección destino se propagan a la etapa correspondiente. A partir de ahora,
todas estas necesidades las indicaremos exclusivamente como evaluación de la condición (EV). Las
Examen, junio de 2009
3
4
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
etapas que consideraremos para ubicar la evaluación de la condición (EV) son: ES (diseño B.1), A/M
(diseño B.2) y @ (diseño B.3).
Pregunta f: Para cada una de las posibles etapas donde se puede ubicar EV (diseños B.1, B.2 y B.3)
indique los ciclos perdidos por secuenciamiento. Además indique si se incrementa el tiempo de ciclo en
los diseños B.2 y B.3 respecto del diseño B.1. Justifique la respuesta.
Pregunta g: En el diseño B, cuando en una secuencia de instrucciones la instrucción consumidora es
una instrucción de secuenciamiento, indique si se pierden ciclos por riesgos de datos debidos a registros para cada ubicación de EV (diseños B1, B.2 y B.3). Cuantifique los ciclos perdidos en cada diseño.
Así mismo indique, para cada secuencia de instrucciones, el número de ciclos perdidos en el diseño A.
Otras estadísticas que complementan las anteriores son las siguientes.
instrucciones distribución
BR
consumidor
BR
distancia
20%
productor
1
2
3
ENT
0.10
0.08
0.02
load
0.05
0.1
0
Pregunta h: Utilizando las estadísticas mostradas previamente, indique cuál de las alternativas es mejor (diseño B.1, diseño B.2, diseño B.3), teniendo en cuenta sólo los ciclos perdidos en instrucciones de
secuenciamiento y riesgos de datos cuando la consumidora es una instrucción de secuenciamiento.
Otra posibilidad es ubicar el circuito EV en la etapa DL (diseño B.4), lo cual incrementa el tiempo de
ciclo en un 5%. El circuito EV está ubicado después de los posibles cortocircuitos cuyo destino es DL.
Tenga en cuenta que en el diseño B.4 podrían aparecer nuevas condiciones de riesgo. Suponga que la
frecuencia de funcionamiento de los diseños A y B.3 es 1 Ghz.
Pregunta i: Utilice las estadísticas presentadas previamente para calcular, al ejecutar el conjunto de
programas de prueba, el tiempo de ejecución en: a) diseño B.3, b) diseño B.4. Calcule también el tiempo
de ejecución en el diseño A.
EJERCICIO 3:(4 puntos)
Un processador segmentat multicicle, amb 1.2 GHz de freqüència de rellotge, disposa de 4 ramificacions amb latència de repetició 1 i interpreta les instruccions seguint els patrons següents:
cicles
1
2
3
etapes
CP
B
DL
4
5
ALU
E
@
M1
6
7
M2
E
8
ENT
MEM: Load, Store, Fload, Fstore
AV
X1
BR
X2
X3
X4
E
CF
etapes
CP
B
DL
determinació adreça instrucció
búsqueda instrucció
descodificació, lectura operands en registres, detecció riscs, predicció de sentit (BR)
ALU
operació aritmètico-lògica enters (ENT)
AV
verificació de la predicció de sentit (BR)
@, M1, M2 càlcul adreça efectiva, accés al camp d'etiquetes de la cache, accés al camp de dades de la cache
X1,.., X4
E
operació aritmètica punt flotant (CF)
escriptura resultat en el banc de registres d'enters o de punt flotant
El camí de dades disposa de recursos suficients per a que no es produeixin riscs estructurals. En cada
banc de registres es pot escriure i llegir, en aquest ordre, un mateix registre en un cicle de rellotge. Dis-
Examen, junio de 2009
5
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
posa també de curtcircuits per reduir la latència efectiva d'escriptura als bancs de registres. El destí de
qualsevol curtcircuit només pot ser algun dels registres de desacoblament d'entrada a les ramificacions.
Els riscs de dades i de seqüenciament es detecten en l'etapa DL. Quan es detecta un risc de dades, es
retenen les instruccions en les etapes DL, B i CP fins que desapareix la condició de risc. Un risc d'escriptura després d'escriptura desapareix quan la instrucció origen de la dependència de sortida està en
l'últim cicle de la fase d'execució.
Per interpretar instruccions de seqüenciament condicional s'utilitza predicció fixe segons el signe del literal: saltar si el literal és negatiu, seguir en seqüència si el literal és positiu. El càlcul de l'adreça destí
i la predicció de sentit es fa en l'etapa DL. En l'etapa AV es comprova la predicció i en cas d'error s'inicia
la recuperació en el mateix cicle.
Aquest processador executa el següent bucle:
for (i=0 ; i<N ; i++)
{
s += X[i];
X[i] = s;
}
1$: Fload
Fadd
Fstore
Add
Sub
Bne
f0,0(r0)
f1,f1,f0
f1,0(r0)
r0,r0,#8
r3,r3,#1
r3,1$
;i1
;i2
;i3
;i4
;i5
;i6
Valors inicials:
r3=N; r0=adreça
primer element
del vector; f1=0
Pregunta a: Mostra el cronograma d'execució d'una iteració completa del bucle i de la primera instrucció de la següent iteració. Indica els cicles perduts per riscs de dades i seqüenciament en una iteració.
Calcula el CPI mitjà i la productivitat en MFLOPS.
Un nou compilador desenrotlla el bucle anterior. El codi resultant, després de planificar el cos del nou
bucle és el següent (suposem que N és parell):
for (i=0 ; i<N ; i+=2)
{
s += X[i];
X[i] = s;
s += X[i+1];
X[i+1] = s;
}
2$: Fload
Fload
Sub
Fadd
Add
Fstore
Fadd
Fstore
Bne
f0,0(r0)
f4,8(r0)
r3,r3,#2
f1,f1,f0
r0,r0,#16
f1,-16(r0)
f1,f1,f4
f1,-8(r0)
r3,2$
;i1
;i2
;i3
;i4
;i5
;i6
;i7
;i8
;i9
Valors inicials:
r3=N; r0=adreça
primer element del
vector; f1=0
Pregunta b: Dibuixa el graf de dependències de dades de sortida i antidependències entre les 9 instruccions del bucle desenrotllat. Indica les dependències degudes a posicions de memòria mitjançant
línies discontínues.
Pregunta c: Per cada instrucció d'una iteració completa del bucle desenrotllat i la primera instrucció de
la següent iteració, indica el cicle de rellotge en que inicia la fase d'execució. Calcula el CPI mitjà, els
MFLOPS i el Guany.
Un segon processador utilitza la mateixa segmentació i té les mateixes 4 ramificacions que el processador descrit però el control planifica dinàmicament les instruccions seguint l'algoritme de Tomasulo.
L'etapa DL en el processador multicicle es correspon, en aquest segon processdor, a l'etapa d'emissió
i inici si els operants estan disponibles.
El camí de dades disposa de suficients recursos (estacions de reserva, busos de difusió de resultats)
per a que no es produeixin riscs estructurals. Aquest processador també prediu el sentit d'un salt condicionals segons el signe del literal. Es segueixen buscant instruccions segons la predicció, però, per
simplificar la recuperació en cas d'error, el control bloqueja la primera instrucció predita en la fase
d'emissió fins que es verifica la predicció. El bloqueig es propaga a les etapes B i CP.
Examen, junio de 2009
6
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
Aquest processador té 2 subramificacions per interpretar les instruccions d'accés a memòria. El control
permet que una instrucció Load pugui avançar a instruccions Store més velles si no hi ha risc de dades.
Pregunta d: Mostra el cronograma d'execució d'una iteració completa del bucle sense desenrotllar i de
les 3 primeres instruccions de la següent iteració. Indica en quins cicles les estacions de reserva capturen els resultats que difonen les ramificacions i quantes estacions de reserva capturen els resultats.
Assenyala els cicles en que el control inhibeix les escriptures en el banc de registres.
Pregunta e: Tenint en compte la resposta a la pregunta d, calcula el CPI mitjà i la productivitat en
MFLOPS. Indica el nombre mínim d'estacions de reserva que fan falta en cada ramificació per a que no
es produeixin riscs estructurals. Calcula quin percentage de temps està ocupada cadascuna de les estacions de reserva associades a la ramificació de càlcul en punt flotant.
Pregunta f: Calcula el CPI mitjà i la pèrdua percentual de rendiment en el supòsit de que les instruccions d'accés a memòria s'executessin seguint l'ordre de programa.
Suposa que, per reduir el cost de la finestra d'instruccions però sense sacrificar la capacitat d'explotar
el paral·lelisme a nivell d'instruccions, l'algoritme de Tomasulo alliberés les estacions de reserva quan
les instruccions superen la fase d'inici. Suposa també que la taula de renom de registres (vectors d'etiquetes i marques) s'actualitza seguint les regles de l'algoritme original.
Considera la interpretació de la seqüència d'instruccions:
Load r0,0(r0)
Load r1,0(r0)
Add r2,r1,r0
Pregunta g: Suposant que la ramificació de memòria tingués una única estació de reserva, mostra el
cronograma d'execució de la seqüència anterior. Indica justificadement quin tipus de dependència de
dades es gestionaria incorrectament. Justifica per qué en la fase d'escriptura de la primera instrucció
Load s'escriurien 2 registres.
Suposa que es modifica la interpretació de les instruccions de salt condicional. També s'utilitza predicció
del sentit segons el signe del literal. En lloc d'impedir l'emissió de les instruccions predites fins que es
verifica la predicció, ara es poden emetre però no poden iniciar l'execució. Les instruccions predites, encara que estiguin preparades, esperen en les estacions de reserva fins que es comprova la predicció.
La figura mostra un exemple d'interpretació d'una instrucció de salt que detecta un error de predicció.
En el cicle 4 es prediu seguir el seqüenciament implícit i es copia el contingut de la taula de renom de
registres (vectors d'etiquetes i marques). En el cicle 8 es detecta un error de predicció, el control allibera
les estacions de reserva de les instruccions emeses i restaura la còpia de la taula de renom de registres
i estableix el seqüenciament. Mitjançant la còpia de la taula de renom es preten recuperar les fonts de
dependències modificades possiblement per instruccions predites.
Adreça
124
1$:
Instrucció
Load r0,8(r1)
128
Bne r0,1$
132
Load r0,0(r0)
136
Sub r3,r5,r0
140
Xor r4,r0,#-1
144
Sub r6,r4,r7
148
Xor r0,r1,r1
200
Load r2,0(r0)
1
2
3
4
5
6
7
CP
B
EL
@
M1
M2
E
B
EL
ERL ERL ERL
CP
B
CP
CP
EL
8
9
10
11
12
13
14
@
M1
M2
E
cicle
AV
ERL ERL ERL descartar
ERL ERL descartar
B
EL
CP
B
EL
CP
B
EL
descartar
CP
B
descartar
ERL descartar
CP
B
EL
Pregunta h: Considerant l'exemple anterior, justifica si es gestionen correctament les dependències de
sortida.
Examen, junio de 2009
7
Dep. Arquitectura de Computadores
Descargar