UTNianos

Versión completa: [Arquitectura] Todo para el 2do parcial
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Encontre el libro en internet y me olvide de postearlo, ahi les va

[Imagen: arquitectura+de+microprocesadores+los+pe...+fondo.jpg]

Temario:

* Capítulo 1: Arquitectura de computadores: introducción y clasificación.

* Capítulo 2: El rendimiento en los computadores.

* Capítulo 3: La familia x86.

* Capítulo 4: Características de los sistemas operativos para los microprocesadores

Avanzados.

* Capítulo 5: La memoria caché.

* Capítulo 6: Arquitectura del Pentium.

* Capítulo 7: Modelo del procesador para el programador de aplicaciones.

* Capítulo 8: Memoria segmentada.

* Capítulo 9: El mecanismo de paginación.

* Capítulo 10: Mecanismos de protección.

* Capítulo 11: Modelo del pentium para el programador de sistemas.

* Capítulo 12: Puertas de llamada.

* Capítulo 13: Conmutación de tareas.

* Capítulo 14: Interrupciones y excepciones.

* Capítulo 15: Diagrama de conexionado.

* Capítulo 16: El bus y los ciclos de bus.

* Capítulo 17: Repertorio de instrucciones.

* Capítulo 18: Coprocesador matemático (FPU).

* Capítulo 19: Funciones especiales, entornos de trabajo y compatibilidad.

* Capítulo 20: Pentium-Pro.

* Capítulo 21: Pentium-MMX.

* Capítulo 22: Pentium II.

* Capítulo 23: Pentium III.

* Capítulo 24: Pentium 4.

* Capítulo 25: Itanium.

* Anexo A: Diseño de procesadores RISC.

* Anexo B: Ejercicios.

Formato: WORD (29 archivos, uno por cada capítulo)

Ademas les dejo de yapa un resumen, los capitulos para el 2do parcial y el TP (no resuelto pero les da una idea de como serian los ejercicios).

Estoy cursando con Tenuta, no se si los otros profes toman exactamente lo mismo, pero parecido seguro... segun él, este libro es el 80 % de los finales.

Suerte a todos =D
Subo 4 ejercicios resueltos del TP que encontre en un rar que baje hace banda =P

5) Para la línea de código presentada a continuación

5555:0103 mov ax, [0555]

Calcular las direcciones efectivas de la instrucción y del operando, suponiendo que CS = DS.

Bueno, mi resolución sería la siguiente:

Primero, la aclaración CS=DS, es muy buena, nos permite afirmar, que los codigos de instrucciones y los operandos (datos) están alojados en el mismo segmento (CS aloja instrucciones "Code Segment" ; DS aloja datos "Data Segment").

Segundo, sabemos que el segmento en el q se aloja la instrucción MOV... es el 5555 (primera parte de la "dirección segmentada" XXXX(segment):YYYY(desplaz)), por lo tanto el operando también estará en 5555.

Tercero, ahora necesitamos los desplazamientos, vemos q el IP para MOV apuntará al desplazamiento 0103 al momento de ejecutar la instrucción, porq es en esa posición del segmento donde está alojado el cod de la instrucción MOVE..., por lo tanto (y como lo vemos a la izquierda de la instrucción) la dirección segmentada de la instrucción es 5555:0103.

Cuarto, el desplazamiento del operando es fácil, debido a q está haciendo un direccionamiento inmediato a memoria (los corchetes implican el contenido de...en este caso la dir 0555), por lo tanto ahora sabemos que el operando está alojado en 5555:0555.

Quinto, obtenemos las direcciones efectivas aplicando el algoritmo para el cálculo de direcciones efectivas en Modo Real:
(dirección segmentada) XXXX:YYYY => XXXX*10=XXXX0, luego
XXXX0+YYYY (dirección efectiva)

Ahora lo aplicamos:
Dir Segment. Instrucción: 5555:0103 => 55550+0103=55653h
Dir Segment. Dato: 5555:0555 => 55550+0555=55AA5h

6) Una memoria principal de 4 Mbytes opera con una caché de 64 K líneas de 8 bytes cada una y utiliza correspondencia asociativa de una vía. Qué estructura de parámetros permite el acceso a esta memoria y cómo se distribuyen los bits correspondientes?

