Buses de un PC: Buses Procesador−Memoria Sistema Resumen: Las distintas unidades funcionales de un computador necesitan comunicarse. Por ello, deben existir líneas, que compondrán el bus, para interconectar estos módulos. Por esta razón es por la que decidimos elegir los buses del ordenador como tema de estudio. Existen dispositivos mucho más conocidos que los buses del sistema, pero incluso la tarjeta gráfica más potente del mercado necesitará comunicar los datos con el sistema, y no sólo eso, porque además serán las características del bus las que marcarán el rendimiento de dicha tarjeta. En este documento se realiza una descripción genérica de los buses de comunicación del computador. Para comenzar, establecemos una definición detallada de los mismos y su utilización. Seguidamente describimos las diferentes especificaciones que debe cumplir, su jerarquía (clasificación en sus diferentes tipos), la estructura propia del bus, sus características más importantes y además sus políticas de arbitraje correspondientes. Finalmente, para comprender mejor el funcionamiento del bus, explicaremos y nos centraremos en el funcionamiento de dos tipos de buses, como son el bus serie USB y el bus paralelo PCI que están ampliamente extendidos en la actualidad. INDICE nº página 1.− INTRODUCCIÓN 3 2.− GENERALIDADES 3 2.1− BUSES NORMALIZADOS 4 2.2− JERARQUÍA DE BUSES 4 2.3− ESTRUCTURA DEL BUS 7 2.4− CARACTERÍSTICAS DE LOS BUSES 8 2.5− ARBITRAJE 10 3.− BUSES PARALELO: EL CASO DEL PCI 12 4.− BUSES SERIE: EL CASO DEL USB 17 5.− CONCLUSIONES 20 6.− REFERENCIAS 2 7.−ÍNDICE DE FIGURAS 2 1. INTRODUCCIÓN 1

Las distintas unidades funcionales de un computador necesitan comunicarse. Deben existir, por lo tanto, líneas para interconectar estos módulos. El bus es el elemento fundamental de interconexión en la arquitectura de von Neumann y el encargado de comunicar estos módulos. Es un canal de comunicación compartido que utiliza un conjunto de cables para conectar múltiples subsistemas. Cada cable o línea transmite un único bit de información en un determinado momento. Los buses por tanto son el elemento permite transferir toda la información, desde las operaciones más sencillas de la UCP, así como toda transferencia de datos entre los distintos dispositivos conectados al sistema central. Memoria, tarjetas gráficas, teclados, etc. y en definitiva cualquier periférico o dispositivo del ordenador se comunica a través de este elemento. Esta es la razón por la que decidimos elegir los buses del ordenador como tema de estudio. Existen dispositivos mucho más conocidos que los buses del sistema, pero incluso la tarjeta gráfica más potente del mercado necesitará comunicar los datos con el sistema, y no sólo eso, porqué además serán las características del bus las que marcarán el rendimiento de dicha tarjeta. Por todo ello realizaremos una explicación general de la estructura de los buses. Así como indicaremos las especificaciones necesarias para que un bus este normalizado, y una clasificación jerárquica de los mismos. También veremos una visión en conjunto de las características que definen un bus y que permiten distinguir fácilmente unos de otros (la anchura del bus o número de bits o líneas de direcciones y datos, la temporización o método de sincronización, etc.). El arbitraje o método de obtención de permiso para acceder al medio será el último punto que trataremos en general de los buses. Ante la imposibilidad de realizar una exposición pormenorizada de todos y cada uno de los bus existentes para PC, trataremos de resumir y mostrar a modo de ejemplo, las particularidades de dos buses: el USB y el PCI. 2. GENERALIDADES El bus es el elemento más corriente de comunicación en los computadores y consta de un camino que permite comunicar selectivamente un número de componentes o dispositivos, de acuerdo a unas ciertas reglas o normas de conexión. Desempeña por tanto las tareas de enlace y de conmutador, puesto que permite, en cada momento, seleccionar los dispositivos que se comunican a través suyo. En las transferencias de información que se realizan en los buses, hay como mínimo dos agentes involucrados: el que origina la transferencia, que denominaremos maestro de la transferencia y el que responde a la misma, que denominaremos esclavo de la transferencia. No todos los elementos conectados a un bus pueden actuar como a estos de la transferencia; se denominan maestros potenciales aquellos elementos que sí tienen esta capacidad. La operación básica del bus se denomina ciclo de bus. Un ciclo permite realizar una transferencia elemental de un dato entre dos dispositivos. En esta transferencia, la información se lleva de un elemento que se denomina fuente a otro que se denomina destino. Los buses modernos permiten agrupar varias transferencias en una sola operación, que denominaremos transacción, estas pueden tener los mismos o distintos destinos, o incluso un mismo elemento puede actuar como fuente y como destino en distintas transferencias de una misma transacción. 2.1. BUSES NORMALIZADOS Un bus debe cumplir las siguientes especificaciones: Nivel mecánico

2

