ES2198670T3 - Dispositivo de comunicacion entre varios procesadores. - Google Patents

Dispositivo de comunicacion entre varios procesadores.

Info

Publication number
ES2198670T3
ES2198670T3 ES98402566T ES98402566T ES2198670T3 ES 2198670 T3 ES2198670 T3 ES 2198670T3 ES 98402566 T ES98402566 T ES 98402566T ES 98402566 T ES98402566 T ES 98402566T ES 2198670 T3 ES2198670 T3 ES 2198670T3
Authority
ES
Spain
Prior art keywords
memory
sequence
processor
card
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES98402566T
Other languages
English (en)
Inventor
Pierre Cornillon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent SAS
Nokia Inc
Original Assignee
Alcatel SA
Nokia 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 Alcatel SA, Nokia Inc filed Critical Alcatel SA
Application granted granted Critical
Publication of ES2198670T3 publication Critical patent/ES2198670T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

VARIOS PROCESADORES (P11, P12, P13,...) PUEDEN SITUARSE EN DIFERENTES TARJETAS (C1, C2, C3). CADA PROCESADOR ESTA CONECTADO POR UN BUS LOCAL (BL1, BL2, BL3) A UNA MEMORIA (M1, M2, M3 RESPECTIVAMENTE) SITUADA EN LA MISMA TARJETA QUE ESTE PROCESADOR. EL DISPOSITIVO DE COMUNICACION INCLUYE, EN CADA TARJETA, UN DISPOSITIVO DE ENCAMINAMIENTO (RC1, RC2, RC3 RESPECTIVAMENTE) CONECTADO AL BUS LOCAL DE ESTA TARJETA Y CONECTADO A UN BUS LLAMADO EXTERNO (BE) QUE CONECTA TODAS LA TARJETAS. CADA DISPOSITIVO DE ENCAMINAMIENTO (RC1): - ANALIZA LAS SOLICITUDES DE ACCESO EMITIDAS EN UN BUS LOCAL (BL1); EXTRAE DATOS CONTENIDOS EN CADA SOLICITUD DE ACCESO PARA DETERMINAR A QUIEN VA DIRIGIDA Y DEJA QUE UN CONTROLADOR DE MEMORIA (MC1) LEA O ESCRIBA DATOS EN UNA MEMORIA (M1) SITUADA EN LA MISMA TARJETA QUE LA QUE SOPORTA ESTE DISPOSITIVO DE ENCAMINAMIENTO, SI LA SOLICITUD ESTA DIRIGIDA A UNA MEMORIA (M1) SITUADA EN ESTA TARJETA Y EN CASO CONTRARIO, CONSTRUYE UNO O VARIOS PAQUETES, Y EMITE ESTE PAQUETE O ESTOS PAQUETES EN UN BUS EXTERNO (BE) COMUN A TODAS LAS TARJETAS; - ANALIZA LAS SERIES DE PAQUETES EMITIDAS EN EL BUS EXTERNO (BE) Y EMITE EN EL BUS LOCAL (BL1) UNA SOLICITUD DE ACCESO A LA MEMORIA (M1) SITUADA EN LA MISMA TARJETA SI UNA SERIE DE PAQUETES CONTIENE UNA SOLICITUD DE ACCESO A ESTA MEMORIA (M1). APLICACION EN LOS SISTEMAS INFORMATICOS.

Description

