MX2007007944A - Metodo y aparato para reducir la latencia de transferencia en una interconexion soc. - Google Patents

Metodo y aparato para reducir la latencia de transferencia en una interconexion soc.

Info

Publication number
MX2007007944A
MX2007007944A MX2007007944A MX2007007944A MX2007007944A MX 2007007944 A MX2007007944 A MX 2007007944A MX 2007007944 A MX2007007944 A MX 2007007944A MX 2007007944 A MX2007007944 A MX 2007007944A MX 2007007944 A MX2007007944 A MX 2007007944A
Authority
MX
Mexico
Prior art keywords
request
arbitrator
link
priority signal
slave
Prior art date
Application number
MX2007007944A
Other languages
English (en)
Inventor
Perry Willmann Remaklus Jr
Jaya Prakash Subramaniam Ganasan
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of MX2007007944A publication Critical patent/MX2007007944A/es

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)

Abstract

Las modalidades de la invencion se dirigen a un metodo y aparato para reducir la latencia de transferencia en un sistema de chip, el sistema en un chip comprende un enlace maestro, un enlace esclavo y un arbitro, en donde el enlace maestro, un enlace esclavo y un arbitro estan en comunicacion electronica entre ellos; una solicitud es transmitida desde el enlace maestro al arbitro, en donde una senal de prioridad esta asociada con un requerimiento de latencia; el arbitro revisa el requerimiento de latencia antes de transmitir la solicitud al enlace esclavo y determina si se eleva la senal de prioridad; la senal de solicitud es entonces transmitida desde el arbitro al enlace esclavo; el enlace esclavo cumple la solicitud y transmite una respuesta a la solicitud, en donde la transmision incluye la senal de prioridad.

Description

