Habéis mirado algo de los ejercicios, habéis dejado para verlo hoy, las soluciones, bueno, contadnos un poco, porque tienen muchos errores, las soluciones. Si, yo os decía que hay muchos errores, si que luego se pueden utilizar muy bien los ejercicios para estudiar, pero la primera vez, pues, es poco fiel, porque vienen mal, entonces no podéis estudiar mal. Como no son muchos, se trata de hacerlos para que los tengáis ya corregidos, vosotros en vuestras hojas, y luego, pues, ya estudiar por ahí, por el libro, de cada examen, porque en el examen los ejercicios si que no los vais a poder llevar resueltos. Entonces, si queréis, hoy, igual en media hora ya los hacemos todos, empezamos con el tema 2, hacemos así por encima a los que vea yo más significativos, y si tenéis duda de alguno del tema 1, me preguntáis. Yo tengo con el 12, por ejemplo, que yo tuve una solución distinta, claro, no sé si la sabía con respecto a la otra solución que venía. Con el desperdicio 11. Y luego el 11 también, que es similar, que no lo hice, y a mi mejor no lo hice. Vale, pues, miramos. Si, el 12 es de detectar dependente, me parece. Que no salió distinto, ahora, de reorganizar el código y de poner operaciones, ¿no? Y aquí podías hacer... Eh, bueno, creo que era todo. Eso no... No recomendaría mucho. Ponían demasiados. Y los del principio los fuisteis haciendo, los de las fórmulas. Y eso, si, ¿qué tal eso? A ver. Visteis así como se piensan y sobre todo los corregisteis. Los que están con erras. No sé si hay gente en los foros que ha puesto alguno correcido. Si, también hay alguno por ahí. Por ejemplo, el 1 y el 2 ya los habíamos hecho el otro día. Vamos a hacer rápidamente a partir del 3. Aunque sea para verlo por encima. Y sobre todo por si se puede aplicar algo teórico en ellos para que lo veáis explicado de forma práctica. Por ejemplo, el 3 es muy interesante. Este me parece que es el que decimos que venía repetido en el libro. Este, si os lo pueden preguntar en el examen entonces hay que saberlo hacer bien, ¿vale? Porque con respecto a este no viene nada en el libro. Entonces tenéis que saberlo hacer para que si os lo preguntan se podáis hacerlo rápido. Entonces en este tipo de ejercicios nos van a decir que tenemos un procesador sin segmentar necesita 4 segundos. 200 nanosegundos para procesar una instrucción y va a haber que calcular la aceleración que se obtiene en dos casos. Y luego hay que comparar la velocidad de los dos casos para decir cuál es más rápido. Entonces, en el primer apartado nos dice que un procesador tiene una segmentación de 5 etapas. Eso es lo que explicábamos el otro día que eran 5 etapas, 5 segmentos o 5 operarios. Y entonces en cada etapa se consume al mismo tiempo. Esta es la frase clave ahí para poder hacerlo. Entonces, luego también nos dice estas características son las que os decía que os vienen en los ejercicios pero tenéis que entender muy bien la teoría porque aquí os pueden dar sólo esto os pueden dar más cosas y entendiendo bien la teoría luego vais a aplicar bien los números. Entonces aquí fijaos que nos dice que este procesador nos da en cada etapa un sobrecarga de 10 nanosegundos. ¿Vale? Y tampoco existe ninguna detención en la segmentación. Eso también es importante. Y entonces, pues nada, la operación que hay que hacer a partir de aquí ya es la solución. Nos dice que en la segmentación de 5 etapas tenemos bueno, aquí nos lo dicen palabras. Lo que hay que hacer es los 400 nanosegundos que necesita el procesador para procesar una instrucción se divide siempre entre el número de etapas. ¿Vale? Y después se le sumaría los 10 nanosegundos que nos da cada etapa de sobrecarga y nos da 90 nanosegundos cada etapa. ¿Vale? Es importante que lo sepáis. Aquí estaría más correcto si pusiera etapa. Ahí, ¿vale? 90 nanosegundos por etapa. Y esto aquí lo veis en números pero en la segmentación enlazándolo con unos conceptos teóricos sabéis lo que significa. ¿Os acordáis de las gráficas que venían así enlazadas? ¿No? 5 etapas significa que teníamos 5 filas 4 y 5 ¿Vale? Y esta porción de aquí lo que sobresale en cada una de las etapas es lo que estamos calculando ahí. ¿De acuerdo? Ese es el concepto que si lo queréis dibujar al lado del ejercicio para tenerlo también en dibujo pues es así. Entonces esto quiere decir que cada 90 nanosegundos pues ejecutaría una nueva instrucción. ¿Vale? La primera es la que ocuparía 400 nanosegundos en lo que tardaría en ejecutarse. ¿Vale? Y entonces luego esta es una fórmula que realmente se aprende con los ejercicios como se calcula la aceleración ahí vale que ya lo tenéis ahí serían 400 entre 90 son 4,45 ¿Vale? Es la aceleración que se consigue con el procesador segmentado con respecto al que está sin segmentar. Entonces aquí estos ejercicios no sólo los utilizáis para que veáis la solución y ya decís bueno pues ya lo sé hacer ¿No? También intentad entender la teoría con ellos darles más vueltas o incluso leer la teoría al lado de estos ejercicios para entenderlo bien. Y luego rápidamente el apartado B nos lo complica un poco más dándonos más datos pero al final hay que tener en cuenta que sigue siendo un procesador en este caso un procesador B con la misma segmentación de cinco etapas y ahora cada etapa ya no dura lo mismo sino que dura unas 60 60 80 y 100 ¿Vale? Entonces lo que nos tenemos que con lo que nos tenemos que quedar es con la etapa mayor ¿Vale? Que es 100 en este caso para fijarnos el que de todas las etapas que son 5 la que nos va a marcar la velocidad de ese procesador es la etapa más lenta entonces por eso tenemos que coger el tiempo mayor siempre y cogemos el 100 nos vuelve a decir que tenemos una sobrecarga por etapa de 10 90 segundos ¿No? Entonces en este caso habría que sumarle 100 más 10 para conseguir la duración o lo que tarda en ejecutarse cada etapa ¿No? Que serían 110 En este no se sabía una rata No Este creo que está bien Este lo tenéis bien ahí ¿No? Al cabo Fijaos que una etapa necesita 110 nanosegundos ¿Vale? Para ejecutarse ¿Vale? Y ahora nos dice aquí que Bueno, voy a leerlo por aquí que la sobrecarga es de 10 nanosegundos por etapa un 40% de todas las instrucciones son detenidas durante un ciclo de un ciclo de reloj y un 10% durante dos ciclos Esto también es muy común que os lo hagan el hacer las cosas por porcentajes en vez de utilizar el 100% Entonces primero os calcularán el 10% de las que generan dos ciclos de detención ¿Vale? Y después el 40% son las que generan un ciclo de detención ¿Vale? Entonces aquí en este ejercicio lo más importante es saber que Espera que lo tenía por aquí Nosotros cuando se ejecuta una etapa tenemos que saber que 110 nanosegundos es por la ejecución ¿Vale? Eso siempre va a estar ahí y luego hay que sumarle las detenciones que son 110 también cada uno Por eso cuando os ponen que hay una etapa de cuando hay 10 nanosegundos de detención No Perdón Cuando hay un ciclo de reloj de detención realmente es como que esa instrucción necesita dos ciclos ¿Vale? 110 más 110 Es decir un ciclo en el caso del 10% No, del 40% y 330 en el caso del 10% ¿Vale? Esto de aquí 0.1 por 330 y 0.4 por 220 ¿Vale? Y después Ah bueno y luego el resto de instrucciones que es el 50% que nos queda serían 110 nanosegundos sólo de la ejecución ¿Vale? Sin ningún retardo por detención ¿Vale? Entonces aquí siempre acordaros sobre todo de esto de aquí Que los 110 siempre se se utilizan ¿Vale? Y a mayores se utilizan otros 110 por cada ciclo que haya de detención Eso os fijasteis en ello Es lo más importante aquí ¿De este tenéis alguna duda? Ya digo lo más importante quedarse aquí con el número más alto y tener en cuenta que siempre se utilizan unos nanosegundos para ejecutar una una etapa ¿Vale? de una instrucción Luego el 1-4 ¿Este como lo visteis? ¿Lo hicisteis también? Eh Yo creo recordar que tuve algún problemilla Pero que en el foro creo que venía otra solución diferente a la que Bueno es que tengo un montón de soluciones A ver que os digo yo cuál es No en este caso la que os viene ahí sería la correcta ¿Sí? Sí ¿Ves? ¿Sí? Esta Es que ya no fue la que tenía yo Pero bueno Vete haciéndolo por si acaso Es que este y otro que viene más adelante me parece son bastante liosos por el tema de los porcentajes Sí Hay uno muy lioso que es el el que os dije el otro día que tenía una rata que es el 1.7 Vamos a hacerlo también después Ah pues a lo mejor hay uno que tenía una rata Eso sí Ese da bastantes problemas Vamos a ir haciéndolos así rápido sobre todo para que os quedéis con la solución correcta y luego los estudiéis más profundamente bien Entonces bueno aquí en este caso nos da vamos a verlo Tenemos otro procesador que se llama A y queremos añadir unha instrucción alu que tenga un apelante usando fuente en memoria vale? y el otro se encuentra ya cargado en un registro en el 25% das operaciones del alu obteniendo desta manera el diseño de outro procesador B que sería el que incluye las mejoras Si en este novo procesador aumenta en uno el número de ciclos del reloj de los altos y se supone que la nueva instrucción consume dos ciclos ¿Cuál de los dos diseños es el más rápido? De nuevo nos van a preguntar una comparación para que se utilicen bien los porcentajes Entón así este se ve muy bien porque como está bien hecho voy a ir rápido Tenéis aquí el ciclo dos ciclos por instrucción originales que es antes de hacer ninguna modificación el procesador A vale? de ciclos por instrucción Se calcula así utilizando los porcentajes esto quedaros con la forma de hacerlo porque sobre todo esto es para que practiquéis sin mirar a solución vale? una vez que lo entendáis hacedlos sólo con el enunciado tapáis esto y lo hacéis porque en el examen eh es muy fácil que se os olvide algún paso y que os perdáis y son ejercicios fáciles porque cuando los estudiéis os entendéis bien pero como hay que quedarse con muchos pasos pues es lo complicado Que yo crecí que utilizaba la fórmula del libro CPI igual al número de instrucciones por el CPI de cada una de ellas entre n e i pero claro eso no tiene lógica aquí son ejercicios como que te enseñan una nueva forma que el libro no te explica por eso os decía que bueno realmente si en el examen te dejan el libro pero te ponen un ejercicio de estos e imaginaos que nunca habéis tenido una solución pues es complicado de sacarlo y ha pasado en algunos porque no ponen la solución atrás o algo ya bueno claro es que por lo menos que pregunten lo que viene en la teoría eso es pero por eso os decía que bueno hay que ingeniárselas como se pueda para entender muy bien la teoría y hacerlo la mejor forma posible ya veréis luego cuando veamos el tema dos que hay unas cosas así que suelen utilizar mucho y que es así realmente que se os ocurra en el examen todo el tema de los predictos de Smith y eso hay veces que se inventan uno dándoles muchas vueltas y en el libro los gráficos entonces os perdéis a la hora de hacerlos pero bueno los veremos y luego está en el suerte en el examen entonces aquí rápidamente veis como se hace lo aprendéis aquí del ejercicio se multiplica cada porcentaje por los ciclos de instrucción realmente es algo lógico esto entonces luego ahí ya nos sale el CPI original luego aquí esto es una multiplicación el tiempo original sería el CPI por el recurso y por la duración del ciclo aquí en el libro creo que le da otro nombre a esta fórmula el recuento original de instrucciones el tiempo de CPU debe ser sí el tiempo de CPU es este no y este de aquí con el recurso el número de instrucciones es claro NI es como se llama el libro y este de aquí el tiempo de ciclos si así el tiempo claro ahí si queréis lo podéis poner en el ejercicio para asociarlo con las ideas pero de todas formas esa fórmula han puesto ahí para saberlo es que luego al final no se usa esta sí porque en realidad lo que comparamos es el 1,57 al final claro es que muchas veces hacen unas deducciones con fórmulas que no se sustituyen todos los valores por ejemplo esta fórmula de aquí veis que solamente se ha sustituido el valor este el del CPI y por ejemplo luego más abajo hacen lo mismo en esta de aquí pero con 1,703 y claro tú al ver esto se te enciende la luz y dices ah pues es como esta y ya por eso sacas esta asociación 1,57 bueno al revés sale siempre el valor 1,703 partido 1,57 y eso os da el porcentaje es que esta de aquí nos va respondiendo para que no os liéis y quedaros con la que os dije el otro día vale si si hay que hacer menos pasos pero es al revés lo visteis eso no es 1,703 entre 1,57 y ya os da 1,08 y es eso vamos que eso es la aceleración al final si es bueno aceleración en este caso es bueno el tiempo más rápido si el porcentaje que se hace más rápido de uno al otro si puede que sea la aceleración es que estas fórmulas aquí a veces se utilizan de una forma otras de otra entonces con esas siempre salen y luego aquí en el ejercicio para explicaros algo así significativo esta fórmula se saca porque aquí es lo que os digo aquí veis la solución pero si lo tenéis que pensar no sabéis como continuar realmente porque tú vas haciendo todo esto y no tienes ningún dato sólo hasta que sacas esto eres capaz de de asociarlo con lo anterior aquí entonces esto es de ver como se hace ahí el 43% que se tiene se le resta un 25% vale aquí quedaros muy bien con como hacen estas operaciones por través de una forma y detrás de otra aquí es el 43% por 0,25 vale aquí está todo claro ahí no sabes porque se hace eso yo tuve que ver otra solución y lo vi mejor que en ese colgaron otra solución si es que aquí tenemos en la ALU un 43% de esta instrucción bueno y al meter la otra ALU se encarga de otra parte de ese 43 claro entonces por eso hay que restarse de un 25% que es el 25% del 43 si bueno entonces más o menos es que digamos que las instrucciones que hay de ALU son sólo el 43% entonces luego hay que hacer el 25% del 43% 43 y se le resta ya te quedan 32 y después en las otras ya es lo mismo tenemos un 21% y se le quita un 25% del 43% porque estamos hablando de las cargas vale que es lo que nos ponen en el enunciado si es como que hay que ir entendiendo todo lo que nos ponen en el enunciado por ejemplo las de almacenamiento no se tocan por eso queda el 12 igual y luego los altos tan pocos y las nuevas pues ya es eso que calculamos en mayores ese 10,75 si os fijáis este 10,75 es lo que se suma aquí a aquí para que nos dé algo que es lo que quitamos vale entonces se introduce esto nuevo y se quita de la alu y se quita de las cargas y luego ahora obtenemos un total del 89 con algo por ciento y ahora tenemos que ajustar al 100% si hay que normalizarlo es que aquí nos da un 89,25% y eso no puede ser tiene que dar siempre un 100% vale entonces por eso hay que ajustarlo con esa ese factor que os viene ahí no tiene ninguna explicación es para normalizar un valor se divide arriba el como el 1 nos da ese factor de conversión y ya se multiplica esto es normal eh se multiplica al 32,25 los tantos porcientos como si no estuviera y ya de esta forma nos da el 100% vale y después pues nada luego hay que calcular el CPI nuevo ya es lo mismo que teníamos antes pero en el en el procesador B y ya veis que se utilizan esos porcentajes a partir de aquí es lo mismo que antes pero con datos que hemos calculado aquí lo veis por un ciclo por dos estos que tenemos aquí nos da un valor y después se calcula el tiempo nuevo de ejecución el tiempo nuevo de ejecución arriba no lo había calculado el tiempo de ejecución bueno es el el tiempo original cuidado con esto porque lo nombra distinto aquí sería tiempo original de ejecución y aquí tiempo nuevo ejecución es lo mismo vale y aquí este es un error bastante común que os olvidáis eh fijaos que se multiplica al 0,8925 por el recuento original de instrucciones lo veis no porque en lo más cómodo se os olvide esto no y que ya pongáis directamente esto para compararlo con lo de arriba es el resultado que sacasteis aquí lo multiplicáis por la duración del ciclo bueno perdón todo no tacháis esto lo veis no vais a calcular el tiempo nuevo y decís vale pues como arriba pongo el 1,908 pongo el recuento y pongo la duración 08 entre 1,57 pero eso estaría mal vale no podemos multiplicar por 0,89 no eh bueno si me refiero que estaría mal si no lo hacemos claro vale y esto sabéis porque es porque tenemos que volver de nuevo a lo que teníamos antes vale la normalización esta se hace para poder sacar el CPI nuevo pero una vez que tenemos el CPI nuevo es como que ya tenemos que deshacer ese cambio que hemos hecho y por eso de nuevo se vuelve a poner 0,8925 vale entonces la idea que hay que sacar de aquí básicamente es que para calcular un CPI hace falta que aquí tengamos un 100% esa es la idea del ejercicio por eso no os olvidéis nunca de volver a multiplicarlo aquí que es como si volviéramos a multiplicar el CPI y saludo y luego al final pues haciendo esta de aquí ya os da el porcentaje que es un 8% más rápido el original que el nuevo ojo vale que en este caso no es el nuevo más rápido más o menos tenéis os queda alguna duda lo que me interesa es que os quede bien puesto ahí y estéis seguros de que esta es la solución buena y que os quede bien con estos conceptos clave que os voy diciendo que se os queden por si os lo ponen con otros números o lo que sea que sepáis que aquí hay que hacer la normalización y luego deshacerla vale es lo que se aprende después de esto luego este de aquí es facilito el 1.5 en este no hay nada así reseñable este es fácil este el único problema que tiene es el de los porcentajes que nos diéis para hacer los cálculos este lo pudisteis hacer bien vale pues si ya son este no nos paramos porque este no tiene ninguna multiplicación el 1.6 es igual que el de antes este hay que tener mucho ojo con él es el que os comentaba antes el 1.7 aquí tenéis que tachar esto que no sé porqué lo ponen no se puede hacer vale esto realmente sería un tío que para hacerlo más fácil el problema dijo supongo que todas las instrucciones de transferencia son de carga vale pero no es así porque el enunciado nos dice que vamos a ver lo que nos dice en primer lugar nos da estas dos instrucciones no una de carga y una de suma y nos dice que se sustituye por una de suma solamente vale entonces nos dice que se sustituye que la nueva instrucción hace que el ciclo del reloj se incremente en un 10% pero no afecta en ninguna forma al CPI y luego las frecuencias de instrucciones son 18% de saltos 36% de transferencias y 46% de operaciones y ahora nos dice el 2 tercios de las instrucciones de carga o sea dos tercios son instrucciones de carga ¿no? y el resto almacenamiento entonces lo que os decía aquí hay alguien que lo resolvió dijo pues todas son de carga y así se evitó luego hacer unos cálculos ahí al final vale entonces yo os voy a decir la solución correcta entonces aquí se trata de hacer un almacenamiento utilizando sólo variables sin utilizar valores todavía y tenemos que suponer que los dos rendimientos son iguales el nuevo tiene que ser igual al viejo luego calculamos o bueno escribimos la fórmula de cada uno vale? aquí serían las dos fórmulas iguales pero ponendo como subíndice viejo o nuevo después tenemos que tener en cuenta esta de aquí el ciclo nuevo que será 1,1 por el ciclo viejo vale un 10% más grande hasta aquí bien ¿no? es seguir el enunciado después hay que hacer sustituciones ahí tenemos que por un lado tenemos el rendimiento viejo que no se si ha hecho algo todavía en la primera no pone el rendimiento viejo igual que ahí y ahora el rendimiento nuevo es igual que el viejo pero multiplicado por 1,1 vale? de momento fácil y ahora hay que igualar esas dos expresiones estas dos vale? porque decíamos al principio del ejercicio que tenían que ser iguales entonces las igualamos y aquí veis que es lo que se iguala ¿no? rendimiento viejo igual a rendimiento nuevo porque ahí nos viene algo simplificado y no se ve bien entonces se despeja el recuento viejo y luego el recuento nuevo eso es lo que tenéis que que saber por ejemplo aquí en la primera línea lo que significa esta línea es que se ha despejado el recuento viejo vale y en la siguiente es que se ha despejado el recuento nuevo ¿lo entendéis? eso tenéis que apuntarlo vale? que primero es el viejo y luego el nuevo y de esta forma se llega al 0,91 este de aquí vale? porque es dividir aquí 1 entre 1,1 y ahora viene el problema hasta aquí é bastante sencillo de entender pero si se hace como nos pide el enunciado la solución sería esta 24% ¿no? en vez del 36% ¿cuál? el resultado que os dan ellos el final 0,01 ¿cuál os dan ellos? 36 tenía que ser 24 porque es con las de carga ¿no? si el 24% son instrucciones de carga si eso es sería así en este párrafo os lo explican bien pero lo hacen mal bueno aquí os dije otro día que no es un 25% vale aquí son 37,5% entonces nos dice para que ambas máquinas tengan el mismo rendimiento es necesario que el recuento nuevo sea un 9% menor que el recuento de la máquina original ese 9% es de 100 menos 91 se saca dai vale? y después hay que eliminar ese 9% del 36% esta es la clave eliminar ese 9% del 36% y como se hace eso? pues tenéis que hacer en primer lugar 2 tercios que son las instrucciones de carga del 36% que son las transferencias que tenemos vale y nos da como decía Rubén un 24% vale 24% son instrucciones de carga instrucciones de carga por lo tanto deducís que el 12% son de almacenamiento aunque no haga falta por eso os lo pregunto y ahora ya sí ahora es cuando hay que eliminar el 9% vale por eso que esto no es todavía el resultado final vale hay que eliminar el 9% de ese 24% que son instrucciones de carga vale este sería el paso 1 luego el paso 2 que eso ya se hace desta forma 0,09 esto ya es como prefiráis vosotros yo siempre nos hago así los porcentajes esto sería el 9% del 24% y para que me dé un tanto por ciento se multiplica por 100 vale y ya me da 37,5% que es lo que nos pide el enunciado es decir se eliminan un 37,5% eh instrucciones de carga vale lo veis no que hay que hacer todo según nos dice el enunciado y nunca suponer cosas que no son porque el resultado cambia completamente lo entendísteis más o menos luego la segunda parte del ejercicio es muy sencilla aquí ya vamos entrando en el tema de las instrucciones vale que son el otro tipo de ejercicios que tenemos hasta aquí digamos que son unos ejercicios tipo fórmulas luego vamos a tener ejercicios tipo instrucciones y por último el algoritmo de Thomas Hume en este tema vale entonces los de las fórmulas ya quedarían vistos y ahora lo que nos queda vamos a ver yo en esa parte no entiendo muy claro su explicación eh vale es muy fácil ya lo verás ahora porque al final casi parece más difícil de lo que es es tan sencillo como ver que estas dos fórmulas estas dos instrucciones perdón son una de carga y una de almacenamiento ¿no? entonces se sustituyen voy a hacerlo con un dibujo estas dos se sustituirían ¿cuál es la sustitución que dices que se hace? pues ahí en ese caso haz R2 eh de suma R2 0 R3 0 ah vale si está trabajando sólo sobre estas dos esto va aparte después si pues mira lo que nos dice el enunciado es que tenemos estas dos de aquí y las tenemos que sustituir por esto no entonces esto realmente ¿qué hace? tenemos un registro R1 esto siempre hace los dibujos para el plan de Knight y dentro de ese registro vamos a meter lo que hay en el registro Rb Lo voy a poner así para que se entienda Y después Se hace una operación de suma Que hace R1 más R2 Es decir, esto Lo que hay aquí dentro Más lo que hay en R2 Esto más esto Y lo meto En R2 Me quedaría el resultado aquí Pero claro, si yo estas dos instrucciones Las quito Y lo sustituyo por una suma De lo que hay Vamos, que no se hace la suma En realidad ¿No? Porque ahí ahora ya Sí, la suma sí que se hace Porque se está metiendo Esto significa que lo que hay en el registro 0 Pero me refiero con R1 Claro, es el problema que hay Porque aquí lo que se está haciendo es Meter esto Más Lo que hay aquí En R2 Esto más esto Lo metemos aquí ¿No? Y eso Queda en R2 Pero si yo ahora Hago una suma De R1 Más R3 Y lo quiero meter en R3 Es tan sencillo Como que ya no existe En ningún sitio el R1 No hay que complicarse Ni siquiera con todo esto que hemos hecho Realmente sólo ver Que si aquí Sólo aparece esta instrucción ¿Dónde veis un R1? En ningún sitio, ¿no? Entonces Nunca se podría sustituir Porque necesitaríamos un R1 En algún sitio Necesitaríamos unha instrucción de carga Que cargase el R1 Con algún valor Por eso nos dice ahí Que si sustituimos las dos instrucciones Por la nueva Anulamos el registro R1 Impidiendo la correcta ejecución De la última instrucción Es muy fácil Realmente en el examen Tienes que explicar Que no existe ninguna instrucción Que almacene nada En R1 Sí Yo de todas formas También vi un ejemplo más sencillo Que era Cargar R1 en RB Y luego hacía una suma R3, R2 y R1 Y eso ya era imposible de hacer Sólo con dos operaciones En medio de contraria En cuanto Claro Porque te olvidabas de un registro De sumar un registro Pero bueno Aquí Que es una solución que colgaron También Realmente No hace falta ninguna solución Para este ejercicio Sólo es explicar en una línea Que no hay ninguna instrucción Antes que esta Que se utilice el R1 Y ya está Vale No os compliquéis Con esta parte Luego estaría la 1.8 Que ya nos empiezan a dar códigos enteros Con bucles Y demás Véis por ejemplo Que aquí Nos están preguntando Cuántas referencias De datos aprendidos Que jugarán Instrucciones de contraria Este es para que entendáis Cómo funciona un bucle Visteis el funcionamiento De un bucle Lo entendisteis más o menos Yo lo entendí en el ejercicio Porque aquí no había ninguno No, pero Un bucle Más o menos Claro Ya estamos desde El espacio Ya estamos desde el bucle Claro Aquí realmente os va explicando Paso por paso Lo que se hace Desde la instrucción Que salta al bucle Y luego la que vuelve Etcétera Por ejemplo veis Que es una instrucción Para la preparación Que es I1 Que ahí no lo pone Después Las ocho instrucciones Que tiene el cuerpo del bucle Por 100 Vale Porque el 100S sale De Que tenéis aquí un 400 Y se va saltando de 4 en 4 ¿No? 400 entre 4 100 Y nos da aquí 800 instrucciones Y por eso Se suma esa Un El 1 Al 800 Si nos da 801 instrucciones Ejecutadas ¿Vale? Luego El número de referencias a datos En memoria Sería Una vez Para la carga de valor R1 En un registro Esta de aquí Cuatro veces por iteración Para la carga de valor R1 Y R3 Realmente aquí Nos está pidiendo Los LDs y SDs Que hay ¿Vale? Entonces es contarlos Siguiendo el bucle Es fácil ¿No? Esa parte Y luego aquí Os explica Lo de por qué es 100 Que es lo que acabamos De explicar Hay que daros Que los números Estos son bytes Y estos de aquí también Entonces hay que hacer la división Para saber cuantas veces Cuantas iteraciones Nos dan los bucles Etcétera Luego el 1.9 El 1.9 Introduce Algunas cosas Que en el libro de teoría No quedan muy claras Son esas pequeñas cosas Que os dije Que teníais que tener en cuenta Y se sacan del enunciado Y bueno Con este ejercicio Se aprende Como se sacan algunas ¿No? Por ejemplo Lo más importante aquí Es esta frase Que para evitar cambios No deseados En el registro de estado Al utilizar la estrategia Predecir como no efectivo Es necesario Situar Una detención Inmediatamente después De la capa I ¿Vale? Y esta frase Es lo que hace Quizá que Penséis Llegados a este punto Que no entendisteis Lo que viene en el libro Porque Cuando lo estudiáis en el libro No se introduce este matiz ¿Vale? Que veis ahí ¿Vale? Entonces Si lo hacéis Como os pone en el libro Os saldrá de una forma Y si hacéis este ejercicio Teniendo en cuenta este matiz Os saldrá de otra Entonces ya depende De como os lo pregunten Por ejemplo aquí Teniendo en cuenta esto Veis como es la solución Por un lado estarían Las estrategias De predecir como no efectivo Y luego predecir como efectivo El salto que sea ¿No? Veis que aquí Donde pone una comilla Que estos vienen tan mismales Bueno, yo por lo menos Mirando el libro Los puse de otra forma Esto lo tenéis corregido Yo os lo voy a poner Lo más parecido al libro posible Para que luego Lo podáis asociar un poco Y ver si lo entendéis ¿Veis que en el libro Se utilizan comillas? Para decir que han empezado otra vez Claro Una comilla simple Aquí en el superíndice Significa que la instrucción Es la instrucción destino del salto Por ejemplo aquí Iría una La podéis poner En este iría otra Aquí otra y aquí otra Porque esta instrucción aquí Con estas cuatro etapas Es la instrucción destino Del salto Voy a poner aquí Instrucción Destino Y cuando vienen dos comillas Es porque significa Que estamos hablando De la siguiente instrucción Esto es todo Nomenclatura del libro Siguiente instrucción Por ejemplo Este quedaría hecho así Veis que aquí Se predice el salto Como no efectivo Entonces tenemos Es la bifurcación en este caso La instrucción De la instrucción Que sea Y luego aquí se hace el ir Y ya aquí saltamos A la instrucción destino Solo hacemos el ir Siguiente Y ya se pone entera La instrucción destino Luego cuando el salto condicional No es efectivo Se pone La primera instrucción Siempre va a ir igual Esta de cuatro etapas Siempre es igual Y luego en este caso Se mete ahí la detención Por esta frase Porque hay que saber De la teoría Que justo en este punto Es donde puede haber conflictos Y se tiene que meter ahí La detención Para que no Haya errores Luego En el salto condicional efectivo Metemos aquí el ir Como antes La detención iría aquí Y luego aquí esto ya si que es La instrucción destino Vale, es decir Nosotros Cogemos la instrucción Que es el salto realmente Y pasamos a la siguiente Que nos aparece De la siguiente Solo ejecutamos Su ir En cuanto ejecutamos ese ir Ejecutamos una Una detención Y después ya Después de esa detención Como sabemos que el salto es efectivo Ya nos vamos al destino Vale, por eso se ponen las comillas Aquí No lo visteis algo lioso El vector igual Sin comillas ni nada Porque es como que no sabéis Este ir Si es de la instrucción destino O es de la siguiente Vale Entonces ahora vamos a ver El caso en que siempre Vamos a predecir el salto Como efectivo Pase lo que pase En la primera de ellas Igual que antes Esta sería la instrucción destino En la siguiente El salto condicional No es efectivo Pero como nosotros Hemos pensado que si Pues se ha ejecutado el ir De la siguiente instrucción Y luego aquí Iría El ir De la instrucción destino Vale Y luego Ya iría La siguiente instrucción El primer ir Es de la De la siguiente instrucción La que La que aparezca a continuación del salto Que puede ser cualquier cosa que tome Digamos que aquí Este primer ir Se corresponde con la siguiente instrucción Del cod Lo que hay ahí, ¿no? Luego el segundo ir Que viene ahí Sería La instrucción a la que salta Al predecir como efectivo ¿No? Nosotros hemos Predecido esto como efectivo, ¿no? Entonces ya saltamos directamente Nos vamos ahí Pero ¿qué pasa? Que ahora es no efectivo Entonces vuelve a leer El ir de la instrucción esa ¿No? El Eso, eso Exacto Vuelve a leer este mismo Y ejecuta el resto de la instrucción Y continúa la instrucción esa Tenemos aquí el código que sea, ¿no? Este sería El salto Que es la fila de arriba Luego pasamos a esta de aquí Que nos viene el ir Esa es esa etapa ¿No? Como vemos Como estamos en esta estrategia Ya nos saltamos directamente Nos vamos aquí Pero ahora vemos que no es efectivo Para hacer los cálculos Entonces nos volvemos Y ya se ejecuta entero ¿Qué pasa con esto? Pues que ese ir Se ha ejecutado dos veces Pero es el mismo Esa es la forma de hacerlo Esa es la forma de pensar esto Luego os lo poden preguntar como sea Pero Siempre es así El problema es aquí con las detenciones Que hay que saberlo de la teoría En qué momento meterlo justo Y luego aquí tenemos El salto condicional efectivo Que aquí veis que Hemos supuesto esto Entonces empezamos con el ir De la siguiente instrucción Y después ¿Qué hacemos? Pensamos que es efectivo Ya nos vamos directamente Y como realmente es efectivo Pues continuamos ¿Entendéis la forma de pensar esto? Por un lado es Lo que nosotros suponemos antes de empezar Que es como que nos lanzamos a la piscina Sin hacer los cálculos Y luego es cuando decimos Ah vale, espera Que después de hacer los cálculos Me he confundido Y tengo que volver atrás Eso por ejemplo en la práctica Luego se tiene que deshacer esos cambios ¿Vale? Porque a lo mejor se ha hecho algo En este caso creo que no Pero hay veces que se ha hecho algo O lo explica por ahí el libro Y se tienen que deshacer esos cambios Al dar para atrás Y bueno Y esta parte de aquí A ver Esta parte de aquí Yo la vi liosa ¿Vale? Yo como lo hice fue Dividir también por estrategias Es decir, aquí predecir Como efectivo Y aquí predecir Como no efectivo Y muy sencillo Yo dije Pues la bifurcación Dos ciclos ¿Vale? Porque estos ciclos Ahora os voy a explicar de donde salen Salto efectivo Pero bifurcación no es uno Es que yo lo hice de otra forma distinta Aquí ahora os digo como hice yo Salto efectivo Salto no efectivo Y el GPI El efectivo son dos ciclos Y el no efectivo tres Entonces yo Eso es de ahí Lo saqué De Estamos en el Efectivo Pues era al revés El salto efectivo y el salto no efectivo Pero es que estoy intentando acordarme Dos, dos, tres No, él está bien así Porque estaba mirando esos valores Para deciros una forma más fácil De sacarlos Pero cuando te refieres a los tres ciclos Son los que hemos perdido, ¿verdad? Al hacer el salto Y al leer instrucciones que no teníamos que haber leído Es lo que estaba intentando mirar Vale, vale Si, son Los Si es que no sé como se llama realmente Es lo que aparece aquí al final Esto de aquí Si, yo estaba buscando por ahí Eso que Que sobresale ahí Es que no sé como llamara eso No sé si es el tiempo Porque no es tiempo perdido tampoco Es el tiempo que trae la siguiente instrucción Acabar, ¿no? Si En acabar Lo que es la instrucción de salto La diferencia entre una y otra Bueno, bueno Es como un truco para que Siempre lo sepáis hacer Os fijáis en los cuadraditos que sobran al final Y en este caso sería 2, 2, 3 Y en el otro ya no lo escribo Sería En el mismo orden 2, 3, 2 Y luego El CPI Pues se calcula Utilizando esos porcentajes Que nos da el enunciado, me parece En la En los altos cuadrados Es un 30% Y en la explicación un 7 Entonces, pues muy fácil 0,07 por 2 Más Pues 0,3 Por eso 0,3 No 0,07 por 2 Más 0,3 por 0,7 Por Por 2 Más 0,3 por 0,7 Por 3 ¿Sí? Bueno, es que había que hacer Estos cálculos de aquí si están bien Estos de aquí Los porcentajes Es que las divulgaciones si es el 7 Por eso lo pusimos directamente Pero los altos condicionales Claro, son porcentajes El 30% son todos los altos Entonces ese 30% El 30 son efectivos Es decir, el 9 Y el 70 son efectivos Vale, es decir, el 21 Eso sí está bien Entonces, pues aquí lo que decíamos Aquí 2 por 0,21 Más 3 Por 0,09 ¿Vale? Y aquí Hay que Igual que aquí Suma un 1 En esta parte de aquí Tenemos que hacer una suma De 0,67 Por 1 ¿Vale? Porque es el porcentaje que nos queda 7 y 21 son 30 Y 9, 39 ¿Vale? Entonces hasta llegar a 100 Es 63 Más 0,63 por 1 Vale, y ya os daría el resultado Lo mismo para el de abajo Lo importante de aquí Es saber Bien esta parte Lo de ahí Porque os lo preguntan de varias formas Entonces, bueno, así para acabar Los ejercicios de Tomasulo No los vamos a ver Nos quedan por ahí ahora Los de dependencias de datos Que esto si queréis Me preguntáis dudas que tengáis Esto se trata de sacar siempre Las dependencias Tipo RAU, WAD Y las Las que no eran Eran las RAD ¿Vale? Eran WAD, RAU Y WAD Eso, vale Aquí fijaos que también es otro error Porque el tío que lo hizo Supuso que solamente Se sacan los RAU ¿Vale? Pero hay más Por ejemplo Entre la 2 Y la 3 Hay un WAD La I y la 1 O sea 1 y la 4 Hay un WAD Y la 2 y la 4 Hay un WAD Y luego también faltaba Y 1 y 2 Por eso es lo que pone Aquí Este Entonces aquí El otro día me parece que teníais dudas de esto Teníais algo Sabéis sacarlo siempre Las dependencias Aquí nunca le hagáis caso a los ejercicios Porque en algunos os ponen de más Y en otras de menos Se trata de que las entendáis Y que pongáis todas las posibles Siempre ¿Vale? Por ejemplo aquí veis que En esta solución Nos da estas, ¿no? Pero ahí creo que sí que estaban todas Estos los hicisteis En esas os dieron todas ¿Os salió alguna más? Hay una que Se dividían Las etapas en dos partes Y Primero se leían una Llego otra Se escribía Y ahí había una que no decían en el libro Bueno, las soluciones que proponían Pero creo que no era este caso En este caso De los ejercicios del libro En uno de más Igual es en el 12 ¿En el 12? Es una que por ahí A ver si Sí, era esa Luego viene todo Escribe la primera mitad de una etapa Y la segunda mitad de la otra etapa Es cuando lee ¿En el primer punto decís? Suponiendo eso Sí A ver si es eso Pues bueno, a ver si luego lo había hecho mal También para tener claras Muchas veces estas cosas Es bueno hacer la tabla Para que veáis Cuando se escribe y cuando se lee Por ejemplo aquí es el 12 Y el 13 Y vosotros En este En el primer punto nos da esto Y a vosotros os pueden salir A mayores estas I1 I5 Con R3 Por ejemplo, ¿no? O también I2, I6 Con R1 Pero estas no son Estas no son Porque al hacer la tabla se ve La tabla está en aquí de simple En la primera Aquí está el R3 Y aquí El R3 Ya sé la que era La I2 y 4 La que La graba de I2 y 4, sí Como están divididas Las etapas en dos partes Ahí no me da A mí no me da problema Pero al ser así Se la da Como aquí Porque el tema no está ¿Eh? Es la I2 con la I4 Supone que no está dividida Sí, supone que no está dividida Ah, vale, vale Entonces sí Aquí, como Exacto, sí, sí La 2 con la 4 Sí En el enunciado se supone que está, ¿no? Que está dividido Sí, sí Vale, pues entonces No tenía que haber ahí No tenía que haberla puesto ahí ¿Dónde pones o que decís? De la división En el A Onde supone que los escritos se producen En la primera mitad De la etapa Right Y de la Estura ID Ah Claro Y la W Es la Quinta Es la quinta Y coinciden justo Pero claro, como una lee Y la otra escribe Pues no hay problema Claro Y él lo pone con un riesgo raro No tiene en cuenta ese No Claro, ves Pues ahí Es una de las cosas Que hay que tener en cuenta Y que ves Aquí saca todas las posibles Pero a lo mejor A vosotros salen otras Entonces siempre Fiaros de vuestro criterio Para eso Y luego los adelantamientos Yo creía que era Entre una instrucción Y la siguiente No entre una instrucción Y la tercera O cuarta Mientras se dejen Juntándose En el mismo tiempo Sí, en el AD En este 12 En el 12 El punto D Hablan de adelantamientos Ah, sí Sí Y luego la C También me salió distinta No, pues esas Las tengo marcadas bien La C Y la D Esta no Porque yo la necesité La no Esta Lo único que hice Fue poner 6 y 7 Y ya está Porque no hay terepto Para la otra Vamos, yo entiendo El adelantamiento Sí, es como Entre etapas No es de la siguiente Puede ser de cualquiera Vale Entonces sí Entonces ya Sí Y luego Volves a ver La parte de adelantamiento Cuando haces los ejercicios Para Sí, decime Si tienes alguna duda En la C Yo lo que hice fue Atrasar alguna operación ¿En cuál? En la C En vez de poner Una operación N o P Lo que hice fue Una instrucción La puse para atrás La atrasé Y no hubo problema Pero no sé si es que hay más soluciones Válidas Aparte de esa Sí, puede haber más Soluciones También Porque no entra Actuar Los registros que tiene Y no aceptar a los demás Y se podría haber movido A lo mejor no me di cuenta Pero yo creo que no Si te ¿Qué te dice? Luego la 8 y la 6 Si ves que lo hiciste bien En ese caso sería más buena tu solución Porque el enunciado pide Un mínimo número de no ¿Qué decías? ¿Qué te puede hacer? Sabes, por ejemplo Aunque las dos sean válidas Como el enunciado pide La que utilice el mínimo número Si te pide Si tú estás seguro De que la tuya está bien Estaría mejor Yo probé Y los registros No se veían alterados En ningún momento Ninguno escribía en otro Ni leía Claro A lo mejor no me da cuenta Pero Por ahora no he visto el caso Sí, pues sería válido Entonces Vosotros estas cosas Utilizarlas para entender Bien la teoría Y que sepáis Que machacándolo Luego en el examen Lo vais a entender Tampoco os preocupéis Si ahora Os da una solución Ahí distinta Vale Luego en el examen Lo hacéis como podáis Y ya Que sean ellos Los que puntúen Pero realmente No hay otra forma de hacerlo Porque no tenemos Muchos ejercicios Para practicar Y tampoco Son ejercicios Que se correspondan Con el libro Para poder ver bien La solución O no sabemos Lo que les gusta más a ellos A lo mejor Ahora en la duda Que me planteas a mí Todo es eso