P. 1
u2.Comunicacion Interna de La a

u2.Comunicacion Interna de La a

|Views: 7|Likes:
Published by Hángel Pérez

More info:

Published by: Hángel Pérez on Oct 10, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

12/17/2013

pdf

text

original

2.

COMUNICACIÓN INTERNA DE LA COMPUTADORA La velocidad de proceso es una parte sustancial del rendimiento de los equipos y está directamente relacionada con la eficacia de las transferencias de datos en el interior de la máquina.
2.1 Buses

Bus es el conjunto de conductores eléctricos en forma de pistas metálicas impresas sobre la tarjeta madre del computador, por donde circulan las señales que corresponden a los datos binarios del lenguaje máquina con que opera el Microprocesador, toda la circuiteria de control interna se interconexiona mediante este diseño de circuito. Es el conjunto de líneas (cables) de hardware utilizados para la transmisión de datos entre los componentes de un sistema informático. Es en esencia una ruta compartida que conecta diferentes partes del sistema como el procesador, la controladora de unidad de disco, la memoria y los puertos de entrada, salida, permitiéndoles transmitir información. Por ejemplo, un grupo de cables transporta los datos, otro las direcciones (ubicaciones) en las que puede encontrarse información específica, y otro las señales de control para asegurar que las diferentes partes del sistema utilizan su ruta compartida sin conflictos. Los buses se caracterizan por el número de bits que pueden transmitir en un determinado momento. Un equipo con un bus de 8 bits de datos, por ejemplo, transmite 8 bits de datos cada vez, mientras que uno con un bus de 16 bits de datos transmite 16 bits de datos simultáneamente. Como el bus es parte integral de la transmisión interna de datos y como los usuarios suelen tener que añadir componentes adicionales al sistema, la mayoría de los buses de los equipos informáticos pueden ampliarse mediante uno o más zócalos de expansión (conectores para placas de circuito añadidas). Al agregarse estas placas permiten la conexión eléctrica con el bus y se convierten en parte efectiva del sistema. Cada chip de control y cada byte de memoria del PC están conectados directa o indirectamente al bus. Cuando un nuevo componente se inserta en uno de los conectores de expansión, queda unido directamente al bus, convirtiéndose en un objeto más de la unidad completa. Para diferenciar las cuatro funciones diferentes, el bus está dividido en cuatro partes: 1. líneas de potencia 2. Bus de control 3. Bus de direcciones 4. Bus de datos

La información codificada viaja a través de la computadora por un bus. El bus soporta tres tipos principales de información: ♦ El grupo de cables transporta datos, tales como la letra A codificada ♦ El grupo de cables que lleva la dirección del componente al que van dirigidos los datos. Cada componente acepta sólo la información que va dirigida a él; por ejemplo, la información enviada a la impresora no será aceptada de forma inadvertida por la unidad de disco. ♦ El grupo de cables que lleva la tercera clase de información que son señales de tiempo, que sincronizan todo lo que hay conectado al bus para enviar y recibir mensajes en el instante correcto.
2.1.1 Bus Local

Los diversos elementos de un microprocesador están interconectados de forma muy compleja de forma que la imagen de la figura 1 es solo una simplificación conceptual. En realidad existen varios buses principales, cuya anchura que es dos a cuatro veces la del bus externo de los PC's, y muchos más secundarios. Processor Bus Es la vía de comunicación entre el CPU y los chips inmediatos al, comúnmente llamado chipset en los sistemas modernos. Este bus es usado para transferir datos entre el CPU y bus del sistema principal, por ejemplo, o entre el cpu y la memoria caché externa. El propósito de processor bus es conseguir mayor velocidad en la entrega de la información para y del CPU, este bus opera a una mayor rapidez que cualquier otro bus en la PC. En este bus no existen los cuellos de botellas, el bus consiste de circuitos eléctricos para datos, dirección y control. Este bus opera con la misma velocidad del reloj a como lo hace el CPU externamente, ya que internamente el CPU puede trabajar a mayores velocidades. Los sistemas son cada vez más capaces y soportan aplicaciones cada vez más exigentes que requieren a su vez máquinas más veloces. El uso de sistemas gráficos como estándar, incluso para ordenadores personales primero, y las posteriores exigencias multimedia, ha disparado las exigencias en este

sentido. Una de las líneas de actuación para satisfacer estas necesidades ha sido crear buses específicos que descongestionaran el cuello de botella que representan las transferencias de datos en el bus general FSB o Front Side Bus. Estas nuevas vías se han denominado genéricamente buses locales.
2.1.2 Bus de Datos

El Bus de Datos se encarga de mover la información por los componentes de hardware del sistema de computación, tanto de Entrada (teclado, mouse) como de salida (monitor, impresora, etc.) Es común dibujar y describir el Bus de Datos como una autopista de información y órdenes, porque no es otra cosa que eso. Se rige por la cantidad de bits capaz de soportar en el camino, y en este marco, el CPU cumple la función primaria. Es por ello, que hoy existen procesadores de 64 bits en lugar de 32 ó 16, porque la evolución de la PC y la exigencia informativa de los usuarios lo demandaron. Aún cuando interconectan componentes diferentes, los siguientes buses puede considerarse buses de datos: Memory Bus Cualquier información que entra o sale de un sistema ordenador se almacena temporalmente en al menos una de las distintas localizaciones que existen a lo largo del bus. La mayor parte de las veces el dato se sitúa en la memoria principal, pero algún dato puede acabar en un puerto, o registro, durante unos instantes, mientras espera que la CPU lo envíe a una posición adecuada Es usado para transferir información entre la memoria principal y el CPU. Este bus es implementado en un chip dedicado, el cual es responsable de la comunicación. La información que viaja sobre el memory bus se hace a una velocidad mas baja que en el processor bus. Este bus tiene el mismo ancho que el processor bus, esto significa que en un sistema con CPU de 32 bits el memory bus es de 32 bits, esto definirá el tamaño de lo que se conoce como banco de memoria. Los slots para la memoria son conectados en el memory bus de la misma forma que son conectados los slots de I/O Bus. I/O Bus Son los buses que se encargan de la entrada y salida de los datos en todo el sistema. Las diferencias entre los tipos de buses que pertenecen a esta categoría consisten en la cantidad de datos que pueden transferir a la vez y la velocidad a la que pueden hacerlo.
2.1.3 Bus de Direcciones

Generalmente los puertos y registros almacenan sólo uno o dos bytes de información a la vez, y se utiliza normalmente como lugares de parada intermedia para los datos, que se están enviando de un lugar a otro. Siempre que se utiliza una posición de memoria, o un puerto, como lugar de almacenamiento, su localización está marcada por una dirección que la

Este bus es usado para indicar exactamente que dirección en memoria o que dirección sobre el bus de sistema será usada en la operación de transferir un dato. el número de contactos por conector y el número de dispositivos que soporta el bus. Nivel eléctrico. Cuando el dato está listo para ser transferido. este bus es considerado como parte de los buses del procesador y de la memoria. Además. Nivel de arbitraje.4 Bus de Control El bus de Control tiene la tarea de marcar el estado de una instrucción dada a la PC.1. El Bus de Direcciones ubica los datos en el sub-sistema de Memoria teniendo relación directa con los procesos de CPU.1. se transmite primero su dirección de destino por el bus de direcciones. así como las direcciones de las miles de posiciones que forman tanto la memoria como los dispositivos que están conectados al bus. el dato se trasmite posteriormente por el bus de datos. Address Bus En los sistemas actuales. datos. En las especificaciones se distinguen varios niveles: • Nivel mecánico. en el que se especifican los valores de tensión de las diferentes señales. 2. el bus transporta algo más que datos. Lleva información de control.5 Buses Normalizados Las especificaciones de un bus estándar están perfectamente definidas en un documento de estandarización respaldado por alguna sociedad de prestigio en el área (IEEE). tales como las señales de temporización (del sistema reloj). especifica el protocolo de arbitraje que utiliza el bus. control. Nivel lógico. en el que se recoge la forma y tamaño de los conectores. 2.identifica individualmente. especifica la función de cada señal del bus: direcciones. las señales de interrupción. Nivel de temporización o sincronismo. El tamaño del bus de memoria controla la cantidad de memoria que el CPU puede direccional directamente. • • • • Bus PCI (Peripheral Component Interconnect) . que especifica el protocolo de transferencia empleado. polarización.

