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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
- H04L49/203—ATM switching fabrics with multicast or broadcast capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/255—Control mechanisms for ATM switching fabrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5629—Admission control
- H04L2012/5631—Resource management and allocation
- H04L2012/5632—Bandwidth allocation
- H04L2012/5635—Backpressure, e.g. for ABR
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5651—Priority, marking, classes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration 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.
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.
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.
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
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
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.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\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
\vskip1.000000\baselineskip
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.
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.
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)
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)
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 |
-
1999
- 1999-05-25 US US09/317,964 patent/US6556571B1/en not_active Expired - Fee Related
-
2000
- 2000-01-12 JP JP2000003882A patent/JP2000341301A/ja active Pending
- 2000-01-25 EP EP00101399A patent/EP1056307B1/en not_active Expired - Lifetime
- 2000-01-25 DE DE60040118T patent/DE60040118D1/de not_active Expired - Lifetime
- 2000-01-25 ES ES00101399T patent/ES2312309T3/es not_active Expired - Lifetime
- 2000-01-26 CN CNB00100655XA patent/CN1201532C/zh not_active Expired - Fee Related
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 |