Arquitectura de Computadores - Problema Rendimiento - Ayuda

Hola!

Necesito que alguien me heche una mano con este problema de rendimiento que debe ser facilisimo pero que ahora mismo no me acuerdo como plantear:

Ejemplo: Suponer que estamos considerando dos alternativas para una instrucción de salto condicional:

CPU A: Una instrucción de comparación inicializa un código de condición y es seguida por un salto que examina el código de condición.

CPU B: Se incluye una comparación en el salto

En ambas CPU's, la instrucción del salto condicional emplea 2 ciclos de reloj, y las demás instrucciones 1 (se desprecian las pérdidas del sistema de memoria). En la CPU A, el 20% de todas las intrucciones son saltos condicionales; como cada salto necesita una comparación, otro 20% de las instrucciones son comparaciones. Debido a que la CPU A no incluye la comparación en el salto, su ciclo de reloj en un 25% más rápido que el de la de B.

¿Que CPU es más rápida?


Tiene pinta de estar tirado, pero no tengo la solución y no soy capaz de encontrar una manera lógica (a mi parecer) de plantearlo.

Si me hechais una manita os estaré muy agradecido

salu2
Para saber cual de las dos es mejor habrá que comparar sus TCPU:

TCPU = Instrucciones Ejecutadas · Ciclos Por Instrucción · Tiempo Ciclo

TCPU A = IE · CPI A · TC A
TCPU B = IE · CPI B · TC B

Al ser IE igual en ambas máquinas no lo necesitamos para compararlas, y como sabemos que el ciclo de reloj de A es un 25% más rápido que el de B, TC A = TC B · 0.75

TCPU A = CPI A · TC B · 0.75
TCPU B = CPI B · TC B

Quitamos TC B y solo nos queda calcular los CPI de cada máquina, que ahora mismo no recuerdo como se hace pero sería algo como multiplicar los CPI de cada tipo de instrucción por su frecuencia y sumarlas todas.

Espero que te sirva de ayuda.
vale entonces creo que no lo hacia del todo mal

lo unico que no entiendo es por que TCA=TCB*0.75

yo pensaba que TCA=TCB*1.25

pero no estoy seguro

entonces para calcular los CPI seria algo asi como:

CPI A = 0.2 * 3 ciclos + 0.8 * 1 ciclo = 1,4

CPI B = 0.2 * 2 ciclos + 0.8 * 1 ciclo = 1,2

es que no entiendo muy bien eso que dice que en CPU A el 20% son saltos y por lo tanto otro 20% son comparaciones y no estoy seguro de que sea como lo he puesto


salu2 y gracias ;)
Es TCA = TCB * 1.25; eso seguro.

Después, lo que yo haría:

Lo del 20% implica 20% es lógico, piensa que cada instrucción de salto requiere una de comparación así que habrá las mismas de cada tipo.
CPI A = 20% instr de comparación + 20% instr salto + 60% resto instrucciones
CPI A = 0.2 * 1 ciclo + 0.2 * 2 ciclo + 0.6 * 1 ciclo = 0.2 * 2 ciclo + 0.8 * 1 ciclo = 1,2

CPI B = 20% instr de salto + 80% resto instrucciones
CPI B = 0.2 * 2 ciclo + 0.8 * 1 ciclo = 1,2

Si, lo he hecho bien, CPI A = CPI B y, por lo tanto, TCPUA = TCPUB * 1.25.

No digo que lo haya hecho bien, pero seguro que te sirve de algo. ;)
justo has clavado lo que estaba dudando

Que el 20% de las instrucciones sean saltos implica que va a haber un 20% de comparaciones

mi duda es si considero como tu el salto y la comparacion separadas o como yo lo he hecho antes y las considero una instruccion de 3 ciclos

porque el resultado final obviamente es diferente

que pensais vosotros?
aclapes escribió:CPI A = 20% instr de comparación + 20% instr salto + 60% resto instrucciones
CPI B = 20% instr de salto + 80% resto instrucciones

En los % de instrucciones de salto de B creo que no serían así, sino que con respecto a A quitas el 20% de las comparaciones, con lo que varía el número de instrucciones total y por tanto los %, que pasarían a ser:
CPI B = 20/80 instr de salto + 60/80 resto instrucciones = 25% de instr de salto + 75% resto instrucciones.

No sé si me he explicado ni estoy seguro de que sea así, pero es lo que me suena...