En el nivel mecánico deben definirse aspectos tales como el tipo de soporte, el número de hilos del bus, el tipo de conector, etc. Por ejemplo, en los buses para la conexión de placas impresas, hay que definir, entre otras cosas, la altura de las placas, los conectores y las posiciones de éstos, para garantizar la compatibilidad de las distintas placas. Nivel eléctrico El nivel eléctrico (u óptico, en el caso de emplear como soporte la fibra óptica), debe especificar el circuito equivalente de los dispositivos que se conectan a las líneas del bus, tanto de los emisores como de los receptores. También debe especificar las tensiones y corrientes utilizadas para establecer el valor de las señales. En este nivel, debe quedar definida la forma en la que los distintos dispositivos deben conectarse eléctricamente. Nivel lógico Este nivel define estáticamente todas las líneas del bus, estableciendo las equivalencias entre los valores eléctricos de las señales y sus valores lógicos. Por ejemplo, se definirá que los hilos 0−7 su nivel alto (5V) equivale a un 1 lógico y los hilos 8−15 su nivel activo es a nivel bajo (0V). Nivel de temporización básica En este nivel se establecen los cronogramas para la realización de la operación más elemental del bus, esto es, de un ciclo. Nivel de transferencia elemental En este nivel se establece el procedimiento empleado para realizar una transferencia de un dato por el bus. En el caso de un bus de ciclo completo, este nivel coincide con el anterior puesto que la temporización básica establece todas las condiciones necesarias para transferir un dato. Sin embargo, en el caso de un bus de ciclo partido, se especifican las ranuras que forman cada tipo de ciclo o transferencia. Nivel de transferencia de bloque En algunos buses, la operación básica esta formada por una serie de transferencias elementales, que tiene por objetivo el transferir un bloque de información con entidad propia. En este nivel, deberá definirse el protocolo de comunicación empleado para realizar esta transferencia de bloque. Se definirán aspectos tales como cabeceras, codificación de los datos para detección de errores, procedimientos de recuperación para el caso de error, identificación del receptor, etc. [1] [3] 2.2. JERARQUÍA DE BUSES ¿Por qué es necesaria la jerarquía de buses? Cuando queremos conectar un gran número de dispositivos nos encontramos con una serie de problemas fundamentales: • La diferencia de velocidad de los dispositivos afecta negativamente al rendimiento global, ya que mientras los dispositivos lentos realizan una única transferencia, otro dispositivo más rápido podría haber realizado muchas más. 3

• Los buses pueden actuar de cuello de botella si la demanda de la transferencia es mayor que la capacidad del bus, los dispositivos deberán esperar mucho tiempo para poder transmitir. • Existe un mayor retardo de propagación, dado que el bus ha de tener mayor longitud para poder soporta implementar un mayor número de dispositivos Ventajas de las jerarquías de buses: • El bus local entre el procesador y la caché aísla el tráfico de E/S del procesador. Se puede transferir información entre la memoria y la E/S sin interrumpir la actividad del procesador. • El bus de expansión reduce el tráfico en el bus del sistema. La transferencia entre caché y memoria principal se pueden realizar de forma más eficiente. ♦ Se pueden realizar una transferencia de memoria caché a memoria principal al mismo tiempo que el interfaz recibe datos desde un dispositivo de E/S ♦ El procesador+caché o el coprocesador tienen la misma prioridad en el acceso al bus que todos los dispositivos conectados al bus de expansión de forma conjunta. • Se elimina el problema de la incompatibilidad. ♦ El bus local y del sistema suelen ser propietarios (no estándar) y están optimizados para cada arquitectura particular. ♦ Los buses de expansión son buses estándares o abiertos (ISA, EISA, PCI, VME, etc.). Esto permite tener características y especificaciones perfectamente definidas, con conectores estándar, podemos utilizar los mismos controladores y periféricos en otro computador que disponga del mismo bus estándar. [4] Figura: 1 Jerarquía de los buses. Buses de tipo 0 Los buses de tipo 0 son los buses internos de las pastillas. La utilización de buses internos de gran ancho de palabra unido a la incorporación de memoria caché interna facilita que se puedan conseguir microprocesadores de grandes prestaciones. Buses de tipo 1 El bus de tipo 1 es el bus de interconexión de componentes de una placa o circuito impreso. Buses de tipo 2 Estos buses sirven para interconectar las distintas placas de un modulo, formando lo que se llama el panel posterior. La práctica totalidad de los computadores actuales se componen de un solo módulo, por lo que no existe bus de nivel 3 y este bus se convierte en el bus del sistema. Buses de tipo 3 El bus de tipo 3 o bus del sistema permite interconectar diversos módulos del computador. Hoy en día hay muy pocos sistemas que contengan varios módulos. Por lo que generalmente coinciden los buses de nivel 2 y 4

