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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor 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.
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)
| 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)
| 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 |
-
1997
- 1997-10-16 FR FR9712960A patent/FR2770008B1/fr not_active Expired - Fee Related
-
1998
- 1998-10-15 ES ES98402566T patent/ES2198670T3/es not_active Expired - Lifetime
- 1998-10-15 DE DE69815988T patent/DE69815988T2/de not_active Expired - Fee Related
- 1998-10-15 AT AT98402566T patent/ATE244419T1/de not_active IP Right Cessation
- 1998-10-15 EP EP98402566A patent/EP0910021B1/fr not_active Expired - Lifetime
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) | 반도체 메모리 시스템 및 반도체 메모리 칩 |