Está en la página 1de 18

Resumen Final De Arquitectura de Computadoras Memoria Externa

5.1) Disco Magntico: Son un plato circular de metal o plstico cubierto por material magnetizable, donde los datos son grabados para luego ser ledos mediante una cabeza fija, bajo la cual gira. El mecanismo de escritura se basa en el campo magntico producido por el flujo elctrico que atraviesa la bobina (positivos o negativos). Los datos se organizan en anillos concntricos llamados pistas, estas suelen tener el mismo nmero de bits y entre si estn separadas por bandas vacas. La densidad, en bits por pulgada lineal, aumenta de la pista ms externa a la ms interna. Los datos se transfieren en bloques y se almacenan como sectores (separados con intrapistas). Tambin hay algunos datos nicamente accesibles por el controlador de disco. Para leer la cabeza debe posicionarse en la pista deseada y al principio del sector deseado de esta. Tiempo de bsqueda: el tiempo que tarda la cabeza en posicionarse en la pista. [Constante del disco * numero de pistas atravesadas + tiempo de inicio = TB(seg.)] Retardo rotacional: tiempo que tarda el sector en alcanzar la cabeza. Tiempo de acceso: suma de tiempo de bsqueda y retardo rotacional. Tiempo de transferencia de datos: tiempo al desplazar el sector bajo la cabeza. Depende en general de la velocidad del disco de la siguiente forma: [Numero de bytes a transferir /(rotacin en RPS * bytes de una pista) = T] Adems hay tiempos de retardos en cola por E/S del disco. 5.2) RAID: Raid = conjunto redundante de discos independientes. Usa varios discos para aadir redundancia y mejorar la seguridad. El disco lo ve como una nica unidad lgica. Esta redundancia la gana al almacenar informacin de paridad (Menos nivel 0). Raid aumenta la probabilidad de fallo, pero permite recuperar datos perdidos. Nivel 0 No redundante: No incluye redundancia, es barato. Los datos de usuario y sistema estn distribuidos a lo largo de todos los discos del conjunto (tiras de datos). Alto nivel de E/S, ya que gestiona en paralelo los datos distribuidos y se hace rpido. Se suele utilizar para datos no crticos. Nivel 1 Espejo: Duplica todos los discos. Una lectura pude ser servida por cualquiera de los discos que tengan los datos pedidos. No hay penalizacin por escritura. Es simple recuperar un fallo ya que simplemente estar duplicado. Lo malo es que se requiere el doble de espacio para implementarlo. Nivel 2 Hamming: Usa una tcnica de acceso paralelo. Cada cabeza de disco esta en la misma posicin en cada disco en cada instante. Se usa la descomposicin de datos en tiras muy pequeas. El nmero de discos es proporcional al logaritmo de la cantidad. Una lectura accede a todos los discos. Es efectivo donde haya muchos errores de disco. No se comercializa. Nivel 3 Bit de paridad intercalado: Requiere solo un disco redundante sin importar cuan grande sea el conjunto de datos. Utiliza un acceso paralelo con datos distribuidos en pequeas tiras. La reconstruccin de datos es sencilla. En caso de que un disco falle todos los datos estarn disponibles en el modo reducido. Tiene velocidades de transferencia muy altas. Nivel 4 Bloque de paridad intercalado: usa el acceso independiente, atiende en paralelo. Las tiras son relativamente grandes. Se calcula una tira de paridad bit a bit, a partir de las correspondientes tiras de cada disco de datos y los bits de paridad se almacenan en la correspondiente tira del disco de paridad. Tiene penalizacin de escritura en pequeas escrituras. Se genera un cuello de botella en el disco de paridad gracias a que siempre se querr acceder. No se comercializa. Nivel 5 Paridad distribuida en bloques intercalados: Similar al 4, pero distribuye la paridad en todos los discos. Nivel 6 Paridad distribuida dual en bloques intercalados: se hacen 2 clculos de paridad distintos que se almacenan en bloques separados en distintos discos (N+2). Tiene alta disponibilidad de datos. 5.3) Memoria ptica: CD-ROM: se forma a partir de una resina cubierta de una superficie reflectante de aluminio. La informacin se graba digitalmente como una serie de hoyos en la superficie. Esta informacin se recupera con un lser de baja potencia que contendr el lector, este pasa a travs de la capa protectora mientras un motor hace girar el disco sobre el lser. La intensidad de luz reflejada cambia segn haya un hoyo o no. La informacin se puede explorar a la misma velocidad girando el disco a una velocidad fija (velocidad angular constante). Se divide en sectores y en una serie de pistas concntricas. La capacidad de una pista y el tiempo de rotacin se incrementan en posiciones cercanas al borde exterior del disco. El formato tpico de un bloque consta de los siguientes campos: Sincronizacin (indica el principio de un bloque), cabecera (direccin del bloque y byte de modo), datos (datos del usuario) y auxiliar (datos adicionales).

Tiene 3 ventajas claras: capacidad de almacenamiento, es barato y fcil de replicar y es extrable. Desventajas: es de solo lectura y tiene mayor tiempo de acceso. WORM: Disco preparado para poder ser escrito una vez con un haz lser de intensidad modesta que producir ampollas en el disco. Disco ptico Borrable: se puede reescribir repetidamente. Usa el sistema magntico ptico. Usa un haz de lser mas un campo magntico para escribir y borrar informacin, invirtiendo los polos magnticos en una pequea rea del disco. Su gran ventaja es la reescritura, su alta capacidad, la portabilidad y seguridad. Usan velocidad angular constante. DVD: almacena 4,7gb por capa Discos Magnticos pticos: su tecnologa es magntica y consigue grandes capacidades. Su lectura es puramente ptica y su mxima ventaja es la longevidad. Cinta magntica: usa las mismas tcnicas que los discos. En un principio se usaban 9 pistas para almacenar datos de un byte en un instante dado ms un bit de paridad. Escribe en bloques contiguos llamados registros de cinta, separados por bandas vacas. Si la cabeza esta mas all del registro buscado, se necesitar rebobinar.

Entrada/Salida
Un mdulo de E/S contiene la lgica necesaria para permitir la comunicacin entre perifricos y bus. No se conectan directamente al bus ya que hay infinidad de modelos distintos que varan de formas y velocidades de transferencia. Estos mdulos tienen dos funciones principales: Realizar la interfaz entre procesador y memoria a travs del bus del sistema o un conmutador central y la interfaz entre uno o ms perifricos mediante los enlaces de datos especficos. 6.1) Dispositivos Externos: (O perifricos). Se pueden clasificar en 3 categoras: De interaccin con humanos, de interaccin con mquinas y de comunicacin. Su conexin con un mdulo de salida se realiza a travs de seales de control, estado y datos. Los datos se intercambian en forma de un conjunto de bits que son enviados o recibidos desde el mdulo de E/S. Las seales de control determinan la funcin que debe realizar el dispositivo (Input, Read, Output, Write, Ready, Etc). La lgica de control controla su operacin en respuesta a las indicaciones del mdulo de E/S. El transductor convierte las seales elctricas asociadas al dato a otra forma de energa en el caso de una salida y viceversa en el caso de una entrada. Teclado/Monitor: es la forma ms comn de interaccin. La unidad de intercambio es el carcter (7 bits en ASCII). Al pulsar una tecla se genera una seal electrnica interpretada por el transductor binario del correspondiente cdigo ASCII, el cual es transmitido al computador. Controlador de disco: (Disk Drive): Contiene la electrnica necesaria para intercambiar seales de datos. Control y acceso con un modulo de E/S, mas la electrnica para controlar el mecanismo de lectura/escritura del disco. 6.2) Mdulos de E/S: Funciones de un mdulo: Control y temporizacin: para coordinar el trfico entre los recursos internos y los dispositivos externos. Comunicacin con el procesador: implica descodificacin de ordenes (mediante el bus de control), datos, informacin de estado (dado que los perifricos son lentos) y reconocimiento de direccin (distintas). Comunicacin con los dispositivos: intercambiar rdenes, informacin de estado y datos. Almacenamiento temporal de datos (data buffering): los datos provenientes de memoria se envan al modulo E/S en rfagas rpidas y despus se envan al perifrico a su velocidad. Deteccin de errores: debe detectarlos y notificar al procesador. Pueden ser defectos mecnicos o cambios en los bits. Estructura de un mdulo de E/S: permite que el procesador vea a una amplia gama de dispositivos de forma simple, para que el pueda funcionar nicamente en trminos de ordenes de lectura, escritura y ficheros. Un mdulo de E/S se encarga del procesamiento, dejando al procesador una interfaz de alto nivel (canal de E/S). 6.3) E/S programada: Cuando el procesador esta ejecutando un programa y se encuentra con una instruccin relacionada con una E/S, ejecuta dicha instruccin mandando una orden al mdulo de E/S apropiado. Con E/S programada el modulo de E/S realiza la accin solicitada y despus activa los bits apropiados en el registro de estado de E/S. Este modulo no interrumpe al procesador, el cual deber comprobar si el modulo E/S ha terminado. rdenes de E/S: Hay 4 tipos de rdenes de E/S que puede recibir un modulo cuando es direccionado por el procesador: Control: se utiliza para activar el perifrico e indicarle que hacer. Son especficas de este.