3. La gran diferencia entre los tipos 2 y 3 es la distancia que debe tener el bus, que puede llegar a los 10m en el tipo 3. Ello obliga a tratar este bus como una línea de transmisión. Además, es muy frecuente que el bus de tipo 3 exija unos repetidores o buffers, para pasar de un panel posterior a otro. Buses de tipo 4 Los buses de tipo 4 lo forman los buses paralelos para conexión de periféricos. En realidad se pueden considerar cuatro situaciones, que a veces se pueden dar simultáneamente en el mismo computador: En la primera, los controladores de los periféricos se conectan directamente al bus del sistema (bus tipo 2 ó 3). En la segunda se dispone de un bus especial para la E/S, como es un canal 370 de IBM, como es el Unibus en el caso de la arquitectura VAX, o como son los buses PCI e EISA en un computador personal. La tercera consiste en diseñar un bus reducido, derivado del bus del sistema, que permita la conexión en paralelo de una serie de periféricos específicos. La cuarta consiste en emplear un bus paralelo de conexión de periféricos, de acuerdo con una norma preestablecida. La diferencia con el caso anterior es que ahora no se trata de una versión reducida del bus del sistema, sino de una configuración que puede ser muy distinta. El ejemplo clásico es el puerto paralelo o Centronics, previsto para la conexión de impresoras, el bus IEEE−488, previsto para la interconexión de instrumentos de laboratorio a computadores o los buses QIC, SCSI e IPI, para conexión de discos. Buses de tipo 5 Los buses serie suelen constituir el tipo más elemental del espectro de las comunicaciones de un sistema informático. Se emplean para cubrir las mayores distancias. El bus serie puede ser simple o doble. El simple puede permitir la transmisión en un solo sentido o en ambos sentidos de forma alternativa (semi−duplex). El doble permite la transmisión en los dos sentidos simultáneamente (full−duplex). Un ejemplo de bus serie es el bus USB, que tratamos más adelante. [1] [2] 2.3. ESTRUCTURA DEL BUS Un bus está constituido por muchas líneas, por ejemplo el bus del sistema está constituido por entre 50 y 100 líneas. A cada línea se le asigna una función determinada. Las líneas del bus se pueden clasificar en tres grupos funcionales: líneas de datos, de direcciones, y de control. " Las líneas de datos del bus proporcionan el camino para transmitir datos entre los módulos del sistema. El bus de datos consta de 8, 16, 32 líneas distintas, cuyo número se conoce como anchura del bus de datos. Este número de líneas determina cuantos bits se pueden transmitir al mismo tiempo. La anchura del bus es un factor clave a la hora de determinar las prestaciones del sistema. " Las líneas de dirección se utilizan para direccionar la fuente o el destino de los datos situados en el bus de datos. La anchura del bus de direcciones determina la cantidad máxima de memoria direccionable en el sistema. 5

" Las líneas de control se emplean para gestionar el acceso y el uso de las líneas de datos y dirección, señalizando peticiones y reconocimientos e indicando que tipo de información pasa por las líneas de datos. Figura: 2 Estructura de Bus típica. Algunas líneas de control típicas son: • Escritura en memoria (Memory Write): hace que el dato del bus se escriba en la posición direccionada. • Lectura de memoria (Memory Read): hace que el dato de la posición direccionada se sitúe en el bus. • Escritura de E/S (I/O Write): hace que el dato del bus se transfiera a través del puerto de E/S direccionado. • Lectura de E/S (I/O Read): hace que dato del puerto de E/S direccionado se sitúe en bus. • Transferencia reconocida (Transfer ACK): indica que el dato se ha aceptado o se ha situado en bus. • Petición de bus (Bus Request): Indica que un modulo necesita disponer del control del bus. • Cesión de bus (Bus Grant): indica que se cede el control del bus a un módulo que lo había solicitado. • Petición de interrupción (Interrupt Request): indica si hay una interrupción pendiente. • Interrupción reconocida (Interrupt ACK): señala que la interrupción pendiente se ha aceptado. • Reloj (Clock): se utiliza para sincronizar las operaciones. • Inicio (Reset): pone los módulos conectados en su estado inicial 2.4 CARACTERÍSTICAS DE LOS BUSES Paralelismo del bus Un bus puede ser paralelo, multiplexado o serie. Normalmente, el bus paralelo tiene un ancho de palabra que coincide con el ancho de la información a transmitir. El bus multiplexado se originó como consecuencia de tener que ahorrar conexiones (patas) debido a la necesidad de una alta integración de los componentes del ordenador. Un ejemplo de este uso es comunicar las direcciones de memoria entre el microprocesador y la memoria (en su forma física de chips). Consiste en utilizar los mismos hilos para enviar, en momentos distintos, informaciones distintas, permitiendo con el uso de señales adicionales, identificar la información o tipo de información que circula por el bus en cada momento. Generalmente el resto del sistema exige que el bus no esté multiplexado. En estos casos en los extremos del bus se encontrarán multiplexores para realizar la multiplexación / demultiplexación. El bus serie esta formado únicamente por un par de hilos, por los que circula la información bit a bit. Durante el envío es necesario dividir la palabra en bits así como realizar un agrupamiento de estos bits para formar una palabra en la recepción. Función El bus puede ser de carácter general o específico. Los buses específicos, dedicados cada uno a una función permiten un diseño sencillo, y que la capacidad de transferencia total sea mayor. Los buses de carácter general reducen el número de hilos que llegan a la UCP, por lo que es especialmente útil para microprocesadores. El esquema formado por estos buses es comparativamente más sencillo, aunque cada bus individualmente sean más complejos que los de carácter global. 6

