Está en la página 1de 21

GUIA DE LECTURA Y DE PREGUNTAS DE EXAMEN SISTEMAS DE COMPUTACIN II

Unidad 1
Unidad 1 y 2: Tomo III (2da ed) y pag 91 del Tomo I (3ra Ed)

Indicar cules son los modos de direccionamiento usados en Assembler


Modo Directo: Si una instruccin tiene un nmero entre corchetes se dice que est en Modo Directo, dado que directamente as se da la direccin para localizar en memoria el dato a procesar. AX <- [5000] Modo Registro: Cuando el dato a operar no est en memoria sino en un registro de la UCP, y el resultado va tambin a un refgistro. ADD AX,BX Modo Inmediato: Las instrucciones que ordenan pasar una constante a un registro. MOV AX, FF00

Qu se guarda en la pila durante la ejecucin de CALL


Durante la Ejecucin del CALL, en la PILA se guarda la direccin de memoria donde se encuentra la siguiente instruccin a realizar en el programa llamador de la subrutina, para que dicha subrutina, luego de hacer el RET regrese al programa en la direccin siguiente a la del CALL. Dicha direccin es la guardada en la PILA cuando se ejecuta el CALL. Primero realiza la actualizacin del SP (Stack Pointer) (SP <- SP - 2) y luego guarda la direccin de la siguiente instruccin a ejecutar dentro de la PILA.

A qu instrucciones equivale CALL


CALL guarda en la pila la direccin de la siguiente instruccin a ejecutar (del programa llamador) y actualiza el SP, equivale a hacer: SP <- SP - 2 [SP] <- IP

A qu instrucciones equivale RET


RET es la ltima instruccin de una subrutina, que manda ir a la direccin de la instruccin que est guardada en la pila (direccin de la siguiente instruccin a ejecutar del programa llamador), y actualiza el SP: IP <- [SP] SP <- SP + 2

Qu hace una instruccin como PUSH DX y a qu instrucciones equivale


Realiza el guardado del contenido del registro DX en la PILA, equivale a las instrucciones: SP <- SP 2 (actualiza el SP) [SP] <- DX (carga en la pila el valor de DX)

Qu hace una instruccin como POP CX y a qu instrucciones equivale


Realiza la carga del registro CX con el contenido de la pila en la direccin a donde apunta el SP, equivale a las instrucciones: CX <- [SP] (Carga en CX el valor guardado en la pila) SP <- SP + 2 (Actualiza el SP)

Unidad 2
Unidad 1 y 2: Tomo III (2da ed) y pag 91 del Tomo I (3ra Ed)

Dnde se originan las IRQ


Las IRQ (Interrupt Request) se originan en la placa interfaz de los perifricos. Cuando algun suceso en un perifrico solicita una interrupcin, activa la lnea de solicitud de interrupcin de dicha interfaz. Estas solicitudes de interrupcin son las Interrupciones por Hardware. La seal de interrupcin pasa a un chip de arbitraje a travs de una lnea de control del bus. En las PC existen 16 IRQs, numeradas de 0 a 15.

Qu pasa con las IRQ que pierden si hay varias simultneamente activas
Todas las lneas IRQ se conectan a un chip Arbitro de Solicitud de Interrupciones que es el encargado de elegir a cual IRQ darle prioridad en el caso de que lleguen al mismo tiempo varios pedidos de interrupcin. Dicha seleccin la hace de acuerdo al nmero de IRQ menor, de todos los pedidos que hayan llegado, ya que cada IRQ tiene un subndice n que lo identifica; gracias a este valor de n el Arbitro de Solicitud de Interrupciones selecciona a cul de los IRQ que se activan darle prioridad (el IRQ de menor n tiene prioridad).

Qu bloques comunica y qu funcin cumpla la lnea INTR


La lnea INTR comunica el chip Arbitro de Solicitud de Interrupciones con la Unidad de Control e indica cuando hay una solicitud de interrupcin por Hardware activa (IRQ de alguna interfaz se activ). Si el programa que se est ejecutando lo permite, el mismo es interrumpido, caso contrario se sigue ejecutando el programa dejando la solicitud de interrupcin en espera. DIBUJO: Perifrico1 -> Interfaz1 [3ports] -> IRQ1 -> [ARBITRO] -> INTR -> UC Perifrico2 -> Interfaz2 [3ports] -> IRQ2 -> [ARBITRO] <- INTA <- UC PerifricoN -> InterfazN [3ports] -> IRQN -> [ARBITRO]

Cmo se entera el rbitro que debe enviar la direccin de la direccin


Cuando se activa la lnea INTA (que se activa luego de que la UC detecta el INTR activo y de fijarse que el flag I=1 luego de esto se activa la lnea INTA) (INTA = Interrupt Aknowledge, interrupcin Aceptada) que llega desde la UC, el Arbitro de Solicitud de Interrupciones enva la direccin de direccin al RDI, para encontrar la direccin del vector de interrupciones, donde se encuentra la direccin de comienzo de la subrutina a ejecutar.

Qu es la zona de vectores interrupcin, qu contiene cada uno, y cuando se escribe


La zona de vectores de interrupcin es una zona de memoria principal en la cual se encuentran , guardadas en celdas de memoria, las direcciones de memoria donde se encuentran las subrutinas que son llamadas por las interrupciones por HW y por SW. Esta zona se utiliza para poder localizar dichas subrutinas cuando son pedidas. Para cada nmero de IRQ (el nmeron) y para cada nmero de INT corresponde una subrutina determinada (por ejemplo: Int 21 corresponde a 0021h x 4 = 0084h).Cada interrupcin que encentra su subrutina por este medio se la llama interrupcin vectorizada. Esta zona de memoria se escribe luego de cada booteo del S.O.

Cuando la UC sensa la lnea INTR


La UC sensa la lnea INTR luego de la ejecucin de cada instruccin que ejecuta la UCP. La lnea INTR comunica el Arbitro de Solicitud de Interrupciones con la UC.

Qu es el flag I y cmo se modifica


El Flag I es el flag que permite ENMASCARAR una interrupcin segn sea I=0 no se da curso a la interrupcin (se en mascara), por lo que se ENMASCARA la interrupcin y debe esperar a que I=1 para poder dar curso a la interrupcin; e I=1 que permite dar curso a la interrupcin. El valor de I puede modificarse y establecerse por Software, si un programa o secuencia no debe ser interrumpida comenzar con la instruccin CLI (Clear I) que pone I=0 y al concluir dicha secuencia debe hacerse I=1 con la instruccin STI (Set I). En las pantallas de Debug se puede leer EI (Enable I) y DI (Disable I).

Qu significa enmascarar una interrupcin


Significa que la interrupcin por HW (se activo un IRQ de una interfaz) se tiene que quedar esperando hasta que el Flag I sea I=1, no pudiendo ser interrumpido el programa en ejecucin.

A partir de qu momento una interrupcin por hardware sigue el mismo proceso que una interrupcin por software. Indicar este proceso.
Interrupcin por Software (Pgina 44 Libro 3): Se realizan mediante la instruccin INT xx, donde xx indica que subrutina se pide ejecutar. Los pasos que ocurren en la ejecucin de Interrupciones por Software son los siguientes: 1- Cuando se lee la instruccin INT xx, se multiplica el nmero hexa xx por 4. (flecha a zona de vectores) 2- Dicho resultado es el desplazamiento dentro del segmento de zona de vectores de interrupcin. Esta es la direccin donde se encuentra la direccin CS:IP del inicio de la subrutina pedida. Ejemplo con INT 21, 0021x4=0084 (4 celdas comenzando en 0084 tienen la direccin del inicio de la subrutina). Flecha de zona de vectores CS:IP a Inicio Subrutina pedida. 3- La UC guarda en la pila el Registro de Estado y sobre este apila la direccin de retorno al programa autointerrumpido. (Mostrar pila desde FFEE hasta FFE8 con RE-CS-IP de abajo para arriba) 4- Se ejecuta la subrutina llamada por INT xx. Los PUSH del inicio ordenaran guardar los valores de los registros de la UCP, luego al final de la subrutina aparecern los respectivos POP para restaurar lo valores de los registros. (Flecha para abajo indicando la ejecucin de las instrucciones de la subrutina) 5- Por ltimo la instruccin IRET ordena retornar a la siguiente instruccin que sigue a INT xx, adems ordena restaurar el valor del Registro de Estado, y el valor de CS:IP y as continuar con la ejecucin del programa llamador. (Flecha desde IRET hasta la sig instruccin del programa llamador) Interrupcin por Hardware (Enmascarable): Explicado mas abajo. A partir del momento en que se lee la Zona de Vectores de Interrupcin el proceso de interrupcin por HW es el mismo que el proceso de interrupcin por SW.