Por cierto:
TCA=TCB*0.75
El ciclo de A es más rápido que el de B, por lo que tiene que ser más pequeño.
Teniente Dan escribió:justo has clavado lo que estaba dudando

Que el 20% de las instrucciones sean saltos implica que va a haber un 20% de comparaciones

mi duda es si considero como tu el salto y la comparacion separadas o como yo lo he hecho antes y las considero una instruccion de 3 ciclos

porque el resultado final obviamente es diferente

que pensais vosotros?


Del enunciado se entiende que deberías hacer el salto y la comparación separadas en la CPUA y juntos en la CPUB
Pero si esto lo resolvía yo a los tres años, menudas tontos que andan por aquí... XD
Pollo PS2 escribió:Pero si esto lo resolvía yo a los tres años, menudas tontos que andan por aquí... XD


quieres uno?

Imagen

creo la solución de kno es buena, me suena muchisimo y tiene más lógica

me suena de haber ido a la correccion y que fuese algo parecido a eso

a ver si alguien lo corrobora y me quedo tranquilo

gracias a todos [angelito]
Hola, yo tambien tengo el examen el lunes. Tengo ese problema resuelto en clase de teoria, que es el mismo o parecido al que se puso en el examen de enero.

Ejemplo: Suponer que estamos considerando dos alternativas para una instrucción de salto condicional:
CPU A: Una instrucción de comparación inicializa un código de condición y es seguida por un salto que examina el código de condición.
CPU B: Se incluye una comparación en el salto
En ambas CPU's, la instrucción del salto condicional emplea 2 ciclos de reloj, y las demás instrucciones 1 (se desprecian las pérdidas del sistema de memoria). En la CPU A, el 20% de todas las intrucciones son saltos condicionales; como cada salto necesita una comparación, otro 20% de las instrucciones son comparaciones. Debido a que la CPU A no incluye la comparación en el salto, su ciclo de reloj en un 25% más rápido que el de la de B.

¿Que CPU es más rápida?

hay q tener claro los cpis y RI de cada cpu:

cpia: 0,2*2 + 0.2*1 + 0.6*1
RIa= RIa (no se sabe)
cpib: Aqui es importante saber que en la cpub hay un 20% menos instrucciones que la cpua (80%), ya el salto y la condicion va en una misma instruccion. Ya q las cpis son proporciones ( % de la aparicion de la instruccion * ciclos de la instruccion), ese % no es respecto 1, sino respecto 0,8, por lo dicho anteriormente y como bien ha dicho kNo:
cpib= 0,2/0,8*0,2 + 0,6/0,8*0,8
RIb= 0.8*RIa

clka es el 25% mas rapido que el clkb, por lo que el clkb es 1,25*clka. Recuerda, no hablamos de frecuencias, aqui cuanto menos clk, mas rapido es.
Si clka es un 25% mas rapido que clkb, es que clka es un 3/4 de clkb, no 1,25 de clkb

Quedando la ecuacion de ganancia asi:

    RIa * (0,2*2 + 0,2*1 + 0,6*1) * clka
G=--------------------------------------
    0,8*RIa * ((0,2/0,8)*2 + (0,6/0,8)*1) * 1,25*clka


Y ya esta, se simplifica RIa y clka y se saca. Si >1, cpua es mas lento, si no, cpub mas lenta.

Da 0,96, por lo que el denominador (tcpub) es mayor, tarda mas, es decir, A es mas rapido, B mas lento.

Est eproblema esta tirado. El examen de enero estuvo TIRADO. Yo tuve el de DAA con todo dos dias antes y no pude estudiar del todo para este, pero le estoy dando caña esta semana y me estoy haciendo facepalms cada dia, que facil que era! dios! los problemas estaban resueltos en las transparencias! y no hay mas de 10 problemas en todas las transparencias!
meloncito escribió:Hola, yo tambien tengo el examen el lunes. Tengo ese problema resuelto en clase de teoria, que es el mismo o parecido al que se puso en el examen de enero.

Ejemplo: Suponer que estamos considerando dos alternativas para una instrucción de salto condicional:
CPU A: Una instrucción de comparación inicializa un código de condición y es seguida por un salto que examina el código de condición.
CPU B: Se incluye una comparación en el salto
En ambas CPU's, la instrucción del salto condicional emplea 2 ciclos de reloj, y las demás instrucciones 1 (se desprecian las pérdidas del sistema de memoria). En la CPU A, el 20% de todas las intrucciones son saltos condicionales; como cada salto necesita una comparación, otro 20% de las instrucciones son comparaciones. Debido a que la CPU A no incluye la comparación en el salto, su ciclo de reloj en un 25% más rápido que el de la de B.