Ciclo de Funcionamiento Bus de ciclo completo En un bus de estas características todas las fases a realizar se efectúan una detrás de otra, sin ningún espacio entre ellas. Normalmente se utiliza en sistemas sencillos, en especial con un único dispositivo que actúe como maestro. Bus de ciclo partido o de paquetes El tiempo de ciclo partido se divide en una serie de ranuras, cada una de las cuales permite enviar un mensaje. Estas ranuras pueden tener duración fija y predefinida, y en caso de utilizarse una señal de reloj; es síncrona. Este bus es más rápido que el anterior a costa de complicar los dispositivos que lo integran, por tanto se suele emplear en sistemas multiprocesador. Algunas consideraciones adicionales sobre el esquema de este último tipo: • En caso de existir múltiples peticionarios se debe almacenar la identificación de éste. • Debe disponer de mecanismos de control a la memoria, evitando accesos múltiples. • Se diseñará de forma que se eviten colisiones, es decir que dos dispositivos puedan acceder a una ranura simultáneamente. [1] [2] Transferencias síncronas y asíncronas

Transferencia en ciclo completo Figura: 3 Transferencia en ciclo completa. En este caso de forma resumida podemos decir que: • Lectura síncrona. El maestro pone en el bus la dirección deseada, y supone que el esclavo, a su vez, pone el dato en el bus en el tiempo T, momento en el que el maestro lo toma. • Escritura síncrona. El maestro pone en el bus la dirección y el dato, y supone que el esclavo toma esta información antes de cierto tiempo T.

7

• Lectura asíncrona. El maestro pone en el bus la dirección deseada, y se queda esperando hasta que el esclavo conteste, confirmando que ha puesto el dato en el bus, o bien hasta que la espera sobrepase determinado tiempo, en cuyo caso se genera una señal de error. • Escritura asíncrona. El maestro pone en el bus la dirección y el dato, y se queda esperando que el esclavo confirme que ha tomado esta información. Si la espera sobrepasa un cierto intervalo, el maestro genera un error. [4] Transferencia en ciclo partido Muy similar a la operación de ciclo completo tan sólo está dividida en fase de inicio de la transferencia y fase de fin de transferencia, ocupando cada una de ellas una ranura. La transferencia la inicia un maestro, empleando una de las ranuras del bus, y la finaliza el esclavo, empleando otra ranura, por lo que los esclavos deben tener la capacidad de solicitar y emplear ranuras del bus, para poder finalizar adecuadamente las transferencias. Como ya hemos visto antes si existen varios maestros potenciales, a la solicitud enviada por el bus deberá incluir la identificación del maestro, de forma que el esclavo pueda contestar adecuadamente. • Lectura síncrona. Esta lectura se compone de dos ranuras. En la primera, el maestro envía la orden de lectura, así como la dirección deseada. Un cierto tiempo después, cuando dispone del dato pedido, el esclavo solicita otra ranura, para enviar el dato. Después de x tiempo de espera sin contestación se genera una señal de error. • Escritura asíncrona. En una única ranura el maestro envía el dato y la dirección. • Lectura asíncrona. La lectura asíncrona puede ser igual a la síncrona anterior, en algunos casos se utiliza una ranura adicional para comprobar que la dirección es correcta o se ha generado un error. • Escritura Asíncrona. Se utiliza una ranura para que el maestro envíe la dirección y el dato, y una segunda ranura para que el esclavo confirme que ha realizado la operación de escritura. Figura: 4 Transferencia en ciclo partido. [4] 2.5 ARBITRAJE Protocolos de Arbitraje Es la política de asignación del bus en el caso de que varios dispositivos compartan su uso. Es similar a los protocolos de comunicaciones en redes de área local. La función de estos protocolos es garantizar el acceso al bus sin conflictos cuando existen varios dispositivos que pueden actuar como master. Existen dos tipos básicos: Arbitraje centralizado Cuando hay un master principal, denominado árbitro, que controla el acceso al bus. Lo realiza un módulo central de arbitraje. Figura: 5 Arbitraje Centralizado.

8

Ejemplo: • Un maestro que desea usar el bus activa la señal común de petición de bus si observa que el bus no está ocupado. • El árbitro activa la señal de bus ocupado. • El árbitro concede el bus al maestro 1. • Si este no lo necesita se la pasa al siguiente, y así sucesivamente hasta que llega al que solicitó el Bus. • Al terminarse se desactiva esta señal de petición de bus, lo que hace que el árbitro desactive la señal de concesión y la de bus ocupado. Ventajas: Sencillez: Podemos añadir nuevos maestros añadiéndolos a la cadena donde queramos. Desventajas: La prioridad es fija (daisy−chain), no es un criterio justo. La propagación de señales es lenta. Si un maestro falla, los de menor prioridad a este no tendrían acceso al bus, a no ser que queden puenteadas las señales correspondientes de petición de bus y concesión de bus (2 hilos) o sólo la de concesión (3 hilos). [6] Arbitraje distribuido En este arbitraje no existe un maestro que actúe de árbitro en la gestión de la prioridad, por lo que son los propios peticionarios quienes se ponen de acuerdo para decidir quién se queda con el servicio. Cada módulo tiene un árbitro y un número de arbitraje único. Cada línea de identificación tiene asignada una prioridad, de manera que si varios master activan sus líneas simultáneamente, gana el de mayor prioridad. Un master que quiera tomar el control del bus deberá activar su línea y comprobar el estado de las demás. El problema de este protocolo es que tenemos limitado el número de posibles master por el número de líneas de arbitraje que podamos utilizar. Empleado en MultiBUS II y FutureBUS +. [5] Figura: 6 Arbitraje distribuido. 3. BUS PARALELO PCI Son las siglas de Peripheral Component Interconnect ("Interconexión de Componentes Periféricos"). Se trata de un bus de ordenador estándar para conectar dispositivos periféricos directamente a su placa base. Es común en PCs, donde ha desplazado al ISA como bus estándar, pero también se emplea en otro tipo de ordenadores. Es el bus PCI actualmente es utilizado como bus de altas prestaciones en arquitecturas para ordenadores de sobremesa, o como bus de expansión de periféricos en arquitecturas para servidores. Es decir, permite varias configuraciones y usos diferentes. El bus PCI es un bus especial para la E/S considerado del tipo 4. Dicho bus 9