Qu hace la instruccin IRET


IRET: Interrupt Return, es la instruccin de retorno de las subrutinas llamdas por las interrupciones INT xx (Interrupciones por software) y IRQn (Interrupciones por Hardware). Esta instruccin ordena restaurar (desde la Pila) el valor de los flags (Registro de Estado) para devolver los registros a los valores que tena antes de llamar a la subrutina y devolver la direccin de memoria donde hay que seguir ejecutando el programa interrumpido por la subrutina ejecutada. IRET ordena retornar al programa interrumpido.

IRET: IP <- [SP] (Instruction Pointer) SP <- SP + 2 CS <- [SP] (Code Segmetn register) SP <- SP + 2 RE <- [SP] (Registro de Estado)

Para qu sirve el mecanismo de interrupciones por IRQ


Para que una seal proveniente de una interfaz pueda interrumpir la ejecucin de un programa para pasar a ejecutar una subrutina de servicio de interrupcin que generalmente no es parte del programa en ejecucin, sino que es parte del S.O o el BIOS. Luego de ejecutar la subrutina requerida se retorna a la ejecucin del programa interrumpido. Estas interumpciones llegan desde los diferentes perifricos, por ejemplo, cuando se toca una tecla, etc.

Para qu sirve el mecanismo de interrupciones por software


Estas son las interrupciones por Software (tambin llamadas Autointerrupciones), estas interrupciones sirven para pasar a realizar una tarea que es manejada por el S.O o el BIOS, como por ejemplo, la lectura de un archivo del disco, imprimir, etc. Se realizan ejecutando el cdigo de una instruccin que ordena llamar a subrutinas del S.O o del BIOS cuando se necesita del servicio de una de estas. Luego de ejecutar la subrutina requerida se retorna a la ejecucin del programa interrumpido. Las interrupciones por SW son las interrupciones INT xx en PC y para cada xx corresponde una subrutina determninada.

Por qu se habla de direccin de direccin


Porque el valor n de IRQn y el valor xx de INT xx determina la direccin de memoria, del vector de interrupciones, de donde se obtendr la direccin de memoria donde comienza la subrutina llamada. O sea que el n y el xx determinan la direccin donde se encuentra guardada la direccin donde comienza la subrutina, por eso se habla de Direccin de Direccin

Describir en detalle el proceso de una interrupcin enmascarable