Resolución:
Como es una correspondencia asociativa de una vía, la memoria principal se divide en bloques de igual estructura q una el bloque de datos asociados de la Cache.
Como las lineas son de 8 bytes, luego 64K * 8B=512 KB es el tamaño de la memoria Caché.

Luego en Memoria Principal tendremos: 4MB/512KB=8 grupos de igual característica q el la memoria caché (512 KB en 64 K líneas de 8 bytes c/u).
Sabemos q la direccion a Memoria principal es de 22 bits (memoria de 4 MB).
En este tipo de organizacion necesitamos los bits Etiqueta, Línea y Posicion.
Luego como cada linea tiene 8 bytes, los dividos en datos de 1byte, y necesitamos 3 bits (Posición, los menos significativos) para obtener un dato de una línea.
Para poder identificar a los 8 grupos de la memoria principal utilizaremos etiquetas, estas serán referenciadas con los 3 bits de más peso.
Nos falta indexar el número de línea para poder comparar los bits de Etiqueta. Para ello utilizaremos los 16 bits del medio de la dirección para Línea (2^16=64K).
Ya terminamos el ejercicio.

Direccion a Memoria Principal bit 21 a 0 (22 bits)
Interpretacion del Controlador de Cache:
bit 21 a 19 (3 bits) "ETIQUETA"
bit 18 a 3 (16 bits) "LINEA"
bit 2 a 0 (3 bits) "POSICION"

7) Una memoria principal de 4 Mbytes opera con una caché de 64 K líneas de 8 bytes cada una y utiliza correspondencia totalmente asociativa. Qué estructura de parámetros permite el acceso a esta memoria y cómo se distribuyen los bits correspondientes?

Resolución:
Como es una correspondencia totalmente asociativa, la memoria principal se divide en bloques de igual tamaño q una línea de la Cache. Como las lineas son de 8 bytes, luego 4MB/8B=2^19 bloques hay en Memoria principal de 8 bytes cada uno, x lo tanto necesitamos 19 bits de etiquetas para referenciar a c/u de ellos.
Sabemos q la direccion a Memoria principal es de 22 bits (memoria de 4 MB).
En este tipo de organizacion necesitamos los bits Etiqueta y Posicion.
Luego como cada linea tiene 8 bytes, los dividos en datos de 1byte, y necesitamos 3 bits para obtener un dato de una línea.
Ya terminamos el ejercicio.

Direccion a Memoria Principal bit 21 a 0 (22 bits)
Interpretacion del Controlador de Cache: bit 21 a 3 (19 bits) "ETIQUETA"
bit 2 a 0 (3 bits) "POSICION"

8) Una memoria caché con una organización asociativa de 2 vías está dividida en cada vía en 8 bloques (líneas) de 8 bytes cada uno. La memoria principal tiene una capacidad de 1 KB. ¿Cuál es el formato que el controlador de caché utiliza para interpretar la dirección física y determinar si la información buscada se encuentra en ella? ¿Cuántos bytes almacena la caché? ¿Cuántos bytes de caché se acceden por vez?

Resolución (como siempre digo, puede tener errores, si encuentran comentenlo para corrección, esto nos sirve a TODOS!):
Bueno como sabemos es una cache de 2 vías, x lo tanto cada conjunto posee dos líneas (la linea i de la primer vía con la línea i de la segunda), entonces tendremos 8 conjuntos (8 líneas*2vías=16 líneas) de 16 bytes c/u (8 bytes * 2). Sabemos q posee 8 líneas * 8 bytes = 64 bytes (pesa una vía) * 2 vías= 128 Bytes (tamaño total de la Caché).

Ahora, como la Memoria Principal es de 1 KB, necesitamos 10 bits para acceder a ella (2^10=1KB). La memoria, en esta organización, se divide en conjuntos de bloques de igual formato que una de las vías.
Esto es: 1 KB/64 Bytes = 16 conjuntos. Por lo tanto la memoria principal se organiza en 16 Conjuntos de 8 bloques cada uno de 8 bytes cada uno (si vemos 16*8*8Bytes=1KB).

