Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
Pablon
Nivel 5


Edad: 32
Registrado: 16 Feb 2010
Mensajes: 168
Ubicación: Banfield
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Jue Jul 19, 2012 5:51 pm  Asunto:  [66.20] Ejercicio sobre análisis de tiempos en cache Responder citandoFin de la PáginaVolver arriba

Acá tengo 2 ejercicios que suelen y pueden aparecer en los finales, ahora comento con lo que se me ocurrió para cada uno y si alguien puede corroborar/corregir/ampliar se le agradecería mucho

En el siguiente gráfico se dan los tiempos de acceso a memoria promedio obtenidos
cuando una CPU ejecuta el modelo del lazo para lazos de distinto tamaño en una
computadora bajo test.
Calcular justificando claramente:
a) la cantidad de niveles de memoria cache existentes y el tamaño de cada nivel.
b) El grado de asociatividad de cada nivel.

Image


En una computadora se corre un test que referencia una zona contigua de memoria en forma de lazo utilizando un determinado salto entre las direcciones sucesivas.
Se ejecutan lazos de distintos tamaños con saltos de distintos tamaños y se mide el tiempo promedio que llevó hacer una lectura más una escritura.
Los resultados obtenidos se muestran gráficamente a continuación, donde se usan distintos marcadores para lazos de distinto tamaño.
Responder justificando los siguientes puntos:

a) cuantos niveles de memoria cache hay?
b) tamaño de cada nivel.
c) tamaño del bloque.
d) grado de asociatividad de cada nivel.

Image

_________________
ImageImage
ImageImage

Geminis Género:Masculino Cabra OfflineGalería Personal de PablonVer perfil de usuarioEnviar mensaje privado
Pablon
Nivel 5


Edad: 32
Registrado: 16 Feb 2010
Mensajes: 168
Ubicación: Banfield
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Jue Jul 19, 2012 6:22 pm  Asunto:  Re: [66.20] Ejercicio sobre análisis de tiempos en cache Responder citandoFin de la PáginaVolver arriba

Pablon escribió:
Acá tengo 2 ejercicios que suelen y pueden aparecer en los finales, ahora comento con lo que se me ocurrió para cada uno y si alguien puede corroborar/corregir/ampliar se le agradecería mucho

En el siguiente gráfico se dan los tiempos de acceso a memoria promedio obtenidos
cuando una CPU ejecuta el modelo del lazo para lazos de distinto tamaño en una
computadora bajo test.
Calcular justificando claramente:
a) la cantidad de niveles de memoria cache existentes y el tamaño de cada nivel.
b) El grado de asociatividad de cada nivel.

Image


Comos los tiempos de acceso no son constantes, sabemos que existe al menos una cache. Suponemos que la cache L1 es de 16 KB ya que el tiempo de acceso a un lazo de ese tamaño es mínimo, y para un lazo mayor deja de serlo.
Suponemos que hay una cache L2, mapeo directo, de 256 KB.
Esto lo deduzco en base a que para tamaños menores a 256 KB son todos hits en L2; para 384 KB pasaría la siguiente situación.

Supongamos que los datos del lazo de 384 KB es ABC, siendo cada letra un espacio de 128 KB de memoria contiguos.

Comienzo a leer la memoria, cargo A en la primer mitad del cache L2.
Cache [A, - ]

Leo B, y el cache queda [A, B] porque es de mapeo directo.

Al leer C, y como el tamaño de cache es 256 KB, el mapeo lo ubica en el mismo lugar de A, dejando a la cache como [C, B].

Comienza de vuelta el ciclo, leo A, no se encuentra en cache y se mapea a la primera posición -> cache = [A, B].

Leo B, hit en cache!

Leo C, reemplazo A y así sucesivamente (Cache queda [A, B])

Conclusión: A y C siempre son miss, B siempre es hit, y debido a eso el tiempo para acceder a 384 KB no es tan bajo como 256 KB (porque no son todos hits) ni tan alto como 512 KB (que serían todos miss).

Y por último, sobre el último nivel no puedo decir nada, ya que podría ser un L3, o bien memoria principal.

