Está en la página 1de 43

BUSES DEL SISTEMA

OAC-II Ing. Luis Alberto Sota Orellana

2010-I

Introduccin

Es el elemento responsable de establecer una correcta interaccin entre los diferentes componentes del ordenador, es por lo tanto, el dispositivo principal de comunicacin. En un sentido fsico, su descripcin es: conjunto de lneas de hardware (metlicas o fsicas), utilizadas para la transmisin de datos entre los componentes de un sistema informtico. En cambio, en sentido figurado es: una ruta compartida, que conecta diferentes partes del sistema. En Informtica, bus es el conjunto de conductores elctricos en forma de pistas metlicas impresas sobre la tarjeta madre del computador, por donde circulan las seales que corresponden a los datos binarios del lenguaje mquina con que opera el Microprocesador.

Componentes del Computador


Virtualmente todos los diseos de los computadores actuales se han diseado basndose en la Arquitectura de Von Neumann y se basa en tres conceptos fundamentales:

Los datos y las instrucciones se almacenan en una sola memoria de lectura-escritura. Los contenidos de esta memoria se direccionan indicando su posicin, sin considerar el tipo de dato contenido en la misma. La ejecucin se produce siguiendo una secuencia de instruccin tras instruccin.

Componentes del Computador

Hardware Especifico Datos Secuencia de Funciones lgicas y aritmticas Resultados

Programacin Hardware

Si se desea realizar un calculo concreto, es posible construir una configuracin de componentes lgicos diseada especficamente para dicho calculo. Si se construyesen de esta forma, el hardware obtenido tendra un uso muy restringido. El sistema acepta datos y produce resultados

Componentes del Computador


Hardware de uso General Cdigos de Instruccin Interprete de Instrucciones Seales de Control Datos Funciones Lgicas y aritmticas de uso general Programacin Software Resultados

Este hardware realiza funciones diferentes segn las seales de control aplicadas. El sistema acepta datos y seales de control y produce resultados. En lugar de reconfigurar el hardware para cada nuevo programa, el programador simplemente necesita proporcionar un nuevo conjunto de seales de control.

El Funcionamiento del Computador


Inicio

Captura la siguiente instruccin

Ciclo de captacin

Ejecuta la Instruccin

Ciclo de ejecucin

La captacin es una operacin comn a todas las instrucciones, consiste en la lectura de la instruccin de una posicin de memoria. La ejecucin de la instruccin puede suponer varias operaciones y depende de la naturaleza de la instruccin.

Parada

Posiciones de almacenamiento
01

Palabra nmero

39

Bit de signo Palabra Instruccin Ins. Derecha Ins. Izquierda 0 8 19 20 28 39

Codop

Direccin

Codop

Direccin

AC

MQ

Estructura
La Unidad de Control interpreta la instruccin y lleva a cabo la accin requerida. En general, sta puede ser de cuatro tipos:
CPU Memoria. CPU E/S. Procesamiento de Datos. Control.

Circuitos aritmtico-lgicos

Equipos E/S

MBR

IBR IR Circuitos de Control

PC MAR
Direcciones Seales de Control

Memoria Principal

Ejemplo de ejecucin de un Programa

Ciclo de Instruccin Bsico


Captacin de Instruccin Almacenamiento de Operando

Captacin de Operando

Varios operandos

Varios resultados

Clculo de Direccin de instruccin

Decodificador de Operacin

Clculo de direccin de operando

Operacin con datos

Clculo de direccin de operando

Siguiente Instruccin

Cadena O Vectores

Interruptores

Prcticamente todos los computadores disponen de un mecanismos mediante el que otros mdulos (E/S, memoria) pueden interrumpir el procesamiento normal de la CPU. Las clases de interrupciones ms comunes son:

Programa: Generados por alguna condicin que se produce como resultado de la ejecucin de una instruccin, tal como desbordamiento aritmtico (overflow), divisin por cero, intento de ejecutar una instruccin maquina inexistente, e intento de acceder fuera del espacio de memoria. Temporizacin: Generadas por un temporizador interno al procesador. Esto permite al sistema operativo realizar ciertas funciones de manera regular. E/S: Generadas por un controlador de E/S, para indicar la finalizacin sin problemas de una operacin para avisar de ciertas condiciones de error. Fallo de Hardware: Generadas por un fallo tal como la falta de potencia de alimentacin o un error de paridad en la memoria.

Peticin de interrupcin IRQ ("Interrupt Request")