Dispositivo de comunicación entre varios procesadores.
El invento se refiere a un dispositivo de comunicación entre varios procesadores, que pueden estar situados en tarjetas diferentes. Las tarjetas están unidas entre ellas por una unión externa. Un procesador dado puede emitir paquetes destinados a otro procesador situado en la misma tarjeta o bien en otra tarjeta. En este último caso, los paquetes transitan por la unión externa.
Cada tarjeta comprende al menos un procesador y una memoria, siendo esta memoria utilizada como buzón para comunicar con este procesador. Una misma tarjeta puede llevar eventualmente varios procesadores unidos con un mismo bus local, y comparten una misma memoria. Esta última está unida sobre el bus local por medio de un controlador de memoria que se encarga de interpretar cada secuencia de mando que es emitida sobre el bus local por un procesador, especialmente una secuencia denominada demanda de acceso de sólo escritura, constituida por palabras de mando para escribir datos en un emplazamiento de memoria, designado por una dirección contenida en una de las palabras de la secuencia; y una secuencia denominada demanda de acceso de sólo lectura, constituida por palabras de mando para leer datos en un emplazamiento de memoria, designado por una dirección contenida en una de las palabras de la secuencia.
Se conoce un primer dispositivo de comunicación que permite la transmisión de informaciones únicamente entre procesadores situados en una misma tarjeta, o como mínimo situados a una corta distancia, en tarjetas distintas unidas por un panel posterior. Estos procesadores están todos unidos con un mismo bus al que está unido una memoria utilizada como memoria compartida para el intercambio de paquetes de datos, es decir, haciendo el papel de un buzón. Esta memoria compartida es susceptible de que se acceda a ella casi simultáneamente por varios procesadores escritores o lectores. Para asegurar el mantenimiento de la coherencia de los datos en esta memoria, es entonces necesario realizar ciclo atómico de lectura y de escritura. Este dispositivo no conviene para hacer comunicar procesadores que están relativamente alejados, ya que un aumento de la longitud del bus lo haría más sensible a las interferencias electromagnéticas que son susceptibles de causar errores de transmisión.
Se conoce un segundo dispositivo de comunicación que es capaz de hacer comunicar varios procesadores situados a distancias importantes. Este dispositivo lleva, en cada tarjeta, un circuito de transmisión que constituye una interfaz física entre un bus local propio de esta tarjeta y una unión externa que une todas las tarjetas. Cada procesador ejecuta unos protocolos de niveles 2, 3, y 4, por ejemplo, los protocolos ETHERNET/TCP/IP, mientras que los circuitos de unión no aseguran más que la interfaz física entre el bus local de cada tarjeta y la unión externa que es común. Estos protocolos gestionan: permisos, temporizaciones, retransmisiones. Por consiguiente, el tiempo de acceso a la unión externa, para transmitir cada paquete, es relativamente largo: del orden de un milisegundo. Este dispositivo no es entonces utilizado más que en el caso en que los procesadores estén relativamente alejados, en varias tarjetas distintas.
El especialista es llevado a utilizar programas de comunicación diferentes, por un lado para los procesadores que comunican a corta distancia, típicamente en una misma tarjeta o a algunos decímetros, y por otro lado, para los procesadores que comunican a una distancia relativamente grande, típicamente en diferentes tarjetas de un mismo equipo electrónico.
El objetivo del invento es crear un dispositivo de comunicación que procure un tiempo de acceso más reducido que este segundo dispositivo, al menos para los accesos de sólo escritura, y que se pueda utilizar a la vez para la comunicación entre procesadores situados en una misma tarjeta, y para la comunicación entre procesadores relativamente alejados, sin tener que hacer ejecutar un programa diferente, en los procesadores.
El objeto del invento es un dispositivo de comunicación entre varios procesadores que pueden estar situados en tarjetas diferentes, estando cada procesador unido por medio de un bus local a una memoria situada sobre la misma tarjeta que este procesador; comprendiendo cada procesador unos medios de programas para emitir a su bus local una secuencia denominada demanda de acceso de sólo escritura, constituida por palabras de mando para escribir datos en un emplazamiento de memoria, designado por una dirección contenida en una de las palabras de la secuencia; y unos medios de transmisión de datos para unir entre ellos todos los buses locales; comprendiendo estos medios de transmisión, en cada tarjeta, un dispositivo de encaminamiento unido sobre el bus local de esta tarjeta y unido a un bus conocido como externo que une todas las tarjetas; y comprendiendo cada dispositivo de enrutamiento:
- unos primeros medios para analizar cada demanda de acceso de sólo escritura, emitida sobre el bus local al cual está unido este dispositivo de enrutamiento, y, si es dirigida una demanda de acceso a una memoria que no esté situada en la misma tarjeta que la que soporta este dispositivo de enrutamiento, emitir sobre el bus externo una secuencia de paquetes, construida a partir de datos y de la dirección contenida en esta demanda de acceso, y emitir sobre el bus local un acuse de recibo destinado al procesador que ha emitido esta demanda de acceso;
- y unos segundos medios para analizar cada secuencia de paquetes emitida sobre el bus externo por otro circuito de enrutamiento, y, si una secuencia de paquetes contiene una demanda de acceso de sólo escritura dirigida a una memoria situada sobre la tarjeta que soporta este dispositivo de enrutamiento, emitir en el bus local una demanda de acceso de sólo escritura, construida a partir de datos y de una dirección contenida en esta secuencia de paquetes;
caracterizado porque cada tarjeta comprende un controlador de memoria para leer e inscribir unos paquetes de datos en la memoria de esta tarjeta;
y porque cuando un controlador de memoria recibe un paquete para inscribir en la memoria que tiene asociada, inscribe este paquete en un intervalo de esta memoria, propio del procesador que es el destinatario del paquete considerado, y más particularmente en un subintervalo propio del procesador que ha emitido el paquete.
El documento US-A-4.719.621 describe un dispositivo de comunicación entre varios procesadores que comprende las características definidas en el preámbulo de la reivindicación 1.
En el dispositivo así caracterizado, cada dispositivo de encaminamiento es visto por los procesadores, situados en la misma tarjeta que él, como un controlador de memoria, en particular porque emite un acuse de recibo tan pronto como recibe una demanda de acceso de sólo escritura hacia una memoria distante, lo que permite al procesador solicitante continuar su trabajo después de una espera mínima, mucho más corta que el plazo realmente necesario para realizar efectivamente la escritura. Se mejora, por tanto, el tiempo de acceso de sólo escritura en una tarjeta.
El dispositivo así caracterizado permite a cada procesador escribir en diferentes memorias situadas respectivamente en tarjetas diferentes, como si se tratase de una sola y misma memoria, situada sobre la misma tarjeta que este procesador, y compartida por todos los procesadores, gracias al hecho de que el dispositivo de encaminamiento es visto como un controlador de memoria. Para acceder a una memoria cercana o a una memoria distante, un procesador emite de igual manera una demanda de acceso sobre el bus local al cual está unida. Cada procesador se comporta, entonces, de la misma forma, cualquiera que sea la distancia a la cual esté situado otro procesador al cual quiere enviar unos datos. Por consiguiente, es posible hacer ejecutar un mismo programa por todos los procesadores que deben comunicar entre ellos. Esto permite, en particular, modificar la localización de uno o varios procesadores de un sistema, sin modificar el programa ejecutado por estos procesadores. Por ejemplo, es posible reunir en una misma tarjeta, como mínimo dos procesadores que estuviesen situados en dos tarjetas distintas durante la realización de una versión precedente del sistema considerado.
El dispositivo así caracterizado asegura el mantenimiento de la coherencia de datos, por medios simples, gracias al hecho de que cada subintervalo de memoria constituye un buzón reservado para un solo procesador escritor y para un solo procesador lector, lo que suprime todo problema de eventual entrelazado de las operaciones de lectura y de escritura por diferentes procesadores.
Según otra característica, el dispositivo de comunicación según el invento se caracteriza porque cada dispositivo de encaminamiento comprende, además:
- unos terceros medios para analizar cada demanda de acceso de sólo lectura, emitida sobre el bus local al cual está unido este dispositivo de enrutamiento, y, si una demanda de acceso de sólo lectura está dirigida a una memoria que no esté situada en la misma tarjeta que la que soporta este dispositivo de enrutamiento, emitir sobre el bus externo una secuencia de paquetes construida a partir de esta demanda de acceso de sólo lectura;
- unos cuartos medios para analizar cada secuencia de paquetes emitida sobre el bus externo por otro circuito de encaminamiento y, si una secuencia de paquetes contiene una demanda de acceso de sólo lectura, dirigida a una memoria situada en la tarjeta que soporta este dispositivo de enrutamiento, emitir sobre el bus local una demanda de acceso de sólo lectura, construida a partir de la demanda de acceso de sólo lectura contenida en esta secuencia de paquetes;
- unos quintos medios para analizar cada secuencia emitida sobre el bus local y que contiene unos datos leídos a demanda de un procesador situado en otra tarjeta, y emitir el bus externo una secuencia de paquetes construida a partir de estos datos leídos;
- unos sextos medios para analizar cada secuencia de paquetes emitida sobre el bus externo por, y, si una secuencia de paquetes contiene datos leídos dirigidos a un procesador situada en la tarjeta que soporta este dispositivo de enrutamiento, emitir sobre el bus local una secuencia construida a partir de esta secuencia de paquetes.
El dispositivo así caracterizado permite, además, a cada procesador, leer en unas memorias diferentes situadas respectivamente en tarjetas diferentes, como si se tratase de una sola y misma memoria, situada en la misma tarjeta que este procesador, y compartida por todos los procesadores, gracias al hecho de que el dispositivo de encaminamiento es visto como un controlador de memoria también para los accesos de sólo lectura. En todos los casos, un procesador emite de la misma manera una demanda de acceso sobre el bus local al cual está unida. Cada procesador se comporta, entonces. de la misma manera, cualquiera que sea la distancia a la cual está situado otro procesador al cual quiere enviar unos datos. Por consiguiente, es posible hacer ejecutar un mismo programa por todos los procesadores, para los accesos de sólo lectura.
Según otra característica, el dispositivo según el invento se caracteriza porque los primeros medios comprenden:
- unos medios para:
-
analizar secuencias que son emitidas sobre el bus local, identificar las demandas de acceso de sólo escritura destinadas a un procesador situado en otra tarjeta, construir paquetes, de longitud fija, a partir de estas secuencias, y emitir en el bus local un acuse de recibo destinado al procesador que ha emitido esta demanda de acceso;
-
proveer a cada paquete de un encabezamiento que comprende: un indicador de acceso de sólo escritura, la dirección de comienzo de un intervalo de memoria propio en el procesador destinatario, y la identidad de un intervalo propio en el procesador expedidor; paquetes consecutivos están provistos de direcciones consecutivas;
- unos medios para almacenar una secuencia de paquetes;
- y unos medios para emitir estos paquetes sobre el bus externo en forma de una secuencia de bloques que llevan cada uno un número entero de paquetes.
El dispositivo así caracterizado permite utilizar muy eficazmente el bus externo porque el hecho de transmitir un mensaje por bloques de paquetes destinados a direcciones consecutivas, permite, por un lado, optimizar la banda de paso del bus externo, y por otro, prever la dirección donde deberá estar inscrito el paquete que seguirá al paquete en curso de transmisión, permitiendo esto ganar tiempo en las operaciones de transmisión de escritura de los paquetes, y por consiguiente, ganar tiempo en la transmisión de un mensaje.
Con la ayuda de la descripción que hay a continuación y de las figuras que la acompañan se comprenderá mejor el invento y aparecerán otras características:
- La figura 1 representa el esquema sinóptico de un ejemplo de realización del dispositivo de comunicación según el invento,
- la figura 2 representa esquemáticamente una memoria que forma parte de este ejemplo de realización;
- la figura 3 representa el esquema sinóptico de un circuito de encaminamiento que forma parte de este ejemplo de realización;
- y la figura 4 ilustra el procedimiento de recorte de un paquete en una pluralidad de paquetes.
El ejemplo de realización representado en la figura 1 comprende tres tarjetas C1, C2, C3 unidas por un bus externo BE' que puede ser de tipo serie o paralelo. La tarjeta C1 comprende:
- un bus local BL1;
- tres procesadores P11, P21, P31, unidos cada uno de ellos sobre el bus local BL1;
- un controlador de memoria, MC1, unido sobre el bus local BL1;
- una memoria viva de acceso aleatorio, M1, unida al controlador MC1;
- y un circuito de encaminamiento RC1 que tiene un acceso unido sobre el bus local BL1 y un acceso unido sobre el bus externo BE.
En este ejemplo, las tarjetas C2 y C3 tienen una arquitectura análoga a la de la tarjeta C1. Nótese que el alcance del invento no está limitado a este número de tarjetas, ni a este número de procesadores por tarjeta.
Todas las memorias M11, M21, M31, M12, M22, M32, M13, M23, M33, del dispositivo, tienen un conjunto de direcciones comunes para constituir una memoria compartida y distribuida. Todos los procesadores P11, P21, P31, P12, P22, P32, P13, P23, P33 intercambian mensajes escribiendo datos en unas memorias que hacen el papel de buzones. En cada una de las tarjetas C1, C2, C3, la memoria, respectivamente M1, M2, M3, comprende tres intervalos de direccionamiento distintos y reservados para la recepción de datos destinados respectivamente a tres procesadores. Por ejemplo, la memoria M1 de la tarjeta C1 comprende tres intervalos de direccionamiento distintos PL11, PL21, PL31, reservadas para la recepción de datos destinados respectivamente a los procesadores P11, P21, P31. Por ejemplo, los datos emitidos por un procesador cualquiera, situado en una tarjeta cualquiera, y destinados al procesador P21, son inscritos en el intervalo PL21 donde serán leídos por el procesador P21.
Un procesador, P11 por ejemplo, puede emitir una secuencia de órdenes sobre el bus local BL1, constituyendo una demanda de acceso para un emplazamiento de memoria, para leer o/y escribir allí datos. Esta secuencia contiene las informaciones siguientes:
- el tipo de acceso (lectura o escritura);
- la dirección del emplazamiento de memoria, comprendiendo esta dirección un campo que designa la tarjeta que soporta la memoria, un campo que designa un intervalo de memoria que corresponde al procesador destinatario, un campo que designa un subintervalo de memoria que corresponde al procesador expedidor, y un campo de desplazamiento en este subintervalo;
- el tipo de datos a leer o a escribir (1, ó 2, ó 4, u 8 octetos);
- los datos a escribir, si se trata de una escritura.
Consideremos el controlador de memoria MC1, por ejemplo. Si recibe una secuencia de órdenes a través del bus local BL1, analiza esta secuencia para determinar si el emplazamiento designado por la dirección está situado en la memoria que él controla. Si este es el caso, y si se trata de un acceso de sólo escritura, realiza la escritura demandada y después emite a través del bus local BL1 una palabra de acuse de recibo destinada a señalar al procesador que ha demandado esta escritura, que ésta ha sido bien ejecutada. En el caso de una lectura, emite sobre el bus local BL1 una secuencia de palabras binarias que contienen los datos leídos.
Consideremos el circuito de encaminamiento RC1, por ejemplo. Éste vigila permanentemente el bus local BL1 al cual está unido, y el bus externo común BE. Si recibe una secuencia de órdenes a través del bus local BL1, analiza esta secuencia para determinar si el emplazamiento designado por la dirección está situado en la memoria M1 que está en la misma tarjeta C1 que él. Si no es este el caso, no reacciona, deja al controlador de memoria MC1 hacer la lectura o la escritura demandada.
- Si es una demanda de acceso de sólo escritura, y si la dirección de emplazamiento indica que no está situado en la memoria M1, el circuito de encaminamiento RC1 emite sobre el bus externo BE una secuencia de paquetes de datos construida a partir de la instrucción o de las instrucciones de escritura, de los datos, y de la dirección contenidos en la demanda de acceso. Emite, además, inmediatamente, sobre el bus local BL1, una palabra que indica que el acceso de sólo escritura ha sido bien ejecutado, para señalar al procesador que ha demandado esta escritura, que ésta ha sido bien ejecutada.
- Si es una demanda de acceso de sólo lectura, y si la dirección de emplazamiento indica que no está situado en la memoria M1, el circuito de encaminamiento RC1 emite sobre el bus externo BE un paquete construido a partir de la instrucción de lectura, y de la dirección, contenidas en la demanda de acceso.
El circuito de encaminamiento RC1 vigila permanentemente el bus externo BE, y analiza cada secuencia de paquetes emitida a éste bus:
- Si esta secuencia de paquetes contiene una demanda de acceso, emitida por la tarjeta C2 o la tarjeta C3, analiza esta secuencia para determinar si el emplazamiento designado por la dirección está situado en la memoria M1:
-
Si es una demanda de acceso de sólo escritura, emite sobre el bus local BL1 una demanda de acceso de sólo escritura construida a partir del tipo de acceso (escritura), del tipo de datos, de los datos a escribir, y de la dirección contenida en la secuencia de paquetes.
-
Si es una demanda de acceso de sólo lectura, emite sobre el bus local BL1 una demanda de acceso de sólo lectura construida a partir del tipo de acceso (lectura), del tipo de datos, y de la dirección contenida en la secuencia de paquetes. Después emite sobre el bus externo BE una respuesta que contiene los datos leídos.
- Si esta secuencia constituye una respuesta, emitida por la tarjeta C2 ó C3, a la secuencia de una demanda para lectura, emitida por la tarjeta C1, el circuito de encaminamiento RC1 analiza esta secuencia para determinar si el emplazamiento designado por la dirección está situado en la memoria M1. Si éste es el caso, emite sobre el bus local BL1 una demanda de acceso de sólo escritura construida a partir del tipo de acceso, del tipo de datos, de los datos leídos, y de la dirección contenidos en la secuencia de paquetes. El controlador MC1 inscribe en la memoria M1 los datos leídos, desbloquea el procesador, P11 por ejemplo, que había demandado la lectura y que esperaba, por tanto, la llegada de los datos leídos.
La figura 2 representa, a modo de ejemplo, la memoria M3 de la tarjeta C3. Muestra la estructura de los intervalos y de los subintervalos utilizados para memorizar los paquetes destinados a los procesadores P13, P23, P33 de la tarjeta C3. La memoria M3 comprende tres intervalos de direccionamiento PL13, PL23, PL33 reservados para la recepción de los paquetes destinados respectivamente a los tres procesadores P13, P23, P33. Como, en este ejemplo, cada procesador P13, P23, P33 puede recibir paquetes provenientes de otros ocho procesadores, cada intervalo de direccionamiento se descompone en dieciséis subintervalos de capacidades idénticas. A modo de ejemplo, el intervalo P13 comprende:
- un subintervalo P11-P13 para memorizar los paquetes emitidos por el procesador P11 con destino al procesador P13;
- un subintervalo P21-P13 para memorizar los paquetes emitidos por el procesador P21 con destino al procesador P13;
- un subintervalo P31-P13 para memorizar los paquetes emitidos por el procesador P31 con destino al procesador P13;
- un subintervalo P12-P13 para memorizar los paquetes emitidos por el procesador P12 con destino al procesador P13;
- un subintervalo P32-P13 para memorizar los paquetes emitidos por el procesador P32 con destino al procesador P13;
- un subintervalo P23-P13 para memorizar los paquetes emitidos por el procesador P23 con destino al procesador P13;
- y un subintervalo P33-P13 para memorizar los paquetes emitidos por el procesador P33 con destino al procesador P13;
Por ejemplo, si el procesador P11 de la tarjeta C1 emite un paquete destinado al procesador P13 de la tarjeta C3, el controlador de memoria MC3 de la tarjeta C3 inscribe este paquete en el subintervalo P11-P13.
La figura 3 representa el esquema sinóptico de un ejemplo de realización del circuito de encaminamiento RC1 tomado a modo de ejemplo. Este ejemplo de realización comprende:
- un circuito 1, que tiene una entrada unida sobre el bus local BL1, para analizar secuencias que son emitidas sobre el bus local BL1, identificar las demandas de acceso, para lectura o escritura, destinadas a un procesador situado en otra tarjeta; construir paquetes a partir de estas secuencias; y teniendo una salida unida sobre el bus local BL1, para emitir sobre el bus local BL1 un acuse de recibo destinado al procesador que ha emitido esta demanda de acceso;
- una memoria 2 del tipo primero entra primero sale, teniendo una entrada de datos unida a una salida del circuito 1, para el almacenamiento de los paquetes a emitir sobre el bus externo BE;
- un circuito 3 de escritura sobre el bus externo BE, teniendo una entrada unida a una salida de la memoria 2 y una salida unida sobre el bus externo BE, para emitir los paquetes almacenados en la memoria 2;
- un circuito 4, teniendo una entrada unida sobre el bus externo BE, para analizar secuencias de paquetes que son emitidas sobre el bus externo BE, e identificar los paquetes destinados a un procesador de la tarjeta C1;
- una memoria 5 del tipo primero en entrar primero en salir, teniendo una entrada unida a una salida del circuito 4, para el almacenamiento de los paquetes provenientes del bus externo BE y destinados a un procesador de la tarjeta C1;
- un circuito 6, teniendo una entrada unida a una salida de la memoria 5, para construir demandas de acceso de sólo lectura o escritura (secuencia de palabras sobre el bus local BL1) a partir de paquetes almacenados en la memoria 5, o emitirlos sobre el bus local BL1.
El circuito 3 vigila el número de paquetes contenidos en esta memoria 2. Vacía la memoria 2 cuando ésta contiene dieciséis paquetes, o bien, cuando ésta contiene menos de dieciséis paquetes, después de que expire un plazo máximo de espera definido por un temporizador no representado. El circuito 3 demanda, entonces, la atribución del bus externo BE, y vacía la memoria 2 cuando el bus BE es atribuido al circuito RC1 (por un procedimiento clásico de asignación de bus, realizado por medios clásicos, no representados, distribuidos en los circuitos de encaminamiento RC1, RC2, RC3).
El circuito 6 procede de manera análoga sobre el bus local BL1, cuando el bus local BL1 es atribuido a este circuito 6 (por un procedimiento clásico de gestión de accesos realizado por medios clásicos, no representados, distribuidos en los circuitos de encaminamiento RC1, RC2, RC3).
El circuito 6 procede de manera análoga sobre el bus local BL1, cuando el bus local BL1 es atribuido a este circuito 6 (por un procedimiento clásico de gestión de los accesos, realizado por medios clásicos, no representados, distribuidos en los circuitos de encaminamiento RC1, RC2, RC3). Todo mensaje es transmitido sobre un bus local en forma de un acceso a memoria clásico, para lectura o para escritura, gestionado por el controlador de memoria MC1.
Todo mensaje es transmitido sobre el bus externo BE en forma de paquetes que llevan cada uno ocho octetos: Un encabezamiento H constituido por cuatro octetos utilizados para el direccionamiento, y cuatro octetos de datos útiles D. El encabezamiento H lleva:
- un indicador de tipo de acceso (lectura/escritura);
- un primer campo que constituye la dirección del principio de un intervalo que está situado en la memoria de la tarjeta donde está situado el procesador destinatario;
- un segundo campo que designa un subintervalo que corresponde al procesador destinatario, y que es una fracción predeterminada del intervalo destinado por el primer campo;
- y un tercer campo que constituye un desplazamiento en el interior del subintervalo, para designar un emplazamiento para un paquete.
Cada paquete puede estar provisto, además, de bits de control de paridad para detectar de forma clásica los errores de transmisión. El circuito de encaminamiento del lado de emisión y el circuito de encaminamiento del lado de recepción gestionando: los permisos de los paquetes, una temporización, y una retransmisión eventual en el caso de un error de transmisión. Por consiguiente, el programa ejecutado por los procesadores no tiene que gestionar estas operaciones.
Cuando un circuito de enrutamiento, RC3 por ejemplo, recibe un paquete transmitido por el bus externo BE, escruta el encabezamiento de direccionamiento H para determinar si el paquete está destinado a un intervalo de direcciones que pertenecen a la memoria M3 de la tarjeta C3 sobre la cual está situado este circuito de encaminamiento RC3. Escruta el encabezamiento de encaminamiento para determinar además: el tipo de acceso, la dirección del comienzo del intervalo, la identidad de un subintervalo, y el desplazamiento que designa el emplazamiento destinatario del paquete. Después, ordena la inscripción o la lectura de los datos útiles en este emplazamiento.
En este ejemplo de realización, cada paquete está constituido por ocho octetos. Para aumentar la eficacia de la utilización del bus externo BE, es decir, aumentar, el flujo medio sobre este bus, los paquetes de ocho octetos son transmitidos en forma de bloques que comprenden cada uno varios paquetes, como máximo dieciséis paquetes consecutivos en este ejemplo.
La figura 4 ilustra el procedimiento de transmisión de un mensaje M, relativamente largo, de un procesador a otro. La última línea representa el desarrollo de la transmisión del conjunto de un mensaje M, en función del tiempo t. En este ejemplo, el mensaje M es transmitido en forma de una secuencia de seis bloques BK1,.....,BK6, separados por intervalos de tiempo de duraciones diversas. En este ejemplo, los bloques llevan como máximo dieciséis paquetes. La transmisión se detiene, después de la emisión de dieciséis paquetes del bloque BK1 y después de la emisión de dieciséis paquetes del bloque BK2, para tomar el tiempo de preparar un nuevo bloque de dieciséis paquetes, y para permitir eventualmente a otros circuitos de encaminamiento tomar el bus externo BE para transmitir ellos mismos unos bloques de paquetes. El bloque BK3 no lleva más que cinco paquetes, porque un suceso independiente de la transmisión de paquete ha provocado una interrupción de la transmisión, al nivel del circuito de enrutamiento, o al nivel del procesador que proporciona el paquete a transmitir. Los dos bloques siguientes, BK4 y BK5, comprenden el número máximo (dieciséis) paquetes. El último bloque BK6 no lleva más que tres paquetes, ya que el mensaje M comprende un número total de paquetes tal que la transmisión de tres paquetes basta para terminar la transmisión del paquete M.
Esta figura 4 muestra, además, el contenido del bloque BK2 a título de ejemplo. Está constituido por dieciséis paquetes PK1,..., PK16. Muestra, además, a título de ejemplo, la constitución del paquete PK6, cuatro octetos de cabeza, con referencia H, constituyen la dirección (correspondiente a un emplazamiento de memoria), y cuatro octetos con referencia D constituyen los datos útiles.
Es posible difundir un mensaje simultáneamente hacia todos los procesadores, reservando una dirección para este uso. Cuando una secuencia de paquetes contiene esta dirección, es memorizada y después convertida en demanda de acceso, por todos los circuitos de enrutamiento.