Test: Se utiliza para comprobar diversas condiciones de estado asociadas al modulo de E/S y sus perifricos. Lectura: Hace que el mdulo de E/S capte un dato de un perifrico y lo site en un buffer interno. Luego el procesador puede obtener el dato, solicitando que el modulo de E/S lo ponga en el bus de datos. Escritura: hace que el modulo de E/S capte un dato del bus y lo transmita al perifrico. Instrucciones de E/S: Las instrucciones se pueden hacer corresponder fcilmente con las rdenes de E/S. La forma de la instruccin depende de la manera de direccionar los dispositivos externos. Cada mdulo debe interpretar las lneas de direccin para determinar si la orden es para el. Cuando el procesador, la memoria principal y las E/S comparten un bus en comn son posibles dos modos de direccionamiento: o Asignado en memoria: existe un nico espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. Se necesita una sola lnea de lectura y una sola lnea de escritura en el bus. o E/S aislada: los puertos de E/S solo son accesibles mediante una orden especfica de E/S, que activa las lneas de rdenes de E/S del bus. Lo malo es que se utiliza parte del espacio de direcciones de memoria. Ambas son muy utilizadas. 6.4) E/S Mediante interrupciones: El procesador tras enviar una instruccin de E/S a un mdulo contina haciendo algn trabajo til. Despus el mdulo de E/S interrumpir al procesador para solicitar servicio cuando este preparado para intercambiar datos con el. Ah ejecuta y sigue su camino. Como se procesa la interrupcin: El dispositivo enva una seal al procesador, este termina su interrupcin en curso y al tomarla le avisa. Luego el procesador se prepara para procesar la interrupcin (guarda la informacin de estado, etc) y carga el contador de programa con la posicin de inicio del programa de gestin de la interrupcin solicitada y el PSW del programa interrumpido, adems de registros del procesador. Ahora si procesa la interrupcin (examinar informacin de estado relativa a la operacin de E/S u otros eventos). Al finalizar la interrupcin se recuperan los valores de registros de la pila y se vuelven a almacenar en los registros, se recupera el PSW y el contador. Finalmente se contina con el programa interrumpido. Para identificar un dispositivo entre varios hay 4 tcnicas: Mltiples lneas de interrupcin: las cuales se interponen entre procesador y los mdulos de E/S. El problema es que no es prctico. Consulta software: Cuando el procesador detecta una rutina de interrupcin bifurca a una rutina de interrupcin para consultar a cada modulo de E/S y ver quien llamo a la interrupcin. Pero consume mucho tiempo. Conexin en cadena: entre mdulos de E/S, que proporcionan una consulta software. Cuando el procesador recibe una interrupcin, activa el reconocimiento de interrupcin, que se propaga a travs de toda la secuencia de mdulos E/S hasta que alcanza un modulo que solicito interrupcin. Arbitraje de bus: al disponer el control del bus, un modulo puede activar la lnea de peticin en un instante. Al detectar la interrupcin, responde mediante la lnea de reconocimiento de interrupcin. Luego el modulo que solicito la interrupcin sita su vector en las lneas de datos. Ejemplos de estructuras de interrupcin: INTEL 82C59A gestiona interrupciones en modo completamente anidado, rotatorio o con mascara especial. INTEL 82C55A es una interfaz programable de perifricos, se usa para E/S programadas y con interrupciones; escribe en el registro de control para seleccionar el modo de operacin y definir seales en su caso. 6.5) Acceso directo a memoria: Puede imitar al procesador, y de hecho recibe el control del sistema de este para transferir datos, a, y desde memoria a travs del bus del sistema. A veces debe forzar al procesador a que suspenda temporalmente su funcionamiento, esto se denomina robo de ciclo. Cuando se desea leer o escribir el procesador enva una orden al modulo DMA con: accin, direccin del dispositivo E/S, la posicin inicial de memoria y la cantidad de palabras a leer o escribir. Luego el procesador sigue con otro trabajo y el modulo DMA se encargar de la E/S. El procesador solo interviene al comienzo y al final de la transferencia. Este mecanismo se puede configurar de distintas formas: Todos los mdulos comparten el mismo bus (econmica e ineficiente). Otra forma: El nmero de ciclos de bus utilizados se puede reducir mucho integrando las funciones de DMA y E/S. 6.6) Canales y procesadores de E/S: Cada vez ms y ms funciones de E/S se realizan sin intervencin de la CPU. Caractersticas de los canales de E/S: es una ampliacin del concepto de DMA. Puede ejecutar instrucciones de E/S lo que le da un control completo sobre las operaciones de E/S. Hay 2 tipos: canal selector, que controla varios dispositivos a alta velocidad y en un instante dado se dedica a transferir datos

a uno de esos dispositivos; otro tipo es el canal multiplexor que maneja las E/S de varios dispositivos al mismo tiempo. 6.7) La interfaz externa: SCSI y FireWire: debe ajustarse a la naturaleza y forma de funcionar del perifrico. En una interfaz en paralelo hay varias lneas que conectan el mdulo de E/S y el perifrico y se transfieren varios bits simultneamente a travs del bus de datos (dispositivos de alta velocidad). En una interfaz serie hay solo una lnea para transferir los datos y los bits deben transferirse uno a uno (impresoras y terminales). Un buffer compensa las diferencias de velocidad entre el bus de sistema y las lneas externas. La conexin puede ser punto a punto (proporciona una lnea especifica entre el modulo E/S y el dispositivo externo) o multipunto (buses externos). SCSI: interfaz paralela, se conectan los dispositivos de forma encadenada y funcionan independientemente. Bus serie FireWire: presenta altas prestaciones en serie, altas velocidades bajo costo y fcil implementacin, con una nica interfaz de E/S controlador sencillo para manejar diversos dispositivos multipuesto.

Memoria Cach
5.1) Necesidad De La Cach: Para ejecutar mas instrucciones por unidad de tiempo los microprocesadores se apoyan en 3 recursos: arquitectura superescalar, supersegmentacin y potenciamiento del sistema de memoria cach. Un procesador segmentado bsico ejecuta cada instruccin en 5 etapas: 1) Bsqueda de la instruccin (Fetch) Se accede a la memoria para ejecutar la instruccin. 2) Decodificacin de la instruccin: O interpretacin. Es trabajo de la CPU. 3) Bsqueda de los operados: Se accede de nuevo a la memoria, en modo lectura. 4) Ejecucin de la instruccin: Realizada por el camino de datos de la cpu. 5) Escritura del resultado: Se accede a la memoria, para almacenar el resultado. La CPU realiza una peticin de informacin al controlador de la cach, que se encarga de trasladar esa peticin a la cach. Si est, es un acierto y se le da la informacin a la CPU, caso contrario, es un fallo, por lo cual deber obtener la informacin de memoria principal. Si tampoco est, MMU activar el mecanismo para traerla de memoria virtual. La memoria cach permite mejorar la productividad de los sistemas informticos sin elevar demasiado su coste, acelerando los tiempos de acceso a datos y rendimiento. Su principal funcin es acelerar la transmisin de datos e instrucciones entre procesador y soportes de almacenamiento. Al recibir, no solo recibe el dato pedido, sino los aledaos que posiblemente pedir la CPU. Hay 2 factores de memoria cach destacables: velocidad (relacin entre tiempo de acceso a memoria principal y a memoria cach) y eficacia (depende del programa ejecutndose) 5.2) Principio de funcionamiento de la cach: es de tipo SRAM, su tamao vara entre 8 y 512 KB, mientras que la memoria principal puede llegar a cientos de megabytes. Se fundamenta en la regla <<80/20>>. Sus principales componentes son: Controlador de cach: gobierna todos los elementos de memoria cach, implementando los algoritmos necesarios y movimientos de informacin entre dispositivos. Directorio cach: memoria ram de acceso por contenido, no por direccin. Contiene etiquetas que hacen referencia a la memoria principal, cuyos datos estn almacenados en la memoria de datos cach. Memoria de datos cach: memoria pequea y rpida, usada para almacenar rplicas de instrucciones y datos que sern accedidas ms adelante por la memoria principal. Cada elemento de la cach esta compuesto por una etiqueta y un conjunto de datos (lnea) dando lugar a una estructura extensa de memoria. Lgica de control: comparadores de tantos bits como tenga la etiqueta. 5.3) El tamao de la cach: entre 8 y 512 KB. A veces aumentar cach no aumenta velocidad, lo que si lo logra son los algoritmos. La organizacin permite definir como sern almacenados los datos en cach. Del mtodo utilizado depender la cantidad de memoria cach que ser posible gestionar, la rapidez de acceso el procesador a los datos y la taza de aciertos al buscar en cach. Existen 3 tipos: Totalmente asociativa: cada bloque de memoria principal puede ubicarse en cualquiera de los bloques o lneas de la cach. La memoria principal se divide en bloques de un tamao determinado, la cach, se divide en bloques o lnea de igual tamao. Existe un comparador de presencia o ausencia, cuya respuesta es la entrada de un decodificador. Global que indica si ha habido una presencia en todo el directorio cach. La informacin deber ser comparada con todas las etiquetas para saber si el bloque requerido se encuentra en la cach, ser una parte de la direccin de memoria solicitada por la CPU (Etiqueta). Y el resto (posicin) se utiliza para