Ahora tenemos q ver como e controlador Caché interpreta la dirección referida a Memoria Principal, la cual, como habíamos dicho, es de 10 bits.
En esta organizacion necesitamos bits de Etiqueta, de Conjuntos, y de Posición. Hay dos de estos q salen inmediatamente:
Cada línea de caché es de 8 bytes, si consideramos q se organiza en Datos de 1 Byte => tenemos q 8*1 byte= 8 bytes, por lo tanto necesitamos 3 bits para referenciar una posición dentro de la línea. Estos serán los bits de menos peso de la dirección.
Como dijimos tenemos 8 conjuntos, estos se referencian mediante 3 bits también, serán los bits del medio de la dirección.
Ahora sólo nos falta las etiquetas: la memoria principal se organizaba en 16 grupos no? bueno para identificar cada uno se necesitan 4 bits (2^4=16), estos serán los bits de más peso de la dirección.

Y ya tenemos armada la interpretación del controlador de Caché:
Dir a MP= bit 9 a 0 (10 bits) => Interpretación Cont Cache=
bit 9 a 6 (4 bits) "ETIQUETA"
bit 5 a 3 (3 bits) "CONJUNTO"
bit 2 a 0 (3 bits) "POSICIÓN"
bien gracias! igual este libro esta en fotocopiadora a unos 44 pesos
¿Vos tenés con Tenuta?

porque me pasó el mismo TP5 pero no sé ni por donde empezar =(
Tengo con Tenuta y te soy sincero... yo tambien ando medio perdido con el tp =(

vamos a tener que estudiarnos bien la teoria y ver como safamos con la practica jajaja

Si alguien lee esto y nos quiere dar una mano, welcome
Gracias!
gracias genio
Hola no termino de entender como hacer la resloucion del ejercicio 4 del tp5. Alguien me lo podria resolver y explicar? Muchas gracias.
yo no logro enter todavia esta parte de la materia sobre el segmento ydireccionamiento de memoria es demasiado abstracto
Buen día!
Consulta, como calculas el valor de la etiqueta y posición de este ejercicio?


6) Una memoria principal de 4 Mbytes opera con una caché de 64 K líneas de 8 bytes cada una y utiliza correspondencia asociativa de una vía. Qué estructura de parámetros permite el acceso a esta memoria y cómo se distribuyen los bits correspondientes?

Resolución:
Como es una correspondencia asociativa de una vía, la memoria principal se divide en bloques de igual estructura q una el bloque de datos asociados de la Cache.
Como las lineas son de 8 bytes, luego 64K * 8B=512 KB es el tamaño de la memoria Caché.

Luego en Memoria Principal tendremos: 4MB/512KB=8 grupos de igual característica q el la memoria caché (512 KB en 64 K líneas de 8 bytes c/u).
Sabemos q la direccion a Memoria principal es de 22 bits (memoria de 4 MB).
En este tipo de organizacion necesitamos los bits Etiqueta, Línea y Posicion.
Luego como cada linea tiene 8 bytes, los dividos en datos de 1byte, y necesitamos 3 bits (Posición, los menos significativos) para obtener un dato de una línea.
Para poder identificar a los 8 grupos de la memoria principal utilizaremos etiquetas, estas serán referenciadas con los 3 bits de más peso.
Nos falta indexar el número de línea para poder comparar los bits de Etiqueta. Para ello utilizaremos los 16 bits del medio de la dirección para Línea (2^16=64K).
Ya terminamos el ejercicio.

Direccion a Memoria Principal bit 21 a 0 (22 bits)
Interpretacion del Controlador de Cache:
bit 21 a 19 (3 bits) "ETIQUETA"
bit 18 a 3 (16 bits) "LINEA"
bit 2 a 0 (3 bits) "POSICION"
Va otra consulta sobre el calculo de la cantidad de bloques =P

Cuando es:
- Totalmente Asociativa => Cantidad de bloques = Tamaño MP / Tamaño de Linea
- Asociativa de 1 via => Cantidad de bloques = Tamaño MP / Tamaño de Cache
- Asociativa de 2 vias => Cantidad de bloques = Tamaño MP / (cantidad de lineas * tamaño de cada linea)

¿Esto es correcto?
URLs de referencia