PROCEDIMIENTO DE CONTROL DE FLUJO PARA MEJORAR LA TRANSFERENCIA DE DATOS A TRAVÉS DE UNA MATRIZ DE CONMUTACIÓN.

Un circuito integrado (IC) (10) de sistema-en-chip (SoC), que comprende:

un controlador (20) de bus; una pluralidad de esclavos (16A, 16B, 16C, ..., 16N) interconectados con el citado controlador (20) de bus a través de buses (24A, 24B, 24C, ..., 24N) de esclavo respectivos; una pluralidad de maestros (14A, 14B, 14C, ..., 14N) interconectados con el citado controlador (20) de bus a través de buses (22A, 22B, 22C, ..., 22N) de datos de maestro respectivos, estando el circuito caracterizado por un primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) configurado para emitir peticiones de datos a un primero de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) y a un segundo de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N), estando un segundo de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) configurado para emitir una petición de datos al primero de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N), en el que dichos primero y segundo de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) reciben las citadas peticiones de datos y proporcionan dichos datos solicitados al mismo tiempo en respuesta a las peticiones emitidas desde el primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N), y señales (50A, 50B, 50C, ..., 50N) de control, emitidas por el citado controlador (20) de bus, y que indican a cada esclavo (16) una disponibilidad del primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) para recibir los datos que éste solicitó a ese esclavo (16), enviando el segundo de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) los datos solicitados al primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N), provocando que el primero de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) envíe los datos solicitados desde el segundo de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) al segundo de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) sin tener que estar esperando a que el primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) se encuentre listo

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2006/004936.

Solicitante: QUALCOMM INCORPORATED.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: 5775 MOREHOUSE DRIVE SAN DIEGO, CA 92121 ESTADOS UNIDOS DE AMERICA.

Inventor/es: REMAKLUS,PERRY WILLMANN,JR, GANASAN,J. Prakash Subramaniam.

Fecha de Publicación: .

Fecha Solicitud PCT: 9 de Febrero de 2006.

Clasificación Internacional de Patentes:

  • G06F13/40D2

Clasificación PCT:

  • G06F13/40 FISICA.G06 CALCULO; CONTEO.G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 13/00 Interconexión o transferencia de información u otras señales entre memorias, dispositivos de entrada/salida o unidades de procesamiento (circuitos de interfaz para dispositivos de entrada/salida específicos G06F 3/00; sistemas multiprocesadores G06F 15/16). › Estructura del bus.

Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre, Lituania, Letonia.


Fragmento de la descripción:

CAMPO TÉCNICO

El campo de la técnica en cuestión es en general el de los circuitos integrados (IC) de sistema-en-chip (SoC). Más en particular, el campo de la técnica en cuestión consiste en un procedimiento para mejorar la utilización de bus dentro de un IC de SoC. 5

DESCRIPCIÓN DE LA TÉCNICA RELACIONADA

El término IC de sistema-en-chip (SoC) se utiliza para referirse a un sistema en el que todas las funciones deseadas y/o necesarias están integradas en, y fabricadas con, una única matriz o substrato. Como tal, un IC de SoC incluye en general varios bloques funcionales de circuitería, tales como, por ejemplo, microprocesadores, procesadores de señal digital, matrices de memorias, memorias intermedias, y así sucesivamente. Tales bloques 10 funcionales de circuitería son mencionados a veces como núcleos. Cada uno de los núcleos está conectado eléctricamente a un bus de sistema dentro del IC de SoC mediante el que intercambian datos entre sí y con cualesquiera otros dispositivos conectados al bus.

Más en particular, dentro de un IC de SoC, un núcleo que emite una petición para acceder a (ya sea datos de escritura en, o ya sea datos de lectura desde) otro núcleo, es mencionado indistintamente como núcleo iniciador, 15 iniciador, o maestro de bus. El núcleo al que desea acceder el iniciador o maestro, es decir, el núcleo que recibe los datos de escritura o que proporciona los datos de lectura, se denomina objetivo o esclavo. Con el fin de evitar contención de bus, el cual consiste en un conflicto que ocurre cuando dos o más núcleos intentan colocar datos sobre, o recuperar datos desde, el bus, se ha incorporado un controlador de bus dentro del IC de SoC.

El controlador de bus incluye típicamente un árbitro que selecciona el maestro al que se concede acceso a 20 un esclavo en cualquier momento dado. De ese modo, asegurando que solamente un maestro accede a un esclavo dado dentro de un ciclo cualquiera dado de acceso o de transferencia de datos, se evita la contención de bus y las colisiones de datos en el bus. Esta alternativa proporciona a los maestros acceso secuencial a los esclavos, es decir, un acceso por turnos a los esclavos. Tal acceso secuencial es relativamente lento e ineficaz, y puede afectar negativamente al rendimiento del sistema. 25

