ES2684559T3 - Procedimiento y dispositivo de procesamiento de mensajes - Google Patents

Procedimiento y dispositivo de procesamiento de mensajes Download PDF

Info

Publication number
ES2684559T3
ES2684559T3 ES13807242.6T ES13807242T ES2684559T3 ES 2684559 T3 ES2684559 T3 ES 2684559T3 ES 13807242 T ES13807242 T ES 13807242T ES 2684559 T3 ES2684559 T3 ES 2684559T3
Authority
ES
Spain
Prior art keywords
node
message
queue
multicast
pointer
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.)
Active
Application number
ES13807242.6T
Other languages
English (en)
Inventor
Jiwei Gao
Wei Huang
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.)
ZTE Corp
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
Sanechips Technology Co Ltd
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 ZTE Corp, Sanechips Technology Co Ltd filed Critical ZTE Corp
Application granted granted Critical
Publication of ES2684559T3 publication Critical patent/ES2684559T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Abstract

Procedimiento de procesamiento de mensajes, que comprende: asignar un nodo a un mensaje de entrada en un espacio de memoria caché, guardar dicho mensaje 5 y tomar una posición correspondiente a dicho espacio de memoria caché como información de índice de un descriptor de dicho mensaje (S11); extraer información de descriptor de dicho mensaje (S12); disponer en tramas y guardar dicha información de descriptor y dicha información de nodo de dicho mensaje en una lista enlazada de nodos (S13); en el que, asignar un nodo a dicho mensaje de entrada en dicho espacio de memoria caché y guardar dicho mensaje comprende: solicitar un nodo en una lista enlazada inactiva almacenada en memoria caché, y mantener un correspondiente puntero de la lista enlazada; uardar dicho mensaje en una unidad de memoria externa, de acuerdo con una dirección de memoria caché correspondiente a dicho nodo; y comprendiendo, además, después de guardar dicho mensaje en dicha unidad de memoria externa de acuerdo con dicha dirección de memoria caché correspondiente a dicho nodo: obtener, después de recibir un comando de extraer de la cola, un puntero de la lista enlazada de dicho nodo de acuerdo con dicho comando de extraer de la cola, y leer datos correspondientes a dicho nodo de acuerdo con una relación de correlación entre dicho puntero de la lista enlazada y dicha unidad de memoria externa; caracterizado por que comprende, después de solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché: ingresar en la cola dicho nodo y guardarlo, y si los nodos adyacentes en una misma cola tienen un atributo de multidifusión, introducir un nodo vacío entre dichos nodos adyacentes, un puntero de multidifusión de un nodo anterior apuntando a una dirección de dicho nodo vacío, y el puntero de multidifusión de dicho nodo vacío apuntando al nodo siguiente.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Procedimiento y dispositivo de procesamiento de mensajes Sector técnico
La presente invención se refiere al sector técnico de las tecnologías de comunicación y, más en particular, a un procedimiento y un dispositivo de procesamiento de mensajes.
Antecedentes de la invención
En la actual red de conmutación de paquetes, debido a necesidades de procesamiento del servicio, el sistema tiene primero que identificar atributos de unidifusión y multidifusión de los mensajes, a continuación replicar internamente los mensajes de multidifusión, gestionar los mensajes de unidifusión y multidifusión, planificar la extracción de los mensajes de la cola de acuerdo con las reglas establecidas por los usuarios, y finalmente incorporar todas las circunstancias de edición de los mensajes a la salida del sistema. Antes de seguir con el análisis, es necesario mencionar que en la red de conmutación de paquetes de longitud variable, la técnica de fragmentación de paquetes puede reducir de manera efectiva el retraso de los datos y la inestabilidad, y mejorar la utilización de la memoria caché, y es un mecanismo importante para el almacenamiento en memoria caché y la gestión de los mensajes en un dispositivo de procesamiento de la actual red de conmutación de paquetes. Su mecanismo de implementación es dividir todo el espacio de memoria caché en n unidades de memoria de acuerdo con un tamaño fijo, siempre que exista una entrada de mensaje, asignar un espacio de memoria caché de acuerdo con el tamaño del mensaje, y para un mensaje igual o menor que una unidad de memoria, asignar directamente una unidad, y para un mensaje mayor, puede ser necesario asignar múltiples unidades de memoria, teniendo al mismo tiempo que registrarse todas esas unidades de memoria que pertenecen al mismo mensaje, y en diseño, se utiliza generalmente una lista enlazada para la gestión. Por lo tanto, para el espacio de memoria caché completo, se utiliza la lista enlazada para asignar el espacio de memoria caché cuando existe una entrada de paquete y para recuperar el espacio de memoria caché cuando existe una salida de paquete.
Por consiguiente, para la gestión de la planificación de salida de mensajes existe un mecanismo-gestión de descriptores correspondiente a la gestión de la memoria caché. Su función es generar un descriptor para cada mensaje ya guardado en la memoria caché, y dicho descriptor registra el puntero de dicho mensaje en el espacio de memoria caché. En correspondencia con el espacio de memoria caché de la entidad de paquete, el descriptor se guarda en el espacio de nodos, y se utiliza asimismo la lista enlazada para la gestión. Cada descriptor ocupa un nodo, y es asignado a un nodo durante el ingreso en cola y dicho nodo se guarda en la cola correspondiente, según reglas definidas por el usuario, y dicho nodo es recuperado durante la extracción de la cola, mientras que el descriptor se envía al espacio de memoria caché para la gestión, y el puntero en dicho espacio de memoria caché se utiliza para extraer la entidad de paquete.
De hecho, se puede analizar que, suponiendo que el sistema solamente soporte el servicio de mensajes de unidifusión, el espacio de memoria de la entidad de paquete puede corresponder de manera unívoca al espacio de nodos del descriptor, de tal modo que los dos conjuntos de mecanismos de gestión se pueden fusionar en un conjunto, pero el conflicto actual es el tratamiento para paquetes de multidifusión. Dado que la multidifusión consiste en replicar el descriptor del mensaje varias veces y finalmente correlacionarlos con diferentes colas, un mensaje de multidifusión ocupa múltiples nodos, pero existe solamente una entidad de paquete, por lo que se tiene el procedimiento mostrado en la figura 1. Para una serie de nodos para el mismo mensaje de multidifusión, todos los punteros de sus descriptores en el espacio de memoria caché apuntan a la misma dirección de memoria de la lista enlazada de paquetes, para guardar y enviar el mensaje de multidifusión. Se puede ver asimismo que existen dos conjuntos de mecanismos de gestión en la técnica anterior, teniendo las sobrecargas y las gestiones del paquete y de la cola de los dos conjuntos de listas enlazadas partes de grandes dimensiones y complicadas, lo que aumenta significativamente el coste del mantenimiento y de la gestión.
La patente US número 8223788 B1 da a conocer un procedimiento y un sistema para descriptores de cola. El sistema incluye: (a) un procesador, adaptado para generar descriptores del primer tipo, descriptores del segundo tipo y punteros de descriptores del segundo tipo; en el que los descriptores del primer tipo y los descriptores del segundo tipo describen entidades de datos recibidas por el sistema, y en el que el tamaño de un puntero de descriptor del segundo tipo es igual que el tamaño de un descriptor del primer tipo; y (b) una unidad de memoria, conectada al procesador, adaptada para mantener una cola que almacena por lo menos un descriptor del primer tipo y por lo menos un puntero de descriptor del segundo tipo.
La solicitud patente US número 2004/0114616 A1 da a conocer una disciplina de ingreso en cola para unidades de datos de conmutación (SDU, Switching Data Unit) combinada mejorada, para envío de PDU (Protocol Data Unit, unidad de datos de protocolo) de unidifusión y multidifusión en un nodo de conmutación. Los punteros de descriptor de SDU de multidifusión se replican almacenados en entradas de una parte de cola primero en entrar/primero en salir ("First-In/First-Out") de una cola híbrida del puerto de salida. Los punteros de descriptor de SDU de unidifusión son encadenados en entradas de una parte de cola de la lista enlazada de la cola híbrida del puerto de salida. El
5
10
15
20
25
30
35
40
45
50
55
60
mantenimiento de la cola híbrida utiliza contadores de cola híbrida, y contadores-entre-salidas almacenados en entradas de cola FIFO de multidifusión para mantener un seguimiento del número de entradas de la lista enlazada de SDU de unidifusión a las que atender entre entradas de cola FIFO de multidifusión. La cola híbrida combinada produce beneficios de eficiencia de almacenamiento a partir de enlazar PDU de unidifusión en listas enlazadas y obtiene, además, los beneficios de un acceso simple a entradas PDU de multidifusión.
Características de la invención
El problema técnico a resolver mediante la presente invención es dar a conocer un procedimiento y un dispositivo de procesamiento de mensajes, conseguir la memoria unificada de mensajes de unidifusión y multidifusión, una lista enlazada de descriptores corresponde a un recurso de memoria caché de entidades de paquete, reduciendo significativamente las sobrecargas para gestionar mensajes de unidifusión y multidifusión, con el fin de mejorar la capacidad de agregación de nodos.
Las características del procedimiento y el dispositivo según la presente invención se definen en las reivindicaciones independientes, y las características preferentes según la presente invención se definen en las reivindicaciones dependientes.
Para resolver el problema técnico mencionado anteriormente, la presente invención da a conocer un procedimiento de procesamiento de mensajes, que comprende:
asignar un nodo a un mensaje de entrada en un espacio de memoria caché, guardar dicho mensaje y tomar una posición correspondiente a dicho espacio de memoria caché como información de índice de un descriptor de dicho mensaje;
extraer información de descriptor de dicho mensaje;
disponer en tramas y guardar dicha información de descriptor e información de nodo de dicho mensaje en una lista enlazada de nodos.
Preferentemente, el procedimiento mencionado anteriormente tiene, además, la siguiente característica: asignar un nodo a dicho mensaje de entrada en dicho espacio de memoria caché y guardar dicho mensaje, que comprende:
solicitar un nodo en una lista enlazada inactiva almacenada en memoria caché, y mantener un correspondiente puntero de la lista enlazada;
guardar dicho mensaje en una unidad de memoria externa, de acuerdo con una dirección de memoria caché correspondiente a dicho nodo.
Preferentemente, el procedimiento mencionado anteriormente tiene, además, la siguiente característica: después de solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché, comprende:
ingresar en la cola dicho nodo y guardarlo, si los nodos adyacentes en la misma cola tienen un atributo de multidifusión, introducir un nodo vacío entre dichos nodos adyacentes, apuntando el puntero de multidifusión del nodo anterior a la dirección de dicho nodo vacío, y apuntando el puntero de multidifusión de dicho nodo vacío al nodo siguiente.
Preferentemente, el procedimiento mencionado anteriormente tiene, además, la siguiente característica: después de guardar dicho mensaje en dicha unidad de memoria externa de acuerdo con dicha dirección de memoria caché correspondiente a dicho nodo, comprende, además:
después de recibir un comando de extraer de la cola, obtener un puntero de la lista enlazada de dicho nodo de acuerdo con dicho comando de extraer de la cola, y leer datos correspondientes a dicho nodo de acuerdo con una relación de correlación entre dicho puntero de la lista enlazada y dicha unidad de memoria externa.
Preferentemente, el procedimiento mencionado anteriormente tiene, además, la siguiente característica: dicha información de descriptor comprende una o varias de las informaciones siguientes:
información de unidifusión de dicho mensaje, información de multidifusión de dicho mensaje, información de índice, atributo de final de mensaje del nodo actual, un número efectivo de octetos y un número de cola.
Para resolver el problema mencionado anteriormente, la presente invención da a conocer, además, un dispositivo de procesamiento de mensajes, que comprende:
5
10
15
20
25
30
35
40
45
50
55
60
65
un primer módulo, configurado para: asignar un nodo a un mensaje de entrada en un espacio de memoria caché, guardar dicho mensaje y tomar una posición correspondiente a dicho espacio de memoria caché como una información de índice de un descriptor de dicho mensaje;
un segundo módulo, configurado para: extraer información de descriptor de dicho mensaje;
un tercer módulo, configurado para: disponer en tramas y guardar dicha información de descriptor e información de nodo de dicho mensaje en una lista enlazada de nodos.
Preferentemente, el dispositivo mencionado anteriormente tiene, además, la siguiente característica: dicho primer módulo comprende:
una primera unidad, configurada para: solicitar un nodo en una lista enlazada inactiva almacenada en memoria caché y mantener un correspondiente puntero de la lista enlazada;
una segunda unidad, configurada para: guardar dicho mensaje en una unidad de memoria externa de acuerdo con una dirección de memoria caché correspondiente a dicho nodo.
Preferentemente, dicho dispositivo tiene, además, la característica siguiente:
dicha primera unidad está configurada para: después de solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché, ingresar en la cola dicho nodo y guardarlo, si los nodos adyacentes en la misma cola tienen atributo de multidifusión, introducir un nodo vacío entre dichos nodos adyacentes, el puntero de multidifusión del nodo anterior apunta a la dirección de dicho nodo vacío y el puntero de multidifusión de dicho nodo vacío apunta al nodo siguiente.
Preferentemente, el dispositivo mencionado anteriormente tiene, además, la siguiente característica: dicho dispositivo comprende, además:
un cuarto módulo, configurado para: después de recibir un comando de extraer de la cola, obtener el puntero de la lista enlazada de dicho nodo de acuerdo con dicho comando de extraer de la cola, de acuerdo con una relación de correlación entre dicho puntero de la lista enlazada y dicha unidad de memoria externa, leer los datos correspondientes a dicho nodo.
Preferentemente, el dispositivo mencionado anteriormente tiene, además, la siguiente característica: dicha información de descriptor comprende uno o varios de:
información de unidifusión de dicho mensaje, información de multidifusión de dicho mensaje, información de índice, atributo de final de mensaje del nodo actual, el número efectivo de octetos y un número de cola.
En resumen, la realización de la presente invención da a conocer un procedimiento y un dispositivo de procesamiento de mensajes, que no tienen que utilizar dos mecanismos de gestión independientes debido a la replicación de un nodo de multidifusión, y gestiona y mantiene los atributos de unidifusión y multidifusión y el correspondiente puntero de la lista enlazada en una sola información de nodo, para asegurar que los nodos de la cola y las unidades del espacio de memoria caché se pueden corresponder mutuamente de manera biunívoca, toda la gestión requiriendo solamente mantener un conjunto de mecanismo de asignación y mecanismo de recuperación de la lista enlazada. En un escenario en el que existen mensajes de unidifusión y multidifusión impredecibles en el lado de entrada del sistema, utiliza un nodo para mantener por separado la lista enlazada de descriptores de las dos dimensiones de unidifusión y multidifusión, para conseguir una memoria unificada de mensajes de unidifusión y multidifusión, y la lista enlazada de descriptores corresponde al recurso de memoria caché de entidades de paquete, reduciendo significativamente las sobrecargas para gestionar dichos mensajes de unidifusión y multidifusión y teniendo una mayor versatilidad.
Breve descripción de los dibujos
La figura 1 es un diagrama estructural de una memoria caché de unidifusión y multidifusión unificada, utilizada normalmente;
la figura 2 es un diagrama de flujo de un procedimiento de procesamiento de mensajes, de acuerdo con una realización de la presente invención;
la figura 3 es un diagrama esquemático de un dispositivo de procesamiento de mensajes, de acuerdo con una realización de la presente invención;
la figura 4 es un diagrama esquemático de una operación de agregación de nodos de unidifusión y multidifusión, de acuerdo con una realización de la presente invención;
5
10
15
20
25
30
35
40
45
50
55
60
65
la figura 5 es un diagrama esquemático de una operación de agregación de nodos de multidifusión enlazados con multidifusión, de acuerdo con una realización de la presente invención;
la figura 6 es un diagrama esquemático de una operación de agregación de varios nodos, de acuerdo con una realización de la presente invención;
la figura 7 es un diagrama esquemático de una operación de puntero de la lista enlazada de la cola, de acuerdo con una realización de la presente invención;
la figura 8 es un diagrama esquemático de una operación de información de nodo de la lista enlazada, de acuerdo con una realización de la presente invención.
Realizaciones preferentes de la presente invención
A continuación, en combinación con los dibujos adjuntos, se describirán en detalle las realizaciones de la presente invención. Se debe observar que, mientras no haya conflicto, las realizaciones y características de las realizaciones de la presente solicitud se pueden combinar arbitrariamente entre sí.
En el actual dispositivo de red de conmutación de paquetes, para soportar el procesamiento unificado de los mensajes de unidifusión y multidifusión, un procedimiento utilizado normalmente es dividir en dos partes: gestión de entidades de paquete y gestión de descriptores, dicha gestión de entidades de paquete se utiliza para asignar y recuperar espacios de memoria caché, con un tamaño fijo, guardar la entidad de mensaje, mantener la información completa de dicho mensaje, etc. La gestión de descriptores se utiliza para, después de desempaquetar un paquete de multidifusión, la introducción unificada en la cola con los paquetes de unidifusión, asignación, planificación de la extracción de la cola y recuperación del espacio de nodo, y finalmente instrucción de dicha gestión de entidades de paquete para entregar dicho mensaje.
Aunque estos dos conjuntos de mecanismos de procesamiento pueden llevar a cabo correctamente la gestión unificada de los mensajes de unidifusión y multidifusión, introduce complejidad en el procesamiento del sistema, grandes sobrecargas de implementación y otros problemas. De acuerdo con la exposición anterior, el sistema utiliza dos conjuntos de mecanismos de gestión para un diseño compatible de procesamiento de paquetes de unidifusión y multidifusión, de manera que, si es posible conseguir un procedimiento para utilizar un mecanismo de gestión que sea compatible con los requisitos de diseño mencionados anteriormente, tan sólo un simple análisis no funciona, debido a que se encontrará que si un paquete de multidifusión entra en una cola diferente, tiene un puntero diferente, si simplemente existe una correspondencia unívoca de dicho espacio de entidades de paquete con dicho espacio de descriptores, no se puede soportar la sobrecarga de implementación. Sin embargo, si el espacio de entidades de paquete y dicho espacio de descriptores pueden ser agregados por nodos y la información de memoria de los dos espacios originales se puede integrar, se puede utilizar un conjunto de mecanismo de gestión, que no sólo es un proceso simple, sino además una estructura más común.
La presente invención diseña un procedimiento de procesamiento de mensajes para mejorar la capacidad de agregación de nodos, en el que, se asigna en primer lugar un espacio de memoria caché al mensaje de entrada para guardar el mensaje, se toma a continuación la posición correspondiente a dicho espacio de memoria caché como la información de índice del descriptor para participar en el ingreso de dicho mensaje en la cola, y durante el proceso de ingreso en la cola, se agregan dichos nodos según atributos tales como los atributos de unidifusión y multidifusión del mensaje, el signo del final del mensaje y la información de conexión de los elementos de la cola, y se agrega el espacio de memoria y el espacio de descriptores de dicho mensaje en un conjunto de información de gestión, correspondiente a un espacio de visita, utilizando por lo tanto un conjunto de mecanismos de mantenimiento de nodos con gran capacidad de agregación para gestionar los mensajes de unidifusión y multidifusión.
La figura 2 es un diagrama de flujo de un procedimiento de procesamiento de mensajes de acuerdo con una realización de la presente invención, tal como se muestra en la figura 2, el procedimiento de la presente realización comprende:
-S11-, asignar un nodo a un mensaje de entrada en el espacio de memoria caché para guardar dicho mensaje y tomar la posición correspondiente a dicho espacio de memoria caché como la información de índice del descriptor de dicho mensaje;
-S12-, extraer la información de descriptor de dicho mensaje;
-S13-, disponer en tramas y guardar la información de descriptor y la información de nodo de dicho mensaje en una lista enlazada de nodos.
En el que, asignar un nodo a dicho mensaje de entrada en dicho espacio de memoria caché para guardar dicho mensaje en la etapa -S11- comprende:
5
10
15
20
25
30
35
40
45
50
55
60
65
solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché y mantener el correspondiente puntero de la lista enlazada;
guardar dicho mensaje en una unidad de memoria externa, de acuerdo con la dirección de memoria caché correspondiente a dicho nodo.
En el que después de solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché, el procedimiento comprende:
ingresar en la cola dicho nodo y guardarlo, si los nodos adyacentes en la misma cola tienen un atributo de multidifusión, introducir un nodo vacío entre dichos nodos adyacentes, apuntando el puntero de multidifusión del nodo anterior a la dirección de dicho nodo vacío, y apuntando el puntero de multidifusión de dicho nodo vacío al nodo siguiente.
En el que, después de guardar dicho mensaje en dicha unidad de memoria externa, de acuerdo con la dirección de memoria caché correspondiente a dicho nodo, el procedimiento comprende, además:
después de recibir un comando de extraer de la cola, obtener un puntero de la lista enlazada de dicho nodo de acuerdo con dicho comando de extraer de la cola, según la relación de correlación entre dicho puntero de la lista enlazada y dicha unidad de memoria externa, leer los datos correspondientes a dicho nodo.
La figura 3 es un diagrama esquemático de un dispositivo de procesamiento de mensajes, según una realización de la presente invención, tal como se muestra en la figura 3, comprendiendo el dispositivo de la presente realización:
un módulo (equivalente al primer módulo) de asignación de espacio de memoria caché, utilizado para asignar un nodo al mensaje de entrada en dicho espacio de memoria caché para guardar dicho mensaje, tomando la posición correspondiente a dicho espacio de memoria caché como la información de índice del descriptor de dicho mensaje;
un módulo (equivalente al segundo módulo) de extracción de descriptor, utilizado para extraer la información de descriptor de dicho mensaje;
un módulo (equivalente al tercer módulo) de agregación de información de nodo, utilizado para disponer en tramas y guardar la información de descriptor y la información de nodo de dicho mensaje en una lista enlazada de nodos.
En el que dicho primer módulo comprende:
una primera unidad, utilizada para solicitar un nodo en la lista enlazada inactiva almacenada en memoria caché y mantener el correspondiente puntero de la lista enlazada;
una segunda unidad, utilizada para guardar dicho mensaje en la unidad de memoria externa, de acuerdo con la dirección de memoria caché correspondiente a dicho nodo.
En el que, después de solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché, dicha primera unidad se utiliza, además, para ingresar dicho nodo en la cola y guardarlo, si los nodos adyacentes en la misma cola tienen atributo de multidifusión, introducir un nodo vacío entre los nodos adyacentes, el puntero de multidifusión del nodo anterior apunta a la dirección de dicho nodo vacío, y el puntero de multidifusión de dicho nodo vacío apunta al siguiente nodo.
En una realización preferente, esta puede comprender, además:
un módulo (equivalente al cuarto módulo) de gestión de extracción de un paquete de la cola, utilizado para, después de recibir un comando de extraer de la cola, obtener un puntero de la lista enlazada de dicho nodo de acuerdo con dicho comando de extraer de la cola, y leer los datos correspondientes a dicho nodo, de acuerdo con la relación de correlación entre dicho puntero de la lista enlazada y dicha unidad de memoria externa.
En el que la información de descriptor comprende una o varias de las informaciones siguientes:
información de unidifusión de dicho mensaje, información de multidifusión de dicho mensaje, información de índice, atributo de final de mensaje del nodo actual, el número efectivo de octetos y el número de cola.
El dispositivo de procesamiento de mensajes acorde con la realización de la presente invención comprende principalmente las siguientes cuatro partes: un módulo de asignación de espacio de memoria caché, un módulo de extracción de descriptor, un módulo de agregación de información de nodo y un módulo de gestión de extracción de un paquete de la cola. Estas cuatro partes completan conjuntamente el almacenamiento, análisis sintáctico,
5
10
15
20
25
30
35
40
45
50
55
60
65
etiquetado y extracción de paquetes, etc., asegurando de ese modo que se utiliza un proceso muy simplificado y optimizado para procesar los mensajes de unidifusión y multidifusión.
En el que,
cuando entra un mensaje, dicho módulo de asignación de espacio de memoria caché es responsable de solicitar en primer lugar un nodo en la lista enlazada inactiva almacenada en memoria caché, mantener a continuación un correspondiente puntero de la lista enlazada, guardando al mismo tiempo dicho mensaje en la unidad de memoria externa, de acuerdo con la dirección de memoria caché correspondiente a dicho nodo. Después de cada operación de guardar de una unidad de memoria externa correspondiente a un nodo, enviar el índice de nodo de dicha unidad de memoria externa a dicho módulo de extracción de descriptor, llevando al mismo tiempo la información de descriptor, tal como información de unidifusión y multidifusión de dicho mensaje, representada por dicha unidad de memoria externa, el atributo de final de mensaje del nodo actual, el número efectivo de octetos y el número de cola, y para múltiples nodos de un solo mensaje, tiene que garantizar que la información de unidifusión y la información de multidifusión son coherentes.
Dicho módulo de extracción de descriptor es responsable de recibir la información de descriptor enviada desde dicho módulo de asignación de espacio de memoria caché para completar el guardado de la información del correspondiente nodo. Cuando la información de nodo de asignación recibida es válida, montar la información de descriptor, tal como el número de cola alineado y el atributo de mensaje de acuerdo con el campo de bits predeterminado, y conducir la señal válida al módulo de agregación de información de dicho nodo.
El módulo de agregación de información de nodo es responsable del procesamiento de la lista enlazada de agregación de nodos, que comprende el proceso de ingresar en la cola y extraer de la cola de dicho nodo. Cuando se recibe una indicación válida de información de dicho módulo de extracción de descriptor, muestrear y guardar el descriptor alineado, extrayendo al mismo tiempo la información de nodo asignada de dicho mensaje en el espacio de memoria caché, y a continuación empaquetar, disponer en tramas y guardar la información mencionada anteriormente en la FIFO (primero en entrar, primero en salir) de ingresar en la cola del nodo. En correspondencia con ingresar el nodo en la cola y guardarlo, el comando de extraer de la cola procedente del módulo de gestión de extracción de la cola del paquete se guarda en la FIFO de extracción de la cola del nodo. Las FIFO tanto de ingresar en la cola como de extraer de la cola se planifican bajo el mecanismo de sondeo con intervalo de tiempo fijo, leyendo la FIFO, realizando el análisis sintáctico del comando, extrayendo el número de cola y el descriptor, manteniendo los punteros del encabezado y del final, llevando a cabo la protección de lectura y escritura de las operaciones de ingresar en la cola y extraer de la cola, y similares, y finalmente manteniendo la información del elemento del espacio de nodos de la lista enlazada. Donde, la mejora de la capacidad de agregación de nodos se refleja principalmente en el mantenimiento del puntero de la lista enlazada de la cola y de la información de nodo, manteniendo el puntero de la lista enlazada y la información del enlace de unidifusión y multidifusión de dicho nodo mediante el análisis de los atributos del descriptor, y comprimiendo significativamente y simplificando la lista enlazada de paquetes original y la lista enlazada de nodos original.
El módulo de gestión de extracción de la cola de un paquete es responsable de planificar la extracción de la cola en función de las reglas del usuario, controlar la extracción de la cola del nodo en cada cola y controlar la salida de datos correspondiente a dicho nodo. En una operación de solicitud de extracción de la cola, dicho módulo de gestión de extracción de la cola de un paquete envía una señal capacitada para extracción de la cola y un número de cola al módulo de agregación de información de nodo, después de la selección y el procesamiento del comando de operación, recibe finalmente la información de puntero de desempaquetar el nodo enviada por dicho módulo de agregación de nodos. De acuerdo con la relación de correlación entre el puntero del nodo y la unidad de memoria de datos, acciona el controlador de memoria externa para leer y entregar los datos correspondientes a dicho nodo para completar el guardado y envío de los datos.
El procedimiento de gestión de la memoria caché de la presente realización utiliza el modo en que los nodos y las unidades de memoria se corresponden biunívocamente entre sí, para un paquete de unidifusión o un nodo de unidifusión, este procedimiento de procesamiento es fácil de comprender, tan sólo se asigna el nodo correspondiente de acuerdo con el procedimiento de asignación de la unidad de memoria. Pero si tiene que soportar la gestión unificada de unidifusión y multidifusión, necesita considerar los otros tres casos: es un nodo de multidifusión después de un nodo de unidifusión, es un nodo de multidifusión después de un nodo de multidifusión, y es un nodo de unidifusión después de un nodo de multidifusión. Si la gestión basada en nodos puede conseguir estas cuatro combinaciones, completa la gestión unificada de unidifusión y multidifusión, y su esencia es resolver el problema de gestionar la lista enlazada del mismo paquete de multidifusión o elemento de multidifusión entre las colas. A continuación se describe respectivamente cada uno de estos casos.
Suponiendo que se toma la cola x de la figura 4, por ejemplo, los nodos ocupados por la cola en la figura 4 corresponden uno por uno a los espacios de memoria caché, utiliza el procedimiento de procesamiento en que cada nodo mantiene la información de enlace de unidifusión y la información de enlace de multidifusión. Los primeros dos nodos en la cola son nodos de unidifusión, para el primer nodo, solamente tiene que mantener su información de enlace de unidifusión, incluyendo el siguiente puntero, el atributo de final de paquete, etc. Para el segundo nodo, su
5
10
15
20
25
30
35
40
45
50
55
60
65
siguiente nodo tiene atributo de multidifusión, por lo tanto tiene primero que mantener su información de enlace de multidifusión, hasta que se obtiene un nodo final de paquete de multidifusión completo, para todos los nodos de multidifusión entre estos, solamente mantiene la información de enlace de multidifusión. Vuelve a continuación al campo de bits de la información de enlace de unidifusión del segundo nodo para mantener la información de puntero del nodo de unidifusión después del paquete de multidifusión en la cola. Por lo tanto, para cualquier nodo de unidifusión, si su siguiente nodo es un nodo de multidifusión, mantiene en su información de multidifusión el campo de bits, si el siguiente nodo del final del paquete de multidifusión es un nodo de unidifusión, mantiene en el campo de bits de unidifusión donde mantiene su encabezado de paquete de multidifusión. Si dicho paquete de multidifusión tiene una copia en la cola y, tal como el identificador de nodo mostrado en la figura 4, entonces utiliza análogamente el procedimiento mencionado anteriormente para mantenimiento, el siguiente_m de los nodos que pertenecen a las dos colas están ambos apuntando al mismo nodo de encabezado del paquete de multidifusión, y el nodo final de dicho paquete de multidifusión indica el final de dicho paquete de multidifusión, y encuentra los nodos siguientes en las colas respectivas a través del siguiente_u del nodo de origen.
Por lo tanto, si la situación es un poco más complicada, sigue existiendo un paquete de multidifusión después del paquete de multidifusión, ¿cómo tratarla? En primer lugar, se analiza la situación cuando están conectados dos paquetes de multidifusión. Se sabe a partir del análisis anterior que después de una operación de enlace de un paquete de multidifusión, es necesario encontrar el siguiente puntero de acuerdo con la información del nodo que apunta a su encabezado de paquete. Para el caso que se va a exponer, si el siguiente puntero sigue siendo un nodo de multidifusión, está obligado a añadir un campo de bits de multidifusión, y si existen varios paquetes de multidifusión consecutivos, el nodo que apunta el primer encabezado de paquete de multidifusión debería añadir múltiples campos de bits de multidifusión, si está diseñado de este modo, no se puede soportar la sobrecarga de memoria y la utilización es muy lenta, por lo tanto, cuando existen dos paquetes de multidifusión adyacentes en la misma cola, es necesario introducir un nodo vacío, el diagrama esquemático de la operación específica se muestra en la figura 5. En comparación con la figura 4, es un paquete de multidifusión en lugar de un paquete de unidifusión después del paquete de multidifusión en las colas x e y, entonces actualmente tiene que introducir un nodo vacío en cada cola respectivamente, el siguiente_u del paquete de multidifusión anterior apunta a la dirección de dicho nodo vacío, es decir, al índice de dicho nodo vacío, y el puntero de multidifusión siguiente_m de dicho nodo vacío es el siguiente paquete de multidifusión, el puntero de unidifusión siguiente_u de dicho nodo vacío es el siguiente salto. Si el siguiente salto es unidifusión, entonces a lo que apunta el siguiente_u es a una dirección de nodo de unidifusión realmente existente, si el siguiente salto sigue siendo una multidifusión, entonces sigue apuntando a un nodo vacío, la operación es tal como se ha descrito anteriormente.
Con el procedimiento acorde con la realización de la presente invención, los dos conjuntos de mecanismos de gestión utilizados en el esquema original se fusionan en un conjunto, mejorando la capacidad de agregación de nodos, simplifican significativamente el proceso de manipulación, se reduce la sobrecarga de recursos y se adapta mejor a diversas situaciones en las que la unidifusión y la multidifusión comparten proporciones de nodos en el proceso de funcionamiento en tiempo real del sistema. Después de la agregación de nodos, el detalle más fino de los elementos de la cola planificados cambia de paquete a nodo, lo que, para la red de conmutación de paquetes en la que el paquete tiene longitud variable, es muy eficaz para reducir la inestabilidad y mejorar el rendimiento.
Para mostrar más claramente las soluciones técnicas de la presente invención, a continuación, con la combinación de la figura 6, la figura 7, la figura 8 y las realizaciones específicas, se describe en mayor detalle la presente invención sin pretender limitarla.
Suponiendo que existe actualmente un área de memoria mostrada como la cuadrícula punteada de la figura 6, se utiliza el procedimiento de agregación de nodos para la gestión, y cada nodo corresponde a una dirección de memoria externa. A su vez, el sistema introduce y guarda los paquetes cortos de unidifusión en -B00-, -B10-, -B20- y los correlaciona con la cola -1-, e introduce secuencialmente y guarda los paquetes de unidifusión en -B08-, -B18-, -B28- y los correlaciona con la cola -2-. A continuación, introduce y guarda un paquete largo de multidifusión en -B31- y -B32-, y después de dichas multidifusiones de paquete, los correlaciona con la cola -1- y la cola -2-, y a continuación introduce y guarda un paquete corto de unidifusión en -B40- y lo correlaciona con la cola -1-, después de eso, introduce y guarda un paquete corto de multidifusión en -B51- y lo correlaciona con la cola -1- y la cola -2-, debido a los dos paquetes de multidifusión consecutivos, la cola -2- solicita en este momento un nodo vacío -B46- para mantener la lista enlazada de agregación de nodos. A continuación viene un paquete largo de multidifusión que se correlaciona con la cola -1- y la cola -2- respectivamente, el encabezado del paquete ocupa -B82-, en este momento, las colas -1- y -2- requieren solicitar nodos vacíos -B71- y -B65- respectivamente, hasta que posteriormente la unidifusión -B90- se correlaciona con la cola -1-, y -B98- se correlaciona con la cola -2-.
Las situaciones mencionadas anteriormente recorren todos los procedimientos para interconectar los paquetes de unidifusión y los paquetes de multidifusión, a continuación, tomando la cola -1- como ejemplo para mostrar la operación de agregación de la información de unidifusión y multidifusión de cada nodo en la cola y las operaciones de puntero del encabezado y del final de la cola, la mencionada cola -2- tiene los mismos procedimientos. Para guardar en memoria la información de nodo de la lista enlazada, esta se puede seleccionar en chip o fuera de chip en función de las necesidades, y la diferencia es que la memoria fuera de chip puede requerir la operación de máscara de octetos debido a limitaciones del ancho de bits y del ancho de banda.
5
10
15
20
25
30
35
40
45
50
55
60
65
La operación de ingresar en la cola, de dicha cola -1-, se muestra en la figura 7, la operación de nodo de lista enlazada se muestra en la figura 8, y en el estado inicial, la cola está vacía.
El nodo de unidifusión -B00- entra en la cola: ajustar el puntero del encabezado (HU) del paquete de unidifusión y el puntero del final (TU) del paquete de unidifusión como índice de nodo 00, ajustar la etiqueta significativa del puntero de encabezado HPOS y la etiqueta significativa del puntero del final TPOs como 0 para identificar los actuales punteros del encabezado y del final como campo de bits de unidifusión que es válido.
El nodo de unidifusión -B10- entra en la cola: mantener el puntero de encabezado sin cambios, actualizar el puntero del final TU a 10 y mantener sin cambios la etiqueta significativa del puntero. Mantener el puntero del campo de unidifusión, eopu (etiqueta del final del paquete de unidifusión) y la información de descriptor y similares, en la unidad de memoria de dicho nodo.
El nodo de unidifusión -B20- entra en la cola: mantener sin cambios el puntero de encabezado, actualizar el puntero del final (TU) a 20 y mantener sin cambios la etiqueta significativa del puntero. Mantener la información del campo de unidifusión en la unidad de memoria de dicho nodo.
El nodo de multidifusión -B31- entra en la cola: mantener sin cambios el campo del puntero del final TU, a 20, actualizar el TM (puntero del final del paquete de multidifusión) a 31, actualizar la etiqueta significativa del puntero del final (TPOS) a 1, indicar que el final de la cola actual es un nodo de multidifusión, manteniendo al mismo tiempo el puntero y la información de descriptor y similares del campo de multidifusión de la unidad de memoria de dicho nodo. Sin embargo, el nodo actual no es un final de multidifusión, representando que el paquete de multidifusión aún no ha terminado.
El nodo de multidifusión -B32- entra en la cola: actualizar el TM a 32, mantener la etiqueta significativa del puntero del final TPOS a 1, el nodo actual es el nodo final, indicar que un paquete de multidifusión ha terminado, mantener al mismo tiempo el puntero, eopm (etiqueta de final del paquete de multidifusión) y la información de descriptor del campo de multidifusión en la unidad de memoria de dicho nodo.
El nodo de unidifusión -B40- entra en la cola: mantener sin cambios el campo del puntero del final TM, actualizar dicho TU a 40, actualizar dicha TPOS a 0, es necesario mantener la información del campo de unidifusión apuntando a dicho nodo de multidifusión -B31-, tal como se muestra en la figura 7, el campo de bits mostrado en la dirección 20 indica que dicha dirección necesita el campo de bits de unidifusión de la segunda operación.
El nodo de multidifusión -B51- entra en la cola: mantener sin cambios dicho campo del puntero del final TU, a 40, actualizar dicho TM a 51, actualizar la etiqueta significativa del puntero del final TPOS a 1, mantener al mismo tiempo el puntero, eopm y la información de descriptor del campo de multidifusión de la unidad de memoria de dicho nodo.
El nodo de multidifusión -B82- entra en la cola: en este momento, dado que existen dos paquetes de multidifusión consecutivos, tiene que introducir un nodo vacío -B71-, actualizar la etiqueta vacía TM a 82, mantener la etiqueta significativa del puntero del final TPOS a 1, mantener el puntero y la información de descriptor del campo de multidifusión de la unidad de memoria de dicho nodo.
El nodo de multidifusión -B83- entra en la cola: el nodo de multidifusión anterior no es el nodo final, actualizar dicho TM a 83 y mantener la etiqueta significativa del puntero del final TPOS a 1.
El nodo de multidifusión -B84- entra en la cola: el nodo de multidifusión anterior no es el nodo final, actualizar el TM a 84, mantener la etiqueta significativa del puntero del final TPOS a 1, el nodo actual es el nodo final, mantener entonces los punteros, eopm y la información de descriptor del campo de multidifusión de la unidad de memoria de dicho nodo.
El nodo de unidifusión -B90- entra en la cola: mantener sin cambios el campo del puntero del final TM, actualizar dicho TU a 90, actualizar dicha TPOS para que siga a 0, se tiene que mantener la información del campo de unidifusión que apunta a dicho nodo de multidifusión -B82-, manteniendo al mismo tiempo el puntero, eopu y la información de descriptor y similares del campo de multidifusión de la unidad de memoria de dicho nodo.
En lo anterior se han descrito las operaciones de agregación de nodos de unidifusión y multidifusión en el caso de ingresar en la cola, a continuación se describirá el proceso de extraer de la cola de dicha cola, la operación del puntero de cola se muestra en la figura 7, y la operación del nodo de la lista enlazada se muestra en la figura 8.
El nodo -B00- sale de la cola: mantener sin cambios el campo del puntero del final, actualizar dicho HU a 10 y mantener dicho puntero HPOS sin cambios, a 0.
5
10
15
20
25
30
35
40
45
50
55
60
El nodo -B10- sale de la cola: mantener sin cambios el campo del puntero del final, actualizar dicho HU a 20, mantener sin cambios el puntero HPOS, sigue a 0.
El nodo -B20- sale de la cola: mantener sin cambios el campo del puntero del final, leer la información de nodo de la lista enlazada, actualizar dicho HU a 40, actualizar dicho HM a 31 y actualizar dicho puntero HPOS a 1.
El nodo -B31- sale de la cola: mantener sin cambios dicho campo del puntero del final, leer la información de nodo de la lista enlazada, mantener sin cambios dicho HU, actualizar dicho HM a 32 y mantener sin cambios dicho puntero HPOS.
El nodo -B32- sale de la cola: mantener sin cambios el campo del puntero del final, leer la información de nodo de la lista enlazada, y dicho nodo es un elemento de final de multidifusión, mantener sin cambios dicho HU, mantener sin cambios dicho HM y actualizar dicho puntero HPOS a 0.
El nodo -B40- sale de la cola: leer la información de nodo de la lista enlazada, actualizar dicho HU a 71, actualizar dicho HM a 51 y actualizar dicho puntero HPOS a 1.
El nodo -B51- sale de la cola: analizar que el campo ept (empty node tag, etiqueta de nodo vacío) de dicho descriptor es válido, indicando que dicho nodo es un nodo vacío, dicho eopm es válido, indicando que el siguiente nodo sigue siendo un paquete de multidifusión, y actualizar dicho puntero HPOS a 0.
El nodo -B82- sale de la cola: leer la información de nodo de la lista enlazada, actualizar dicho HU a 90, actualizar dicho HM a 83, actualizar dicho puntero HPOS a 1, y el nodo actual no es el final del paquete.
El nodo -B83- sale de la cola: leer la información de nodo de la lista enlazada, actualizar dicho HU a 90, actualizar dicho HM a 84, el nodo actual es el final del paquete, y actualizar dicho puntero HPOS a 0.
El nodo -B90- sale de la cola: comparar los actuales punteros del encabezado y del final, y todos los campos de bits son idénticos, representando que dicha cola está vacía. Las operaciones de ingresar en la cola y extraer de la cola de dichos paquetes de unidifusión y multidifusión en la cola se han completado.
Los expertos en la materia pueden comprender que la totalidad o parte de las etapas del procedimiento mencionado anteriormente se pueden completar mediante los programas que instruyen al hardware relevante, y dichos programas se pueden guardar en un medio de memoria legible por ordenador, tal como memoria de sólo lectura, un disco magnético o un disco óptico. Alternativamente, la totalidad o parte de las etapas de las realizaciones mencionadas anteriormente pueden asimismo implementarse utilizando uno o varios circuitos integrados. Por consiguiente, cada módulo/unidad en la realización mencionada anteriormente se puede realizar en forma de módulo de función de hardware o de software. La presente invención no se limita a ninguna forma específica de combinaciones de hardware y software.
La descripción anterior son solamente realizaciones preferentes de la presente invención, y por supuesto, la presente invención puede asimismo tener una variedad de otras realizaciones, los expertos en la materia pueden realizar toda clase de cambios y modificaciones correspondientes de acuerdo con la presente invención, y todos estos cambios y modificaciones correspondientes deben incluirse en el alcance de protección de las reivindicaciones adjuntas de la presente invención.
Aplicabilidad industrial
En resumen, la realización de la presente invención da a conocer un procedimiento y un dispositivo de procesamiento de mensajes, que no tienen que utilizar dos mecanismos de gestión independientes debido a la replicación de un nodo de multidifusión, y gestiona y mantiene los atributos de unidifusión y multidifusión y el correspondiente puntero de la lista enlazada en una sola información de nodo, para asegurar que los nodos de la cola y las unidades del espacio de memoria caché se pueden corresponder mutuamente de manera biunívoca, requiriendo toda la gestión solamente mantener un conjunto de mecanismo de asignación y mecanismo de recuperación de la lista enlazada. En un escenario en el que existen mensajes de unidifusión y multidifusión impredecibles en el lado de entrada del sistema, utiliza un nodo para mantener por separado la lista enlazada de descriptores de las dos dimensiones de unidifusión y multidifusión, para conseguir una memoria unificada de mensajes de unidifusión y multidifusión, y la lista enlazada de descriptores corresponde al recurso de memoria caché de entidades de paquete, reduciendo significativamente las sobrecargas para gestionar dichos mensajes de unidifusión y multidifusión y teniendo una mayor versatilidad.