C/BE[3:0]# direcciones. incluyendo sistemas con uno o varios procesadores. Es una línea punto-a-punto específica para cada dispositivo. La siguiente tabla define las líneas más importantes obligatorias en el PCI: CLK (reloj) Señal de reloj que es muestreada en el flanco de subida. La proporciona el master actual del bus (el iniciador de la transacción). Estructura El bus PCI puede configurarse como un bus de 32 o 64 bits. durante una escritura indica que el dato válido está en AD. Utiliza temporización síncrona y un esquema de arbitraje centralizado. y la desactiva cuando no puede completar la transferencia en un solo ciclo de reloj DEVSEL# Señal de slave (dispositivo) seleccionado (Device Select). Es una línea punto-a-punto específica para cada dispositivo. TRDY#Señal de slave preparado (Target Ready). indica que el master está preparado para aceptar datos.El bus PCI es un bus de ancho de banda elevado e independiente del procesador. Las activa al comienzo y la desactiva al final de la fase de datos. . Activada por el slave cuando ha reconocido su dirección.224 GBps. FRAME# Señales de arbitraje REO# Indica al árbitro que el dispositivo correspondiente solicita utilizar el bus. IRDY# Señal de master preparado (Initiator Ready). o 4. Durante una lectura. La activa el slave al principio de la transferencia. El estándar actual permite el uso de hasta 64 líneas de datos a 66 MHz. El PCI está diseñado para permitir una cierta variedad de configuraciones basadas en microprocesadores. GNT# Indica al dispositivo que el árbitro le ha cedido el acceso al bus. RST# (reset) Hace que todos los registros y señales específicas del PCI pasen al estado inicial. para una velocidad de transferencia de 528 MBytes/s. Señales de direcciones y datos AD[31:0] tiempo. Incluye 32 líneas para datos y direcciones multiplexadas en el Se utilizan para interpretar y validar las líneas de datos y Señales de control de interfaz Activada por el master para indicar el comienzo y la duración de una transferencia.

Todos los eventos se sincronizan en las transiciones de bajada del reloj. denominándose maestro al que inicia la transacción. Cuando un maestro del bus adquiere el control del mismo.Ordenes La actividad del bus consiste en transferencias entre dos elementos. La siguiente figura muestra la temporización de una operación de lectura. que consta de una fase de direccionamiento y una o más fases de datos. . cosa que sucede a la mitad de cada ciclo de reloj. entre otros son los siguientes: • • • • • Reconocimiento de interrupción Lectura de E/S Escritura en E/S Lectura de memoria Escritura en memoria Transferencia de datos Toda transferencia de datos en el bus PCI es una transacción única. Los tipos. determina el tipo de transferencia que se producirá a continuación.

El master deja libre las líneas AD del bus y cambia la información de las líneas C/BE para indicar qué líneas AD se utilizan para transportar datos (de 1 a 4 bytes). El bloque de datos es leído al comienzo del ciclo de reloj 6. Además activa IRDY para indicar que está listo para completar esa transferencia. El master lee el dato al comienzo del ciclo de reloj 4 y cambia las líneas C/BE según se necesite para la próxima lectura. El master desactiva IRDY. Para indicarlo. c) d) e) f) g) h) i) Nota: En todas las líneas que pueden ser activadas por más de un dispositivo se necesita un ciclo de cambio (indicado por las dos flechas circulares) para que pueda ser utilizado por el dispositivo de lectura. y por eso desactiva FRAME para indicárselo al slave. se describen los eventos significativos señalados en el diagrama: a) • • • b) Una vez que el master (o maestro) ha obtenido el control del bus. y el slave desactiva TRDY y DEVSEL. El master sabe que el tercer dato es el último. También activa IRDY para indicar que está preparado para recibir el primer dato (*). al comienzo del ciclo. A continuación. En consecuencia el master no lee las líneas de datos al comienzo del quinto ciclo de reloj y no cambia la señal C/BE durante ese ciclo.Los dispositivos interpretan las señales del bus en los flancos de subida. desactiva IRDY. el master todavía no está preparado para leer el dato. Esto hará que el slave mantenga el tercer dato en el bus durante un ciclo de reloj extra. En este ejemplo el slave necesita algún tiempo para preparar el segundo bloque de datos para la transmisión. El slave (o esclavo) reconoce su dirección en las líneas AD al comienzo del ciclo de reloj 2. Durante el ciclo 6 el slave sitúa el tercer dato en el bus. Arbitraje . No obstante. El slave activa DEVSEL para indicar que ha reconocido su dirección. en este ejemplo. haciendo que el bus vuelva a estar libre. inicia la transacción: activando FRAME. Por tanto desactiva TRDY para señalar al master que no proporcionará un nuevo dato en el próximo ciclo. Después sitúa el dato solicitado en las líneas AD y activa TRDY para indicar que hay un dato válido en el bus. que permanece activa hasta la última fase de datos situando la dirección de inicio en el bus de direcciones situando la orden de lectura en las líneas C/BE.

Durante el ciclo de reloj 1. El maestro del PCI establece. el árbitro activa GNT-A para ceder el acceso al bus A. El árbitro muestrea esa señal al comienzo del ciclo de reloj 1.El bus PCI utiliza un esquema de arbitraje centralizado síncrono. b) c) . B solicita el uso del bus activando su señal REQ. Se produce la siguiente secuencia: a) En algún momento anterior al comienzo del ciclo de reloj 1. en el que cada maestro tiene una señal propia de petición (REQ) y cesión (GNT) del bus. La siguiente figura es un ejemplo en el que se arbitra a cuál de los dispositivos A y B se cede el bus. un procedimiento de cesión cíclica (roundrobin). A ha activado su señal REQ. si tras la fase de dirección sigue una o más fases de datos consecutivas. El árbitro puede utilizar un procedimiento de primero en llegar primero en servirse. o cualquier clase de esquema de prioridad. Estas líneas se conectan a un árbitro central. para cada transferencia que desee hacer. La especificación PCI no indica un algoritmo particular de arbitraje. Al mismo tiempo.

DEC. 1. con unos elementos especiales. por consiguiente. Entonces activa GNT-B y desactiva GNT-A. y a alta velocidad. El bus USB está organizado en una estructura de árbol descendente. para dispositivos rápidos. Trabaja en dos modos. y la orden correspondiente en las líneas C/BE. dos para datos y dos para alimentación. El árbitro del bus muestrea todas las líneas GNT al comienzo del ciclo 3. no se pierden ciclos de bus en realizar el arbitraje. Además mantiene activa REQ-A. En la raíz está el host. desarrollado por empresas de informática y telecomunicaciones (7 compañías: Compaq. encuentra IRDY y TRDY desactivados.d) El maestro del bus A muestrea GNT-A al comienzo del cielo de reloj 2 y conoce que se le ha cedido el acceso al bus. . El dispositivo lee el dato al comienzo del siguiente ciclo de reloj. puesto que sólo deseaba realizar una transferencia. indicando que el bus está libre. sin necesidad de reiniciarlo ni de configurar el sistema. f) Hay que resaltar que el arbitraje se produce al mismo tiempo que el maestro actual del bus está realizando su transferencia de datos. como CD-ROM . puede tomar el control del bus activando FRAME. que a su vez pueden ser otros hubs. g) Al comienzo del ciclo 5. 12 Mbps. que es el interfaz entre el bus USB y el bus del ordenador. B encuentra IRDY y FRAME desactivados y. A un hub se puede conectar uno o más dispositivos. que también son dispositivos USB. En consecuencia. Intel. IBM. Bus USB (Universal Serial Bus) El bus USB (Universal Serial Bus) es un bus normalizado para la conexión de periféricos. y toma la decisión de ceder el bus a B para la siguiente transacción. desactiva su línea REQ. Además. Por consiguiente. activa FRAME y coloca la información de dirección en el bus de direcciones.5 Mbps. Se pueden conectar hasta 127 dispositivos. NEC y Northern Telecom). a baja velocidad. Permite conectar de forma sencilla dispositivos periféricos al computador. Utiliza un cable de cuatro hilos. Microsoft. con una longitud máxima de cable de 5 metros para cada uno. con lo que una conexión en cadena permitiría que el último dispositivo estuviese a 635 metros del ordenador. e) A desactiva FRAME para indicar que la última transferencia de datos está en marcha. Pone los datos en el bus de datos y se lo indica al dispositivo destino con IRDY. módems. para dispositivos lentos como teclados y ratones. B no podrá utilizar el bus hasta que éste no vuelva a estar libre. Además. llamados hubs que encaminan las señales desde un dispositivo al host o viceversa. puesto que tiene que realizar otra transferencia después de la actual. Esto se conoce como arbitraje oculto o solapado (hidden arbitration). De él cuelgan los dispositivos USB y los hubs.