A veces se utilizan controladores de bus del tipo de una matriz de conmutación para incrementar la utilización de bus y mejorar con ello el rendimiento del sistema. Cada esclavo y cada maestro están conectados al controlador de bus de matriz de conmutación mediante líneas de bus respectivas de maestro o de esclavo. De ese modo, las matrices de conmutación proporcionan a los maestros acceso en paralelo a los esclavos, es decir, diferentes maestros pueden acceder simultáneamente a esclavos respectivos y diferentes, y viceversa. Sin 30 embargo, no se evita totalmente la contención de bus con el uso de controladores de bus del tipo de una matriz de conmutación. La contención de bus y/o las colisiones de datos pueden ocurrir en un IC de SoC que tenga una matriz de conmutación cuando, por ejemplo, un maestro intenta acceder a dos o más esclavos. Puesto que cada maestro está conectado a la matriz de conmutación mediante una única línea de bus correspondiente, puede ocurrir una colisión de datos cuando los dos o más esclavos están simultáneamente preparados para devolver datos y/o 35 responder a una petición de un único maestro solicitante. Adicionalmente, un maestro que realiza una secuencia de peticiones puede requerir que las respuestas o terminaciones sean retornadas en el mismo orden en que se hicieron las peticiones.

Con el fin de evitar colisiones de datos, así como para asegurar el orden de terminación de una petición del maestro, la matriz de conmutación incluye típicamente una lógica para retardar o enrutar peticiones y/o una línea de 40 espera de peticiones o memoria intermedia para almacenar datos o respuestas. La lógica de enrutamiento asegura que solamente un único conjunto de datos se coloca en el bus bloqueando o retrasando todas las demás respuestas hasta que la respuesta anterior se haya completado con éxito. La línea de espera de respuestas o memoria intermedia, puede almacenar múltiples peticiones de los maestros, típicamente de una manera de primera-en-llegar-primera-en-salir, y evita colisiones de datos manteniendo datos en la línea de espera hasta que el bus está 45 preparado para recibir los datos y, o bien el esclavo está preparado para suministrar los datos al bus, o bien el maestro está preparado para recibir los datos. La línea de espera de respuestas puede mantener también una respuesta o datos respecto a una petición más reciente mientras espera que otro esclavo complete una respuesta o datos de retorno respecto a una petición más antigua, con el fin de mantener el orden programático de la petición del maestro. 50

Sin embargo, retrasar o poner en línea de espera una o más peticiones pendientes hasta que una petición anterior sea completada con éxito, consume capacidad de bus, en particular cuando la demora para completar la petición anterior se debe a un esclavo que no está aún listo para colocar los datos solicitados en el bus, o a un maestro que no está aún listo para recibir datos desde el bus. En tales situaciones, el bus no está siendo utilizado para transferir datos pero está por el contrario esperando hacerlo. En otras palabras, en tales situaciones el bus no 55 constituye el cuello de botella. De ese modo, el bus podría, mientras tanto, ser utilizado más eficazmente para

transferir datos que estén disponibles y listos para ser procesados en vez de mantenerse sin hacer nada mientras el sistema espera que otros núcleos completen una petición o una transferencia de datos anterior.

Por lo tanto, lo que se necesita en el estado actual de la técnica es un procedimiento y un aparato que mejoren la utilización de bus dentro de un circuito integrado de sistema-en-chip.

Se llama la atención además sobre el documento WO 03/014948 A, el cual divulga un conmutador para una 5 transacción de datos de alta velocidad de transferencia de bits entre dispositivos maestros y esclavos en un sistema-en-chip (SOC) que incluye un conjunto de buses que permiten un máximo paralelismo en el citado conmutador, una unidad de barra transversal utilizada para transferir ráfagas de datos desde uno de dichos dispositivos hasta el otro de dichos dispositivos, y conexiones con al menos dos de dichos dispositivos maestros que pueden originar transacciones de lectura y escritura de dichos datos con cualquier otro maestro o esclavo y al menos dos de dichos 10 dispositivos esclavos que pueden responder a las transacciones de lectura y escritura de dichos datos con cualquier otro maestro o esclavo.

SUMARIO

De acuerdo con la presente invención, se proporciona un sistema-en-chip (SoC) según se expone en la reivindicación 1, y un procedimiento para transferir datos dentro de un sistema electrónico según se expone en la 15 reivindicación 8. Las realizaciones de la invención están reivindicadas en las reivindicaciones dependientes.