seleccionar el dato dentro del bloque. Esta es la mejor organizacin de cach posible, permite aprovechar todas las lneas de la cach independientemente del bloque de memoria. Es mucho ms costoso. Asociativa de una va: es la mas fcil de implantar. La memoria principal se divide en grupos del mismo tamao y estructura que la memoria cach. Cada bloque de memoria principal se corresponde con una lnea determinada. A bloques consecutivos de la memoria principal les corresponde lneas tambien consecutivas de memoria cach. Para conocer el bloque (lnea) de memoria principal que esta en cach es necesario disponer de una etiqueta por cada lnea de la cach, la cual estar formada por los primeros bits de la direccin de memoria solicitada. No se necesita ningn tipo de algoritmo de reemplazo, ya que viene implcito en la construccin de la cach. El problema es que puede expulsar bloques que pueden ser requeridos posteriormente. Asociativa de N vas: es un intermedio entre los 2 modelos anteriores. Memoria principal y cach se descomponen en bloques de igual tamao, las lneas de la memoria cach se agrupan en conjuntos y el numero de lneas de cada conjunto es el numero de vas. Los bloques se renen en grupos de igual cantidad que una lneas tiene la va. Dentro del conjunto el bloque se puede alojar en cualquiera de los bloques que lo forman de manera similar a la correspondencia totalmente asociativa. Cuando la CPU solicita una direccin, se calcula el conjunto en el que debera estar, luego se comparan etiquetas si se encuentra es un acierto (esta en cach), y de ah a la posicin, sino hay que buscarla en memoria principal. Esta organizacin rene las ventajas de las anteriores. Estructura fsica de una cach: el Pentium tiene dos memorias cach independientes: una para datos y una para instrucciones, permitiendo paralelismo entre estos. La sustitucin de direcciones sigue un LRU. Actualizacin de la cach: En una cach totalmente asociativa se podr cargar en cualquier lugar con cualquier algoritmo. En una de una va solo hay una posibilidad, en N-vas se podra usar: Random (sencillo, elije aleatoriamente y sobrescribe, no considera localidad referencial), LRU (debe conocer la lnea mas tiempo sin utilizar, es costoso para grandes volmenes), para actualizar la lnea hay 2 alternativas: Dato pedido en primer lugar (lee primer dato y sigue hasta terminarlo) y ultimo lugar (carga toda la lnea del byte requerido). Actualizacin de memoria principal: la CPU, para leer de la cach no tiene inconvenientes pero para escribir hay 3 mtodos: Actualizacin por escritura inmediata: Cada vez que actualiza la cach la cpu manda una orden al bus del sistema y transfiere la informacin a la CPU sin errores de coherencia. Por escritura diferida: la cach cuenta con registros intermedios para cargar las modificaciones que ha habido en la cach. Actualiza la memoria principal cuando el bus de sistema esta libre. Por escritura obligada: se produce cuando no queda otro remedio, por lo que nunca hay fallo. Es obligatorio cuando se accede a una posicin de la memoria principal modificada en la cach por la CPU o cuando hay que eliminar una lnea de la cach porque esta llena. 5.4) Tipos de conexionado de la memoria cach: Conexin en serie: La CPU se conecta directo a cach y solo con ella, por lo que todas las peticiones que la CPU hace al bus de sistema tienen lugar a travs de la memoria cach. Sus ventajas son la reduccin en el tiempo de acceso, el paralelismo y que se evita el manejo del bus de sistema. Sus desventajas son la obligatoriedad de usar la cach y la penalizacin de tiempo. Conexin en paralelo: La CPU se conecta indirectamente a la cach a travs del bus de sistema. Todas las peticiones y transferencias relacionadas con la CPU dependen del bus de sistema. Sus ventajas son la flexibilidad en el uso de cach, ya que se vuelve opcional; y la no penalizacin de tiempo. Su desventaja es que el bus de sistema queda sobrecargado por el continuo flujo de informacin. El sistema se ve ralentizado. 5.5) Niveles de jerarqua en la cach: se puede mejorar el rendimiento aumentando la taza de aciertos de la cach, ya sea mejorando los algoritmos de carga (con localidad temporal y espacial) o aumentando el tamao de la cach. Como la tecnologa no se puede forzar, se emplea la jerarqua en la memoria. Cach nivel 1, L1, primaria: esta integrada en la CPU. Es la ms rpida de la pc, funciona a la misma velocidad que el microprocesador. Cach nivel 2, L2, secundaria: es un poco ms lenta que L1 y de mayor tamao. Almacena datos e instrucciones muy usadas recientemente y no guardadas por L1. Cach nivel 3, L3: parte de la L2 que permanece en la CPU. Si la L1 no contiene el dato, se transfiere la peticin a L2. La cach L2 almacena todo L1 y algo ms. Estas cach cooperan inclusivamente (el dato est en ambas cach) o exclusivamente (funcionan como si solo hubiera una). Conexionado de cachs de varios niveles (monoprocesador):

Conexin en serie: disminuye el trfico a memoria principal, el bus queda desocupado la mayor parte del tiempo y puede hacer frente a los sistemas adheridos. El inconveniente es que son obligatorias y la penalizacin de tiempo. Conexin en paralelo: su ventaja es que si la L2 no tiene en memoria no hay ms penalizacin de tiempo, puesto que la principal y L2 reciben al mismo tiempo la peticin. El problema es que el bus recibe todos los fallos de L1 y siempre se est empleando. Conexionado de cachs en sistemas multiprocesador: Puede ser simple: con cada procesador con su propia jerarqua de cach. Bajo rendimiento. O Multipuerto: produce una baja ocupacin del bus de sistema. O bus: es el sistema ms utilizado, aplica multipuerto con L2 como cach normal y usa subbuses para la interconexin. 5.6) Protocolos de coherencia de cach: Algunos seran implementar una cach especial para cada uno de los procesadores con el fin de entender la coherencia de los datos de cada procesador. Otra forma es mantener la coherencia de los datos mediante la utilizacin de bits de estado. En el protocolo MESI, cada lnea de la cach se encuentra en uno de 4 estados (Modificado, Exclusiva, Simultaneo o Invalido). Otro protocolo es Futurebus+: usa un bus sncrono post-escritura, donde cuando un procesador intenta leer la cach pero el bus est ocupado, la cach es capaz de escuchar las transacciones que se producen y si el bloque esta implicado en alguna transaccin, el controlador cach toma una copia y ahorra el tener que ocupar el bus para este bloque. Un tercer protocolo es el MOESI: que usa 5 estados, lo 4 de MESI, mas Owned, no necesita bus especial y la intervencin de datos es directa, mejorando la comunicacin con el procesador y bajo coste de cach. Otro protocolo es el N+1: usa memoria principal inteligente, con un bit de modo de uso. Indica cuando una lnea es pblica o privada, adems usa solo 3 estados: invlido, vlido o socio.

Arquitectura Del Pentium


6.1) Introduccin: En un principio sus caractersticas fundamentales fueron su cach interna dividida en un bloque de 8KB para instrucciones, la verificacin interna de la paridad para asegurar la correcta transferencia de las informaciones, la unidad de coma flotante el bus externo de datos de 64 bits y el diseo superescalar. 6.2) Arquitectura interna del Pentium: Inicialmente se aprecian 5 bloques principales: I) Subsistema de memoria cach: estas se han incluido e integrado en el chip del procesador. Esta construido por dos memorias internas, una de instrucciones y otra de datos, de 8KB cada una e independientes entre si. Se organizan de modo asociativo de dos vas, cada una de 128 etiquetas y 22 bits de tamao (20 bits de mas peso y 2 de atributos) el tamao de datos asociados a cada etiqueta es de 32 bytes (tamao de una lnea). Tener 2 memorias cach independientes permite realizar una prebsqueda cach de instrucciones simultneamente a un acceso a informacin en la cach de datos. Las cach son de escritura obligada, lo que implica que los resultados de las operaciones no se transfieren a memoria principal, sino que quedan almacenados dentro de la cach hasta que sea necesario actualizarla. Nunca se produce fallo. Para asegurar la consistencia de datos se utiliza el protocolo MESI. II) Unidad de enteros superescalar: dispone de dos causes para la ejecucin de instrucciones que manejan nmeros enteros (simultneamente). Adems tiene otro cause para la ejecucin de instrucciones en coma flotante. Estos causes estn segmentados y constan de 5 etapas: prebsqueda de instrucciones, descodificacin, clculo de la direccin efectiva, ejecucin y escritura de resultados. Permite obtener dos resultados de instrucciones de enteros en un ciclo de reloj. III) Coprocesador matemtico (FPU): opera en paralelo con la unidad de enteros. Recoge sus instrucciones desde el mismo decodificador y secuenciador que esta, compartiendo adems el bus de sistema. La FPU dispone de un cauce segmentado de 8 etapas que permite obtener resultados partiendo de instrucciones de coma flotante en cada ciclo de reloj: prebsqueda de instrucciones, descodificacin, clculos de la direccin efectiva, ejecucin, ejecucin de coma flotante x2, escritura de los resultados e informe de errores. Para instrucciones especificas posee registros de datos y algunos registros especiales (de estado que indican la situacin actual, de control que determinan la precisin de la FPU, de palabra, puntero de instrucciones, al ultimo operando y de cdigo) IV) Sistema de prediccin de saltos condicionales: utiliza 2 recursos: Software (potente algoritmo estadstico) y Hardware (buffer destino de bifurcaciones BTB, que es una cach ultrarrpida que registra el resultado de las ultimas 256 instrucciones de salto condicional y que permite realizar una prediccin de la prxima). La ejecucin dinmica viene determinada por 3 elementos: prediccin de salto mltiple, anlisis del flujo de datos y ejecucin especulativa. V) BIU: Unidad de interfaz con el Bus: bloque encargado de soportar todas las transferencias con elementos externos al microprocesador. Controla los ciclos de bus que acceden a la memoria y las E/S. Cada uno de los 3 bloques que la compone tiene una seal de validez en su acceso (BEn#), estos son:

a) Monitor de prestaciones: conjunto de contadores que permiten conocer el estado del procesador, el tiempo en el que realiza operaciones y las instrucciones que se ejecutan. Tambien contabiliza el numero de ciclos que el procesador tarda en operaciones internas que afectan a la lectura y escritura de datos, ausencia o presencia de datos en las cach, e interrupciones y uso de bus. b) Bus a rfagas: Pentium implement una circuitera que permite transmitir 256 bits en un solo ciclo, lo cual permiti una aceleracin de la cach. c) Unidad de redundancia funcional: asegura integridad de datos, poniendo dos procesadores en el mismo bus, uno master y uno slave. Uno comprueba cada resultado obtenido por el otro contra lo suyo, y si difiere, salta una interrupcin. 6.3) Modos de funcionamiento del Pentium: 4 modos de trabajo: A) Modo Real: 8086. Solo puede direccionar 1MB aunque la memoria sea mayor. De real a protegido se pasa con una instruccin especfica. Se usa en el arranque del sistema, para la creacin de tablas y elementos necesarios. Tambin despus de un reset. B) Modo Protegido: modo de trabajo habitual del Pentium. Tiene capacidad de multitarea y manejo de memoria virtual. Para pasar de Real a Protegido hay que poner el bit PE en 1 (CR0). C) Modo virtual 8086: mezcla de real y protegido. Para pasar, hay que poner en 1 el bit VM del registro de estado. D) Modo de manejo de sistema: de este modo, Pentium proporciona un sistema operativo transparente para el programador que implementa 2 funciones muy importantes, la primera relacionada con la seguridad de todo el sistema y la segunda consistente en un sistema de regulacin de la alimentacin que gobierna el consumo del procesador. Para trabajar en este modo se guarda la informacin de todos los registros para despus restaurarla y se ejecuta cdigo de manejador especial SMM en SMRAM. Para pasar de cualquier de los otros 3 modos a este hay que activar por hardware la patita del Pentium SMI#. Para volver, solo basta un reset.