Claims (3)

1. Dispositivo de comunicación entre varios procesadores (P11, P21, P31, P12, P22, P32, P13, P23, P33) que pueden estar situados sobre tarjetas diferentes (C1, C2, C3), estando unido cada procesador por medio de un bus local (BL1, BL2, BL3) con una memoria (M1, M2, M3, respectivamente) situada sobre la misma tarjeta que este procesador; comprendiendo cada procesador unos medios de programas para emitir sobre su bus local una secuencia denominada demanda de acceso de sólo escritura, constituida por palabras de mando para escribir datos en un emplazamiento de memoria, designado por una dirección contenida en una de las palabras de la secuencia; y unos medios de transmisión de datos (RC1, RC2, RC3, BE) para unir entre ellos todos los buses locales, comprendiendo estos medios de transmisión, en cada tarjeta (C1, C2, C3), un dispositivo de encaminamiento (RC1, RC2, RC3) unido sobre el bus local (BL1, BL2, BL3) de esta tarjeta, y unido a un bus denominado externo (BE) que une todas las tarjetas; y comprendiendo cada dispositivo de encaminamiento (RC1):
- unos primeros medios (1, 2, 3) para analizar cada demanda de acceso de sólo escritura, emitida sobre el bus local (BL1) al cual está unido este dispositivo de enrutamiento, y, si una demanda de acceso es dirigida a una memoria (M2, M3) que no está situada en la misma tarjeta (C1) que la que soporta este dispositivo de enrutamiento, emitir sobre el bus externo (BE) una secuencia (M) de paquetes (PK1,..., PK16) construida a partir de los datos y de la dirección contenida en esta demanda de acceso, y emitir sobre el bus local (BL1) un acuse de recibo destinado al procesador que ha emitido esta demanda de acceso;
- unos segundos medios (4, 5, 6) para analizar cada secuencia de paquetes emitida sobre el bus externo (BE) por otro circuito de encaminamiento (RC2, RC3), y, si una secuencia de paquetes contiene una demanda de acceso de sólo escritura dirigida a una memoria situada sobre la tarjeta (C1) que soporta este dispositivo de encaminamiento (RC1), emitir sobre el bus local (BL1) una demanda de acceso de sólo escritura, construida a partir de datos y de una dirección contenida en esta secuencia contenida en esta secuencia de paquetes;
caracterizado porque cada tarjeta comprende un controlador de memoria (MC1, MC2, MC3, respectivamente) para leer e inscribir paquetes de datos en la memoria (M1, M2, M3, respectivamente) de esta tarjeta;
y porque cuando un controlador de memoria (MC3) recibe un paquete para inscribir en la memoria que está asociada con él, inscribe este paquete en un intervalo (..., PL13, ...), de esta memoria, propia del procesador (..., P13, ...) que es el destinatario del paquete considerado, y más particularmente en un subintervalo (..., P11-P13, ...) propia del procesador
\hbox{(..., P11, ...)}
que ha emitido el paquete.
2. Dispositivo según la reivindicación 1, caracterizado porque cada dispositivo de encaminamiento (RC1) comprende, además:
- unos terceros medios (1, 2, 3) para analizar cada demanda de acceso de sólo lectura, emitida sobre el bus local (BL1) al cual está unido este dispositivo de enrutamiento, y para, si una demanda de acceso de sólo lectura está dirigida a una memoria (M2, M3) que no está situada sobre la misma tarjeta (C1) que la que soporta este dispositivo de enrutamiento, emitir sobre el bus externo (BE) una secuencia (M) de paquetes (PK1, ..., PK16) construida a partir de esta demanda de acceso de sólo lectura;
- unos cuartos medios (4, 5, 6) para analizar cada secuencia de paquetes emitida sobre el bus externo (BE) por otro circuito de encaminamiento (RC2, RC3) y para, si una secuencia de paquetes contiene una demanda de acceso de sólo lectura, dirigida a una memoria situada sobre la tarjeta (C1) que soporta este dispositivo de enrutamiento, emitir sobre el bus local (BL1) una demanda de acceso de sólo lectura, construida a partir de la demanda de acceso de sólo lectura contenida en esta secuencia de paquetes;
- unos quintos medios (1, 2, 3) para analizar cada secuencia emitida sobre el bus local (BL1) y conteniendo unos datos leídos a demanda de un procesador situado sobre otra tarjeta (C1, C2, C3), y emitir sobre el bus externo (BE) una secuencia (M) de paquetes (PK1, ..., PK16) construida a partir de estos datos leídos;
- unos sextos medios (4, 5, 6) para analizar cada secuencia de paquetes emitida sobre el bus externo (BE) por, y para, si una secuencia de paquetes contiene datos leídos dirigidos a un procesador situado sobre la tarjeta (C1) que soporta este dispositivo de enrutamiento, emitir sobre el bus local (BL1) una secuencia construida a partir de esta secuencia de paquetes.
3. Dispositivo según la reivindicación 1, caracterizado porque los primeros medios (1, 2, 3) comprenden:
- unos medios (1) para:
-
analizar secuencias que son emitidas sobre el bus local (BL1), identificar las demandas de acceso de sólo escritura destinadas a un procesador situado sobre otra tarjeta, para construir paquetes (PK1, ..., PK16), de longitud fija, a partir de estas secuencias; y emitir sobre el bus local (BL1) un acuse de recibo destinado al procesador que ha emitido esta demanda de acceso;
-
proveer a cada paquete de un encabezamiento (H) que comprende: un indicador de acceso de sólo escritura, la dirección del principio de un intervalo de memoria (PL13) propia del procesador destinatario (P13), la identidad de un subintervalo (P11-P13) propia del procesador expedidor (P11); y un desplazamiento en el interior del subintervalo, que designa un emplazamiento de memoria; unos paquetes destinados a unos emplazamientos de memoria consecutivos que están emitidos de forma consecutiva;
- unos medios (2) para almacenar una secuencia de paquetes (PK1, ..., PK16);
- y unos medios (3) para emitir estos paquetes sobre el bus externo (BE) en forma de una secuencia de bloques (BK1, BK2, ...) que comprenden cada uno un número entero de paquetes.
ES98402566T 1997-10-16 1998-10-15 Dispositivo de comunicacion entre varios procesadores. Expired - Lifetime ES2198670T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9712960A FR2770008B1 (fr) 1997-10-16 1997-10-16 Dispositif de communication entre plusieurs processeurs
FR9712960 1997-10-16