Proceso de Interrupcin por Hardware Enmascarable (8 pasos pgina 52/53 libro 3): Cuando una interfaz activa su seal IRQn (interrupcin que tiene origen en el HW) se solicita la interrupcin del programa en ejecucin los pasos que tiene el proceso de interrupcin por HW son los siguientes. 1- Las lneas IRQ de solicitud de interrupcin salen de las interfaces y van al chip Arbitro de Solicitud de Instrucciones. (todas las lneas IRQ salen de las interfaces y llegan al chip) (Flecha: Interfaz1 [3ports] -> IRQ1 -> [ARBITRO], y en el dibujito de las celdas de memoria una flecha IRQn que llegue a la instruccin Ik del programa interrumpido) 2- Cuando se activa una seal IRQ (eligiendo la de menos subndice n en el caso de que simultneamente e activen varias) el arbitro activa la lnea INTR que llega a la UC y es sensada por esta. (Flecha de INTR del Arbitro hacia la UC) 3- Luego de la ejecucin de una instruccin, la UC sensa la lnea INTR, en caso de que est desactivada sigue con la siguiente instruccin a ejecutar. En caso de que est activada la UC se fija en el valor del flag I contenido en el registro de estado. En caso de que I=0 no da curso a la solicitud de interrupcin y sigue con la ejecucin del programa. (Diagrama Lgico de Si INTR) (con I=0 se enmascara la interrupcin y no se da lugar a ella, queda entonces en espera. 4- En caso de que I=1se acepta la solicitud de interrupcin, la UC activa la lnea INTA Interrupt Aknowledge (que sale de la UC y llega al Arbitro de Seleccin de

5-

678-

Interrupciones) pasando la UCP de Modo Usuario a Modo Kernel. (Flecha de INTA, desde UC a Arbitro). Por el Bus de Datos el Arbitro de Seleccin de Interrupciones enva la direccin de la direccin donde se encuentra la subrutina a ejecutar (subrutina exclusiva para atender a la IRQ que gener el pedido de interrupcin). Del subndice n de la IRQ se obtiene la direccin dentro del vector de interrupciones donde se encuentra la direccin del comienzo de la subrutina. (Por el bus de datos desde Arbitro hasta RDA y a RDI la direccin de la zona de vectores para encontrar la direccin del inicio de la subrutina) La UC escribe en la pila el CS y el IP de la direccin de retorno al programa interrumpido y luego el Registro de Estado. (de abajo hacia arriba RE|CS|IP) (dibujo de la pila donde) La UC utiliza la direccin obtenida en el paso 5 para direccional la primera instruccin de la subrutina a ejecutar. Dicha subrutina es ejecutada (Flecha desde la zona de vectores hasta el inicio de la Subrutina CS:IP leidos en zona de vectores de abajo hacia arriba CS|IP) Cuando se termina de ejecutar la subrutina con la instruccin IRET, la UC restaura, leyendo de la pila el Resgistro de Estado y luego el IP y el CS de la direccin de retorno hacia los registros respectivos de la UCP, reanudando as la ejecucin del programa interrumpido (Flecha desde fin de subrutina hasta sig instruccin a ejecutar en el programa interrumpido)

Qu es una interrupcin
Una interrupcin supone la suspensin temporaria de la ejecucin de un programa para pasar a ejecutar una subrutina de servicio de interrupcin que generalmente no es parte del programa ya que generalmente pertenece al S.O o al BIOS. Las interrupciones son la forma en que se llama a subrutinas del S.O y el BIOS. Las interrupciones se realizan mediante instrucciones de mquina especficas o por hardware (dentro del UCP o por el IRQ de una interfaz de perifrico). Luego de ejecutarse la subrutina llamada se regresa a la ejecucin del programa interrumpido. Esto se lleva a cabo sin intervencin humana y los efectos de una interrupcin por lo general no son visibles para el usuario. Los programas en Modo Kernel no pueden ser interrumpidos por IRQ, en cambio los programas en modo User si pueden interrumpirse por IRQ. Una interrupcin es en esencia una forma de llamado a subrutina del S.O o del BIOS. Luego de la ejecucin de la subrutina que se llamo mediante la interrupcin se retoma el programa interrumpido para seguir con su ejecucin.

Cmo se clasifican las interrupciones


Las interrupciones se clasifican en Interrupciones por Software e Interrupciones por Hardware. Las Interrupciones por Hardware se dividen a su vez en Externas e Internas. Interrupciones por Software: Este tipo de interrupciones se realiza ejecutando el cdigo de una instruccin que ordena llamar a subrutinas del S.O o del BIOS cuando se necesita del servicio de ellas. Se simbolizan en Assembler para PC como INT xx (donde xx indica que rutina debe ejecutarse). Se denominan autointerrupciones y sabemos cuando van a realizarse ya que en el programa se escriben dichas instrucciones de pedido de ejecucin de subrutinas. Interrupciones por Hardware Externas: Estas son las interrupciones que se generan por Hardware externo a la UCP y tienen lugar cuando una interfaz de un perifrico activa su lnea IRQ (Interrupt Request). Cada lnea IRQ tiene un subndice n que en PC va de 0 a 15 y que las identifica. Las lneas IRQ llegan al chip Arbitro de Solicitud de interrupcin que decide cual IRQ se le dar prioridad en el caso de activacin mltiple de IRQs. Este chip activa la senal INTR que va a la UC para indicar que se da a lugar a una interrupcin. Interrupciones por Hardware Internas (tambin conocidas como excepciones): Son aquellas interrupciones o excepciones que ocurren dentro del UCP, si ocurre algn problema mientras se ejecuta una instruccin, por ejemplo; si un resultado de una instruccin no entra en AX esta instruccin se aborta.

Por qu se dice que una interrupcin por software es una autointerrupcin


Una interrupcin por SW se realiza ejecutando el cdigo de una instruccin que ordena llamar a subrutinas del S.O o el BIOS cando as lo solicita. En lenguaje Assembler dicha instruccin es la instruccin INT xx, donde xx es el identificador de la subrutina llamada. Esta interrupcin esta en un determinado lugar del programa que se ejecuta por lo que cuando la UCP la procesa se interrumpe el programa, o sea que el programa se autointerrumpe al ejecutar dicha instruccin. Ya que el programa cuenta con dicha instruccin escrita por el programador, cuando el programa se ejecuta y se procesa dicha instruccin el programa realiza una autointerrupcin.

Cmo afectan las interrupciones al programa interrumpido


Afectan al programa interrumpido en el sentido de que la siguiente instruccin a ejecutar luego de que se procesa una interrupcin es la primer instruccin de dicha subrutina llamada, el programa que se estaba ejecutando inicialmente queda en espera hasta que la subrutina termina de ejecutarse. Al terminar la subrutina se seguir con la ejecucin del programa inicial en la siguiente instruccin a partir del cual surgi la interrupcin. En si al programa interrumpido no le ocurre nada, solo deja de ejecutarse para pasar a ejecutar la subrutina y espera que esta termina para seguir con su ejecucin.

Qu tienen en comn y diferente una INT y un CALL


INT: Es una instruccin que realiza una interrupcin por Software que llamada a subrutina del S.O o del BIOS. Tambin llamada autointerrupcin. El INT xx, donde xx indica la direccin a donde ir a buscar (dentro del Vector de Interrupciones) la direccin de memoria de comienzo de la subrutina llamada. Ademas de guardar la direccin de retorno, con INT se guarda el Registro de Estado en la pila. (de abajo hacia arriba RE|CS|IP) CALL: Es una instruccin para la llamada a subrutina creada por el usuario (no pertenece al S.O ni al BIOS) no es una interrupcin. Estas subrutinas se utilizan para realizar tareas repetitivas ya que dicha subrutina puede ser llamada n veces, sin la necesidad de escribir en memoria las n repeticiones de la rutina (como la instruccin FOR de C). Con CALL solo se guarda la direccin de retorno en la pila. Esta instruccin no pasa por el Vector de Interrupciones. El flag I pasa a EI (Enable I, I=1) ya que la subrutina a ejecutar puede ser interrumpida (modo usuario)

Unidad 3
Unidad 3: pags 96 a 112 del Texto (Tomo I, 3ra Ed)

Por qu se necesita una jerarqua de memorias


L jerarqua de memorias es la organizacin de la memoria total de un computador. Esta organizacin tiene forma de pirmide y combina la localidad temporal y espacial con la que la memoria cuenta en cuanto a velocidad de acceso, costo y capacidad. Se busca tener una mayor capacidad a menor costo a la par que el tiempo de acceso de un nivel inferior a otro superior sea lo menor posible. En los niveles superiores (tiempo de acceso mas corto) se encuentran el Cach L1 (interno a la UCP) y los registros; luego el Cach L2 (externo) y debajo de este la memoria principal DRAM (externa al UCP) que se conecta a la UCP por medio de Buses. PIRAMIDE Registros y Cach L1 -> Cache L2 > Mem.Ppal DRAM -> Cache HD -> HD > CD y DVD -> Cintas Magneticas. Los niveles mas altos tienen menor capacidad y menor tiempo de acceso as como mayor costo por byte almacenado, adems son accedidos con ms frecuencia que el nivel inferior. A partir de HD para abajo almacenan Bytes en serie. Cada nivel solo puede intercambiar informacin con los niveles adyacentes.

Qu lugar ocupa en la jerarqua de memorias el cach


El Cach esta en la parte superior de la jerarqua de memorias, el Cach L1 (Level 1) es interno a al UCP y es el mas rpido con 10ns de Tacc, luego fuera del UCP se encuentra el Cach L2 (Level 2) externo. El Cach L1 esta a un nivel superior que el cach L2 ya que es accedido en forma mas frecuente y adems tiene menor tiempo de acceso que la L2 ya que es interno a la UCP.

Qu implica la denominacin cach


Cach significa OCULTA, en el sentido de que la UCP enva por el bus de direcciones la direccin de memoria a la cual tiene que acceder desconociendo de la existencia del Cach que es un HW tambin oculto al programador. La memoria Cach permite simular una memoria principal DRAM de gran capacidad pero con tiempo de acceso de la SRAM del cach, de modo que la UCP leer del cach instrucciones y datos mas rpidamente que de memoria principal y sin necesidad de acceder a ella. En cualquier momento

Qu es un wait state en la UCP


Es un pulso de ck en el cual la UCP se encuentra en estado de espera, o sea que se encuentra inactiva, lo cual hace perder performance a la UCP. Esto se traduce en un mayor tiempo de ejecucin de los programas. Los WAIT STATE ocurren cuando el perodo del Ck del UCP es menor al Tacc a la memoria, por ejemplo en un 80386 con 33 Mhz de Ck (perodo= 33ns) y la memoria Dram que en esa poca tena un Tacc = 70ns, se solapa 2 pulsos del Ck de la UCP en un pulso de acceso a memoria, lo que genera que en un pulso de Ck la UCP este inactiva. (DIBUJITOS DE 80286 10Mhz y Tacc 90ns; y 80386 33Mhz y Tacc 70ns).

Explicar a partir del 80286 cmo surgieron los dos niveles de cach
El 80286 no superaban los 10 MHz (perodo de 100ns) y el Tacc a una DRAM era de 90ns por lo que no haba problemas ya que con cada pulso de Ck de la UCP se poda acceder a una posicin de memoria. Con la llegada del 80386 de 33 MHz (perodo 33ns) el Tacc de las memorias DRAM era de 70ns, por lo que en este caso aparecan los WAIT STATES, para evitar esto se agreg un Cach Externo (Level 2, Tacc 25ns) para minimizar los WAIT STATES. Luego lleg el 80486 de 100MHz (perodo 10ns) el acceso al Cach L2 superaba al perodo del 80486, por lo que se incorpor un cach dentro del 80486 llamado Cach L1 (Level 1, Tacc 10 ns), usando adems el Cach L2 para acceder mas rpido a ste en lugar de la memoria si la informacin a acceder no estaba en L1. Estos dos niveles de cach se usan hoy en da, pudiendo existir mas niveles.

Explicar por qu se resa la informacin del cach


La memoria Cach se usa para contener en una pequea (en comparacin con la memoria principal) memoria SRAM la informacin que se est usando y la que muy probablemente se vaya a utilizar prximamente (tanto dato como instrucciones). Se trata de que lo que se est usando y lo que se va a usar est en la memoria Cach. Para esto se tiene en cuenta el concepto de Proximidad Temporal y Proximidad Espacial. La Proximidad Temporal indica que los datos o instrucciones que se estn usando muy probablemente se vuelvan a usar otra vez; y la Proximidad Espacial indica que los datos o instrucciones a usar prximamente se encuentran muy cerca de los que se estn utilizando. Los programas constan de secuencias de instrucciones que estn en direcciones consecutivas, lo que implica que las direcciones de dos instrucciones que se ejecutan una tras otra sean muy cercanas. La ejecucin de un programa se realiza en secuencias de instrucciones relativamente cortas que se ejecutan muchas veces, siendo que los datos utilizados tambin se encuentran en direcciones prximas, y los cuales tambin son accedidos repetidamente. Por dicho motivo la informacin del Cach es reusada por la UCP.

Qu porcentaje de aciertos (hits) puede estimarse en un cach


Se estiman aciertos (Hits) en mas del 90% de los accesos. Los fallos son menos del 10% de los accesos al Cach.

Cules son las funciones del controlador de cach


El cach requiere un subsistema circuital llamado Controladora de Cach que cumple varias tareas: 1- Intercepta la direccin que enva la UCP a fin de determinar si el contenido buscado se encuentra en el cach (Acierto = Cach Hit) o no (Fallo = Cach Miss). En el caso del Acierto permitir a la UCP acceder al Cach, en el caso del Fallo permitir que la UCP acceda a la memoria principal con la consiguiente prdida de tiempo. Para realizar esto el Controlador de Cach cuenta con la TAG Memory, que es una SRAM que contiene un TAG ()por lnea del cach. 2- En el cach de correspondencia asociativa decide cul bloque ser reemplazado por otro proveniente de memoria cuando ocurre un fallo. 3- Maneja la estrategia de escritura del cach y la memoria principal. Existen 2 formas: a) Write Through (a travs de cach): consiste en actualizar (escribir) simultneamente la memoria principal y el cach, lo cual lleva tiempo. Se utiliza un buffer que se escribe rpidamente cuando se escribe el cach y guarda los resultados hasta que son escritos en la memoria principal. Si la direccin no existe en el cach se actualiza solo la memoria principal. B) Write Back (post escritura): En el cach se marcan las lneas que escribi la UC, cuando sta lnea marcada es reemplazada, el bloque es escrito en memoria principal y en el cach es reemplazada por le nuevo contenido. En este caso en un instante puede haber incoherencia que es diferencia de informacin entre la memoria principal y lo guardado en el cach, haciendo que informacin en memoria principal este desactualizada. Bit de Validacin: Es el Bit V que sirve para determinar si los contenidos de la lnea son vlidos o no. Cuando hay un reemplazo de contenidos, el Bit V se pone en 1. Cuando se enciende la computadora, estos Bits estan en 0, ya que en las primeras instrucciones que ejecuta la UCP, si por casualidad direcciona un byte que se encuentra en el cach se producir un acierto siendo basura lo que contiene dicha lnea. A medida que se van ocurriendo los pasajes de memoria a cache (por los fallos que se producen por V=0) los bits V van cambiando por 1. TAG Memory: Es una memoria SRAM que contiene un TAG (etiqueta) por cada lnea del cach. Sirve para determinar si el contenido de un bloque direccionado por la UCP se encuentra o no en el Cach. Utiliza comparadores para realizar esta tarea. El controlador cache intercepta la direccin a la que quiere acceder la UCP y de acuerdo a los Bits de la direccin que conforman el nmero de lnea; el TAG mem de dicha lnea es comparado con el TAG de la direccin, para saber si el contenido buscado esta en el cach. Cach de Correspondencia Directa: Cada bloque de memoria se asigna siempre a la misma lnea. Organizacin de Cach de Correspondencia Directa: V TAG Mem Linea 00 01 10 11 Campo 0 1 xxxxxxx yyyyyyyy x

