ES2312309T3 - Programador de puerto prioritario con circuito ciclico rapido para conmutadores atm de alta calidad. - Google Patents

Programador de puerto prioritario con circuito ciclico rapido para conmutadores atm de alta calidad. Download PDF

Info

Publication number
ES2312309T3
ES2312309T3 ES00101399T ES00101399T ES2312309T3 ES 2312309 T3 ES2312309 T3 ES 2312309T3 ES 00101399 T ES00101399 T ES 00101399T ES 00101399 T ES00101399 T ES 00101399T ES 2312309 T3 ES2312309 T3 ES 2312309T3
Authority
ES
Spain
Prior art keywords
port
ready
ports
input
atm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00101399T
Other languages
English (en)
Inventor
Alexander T. c/o NEC U.S.A. Inc. Ishii
Sharif M. c/o NEC U.S.A. Inc. Shahrier
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Application granted granted Critical
Publication of ES2312309T3 publication Critical patent/ES2312309T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/255Control mechanisms for ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • H04L2012/5635Backpressure, e.g. for ABR
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

Un conmutador ATM para controlar un flujo de células ATM en una red, comprendiendo dicho conmutador: puertos de entrada; puertos de salida; y un programador centralizado, adaptado para usar una arquitectura de árbol para procesar paquetes que contienen datos que hacen referencia a un puerto de entrada previamente seleccionado, para seleccionar un puerto de entrada particular de dichos puertos de entrada y para enviar una célula ATM de puerto de entrada particular hacia una salida designada de dichos puertos de salida, caracterizado porque dicho programador centralizado selecciona dicho puerto de entrada particular basándose en al menos unos estados listos detectados entre dichos puertos de entrada, siendo cada uno de dichos estados listos un estado de entre un estado no listo, un estado listo ordinario y un estado listo prioritario.

Description