Publications (1)

Publication Number Publication Date
ES2198670T3 true ES2198670T3 (es) 2004-02-01

Family

ID=9512303

Family Applications (1)

Application Number Title Priority Date Filing Date
ES98402566T Expired - Lifetime ES2198670T3 (es) 1997-10-16 1998-10-15 Dispositivo de comunicacion entre varios procesadores.

Country Status (5)

Country Link
EP (1) EP0910021B1 (es)
AT (1) ATE244419T1 (es)
DE (1) DE69815988T2 (es)
ES (1) ES2198670T3 (es)
FR (1) FR2770008B1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295571B1 (en) * 1999-03-19 2001-09-25 Times N Systems, Inc. Shared memory apparatus and method for multiprocessor systems
RU2168198C1 (ru) * 1999-09-13 2001-05-27 Курский государственный технический университет Микроконтроллерная сеть
RU2168755C1 (ru) * 2000-03-20 2001-06-10 Курский государственный технический университет Модуль матричной коммуникационной сети
RU2166793C1 (ru) * 2000-07-10 2001-05-10 Курский государственный технический университет Модуль коммуникационной сети
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
RU2280887C1 (ru) * 2005-02-15 2006-07-27 Государственное образовательное учреждение высшего профессионального образования Курский государственный университет Микроконтроллерная сеть
RU2359320C2 (ru) * 2007-06-27 2009-06-20 Государственное образовательное учреждение высшего профессионального образования Курский государственный технический университет Модуль для организации обмена сообщениями

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4719621A (en) * 1985-07-15 1988-01-12 Raytheon Company Packet fastbus
AU598101B2 (en) * 1987-02-27 1990-06-14 Honeywell Bull Inc. Shared memory controller arrangement
JPH034351A (ja) * 1989-04-26 1991-01-10 Dubner Computer Syst Inc システム・バス・データ・リンク装置
US5664152A (en) * 1995-06-06 1997-09-02 Hewlett-Packard Company Multiple segmenting of main memory to streamline data paths in a computing system
US5734850A (en) * 1995-07-05 1998-03-31 National Semiconductor Corporation Transparent bridge between of a computer system and a method of interfacing the buses to operate as a single logical bus

