Entrega para el viernes 6/11
¿El formulario parece sospechoso? Informe
- Ayudar a mejorar Formularios
- Informe
Entrega para el viernes 6/11
¿El formulario parece sospechoso? Informe
Nota 1er Recu | Nota 2do Recu | Estado | ||
Almeida | Matias Ignacio | #N/A | 8 | Promociona |
Centurion | Maximiliano Ezequiel | 4 | 3 | Desaprobado |
Ferreiro | Luciano Tomas | #N/A | 6 | Promociona |
Frende | Julian Ignacio | #N/A | 2 | Desaprobado |
Gioya | Ignacio Julio | #N/A | 4 | Debe Integrador |
Godoy | Fabio Andres | #N/A | 1 | Desaprobado |
Gomez | Ivan | #N/A | 2 | Desaprobado |
Mamani | Martin Pablo | 9 | #N/A | Debe Integrador |
Montero | Fernando Sebastian | #N/A | 7 | Promociona |
Otarola | Florencia Anahi | Desap | #N/A | Desaprobado |
Rodas | Ezequiel Alberto | #N/A | 7 | Promociona |
Rodriguez | Nicolas Leonel | 8 | #N/A | Promociona |
Ruiz | Miguel Nicolas | #N/A | 8 | Promociona |
Sardi | Facundo | #N/A | 9 | Promociona |
Taborda | Franco Ariel | Desap | Desap | Desaprobado |
En una caché con esta función de correspondencia, cualquier bloque puede estar en cualquier línea y por lo tanto se necesita tener un tag que identifique absolutamente el contenido de esa línea.
Para verificar si una celda de memoria está cacheada, la memoria caché compara el tag de cada línea con la dirección enviada desde la UC (o parte de esa dirección), y lo hace de manera simultánea. Esta simultaneidad requiere que esté implementada con circuitos comparadores para cada línea, característica que puede resultar costosa. Existen otros enfoques (otras funciones de correspondencia) que mejoran este aspecto, pero que sacrifican otros, y que describiremos en la próxima bitácora…
Se comenzó la clase directamente con introducción al nuevo tema (ya que la clase pasada fue el parcial! 🙂 )
Se entregó una fotocopia en la que se pedía encontrar una manera para comprimir los siguientes números:
62000000000000000000000 y 0,0000000000000000000062
y la manera de resolverlo es usando notación científica. La notación científica es una manera de abreviar números muy grandes o muy chicos que tengan muchos 0, y se lo logra de la siguiente manera: Se agarra la parte del número que es distinta que 0, en este caso, 62, y se lo multiplica por 10^n, (si el numero es mayor a 1) siendo n la cantidad de 0 que tiene el numero, en este caso, 21, o se lo multiplica por 10^-n (si el numero esta entre 1 y 0) siendo n tambien la cantidad de 0 que hay en el número. Por lo tanto: 62000000000000000000000 = 62 x 10^21 0,0000000000000000000062 = 62 x 10^-21 Generalizando, en decimal un numero se puede expresar en notación científica como: N = m x 10^e Donde N es el número, m la mantisa (la parte distinta de 0), y e es el exponente mencionado anteriormente.
Esto nos sirve para introducir el nuevo tema, Punto Flotante!
Punto Flotante usa está manera de representar números para poder representar cosas muy chicas, y también cosas muy grandes. La única diferencia que nos trae problemas es que la notación científica, como vimos, se usa en el sistema decimal, por lo que, así como está, no nos sirve para utilizar en sistema binario, pero… lo podemos salvar!
En vez de utilizar la representación de un número como la composición de «mantisa x 10^exponente», lo componemos como «mantisa x 2^exponente», y con eso ya lo podemos usar en sistema binario. Eso es exactamente lo que se hace en Punto Flotante.
Ahora… Cómo utilizo una cadena para escribir un número como una composición?
Fácil, se «parte» la cadena en dos partes, mantisa y exponente, dado que son las únicas variables que entran en juego en la composición. Por lo tanto, yo puedo armar sistemas de Punto Flotante de la siguiente manera:
Elijo un sistema para representar a la mantisa, por ejemplo, BSS(2), y elijo un sistema para representar al exponente, por ejemplo, BSS(3), y luego tengo que explicitar que parte de la cadena va primero, y que parte de la cadena va después, en este caso yo elegí que la mantisa vaya primero, y el exponente después ( e: BSS(2) / m: BSS(3) )
Ahora una cadena para nuestro sistema va a tener 2 bits para mantisa, y 3 bits para exponente, por lo tanto, van a ser cadenas de 5 bits.
Para interpretar una cadena en este sistema se hace lo siguiente:
* Recibo la cadena y la «parto» en mantisa y exponente, ya que voy a tener que interpretarlos por separado.
* Interpreto la mantisa en su correspondiente sistema (en este caso, BSS(2))
* Interpreto el exponente en su correspondiente sistema (en este caso, BSS(3))
* Compongo el numero con la formula (N = m x 2^e)
Ejemplo: 11110 e: BSS(2) / m: BSS(3)
* Parto la cadena -> 11 = m, 110 = e.
* Interpreto la mantisa -> I<BSS(2) 11> = 3
* Interpreto el exponente -> I <BSS(3) 110> = 6
* Compongo el número -> N = 3 x 2^6 = 3 x 64 = 192.
Luego pasamos a calcular el rango, con lo que necesitamos saber el máximo y el mínimo número representable…
Cómo saber cuál es el máximo y el mínimo representable? Veamos un par de ejemplos
Y así como podemos calcular el rango, también podemos calcular la resolución, pero…
Cuál es la resolución de estos sistemas? Veámoslo en el sistema e: BSS(2)/m: BSS(2),
Considerando la cadena: 1010. ¿Cuál es el siguiente número representable? el representado con la cadena 1011 o el de la cadena 1110?
I(1010) = 2*2^2 = 8
I(1011) = 3*2^2 = 12 ¡ok!
I(1110) = 2*2^3 = 16
Resolución I(1011) – I(1010) = 3*2^2 – 2*2²^2= (3-2) * 2^2 = 1*2^2 = 2^2
Veamos ahora este caso ¿Que cadena sigue a la cadena 0110?
I(0110) = 2 * 2^1
I(0111) = 3 * 2^1
Resolución = I(0111) – I(0110) = 3*2^1 – 2*2`1 = (3-2) * 2^1 = 1*2^1 = 2^1
Cómo vemos, la resolución no es la misma en ambos casos. Esto se debe a que en Punto Flotante, la resolución (a diferencia con todos los otros sistemas que veníamos usando) NO es constante. La resolución varía porque tenemos un exponente que la hace variar. Cuando el exponente es menor, la resolución es menor, cuando el exponente es mayor, la resolución es mayor.
Algo peculiar de la notación científica es la posibilidad de representar el mismo valor con distintas cadenas. Veamos este ejemplo en el sistema m:sm(8) / e:ca2(5), con el formato (s)(e)(m)
Interpretar:
No es deseable tener múltiples representaciones para el mismo valor, entonces se elige una sola de ellas como cadena válida para ese número: la que comienza con 1 en la mantisa. En el ejemplo anterior la única cadena normalizada es 0 11100 1000000, pues:
e = Ica2(11100) = – I(00011+1) = -4
m = Ism(01000000) =2⁶
n= 64 * 2⁻⁴ = 2⁶*2⁻⁴ = 2²
¡Pero esto implica que se descarten la mitad de las cadenas!
Para solucionarlo, considerando que todas las cadenas empezarían con 1 entonces no tiene sentido escribir ese primer 1, y por lo tanto se lo deja implícito.