MÉTODO Y APARATO PARA REDUCIR LA LATENCIA DE TRANSFERENCIA EN UNA INTERCONEXIÓN SOC CAMPO DE LA INVENCIÓN Modalidades de la invención se enfocan a un método y aparato para solicitudes de transferencia en secuencia desde un enlace maestro a un enlace esclavo en una interconexión de Sistema en Chip ("SOC"). En particular, las modalidades se enfocan a un método y aparato para reducir la latencia de transferencia entre un enlace maestro y un enlace esclavo mediante la alteración de la prioridad de solicitudes en una interconexión SOC.
ANTECEDENTES DE LA INVENCIÓN La tecnología de Sistema-en-chip (SOC) opera y controla varios tipos de sistemas. En general, la tecnología SOC es el ensamble de todos los circuitos electrónicos necesarios y partes para un "sistema" (tal como un teléfono celular o cámara digital) en un circuito integrado sencillo ("IC"), generalmente conocido como un microchip . Los SOC típicamente incluyen iniciadores, también conocidos como enlaces maestros (por ejemplo, procesadores, máquinas de gráficos, máquinas de acceso de memoria directa ("dma"), y similares), enlaces objetivo (por ejemplo, controladores de memoria) , y enlaces de sistema, también conocidos como interconexiones. Para operar el sistema que el SOC pretende controlar, un enlace maestro inicia una solicitud de transferencia a un objetivo, también conocido como esclavo, a través del enlace del sistema o interconexión. Si múltiples maestros desean tener acceso a un esclavo particular de manera simultánea, las solicitudes de estos múltiples maestros deben ser procesadas a través de un arbitro central, o sistema de arbitraje. El sistema de arbitraje controla las comunicaciones entre los maestros y los esclavos; en particular, controla el orden en el cual los maestros se comunican con los esclavos . El orden en el cual los maestros se comunican con los esclavos puede ser importante si las solicitudes de los maestros están restringidas en latencia o tiempo. Típicamente, cada maestro en el SOC puede tener un requerimiento de latencia para cada solicitud. Un requerimiento de latencia identifica la restricción de tiempo, si la hay, para cumplir con la solicitud. Por ejemplo, se puede requerir que una máquina de video escriba un número determinado de cuadros/segundo para crear una ilustración o imagen, y puede escribir estos cuadros desde su memoria intermedia interna en la memoria principal. Si el controlador de memoria, es decir, el esclavo, no puede aceptar o dar servicio a estas solicitudes en una forma oportuna, la memoria intermedia en la máquina de video va a sobrepasar la potencia y la imagen producida quedará incompleta y cortada. Los requerimientos de latencia pueden ser dictados por el maestro particular, o el tipo particular de solicitud sin considerar al maestro que transmite la solicitud. Aunque los requerimientos de latencia de la solicitud pueden ser críticos, en sistemas actuales, no existe transferencia del requerimiento de latencia del maestro al esclavo. Por lo tanto, todas las solicitudes que tienen la misma prioridad son percibidas por el esclavo como de igual urgencia. Debido a ello, en algunos casos, las solicitudes que son más críticas en latencia pueden no ser respondidas en una forma oportuna. Cuando un maestro transmite una solicitud al sistema de arbitraje para tener acceso a un esclavo, el maestro transmite una señal de solicitud al sistema de arbitraje. Como se mencionó anteriormente, algunas solicitudes de transferencia son críticas en latencia, es decir, existe una restricción de tiempo sobre el cumplimiento de la solicitud. En estos casos, se puede asociar una prioridad con la solicitud. Sin considerar la prioridad asociada con la solicitud, el sistema de arbitraje no tiene conocimiento de la restricción de latencia, y por lo tanto, manejará cada solicitud de manera idéntica, a menos que se tengan instrucciones de lo contrario. Para superar la falta de identificación del requerimiento de latencia con la solicitud, en algunos SOC, a un maestro particular siempre se le otorgará la prioridad más alta sin considerar la solicitud. Debido a que, a todas las solicitudes provenientes del maestro particular se les otorga la prioridad más alta, las solicitudes del maestro que tienen una prioridad inferior serán colocadas antes que las solicitudes de prioridad superior de otro maestro. En estos casos, resulta difícil optimizar el uso del enlace. Para evitar la obstrucción de solicitudes de algunos maestros en lugar de un maestro específico, el sistema de arbitraje en algunos SOC permitirá que los maestros se comuniquen con los esclavos utilizando un esquema de circuito cíclico imparcial. Por ejemplo, un sistema que comprende maestros M0, M?,...Mn, y el esclavo S, prioritiza la comunicación con el esclavo S de la siguiente forma: M0, Mx^.-Mn,--. Mi, ...Mn, M0 ; ?...? Mn, M0,...Mn-!. Aunque esto permite de manera más pareja el acceso al esclavo por parte de los maestros, no puede resolver los problemas asociados con las solicitudes de diferentes criterios de latencia. Asuntos adicionales surgen debido a que las solicitudes pueden residir en una memoria intermedia interna antes de ser otorgadas por el sistema de arbitraje. Debido a que la cantidad de tiempo transcurrido no es reconocida por el arbitro, la solicitud es transmitida sin considerar la cantidad de tiempo que ha transcurrido desde que el maestro inició la solicitud. Aún cuando una solicitud es otorgada por el arbitro, ésta puede ser transferida a otra capa de interconexión o un dispositivo de embarque y no el objetivo final. Adicionalmente, una vez que la solicitud es transmitida al objetivo final, ésta puede ser colocada en una cola detrás de otras solicitudes anteriormente recibidas sin considerar la cantidad de tiempo que ha transcurrido entre la solicitud inicial y la llegada al objetivo final. En este aspecto, el requerimiento de latencia del maestro pudo haber vencido antes de que se haya actuado sobre la solicitud. Existe una necesidad en la industria que permita la transferencia de requerimientos de latencia complementarios a una solicitud de un maestro solicitante a un esclavo. Existe una necesidad adicional de un sistema que pueda volver a prioritizar un programa previamente definido para responder a solicitudes de acuerdo con los requerimientos de latencia de las solicitudes, y así reducir la latencia de transferencia.
SUMARIO DE LA INVENCIÓN Las modalidades de la invención se enfocan en un método y aparato para reducir la latencia de transferencia en un sistema en un chip. Las modalidades del sistema en un chip incluyen un enlace maestro, un enlace esclavo y un arbitro, en donde el enlace maestro, el enlace esclavo y el arbitro están en comunicación electrónica entre ellos. Una solicitud que tiene una señal de prioridad, la señal de prioridad está asociada con un requerimiento de latencia es transmitida del enlace maestro al arbitro. El arbitro revisa el requerimiento de latencia antes de transmitir la solicitud al enlace esclavo para determinar si se eleva la señal de prioridad. La señal de solicitud es entonces transmitida desde el arbitro al enlace esclavo. El enlace esclavo transmite una respuesta a la solicitud, en donde la transmisión puede incluir la señal de prioridad. Una característica de las modalidades de la invención es que el requerimiento de latencia de una solicitud es transmitida con la solicitud del maestro al esclavo. Una ventaja de esta característica es que la solicitud puede ser cumplida de acuerdo con los requerimientos de latencia. Una característica adicional de las modalidades de la invención es que el enlace esclavo puede volver a prioritizar el orden de las respuestas a las instrucciones con base en los requerimientos de latencia de las instrucciones. Una ventaja de esta característica es que el enlace esclavo puede reducir el consumo de recursos del sistema. Otra característica de las modalidades de la invención es que el esclavo regresa la prioridad de la solicitud al arbitro con los datos de retorno. Una ventaja de esta característica es que el arbitro puede determinar el orden de transmisión de los datos de retorno a un maestro sencillo.
BREVE DESCRIPCIÓN DE LAS FIGURAS La figura 1 es un diagrama en bloques de una interconexión SOC que tiene un maestro, esclavo y arbitro. La figura 2 es un diagrama en bloques de una interconexión SOC que tiene una pluralidad de maestros, esclavos y arbitros . La figura 3 es un diagrama de flujo de un método para reducir la latencia de transferencia. La figura 4 es un cuadro ejemplar de prioridades y requerimientos de latencia asociados. La figura 5 es un esquema de una cola se solicitud maestra acoplada al arbitro.
La figura 6 es un esquema que ilustra un esquema de elevación de prioridad. La figura 7 es un esquema de un enlace esclavo que vuelve a prioritizar el orden de respuesta a las instrucciones recibidas. La figura 8 es un diagrama en bloques de una configuración que tiene dos esclavos y un maestro sencillo.
DESCRIPCIÓN DETALLADA DE LAS MODALIDADES Las modalidades de la presente invención se enfocan en un método y aparato para la transferencia en secuencia de solicitudes entre un enlace maestro y un enlace esclavo en una interconexión SOC. Las modalidades de la invención operan en una interconexión SOC, en donde por lo menos un enlace maestro se comunica con un enlace esclavo a través de un arbitro. Con referencia a la figura 1, la interconexión SOC 10 comprende por lo menos un enlace maestro 12, un enlace esclavo 14 y un arbitro 16, en donde el enlace maestro 12, el enlace esclavo 14 y el arbitro 16 están en comunicación electrónica entre ellos a través de los enlaces 15 y 17. El enlace maestro 12 puede ser cualquier tipo de dispositivo que esté configurado para iniciar las transacciones en el enlace 15, tal como, instrucciones para almacenar datos en la memoria o leer datos de la memoria. Por ejemplo, el enlace maestro 12 incluye, pero no se limita a, procesadores y máquinas de gráficos. El enlace maestro 12 transmite una señal de solicitud al arbitro 16. La señal de solicitud indica que el enlace maestro 12 está solicitando acceso al enlace esclavo 14 que reside en el enlace 17. Dependiendo del protocolo de enlace 15 entre el enlace maestro y el arbitro, la señal de solicitud puede incluir las instrucciones destinadas para el enlace esclavo 14. Si la señal de solicitud no incluye las instrucciones destinadas para el enlace esclavo 14, el enlace maestro 12 almacena las instrucciones en un dispositivo de almacenamiento (que no se muestra) y espera una señal proveniente del arbitro para transmitir las instrucciones. Si la señal de solicitud incluye las instrucciones para el enlace esclavo 14, las instrucciones pueden ser almacenadas en el arbitro 16 en un dispositivo de almacenamiento interno o un dispositivo de almacenamiento externo acoplado al mismo (que no se muestra) . El enlace maestro 12 puede tener una prioridad predefinida asociada con cada tipo de instrucción o puede asignar dinámicamente una prioridad a cada instrucción. La prioridad está relacionada con un requerimiento de latencia el cual define el marco de tiempo en el cual se debe completar una instrucción particular. Los requerimientos de latencia pueden ser requerimientos fijos, por ejemplo, un número sencillo o un descriptor (tal como, alto, medio o bajo) , puede ser un valor de anaquel, o puede ser un valor de ciclo o tiempo específico. Si el requerimiento de latencia es de anaquel, el anaquel de latencia representará grupos de requerimientos, tal como, rangos o límites superiores de tolerancia. Por ejemplo, el requerimiento de latencia puede ser 3 (un valor fijo) , alto (un descriptor) , entre 20-40 ciclos o más de 40 ciclos (anaquel) . En algunas modalidades, la prioridad es idéntica al número de ciclos de reloj (o tiempo) que permanecen hasta que la solicitud debe ser cumplida. En estas modalidades, el requerimiento de latencia que es transmitido con la solicitud corresponde al número restante de ciclos para completar la solicitud. Aún definida, la prioridad asociada con la instrucción, y por lo tanto, el requerimiento de latencia asociado, es transmitido con la instrucción ya sea en el tiempo en que la señal de solicitud es transmitida o cuando la instrucción es autorizada para transmisión por parte del arbitro. Aunque el enlace maestro puede asignar la prioridad para cada solicitud, en algunas modalidades, la prioridad puede ser asignada por el arbitro. Por lo tanto, la prioridad puede ser asignada ya sea por el maestro cuando hace una solicitud al arbitro o cuando la solicitud del maestro está en cola en el arbitro. Si la prioridad es asignada por el arbitro, ésta podría ser un valor estático sencillo para todas las solicitudes del maestro o podría ser un valor determinado por el tipo de solicitud hecha por el maestro. El enlace esclavo 14 es un dispositivo objetivo el cual está configurado para responder o servir las instrucciones del enlace maestro 12, pero no para generar instrucciones. Por ejemplo, un enlace esclavo 14 puede ser un controlador de memoria. En modalidades preferidas, el enlace esclavo 14 está configurado para recibir instrucciones, incluyendo el estado de prioridad y requerimientos de latencia asociados de las instrucciones, y para procesar las instrucciones de acuerdo con los requerimientos de latencia. El enlace esclavo está configurado para recibir múltiples instrucciones de uno o más maestros. La pluralidad de instrucciones recibidas es colocada en una cola hasta que el enlace esclavo puede cumplir con una instrucción determinada. En algunas modalidades, el enlace esclavo solo reconoce la prioridad de las instrucciones de entrada, y por lo tanto, prioritiza el orden de la respuesta a las instrucciones de acuerdo con la prioridad de cada instrucción. Sin embargo, en otras modalidades, el enlace esclavo tiene conocimiento de los requerimientos de latencia, y por lo tanto, el enlace esclavo puede prioritizar el orden de respuesta de la instrucción en su cola de acuerdo con los requerimientos de latencia. Una vez que el enlace esclavo ha funcionado de acuerdo con las instrucciones, el enlace esclavo transmite los datos de retorno, si los hay, al arbitro 16. Los datos de retorno pueden incluir cualquier tipo de información, incluyendo, pero no limitado a, un conjunto de datos solicitados por el enlace maestro, una respuesta a una pregunta, o un reconocimiento de que las instrucciones se han completado. En algunos casos, el enlace esclavo no devuelve respuesta alguna al momento de completar las instrucciones, a menos que el enlace maestro solicite confirmación adicional de la terminación de la tarea. El arbitro 16 es un controlador que recibe la señal de solicitud del enlace maestro 12 y controla la transmisión de las instrucciones del maestro al esclavo, y la transmisión de datos devueltos del esclavo al maestro. En algunas modalidades, el arbitro solo recibe la señal de solicitud y las instrucciones son almacenadas en el enlace maestro. En este caso, cuando el enlace 17 está disponible para el enlace esclavo, el arbitro transmite una señal al enlace maestro 12 dándole instrucciones para transmitir las instrucciones.
Al momento de recibir la señal de solicitud, el arbitro etiqueta, es decir, pone sello de fecha y hora a la señal de solicitud. Si la señal de solicitud está acoplada a las instrucciones, el arbitro puede también poner sello de fecha y hora a las instrucciones. Las instrucciones son entonces almacenadas en una cola en el arbitro. El sello de fecha y hora permite al arbitro rastrear la cantidad de tiempo que ha transcurrido entre la recepción de la señal de solicitud y la última transmisión de las instrucciones al enlace esclavo 14. Sin considerar cuándo las instrucciones son transmitidas al arbitro, como se analizó anteriormente, la prioridad de las instrucciones y el requerimiento de latencia asociado son transmitidos con las instrucciones. Tal como se analizará más adelante, el arbitro utiliza el requerimiento de latencia y el sello de fecha y hora de las instrucciones o el sello de fecha y hora de la solicitud de señal para determinar si la prioridad de las instrucciones requiere elevación, es decir, actualización antes de transmitir las instrucciones al enlace esclavo. Si ha transcurrido mucho tiempo desde que el enlace maestro transmitió la señal de solicitud inicial, el arbitro queda configurado para elevar el estado de prioridad de las instrucciones. En este aspecto, el requerimiento de latencia cambiará automáticamente para reflejar el nuevo estado de prioridad. El estado de prioridad alertará al enlace esclavo sobre las restricciones de tiempo reales para responder a las instrucciones. En algunas modalidades, el arbitro almacena la señal de solicitud y su sello de fecha y hora, y es configurado para seguir elevando el estado de prioridad de la solicitud durante el periodo en el cual la solicitud reside con el enlace esclavo. En este aspecto, el arbitro tiene conocimiento del requerimiento de latencia de la solicitud al momento de devolver la solicitud del enlace esclavo. Con referencia a la figura 2, la interconexión SOC puede incluir una pluralidad de maestros, esclavos, arbitros, o cualquier combinación de los mismos. La multiplicidad de los arbitros crea una pluralidad de niveles de interconexiones. Por lo tanto, para alcanzar algunos esclavos deseados, por ejemplo, Si y S2, la solicitud de pasar a través de múltiples arbitros, cada un con su propia cola para transmisión. En interconexiones de múltiples capas, los arbitros pueden elevar la prioridad de las instrucciones conforme las instrucciones son pasadas de un nivel al siguiente. En este aspecto, los requerimientos de latencia asociados con las instrucciones no se pierden ni tampoco se descartan, permitiendo así que el enlace esclavo provea una respuesta oportuna a las instrucciones. En general y con referencia a la figura 3, en una modalidad para reducir la latencia de transferencia, el maestro transmite una solicitud al arbitro, en donde la solicitud incluye una señal de prioridad 20. Al momento de recibir la solicitud, el arbitro coloca el sello de fecha y hora o etiqueta la solicitud y la coloca en la cola 22. Antes de otorgar cualquier solicitud, el arbitro revisa la prioridad relativa de cada solicitud pendiente en la cola, y aumenta la prioridad de las solicitudes con más tiempo en la cola conforme transcurren los ciclos para la solicitud contra el requerimiento de latencia inicial 24. Si el requerimiento de latencia es definido como la prioridad, en donde el número más bajo es el más urgente, cada ciclo en el que reside una solicitud en la cola ocasionará uno (1) ser sustraído de su valor de prioridad. El arbitro otorga más solicitudes críticas de latencia antes de otorgar menos solicitudes críticas de latencia 25. Una vez que se otorga la solicitud, el arbitro revisa el sello de fecha y hora en asociación con el requerimiento de latencia y actualiza la prioridad de la solicitud, si es necesario 26. La solicitud es entonces transmitida del arbitro al esclavo designado o a un rbitro intermediario 28. Si la solicitud es transmitida al esclavo, el esclavo cumple con la solicitud y regresa los datos al maestro a través del arbitro 30. Si la solicitud es transmitida al arbitro intermediario, el arbitro intermediario coloca el sello de fecha y hora en la solicitud 22 y procesa la solicitud como se describió anteriormente . Como se analizó, cuando el maestro 12 transmite una solicitud, la solicitud incluye una señal de prioridad. En algunas modalidades, la señal de prioridad es incluida en una señal de banda lateral transmitida con la solicitud, en donde la señal de banda lateral es una recopilación de señales asociadas con la solicitud e identifica los calificadores de transferencia. Por ejemplo, la señal de banda lateral puede incluir, pero no se limita a, el tipo de transferencia, el tamaño de la transferencia, la dirección del dispositivo al que se va a tener acceso, y la señal de prioridad de la instrucción. Los calificadores de transferencia pueden cambiar y pueden depender del protocolo de enlace 15, 17. La señal de prioridad tiene un ancho variable que puede ser codificado, en donde la codificación está asociada con los requerimientos de latencia. Con referencia a la figura 4, la señal de prioridad es identificada por un identificador de prioridad 32, tal como "Obxy" , donde xy identifica el anaquel de latencia 34. En este ejemplo, el nacho es de dos bits; sin embargo, se entenderá que el ancho puede ser cualquier ancho conveniente . El mayor número de bits utilizados para identificar el anaquel de latencia aumenta la cantidad de granularidad para determinar el requerimiento de latencia. Cada identificador de prioridad 32 está asociado con un identificador de latencia 36. El identificador de latencia 36 define el requerimiento de latencia, incluyendo la identificación de que la solicitud no tiene requerimiento de latencia. El requerimiento de latencia se puede definir a través de cualquier manera conveniente, incluyendo, pero no limitado a, el número de ciclos, o un rango de ciclos. Por ejemplo, un identificador de prioridad de ObOO no tiene requerimientos de latencia, y ObOl está asociado con un identificador de latencia 36 de "servicio dentro de 100 ciclos". En otro ejemplo, el requerimiento de latencia se puede identificar como servicio entre 30-50 ciclos. En algunas modalidades, los requerimientos de latencia correspondientes a una codificación de prioridad de enlace maestro se pueden programar a través de un registro en un arbitro. En este aspecto, los requerimientos de latencia se pueden cambiar con respecto al identificador de prioridad 32. Al momento de la recepción y aceptación de la señal de prioridad, el arbitro coloca el sello de fecha y hora, o etiqueta, la solicitud entrante que después es puesta en cola para arbitraje. Como se analizó anteriormente, antes del otorgamiento de una solicitud, el arbitro revisa las prioridades relativas de las solicitudes recibidas, las cuales pueden emanar del mismo maestro, o diferentes maestros. Las solicitudes que tienen un requerimiento de latencia inferior generalmente son otorgadas antes de aquellas con un requerimiento de latencia superior. Las solicitudes de igual prioridad pueden ser otorgadas en cualquier orden conveniente, incluyendo, pero no limitado a, otorgamiento de la solicitud con base en el sello de fecha y hora más anticipado. Una vez que se ha otorgado una solicitud, el arbitro revisa el identificador de prioridad 32 en relación con la etiqueta o sello de fecha y hora de la solicitud. En este aspecto, el arbitro determina si el identificador de prioridad 32 requiere elevación o actualización. Con referencia a la figura 5, como se analizó anteriormente, al momento de la recepción de una solicitud proveniente de un maestro, por ejemplo, Maestrol, el arbitro coloca un sello de fecha y hora de "0" en la solicitud. La solicitud es entonces colocada en una cola de solicitud maestra 40 en relación con el sello de fecha y hora y la prioridad. En cada intervalo de "n" ciclos de reloj , el arbitro incrementa o aumenta el tiempo del sello de fecha y hora para todas las solicitudes pendientes en la cola para cada maestro. Por lo tanto, con respecto a la figura 5, el arbitro incrementa el sello de fecha y hora para SolicitudO, Solicitudl y Solicitud2 en la cola para el Maestrol y también incrementa el sello de fecha y hora para la SolicitudO en la cola para el Maestro2. El incremento del sello de fecha y hora permite al arbitro determinar el tiempo de la solicitud con relación al requerimiento de latencia de la solicitud. En este aspecto, cuando se otorga la solicitud, la prioridad puede ser actualizada con base en el sello de fecha y hora con mayor antigüedad. Por ejemplo, con referencia nuevamente a la figura 4, asumir que una solicitud que originalmente tiene una prioridad de OblO tiene un sello de fecha y hora transcurrido de tres. Si "n" ciclos de reloj representan un valor de intervalo de 10, entonces la solicitud ha estado pendiente por lo menos durante 30 ciclos antes de ser otorgada. De acuerdo con la figura 4, una prioridad de OblO requiere servicio dentro de 50 ciclos. Debido a que la solicitud debe ahora ser respondida dentro de 20 ciclos, la prioridad se debe elevar para reflejar las nuevas restricciones de tiempo. Por lo tanto, en este caso, el arbitro cambiaría el identificador de prioridad de OblO a Obll, para reflejar la necesidad de servicio dentro de 20 ciclos. Debido a eso, cuando esta solicitud es transmitida al esclavo, u otro nivel de interconexión, el receptor tiene conocimiento de que la solicitud debe recibir servicio dentro de los 20 ciclos. Conforme la solicitud es transmitida a través de múltiples interconexiones, se ajusta la prioridad, actualizando así el requerimiento de latencia de la solicitud en tiempo real . El valor de intervalo para "n" se puede programar en el arbitro, y así, se puede modificar. Para determinar cuál solicitud otorgar, el algunas modalidades, el arbitro revisa la solicitud con mayor tiempo en cada cola para cada maestro. Por ejemplo, el arbitro revisaría la SolicitudO en la cola para el Maestrol (asumiendo que la SolicitudO es aquella con más tiempo) y la SolicitudO en la cola para el Maestro2. El arbitro compararía las dos solicitudes para determinar cuál solicitud es más crítica en latencia, y otorgar esa solicitud. En otras modalidades, el arbitro determina cuál solicitud es la más crítica en latencia en la cola para cada maestro sin considerar el tiempo de la solicitud. Por ejemplo, asumiendo que la Solicitudl en la cola para el Maestrol es la latencia más crítica de las tres solicitudes pendientes, el arbitro compararía los requerimientos de latencia de la Solicitudl y SolicitudO en la cola para el Maestro2 a fin de determinar cuál solicitud otorgar. En otro ejemplo, y con referencia a la figura 6, dos maestros M0 y Mi transmiten una señal de solicitud con instrucciones (colectivamente, una solicitud) al arbitro sustancialmente al mismo tiempo 42. Cada solicitud tiene una prioridad de OblO. Ambas solicitudes son reconocidas por el arbitro 44, 46; sin embargo, el reconocimiento de cada solicitud ocurre a ciclos diferentes. En particular, el reconocimiento de M0 ocurre en el cuarto ciclo 44 y el reconocimiento para Mx ocurre antes en el tercer ciclo 46. En el tiempo x, el arbitro otorga la solicitud para Mx. Debido a que la solicitud que ha sido otorgada antes de la cantidad de tiempo transcurrido requiere la elevación de la prioridad de la solicitud, el arbitro no cambia la prioridad de Mx . En el tiempo y, el arbitro otorga la solicitud de M0. Sin embargo, en el tiempo y, un número suficiente de ciclos ha transcurrido de manera que la prioridad de M0 debe ahora ser elevada a Obll. Por lo tanto, el arbitro transmite la solicitud M0 al enlace esclavo con la prioridad elevada. Las solicitudes son recibidas por el esclavo, incluyendo la información de prioridad. En modalidades donde el enlace esclavo no reconoce la información de latencia y solo revisa el estado de prioridad de las instrucciones, el enlace esclavo cumple con la instrucción de prioridad más elevada primero. En algunas modalidades, algunos esclavos también pueden no reconocer la información de prioridad. Aunque estos esclavos tratarán todas las solicitudes entrantes de igual forma, las solicitudes serán presentadas al esclavo por el arbitro en una forma que sea óptima para reducir la latencia.
Por lo tanto, en el ejemplo anterior, a pesar del hecho de que la solicitud para M0 se recibió después de la solicitud para Mi, el esclavo inicialmente tiene conocimiento de que se debería actuar sobre la solicitud de M0 antes de la solicitud para Mi. Debido a que el arbitro ha revisado la prioridad de las instrucciones con respecto a los requerimientos de latencia, la prioridad refleja de manera más precisa el estado de las instrucciones que en sistemas en donde el arbitro no eleva la prioridad. Si el enlace esclavo no reconoce la prioridad de la solicitud, el enlace esclavo cumple con las solicitudes en el orden en que son recibidas. Sin embargo, como se indicó anteriormente, en estos casos, el arbitro ha presentado las solicitudes al enlace esclavo en la forma que resulta óptima para la reducción de latencia. Cómo se analizó anteriormente, en algunas modalidades, el orden real en el cual responde el esclavo a las instrucciones se puede volver a prioritizar con base en los requerimientos de latencia de las instrucciones en la cola. En algunas modalidades, al comparar los requerimientos de latencia de las instrucciones en la cola, el enlace esclavo puede volver a prioritizar el orden en el cual se responde a las instrucciones para aumentar el uso eficiente de los recursos del sistema. Por ejemplo, con base en los requerimientos de latencia de una instrucción, un enlace esclavo puede valorar si tiene la capacidad para cumplir con una instrucción de prioridad inferior antes del cumplimiento de una instrucción de prioridad superior y aún así cumplir con los requerimientos de latencia para ambas instrucciones. En ocasiones, el reordenamiento de las instrucciones puede permitir al enlace esclavo reducir el consumo de recursos del sistema, tal como potencia, debido a que puede tener acceso de manera eficiente a un dispositivo de sistema determinado. Por ejemplo, y con referencia a la figura 7, el enlace esclavo recibe una primera instrucción II para recuperar datos de un primer dispositivo de memoria MEMl. Aunque el enlace esclavo está recuperando datos, una segunda instrucción 12 y tercera instrucción 13 son transmitidas al enlace esclavo. La segunda instrucción tiene una prioridad más elevada P5 que la tercera instrucción P2. Sin embargo, la tercera instrucción 13 está ordenando al enlace esclavo tener acceso al primer dispositivo de memoria MEM1 y la segunda instrucción 12 está ordenando al enlace esclavo tener acceso a un tercer dispositivo de memoria MEM3. Al momento de completar la recuperación de los datos para la primera instrucción II, el enlace esclavo puede recuperar los requerimientos de latencia de las dos instrucciones restantes y determinar si puede cumplir con la tercera instrucción 13 antes del cumplimiento de la segunda instrucción 12 debido a las restricciones de los requerimientos de latencia de la segunda instrucción 12. Por ejemplo, si los requerimientos de latencia de la segunda instrucción 12 requieren el cumplimiento de la instrucción dentro de 30 ciclos, y el enlace esclavo determina que puede cumplir con la tercera instrucción 13 dentro de 10 ciclos, y después cumplir con la segunda instrucción 12 dentro de 15 ciclos, el enlace esclavo oportunamente puede cumplir ambas instrucciones. Si el enlace esclavo puede cumplir de manera eficiente con las tres instrucciones, recursos del sistema se conservarán debido a que el enlace esclavo volverá a tener acceso al mismo dispositivo de memoria sin apagar el dispositivo de memoria y después volver a encenderlo para recuperar los datos solicitados para la tercera instrucción. Esto reducirá el consumo de potencia en el sistema. Al momento del cumplimiento de la solicitud por parte del esclavo, el esclavo transmite los datos de regreso. Además de regresar los datos, el esclavo puede devolver el identificador de prioridad actualizado 32. En algunas modalidades, el enlace esclavo está configurado para comparar el sello de fecha y hora de cuándo recibió la instrucción, y el tiempo transcurrido para cumplir la instrucción conforme a lo calculado de la recepción de la instrucción por el enlace esclavo. Como se analizó anteriormente, si el tiempo transcurrido coloca a la instrucción en un nuevo anaquel de latencia, en algunas modalidades, el enlace esclavo queda configurado para elevar la prioridad de la instrucción actualizando el identificador de prioridad 32 al siguiente identificador de prioridad más elevado 32 para reflejar una prioridad elevada. Los datos devueltos son entonces transmitidos al arbitro. Para determinar el orden para transmitir los datos de retorno de uno o más esclavos objetivo para un maestro determinado, el arbitro utiliza los identificadores de prioridad 32 devueltos por el esclavo y un sello de fecha y hora tomado cuando la primera (o única) pieza de datos de retorno es observada por la interconexión para valorar cuáles solicitudes son más críticas en latencia. En algunas modalidades, el esclavo no retorna un identificador de prioridad. Por el contrario, el arbitro mantiene un registro de las solicitudes transmitidas en asociación con la prioridad de la solicitud y conforme el tiempo transcurre, actualiza las prioridades tal como se describió anteriormente. Con base en las prioridades relativas de todas las transferencias de retorno que compiten por el acceso a un maestro particular, el arbitro determina cuáles solicitudes, si las hay, se almacenan en memoria intermedia o en regulador (es decir, transmitir una señal a un esclavo que no puede aceptar los datos de retorno) y transfiere más solicitudes sensibles a la latencia de manera más rápida sin el retraso adicional de regulador la transferencia o colocarlas en una memoria intermedia. El uso de las prioridades relativas permite al arbitro volver a prioritizar los datos de retorno sin considerar el orden de retorno del enlace esclavo. Con referencia a la figura 8, en un ejemplo, una interconexión de arbitro de barra cruzada de dos vías 50 está acoplada a un maestro a través del enlace (3) y una pluralidad de esclavos S0 y Si a través de los enlaces (1) y (2) . El maestro transmite dos solicitudes de lectura a diferentes esclavos, en donde el requerimientos de latencia de la solicitud de lectura a S0 es más baja que la solicitud a Si. Ambas solicitudes son transmitidas al arbitro 50 a través del enlace (3) , el cual a su vez transmite las solicitudes a los diferentes esclavos en una forma descrita anteriormente. Las solicitudes son completadas por los esclavos y, en este ejemplo, están listas para transmisión sustancialmente de manera simultánea al arbitro 50. Debido a que existen múltiples enlaces (1) y (2) para transmisión, no hay problema respecto al orden de transmisión de los datos de lectura de retorno al arbitro 50. Sin embargo, debido a que solo un enlace sencillo (3) está disponible para el maestro, el arbitro debe determinar cuáles datos de lectura serán prioritizados para transmisión al maestro. Se toma una determinación con base en los requerimientos de latencia de las solicitudes. Debido a esto, el arbitro selecciona los datos de lectura de So debido a que el arbitro tiene conocimiento de los requerimientos de latencia de las solicitudes. Por lo tanto, los datos de lectura de S0 son transmitidos al maestro, y los datos de lectura de Si son regulados o almacenados en memoria intermedia internamente en el arbitro o colocados en una cola hasta que el enlace (3) que se conecta al maestro está disponible después de la transferencia de los datos de lectura de S0. Aunque lo anterior describió la invención con referencia a las modalidades preferidas, esto no pretende limitar la invención. De hecho, lo anterior pretende cubrir todas las modificaciones y construcciones alternativas que caen dentro del espíritu y alcance de la invención conforme a lo expresado en las reivindicaciones anexas, en donde ninguna porción de la descripción está destinada, de raanera expresa o implícita, a ser dedicada al domino público a menos que así se mencione en las reivindicaciones.

Claims (21)

NOVEDAD DE LA INVENCIÓN Habiendo descrito el presente invento, se considera como una novedad y, por lo tanto, se reclama como prioridad lo contenido en las siguientes: REIVINDICACIONES
1.- Un método para reducir la latencia de transferencia en un sistema en un chip, el sistema en un chip tiene un enlace maestro, un enlace esclavo y un arbitro, el enlace maestro, el enlace esclavo y el rbitro están en comunicación electrónica, el enlace esclavo está configurado para responder a una solicitud, que comprende: transmitir, desde el enlace maestro al arbitro, una solicitud que tiene una señal de prioridad, la señal de prioridad está asociada con un requerimiento de latencia; revisar el requerimiento de latencia para determinar si se eleva la señal de prioridad; transmitir, desde el arbitro al enlace esclavo, la solicitud y la señal de prioridad; y transmitir, desde el enlace esclavo al arbitro, la respuesta a la solicitud y la señal de prioridad.
2. - El método de conformidad con la reivindicación 1, que además comprende poner sello de fecha y hora a la señal de prioridad.
3. - El método de conformidad con la reivindicación 1, que además comprende elevar la señal de prioridad.
4. - El método de conformidad con la reivindicación 2, que además comprende comparar el sello de fecha y hora con el requerimiento de latencia para determinar si se eleva la señal de prioridad.
5. - El método de conformidad con la reivindicación 1, que además comprende colocar la solicitud en una cola para transmisión al enlace esclavo.
6. - El método de conformidad con la reivindicación 1, caracterizado porque la solicitud es una primera solicitud, la señal de prioridad es una primera señal de prioridad y el requerimiento de latencia es un primer requerimiento de latencia, que además comprende: transmitir, desde el enlace maestro al arbitro, una segunda solicitud que tiene una segunda señal de prioridad, la segunda señal de prioridad está asociada con un segundo requerimiento de latencia, en donde la segunda señal de prioridad es más elevada que la primera señal de prioridad; y transmitir, desde el arbitro al enlace esclavo, la segunda solicitud y la segunda señal de prioridad.
7. - El método de conformidad con la reivindicación 6, que además comprende: comparar la primera señal de prioridad y la segunda señal de prioridad; y cumplir, por el enlace esclavo, la segunda solicitud antes de cumplir con la primera solicitud.
8. - El método de conformidad con la reivindicación 6, que además comprende: comparar el primer requerimiento de latencia y el segundo requerimiento de latencia; y cumplir, por el enlace esclavo, la primera solicitud antes de cumplir con la segunda solicitud.
9. - El método de conformidad con la reivindicación 1, que además comprende el sistema en un chip que tiene un primer arbitro, un segundo arbitro, un primer enlace esclavo y un segundo enlace esclavo, el primer arbitro está acoplado al maestro y el segundo arbitro, el primer enlace esclavo está acoplado al primer arbitro, y el segundo enlace esclavo está acoplado al segundo arbitro, en donde una solicitud del enlace maestro es transmitido desde el enlace maestro al segundo enlace esclavo a través del primer arbitro y el segundo arbitro, además comprende : revisar el requerimiento de latencia antes de transmitir la solicitud al segundo arbitro para determinar si se eleva la señal de prioridad; y revisar el requerimiento de latencia antes de transmitir la solicitud al segundo enlace esclavo para determinar si se eleva la señal de prioridad.
10.- El método de conformidad con la reivindicación 9, que además comprende: elevar el requerimiento de latencia por lo menos por un arbitro.
11.- El método de conformidad con la reivindicación 9, que además comprende: elevar el requerimiento de latencia antes de la transmisión de la solicitud al segundo arbitro; elevar el requerimiento de latencia antes de la transmisión de la solicitud al enlace esclavo.
12. - El método de conformidad con la reivindicación 1, que además comprende: elevar, por el enlace esclavo, la prioridad de la solicitud antes de la transmisión de la respuesta a la solicitud para el arbitro.
13.- Un sistema en interconexión de chip, que comprende: un enlace maestro, el enlace maestro está configurado para transmitir una señal de solicitud, la señal de solicitud está asociada con una señal de prioridad y un identificador de latencia, la señal de prioridad identifica un estado de prioridad de la solicitud y el identificador de latencia identifica los requerimientos de tiempo para responder a la solicitud; un enlace esclavo está configurado para recibir la señal de solicitud, la señal de prioridad y el identificador de latencia; y un arbitro, el arbitro está acoplado al enlace maestro y el enlace esclavo, en donde la señal de solicitud, la señal de prioridad y el identificador de latencia es transmitido desde el enlace maestro al enlace esclavo a través del arbitro, y en donde el enlace esclavo está configurado para transmitir la señal de prioridad y el identificador de latencia al arbitro.
14. - El sistema de conformidad con la reivindicación 13, caracterizado porque la señal de prioridad está configurada para ser codificada, en donde la codificación está asociada con el identificador de latencia.
15.- El sistema de conformidad con la reivindicación 13, caracterizado porque la señal de prioridad comprende un ancho variable, el ancho variable está configurado para codificación.
16. - El sistema de conformidad con la reivindicación 13, caracterizado porque el identificador de latencia es seleccionado de uno del grupo de un número fijo, un descriptor, un rango de ciclos de reloj y un límite de ciclo superior.
17.- El sistema de conformidad con la reivindicación 13, caracterizado porque el enlace esclavo está configurado para elevar la señal de prioridad y transmitir la señal de prioridad elevada al arbitro.
18.- El sistema de conformidad con la reivindicación 13, que además comprende: una pluralidad de arbitros, un primer arbitro acoplado al enlace maestro y además acoplado a un segundo arbitro, cada arbitro está configurado para elevar la señal de prioridad, la elevación de la señal de prioridad asociada con un nuevo identificador de latencia; una pluralidad de enlaces esclavos, un primer enlace esclavo está acoplado al primer arbitro, y un segundo enlace esclavo está acoplado al segundo arbitro, cada enlace esclavo está configurado para elevar la señal de prioridad.
19.- El sistema de conformidad con la reivindicación 13, que además comprende: una pluralidad de arbitros, un primer arbitro acoplado al enlace maestro y además acoplado a un segundo arbitro, cada arbitro está configurado para elevar la señal de prioridad; una pluralidad de enlaces esclavos, un primer enlace esclavo está acoplado al primer arbitro, y un segundo enlace esclavo está acoplado al segundo arbitro, cada arbitro está configurado para elevar la señal de prioridad mientras la solicitud reside con el enlace esclavo.
20.- El sistema de conformidad con la reivindicación 13, caracterizado porque el arbitro está configurado para elevar la señal de prioridad mientras la solicitud reside con el enlace esclavo.
21.- El método de conformidad con la reivindicación 1, que además comprende: elevar la señal de solicitud, por el arbitro, mientras la solicitud reside con el enlace esclavo.
MX2007007944A 2004-12-30 2005-12-23 Metodo y aparato para reducir la latencia de transferencia en una interconexion soc. MX2007007944A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/027,532 US7263566B2 (en) 2004-12-30 2004-12-30 Method and apparatus of reducing transfer latency in an SOC interconnect
PCT/US2005/047038 WO2006073927A1 (en) 2004-12-30 2005-12-23 Method and apparatus of reducing transfer latency in an soc interconnect

Publications (1)

Publication Number Publication Date
MX2007007944A true MX2007007944A (es) 2007-08-21

Family

ID=36143728

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007007944A MX2007007944A (es) 2004-12-30 2005-12-23 Metodo y aparato para reducir la latencia de transferencia en una interconexion soc.

Country Status (9)

Country Link
US (1) US7263566B2 (es)
EP (1) EP1839167B1 (es)
JP (1) JP4944042B2 (es)
KR (1) KR101139188B1 (es)
CN (1) CN100552656C (es)
HK (1) HK1109227A1 (es)
IL (1) IL183998A0 (es)
MX (1) MX2007007944A (es)
WO (1) WO2006073927A1 (es)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7600058B1 (en) 2003-06-26 2009-10-06 Nvidia Corporation Bypass method for efficient DMA disk I/O
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
JP2006079394A (ja) * 2004-09-10 2006-03-23 Renesas Technology Corp データ処理装置
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7404025B2 (en) * 2005-04-14 2008-07-22 Texas Instruments Incorporated Software programmable dynamically reconfigurable scheme for controlling request grant and masking for ultra high priority accessor during arbitration
US7380040B2 (en) * 2005-04-14 2008-05-27 Texas Instruments Incorporated Software programmable dynamic arbitration scheme
CN101341474B (zh) * 2005-12-22 2012-02-08 Arm有限公司 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法
US7734853B2 (en) * 2006-02-28 2010-06-08 Arm Limited Latency dependent data bus transmission
US8468283B2 (en) * 2006-06-01 2013-06-18 Telefonaktiebolaget Lm Ericsson (Publ) Arbiter diagnostic apparatus and method
TWI335517B (en) * 2006-08-25 2011-01-01 Via Tech Inc Method of requests access and scheduling and related apparatus thereof
US7596647B1 (en) * 2006-09-18 2009-09-29 Nvidia Corporation Urgency based arbiter
US20080114960A1 (en) * 2006-11-14 2008-05-15 Tau-Li Huang Memory control methods for accessing a memory with partial or full serial transmission, and related apparatus
GB2447688B (en) * 2007-03-22 2011-05-18 Advanced Risc Mach Ltd A data processing apparatus and method for arbitrating between messages routed over a communication channel
US8156273B2 (en) * 2007-05-10 2012-04-10 Freescale Semiconductor, Inc. Method and system for controlling transmission and execution of commands in an integrated circuit device
KR100900980B1 (ko) 2007-07-16 2009-06-04 한국생산기술연구원 디바이스의 응답 지연을 고려한 데이터 전송 시스템 및방법
US7870455B2 (en) * 2007-12-12 2011-01-11 Infineon Technologies Ag System-on-chip with master/slave debug interface
KR100932925B1 (ko) 2007-12-17 2009-12-21 한국전자통신연구원 MMoIP 데이터의 전송 효율을 위한 직접 메모리 접근제어 장치 및 그 방법
US20100070656A1 (en) * 2008-09-12 2010-03-18 Atto Technology, Inc. System and method for enhanced load balancing in a storage system
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US7797476B2 (en) * 2008-09-19 2010-09-14 Texas Instruments Incorporated Flexible connection scheme between multiple masters and slaves
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
WO2010052679A1 (en) * 2008-11-10 2010-05-14 Nxp B.V. Resource controlling
CN102428450A (zh) 2009-03-11 2012-04-25 新诺普系统公司 用于资源控制的系统和方法
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
GB2478795B (en) * 2010-03-19 2013-03-13 Imagination Tech Ltd Requests and data handling in a bus architecture
GB2484483B (en) * 2010-10-12 2018-07-11 Advanced Risc Mach Ltd Communication using integrated circuit interconnect circuitry
KR20120037785A (ko) * 2010-10-12 2012-04-20 삼성전자주식회사 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법
KR101699781B1 (ko) 2010-10-19 2017-01-26 삼성전자주식회사 시스템 온 칩 및 그것의 데이터 중재 방법
KR101841964B1 (ko) 2011-02-22 2018-05-15 삼성전자주식회사 인터커넥터를 포함하는 시스템 온 칩 및 그것의 제어 방법
JP5715458B2 (ja) * 2011-03-22 2015-05-07 ルネサスエレクトロニクス株式会社 情報処理システム、調停方法
JP6034008B2 (ja) * 2011-09-22 2016-11-30 Necプラットフォームズ株式会社 送信権調停装置、送信権調停制御方法、及びそのためのプログラム
KR102031952B1 (ko) * 2012-03-29 2019-10-14 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작방법
KR101949382B1 (ko) * 2012-04-04 2019-02-18 삼성전자주식회사 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법
US9135195B2 (en) * 2012-07-24 2015-09-15 Freescasle Semiconductor, Inc. Prediction of electronic component behavior in bus-based systems
US9684633B2 (en) * 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same
JP6037869B2 (ja) * 2013-02-05 2016-12-07 三菱電機株式会社 マルチプロセッサ組込み機器
US9372818B2 (en) * 2013-03-15 2016-06-21 Atmel Corporation Proactive quality of service in multi-matrix system bus
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
KR102396309B1 (ko) * 2015-11-06 2022-05-10 삼성전자주식회사 데이터 요청을 제어하기 위한 장치 및 방법
DE102016011153A1 (de) * 2016-09-14 2018-03-15 Kathrein-Werke Kg Steuerungssystem
US10764455B2 (en) * 2018-12-31 2020-09-01 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
KR20210103836A (ko) * 2020-02-14 2021-08-24 에스케이하이닉스 주식회사 데이터 처리 장치 및 그 동작 방법
US11893240B2 (en) * 2021-10-28 2024-02-06 Qualcomm Incorporated Reducing latency in pseudo channel based memory systems
WO2023128479A1 (ko) * 2021-12-30 2023-07-06 주식회사 엘엑스세미콘 메모리 제어 시스템 및 메모리 제어 기능을 갖는 디스플레이 디바이스
CN115269467B (zh) * 2022-09-29 2023-01-10 沐曦科技(成都)有限公司 一种总线仲裁的方法、装置、存储介质及电子设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US24987A (en) * 1859-08-09 Hukst
US188809A (en) * 1877-03-27 Improvement in machines for sewing boots and shoes
US5440752A (en) 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US5848297A (en) 1991-12-30 1998-12-08 Apple Computer, Inc. Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect
KR0163554B1 (ko) * 1995-08-08 1998-12-15 윤종용 칩의 지연시간을 측정하기 위한 감지회로
US5802330A (en) 1996-05-01 1998-09-01 Advanced Micro Devices, Inc. Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms
US5907688A (en) * 1996-06-28 1999-05-25 Intel Corporation Smart arbitration for non-symmetric data streams
US5745913A (en) 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
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
EP1026595B1 (en) 1999-01-11 2008-07-23 STMicroelectronics Limited Memory interface device and method for accessing memories
GB2385174B (en) 1999-01-19 2003-11-26 Advanced Risc Mach Ltd Memory control within data processing systems
EP1170669B1 (en) 2000-07-05 2006-03-29 STMicroelectronics S.r.l. Arbitration method and circuit architecture therefor
JP4022719B2 (ja) * 2001-12-18 2007-12-19 株式会社日立製作所 優先順位制御システム
US6792516B2 (en) * 2001-12-28 2004-09-14 Intel Corporation Memory arbiter with intelligent page gathering logic
US6823411B2 (en) * 2002-01-30 2004-11-23 International Business Machines Corporation N-way psuedo cross-bar having an arbitration feature using discrete processor local busses
KR100456696B1 (ko) * 2002-05-21 2004-11-10 삼성전자주식회사 집적회로장치의 버스중재기
US6907478B2 (en) * 2003-02-18 2005-06-14 Adaptec, Inc. Systems and methods optimizing data transfer throughput of a system on chip
KR100555501B1 (ko) * 2003-06-26 2006-03-03 삼성전자주식회사 동적으로 버스 점유 우선 순위를 정하는 버스 중재기 및그 버스 중재 방법
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response