En este caso tenemos direcciones de 6 bits, t t t k k p, donde t = TAG, k = Nro de lnea y p = Nro de Campo. Cada lnea guarda 2 bytes. Para establecer que Nro de lnea se asigna a un bloque de memoria se utiliza un lugar de correspondencia. Las direcciones que sean del tipo xxx01x van a la lnea 01, las que sean del tipo xxx00x van a la lnea 00, y asi respectivamente. El ltimo bit de la direccin indica el campo al cual se asigna (0 o 1). Los primeros 3 bits sirven para que el controlador de cach determine si dicho bloque se encuentra en el cach o no (TAG = etiqueta). Cuando ocurre un fallo se transfiere un bloque de bytes consecutivos de memoria hacia hacia la lnea de cache que corresponda de acuerdo a los bits de la direccin, luego el cach escribe en el TAG mem el TAG de la direccin de los nuevos bytes. Cuando la UCP ordena leer el contenido de una direccin, ;sta direccin es interceptada por el controlador de cach que compara el TAG de la direccin, con el TAG de la lnea que corresponda (de acuerdo a los bits de la direccin interceptada). Si hay igualdad de TAGs obtenemos un acierto o Cache Hit, o sea que la lnea del Cach correspondiente a ese TAG tiene el Byte que se esta direccionando. El campo correspondiente al Byte buscado se obtiene con el ltimo bit de la direccin (0 o 1). De este modo el Cach proporciona el Byte diseccionado. En el caso que no haya acierto, obtenemos un fallo o un Cache Miss, por lo que el controlador permitir leer en memoria principal el contenido de dicha direccin el cual llegar a la UCP (ocurriendo Wait State) y una copia de estos pasar a la lnea del cach (que antes no la contena) junto con el Byte Adyacente, reemplazndose as el anterior contenido de la lnea. En la TAG mem se cambia el TAG de sta lnea por el TAG del nuevo bloque. (Problema de igualdad de TAGs para diferentes direcciones llamadas alternativamente), Correspondencia Completamente Asociativa (Arregla los problemas de la Correspondencia Directa ya que cualquier bloque es adjudicado a cualquier lnea). Correspondencia Asociativa por Conjunto: Cada bloque se asigna a una lnea (de las c posibles) de acuerdo al valor del bit k (nro de lnea lnea)y el bit LRU (least Reciently Used). Hay c conjuntos con igual nmero de lnea. El controlador de cach mediante un algoritmo adjudica el bloque a una de dichas lneas, la que fu menos accedida ltimamente (Utilizando el bit LRU). Ejemplo de Organizacin de Cach de Correspondencia Asociativa de 2 Vas (2 leas por va): TAG Va 0 Va 1 V LRU TAG V LRU Lnea 0 Lnea 1 Va 0 0 1 xxxxxxxx yyyyyyyy Va 1 0 1 zzzzzzzz uuuuuuuu

En este caso tenemos direcciones de 6 bits, t t t t k p, donde t = TAG, k = Nro de lnea y p = Nro de Campo. Cada lnea guarda 2 bytes. Cada va tiene 2 lneas (0 y 1). A la linea 0 irn los bloques con direcciones del tipo xxxx0x, a la lnea 1 las del tipo xxxx1x. El ltimo bit de la direccin indica el campo de la lnea que ocupar el byte. En este caso el TAG tiene 4 bits. Por ejemplo el bloque de direcciones 011000 y 011001 ir a la lnea 0 y el controlador del cach decidir en cual de las 2 vas enviarlo de acuerdo al valor del bit LRU. Cada vez que una lnea es accedida, dicho bit LRU se pasa a 1, y el bit LRU del la misma lnea pero de la otra va se pone en LRU = 0.

Cuando hay un fallo o Cache Miss el bloque de direcciones xxxxkx se asignar a la lnea k del cach, y a la va que tenga el Bit LRU = 0 (el menos accedido ultimamente) ya que la otra va al tener el bit LRU = 1 significa que fu accedida hace poco tiempo por lo que la otra va fu accedida hace mas tiempo. Asimismo en el TAG mem del controlador se reemplazar el TAG Que haba por el TAG del nuevo bloque llegado de memoria. Si la UCP quiere acceder a la direccin (por ejemplo 0100 00, suponiendo que se encuentra dicho bloque en el cach) el controlado de cach compara el TAG 0100 con los TAGs de las lneas 0 de las dos vas, para determinar en cual de la dos se encuentra el Byte buscado. Con cada acierto un multiplexor (a las salidas del cach) selecciona por su TAG el bloque accedido, el cual aparecer en dichas salidas. (Cach de 2 vas, solucin de compromiso entre Correspondencia Directa y Correspondencia Completamente Asociativa).

Diferencias generales entre buses ISA, PCI y SCSI


