UTNianos

Versión completa: Memoria cache
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Hola, queria pedirles ayuda con un ejercicio de memoria cache de correspondencia directa.

Sabiendo que la CPU genera una dirección de 30 bits que permite acceder a la memoria principal y a la cache.
Considerando que el campo de bloque es B=5 bits y que la cache posee dos vias de 1024 lineas. Se pide:

a) ¿Cuál es el tamaño de la memoria principal?
b) ¿Cuál es el tamaño de bloque de cada linea de la cache?
c) ¿Cuál es el tamaño de la memoria cache?
d) ¿Cuáles son los valores del campo de etiqueta E= bits y del campo linea L= bits?

Desde ya gracias =D
Hola =)
Para próximas generaciones(?) y por que estoy practicando...

a) 1 G por que es 2^30, 30 son los bits de la direccion y con ese tamaño se pueden direccionar esos bits
b) como son 5 bits los bloques , supuse que es 2^5 = 32 bytes
c) 1024 lineas x 32 bytes del bloque x 2 vias = 65536 bytes
d) 15 de etiqueta y 10 de linea, los de etiqueta por que 1024^3/(32*1024)=32768=2^15 y los de linea ya que 1024=2^10... o si no averiguar uno de los dos y hacer (30-6) - el que averigue primero y te da el otro.
a) 1 gb x 5 bits = 5 gb (tamaño de la memoria principal) Confused

no me queda claro si al decir bloque incluye etiqueta grupo posicion
Carolina, no estoy seguro porq lo di hace un tiempo. Pero con 5bits, formas 2^5 = 32bits = 4bytes.
Aunque se me viene a la cabeza que lo de la cache siempre eran bytes, capaz tenes razon. Jajaja, espero no marear a nadie.

Enviado desde mi GT-I9100 mediante Tapatalk

H1NO, estas mezclando las cosas. Los 5 bits se refieren a lo que se necesita para identificar un posicion en una linea de la cache. Que no tiene nada qhe ver con cuanto tamaño tiene la mem. ppal.
Si tenes 30bits para direccionar mem.ppal significa que tenes 2^30 direcciones posibles. Es decir que tenes una mem de 1gb. Ya que 2^30 = 1gb.

Enviado desde mi GT-I9100 mediante Tapatalk
a) a esto me refiero:

[Imagen: d0of.jpg]

con 2^30bits: tengo las cantidades de direcciones.
pero entiendo que con eso no basta para saber la capacidad de la mem principal, hay q multiplicar ese valor por la cantidad de bits que tiene cada linea de la mem principal (yo entendi que en este caso eran 5 bits)
edit
H1NO, el bloque no tiene nada que ver con la mem. principal. Bloque es parte de la estructura de la memoria cache. La memoria cache, en correspondencia directa, o en n vias, siempre tienen la estructura: ETIQUETA + LINEA + BLOQUE/POSICION. Y la suma de la cantidad de bits que utiliza en total, son los mismos que utiliza la mem. principal para direccionar. Es decir, en este caso, la suma de cantidad de bits que se utilizan entre ETIQUETA + LINEA + POSICION, tiene que dar 30.
(Tenes la otra arquitectura de memoria, que solo tiene ETIQUETA y LINEA, que se llama totalmente asociativa).
(De paso te tiro una de V o F, la de correspondencia directa no usa algoritmo LRU, no me acuerdo bien la razón, pero en el Angulo esta.)
Si te dicen que 'CPU genera una dirección de 30 bits que permite acceder a la memoria principal', esto implica que la memoria principal es de 2^30. Al menos, en la arquitectura que vemos, de Pentium.
En el texto que citas, hablan de 1024 palabras de 8bits cada una, esto implica que la memoria es de 1KB. Es decir: 2^10.
Estamos implícitamente, diciendo que nuestra unidad básica (palabras), son de 8 bits, es decir un 1byte. Por lo que si nos dicen, que la dirección de memoria esta constituida por 30 bits, entendemos que tenemos una capacidad máxima de 2^30 = 1 GB.
(22-01-2014 12:04)H1NO escribió: [ -> ]con 2^30bits: tengo las cantidades de direcciones.
pero entiendo que con eso no basta para saber la capacidad de la mem principal, hay q multiplicar ese valor por la cantidad de bits que tiene cada linea de la mem principal (yo entendi que en este caso eran 5 bits)

pero fijate que el enunciado dice que EL TAMAÑO DEL CAMPO BLOQUE es de 5 bits, no cuantos bytes hay en una posicion en memoria

es cierto que caro esta asumiendo que cada posicion de memoria es de 1 byte, pero con esos datos no se puede hacer mas, ademas si no me equivoco ante la omision se podia asumir memorias de posiciones de 1 byte

edit: knofm me gano de mano xD
ya estoy terminando de leer los capitulos del libro y la verdad que ahora entiendo mas, y mas aun con su ayuda chicos, gracias.

PD: entiendo que en este caso la capacidad de la mem cache (para mi es lo comun), pero en algunos ejemplos de los libros a veces forman a partir de la mem principal, caches que tienen la misma capacidad... es posible?? les paso?? (pero obviamente distribuida en lineas eq a bloques)
H1NO, no la cache no tiene nunca el mismo tamanio que la memoria principal. No tiene sentido, ya que el procesador primero verifica si un dato esta en cache (L1,L2,L3...), y sino, la busca en la RAM (mem. ppal), si la encuentra, actualiza la cache, y le devuelve el dato al procesador. Y si no la encuentra, calcula la direccion virtual, para buscarla en el disco duro, la pone en la RAM y en la CACHE. y devuelve el dato al procesador. Entonces no tendria sentido jamas que la cache tenga mayor o igual tamanio que la RAM.
Pasa que acorde a la arquitectura de la cache, la que es de correspondencia directa (o de una 1 via), no tiene algoritmo de reemplazo, cuando algo no lo encuentra, directamente limpia la cache y genera una nueva (con algoritmos de vecindad espacial y temporal). Por esta razón, es que en este caso particular, la de correspondencia directa o de una 1 vía, tiene cosas parecidas a como esta organizada la memoria RAM. Pero que esto no te confunda, es mas fácil ir a lo seguro, sacarlo de la manera de siempre, que no falla.
De todas formas, presta atención, léetelo varias veces hasta que entiendas; es solo una cuestión conceptual.
Saludos y éxitos!
soy un boludo, lo lei mal.... ahhh

gracias por la ayuda! thumbup3
che recién leo de casualidad, hice todo mal? por que aca en el foro los resuelven asi y este ejercicio esta repetido.
Perdón pero me re marearon
Carolina, lo tuyo esta todo muy bien. Había un punto que me causo duda, así que no me hagas caso, seguro que si lo estas preparando la tenes mas clara que yo. Perdón por marearte!
Buensimo !! no se, la estoy preparando pero si estaba mal y me corregias mejor. Gracias
muy bueno al ver esto me aclararon un monton de preguntas.

si alguno sabe y lo tiene a mano me podria decir que algoritmo de reemplazo (LRU; RANDOM; FIFO) le corresponde a la totalmente asociativa, a la de correspondencia directa o 1 via y a la de n vias?

gracias !jumpon
Páginas: 1 2
URLs de referencia