TP Memorias y Cache Resp
TP Memorias y Cache Resp
TP Memorias y Cache Resp
4 Segunda
dirección del 1100000001 11000000000001 1100000000000001 11000000000000000000001
último cuarto de 301 3001 C001 600001
la memoria
5 Rango de 1100000000 11000000000000 1100000000000000 11000000000000000000000
direcciones del - - - -
1101111111 11011111111111 1101111111111111 11011111111111111111111
7mo octavo de
la memoria 300 – 37F 3000 – 37FF C000 - CFFF 600000 – 6FFFFF
Se necesitan 32 bits.
¿Si el total de los 4 Giga están distribuidos en dos placas de 8 chips cada
una como esta armada la matriz de mX8 en cada chip y cual es la
capacidad de cada uno?
La matriz es de 256Mx8
SELECTOR = 01000000000001
El valor del bit Ti (el más bajo del campo selector), tiene el valor de 1.
4004:00000F50
A555B000 = Base
d) Si el segmento de Códigos ocupa 4096 bytes, ¿cuál será la dirección final del
segmento?
en hexadecimal: 01000 h
Éste sería el campo límite, que ocupa 20 bits del descriptor de segmento.
8) De acuerdo con el siguiente esquema y conociendo los descriptores de los segmentos
A, B y C
Descriptor de A: expresado en hexadecimal como dos doble Word (de acuerdo con el
formato del descriptor que se agrega abajo)
0140FA00
80008000
Descriptor de B: expresado en hexadecimal como dos doble Word
0240F600
8000C000
Descriptor de C: expresado en hexadecimal como dos doble Word
0348F200
80007000
d)
El campo límite es 08000 en Hexa, y en binario sería 0000100000000000, por lo
que tiene un tamaño de 32 K.
Segmento B:
0240F600
8000C000
a)
Dirección base: 02008000
Campo límite: 0C000
CS = 1202H = 0001001000000010b
Selector: 00010010000000b
Índice: 0001001000000b
Segmento B:
Segmento de Datos – Se toma el DS - Accedemos a la tabla local y la dirección lineal es:
02008ABC
Segmento C:
Segmento de Datos – Se toma el DS - Accedemos a la tabla local y la dirección lineal es:
03008ABC
11) Teniendo en cuenta el contenido de los registros mostrados abajo se pide calcular la
dirección física a la que se accedería en modo real (o modo 16 bits) mediante las
siguientes instrucciones e indicar cuál sería el contenido de cada posición de memoria:
a) POP CX DIRECCIÓN=0063C CONTENIDO= El dato de CX guardado
previamente con la instrucción push en la pila
b) MOV [0000], BX DIRECCIÓN=00500 CONTENIDO= 001C
Contenido de los registros
REGISTRO AX = 001B REGISTRO SP = 003C REGISTRO IP = 0103
REGISTRO CS = 0040 REGISTRO BX = 001C REGISTRO DS= 0050
REGISTRO CX = 001D REGISTRO SS = 0060
a)
SS : SP 0060 : 003C
Dirección física = Base * 10 + Desplazamiento
12) Dada la siguiente situación y sabiendo que la CPU genera una dirección de 24 bits
que permiten acceder a la memoria principal y a la caché:
Tiene 64
líneas
MP M. Caché
E L 5 bits
24 bits
Indicar
a) Cuál es el tamaño de la memoria principal
Sabemos que la CPU genera una dirección de 24 bits, entonces podemos
decir que la MP = 224 = 16MB
13) Una memoria principal de 4 Mbytes opera con una caché de 64 K líneas de 8 bytes
cada una y utiliza correspondencia directa (asociativa de una vía). Qué estructura de
parámetros permite el acceso a esta memoria y cómo se distribuyen los bits
correspondientes?
E L D
3 bits 16 bits 3 bits
22 bits
Campo E:
MC = 64 K líneas x 8 bytes/línea
Grupos = MP / MC
Campo L:
E D
19 bits 3 bits
22
bits
Campo E:
Campo D:
15) Una memoria cache con una organización asociativa de 2 vías está dividida en cada vía
en 8 bloques de 8 bytes cada uno. La memoria principal tiene una capacidad de un KB.
¿Cuál es el formato que el controlador de cache utiliza para interpretar la dirección física y
determinar si la información buscada se encuentra en ella? ¿Cuantos bytes almacena la
caché? ¿Cuantos bytes de cache se acceden por vez?
E L D
4 bits 3 bits 3 bits
10 bits
Campo E:
Grupos = MP / MC
Campo L: Hay 8 líneas por vía dentro de la memoria cache, 2^3 = 3 bits.
16) Sabiendo que una CPU genera una dirección de 24 bits que permiten acceder a la
memoria principal y a la caché y que la caché tiene 128 líneas de 32 palabras (bytes)
cada una indicar:
Cuál es el tamaño de la memoria principal
El tamaño de la MP = 224 = 16MB, ya que la CPU genera una
dirección de 24 bits.
Cuántos bytes tiene el campo etiqueta en el caso de correspondencia
totalmente asociativa.
Sabiendo que la MP tiene 32 columnas y un tamaño de 16MB, al
tener cada línea asociada una etiqueta correspondiente, podemos
calcular el campo etiqueta de la siguiente forma:
Cantidad de Grupos:
MP / MC 16MB / 4KB 224/212 = 212 = 4K grupos
Cada grupo lleva una etiqueta, por lo tanto van a haber tantos
grupos como etiquetas.
4 K = 212, entonces podemos decir que el campo etiqueta va
a ocupar 12 bits.
17) A continuación se muestra una memoria caché con la etiqueta y datos que la
forman:
Etiquetas 7 6 5 4 3 2 1 0
0 1001 A4 54 79 32 45 22 F0 56
1 0111 14 52 33 8D B5 34 45 32
2 1001 00 FF 64 31 11 A6 33 24
3 0011 32 63 CC C3 FA 1F 33 53
4 1010 76 88 64 46 25 37 F3 FA
5 0100 DC 14 33 96 8A 7B 34 F0
6 0010 15 37 A1 85 AA B6 42 13
7 1001 77 76 34 90 00 15 61 24
a) Indicar la dirección que permite acceder con éxito al dato indicado, suponiendo
que se trata de una memoria cache de correspondencia directa.
Primero, hay que tener en cuenta 3 campos, el campo línea, campo dato y el
campo etiqueta.
Entonces la dirección quedaría dividida de la siguiente forma:
10 bits
2A6:
2A6 = 001010100110
3A5:
3A5 = 001110100101
En este caso no hay acierto, ya que, si quiero acceder a la etiqueta 1110, puedo ver en
el cuadro de la memoria que no existe.
En el caso de 3A5, que como vimos, hay ausencia, su línea era la nro 4, por lo tanto se
actualizaría la etiqueta del grupo a 1110.