Bus ISA: Bus Sincrnico, se activan o desactivan las lineas de control de acuerdo a una lnea designada Clock (Ck). Bus de 8,33 Mhz y 16 lneas que permite enviar 2 byes por ciclo (2 x 8,33Millones = 16,66 Mbytes/seg). Cuando transfiere en modo rfaga (Burst) muchos bytes consecutivos aumenta a 266 Mb/seg. El Extended ISA (EISA) de 8,33 Mhz y 32 lneas alcanzara 4x8,33Millones = 33,32 Mb/seg. El puente ISA conecta al bus PCI la electrnica IDE del HS. Bus PCI: Peripheral Component Interconnect creado por Intel. Bus Sincrnico, se activan o desactivan las lneas de control de acuerdo a una lnea designada Clock (Ck). Independiente al procesador y al subsistema de memoria usada en la computadora. A este Bus se conectan los puentes ISA/PCI, USB/PCI, SCSI/PCI. Caracterstica Plug and Play. Es un estndar en la industria. Bus de 66 (o 33) MHz de Ck (perodo de 15 ns). 64 lneas A/D (Adress/data) que permiten enviar 8 bytes en cada ciclo (8 bytes x 66Millones = 528 Mbytes/seg), esta velocidad no es suficiente para usar el PCI como bus para leer o escribir datos en memoria. En promedio el PCI opera a 100Mb/seg. El bus PCI se comunica mediante el puente PCI con el bus local que va a la UCP. A este bus pueden conectarse en zcalos de expansin diversos perifricos que por su velocidad no pueden conectarse al bus ISA. Es un bus intermediario entre otros buses y el bus local. Bus SCSI: Smalls Computers System Interface. Bus Asincrnico, el Master activa una lnea en un instante no regido por un Ck, a esto le sucede una respuesta del Slave. La activacin de una lnea depende de la activacin de otra lnea y no de un Ck. Tiene lneas conductoras de poca longitud, es un bus externo al computador en el cual uno de sus extremos se conecta al bus PCI a travs de un adaptador-controlador SCSI. Se pueden conectar a este hasta 7 perifricos (conexin Daisy Channel) con una longitud mxima de 6 metros. Es apto para unidades de CD, HD, Cintas Magnticas, RAID, multimedia, etc. SCSI-1 tiene 8 lneas para datos y velocidad de hasta 5 Mbytes/seg, el SCSI-2 tiene 16 o 32 lneas y una velocidad de 20 Mb/seg o 40 Mb/seg. Cada unidad SCSI tiene una direccin (ID) de 0 a 7 configurable por jumpers. Con esta tecnologa pueden comunicarse una unidad de cinta y un HD (ambas SCSI) sin pasar por memoria principal y sin intervencin de la UCP ejecutando programas. Cualquier unidad SCSI puede tomar el control del bus como Master y enviar por el bus la direccin de la unidad target (Slave) con la que quiere comunicarse. Las direcciones, comandos y datos viajan por las mismas 8 lneas en distintos momentos. Explicar, sin acordarse de memoria el nombre de las seales puestas en juego a) El intercambio de seales cuando se conecta una impresora a un port paralelo: VER MAS ABAJO PORT PARALELO b) Idem cuando se conecta un modem a un port serie, en el proceso de transmisin (protocolo RS232C): ????????????????????????????????????????

Indicar el papel de los ports en la activacin de seales, y que loop se queda efectuando la UCP: VER MAS ABAJO PORT PARALELO

Unidad 4
Unidad 4: pags 114 a 132 del Texto (Tomo 1, 3ra Ed.)

Explicar qu es el pipeline y qu beneficios reporta para la UCP


Pipeline es el solapamiento de procesos, esta mejora permite procesar simultneamente diversas etapas de distintas instrucciones, en cada etapa se completa una parte de la ejecucin de cada instruccin. En un Pipeline se trata de que con cada pulso de reloj se termine de ejecutar una instruccin. Los procesos se llevan a cabo en paralelo cada uno independiente del otro. Esto presenta una mejora al Modelo de Von Neumann y aumenta la velocidad de procesamiento porque aumenta la cantidad de instrucciones que se procesan por segundo. Al cabo de 8 pulsos se habrn ejecutado 4 instrucciones (4 veces mas que sin pipeline). Con cada pulso una instruccin entra al Pipeline y a su vez se termina de ejecutar una instruccin. Cabe destacar que no se reduce el tiempo que tarda en ejecutarse una instruccin, sino que se ejecutan mas seguido. En general en un Pipeline de N etapas, se pueden procesar hasta N veces mas instrucciones por segundo que sin pipeline. Para agregar pipelining a la UCP hay que agregarle circuitera adicional, agregar un buffer para almacenar por orden de llegada de los cdigos de varias instrucciones, etc. (Ejemplo lavadero de autos 5 etapas, Dibujo de Sin Pipeline y Con Pipeline que permite procesar diversas etapas de diversas instrucciones, 4 etapas, 8 pulsos de ck ).

Teniendo presente el interior del 486, explicar cmo se da el pipeline en el mismo


Interior del 486: RDI y RDA pertenecen a la Unidad de Interconexin con el BUS, encargada de la comunicacin exterior. Unidad Cach 8Kb, guarda datos e instrucciones que se usarn prximamente. Unidad Pre-Carga, proporciona las direcciones de las prximas instrucciones a ejecutar y las guarda en orden para que luego cada una sea decodificada. Unidad de Decodificacin, realiza dos decodificaciones de cada instruccin. Unidad de Control, activa las operaciones que con cada pulso reloj deben realizar los bloques de la UCP. Unidad de Segmentacin (Unidad de Manejo de Memoria), proporciona las direcciones fsicas de memoria que utiliza un programa. Se encarga tambien de la proteccin contra escritura no permitidas en zonas reservadas de memoria. El Pipeline en el 486 consta de 5 Etapas que progresan con cada pulso de Reloj: 1. Precarga (pre-fetch): Llegan, a dos buffers (de 16 bytes cada uno) de la Unidad de PreCarga, en forma simultnea los cdigos de las prximas instrucciones (5 por ejemplo), formando una cola. Si las instrucciones no hubieran estado en el Cach, primero se hubiera pedido la primera de ellas a Memoria Principal, llegando al buffer de pre-carga para que entre al Pipeline, y otra copia del mismo al cache, inmediatamente llegarn desde el Cach las otras instrucciones que pasan al buffer. 2. Primera Decodificacin: A la Unidad de Decodificacin los primeros 3 Bytes de I1 (primera instruccin), para separar su cdigo de operacin, del nmero que hace referencia a la direccin del dato. Dicho nmero pasar a la Unidad de Segmentacin y paginacin, que formar la direccin del dato a operar, de modo que pueda ser ledo del cach (si est en ste). 3. Segunda Decodificacin: El Cdigo de Operacin identificado en el paso 2 es ahora decodificado y se determina la secuencia de micro-cdigo de la ROM de Control que generar las seales de control, dichas seales las genera la UC, para as ejecutar los pasos que dicha instruccin requiere. Si la instruccin es simple se ejecuta en 1 pulso. En el

momento en que I1 pasa por esta etapa del pipeline, la I2 entra en la Primera Decodificacin (realizndose en ella los pasos de la Etapa 2). 4. Ejecucin: Se realiza la accin indicada por instruccin I1. Paralelamente a esto la I2 pasa a la etapa de Segunda Decodificacin, y la I3 ingresa a la etapa de Primera Decodificacin. 5. Almacenamiento de Resultados: A esta etapa final del Pipeline llega I1 completndose su ejecucin. Al mismo tiempo la instruccin I2 entra a la etapa de Ejecucin, obtenindose del cach el dato (si es que est en este), la instruccin I3 llega a la Segunda decodificacin e I4 entra en la Primera Decodificacin

Qu significa que el Pentium sea un procesador superescalar, qu debe tener en su interior para ello, y en que caso funciona de esa manera
El Pentium pasa 10 instrucciones al buffer de Pre-Carga que puede almacenar 32 bytes. Tiene 2 cachs separados, uno para Instrucciones a ejecutar y otro se accede a los Datos. El Bus de Datos del Pentium es de 64 bits, por esto los dos cach reciben el doble de datos o instrucciones que en el 486. El Pentium contiene 2 Pipelines para instrucciones que operan con nmeros enteros para poder procesar 2 instrucciones de forma independiente (significa que los resultados de las operaciones ordenadas se obtienen a un mismo tiempo), esto lo hace un procesador Superescalar, capaz de terminar de ejecutar 2 instrucciones en un pulso, como los procesadores RISC; por esto requiere un cach para datos y otro para instrucciones. Adems existen por duplicado la Unidad Decodificadora, la Unidad de Segmentacin, y la UAL. Cuando opera con nmeros enteros funciona como un procesador Superescalar. Una instruccin para nmeros en punto flotante opera con datos de 64 bits, que ocupan los 2 Pipelines para nmeros enteros, por lo que estas no pueden ejecutarse junto a otra instruccin.