Se proporciona un circuito integrado (IC) de sistema-en-chip (SoC) que tiene una utilización de bus mejorada y una transferencia de datos más eficiente. También se proporciona un procedimiento para mejorar la utilización de bus y la transferencia de datos.

En una realización, se proporciona un IC de SoC que tiene un controlador de bus. Maestros interconectados 20 con el controlador de bus emiten peticiones de datos y reciben los datos solicitados en respuesta a las peticiones. Esclavos interconectados con el controlador de bus reciben las peticiones de datos y proporcionan los datos solicitados a los maestros solicitantes. Señales de control emitidas por el controlador de bus indican a cada esclavo qué maestros no están listos para recibir los datos que solicitaron a ese esclavo. Los esclavos retardan la transferencia de datos a cualesquiera de los maestros que no estén listos para recibir los datos solicitados, y 25 proporcionan datos a diferentes maestros que estén listos para recibir los datos que solicitaron de los esclavos.

Cuando se precisa que un esclavo retrase una transferencia de datos particular, el esclavo puede proceder a transferir otros datos, incrementando con ello la eficiencia de utilización de bus y de transferencia de datos, ayudando a evitar contención de bus y colisiones de datos.

Adicionalmente, se puede reducir la necesidad de memorias intermedias/ registros...

 


Reivindicaciones:

1. Un circuito integrado (IC) (10) de sistema-en-chip (SoC), que comprende:

un controlador (20) de bus;

una pluralidad de esclavos (16A, 16B, 16C, ..., 16N) interconectados con el citado controlador (20) de bus a través de buses (24A, 24B, 24C, ..., 24N) de esclavo respectivos;

una pluralidad de maestros (14A, 14B, 14C, ..., 14N) interconectados con el citado controlador (20) de bus a 5 través de buses (22A, 22B, 22C, ..., 22N) de datos de maestro respectivos,

estando el circuito caracterizado por un primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) configurado para emitir peticiones de datos a un primero de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) y a un segundo de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N), estando un segundo de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) configurado para emitir una petición de datos al primero de la pluralidad de esclavos (16A, 10 16B, 16C, ..., 16N),

en el que dichos primero y segundo de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) reciben las citadas peticiones de datos y proporcionan dichos datos solicitados al mismo tiempo en respuesta a las peticiones emitidas desde el primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N), y

señales (50A, 50B, 50C, ..., 50N) de control, emitidas por el citado controlador (20) de bus, y que indican a 15 cada esclavo (16) una disponibilidad del primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) para recibir los datos que éste solicitó a ese esclavo (16), enviando el segundo de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) los datos solicitados al primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N), provocando que el primero de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) envíe los datos solicitados desde el segundo de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) al segundo de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) 20 sin tener que estar esperando a que el primero de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) se encuentre listo.

2. El IC (10) de SoC de la reivindicación 1, en el que dichas señales (50A, 50B, 50C, ..., 50N) de control indican a la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) cuál del uno o más de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) no está listo para recibir los datos solicitados. 25

3. El IC (10) de SoC de la reivindicación 2, en el que dichas señales (50A, 50B, 50C, ..., 50N) de control indican además a la pluralidad de esclavos (16A, 16B, 16C, ..., 16N) cuál del uno o más de los maestros (14) está listo para recibir los datos solicitados.

4. El IC (10) de SoC de la reivindicación 2, en el que un primer esclavo (16) retarda transferir los primeros datos solicitados por un primer maestro (14) cuando una primera señal (50) de control indica que dicho primer 30 maestro (14) no está listo para recibir los primeros datos solicitados.

5. El IC (10) de SoC de la reivindicación 2, en el que dicha primera señal (50) de control indica además que el segundo de la pluralidad de maestros (14A, 14B, 14C, ..., 14N) está listo para recibir los segundos datos solicitados por el mismo desde el citado primer esclavo (16), transfiriendo dicho primer esclavo (16) los segundos datos solicitados a dicho segundo maestro (14) en respuesta a dicha primera señal (50) de control. 35

6. El IC (10) de SoC de la reivindicación 2, en el que cada uno de dichos esclavos (16) incluye memorias intermedias (34) respectivas, siendo los datos solicitados de un esclavo (16) particular por un maestro (14) solicitante retenidos en la memoria intermedia (34) del esclavo (16) particular cuando una señal (50) de control correspondiente indica al esclavo (16) particular que el maestro (14) solicitante no está listo para recibir los datos solicitados, siendo los datos solicitados retenidos en la memoria intermedia (34) del esclavo (16) particular hasta que 40 la señal (50) de control correspondiente indica al esclavo (16) particular que el maestro (14) está listo para recibir los datos solicitados del esclavo (16) particular.