El "modus operandi" es como sigue: Cuando se recibe la peticin de interrupcin, el procesador termina la instruccin que est ejecutando; guarda el contenido de los registros; deshabilita el sistema de interrupciones; ejecuta el "servicio", y vuelve a su punto de ejecucin. El servicio suele terminar con una instruccin ("Interrupt Return") que restituye el contenido de los registros y vuelve a habilitar el sistema de interrupciones. Para su gestin existen tres tipos de elementos de soporte:

Ciertas lneas especficas (IRQ's) en el bus de control El controlador de interrupciones (PIC). Un procesador especfico que realiza cierta elaboracin previa de las peticiones antes de entregar la seal a la CPU. Ciertas patillas especficas en el procesador.

El resumen del proceso es como sigue: Un perifrico, tarjeta o dispositivo necesita atencin; a tal efecto pone en tensin baja una de las lneas IRQ del bus de control (que le haba sido asignada). La seal es recogida por el PIC, que la procesa, la clasifica, y enva una seal a una de las patillas del procesador. A continuacin el procesador se da por notificado y pregunta que tipo de excepcin debe atender. Como respuesta, PIC asigna un nmero de servicio (0-256) en forma de un octeto que es colocado en el bus de datos, con lo que estamos en el punto inicial del proceso.

Lneas de peticin de interrupcin

Nivel de prioridad

El PIC dispone de 16 niveles de prioridad, numerados del 0 al 15, de forma que los de nmero ms bajo se atienden antes que los de nmero ms alto. La asignacin a cada nivel es como sigue:

Como puede verse, la prioridad ms alta se asigna a las interrupciones no enmascarables (NMI ) para el control interno. A continuacin se atienden IRQ0 e IRQ1; asignadas como hemos visto al cronmetro del sistema y al teclado (el cronmetro no puede ser interrumpido por nadie porque perdera la hora). Despus se atienden las peticiones IRQ8 a IRQ15 del controlador esclavo, que hereda la prioridad de IRQ2 de la que est colgado (en realidad no existe IRQ2). A continuacin se atienden las IRQ3 a IRQ7. Las peticiones de prioridad ms baja son las del controlador estndar de disquetes (IRQ6) y las del puerto de impresora LPT1 (IRQ7).

Estructuras de Interconexin

Un computador esta constituido por un conjunto de unidades o mdulos de tres tipos elementales (CPU, memoria, E/S) que se comunican entre si. En efecto, un computador es una red de mdulos elementales. Por consiguiente, deben existir lneas para interconectar estos mdulos. El conjunto de lneas que conectan los diversos mdulos se denomina estructura de interconexin. El diseo de dicha estructura depender de los intercambios que deban producirse entre los mdulos.

Memoria. Modulo de E/S. CPU.

Modulo de Memoria

Generalmente, un modulo de memoria esta constituido por N palabras de la misma longitud. A cada palabra se le asigna una nica direccin numrica (0, 1, , N-1). Una palabra de datos puede leerse de o escribirse en la memoria, el tipo de operacin se indica mediante las seales de control Read (Leer) y Write (Escribir). La posicin de memoria para la operacin se especifica mediante una direccin.

Modulo de Entrada y Salida

Desde un punto de vista interno (al computador), la E/S es funcionalmente similar a la memoria. Hay dos tipos de operaciones, leer y escribir. Adems, un modulo de entrada y salida puede controlar mas de un dispositivo externo. Nos referimos a cada una de estas interfaces con un dispositivo externo con el nombre de puerto (port), y se asignara una direccin a cada uno (0, 1, , M-1). Por otra parte, existen lneas externas de datos para la entrada y la salida de datos por un dispositivo externo. Por ultimo un modulo de E/S puede enviar seales de interrupcin a la CPU.

Modulo de CPU

La CPU leer instrucciones y datos, escribe datos una vez los ha procesado, y utiliza ciertas seales para controlar el funcionamiento del sistema. Tambin puede recibir seales de interrupcin

Estructura de Interconexin

El conjunto de lneas que conectan los diversos mdulos se denominan estructura de interconexin, que debe dar cobertura a los siguientes tipos de transferencia:

Memoria a CPU: La CPU lee una instruccin o un dato desde la memoria. CPU a Memoria: La CPU escribe un dato en la memoria. E/S a CPU: La CPU lee datos de un dispositivo de E/S a travs de un mdulo de E/S. CPU a E/S: La CPU enva datos al dispositivo de E/S. Memoria a E/S y viceversa: En estos dos casos, un mdulo de E/S puede intercambiar datos directamente con la memoria, sin que tenga que pasar a travs de la CPU, utilizando el acceso directo a memoria (DMA).

Interconexin con Buses


Un bus es un mecanismo de interconexin entre las distintas unidades funcionales de las que se compone un dispositivo digital. Lo ms caracterstico es que es un medio de transmisin compartido. No responde nicamente al establecimiento de un camino fsico, sino que adems conlleva una poltica de uso y acceso por parte de todos y cada uno de los elementos conectados a l. Habitualmente un bus est compuesto de varias lneas dnde cada lnea es capaz de transmitir seales binarias representando 1 0. Si se transmiten varios bits simultneamente por diferentes lneas se dice que es una transmisin paralela. Bsicamente los elementos que definen un BUS y que permite distinguir fcilmente unos de otros son:

El arbitraje o mtodo de obtencin de permiso para acceder al medio. La temporizacin o mtodo de sincronizacin. La anchura del bus o nmero de bits o lneas de direcciones y datos.

Los computadores actuales llevan varios tipos de buses, siendo el principal de ellos el denominado Bus del sistema que conecta el procesador con la memoria y con los mdulos de E/S.

Estructura del Bus

EL bus del sistema est constituido entre 50 y 100 lneas. Cada lnea tiene un significado particular. Generalmente se subdividen en tres grupos:

Lneas de datos.(Anchura del Bus: 8, 16, 32). Lneas de direccin (Tanto para memoria como para E/S).(Anchura 8, 16, 32) Lneas de control.

Ancho de Banda del Bus


Procesadores 808680186 808880188 80286 80386 SX 80386 DX 80486 SX 80486 DX

Bus de direcciones (bits)


20 20 24 32 32

Bus de datos (bits) 16 8 16 16 32

PENTIUM PENTIUM II/III/IV AMD K5/K6/K7 AMD ATHLON/THUNDERBIRD AMD ATHLON XP/MP
INTEL ITANIUM AMD ATHLON64

32

64

32/64

64/128

Conexin fsica del Bus del Sistema


Seales tpicas de control: Escritura en memoria. Lectura en memoria. Escritura E/S. Lectura E/S. Transferencia reconocida (ACK). Peticin de Bus. (Bus Request). Cesin del BUS (Grant) Peticin de interrupcin. Interrupcin reconocida. Reloj. Reset. .

Funcionamiento del Bus

En general, si un mdulo desea enviar o recibir informacin de otro debe:


Obtener el derecho a hacer uso del bus. Avisar al elemento destino de sus intenciones. Transferir/recibir el dato Liberar el bus.

Jerarqua de Buses

Las prestaciones del bus vienen en gran medida determinadas por el ancho del bus y la velocidad del reloj que controla las transferencias. Ambos aspectos tienen limitaciones de tipo tecnolgico y econmico. Ahora bien, existen otros aspectos ms de ndole de diseo que son los que ms nos interesan, en tanto en cuanto, podemos fcilmente modificarlos:

En primer lugar, hay un retardo de propagacin en el bus a medida que aumenta la longitud del mismo. o Ej.: Veloc. Luz = 300.000 km/s. Es decir, en 1 ns recorre 30 cm. Adems, ms tiempo consumido en circuitos de conmutacin. En segundo lugar, la conexin de muchos dispositivos compitiendo por el uso del bus hace que aumenten los tiempos de contencin. Dando lugar a un ancho de banda efectivo inferior al disponible fsicamente segn las especificaciones.

Estos problemas se pueden solventar mediante el uso de varios buses interconectados de forma jerrquica y con diferentes anchos de banda y/o velocidades de transferencia.

Jerarqua de Buses

De esta forma habr buses para dispositivos lentos, buses para dispositivos rpidos y buses especializados (como los utilizados para conectar aceleradores de grficos). A continuacin se describen los buses genricos presentes en las jerarquas. 1. Bus Local. Es el que interconecta el procesador (Unidad de control, unidad aritmtico lgica y registros) con la memoria cach del procesador (Cach de Nivel 1), y un controlador local de E/S. 2. Bus del Sistema. Permite conectar la Memoria principal a la Cach de nivel 1. Adems se conecta con el adaptador para el bus de expansin. 3. Bus expansin. Se utiliza para conecta los dispositivos perifricos al bus del sistema. 4. Bus de alta velocidad. No est presente en todas las arquitecturas. Slo en las de altas prestaciones. Permite conectar dispositivos de alta velocidad al bus del sistema a travs de la cach.

Arquitectura de Bus Tradicional

Ejemplos de Buses de expansin tenemos los BUSES:


ISA (Industrial Standard Arquitecture): Introducido por IBM. De 8 y 16 bits con velocidades de 4,17 y 8,33 MHz. Respectivamente. EISA (Extended ISA): Aparecin en los aos 88-89 para mejorar las prestaciones del BUS ISA. 16/32-bit 24/32-bit de direcciones 8.33 MHz Permite ms canales de interrupcin por DMA SCSI (Small Computer System Interface): Diseado por Apple in 1984 Es la interfaz con una amplia variedad de dispositivos perifricos de alta velocidad. Generalmente discos. Ms que un bus es un mecanismo daisy-chain con arbitraje distribuido del tipo autoseleccin Idneo para perifricos con pocos accesos pero de gran volumen de datos en cada operacin de entrada salida. La temporizacin puede ser sncrona o asncrona. Longitud mxima: 25 m. Tenemos dos tipos: SCSI-1 Ancho de bus de 8-bit . Multiplexado para direcciones. Reloj de 5 MHz clock Tasa de transmisin of 5 MB/s Soporta hasta 7 dispositivos conectados. SCSI-2 Estndar actual Ancho de bus de 16 o 32 bits Reloj a 10 MHz. 40 MB/s. Hasta 31 dispositivos conectados.

Arquitectura de altas prestaciones

Ejemplos de buses de altas prestaciones son los siguientes:


BUS PCI (Peripheral component Interconnect). Suele ir montado en la placa base. Fue ideado por INTEL en 1990. En su primera versin, algunas de sus caractersticas fueron: 64 lneas de datos Multiplexadas con direcciones a 33MHz. Velocidad de transferencia de 264 Mbytes/s. Temporizacin sncrona. Gestin de prioridades centralizado. Con estrategias FIFO o Round-Robin (Cclico). Permite la conexin de varios maestros. Permite la interconexin de varios procesadores al mismo BUS. Se pueden conectar hasta 32 dispositivos. Aunque cada uno de esos dispositivos puede ser un Bus PCI, en este caso se puede llegar a montar hasta 1024 dispositivos. Sin embargo, la versin ms moderna tiene las siguientes especificaciones: 32 64 lneas para datos, tambin multiplexadas para direcciones a 66 MHz Velocidad de Transferencia de 528 MB/s 4.224 Gb/s. El resto coincide con la versin anterior. Algunas Variantes: PCI 2.2, permite para bus de 64-bit con ancho y/o 66MHz seal (transferencia 533 MB/s) PCI-X, 64-bit version de 2.2 que incrementa la tasa de datos a 133MHz (transferencia 1066 MB/s) PCI-X 266 (o PCI-X DDR), "double-pumped" PCI-X para tasa de 266MHz (transferencia de 2133 MB/s)

Elementos de Diseo de un BUS.

A la hora de disear un bus, o a la hora de analizarlo, hay varios aspectos a tener en cuenta como son:

Tipo de bus. Ancho del Bus. Tipos de transferencias de datos. Temporizacin. Arbitraje.

Tipo de Conexin.

Multiplexada: Cuando el tipo de informacin que transportan las lneas no es siempre el mismo. Por ejemplo, unas veces lleva datos y otras veces, las mismas lneas llevan direcciones. Ventaja: uso de menos lneas, cosa que ahorra espacio y, normalmente, costes. Desventaja: Se necesita una circuitera ms compleja en cada modulo. No Multiplexadas: O bien, se dispone de buses diferentes para direcciones y datos, o bien, dentro del propio bus hay lneas dedicadas a direcciones y datos. Ventaja: Elevado rendimiento, debido a que hay menos conflictos por el acceso al bus. Desventaja: Es el incremento en el tamao y el coste del sistema.

Ancho del Bus.


La anchura del bus afecta de diferente manera segn sea el de direcciones o datos. Cuanto mayor es el bus de direcciones, es decir, ms bits de direcciones pueden ser transferidos simultneamente, mayor es el nmero de direcciones accesible en memoria o en dispositivos de E/S. En cuanto al bus de datos, cuanto mayor es el bus de datos, datos ms grandes pueden ser transferidos o se pueden transferir varios datos independientes simultneamente pero que estn contiguos en memoria. Esto produce un aumento de velocidad por que disminuyen los accesos a memoria, tato para recuperar datos como instrucciones.

Tipos de transferencias.

Hay varios tipos de transferencias que se pueden llevar a cabo a travs de un bus, podemos clasificarlas de acuerdo a varios criterios:

Segn el tipo de operacin: De lectura o de escritura.

Si el bus estuviera multiplexado, entonces habra de especificarse primero la direccin y luego el dato. Transferencia simple. (Lectura o escritura de un solo dato). Operacin Combinada.

Segn el nmero de operaciones a efectuar.


Lectura para modificacin. Posibilidad de escritura. (Read for updating) Lectura-Escritura-Lectura

Transferencia por bloques. Transferencia secuencial.

Temporizacin.

El termino temporizacin hace referencia a la forma en la que se coordinan los eventos en el bus. Consiste en las diferentes estrategias de sincronismo entre dispositivos para establecer las transferencias de informacin. Temporizacin sncrona: todas las transferencias ocurren sincronizadas por los flancos de la seal de reloj que llegan a todos los dispositivos, ya sean maestros o esclavos. Ventajas: es simple de implementar, no requiere circuitera de control adicional y es barato. Sirve para interconectar dispositivos comparables. La desventaja es que siempre se va a la velocidad del ms lento

Temporizacin

Temporizacin asncrona. Se basa en protocolos de interbloqueo (handshaking o interlocking) que no precisan la existencia de una seal de reloj. (Un evento origina el siguiente, y as sucesivamente).

Es ms difcil de implementar pero permite adaptar las velocidades de transmisin de las diferentes tecnologas.

Arbitraje.

El arbitraje es la poltica de asignacin del bus en caso de que varios dispositivos compitan por su uso. Hay dos tipos generales de arbitraje: centralizado o distribuido, segn se realice por un mdulo central o cada mdulo tenga una lgica de arbitraje incorporada.

Arbitraje centralizado.

Pongamos por ejemplo el arbitraje denominado Daisy-Chain: 1. Un maestro que desea usar el bus activa la seal comn de peticin de bus si observa que el bus no est ocupado.. 2. El rbitro activa la seal de bus ocupado. 3. El rbitro concede el bus al maestro 1. 4. Si este no lo necesita se la pasa al siguiente, y as sucesivamente hasta que llega al que solicit el Bus. 5. Al terminarse se desactiva esta seal de peticin de bus, lo que hace que el arbitro desactive la seal de concesin y la de bus ocupado.

Arbitraje centralizado.

Ventajas:

Sencillez: Podemos aadir nuevos maestros aadindolos a la cadena donde queramos. La prioridad es fija, no es criterio justo. La propagacin de seales es lenta. Si un maestro casca, los de menor prioridad a este no tendran acceso al bus, a no ser que queden puenteadas las seales correspondientes de peticin de bus y concesin de bus.

Desventajas:

Arbitraje centralizado.(Alternativa)

En este caso, un dispositivo hace el arbitraje activando seales de control directas sobre los diferentes maestros. Son lneas dedicadas de peticin/concesin de bus a cada mdulo maestro. El arbitraje lo realiza un mdulo central que puede elegir el tipo de poltica de asignacin de bus que queramos (basado en prioridades, en velocidad de transmisin, en reparto de carga....). Esta tcnica es ms flexible en cuanto a la poltica de asignacin del bus y emplea menor tiempo en el arbitraje, sin embargo requiere el uso de ms lneas y hay una mayor limitacin en el nmero de dispositivos que se pueden conectar al BUS.

Arbitraje distribuido.

Cada mdulo tiene un rbitro y un nmero de arbitraje nico. Siempre tiene prioridad aquel con un nmero de arbitraje ms alto.

Arbitraje distribuido. (Funcionamiento)

Todos los maestros que quieren el bus envan su nmero de arbitraje a las lneas comunes de peticin concesin de Bus (SBRG) del bus de arbitraje a travs de sus respectivos rbitros, la seal de cada lnea es la OR de todas las de los maestros. Si un mdulo detecta a 1 una lnea de mayor peso que la del mayor de sus 1, eso quiere decir que hay otro dispositivo ms prioritario que quiere el uso del bus. El mdulo retira entonces todos los 1 menos significativos que el detectado. De este modo, el mdulo con el nmero de arbitraje ms alto encontrar su nmero en las lneas SBRG, lo que indica que el ganador es l y coger el bus cuando finalice la transaccin que est en ese momento en curso. Este tipo de arbitraje se emplea en Multibus II y Futurebus +.