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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
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)
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.
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)
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)
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 |
-
2004
- 2004-12-30 US US11/027,532 patent/US7263566B2/en active Active
-
2005
- 2005-12-23 JP JP2007549545A patent/JP4944042B2/ja not_active Expired - Fee Related
- 2005-12-23 EP EP05855573.1A patent/EP1839167B1/en not_active Not-in-force
- 2005-12-23 KR KR1020077017610A patent/KR101139188B1/ko not_active IP Right Cessation
- 2005-12-23 MX MX2007007944A patent/MX2007007944A/es active IP Right Grant
- 2005-12-23 WO PCT/US2005/047038 patent/WO2006073927A1/en active Application Filing
- 2005-12-23 CN CNB2005800451753A patent/CN100552656C/zh active Active
-
2007
- 2007-06-17 IL IL183998A patent/IL183998A0/en active IP Right Grant
-
2008
- 2008-03-19 HK HK08103190.4A patent/HK1109227A1/xx not_active IP Right Cessation
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 |