¿Que CPU es más rápida?

hay q tener claro los cpis y RI de cada cpu:

cpia: 0,2*2 + 0.2*1 + 0.6*1
RIa= RIa (no se sabe)
cpib: Aqui es importante saber que en la cpub hay un 20% menos instrucciones que la cpua (80%), ya el salto y la condicion va en una misma instruccion. Ya q las cpis son proporciones ( % de la aparicion de la instruccion * ciclos de la instruccion), ese % no es respecto 1, sino respecto 0,8, por lo dicho anteriormente y como bien ha dicho kNo:
cpib= 0,2/0,8*0,2 + 0,6/0,8*0,8
RIb= 0.8*RIa

clka es el 25% mas rapido que el clkb, por lo que el clkb es 1,25*clka. Recuerda, no hablamos de frecuencias, aqui cuanto menos clk, mas rapido es.
Si clka es un 25% mas rapido que clkb, es que clka es un 3/4 de clkb, no 1,25 de clkb

Quedando la ecuacion de ganancia asi:

    RIa * (0,2*2 + 0,2*1 + 0,6*1) * clka
G=--------------------------------------
    0,8*RIa * ((0,2/0,8)*2 + (0,6/0,8)*1) * 1,25*clka


Y ya esta, se simplifica RIa y clka y se saca. Si >1, cpua es mas lento, si no, cpub mas lenta.

Da 0,96, por lo que el denominador (tcpub) es mayor, tarda mas, es decir, A es mas rapido, B mas lento.

Est eproblema esta tirado. El examen de enero estuvo TIRADO. Yo tuve el de DAA con todo dos dias antes y no pude estudiar del todo para este, pero le estoy dando caña esta semana y me estoy haciendo facepalms cada dia, que facil que era! dios! los problemas estaban resueltos en las transparencias! y no hay mas de 10 problemas en todas las transparencias!



gracias tio!

ambos tuvimos la misma situacion en enero por lo que veo, jejejeje

y lo que más me jodio fue quedarme con un puto 4.3 y este problema mal hecho [+furioso] por eso estaba tan interesado en saber bien como cojones se hacia, tengo una corazonada de que el examen va a ser muy parecido

segun david gil (el de sistemas operativos) está bastante ocupado con la investigación esa y el mismo me ha confirmado que no va ni siquiera a venir a españa para el examen ni para la correccion, es más en una la millones de tutorias que he tenido con david, estuvimos hablando y el será el coordinador de la asignatura el año que viene

a ver si hay suerte, aun me queda mirarme segmentación y lo de la memoria cache y e/s (menos mal que lo ultimo es bastante facil y que lo 1º me lo miré bien en su dia y ahora me será más fácil)

bueno, si quieres te invito a una caña o algo al salir del examen
aclapes escribió:Es TCA = TCB * 1.25; eso seguro.


Si el ciclo de reloj de la máquina A es un 25% más rápido que el la máquina B significa que su tiempo de ciclo dura un 25% menos que el de la máquina B, por lo tanto:

TC A = TC B - (TC B · 0.25) = TC B · 0.75

Hay que recordar que cuando se trata de tiempo, mejor es el menor tiempo.
gracias a todos!

he aprobado!!! tengo un 5 pelao pero me da lo mismo!

yuju!
Enhorabuena Teniente Dan ^^
Teniente Dan escribió:gracias a todos!

he aprobado!!! tengo un 5 pelao pero me da lo mismo!

yuju!

Yo tb, un 5.7 x_D

Enhorabuena, pq lo hemos hecho solo 10. 20 suspendidos y 20 no presentados, y la nota mas alta un 6 y pico...
Yo me esperaba un 7 minimo. Maldito test, estaba segurisimo de las 9 que he contestado y al final haciendo calculos, solo me han dado 4 puntos del test (un 1,4).
Estoy por ir a la revision, pero no se si los suspendidos me apedrearán xD
es que lo de ser tipo test a mi me ha matado

donde se ha visto que los ejercicios practicos sean tipo test y encima 1 mal te reste 1 bien, la teoria aun...

pero bueno, vamos a olvidarnos y a disfrutar del veranito!

aunque aun me queda ped :(


salu2
15 respuestas