Programador de puerto prioritario con circuito cíclico rápido para conmutadores ATM de alta calidad.
Antecedentes de la invención 1.- Campo de la invención
La presente invención se refiere a sistemas y conmutadores de red que controlan el flujo de datos en la red y, más particularmente, a conmutadores y programadores de modo de transferencia asíncrona (ATM) de alta capacidad que gestionan el flujo de células ATM a través de dicho conmutador.
2.- Descripción de la técnica relacionada
Se han desplegado conmutadores (ATM) en numerosos sistemas LAN/WAN de telecomunicación. La arquitectura básica de un conmutador ATM se muestra en la figura 1. El conmutador consiste en un conjunto de puertos de entrada, un conjunto de puertos de salida y un programador centralizado. Las células ATM de transferencia llegan a los puertos de entrada y son conmutadas hacia su(s) puerto(s) de salida designado(s). Cualquier entrada puede ir a una cualquiera de las salidas de una manera variable en el tiempo según se determine por el programador ATM. Con muchos conmutadores ATM, se impone la restricción de que, durante cualquier tiempo de célula, pueda programarse exactamente una célula. Esta entrada puede conectarse a una o varias salidas. De ahí que el mapeado de entradas hacia salidas sea una operación de uno a muchos. Si una entrada se conmuta únicamente hacia una salida, el modo de conexión se denomina unidifiusión. Por otro lado, si una entrada se envía a múltiples puertos de salida, la conexión se denomina multidifusión. La velocidad máxima a la cual el programador puede realizar estas conexiones es un factor que determina el rendimiento máximo del conmutador ATM.
Se han presentado en la literatura una variedad de arquitecturas de programador ATM. Muchos de estos documentos se enfocan a un conmutador ATM con memoria intermedia de entrada/salida. Véase I. Iliadis, "Prestaciones de un Conmutador de Paquetes con Formación de Colas de Entrada y Salida en Tráfico No Equilibrado", IEEE INFOCOM, 1992, e I. Iliadis y W.E. DenZel, "Prestaciones de un Conmutador de Paquetes con Formación de Colas de Entrada y Salida", IEEE INFOCOM, 1990. En un conmutador con memoria intermedia de entrada/salida, la formación de colas de células tiene lugar en los puertos de entrada. Todas las memorias intermedias de entrada funcionan a la velocidad de línea, que puede ser de 622 Mbits/s o a una velocidad similar. Uno de los inconvenientes de la memoria intermedia de entrada es el bloqueo de Cabeza de Línea (HOL) que da como resultado que no se envíe una célula de entrada debido a que su memoria intermedia de salida está llena. Este problema puede aliviarse formando colas de células en los módulos de entrada según sus puertos de destino. Todas las colas se almacenan en una memoria común compartida.
Uno de los métodos anteriores de programación de células ATM es el de Primero Dentro, Primero Fuera (FIFO). Esté método da servicio a las conexiones en el orden en el que las células lleguen a las entradas. Aunque este método es sencillo, no garantiza un ancho de banda con participación equitativa. Para solucionar este problema, se han propuesto programadores de participación equitativa. Véase A. Demers y otros, "Análisis y Simulación de un Algoritmo de Formación de Colas Equitativa", Journal of Inter.-networking: Research and Experience, páginas 3-26, Enero 1990; Goestani "Un Esquema de Formación de Colas Equitativa Autocronometrado para Aplicaciones de Banda Ancha", IEEE INFOCOM, Junio 1994, y J. Bennett y H. Zhang "WF^{2}Q: Formación de Colas Equitativa Ponderada de Peor Caso", IEEE INFOCOM, páginas 120-128, Marzo 1996. Un tipo de programación de participación equitativa que se ha propuesto es el Circuito Cíclico Ponderado. Véase M. Katevenis y otros, "Multiplexación de Células de Circuito Cíclico Ponderado en un Conmutador ATM de Propósito General", IEEE JSAC, páginas 1265-1279, Octubre 1991.
En general, la arquitectura del programador puede representarse como una máquina de estado finito, según se ilustra en la figura 2. El estado presente de la máquina de estado finito (FSM), etiquetado P_ESTADO, indica el puerto de entrada actualmente seleccionado que está ejecutando la conexión de conmutador. El siguiente puerto de entrada seleccionado, etiquetado N_ESTADO, es una función del estado presente P_ESTADO y de las dos señales de entrada, IB_STATUS y OB_STATUS. Las señales IB_STATUS y OB_STATUS son señales de estado procedentes de las memorias intermedias de entrada y salida, respectivamente. IB_STATUS indica cuál de las memorias intermedias de entrada (IBs) están OCUPADA o NO_OCUPADA, es decir, si contiene o no una célula. OB_STATUS indica el nivel de congestión en las memorias intermedias de salida (OBs) por medio de señales de aseveración DETECCIÓN, CONFIGURACIÓN O ADELANTE para las células destinada a una memoria intermedia de salida particular. Así ADELANTE indica que pueden enviarse células a la OB a su velocidad máxima de línea y, por el contrario, DETECCIÓN impide la transmisión de células. La señal CONFIGURACIÓN da instrucciones para desacelerar la transmisión de células a la OB. En esta máquina de estado, se observa que las señales de entrada y el estado presente se emplean para determinar el siguiente estado: la FSM se denomina Máquina Harinosa.
El documento de la técnica anterior [D1] (US-A-5 301 333) se refiere a un árbitro y a un procedimiento de arbitraje para controlar el acceso a recursos particulares en un ordenador o red de telecomunicaciones de alta velocidad (columna 1, líneas 19-22). [D1] describe el control de un flujo de células ATM en una red (columna 2, líneas 62-66) mediante un conmutador ATM que comprende puertos de entrada, puertos de salida (columna 4, líneas 1-15) y un programador centralizado (árbitro (30)), que usa una arquitectura en árbol, según se muestra en las figuras 2a, 2b y según se describe en columna 2, línea 62 a la columna 3, línea 14 y en columna 3, líneas 15-25, con el fin de procesar paquetes que contienen datos que hacen referencia a un puerto de entrada previamente seleccionado (columna 6, líneas 4-22; líneas 41-50; columna 8, líneas 26-29). El programador selecciona entonces un puerto de entrada particular de entre el conjunto de puertos de entrada (columna 4, líneas 8-15), y envía una célula ATM de puerto de entrada particular hacia una salida designada de dichos puertos de salida (columna 4, líneas 8-15).
Además, en [D1] se describe que el programador centralizado (30) funciona de modo que un retardo de procesamiento total en el flujo de las células ATM en el conmutador aumenta logarítmicamente cuando se aumenta un número total de puertos del conmutador, según se describe en columna 3, líneas 44-50 y columna 4, líneas 52-55.
La segunda citación [D2] (EP-A-0 571 166) se refiere a una red de conmutación para uso en redes de comunicación de banda ancha de alta velocidad, en donde la red de conmutación tiene una red de clasificación seguida por una pluralidad de redes de enrutamiento para encaminar paquetes de datos desde una pluralidad de entradas hacia una pluralidad de salidas. Además, la red de conmutación incluye un mecanismo de anillo de reserva para resolver conflictos entre entradas que compiten por el acceso a unas salidas especificadas de dichas salidas. Es cierto que se sugiere en [D2] seleccionar un puerto de entrada particular basándose en al menos estados listos detectados en los puertos de entrada, según se describe en columna 8, líneas 49-59 y columna 7, líneas 17-23.
Aunque los sistemas de la técnica anterior han mejorado la velocidad de los conmutadores mediante una mejor programación, pequeñas mejoras en velocidad pueden resultar muy beneficiosas para el rendimiento de la red. Adicionalmente, los conmutadores anteriores no tienen un alto grado de escalabilidad. Por tanto, si se aumenta el número de puertos para un conmutador, el retardo total de procesamiento del conmutador aumenta con el número de puertos. Asimismo, los sistemas de la técnica anterior no son compactos en términos de las puertas lógicas requeridas, lo cual es especialmente importante cuando el sistema se implementa en tecnología de silicio.
Sumario de la invención
Un objeto de la presente invención es proporcionar un programador para un conmutador ATM de alta capacidad que emplee un Programador de Circuito Cíclico que sea capaz de funcionar a altas velocidades.
Otro objeto de la invención es proporcionar un programador que sea compacto en términos de requerimientos de puerta lógica y que sea muy escalable.
Aún otro objeto de la invención es proporcionar un programador que tenga un retardo total de procesamiento de conmutador que sea logarítmico al aumentar el número de puertos en el conmutador, en vez de aumentar linealmente con el número de puertos.
Un objeto adicional es proporcionar un programador para un conmutador que tenga una arquitectura robusta y sea capaz de un mayor rendimiento.
Según el primer aspecto de esta invención, se proporciona un conmutador ATM para controlar un flujo de células ATM en una red que tiene puertos de entrada, puertos de salida y un programador centralizado. El programador centralizado usa una arquitectura en árbol para procesar paquetes que contienen datos que hacen referencia a un puerto de entrada previamente seleccionado. El programador selecciona entonces un puerto de entrada particular de entre el conjunto de puertos de entrada y envía la célula ATM, en la cabeza de la cola de puerto, hacia una salida designada. Alternativamente, el programador puede emplear un enrutamiento de atajo para seleccionar el puerto de entrada particular.
En otra realización, el programador centralizado selecciona el puerto de entrada particular basándose en estados listos detectados de dicho puerto de entrada. Los estados listos pueden ser un estado no listo, un estado listo ordinario o un estado listo prioritario, en donde los estados se usan para establecer precedencia en el programador. Adicionalmente, el puerto seleccionado también puede basarse en las velocidades mínimas de célula de los puertos de entrada.
En una tercera realización, el programador del conmutador ATM emplea una arquitectura en árbol que tiene una estructura de árbol binario o una estructura de árbol cuaternario. Adicionalmente, el conmutador ATM puede hacerse funcionar en modos de conexión de unidifusión y multidifusión.
En una cuarta realización, se proporciona un método para programar señales de entrada que llegan a puertos de entrada para que sean enviadas a puertos de salida. Se determinan los estados listos de dichos puertos de entrada, uno de dichos puertos de entrada se selecciona en modo circuito cíclico basándose en dichos estados listos, y las señales de entrada se envían desde los puertos de entrada seleccionados hasta un puerto de salida designado. El proceso de selección usa una arquitectura en árbol que tiene un número dado de nodos de tal manera que unos paquetes, que contienen información relacionada con un puerto de entrada previamente seleccionado, los estados listos y los puertos de salida, atraviesan los nodos y se selecciona un paquete particular que tiene el puerto de salida designado.
En una quinta realización, cada uno de los nodos tiene dos entradas y una salida y determina qué entrada se proporciona a dicha salida mediante comparaciones al vuelo de ciertos bits de cada paquete.
En una sexta realización, el conmutador es un conmutador ATM.
En una séptima realización, el programador emplea una estructura de arquitectura en árbol que tiene una estructura de árbol binario o una estructura de árbol cuaternario y que se puede hacer funcionar en modos de conexión de unidifusión y multidifusión. En una octava realización, el proceso de selección se conduce en modo circuito cíclico ponderado.
En la novena realización, se proporciona un conmutador ATM para controlar un flujo de células ATM en una red que tiene puertos de entrada, puertos de salida y un programador centralizado. El programador centralizado procesa paquetes que contienen datos que hacen referencia a un puerto de entrada previamente seleccionado. El programador funciona de modo que el retardo total de procesamiento del flujo de células ATM en el conmutador aumenta sólo de manera logarítmica al aumentar el número total de puertos. El programador selecciona entonces un puerto de entrada particular de los puertos de entrada y para enviar una célula ATM de un puerto de entrada particular a una salida designada de los puertos de salida.
Se expondrán objetos y ventajas adicionales de la invención en la descripción que sigue, y en parte éstos serán obvios a partir de la descripción, o pueden aprenderse mediante la práctica de la invención. Los objetos y ventajas de la invención pueden realizarse y obtenerse por medio de los instrumentos y combinaciones señalados particularmente en las reivindicaciones anexas.
\vskip1.000000\baselineskip
Breve descripción de los dibujos
La figura 1 es un diagrama que ilustra una arquitectura de conmutador ATM.
La figura 2 es un diagrama que ilustra la arquitectura del programador representado como una máquina de estado finito.
La figura 3 es un diagrama que ilustra la arquitectura de programador ATM para un conmutador ATM de entrada/salida de 128 puertos.
La figura 4 ilustra la organización de los puertos del conmutador ATM.
La figura 5 muestra la arquitectura para implementar una retrospectiva células de multidifusión de 4.
La figura 6 ilustra la estructura de cada nodo de la estructura de árbol binaria.
La figura 7 es un diagrama que representa el procesamiento de paquetes por un elemento de nodo.
Las figuras 8(a) y 8(b) ilustran ejemplos que muestran cómo funciona el árbol binario al seleccionar un puerto.
La figura 9 ilustra una implementación del programador de circuito cíclico.
\vskip1.000000\baselineskip
Descripción detallada de las realizaciones preferidas
El diagrama de la figura 3 representa una arquitectura de programador ATM para un conmutador ATM de entrada/salida de 128 puertos. Según se explicó anteriormente, el programador ATM puede concebirse como una máquina de estado finito, en donde el siguiente estado depende del estado presente y de todas las entradas. Cada puerto de entrada del conmutador puede estar es uno de los tres estados LISTO: no listo, listo ordinario y listo prioritario. El programador ha de seleccionar uno de los puertos de entrada listos según un modo de circuito cíclico, teniendo unos puertos listos prioritarios prioridad sobre unos puertos listos ordinarios.
La señal LISTO para cada puerto se obtiene combinando lógicamente las señales IB_STATUS, OB_STATUS y MCR_STATUS. Si la posición de bit LISTO para un puerto es "1", esto significa que el puerto puede enviar una célula hacia su(s) puerto(s) de salida designado(s) denominado(s) OB(s). Si el bit es "0", no se permite al puerto enviar una célula. La señal OB_STATUS es una señal de contrapresión procedente de las OB(s), que indica el nivel de congestión en el puerto de salida. Cada OB puede estar en uno de tres estados: DETECCIÓN, CONFIGURACIÓN o ADELANTE. Cada OB transmite de vuelta una señal de estado de 2 bits hacia los puertos de entrada que indica en cuál de los tres estados está. La verdad en la Tabla 1 muestra la codificación para los bits OB_STATUS. Cada puerto también lleva asignada a una Velocidad Mínima de Celda conocida como velocidad MCR que debe sostenerse en todo momento. Las señales MCR para cada puerto son periódicas y se generan fuera del bloque submacro del selector de puerto. La señal MCR se usa para anular la señal CONFIGURACIÓN y poner el puerto en listo prioritario. El puerto también está en listo prioritario si ambos IB_STATUS y MCR_STATUS están fijados y el puerto está en el modo ADELANTE. Se asigna una regla de que cuando un puerto está en listo prioritario, se inhabilitan todas las señales de listo ordinario, es decir, se ponen a cero. Las tablas de verdades de la Tabla 2 muestran cómo generar las señales de listo.
TABLA 1
1
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
TABLA 2(a)
2
TABLA 2(b)
3
\vskip1.000000\baselineskip
El significado de LISTO es que si una memoria intermedia de entrada tiene una célula lista para seguir adelante, y no está bloqueada por ninguno de sus OBs de destino, se establecerá el bit LISTO. Para ser más preciso, si la memoria intermedia de entrada tiene una célula que transmite (IB_STATUS es "1") y todas las OB(s) a las cuales se va enviar la célula están en el estado ADELANTE (o CONFIGURACIÓN habiéndose establecido el bit MCR), se fijará el bit LISTO. De otra manera, el bit LISTO no se fijará.
Existen dos tipos de señales LISTO activas: listo ordinario y listo prioritario. La regla es que si cualquier puerto está en listo prioritario, entonces se enmascaran todos los puertos que están en listo ordinario. En otras palabras, se inhabilitan sus señales LISTO. El conmutador tiene 128 puertos de unidifusión que están divididos por igual entre puertos de tiempo real (RT) y puertos de tiempo no real (NRT). Por tanto, existen 64 puertos RT y 64 puertos NRT para unidifusión. Además, existe un puerto RT y un puerto NRT para multidifusión, respectivamente. Esta organización se representa en la figura 4.
El envío de células funciona de manera diferente para los puertos multidifusión en comparación con los puertos de unidifusión. El puerto de unidifusión envía una célula hacia su OB designada si está en listo, mientras que el puerto de multidifusión puede enviar una célula a múltiples OBs. El envío de células por el puerto de multidifusión funciona como sigue.
Cada puerto de multidifusión lleva asignado un vector de puerto de destino (DPV), de 16 bits de largo, indicando cada bit si el puerto ha de emitir hacia esa OB particular. En otras palabras, si el bit está establecido, el puerto emitirá hacia ese OB; en caso contrario el puerto no emitirá. Todas las OBs especificadas por el DPV deben estar listas para recibir, ya que de otra manera la multidifusión no emitirá hacia ninguna de las OBs. Con el fin de eliminar el bloqueo de Cabeza de Línea (HOL, se realiza una retrospectiva de 4. De este modo, si todas las OBs de destino de cualquiera de las 4 células anteriores de la cola de puerto están listas para recibir, el puerto de multidifusión emitirá hacia ese conjunto de OBs.
Para realizar una retrospectiva de 4 células de multidifusión de una manera oportuna, es necesario almacenar los descriptores de las primeras 4 células de multidifusión en una memoria caché sobre chip. La caché está organizado en 4 bloques con un total de 2 x 4 bytes en cada bloque. Éste es el mismo tamaño que el de un descriptor de célula ATM. De este modo, el tamaño total de la caché es de 8 x 4 bytes. Los campos DPV dentro de cada bloque están almacenados en registros de 16 bits. Cuando se selecciona el puerto de multidifusión, los 4 registros se comparan de manera asociativa con el estado indicado por el registro de estado de OB. Tendrá lugar un "acierto" si todas las OBs de destino dentro de uno cualquiera de los 4 DPVs puede aceptar una célula. Si existe más de un acierto, entonces se accede a los bloques de caché según el orden FIFO. El bloque Identificador de Cola Programada (SQI) asociado con la célula de multidifusión seleccionada se lee entonces desde la caché. Se muestra en la figura 5 la arquitectura para implementar la retrospectiva de 4. La precedencia para seleccionar los puertos de multidifusión puede resumirse como sigue:
\bullet
Cada SQ1 de multidifusión se asigna a un DPV, de 16 bits de largo, indicando cada bit si el puerto ha de emitir hacia esa OB. El campo DPV se rebaja de 31 a 16 bits de una palabra 2 de SQ1.
\bullet
Dado que hay 64 OBs, se usa un Indicador de Plano de 2 bit para indicar qué subconjunto de 64 OBs representa el DPV.
\bullet
Un puerto de multidifusión está listo si puede emitir hacia todas las OBs especificadas en su DPV.
\bullet
Para eliminar el bloqueo de HOL, se realiza una retrospectiva de 4 para las listas RT y NRT.
\bullet
Una caché de multidifusión almacena los primeros 4 SQIs; así, después de leer un SQ1, éste es reemplazado por otro procedente de la lista de puertos de multidifusión de una memoria externa.
\bullet
Tendrá lugar un acierto si todas las OBs de destino especificadas por el DPV no son DETECCIÓN.
\bullet
En caso de aciertos múltiples, se accede a unos bloques de caché en orden FIFO.
El programador/selección de puerto puede implementarse usando un árbol binario. El árbol binario para un conmutador ATM de entrada/salida de 128 puertos tiene en total 127 nodos. Existen 64 nodos hoja en el árbol, teniendo cada nodo hoja dos enlaces entrantes. Cada enlace representa un puerto de entrada del conmutador; así, para un conmutador de 128 puertos, existen 128 enlaces que conectan los nodos hoja. Unas posiciones de bit se conectan desde dos registros hacia los enlaces. Estos registros se denominan TESTIGO y LISTO y SE definirán en los párrafos siguientes. Inicialmente, el procedimiento de selección de puerto implica explorar de izquierda a derecha los bits LISTO del puerto comenzando en la última posición de bit del puerto seleccionado. La exploración avanza hasta que se encuentra un bit "1" y este puerto se convierte en el puerto recién seleccionado. Si no se encuentra un bit "1" mientras se exploran de izquierda a derecha los bits, éstos se exploran de izquierda a derecha, comenzando en el primer bit hasta la última posición de bit seleccionada. Similarmente, la exploración avanza hasta que se encuentra un bit "1" y este puerto se convierte en el puerto recién seleccionado. En la práctica, se realiza simultáneamente la exploración de los bits en ambos lados de la última posición de bit del puerto seleccionado. Este procedimiento se explica adicionalmente con el ejemplo que sigue.
Considerando un conmutador de entrada/salida de 8 puertos, los puertos están numerados de 1 a 8. Como se explicó anteriormente, existen dos vectores, denominados vector LISTO y vector TESTIGO. El vector LISTO tiene tantos bits como el número de puertos de entrada (8). Cada bit dentro del vector LISTO indica si el puerto correspondiente está listo o no. El estado listo del puerto 1 se indica por el MSB del vector LISTO. Si el estado actual del conmutador tiene el vector LISTO, ésta se indica nuevamente 01011010, en donde cada bit de izquierda a derecha representa los puertos 1 a 8, respectivamente. El bit subrayado, asociado con los puertos, es el puerto actualmente seleccionado. Explorando los bits hacia la derecha del bit subrayado, el primer bit encontrado, que es "1", es el bit 7. De este modo, el siguiente puerto seleccionado es el puerto número 7. Después de la selección de puerto, se subraya el bit 7 para reflejar que éste es el puerto recién seleccionado. El vector LISTO será ahora 01011010. En la siguiente ronda de selección de puerto no existen 1s a la derecha del bit subrayado. Por tanto, los bits se explorarán hacia la izquierda del bit subrayado. El primer "1" encontrado es el bit 2, lo cual significa que el puerto 2 será el siguiente puerto seleccionado. De este modo, 01011010 es el vector LISTO resultante.
Además del vector de bit LISTO, existen un vector de bit denominado TESTIGO. El vector TESTIGO tiene el mismo tamaño que el vector LISTO. El ejemplo anterior, en donde LISTO=01011010, puede usarse para explicar cómo se derivan los bits en el vector TESTIGO. En este caso, TESTIGO = 11111000, en donde todos los bits a la izquierda de la posición de bit subrayada, incluyendo la misma, se ponen a "1" y todos los demás bits a la derecha del bit subrayado se ponen a "0". Por tanto, para el caso en el que LISTO = 01010000, TESTIGO será 11111110. Y finalmente, para LISTO = 01010000, TESTIGO es 11111111. Asimismo, como nota colateral, TESTIGO = 00000000 es equivalente a TESTIGO = 11111111. Finalmente, se hace referencia a cada bit del vector de bit LISTO como "bit LISTO" y al vector de bit TESTIGO como "bit TESTIGO".
Cada puerto del conmutador de entrada/salida es identificable por un número de 8 bits denominado NÚMERO DE PUERTO. Existen en total 128 puertos, numerados del 1 al 128, y se representan por el NÚMERO DE PUERTO de 8 bits. El bit LISTO y el bit TESTIGO correspondientes al NÚMERO DE PUERTO están anexados al Lado Izquierdo (LHS) del NÚMERO DE PUERTO para formar un paquete de 10 bits.
\global\parskip0.900000\baselineskip
Al comienzo de la selección de puerto, se aplican 128 paquetes diferentes correspondientes a cada puerto a los enlaces correspondientes asociados con las hojas del árbol binario según se muestra en la figura 8. Cada nodo del árbol binario tiene dos enlaces entrantes y un enlace saliente según se muestra en la figura 6. Los enlaces de entrada y los enlaces de salida están etiquetados como enlaces DERECHO, IZQUIERDO y PADRE, respectivamente. Los paquetes aplicados a las hojas atraviesan el árbol y uno de ellos se propaga finalmente a través del enlace PADRE del nodo raíz. Este paquete contiene el NÚMERO DE PUERTO del puerto recién seleccionado.
A medida que los paquetes se encaminan hacia la parte superior del árbol, éste realiza efectivamente una rápida implementación del algoritmo de exploración que se describió anteriormente. Cada nodo del árbol acepta paquetes en sus enlaces IZQUIERDO y DERECHO, ejecuta comparaciones al vuelo en los bits 8 y 9, y encamina el paquete adecuado a través de su enlace PADRE. El encaminamiento de paquetes hacia la parte superior del árbol se realiza a manera de atajo, es decir no existe almacenamiento temporal en los nodos. Además, el procesamiento en los nodos es muy sencillo, haciendo así la implementación muy sencilla y rápida.
El diagrama de flujo de la figura 7 ilustra cómo un elemento de nodo encamina paquetes entrantes sobre sus enlaces DERECHO e IZQUIERDO a través de su enlace PADRE. La primera acción del nodo es inspeccionar los bits 9, 8 del paquete entrante en su enlace IZQUIERDO. Dependiendo del ajuste de estos bits, se toma una de cuatro posibles acciones. Si los bits 9, 8 son "00" o "01", entonces los paquetes entrantes de los enlaces DERECHO e IZQUIERDO, respectivamente, se encaminan a través del enlace PADRE. Por otro lado, si los bits 9, 8 son "10" u ("11"), entonces se inspeccionan los bits 9, 8 del paquete entrante del enlace DERECHO. Si estos bits son "01" u "11" o ("10") según se muestra en el diagrama, el paquete entrante del enlace DERECHO es encaminado hacia el PADRE. En los otros casos, el paquete entrante del enlace IZQUIERDO se encamina hacia el PADRE. Los paquetes avanzan hacia arriba del árbol comenzando desde los nodos hoja. El paquete que emana del nodo raíz contiene el PUERTO_NUMERO del puerto recién seleccionado.
Se describirá ahora un ejemplo para mostrar cómo funciona el árbol binario al seleccionar un puerto. Se presenta en la figura 8 una estructura en árbol de 15 nodos. Esta estructura se usa para seleccionar uno de los 16 puertos. Se supone que el último puerto seleccionado fue el puerto 9. Por tanto, se ajusta el vector TESTIGO de modo que todos los bits hacia la izquierda del bit 9, incluyendo al mismo, sean "1" y todos los bits hacia la derecha del bit 9 sean "0". Asimismo, se supone que el vector LISTO tiene los ajustes de acierto según se muestran en la figura 8 (a). Se forma un paquete de 3 campos que consiste en el bit TESTIGO, bit LISTO y PUERTO_NÚMERO. Estos paquetes se aplican a los enlaces entrantes de los nodos hoja según se muestra en la figura 8 (a). Cada nodo conmuta uno de los dos paquetes entrantes en sus enlaces DERECHO e IZQUIERDO hacia su enlace PADRE usando el diagrama de flujo mostrado en la figura 7. El paquete que sale del nodo raíz contiene el número de puerto seleccionado.
En el ejemplo mostrado en la figura 8 (a), el paquete que sale del nodo raíz contiene 12 como número de puerto seleccionado. Obsérvese que el último puerto seleccionado fue el puerto 9. De ahí que el primer puerto que tiene su bit LISTO colocado en el lado derecho del puerto 9 sea el puerto 12. De este modo, el árbol ciertamente seleccionó el puerto correcto. En el segundo ejemplo de la figura 8 (b), se presenta un caso en el que el último puerto seleccionado es de nuevo el puerto 9. Sin embargo, todos los bits LISTO a la derecha del bit 9 son "0". En consecuencia, no existen puertos LISTO en el Lado Derecho (LRHS) del 9 entre los que realizar una selección. Por tanto, se buscan los puertos en el lado LHS del puerto 9 comenzando con el puerto 1. El primer puerto que tiene su bit LISTO establecido es el puerto 2, y éste se convierte en el siguiente puerto seleccionado. Asimismo, se observa que cuando ninguno de los puertos está listo, el número de puerto 1 siempre está "seleccionado", es decir, el puerto 1 aparece en la raíz del árbol. Sin embargo, su bit LISTO está en "0", y así se deduce que el puerto no está LISTO.
El árbol binario selecciona únicamente uno de los puertos de unidifusión. El algoritmo de selección de árbol no tiene en cuenta si un puerto de multidifusión está o no LISTO. Por tanto, existe un árbitro final que selecciona entre los puertos de unidifusión y los puertos de multidifusión. El árbitro define el siguiente orden de precedencia para realizar la selección final de puerto.
1.
Seleccionar un puerto RT de unidifusión si es listo prioritario, si no
2.
Seleccionar un puerto NRT de unidifusión si es listo prioritario, si no
3.
Seleccionar un puerto RT de multidifusión si es listo prioritario, si no
4.
Seleccionar un puerto NRT de multidifusión si es listo prioritario, si no
5.
Seleccionar un puerto RT de multidifusión si es listo ordinario, si no
6.
Seleccionar un puerto RT de unidifusión si es listo ordinario, si no
7.
Seleccionar un puerto NRT de multidifusión si es listo ordinario, si no
8.
Seleccionar un puerto NRT de unidifusión si es listo ordinario.
El diagrama de la figura 9 muestra que el Programador de Circuito Cíclico (RRS) está implementado como tres entidades de Lenguaje de Descripción de Hardware VHSIC (VHDL), en donde VHSIC es un Circuito Integrado de Muy Alta Velocidad. Los bloques corresponden a las entidades y las líneas en forma de flecha representan las trayectorias de señal. La función de cada bloque se especifica en la Tabla 3, y se proporcionan descripciones de las señales en la Tabla 4.
\global\parskip1.000000\baselineskip
TABLA 3
4
\vskip1.000000\baselineskip
TABLA 4
5
Para verificar la funcionalidad del programador, se construyó un modelo del mismo en VHDL. Éste era un modelo de Nivel de Transferencia de Registro (RTL). El modelo se probó con una amplia variedad de valores para IB_STATUS, OB_STATUS y MCR_STATUS. Se cargaron diferentes DPVs para los puertos de multidifusión. Las simulaciones funcionaron correctamente, es decir, se obtuvieron respuestas correctas en todos los casos de prueba. A continuación, el modelo se sintetizó para obtener estimaciones de cuenta de puerta y retardo de trayectoria crítica. El modelo se sintetizó por medio de una herramienta de software de síntesis lógica del estado de la técnica vendida por Sinopsis Inc, of Mountain View, California, bajo el nombre comercial de SYNOPSIS, usando tecnología de célula estándar CD-C9 de 0,3 \mum. Los resultados obtenidos proporcionaron una cuenta de 12,5 K y un retardo crítico de 15,5 ns.
Los resultados anteriores para una estructura de árbol binaria permiten una escalabilidad sin aumentar excesivamente el retardo. Los nodos del árbol operan de una manera de "atajo", y este es un factor que hace muy rápida la implementación. El programador es compacto en términos de requisitos de puerta de silicio y también es escalable. Puede programar muy rápidamente una conexión en aproximadamente 15,5 ns.
Aunque se ha descrito un programador RR para conmutadores ATM de alta velocidad que posee una arquitectura de árbol binario, la presente invención no es tan limitada. Otras arquitecturas de árbol proporcionan resultados similares, además de la estructura de árbol binaria, tal como una estructura de árbol cuaternario. Aunque la realización anterior describe una implementación de programación de circuito cíclico, el programador puede utilizar también una programación de circuito cíclico ponderada con las mismas ventajas.
A los versados en la materia se les ocurrirán ventajas y modificaciones adicionales. Por tanto, la invención en sus aspectos más amplios no está limitada a los detalles específicos mostrados y descritos en el presente documento.

Claims (15)

1. Un conmutador ATM para controlar un flujo de células ATM en una red, comprendiendo dicho conmutador:
puertos de entrada;
puertos de salida; y
un programador centralizado, adaptado para usar una arquitectura de árbol para procesar paquetes que contienen datos que hacen referencia a un puerto de entrada previamente seleccionado, para seleccionar un puerto de entrada particular de dichos puertos de entrada y para enviar una célula ATM de puerto de entrada particular hacia una salida designada de dichos puertos de salida,
caracterizado porque dicho programador centralizado selecciona dicho puerto de entrada particular basándose en al menos unos estados listos detectados entre dichos puertos de entrada, siendo cada uno de dichos estados listos un estado de entre un estado no listo, un estado listo ordinario y un estado listo prioritario.
2. Un conmutador ATM según la reivindicación 1, en el que dicho programador centralizado emplea un encaminamiento de atajo para seleccionar dicho puerto de entrada particular.
3. Un conmutador ATM según la reivindicación 1, en el que dicha arquitectura de árbol comprende una estructura de árbol binario.
4. Un conmutador ATM según la reivindicación 1, en el que dicha arquitectura de árbol comprende una estructura de árbol cuaternario.
5. Un conmutador ATM según la reivindicación 1, en el que dicho programador centralizado selecciona dicho puerto de entrada particular basándose en velocidades mínimas de célula de dichos puertos de entrada.
6. Un conmutador ATM según la reivindicación 1, en el que dicho programador centralizado selecciona dicho puerto de entrada particular según un modo de conexión de multidifusión.
7. Un conmutador ATM según la reivindicación 1, en el que dicho programador centralizado funciona de modo que un retardo de procesamiento total en el flujo de las células ATM en el conmutador únicamente aumente de manera logarítmica cuando se aumente el número total de puertos del conmutador.
8. Un método para programar señales de entrada que comprenden un flujo de células ATM en puertos de entrada de un conmutador para que sean enviadas hacia puertos de salida de dicho conmutador, comprendiendo las etapas de:
determinar estados listos de dichos puertos de entrada;
seleccionar uno de dichos puertos de entrada con un modo de circuito cíclico basándose en estados listos; y
enviar señales de entrada desde dicho puerto seleccionado de entre dichos puertos de entrada hacia un puerto de salida designado; y
en donde la etapa de selección emplea una arquitectura de árbol que tiene un número dado de nodos de tal manera que unos paquetes, que contienen información relacionada con un puerto de entrada previamente seleccionado, dichos estados listos y dichos puertos de salida, atraviesan dichos nodos,
caracterizado por seleccionar un paquete particular que contiene dicho puerto de salida designado, siendo cada uno de dichos estados listos un estado de entre un estado no listo, un estado listo ordinario y un estado listo priorita-
rio.
9. Un método para programar según la reivindicación 8, caracterizado porque cada uno de un número dado de nodos tiene dos entradas y una salida y determina qué entrada de dichas dos entradas se proporciona a dicha salida mediante comparaciones al vuelo de ciertos bits de cada paquete.
10. Un método para programar según la reivindicación 9, caracterizado porque dicho conmutador es un conmutador ATM.
11. Un método para programar según la reivindicación 9, caracterizado porque dicha arquitectura de árbol comprende una estructura de árbol binario.
12. Un método para programar según la reivindicación 9, caracterizado porque dicha arquitectura de árbol comprende una estructura de árbol cuaternario.
13. Un método para programar según la reivindicación 9, caracterizado porque dicha etapa de seleccionar uno de dichos puertos de entrada se realiza en un modo de circuito cíclico ponderado.
14. Un método para programar según la reivindicación 10, caracterizado porque dicha etapa de seleccionar uno de dichos puertos de entrada también se basa en velocidades mínimas de célula de dichos puertos de entrada.
15. Un método para programar según la reivindicación 10, caracterizado porque dicha etapa de enviar señales de entrada se realiza en un modo de conexión de multidifusión.
ES00101399T 1999-05-25 2000-01-25 Programador de puerto prioritario con circuito ciclico rapido para conmutadores atm de alta calidad. Expired - Lifetime ES2312309T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US317964 1981-11-04
US09/317,964 US6556571B1 (en) 1999-05-25 1999-05-25 Fast round robin priority port scheduler for high capacity ATM switches

Publications (1)

Publication Number Publication Date
ES2312309T3 true ES2312309T3 (es) 2009-03-01

Family

ID=23236031

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00101399T Expired - Lifetime ES2312309T3 (es) 1999-05-25 2000-01-25 Programador de puerto prioritario con circuito ciclico rapido para conmutadores atm de alta calidad.

Country Status (6)

Country Link
US (1) US6556571B1 (es)
EP (1) EP1056307B1 (es)
JP (1) JP2000341301A (es)
CN (1) CN1201532C (es)
DE (1) DE60040118D1 (es)
ES (1) ES2312309T3 (es)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5461600A (en) * 1999-06-03 2000-12-28 Fujitsu Network Communications, Inc. Method and system for transmitting traffic in a virtual tunnel of a transmission line
US6993018B1 (en) * 1999-08-03 2006-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Priority signaling for cell switching
US20020059426A1 (en) * 2000-06-30 2002-05-16 Mariner Networks, Inc. Technique for assigning schedule resources to multiple ports in correct proportions
JP3570366B2 (ja) * 2000-09-13 2004-09-29 日本電気株式会社 アービタ回路及びそれに用いる出力セルのアービトレーション方法
US6963576B1 (en) * 2000-09-28 2005-11-08 Force10 Networks, Inc. Scheduling and arbitration scheme for network processing device
US7274692B1 (en) * 2001-10-01 2007-09-25 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have multiple destinations
US7007123B2 (en) * 2002-03-28 2006-02-28 Alcatel Binary tree arbitration system and method using embedded logic structure for controlling flag direction in multi-level arbiter node
US20040131072A1 (en) 2002-08-13 2004-07-08 Starent Networks Corporation Communicating in voice and data communications systems
US7227866B2 (en) * 2002-10-21 2007-06-05 Tropic Networks Inc. Fast work-conserving round robin scheduling
US7024506B1 (en) * 2002-12-27 2006-04-04 Cypress Semiconductor Corp. Hierarchically expandable fair arbiter
US20080028157A1 (en) * 2003-01-13 2008-01-31 Steinmetz Joseph H Global shared memory switch
US7440470B2 (en) * 2003-02-07 2008-10-21 Fujitsu Limited Multicasting in a high-speed switching environment
US7447201B2 (en) * 2003-02-07 2008-11-04 Fujitsu Limited Multicasting in a high-speed switching environment
US6822969B2 (en) * 2003-04-03 2004-11-23 Motorola, Inc. Method and apparatus for scheduling asynchronous transmissions
US20040210696A1 (en) * 2003-04-18 2004-10-21 Meyer Michael J. Method and apparatus for round robin resource arbitration
DE602004009310T2 (de) * 2003-06-03 2008-07-10 Starent Networks Corp., Tewsbury System und verfahren zur kommunikation über einen bus
US7231479B2 (en) * 2003-12-17 2007-06-12 International Business Machines Corporation Round robin selection logic improves area efficiency and circuit speed
US7567572B1 (en) * 2004-01-09 2009-07-28 Cisco Technology, Inc. 2-rate scheduling based on search trees with configurable excess bandwidth sharing
EP1594263A1 (en) * 2004-05-04 2005-11-09 Alcatel Frame-to-cell traffic scheduling
US20060171386A1 (en) * 2004-09-01 2006-08-03 Interactic Holdings, Llc Means and apparatus for a scaleable congestion free switching system with intelligent control III
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
FR2878106A1 (fr) * 2004-11-15 2006-05-19 France Telecom Procede et dispositif d'ordonnancement de paquets pour leur routage dans un reseau avec determination implicite des paquets a traiter en priorite
US7657891B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
US7613904B2 (en) * 2005-02-04 2009-11-03 Mips Technologies, Inc. Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler
US7657883B2 (en) * 2005-02-04 2010-02-02 Mips Technologies, Inc. Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor
US7506140B2 (en) 2005-02-04 2009-03-17 Mips Technologies, Inc. Return data selector employing barrel-incrementer-based round-robin apparatus
US7664936B2 (en) * 2005-02-04 2010-02-16 Mips Technologies, Inc. Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US7490230B2 (en) * 2005-02-04 2009-02-10 Mips Technologies, Inc. Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
US7631130B2 (en) * 2005-02-04 2009-12-08 Mips Technologies, Inc Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor
US7853777B2 (en) * 2005-02-04 2010-12-14 Mips Technologies, Inc. Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US7752627B2 (en) * 2005-02-04 2010-07-06 Mips Technologies, Inc. Leaky-bucket thread scheduler in a multithreading microprocessor
US7681014B2 (en) 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US20070070895A1 (en) * 2005-09-26 2007-03-29 Paolo Narvaez Scaleable channel scheduler system and method
US7961745B2 (en) * 2006-09-16 2011-06-14 Mips Technologies, Inc. Bifurcated transaction selector supporting dynamic priorities in multi-port switch
US7773621B2 (en) * 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
US7760748B2 (en) * 2006-09-16 2010-07-20 Mips Technologies, Inc. Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch
US7990989B2 (en) 2006-09-16 2011-08-02 Mips Technologies, Inc. Transaction selector employing transaction queue group priorities in multi-port switch
EP2008991A1 (de) * 2007-06-29 2008-12-31 Bayer CropScience AG Verfahren zur Herstellung von Biarylen
CN101729418B (zh) * 2009-11-27 2012-09-19 乐视网信息技术(北京)股份有限公司 一种降低频道切换延时的数据获取方法
EP2700202B1 (en) * 2011-04-20 2017-11-08 NXP USA, Inc. Integrated circuit device and methods for performing cut-through forwarding
EP2741452A1 (en) * 2012-12-10 2014-06-11 Robert Bosch Gmbh Method for data transmission among ECUs and/or measuring devices
US10176012B2 (en) 2014-12-12 2019-01-08 Nxp Usa, Inc. Method and apparatus for implementing deterministic response frame transmission
US10505757B2 (en) 2014-12-12 2019-12-10 Nxp Usa, Inc. Network interface module and a method of changing network configuration parameters within a network device
US10628352B2 (en) 2016-07-19 2020-04-21 Nxp Usa, Inc. Heterogeneous multi-processor device and method of enabling coherent data access within a heterogeneous multi-processor device
US11275632B2 (en) 2018-09-14 2022-03-15 Advanced Micro Devices, Inc. Broadcast command and response
CN113010173A (zh) 2019-12-19 2021-06-22 超威半导体(上海)有限公司 并行处理中矩阵数据广播的方法
CN113094099A (zh) 2019-12-23 2021-07-09 超威半导体(上海)有限公司 矩阵数据广播架构
CN112181790B (zh) * 2020-09-15 2022-12-27 苏州浪潮智能科技有限公司 一种存储设备的容量统计方法、系统及相关组件
US11403221B2 (en) 2020-09-24 2022-08-02 Advanced Micro Devices, Inc. Memory access response merging in a memory hierarchy

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301333A (en) 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
JPH0637797A (ja) * 1992-05-20 1994-02-10 Xerox Corp パケット交換網の予約リング機構
US5528583A (en) * 1993-05-26 1996-06-18 The Trustees Of Columbia University In The City Of New York Method and apparatus for supporting mobile communications in mobile communications networks
US5633870A (en) * 1995-07-07 1997-05-27 Sun Microsystems, Inc. Method and apparatus for controlling data flow through an ATM interface
GB2307823B (en) 1995-11-29 2000-04-12 Gen Datacomm Adv Res Available bit rate services in ATM networks
US6188690B1 (en) * 1996-12-12 2001-02-13 Pmc-Sierra, Inc. Method and apparatus for high speed, scalable communication system
US6034958A (en) * 1997-07-11 2000-03-07 Telefonaktiebolaget Lm Ericsson VP/VC lookup function
US6396834B1 (en) * 1997-11-24 2002-05-28 Riverstone Networks, Inc. Flexible scheduler in an asynchronous transfer mode (ATM) switch
US6345040B1 (en) * 1998-07-30 2002-02-05 Marconi Communications, Inc. Scalable scheduled cell switch and method for switching

Also Published As

Publication number Publication date
EP1056307A2 (en) 2000-11-29
JP2000341301A (ja) 2000-12-08
CN1201532C (zh) 2005-05-11
EP1056307B1 (en) 2008-09-03
US6556571B1 (en) 2003-04-29
DE60040118D1 (de) 2008-10-16
EP1056307A3 (en) 2003-02-12
CN1275008A (zh) 2000-11-29

Similar Documents

Publication Publication Date Title
ES2312309T3 (es) Programador de puerto prioritario con circuito ciclico rapido para conmutadores atm de alta calidad.
US7100020B1 (en) Digital communications processor
US4991172A (en) Design of a high speed packet switching node
US6542502B1 (en) Multicasting using a wormhole routing switching element
US5923656A (en) Scalable broad band input-queued ATM switch including weight driven cell scheduler
US4761780A (en) Enhanced efficiency Batcher-Banyan packet switch
US20070276973A1 (en) Managing queues
EP0569173A2 (en) High-speed packet switch
JP2004507165A (ja) スイッチ・ファブリックにおけるスイッチング・テーブル更新
JP2003508954A (ja) ネットワーク・スイッチ及びコンポーネント及び操作方法
JP2004507136A (ja) 入力データグラムをスイッチ・ファブリック・チップセット・システムにおけるスイッチ・マトリックスに格納するためのシステム、方法および製造品
US5590123A (en) Device and method for use of a reservation ring to compute crossbar set-up parameters in an ATM switch
US6876659B2 (en) Enqueuing apparatus for asynchronous transfer mode (ATM) virtual circuit merging
WO1999059078A9 (en) Digital communications processor
US6310875B1 (en) Method and apparatus for port memory multicast common memory switches
JPH04220838A (ja) 通信スイッチング素子用ルート設定論理手段
US7675930B2 (en) Chip circuit for combined and data compressed FIFO arbitration for a non-blocking switch
US20060190641A1 (en) Buffer management in packet switched fabric devices
US6643294B1 (en) Distributed control merged buffer ATM switch
JPH10322347A (ja) ネットワーク通信装置
US7006513B1 (en) Method and system for pipelining packet selection
Kim Multichannel ATM switch with preserved packet sequence
US7076587B2 (en) Buffer management in packet switched fabric devices
US6775286B1 (en) Data packet router
US7239646B1 (en) Hierarchical round robin arbiter