7. El IC (10) de SoC de una de las reivindicaciones anteriores, que comprende además:

un substrato, en el que el controlador de bus, la pluralidad de esclavos y la pluralidad de maestros están dispuestos sobre dicho substrato. 45

8. Un procedimiento de transferencia de datos dentro de un sistema electrónico, que comprende:

emitir peticiones para una pluralidad de esclavos (16A, 16B, 16C, ..., 16N), para proporcionar los datos solicitados a un primer maestro (14);

emitir una petición desde un segundo maestro (14) hasta un primero de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N), para proporcionar los datos solicitados al segundo maestro (14);

indicar al primer esclavo (16) cuándo el primer maestro (14) no está listo para recibir los datos que éste ha solicitado del primer esclavo (16);

retrasar la transferencia de datos desde el primer esclavo (16) hasta el primer maestro (14), y 5

transferir datos desde el primer esclavo (16) hasta el segundo maestro (14) sin tener que estar esperando a que el primer maestro (14) se encuentre listo.

9. El procedimiento de transferencia de datos de la reivindicación 8, en el que dicha etapa de indicación comprende emitir señales (50A, 50B, 50C, ..., 50N) de control a cada uno de la citada pluralidad de esclavos (16A, 16B, 16C, ..., 16N), siendo dichas señales (50A, 50B, 50C, ..., 50N) de control indicativas de si el primer y el 10 segundo maestros (14) están listos para recibir datos desde cada uno de la pluralidad de esclavos (16A, 16B, 16C, ..., 16N).


 

Patentes similares o relacionadas:

CONCENTRADOR DE BUS SERIE UNIVERSAL QUE PUEDE ROTAR, del 15 de Septiembre de 2011, de BELKIN INTERNATIONAL, INC: - Un sistema concentrador de conectores , que comprende: un primer cuerpo que comprende una pluralidad de conectores (208a - 208d) accesible desde una superficie […]

CONMUTADOR DE DIRECCIÓN NO BLOQUEANTE CON COLAS SUPERFICIALES POR AGENTE, del 17 de Marzo de 2011, de APPLE INC.: Un sistema que comprende: una pluralidad de agentes (12A-12D); una interconexión ; y un conmutador acoplado a la pluralidad de agentes y a la interconexión, […]

Imagen de 'DISPOSITIVO Y MÉTODO ASOCIADO PARA GESTIONAR AUTOMÁTICAMENTE…'DISPOSITIVO Y MÉTODO ASOCIADO PARA GESTIONAR AUTOMÁTICAMENTE LOS FLUJOS DE DATOS DIGITALES DE UN HUÉSPED ENTRE LA INTERFAZ COMÚN Y LOS MÓDULOS ASOCIADOS, del 4 de Enero de 2011, de SMARDTV S.A.: Dispositivo para gestionar automáticamente el flujo de datos digitales de un huésped constituido por un descodificador para la recepción de televisión digital […]

Imagen de 'SISTEMA DE MATRIZ DE CONMUTACION CON ARBITRAJES DE BUS PLURALES…'SISTEMA DE MATRIZ DE CONMUTACION CON ARBITRAJES DE BUS PLURALES POR CICLO MEDIANTE UN ARBITRO DE FRECUENCIA SUPERIOR, del 27 de Octubre de 2010, de QUALCOMM INCORPORATED: Un sistema de matriz cruzada , que comprende: un bus que funciona a una frecuencia de bus; al menos un dispositivo maestro conectado […]

Método y aparato para detectar contrapresión de mensajes, del 8 de Abril de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de detección de contrapresión de paquetes, en donde el método se aplica a un dispositivo que tiene un puerto de Interconexión de […]

Sistema de procesamiento de datos y método de procesamiento de datos, del 1 de Enero de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un sistema de procesamiento de datos , que comprende una unidad central de procesamiento, CPU , una memoria , un controlador […]

Imagen de 'Dispositivo de inserción de terminal'Dispositivo de inserción de terminal, del 27 de Noviembre de 2019, de Ingenico Group: Dispositivo de conexión de un terminal de comunicación, dispositivo que comprende: - una superficie plana ; - un conector macho destinado a conectarse a […]

Dispositivo de conmutación, sistema de interconexión de componentes periféricos rápida y procedimiento de inicialización del mismo, del 13 de Noviembre de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un dispositivo de conmutación que comprende: múltiples puertos de Interconexión de Componentes Periféricos rápidos, PCIe, aguas arriba , […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .