You are on page 1of 11

Responsable de ctedra: Carlos A.

Talay

Ver.: 4.0

Arquitectura de Computadoras
M.M.U. (Unidad de Gestin de Memoria) Organizacin fsica: es la organizacin de la memoria, tal como aparece sobre el bus principal del computador. Organizacin lgica: nos referimos a la forma en que el programador l a ve la estructura que la mquina virtual le plantea. Estas definiciones se tornan muy importantes cuando se trata de aplicaciones multiusuario. En este caso el M.M.U., es el encargado de conectar o relacionar las memorias fsica y lgica, siendo esta labor totalmente transparente para el usuario.

Fig. 1

Organizacin Fsica Las memorias en los equipos P.C. en un primer momento se componan de chips (encapsulado tipo DIL) los cuales configuraban los bloques de memoria. Hoy en da estos chips son raramente utilizados en las P.C., dando paso a memorias tipo S.I.M.M., las cuales son ms compactas, de fcil manejo e instalacin. En equipos multiusuario (minis y mainframes) las memorias tambin estaban formadas por chips de memoria, que organizados mediante una lgica de control se agrupaban en bloques que configuraban las placas o tarjetas de memoria. Al igual que en los P.C., en los equipos ms modernos, estas tarjetas dejaron paso a las memorias tipo S.I.M.M.. Desde el punto de vista de la organizacin esta puede ser: - Lineal. - Paginacin por hardware. Organizacin lgica En el caso ms sencillo, la organizacin fsica coincide con la lgica (caso de los microprocesadores de 8 bits). Se trata de una organizacin lineal. En este caso puede haber paginacin, pero es por software.
U.N.P.A. 1 U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

Sin embargo, en el caso de los microprocesadores de 16 bits (en adelante), y las Minis y Mainframes, con su mayor espacio de direccionamiento y sus aplicaciones multitarea, requieren esquemas de organizacin ms elaborados. Segmentacin: bsicamente, es un mtodo de acceso a memoria en el cual toda direccin se compone de dos cantidades, un identificador de segmento (I.S.) y un desplazamiento.

Fig. 2 Paginacin: se divide la memoria en pginas lgicas. Cada acceso a memoria se hace a partir de un identificador de pgina (I. P.), que selecciona la pgina deseada, y un desplazamiento, que localiza la posicin de la celda.

Fig. 3 Diferencias: 1.- Las pginas tienen tamao fijo, mientras que los segmentos son variables. 2.- La segmentacin permite que los segmentos comiencen y terminen en cualquier posicin en la memoria, mientras que las pginas deben estar comprendidas entre las fronteras de bloque rgidas. 3.- Los segmentos se pueden superponer, las pginas no. 4.- La segmentacin obliga al programador a estar atento a los lmites del segmento, mientras que en la paginacin este aspecto suele hacerse automticamente, ya sea por va hardware o a travs del Sistema Operativo. Gestin de Memoria Teniendo en cuenta las definiciones anteriores, podemos decir que la M.M.U. acta de interfaz entre el esquema lgico de direccionamiento de memoria, y la organizacin fsica de sta, o sea, que se encarga de calcular la direccin fsica real a partir de la direccin lgica que el programador define. La gestin de memoria se utiliza tanto en paginacin como en segmentacin.

U.N.P.A.

U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

Fig. 4 Esto es de vital importancia en sistemas multiusuarios, cuando esta unidad falla son comunes las cadas de sistemas, errores de sistema, superposicin de informacin, etc.. El M.M.U. puede realizarse por medio de chips especializados, que contienen una serie de registros en los cuales se encuentra la direccin del comienzo de un segmento (zona de memoria), pudiendo tambin esta funcin estar contenida dentro mismo del microprocesador. Cuando se utiliza la gestin de memoria en un sistema que utiliza paginacin, los registros del M.M.U. reciben el nombre de registros de paginacin, y contienen los nmeros de pgina. La gestin de memoria es muy importante en el caso del multiprocesamiento, es decir, cuando varios programadores tienen acceso simultneo, o cuando un usuario lanza varios programas a ejecutar a un mismo tiempo. Interrupciones, E/S programada y DMA Las Interrupciones Son seales enviadas a la CPU para que termine o suspenda la ejecucin de la instruccin en curso y atienda una peticin determinada, continuando ms tarde con lo que estaba haciendo. Cada interrupcin lleva asociado un nmero que identifica el tipo de servicio a realizar. A partir de dicho nmero se calcula la direccin de la rutina que lo atiende y cuando se retorna se contina con la instruccin siguiente a la que se estaba ejecutando cuando se produjo la interrupcin. La forma de calcular la direccin de la rutina es multiplicar por cuatro el valor de la interrupcin para obtener un desplazamiento y, sobre el segmento 0, con dicho desplazamiento, se leen dos palabras: la primera es el desplazamiento y la segunda el segmento de la rutina deseada. Por tanto, en el primer kilobyte de memoria fsica del sistema, existe espacio suficiente para los 256 vectores de interrupcin disponibles. Hay tres tipos bsicos de interrupciones: 3 Interrupciones internas o excepciones: Las genera la propia CPU cuando se produce una situacin anormal o cuando llega el caso. Por desgracia, IBM se salt olmpicamente la especificacin de Intel que reserva las interrupciones 0-31 para el procesador. INT 0: Error de divisin, generada automticamente cuando el cociente no cabe en el registro o el divisor es cero. Slo puede ser generada mediante DIV o IDIV. Hay una sutil diferencia de comportamiento ante esta interrupcin segn el tipo de procesador: el 8088/8086 y los NEC V20 y V30 almacenan en la pila, como cabra esperar, la direccin de la instruccin que sigue a la que caus la excepcin. Sin embargo, el 286 y superiores almacenan la direccin del DIV o IDIV que causa la excepcin.

U.N.P.A.

U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

INT 1: Paso a paso, se produce tras cada instruccin cuando el procesador est en modo traza (utilizada en depuracin de programas). INT 2: Interrupcin no enmascarable, tiene prioridad absoluta y se produce incluso aunque estn inhibidas las interrupciones (con CLI) para indicar un hecho muy urgente (fallo en la alimentacin o error de paridad en la memoria). INT 3: Utilizada para poner puntos de ruptura en la depuracin de programas, debido a que es una instruccin de un solo byte muy cmoda de utilizar. INT 4: Desbordamiento, se dispara cuando se ejecuta un INTO y haba desbordamiento. INT 5: Rango excedido en la instruccin BOUND (slo 286 y superiores). Ha sido incorrectamente empleada por IBM para volcar la pantalla por impresora. INT 6: Cdigo de operacin invlido (slo a partir del 286). Se produce al ejecutar una instruccin indefinida, en la pila se almacena el CS:IP de la instruccin ilegal. INT 7: Dispositivo no disponible (slo a partir del 286).

3 Interrupciones hardware: Son las generadas por la circuitera del ordenador en respuesta a algn evento. Las ms importantes son: INT 8: Se produce con una frecuencia peridica determinada por el canal 0 del chip temporizador 8253/8254 (en la prctica, unas 18,2 veces por segundo). Como desde esta interrupcin se invoca a su vez a INT 1Ch -porque as lo dispuso IBM-, es posible ligar un proceso a INT 1Ch para que se ejecute peridicamente. INT 9: Generada al pulsar o soltar una tecla. INT 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh: Puertos serie, impresora y controladores de disquete. INT 70h, 71h, 72h, 73h, 74h, 75h, 76h, 77h: Generadas en los AT y mquinas superiores por el segundo chip controlador de interrupciones.

3 Interrupciones software: Producidas por el propio programa (instruccin INT) para invocar ciertas subrutinas. La BIOS y el DOS utilizan algunas interrupciones a las que se puede llamar con determinados valores en los registros para que realicen ciertos servicios. Tambin existe alguna que otra interrupcin que se limita simplemente a apuntar a modo de puntero a una tabla de datos. Los vectores de interrupcin pueden ser desviados hacia un programa propio que, adems, podra quedar residente en memoria. Si se reprograma por completo una interrupcin y sta es de tipo hardware, hay que realizar una serie de tareas adicionales, como enviar una seal fin de interrupcin hardware al chip controlador de interrupciones. Si se trata adems de la interrupcin del teclado del PC o XT, hay que enviar una seal de reconocimiento al mismo en resumen: conviene documentarse debidamente antes de intentar hacer nada. Todos estos problemas se evitan si la nueva rutina que controla la interrupcin llama al principio (o al final) al anterior gestor de la misma, que es lo ms normal, como se ver ms adelante. Para cambiar un vector de interrupcin existen cuatro mtodos:

U.N.P.A.

U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

1. El elegante: Es adems el ms cmodo y compatible. De hecho, algunos programas de DOS funcionan tambin bajo OS/2 si han sido diseados con esta tcnica. Basta con llamar al servicio 25h del DOS (INT 21h) y decirle qu interrupcin hay que desviar y a dnde: MOV AH,25h vector MOV AL,vector LEA DX,rutina gestin INT 21h ; servicio para cambiar ; entre 0 y 255 ; DS:DX nueva rutina de ; llamar al DOS

2. El ps: Es menos seguro y compatible (ningn programa que emplea esta tcnica corre en OS/2) y consiste en hacer casi lo que hace el DOS pero sin llamarle. Es adems mucho ms incmodo y largo, pero muy usado por programadores despistados: MOV MOV MOV PUSH MOV LEA gestin CLI MOV MOV STI POP BL,vector*4 BH,0 AX,0 DS DS,AX DX,rutina ; vector a cambiar en BL ; ahora en BX ; preservar DS ; apuntar al segmento 0000 ; CS:DX nueva rutina de ; ; ; ; ; evitar posible interrupcin cambiar vector (offset) cambiar vector (segmento) permitir interrupciones restaurar DS

[BX],DX [BX+2],CS DS

3. El mtodo correcto: Es similar al ps, consiste en cambiar el vector de un tirn (cambiar a la vez segmento y offset con un REP MOVS) con objeto de evitar una posible interrupcin no enmascarable que se pueda producir en ese momento crtico en que ya se ha cambiado el offset pero todava no el segmento (CLI no inhibe la interrupcin no enmascarable). Este sistema es todava algo ms engorroso, pero es el mejor y es el que utiliza el DOS en el mtodo (1). 4. El mtodo incorrecto: Es muy usado por los malos programadores. Es similar al ps slo que sin inhibir las interrupciones mientras se cambia el vector, con el riesgo de que se produzca una interrupcin cuando se ha cambiado slo medio vector. Los peores programadores lo emplean sobre todo para cambiar INT 8 INT 1Ch, que se producen con una cadencia de 18,2 veces por segundo. Entrada/Salida El CPU realiza transferencias de datos con los elementos externos que componen el sistema (los que poseen una lgica apropiada) y necesita enviar y recibir seales de control que identifiquen los eventos que suceden. Tambin es necesario atender a dispositivos del sistema que en un momento dado solicitan al microprocesador su atencin. Este tipo de manejo de informacin en general se realiza a travs de las interrupciones o D.M.A.. En general, las atenciones de los perifricos asociados al sistema se puede realizar a travs de tres tcnicas a saber: 1) Entrada/Salida programada. 2) Entrada/Salida por interrupcin. 3) Acceso directo a memoria (DMA). Cada una de estas modalidades presenta ventajas y desventajas, as como requerimientos de hardware y de software.

U.N.P.A.

U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

1) En este caso todos los datos que se transfieren entre el CPU y la lgica externa, estn controlados por un programa (software) que ejecuta el CPU. A tal fin, existir un protocolo perfectamente definido por el cual el CPU indicar que ha puesto un dato en un lugar de memoria tal que la lgica externa puede tener acceso al mismo o el CPU sealar, en forma conveniente, que est esperando que la lgica externa coloque un dato en un lugar conveniente donde el CPU pueda leerlo. Esta modalidad tambin es conocida con la designacin de POLLING.

Fig. 5 Esta tcnica es particularmente usada en sistemas multiusuario, del tipo propietario, en donde el CPU va chequeando elemento por elemento del sistema, verificando si es necesario atender a ese perifrico, asignndole un perodo de tiempo de CPU llamado normalmente quantum de tiempo. En ese perodo de tiempo el CPU est completamente dedicado a la atencin de ese perifrico. 2) En este caso, la lgica externa posee medios que le permiten forzar al CPU a suspender la tarea que esta ejecutando, para atender los requerimientos externos. En el grfico vemos como se podran combinar los pedidos de interrupcin individual de cada dispositivo de I/O, para que le llegue el pedido de interrupcin al microprocesador.