Administrar y controlar el flujo de datos entre el host y los dispositivos USB. permitiendo al igual que el USB la conexión en operación. ancho de banda requerido). Enumerar y configurar los dispositivos conectados al sistema. Después el SO (Sistema Operativo) carga los drivers del dispositivo. Uno de los problemas del puerto USB es que suministra solamente 500 miliamperios de corriente para los dispositivos conectados. . El host USB tiene. resulta pequeña cuando se conectan varios dispositivos sin fuente de alimentación propia. Administrar y controlar las transferencias síncronas y asíncronas de información. que permite conectar hasta 63 dispositivos y un cable de 4. Recoger y resumir estadísticas de actividad y estado de los elementos del sistema. sin embargo la velocidad de transferencia de un puerto USB está entre 1. el host lo detecta y descarga los drivers. Otra de las funciones importantes de los hubs es la de aislar a los puertos de baja velocidad de las transferencias de alta velocidad. solicitándolos al usuario si es necesario. las siguientes funciones:        Detectar la conexión de nuevos dispositivos al sistema. El host le asigna una dirección única ID para diferenciarlo del resto de los dispositivos de la red USB. se detecta la diferencia de tensión en la red USB y procede a determinar las características del dispositivo (vendedor. que aunque es suficiente para la mayoría de los dispositivos que se conectan a este puerto. ratón). Proporcionar energía eléctrica a algunos dispositivos del computador (teclado. Un puerto serie es capaz de transmitir hasta 112. Cuando se desconecta el dispositivo. entre otras. maneja transferencias entre 100MB/s y 400MB/s. El FIREWIRE (IEEE 1394).5MB/s y 12MB/s. Detectar la desconexión de dispositivos previamente conectados. funcionalidad.Cuando se conecta un dispositivo.5 KB/s y un puerto paralelo entre 600KB/s y 15MB/s. proceso sin el cual todos los dispositivos de baja velocidad conectados al bus entrarían en colapso.5 metros por dispositivo.

las secuencias de paquetes. el control CRC y la codificación NRZI. corregir y retransmitir la información que llega al hub hacia los puertos del mismo. Contiene una memoria de varios registros para sus funciones. El Repetidor tiene la función de analizar. constituye la interfaz de un dispositivo externo con el resto del sistema. Todos los dispositivos conectados acceden al canal o medio para transmitir sus datos siguiendo un protocolo administración del host análogo al de token ring.5Mbps. D+.y GND. incorporado dentro del chip controlador. SIE (Serial Interface Engine) Tiene la función de serializar y paralelizar las transmisiones. con dos velocidades: 12Mbps o 1. El hub está compuesto por dos unidades principales: el Controlador y el Repetidor. D.La protección de los dispositivos lentos de los rápidos ha sido siempre un problema importante en el diseño redes mixtas.  . El Transceiver. que consecutivamente va dando la posibilidad de transmisión a cada periférico. El Controlador es una pequeña CPU de supervisión de las múltiples funciones realiza un hub. El cable USB dispone de solo cuatro hilos: Vbus. además maneja los protocolos de comunicación. como es USB. La información y los datos van por los hilos D+ y D-. Arquitectura En la siguiente figura aparece un diagrama de bloques de un microcontrolador USB:  Transceiver.

De esta forma. USB permite dos tipos más de transferencias de datos:  Control Es un tipo de comunicación exclusivamente entre el host y el dispositivo que permite configurar este último. 32 o 64 bytes. Modos de transmisión    Asíncrona Síncrona Bulk La transmisión Bulk. Para ello envía un paquete al dispositivo específico. cada periférico puede determinar si es el receptor de un paquete de datos. empleando uno de los modelos más seguros como es el CRC (Código de Redundancia Cíclica). donde se requiere una gran capacidad de transferencia en poco tiempo. los buffer soportan cuatro tareas o funciones. Y puede estar implementado al nivel de software y/o hardware de manera configurable. cuatro destinadas a la transmisión y cuatro a la recepción de datos. Este protocolo tiene un sistema muy eficiente de recuperación de errores. FIU (Function Interface Unit) Administra los datos que son transmitidos y recibidos por el cable USB. Cada dispositivo tiene un número de identificación. Se basa y apoya en el contenido y estado de las memorias FIFOs. involucra al menos tres paquetes de datos. numeradas de 0 a 3. FIFOs Los controladores típicos disponen de un total de 8 buffer tipo FIFO. Sus paquetes de datos son de 8. Tanto para la transmisión como para la recepción.  Protocolo Toda transferencia de datos o transacción que emplee el bus. Técnicamente un paquete de datos se denomina Token Packet. 16. es una comunicación no periódica. utilizada por transferencias que requieren todo el ancho de banda disponible o en su defecto son retrasadas hasta que el ancho de banda completo esté disponible. Controla los estados de las transacciones. asignado por el Controlador de host cuando arranca el computador o cuando un se conecta un dispositivo nuevo al sistema. Cada transacción se da cuando el host decide qué dispositivo hará uso del bus.  Interrupción . y solicita atención para diversas acciones a través de interrupciones. Aparecen en el movimiento de imágenes o vídeo. dependiendo de la velocidad del dispositivo que se pretende controlar. los buffer FIFO.

• • • . está disponible. la SCSI-1. una orden de lectura o escritura. pero algunos dispositivos pueden asumir los dos papeles. Selección: de un dispositivo para realizar una operación. pero suspendida por el dispositivo. el computador es el iniciador y un controlador periférico el dispositivo seleccionado. uno de entrada y otro de salida. Reselección: permite que el dispositivo seleccionado se vuelva a conectar al iniciador para reanudar una operación iniciada previamente. 16 o 32 líneas de datos. Normalmente. Por ejemplo. Los cambios más notables fueron la expansión opcional a 16 o 32 líneas de datos y el aumento de la frecuencia de reloj a 10 MHz.  Versiones La especificación original SCSI. conectándose en cadena (daisy chain). toda la actividad del bus se produce en una secuencia de fases: • • Bus Libre: ningún dispositivo está utilizando el bus. un disco duro puede guardar su contenido en una cinta sin que tenga que intervenir el procesador. que componen un mensaje. igual que con el computador. con 8. En cualquier caso. En 1991 se introdujo SCSI-2. Su paquete de datos tiene las mismas dimensiones que el de las transmisiones de control. Bus SCSI (Small Computer System Iterface) El bus SCSI se utiliza en ordenadores personales y en muchas estaciones de trabajo. o a una velocidad de datos de 5 MBytes/s. Los datos se transfieren mediante paquetes. se desarrolló en los años 80. y pueden intercambiar datos entre ellos. de manera que pueda iniciar o reanudar una operación de E/S. Orden: el dispositivo solicita una orden de información al iniciador. por ejemplo. SCSI-1 permite conectar al computador hasta siete dispositivos. Se trata de una interfaz paralela.Este tipo de comunicación está disponible para aquellos dispositivos que demandan mover muy poca información y con poca frecuencia. Cada dispositivo SCSI tiene dos conectores.  Fases Todos los intercambios en el bus SCSI se producen entre un dispositivo iniciador y un dispositivo seleccionado. SCSI-1 utiliza 8 líneas de datos y opera a una frecuencia de reloj de 5 MHz. Como resultado se tiene una velocidad de datos máxima de 20 o 40 Mbytes/s. Todos los dispositivos funcionan independientemente. Arbitraje: determina el dispositivo que toma control del bus.

datos. en la que se designa un iniciador y un dispositivo seleccionado para realizar la transferencia. SEL Selección de un dispositivo por el iniciador o del iniciador por un dispositivo. seguida de una fase de bus libre. Cuando el arbitraje termina con éxito. Estado: el dispositivo solicita la información de estado desde al iniciador. activada por el iniciador o dispositivo seleccionado. Si una orden enviada necesita algún tiempo para completarse. el bus pasa a una fase de selección o reselección. Data Out). . en la que un mensaje de desconexión o de orden completa se transfiere al iniciador. que da lugar a que un dispositivo tome el control. Mensaje: el dispositivo solicita la transferencia de uno o más mensajes desde el iniciador (entrada de mensaje. Por ejemplo. Message In) o viceversa (salida de mensaje. Message Out). se producirá una o más fases de transferencia de información entre ambos (fases de orden. el computador puede enviar una orden a un dispositivo de disco para que dé formato al disco. La fase final de transferencia de información es normalmente la fase de entrada de mensaje. Líneas de señal BS: Bus ocupado. el dispositivo seleccionado puede liberar el bus y volverse a conectar al iniciador más tarde. o después de un reinicio. Una característica importante del bus SCSI es la capacidad de reselección. Data In) o viceversa (salida de datos. • • La siguiente figura ilustra el orden en que se producen las fases del bus SCSI: Después de conectarse el sistema. Si el arbitraje falla. Después de determinados los dos dispositivos.• Datos: el dispositivo solicita la transferencia de un dato hacia el iniciador (entrada de datos. el bus pasa a la fase de bus libre. el bus vuelve a la fase de bus libre. y el dispositivo realiza la operación sin necesidad de acceder al bus. A ésta le sigue la fase de arbitraje. estado y mensaje).

Si no hay otra activa con mayor prioridad accederá al bus. ACK Reconocimiento por el iniciador de la señal de REQ del dispositivo. DB(7-0) Bus de datos C/D Operación (temporización). estado o mensaje) o datos. El sincronismo se realiza con la ayuda de las señales conocidas REQ (controlada por el dispositivo y leída por el iniciador) y ACK (controlada por el iniciador y leída por el dispositivo). Finalmente el dispositivo hace pasar al bus a la fase de mensaje en la que se transmite un byte con el mensaje de orden completa. Para aclarar el papel de cada señal en las distintas fases (estados) del bus. Cada dispositivo conoce si puede acceder al bus leyendo las líneas de datos. Una vez que el dispositivo conoce que es una orden de lectura se pasa a la fase de transmisión de datos que de nuevo se realiza byte a byte de forma asíncrona con la ayuda de REQ y ACK. la 7 asignada al computador. El dispositivo que quiere acceder al bus activa BSY y su señal de datos asociada. siendo la 7 la más prioritaria y la 0 la menos prioritaria. se analizará una operación de lectura que transfiere datos desde un dispositivo periférico al iniciador (computador). Finalizada la transmisión el dispositivo pasa el bus a la fase de estado en la que transmite un byte en el que se codifica que la transmisión se ha realizado con éxito. Después se pasa a la fase de orden en la que el iniciador transmite al dispositivo en forma asíncrona el conjunto de bytes que componen la orden a ejecutar (lectura en nuestro caso). El dispositivo que ha ganado el arbitraje se convierte en el iniciador y comienza la fase de selección del dispositivo con el que quiere realizar la transacción. REQ Petición por el dispositivo de una transferencia de información o datos. Para eso activa la señal SEL y las dos líneas de datos: la suya propia y la del dispositivo con el que quiere conectar. En nuestro caso es la CPU quien accede (máxima prioridad) para realizar la lectura. El dispositivo reconoce su identificación activando la señal BSY que ha desactivado previamente el iniciador después de su uso en el arbitraje. . Esta sigue las siguientes fases: El arbitraje se realiza con la señal BSY y las 8 señales de datos. I/O Control por el dispositivo de la dirección del movimiento de datos en el bus de datos. y las otras 7 asignadas a otros tantos dispositivos (7 es el número máximo de dispositivos que se pueden conectar al SCSI-1). Entre las señales de datos existe una prioridad.Indicación por el dispositivo si el bus de datos lleva información de control (orden.

Sistema de Numeración usado en el Direccionamiento .2 Orden completa Desconexión Error detectado en el iniciador Abortar Transferencia síncrona de datos Direccionamiento El direccionamiento de la memoria puede considerarse desde dos puntos de vista: FÍSICO se refiere a los medios electrónicos utilizados en el ordenador para acceder a las diversas posiciones de memoria. ♦ Es direccionamiento se refiere a la forma en que son tratadas las direcciones de memoria del PC. ♦ LÓGICO es la forma en que se expresan y guardan las direcciones. y que arrastra modos que solo tienen una justificación de tipo histórico. que ha sufrido mutaciones a lo largo del tiempo.El diagrama de tiempos para la orden de lectura con las principales señales implicadas sería el siguiente: Mensajes • • • • • 2. en razón de las características del hardware de los primeros PC's.

y es equivalente a la dirección absoluta B9ECAh. La solución consistió en expresar las direcciones mediante dos palabras de 16 bits. se desplaza una posición añadiéndole un cero a la derecha (equivale a multiplicarla por 16. ya que las direcciones se expresan en hexadecimal). esta última forma se denomina dirección absoluta. DIRECCIONES SEGMENTADAS. la dirección anterior se expresaría ABCD:E1FA . suponiendo que el desplazamiento y el segmento fuesen respectivamente ABCDh y E1FAh.El sistema de numeración utilizado para representar las direcciones de memoria en el texto escrito no es el decimal (aunque este sea el usado cotidianamente). si el desplazamiento es ABCDh resulta ABCD0h. las posibilidades son 1. sino el hexadecimal. la forma de obtener la dirección resultante es como sigue: 1. Direccionamiento segmentado El bus de direcciones del PC XT era de 20 bits. Para distinguirla de la anterior. el procesador 8088 utilizado tiene registros de 16 bits. sería B9ECAh. pueden ser representadas mediante un hexadecimal de cuatro cifras en el rango 0000-FFFFh. el desplazamiento la transforma en un hexadecimal de 5 cifras (ABCD0). .576 (es el rango 00000-FFFFFh). El valor obtenido se suma con el valor del segmento (E1FAh). Sin embargo. Una de las palabras. Estas dos palabras pueden ser traducidas a una dirección de 20 bits mediante la operación denominada suma con desplazamiento. La razón es que los números hexadecimales guardan cierta concordancia con las potencias de 2. 2. que tiene 20 bits. así que la dirección resultante.536).576). el desplazamiento. Es posible también utilizar una doble notación: DIRECCIONES ABSOLUTAS. por consiguiente. por lo que teóricamente podían manejarse un total de 220 posibilidades (1. que utiliza dos grupos de cuatro dígitos hexadecimales. en el rango 00000-FFFFFh. un bus de direcciones de 8 bits puede acceder a 256 posiciones (en hexadecimal es el rango 00-FFh). En forma segmentada. Puesto que inicialmente es un hexadecimal de 4 cifras (ABCD en nuestro caso). por lo que solo puede contener directamente 216 posiciones (65. Por ejemplo. El bus de direcciones del PC XT. poniendo a la izquierda el valor más alto (el desplazamiento) y a la derecha el más bajo (el segmento).048. denominadas segmento y desplazamiento que.536 posiciones (es el rango 0000FFFFh).048. se puede acceder 65. Segmentos y párrafos Esta forma de representación segmentada de las direcciones es en realidad una imagen de como son manejadas internamente en el procesador. indicadas por un hexadecimal de cinco dígitos. Nota: Es frecuente escribir las direcciones segmentadas en forma de los dos cantidades separadas por dos puntos. En nuestro caso. Por ejemplo. En caso de direcciones de 16 bits.

048. el primer Megabyte de memoria se conoce como Memoria DOS. chips de la ROM-BIOS. con lo que en realidad el espacio para programas de aplicación resultaba siempre muy precario. Esto es lo que se conoce como funcionamiento en modo real (como puede verse. la cual se distribuye de la siguiente manera: o Los primeros 640 KB como memoria convencional o memoria base. SS. Disponen además de 4 registros de segmento de 16 bits (CS. DS y ES). Modelos de memoria DOS Las 220 posibilidades de direccionamiento antes comentadas. ROMs de los controladores de disco. y adaptadores de red. y hasta 64 x 4 = 256 KB sin necesidad de cambiar los registros de segmento. Fh. Resulta así. que pueden direccionar un total absoluto de 1MByte.. Desde entonces. o Los 384 KB restantes (1024 .640) son la memoria superior o "del Sistema" ("Upper memory"). y en referencia a que el sistema operativo era MS-DOS. En la figura 1 se muestra una división de este "Mega" (1. constituyen el famoso límite del "Megabyte" de memoria de los primeros PC's. Nota: Gran parte del "Sistema" se cargaba en la memoria supuestamente reservada a usuario. de los cuales se reservaron los no menos famosos 640 primeros KBytes como máximo disponible para programas de usuario. en realidad es una forma de manejar la memoria).576) en 16 segmentos (de 64 KBytes cada uno) cuyos desplazamientos son justamente 0h. La figura 2 muestra como se utilizan los registros para señalar las direcciones de inicio de los diversos módulos de un programa cargado en memoria dentro del espacio de memoria direccionable con 20 bits (00000FFFFFh).Los procesadores 8088 tienen registros de 16 bits que pueden servir para almacenar los desplazamientos. 2h .. . cualquier dirección dentro de una zona de 64 KB (que se conoce como segmento). aunque existían "agujeros" sin uso que podían ser aprovechados. Esta zona superior contenía cosas como adaptadores y memoria de video. es decir. 1h. en los que se almacenan las direcciones de inicio del segmento activo en cada momento.

SYS). Más tarde fue aceptada también por Microsoft con alguna pequeña modificación. o Poco más tarde Quadram. área de datos de la ROM BIOS y buena parte del propio Sistema Operativo DOS.BAT. controladores de dispositivos (los famosos "device=.En la figura 1 se muestra un mapa aproximado de la distribución de esta memoria en el Sistema MS DOS. a la que llamaron EMS ("Expanded Memory Specification"). Por ejemplo. de modo que existen zonas ociosas en las que podían situarse los citados controladores. Como consecuencia de la escasez de espacio. se desarrollaron técnicas para permitir que controladores de dispositivos y TSR's se cargaran en otras zonas de memoria. Memoria expandida Muy pronto se comprobó que el Megabyte de memoria inicialmente previsto era claramente insuficiente. debieron hacer verdaderos juegos malabares para tratar de suplir la cortedad de miras de los diseñadores del PC. pasando a denominarse especificación de memoria expandida LIM (Lotus. gran parte de la memoria de video está físicamente en las propias placas de los adaptadores de video. muchas de estas "cosas" están físicamente fuera de lo que es la memoria RAM (si se abre la caja del ordenador). Intel Microsoft). Concretamente hubo dos soluciones que fueron muy utilizadas y populares en su época: o La primera. Por ejemplo. además. aunque en realidad este espacio debe ser compartido con la tabla de vectores de interrupción. Generalmente este tipo de instrucciones de carga se sitúan en los ficheros CONFIG. en cooperación con los de hardware. que desarrollaron una variedad de la técnica de direccionamiento conocida como conmutación de bancos. la especificación LIM fue perfeccionada para proporcionar 32 MB adicionales mediante una combinación hardware/software.. y aprovechan que no todo el espacio de memoria superior es utilizado por el Sistema. Los ingenieros de software.SYS y AUTOEXEC." del fichero CONFIG. fue resultado de una iniciativa conjunta de Lotus e Intel. Ahston-Tate y el fabricante de tarjetas de memoria AST publicaron otra más flexible denominada EEMS ("Enhanced EMS").. por lo que se arbitraron diversos tipos de soluciones. Los programas DOS requieren la existencia de una zona contigua de memoria convencional (preferiblemente de 640 KB). El procedimiento consistía en añadir al ordenador una placa adicional de . que proporcionaba 8 MB de espacio adicional. Nota: Aunque para el programador toda esta memoria RAM es un único espacio lógico.

En este modo de funcionamiento del procesador están disponibles todas sus características. en la que existen 4 secciones de 16 KB (ventanas) que se emplean como punteros a una página más grande en la memoria de conmutación de bancos. El modo real se requiere primariamente para preparar el procesador para que opere en modo protegido. denominada marco de página. El procesador siempre comienza su ejecución en este modo (tras el arranque o un reset).3 Modo Real Virtual Las tareas en modo 8086 virtual pueden aislarse entre sí y del sistema operativo (que debe utilizar instrucciones del 80386). que permite tener varias sesiones 8086 trabajando simultáneamente simulando una especie de pseudos-multitarea.1 Temporización Reloj del Sistema Un reloj del sistema reside en la tarjeta madre.1 Modo Real En modo real el 80386 opera como un 8086 muy rápido. lo que permite ejecutar software de 8086 (un programa de aplicación o un sistema operativo). que era conducida por un "driver" adecuado. arranca en modo real.2.2 Modo Protegido Dentro del modo protegido. Cada una de estas tareas se comporta como si fuera un 8086 el que lo está ejecutando. el software puede realizar un cambio de tarea para entrar en tareas en modo 8086 virtual (V86 mode) (esto se incorporó con este microprocesador). 2. 2. . se sitúa una zona 64 KB. 2. al igual que el 80286.2.3 2. Los programas podían utilizar segmentos de datos muy grandes. El modo protegido provee el acceso al sofisticado manejo de memoria y paginado.3. mediante el uso del paginado y el mapa de bits de permiso de entrada/salida (I/O Permission Bitmap). como un metrónomo. el EMM ("Expanded Memory Manager") cargado por el CONFIG.SYS.2. ya que el gestor de memoria EMM se encargaba de traer automáticamente a la "ventana" la zona necesaria en cada momento.memoria de conmutación de bancos de hasta 32 MB. A éste envían una señal a todos los componentes de la computadora en ritmo. con extensiones de 32 bits si se desea. El procesador 80386 es el primer procesador que incorpora este modo de operación. 2. El truco consiste en que en un área en desuso de la memoria superior.

por ejemplo. es más lenta. también es llamado reinicio en caliente y los valores contenidos en los registros son puestos a cero. 2. en realidad la señal de reloj real. la mayor parte del tiempo. Se utiliza la interrupción 25 y tiene la dirección 0064h en el vector de interrupciones. y tiene un efecto parecido al que se consigue por el teclado con la combinación CTRL+ALT+DEL. éstos utilizan un factor de cuatro para sincronizar sus acciones. como la siguiente: Sin embargo. el controlador de la memoria puede informar al procesador que los datos requeridos llegarán en seis ciclos de reloj. Por ejemplo. También conocido como Zero Wait State o Estado de Espera Cero.Generalmente. se ve más como el ejemplo que se da a continuación. Los estados en espera son el resultado de distintas velocidades de reloj del procesador y la memoria. Si el reloj del sistema funciona a 100MHZ. Un .2 Reset del Sistema El reset del sistema o inicialización. Cada acción en la computadora se marca con un tiempo mediante estos ciclos del reloj y para realizarse. 2. cada acción toma cierto número de ciclos del reloj. cuando se ve con un osciloscopio. en los cuales ésta. generalmente. Cuando se procesa una solicitud de la memoria. Sin embargo. el bus del sistema y otros componentes funcionan a distintas velocidades. cuando un reloj del sistema de 100MHZ interactúa con un CPU de 400MHZ.3 Estados de Espera Son periodos inactivos para el procesador. este ritmo se genera como una onda cuadrada. Los componentes de distintas velocidades requieren un factor de multiplicación o un factor de división para sincronizarlos. cada dispositivo entiende que cada ciclo de reloj del sistema es igual a cuatro ciclos de reloj del CPU. un "estado de espera" (wait state) es una fase durante la ejecución de un programa en la que el procesador debe esperar uno ó más ciclos del reloj hasta que la memoria pueda responder a los pedidos o requerimientos del procesador. Mucha gente asume que la velocidad del procesador es la velocidad de la computadora.3.3. Cada onda en esta señal mide un ciclo de reloj. Para efectuar un reinicio del sistema es necesario activar un servicio llamado puesta en marcha o bootstrap. esto significa que hay 100 millones de ciclos del reloj en un segundo. Es posible que el CPU y otros dispositivos funcionen más rápido o más lento que el reloj del sistema.

los vectores de interrupción son punteros de 32 bits. 2. se dice que el sistema esta vinculado por bus (Bus bound).4 Interrupciones de Hardware Una petición de interrupción IRQ ("Interrupt Request") es una señal que se origina en un dispositivo hardware (por ejemplo. también por los programas. para indicar al procesador que algo requiere su atención inmediata. en especial en la operación de dispositivos E/S. En cualquier caso se trata siempre de ejecutar un programa situado en algún lugar de la memoria RAM o en la ROMBIOS. Es decir. La razón es que además de los servicios del BIOS propiamente dichos. Las interrupciones juegan un papel fundamental. los . Este "algo" es lo que se conoce como servicio. se cargan las direcciones de inicio de otras rutinas del Sistema Operativo. por lo que puede parecer extraño que se hayan previsto 256 vectores para atenderlas. ISR ("Interrupt service routine"). Si el procesador es más lento que la memoria. Nota: Estas peticiones pueden ser generadas no solo por dispositivos hardware. El diseño del PC solo permite 16 interrupciones distintas. La citada tabla se denomina tabla de vectores de interrupción IDT ("Interrupt Description Table") y en sus 1024 bytes pueden almacenarse 256 vectores de 4 bytes. e incluso en circunstancias especiales (errores generalmente) por el propio procesador. El concepto Estado de Espera Cero ("Zero Wait State") indica la ausencia de esperas. que señalan las direcciones donde comienza la rutina que atiende la interrupción. Ocurre que las direcciones de inicio de estos programas. razón por la cual estas rutinas se conocen también como servicios del BIOS. numerados de 0 a 255. El sistema ideal de memoria es uno en el que la velocidad con la que la memoria puede entregar datos al procesador iguala a la velocidad con que el procesador puede ejecutar el código. del software y del procesador. controlador o gestor de la interrupción. se copian en una tabla de 1024 Bytes que se carga al principio de la memoria de usuario (direcciones 0000h a 0400h) durante el proceso de inicio del sistema. que permite que el microprocesador se sincronice con la memoria más lenta. se dice que el sistema esta vinculado al procesador (processor bound). Entonces existen tres posibles orígenes de estas peticiones: del hardware. pero las interrupciones permiten que los dispositivos puedan permanecer en silencio hasta el momento que requieren atención del procesador. ya que les permite enviar estas peticiones a la UCP. se solicita al procesador que suspenda lo que está haciendo para atender la petición. un periférico). Principio de funcionamiento Cuando un dispositivo reclama atención del procesador es para que este haga algo. que se conocen como vectores de interrupción. Sin ellas el sistema debería chequear constantemente los dispositivos para comprobar su actividad.estado de espera es un ciclo de pausa en la operación de la CPU. Si la memoria es más lenta que el procesador.

Es significativo que. aunque teóricamente las interrupciones 0 a 31 estaban restringidas. . En concreto. aunque no desveló ningún uso específico para algunos de ellos. guarda el contenido de los registros. El modo de operación es como sigue: ♦ Cuando se recibe la petición de interrupción. y vuelve a su punto de ejecución.denominados servicios del Sistema. ejecuta el "servicio". ♦ El servicio suele terminar con una instrucción IRET ("Interrupt Return") que restituye el contenido de los registros y vuelve a habilitar el sistema de interrupciones. deshabilita el sistema de interrupciones. El esquema resultante se muestra en la tabla adjunta. a pesar de haber sufrido ampliaciones. la especificación inicial se mantiene para las 31 interrupciones iniciales. IBM y Microsoft utilizaron algunas de ellas sin respetar las indicaciones de Intel. Hex Uso 0 0 Error: División por cero 1 1 Excepciones para depuración (ejecución paso a paso) 2 2 Interrupción no enmascarable 3 3 Punto de ruptura interrupción (Instrucción INT) 4 4 Desbordamiento ("Overflow"). Utilizado cuando un cálculo aritmético se desborda. A continuación estableció otros 27 de uso reservado. Instrucción INTO 5 5 (reservado) 6 6 Código de instrucción no válido 7 7 Coprocesador no disponible 8 8 Fallo doble 9 9 (reservado -Rutina de atención del Teclado-) 10 A TSS no válido 11 B Segmento no disponible 12 C Excepción de pila 13 D Protección general 14 E Fallo de página 15 F (reservado) 16 1A Error de coprocesador 17-31 1B-1F (reservado) 3220-FF Disponibles para interrupciones enmascarables 255 Sin embargo. Al diseñar el 8088. Intel estableció un reparto de estos vectores. el procesador termina la instrucción que está ejecutando.0 en una máquina Pentium. Lo que hace posible que pueda cargarse un Sistema PC-DOS 1. A partir de aquí. los vectores 32 a 255 estaban disponibles. Vector Dec. incluso es posible cargar direcciones para rutinas específicas de usuario. reservando los 5 primeros para uso interno del procesador (precisamente para atender las excepciones). IBM y Microsoft utilizaron algunas para los servicios BIOS.

IRQ7).En cierto sentido. 2. para su gestión existen tres tipos de elementos de soporte: Ciertas líneas específicas (IRQ's) en el bus de control. numeradas del 8 al 15. Estas peticiones pueden ser generadas desde el software o incluso por el procesador. la clasifica. Ciertas patillas específicas en el procesador. En el PC XT existen 8. de forma que esta línea se dedica a atender las interrupciones del segundo controlador a través de la línea 9 de este último. Por ejemplo. y . 1. En el párrafo anterior se indicada someramente el proceso cuando "se recibe" una petición. El resumen del proceso es como sigue: ♦ Un periférico. numeradas del 0 al 7. ♦ Como respuesta. un procesador específico que realiza cierta elaboración previa de las peticiones antes de entregar la señal a la UCP. 3. tarjeta o dispositivo necesita atención. ♦ A continuación el procesador se da por notificado y pregunta que tipo de excepción debe atender. lo que conduce a que en realidad las únicas que deben recibirse (desde el exterior) son las que denominadas interrupciones hardware (que se originan en dispositivos externos al procesador). a tal efecto pone en tensión baja una de las líneas IRQ del bus de control (que le había sido asignada). PIC asigna un número de servicio (0-256) en forma de un octeto que es colocado en el bus de datos. Líneas de petición de interrupción El bus de control dispone de líneas específicas para el sistema de interrupciones. A partir del modelo AT se añadieron otras 8 líneas. que la procesa. El controlador de interrupciones (PIC). el PIC realiza un cierto proceso ("Interrupt Handling Routine") a partir de los datos de programación iniciales y del estado actual del propio sistema de interrupciones. y envía una señal a una de las patillas del procesador. el proceso es similar al que ocurre cuando aparece la invocación de una función en el código de un programa. puede estar procesándose el servicio de una interrupción. ♦ La señal es recogida por el PIC. que aparecen como tales en el bus de control (IRQ2. con lo que solo quedaban 6 líneas para otros dispositivos. Antes de describir brevemente el camino hasta que la solicitud es recibida por la UCP. aunque las dos primeras están asignadas al temporizador y al teclado. mediante un segundo procesador PIC aunque la tecnología empleada exigió colgarlo de la línea IRQ2. con lo que se está en el punto inicial del proceso. Para la asignación del número de servicio a partir de una de las 16 solicitudes de las IRQ. o tal vez se recibe otra interrupción del mismo periférico antes de haber atendido la anterior. pero cabe una cuestión: ¿Como se recibe la petición?. pero la rutina esta suspendida momentáneamente porque se ha solicitado otra interrupción de prioridad más alta.

debe asignársele una IRQ adecuada.Paridad* 08 Temporizador* 09 Teclado* 0A Reservado 0B Puertos serie COM2/COM4 0C Puertos serie COM1/COM3 0D Disco duro 0E Disquete 0F Impresora primaria LPT1 70 No aplicable 71 No aplicable 72 No aplicable 73 No aplicable 74 No aplicable 75 No aplicable 76 No aplicable 77 No aplicable AT: Descripción Paridad* Temporizador* Teclado* Interrupciones 8 a 15 (PIC#2) Puerto serie COM2/COM4 Puerto serie COM1/COM3 Impresora secundaria LPT2 Disquete Impresora primaria LPT1 Reloj de tiempo real* Redirigido a IRQ2* No asignado No asignado Ratón PS2 Coprocesador 80287* Contr. La razón de esta ausencia en los zócalos de conexión es que son de asignación fija. pero en la práctica algunas están reservadas a dispositivos estándar. IRQ3 está casi siempre asignado al puerto serie COM2 y IRQ4 a COM1. Es costumbre denominar IRQx a las que tienen prolongación en el bus. En concreto la línea NMI está asignada al mecanismo de control de paridad de la memoria. La siguiente tabla muestra las asignaciones clásicas para el XT y el AT. Inicialmente esta asignación se efectuaba de forma manual. IRQ6 al controlador estándar de disquetes y IRQ7 al puerto de impresora LPT1. . Dicho en otras palabras. Por ejemplo. Tabla-1 Nombre NMI 0 1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 8 9 IRQ10 IRQ11 IRQ12 13 IRQ14 IRQ15 Int XT: Descripción (hex) --. Aunque internamente se manejan 16 líneas. por medio de puentes ("Jumpers") en la placa o dispositivo. un dispositivo que no existía en los modelos XT. la línea 0 está asignada al cronómetro del sistema y la línea 1 al chip que controla el teclado (dispositivos que pueden requerir atención urgente por parte del procesador). disco IDE primario Contr. no todas tienen contacto en los zócalos del bus externo. cuando requiera atención debe enviar una señal en la línea IRQ especificada. Los dispositivos son de enchufar y usar PnP ("Plug and play").la línea 8 se dedicó al reloj de tiempo real. y nadie más que ciertos dispositivos instalado en la propia placa tiene que utilizarlas. pero actualmente esta selección puede hacerse por software. Son las marcadas con asterisco (*) en la tabla que sigue. Teóricamente las restantes líneas podrían ser asignadas a cualquier nuevo dispositivo. disco IDE secundario Cuando se instala un dispositivo E/S que puede necesitar atención del procesador.

para el Sistema Operativo Windows98SE . Nota: Los usuarios de Windows 98 pueden comprobar la asignación de IRQ's a los diversos dispositivos del sistema mediante el programa msinfo032.exe. IRQ Utilización CPU0 0: 3407670 1: 7149 2: 0 8: 2 9: 1461 XT-PIC timer XT-PIC keyboard XT-PIC cascade XT-PIC rtc XT-PIC acpi . También mediante la utilidad dmesg en la forma dmesg | grep -i irq.Distribución de Líneas IRQ Windows98SE A continuación se muestra la distribución de líneas IRQ en un ordenador típico (AT). las interrupciones del ordenador anterior son como se muestra a continuación: Nota: Los usuarios de Linux pueden consultar las interrupciones utilizadas en el sistema en el fichero /proc/interrupts mediante el comando cat /proc/interrupts. Generalmente en C:\Archivos de programa\Archivos comunes\Microsoft Shared\MSINFO IRQ Utilización 0 Cronómetro del sistema 1 Teclado estándar de 101/102 teclas o MS Natural Keyboard 2 Controlador programable de interrupciones 3 Puerto de infrarrojos rápidos ThinkPad de IBM 4 Puerto de comunicaciones (COM1) 5 Crystal SoundFusion(tm) Game Device 6 Controlador estándar de disquetes 7 Puerto de impresora (LPT1) 8 Sistema CMOS/reloj en tiempo real 9 (libre) 10 (libre) 11 Marcador IRQ para manejo de PCI 11 Controlador universal de host Intel 82371AB/EB PCI a USB 11 Crystal SoundFusion(tm) PCI Audio Accelerator 11 Lucent Win Modem 11 Intel(R) PRO/100 SP Mobile Combo Adapter 11 Texas Instruments PCI-1450 CardBus Controller 11 RAGE MOBILITY-M AGP (English) 12 Puerto de mouse compatible con PS/2 13 Procesador de datos numéricos 14 Controlador estándar para disco duro Bus Mastering IDE 15 Controlador estándar para disco duro Bus Mastering IDE Linux Bajo Linux.

8 de las cuales conectan con las líneas IRQ0-IRQ7. A continuación se atienden las IRQ3 a IRQ7 de PIC#1. la prioridad más alta se asigna a las interrupciones no enmascarables (NMI ). Originariamente era un 8259A. A continuación se atienden IRQ0 e IRQ1.11: 12: 14: 15: NMI: LOC: ERR: MIS: 2508 PCI1450 (#2). 3 IRQ8 7 IRQ12 11 IRQ3 15 IRQ7 Como puede verse. La asignación a cada nivel es como sigue: Niv Niv Niv Niv Asign. Texas Instruments CS46XX XT-PIC PS/2 Mouse XT-PIC ide0 XT-PIC ide1 Controlador PIC Las peticiones hardware de interrupción del PC son manejadas por un chip. Nivel de prioridad El PIC dispone de 16 niveles de prioridad. Asign. aunque las interrupciones utilizables resultantes no fuesen de 16 como cabría suponer. activa la señal INTR que es recibida por el procesador. 74331 90666 50966 0 0 0 0 XT-PIC usb-uhci. el el el el 0 NMI 4 IRQ9 8 IRQ13 12 IRQ4 1 IRQ0 5 IRQ10 9 IRQ14 13 IRQ5 2 IRQ1 6 IRQ11 10 IRQ15 14 IRQ6 Asign. asignadas al cronómetro del sistema y al teclado (el cronómetro no puede ser interrumpido por nadie porque perdería la hora). Aparte de otras auxiliares. una entrada INTA ("Interrupt Acknowledge") y una salida INTR ("Interrupt Request"). ocho para el bus de datos (D0-D7). conocido como PIC#1 ("Programmable Interrupt Controller"). Texas Instruments PCI1450. Cuando el 8259A recibe una señal IRQ. que hereda la prioridad de IRQ2 de la que está colgado (en realidad no existe IRQ2). que puede manejar 8 peticiones (IRQ0/IRQ7). Físicamente. Después se atienden las peticiones IRQ8 a IRQ15 del controlador esclavo. por lo que en 1984 IBM añadió un segundo controlador PIC#2 en el modelo AT. Cuando este . pero pronto se hizo evidente que eran un número excesivamente corto. de forma que los de número más bajo se atienden antes que los de número más alto. que se explicarán más adelante. el 8259A es un chip de 28 patillas. Las peticiones de prioridad más baja son las del controlador estándar de disquetes (IRQ6) y las del puerto de impresora LPT1 (IRQ7). como tensión de alimentación y masa. numerados del 0 al 15. Asign. por las razones apuntadas en el párrafo anterior. que podía manejar las peticiones IRQ8 a IRQ15.

responde con un INTA. Cuando se detecta una petición en una de estas líneas. esta selección se realiza vía software en los momentos iniciales. uno de los cuales es el utilizado por los diseñadores del PC. como se ha señalado. y que el PIC es una parte fundamental del mecanismo de excepciones hardware. También aquí cada bit corresponde a una línea IRQ. que es identificado a su vez por el procesador como un número de interrupción. Puntos importantes a destacar es que. para este servicio específico. o puede aceptar otra interrupción. Cada bit de este registro controla el estado de una línea IRQ. es la única forma de enmascarar las interrupciones no enmascarables). . El 8259A tiene distintos modos de operación. o Después de enviar una solicitud de interrupción y el procesador contesta que está listo para atenderla. mientras que PIC#2 lo hace en 0A0h-0A1h. Patillas del procesador Otro elemento que interviene en el mecanismo de excepciones son ciertas patillas del procesador. También se decide en este momento que número de interrupción deberá devolver el PIC en respuesta a las señales recibidas en las líneas IRQ. Cada bit indica si ya existe una interrupción activada en la línea correspondiente. debe enviar un número de interrupción (número de vector). ISR e IMR. a continuación se muestra un resumen de ellas: o Puesto que existen muchos dispositivos que pueden solicitar interrupciones. se trata de un dispositivo programable. Registro de máscara de interrupciones IMR ("Interrupt Mask Register"). e indica si esta permitida un interrupción de ese nivel en ese momento. El PIC es un dispositivo complejo que realiza varias tareas. IRR. Registro de interrupciones activas ISR ("In Service Register"). que esta programación es realizada por el BIOS en la fase de inicio. Todos los miembros de la saga 8088 disponen de dos patillas. que en conjunto gobiernan las decisiones del dispositivo: Registro de solicitud de interrupción IRR ("Interrupt Request Register"). Cada PIC dispone de tres registros de 1 byte. PIC#1 responde a las direcciones 020h-021h. pone en el bus de datos un byte en el rango 0/256. Cuando esto sucede. Desde el punto de vista lógico. o Puede enmascarar de forma selectiva cualquiera de las 8 IRQ's que tiene conectadas (como se verá más adelante. el bit correspondiente del IRR es puesto a 1. cuando existen varias IRQ's simultáneas. o Mantiene un registro de que se está procesando una interrupción. indicando que la rutina de servicio precedente ha terminado. designadas INTR y NMI. no envía más peticiones del mismo dispositivo al procesador hasta que este le responde con una señal EOI ("End Of Interrupt"). es responsabilidad del PIC priorizarlas según el esquema indicado en el punto anterior.

salvo que en este caso se conoce el tipo de interrupción. el procesador genera una excepción. que es tratada como si fuese una interrupción software. que sirve para notificar al PIC que ha recibido la interrupción. y no se requiere ningún ciclo INTA. de forma que si se recibe una interrupción hardware mientras que se ejecuta una software. interrupciones software. En el caso de la división por cero el número asociado es cero. Este era el único tipo de excepción de procesador prevista en el 8088. Interrupciones software Los procesadores Intel de la gama x86 y compatibles. es usual citar como ejemplo el caso de una división por cero.Sirven respectivamente para atender las interrupciones enmascarables y no enmascarables (que se explicarán más adelante). en lenguaje ensamblador. Este tipo de interrupciones son de prioridad más alta que las de hardware (enmascarables y no enmascarables). mientras que las situadas en la zona de memoria convencional. que en MS-DOS es la llamada a los servicios del Sistema. Esta señal es recogida y procesada por el controlador de excepciones PIC antes de ser enviada al procesador. pero en los modelos . Excepciones del procesador Durante el funcionamiento del procesador pueden ocurrir circunstancias excepcionales. disponen de una instrucción INT que permite generar por software cualquiera de los 256 tipos de interrupción anteriormente descritos. y excepciones del procesador. aquellas posiciones de la IDT que señalan a posiciones dentro de la ROM-BIOS (por encima de la dirección F0000h) se refieren a interrupciones relacionadas con servicios de la BIOS. En estos casos. Por ejemplo. el procesador utiliza ciertas señales en algunas de sus patillas para generar un ciclo INTA ("Interrupt Acknowledge"). Este tipo de interrupciones son utilizadas tanto por el Sistema Operativo como por los programas de usuario que pueden instalar las suyas particulares (se ha señalado que algunas de las 255 posiciones de la tabla de vectores de interrupción están desocupadas). en el PC existen tres tipos de interrupciones: Interrupciones hardware. El proceso seguido es exactamente el mismo que si se recibe una interrupción hardware en la patilla INTR. Interrupciones hardware Ocurren cuando un dispositivo necesita atención del procesador y genera una señal eléctrica en la línea IRQ que tiene asignada. con la diferencia de que el número de interrupción asociado depende del tipo de excepción. según el tipo de interrupción sea enmascarable o no enmascarable. A su vez. lo que puede realizarse de dos formas. Tipos de interrupción Atendiendo a su origen. se refieren a interrupciones instaladas por el Sistema o los programas de aplicación. la instrucción INT 21 invoca la interrupción 33d (21h). Precisamente. esta última tiene prioridad.

Interrupciones software. 4. y el registro de estado FLAGS (lo que supone devolver las interrupciones enmascarables al estado inicial). la segunda es una petición para que el PIC coloque en el bus de datos un Byte con el número de interrupción. de forma que el procesador pueda localizar el servicio solicitado. cuando se recibe la señal. Para ello se envía una señal a la patilla INTR. Interrupciones hardware no enmascarables. Excepciones del procesador. el procesador puede aceptar o ignorar (enmascarar) la señal de interrupción. Retorno de interrupción ("Interrupt Return"). El valor recibido (0-255) es multiplicado por 4 para calcular la dirección del vector correspondiente en la tabla de vectores de interrupción. 2. Recupera de la pila el contador de programa PC. el segmento de código CS (lo que supone devolver el programa al punto de ejecución original). La penúltima secuencia de la rutina de servicio es enviar una señal de que la interrupción ha terminado (EOI) para que el PIC pueda seguir enviando interrupciones. La primera señal es simplemente un aviso. bajo control del software. el procesador salva en la pila los valores del registro de estado. para que la interrupción no pueda ser molestada con una nueva interrupción enmascarable hasta que sea específicamente permitido. y el procesador la atiende o la ignora en función del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o deshabilitado. lo que se realiza mediante un desplazamiento binario de dos posiciones a la izquierda.1 Enmascarable Interrupción enmascarable significa que. y finalmente ejecuta el servicio. En el primer caso. Para facilitar el manejo de interrupciones. el 8088 y sucesores disponen de algunas instrucciones específicas: IRET. el procesador concluye la instrucción que estuviese en proceso y a continuación responde con una combinación de señales en algunas de sus patillas componiendo una sucesión de dos señales INTA ("Interrupt Acknowledge"). . del contador de programa (PC) y del segmento de código (CS). El orden en que se atienden es el siguiente: 1. A continuación debe restaurar los registros a su estado inicial (existente antes de que se produjera la interrupción).sucesivos de la saga x86 y Pentium esta posibilidad fue ampliándose paulatinamente. de forma que si ocurren dos de forma simultánea es atendida la de prioridad más alta. A continuación.4. 3. Orden de prioridad Las interrupciones tienen un orden de prioridad. deshabilita el bit IF del registro de estado. 2. Interrupciones hardware enmascarables.

el DMAC ("DMA Controller"). por ejemplo a nivel del PIC. Pone a cero el registro IF. El mecanismo utilizado se conoce como acceso directo a memoria DMA ("Direct Memory Access").CLI. y el procesador le asigna un 2 como número de excepción. el disco o una tarjeta de sonido.2 No Enmascarable Interrupción no enmascarable significa que la interrupción no puede ser deshabilitada por software. o Un procesador específico. Estos elementos son: o Ciertas líneas dedicadas en el bus de control. STI. Nota: La idea importante a resaltar aquí. Pone a 1 el registro IF habilitando las interrupciones enmascarables. e igual que ocurre con las excepciones.4. Una vez ejecutado el servicio. Es la instrucción opuesta ("Set Interrupt"). Se reservan para casos en que es crítica la respuesta.5 Acceso Directo a Memoria Puesto que la mayoría de datos que maneja el ordenador están antes o después en la memoria RAM. es que el PIC asocia un número entre 0 y 255 a cada petición. Cuando el procesador recibe una de estas instrucciones no se genera ningún ciclo de reconocimiento de la instrucción (INTA). que permite que puedan realizarse estos intercambios sin apenas intervención del procesador. los diseñadores del PC dispusieron una arquitectura que permitiese este tipo de intercambios. Limpiar la interrupción ("Clear Interrupt"). que se conoce como número de interrupción. Este número. Líneas de control . Ya desde su concepción inicial. Por ejemplo. En general este intercambio es conducido por el procesador. Este tipo de interrupciones ocurren cuando se recibe una señal en la patilla NMI ("Nonmaskable Interrupt") del procesador. o Pequeñas zonas auxiliares de memoria. 2. Además son de prioridad más alta que las enmascarables. Nota: La única forma de enmascarar estas interrupciones es a través de circuitos externos al procesador. 2. el sistema DMA dispone de algunos elementos de hardware auxiliares que lo convierten en un subsistema autónomo dentro del bus externo. pero en determinados casos. no debe ser confundido con el número de línea IRQ's que realizó la solicitud. la memoria puede realizar intercambios directamente con los periféricos sin intervención del procesador. deshabilitando las interrupciones enmascarables. los intercambios entre esta y el resto de elementos son muy frecuentes. deben dejarse las cosas como estaban para que el programa original pueda continuar su ejecución. lo que conduce a un incremento del rendimiento del sistema. por ejemplo que se detecte un error de paridad en la memoria. El número de interrupción sirve para identificar el servicio mediante la tabla IDT. conocidas como Registros de Página.

Can al Uso En los primitivos PCs estaba dedicado al 0 refrescamiento de memoria. Pueden ser utilizados por cualquier dispositivo que los necesite (suponiendo naturalmente que esté diseñado para soportar este modo de operación). de forma que el DMA es un subsistema autónomo dentro del mecanismo general de intercambio de datos y control del bus. En los XT estaba integrado en un chip 8237A que proporcionaba 4 canales de 8 bits (puede mover solo 1 Byte cada vez). porque el segundo controlador se colgó en "Cascada" de la línea 4 del primero. • AEN ("Access Enabled"). pero hay algunos cuya asignación es estándar. que permite realizar estos intercambios sin apenas intervención del procesador. precisamente las que gobiernan los intercambios con memoria y puertos (MEMR. MEMW. • MEMR ("Memory Read").El bus de control tiene líneas específicas para este tipo de intercambios. • MEMW ("Memory Write") Cuando se activa. Controlador DMA El mecanismo de acceso directo a memoria está controlado por un chip específico. el DMAC ("DMA Controller"). • Líneas DACK1 a DACK3 ("DMA acknowledge"). Pueden mover 2 Bytes (de posiciones contiguas) cada vez. el resultado no fue disponer de 8 canales. Utilizadas por los dispositivos que necesitan efectuar un acceso directo a memoria. 1 Libre: Generalmente (codificadores de audio) a dispositivos SDLC 2 Controlador de disquete 3 Controlador puerto de impresora ECP 4 Libre en los XT. esta señal indica a la memoria conectada al bus que escriba los datos en el bus de datos. Son las siguientes: • Líneas DRQ1 a DRQ3 ("DMA request"). Ocupado en los AT (segundo controlador DMAC) 5 Libre (AT) . el controlador DMA tiene control sobre ciertas líneas del bus. Posteriormente en los AT se instalaron dos de estos integrados y las correspondientes líneas auxiliares en el bus de control. Se utilizan para acusar recibo de la petición DRQ correspondiente. IOW). Los canales del segundo DMAC está asignado a las direcciones 0C0-0DFh y son de 16 bits. sus direcciones de puerto son 000-00Fh. Cuando esta señal está alta. Cada canal tiene asignada una prioridad para el caso de recibirse simultáneamente varias peticiones (los números más bajos tienen prioridad más alta). En contra de lo que podría parecer. Cada sistema los asigna de forma arbitraria. IOR. • Conexiones del controlador DMA con las patillas 30 y 31 de la CPU. Cuando se activa. indica a la memoria que almacene los datos situados en el bus de datos. En los sistemas actuales está libre.

activa la línea DRQx. y por supuesto.6 Libre (AT) 7 Libre (AT) Funcionamiento El mecanismo de acceso directo a memoria DMA es bastante complejo en sus detalles. El movimiento se hace a ráfagas. Para esto dispone de dos registros para cada línea. Al recibir la señal. deja . termina la instrucción en curso. Contador ("Write starting word count") • Lectura: Dirección actual de lectura ("Read current address"). A continuación se intentará mostrar una visión general del proceso. Cuando un dispositivo. 2. avisando así al controlador DMAC de la petición. Cuando este último llega a cero. o entre memoria y un puerto. y cada transferencia se inicia con una interrupción que obliga al procesador a suspender su tarea para permitir un nuevo intercambio. conocer el volumen de datos a transferir (la más simple es de 1 byte) y la dirección de inicio del buffer de memoria involucrado (del que se leerán los datos o donde se escribirán). Cuando el procesador recibe la petición HRQ. el proceso es como sigue: 1. A continuación solicita a la UCP que le ceda el control del bus enviándole una señal HRQ (“Hold Request”). el movimiento de grandes volúmenes de datos entre memoria y un dispositivo requiere cierta intervención del procesador. y la señal EOP se refiere forzosamente al canal activo en ese momento. solicita una transferencia. pero no entre dos puertos o entre dos posiciones de memoria. Cada transferencia DMA requiere cierta preparación previa. y que no existe ninguna petición en otra línea DRQ de prioridad más alta. el controlador DMAC comprueba que dicha línea está programada y activada. Aunque existen varios canales. Contador ("Read remaining word count") Después de cada transferencia (de 1 byte) el registro de direcciones del DMAC es incrementado en una unidad. la transferencia ha concluido. Según se refieran a operaciones de lectura (memoria dispositivo) o escritura (dispositivo memoria) reciben distintos nombres porque su significado difiere: • Escritura: Dirección de inicio ("Write starting address"). y una vez que está en condiciones de ceder el control del bus. El sistema DMA tiene distintas formas de operación. 3. pero en el caso más simple. y el contador es disminuido en una unidad. el contador y el registro de direcciones. A partir de este momento el controlador no puede realizar otra transferencia hasta que sea programado de nuevo por la UCP. que tiene asignado el canal x DMA. Se empezará señalando que el DMA permite mover datos entre un puerto y memoria. el DMAC pone en nivel alto la línea T/C ("Terminal Count") en el bus de control y procede a enviar al procesador la señal EOP ("End of Process"). el sistema de prioridades garantiza que solo uno de ellos puede estar en funcionamiento cada vez. de forma que sus funcionamientos no pueden solaparse.

monografias. en el que el procesador no coloca las patillas correspondientes en positivo ni en negativo.org/Otros/diccionario-us-es/diccionario-us-es-0.shtml http://es. MEMW. Es un estado denominado tri-state.mx/index.1.asp#top http://www.com/LatAm/tools/umg/umg4.info/termino/4116.php http://www.com/trabajos28/operaciones-bus/operaciones-bus.tldp. 4.red.kingston.php . A continuación envía una señal HLDA (“Hold Acknowledge”) al DMAC por la patilla correspondiente. http://www."flotar" las señales relacionadas con su gobierno (MEMR.html http://www.mastermagazine.com. IOR. indicándole que debe tomar el control.6/Z. IOW).

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->