ES2265160T3 - Sistema y metodo para controlar un bus. - Google Patents
Sistema y metodo para controlar un bus. Download PDFInfo
- Publication number
- ES2265160T3 ES2265160T3 ES98302080T ES98302080T ES2265160T3 ES 2265160 T3 ES2265160 T3 ES 2265160T3 ES 98302080 T ES98302080 T ES 98302080T ES 98302080 T ES98302080 T ES 98302080T ES 2265160 T3 ES2265160 T3 ES 2265160T3
- Authority
- ES
- Spain
- Prior art keywords
- bus
- request
- priority
- control
- priority level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 25
- 238000012546 transfer Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008094 contradictory effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 239000006187 pill Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Selective Calling Equipment (AREA)
- Traffic Control Systems (AREA)
Abstract
SE PODRA MEJORAR EL RENDIMIENTO DE UN BUS EN UN SISTEMA DE ORDENADOR CON DISPOSITIVOS MULTIPLES 102, 104, 106 ACCEDIENDO A UN BUS 132 COMPARTIDO COMUN MEDIANTE EL INCREMENTO DE LA PRODUCCION Y DISMINUYENDO LA LATENCIA MIENTRAS SE REALIZAN CAMBIOS DINAMICOS EN EL USO DEL BUS. LOS DISPOSITIVOS PRESENTAN UN NIVEL DE PRIORIDAD CONJUNTAMENTE CON UNA PETICION DE BUS AL CONTROLADOR DE BUS 120. TRAS LA RECEPCION DE SOLICITUDES MULTIPLES, UN ARBITRO DEL CONTROLADOR 130 DE BUS COMPARA LOS NIVELES DE PRIORIDAD ASOCIADOS CON LAS DIFERENTES PETICIONES DE BUS Y OTORGA EL CONTROL DEL BUS AL DISPOSITIVO QUE TIENE EL NIVEL DE PRIORIDAD MAS ALTO. DURANTE CADA CICLO EN QUE EL DISPOSITIVO TIENE EL CONTROL DEL BUS, UN CIRCUITO LOGICO DE REALIMENTACION DEL CONTROLADOR DEL BUS DETERMINA SI EXISTEN OTRAS PETICIONES DE BUS PENDIENTES Y SI ES ASI DETERMINA EL NIVEL DE PRIORIDAD DE PETICION PENDIENTE MAS ALTO. LAS SEÑALES CORRESPONDIENTES A LOS RESULTADOS DE DICHAS DETERMINACIONES SON REALIMENTADAS A CADA DISPOSITIVO. EL DISPOSITIVO QUE TIENE EL CONTROL DEL BUS USA LA COMBINACION DEL NIVEL DE PRIORIDAD DE PETICION PENDIENTE EN CURSO Y EL PROPIO TEMPORIZADOR DE LATENCIA 102A, 104A, 106A DEL DISPOSITIVO PARA DETERMINAR SI DEBE MANTENER EL CONTROL DEL BUS O LIBERAR DICHO CONTROL. SI EL TEMPORIZADOR DE LATENCIA DEL DISPOSITIVO NO HA EXPIRADO, EL DISPOSITIVO CONTINUARA CONTROLANDO EL BUS INCLUSO SI EL NIVEL DE PRIORIDAD DE PETICION PENDIENTE EN CURSO ES MAYOR QUE EL NIVEL DE PRIORIDAD DEL DISPOSITIVO. SI EL NIVEL DE PRIORIDAD DE PETICION PENDIENTE EN CURSO NO ES SUPERIOR AL PROPIO NIVEL DE PRIORIDAD DEL DISPOSITIVO, EL DISPOSITIVO CONTINUARA CON EL CONTROL DEL BUS INCLUSO UNA VEZ QUE HA EXPIRADO EL TEMPORIZADOR DE LATENCIA DEL DISPOSITIVO HASTA QUE EL DISPOSITIVO NO NECESITE EL BUS. FINALMENTE, SI EL NIVEL DE PRIORIDAD DE SOLICITUD PENDIENTE EN CURSO ES SUPERIOR QUE EL PROPIO NIVEL DE PRIORIDAD DEL DISPOSITIVO, Y EL TEMPORIZADOR DE LATENCIA DEL DISPOSITIVO HA EXPIRADO, EL DISPOSITIVO ABANDONARA EL CONTROL DEL BUS. DE DICHA FORMA, EL TEMPORIZADOR DE LATENCIA DEL DISPOSITIVO SE EXTIENDE DINAMICAMENTE TRAS LA EXPIRACION EN TANTO EN CUANTO EL DISPOSITIVO TENGA UN NIVEL DE PRIORIDAD AL MENOS TAN GRANDE COMO LA PRIORIDAD DE SOLICITUD PENDIENTE EN CURSO.
Description
Sistema y método para controlar un bus.
La presente invención se refiere a rendimiento
de buses y, más en concreto, al control dinámico de un bus que tiene
una pluralidad de dispositivos que se pueden conectar operativamente
al mismo para mejorar la tasa de transferencia y para disminuir la
latencia.
El número de funciones en una única pastilla de
circuitos integrados continúa aumentando en línea con un aumento en
las densidades de las pastillas. Estos circuitos integrados de "un
sistema en una pastilla" utilizan, normalmente, una arquitectura
de bus común y compartido para proporcionar el enlace de
comunicaciones entre los diversos dispositivos y subsistemas del
"sistema de ordenador". Un bus común proporciona un enlace de
comunicaciones de bajo coste, puesto que puede compartirse entre
múltiples dispositivos del sistema de ordenador. Sin embargo, la
conexión de múltiples dispositivos a un único bus puede aumentar la
preocupación sobre el rendimiento máximo del bus.
La obtención del rendimiento máximo del bus
puede ser difícil en una arquitectura de bus compartido. Entre los
factores que influyen fuertemente en el rendimiento del bus se
encuentran la tasa de transferencia del sistema (o sea, la anchura
de banda) y el tiempo de respuesta del sistema (o sea, la latencia).
Por lo que se refiere a la determinación de la tasa de transferencia
o anchura de banda, una transacción del bus es una transacción del
bus completada por el dispositivo que se encuentra en el extremo
receptor de la transmisión. La anchura de banda o tasa de
transferencia es el número medio de transacciones del bus en un
periodo de tiempo. El tiempo de respuesta o latencia es el tiempo
necesario para completar una transacción del bus para un dispositivo
concreto, comenzando con el ciclo en el que el dispositivo solicita
por primera vez el bus hasta el ciclo en el que el último grupo de
datos se transfiere desde el dispositivo a un segundo dispositivo a
través del bus. Un dispositivo que solicita acceso a un bus o
control del mismo y que transmite y recibe datos a través del bus
puede denominarse un "maestro". Un dispositivo que transmite o
recibe datos a través de un bus y que responde a un maestro puede
denominarse un "esclavo". Un dispositivo esclavo no puede
solicitar acceso a un bus o control del mismo.
Con el fin de conseguir un alto grado de
rendimiento del bus, la tasa de transferencia debe ser alta mientras
que la latencia debe ser baja. Además, con el fin de conseguir un
nivel alto de tasa de transferencia del bus, el dispositivo esclavo
preferentemente nunca está inactivo y, por consiguiente, el bus
nunca está, preferentemente, inactivo. Sin embargo, por el
contrario, puesto que la latencia se refiere al tiempo necesario
para completar una transacción del bus comenzando con el ciclo en el
que un dispositivo maestro solicita por primera vez el bus hasta el
ciclo en el que el último grupo de datos es transferido por el
maestro a través del bus, la latencia incluye el tiempo que un
dispositivo maestro espera a que el bus quede disponible (es decir,
inactivo). Como resultado, la latencia se reduce al permitir que el
bus quede inactivo.
Se han desarrollado una serie de diseños con
diferentes arquitecturas en un esfuerzo para mejorar el rendimiento
del bus, incluyendo la tasa de transferencia y el tiempo de
respuesta. Muchos de estos esquemas se basan en el nivel de
"prioridad" del dispositivo que solicita el control del bus.
Por ejemplo, la patente de Estados Unidos número 5.438.666,
concedida a Craft et al., describe un sistema de arbitraje
para controlar el acceso a un bus. El sistema de arbitraje de Craft
et al. interrumpe el control del bus por un primer
dispositivo cuando un segundo dispositivo que tiene una prioridad
mayor solicita acceso al bus. Una vez que el segundo dispositivo
completa su acceso al bus, se devuelve el control del bus al primer
dispositivo. La transferencia de control se lleva a cabo sin
requerir el tiempo adicional de arbitrar prioridades entre
dispositivos maestros del bus que tienen peticiones del bus
activas.
La patente de Estados Unidos número 5.140.680,
concedida a Best, describe un sistema de arbitraje del bus para una
red de ordenadores que posee múltiples dispositivos maestros y
esclavos que comparten un bus común. El sistema de arbitraje del bus
incluye una lógica de arbitraje del bus en cada dispositivo maestro,
y tiene en cuenta el retardo operativo del dispositivo maestro más
lento al determinar cuál de los dispositivos maestros tiene acceso
al bus en un momento dado.
Como ejemplo adicional, la patente de Estados
Unidos número 5.388.228, concedida a Heath et al., describe
un sistema de arbitraje que tiene un circuito de control de
arbitraje central y un árbitro local asociado con cada dispositivo
que solicita acceso a un bus común. Heath et al. proporciona
también la programación de cada dispositivo para que funcione en un
modo lineal o en un modo justo. Cuando funciona en el modo justo, un
primer dispositivo que tiene acceso al bus en respuesta a un segundo
dispositivo que solicita acceso al bus renunciará al control del bus
una vez que el primer dispositivo ha completado un número apropiado
de transferencias, permitiendo al dispositivo peticionario que tiene
el siguiente nivel de prioridad más elevado el conseguir el control
del bus.
Otros diseños que implican la compartición de un
bus común han intentado resolver los requisitos contradictorios de
diseño de elevada tasa de transferencia y pequeña latencia mediante
el uso de transferencias de ráfagas largas para conseguir mayores
tasas de transferencia mientras utilizan temporizadores de latencia
de los dispositivos maestros para reducir la latencia mediante la
limitación de la longitud de las ráfagas. Los temporizadores de
latencia pueden implementarse, típicamente, en un dispositivo
maestro utilizando un registro programable y un contador. En el
registro programable se carga el valor de la latencia inicial que
representa el número máximo de ciclos de reloj que el dispositivo
maestro puede mantener el control o la propiedad sobre el bus común.
El contador se pone, típicamente, a cero cada vez que el dispositivo
consigue el control del bus. Una vez que el valor del contador
alcanza el valor almacenado en el registro (es decir, el
temporizador de latencia ha expirado), el correspondiente
dispositivo que tiene control sobre el bus debe renunciar al control
con independencia de las condiciones de uso del bus del sistema.
Como resultado, en sistemas en los que el uso
del bus es pequeño (es decir, la transferencia de datos a través del
bus es relativamente mínima), un dispositivo cuyo temporizador de
latencia ha expirado y, en consecuencia, debe renunciar al control
del bus incluso aunque tenga datos adicionales que transferir a
través del bus, tiene una anchura de banda (o sea, tasa de
transferencia) que puede estar innecesariamente limitada. Por otra
parte, en sistemas en los que el uso del bus es relativamente
elevado, en los que varios dispositivos solicitan simultáneamente
el bus, es probable que un dispositivo utilice el bus hasta que
expire su temporizador de latencia. El control del bus por parte de
un dispositivo hasta que expire su temporizador de latencia hace que
otros dispositivos tengan que esperar a que el bus quede disponible
y, en consecuencia, experimenta latencias relativamente
elevadas.
Por otra parte, las condiciones de uso del bus
en un sistema pueden variar a lo largo del tiempo desde, por
ejemplo, un uso ligero hasta un uso elevado y de nuevo un uso
ligero. En consecuencia, puede ser necesario el actualizar el
temporizador de latencia de cada dispositivo con el fin de conseguir
el máximo rendimiento del bus. Un temporizador de latencia puede
actualizarse mediante reprogramación del registro y del contador.
Sin embargo, se requiere un tiempo adicional significativo para
reprogramar los temporizadores de latencia de cada dispositivo,
especialmente si ha de hacerse de una forma regular. De este modo,
el uso de temporizadores de latencia para mejorar el rendimiento del
bus es, en general, ineficaz debido a que las condiciones de uso del
bus cambian dinámicamente.
Aunque actualmente se utilizan diversos esquemas
de arbitraje o temporizadores de latencia para controlar el acceso a
un bus común en sistemas con múltiples dispositivos, estos diseños
previos no pueden abordar eficazmente los requisitos contradictorios
de diseño de elevada tasa de transferencia y pequeña latencia. Por
otra parte, estos diseños previos no tienen en cuenta las
condiciones de uso del bus que cambian dinámicamente. Con el fin de
mejorar el rendimiento máximo del bus, los requisitos
contradictorios de elevada tasa de transferencia y de baja latencia
deben estudiarse teniendo en cuenta que las condiciones de uso del
bus cambian dinámicamente.
Por consiguiente, la invención proporciona un
método para controlar de forma dinámica el acceso a un bus que tiene
una pluralidad de dispositivos conectable de forma operativa al
mismo, teniendo cada uno de dichos dispositivos asociado un nivel de
prioridad, comprendiendo dicho método el paso de:
controlar la duración del control del bus por un
primero de dichos dispositivos en base a la combinación de un
temporizador de latencia y el nivel de prioridad asociado al primer
dispositivo, y un nivel de prioridad asociado con una petición
pendiente procedente de un segundo de dichos dispositivos para
controlar el bus.
En una realización preferida, dicha etapa de
control comprende los pasos de: aceptar, por un controlador del
bus, una petición procedente de un primer dispositivo para controlar
el bus; recibir en el controlador del bus del segundo dispositivo
una petición para controlar el bus y un nivel de prioridad asociado
a la petición; y transmitir desde el controlador del bus al primer
dispositivo el nivel de prioridad asociado a la petición recibida
del segundo dispositivo y una señal de petición pendiente asociada
en respuesta a la recepción de la petición procedente del segundo
dispositivo. De este modo, el primer dispositivo recibe en primer
lugar el control del bus del controlador del bus como respuesta a
dicha petición aceptada; y después recibe del controlador del bus
el nivel de prioridad asociado con la petición de control pendiente
procedente del segundo dispositivo. El nivel de prioridad del
primer dispositivo se compara entonces con el nivel de prioridad
asociado a la petición procedente del segundo dispositivo, dando
como resultado una ampliación de la duración del control del bus
por el primer dispositivo si el nivel de prioridad asociado con el
primer dispositivo es al menos igual que el nivel de prioridad
asociado al segundo dispositivo, o la terminación del control del
bus por el primer dispositivo si el nivel de prioridad asociado con
el primer dispositivo es menor que el nivel de prioridad asociado
al segundo dispositivo. Nótese que dicha ampliación o terminación
del control (y en realidad opcionalmente dicha comparación)
solamente se produce después de que el temporizador de latencia
asociado con el primer dispositivo haya expirado; por otra parte,
existe un control continuado del bus por parte del primer
dispositivo hasta que expire el temporizador de latencia asociado al
primer dispositivo.
La invención proporciona además un método para
controlar de forma dinámica el acceso a un bus que tiene una
pluralidad de dispositivos conectable de forma operativa al mismo,
teniendo cada uno de dichos dispositivos asociado un nivel de
prioridad, comprendiendo dicho método los pasos de:
recibir de un segundo de dichos dispositivos una
petición para controlar el bus y un nivel de prioridad asociado a
la petición; y
transmitir a un primero de dichos dispositivos
que tiene el control del acceso al bus el nivel de prioridad
asociado a la petición recibida del segundo dispositivo y una señal
de petición pendiente asociada, en respuesta a la recepción de la
petición procedente del segundo dispositivo.
Preferiblemente, el paso de transmisión está
precedido por los pasos de: comparar el nivel de prioridad asociado
al segundo dispositivo con los niveles de prioridad asociados con
cada dispositivo distinto del primer dispositivo para identificar
el nivel de prioridad que tenga el nivel más alto; y sustituir el
segundo nivel de prioridad por el nivel de prioridad
identificado.
En la realización preferida, existe un paso
inicial de petición al controlador del bus del control del bus por
parte del primer dispositivo de la pluralidad de dispositivos en el
que la petición por el primer dispositivo tiene un nivel de
prioridad asociado. Esta petición se recibe en el controlador del
bus, que arbitra los niveles de prioridad asociados con las
peticiones recibidas procedentes de diversos dispositivos para
identificar un primer nivel de prioridad que tenga el mayor valor
entre los niveles de prioridad recibidos y para identificar como un
primer dispositivo al dispositivo asociado al primer nivel de
prioridad identificado. Entonces puede asignarse el control del bus
al primer dispositivo en respuesta al paso de arbitraje para
permitir la transferencia de datos tales como datos de aplicación,
instrucciones de programas de ordenador y datos de direcciones entre
el primer dispositivo y dicho bus.
En otra realización preferida, el paso de
control comprende los pasos de: aceptar una petición procedente de
un primero de dichos dispositivos para controlar el bus; recibir de
un segundo de dichos dispositivos una petición para controlar el
bus y un nivel de prioridad asociado a la petición; transmitir al
primer dispositivo el nivel de prioridad asociado a la petición
recibida del segundo dispositivo y una señal de petición pendiente
asociada en respuesta a la recepción de la petición procedente del
segundo dispositivo; y controlar la duración del control del bus
por el primer dispositivo en base a una combinación de un
temporizador de latencia asociado al primer dispositivo y una
comparación del nivel de prioridad del primer dispositivo con el
nivel de prioridad asociado a la petición procedente del segundo
dispositivo.
Además, en esta realización preferida dicho paso
de control comprende además los pasos de: continuar el control del
bus por el primer dispositivo cuando el temporizador de latencia
asociado al primer dispositivo no haya expirado; ampliar la
duración del control del bus por el primer dispositivo cuando
habiendo expirado ya el temporizador de latencia asociado al primer
dispositivo el nivel de prioridad asociado con el primer dispositivo
sea al menos igual que el nivel de prioridad asociado al segundo
dispositivo; y terminar el control del bus por el primer
dispositivo cuando habiendo expirado ya el temporizador de latencia
asociado al primer dispositivo el nivel de prioridad asociado con
el primer dispositivo sea menor que el nivel de prioridad asociado
con el segundo dispositivo.
La invención proporciona además un sistema para
controlar un bus de forma dinámica, comprendiendo dicho sistema:
una pluralidad de dispositivos, teniendo cada
uno de dichos dispositivos un nivel de prioridad y un temporizador
de latencia asociados al mismo; y
un controlador del bus, conectable de forma
operativa a cada uno de dichos dispositivos, para controlar la
duración del control de un bus por un primero de dichos dispositivos
en base a la combinación del temporizador de latencia y el nivel de
prioridad asociado al primer dispositivo, y un nivel de prioridad
asociado a una petición pendiente de un segundo de dichos
dispositivos para controlar el bus.
En una realización, dicho controlador del bus
comprende: medios para aceptar una petición de un primero de dichos
dispositivos para controlar el bus; medios para recibir de un
segundo de dichos dispositivos una petición para controlar el bus y
un nivel de prioridad asociado a la petición; medios de envío para
transmitir al primer dispositivo el nivel de prioridad asociado a
la petición recibida del segundo dispositivo en respuesta a la
recepción de la petición procedente del segundo dispositivo; y
medios para controlar la duración del control del bus por el primer
dispositivo en base a una combinación del temporizador de latencia
asociado al primer dispositivo y una comparación del nivel de
prioridad del primer dispositivo con el nivel de prioridad asociado
a la petición procedente del segundo dispositivo.
La invención proporciona adicionalmente un
sistema para controlar de forma dinámica el acceso a un bus que
tiene una pluralidad de dispositivos conectable de forma operativa
al mismo, teniendo cada uno de dichos dispositivos asociado un
nivel de prioridad, comprendiendo dicho sistema:
medios para recibir de un segundo de dichos
dispositivos una petición para controlar el bus y un nivel de
prioridad asociado con la petición; y
medios de envío para transmitir, a un primero de
dichos dispositivos que tiene el control del acceso al bus, el
nivel de prioridad asociado a la petición recibida del segundo
dispositivo en respuesta a la recepción de la petición procedente
del segundo dispositivo.
En una realización, dichos medios de envío
comprenden: medios de determinación para comparar el nivel de
prioridad asociado a cada dispositivo distinto del primer
dispositivo del que se recibe una petición de control para
identificar el nivel de prioridad que tenga el mayor valor; y medios
de transmisión para transmitir al primer dispositivo el nivel de
prioridad identificado y una señal de petición pendiente.
La invención proporciona adicionalmente un
sistema para acceder de forma dinámica a un bus, comprendiendo
dicho sistema:
una pluralidad de dispositivos, siendo cada uno
de dichos dispositivos conectable de forma operativa al bus y
teniendo un nivel de prioridad asociado al mismo; y
medios de medida de la duración para controlar
la duración del acceso al bus por un primero de dichos dispositivos
en base a la combinación de un temporizador de latencia y el nivel
de prioridad asociado al primer dispositivo, y un nivel de
prioridad asociado a una petición pendiente de un segundo de dichos
dispositivos para controlar el bus.
La invención proporciona adicionalmente un
producto de programa de ordenador para controlar de forma dinámica
el acceso a un bus que tiene una pluralidad de dispositivos
conectable de forma operativa al mismo, teniendo cada uno de dichos
dispositivos asociado un nivel de prioridad, comprendiendo dicho
producto de programa de ordenador:
un medio de almacenamiento leíble mediante
ordenador que tiene medios de codificación leíbles mediante
ordenador integrados en dicho medio de almacenamiento,
comprendiendo dichos medios de codificación leíbles mediante
ordenador:
instrucciones de ordenador para controlar la
duración del bus por un primero de dichos dispositivos en base a la
combinación de un temporizador de latencia y el nivel de prioridad
asociado al primer dispositivo, y un nivel de prioridad asociado a
una petición pendiente de un segundo de dichos dispositivos para
controlar el bus.
La invención proporciona también un producto de
programa de ordenador para controlar de forma dinámica el acceso a
un bus que tiene una pluralidad de dispositivos conectable de forma
operativa al mismo, teniendo cada uno de dichos dispositivos
asociado un nivel de prioridad, comprendiendo dicho producto de
programa de ordenador:
un medio de almacenamiento leíble mediante
ordenador que tiene medios de codificación leíbles mediante
ordenador integrados en dicho medio de almacenamiento,
comprendiendo dichos medios de codificación leíbles mediante
ordenador:
instrucciones de ordenador para recibir de un
segundo de dichos dispositivos una petición para controlar el bus y
un nivel de prioridad asociado a la petición; e
instrucciones de ordenador para transmitir a un
primero de dichos dispositivos que tiene el control del acceso al
bus el nivel de prioridad asociado a la petición recibida del
segundo dispositivo y una señal de petición pendiente asociada, en
respuesta a la recepción de la petición procedente del segundo
dispositivo.
Se comprenderá que dichos sistemas y programas
de ordenador se beneficiarán de las mismas características
preferidas que los métodos de la invención.
Visto desde otro aspecto, la invención
proporciona un método para acceder de forma dinámica a un bus que
tiene una pluralidad de dispositivos conectable de forma operativa
al mismo, teniendo cada uno de dichos dispositivos asociado un
nivel de prioridad, comprendiendo dicho método el paso de:
controlar la duración del acceso al bus por un
primero de dichos dispositivos en base a la combinación de un
temporizador de latencia y el nivel de prioridad asociado al primer
dispositivo, y un nivel de prioridad asociado a una petición
pendiente de un segundo de dichos dispositivos para controlar el
bus.
Preferiblemente, dicho paso de control comprende
los pasos de: recibir un primer dispositivo el control del bus de
un controlador del bus en respuesta a una petición por parte del
primer dispositivo y un nivel de prioridad asociado al mismo; y
recibir del controlador del bus un segundo nivel de prioridad,
estando este segundo nivel de prioridad asociado a una petición de
control pendiente recibida por el controlador del bus de un segundo
dispositivo. También se prefiere que dicho paso de control comprenda
además el paso de: controlar la duración del control del bus por el
primer dispositivo en base a una combinación de un temporizador de
latencia asociado al primer dispositivo y una comparación del nivel
de prioridad del primer dispositivo con el nivel de prioridad
asociado a la petición procedente del segundo dispositivo.
Adicionalmente se prefiere que dicho paso de recepción del control
del bus por un primer dispositivo esté precedido por el paso de:
solicitar control del bus al controlador del bus por parte del
primer dispositivo de la pluralidad de dispositivos, en el que la
petición por el primer dispositivo tiene asociada un nivel de
prioridad.
De este modo, los sistemas, los métodos y los
productos de programas de ordenador descritos en esta patente
buscan mejorar el rendimiento del bus en un sistema de ordenador en
el que múltiples dispositivos comparten un bus común, y en concreto
aumentar la tasa de transferencia y disminuir la latencia, al tiempo
que se adapta a las condiciones de uso del bus que cambian de forma
dinámica. Por consiguiente, en la realización preferida se controla
el acceso de múltiples dispositivos a un bus común mediante la
combinación del efecto de niveles de prioridad y latencias, y
mediante el control dinámico del temporizador de latencia de un
dispositivo.
Como se describe con más detalle después, en la
realización preferida, cada dispositivo maestro del sistema posee
un temporizador de latencia y un indicador de nivel de prioridad
asociado. El temporizador de latencia puede implementarse
utilizando un registro que represente el máximo número de ciclos que
el dispositivo puede controlar el bus, y un contador para contar
los ciclos de control. El indicador de nivel de prioridad represente
el nivel de prioridad asociado al dispositivo. El sistema controla
de forma dinámica el bus utilizando un controlador del bus que está
conectado de forma operativa a cada uno de los dispositivos. El
controlador del bus controla el tiempo que un primer dispositivo
tiene control sobre el bus en base a la combinación del temporizador
de latencia asociado al primer dispositivo, el nivel de prioridad
asociado al primer dispositivo y el nivel de prioridad asociado a
una petición pendiente recibida por el controlador del bus de un
segundo dispositivo. Además, el sistema evita que el resto de los
dispositivos puedan controlar el bus mientras un dispositivo tenga
control del bus. El controlador del bus comprende medios para
aceptar una petición procedente de un primer dispositivo para
controlar el bus. El controlador del bus incluye también medios para
recibir de un segundo dispositivo una petición para controlar el
bus y un nivel de prioridad asociado, y medios de envío para
transmitir al primer dispositivo el nivel de prioridad asociado a la
petición recibida del segundo dispositivo en respuesta a la
recepción de la petición procedente del segundo dispositivo. El
controlador del bus incluye también medios para controlar la
duración del control del bus por el primer dispositivo en base a una
combinación del temporizador de latencia asociado al primer
dispositivo y el resultado de una comparación del nivel de
prioridad del primer dispositivo y el nivel de prioridad asociado a
la petición procedente del segundo dispositivo. Adicionalmente, el
controlador del bus puede también comprender medios para hacer que
continúe el control del bus por parte del primer dispositivo si el
temporizador de latencia del primer dispositivo no ha expirado,
incluso si el nivel de prioridad del segundo dispositivo es mayor
que el nivel de prioridad del primer dispositivo. También se
proporcionan medios de ampliación para ampliar la duración del
control del bus por parte del primer dispositivo si el nivel de
prioridad asociado al primer dispositivo es mayor o igual que el
nivel de prioridad asociado al segundo dispositivo, incluso si el
temporizador de latencia asociado al primer dispositivo ha
expirado. El sistema terminará o abandonará el control del bus por
el primer dispositivo si el nivel de prioridad asociado al primer
dispositivo es menor que el nivel de prioridad asociado al segundo
dispositivo y el temporizador de latencia asociado al primer
dispositivo ha expirado.
En una primera realización alternativa, cada uno
de los dispositivos tiene un nivel de prioridad asociado, y un
primer dispositivo tiene el control del bus. El sistema recibe una
petición procedente de un segundo dispositivo para controlar el bus
y un nivel de prioridad asociado, y compara el nivel de prioridad
asociado a cada dispositivo distinto del primer dispositivo del que
se recibe una petición para identificar el nivel de prioridad que
tiene el mayor valor. El nivel de prioridad identificado que tiene
el mayor valor y una correspondiente señal de petición pendiente se
envían al primer dispositivo.
En una segunda realización alternativa, cada
dispositivo tiene también un nivel de prioridad asociado y el
sistema controla la duración del acceso al bus por parte del primer
dispositivo en base a la combinación del temporizador de latencia y
el nivel de prioridad asociado al primer dispositivo, y un nivel de
prioridad asociado a una petición pendiente de un segundo
dispositivo para controlar el bus. Además, el primer dispositivo
recibe el control del bus de un controlador del bus en respuesta a
su petición de controlar el bus y su nivel de prioridad asociado.
El primer dispositivo recibe también del controlador del bus un
segundo nivel de prioridad que está asociado a una petición de
control pendiente recibida por el controlador del bus procedente de
un segundo dispositivo. El primer dispositivo continúa controlando
el bus si su temporizador de latencia no ha expirado, incluso si su
nivel de prioridad es menor que el segundo nivel de prioridad
asociado a la petición procedente de un segundo dispositivo. El
primer dispositivo amplía la duración de su control del bus si su
nivel de prioridad asociado es mayor o igual que el nivel de
prioridad asociado a un segundo dispositivo, incluso si el
temporizador de latencia asociado al primer dispositivo ha expirado.
Finalmente, el primer dispositivo abandona o termina su control del
bus si su nivel de prioridad asociado es menor que el nivel de
prioridad asociado al segundo dispositivo y el temporizador de
latencia asociado al primer dispositivo ha expirado.
La solución descrita en esta patente combina el
uso de prioridades y de latencias para mejorar el rendimiento del
bus, y en ella el temporizador de latencia del dispositivo que tiene
el control del bus puede cambiarse de forma dinámica. Esto se
consigue no haciendo caso de un temporizador de latencia expirado y
permitiendo al dispositivo correspondiente continuar el control del
bus mientras su prioridad sea al menos igual que el indicador de
prioridad de la petición pendiente. Una vez que el indicador de
prioridad de la petición pendiente sea mayor que el nivel de
prioridad del dispositivo que controla en ese momento el bus, el
dispositivo que controla en ese momento el bus abandonará o
terminará el control del bus.
A continuación se describirá en detalle una
realización preferida de la invención, únicamente a título de
ejemplo, con referencia a los siguientes dibujos:
- la figura 1 es un diagrama de bloques que
muestra un sistema de ordenador;
- la figura 2 es un diagrama de bloques que
muestra la relación entre los dispositivos maestros, el controlador
del bus y un dispositivo esclavo;
- la figura 3 es un diagrama de bloques que
muestra el circuito lógico de realimentación del controlador del
bus mostrado en la figura 2;
- la figura 4 es una representación de un
diagrama de flujo que muestra el funcionamiento del sistema de
control dinámico; y
- la figura 5 es un diagrama de tiempos que
muestra operaciones a título de ejemplo del sistema de control
dinámico.
Con referencia a la figura 1, un diagrama de
bloques muestra un sistema de ordenador representado genéricamente
por 100, sistema de ordenador 100 que preferiblemente se encuentra
en una única pastilla de circuito integrado. El sistema de
ordenador 100 posee un cierto número de dispositivos y un bus. En
concreto, el sistema de ordenador 100 tiene varios dispositivos
maestros incluyendo una 4XX PPC CPU (4XX PowerPC central processing
unit, unidad central de procesamiento del PowerPC 4XX) 102, un
controlador DMA (direct memory access, acceso directo a memoria)
104, y un PLB (PowerPC local bus, bus local del PowerPC) maestro
106. Además, el sistema de ordenador 100 posee también una EBIU
(external bus interface unit, unidad de interfaz con el bus externo)
108, que incluye un controlador DRAM (dynamic random access memory,
memoria de acceso aleatorio dinámica) 108a y un controlador I/O
(input/output, entrada/salida) 108b. Adicionalmente, el sistema de
ordenador 100 posee también un OPB (on-chip
peripheral bus, bus periférico integrado) puente 110, un OPB maestro
112, un OPB esclavo 114, un puerto paralelo 116 y un puerto serie
118.
Finalmente, el sistema de ordenador 100 posee
también dos controladores del bus, un controlador del bus indicado
genéricamente por 120 y un controlador del bus indicado
genéricamente por 122. El controlador del bus 120 incluye un
árbitro 130, un circuito lógico de realimentación 131 y un Bus Local
del PowerPC 4XX, 132. El controlador del bus 122 incluye un árbitro
134, un circuito lógico de realimentación 135 y un bus periférico
integrado 136.
La 4XX PPC CPU 102, el controlador DMA 104 y el
PLB maestro 106 son ejemplos de dispositivos "maestros", y
pueden recibir los nombres de "Maestro 1", "Maestro 2" y
"Maestro 3", respectivamente. La EBIU 108 y el OPB puente 110
son ejemplos de dispositivos "esclavos".
El Maestro 1, 102, el Maestro 2, 104, y el
Maestro 3, 106, son cada uno de ellos conectable, de forma
operativa, al controlador del bus 120. Además, el dispositivo
esclavo 108 y el dispositivo esclavo 110 son también conectables,
de forma operativa, al controlador del bus 120. En el sistema de
ordenador representado genéricamente por 100, el esclavo 110 (es
decir, el OPB puente) actúa como un dispositivo esclavo y conecta de
forma operativa uno cualquiera de los dispositivos Maestro 1, 102,
Maestro 2, 104, y Maestro 3, 106, al controlador del bus 122.
Como se representa en la figura 1, la solución
descrita en esta patente puede facilitar la interconexión de una
pluralidad de dispositivos o funciones maestros a un bus común
compartido, pero, de forma similar, puede facilitar también la
interconexión de una pluralidad de dispositivos esclavos a un bus
común compartido. En una realización preferida, las funciones
maestras y las funciones esclavas están contenidas dentro de una
única pastilla de circuitos integrados, pero puede utilizarse la
misma solución para conectar dispositivos localizados en una
pastilla individual, tal como el sistema de ordenador 100, a
dispositivos localizados en otra pastilla a través del bus externo
140.
A continuación, y con referencia a la figura 2,
se describirá el funcionamiento del sistema de control dinámico,
incluyendo el controlador del bus 120. Cada dispositivo maestro
tiene un temporizador de latencia. Por ejemplo, el Maestro 1, 102,
tiene un temporizador de latencia 102a; el Maestro 2, 104, tiene un
temporizador de latencia 104a; y el Maestro 3, 106, tiene un
temporizador de latencia 106a.
En una realización, el esquema de arbitraje del
bus llevado a cabo por el controlador del bus 120 utiliza un
esquema de prioridad dinámica. Bajo este esquema, cada dispositivo
maestro tiene un nivel de prioridad asociado. En un esquema de
prioridad concreto, el nivel de prioridad puede ser uno de los
cuatro niveles representados por una señal de prioridad de petición
de dos bits. Los niveles de prioridad de petición son los
siguientes, de mayor a menor prioridad: "11" que representa un
nivel de prioridad "alto"; "10" que representa un nivel
de prioridad "medio alto", "01" que representa un nivel de
prioridad "medio bajo" y "00" que representa un nivel de
prioridad "bajo". Los expertos en la materia entenderán que
puede utilizarse una variedad de esquemas de prioridad
diferentes.
En funcionamiento, un dispositivo maestro envía
al controlador del bus 120 una petición de bus y una correspondiente
prioridad de la petición. Por ejemplo, el Maestro 1, 102, al
realizar una petición de bus, enviará simultáneamente al
controlador del bus 120 una señal de petición de bus 202 y una señal
de prioridad de la petición 204.
Si el controlador del bus 120 recibe peticiones
del bus simultáneamente procedentes de más de un dispositivo
maestro, el árbitro 130 determina si el bus 132 está disponible,
compara todos los niveles de prioridad de las peticiones y asigna
el control del bus 132 al dispositivo maestro que tenga el nivel de
prioridad mayor. Una vez que el árbitro 130 ha asignado el control
del bus 132 al dispositivo maestro que presentó la mayor prioridad
de petición junto con su petición de bus, el circuito lógico de
realimentación 131 determina entonces el mayor nivel de prioridad
de la petición entre aquellos dispositivos que tienen peticiones del
bus que están aún pendientes. La prioridad de la petición pendiente
resultante en ese momento, junto con el hecho de que está pendiente
alguna petición, se envía entonces a cada dispositivo maestro a
través de los enlaces 151 y 152, respectivamente. Esta información
se utiliza entonces por el dispositivo maestro que tiene en ese
momento el control del bus para determinar si termina o no su
control del bus antes de completar su transferencia de datos con el
fin de permitir a otro dispositivo maestro utilizar el bus. En otras
palabras, el dispositivo maestro que tiene en ese momento el
control del bus puede continuar utilizando el bus hasta que se hayan
transferido todos los datos que necesita transferir en ese momento
cambiando, de forma dinámica, su temporizador de latencia (es
decir, ignorando su temporizador de latencia expirado) dependiendo
de la prioridad de la petición pendiente en ese momento.
Con referencia a la figura 2, el Maestro 1, 102,
envía al controlador del bus 120 su petición de bus 202 y su
prioridad de la petición 204. De forma similar, el Maestro 2 envía
al controlador del bus 120 su petición de bus 212 y su prioridad de
la petición 214. Finalmente, el Maestro 3, 106, envía al controlador
del bus 120 su petición de bus 222 y su prioridad de la petición
224. Una vez que el controlador del bus 120 recibe una o más
peticiones de bus y las correspondientes prioridades de las
peticiones, el árbitro 130, que es un componente del controlador
del bus 120, identifica el dispositivo maestro que presentó una
petición de bus con la mayor prioridad de la petición, y asigna el
bus 132 al dispositivo maestro correspondiente. El dispositivo
maestro al que le fue asignado el bus recibe una señal de
asignación, retira su señal de petición y comienza a enviar una
transferencia de ráfagas. A título de ejemplo, suponiendo que el
árbitro 130 hubiera determinado que el Maestro 1, 102, tenía la
mayor prioridad, el árbitro 130 envía una asignación 208 al Maestro
1, 102; el Maestro 1, 102, recibe la asignación 208; retira su
petición 202; y comienza el envío de datos en "ráfagas" 206 al
controlador del bus 120, que, a través del bus 132, envía las
ráfagas al dispositivo esclavo 108. De forma similar, si el Maestro
2, 104, hubiera tenido la mayor prioridad, recibiría la asignación
218, retiraría su petición 212 y comenzaría el envío de datos en
"ráfagas" 216. Finalmente, si el Maestro 3, 106, hubiera
tenido la mayor prioridad, recibiría la asignación 228, retiraría su
petición 222 y comenzaría el envío de datos en "ráfagas"
226.
Durante cada ciclo de reloj el circuito lógico
de realimentación 131 procesa las peticiones de bus pendientes. En
concreto, el circuito lógico de realimentación 131 compara las
señales de petición de bus para determinar si sigue aún pendiente
alguna petición. Además, el circuito lógico de realimentación 131
compara también el nivel de prioridad de la petición de cada
petición pendiente para identificar la mayor prioridad de las
peticiones pendientes entre las peticiones pendientes en ese
momento. El circuito 131 transmite entonces, durante cada ciclo de
reloj, el valor de la mayor prioridad de las peticiones pendientes
en ese momento y el hecho de que está pendiente alguna petición a
cada dispositivo maestro a través de los enlaces 151 y 152,
respectivamente. Debe entenderse por los expertos en la materia que
la señal de prioridad de la petición pendiente y la señal de
petición pendiente pueden enviarse a los dispositivos maestros de
forma separada o como una señal combinada.
Con referencia a la figura 3, se muestra una
realización preferida del circuito lógico de realimentación 131.
Como se representa en la figura 3, las peticiones de bus de los
dispositivos maestros, a saber, petición 202 del Maestro 1,
petición 212 del Maestro 2 y petición 222 del Maestro 3, se comparan
por el circuito lógico de realimentación 131 utilizando una puerta
lógica "O" 240. Si cualquiera de los dispositivos maestros
tiene en ese momento una petición de bus pendiente, la salida de la
puerta "O" 240 será nivel alto o un "1" lógico. La salida
de la puerta lógica "O" 240 representa la señal de petición
pendiente que se realimenta a cada dispositivo maestro por el
enlace 152.
Además, las señales de petición de bus
procedentes de cada uno de los dispositivos maestros se combinan
también con sus correspondientes niveles de prioridad de las
peticiones utilizando lógica de puertas "Y". Aunque solamente
se muestra una única línea de comunicaciones (por ejemplo, la línea
de comunicaciones entre la prioridad de la petición del Maestro 1,
204, y la puerta "Y" 242), los expertos en la materia
entenderán que esta línea única representa colectivamente el total
de líneas de entrada de la señal de prioridad de la petición a la
puerta "Y" 242. En una realización concreta, la petición de bus
del Maestro 1, 202, se combina con su correspondiente prioridad de
la petición del Maestro 1, 204, utilizando la puerta lógica "Y"
242. La petición del Maestro 2, 212, y la correspondiente prioridad
de la petición del Maestro 2, 214, se combinan utilizando la puerta
lógica "Y" 244. Finalmente, la petición del Maestro 3, 222, y
la correspondiente prioridad de la petición del Maestro 3, 224, se
combinan utilizando la puerta lógica "Y" 246. Los resultados de
las salidas de las puertas lógicas "Y" 242, 244 y 246 se
comparan utilizando el comparador 248. El resultado del comparador
248 representa la señal de prioridad de la petición pendiente que
indica el nivel de prioridad más alto entre todas las peticiones de
bus pendientes en ese momento. La señal de prioridad de la petición
pendiente se envía a cada dispositivo maestro a través del enlace
151.
La figura 4 es un diagrama de flujo y la figura
5 es un diagrama de tiempos que representan el procedimiento
anterior. Con referencia primero a la figura 4, se muestra un
diagrama de flujo del funcionamiento del sistema de control
dinámico. Las operaciones representadas en el diagrama de flujo de
la figura 4 hay que verlas desde el punto de vista de un
dispositivo maestro. El sistema comienza cuando un dispositivo
maestro realiza una petición de bus en 402. El dispositivo maestro
comienza entonces a comprobar durante cada ciclo de reloj, en 404,
para determinar si ha recibido una asignación del bus procedente del
árbitro. Si no se ha recibido la asignación, el dispositivo maestro
continúa pidiendo el bus y comprobando su señal de asignación
durante cada ciclo de reloj. Si el dispositivo maestro recibe una
señal de asignación en 404, el dispositivo maestro toma control del
bus, pone su contador de latencia a "0" y puede comenzar una
transferencia de ráfagas en 406.
Después, durante cada ciclo, el dispositivo
maestro comprueba para ver si su temporizador de latencia ha
expirado en 408. Si su temporizador de latencia no ha expirado, el
dispositivo maestro determina entonces si necesita aún controlar el
bus (por ejemplo, si tiene más transferencias que enviar a través
del bus) en 412. Si el dispositivo maestro tiene más transferencias
que enviar a través del bus, entonces el dispositivo maestro
continúa enviando ráfagas en 414 y repite las operaciones de los
bloques de decisión 408, 410 y 412 durante cada ciclo. Si el
dispositivo maestro determina en 412 que ya no necesita el bus (por
ejemplo, no tiene más transferencias que realizar a través del
bus), el dispositivo maestro libera el bus en 416, lo que completa
la transferencia de datos.
Si el dispositivo maestro determina en 408 que
su temporizador de latencia ha expirado, entonces determina en 424
si la prioridad de la petición pendiente es mayor que su propia
prioridad. Si la prioridad de la petición pendiente es mayor que la
prioridad del dispositivo maestro, el dispositivo maestro libera el
bus en 430. Si la prioridad de la petición pendiente no es mayor
que su propia prioridad, el dispositivo maestro determina entonces
si tiene más transferencias que realizar en 426. Si tiene más
transferencias que realizar (o necesita continuar controlando el
bus), el dispositivo maestro continúa enviando ráfagas durante ese
ciclo en 428, y vuelve al paso 424 para continuar el proceso de
comparación de la prioridad de la petición pendiente con respecto a
su propia prioridad durante el ciclo siguiente. Si el dispositivo
maestro determina en 426 que ya no necesita el bus, entonces el
dispositivo maestro libera el bus en 427 y para.
Una vez que el dispositivo maestro libera el bus
en 430, determina en 432 si tiene más transferencias que realizar
(es decir, si necesita de nuevo control del bus). Si el dispositivo
maestro determina en 432 que no necesita controlar el bus durante
más ciclos, entonces para el proceso hasta que envíe una nueva
petición de bus al controlador del bus. Por el contrario, si el
dispositivo maestro determina en 432 que necesita de nuevo control
del bus durante más ciclos adicionales, entonces el dispositivo
maestro envía otra petición al controlador del bus en 402. El
proceso continúa entonces como se ha descrito anteriormente.
Con referencia a la figura 5, se muestra en ella
un diagrama de tiempos que representa un ejemplo del funcionamiento.
En el ejemplo concreto representado en la figura 5, el árbitro 130
recibe durante el Ciclo 1 una petición de bus procedente del
Maestro 1 que tiene una prioridad de la petición de "10".
Puesto que no hay pendiente ninguna otra petición, el árbitro 130
envía una señal de asignación al Maestro 1 durante el Ciclo 2. En
respuesta a la recepción de una señal de asignación, el Maestro 1
retira su petición, reinicia su temporizador de latencia y comienza
a controlar el bus durante el Ciclo 2. En el ejemplo representado en
la figura 5, el Maestro 1 comienza inmediatamente a enviar una
ráfaga a través del bus durante el Ciclo 2. También durante el Ciclo
2, el circuito lógico de realimentación 131 (ver figura 2)
determina que no hay ninguna otra petición pendiente y envía un
"0" a cada dispositivo maestro.
Durante el Ciclo 3, el Maestro 2 envía una
petición de bus que tiene una prioridad de la petición de "10".
El circuito lógico de realimentación 131 determina que la petición
de bus del Maestro 2 está pendiente, y que tiene una prioridad de
la petición de "10". Como resultado, el circuito lógico de
realimentación 131 envía señales a cada dispositivo maestro durante
el Ciclo 3 que indican que una solicitud está pendiente y que la
prioridad de la solicitud pendiente es "10". Durante el Ciclo
3, el Maestro 1 recibe la señal de prioridad de la petición
pendiente y la señal de petición pendiente procedentes del circuito
lógico de realimentación 131. En respuesta, el Maestro 1 compara la
prioridad de la petición pendiente "10" contra su propia
prioridad "10", comprueba su temporizador de latencia para ver
si ha expirado, y determina que puede continuar controlando el bus.
Como tal, el Maestro 1 continúa controlando el bus durante el Ciclo
3.
El controlador del bus 120 recibe durante el
Ciclo 4 una petición de bus procedente del Maestro 3. Esta petición
de bus tiene un nivel de prioridad de "01". En respuesta, el
circuito lógico de realimentación 131 determina que en ese momento
existen pendientes varias peticiones de bus y compara también los
niveles de prioridad de las peticiones y determina que la mayor
prioridad de las peticiones pendientes es "10". Como resultado,
el circuito lógico de realimentación 131 pone la señal de petición
pendiente a "1" y pone también la señal de prioridad pendiente
a "10" correspondiente al mayor nivel de prioridad de las
peticiones pendientes, y transmite estas señales a cada dispositivo
maestro.
En respuesta a la recepción de la señal de
petición pendiente y de la prioridad de la petición pendiente, el
Maestro 1 compara durante el Ciclo 4 la prioridad de la petición
pendiente con su propia prioridad. El Maestro 1 determina que su
propia prioridad es al menos igual que la prioridad de la petición
pendiente durante el Ciclo 4. Sin embargo, también durante el Ciclo
4, el Maestro 1 determina que su temporizador de latencia ha
expirado. No obstante, puesto que su prioridad es al menos igual que
la prioridad de la petición pendiente, el Maestro 1 cambia de forma
dinámica su temporizador de latencia ignorándole, y continúa
controlando el bus y enviando sus "ráfagas". Este proceso
continúa durante los Ciclos 5 y 6.
Durante el Ciclo 7, el Maestro 3 decide enviar
una petición de bus diferente que tiene una prioridad de petición
"11". En respuesta, el circuito lógico de realimentación 131
determina que está pendiente alguna petición, y que el mayor nivel
de prioridad de la petición pendiente es "11". Como resultado,
el circuito lógico de realimentación 131 envía durante el Ciclo 7
una señal de petición pendiente y un nivel de prioridad de la
petición pendiente de "11" a cada uno de los dispositivos
maestros.
El Maestro 1 recibe durante el Ciclo 7 la señal
de petición pendiente y el nivel de prioridad de la petición
pendiente de "11" procedente del circuito lógico de
realimentación 131. En respuesta, el Maestro 1 compara el nivel de
prioridad de la petición pendiente de "11" con su propio nivel
de prioridad de "10" y determina que es mayor el nivel de
prioridad de la petición pendiente. Como resultado, el Maestro 1
durante el Ciclo 7 para el envío de sus "ráfagas" y abandona
el control del bus.
Durante el Ciclo 8, el árbitro 130 determina que
el bus está disponible, y en base a una comparación de los niveles
de prioridad de las peticiones pendientes del Maestro 2 y del
Maestro 3, determina que el Maestro 3 tiene la mayor prioridad de
las peticiones pendientes, y asigna durante el Ciclo 8 el bus al
Maestro 3. Como resultado, el Maestro 3 comienza a controlar el bus
durante el Ciclo 8 y comienza a enviar ráfagas a través del bus.
Durante los Ciclos 9 y 10, el circuito lógico de realimentación
continúa el proceso como se ha descrito anteriormente. En base a la
prioridad y al temporizador de latencia del Maestro 3, el Maestro 3
continúa enviando sus "ráfagas" a través del bus hasta que
finaliza sus ráfagas durante el Ciclo 10. El Maestro 3 abandona
entonces el control del bus durante el Ciclo 10 una vez que ha
completado el envío de sus ráfagas.
Finalmente, el árbitro 130 determina durante el
Ciclo 11 que el bus está disponible. Como resultado, el árbitro 130
determina que la petición de bus del Maestro 2 está aún pendiente y
que tiene la mayor prioridad de las peticiones pendientes. El
árbitro 130 asigna durante el Ciclo 11 el bus al Maestro 2 y, en
respuesta, el Maestro 2 comienza a controlar el bus durante el
Ciclo 11 y comienza a enviar ráfagas a través del bus.
Nótese que el árbitro 130 puede utilizar
cualquiera de los métodos conocidos de selección de niveles de
prioridad en competencia. Por consiguiente, la implementación del
árbitro 130 puede ser dependiente del esquema de arbitraje
deseado.
Se entenderá que la invención no está limitada a
la transferencia de un tipo específico de datos o señales por el
bus, sino que es aplicable a la transferencia de cualquier tipo de
datos tales como datos de instrucciones, datos de direcciones,
cualificadores de transferencias y de buses de datos, señales en
forma de ráfagas, señales de bloqueo del bus, etc. Además, aunque
la realización preferida ha predefinido el estatus de dispositivos
maestros y esclavos, cualquier experto en la materia comprenderá que
cualquier dispositivo concreto puede ser un dispositivo esclavo
para una operación y un dispositivo maestro para una operación
diferente. También debe entenderse que la presente invención no
solamente es aplicable a transferencias de "ráfagas", sino que
también es aplicable a mecanismos de bloqueo de buses y otros usos
relacionados con el control del bus que pueden afectar al
rendimiento del bus. Se entenderá también que en lugar de utilizar
lógica positiva de forma que una tensión positiva corresponde a un
estado lógico de "1", puede utilizarse cualquier medio adecuado
para representar un estado activo o inactivo.
Los expertos en la materia entenderán también
que la presente invención puede tomar la forma de una realización
completamente tipo "hardware", una realización completamente
tipo "software", o una realización que combine aspectos de
"hardware" y de "software". Típicamente, cada bloque o
paso del diagrama de tiempos y del diagrama de flujo se implementa
mediante instrucciones de un programa de ordenador cargado en un
ordenador u otro aparato de procesamiento de datos programable para
generar una máquina tal que las instrucciones que ejecute en el
ordenador u otro aparato programable creen los medios para
implementar las funciones especificadas en el(los)
bloque(s) del diagrama de tiempos o del diagrama de flujo.
Estas instrucciones de programas de ordenador se almacenan,
generalmente, en una memoria leíble mediante ordenador que pueda
dirigir un ordenador u otro aparato programable para que funcione
de una manera concreta mediante la realización de una serie de pasos
operativos en el ordenador u otro aparato programable.
Claims (8)
1. Un método para controlar de forma dinámica el
acceso a un bus que tiene una pluralidad de dispositivos conectable
de forma operativa al mismo, teniendo cada uno de dichos
dispositivos asociado un nivel de prioridad, comprendiendo dicho
método el paso de:
recibir de un segundo de dichos dispositivos una
petición para controlar el bus y un nivel de prioridad asociado a
la petición;
caracterizado por el paso de:
transmitir a un primero de dichos dispositivos
que tiene el control del acceso al bus el nivel de prioridad
asociado a la petición recibida del segundo dispositivo y una señal
de petición pendiente asociada, en respuesta a la recepción de la
petición procedente del segundo dispositivo.
2. El método de la reivindicación 1, en el que
el paso de transmisión está precedido por los pasos de:
comparar el nivel de prioridad asociado al
segundo dispositivo con los niveles de prioridad asociados con cada
dispositivo distinto del primer dispositivo para identificar el
nivel de prioridad que tiene el nivel más alto; y
sustituir el segundo nivel de prioridad por el
nivel de prioridad identificado.
3. El método de una cualquiera de las
reivindicaciones anteriores, que comprende además el paso inicial
de petición al controlador del bus del control del bus por parte del
primer dispositivo de la pluralidad de dispositivos en el que la
petición del primer dispositivo tiene un nivel de prioridad
asociado.
4. El método de la reivindicación 3, en el que
dicho paso inicial comprende además los pasos de:
recibir en el controlador del bus de la
pluralidad de dispositivos al menos una petición para controlar el
bus y un nivel de prioridad asociado con la petición;
arbitrar entre los niveles de prioridad
asociados con las peticiones recibidas de los dispositivos para
identificar un primer nivel de prioridad que tiene el mayor valor
entre los niveles de prioridad recibidos y para identificar al
dispositivo asociado al primer nivel de prioridad identificado como
un primer dispositivo; y
asignar el control del bus al primer dispositivo
como respuesta al paso de arbitraje.
5. El método de una cualquiera de las
reivindicaciones anteriores, que comprende además el paso de:
transferir datos entre el primer dispositivo y
dicho bus en respuesta a dicho paso de control.
6. El método de la reivindicación 5, en el que
dichos datos comprenden al menos uno entre datos de aplicaciones,
instrucciones de programas de ordenador y datos de direcciones.
7. Un sistema para controlar de forma dinámica
el acceso a un bus que tiene una pluralidad de dispositivos
conectable de forma operativa al mismo, teniendo cada uno de dichos
dispositivos asociado un nivel de prioridad, comprendiendo dicho
sistema:
medios para recibir de un segundo de dichos
dispositivos una petición para controlar el bus y un nivel de
prioridad asociado con la petición;
caracterizado porque dicho sistema
comprende:
medios de envío para transmitir el nivel de
prioridad asociado a la petición recibida del segundo dispositivo a
un primero de dichos dispositivos que tiene el control del acceso al
bus, en respuesta a la recepción de la petición procedente del
segundo dispositivo.
8. Un producto de programa de ordenador para
controlar de forma dinámica el acceso a un bus que tiene una
pluralidad de dispositivos conectable de forma operativa al mismo,
teniendo cada uno de dichos dispositivos asociado un nivel de
prioridad, comprendiendo dicho producto de programa de
ordenador:
un medio de almacenamiento leíble mediante
ordenador que tiene medios de codificación leíbles mediante
ordenador integrados en dicho medio de almacenamiento,
comprendiendo dichos medios de codificación leíbles mediante
ordenador:
instrucciones de ordenador para recibir de un
segundo de dichos dispositivos una petición para controlar el bus y
un nivel de prioridad asociado a la petición;
caracterizado porque dichos medios de
codificación leíbles mediante ordenador comprenden:
instrucciones de ordenador para transmitir a un
primero de dichos dispositivos que tiene el control del acceso al
bus el nivel de prioridad asociado a la petición recibida del
segundo dispositivo y una señal de petición pendiente asociada, en
respuesta a la recepción de la petición procedente del segundo
dispositivo.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/823,736 US5862353A (en) | 1997-03-25 | 1997-03-25 | Systems and methods for dynamically controlling a bus |
US823736 | 1997-03-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2265160T3 true ES2265160T3 (es) | 2007-02-01 |
Family
ID=25239587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES98302080T Expired - Lifetime ES2265160T3 (es) | 1997-03-25 | 1998-03-19 | Sistema y metodo para controlar un bus. |
Country Status (6)
Country | Link |
---|---|
US (1) | US5862353A (es) |
EP (1) | EP0867814B1 (es) |
JP (1) | JP3596799B2 (es) |
AT (1) | ATE326725T1 (es) |
DE (1) | DE69834519T2 (es) |
ES (1) | ES2265160T3 (es) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6076127A (en) * | 1996-11-06 | 2000-06-13 | International Business Machines Corporation | Configuration of a single point bus arbitration scheme using on-chip arbiters |
JP3429149B2 (ja) * | 1996-12-19 | 2003-07-22 | ソニー株式会社 | 伝送装置及びサーバ装置並びに伝送方法 |
US6055584A (en) * | 1997-11-20 | 2000-04-25 | International Business Machines Corporation | Processor local bus posted DMA FlyBy burst transfers |
US6784890B1 (en) * | 1998-03-02 | 2004-08-31 | Intel Corporation | Accelerated graphics port expedite cycle throttling control mechanism |
US6154769A (en) * | 1998-03-27 | 2000-11-28 | Hewlett-Packard Company | Scheduling server requests to decrease response time and increase server throughput |
US6085271A (en) * | 1998-04-13 | 2000-07-04 | Sandcraft, Inc. | System bus arbitrator for facilitating multiple transactions in a computer system |
US5991900A (en) * | 1998-06-15 | 1999-11-23 | Sun Microsystems, Inc. | Bus controller |
US6240476B1 (en) * | 1998-08-21 | 2001-05-29 | International Business Machines Corporation | Dynamic allocation of bus master control lines to peripheral devices |
US6266718B1 (en) * | 1998-10-14 | 2001-07-24 | Micron Technology, Inc. | Apparatus for controlling data transfer operations between a memory and devices having respective latencies |
US6304923B1 (en) | 1998-10-14 | 2001-10-16 | Micron Technology, Inc. | Method for prioritizing data transfer request by comparing a latency identifier value received from an I/O device with a predetermined range of values |
US6438629B1 (en) * | 1999-02-02 | 2002-08-20 | Maxtor Corporation | Storage device buffer access control in accordance with a monitored latency parameter |
JP4030216B2 (ja) * | 1999-03-09 | 2008-01-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロプロセッサとマイクロプロセッサを含むシステム及びマイクロプロセッサのバスサイクル制御方法 |
JP2001184300A (ja) * | 1999-12-27 | 2001-07-06 | Hitachi Ltd | データ処理プロセッサ |
DE60024421T2 (de) * | 2000-06-16 | 2006-08-03 | Stmicroelectronics S.R.L., Agrate Brianza | Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbusse, und entsprechendes System |
US6587905B1 (en) | 2000-06-29 | 2003-07-01 | International Business Machines Corporation | Dynamic data bus allocation |
SE516758C2 (sv) * | 2000-12-22 | 2002-02-26 | Ericsson Telefon Ab L M | Digitalt bussystem |
KR20030012049A (ko) * | 2001-07-30 | 2003-02-12 | 엘지전자 주식회사 | 아비터의 액세스 제어 방법 및 장치 |
US7107374B1 (en) * | 2001-09-05 | 2006-09-12 | Xilinx, Inc. | Method for bus mastering for devices resident in configurable system logic |
JP2003186824A (ja) * | 2001-12-18 | 2003-07-04 | Canon Inc | バス使用権優先度調整装置およびシステム |
US6880028B2 (en) * | 2002-03-18 | 2005-04-12 | Sun Microsystems, Inc | Dynamic request priority arbitration |
KR100455396B1 (ko) * | 2002-10-14 | 2004-11-06 | 삼성전자주식회사 | 마스터 블록들의 우선 순위를 결정하는 파라미터 발생회로 및 파라미터 발생 방법. |
JP4266619B2 (ja) * | 2002-11-25 | 2009-05-20 | 株式会社ルネサステクノロジ | 調停回路 |
US7024506B1 (en) * | 2002-12-27 | 2006-04-04 | Cypress Semiconductor Corp. | Hierarchically expandable fair arbiter |
US7478025B1 (en) * | 2003-04-18 | 2009-01-13 | Unisys Corporation | System and method to support dynamic partitioning of units to a shared resource |
US7350117B2 (en) * | 2004-10-05 | 2008-03-25 | International Business Machines Corporation | Management of microcode lock in a shared computing resource |
US20060095905A1 (en) * | 2004-11-01 | 2006-05-04 | International Business Machines Corporation | Method and apparatus for servicing threads within a multi-processor system |
US7392418B2 (en) * | 2004-12-17 | 2008-06-24 | International Business Machines Corporation | Capacity on demand using signaling bus control |
CN100365602C (zh) * | 2004-12-31 | 2008-01-30 | 北京中星微电子有限公司 | 实现多个主动装置对单一总线上从动装置进行存取的设备 |
US7467245B2 (en) * | 2005-07-22 | 2008-12-16 | Cisco Technology, Inc. | PCI arbiter |
US7809993B2 (en) * | 2006-01-17 | 2010-10-05 | International Business Machines Corporation | Apparatus, system, and method for receiving digital instructions at devices sharing an identity |
TWI318355B (en) * | 2006-04-17 | 2009-12-11 | Realtek Semiconductor Corp | System and method for bandwidth sharing in busses |
CN101692212B (zh) * | 2009-06-19 | 2012-11-14 | 无锡中星微电子有限公司 | 一种访问存储器的方法、系统和总线仲裁装置 |
US8751715B1 (en) * | 2010-03-31 | 2014-06-10 | Enc Corporation | System and method for controlling device access |
US9684633B2 (en) * | 2013-01-24 | 2017-06-20 | Samsung Electronics Co., Ltd. | Adaptive service controller, system on chip and method of controlling the same |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3886524A (en) * | 1973-10-18 | 1975-05-27 | Texas Instruments Inc | Asynchronous communication bus |
JPS5812611B2 (ja) * | 1975-10-15 | 1983-03-09 | 株式会社東芝 | デ−タテンソウセイギヨホウシキ |
US4275440A (en) * | 1978-10-02 | 1981-06-23 | International Business Machines Corporation | I/O Interrupt sequencing for real time and burst mode devices |
IT1100916B (it) * | 1978-11-06 | 1985-09-28 | Honeywell Inf Systems | Apparato per gestione di richieste di trasferimento dati in sistemi di elaborazione dati |
US4375639A (en) * | 1981-01-12 | 1983-03-01 | Harris Corporation | Synchronous bus arbiter |
JPS58107934A (ja) * | 1981-12-21 | 1983-06-27 | Matsushita Electric Ind Co Ltd | バス制御方式 |
US4535330A (en) * | 1982-04-29 | 1985-08-13 | Honeywell Information Systems Inc. | Bus arbitration logic |
US4602327A (en) * | 1983-07-28 | 1986-07-22 | Motorola, Inc. | Bus master capable of relinquishing bus on request and retrying bus cycle |
US5388228A (en) * | 1987-09-30 | 1995-02-07 | International Business Machines Corp. | Computer system having dynamically programmable linear/fairness priority arbitration scheme |
US5140680A (en) * | 1988-04-13 | 1992-08-18 | Rockwell International Corporation | Method and apparatus for self-timed digital data transfer and bus arbitration |
JP2633900B2 (ja) * | 1988-04-22 | 1997-07-23 | 株式会社日立製作所 | 共通バス制御方法 |
US4987529A (en) * | 1988-08-11 | 1991-01-22 | Ast Research, Inc. | Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters |
EP0426413B1 (en) * | 1989-11-03 | 1997-05-07 | Compaq Computer Corporation | Multiprocessor arbitration in single processor arbitration schemes |
JPH0810445B2 (ja) * | 1990-09-21 | 1996-01-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 動的バス調停方法及び装置 |
CA2051029C (en) * | 1990-11-30 | 1996-11-05 | Pradeep S. Sindhu | Arbitration of packet switched busses, including busses for shared memory multiprocessors |
US5301283A (en) * | 1992-04-16 | 1994-04-05 | Digital Equipment Corporation | Dynamic arbitration for system bus control in multiprocessor data processing system |
JP2854474B2 (ja) * | 1992-09-29 | 1999-02-03 | 三菱電機株式会社 | バス使用要求調停装置 |
US5546548A (en) * | 1993-03-31 | 1996-08-13 | Intel Corporation | Arbiter and arbitration process for a dynamic and flexible prioritization |
US5530838A (en) * | 1993-06-10 | 1996-06-25 | Ricoh Company, Ltd. | Method and apparatus for controlling access to memory which is common to plural, priority-ordered central processing units and which is indirectly accessible via a transfer control unit |
US5471590A (en) * | 1994-01-28 | 1995-11-28 | Compaq Computer Corp. | Bus master arbitration circuitry having improved prioritization |
US5623672A (en) * | 1994-12-23 | 1997-04-22 | Cirrus Logic, Inc. | Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment |
US5572686A (en) * | 1995-06-05 | 1996-11-05 | Apple Computer, Inc. | Bus arbitration scheme with priority switching and timer |
-
1997
- 1997-03-25 US US08/823,736 patent/US5862353A/en not_active Expired - Lifetime
-
1998
- 1998-03-09 JP JP05661398A patent/JP3596799B2/ja not_active Expired - Fee Related
- 1998-03-19 DE DE69834519T patent/DE69834519T2/de not_active Expired - Lifetime
- 1998-03-19 EP EP98302080A patent/EP0867814B1/en not_active Expired - Lifetime
- 1998-03-19 ES ES98302080T patent/ES2265160T3/es not_active Expired - Lifetime
- 1998-03-19 AT AT98302080T patent/ATE326725T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US5862353A (en) | 1999-01-19 |
DE69834519T2 (de) | 2007-05-03 |
EP0867814A3 (en) | 2004-11-10 |
DE69834519D1 (de) | 2006-06-22 |
EP0867814B1 (en) | 2006-05-17 |
JPH10293745A (ja) | 1998-11-04 |
ATE326725T1 (de) | 2006-06-15 |
JP3596799B2 (ja) | 2004-12-02 |
EP0867814A2 (en) | 1998-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2265160T3 (es) | Sistema y metodo para controlar un bus. | |
US6704821B2 (en) | Arbitration method and circuit architecture therefore | |
US6014729A (en) | Shared memory arbitration apparatus and method | |
US5239631A (en) | Cpu bus allocation control | |
JPH08227392A (ja) | 待ち時間及びシャドー・タイマを有するバス・システム | |
EP0539076A1 (en) | Controlling bus allocation using arbitration hold | |
US7013357B2 (en) | Arbiter having programmable arbitration points for undefined length burst accesses and method | |
US20070067527A1 (en) | Data transfer bus system connecting a plurality of bus masters | |
CS304290A2 (en) | Microprocessor stopping and blocking circuits | |
JP2003186824A (ja) | バス使用権優先度調整装置およびシステム | |
US5822549A (en) | Computer system and bus controller for controlling access to a computer bus | |
EP1811393A1 (en) | Method and system for data transfer | |
USRE40261E1 (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
JPH11238033A (ja) | 情報処理装置用バス、バス制御方法及びバス制御装置 | |
TW200400438A (en) | Bus arbiter for integrated circuit systems | |
JP4666143B2 (ja) | データ転送処理装置 | |
JP2007018280A (ja) | バスシステムの制御方法及び制御回路 | |
JPH0696014A (ja) | バス使用優先順位制御装置 | |
US6425031B1 (en) | Method for exchanging signals between modules connected via a bus, and a device for carrying out said method | |
JP2002288120A (ja) | 調停装置およびバスシステム | |
WO1997029432A1 (en) | Apparatus for programmably defining the access latency | |
US20060242342A1 (en) | Software Programmable Dynamically Reconfigurable Scheme for Controlling Request Grant and Masking for Ultra High Priority Accessor During Arbitration | |
JP2001117860A (ja) | メモリアクセス優先順位切替制御装置 | |
US5799160A (en) | Circuit and method for controlling bus arbitration | |
JPH04178869A (ja) | マルチプロセッサシステムの割込み制御装置とその割込み通信方法 |