Fig. 6 De acuerdo al anlisis de los diagramas de estados, podemos analizar los siguientes eventos. Al final de cada instruccin se testea la lnea de interrupciones (IRQ), con lo que se
U.N.P.A. 6 U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

detecta si existi una interrupcin y procede a realizar la rutina de atencin. Al realizar un pedido de interrupcin enmascarable, se enva por parte del microprocesador al dispositivo una seal de INTA y luego se lleva a 1 la lnea de IRQ.

Fig. 7 Desde el punto de vista del desarrollo del programa, el microprocesador debe saber dnde detuvo la ejecucin del mismo para atender la interrupcin para lo cual, por lo menos se debe guardar en la PILA el contenido del P.C. y si es necesario otros registros para restituirlos al regresar al lugar del programa en que fue interrumpido. Con este sistema se presentan dos problemas tpicos. Cuando ms de un elemento pide una interrupcin al mismo tiempo. En primer lugar hay que realizar la identificacin del dispositivo que realiz el pedido de interrupcin y el otro es establecer las prioridades. Esto puede solucionarse con una tcnica que es una mezcla de hardware y software llamada cadena margarita (Daisy Chain) .

Fig. 8 El sistema funciona de la siguiente manera: Al recibir el CPU un llamado de interrupcin (IRQ=0), el microprocesador contesta con un reconocimiento de interrupcin INTA, la cual es recibida por el primer dispositivo, si este no pidi la interrupcin, simplemente la deja pasar y as hasta que se llega al dispositivo que la pidi. En ese caso se interrumpe la cadena y enva al bus de datos el cdigo que lo identifica, y que, al recibir este dato hace que el P.C. cargue la direccin que corresponde al programa o subrutina de atencin que corresponde al elemento identificado. El problema ms serio de este mtodo es que si los elementos de la cadena son muchos, los ltimos reciben poca atencin. Otro problema es que requieren elementos externos inteligentes ya que deben procesar la seal INTA y entregar un dato fijo y propio que identifique a cada dispositivo. Otro mtodo de identificar una interrupcin es utilizando lo que se conoce como interrupcin vectoriada, en la cual el elemento que ha pedido la interrupcin no solo hace esto, sino que adems pone en el bus de direcciones aquella donde est su programa de atencin. En

U.N.P.A.

U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

particular este problema se resuelve con el circuito denominado Controlador de Prioridad de Interrupcin P.I.C.. Interrupciones Vectoriadas Para comprender la idea de interrupciones vectoriadas, tomaremos como ejemplo a la arquitectura de 8 bits Motorola, teniendo como C.I. de control de interrupciones el P.I.C. 6828.

Fig. 9 El orden de prioridad es IN 7 (mayor prioridad) IN 0 (menor prioridad) , sin embargo por medio de la palabra de control se puede programar un orden distinto de prioridades. Las lneas A1 - A4 reciben las lneas A 1 - A4 del bus de direcciones del CPU y en funcin del pedido de interrupcin por un elemento externo (canalizado a travs de las lneas INT0 - INT7) producen una modificacin de dichas lneas de direccionamiento, devolviendo al bus las lneas Z 1 - Z4 de manera tal que a cada elemento le corresponde una direccin fija. Recordemos que el 6800 tiene lugares fijos de memoria, en donde se ubican los punteros de las rutinas que atendern a esas interrupciones (para la IRQ la direccin FFF8 y FFF9) de esta manera de acuerdo al elemento que pidi la interrupcin se direccionan los lugares de memoria que se indican en la tabla, proporcionado los vectores de interrupcin que contienen las direcciones en donde se alojan las rutinas de interrupcin.

Fig. 10 El P.I.C no solo hace esto, sino que tambin atiende prioritariamente al pedido de interrupcin que recibe, es decir asigna prioridades e identifica la rutina que debe atender el C.P.U. . El problema de identificar al elemento, lo resuelve creando un vector de direcciones y en caso de ms de un pedido de interrupcin atiende por prioridad. Es de hacer notas que se pueden buscar los punteros en donde comienzan las rutinas de atencin de interrupciones en una memoria ROM (por ejemplo), denominada ROM dedicada.

U.N.P.A.

U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