suele ir montado en la placa base. Estructura El bus PCI es un bus multiplexado que utiliza los mismos hilos para direcciones y para datos. Consta de 49 líneas de señales obligatorias. En las cuales se dividen en señales de sistema (reloj y reset), en señales de dirección y datos, donde hay 32 líneas multiplexadas y líneas para valida, señales de control de interfaz la cuales coordinan el envío y la recepción, señales de arbitraje, y señales de errores. Dichas señales se muestran en la siguiente tabla: Figura: 7 Ejemplo de PCI Terminal

Línea

Nº de líneas

Habilita

Descripción

CLK

1

Externo

Reloj de frecuencia 33 o 66 Mhz

RST#

1

Externo

32

Maestro/ Destino

C/BE#

4

Maestro/ Destino

PAR

1

Maestro/ Destino

FRAME#

1

Maestro

IRDY#

1

Maestro

TRDY# STOP# IDSEL DEYSEL# REQ# GNT#

1 1 1 1 1 1

Destino Destino Maestro Destino Externo Maestro

PERR#

1

Maestro/ Destino

SERR#

1

Todos

Datos y AD direcciones

Sistema

Control

Arbitraje

Error

Restablece el sistema y los dispositivos Líneas de dirección y datos multiplexados Indica que líneas transportan información Bit de paridad de dirección de datos Transferencia (AD y C/BE preparadas) Lectura: maestro acepta datos/Escritura: destino acepta datos Lectura: datos en AD/Es Detener transacción Dispositivo escuchando Solicitud de bus Bits concedido Se ha detectado un error de paridad en los datos Error crítico o error de paridad en la dirección

Figura: 8 Señales de Control PCI. Para el bus de 64 bit aparecen 51 señales opcionales: Terminal

Línea

Interrupciones INTx#

Nº de líneas

Habilita

Descripción

4

Externo

Solicitud de interrupción

10

SBO#

1

Maestro/Destino

Acceso a caché remoto

SDONE

1

Maestro/Destino

AD

32

Maestro/Destino

C/BE

4

Maestro/Destino

RFQ64

1

Maestro

ACK64

1

Destino

PAR64

1

Externo

TCK

1

Externo

TDI TDO

1 1

Externo Maestro

TMS

1

Externo

TRST#

1

Externo

LOCK

1

Maestro

Inicio de test Bloqueo del bus para realizar varias transacciones

M66EN

1

Extensión

Soporte de caché

Test

Control

Indica que el bus ha terminado de sondear la caché Ampliación de las líneas de datos y direcciones Ampliación de la selección de líneas Petición de extensión a 64 bits Aceptación de extensión a 64 bits Paridad de los 32 bits extras Reloj de test: sincronización de entrada y salida Entrada de test Salida de test Selector de modo de test

Figura: 9 Señales para PCI 64 bits. Características Dicho bus fue desarrollado por Intel en 1990 para superar las limitaciones del bus ISA estándar en la arquitectura de los computadores personales o PC. La temporización con la que esta implementada el bus es síncrona. Otra característica del PCI es la simplicidad de uso. El Plug and Play permite la configuración automática de los periféricos, sin que el usuario necesite asignar "a mano" la IRQ, el DMA y los puertos de entrada/salida. Además permite que varios periféricos compartan la misma interrupción, aliviando de esta forma uno de los mayores problemas que tenía el PC. . La longitud máxima que puede alcanzar es de 0,50m. PCI Nombre

Ancho ( bits)

Velocidad (Mhz)

PCI PCI−x2 PCI 64−bit PCI−x2 64−bit

32 32 64 64

33,33 66,66 33,33 66,66

Ancho de Banda (MB/seg) 133,33 266,66 266,66 533,33

Figura: 10 Velocidades de Transferercia de datos PCI. 11

