UTNianos

Versión completa: Duda de Final de Arquitectura (1-12-10)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas!

Alguien me podrá dar una mano para explicarme como se hacen este ejercicio de Arquitectura, que tomaron en el final del 1º de diciembre del año pasado?
Muchas gracias desde ya !!!

1) Una memoria tiene una capacidad de 1 mega, si se la divide en páginas y la dirección para acceder la página está constituida por dos campos: nro de frame y desplazamiento.
a. Indique para un desplazamiento de 12 bits cuál es el tamaño de la página y en cuántos frames se divide la memoria.
b. Si el campo nro de frame es de 7 bits, en cuántos frames se divide la memoria y cuántos bits tiene el campo desplazamiento en la dirección?
c. Considerando el punto b, si el código de un programa ocupa 4096 bytes, ¿ Cuántas páginas requiere?

Saludoooos !!
a. Indique para un desplazamiento de 12 bits cuál es el tamaño de la página y en cuántos frames se divide la memoria.

El desplazamiento tiene que ver con la palabra(si no te dice nada se supone de un byte) que querés leer. Vos podés elegir leer la primer palabra (desplazamiento 0), la segunda palabra (desplazamiento 1)... la última palabra (máximo desplazamiento). Con 12 bits podés direccionar hasta \[2^{12}\] palabras, ese es el máximo desplazamiento que podés tener, que es igual a la cantidad de palabras por página. Haciendo cantidad de palabras x tamaño palabra obtenemos el tamaño de la página:
\[2^{12}\ x\ 1\ byte\ =\ 2^{12}\ bytes\ =\ 2^2\ KB\ =\ 4KB\]

Ahora para saber la cantidad de frames, dividimos la memoria por el tamaño de las páginas, para saber cuántos entran:

\[\frac{1MB}{4KB}\ frames\ =\ \frac{2^{20}}{2^{12}}\ frames\ =\ 2^{20-12}\ frames\ =\ 2^8\ =\ 256\ frames\]

b. Si el campo nro de frame es de 7 bits, en cuántos frames se divide la memoria y cuántos bits tiene el campo desplazamiento en la dirección?

El campo nro de frames tiene los bits necesarios para direccionar la cantidad de frames que haya en memoria, con 7 bits direcciono \[2^7\ =\ 128\ frames\]
Ahora para saber los bits que quedan para desplazamiento hay dos formas.
1) Sabemos que la memoria tiene 1MB, que es \[2^{20}\] bytes, por lo que la dirección de memoria ocupa 20 bits, si divido la dirección en nro de frame y desplazamiento y el nro de frame ocupa 7 bits, entonces el desplazamiento ocupa 20-7 = 13bits.

2) Podemos dividir la memoria por la cantidad de frames y así saber el tamaño de cada uno, después lo expresamos en potencia de dos y nos quedamos con el exponente, dado que al dividir restamos exponentes es practicamente lo mismo que el 1)

\[\frac{1MB}{128\ frames}\ =\ \frac{2^{20}\ bytes}{2^{7}\ frames}\ =\ 2^{20-7}\frac{bytes}{frames}\ =\ 2^{13} \frac{bytes}{frames}\]

c. Considerando el punto b, si el código de un programa ocupa 4096 bytes, ¿Cuántas páginas requiere?
Para saber cuántas páginas ocupa hay que dividirlo por el tamaño de páginas, si nos da redondo, es el cociente, si sobra algo hay que agregar una página más (que no va a estar del todo llena)

El tamaño de página lo sacamos en el punto anterior, \[2^{13}\ bytes(8KB)\]

\[\frac{4096\ bytes}{2^{13}\ bytes}=\frac{2^{12}}{2^{13}}=2^{12-13}=2^{-1}= 0.5\]
Ocupa media página, pero como no se pueden cortar las páginas se usa una entera, así que la respuesta es 1 página.
PERFECTOO !!!
Miles de gracias !! Explicaste de 10.

Por las dudas, creo que al final pusiste 4096 bytes = 8KB pero en realidad son 4KB no? Igual después el 2^12 lo pusiste bien.. =)

Gracias genia !
Sí, el "8KB" iba en el renglón de arriba(después de 2^13 bytes) pero por ponerlo como imagen se quedó en el renglón de abajo y parecía que era para los 4096bytes, ahí lo arreglé ;)
Ahora que miro podría haber puesto directamente 4KB < 8KB en vez de la división jaja
Claro !
Jaja, esta bien..

Tengo 2 ejercicios más, el segundo directamente no se de que se trata =P, y el primero tengo una idea pero no estoy seguro.. :

1) Todos los registros de cálculo estan puestos a cero cuando se ejecuta la linea de codigo presentada en el recuadro.