Modelo del Pentium para el programador de aplicaciones:


7.1) Programador de Sistemas y Programador De Aplicaciones: Programador de aplicaciones: codifica programas para los usuarios finales. Contempla al cpu como un conjunto de registros de trabajo. Los recursos del cpu le resultan transparentes, un mecanismo de proteccin les controla los accesos. Programador de sistemas: desarrolla programas y utilidades del sistema operativo, controla a los programadores de aplicaciones. Su misin es construir un sistema de explotacin ptimo que sea capaz de soportar todas las aplicaciones previstas. Sus funciones ms destacadas son: organizar el sistema, confeccionar objetos para compiladores y otros, asignar privilegios a las tareas, optimizar memoria y procesador. Es indispensable que conozca profundamente la arquitectura para llegar a mejor resultado. 7.2) Registros internos para el programador de aplicaciones: El Pentium dispone de 32 registros en su arquitectura de los cuales 16 son para uso del programador de aplicaciones. Estos ltimos se clasifican en 4 grandes grupos: 1) Registros de propsito general: consta de ocho registros capaces de trabajar con informacin de 32 o 16 bits (y hasta 8). Almacenan datos y direcciones. Acumulador (EAX): Se usa en todas las operaciones aritmtico-lgicas. Base (EBX): Contiene una direccin que apunta a la base de un conjunto de datos. Contador (ECX): Carga el nmero de veces que se ejecuta una instruccin. Datos (EDX): Conoce direcciones de puertos de E/S en instrucciones que usan mapas de E/S. Puntero de pila (ESP) y de base (EBP): controlan el direccionamiento de la pila. Las operaciones de la pila son manejadas por 3 registros: o Registro de segmento de pila (SS): Especifica caractersticas del segmento de pila. o Registro puntero de pila (ESP): Contiene el desplazamiento de la cima de la pila en el segmento actual. Lo usan las operaciones PUSH y POP, las llamadas a subrutinas, el retorno, excepciones e interrupciones. o Registro puntero de base de pila (EBP): Se usa para acceder a estructuras de datos pasadas a la pila. ndice fuente (ESI) e ndice destino (EDI): son punteros de direcciones preparados para trabajar con cadenas de caracteres. Pueden auto-incrementarse y auto-decrementarse. 2) EIP (Registro puntero de instrucciones): Contador de programa. No esta disponible para el programador, lo gobiernan las interrupciones, excepciones y el flujo de instrucciones. Trabaja en 2 modos:

a) Nativo o Protegido: EIP, tiene longitud de 32 bits. Almacena el desplazamiento que hay que aadir a la base del segmento para obtener la direccin de la siguiente instruccin a ejecutar. Mx. 4gb. b) Modo Real: direccionamiento reducido que usa 16 bits. Para especificar un desplazamiento en el segmento de cdigo. Son los 2 bytes de menos peso de EIP que se denominan IP. Su valor mximo ser de 64KB. 3) Registro de estado o de sealizadotes (EFLAGS): 32 bits donde la mayora son sealizadores de estado, controlados por la ALU (acarreo, paridad, acarreo, auxiliar, cero, signo y sobrepasamiento). Actuando los restantes como sealizadotes del sistema de explotacin. El registro de estado contiene: CF: Sealizador de acarreo. 1 carry. PF: Bit de paridad impar. AF: Sealizador de acarreo auxiliar: 1 = carry en bit 3 del resultado. usado en BCD. ZF: Sealizador de cero: 1 = (r0); 0 = (r != 0). SF: Sealizador de signo. TF: Excepcin al terminar la ejecucin de la instruccin. IF: Flag de habilitacin de interrupciones mascarables. DF: Flag de direccin de exploracin de las cadenas de caracteres o strings. OF: Flag de overflow (desbordamiento). IOPL: Nivel de privilegio de E/Ss. 2 bits. 11= nivel 3 (acceso a todos). 10->01-> 00 (solo SO). NT: Tarea anidada. Acta al producirse una conmutacin de tareas. RF: Reanudacion. Hace ejecutar la siguiente instruccin cuando hay una excepcin de depuracin de una instruccin. VM: Modo virtual. Permite pasar de protegido a Virtual 86. AC: Bit de chequeo de alineamiento. VIF: Similar a IF pero en Virtual 86. Permite o prohbe la atencin a peticiones mascarables. VIP: Interrupcin (mascarable) pendiente en modo virtual. Trabaja en equipo con VIF. ID: Bit de identificacin. Informa si el Pentium soporta la instruccin CPUID. 4) Registros de segmento: los segmentos son trozos de la memoria de tamao variable que contienen el mismo tipo de informacin. Hay 3 tipos de segmentos en los programas de aplicacin: Pila. Cdigo y Datos. Manejar memoria segmentada favorece la programacin estructurada y la modularidad. El Pentium controla en cada instante a 6 segmentos a los que referencia a travs de los registros de segmento (RS). La direccin lgica o virtual de todo elemento accesible en memoria consta de: Selector (14 bits de mas peso en el registro, con base donde se inicia, limite y atributos), los dos bits de menos peso conforman el campo RPL con el nivel de privilegio del campo seleccionado. Desplazamiento: valor que se aade a la base del segmento para localizar la direccin a la que hay que acceder en el. Cada registro de segmento hace referencia a un tipo de segmento determinado. CS (Segmento de cdigo): Contiene en cada momento la informacin necesaria del segmento de instrucciones ejecutado en la CPU. El desplazamiento a aadir esta en el registro puntero EIP. SS (Segmento de Pila): guarda el valor del selector del segmento de pila en curso. DS (Segmento de datos), soporta el valor del selector del segmento de datos y el desplazamiento viene especificado en el modo de direccionamiento 7.3) Segmentacin en modo real: En modo real, Pentium queda definido por Base (20 bits) y Desplazamiento (16 bits). La base se obtiene del campo selector, y desplazamiento del campo desplazamiento. 7.4) Segmentacin en modo protegido: De este modo, un segmento queda caracterizado por 3 parmetros fundamentales que conforman el descriptor de segmento: Base (direccin lineal donde comienza el segmento, de 32 bits), Lmite (valor de 20 bits que determina el tamao del segmento) y Atributos (12 bits con las caractersticas relevantes del segmento tal como tipo, privilegio y aspectos de gestin de memoria). Descriptores y segmentos se guardan en una tabla de descriptores que residen en memoria principal y son manejadas por el SO. 7.5) Juego de registros de la unidad en coma flotante: Pentium incorpora un cauce de segmentado de instrucciones de ocho etapas que permite obtener resultados partiendo de instrucciones de coma flotante en cada ciclo de reloj. Permite ampliar el nmero de registros e instrucciones que puede manejar el programador de aplicaciones. El coprocesador soporta los siguientes tipos de datos: Enteros (16,32 y 64 bits), BCD empaquetados de 80 bits, nmeros en coma flotante (32, 64 y 80 bits). La palabra de estado del coprocesador matemtico tiene 16 bits: Top: 3 bits que apuntan al primer registro.

B y ES: informa el estado de error. Siempre tienen el mismo valor. SF: Sealiza y distingue las operaciones invlidas causadas por el desbordamiento de la pila. Flags de cdigo C0-C1-C2-C3: indican resultados aritmticos y comparacin de coma flotante. PE: Precisin: 0 = no hay excepcin. 1 = si hay. (Aplicar a los siguientes 5 tambien) UE: Underflow OE: Overflow ZE: Divisin por 0 DE: Operando no normalizado IE: Operacin invlida IC: En Pentium no sirve por no manejar valores infinitos gracias al estndar IEEE. RC: 2 bits que controlan el redondeo. PC: Control de precisin de los clculos en coma flotante realizados por la FPU. PM, UM, IM, ZM, DM, IM cada uno controla una excepcin determinada. Tambien est el registro de estado <<palabra tag>>

Memoria Segmentada
8.1) Organizacin de la memoria: Bytes, palabras, dobles palabras y cudruples palabras. Tambien hay otros dos tipos muchos ms complejos (y complementarios entre si): Segmentos: bloques de memoria de tamao variable que contienen informacin de la misma clase y constituyen el objeto principal sobre el que se basa el mecanismo de proteccin. Paginacin: divide el espacio de memoria en trozos de longitud fija, llamados pginas de 4KB a 4MB en Pentium. Simplifica algoritmos de intercambio entre objetos de memoria fsica y virtual. 8.2) La memoria en modo real: El procesador siempre arranca en modo real. Principales caractersticas: Memoria restringida al especio direccionado por las 20 lneas de menos peso del bus de direcciones del 8086 (mx. 1MB). Hay zonas reservadas al hardware. La zona entre las direcciones 0 y 1024 esta reservada para las interrupciones y excepciones. Para acceder a una posicin se precisa base y desplazamiento. En modo real se manipula por defecto 16 bits aunque es posible llegar a 32 bits de longitud. Tiene fcil realocacion para soportar portabilidad. 8.3) La memoria en modo protegido: Abarca toda la dimensin de la memoria virtual. Lo maneja el programador de aplicaciones. La unidad de segmentacin, que siempre esta activada, traduce las direcciones virtuales a <<lineales>>, que reciben este nombre porque hacen referencia a segmentos que al situarse sobre la memoria fsica tienen dispuestas todas sus posiciones en orden consecutivo o lineal. Distingue 3 espacios: * (8.4) Virtual o Lgico: La direccin lgica manejada por los programadores consta de dos partes: Selector (Campo de 14 bits que determina un segmento) y Desplazamiento (campo de 32 bits que determina una posicin del segmento, mx. 4GB). Pentium dispone del mecanismo MMU que convierte direcciones virtuales a fsicas. * (8.5) Lineal: Direccin lineal significa que la segmentacin referencia a bloques (segmentos) que tienen todas sus posiciones ordenadas consecutiva o linealmente. Si no esta activada la paginacin, la direccin lineal coincide con la fsica correspondiente a la memoria principal. Su principal problema es que trabaja con segmentos de tamao variable, lo que complica el mecanismo de transferencia entre las memorias virtual y fsica, asi como la optimizacin de esta ultima. a) Descriptores de segmento: en el modo protegido un segmento queda especificado por 3 parmetros: Base (Donde comienza el segmento, 32 bits), Lmite (Tamao del segmento, 20 bits) y Atributos (Caractersticas relevantes del segmento, 12 bits). Este descriptor tiene 8 bytes. Son creados por compiladores, cargadores u operaciones del sistema, pero no por programas de aplicacin. Bits del campo de atributos: I) Bit de presencia (P): Indica si el segmento al que referencia el descriptor est cargado, o sea, se halla presente en memoria principal (P=1) o si est ausente (P=0). II) Nivel de privilegio (DPL): del segmento que referencia.2 bits, puede variar entre 0 y 3. III) Clase de segmento (S): S=1 => segmento normal (cdigo, datos o pila) sino de sistema. IV) Tipo: 3 Distingue si es pila, dato o cdigo si S=1. V) Accedido (A): se pone en 1 cuando el procesador accede al segmento. VI) Granularidad (G): G=0 => esta en bytes (seg de 1MB), G=1 => Pg. de 4KBs (seg 4GB). VII) Defecto/Grande (D/B): segmentos de cdigo (D) // Segmentos de datos (B). VIII) Disponible (AVL): Esta a disposicin del usuario para diferenciar lo que necesite.

La unidad de segmentacin utiliza el descriptor para comprobar si satisface el conjunto de reglas que protegen a los segmentos tales como si la direccin esta dentro del tamao del segmento, si el segmento esta en memoria, el nivel de privilegio para acceder o si se puede leer/escribir/ejecutar. b) Tipos de segmentos normales: Es cuando S=1. Hay varias configuraciones. De los 3 bits que componen el campo tipo IX) Ejecutable (E): diferencia los segmentos de cdigo de los no ejecutables. Si E=1 los otros 2 bits del campo tipo son: X) Ajustable o Conforming (C): Si C=0 al ser accedido el segmento no cambia su nivel de privilegio. Si C=1 <<segmento ajustable>> ya que se asocia el privilegio al de quien accedi. XI) Legible (R): Si R=1 se puede leer. Nunca se puede escribir. Si E=0: IX) Expansin decreciente (ED): ED=0 trata de un segmento de datos normal. ED=1 de pila. X) Escribible (W): W=1 se puede leer y escribir, W=0 solo se puede leer. * Fsico 8.6) Manejo de los descriptores: Los descriptores de segmentos solo los maneja el procesador automticamente. Ni el programador de aplicaciones ni el de sistemas pueden acceder a ellos. Cada segmento ubicado en la memoria principal dispone de un descriptor en una tabla de descriptores que crea el SO, La direccin de comienzo contenida en un registro se llama RBTD. 8.7) Tablas de descriptores: Al entrar al modo protegido deben residir en memoria principal. Contienen referencias precisas para los segmentos que va a usar el procesador. El sistema operativo distribuye la memoria en las reas necesarias, posteriormente deposita los segmentos correspondientes, y despus construye las tablas de descriptores de segmento para direccionar el espacio de memoria activo. Cada segmento del rea global estar definido por un descriptor, existiendo una Tabla de Descriptores Globales o Tabla Global de Descriptores (GDT), que contiene todos los descriptores que referencian los segmentos del rea global. Asimismo, existe una tabla para cada tarea, que rene todos los descriptores de los segmentos de cada una de ellas (Tablas de descriptores locales), Existen tantas LDT como tareas soporte el sistema. 8.8) Modo Plano: En aquellas aplicaciones y sistemas que no usan segmentacin lo puede simular su inhabilitacin en el modo plano. Asi se puede activar la paginacin con objeto de conseguir un entorno protegido a nivel pginas.

Mecanismos de paginacin
9.1) Introduccin: La paginacin divide y manipula los programas y los datos en trozos de tamao fijo, llamados pginas. A diferencia con los segmentos, las pginas no guardan relacin con la estructura lgica con la que se ha construido el software. La mayor ventaja se da en la transferencia e intercambio de elementos entre memoria virtual y fsica. Desventaja es el mal aprovechamiento de la memoria, puesto que las pginas son de tamao fijo y puede que un objeto de cdigo sea muy grande y requiera varias pginas o que un objeto de datos ocupe menos espacio que una pgina. Pentium usa siempre segmentacin, aunque puede usar paginacin. 9.2) Mecanismo de paginacin: para habilitarlo hay que poner en 1 el bit PG de CR0 que maneja el programador de sistemas. Paginacin solo opera en modo protegido. Cuando esta habilitada se divide cada segmento del espacio creado por segmentacin, en paginas sucesivas de 4KB cada una. Tambien, la segmentacin sigue estando activa, por lo tanto el sistema operativo realiza ms accesos a memoria que antes para conseguir la misma informacin. Para reducir el espacio en memoria que ocupan las tablas de manejo de pginas, Intel recurri a una traduccin en dos niveles, el primer nivel soportado por la tabla directorio (1K de entradas de 32bits c/u), donde cada entrada apunta a otra pagina tabla de paginas con la misma estructura del directorio. El directorio es fijo para cada tarea y su base esta almacenada en el registro de control de la CPU (CR3) Para posibilitar la paginacin es imprescindible que el directorio de paginas este ubicado en memoria principal. El acceso a una entrada del directorio se calcula sumando a la base (CR3) el valor de los 10 bits de ms peso de la direccin lineal. Para acceder a las entradas de las tablas de pginas se suma a la base el valor de los 10 bits centrales de la direccin lineal. Se necesitan 8 KB de memoria principal para mantener operativa la paginacin, que se obtienen sumando el directorio y una tabla de pginas. La ventaja de la traduccin de pginas en 2 niveles es el poco espacio de memoria principal que se precisa para soportar el mecanismo de traduccin, sin embargo es lento. Cuando se utiliza la tabla de pginas inversa, en lugar de una entrada por cada pgina virtual, existe una pgina por cada marco de pginas de la memoria fsica asignada al proceso. En las tablas de pginas normales se tienen tantas entradas como pginas virtuales, luego pueden crecer enormemente.

10

Fallo de pgina: se genera cada vez que la unidad de paginacin detecta que la pgina no reside en memoria principal. Este origina una excepcin que llama a una rutina del SO que se encarga de trasladar dicha pagina desde la memoria virtual o disco hasta la memoria fsica o RAM y actualiza los contenidos de las entradas de las tablas de traduccin. Proteccin a nivel de pgina: En la paginacin solo existen 2 niveles de proteccin: usuario, que corresponde al nivel de privilegio 3 y supervisor, 0 1 y 2. Los bits U/S y R/W se utilizan para proporcionar informacin sobre su grado de proteccin para pginas individuales o para todas las referenciadas por la tabla de pginas. 9.3) Formato de las entradas del directorio y de las tablas de pginas: Consta de 32 bits, de los cuales los 20 de ms peso de la direccin de la base de la pgina de la siguiente estructura a la que hacen referencia, los otros 12 son ceros y se utilizan para definir atributos: P (Bit de presencia): la pgina no est cargada en memoria fsica, la CPU genera fallo de pgina. A (Bit accedido): Lo maneja el SO para contar accesos a una pgina. SIZ: Solo es vlido en CR4. Si est activado el Pentium trabaja con pginas de 4MB. D (Bit sucio): indica si se ha escrito en la pgina. Si D= 0 se puede sobrescribir. R/W (Bit de lectura/escritura): si es = 0 es de solo lectura. U/S (Bit de usuario/supervisor): privilegio correspondiente a dicha pgina. 1 es supervisor. PCD (Bit de aceptacin de la cach): indica si se puede meter o no en la cach. PWT (Bit de escritura obligada): adems de cacheable funciona en modo escritura obligada. Definibles: 3 bits a disposicin del programador del sistema que pueden guardar informacin auxiliar. 9.4) Tabla de traduccin de direcciones lineales (TLB): pequea cach ultrarrpida para traduccin de direcciones lineales. Contiene etiquetas con sus respectivos datos asociados. Como etiqueta acta la direccin lineal y como dato asociado la direccin fsica correspondiente. En el 386 la TLB guarda la traduccin de las direcciones lineales a fsicas de las ltimas 32 pginas que se han manejado. 9.5) Funcionamiento de la TLB: Las ltimas 32 pginas manejadas suponen 128KB de memoria que es suficiente para contener el rea de trabajo de un proceso. Cada entrada en una memoria de acceso contenido (CAM) como la TLB se compone de una etiqueta y un dato asociado. Cuando se quiere obtener una informacin se suministra un valor, que se compara con los campos de etiqueta de todas las posiciones. Esta comparacin se hace en paralelo y a gran velocidad. En la TLB se proporciona como entrada la direccin lineal que si esta contenida, el resultado es la direccin fsica correspondiente. Si el comprador no encuentra una etiqueta igual a la informacin suministrada, la CAM no contiene la traduccin que se busca y sealiza ausencia o fallo, lo cual puede indicar una de dos cosas: o la pagina esta presente en memoria y se necesita crear la entrada de la TLB que falla o la pgina no esta en memoria y se debe transferir el control al SO para que trate un fallo de pagina. En el 386 las 32 entradas estn organizadas en 4 grupos de 8 entradas cada uno y en paralelo. Pentium dispone 2 estructuras similares, una para cach de datos y otra para la de instrucciones. Si los circuitos comparadores detectan Ausencia (MISS), se pone en marcha el mecanismo de paginacin y se obtienen de la tabla de pagina los 20 bits de mas peso de la direccin fsica que se cargan en una entrada de la TLB, luego la CPU reintenta y tendr su acierto.