Los ciclos del bus tienen siempre una fase inicial en la que un maestro adquiere acceso al bus. Seguidamente especifica el tipo de transacción o ciclo, de entre las siguientes alternativas: • Aceptación de interrupción. El dispositivo que funciona como controlador de interrupciones lee el identificador de interrupción del dispositivo que interrumpe. • Ciclo especial, utilizado por el maestro para enviar un mensaje a uno a o varios esclavos. • Lectura E/S. El maestro lee una o varias palabras del esclavo. • Escritura E/S. El maestro escribe una o varias palabras del esclavo. • Lectura de memoria. En sistemas con memoria caché se lee ½ línea de caché o menos. • En sistemas sin caché se leen una o dos palabras. • Lectura de línea de memoria. En sistemas con memoria caché se utilizara para leer de ½ línea de caché a 3 líneas. En sistemas sin caché se leen 3 a 12 palabras. • Lectura múltiple de memoria, En sistemas con memoria caché sirve para leer más de 3 líneas de caché. En sistemas sin caché se leen mas de 12 palabras. • Escritura en memoria. Se emplea para escribir en memoria. • Lectura de configuración. Sirve para que el maestro lea la configuración de un esclavo. • Escritura de configuración. Sirve para que el maestro establezca la configuración de un esclavo. • Escritura en memoria con invalidaciones. Este ciclo se utiliza para volcar líneas de la caché a la memoria principal. • Ciclo de doble dirección. Mediante este ciclo un maestro indica que está usando direcciones de 64 bits Arbitraje El arbitraje es centralizado y síncrono donde cada maestro tiene una línea de Grant y otra de Reset. El algoritmo de asignación puede ser FIFO o cíclico. Figura: 11 Arbitro del bus PCI. Un posible modo de funcionamiento sería el siguiente • En algún momento anterior al ciclo de reloj 1, A activa sus señal REQ. El árbitro muestrea esta señal al comienzo del ciclo 1. • Durante el ciclo de reloj 1, B solicita el BUS. • Al mismo tiempo, el árbitro activa GNT−A para ceder el bus a A. • Al comienzo del ciclo 2, el maestro A muestrea su GNT−A, de lo cual deduce que es el siguiente a usar el BUS. Como IRDY, TRDY y FRAME están desactivados, activa FRAME y coloca la información de dirección en el bus de direcciones, y la orden correspondiente en las líneas C/BE. Además mantiene activa REQ−A, para realizar otra transferencia después de la actual. • eEl árbitro, al comienzo del ciclo 3 muestrea todas las GNT y decide ceder el BUS a B activando GNT−B y desactivando GNT−A. Pero B no puede usar el BUS hasta que no esté libre. 12

• fA desactiva FRAME para indicar que su última transferencia está en marcha. Pone los datos en el bus de datos y se lo indica mediante IRDY al destino. El dispositivo lee el dato al siguiente ciclo. • Al comienzo del ciclo 5, B encuentra IRDY y FRAME desactivados, toma el control activando FRAME y desactivando REQ−B [4] [6] Figura: 12 Cronograma de funcionamiento de PCI. 4. USB Introducción La falta de flexibilidad en la reconfiguración de todo computador, ha sido siempre el enemigo de todas las personas que sin conocer mucho de computación y hardware, desearían mantener actualizado su Computador. Sin embargo, no todas las arquitecturas son auto configurables. En estos momentos existe una tecnología para facilitar, por ejemplo la reconfiguración de hardware, expansibilidad e interconexión del equipo con otros periféricos, etc. Como ejemplo de bus de tipo 5 (serie) hablaremos sobre él. Este es el USB. Definición del bus serie universal Las siglas USB corresponden a Universal Serial Bus, Bus Serie Universal, por lo que como su nombre indica, se trata de un sistema de comunicación entre dispositivos electrónicos−informáticos que sólo transmite una unidad de información a la vez. USB VERSIÓN USB 1.1 USB 2.0

VELOCIDAD TRANSFERENCIA MAXIMA Nº DISPOSITIVOS (Mbit/seg) 1.5 (velocidad baja) 127 12 (velocidad media) 480 (velocidad alta) 127

Todo el sistema USB es inteligente, esto significa que una vez que se ha insertado un nuevo dispositivo al sistema, el bus automáticamente determina que recursos del host requiere, incluyendo controladores de software (drivers), ancho de banda necesario (el ancho de banda se refiere a la capacidad del canal de comunicaciones que requiere un dispositivo cualquiera para enviar sus datos. Mientras más información manipule el dispositivo, más ancho de banda necesitará, y a la inversa). El mismo proceso se da al remover un dispositivo del equipo, ya que el host automáticamente elimina todos los componentes asociados al mismo con el fin de disponer de los recursos otorgados en su momento para futuros dispositivos. Figura: 13 Velocidad de Transferencia USB. El bus USB 1.1 puede trabajar en dos modos, a baja velocidad (1,5 Mbps, para dispositivos como teclados, ratones, que no barajan grandes cantidades de información) y a alta velocidad (12 Mbps, para dispositivos como unidades de CDROM, altavoces, módems RTC e ISDN, etcétera) USB 2.0 llega 480 Mbps para dispositivos de alta velocidad conexiones de Internet de banda ancha más rápidas, cámaras para videoconferencias de mayor resolución, impresoras y escáneres de la siguiente generación y unidades de almacenamiento externo de alta velocidad.. 13

Ahora, es conveniente resaltar que todos los dispositivos deben seguir reglas de comportamiento básicas, estandarizadas. Por tanto, todos los dispositivos se configuran de la misma forma y por el mismo driver, y es mucho más fácil gestionar los recursos que proveen; sin embargo, esto no significa que todos los dispositivos son iguales, sino, que todos tienen un sistema de configuración idéntica.