Qu tipos de instrucciones tienen un CISC y un RISC


CISC Complex Instruction Set Computer: Computador con repertorio complejo de instrucciones y la UC se basa en una Rom de Control. La palabra Compejo alude a un conjunto de entre 200 y 300 instrucciones, las cuales pueden ser simples, menos simples o complejas. A su vez existen varios modos de direccionamiento. Esta complejidad implica un nmero muy variado de formatos de instrucciones de diferente longitud, por lo que el Decodificador necesita de circuitera complicada. Las instrucciones complejas ocupan menos espacio de memoria, que varias instrucciones simples que realizan la misma funcin, ahorrando espacio en poca en que la memoria era cara. Las instrucciones CISC complejas son aquellas que ordenan mover cadenas de caracteres de un lugar a otro de memoria. Las instrucciones simples y las complejas necesitan distinta cantidad d epulsos de Clock para ser ejecutadas, lo que demorara, en un Pipeline, la ejecucin de instrucciones simples. El procesador puede ejecutar como instrucciones de mquina, ciertas sentencias de alto nivel, siendo as de fcil construccin los compiladores. RISC Reduced Instruction Set Computer: Computador con repertorio de instrucciones reducido, desarrollados en los 80s buscan optimizar la performance de los procesadores. Las instrucciones ms simples constituyen el 80% de los programas tpicos ejecutados. El repertorio de instrucciones de estos procesadores es sencillo, todas ellas son de igual tamao, con su cod-op y operandos en igual disposicin y con pocos modos de direccionamiento. Esto tiene como objetivo simplificar el decodificador y la Unidad de Control, de modo que cada paso en la ejecucin de una instruccin sea lo ms rpido posible. Tiene gran cantidad de registros. Puesto que no existen instrucciones complejas, y que la mayora de las instrucciones son snecillas, ejecutables en igual cantidad de pasos aumenta el rendimiento de un Pipeline RISC en relacin al CISC.

Cmo debe ser un compilador para RISC

Los compiladores RISC deben ser compiladores inteligentes, para generar cdigo de mquina que optimicen asignaciones y loops, para generar secuencias que ayuden a la productividad del Pipeline. Estos compiladores procurar que los datos mas utilizados en un lapso de tiempo estn en registros minimizando as los accesos a memoria. Todas las operaciones de la UAL deben hacerse en Modo Registro, como est pensado el repertorio de un RISC. Estos compiladores generan cdigo de mquina un 20 o 30% ms largo que en un CISC, pero se ejecutan mucho mas rpidamente., por ser interrupciones simples.

Cules son las caractersticas de un RISC en relacin con la ROM de Control


RISC Reduced Instruction Set Computer: Los procesadores RISC no requieren una Rom de Control para guardar microcdigos que deban aparecer a la salida de la UC. Dicho espacio que ocupara la Rom de Control es ocupado por registros y Pipelines; mas registros implican menos accesos a memoria con la consiguiente ganancia de tiempo. Esto hace que aumente considerablemente el rendimiento de un RISC en relacin con el CISC.

Cmo se provee el microcdigo en un RISC


Se obtriene a travs del cdigo de operacin de las instrucciones, se generan las seales de control que ordenarn a los circuitos de la UCP intervinientes que operaciones deben realizar gracias al codop de la instruccin decodificada. EN ESTA RESPUESTA TENGO DUDAS.

Cul es la tendencia de los modernos procesadores


La tendencia es utilizar una nueva micro-arquitectura denominada NetBurst de Intel, que posibilita el procesamiento llamado Hyper-Threading. Esta arquitectura permite a un nico procesador fsico aparezca ante el sistema operativo como 2 procesadores lgicos capaces de ejecutar 2 procesos en paralelo. Por lo que se pueden programar procesos como si se dispusieran de 2 procesadores fsicos. Las instrucciones para ambos procesadores lgicos pueden coexistir y ser ejecutadas simultneamente.

Qu diferencia existe entre multiprocesamiento y multiprogramacin


Multiprocesamiento: Maquinas No Von Neumann, que tienen varios procesadores en Paralelo y que pueden ejecutar en forma independiente varias instrucciones de un programa, o varios programas independientes, y operar con diversos datos al mismo tiempo Multiprogramacin (Multitasking): Ejecucin alternada por una UCP de varios programas que estn en Memoria Principal. Por la velocidad en que se lleva a cabo esto, puede parecerle al ususario que la ejecucin de los programas se realiza simultneamente, pero en realidad su ejecucin se alterna muy rpidamente.

Unidad 5
Unidad 5: pags 26 a 29, pags 36 a 42, pags 93 y 94 y pags 117 a 119 del Texto (Tomo II, 3ra Ed.) pags 78 a 90 del Texto (Tomo I, 3ra Ed.)

Cules son las fases de una operacin de escritura de un disquete y de un rgido por ADM
Las fases de Escritura por ADM son: Preparacin => Sincronizacin => Transferencia => Escritura => Verificacin Fase De Preparacin: La instruccin INT 13 ordena que la UC ejecute una subrutina del S.O que permitir: 1- Determinar la ubicacin de origen y destino de los datos a transferir por ADM. 2- Inicializar el Port de comandos de la ICD (Interfaz Controladora de Disquetera) y registros del CADM (Contorladora de ADM). Fase De Sincronizacin: Es para determinar el momento en que el cabezal accedi al CHS ordenado, para que la CADM transfiera por ADM los 512 bytes de memoria al Port. Esta fase transcurre desde que al Port de Control llega el CHS del sector a acceder y hasta que la cabeza accede al mismo. Fase De Transferencia: Se transfieren 512 bytes de la memoria principal al Port de Datos de la ICD, mediante 256 ADMs si pasan por el bus ISA controlado por al CADM. Escritura Del Sector Bajo Control De La Electrnica De La Disquetera: Cada dos bytes que llegan en paralelo (por ADM) al Port de Datos del ICD, son convertidos a bits en serie y enviados a la electrnica de la disquetera. Esta los enva a la cabeza (head) seleccionada para su escritura en el campo de datos del sector accedido (codificacin MFM). Estos bits son usados en el clculo del CRC que se graba luego del campo de datos. Cada ADM es seguido por una escritura de 2 Bytes en el ector accedido. Al finalizar se enviarn seales al ICD para que esta indique en su Port de Status si la operacin fue realizada exitosamente o si debe codificar algn error sucedido. Verificacin De La Correcta Realizacin De La Operacion Ordenada: Cuando RC = 0 finalizan los 256 ADMs, entonces la CADM activa la lnea EOP (End Of Process) que llega a la ICD, que hace que la misma active la lnea IRQ de esta interfaz.

Cules son las fases de una operacin de lectura de un disquete y de un rgido por ADM
Las fases de Lectura por ADM son (se intercambian las fases 3 y 4 respecto de la Escritura por ADM): Preparacin => Sincronizacin => Lectura => Transferencia => Verificacin En cada ADM la CADM escribir la Memoria Principal desde el Port de Datos. El sentido del movimiento de los datos es del sector del disquete hacia la memoria principal. Fase de Lectura: La cabeza va leyendo el Campo de Datos del sector accedido, y la electrnica de la disquetera enva hacia la ICD la informacin en serie. Estos bits son convertidos en grupos de 8 con destino al Bus de Datos. Fase de Transferencia: Cada grupo de 8 bits sale en paralelo por las lneas de datos del bus para ser escrito en memoria.

Describir detalladamente qu pasa en la fase de Preparacin


Se realiza cuando la UCP ejecuta el cdigo de mquina INT 13 Determinacin de la ubicacin de origen y destino de los datos a transferir por ADM: 1. Divisin del archivo a guardar en clusters.