Modelo del Pentium para el programador de sistemas


11.1) Registros del sistema: el programador del sistema debe poseer un conocimiento profundo de todos los mecanismos de proteccin de la memoria. Este usa los siguientes registros de sistema: Registros de segmento (CD, DS, SS, ES, FS, GS) Registros de tablas de sistema. Registros de sealizadores EFLAGS con los bits propios del control del sistema: IOPL, NT, RF, VM, AC, VIF, VIP, ID. Registros de control. Registros de depuracin. Registros de prueba de la TLB. Registros especficos. 11.2) Registros de segmento: como se ha dicho, en Pentium la segmentacin es obligatoria, la paginacin opcional. Los segmentos quedan definidos por su direccin de inicio o base, su tamao o lmite y sus atributos o derechos de acceso. En modo protegido se necesitan 64 bits para ser definidos (Descriptor de segmento, 32 de base, 20 de lmite y 12 de atributos). El registro de segmento se compone de 3 campos:

11

Campo RPL: dos bits de menos peso, tienen el nivel de privilegio del segmento que lo invoc. Campo TI, indicador de tabla: 3er bit de menos peso. Si = 0 -> descriptor en GDT. = 1 -> LDT. ndice: 13 bits de ms peso, direcciona una entrada en la tabla seleccionada por TI. Una vez que se ha seleccionado la entrada en la tabla de descriotores su contenido se carga en el registro cach oculto ultrarrpido que est asociado al registro de segmento. La consulta a la tabla de descriptores es automtica pero es labor del programador de sistemas crearla, elaborarla, y su funcionamiento. 11.3) Registros de tablas del sistema: existen 4 registros para su manipulacin: GDTR: Contiene el registro de la base de la GDT y su tamao. IDTR: Almacena el valor de la base de la IDT y su lmite, sus registros se usan cuando se produce una interrupcin o excepcin. Su tamao alcanza los 2KB. LDTR: Define el segmento de la tabla de los descriptores locales de la tarea en curso, es decir, la LDT. Habr tantas tablas LDT como tareas ejecutndose en el sistema. Pesa 16bits. TR: Usa direccionamiento indirecto a travs de la GDT, donde obtendr la base y limite del segmento TSS, y dichos valores se cargan en un registro cach asociado a TR. Existe un TSS por cada tarea y guarda el contexto necesario para iniciar la tarea que referencia. Pesa 16bits. 11.4) Registro de sealizadores (EFLAGS): se compone de 32 bits, de los cuales 21 son significativos. La mayora actan como banderas o bits de control de determinadas funciones del sistema. IOPL: Nivel de privilegio de las E/S: Son los dos bits donde se indica el nivel de privilegio a partir del cual se pueden ejecutar las instrucciones de entrada y salida, IN y OUT que son instrucciones protegidas y solo pueden ser ejecutadas desde un nivel de privilegio mayor o igual al IOPL. NT: Tarea Anidada: La tarea en fase de ejecucin ha sido llamada por otra a la que hay que retomar en el caso de que el bit NT = 1. RF: Flag de reanudacin del punto de parada: El Pentium dispone de un conjunto de registros de depuracin para programar puntos de parada. Si RF = 1 se ignoran estos puntos de parada. AC: Chequeo de alineamiento: cudruples palabras, dobles palabras y palabras es conveniente que estn alineadas, es decir, comiencen en direcciones de memoria mltiplos de 8, 4 y 2 respectivamente. Si AC = 1, no lo estn. VIF: Flag de interrupcin en modo virtual: es la mscara de las interrupciones mascarables en el modo virtual. SI VIF = 1, se aceptan interrupciones en ese modo. VIP: Flag de interrupcin pendiente en modo virtual: = 1 existen interrupciones pendientes. VM: Modo virtual-86: =1 se pasa del modo protegido al virtual. ID: Identificacin del procesador: = 1indica que la CPU admite la ejecucin de la instruccin CPUID, que devuelve las caractersticas de la misma en algunos registros. 11.5) Registros de control: son 5 registros de 32 bits cada uno, llamados CR0-CR4.CR0, 2 3 y 4 son accesibles al programador de sistemas y pueden ser ledos y escritos mediante instrucciones del tipo MOV desde los registros de propsito general. Estos registros determinan el modo de operacin del procesador y caractersticas de la tarea en ejecucin. a) CR0: Doble palabra de estado de la mquina: es el registro mas importante para el programador de sistemas ya que sus bits controlan funciones vitales del funcionamiento del procesador. - PG: Paginacin: (Modo protegido + PG = 1) traduce direcciones lineales a fsicas. - CD: Cach desactivada: CD=0 se activa la cach interna. CD=1 se desactiva. - NW: Escritura obligada: NW = 0, la activa junto a ciclos de invalidacin de cach. - AM: Mscara de alineamiento: AM & AC (EFLAGS) = 1. Comprueba alineacin. - WP: Proteccin de escritura: WP = 1, Pginas de usuario quedan protegidas. - NE: Error de coprocesador: trata errores de FPU. - TS: Tarea conmutada: = 1 cuando se produce una conmutacin de tarea. - PE: Habilitacin del modo protegido: PE = 1 habilita modo protegido. = 0 real. b) CR2: Direccin lineal de fallo de pgina: cuando se produce un fallo de pgina es necesario disponer de nuevo de la direccin lineal, por lo que se almacena en el registro de control CR2. c) CR3: Base del directorio de las tablas de pginas: se utiliza para convertir direcciones lineales a direcciones fsicas: - PCD: Pgina cacheable: Si PCD = 1, si se usa en ese momento, se puede cachear. - PWT: Pgina de escritura obligada: Si PWT = 1. d) CR4: Extensiones de la arquitectura: contienen varios bits que soportan diversas extensiones de la arquitectura. - VME: Extensin del modo Virtual 8086: = 1, se ampla el soporte para mascarables.

12

- PVI: Interrupciones virtuales en modo Protegido. - TSD: Desactivaciones del time-stamp. - DE: Depuracin de extensiones. - PSE: Extensin del tamao de pgina. - MCE: Activacin del chequeo de la mquina. - PGE: Permiso de pginas globales. - PCE: = 1 permite la ejecucin de la instruccin RDPCM que lee PCM. 11.6) Registros de depuracin: 8 registros de 32 bits (DR0-DR7) que usa el programador de sistemas para depurar los programas. DR4 y DR5 son de uso reservado para el fabricante. 6 y 7 para el programador. Del 0 al 3 las direcciones lineales asociadas a cada una de las condiciones de los puntos de ruptura. DR7 se llaman registro de control, pues define y habilita o no, selectivamente las condiciones de depuracin. DR6 contiene varios sealizadores de condicin de depuracin que permiten determinar al depurador, las condiciones que se han producido con el error. Otras herramientas complementarias en el Pentium a los registros de depuracin son: Puntos de ruptura por software y paso a paso. 11.7) Registros de prueba de la TLB: son 2 de 32 bits cada uno llamados TR6 y TR7, con los que se puede leer y escribir los contenidos de la TLB. TR6 es denominado de comando o de control, contiene el campo etiqueta de la TLB: OP (bit de comando), CD (datos o cdigo) y el estado: V (vlida), D (acceso de escritura), U (nivel de preferencia), W (escritura), PS (0 4KB 1 4MB). TR7 acta como registro de datos de prueba, y contiene los 20 bits de ms peso de la direccin fsica, un campo de dos bits llamado REP y el bit HT que expresa si hubo presencia yo ausencia tras una escritura. 11.8) Registros especficos del Pentium: Se emplean para acceder a ciertas caractersticas dependientes de cada procesador particular: registros de chequeo de direccin de la maquina, de tipo de maquina, de chequeo de programables, contadores time-stamp, seleccin de control, contadores 1 y 0, etc. Paralelamente se incorporan al repertorio del Pentium las instrucciones que permiten leer (RDMSR) y escribir (WEMSR) los registros especficos.