Also Published As

Publication number Publication date
DE69815988D1 (de) 2003-08-07
ATE244419T1 (de) 2003-07-15
DE69815988T2 (de) 2004-01-15
FR2770008A1 (fr) 1999-04-23
EP0910021B1 (fr) 2003-07-02
FR2770008B1 (fr) 2001-10-12
EP0910021A1 (fr) 1999-04-21

Similar Documents

Publication Publication Date Title
ES2198670T3 (es) Dispositivo de comunicacion entre varios procesadores.
ES2350715T3 (es) Método e instalación para la transmisión optimizada de datos entre un dispositivo de control y una pluralidad de dispositivos de campo.
DE69838387D1 (de) Verfahren und vorrichtung in einem paketenleitweglenkungsschalter um den zugriff zu einem gemeinsamen speicher auf verschiedenen datenraten zu steuern
WO1992015162A1 (en) Method and apparatus for controlling data communication operations within stations of a local area network
EP0198559B1 (en) Communication system including a first-in-first-out buffer
US5414705A (en) Resequencing device for a node of a cell switching system
US5383182A (en) Resequencing device for a node of a cell switching system
US6385072B1 (en) Content addressable memory using part of memory region to store data which should not be erased
US11216308B2 (en) Communication architecture for exchanging data between processing units
JPS63215134A (ja) 通信制御装置
JP4157208B2 (ja) 制御装置と制御装置の通信制御方法
CN105446935A (zh) 共享存储并发访问处理方法及装置
US20040228342A1 (en) Routing of data streams
KR100388342B1 (ko) 비동기 및 동기 프로토콜을 갖는 멀티 포트 메모리
US5163049A (en) Method for assuring data-string-consistency independent of software
US7536528B2 (en) Memory arrangement
KR20010053612A (ko) 기억 장치 및 상기 기억 장치를 동작시키기 위한 방법
WO2001031441A3 (en) Remote access using shared memory
JPH0226920B2 (es)
CA2129157A1 (en) Arinc 629 data receiver system
US20060253615A1 (en) Allocation of station addresses to communication users in a bus system
US6275884B1 (en) Method for interconnecting components within a data processing system
ES3053775T3 (en) Sensor arrangement
KR100735026B1 (ko) 메모리 시스템
KR100819968B1 (ko) 반도체 메모리 시스템 및 반도체 메모리 칩