Espero que se haya entendido, me decidí por esa organización de L2 porque era la que más sentido le daba al tiempo de 384 KB. Porque si usamos un L2 asociativo por conjuntos, serían todos miss.

Pablon escribió:

En una computadora se corre un test que referencia una zona contigua de memoria en forma de lazo utilizando un determinado salto entre las direcciones sucesivas.
Se ejecutan lazos de distintos tamaños con saltos de distintos tamaños y se mide el tiempo promedio que llevó hacer una lectura más una escritura.
Los resultados obtenidos se muestran gráficamente a continuación, donde se usan distintos marcadores para lazos de distinto tamaño.
Responder justificando los siguientes puntos:

a) cuantos niveles de memoria cache hay?
b) tamaño de cada nivel.
c) tamaño del bloque.
d) grado de asociatividad de cada nivel.

Image


Tamaño del bloque = 64 B.

Se deduce debido a que, si observamos el tamaño de paso de 4B (32 bits), equivale a "barrer" todos los datos del lazo. Al pedir la primer palabra de cada lazo, traemos un bloque a cache. Entonces tenemos 1 miss para traer el bloque, las otras palabras que leamos dentro del bloque van a ser hit. En 64 Bytes de tamaño de paso se tiene el tiempo máximo, que equivaldría a pedir un bloque, leer una palabra de ese bloque, y saltar hacia otro bloque. De esta manera, no aprovechariamos la localidad espacial de los bloques, y el tiempo sería máximo.

Cache L1 = 32 KB

De vuelta nos paramos en un paso de 4 B, y ahora vemos que tan grande puede ser el tamaño del lazo hasta que el tiempo cambie. El tiempo se va a mantener mínimo mientras todo el lazo entre en el cache L1. Con 64 KB de lazo ya nos pasamos, y el tiempo deja de ser mínimo.

Cache L1 de 2 vías.

El lazo de 64 KB tiene tiempo mínimo con un paso de 32 KB. Como sabemos que L1 tiene 32 KB, para tener tiempo mínimo, L1 no puede ser completamente asociativo ni de mapeo directo porque eso nos generaría misses y el tiempo no sería mínimo. Entonces L1 es asociativo por conjuntos. ¿Cuantas vías tiene? Si tuviese más de 2 vías, por ejemplo 4, entonces el lazo de 128 KB debería tener tiempo mínimo con un paso de 32 KB, ya que "mapearía" las lecturas a un conjunto diferente siendo todos hits. Entonces deducimos que tiene 2 vías, debido a que, el lazo de 64 KB da tiempo mínimo en un cache de 32 KB con un paso de 32 KB.
En una cache de mapeo directo, leo la primera palabra -> va al conjunto 0. Leo 32 KB después y debería ir al conjunto 0 -> trashing. Como el cache es de 2 vías, son todos hits.

L2 tiene al menos 2MB de tamaño.

Barrer el lazo de 2MB con un paso de 4B da un tiempo "casi" mínimo, ya que el lazo no entrá todo en L1 pero sí en L2.

_________________
ImageImage
ImageImage

Geminis Género:Masculino Cabra OfflineGalería Personal de PablonVer perfil de usuarioEnviar mensaje privado
Pablon
Nivel 5


Edad: 32
Registrado: 16 Feb 2010
Mensajes: 168
Ubicación: Banfield
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Vie Jul 20, 2012 8:40 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Pongo otro ejercicio así queda y pueda ayudar a alguien que lo necesite, también habría que confirmar si esta bien el planteo.
Cita:

Dada una CPU MIPS con hardware de manejo memoria virtual se pide:
a) Calcular el tamaño del espacio de direcciones virtuales.
b) Dar la cota máxima de la cantidad de memoria que efectivamente puede usar un programa.
c) Calcular el tamaño en bytes de la tabla de traducción de páginas.
d) Calcular el tiempo de acceso promedio a memoria para una cache direccionada por direcciones virtuales.