Interrupciones Y Excepciones
14.1) Conceptos generales: las interrupciones y excepciones son acontecimientos que provocan la desviacin del flujo de control de la CPU. Interrupciones: son generalmente acontecimientos externos que desvan el flujo de control de la cpu. Excepciones: son desviaciones del flujo de control provocadas automticamente como consecuencia de alguna anomala en la CPU, producida y detectada en el desarrollo del programa en curso de ejecucin. Para manejarlas, el Pentium dispone de una Tabla de Interrupciones llamada IDT., la cual consta de 256 entradas, cada una atendiendo a un tipo de interrupcin o excepcin diferente. 14.2) Tipos de Interrupciones: Externas: se trata de seales elctricas activadas por componentes hardware externos. Esta activacin es detectada por el Controlador de Interrupciones Programable Avanzado local (APIC). Las patitas del Pentium que soportan estas interrupciones son la INTR y la NMI: - NMI: no mascarable, suele ser resultado de un problema hardware serio. - INTR: mascarable, se origina por activar la patita INTR con un flanco activo. Internas: Se originan por la ejecucin de alguna instruccin especial, las provoca el software. Estas instrucciones son INT n e INTO: INT n: instruccin que permite que se genere una interrupcin no mascarable, suministrando el nmero de vector de interrupciones de la IDT como operando. INTO: comprueba el valor del sealizador OF del registro EFLAGS. Si vale 1 (sobrepasamiento), producir una interrupcin que es atendida por la entrada n 4 de la IDT. 14.3) Tipos de excepciones: se clasifican en los siguientes tipos: Faltas o errores: corrigen la anomala producida al intentar ejecutar una instruccin. Trampa: se generan al finalizar la instruccin. Permiten continuar la ejecucin de las tareas. Aborto: las generan la CPU y no se sabe la localizacin exacta de la instruccin que la origin. No permiten reestablecer el programa o tarea que la gener. 14.4) Tabla de descriptores de interrupciones y excepciones (IDT): esta formada por 256 entradas. Las 20 primeras estn reservadas para operaciones concretas, las 12 siguientes son para operaciones internas del procesador y el resto (32-255) estn a disposicin del usuario. Descripcin de cada vector de interrupcin: I) Vector 0: Error de divisin (#DE): Lo generan DIV o IDIV cuando el divisor vale 0 o el resultado no se puede representar con los bits especificados. II) Vector 1: Excepcin de depuracin (#DB): se detectaron una o mas de las condiciones de excepcin de depuracin.

13

III) Vector 2: NMI: la provoca la patita NMI del procesador. IV) Vector 3: Punto de ruptura (#BP): se ejecuto una INT 3, produciendo una trampa. V) Vector 4: Desbordamiento (#OF): INTO y OF (EFLAGS) valen 1. VI) Vector 5: Excepcin por sobrepasamiento de rango (#BR): se intent R/W fuera de limite. VII) Vector 6: Excepcin por cdigo de operacin no vlido (#UD): el procesador intent ejecutar un cdigo de operacin no valido o reservado, o una interrupcin con un tipo no vlido de operando para el tipo de cdigo, etc. VIII) Vector 7: Excepcin por coprocesador no disponible (#NM): procesador no detecta coprocesador. IX) Vector 8: Excepcin por doble fallo (#DF): el procesador detecta una segunda excepcin mientras espera un llamado a manipulacin de excepciones para una anterior. Previo separa entre benigna y maligna. X) Vector 9: Desbordamiento del segmento por el procesador: Un microprocesador detecta la violacin de una pgina o segmento mientras se trasfiere una parte al coprocesador matemtico de un 387. XI) Vector 10: Excepcin del segmento de estado de tarea no vlido (#TS). Se intent realizar una conmutacin de tareas y la informacin del TSS para la tarea correspondiente no es vlida. XII) Vector 11: Segmento no presente: Surge cuando el procesador intenta acceder a un descriptor de segmento o a una puerta y no esta presente en memoria principal. Mientras se realiza el cambio de tarea entre otras. XIII) Vector 12: Excepcin por falta de pila: surge cuando ocurre algn problema con la pila. XIV) Vector 13: Excepcin por proteccin general (#GP): procesador detecta alguna violacin de proteccin. XV) Vector 14: Excepcin de falta de pgina: Indica que con la paginacin habilitada, el procesador detecta una de las siguientes condiciones mientras se emplea el mecanismo de traduccin de pgina para traducir la direccin lineal a fsica: o El sealizador P (presencia) en una direccin de pagina o en la entrada de la tabla de paginas accedida para la traduccin de la direccin esta puesto a 0 indicando que una tabla de paginas o la pagina que contiene el operando no est en memoria fsica. o El proceso no tiene suficiente privilegio para acceder a la pgina indicada. o El cdigo de ejecucin en modo usuario intenta escribir en una pgina de solo lectura. o Uno o ms bits reservados en la entidad de directorio pginas son activados a 1. XVI) Vector 15: Reservado por Intel: no se usa actualmente. Est reservado para futuras funciones. XVII) Vector 16: Error en coma flotante x87 FPU (#MF): Indica que la FPU x87 ha detectado un error en coma flotante. XVIII) Vector 17: Excepcin de comprobacin de alineamiento: el procesador antes de acceder a un segmento detecta que una palabra esta almacenada en una direccin no mltiplo de 2,4 u 8. XIX) Vector 18: Excepcin de comprobacin de mquina (#MC): el procesador detecta un error de la maquina o de bus. XX) Vector 19: Excepcin de coma flotante SIMD (#XF): se activa cuando el procesador detecta algn error en las instrucciones SSE o SSE2 al ejecutar operaciones en coma flotante tipo SIMD. Se podra producir por alguna operacin invalida, divisin por 0, etc. XXI) Vectores 20-31: reservados por Intel y no se usan en la actualidad. XXII) Vectores 32-255: Interrupciones definidas por el usuario. 14.5) Cdigo de error: Cuando se produce una interrupcin o excepcin el procesador coloca en la cima de la pila del gestor de interrupciones un cdigo de error. Mediante este cdigo de error la cpu sabe cual es el origen de la interrupcin o excepcin y a donde tiene que acceder para tratarla (LDT, GDT o IDT). EXT es el bit que indica el origen del error, IDT indica que el error se produjo en la tabla IDT y TI es el que indica que el error des de GDT. 14.6) Interrupciones y Excepciones en modo real: El Pentium al arrancar trabaja por defecto en modo real. Este solo usa el primer MB de memoria. Se trabaja con segmentos (si o si) y como mximo de 64KB. Aadiendo 4 0 a los 16 bits del CS se obtiene la direccin de base del segmento y con los 16bits del IP se dispone del desplazamiento. El tamao mximo que puede tener la tabla de interrupciones y excepciones es de 1KB, el lmite es 00003FFH. Todos los vectores que no hacen referencia a los mecanismos de proteccin y funcionamiento de memoria virtual son comunes en modo real y protegido. Fases de atencin de una interrupcin o excepcin: 1) 1 Fase: Se comprueba si hay interrupciones pendientes entre cada dos instrucciones, si hay varias se atendern por modo de prioridad. 2) 2 Fase: Salvar el estado actual para que al finalizar la interrupcin o excepcin pueda retornar. Guarda en la pila el CS, el IP y el registro FLAGS.

14

3) 3 Fase: La CPU localiza la entrada correspondiente en la IDT y carga los registros CS e IP con el valor contenido en dicha entrada. Asi se consigue el inicio y se comienza a ejecutar. 4) 4 Fase: La rutina de interrupcin finaliza con la instruccin IRET, recuperando de la pila el CS, IP y FLAGS. De esta manera el programa contina con la siguiente instruccin de antes de que se produjo la interrupcin o excepcin. 14.7) Interrupciones y excepciones en modo protegido: En modo protegido el Pentium funciona con toda su potencia, es decir, utiliza todos sus recursos, como son la paginacin y la memoria virtual. Para pasar de virtual a protegido hay que poner en el registro de control CR0 el bit PE =1. Pero antes el sistema operativo debe haber creado la tabla IDT en memoria principal. En modo protegido la tabla IDT esta compuesta por entradas que contienen descriptores de puertas que permiten acceder al segmento donde se encuentra la rutina. El tamao mx. de la IDT es 2KBS (2256 entradas x 8 bytes/ entrada). Estos descriptores IDT responden a 3 tipos de puertas: * Puertas de tarea: En la entrada de la IDT hay un descriptor de una puerta de tarea (PT), que sirve para realizar una conmutacin de tareas. Ventaja: asilamiento entre tareas. Desventaja: lentitud. * Puertas de interrupciones y excepciones: Actan de la misma forma que las puertas de llamadas. Se conmuta dentro de la misma tarea un segmento de cdigo donde reside la rutina de interrupcin. El bit x representa el tipo de puerta. En la primera fase de atencin a la interrupcin se detecta la interrupcin o excepcin y en la segunda fase se guardan los valores del estado actual en la pila para poder retornar al finalizar la interrupcin.

El bus y los ciclos de bus


16.1) Introduccin: Para leer y escribir datos el Pentium debe ser capaz de transmitir y recibir varias seales de control y por supuesto tambien necesita energa para su circuitera. Combina un bus cach L2 dedicado de alta velocidad mas un bus del sistema con anticipacin que hace posible mltiples transacciones simultneas. Tambien, puede funcionar en modo pipeline, logrando comenzar un segundo ciclo de bus sin haber terminado el primero. Frecuentemente las instrucciones y datos requeridos se encuentran en cualquiera de las 2 cach y pueden ser ledas y escritas en un nico ciclo de reloj. 16.2) Caractersticas del ciclo de bus: Ciclo de bus: es el tiempo en el que la CPU realiza una transferencia de datos completa con el exterior, es decir, con memoria o E/S. Perodo de la CPU: tiempo que dura un ciclo de trabajo Estado de bus (T): Tiempo mnimo en el que la cpu puede realizar una operacin elemental. Dura un perodo de CLK. Existen diferentes tipos de ciclos de bus en el Pentium. Pueden ser divididos en: Ciclo de bus en modo sencillo o simple (No Burst) Ciclo de bus en modo rfaga (Burst Bus Cycle): para grandes cantidades. Ciclos especiales: Reconocimiento de interrupcin, <<shutdown>>, etc. Cuando el procesador no est realizando ninguno de los ciclos de bus existentes, significa que esta en estado reposo (Ti). 16.3) Caractersticas de la memoria y subsistemas de E/S: Pentium dispone de un bus externo de datos de 64 bits. Puede direccionar bytes, palabras o dobles palabras por medio de las seales de activacin de byte. Incluye un modo Burst para el llenado y salvado rpido de las lneas de las cachs. 16.4) Seales entre la cpu y la memoria: Para leer o escribir datos en la memoria hay que direccionarla fsicamente (bus de direcciones) y transferir datos (bus de datos). Adems dispone de un controlador adicional que hace que todas las seales estn disponibles para el dispositivo de memoria. Para direccionar la palabra correcta en la unidad principal de almacenamiento se dispone de un multiplexor de direcciones que la selecciona de memoria principal. Los datos que son ledos se transfieren de la memoria principal al buffer de memoria. Luego, el buffer de memoria transfiere los datos al bus de datos, del que el Pentium puede leer los datos. La transferencia solo es posible mediante hardware. 16.5) Ciclos de memoria: Pentium realiza los mismos ciclos independientemente del tipo de memoria que haya en el sistema, solo quizs haya mas estados de espera. Un ciclo puede poseer los siguientes estados: 1) Ti Estado de reposo o inactividad: no se esta ejecutando ningn ciclo de bus. 2) T1 Tiempo de direccionado: Primer ciclo de reloj de un ciclo de bus. 3) T2 Tiempo de transferencia de datos: Segundo. 4) T12 Tiempo de direccionado (siendo ciclo en pipeline) y Tiempo de datos (primer ciclo en progreso): Hay 2 ciclos de bus pendientes. Ocurre cuando el Pentium ya ha enviado a direccin para la siguiente transferencia antes qu el ciclo de bus actual haya sido completado. 5) T2P: Tiempo de datos (primer ciclo) y Tiempo de datos (Segundo pipeline): Hay dos ciclos de bus pendientes en T2.E primero no completo aun y el segundo esta en segundo o mas ciclo de reloj.

