ES2265160T3 - Sistema y metodo para controlar un bus. - Google Patents

Sistema y metodo para controlar un bus. Download PDF

Info

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
Application number
ES98302080T
Other languages
English (en)
Inventor
Juan G. Revilla
Thomas A. Satorius
Mark M. Schaffer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2265160T3 publication Critical patent/ES2265160T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling 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.
ES98302080T 1997-03-25 1998-03-19 Sistema y metodo para controlar un bus. Expired - Lifetime ES2265160T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) マルチプロセッサシステムの割込み制御装置とその割込み通信方法