En arquitectura de computadores, el bus (o
canal) es un sistema digital que transfiere datos entre los
componentes de una computadora o entre computadoras. Está formado por
cables o pistas en un circuito
impreso, dispositivos como resistores y condensadores además de circuitos integrados.
En los primeros computadores electrónicos, todos los buses
eran de tipo paralelo, de manera que la comunicación entre las partes del computador
se hacía por medio de cintas o muchas pistas en el circuito impreso, en los
cuales cada conductor tiene una función fija y la conexión es sencilla
requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
La tendencia en los últimos años es hacia uso de buses
seriales como el USB,Firewire para
comunicaciones con periféricos reemplazando los buses paralelos,
incluyendo caso como el del microprocesador con
el chipset en
la placa base. Esto a pesar de que el bus serial posee una lógica compleja
(requiriendo mayor poder de cómputo que el bus paralelo) a cambio de
velocidades y eficacias mayores.
En este artículo se definirá que son los métodos de
arbitrajes de un bus y para que son utilizados cada uno de ellos. Si bien es
una sinopsis y no intenta ser un trabajo exhaustivo sobre el tema, se pretende
mostrar al menos algo del funcionamiento de un bus.
Es así, que en todos los sistemas, exceptuando los más
simples, puede necesitar el control del bus más de un modulo. Por ejemplo, un
modulo de E/S puede necesitar leer o escribir directamente en memoria, sin
enviar el dato al procesador. Puesto que en un instante dado, solo una unidad
puede transmitir a través del bus, se requiere algún método de arbitraje. Es
decir, en palabras más simples el método de arbitraje es aquél que permite el
manejo de un bus, en forma jerárquica, ante la situación de que más de un
módulo de entrada y salida requiera el uso del mismo, lo que conlleva a que se
deba elegir cuál es el dispositivo que lo va a utilizar. Es decir si múltiples
dispositivos están habilitados para dominar el bus, tiene que haber un sistema
de arbitraje para evitar que múltiples dispositivos intenten manejar el bus de
manera simultánea, lo que a su vez ofrece la posibilidad que en forma óptima
el dispositivo mas rápido no deba esperar para ser capaz de transferir y
los dispositivos más lentos (como los periféricos) tengan la posibilidad
de transferir también.
Esto nos lleva entonces a decir que existen diversos tipos
de métodos de arbitraje
MÉTODOS DE ARBITRAJE
1-
Arbitraje
Centralizado: en este esquema un único dispositivo de hardware es
responsable de asignar tiempos en el bus. Como característica principal podemos
decir que existe Un único dispositivo asigna tiempos de bus denominado
controlador del bus, dicho controlador puede estar separado o en el mismo
procesador. En una forma más simple de verlo, se puede decir que un árbitro
centralizado selecciona uno de entre los dispositivos que han solicitado el bus
y le notifica que ahora es el maestro del bus. Ahora bien lo interesante es
explicar que significa ser el maestro del bus, y se puede explicar con el siguiente
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
Quizás entonces la ventaja más significativa de este método
es que hay prácticamente una sencillez implícita, ya que pueden añadirse tantos
maestros como se quieran a la serie de peticiones al bus. Por el contrario, la
propagación de la señal entre los dispositivos que intentan acceder al bus es
lenta, lo que a su vez implica que la prioridad es fija, y si un maestro falla
aquellos que estén en menor prioridad (en espera de uso del bus) se verán
afectados y no tendrán acceso al bus.
Arbitraje
Distribuido: En este tipo de arbitraje no existe un controlador central, lo
que implica que cada módulo contiene una determinada lógica para controlar el
acceso a los módulos que interactúan conjuntamente para compartir el bus.
Entonces podemos encontrar dos formas de arbitrar el bus:
·
Arbitraje distribuido por autoselección: Se emplean múltiples líneas de petición de
bus, pero ahora cada dispositivo determina de forma independiente si él es el
solicitante de mayor prioridad sin necesidad de un árbitro. Cada línea de
identificación tiene asignada una prioridad, de manera que si varios másters
activan sus líneas simultáneamente, gana el de mayor prioridad. Un máster que
quiera tomar el control del bus deberá activar su línea y comprobar el estado
de las demás. La desventaja reside en que el número de masters, que pueden
alojarse por línea de arbitrajes existentes es limitado.
·
Arbitraje distribuido por detección de
colisión: Cada dispositivo solicita
de forma independiente el bus. En caso de múltiples peticiones simultáneas de
bus se produce una colisión. Una vez detectada la colisión se aplica un esquema
que determine el dispositivo que será maestro de bus entre las partes en
colisión.
Guillermo Andrés Arduino
Microsoft Active Professional 2009-2010-2011
Fuentes:
Computer
Architecture: A Quantitative Approach (3rd or 4th ed.), John L. Hennessy y
David A. Patterson.
Morgan Kaufmann Publishers, Inc.
Organización y arquitectura de computadores
(7th ed.), William Stallings. Prentice Hall.
Organización de Computadores, C. Hamacher, Z.
Vranesic y S. Zaky. Mc Graw Hill, 2003. Departamento de automática Área de Arquitectura y
Tecnología de Computadores
Arquitectura de Computadores I. T. Informática de
Gestión. UBA.
No hay comentarios:
Publicar un comentario
Deja todo lo que quieras decirnos, somos mentes abiertas y leemos de todo y para todos, pero por favor no insultes, no agredas, no seas pornografico, eso no nos gusta y te vamos a mandar bien lejos.