15

6) TD Estado muerto. Indica un ciclo pendiente en el que el Pentium debe permitir transcurrir a n ciclo de reloj para ejecutar una operacin de escritura luego de una lectura o viceversa. Solo en pipeline. Ciclos simples de transferencia: Lectura y Escritura, son muy simples. Durante su ejecucin son transferidos de memoria al Pentium o al revs datos de 8, 16, 32 o 64 bits. Sin estados de espera requiere 2 ciclos de reloj. Son: Ciclo de lectura, Ciclos de escritura (sin espera). Ciclos a rfagas (burst): Para grandes transferencias. Pentium los implementa en cach. Son 4 ciclos de bus para 32 bytes. Ciclo de lectura: enva direccin de memoria y la seal ADS para validarlo. Ciclo de escritura: Solo se invierte la seal W/R que esta a alto nivel para indicar a escritura, adems, siempre es una recuperacin de una lnea modificada en cach de datos. 16.6) Ciclos inquiry (peticin): Con ellos es posible para una unidad externa determinar cuando los datos de una direccin especfica estn almacenados en la cach del Pentium. La direccin se genera en la lgica externa. El comparador de direcciones analiza el contenido de la cach y compara las direcciones transferidas para determinar un fallo o acierto. Ciclos snooping (rastreo): chequea la consistencia de las dos caches independientes, la de instrucciones y la de datos. Pueden ser inicializados con o sin peticin de invalidacin. Se puede dar en 3 casos: El kernel accede a la cach de instrucciones y produce un error, accede a la cach de datos y da error cuando son sobrescritos los bits A (accedido) o D (sucio) 16.7) Espacio de direcciones de E/S y perifricos: Adems del rea de memoria el Pentium maneja el espacio de E/S que puede ser accedido mediante las instrucciones IN/OUT. Existen 2 modos de direccionamiento de E/S: usando instrucciones E/S o usando las de propsito general, mapeando la memoria de E/S. Acceden directamente a la memoria de E/S y se asegura que la instruccin se ejecuta antes que el siguiente ciclo de instrucciones sea ejecutado. 16.8) Los buffers del bus interno: La interfaz de bus de Pentium contiene dos buffers de escritura de 64 bits. Su misin es evitar las retenciones y retrasos que puedan producirse cuando el bus externo se halla ocupado. Tambien contiene 3 buffers de escritura obligada de 32 bytes, con una lnea completa de la cach actuando durante la recuperacin de lneas de cach en la cach de datos.

Repertorio De Instrucciones
17.1) Tipos de datos: Pentium esta diseado para trabajar con todos los tipos de datos que manejan los lenguajes evolucionados, pero hay 4 fundamentales: byte (8 bits), palabra (2 bytes), doble palabra (4 bytes), cudruple palabra (8 bytes). En Pentium la unidad bsica es el byte. Los bytes de ms peso ocupan las direcciones ms altas en la memoria. Otro tipo de clasificacin podra ser: 1) Enteros y ordinales: Nmeros con y sin signo que son reconocidos por todas las instrucciones aritmticas. Tienen formato byte, palabra y doble palabra. 2) Nmeros BCD (Decimal codificado en binario): Pueden estar empaquetados (cada byte representa un digito BCD utilizando los cuatro bits de menor peso) o desempaquetados. 3) Cadenas: Concatenacin. Pueden alcanzar un tamao de 4GB. 4) Campo de bits: permite a ciertas instrucciones manejar bits particulares de un campo y modificarlos. 5) Punteros de direcciones: Puede ser corto (dispone de un desplazamiento de 32 bits que permite un salto dentro del segmento que se trabaja) o largo (adems contiene el valor de un selector para uno de los 6 registros de segmento). Tipos de datos del coprocesador matemtico: El coprocesador matemtico almacena toda la informacin de un formato nico, el de coma flotante y precisin extendida con un tamao de 80 bits que coincide con sus registros internos. El coprocesador debe trabajar con siete tipos de datos distintos. Se clasifican en: a) Enteros: largo (64 bits), corto (32 bits) y palabra (16 bits) b) Decimal empaquetado: Guarda 18 dgitos BCD empaquetados en formato de 80 bits. c) Coma flotante: Se distinguen los datos en simple precisin (32 bits), en doble precisin (80 bits), que es el formato con el que opera internamente el coprocesador. 17.2) Modos de direccionamiento: Las formas que dispone el Pentium para referenciar los operandos de sus instrucciones se pueden dividir en tres grandes categoras: a) Modo de direccionamiento inmediato: El operando reside en la propia instruccin [Instruccin registro, operando inmediato] b) Por registro: el operando reside en un registro interno del procesador [instruccin registro] c) Modo de direccionamiento en memoria: el operando reside en la memoria y admite mltiples variantes para expresar la posicin donde se encuentra. Este modo proporciona al Pentium un acceso cmodo a gran variedad de datos en la memoria. 17.3) Clasificacin y caractersticas generales del repertorio de instrucciones:

16

17.4) Instrucciones especiales: Son generadas por la naturaleza multitarea del Pentium, y su necesidad de asegurar que no existan interferencias entre las tareas. Hay algunas que pueden comprometer la integridad del sistema y tienen uso restringido. Se clasifican en: a) Instrucciones Privilegiadas: Solo se pueden ejecutar en mximo nivel de privilegio (Segmentos con CPL =0) I) Cualquier instruccin que pueda modificar el campo IOPL y las relacionadas con la conmutacin de tareas. II) Las que afectan a los registros que referencian tablas que controlan al sistema en modo protegido. III) Las que afectan a la MSW, la palabra baja del CRO. IV) Instrucciones HLT, para al procesador, bloquea la ejecucin de instrucciones. b) Instrucciones protegidas: el sistema controla el campo de dos bits IOPL, del registro EFLAGS, que determina a partir de que nivel de privilegio se puede acceder a las E/S. Controlando IOPL el sistema puede establecer dinmicamente en cada tarea, un control riguroso de las E/S. 17.5) Instrucciones Aritmticas: AAA, AAD, AAM, AAS, DAA, DAS, ADD (suma dos operandos), SBB, DEC, INC, MUL, IMUL, DIV, IDIV, CBW, CWD, NEG (Complemento a dos del operando), CMP (compara operandos volcando el resultado en los sealizadores). Nuevas: CWDE, CDQ, 17.6) Instrucciones lgicas: AND, OR, XOR, NOT, ROL, ROR (Rotacin Derecha/Izquierda), RLC, RCR, TEST, SAL, SAR, SHL, SHR. Nuevas: SHLD, SHRD. 17.7) Instrucciones de manipulacin de cadenas: CMPS, CMPSB, CMPSW (sirven para comparar cadenas restando el contenido del elemento apuntado por ES:EDI, con el de DS:ESI, afectando solo los sealizadores), MOVS, LODS, ODSB, LODSW, (), XLAT, XLATB. 17.8) Instrucciones de Transferencia de control: JMP (Salta a la direccin que se indica en el descriptor referenciado), LOOP, LOOPZ, CALL, RET. Especiales: JA, JAE, JB, JBE, JE, JO, (), JNP. 17.9) Instrucciones de transferencia de datos: IN, OUT (Entrada y salida de informacin desde las puertas de E/S), POP (se transfiere desde la cima de la pila infamacin a un registro). POPA, POPF, PUSH (transfiere un registro a la pila), PUSHA, PUSHF, MOV (Transfiere al primer operando el valor del segundo), XCHG, LEA. Nuevas: POPAD, POPFD, PUSHFD, PUSHAD. 17.10) Instrucciones de control de los sealizadores: CLC, STC (Ponen a 0,1 el sealizador de acarreo respectivamente), CLD, STD, CMC, CLI, LAHF, SAHF. 17.11) Instrucciones de asignacin condicional: SETA, SETAE, (), SETNP 17.12) Instrucciones de bit: Todas Nuevas: BT, BTC, BTR, BTS, BSF, BSR. 17.13) Instrucciones de alto nivel: BOUND, ENTER, LEAVE. 17.14) Instrucciones multisegmento: CALL, RET, INT, INTO, IRET, LDS, LES, JMP. Nuevas: LFS, LGS, LSS, MOV, POP, PUSH. 17.15) Instrucciones del sistema operativo: ARPL, CLTS, HLT, LAR, LGDT, LIDT, LLDTLMSW, LSL, LTR, (), VERW. 17.16) Instrucciones para el coprocesador: ESC, WAIT. 17.17) Otras instrucciones: NOP, LOCK. 17.18) Nuevas instrucciones del Pentium: CMPXCH8GB, CPUID, RDMSR, RDTSC.RSM, WEMSR. Pentium Pro (1995) Integra una cach de segundo nivel con el procesador. Potencia el paralelismo. Aporta la supersegmentacin, la arquitectura superescalar y los registros de propsito general. Arquitectura interna: Unidad de bus externo, unidad de bus trasero, cach de datos y de cdigo L1, microprocesador (busca instrucciones, predice saltos, traduce inducciones CISC a RISC), unidad APIC. Pentium II (1997) Cualidades: Arquitectura de bus dual e independiente, tecnologa MMX, ejecucin dinmica, cartucho de contactos de contacto simple. Esto lo potenci en clculo de coma flotante y enteros, y en operaciones multimedia. Versiones: Celeron (versin econmica, 32 bits) y Xeon (versin pro, alto rendimiento) Pentium III (1999) Aportes: Streaming Memory, entre otros. Pentium IV (2000) Microarquitectura NetBurst para funcionar a velocidades muy elevadas. Aportaciones: Tecnologa hipersegmentada, bus de sistema a 400Mhz, duplicacin de unidades aritmtico-lgicas, mejoras en cach.

17

Itanium (2001) Procesador de 64 bit, tcnicas de prediccin, especulacin. Dispone cause de 10 etapas.

18