lunes, 23 de julio de 2012

MÉTODOS DE ARBITRAJE EN UN BUS


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.




Saludos
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.