Datos:
RAM = 512 MB
SWAP = 256 MB
5 bytes por entrada en tabla de traducción de página.
Tasa de desaciertos de la memoria cache = 5%
Tiempo de acierto = 2 ns.
Tiempo de copiar un bloque completo de memoria principal a memoria cache = 40ns
Tasa de desaciertos del TLB = 3%
Tiempo de actualizar una entrada en TLB = 15 ns.
Tasa de falla de páginas = 0.0001%
Penalidad por falla de página = 3 mseg.
Aclare cualquier hipótesis que realice, y justifique las respuestas.

Resolución:
Cita:
Como la cache es virtualmente direccionada, la secuencia de accesos es:

Procesador -> Cache -> TLB -> Memoria -> HDD

Entonces el tiempo de acceso sería:

[tex]T_acceso = 2ns + (0.05) \times [40 ns + (0.03) \times [15 ns + (0.000001) \times 3 ms]][/tex]

Análisis:

Tardo [tex]2 ns[/tex] en ir a cache, si hubo hit listo; pero el [tex]0.05[/tex] de las veces no hay hit, entonces debo traducir la dirección virtual en TLB, eso me cuesta [tex]40 ns[/tex] ya que eso es el precio de traer un bloque de memoria a cache. El [tex]0.03[/tex] de las veces tengo miss en TLB. El miss en TLB implicaría ir a buscar la page table a memoria, y actualizar TLB y traer esa página a cache; es decir, aparte de traer el bloque a cache, tengo que actualizar TLB que cuesta [tex]15 ns[/tex]. Y el [tex]0.000001[/tex] de las veces tengo page fault, y tardo [tex]3 ms[/tex] en traer la página de disco a memoria.

En conclusión, se forma una "cadena", en donde si sale bien tengo solo el tiempo de hit, pero si sale mal me voy "adentrando" en la jerarquía de memoria.


_________________
ImageImage
ImageImage

Geminis Género:Masculino Cabra OfflineGalería Personal de PablonVer perfil de usuarioEnviar mensaje privado
Pablon
Nivel 5


Edad: 32
Registrado: 16 Feb 2010
Mensajes: 168
Ubicación: Banfield
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Vie Jul 20, 2012 8:41 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Pongo otro ejercicio así queda y pueda ayudar a alguien que lo necesite, también habría que confirmar si esta bien el planteo.
Cita:

Dada una CPU MIPS con hardware de manejo memoria virtual se pide:
a) Calcular el tamaño del espacio de direcciones virtuales.
b) Dar la cota máxima de la cantidad de memoria que efectivamente puede usar un programa.
c) Calcular el tamaño en bytes de la tabla de traducción de páginas.
d) Calcular el tiempo de acceso promedio a memoria para una cache direccionada por direcciones virtuales.

Datos:
RAM = 512 MB
SWAP = 256 MB
5 bytes por entrada en tabla de traducción de página.
Tasa de desaciertos de la memoria cache = 5%
Tiempo de acierto = 2 ns.
Tiempo de copiar un bloque completo de memoria principal a memoria cache = 40ns
Tasa de desaciertos del TLB = 3%
Tiempo de actualizar una entrada en TLB = 15 ns.
Tasa de falla de páginas = 0.0001%
Penalidad por falla de página = 3 mseg.
Aclare cualquier hipótesis que realice, y justifique las respuestas.

Resolución:
Cita:
Como la cache es virtualmente direccionada, la secuencia de accesos es:

Procesador -> Cache -> TLB -> Memoria -> HDD

Entonces el tiempo de acceso sería:

[tex]T_{acceso} = 2ns + (0.05) \times [40 ns + (0.03) \times [15 ns + (0.000001) \times 3 ms]][/tex]

Análisis:

Tardo [tex]2 ns[/tex] en ir a cache, si hubo hit listo; pero el [tex]0.05[/tex] de las veces no hay hit, entonces debo traducir la dirección virtual en TLB, eso me cuesta [tex]40 ns[/tex] ya que eso es el precio de traer un bloque de memoria a cache. El [tex]0.03[/tex] de las veces tengo miss en TLB. El miss en TLB implicaría ir a buscar la page table a memoria, y actualizar TLB y traer esa página a cache; es decir, aparte de traer el bloque a cache, tengo que actualizar TLB que cuesta [tex]15 ns[/tex]. Y el [tex]0.000001[/tex] de las veces tengo page fault, y tardo [tex]3 ms[/tex] en traer la página de disco a memoria.