Claims (4)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Procedimiento de procesamiento de mensajes, que comprende:
    asignar un nodo a un mensaje de entrada en un espacio de memoria caché, guardar dicho mensaje y tomar una posición correspondiente a dicho espacio de memoria caché como información de índice de un descriptor de dicho mensaje (S11);
    extraer información de descriptor de dicho mensaje (S12);
    disponer en tramas y guardar dicha información de descriptor y dicha información de nodo de dicho mensaje en una lista enlazada de nodos (S13);
    en el que, asignar un nodo a dicho mensaje de entrada en dicho espacio de memoria caché y guardar dicho mensaje comprende:
    solicitar un nodo en una lista enlazada inactiva almacenada en memoria caché, y mantener un correspondiente puntero de la lista enlazada;
    guardar dicho mensaje en una unidad de memoria externa, de acuerdo con una dirección de memoria caché correspondiente a dicho nodo; y
    comprendiendo, además, después de guardar dicho mensaje en dicha unidad de memoria externa de acuerdo con dicha dirección de memoria caché correspondiente a dicho nodo:
    obtener, después de recibir un comando de extraer de la cola, un puntero de la lista enlazada de dicho nodo de acuerdo con dicho comando de extraer de la cola, y leer datos correspondientes a dicho nodo de acuerdo con una relación de correlación entre dicho puntero de la lista enlazada y dicha unidad de memoria externa;
    caracterizado por que comprende, después de solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché:
    ingresar en la cola dicho nodo y guardarlo, y si los nodos adyacentes en una misma cola tienen un atributo de multidifusión, introducir un nodo vacío entre dichos nodos adyacentes, un puntero de multidifusión de un nodo anterior apuntando a una dirección de dicho nodo vacío, y el puntero de multidifusión de dicho nodo vacío apuntando al nodo siguiente.
  2. 2. Procedimiento, según la reivindicación 1, en el que dicha información de descriptor comprende una o varias de las siguientes informaciones:
    una información de unidifusión de dicho mensaje, una información de multidifusión de dicho mensaje, una información de índice, un atributo de final de mensaje del nodo actual, un número efectivo de octetos y un número de cola.
  3. 3. Dispositivo de procesamiento de mensajes, que comprende:
    un primer módulo, configurado para: asignar un nodo a un mensaje de entrada en un espacio de memoria caché, guardar dicho mensaje y tomar una posición correspondiente a dicho espacio de memoria caché como información de índice de un descriptor de dicho mensaje;
    un segundo módulo, configurado para: extraer información de descriptor de dicho mensaje;
    un tercer módulo, configurado para: disponer en tramas y guardar dicha información de descriptor e información de nodo de dicho mensaje en una lista enlazada de nodos;
    en el que dicho primer módulo comprende:
    una primera unidad, configurada para: solicitar un nodo en una lista enlazada inactiva almacenada en memoria caché y mantener un correspondiente puntero de la lista enlazada;
    una segunda unidad, configurada para: guardar dicho mensaje en una unidad de memoria externa de acuerdo con una dirección de memoria caché correspondiente a dicho nodo;
    en el que dicho dispositivo comprende, además:
    un cuarto módulo, configurado para: después de recibir un comando de extraer de la cola, obtener el puntero de la lista enlazada de dicho nodo de acuerdo con dicho comando de extraer de la cola y, de acuerdo con una relación de correlación entre dicho puntero de la lista enlazada y dicha unidad de memoria externa, leer los datos correspondientes a dicho nodo;
    5
    caracterizado por que,
    dicha primera unidad está configurada para: después de solicitar un nodo en dicha lista enlazada inactiva almacenada en memoria caché, ingresar en la cola dicho nodo y guardarlo, y si los nodos adyacentes en una misma 10 cola tienen atributo de multidifusión, introducir un nodo vacío entre dichos nodos adyacentes, en el que un puntero de multidifusión de un nodo anterior apunta a una dirección de dicho nodo vacío, y el puntero de multidifusión de dicho nodo vacío apunta al nodo siguiente.
  4. 4. Dispositivo, según la reivindicación 3, en el que dicha información de descriptor comprende uno o varios de:
    15
    una información de unidifusión de dicho mensaje, una información de multidifusión de dicho mensaje, una información de índice, un atributo de final de mensaje del nodo actual, un número efectivo de octetos y un número de cola.
    20