2. Lectura del Directorio Raz para determinar si el nombre del archivo en cuestin no exista antes, y lectura de la FAT. 3. Escritura del nombre asignado al archivo, y en la FAT los clusters que ocupa. 4. Conversin del nmero de clusters asignado en nmero de cilindro, cabeza, sector (CHS) que le corresponde (destino). Si el archivo tiene varios clusters sern los CHS que le corresponden. 5. Determinacin de la direccin inicial de la zona de memoria donde estn los 512 Bytes a escribir (origen). Inicializacin de Registros: para preparar la electrnica de la disquetera y del CADM para realizar el ADM. La ejecucin de subrutinas del BIOS inicializan registros y Ports, los comandos ordenan que deben hacer el CADM y el ICD: 1. Comandos que irn al Port de Comandos del ICD, indicando la direccin (CHS) del sector a acceder (destino) y la orden de escritura. 2. Comando que ira al registro RC del CADM, indicando que deben transferirse 512 Bytes entre memoria y el sector. 3. Comando que ir al registro RDI del CADM, indicando que a partir de que direccin de memoria (origen) se encuentran los 512 Bytes a transferir hacia el Port de datos de la interfaz de la disquetera. 4. Comando para el registro RO del CADM. 5. Finaliza la Fase de Preparacin Estos comandos indican el nmero de bytes a transferir, el origen y destino de estos datos, ya sea para lectura o escritura de un sector.

Cundo ocurre la Sincronizacin, y qu seal la indica


Esta fase transcurre desde que al Port de Control llega el CHS del sector a acceder y hasta que la cabeza accede al mismo. Cuando llegan comandos a los ports de la ICD, comienzan a realizar una secuencia de acciones: 1. Poner en marcha el motor de giro de la unidad (A B) seleccionada, y esperar hasta que alcance la velocidad correcta. 2. Ordenar que el cabezal se posiciones en el sector a escribir, cuyo CHS lleg al Port de Comandos. Luego del Tseek al cabezal llegar el Cilindro indicado y desfilaran los sectores de la pista de ese cilindro. Luego de Tlat la cabeza elegida se encontrar sobre el sector al que se quiere acceder. La electrnica de la disquetera indica este evento a la ICD para que active la lnea DRQ. La seal que inda la sincronizacin es la activacin de la lnea DRQ (DMA Request) que va a la CADM para que comience la transferencia por ADM de los 512 Bytes desde memoria hacia el Port de Datos de la ICD. Por lo tanto esta fase se concreta por HW. La activacin de esta lnea DRQ es la seal de sincronismo para que la CADM inicie el ADM.

Cuando comienza la fase de verificacin, y qu ocurre durante la misma


Es la 5ta fase de escritura de un disquete por ADM. Se realiza luego de la Fase de Escritura. En general en el Port de Status se indica si una operacin se realiz de manera exitosa o no. Una subrutina permite leer estos registros y conocer su indicacin. En el caso de la disquetera, cuando RC = 0 (Registro de Cuenta) finalizan los 256 AMDs, el CADM activa la lnea EOP (End Of Process) que llega al ICD y sta activa su lnea IRQn, por lo que la UCP pasar a ejecutar una subrutina del SO que verifica si la operacin preparada y ordenada en la fase 1 se llev a cabo correctamente por la CADM. ESta tarea hace que en esta 5ta fase la UCP intervenga para que por SW se verifique que hizo el CADM. La subrutina determina si RC = 0 y si el Port de Estado indica o no error. Si hay error se repetir la operacin de escritura un cierto nmero de veces. De persistir el

problema se dar un aviso por pantalla indicando el tipo de error producido y luego se ordenar detener el giro del Disquete.

Mediante qu instrucciones se escribe un port


Para escribir un Port (copiar datos desde el registro AX hacia el Port) se usa la instruccin OUT. Cada Port es seleccionado por la UC por la direccin que lo caracteriza, que es enviada por las lneas de direcciones del bus ligado al Port. Antes de una operacin de entrada/salida se deben enviar comandos a la electrnica del perifrico, estos comandos llegan hasta los Ports de Comandos. La UC realiza las siguientes acciones (escritura de Port con una copia de AX): 1. Por las lneas de direcciones del Bus enva la direccin del port 2. Por las lneas de datos enviar una copia de AX al Port. 3. Lnea de L/E en 0 para ordenar escritura.

Mediante qu instrucciones se lee un port


Para leer un Port (copiar datos desde el Port hacia el registro AX) se usa la instruccin IN. Cada Port es seleccionado por la UC por la direccin que lo caracteriza, que es enviada por las lneas de direcciones del bus ligado al Port.. Antes de una operacin de entrada/salida se deben enviar comandos a la electrnica del perifrico, estos comandos llegan hasta los Ports de Comandos. La UC realiza las siguientes acciones (lectura de un Port y envo de contenido a AX) 1. Lnea de L/E en 1 para ordenar lectura. 2. Por las lneas de direcciones se enva la direccin del Port. 3. Por las lneas de Datos enviar al registro AX el dato contenido en el Port.

Puerto Paralelo
Interfaz del Tipo Paralelo, transmisin de datos que se realiza a travs de 8 conductores al mismo tiempo. El cable en paralelo solo puede tener hasta 4mts de longuitud. El Port Paralelo tiene una lnea IRQ que se activa cuando se puede enviar otro byte al Port de Datos. El envo de un Byte a imprimir se realiza por polling y no por IRQ, instrucciones que leen repetidamente el valor del bit BUSY hasta detectar que cambi de valor. Esta interfaz tiene 3 Ports, Datos, Status y Control; que se comunican con AX a travs de 8 lneas de datos del bus para ser leidos/escritos con IN y OUT. Ejemplo de funcionamiento de Port Paralelo con Impresora: 1. Desde MP (zona buffer de impresion) llega a AX el byte a imprimir (luego de una instruccin tipo MOV). Luego se ejecuta una instruccin del tipo OUT que ordena escribir dicho byte en el Port de Datos. 2. Luego se ejecuta una instruccin que ordena pasar al registro AX el byte 01111111 (del tipo MOV). Luego un OUT hace que viaje dicho byte por las lneas de datos y se escribe en el Port de Control (1er bit 0 para STROBE = 0). 3. La electrnica de la impresora detecta STROBE = 0 , y toma desde el Port de Datos de la intefaz el byte a imprimir (a travs del cable conctado entre la interfaz y la electrnica de la impresora) y lo almacena en un buffer interno de la impresora. 4. La impresora enva un 0 por la lnea de ACK (acknowledge) reconociendo que recibi el Byte del puerto de datos, y por la lnea de BUSY enva un 0 informando que est ocupada. Dichos bits llegan al Port de Status, quedando el byte en este Port como 0011111. 5. Se lee repetidamente el Port de Status ejecutndose la instruccin IN. El byte de este Port llegar por el Bus de Datos al registro AX para determinar si cambiaron del valor 01111111 al valor 11111111 (esto implica que la impresora puso 1 en el bit de Busy del Port de Status y que puede guardar otro byte en su buffer para imprimir).

6. Se puede enviar, una vez que sea en byte del Port de Status 11111111 otro Byte para imprimir mediante el paso 1. Esta secuencia preestablecida de seales constituye el protocolo para impresin por puerto paralelo.

En qu fases interviene la UCP en una lectura o escritura por ADM


Interviene en las Fases de Preparacin (1era fase) y en la Fase de Verificacin (5ta fase).

Qu ventajas tiene trabajar por ADM


La transferencia por ADM entre memoria y el Port de Datos (o a la inversa) se realiza sin intervencin de la UCP, mientras el ADM tiene lugar, la UCP ejecuta otros programas (multitasking), esta es la principal ventaja del ADM. En cambio si la transferencia se realiza por AIM, la UCP debe ejecutar una subrutina que en general est en la ROM BIOS, que pase los datos usando el registro AX como escala intermedia.

Cuntos ADM y escrituras deben hacerse para pasar de memoria a memoria externa, y de qu depende
?????????????????????????????????????????????????????????????????

Comparar E/S por ADM con E/S con PIO


AIM: Acceso Indirecto a Memoria (PIO = Programmed I/O) Entrada AIM: Port de Datos => Registro AX => Memoria Principal. Esta triangulacin se realiza mediante la ejecucin de una subrutina del BIOS. Desde el Port de Datos pasan al registro AX (a travs del bus E/S) mediante la ejecucin de una instruccin IN, desde AX llegan a la zona de buffer de memoria (a travs del bus que une la memoria con el UCP) mediante una instruccin del tipo MOV. Por ejemplo el ingreso de datos del teclado. Salida AIM: Memoria Principal => Registro AX => Port de Datos El AIM es un proceso controlado por SW, dado que es ordenado mediante instrucciones que ejecuta la UCP. ADM: Acceso Directo a Memoria Entrada ADM: Port de Datos => Memoria Principal. Para realizar ADM se requiere de una circuitera complementaria a una intefaz, que pueda leer o escribir datos en memoria principal como lo hace el Microprocesador, dado que este no interviene en el ADM. Esta circuitera complementaria se denomina Controlador de ADM (CADM). Por ejemplo la lectura de un sector de un disquete. Salida ADM: Memoria Principal => Port de Datos En ADM es un proceso controlado por circuitera (HW) mediante el Controlador de ADM, sin ejecucin de instrucciones.