En conclusión, se forma una "cadena", en donde si sale bien tengo solo el tiempo de hit, pero si sale mal me voy "adentrando" en la jerarquía de memoria.


_________________
ImageImage
ImageImage

Geminis Género:Masculino Cabra OfflineGalería Personal de PablonVer perfil de usuarioEnviar mensaje privado
ezeperez26
Nivel 3


Edad: 34
Registrado: 11 Jul 2008
Mensajes: 43

Carrera: Informática
argentina.gif
MensajePublicado: Mie Ago 08, 2012 8:28 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Los ejercicios de los gráficos (que casualmente no se ven en el post) están muy bien explicados!! Nunca está de más agradecer el aporte!

_________________
Pampa

Capricornio Género:Masculino Serpiente OfflineGalería Personal de ezeperez26Ver perfil de usuarioEnviar mensaje privado
Neolithing
Nivel 4


Edad: 34
Registrado: 11 Feb 2010
Mensajes: 88

Carrera: Informática
argentina.gif
MensajePublicado: Vie Feb 01, 2013 12:17 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No entendí un joraca jajaja


Tauro  Serpiente OfflineGalería Personal de NeolithingVer perfil de usuarioEnviar mensaje privado
90762
Nivel 2


Edad: 33
Registrado: 19 Ago 2009
Mensajes: 12

Carrera: Informática
argentina.gif
MensajePublicado: Dom Feb 24, 2013 12:10 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Para el 2do ejercicio del modelo del lazo simple, el grafico es el del punto 2 de este doc (lo tome de otro post y la resolucion concuerda al 100%):
http://wiki.foros-fiuba.com.ar/_media/materias:66:20:organizacion_de_computadoras_66_11-jul.pdf

Respecto al ejercicio de memoria virtual, puede ser que:
a) como las PTEs = 5b = 40 bits, entonces el total de direcciones es 2^40 ? (perdon por la falta de mi latex, estoy oxidado)
b) ??
c) ??
Nose como usar el dato de SWAP ... Agradezco cualquier ayuda Smile


Geminis Género:Masculino Caballo OfflineGalería Personal de 90762Ver perfil de usuarioEnviar mensaje privadoMSN Messenger
pinus
Nivel 4


Edad: 36
Registrado: 20 Ene 2009
Mensajes: 100

Carrera: Informática, Sistemas y
argentina.gif
MensajePublicado: Sab Jul 02, 2016 6:06 am  Asunto:  Re: [66.20] Ejercicio sobre análisis de tiempos en cache Responder citandoFin de la PáginaVolver arriba

Pablon escribió:
Pablon escribió:
Acá tengo 2 ejercicios que suelen y pueden aparecer en los finales, ahora comento con lo que se me ocurrió para cada uno y si alguien puede corroborar/corregir/ampliar se le agradecería mucho

En el siguiente gráfico se dan los tiempos de acceso a memoria promedio obtenidos
cuando una CPU ejecuta el modelo del lazo para lazos de distinto tamaño en una
computadora bajo test.
Calcular justificando claramente:
a) la cantidad de niveles de memoria cache existentes y el tamaño de cada nivel.
b) El grado de asociatividad de cada nivel.

Image



Comos los tiempos de acceso no son constantes, sabemos que existe al menos una cache. Suponemos que la cache L1 es de 16 KB ya que el tiempo de acceso a un lazo de ese tamaño es mínimo, y para un lazo mayor deja de serlo.
Suponemos que hay una cache L2, mapeo directo, de 256 KB.
Esto lo deduzco en base a que para tamaños menores a 256 KB son todos hits en L2; para 384 KB pasaría la siguiente situación.

Supongamos que los datos del lazo de 384 KB es ABC, siendo cada letra un espacio de 128 KB de memoria contiguos.

Comienzo a leer la memoria, cargo A en la primer mitad del cache L2.
Cache [A, - ]

Leo B, y el cache queda [A, B] porque es de mapeo directo.