a) ¿ Como quedará el contenido del registro AL luego de su ejecución, si el mnemonico SUB significa "restar"? Expresar en hexa el valor del registro, indicar el valor de los flags luego de su ejecución.
b) Indicar a qué valor decimal corresponde si considera que el operando es signado.

RECUADRO: 2F37:0100 SUB AL,01

2)
a) Represente en un esquema el formato de una instrucción de tres direcciones.
b) Si cada direccón es de 6 bits, ¿a cuantas direcciones puede referenciar cada una de ellas?
c) Si la instruccón referida en el punto a) es de 24 bits y un único modo de direccionamiento y en la primera dirección se almacena el operando 1, en la segunda el operando 2 y en la tercera el resultado, ¿Cuántas instrucciones distintas se pueden definir?



MUCHAS GRACIASS ! thumbup3thumbup3thumbup3
1) a) AX es de 32 bits, A de 16 y AL y AH de 8 bits. Entonces si los registros están en 0, AL vale 00000000 (en binario), al ejecutar 2F37:0100 SUB AL,01 se le resta 1,
restar 1 es lo mismo que sumarle el complemento a dos de 1, que es 11111111 entonces tenemos:

00000000 + 11111111 = 11111111 = FF en hexadecimal.

Lo de los flags te lo contesta mi yo del pasado porque ya no me acuerdo(?) http://www.utnianos.com.ar/foro/tema-arq...2#pid96862, fijate ese post y el siguiente porque había algo del carry que primero no sabía porqué era y después lo encontré

El 2 no estoy segura, fijate si está en la parte del libro de Quiroga que explica tipos de direccionamiento. Si tuviera que arriesgar pondría:

a) OP dir1, dir2, dir3 (no sé si esto es un esquema)
b) \[2^6\]
c) No sé si entiendo la pregunta :/ Por ahí quiere que pongas las instrucciones que habría que escribir para hacer lo que hace la de la A. Igual no sé qué tiene que ver que sea de 24bits, así que debe estar mal mi rta
MOV AX, [dir1] //Muevo operando1 a AX (no me acuerdo si se podía hacer directamente =()
MOV BX, [dir2] //Muevo operando2 a BX
OP AX, BX //Opero
STO ... //Almaceno resultado, no me acuerdo de qué lado poner cada cosa, presté cuaderno y libros


Cuidado que en los finales restan puntos si contestas algo mal (si no lo contestás no suma ni resta)
Muchas gracias por tus respuestass !
El segundo es rarisimo, si..
Tenes idea si sigue el tiempo para poder ver el examen 15 ' ??

Gracias nuevamente !
A veces sí y a veces no, yo rendí en febrero y te dejaban levantarte en esa fecha. Están pensando en quitarlo, no sé si ya lo hicieron. En SO ya no te podés levantar.
Ojalá que sii =P

Tengo otro ejercicio, perdón por la insistencia:

Un proceso que se ejecuta en un sistema con memoria virtual puramente segmentada tiene un primer segmento de código de 4096 bytes.

a) Cuando el programa está ejecutando la tercera instrucción, ¿el bit de presencia está activado?
(Acá la respuesta sería NO NECESARIAMENTE ? )

b) ¿Qué valor de la entidad "selector" de la dirección virtual permite determinar el acceso al descriptor de segmento?
(Acá la respuesta sería INDICE?)

c) ¿Qué valor tiene el bit G de granularidad?
( G = 0 porque no hay paginación, no??)

d) Si la base alojada en su descriptor y expresada en hexadecimal es 32 42 70 00, ¿Cuál es la dirección fisica que corresponderia al último byte del segmento?
(A ver.. ayudita por aqui?=D)

Gracias desde yaaa !!
a) Cuando el programa está ejecutando la tercera instrucción, ¿el bit de presencia está activado?
Es verdadero, porque cuando busque la primer instrucción va a traer el primer segmento a memoria, y la segunda y tercer instrucción van a estar en el mismo segmento que ya trajo.

b) ¿Qué valor de la entidad "selector" de la dirección virtual permite determinar el acceso al descriptor de segmento?
Creo que sí, lástima que no tengo los libros para mirar =(, se los presté a alguien para que rindiera.

c) ¿Qué valor tiene el bit G de granularidad?
Verdadero


d) Si la base alojada en su descriptor y expresada en hexadecimal es 32 42 70 00, ¿Cuál es la dirección fisica que corresponderia al último byte del segmento?
Si esa es la base, el último byte está en base + tamaño. Igual si contesta alguien que la esté estudiando ahora mejor, yo lo tenía bien claro en febrero porque fue cuando la rendí, depsués me voy olvidando.
Gracias Niña !
Se aprecian mucho tus aportes thumbup3thumbup3thumbup3thumbup3
URLs de referencia