Figura: 14 Diferentes tipos de conexiones USB. Host USB A diferencia de los dispositivos y los hubs, existe tan solo un host dentro del sistema USB, que como ya dijimos es el computador mismo, particularmente una porción del mismo denominado Controlador USB del Host. Este tiene la misión de hacer de interfaz entre el computador mismo y los diferentes dispositivos. Existen algunas particularidades respecto a este controlador. Su implementación es una combinación de hardware y software específico para éste, es decir Firmware. Puede proveer de uno o dos puntos de conexión iniciales, denominados Hub raíz, a partir de los cuales y de forma ramificada irán conectándose los periféricos. Estructura del bus El cable USB está compuesto por solo cuatro cables: Vbus, D+, D− y GND. La información y los datos se mueven por los cables D+ y D−. Esto supone un gran ahorro, tanto de espacio como de material. Características del bus • Fácil expansión de periféricos en la PC, no debe hacer falta, más que conectar el periférico y emplearlo. • Bajo coste para aplicaciones que demandan velocidades por los 12 Mbps, particularmente aplicaciones multimediales: micrófonos, parlantes, teléfonos, etc. • No requiere IRQs, direcciones lógicas , o DMA ya que el controlador USB asigna direcciones únicas a los dispositivos • Soporte completo para transmisión en tiempo real de voz, audio, y video. • Flexibilidad de protocolos para transmisiones mixtas isocrónicas y asincrónicas (las cuales serán analizadas mas adelante, ya que es el eje de transmisión de USB). • La corriente máxima que el bus puede proporcionar es de 500 mA a 5 voltios de tensión. • Cómoda integración de dispositivos de tecnología y fabricantes diferentes. • Soporte para plataformas diversas de la línea de las PCs compatibles (algunos problemas para MACINTOSH) • Posibilitar la producción de nuevos dispositivos capaces de aprovechar sus ventajas. • Los detalles de consumo y administración eléctrica del dispositivo deben ser completamente transparentes para el usuario. • Los dispositivos pueden ser desconectados mientras el computador está en uso. • Deben poder compartir un mismo bus tanto dispositivos que requieren de unos pocos Kbps como los que requieren varios Mbps. • Más de 127 dispositivos diferentes pueden estar conectados simultáneamente y operando con una misma computadora sobre el cable. Aún así, existirán dispositivos específicos destinados a ampliar la cantidad de conectores, estos se denominan hubs. • El bus debe permitir periféricos multifunción, es decir aquellos que pueden realizar varias tareas a la vez, como lo son algunas impresoras que adicionalmente son fotocopiadoras y máquinas de fax. • Capacidad para manejo y recuperación de errores producidos por un dispositivo cualquiera. • Bajo coste. 14

• No se necesita un cable extra de alimentación − la mayoría de los periféricos USB obtienen la alimentación del bus USB, con lo cual no requieren un cable de alimentación adicional. • Más rápido − USB transfiere los datos 10 veces más rápido que los puertos serie tradicionales. • Cuenta con una especificación abierta, esto significa que cualquiera puede diseñar productos USB sin tener que pagar ninguna licencia. Transmisión del bus serie universal: Transmisión Asincrónica En este modelo cabe entender que ambos equipos poseen relojes funcionando a la misma frecuencia, por lo cual, cuando uno de ellos desea transmitir, prepara un grupo de bits encabezados por un BIT conocido como de arranque, un conjunto de 7 u 8 bits de datos, un BIT de paridad (para control de errores), y uno o dos bits de parada. El primero de los bits enviados anuncia al receptor la llegada de los siguientes, y la recepción de los mismos es efectuada. El receptor conocer perfectamente cuántos bits le llegarán, y da por recibida la información cuando verifica la llegada de los bits de parada. El esquema de los datos se muestra en la Figura siguiente.

Figura: 15 Cronograma Transmisión Asincrónica del bus USB. Se denomina transmisión asincrónica no porque no exista ningún tipo de sincronismo, sino porque el sincronismo no se halla en la señal misma, mas bien son los equipos mismos los que poseen relojes o clocks que posibilitan la sincronización. Transmisión Sincrónica En este tipo de transmisión, el sincronismo viaja en la misma señal, de esta forma la transmisión puede alcanzar distancias mucho mayores como también un mejor aprovechamiento de canal.

15

Figura: 16 Cronograma Transmisión Sincrónica del bus USB. Las transmisiones sincrónicas ocupan en la actualidad gran parte del mundo de las comunicaciones seriales, especialmente las que emplean el canal telefónico. Transmisión Isocrónica: La transmisión isocrónica ha sido desarrollada especialmente para satisfacer las demandas de la transmisión multimedial por redes, esto es integrar dentro de una misma transmisión, información de voz, video, texto e imágenes. La transferencia isocrónica provee comunicación continua y periódica entre el host y el dispositivo, con el fin de mover información relevante a un cierto momento. Transmisión Bulk: La transmisión Bulk, es una comunicación no periódica, explosiva típicamente empleada por transferencias que requieren usar todo el ancho de banda disponible o en su defecto son demoradas hasta que el ancho de banda completo esté disponible. Esto implica particularmente movimientos de imágenes o video, donde se requiere de gran potencial de transferencia en poco tiempo. Transmisiones de control: Es un tipo de comunicación exclusivamente entre el host y el dispositivo que permite configurar este último, sus paquetes de datos son de 8, 16, 32 o 64 bytes, dependiendo de la velocidad del dispositivo que se pretende controlar. Transmisión de Interrupción: Este tipo de comunicación está disponible para aquellos dispositivos que demandan mover muy poca información y poco frecuentemente. Tiene la particularidad de ser unidireccional, es decir del dispositivo al host, notificando de algún evento o solicitando alguna información. Arbitraje Tras su encendido, el dispositivo anfitrión −el PC− se comunica con todos los dispositivos conectados al bus USB, asignando una dirección única a cada uno de ellos (este proceso recibe el nombre de enumeración). 16