Cules son las fases de una operacin de escritura de un disquete por PIO
El proceso de escritura PIO (Programmed I/O) es por Acceso Indirecto a Memoria (AIM), ya que se realiza: memoria -> Ax -> Port de Datos. Este tipo Escritura se realiza mediante las siguientes fases: Preparacin => Sincronizacin => Transferencia => Escritura A diferencia del ADM, en el PIO no se tiene una 5ta Fase de Verificacin. En un programa en ejecucin debe existir una instruccin INT 13 (en Assembler de PC) que llama a una subrutina del S.O o del BIOS. Fase de Preparacin: La instruccin INT 13 ordena que la UC ejecute una subrutina del S.O que permitir:

1. Divisin del archivo a grabar en clusters, donde el tamao de estos depende del tamao de la particin. 2. Lectura del Directorio Raz, o de un subdirectorio, as como la lectura de la copia de la FAT en memoria. 3. Escritura en el subdirectorio del nombre asignado al archivo, y en la FAT, los clusters que dicho archivo ocupa. 4. Conversin de cada nmero de Clusters en los nmeros de SL que lo componen, y estos en los correspondientes sectores fsicos, identificados por su LBA o CHS en el disco. Luego de estas acciones, la ejecucin de instrucciones OUT permite enviar comandos desde el Registro AX hacia Registros Ports de la electrnica IDE, entre estos estar el LBA o CHS del primer sector a acceder. Fase de Sincronizacin: Transcurre desde que el LBA o CHS se escribi (mediante MOV y OUT) en el Port de Control, hasta que la cabeza indicada detecte el principio del sector seleccionado. En PIO esta fase es por AIM y se realiza mediante SW (ejecutando instrucciones MOV (memoria -> Ax) y OUT (Ax -> Por Datos). Cuando la cabeza llega al sector, momento en el que debe comenzar la transferencia, puede indicarse por la IDE de dos maneras: 1. Cambiando en su Port de Status el bit R (Ready), la subrutina que realiza los AIM debe direccionar previamente la direccin de este Port para poder leer dicho bit R. 2. Activando el cable de Solicitud de Interrupcin (IRQn) para que se pase a ejecutar una subrutina que realiza la transferencia. Durante esta fase la UCP puede realizar multitasking. Fase de Transferencia: Se realiza por AIM de los Bytes a escribir desde memoria al registro Ax, y de ste hacia el Port de Datos de la electrnica IDE, con destino al buffer de esta. La UCP ejecutar una subrutina que realizar 256 AIMs de 2 Bytes cada uno, para transferir los 512 Bytes de memoria al Port de Datos, de la IDE desde donde pasaran al sector de buffer. Fase de Escritura del Sector: Esta fase est a cargo del Microcontrolador de la IDE. Los Bytes que estan en el buffer son convertidos a bits en serie (estos bits son tenidos en cuenta en el clculo del ECC) y son enviados a la cabeza (en codificacin RLL) que los grabar en el sector accedido. Luego de escribir la Zona de Datos del sector, el microcontrolador enviar los bits que debern escribirse en la zona de ECC. Al Finalizar, la electrnica IDE registrar en su Port de Status si la operacin fu realizada con xito, caso contrario deber codificar el tipo de error ocurrido.

Indicar cmo se hace la sincronizacin y la transferencia en PIO


Fase de Sincronizacin: Transcurre desde que el LBA o CHS se escribi (mediante MOV y OUT) en el Port de Control, hasta que la cabeza indicada detecte el principio del sector seleccionado. En PIO esta fase es por AIM y se realiza mediante SW (ejecutando instrucciones MOV (memoria -> Ax) y OUT (Ax -> Por Datos). Cuando la cabeza llega al sector, momento en el que debe comenzar la transferencia, puede indicarse por la IDE de dos maneras: 3. Cambiando en su Port de Status el bit R (Ready), la subrutina que realiza los AIM debe direccionar previamente la direccin de este Port para poder leer dicho bit R. 4. Activando el cable de Solicitud de Interrupcin (IRQn) para que se pase a ejecutar una subrutina que realiza la transferencia. Durante esta fase la UCP puede realizar multitasking. Fase de Transferencia: Se realiza por AIM de los Bytes a escribir desde memoria al registro Ax, y de ste hacia el Port de Datos de la electrnica IDE, con destino al buffer de esta. La UCP ejecutar una subrutina que realizar 256 AIMs de 2 Bytes cada uno, para transferir los 512 Bytes de memoria al Port de Datos, de la IDE desde donde pasaran al sector de buffer.

Qu diferencias implica la existencia del bus PCI respecto del ISA


?????????????????????????????????????????????????????????????????

Indicar cmo sera la lectura de un sector usando PIO


Lectura mediante PIO: Las fases de Lectura usando PIO son (se intercambian las fases 3 y 4 respecto de la Escritura usando PIO) ya que el movimiento de los datos es del sector buffer hacia la memoria: Preparacin => Sincronizacin => Lectura => Transferencia Fase de Lectura: La cabeza va leyendo el Campo de Datos del sector accedido, se enva hacia la electrnica IDE bits en serie (codificacin RLL). Estos bits son decodificados para determinar los bits de datos que contiene. Estos bits son considerados para el clculo que el Microcontrolador IDE realiza para verificar el ECC. Los bits de datos son convertidos en grupos de 2 Bytes con destino al sector buffer. Fase de Transferencia: Los grupos de 2 bytes que llegan a buffer son transferidos en paralelo desde el Port de Datos hacia el registro AX (en sucesivos AIMs) , y de este hacia el buffer de memoria principal.

Cuntos sectores se leen o escriben en cada E/S


?????????????????????????????????????????????????????????????????

Describir la secuencia de pasos que suceden desde que se pulsa una tecla hasta que la misma se visualiza en pantalla
La secuencia de pasos desde que se pulsa una tecla hasta que el carcter se visualiza en pantalla es la siguiente: 1. Cuando se pulsa una tecla, se realiza un contacto entre 2 conductores, haciendo que circule una corriente entre ellos. El procesador detecta por cuales circula corriente para poder determinar la tecla pulsada. El cdigo de dicha tecla es generado por el procesador y lo enva bit a bit en serie por el cable conectado a la computadora, al Port del Teclado. 2. El Port del Teclado esta en la interfaz controladora de perifrico. Este activa su lnea de Requerimiento de Interrupcin (IRQn) para interrumpir el programa en ejecucin y pasar a ejecutar la subrutina que atiende al teclado del BIOS. 3. La subrutina hace que el cdigo de la tecla activada pase, del Port de Teclado al rea de datos del BIOS (en Memoria Principal) y permite encontrar, para dicho cdigo de tecla, el cdigo ASCII que le corresponde. Ambos cdigos son guardados consecutivamente en el buffer del teclado ubicado en dicha rea de la Memoria Principal (capacidad para 15 carcteres). 4. Una copia del byte en cdigo ASCII pasa a la RAM de Video (ubicada en Memoria Principal) mediante la subrutina. Luego el carcter tipeado es visualizado en la pantalla. 5. Al finalizar la subrutina llamada por la IRQn se retoma la ejecucin del programa interrumpido.

Unidad 6
Unidad 6: Tomo IV "De la compuerta al computador (circuitos lgicos del computador).

Hacer el circuito y explicar como funciona un multiplexor Establecer la correspondencia entre una resta realizada manualmente y la que realiza el sumador/restador de la UAL Explicar mediante un diagrama temporal cmo funciona un flip flop maestroesclavo Explicar cmo se carga y divide por dos un nmero de tres bits en un registro universal y cuntos pulsos de clock son necesarios. Explicar teniendo el esquema a la vista, cmo funciona una memoria SRAM