ES13807242.6T 2012-10-12 2013-08-19 Procedimiento y dispositivo de procesamiento de mensajes Active ES2684559T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210387704 2012-10-12
CN201210387704.XA CN103731368B (zh) 2012-10-12 2012-10-12 一种处理报文的方法和装置
PCT/CN2013/081778 WO2013189364A1 (zh) 2012-10-12 2013-08-19 一种处理报文的方法和装置

Publications (1)

Publication Number Publication Date
ES2684559T3 true ES2684559T3 (es) 2018-10-03

Family

ID=49768140

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13807242.6T Active ES2684559T3 (es) 2012-10-12 2013-08-19 Procedimiento y dispositivo de procesamiento de mensajes

Country Status (7)

Country Link
US (1) US9584332B2 (es)
EP (1) EP2830269B1 (es)
JP (1) JP5892500B2 (es)
CN (1) CN103731368B (es)
ES (1) ES2684559T3 (es)
RU (1) RU2595764C2 (es)
WO (1) WO2013189364A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106537858B (zh) * 2014-08-07 2019-07-19 华为技术有限公司 一种队列管理的方法和装置
CN107222435B (zh) * 2016-03-21 2020-07-24 深圳市中兴微电子技术有限公司 消除报文的交换头阻的方法及装置
CN107526691B (zh) * 2016-06-21 2020-06-02 深圳市中兴微电子技术有限公司 一种缓存管理方法及装置
CN106789734B (zh) * 2016-12-21 2020-03-13 中国电子科技集团公司第三十二研究所 在交换控制电路中巨帧的控制系统及方法
CN106789730B (zh) * 2016-12-29 2020-02-11 杭州迪普科技股份有限公司 分片报文的处理方法及装置
CN106656438B (zh) * 2017-01-03 2019-07-23 国家电网公司 一种goose报文序列的生成和编辑方法
CN109660471B (zh) * 2018-12-14 2022-08-16 锐捷网络股份有限公司 基于fpga的指针回收方法及装置
CN110011920B (zh) * 2019-04-11 2021-03-23 盛科网络(苏州)有限公司 一种报文处理方法及装置
CN110445721B (zh) * 2019-09-09 2021-12-14 迈普通信技术股份有限公司 一种报文转发方法及装置
CN113157465B (zh) * 2021-04-25 2022-11-25 无锡江南计算技术研究所 基于指针链表的消息发送方法及装置
CN115497273B (zh) * 2022-04-22 2024-01-09 北京临近空间飞行器系统工程研究所 装订描述方法和基于装订参数链表的无线指令控制方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002281080A (ja) * 2001-03-19 2002-09-27 Fujitsu Ltd パケットスイッチ装置およびマルチキャスト送出方法
US6918005B1 (en) * 2001-10-18 2005-07-12 Network Equipment Technologies, Inc. Method and apparatus for caching free memory cell pointers
US7394822B2 (en) * 2002-06-04 2008-07-01 Lucent Technologies Inc. Using reassembly queue sets for packet reassembly
US7397809B2 (en) * 2002-12-13 2008-07-08 Conexant Systems, Inc. Scheduling methods for combined unicast and multicast queuing
US7546234B1 (en) * 2003-01-08 2009-06-09 Xambala, Inc. Semantic processing engine
US20050036502A1 (en) * 2003-07-23 2005-02-17 International Business Machines Corporation System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's
US7586911B2 (en) * 2003-10-17 2009-09-08 Rmi Corporation Method and apparatus for packet transmit queue control
US7860097B1 (en) * 2004-02-13 2010-12-28 Habanero Holdings, Inc. Fabric-backplane enterprise servers with VNICs and VLANs
JP2005323231A (ja) * 2004-05-11 2005-11-17 Nippon Telegr & Teleph Corp <Ntt> パケット通信品質制御装置
US20060187949A1 (en) * 2005-02-09 2006-08-24 Ganesh Seshan Queuing and scheduling architecture for a unified access device supporting wired and wireless clients
CN101150490B (zh) * 2006-09-23 2011-11-16 华为技术有限公司 一种单播和多播业务数据包的队列管理方法和系统
RU2447595C2 (ru) * 2007-03-16 2012-04-10 Интердиджитал Текнолоджи Корпорейшн Способ и устройство беспроводной связи для поддержки реконфигурации параметров управления радиолинии
US8223788B1 (en) * 2007-10-24 2012-07-17 Ethernity Networks Ltd Method and system for queuing descriptors
CN101729407B (zh) 2009-12-04 2012-01-04 西安电子科技大学 基于单多播区分处理的低时延抖动交换方法及设备
CN101835102B (zh) 2010-05-19 2013-07-03 迈普通信技术股份有限公司 一种用于无线局域网的队列管理方法以及无线接入设备
CN102447610B (zh) * 2010-10-14 2015-05-20 中兴通讯股份有限公司 实现报文缓存资源共享的方法和装置