Fig. 11 Veamos los pasos que se siguen al producirse una interrupcin: - Llega una o varias interrupciones (lnea INT) al P.I.C. - El PIC determina la prioridad. - El PIC enva un pedido de interrupcin (lnea IRQ) al Micro. - El Micro entra en la rutina IRQ, enviando por el bus de direcciones la direccin del puntero donde se encuentra la rutina de atencin de interrupcin, en la direccin FFF8|h, FFF9|h (para el procesador 6800). - Con la lnea de direcciones y el VMA se activa el P.I.C. - Al existir direccin valida el P.I.C. intercepta las lneas que van de A1 a A4, de tal manera que compone la direccin que corresponde de acuerdo al dispositivo que llam, desviando as la interrupcin hacia una rutina especfica de interrupcin.

Fig. 12
U.N.P.A. 9 U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

3) DMA En este caso, la transferencia de datos entre los elementos externos y la memoria puede realizarse sin que el CPU intervenga directamente en dicha transferencia, lo que se conoce con el nombre de Acceso Directo a Memoria o D.M.A.. La idea del DMA es realizar un acceso directo a memoria aprovechando los momentos en que el procesador no tiene uso del bus de datos o forzar al Microprocesador a ceder el control del sistema envindole una seal de HALT, con lo que el controlador de DMA toma el control del sistema (bus) y realiza transferencias de datos entre dispositivos del sistema. (generalmente entre un perifrico y la memoria). Existen bsicamente tres modos o formas bsicas de realizar esta operacin: a) Modo Brust o Modo Bloque. b) Modo Cycle Stealt o robo de ciclos. c) Modo Single Byte o de a un byte. Es de destacar que no todos estos mtodos estn implementados en todos los dispositivos de DMA. Veamos en que consta cada uno de ellos. a) Al registrarse la necesidad de una transmisin de datos, el dispositivo se comunica con el controlador de DMA, por lo que el DMA enva un HALT al CPU y se inicia el movimiento de informacin. Una vez iniciada la transmisin, el DMA tiene el control del canal de datos y continua con ella hasta que se transmite todo el bloque de informacin. Esto puede ser una desventaja, pero en contrapartida es ms rpido porque ahorro los pasos intermedios (handshake) que se producirn en mltiples accesos. Es el medio de transferencia ms apto para perifricos rpidos. b) En este caso el controlador de DMA est utilizando el canal de datos y direcciones en los tiempos en que el CPU no lo utiliza, realizando la transferencia de toda la informacin posible, suspendindose al retomar el CPU el uso de los buses. Es el medio de transferencia ms apto para perifricos lentos. c) La posesin del bus se realiza bajo las mismas condiciones que en el punto anterior, pero se transfiere solamente de a un byte. A continuacin enumeraremos los elementos internos fundamentales que componen un controlador de DMA y la funcin que desempean: 1) Un registro para almacenar la direccin de la memoria inicial en la que se desea escribir o leer. 2) Un registro contador de palabras, en el que se almacena la longitud del bloque de palabras que van a transmitirse. 2) Posee una salida que indica si el tipo de operacin a realizar es del tipo de lectura o escritura. 4) Un bloque de control y status, que monitorea y genera indicadores del resultado de las operaciones realizadas. En el siguiente esquema vemos el diagrama en bloques de un controlador de D.M.A. tpico.

U.N.P.A.

10

U.A.R.G.

Responsable de ctedra: Carlos A. Talay

Ver.: 4.0

Fig. 13 Registro de direcciones (Address): Indica a donde se deben transferir. Registro Contador (Count): Indica cuantos bytes se deben transferir. Registro de control y status (Control / Status): Indica como transferir los datos. La interconexin de un C.I. de DMA dentro de una arquitectura podra ejemplificarse de la siguiente:

Fig. 14

Bibliografa - Arquitectura de Ordenadores - Miguel A de Miguel, Teresa Higuera - Ra-Ma. - Sistemas Operativos y Compiladores - J. S. Parrilla - Ra-Ma. - Introduccin al Microprocesador 8086 / 88 - C. L. Morgan y M. Waite - Ra-Ma. - Fundamentos de los Computadores - Pedro de Miguel Anasagasti - Paraninfo.

U.N.P.A.

11

U.A.R.G.

You might also like