Also Published As

Publication number Publication date
JP4944042B2 (ja) 2012-05-30
US7263566B2 (en) 2007-08-28
KR101139188B1 (ko) 2012-04-26
HK1109227A1 (en) 2008-05-30
EP1839167B1 (en) 2016-06-22
JP2008527498A (ja) 2008-07-24
IL183998A0 (en) 2007-10-31
US20060149874A1 (en) 2006-07-06
EP1839167A1 (en) 2007-10-03
WO2006073927A1 (en) 2006-07-13
CN100552656C (zh) 2009-10-21
KR20070098896A (ko) 2007-10-05
CN101091170A (zh) 2007-12-19

Similar Documents

Publication Publication Date Title
MX2007007944A (es) Metodo y aparato para reducir la latencia de transferencia en una interconexion soc.
US8041869B2 (en) Method and system for bus arbitration
US5555383A (en) Peripheral component interconnect bus system having latency and shadow timers
US8244950B2 (en) Buffering non-posted read commands and responses
US6397279B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
US20150234759A1 (en) Method and apparatus using high-efficiency atomic operations
JP2016173798A (ja) 半導体装置
US7543093B2 (en) Method and system for stream burst data transfer
US5968144A (en) System for supporting DMA I/O device using PCI bus and PCI-PCI bridge comprising programmable DMA controller for request arbitration and storing data transfer information
US20130036246A1 (en) Microcontroller system bus scheduling for multiport slave modules
US6748505B1 (en) Efficient system bus architecture for memory and register transfers
TWI328744B (en) Master, system and method for arbitrating access to memory device
US20070101032A1 (en) Bus arbitration circuit and bus arbitration method
CN103069401B (zh) 维持多数据总线平台中事务连贯性的方法、装置以及系统
US8397006B2 (en) Arbitration scheme for accessing a shared resource
US6968406B2 (en) System and method for arbitrating access between common access requests on a bus
US20060101173A1 (en) Pin sharing system
US20060047773A1 (en) Sequential ordering of transactions in digital systems with multiple requestors
JP2765484B2 (ja) システムバス制御回路
US20050149655A1 (en) Bus allocation method and apparatus
US7117281B1 (en) Circuit, system, and method for data transfer control for enhancing data bus utilization
JPH06243093A (ja) バス制御システム
JPH01276263A (ja) バス通信装置
JP2001109731A (ja) 裁定方法および裁定装置
JP2009277000A (ja) データ転送システム及びターゲット装置

Legal Events

Date Code Title Description
FG Grant or registration