Also Published As

Publication number Publication date
CN103731368B (zh) 2017-10-27
EP2830269A1 (en) 2015-01-28
RU2595764C2 (ru) 2016-08-27
JP5892500B2 (ja) 2016-03-23
RU2014141198A (ru) 2016-06-10
EP2830269A4 (en) 2015-05-13
WO2013189364A1 (zh) 2013-12-27
EP2830269B1 (en) 2018-05-23
US20150304124A1 (en) 2015-10-22
US9584332B2 (en) 2017-02-28
CN103731368A (zh) 2014-04-16
JP2015511790A (ja) 2015-04-20

Similar Documents

Publication Publication Date Title
ES2684559T3 (es) Procedimiento y dispositivo de procesamiento de mensajes
US8656071B1 (en) System and method for routing a data message through a message network
CN105706043B (zh) 推进式链接的列表吞吐量
US9864633B2 (en) Network processor having multicasting protocol
WO2018107681A1 (zh) 一种队列操作中的处理方法、装置及计算机存储介质
WO2018149177A1 (zh) 一种报文处理方法及装置
US20130346645A1 (en) Memory switch for interconnecting server nodes
US10248315B2 (en) Devices and methods for interconnecting server nodes
US20200044931A1 (en) Advanced network tracing in the data plane
US20220078119A1 (en) Network interface device with flow control capability
US9584637B2 (en) Guaranteed in-order packet delivery
US20130007378A1 (en) Mechanisms for efficient intra-die/intra-chip collective messaging
US9274586B2 (en) Intelligent memory interface
CN113032295A (zh) 一种数据包二级缓存方法、系统及应用
CN101110780A (zh) 一种传输控制数据流的方法和装置以及系统
WO2016202158A1 (zh) 一种报文传输方法、装置及计算机可读存储介质
WO2024021801A1 (zh) 报文转发装置及方法、通信芯片及网络设备
US11552907B2 (en) Efficient packet queueing for computer networks
TWI223747B (en) Increasing memory access efficiency for packet applications
Wang et al. Block-based packet buffer with deterministic packet departures
TW200302413A (en) Netbufs: communication protocol packet buffering using paged memory management
TWI328376B (en) Pre-learning of values with later activation in a network device
CN109617838B (zh) 多通道报文汇聚共享内存管理方法及系统
Tang et al. Demostration of self-described buffer for accelerating packet forwarding on multi-core servers
Zhang Study on Embedded TCP_IP Protocol and ARM implementation