Al leer C, y como el tamaño de cache es 256 KB, el mapeo lo ubica en el mismo lugar de A, dejando a la cache como [C, B].

Comienza de vuelta el ciclo, leo A, no se encuentra en cache y se mapea a la primera posición -> cache = [A, B].

Leo B, hit en cache!

Leo C, reemplazo A y así sucesivamente (Cache queda [A, B])

Conclusión: A y C siempre son miss, B siempre es hit, y debido a eso el tiempo para acceder a 384 KB no es tan bajo como 256 KB (porque no son todos hits) ni tan alto como 512 KB (que serían todos miss).

Y por último, sobre el último nivel no puedo decir nada, ya que podría ser un L3, o bien memoria principal.

Espero que se haya entendido, me decidí por esa organización de L2 porque era la que más sentido le daba al tiempo de 384 KB. Porque si usamos un L2 asociativo por conjuntos, serían todos miss.

Pablon escribió:

En una computadora se corre un test que referencia una zona contigua de memoria en forma de lazo utilizando un determinado salto entre las direcciones sucesivas.
Se ejecutan lazos de distintos tamaños con saltos de distintos tamaños y se mide el tiempo promedio que llevó hacer una lectura más una escritura.
Los resultados obtenidos se muestran gráficamente a continuación, donde se usan distintos marcadores para lazos de distinto tamaño.
Responder justificando los siguientes puntos:

a) cuantos niveles de memoria cache hay?
b) tamaño de cada nivel.
c) tamaño del bloque.
d) grado de asociatividad de cada nivel.

Image


Tamaño del bloque = 64 B.

Se deduce debido a que, si observamos el tamaño de paso de 4B (32 bits), equivale a "barrer" todos los datos del lazo. Al pedir la primer palabra de cada lazo, traemos un bloque a cache. Entonces tenemos 1 miss para traer el bloque, las otras palabras que leamos dentro del bloque van a ser hit. En 64 Bytes de tamaño de paso se tiene el tiempo máximo, que equivaldría a pedir un bloque, leer una palabra de ese bloque, y saltar hacia otro bloque. De esta manera, no aprovechariamos la localidad espacial de los bloques, y el tiempo sería máximo.

Cache L1 = 32 KB

De vuelta nos paramos en un paso de 4 B, y ahora vemos que tan grande puede ser el tamaño del lazo hasta que el tiempo cambie. El tiempo se va a mantener mínimo mientras todo el lazo entre en el cache L1. Con 64 KB de lazo ya nos pasamos, y el tiempo deja de ser mínimo.

Cache L1 de 2 vías.

El lazo de 64 KB tiene tiempo mínimo con un paso de 32 KB. Como sabemos que L1 tiene 32 KB, para tener tiempo mínimo, L1 no puede ser completamente asociativo ni de mapeo directo porque eso nos generaría misses y el tiempo no sería mínimo. Entonces L1 es asociativo por conjuntos. ¿Cuantas vías tiene? Si tuviese más de 2 vías, por ejemplo 4, entonces el lazo de 128 KB debería tener tiempo mínimo con un paso de 32 KB, ya que "mapearía" las lecturas a un conjunto diferente siendo todos hits. Entonces deducimos que tiene 2 vías, debido a que, el lazo de 64 KB da tiempo mínimo en un cache de 32 KB con un paso de 32 KB.
En una cache de mapeo directo, leo la primera palabra -> va al conjunto 0. Leo 32 KB después y debería ir al conjunto 0 -> trashing. Como el cache es de 2 vías, son todos hits.

L2 tiene al menos 2MB de tamaño.

Barrer el lazo de 2MB con un paso de 4B da un tiempo "casi" mínimo, ya que el lazo no entrá todo en L1 pero sí en L2.




Calculo que pablon ya esta disfrutando de la vida .... pero capaz que alguién me puede contestar.

En el ejercicio 1) con el grafico de barras, el primer cache L1 lo plantea full associative no?


Escorpio Género:Masculino Gato OfflineGalería Personal de pinusVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2539s ][ Pedidos: 20 (0.1639s) ]