Además, el PC consulta qué modo de transferencia (enunciados anteriormente) desea emplear cada dispositivo. Para la temporización, el bus USB divide el ancho de banda en porciones, controladas por el PC. Cada porción mueve 1.500 bytes, y se inicia cada milisegundo. Ante todo, el PC asigna ancho de banda a los dispositivos que emplean transferencias isócronas y por interrupciones, garantizando el ancho de banda necesario. Las transferencias por bloques emplean el espacio restante, quedando en última prioridad. [10] 5. CONCLUSIONES La progresión que podemos apreciar es que actualmente los buses están en un proceso de transición de paralelo a serie. Esto es debido a: • Es más económico, al utilizar un número menor de líneas. • Al no disponer de distintas líneas muy próximos se evita el ruido cruzado. Es decir una posible modificación del envío de los datos debido a que la señal de una línea puede interferir sobre las líneas más próximas. • Elimina el Skewing; los datos de algunas de las líneas pueden llegar retrasadas respecto a las otras, debido a la geometría de las líneas, electricidad, ruido, etc. • Al aumentar el número de líneas para el envío de información se aumenta la intensidad, la potencia, y el calor desprendido será mayor. Además de todas estas ventajas la última generación de buses responde a las necesidades de un gran número de usuarios que requieren velocidad, versatilidad, facilidad de uso, etc. Por ejemplo el bus USB cuenta con las ventajas de ser serie, Plug and Play, Hot Plugging, una gran escalabilidad, etc. En conclusión el USB permite disminuir los costes de los dispositivos periféricos, al no requerir tarjetas adicionales ni transformadores de energía; simplificar su instalación al no tener que configurar cada dispositivo y utilizar un mismo conector para todos y acceder a mejores prestaciones dada la mayor velocidad del bus comparada con las puertas serial y paralela.USB sigue una especificación muy reservada, orientada a la comodidad de los usuarios y a la facilidad de manejo por personas sin formación técnica, así como la flexibilidad para ser adaptable a muchos usos. Con la aparición de este nuevo estándar de comunicación de periféricos, las computadoras tienen acceso a la instalación de periféricos de una forma segura y rápida. Debido a todas estas ventajas de los buses serie sobre los paralelo, la tendencia será desarrollar nuevos estándares serie.. Así por ejemplo PCI− Express, que es un nuevo desarrollo del bus PCI basándose en un sistema de comunicación serie mucho más rápid, está sustituyendo al actual PCI (paralelo). PCI−Express en 2006 es percibido como un estándar de las placas base para PCs, especialmente en tarjetas gráficas. 6. Referencias [1] Fundamentos de los computadores, Pedro De Miguel Anasagasti. Mc Graw Hill [2] Organización y arquitectura de computadores, William Stallings. Prentice Hall. [3] Organización de computadores, Carl Hamacher, Zvonko Vranesic, Safwat Zaky. Thomson 9º edición. [4] http://www.fdi.ucm.es/profesor/ehuedo/EC_IE_0506/Tema5.pdf [5] http://www.teleco.upct.es/docencia/material/4/arqcom/capitulo8.pdf 17

[6] http://dac.escet.urjc.es/docencia/FCII−Teleco/Tema2.pdf [7]http://www.agalisa.es/article268.html [8]https://dac.escet.urjc.es/asignaturas/AC/TEMA_I_BUSES.pdf [9]http://www2.ing.puc.cl/~dmery/arqui/Capitulo05.pdf [10]http://www.cienciasmisticas.com.ar/informatica/hardware/usb/index.php [11]PC Cuadernos Técnicos Arquitectura del PC Teoría y Práctica nº 177. Índice de Figuras nº página Figura: 1 Jerarquía de los buses 5 Figura: 2 Estructura de Bus típica 8 Figura: 3 Transferencia en ciclo completa 9 Figura: 4 Transferencia en ciclo partido 10 Figura: 5 Arbitraje Centralizado 11 Figura: 6 Arbitraje distribuido 12 Figura: 7 Señales de Control PCI. 12 Figura: 8 Señales de Control PCI 13 Figura: 9 Señales para PCI 64 bits 13 Figura: 10 Velocidades de Transferercia de datos PCI 14 Figura: 11 Arbitro del bus PCI 15 Figura: 12 Cronograma de funcionamiento de PCI 15 Figura: 13 Velocidad de Transferencia USB 16 Figura: 14 Diferentes tipos de conexiones USB 17 Figura: 15 Cronograma Transmisión Asincrónica del bus USB 18 Figura: 16 Cronograma Transmisión Sincrónica del bus USB 19 22

18