ES2265971T3 - Conmutador y componentes de red y metodo de funcionamiento. - Google Patents

Conmutador y componentes de red y metodo de funcionamiento. Download PDF

Info

Publication number
ES2265971T3
ES2265971T3 ES00959158T ES00959158T ES2265971T3 ES 2265971 T3 ES2265971 T3 ES 2265971T3 ES 00959158 T ES00959158 T ES 00959158T ES 00959158 T ES00959158 T ES 00959158T ES 2265971 T3 ES2265971 T3 ES 2265971T3
Authority
ES
Spain
Prior art keywords
data
interface
memory
processors
guided
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
ES00959158T
Other languages
English (en)
Inventor
Brian Mitchell Bass
Jean Louis Calvignac
Anthony Matteo Gallo
Marco C. c/o IBM United Kingdom Limited HEDDES
Sridhar Rao
Michael Steven Siegel
Brian Alan Youngman
Fabrice Jean Verplanken
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2265971T3 publication Critical patent/ES2265971T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/3036Shared queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • 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/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Oscillators With Electromechanical Resonators (AREA)
  • Multi Processors (AREA)

Abstract

Aparato que comprende: un procesador del punto de control; un dispositivo de interfaz conectado operativamente a dicho procesador del punto de control por un camino de control y que proporciona un camino de datos de alta velocidad, teniendo dicho dispositivo de interfaz un substrato (10) de semiconductores; una pluralidad de procesadores (12) del interfaz formados sobre dicho substrato, siendo el número de dichos procesadores al menos cinco; una memoria interna de instrucciones formada sobre dicho substrato y que almacena instrucciones de manera accesible para dichos procesadores del interfaz; una memoria interna de datos formada sobre dicho substrato y que almacena datos que pasan a través de dicho dispositivo, de manera accesible para dichos procesadores del interfaz; y una pluralidad de puertos de entrada/salida formados sobre dicho substrato; conectando al menos uno de dichos puertos de entrada/salida a dicha memoria interna de datos con la memoria externa de datos; intercambiando, al menos otros dos de dichos puertos de entrada/salida, datos que pasan a través del dispositivo de interfaz, con una red externa a la velocidad del medio bajo la dirección de dichos procesadores del interfaz; cooperando dicho procesador del punto de control con dicho dispositivo de interfaz, cargando en el interior de dicha memoria de instrucciones las instrucciones que han de ser ejecutadas por dichos procesadores del interfaz al dirigir el intercambio de datos entre dichos puertos de entrada/salida de intercambio de datos y el flujo de datos a través de dicha memoria de datos.

Description

Conmutador y componentes de red y método de funcionamiento
Campo técnico
Esta invención está relacionada con un aparato para una red de comunicaciones, tal como se usa para enlazar conjuntamente sistemas de gestión de información u ordenadores de diversos tipos y capacidades, y con componentes de tal aparato. En particular, esta invención está relacionada con aparatos de conmutación escalables y con componentes útiles para montar tal aparato. Esta invención está relacionada con un dispositivo de interfaz mejorado y multifuncional y con la combinación de ese dispositivo con otros elementos para proporcionar un conmutador de una red con la velocidad de un determinado medio. La invención está relacionada también con métodos para hacer funcionar tal aparato que mejoran la capacidad de manejo del flujo de datos de los conmutadores de una red.
Técnica anterior
La descripción siguiente presupone el conocimiento de las comunicaciones de datos por una red y de los conmutadores y enrutadores que se utilizan en tales redes de comunicaciones. En particular, la descripción presupone una familiaridad con el modelo ISO de arquitectura de red, que divide el funcionamiento de red en capas. Una arquitectura típica basada en el modelo ISO se extiende desde la Capa 1 (identificada también algunas veces como "L1"), que es el camino físico del medio a través del cual se hacen pasar las señales hacia arriba en las Capas 2, 3, 4 y así sucesivamente hasta la Capa 7, siendo está últimamente mencionada la capa de programación de aplicaciones ejecutándose en un sistema de ordenador enlazado con la red. En este documento, la mención a L1, L2 y así sucesivamente pretende referirse a la capa correspondiente de una arquitectura de red. La divulgación presupone también una comprensión fundamental de las cadenas de bits conocidas como paquetes y tramas en tal comunicación por red. En el mundo de redes de hoy día, la anchura de banda es un recurso crítico. El aumento del tráfico en la red, debido a Internet y a otras aplicaciones emergentes, está esforzando la capacidad de las infraestructuras de red. Para mantener el ritmo, diversas entidades están buscando mejores tecnologías y metodologías para soportar y gestionar el crecimiento del tráfico y la convergencia de voz y datos.
El drástico crecimiento de hoy día en el tráfico de la red puede ser atribuido a la popularidad de Internet, una necesidad creciente de acceso remoto a la información, y a aplicaciones emergentes. Solamente Internet, con su explosivo crecimiento en comercio electrónico, ha colocado algunas veces una carga insoportable en infraestructuras centrales de las redes. Es también la causa singular más importante de los crecientes volúmenes de tráfico de datos, que exceden del tráfico de voz por primera vez. Las crecientes demandas de aplicaciones de acceso remoto, incluyendo correo electrónico, acceso a bases de datos y transferencia de ficheros, están forzando las redes aún más.
La convergencia de voz y datos jugará un gran papel en la definición del entorno de redes del mañana. Actualmente, la transmisión de datos sobre redes del protocolo de Internet (IP) es gratis. Debido a que las comunicaciones por voz seguirán de manera natural el camino del coste más bajo, la voz convergerá inevitablemente con los datos. Las tecnologías tales como Voz sobre IP (VoIP), Voz sobre ATM (VoATM), y Voz sobre Frame Relay (conmutación de tramas o VoFR), son alternativas rentables en este mercado cambiante. Sin embargo, para hacer posible la migración a estas tecnologías, la industria tiene que asegurar la calidad del servicio (QoS) para la voz, y determinar cómo facturar la transferencia de voz sobre líneas de datos. El Acta de Desregulación de las Telecomunicaciones de 1996, complica aún más este entorno. Esta legislación reforzará una relación simbólica entre el protocolo de voz elegido, ATM, y el protocolo de datos elegido, IP.
También es un problema crucial la integración de sistemas obsoletos en funcionamiento para las diversas entidades, a medida que se hacen disponibles nuevos productos y capacidades. Para preservar sus inversiones en equipos y software existentes, las diversas entidades demandan soluciones que permitan migrar a nuevas tecnologías, sin perturbar su funcionamiento actual.
La eliminación de cuellos de botella en la red continúa siendo una alta prioridad en los proveedores de servicios. Los enrutadores son a menudo la fuente de estos cuellos de botella. Sin embargo, la congestión en la red en general es diagnosticada erróneamente a menudo como un problema de anchura de banda y es abordado mediante la búsqueda de soluciones de mayor anchura de banda. Hoy día, los fabricantes reconocen esta dificultad. Retornan hacia las tecnologías de procesadores de red para gestionar los recursos de anchura de banda más eficazmente y para proporcionar los servicios avanzados de datos, a velocidad de cable, que se encuentran normalmente en enrutadores y servidores de aplicaciones de red. Estos servicios incluyen el equilibrado de cargas, la QoS, las puertas de entrada y salida, los cortafuegos, la seguridad y las memorias caché del entramado de redes.
Para aplicaciones de acceso remoto, el rendimiento, la anchura de banda bajo demanda, la seguridad, y el rango de autenticación, son de alta prioridad. La demanda de integración de QoS y CoS, gestión de voz integrada, y soluciones de seguridad más sofisticadas, conformarán también los diseños de conmutadores de redes de acceso remoto. Además, el acceso remoto tendrá que acomodar un creciente número de medios físicos, tales como RDSI, T1, E1, OC-3 hasta OC-48, cable, y módems xDSL.
\newpage
Los consultores en la industria han definido un procesador de red (denominado también de aquí en adelante como "NP"), como un circuito integrado programable de comunicaciones, capaz de realizar una o más de las funciones siguientes:
Clasificación de paquetes - identificación de un paquete basándose en características conocidas, tales como la dirección o el protocolo.
Modificación de paquetes - modificación del paquete para que sea conforme con IP, ATM u otros protocolos (por ejemplo, actualización del campo de tiempo-de-vida en la cabecera para IP).
Gestión de colas/políticas - refleja la estrategia de diseño para las colas de paquetes, para deshacer las colas y para la programación de paquetes para aplicaciones específicas.
Reenvío de paquetes - transmisión y recepción de datos por la matriz del conmutador y reenvío o encaminamiento del paquete a su destino apropiado.
Aunque esta definición es una descripción precisa de las características básicas de los NP antiguos, no se han realizado todavía todas las capacidades y beneficios potenciales de los NP. Los procesadores de red pueden aumentar la anchura de banda y resolver problemas de latencia en una amplia gama de aplicaciones, permitiendo que tareas de red previamente gestionadas por software, se ejecuten en hardware. Además, los NP pueden proporcionar mejoras de la velocidad por medio de arquitecturas tales como el proceso distribuido en paralelo y los diseños de proceso en los trayectos de los datos. Estas capacidades pueden permitir que los motores de búsqueda sean más eficientes, un aumento del rendimiento y proporcionar una ejecución rápida de tareas complejas.
Se espera que los procesos de red se conviertan en el bloque constructivo fundamental para las redes, de la misma manera que las CPU son para los PC. Las capacidades típicas ofrecidas por un NP son el proceso en tiempo real, la seguridad, el almacenamiento y reenvío, la matriz del conmutador y las capacidades de gestión y aprendizaje de paquetes IP. Los NP apuntan a las capas dos a cinco de ISO y están diseñados para optimizar las tareas específicas de la red.
El NP del modelo de procesador incorpora múltiples procesadores de propósito general y lógica especializada. Los proveedores están volviendo a este diseño para proporcionar soluciones escalables y flexibles que puedan acomodar el cambio de una manera oportuna y rentable. Un NP del modelo de procesador permite el proceso distribuido a menores niveles de integración, proporcionando un rendimiento, una flexibilidad y un control mayores. La capacidad de ser programable puede permitir una migración fácil a nuevos productos y tecnologías, sin requerir nuevos diseños de ASIC. Con los NP del modelo de procesador, los NEV se benefician de unos costes reducidos de la ingeniería a fondo perdido y de un tiempo de comercialización mejorado.
Divulgación de la invención
Una finalidad de esta invención es proporcionar una arquitectura escalable de los conmutadores, para ser utilizada en la red de comunicación de datos, que sea capaz de dimensionar las capacidades de soporte de una gama de demandas potenciales, al tiempo que mejore la velocidad de la gestión de los datos que se están transfiriendo. Esta finalidad se intenta conseguir proporcionando componentes, y montajes de componentes, que eliminen de la carga de trabajo de las unidades de proceso implicadas, una mayor cantidad de gestión de datos de lo que ha sido el caso hasta ahora.
Otra finalidad es proporcionar un dispositivo de interfaz o procesador de red (los términos pueden utilizarse de manera intercambiable), que incluya una pluralidad de subconjuntos integrados en un solo substrato, y que cooperen para proporcionar la conmutación de tramas a la velocidad del medio incluyendo la capa 2, la capa 3, la capa 4 y la capa 5. El dispositivo de interfaz puede ser utilizado como una solución autónoma que proporciona un primer nivel de capacidad a un conmutador de un grupo de trabajo, una solución interconectada que proporciona un conmutador de un grupo de trabajo con un mayor nivel de capacidad, o una capacidad escalada hacia arriba aún más mediante la cooperación con un dispositivo de la matriz de conmutación.
Breve descripción de los dibujos
Algunas de las finalidades de la invención ya han sido establecidas, otras aparecerán a medida que progresa la descripción, cuando se considera conjuntamente con los dibujos que se acompañan, en los cuales:
La figura 1 muestra un diagrama de bloques de un dispositivo de interfaz de acuerdo con esta invención.
La figura 1A muestra un diagrama de bloques para el MAC.
Las figuras 2A a 2D muestran el dispositivo de interfaz interconectado con otros componentes en distintas configuraciones del sistema.
La figura 3 muestra el flujo y el proceso de una trama encapsulada guiada.
La figura 4 muestra el flujo y el proceso de una trama interna guiada.
La figura 5 muestra el formato generalizado de una Célula Guiada.
La figura 6 muestra el formato de la Información de Control de la Trama.
La figura 7 muestra el formato del Dispositivo de Correlación.
La figura 8 muestra el Formato de Información de Control de Órdenes.
La figura 9 muestra el Formato de Información de Direccionamiento.
La figura 10 muestra una Forma General de Direccionamiento de Estructuras.
La figura 11 muestra un diagrama para Direccionamiento y Codificación de Islas.
La figura 12A muestra un diagrama de bloques del Complejo de Procesadores Incorporados.
La figura 12B muestra un esquema de los Procesadores Incorporados.
La figura 12C muestra una estructura de un Procesador GxH.
La figura 13 muestra un diagrama de bloques del complejo de memorias.
La figura 14 muestra un diagrama de flujo del algoritmo de búsqueda de Coincidencia Fija (FM).
La figura 15 muestra flujos que ilustran una Estructura de Datos sin utilizar una Tabla Directa y utilizando una Tabla Directa.
La figura 16 muestra un diagrama de bloques de un sistema de conmutación tal como el Prizma.
La figura 17 muestra un diagrama de bloques de un CP.
La figura 18 muestra un diagrama de bloques del Procesador de Red de un solo chip, destacando la función en el EDS-UP, EDS DOWN y EPC.
Modo(s) de llevar a cabo la invención
Aunque la presente invención será descrita con más detalles a continuación, haciendo referencia a los dibujos que se acompañan, en los cuales se ilustran modos de realización preferidos de la presente invención, debe entenderse al comenzar la descripción siguiente que las personas expertas en las técnicas apropiadas puede modificar las invenciones descritas en esta memoria, haciendo que sigan consiguiendo al mismo tiempo los favorables resultados de las invenciones. Consecuentemente, la descripción que sigue debe entenderse como una divulgación amplia y didáctica dirigida a personas expertas en las técnicas apropiadas, y no como limitadora de las presentes invenciones.
El aparato aquí divulgado es escalable y capaz de funcionar con elementos de sobremesa interconectados o conmutadores de un grupo de trabajo, agregar tales conmutadores a una estructura central de una red, y proporcionar servicios de conmutación de las estructuras centrales. El aparato puede dar soporte al reenvío por hardware en la Capa 2, la Capa 3 y la Capa 4+. Ciertas formas del aparato están diseñadas para la agregación de elementos de sobremesa o de conmutadores de un grupo de trabajo, mientras que otras tienen como objetivo las estructuras centrales básicas de conmutación.
La arquitectura utilizada para el aparato está basada en un dispositivo de interfaz o subsistema de hardware del procesador de red, y una biblioteca de software que se ejecuta en un punto de control, todo ello según se describe con más detalle en otro lugar de este documento. El dispositivo de interfaz, o subsistema del procesador de red, es un motor de reenvío de tramas de alto rendimiento, diseñado para análisis y traducción de cabeceras de protocolo de L2, L3 y L4+. Esto permite que los protocolos se conmuten a velocidades mayores, utilizando hardware. El dispositivo de interfaz o subsistema del procesador de red proporciona un camino rápido a través de la caja mientras que la biblioteca de software y el procesador del punto de control proporcionan las funciones de gestión de descubrimiento de rutas necesarias para mantener un camino rápido. El procesador del punto de control y la biblioteca de software que se ejecuta en él, definen conjuntamente el Punto de Control (CP) del sistema. El CP es el lugar en el que se ejecutan los protocolos reales de puentes y encaminamiento, tal como el Transparent Bridging (Formación Transparente de Puentes) y OSPF. También puede ser denominado como el camino lento del sistema.
Aunque el aparato aquí divulgado soporta el reenvío multicapa en hardware, también puede funcionar como un conmutador de L2 solamente, y ese es su modo de funcionamiento por defecto en la forma más sencilla divulgada. Cada puerto será colocado en un solo dominio, permitiendo que cualquier dispositivo se comunique con cualquier otro dispositivo. El aparato es configurable en L2, permitiendo a los administradores del sistema tener la capacidad de configurar características tales como: agrupamiento de puertos en dominios o enlaces troncales independientes, configuración de segmentos de LAN virtuales (VLAN), o filtros para el control de la difusión y multidifusión del tráfico.
Este aparato escalable tiene muchos beneficios. En primer lugar permite al administrador del sistema la capacidad de configurar en L3 el reenvío y encaminamiento de tráfico IP e IPX, utilizando el mismo hardware que se utiliza para L2 y a la misma velocidad. En segundo lugar, elimina la necesidad de utilizar enrutadores externos para interconectar edificios de un campus al mismo tiempo que aumenta el rendimiento. En tercer lugar, simplifica o combina la gestión del servicio L2/L3 para un edificio en un solo punto de control. Finalmente, proporciona características de valor añadido con funciones de L4+ que permiten a los administradores del sistema tener la capacidad de asignar distintas clasificaciones de tráfico para dar soporte a aplicaciones con una misión crítica y al distribuidor de la red para el equilibrio de carga entre los servidores.
El aparato está diseñado de manera que forma una unidad modular utilizando un dispositivo de interfaz o un procesador de red, un Punto de Control (CP), y un dispositivo opcional de la matriz de conmutación como su bloque constructivo fundamental. El dispositivo de interfaz proporciona preferiblemente servicios de reenvío por un camino rápido de L2/L3/L4+, mientras que el CP proporciona la gestión y funciones de descubrimiento de rutas necesarias para mantener el camino rápido. El dispositivo opcional de la matriz de conmutación se utiliza cuando se unen conjuntamente más de dos subsistemas de dispositivo de interfaz. El dispositivo opcional de la matriz de conmutación puede ser como el divulgado en la patente de Estados Unidos 5.008.878, publicada el 16 de Abril de 1991, para un Aparato Modular de Conmutación de Alta Velocidad, para el Tráfico de Conmutación de Circuitos y de Paquetes.
Se puede anticipar el montaje del aparato utilizando elementos de placas de circuito impreso, que también se denominan en esta memoria como "láminas". Los elementos de placa de circuito impreso tienen elementos del circuito montados en ellos y son recibidos en conectores provistos en alojamientos del aparato. Dispositivos similares son conocidos también como "tarjetas opcionales". El aparato contempla que las láminas puedan ser intercambiadas entre diversos chasis o alojamientos, siempre que se disponga de los conectores y conexiones eléctricas de la placa madre apropiados. El componente básico encontrado en todas las láminas es un subsistema portador. Empezando con un subsistema portador, se pueden fabricar tres tipos de láminas. El primer tipo es una Lámina de solamente un CP, que consiste en un subsistema portador y un subsistema de CP. El uso principal de una lámina de solamente un CP es para un producto en el que la redundancia es la preocupación principal. El segundo tipo es una Lámina de CP + Medios, que consiste en un subsistema portador, un subsistema de CP, y 1 a 3 subsistemas de medios. El principal uso de una lámina de CP + Medios es un producto en el que se estima más importante la densidad de puertos que la redundancia. El tercer tipo es la Lámina de Medios, que consiste en un subsistema portador y 1 a 4 subsistemas de medios. Las láminas de medios pueden ser utilizadas en cualquier chasis y el tipo de subsistema de medios utilizado es configurable.
La gestión de láminas implicará la detección de averías, la gestión de alimentación, la detección de nuevos dispositivos, la inicialización y la configuración. Esta gestión será efectuada utilizando varios registradores, señales de E/S, y un interfaz de célula guiada que se utiliza para comunicarse entre el CP y los subsistemas portadores. Sin embargo, a diferencia del chasis, existen dispositivos programables y memorias en todas las láminas. La dimensión de la capacidad de programación depende del tipo de lámina. Cuando hay un subsistema de CP en una lámina, tanto el CP como los subsistemas portadores son programables. Los subsistemas de medios son también programables, pero solamente de manera indirecta a través del subsistema portador.
En productos de mayor capacidad, también existe una Lámina del Conmutador, que contiene el subsistema de dispositivos de la matriz de conmutación. La gestión de esta lámina implicará la detección de averías, la gestión de alimentación, la detección de nuevos dispositivos y la inicialización. Esta gestión será hecha utilizando varios registradores y señales de E/S que serán objeto de un mapa de correspondencia con el subsistema de CP.
En su forma más simple, un aparato de conmutación contemplado por esta invención tiene un procesador del punto de control, y un dispositivo de interfaz operativamente conectado al procesador del punto de control. Preferiblemente, y como se divulga en esta memoria, el dispositivo de interfaz (también conocido como procesador de red) es un dispositivo de circuito unitario integrado a muy gran escala (VLSI) o un chip que tiene un substrato de semiconductores; una pluralidad de procesadores de interfaz formada sobre el substrato; una memoria interna de instrucciones formada sobre dicho substrato y que almacena instrucciones accesiblemente a los procesadores del interfaz, una memoria interna de datos formada sobre el substrato y que almacena datos que pasan a través del dispositivo accesiblemente hacia los procesadores del interfaz; y una pluralidad de puertos de entrada/salida. Los procesadores de interfaz son identificados algunas veces en esta memoria como pico procesadores o unidades de proceso. Los puertos proporcionados incluyen al menos uno que conecta la memoria interna de datos con la memoria externa de datos, y al menos otros dos puertos que intercambian datos que pasan a través del dispositivo de interfaz con una red externa, bajo la dirección de los procesadores del interfaz. El punto de control coopera con el dispositivo de interfaz cargando en la memoria de instrucciones las instrucciones a ejecutar por los procesadores del interfaz, dirigiendo el intercambio de datos entre los puertos de entrada/salida de intercambio de datos y el flujo de datos a través de la memoria de datos.
El procesador de red aquí divulgado se considera inventivo independientemente de los conjuntos del conmutador en los que está incorporado. Además, el procesador de red aquí divulgado se considera que tiene dentro de sus elementos aquí descritos otras invenciones adicionales, que no son estudiadas aquí completamente.
La figura 1 muestra un diagrama de bloques del chip del dispositivo de interfaz, que incluye un substrato 10 y una pluralidad de subconjuntos integrados en el substrato. Los subconjuntos están organizados en una configuración del lado superior y una configuración del lado inferior. Según se utiliza aquí, el "lado superior" se refiere a flujos de datos hacia dentro desde una red hasta el aparato aquí divulgado, mientras que "lado inferior" se refiere a datos que salen desde el aparato a una red servida por el aparato. El flujo de datos sigue las respectivas configuraciones. Como consecuencia, existe un flujo de datos del lado superior y un flujo de datos del lado inferior. Los subconjuntos en el lado superior incluyen una lógica 16 de Poner en cola - Quitar de la cola - Programar UP (EDS-UP), MAC's-UP multiplexada (PPM-UP) 14, Desplazador de datos del conmutador - UP (SDM-UP) 18, interfaz del sistema (SIF) 20. Enlace Serie de Ajuste de Datos A (DASLA) 22, y Enlace Serie de Ajuste de Datos B (DASLB) 24. Un enlace serie de ajuste de datos se describe con más detalle en la solicitud de patente de Estados Unidos, pendiente de concesión, con el número de serie 09/330,968, solicitada el 11 de Junio de 1999 y titulada "Enlace Paralelo/Serie de Alta Velocidad para Comunicaciones de Datos". Aunque la forma preferida del aparato de esta invención aquí divulgada utiliza un enlace DASL, la presente invención contempla que puedan emplearse otras formas de enlaces para conseguir tasas de flujo de datos relativamente altas, particularmente cuando los flujos de datos están restringidos a estar dentro de la estructura VLSI.
Los subconjuntos en el lado inferior incluyen DASL-A 26, DASL-B 28, SIF 30, SDM-DN 32, EDS-DN 34 y PPM-DN 36. El chip incluye también una pluralidad de S-RAM internas, un Programador 40 de Gestión de Tráfico y un Complejo de Procesadores Incorporados (EPC) 12. Hay acoplado un dispositivo 38 de interfaz por medio de los respectivos buses DMU, a PMM 14 y 36. El interfaz 38 podría ser cualquier conjunto L1 de circuitos adecuado, tal como un ethernet Físico (ENET PHY), un generador de tramas de ATM, etc. El tipo de interfaz está impuesto en parte por el medio de la red a la cual está conectado el chip. Hay disponible una pluralidad de D-RAM y de S-RAM externas para ser utilizadas por el chip.
Aunque aquí está particularmente divulgada para redes en las cuales se hace pasar el flujo general de datos fuera de los dispositivos relevantes de conmutación y encaminamiento, a través de conductores eléctricos tales como hilos y cables instalados en edificios, la presente invención contempla que los conmutadores de la red y los componentes de la misma aquí divulgados pueden ser utilizados también en un entorno inalámbrico. A modo de ejemplo ilustrativo, los elementos de control de acceso del medio (MAC) aquí descritos pueden ser sustituidos por elementos de radiofrecuencia adecuados, posiblemente utilizando la conocida tecnología de Silicio Germanio, que daría como resultado una capacidad para enlazar los elementos aquí descritos, directamente a una red inalámbrica. Cuando se aplica apropiadamente tal tecnología, los elementos de radiofrecuencia pueden ser integrados, por una persona con la experiencia apropiada en las técnicas aplicables, en las estructuras VLSI aquí divulgadas. Alternativamente, los dispositivos respuesta de radiofrecuencia o bien inalámbricos, tales como los dispositivos que responden a infrarrojos, pueden ser montados sobre una lámina con otros elementos aquí divulgados para conseguir un aparato de conmutación útil con sistemas de red inalámbricos.
Las flechas muestran el flujo general de datos dentro del dispositivo de interfaz. Las tramas recibidas desde un MAC de Ethernet son colocados en memorias intermedias internas de Almacenamiento de Datos por EDS-UP. Estas tramas son identificadas como Tramas de Datos normales o bien como Tramas Guiadas de control del sistema y puestas en cola por el EPC (figura 1). El EPC contiene N procesadores de protocolo capaces de trabajar en hasta N tramas en paralelo (N > 1). En un modo de realización de diez procesadores de protocolo (figura 12B), dos de los diez procesadores de protocolo son especializados, uno para gestionar las Tramas Guiadas (el Gestor Central Genérico o GCH) y otro para construir Datos de Consulta en Memoria de Control (el Gestor Genérico del Árbol o GTH). Como está ilustrado en la Figura 12A, el EPC contiene también un distribuidor que hace coincidir tramas nuevas con procesadores libres, una unidad de terminación que mantiene la secuencia de tramas, una memoria de Instrucciones Comunes compartida por los diez procesadores, un Asistente Clasificador por Hardware, que determina la clasificación de tramas y un coprocesador que ayuda a determinar la dirección de la instrucción de inicio de la trama, interfaces de Entradas y Salidas del Almacenamiento de Datos, que controlan las operaciones de lectura y escritura de las memorias intermedias de tramas, un Arbitrador de Memoria de Control que permite compartir la Memoria de Control a los diez procesadores, un arbitrador e interfaz de Control de la Red, que permite depurar el acceso a estructuras de datos del dispositivo de interfaz interno, así como otras realizaciones por hardware.
Las Tramas Guiadas son enviadas por el distribuidor al procesador GCH a medida que se hace disponible. Las operaciones codificadas de la Trama Guiada son ejecutadas, tales como grabaciones en registradores, lecturas en contadores, cambios de configuración en MAC de Ethernet y similares. Las alteraciones de la tabla de Consulta, tales como añadir elementos MAC o IP, son traspasadas al procesador de Datos de Consulta para operaciones de Memoria de Control, tales como lecturas y grabaciones en memoria. Algunas órdenes, tales como lecturas de contador MIB, requieren construir una trama de respuesta y enviarla al puerto apropiado sobre el dispositivo de interfaz apropiado. En algunos casos, la Trama Guiada es codificada para el lado de Salida del dispositivo de interfaz. Estas tramas son reenviadas al lado de Salida del dispositivo de interfaz requerido, que ejecuta entonces las operaciones codificadas y construye cualquier trama de respuesta apropiada.
Las tramas de datos son distribuidas al siguiente procesador de protocolo disponible para realizar consultas de trama. Los datos de tramas son traspasados al procesador de protocolo junto con los resultados del Motor Asistente Clasificador por Hardware (CHA). El CHA analiza si es IP o IPX. Los resultados determinan el algoritmo de Búsqueda del Árbol y la Dirección de Instrucción Común (CIA) de inicio. Los algoritmos del Árbol de Búsqueda admitidos incluyen los Árboles de Coincidencia Fija (modelos de tamaño fijo que requieren una coincidencia exacta, tal como las tablas MAC de Ethernet de Capa 2), Árboles de Coincidencia de prefijo más largo (modelos de longitud variable que requieren coincidencias de longitud variable, tales como el reenvío de IP en una subred) y los Árboles Gestionados por Software (dos modelos que definen una gama o un conjunto de máscaras de bits, tales como los utilizados para reglas de los filtros).
La consulta es realizada con ayuda del Coprocesador del Motor de Búsqueda de Árboles (TSE), que es una parte de cada procesador de protocolo. El coprocesador TSE realiza los accesos a la memoria de control, liberando el procesador de protocolo para que continúe la ejecución. La memoria de control almacena todas las tablas, contadores, y otros datos necesarios para el picocódigo. Las operaciones de la memoria de control son gestionadas por el Arbitrador de la memoria de control, que arbitra el acceso a memoria entre los diez complejos de procesadores.
Los datos de tramas don accedidos a través del Coprocesador de Almacenamiento de Datos. El Coprocesador de Almacenamiento de Datos contiene una memoria intermedia principal de datos (que contiene hasta ocho segmentos de 16 bytes de datos de tramas), una memoria intermedia de apuntes de datos (que también contiene hasta ocho segmentos de 16 bytes de datos de tramas) y algunos registradores de control para las operaciones de Almacenamiento de Datos. Una vez que se encuentra una coincidencia, las alteraciones de tramas de entrada pueden incluir una inserción o superposición de cabecera de VLAN. Esta alteración no es realizada por el complejo de procesadores del dispositivo de interfaz, sino que más bien se obtienen señalizadores de hardware y es otro hardware del Interfaz de Entrada del Conmutador el que realiza las alteraciones. Pueden conseguirse otras alteraciones de trama por medio del picocódigo y el Coprocesador de Almacenamiento de Datos, modificando el contenido de la trama contenido en el Almacenamiento de Datos de Entrada.
Se reúnen y utilizan otros datos para construir Cabeceras del Conmutador y Cabeceras de Trama, antes de enviar tramas al dispositivo de la matriz del conmutador. Los datos de control incluyen información del conmutador, tal como la lámina de destino de la trama, así como la información para el dispositivo de Interfaz de Salida, ayudándole a agilizar la consulta de tramas de los puertos de destino, las operaciones de multidifusión o unidifusión, y las alteraciones de Tramas de Salida.
Al terminar, el Coprocesador de Puesta en Cola construye los formatos necesarios para poner en cola la trama en la matriz del conmutador, y los envía a la Unidad de Terminación. La Unidad de Terminación garantiza el orden de las tramas desde los diez procesadores de protocolo a las colas de la matriz del conmutador. Las tramas de las colas de la matriz del conmutador son segmentadas en células de 64 bytes, con inserción de bytes de Cabecera de Trama y bytes de Cabecera del Conmutador, a medida que son transmitidas por el Conmutador Prizma-E.
Las tramas recibidas desde la matriz del conmutador son colocadas en las memorias intermedias de Almacenamiento de Datos de Salida (DS de Salida), por medio de un EDS de Salida (34) y son puestas en cola en el EPC. Una parte de la trama es enviada por el distribuidor a un procesador de protocolo que esté libre, para realizar consultas de trama. Los datos de trama son distribuidos al procesador de protocolo junto con los datos del Asistente Clasificador por Hardware. El Asistente Clasificador de Hardware utiliza datos de control de trama creados por el Interfaz de Entrada, para ayudar a determinar la Dirección de la Instrucción de Código (CIA) inicial.
Las Búsquedas de Árboles de Salida admiten los mismos algoritmos admitidos en las Búsquedas de Entrada. La consulta se realiza con el Coprocesador TSE, liberando al procesador de protocolo para continuar la ejecución. Todas las operaciones de la memoria de Control son gestionadas por el Arbitrador de la memoria de Control, que asigna acceso a la memoria entre los complejos de diez procesadores.
Los datos de trama de salida son accedidos a través del Coprocesador de Almacenamiento de Datos. El Coprocesador de Almacenamiento de Datos contiene una memoria intermedia principal de datos (que contiene hasta ocho segmentos de 16 bytes de datos de trama), una memoria intermedia de apuntes de datos (que contiene también hasta ocho segmentos de 16 bytes de datos de trama) y algunos registradores de control para las operaciones de Almacenamiento de Datos. El resultado de una consulta con éxito contiene información de reenvío y, en algunos casos, información de alteración de tramas. Las alteraciones de tramas pueden incluir la eliminación de cabecera VLAN, el incremento (IPX) o decremento (IP) del Tiempo de Vida, volver a calcular la Suma de Comprobación de la Cabecera de IP, la superposición o inserción de CRC en la trama de Ethernet y la superposición o inserción de MAC DA/SA. Las sumas de comprobación de la Cabecera de IP son preparadas por el Coprocesador de Suma de Comprobación. Las alteraciones no son realizadas por el Complejo de Procesadores del dispositivo de Interfaz, sino que se crean señalizadores por hardware y es el hardware de Salida de PMM el que realiza las alteraciones. Al terminar, se utiliza el Coprocesador de Puesta en Cola para ayudar a construir los formatos necesarios para poner en cola la trama en las colas de Salida de EDS y enviarlos a la Unidad de Terminación. La Unidad de Terminación garantiza el orden de las tramas de
los diez procesadores de protocolo a las colas de Salida de EDS que alimentan los MAC 36 de Ethernet de salida.
Las tramas completadas son enviadas finalmente por el hardware de Salida de PMM a los MAC de Ethernet saliendo por los puertos de Ethernet.
Un bus interno, denominado Web (entramado de redes), permite el acceso a registradores internos, contadores y memoria. La Web incluye también un interfaz externo para controlar el paso de instrucciones y el control de interrupciones para depuración y diagnósticos.
El coprocesador del Motor de Búsqueda proporciona una comprobación de la amplitud de la memoria, la notificación de acceso ilegal a memoria y ejecuta instrucciones de búsqueda de árbol (tales como lectura, escritura o lectura-y-escritura de memoria), operando en paralelo con la ejecución del procesador de protocolo.
La Memoria Común de Instrucciones consiste en una RAM de 1024 x 128 y dos conjuntos de RAM dual de 512 x 128. Cada conjunto de RAM dual proporciona dos copias del mismo picocódigo, permitiendo a los procesadores acceder independientemente a las instrucciones dentro de la misma gama de direcciones. Cada palabra de 128 bits incluye instrucciones de 32 bits, proporcionando una gama total de 8192 instrucciones.
El distribuidor controla el traspaso de tramas a los diez procesadores de protocolo y gestiona interrupciones y temporizadores.
La Unidad de Terminación garantiza el orden de tramas desde el complejo de procesadores a la matriz del conmutador y a las colas de puertos de su objetivo. Un conjunto de instrucciones consistente incluye ejecución condicional, empaquetado (para claves aleatorias de entrada), ramificación condicional, operaciones con y sin firma, recuentos de ceros antepuestos y otros.
El motor del Asistente Clasificador de Hardware analiza cada cabecera de protocolo de capa 2 y capa 3 de la trama y proporciona esta información con tramas a medida que son distribuidas a los procesadores de protocolo.
El Arbitrador de memoria de Control controla el acceso del procesador tanto a la memoria interna como a la externa.
Las opciones de memoria externa de control incluyen 5 a 7 subsistemas DDR DRAM que soportan, cada uno de ellos, una pareja de DDR RAM de 2M x 16 bits x 4 bancos o una pareja de 4M x 16 bits x 4 bancos. El interfaz DDR RAM funciona con una velocidad de reloj de 133 MHz y un muestreo de datos de 266 MHz que admite latencia CAS configurable y capacidad de accionamiento. Puede añadirse una ZBT SRAM opcional de 133 MHz en una configuración de 128K x 36, 2 x 256K x 18 o 2 x 512K x 18.
Las tramas de salida pueden ser almacenadas en una Memoria Intermedia Externa de Datos (por ejemplo, DSO) o bien en dos Memorias Intermedias Externas de Datos (DSO y DS1). Cada Memoria Intermedia puede estar comprendida por una pareja de DDR DRAM de 2M x 16 bits x 4 bancos (que almacenan hasta 256K tramas de 64 bytes) o bien una pareja de DDR DRAM de 4M x 16 bits x 4 bancos (que almacenan hasta 512 K de tramas de 64 bytes). Se elige la Memoria Intermedia Externa única de Datos (por ejemplo, DSO) para 2,28 Mbps, o bien se añade la segunda Memoria Intermedia (por ejemplo, DS1) para admitir la conmutación de capa 2 y capa 3 de 4,57 Mbps. Al añadir la segunda Memoria Intermedia se mejora el rendimiento, pero no aumenta la capacidad de tramas. El interfaz de la Memoria Intermedia Externa de Datos funciona a una velocidad de reloj de 133 MHz, con un muestreo de datos de 266 MHz, y admite la latencia CAS configurable y la capacidad de accionamiento.
La memoria Interna de Control incluye dos RAM de 512 x 128 bits, dos RAM de 1024 x 36 bits y una RAM de 1024 x 64 bits.
El almacenamiento Interno de Datos proporciona una memoria intermedia para hasta 2048 tramas de 64 bytes en la dirección de entrada (UP).
Las alteraciones fijas de Trama incluyen inserciones de etiquetas VLAN en la dirección de Entrada y eliminaciones de etiquetas de VLAN, incremento/decremento (IP, Ipx) del Tiempo de Vida, superposición/inserción de CRC de Ethernet y superposición/inserción de MAC DA/SA en la dirección de Salida (DOWN).
La formación de espejos de puertos permite copiar un puerto de recepción y un puerto de transmisión a un puerto de observación designado por el sistema, sin utilizar recursos de procesador de protocolo. Los puertos del dispositivo de Interfaz de los que se hace un espejo son configurados para añadir datos de control de trama y del conmutador. Un camino de datos independiente permite la puesta en cola directa en el interfaz de Entrada del Conmutador. El dispositivo de interfaz integra cuatro macros de Ethernet. Cada macro puede ser configurada individualmente para funcionar en modo de 1 Gigabit o de 10/100 Ethernet Rápido. Cada macro de Ethernet admite hasta diez MAC de 10/100 Mbps o un MAC de 1000 Mbps para una de cada cuatro macros.
La figura 1A muestra un diagrama de bloques del núcleo de MAC. Cada macro incluye tres diseños del Núcleo de Ethernet; para afinar, el Núcleo MAC multipuerto de 10/100 Mbps (Fenet), el núcleo MAC de 1000 Mbps (Genet) y el Núcleo de Subcapa de Codificación Física de 100 Mbps (PCS).
Características del MAC 10/100 multipuerto de Ethernet:
Admite diez Interfaces Serie Independientes del Medio con la capa física.
Capaz de manejar diez puertos de velocidades del medio de 10 Mbps o 100 Mbps, con cualquier combinación de velocidades.
Un solo MAC da servicio a los diez puertos con un Interfaz de Multiplexación por División de Tiempos.
Admite operaciones en Full dúplex/semidúplex a la velocidad del medio en todos los puertos.
Admite el Retroceso Exponencial Binario de IEEE 802.3.
Características del Núcleo de MAC Ethernet de 1000 Mbps:
Admite un Interfaz Independiente del Medio de Gigabits (GMII) con la capa PCS física o directamente con la capa física.
Con el núcleo de PCS, admite una solución completa TBI (8b/10b).
Admite conexiones punto a punto en Full dúplex a la velocidad del medio.
Admite señalización de bytes válida del núcleo de IBM PCS.
Características del Núcleo de Subcapas Físicas de Codificación de Ethernet de 1000 Mbps:
Efectúa la codificación y descodificación de 8b/10b.
Admite el Interfaz de Servicio de PMA (10 bits), según se define en IEEE 802.3z; este interfaz se une a cualquier PMA que sea conforme con IEEE 802.3z.
Sincroniza los datos recibidos desde el PMA (reloj de dos fases) con el reloj de MAC (una sola fase).
Admite la Auto-Negociación incluyendo dos páginas siguientes.
Convierte desde un sistema de reloj de dos fases definido en los estándares en un reloj de una sola fase.
Proporciona una señal al MAC que indica aquellos ciclos de reloj que contienen datos nuevos.
Comprueba los COMMA de los grupos (de 10 bits) de códigos recibidos y establece sincronismo de palabras.
Calcula y comprueba la disparidad de ejecución de 8b/10b.
Las figuras 2A-2D muestran diferentes configuraciones del Chip del dispositivo de Interfaz. Las configuraciones son facilitadas por DASL y por la conexión a un dispositivo de la matriz de conmutación. Cada DASL incluye dos canales que son: un canal de transmisión y un canal receptor.
La figura 2A muestra una configuración de empaquetamiento para un dispositivo de un solo interfaz. En esta configuración, el canal de transmisión está empaquetado en el canal de recepción.
La figura 2B muestra la configuración en la cual hay conectados dos chips de dispositivo de interfaz. Cada chip de dispositivo de interfaz está provisto de al menos dos DASL. En esta configuración, los canales de un DASL de unos de los chips están operativamente conectados a los canales de un DASL coincidente en el otro chip. El otro DASL de cada chip está empaquetado.
La figura 2C muestra la configuración en la cual hay conectados múltiples dispositivos de interfaz a una matriz de conmutación. Las flechas de doble punta indican transmisión en ambos sentidos.
La figura 2D muestra la configuración en la cual hay conectados un conmutador Principal y un conmutador de reserva a múltiples dispositivos de interfaz. Si se avería el conmutador principal, el de reserva está disponible para su utilización.
Un punto de control (CP) incluye un Procesador del Sistema que está conectado a cada una de las configuraciones. El procesador del sistema en el CP, entre otras cosas, proporciona servicios de inicialización y configuración al chip. El CP puede estar situado en cualquiera de los tres lugares siguientes: en el chip del dispositivo de interfaz; en la lámina sobre la cual está montado el chip o externamente a la lámina. Si es externo a la lámina, el CP puede ser remoto; es decir, alojado en cualquier otro sitio y comunicándose por la red a la cual están unidos el dispositivo de interfaz y el CP. Los elementos de un CP están ilustrados en la figura 17 e incluyen elementos de memoria (caché, flash y SDRAM), un controlador de memoria, un bus de PCI y conectores para una placa madre y para medios de red L1.
La figura 18 muestra el Procesador de Red de un solo chip y las funciones proporcionadas por el EDS-UP, el Programador de Gestión de Tráfico (MGT) y por el EDS-DOWN (DN). Los iconos en forma de U representan colas y el Bloque de Control (CB) que hace un seguimiento del contenido de las colas, están representados por iconos rectangulares.
A continuación se ofrece una descripción de los elementos, de sus respectivas funciones y de su interacción.
PMM: Esta es la parte de los Procesadores de Red que contiene los MAC (Fenet, POS, Genet) y se une a los dispositivos PHY externos.
UP-PMM: Esta lógica toma bits de los PHY y les da el formato FISH (16 bytes) para pasarlos al UP-EDS. Hay 4 DMU dentro del PMM, siendo capaz cada uno de ellos de trabajar con 1 Genet o 10 dispositivos FEnet.
UP-EDS: Esta lógica toma los formatos "fish" del UP-PMM y los almacena en el Almacenamiento de Datos UP (RAM interna). Es capaz de trabajar con 40 tramas a la vez, y tras haber recibido un número de bytes apropiados, pondrá en cola la trama en el EPC. Cuando el EPC termina con la trama, el UP-EDS pondrá en cola la trama en la Cola del Puerto Objetivo apropiada y comenzará a enviar la trama al UP-SDM. El UP-EDS es responsable de la gestión de todas las memorias intermedias y tramas y devuelve las memorias intermedias/tramas a los sitios comunes libres cuando termina la transferencia de UP-SDM.
EPC: Esta lógica contiene los picoprocesadores y puede contener incorporado un PC de potencia. Esta lógica es capaz de mirar la cabecera de la trama y decidir qué hacer con la trama (reenviarla, modificarla, filtrarla, etc.). El EPC tiene acceso a diversas tablas de consulta y asistentes de hardware para permitir a los picoprocesadores mantener los requisitos de amplia anchura de banda del Procesador de Red.
UP-SDM: Esta lógica toma las tramas y las formatea en células PRIZMA para su transmisión a la matriz de conmutación. Esta lógica es capaz también de insertar la cabecera de VLAN en la trama.
UP-SIF: Esta lógica contiene las macros UP-DASL y se une a las E/S del conmutador externo.
DN-SIF: Esta lógica contiene las macros DN-DASL y recibe células PRIZMA desde las E/S externas.
DN-SDM: Esta lógica recibe las células PRIZMA y las preprocesa para ayudar a la reconstrucción de tramas.
DN-EDS: Esta lógica toma cada célula y las vuelve a construir como tramas. La célula es almacenada en Almacenamiento Externo de Datos, y las memorias intermedias son enlazadas conjuntamente para construir tramas. Cuando se recibe la trama entera, la trama quedará en cola en el EPC. Una vez que el EPC ha terminado con la trama, es puesta en cola en el Programador (si está presente) o en las Colas del Puerto Objetivo. DN-EDS envía entonces las tramas al puerto apropiado enviando la trama, cualquier información de alteraciones y alguna información de control al DN-PMM.
DN-PMM: Toma la información del DN-EDS y da formato a las trama en Ethernet, POS, etc., y envía la trama al PHY externo.
SPM: Esta lógica se utiliza para permitir al Procesador de Red hacer de interfaz con los dispositivos externos (PHY, LED, FLASH, etc.) pero solamente requiere 3 E/S. El Procesador de Red utiliza un interfaz serie para comunicarse con el SPM y después el SPM realiza las funciones necesarias para gestionar estos dispositivos externos.
Flujo del LADO-SUPERIOR
1)
La trama llega al PHY.
2)
Se reciben los bytes en el UP-PMM
3)
El UP-PMM envía el FISH al UP-EDS (Fish significa una parte de la trama).
4)
El UP-EDS almacena el FISH en UP-DS.
5)
El UP-EDS envía la cabecera al EPC.
6)
El EPC procesa la cabecera y devuelve información de puesta en cola al UP-EDS.
7)
El UP-EDS continúa recibiendo el resto de la trama desde el UP-PMM.
8)
El UP-EDS envía información al UP-SDM cuando los datos apropiados están disponibles para ser enviados al conmutador.
9)
El UP-SDM lee datos de trama y los formatea como células PRIZMA.
10)
EL UP-SDM envía células al UP-SIF.
11)
El UP-SIF transfiere las células sobre los enlaces serie de DASL al PRIZMA.
12)
El UP-EDS libera memorias intermedias/tramas cuando se han recogido todos los datos.
\vskip1.000000\baselineskip
Flujo del LADO-DN
1)
El DN-SIF recibe células PRIZMA.
2)
EL DN-SIF almacena células y las preprocesa para información de reconstrucción.
3)
El DN-EDS recibe los datos de la célula y la información de reconstrucción y enlaza la célula en una nueva trama en el lado inferior.
4)
El DN-EDS almacena la célula en DN-DS.
5)
El DN-EDS pone en cola la trama en el EPC cuando se han recibido todos los datos.
6)
EL EPC procesa la cabecera y devuelve la información de puesta en cola al DN-EDS.
7)
El DN-EDS pone en cola la trama en una cola de programador (si está presente) o en una Cola de Puerto Objetivo.
8)
EL DN-EDS da servicio a las colas y envía información de trama al PCB
9)
El DN-EDS utiliza el PCB para "desentrañar" la trama y lee los datos apropiados y envía esos datos al DN-PMM.
10)
El DN-PMM formatea los datos (con alteración si se requiere) y envía la trama al PHY externo
11)
El DN-PMM informa al DN-EDS cuando ya no se necesitan las memorias intermedias y el DN-EDS libera estos recursos.
\vskip1.000000\baselineskip
Flujo de Control de TRAMA
1)
Se envía la cabecera al EPC desde el UP-DS o desde el DN-DS.
2)
El EPC busca información de la cabecera en las tablas de consulta y recibe información de puesta en cola de tramas.
3)
El EPC devuelve la información de puesta en cola de tramas al EDS y la trama es puesta en cola en la cola apropiada.
4)
Las cabeceras de célula y las cabeceras de trama son enviadas junto con los datos de trama para ayudar a la reconstrucción y reenvío de tramas.
\vskip1.000000\baselineskip
Flujo de Control de CP
1)
El punto de control da formato a una Trama Guiada y la envía al Procesador de Red.
2)
El Procesador de Red pone en cola la Trama Guiada en el picoprocesador GCH.
3)
El GCH procesa la Trama Guiada y lee o escribe las zonas requeridas de Rainier
4)
El GCH traspasa cualquier petición de actualización de Tabla al GTH.
5)
El GTH actualiza la tabla apropiada con información de la Trama Guiada.
6)
Se devuelve una Trama Guiada de acuse de recibo al CP.
\vskip1.000000\baselineskip
Flujo de Control del Procesador de Red
1)
Un picoprocesador puede construir una Trama Guiada para enviar información a otro Rainier o al Punto de Control.
2)
La trama guiada es enviada al lugar apropiado para su tratamiento.
Un solo dispositivo de interfaz proporciona conmutación a velocidad del medio para hasta 40 puertos de Ethernet Rápido (Figura 2A). Se puede dar soporte a 80 puertos de Ethernet Rápido cuando están interconectados dos dispositivos de interfaz, utilizando la tecnología del Enlace Síncrono con Ajuste de Datos (DASL) de IBM (figura 2B). Cada pareja diferencial de DASL transporta 440 Mbps de datos. Dos conjuntos de ocho parejas proporcionan una conexión dúplex de 3,5 Gbps (8 veces 440 Mbps en cada dirección). Como se ilustra en las figuras 2C y 2D, pueden construirse sistemas más grandes interconectando múltiples dispositivos de interfaz a un conmutador, tal como el conmutador Prizma-E de IBM. El dispositivo de interfaz proporciona dos conexiones DASL dúplex de 3,5 Gbps, una principal y otra secundaria, que pueden ser utilizadas para proporcionar un camino envolvente de retorno para el tráfico local de tramas (cuando hay conectados directamente dos dispositivos de interfaz, figura 2B) o una conexión a una matriz de conmutación redundante (figura 2D, Conmutación de Reserva). En vista de lo anterior, el Chip de un solo Procesador de Red es escalable de manera que puede utilizarse un chip para proporcionar un sistema de gama inferior (que tiene una densidad de puertos relativamente baja, por ejemplo 40) hasta un sistema de gama superior (que tiene una densidad de puertos relativamente alta, por ejemplo 80 - n puertos).
Un dispositivo de interfaz del sistema está conectado al procesador del sistema a través de uno hasta diez puertos de Ethernet Rápido de 10/100 Mbps o un solo puerto de Ethernet de 1000 Mbps. La configuración de Ethernet para el procesador del sistema es colocada en una EEPROM unida al dispositivo de interfaz y cargada durante la inicialización. El procesador del sistema se comunica con todos los dispositivos de interfaz del sistema (véase la figura 2) construyendo Tramas Guiadas especiales encapsuladas, por ejemplo, como tramas de Ethernet o interfaces de otros medios. Las Tramas Guiadas encapsuladas son reenviadas a través de un enlace DASL a otros dispositivos, permitiendo controlar todos los dispositivos de interfaz del sistema desde un solo punto.
Las Tramas Guiadas se utilizan para comunicar información de control entre el Punto de Control (CP) y el Complejo de Procesadores Incorporados y dentro del dispositivo de interfaz. En la patente de estados Unidos 5.724.438, publicada el 3 de Marzo de 1998, que trata de un Interfaz Eficiente de Hardware/Software para un Conmutador de Datos, se encuentra una divulgación anterior de Células Guiadas que aclarará la presente discusión.
Para el tráfico de Tramas Guiadas que se origina en el CP, el CP construye la Trama Guiada en memorias intermedias de datos de su memoria local. El Controlador de Dispositivo del CP envía la Trama Guiada a uno de los interfaces con los medios del Procesador de Red. El hardware del Control de Acceso de Medios (MAC) recupera la Trama Guiada y la almacena en su memoria de almacenamiento interno de datos (U_DS). La Trama Guiada es encaminada a la lámina apropiada, es procesada y se vuelve a encaminar al CP según se requiera. Las Tramas Guiadas que pasan entre un CP externo y el dispositivo de interfaz son encapsuladas para adaptarse al protocolo de la red externa. Como consecuencia, si la red externa incluye ethernet, las Tramas Guiadas son encapsuladas como tramas de ethernet y así sucesivamente.
El encapsulamiento de Ethernet proporciona un medio de transporte para Tráfico Guiado entre el CP y el dispositivo de interfaz. El MAC de Ethernet (Enet MAC) del dispositivo de interfaz no analiza la Dirección de Destino (DA) ni la Dirección Fuente (SA) cuando recibe tramas. Este análisis es realizado por el picocódigo de EPC. El Tráfico Guiado presupone que el dispositivo de interfaz no ha sido configurado y el DA y SA no pueden ser analizados por el picocódigo de EPC. Por tanto, estas tramas son inherentemente auto-encaminadas. Sin embargo, el Enet MAC analiza el campo de Tipo de Ethernet para distinguir el Tráfico Guiado del Tráfico de Datos. Este valor del Tipo de Ethernet de la Trama Guiada debe coincidir con el valor cargado en el Registrador de E_Tipo_C. Este registrador es cargado desde la Memoria Flash por el picocódigo de arranque del dispositivo de interfaz.
El CP construye la Trama Guiada en memorias intermedias de datos de su memoria locales. El contenido de un registrador de 32 bits del procesador del CP es almacenado en un formato "big endian" (los bits más significativos primero) en la memoria local, como se ilustra en la figura 3. Una vez construida la Trama Guiada, el Controlador de Dispositivos del CP envía una trama de Ethernet que contiene un DA para el Manejador de Células Guiadas (GCH) específico, un SA correspondiente a la dirección de MAC global para el CP, o la dirección de MAC para un interfaz específico, un campo especial del tipo de Ethernet que indica una Trama Guiada, y los Datos de la Trama Guiada. Todas las tramas de Ethernet que llegan al puerto son recibidas y analizadas por Enet MAC. Para tramas con un valor del tipo de Ethernet coincidente con el contenido del registrador de E_Tipo_C, el Enet MAC elimina los campos de DA, SA y Tipo de Ethernet y almacena los datos de Trama Guiada en la memoria de U_DS. Los bytes son recogidos por el Enet MAC de uno en uno en un bloque de 16 bytes denominado Fish. Estos bytes son almacenados en formato "big endian", estando almacenado el primer byte de la Trama Guiada en el lugar del bit más significativo del Fish (byte 0). Los bytes siguientes son almacenados en lugares de bytes sucesivos dentro del Fish (byte 1, byte 2,…, Byte 15). Estos 16 bytes son almacenados después en una Memoria Intermedia del U_DS, comenzado en el lugar del Fish 0. Los Fish sucesivos son almacenados en lugares sucesivos de Fish dentro de la Memoria Intermedia (Fish 1, Fish 2, Fish 3, etc.). Se obtienen memorias internas adicionales a partir de un lugar común libre, a medida que se requieren para almacenar el resto de la Trama Guiada.
El flujo de tráfico guiado dentro del dispositivo 10 de interfaz está ilustrado en la figura 4. La función Enet MAC del dispositivo de interfaz examina la información de cabecera de tramas y determina que la trama es una Trama Guiada. El Enet MAC elimina la cabecera de trama de la Trama Guiada y deja en memoria intermedia el resto de su contenido en la memoria interna U_DS del dispositivo de interfaz. El Enet MAC indica que la trama ha de ser puesta en cola en la Cola de Control General (GC) para su tratamiento por el GCH. Cuando se ha alcanzado el final de la Trama Guiada, la lógica de Puesta en Cola, Sacar de la Cola y Programar (EDS) pone en cola la trama en la Cola GC.
El picocódigo del GCH de la lámina que está unida localmente al CP examina la Información de Control de Tramas (véase la figura 6), para determinar si la Trama Guiada está destinada a otras láminas del sistema, y si la Trama Guiada ha de ejecutarse en el lado inferior del dispositivo de interfaz. Si la trama está destinada a otras láminas distintas o además de a la lámina unida localmente, el picocódigo del GCH actualiza el valor TB en el Bloque de Control de Tramas (FCB) con el valor TB de la Información de Control de Tramas de la Trama Guiada, e instruye al EDS para que ponga en cola la trama en la Cola de Inicio de Trama de la Lámina Objetivo (TB_SOF) de multidifusión. Por razones de rendimiento, todo el Tráfico Guiado es puesto en cola en la cola de TB-SOF de multidifusión, independientemente del número de hojas de destino indicadas.
Si la trama está destinada solamente a la lámina unida localmente, el picocódigo del GCH examina el campo de arriba/debajo de la información de Control de Tramas para determinar si ha de ejecutarse la Trama Guiada en el lado superior o inferior del dispositivo de interfaz (véase la figura 6). Si la Trama Guiada ha de ejecutarse en el lado inferior del dispositivo de interfaz, el picocódigo del GCH actualiza el valor de TB en el FCB con el valor de TB de la Información de Control de Tramas de la Trama Guiada e instruye al EDS para que ponga en cola la trama en la Cola de Inicio de Trama de la Lámina Objetivo (TB-SOF) de multidifusión. Si la información de Control de Tramas indica que ha de ejecutarse la Trama Guiada en el lado superior, el picocódigo del GCH analiza la Trama Guiada y efectúa las operaciones indicadas por las Órdenes Guiadas que contiene.
Antes de procesar las Órdenes Guiadas, el picocódigo comprueba el valor del campo ack/\upbar{noack} de la información de Control de Tramas. Si este valor es “0”b, se descarta la Trama Guiada que sigue al proceso. Las órdenes leídas Guiadas no serán de esta categoría.
Si el valor del campo ack/\upbar{noack} es “1”b, y el valor del campo anterior/posterior es “1”b, entonces, antes de procesar cualquiera de las Órdenes Guiadas de la Trama Guiada, el picocódigo construye una Trama Guiada de Acuse Anterior con el valor del campo TB del Control de Tramas, igual al contenido de la Trama Guiada de Acuse Anterior con el valor del campo TB del Control de Tramas igual al contenido del Registrador My_TB. El picocódigo encamina la Trama Guiada de Acuse Anterior de vuelta al CP, mediante la actualización del valor de TB del FCB de la Trama con el valor contenido en el campo TB del Registrador de Direcciones del Punto de Control de LAN (LAN_CP_Addr) e instruyendo al EDS para que ponga en cola la trama en la Cola TB_SOF de multidifusión. El picocódigo procesa entonces las Órdenes Guiadas de la Trama Guiada y descarta la Trama Guiada. Las órdenes leídas guiadas no serán de esta categoría.
Por otra parte, si el valor del campo ack/\upbar{noack} es “1”b y el valor del campo anterior/posterior es “0”b, el picocódigo cambia el campo resp/\upbar{req} de la Información de Control de Tramas a “1”b para indicar una respuesta de Trama Guiada, sustituye el campo TB con el contenido del Registrador My_TB y procesa cada Orden Guiada dentro de la Trama Guiada. Durante el curso del proceso de una Orden Guiada, el picocódigo actualiza el campo de Código de Terminación de la siguiente Orden Guiada con el valor del código de estado de terminación de la Orden Guiada en curso. El picocódigo encamina la respuesta de vuelta a la fuente, mediante la actualización del valor TB del (FCB) con el valor correspondiente a la Lámina Fuente (Valor del registrador LAN_CP_Addr para CP) e instruyendo al EDS para que ponga en cola la trama en la Cola TB_SOF de multidifusión.
Las tramas que residen en la Cola TB_SOF son programadas para el reenvío por el EDS. El Desplazador de Datos del Conmutador (SDM) construye la Cabecera de Célula de la matriz de conmutación y la Cabecera de Tramas del dispositivo de Interfaz, a partir de la información contenida en el FCB. Estas células pasan a través del dispositivo de la matriz de conmutación y llegan a la lámina objetivo, donde son reconstruidas las células como una trama en la memoria D-DS. El SDM del lado inferior reconoce que la trama es una Trama Guiada e indica una señal al EDS para ponerla en cola en la Cola GC.
La presión desde la Cola GC o de la Cola GT estimula al picocódigo para acceder y analizar las Tramas Guiadas. Todas las Tramas Guiadas que llegan al lado inferior son puestas en cola inicialmente en la Cola GC. El valor gth/\upbar{gch} de la información de Control de Trama para estas tramas es examinado por el picocódigo del GCH. Si el valor de gth/\upbar{gch} es “0”b, la Trama Guiada es puesta en cola en la Cola GT. En otro caso, el picocódigo del GCH examina el campo resp/\upbar{req} de la información de Control de Tramas para determinar si la Trama Guiada ha sido ya ejecutada. Si el valor de resp/\upbar{req} es “1”b, la Trama Guiada ya ha sido ejecutada y es encaminada al CP. Los valores del puerto objetivo correspondientes a las conexiones CP son mantenidos por el picocódigo de EPC. Las tramas de estas colas del Puerto Objetivo son transmitidas desde el dispositivo de interfaz volviendo al CP.
Si el campo resp/\upbar{req} tiene un valor de “0”b, la lámina puede ser local o remota con respecto al CP. Esto se resuelve comparando el valor del campo TB del registrador LAN_CP_Addr con el contenido del Registrador Mi Lámina Objetivo (My_TB). Si coinciden, la lámina es local para el CP; en otro caso, la lámina es remota para el CP. En cualquier caso, el picocódigo examina el valor de arriba/abajo de la Información de Control de Tramas. Si up/\upbar{down} s igual a “1”b, la trama se pone en la cola de TB de Envoltura para su reenvío al U_DS y tratamiento por el GCH en el lado superior. En otro caso, el picocódigo (GCH o GTH) efectúa las operaciones indicadas por las Órdenes Guiadas contenidas en la Trama Guiada. Antes del proceso de Órdenes Guiadas, el picocódigo comprueba el valor del campo de ack/\upbar{noack} de la Información de Control de Tramas. Si este valor es “0”b, la Trama Guiada se descarta después del proceso. Las órdenes leídas guiadas no serán de esta categoría.
Si el valor del campo de ack/\upbar{noack} es “1”b y el valor del campo early/\upbar{late} es “1”b, entonces, antes de procesar cualquiera de las Órdenes Guiadas de la Trama Guiada, el picocódigo construye una Trama Guiada de Acuse de Recibo Anterior con el valor del campo TB de la Información de Control de Trama igual al contenido del Registrador My_TB. Si la lámina es remota al CP, el picocódigo encamina la Trama Guiada de Acuse de Recibo Anterior al Puerto de Envoltura. En otro caso, la lámina es local al CP y la trama es encaminada a la Cola del Puerto correspondiente al CP. El picocódigo procesa las Órdenes Guiadas mientras que el Puerto de Envoltura desplaza la Trama Guiada de Acuse de Recibo Anterior desde el D_DS al U_DS y pone en cola la trama en la Cola de GC del lado superior, o bien la trama es transmitida desde la Cola del puerto volviendo al CP. Para tramas empaquetadas de nuevo en el U_DS, el picocódigo ve nuevamente esta trama, pero el campo resp/\upbar{req} tendrá un valor de “1”b. El picocódigo de GCH encamina la trama de nuevo hacia el CP actualizando el campo TB del FCB con el valor contenido en el campo TB del Registrador LAN_CP_Addr e instruyendo al EDS para que ponga en cola la trama en la Cola TB_SOF de multidifusión. Las tramas que residen en la Cola TB_SOF son programadas para el reenvío por el EDS. El SDM construye la Cabecera de la Célula Prizma y la cabecera de la Trama del dispositivo de interfaz a partir de la información contenida en el FCB. Las células de esta trama pasan a través de Prizma y son reconstruidas como una trama en la lámina local del CP. El SDM del lado inferior reconoce que la trama es una Trama Guiada e indica una señal al EDS para que la ponga en cola en la Cola GC. En este momento en que el picocódigo del GCH analiza la trama, el campo resp/\upbar{rep} tiene un valor de “1”b. Esto implica que esta lámina está unida localmente al CP y la trama Guiada es encaminada a la Cola del puerto correspondiente al CP. Las tramas de esta cola son transmitidas desde el dispositivo de interfaz volviendo al CP.
Por otra parte, si el valor del campo ack/\upbar{noack} es “1”b y el valor del campo early/\upbar{late} es “0”b, el picocódigo cambia el campo resp/\upbar{req} a “1”b para indicar una respuesta de Trama Guiada, sustituye el campo TB por el contenido del Registrador My_TB y procesa después cada una de las Órdenes Guiadas dentro de la Trama Guiada. En el transcurso del proceso de una Orden Guiada, el picocódigo actualiza el campo de Código de Terminación de la siguiente Orden Guiada con el valor del código del estado de terminación para la Orden Guiada en curso. Si la lámina es remota al CP, el picocódigo encamina la Trama Guiada al Puerto de Envoltura. En otro caso, la lámina es local al CP y la trama es encaminada a la Cola del Puerto correspondiente al CP. El Puerto de envoltura desplaza la Trama Guiada desde el D_DS al U_DS y pone la trama en la Cola GC del lado superior, o bien la trama es transmitida desde la Cola del Puerto volviendo al CP. Para tramas empaquetadas de nuevo hacia el U_DS, el picocódigo de GCH ve nuevamente esta trama, pero el campo resp/\upbar{req} tendrá un valor de “1”b. El picocódigo del GCH encamina la trama de nuevo al CP, actualizando el campo TB del FCB con el valor contenido en el campo TB del Registrador LAN_CP_Addr e instruyendo al EDS para que ponga en cola la trama en la Cola TB_SOF de multidifusión. Las tramas que residen en la Cola TB_SOF son programadas para su reenvío por el EDS. El SDM construye la Cabecera de Célula Prizma y la cabecera de Trama del dispositivo de Interfaz a partir de la información contenida en el FCB. Las células de esta trama pasan a través de Prizma y son reconstruidas como una trama en el lado inferior de la lámina local del CP. El SDM del lado inferior reconoce que la trama es una Trama Guiada e indica una señal al EDS para que la ponga en cola en la Cola GC. En este momento en que el picocódigo del GCH analiza la trama del D_DS, el campo resp/\upbar{req} tiene un valor de “1”b. Esto implica que esta lámina esta unida localmente al CP y la Trama Guiada es encaminada a la Cola del Puerto correspondiente al CP. Las tramas de esta cola son transmitidas desde el dispositivo de interfaz de vuelta al CP.
Si, por cualquier razón, el picocódigo del GCH encuentra una Trama Guiada con el campo TB de la información de Control de Trama que es igual a "0000"h, entonces el picocódigo del GCH interpreta que la trama está destinada solamente a esta lámina y actúa consecuentemente. Esta acción es requerida durante la inicialización cuando el valor del Registrador My_TB es "0000"h para todas las láminas. El CP inicializará el Registrador My_TB de la lámina unida localmente, enviando la Orden Guiada de Grabación en una Trama Guiada cuya información de Control de Trama tiene un valor de TB de "0000"h.
Cualquiera de los picoprocesadores dentro del EPC puede generar una Trama Guiada. Esta trama puede ser la Trama Guiada No Solicitada o cualquier otra forma de Trama Guiada. Las tramas de este tipo generadas internamente son construidas de una manera que no permite el acuse de recibo (es decir, ack/\upbar{noack} = “0”b). Estas tramas pueden ser enviadas a uno de los dos picoprocesadores (GCH o GTH) dentro del mismo EPC o el GCH o GTC de alguna otra lámina.
Las Tramas Guiadas No Solicitadas pueden ser enviadas también al CP. Las tramas Guiadas destinadas al mismo EPC son construidas utilizando memorias intermedias de datos en el D_DS. Estas tramas son puestas en cola después en la Cola GC o GT para su proceso. Estas tramas son procesadas después y descartadas de la manera usual. Las Tramas Guiadas No Solicitadas destinadas al CP unido localmente son construidas utilizando memorias intermedias de datos en el D_DS. Estas tramas son construidas de una manera que indica que han sido ejecutadas por el EPC (es decir, resp/\upbar{req} = “1”b y TB = My_TB). Estas tramas son puestas en cola en la Cola del Puerto correspondiente al CP. Las tramas de esta cola son vueltas a transmitir al CP.
Las Tramas Guiadas destinadas a otra lámina pueden ser construidas utilizando memorias intermedias de datos en el D_DS o en U_DS. Las Tramas Guiadas No Solicitadas destinadas al CP son construidas de una manera que indica que han sido ejecutadas por el EPC (es decir, resp/\upbar{req} = “1”b y TB = My_TB). Las tramas construidas utilizando memorias intermedias del D_DS son puestas en cola en el Puerto de Envoltura. Estas tramas son desplazadas al U_DS y puestas en cola en la Cola del GC del lado superior. Las Tramas Guiadas No Solicitadas con un valor de resp/req de “1”b, serán encaminadas al CP utilizando el valor TB del Registrador LAN_CP_Adddr. En otro caso, el picocódigo del GCH encamina estas tramas utilizando el valor TB de la Información de Control de Tramas de la Trama Guiada. En la lámina receptora, la trama es puesta en cola en la Cola del GC del lado inferior. El GCH de esta lámina ejecuta y descarta la trama (resp/\upbar{req} = “0”b y gth/\upbar{gch} = “1”), o pone en cola la trama en la Cola del GT (resp/\upbar{req} = “0”b y gth/\upbar{gch} = “0”), o pone en cola la trama en la Cola del Puerto correspondiente al CP (resp/\upbar{req} = “1”b). Las tramas construidas utilizando memorias intermedias de datos en el U_DS son puestas en cola directamente en la Cola del GC del lado superior. Desde este punto en adelante, estas tramas siguen la misma ruta y son manejadas de la misma manera que las construidas utilizando memorias intermedias de datos de D_DS. La figura 5 muestra el formato generalizado para tramas guiadas.
El formato ilustrado es una representación lógica con el byte más significativo a la izquierda y el byte menos significativo en la derecha. Las palabras de cuatro bytes comienzan con la palabra 0 en la parte superior y se incrementan hacia el fondo de la página.
Como las Tramas Guiadas deben ser encaminadas y procesadas antes de haber configurado el dispositivo de interfaz por medio del CP, estas tramas deben ser auto-encaminables. Los resultados obtenidos normalmente mediante consulta y clasificación están contenidos en este campo de información de Control de Tramas de la Trama Guiada, permitiendo al chip actualizar el FCB con esta información sin efectuar una operación de consulta. La información de la lámina objetivo contenida en el Trama Guiada es utilizada por el Gestor de Tramas Guiadas para preparar el campo de Página de Hojas del FCB. El CP proporciona la información de Lámina Objetivo mientras que el picocódigo del GCH rellena los otros campos del FCB. Esta información de FCB es utilizada por el SDM para preparar las cabeceras de Célula y de Trama. El formato del campo de información de Control de Tramas de la Trama Guiada está ilustrado en la
figura 6.
A continuación se expone una explicación de la abreviatura de cada posición de bit de la figura 6:
resp/\upbar{req} Valor indicador de Respuesta y Sin Petición. Este campo se utiliza para diferenciar entre petición (sin procesar) y Tramas Guiadas de respuesta.
0 petición
1 respuesta
ack/\upbar{noack} Valor de control de Acuse de recibo o Sin Acuse de Recibo. Este campo se utiliza para controlar si el picocódigo del GCH acusa (ack) o no (noack) la Trama Guiada. Las Tramas Guiadas que no han de ser acusadas no contendrán ninguna forma de Orden Guiada que realice una lectura.
0 Sin acuse
1 Acuse
early/\upbar{late} Valor de control de Acuse de Recibo Anterior y Posterior. Este campo se utiliza para controlar si el acuse requerido (ack/\upbar{noack} = “1”b) tiene lugar antes (anterior) o después (posterior) de que la Trama Guiada haya sido procesada.
Este campo es ignorado cuando ack/\upbar{noack} = “0”b.
0 Acuse después del proceso de la Trama Guiada
1 Acuse antes del proceso de la Trama Guiada
neg/\upbar{all} Valor del control de Acuse negativo o de Acuse de Todo. Este campo es ignorado cuando el campo ack/\upbar{noack} tiene un valor de “0”b, a menos que no se complete totalmente con éxito una orden guiada.
0 Acuse de todas las Tramas Guiadas si ack/noack = “1”b. El acuse Anterior o Posterior está determinado por el valor de anterior/posterior.
1 Acuse solamente de Tramas Guiadas que no se completan con éxito. Este acuse tendrá lugar independientemente de los valores de ack/\upbar{noack} y early/\upbar{late} y será naturalmente un acuse posterior.
up/\upbar{down} Valor de control de Arriba o Abajo. Este valor se utiliza para controlar si la trama se procesa en el lado superior o en el lado inferior. Este campo es ignorado cuando resp/\upbar{req} es “1”b. Todas las Tramas Guiadas de multidifusión tendrán un valor de up/\upbar{down} de “0”b. Además, las Órdenes Guiadas que requieren el uso de instrucciones de asistencia al hardware del GTH tendrán un valor de up/\upbar{down} de “0”b.
0 Proceso en lado inferior
1 Proceso en lado superior
gth/\upbar{gch} Valor de control del Gestor General del Árbol o Gesto de Células Guiadas. Este valor se utiliza para dirigir Tramas Guiadas al propio picoprocesador.
0 picoprocesador del GCH
1 picoprocesador del GTH
TB valor de la lámina objetivo. Cuando resp/\upbar{req} es “0”b, este campo contiene información de encaminamiento utilizada por Prizma. Cada posición de bit corresponde a una Lámina Objetivo. Si este valor es "0000"h, se supone que la Trama Guiada es para esta lámina y es ejecutada consecuentemente. Un valor de “1”b en una o más posiciones de bit del campo TB indica que la célula es encaminada a la correspondiente Lámina (o Láminas) Objetivo. Cuando resp/\upbar{req} es “1”b, el campo contiene el valor de My_TB de la lámina que responde.
La Palabra 1 de la Trama Guiada contiene un valor de correlación (figura 7). Este valor es asignado por el software del CP para efectuar la correlación entre las respuestas de Trama Guiada y sus peticiones. El Dispositivo de Correlación incluye una pluralidad de bits con funciones asignadas.
Cada Orden Guiada comienza con un campo de información de Control de Órdenes. Este Control de Órdenes contiene información que ayuda al picocódigo del GCH a procesar una Trama Guiada. El formato de esta información está ilustrado en la figura 8.
Valor de longitud: Este valor indica el número total de palabras de 32 bits contenidas en las partes de Información de Control (Palabra 0 de la orden), la Información de Dirección (Palabra 1 de la orden), y el Operando (Palabras 2+ de la orden) de la Trama Guiada.
Valor de Código de Terminación: Este campo es inicializado por el CP y es modificado por el picocódigo del GCH cuando se procesan las Órdenes Guiadas. El picocódigo del GCH utiliza este campo para el estado de terminación de la Orden Guiada precedente en la lista de órdenes. Como todas las listas de Órdenes Guiadas terminan con la Orden Guiada del Delimitador del Final, el estado de terminación de la última orden está contenido en el campo del Código de Terminación del Delimitador del Final.
Valor del tipo de Orden Guiada (Nombre Simbólico)
Nombre Simbólico Valor del Tipo Descripción del tipo
End_delimiter 0000 marca el final de una secuencia de Tramas Guiadas
Build_TSE_Free_list 0001 construir lista libre
Sostware_action 0010 ejecutar acción de software
No solicitado 0011 tramas iniciadas por el picocódigo de EPC
Block_write 0100 graba un bloque de datos en direcciones consecutivas
Duplicate_Write 0101 graba datos duplicados en registradores o memoria
Read register 0110 petición orespuesta de lectura o datos de memoria
0111 reservado
Insert_leaf 1000 insertar una hoja en el árbol de búsqueda
Update_leaf 1001 actualizar una hoja del árbol de búsqueda
Read_leaf 1010 petición y respuesta de lectura de datos de Página
1011 reservado
Delete_leaf 1100 eliminar una hoja del árbol de búsqueda
1101-1111 reservado
La información de direccionamiento contenida en la Trama Guiada identifica un elemento dentro del esquema de direccionamiento del Procesador de Red. La forma general del campo de Información de Direcciones está ilustrada en la figura 9.
El dispositivo de interfaz emplea un esquema de direccionamiento de 32 bits. Este esquema de direccionamiento asigna un valor de dirección a cada estructura accesible del dispositivo de interfaz. Estas estructuras son internas al Procesador o bien están conectadas a interfaces bajo el control del Procesador. Algunas de estas estructuras son accedidas por el Complejo de Procesadores Incorporados (EPC) a través de un interfaz interno denominado Interfaz del Entramado de Redes (Web). El resto de las estructuras son accedidas a través de interfaces de controlador de memoria. En todos los casos, la forma general de la dirección está ilustrada en la figura 10.
El Controlador de Red está subdividido en islas de chips principales. A cada isla se le da un valor de Identificador de Isla exclusivo. Este valor de Identificador de Isla de 5 bits forma los 5 bits más significativos de la dirección para estructuras controladas por esa isla de chips. La correspondencia entre el valor del Identificador de Isla codificado y el nombre de la isla de chips está ilustrada en la figura 11. La segunda parte de la dirección de la Web consiste en los 23 bits siguientes más significativos. Este campo de direcciones es segmentado en una parte de dirección de la estructura y una parte de dirección del elemento. El número de bits utilizado para cada segmento puede variar de isla a isla. Algunas islas pueden contener solamente unas pocas estructuras grandes, mientras que otras pueden contener muchas estructuras pequeñas. Por esa razón, no hay un tamaño fijo para estos segmentos de direcciones. La parte de dirección de la estructura se utiliza para dirigir una agrupación dentro de la isla, mientras que la parte de dirección del elemento se utiliza para dirigir un elemento dentro de la agrupación. La parte restante de la dirección es para acomodar la limitación del bus de datos de 32 bits del Interfaz de la Web. Esta dirección de palabra de 4 bits se utiliza para seleccionar segmentos de 32 bits del elemento direccionado. Esto es necesario para desplazar elementos de estructura mayores de 32 bits a través del Bus de Datos de la Web del Controlador de Red. El valor “0”h de la dirección de una palabra se refiere a los 32 bits más significativos del elemento de la estructura, mientras que los valores secuenciales de las direcciones de una palabra corresponden sucesivamente a segmentos menos significativos del elemento de la estructura. La parte de dirección de una palabra de la dirección no es requerida para estructuras no accedidas a través del Interfaz de la Web. Por esta razón, el Almacenamiento Superior de Datos, las Memorias de Control y el Almacenamiento Inferior de Datos hacen uso de la totalidad de 27 los bits menos significativos de la dirección para acceder a los elementos de la estructura. Otra excepción a este formato es la dirección del Interfaz SPM. En ese caso, se utiliza la totalidad de los 27 bits de la dirección y ningún elemento es mayor que 32 bits
en anchura.
El Complejo de Proceso Incorporado (EPC) proporciona y controla la capacidad de programación del Chip del Dispositivo de Interfaz. Incluye los componentes siguientes (véase también la figura 12A):
N unidades de proceso, denominadas GxH: Los GxH ejecutan concurrentemente el picocódigo que está almacenado en una Memoria de Instrucciones común. Cada GxH consiste en un núcleo de la Unidad de Proceso, denominado CLP, que contiene una línea de distribución de 3 etapas, 16 GPR y una ALU. Cada GxH contiene también varios coprocesadores, como por ejemplo el Motor de Búsqueda de Árbol.
Memoria de Instrucciones: Se carga durante la inicialización y contiene el picocódigo para reenviar tramas y gestionar el sistema.
Un distribuidor: Quita de la cola las direcciones de trama que están en la cola del distribuidor de la parte superior y de la inferior. Una vez quitadas de la cola, el distribuidor pre-recupera parte de la cabecera de la trama del Almacenamiento de Datos (DS) de la parte superior o inferior y la almacena en una memoria interna. Tan pronto como el GxH queda libre, el Distribuidor pasa la cabecera de la trama con la información de control apropiada, como la Dirección de Instrucción de Código (CIA) al GxH. El distribuidor gestiona también los temporizadores y las interrupciones.
Un Arbitrador de Memoria de Búsqueda de Árbol (TSM): Hay diversos lugares de memoria compartida interna y externa disponibles para cada GxH. Como esta memoria es compartida, se utiliza un arbitrador para controlar el acceso a la memoria. El TSM puede ser accedido directamente por el picocódigo, que puede ser utilizado por ejemplo para almacenar tablas antiguas en el TSM. Además, el TSM será accedido por el TSE durante búsquedas de
árbol.
La Unidad de Terminación (CU): La Unidad de Terminación realiza dos funciones. En primer lugar, hace de interfaz entre las N Unidades de Proceso y el UP y el Dn EDS (Poner en cola, Quitar de la cola y Programar Isla). El EDS realiza la acción de poner en cola: una dirección de trama, junto con los parámetros apropiados denominados FCBPage, es puesta en cola en una cola de transmisión, una cola de descartes, o una cola de distribuidor. En segundo lugar, la Unidad de Terminación garantiza la secuencia de tramas. Como puede suceder que haya múltiples GxH procesando tramas que pertenecen al mismo flujo, deben tomarse precauciones para que estas tramas sean puestas en cola en las colas de transmisión de la parte superior o inferior en el orden correcto. La Unidad de terminación utiliza una etiqueta que es generada por el Asistente Clasificador por Hardware al distribuir una trama.
Asistente Clasificador por Hardware: Para tramas de la parte superior, el Asistente Clasificador por Hardware proporciona una clasificación para casos muy conocidos de formatos de trama. Los resultados de la clasificación son traspasados al GxH, durante la distribución de tramas, en términos del CIA y del contenido de uno o más registradores. Para tramas del lado inferior, el Asistente Clasificador por Hardware determina el CIA, dependiendo de la cabecera de la trama. Para ambas distribuciones del lado superior y del lado inferior, el Asistente Clasificador por Hardware genera una etiqueta que es utilizada por la Unidad de Terminación para mantener la secuencia de tramas.
Interfaz y Arbitrador del Almacenamiento de Datos de la parte superior e inferior: Cada GxH tiene acceso al Almacenamiento de Datos de la parte superior e inferior: se proporciona el acceso a lectura cuando se lee "más Fish" y se proporciona acceso a la grabación cuando se graba de nuevo el contenido del FishPool (Lugar común de los Fish) en el Almacenamiento de Datos. Como hay N Unidades de Proceso, y solamente una de ellas a la vez puede acceder al Almacenamiento de Datos Superior y solamente una a la vez puede acceder al Almacenamiento de Datos Inferior, se requiere un arbitrador para cada Almacenamiento de Datos.
Arbitrador de WEB e interfaz de WEBwatch: El Arbitrador de WEB arbitra entre los GxH para acceder a la WEB. Todos los GxH tienen acceso a la WEB, lo cual permite acceso a todas las funciones de memoria y registradores en un dispositivo de interfaz. Esto permite a cualquier GxH modificar o leer todas las zonas de configuración. La WEB puede concebirse como el mapa de memoria del dispositivo de interfaz. El interfaz WEBwatch proporciona acceso a toda la WEB desde el exterior del chip utilizando 3 patillas de E/S del chip.
Depuración, Interrupciones y Control de un solo paso: La WEB permite al GCH o al WEBwatch controlar cada uno de los GxH del chip cuando sea necesario. Por ejemplo, la Web puede ser utilizada por el GCH o el WEBwatch para instrucciones de un solo paso en el GxH.
Un procesador de propósito general incorporado, como un PowerPC (PC de potencia).
Hay cuatro tipos de GxH (figura 12B).
GDH (Gestor General de Datos). Hay ocho GDH. Cada GDH tiene un CLP completo con cinco coprocesadores (que se describen en la sección siguiente). Los GDH se utilizan principalmente para reenviar tramas.
GCH (Gestor de Células Guiadas). El GCH tiene exactamente el mismo hardware que el GDH. Sin embargo, una trama guiada solamente puede ser procesada por el GCH. Es programable en la WEB (Registrador CLP_Ena) si el GCH tiene permitido procesar también tramas de datos (en cuyo caso asume el papel de un GDH). El GCH tiene hardware adicional en comparación con el GDH: asistente de hardware para efectuar inserciones y eliminaciones del árbol. El GCH se utiliza para ejecutar picocódigo relacionado con células guiadas, efectuar picocódigo relacionado con la gestión de chips y árboles, como el envejecimiento, y para intercambiar información de control con el CP y/u otro GCH. Cuando no hay tal tarea que efectuar, el GCH ejecutará el picocódigo relacionado con el reenvío de tramas, y en este caso se comporta exactamente como un GDH.
GTH (Gestor General de Árbol). El GTH tiene asistente de hardware adicional para ayudar a realizar inserciones en el árbol, eliminaciones del árbol y gestión de cuerdas. El GTH procesará tramas de datos cuando no hay tramas (que contengan órdenes de gestión del árbol) en el GPQ.
GPH (Gestor General de PowerPC). El GPH tiene hardware adicional en comparación con el GDH y el GTH. El GPH hace de interfaz con el Procesador de Propósito General a través de un interfaz (i/f) con un Buzón de Correo.
El número de GxH (diez) es una "mejor estimación". La evaluación del rendimiento determinará cuántos GxH son realmente requeridos. La arquitectura y estructura es completamente escalable hacia más GxH y la única limitación es la cantidad de zona de silicio (que debería incluir entonces un arbitrador y memoria de instrucciones mayo-
res).
Cada GxH está estructurado como se ilustra en la figura 12C. Además del CLP con Registradores de Propósito General (GPR) y Unidad Aritmética Lógica (ALU), cada GxH contiene los siguientes cinco coprocesadores:
(DS) Interfaz de Coprocesador. Hace de interfaz con el Distribuidor y con las sub-islas que proporcionan acceso de lectura y grabación a los Almacenamientos de Datos superior e inferior. El Interfaz de DS contiene el denominado FishPool (lugar común de los Fish).
Coprocesador del Motor de Búsqueda de Árbol (TSE). El TSE realiza búsquedas en los árboles, y también hace de interfaz con la Memoria de Búsqueda de Árboles (TSM).
Coprocesador de Puesta en cola. Hace de interfaz con el interfaz de la Unidad de Terminación y contiene la FCBPage Página de FCB). Este coprocesador contiene un registrador de 256 bits con asistente de hardware adicional que el picocódigo debe utilizar para construir la FCBPage, que contiene los parámetros de puesta en cola. Una vez que la FCBPage está construida, el picoprocesador puede ejecutar una instrucción de puesta en cola, lo que hace que este coprocesador reenvíe la PCBPage a la Unidad de Terminación.
Coprocesador de Interfaz con WEB. Este coprocesador proporciona un interfaz con el arbitrador de la WEB y permite la lectura y la grabación hacia/desde la WEB del dispositivo de Interfaz.
Coprocesador de suma de comprobación. Genera sumas de comprobación en tramas almacenadas en el Fishpool (descrito más adelante).
Las Unidades de Proceso son compartidas entre el proceso de entrada y el proceso de salida. Puede programarse la cantidad de anchura de banda reservada para el proceso de entrada en comparación con el proceso de salida. En la implementación actual, hay dos modos: 50/50 (es decir, la entrada y la salida obtienen la misma anchura de banda) o 66/34 (es decir, la entrada obtiene el doble de anchura de banda que la salida).
El funcionamiento de las Unidades de Proceso es provocado por eventos. Es decir, la llegada de una trama se trata como un evento, así como la aparición repentina de un temporizador o una interrupción. El distribuidor trata eventos diferentes de una manera idéntica, aunque hay una prioridad (primero la interrupción, después los eventos de temporización y finalmente eventos de llegada de tramas). Cuando se entrega un evento a una Unidad de Proceso, se le da la información apropiada a la Unidad de Proceso. Para eventos de llegada de tramas, esto incluye parte de la cabecera de la trama, e información procedente del clasificador de hardware. Para temporizadores e interrupciones, esto incluye el punto de entrada de código y otra información relativa al evento.
Cuando llega una trama al lado de entrada, y el número de bytes recibidos de esta trama ha excedido un umbral programable, se escribe la dirección del bloque de control de tramas en un GQ.
Cuando se ha reconstruido una trama completa en el lado de salida, se escribe la dirección de la trama en un GQ. Hay cuatro tipos de GQ (y por cada tipo, figura 12B, hay una versión de entrada y una versión de salida):
GCQ: contiene tramas que deben ser procesadas por el GCH.
GTQ: contiene tramas que deben ser procesadas por el GTH.
GPQ: contiene tramas que deben ser procesadas por el GPH.
GDQ: contiene tramas que deben ser procesadas por cualquier GDH (o GCH/GTH cuando están habilitados para procesar tramas de datos). Para el GDQ, hay múltiples prioridades, por lo que las tramas puestas en cola en un GDQ de mayor prioridad serán procesadas antes que las tramas puestas en cola en una cola de menor prioridad.
Algunas Unidades de Proceso pueden ser especializadas. En la implementación actual, hay cuatro tipos de Unidades de Proceso (GxH) (véase también la figura 12B).
GDH (Gestor General de Datos). Los GDH se utilizan principalmente para reenviar tramas.
GCH (Gestor de Células Guiadas). El GCH tiene exactamente el mismo hardware que el GDH. Sin embargo, una trama guiada solamente puede ser procesada por el GCH. Es programable en la WEB (registrador CLP_Ena) si el GCH está habilitado para procesar también tramas de datos (en cuyo caso asume el papel de GDH).
GTH (Gestor General de Árbol). El GTH tiene hardware adicional en comparación con el GDH/GCH: el asistente de hardware para realizar inserciones en árboles, eliminaciones en árboles y gestión de cuerdas. El GTH procesará tramas de datos cuando no hay tramas (que contengan órdenes de gestión de árboles) en el GPQ.
GPH (Gestor General de PowerPC). El GPH tiene hardware adicional en comparación con el GDH/GTH. El GPH tiene un interfaz con el PowerPC incorporado por medio de un interfaz de buzón de correo.
En una implementación actual, el papel del GCH, GTH y GPH puede ser implementado en una sola Unidad de Proceso. Por ejemplo, una implementación podría tener una Unidad de Proceso para el GCH y el GPH. Un comentario similar es aplicable al GCQ, GTQ y GPQ.
El propósito del Coprocesador del Almacenamiento de Datos es:
Hacer de interfaz con el Almacenamiento de Datos Superior, que contiene tramas que han sido recibidas desde el medio, y con el Almacenamiento de Datos Inferior, que contiene tramas reconstruidas recibidas desde el sistema de conmutación Prizma Atlantic.
El Coprocesador del Almacenamiento de Datos recibe también información de configuración durante la distribución de un evento de temporización o de interrupción.
El Coprocesador del Almacenamiento de Datos es capaz de calcular sumas de comprobación en las tramas.
El Coprocesador del Almacenamiento de Datos contiene un FishPool o lugar común para los Fish, (que puede contener hasta 8 fish), una memoria de notas (que pueden contener hasta 8 fish) y algunos registradores de control para leer/grabar el contenido del FishPool desde/hacia el almacenamiento de datos superior o inferior. El FishPool puede ser visto como cierta clase de zona de trabajo para el Almacenamiento de Datos: en lugar de leer/grabar directamente en un Almacenamiento de Datos, se lee una cantidad mayor de datos de trama desde el Almacenamiento de Datos del FishPool o se graba una mayor cantidad de datos desde el FishPool en el Almacenamiento de Datos. La unidad de transferencia es un Fish, que es igual a 16 bytes.
El FishPool puede ser visto como una memoria que puede contener hasta 8 fish, es decir, 8 palabras de 128 bits cada una. En la arquitectura del procesador del CLP, el FishPool es una agrupación de registradores de 128 bytes. Cada byte del FishPool tiene una dirección de bytes de 7 bits (0...127) y el acceso se hace sobre la base de 16 bits o 32 bits. Al igual que todas las agrupaciones de registradores, el Fishpool tiene un esquema de direccionamiento circular. Es decir, al dirigirse a una palabra (es decir, cuatro bytes) comenzando en el lugar 126 del Fishpool, se obtienen los bytes 126, 127, 0 y 1. Además, desde el punto de vista del Coprocesador del Almacenamiento de Datos, los lugares fish del Fishpool tienen una dirección de fish de 3 bits.
Al distribuir tramas, los primeros N fish de una trama se copian automáticamente en el Fishpool por medio del distribuidor. El valor de N es programable en la Memoria de Configuración de Puertos. Típicamente, N es igual a cuatro para la distribución de tramas superiores, 2 para la distribución de tramas inferiores en difusión única, 4 para distribución de tramas inferiores en multidifusión y 0 para interrupciones y temporizadores.
El picocódigo puede leer más bytes de una trama, en cuyo caso el Coprocesador del Almacenamiento de Datos lee automáticamente los datos de la trama en el fishpool en la siguiente dirección de fish, empaquetándose automáticamente como 0 cuando se ha alcanzado el límite del Fishpool. Además, el picocódigo puede leer o grabar el almacenamiento de datos superior/inferior en una dirección absoluta.
El Coprocesador de WEB tiene un interfaz con el Arbitrador EPC WEB. El arbitrador EPC WEB arbitra entre los diez GxH y el Guardián de WEB para convertirse en maestro en el interfaz de WEB del dispositivo de interfaz. Esto permite a todos lo GxH leer y grabar en la WEB.
El complejo de memorias del dispositivo de interfaz proporciona medios de almacenamiento para el Complejo de Proceso Incorporado (EPC), figura 12A. El complejo de memoria incluye el Arbitrador de Memoria de Búsqueda del Árbol y una pluralidad de memorias en el chip y fuera del chip. Las memorias almacenan estructuras de árbol, contadores y cualquier otra cosa para la que el picocódigo requiera acceso a memoria. Además, las memorias son utilizadas para almacenar estructuras de datos que son utilizadas por el hardware, como listas libres, bloques de control de colas, etc. Cualquier lugar de memoria que no esté asignado para árboles o que no esté utilizado por el hardware, está disponible por defecto para uso del picocódigo, como los contadores y tablas antiguas.
La figura 13 muestra un diagrama de bloques más detallado del complejo de memoria. El arbitrador de memoria de búsqueda del árbol (TSM) proporciona el enlace de comunicaciones entre los Procesadores Incorporados (GxH) y las memorias. Las memorias incluyen 5 SRAM sobre el chip, 1 SRAM fuera del chip y 7 DRAM fuera del chip. El Arbitrador d TSM incluye diez Unidades de Control de Peticiones (cada una de ellas conectada a uno de los Procesadores Incorporados GxH) y 13 unidades arbitradoras de memoria, una para cada memoria. Una estructura de bus interconecta las Unidades de Control de Peticiones con las unidades arbitradoras, de tal manera que cada unidad de control y su GXH conectado tienen acceso a todas las memorias.
La unidad de control incluye el hardware necesario para guiar los datos entre el Procesador Incorporado (GxH) y los arbitradores.
Las unidades arbitradoras SRAM, entre otras cosas, gestionan el flujo de datos entre el Procesador Incorporado GxH y las SRAM dentro del chip y fuera del chip.
Las Unidades Arbitradoras DRAM, entre otras cosas, gestionan el flujo de datos entre el Procesador Incorporado (GxH) y los dispositivos DRAM fuera del chip.
Cada Arbitrador de Memoria contiene un acceso por la "puerta trasera", que es típicamente utilizada por otras partes del chip y tiene la más alta prioridad de acceso.
Las memorias DRAM pueden ejecutarse en dos modos de funcionamiento:
Modo TDM. El acceso a memoria en los cuatro bancos del DDRAM se hace alternando "ventanas" de lectura y ventanas de grabación, donde en una ventana de lectura, el acceso a cualquiera de los cuatro bancos es de sólo lectura, y en una ventana de grabación, el acceso a cualquiera de los cuatro bancos es de sólo grabación. Utilizando el modo TDM para múltiples DDRAM, se permite compartir algunas señales de control entre las DDRAM y por tanto se ahorran algunos chips 10 (que es un recurso muy escaso).
Modo de-TDM. El acceso a memoria de los cuatro bancos de la DDRAM puede ser una combinación de lectura y grabación, que debe seguir ciertas reglas específicas. Por ejemplo, se puede hacer una lectura en un banco A y una grabación en un banco C dentro de una ventana de acceso.
El Arbitrador TSM permite acceder a N Solicitantes simultáneamente a M memorias. Cuando hay múltiples Solicitantes que quieren acceder a la misma memoria, se realiza un arbitraje circular.
Las M memorias pueden tener propiedades diferentes. En nuestra implementación actual, hay tres tipos de memorias: SRAM interna, SRAM externa y DDRAM externa.
Las M memorias y los N Solicitantes son homogéneos: cualquier Solicitante puede acceder a cualquier memoria.
Algunas memorias están divididas lógicamente en múltiples sub-memorias (como cuatro bancos en la DDRAM), que pueden ser accedidas lógicamente de manera simultánea.
Parte de las M memorias se utiliza para controlar memorias que contienen estructuras de datos utilizadas internamente, que tienen un acceso de alta prioridad en comparación con los picoprocesadores. Esto permite también la depuración del chip, ya que los picoprocesadores pueden leer el contenido de las memorias de control.
El arbitrador admite acceso de lectura, acceso de grabación y lectura-suma-grabación, por lo que se suma un entero de N bits al contenido de la memoria en una operación atómica.
Se utiliza un esquema de direcciones generales para acceder a las M memorias, de forma tal que el lugar físico de un objeto en memoria es transparente.
El concepto de árboles es utilizado por el Motor de Búsqueda de Árbol, para almacenar y recuperar información. Recuperación, es decir, las búsquedas de árbol y también las inserciones y eliminaciones se hacen basándose en una Clave, que es como un modelo de bits, por ejemplo, una dirección de fuente MAC, o la concatenación de una fuente de direcciones IP y direcciones de destino IP. La información es almacenada en un bloque de control denominado Hoja, que contiene al menos la clave (como se verá después, el modelo de bits almacenado es realmente la Clave aleatoria). Una hoja puede contener también información adicional, como información de antigüedad, o información de usuario, que puede ser por ejemplo información de reenvío como lámina objetivo y números de puerto objetivo.
Hay tipos de árboles (FM, LPM y SMT) y búsquedas asociadas del tipo de árbol, que son: coincidencia fija, árbol gestionado por software y coincidencia del prefijo mayor. Un criterio adicional para comprobar la hoja durante la búsqueda de árbol es la Máscara de Vector. La gestión de cuerdas, antigüedad y enclavamiento son utilizados para aumentar el rendimiento de la búsqueda.
El algoritmo de búsqueda de árboles FM está ilustrado en la figura 14. El algoritmo de búsqueda funciona con parámetros introducidos, que incluyen la Clave, realiza una aleatorización de la Clave, accede a una Tabla Directa (DT), recorre el árbol a través de los Bloques de Control de Búsqueda de Modelo (PSCB) y termina en una Hoja (figura 14). Hay tres tipos de árboles, cada uno de los cuales tiene su propio algoritmo de búsqueda, lo que hace que el recorrido por el árbol ocurra de acuerdo con reglas diferentes. Por ejemplo, para árboles de Coincidencia Fija (FM), la estructura de datos es un Árbol Patricia. Cuando se ha encontrado una Hoja, esta Hoja es el único candidato posible que puede coincidir con la Clave introducida. Para Árboles Gestionados por Software, puede haber hojas múltiples que están encadenadas en una lista enlazada. En este caso, todas las Hojas de la cadena son comprobadas con la Clave introducida, hasta que se encuentra una coincidencia o hasta que se termina la cadena. Una operación denominada "comparar en el final", que compara la Clave introducida con el modelo almacenado en la Hoja, verifica si la Hoja coincide realmente con la Clave introducida. El resultado de la búsqueda será correcto cuando se ha encontrado la Hoja y ha tenido lugar una coincidencia, o incorrecto en todos los demás casos.
La entrada a una operación de búsqueda consiste en los parámetros siguientes:
Clave (128 bits).
La Clave debe ser construida utilizando instrucciones especiales de picocódigo antes de la búsqueda (o de la inserción/eliminación). Solamente hay un registrador de Claves. Sin embargo, una vez que ha comenzado la búsqueda de árbol, el registrador de Claves puede ser utilizado por el picocódigo para construir la clave de la búsqueda siguiente, concurrentemente con el TSE que realiza la búsqueda. Esto se hace porque el TSE hace aleatoria la Clave y almacena el resultado en un registrador interno de Claves Aleatorias (por tanto, en realidad, hay dos registradores de Claves).
Longitud de Clave (7 bits).
Este registrador contiene la longitud de la Clave en bits. Se actualiza automáticamente por hardware durante la construcción de la Clave.
LUDefindex (8 bits).
Este es un índice dentro de la LUDefTable (Tabla LUDef), que contiene una definición LUDefTable se describe posteriormente con más detalle.
TSRNr (1 bit).
Los resultados de la búsqueda pueden ser almacenados en la Zona 0 de Resultados de Búsqueda del Árbol (TSR0) o bien en TSR1. Esto se especifica por medio del TSRNr. Mientras que el TSE está buscando, el picocódigo puede acceder al otro TSR para analizar los resultados de una búsqueda anterior.
VectorIndex (6 bits).
Para árboles que tienen habilitada la Máscara del Vector (que está especificada en la Tabla LUDef), el Índice de Vectores (VectorIndex) indica un bit en la Máscara del Vector. Al final de la búsqueda, se devuelve el valor de este bit y puede ser utilizado por el picocódigo.
La Clave introducida será hecha aleatoria en una HashedKey (Clave aleatoria), como se ilustra en la figura 14. Hay disponibles seis algoritmos aleatorios fijos (un "algoritmo" no realiza ninguna función aleatoria). En la Tabla LUDef se especifica qué algoritmo se utilizará. Puede utilizarse una función aleatoria programable para añadir flexibilidad.
La salida de la función aleatoria es siempre un número de 128 bits, que tiene la propiedad de que hay una correspondencia de uno a uno entre el valor original de la Clave introducida y la salida de la función aleatoria. Como se explicará más adelante, esta propiedad hace mínima la profundidad del árbol que comienza después de la Tabla Directa.
\global\parskip0.920000\baselineskip
Si se habilitan colores para el árbol, que es el caso en el ejemplo de la figura 14, se inserta el registrador de color de 16 bits en la salida de la función aleatoria de 128 bits. La inserción tiene lugar directamente después de la Tabla Directa. Es decir, si la Tabla directa contiene 2^{N} elementos, el valor del color de 16 bits se inserta en la posición de bit N, como se ilustra en la figura. La salida de la función aleatoria, junto con el valor del color insertado, (cuando está habilitado), es almacenada en el registrador de Claves Aleatorias.
La función aleatoria está definida de forma tal que la mayor parte de la entropía de su salida reside en los bits más altos. Los N bits más altos del registrador de claves aleatorias se utilizan para calcular un índice en la Tabla Directa (DT).
La búsqueda comienza con un acceso en la Tabla Directa: se lee un Elemento de la DT (DTEntry) en la Tabla Directa. La dirección utilizada para leer el elemento de DT se calcula a partir de los N bits más altos de la Clave Aleatoria, así como de las propiedades del árbol como se definen en la Tabla LUDef. Esto se explica con detalle posteriormente. El DTEntry puede ser visto como la raíz de un árbol. La estructura particular del árbol que se utiliza depende del tipo de árbol. En este punto, basta con decir que se utiliza una estructura de datos de Árbol Patricia para árboles de FM, y extensiones de Árboles Patricia para árboles LPM y SMT.
En la figura 15 se ilustra un ejemplo del uso de una DT de 8 elementos. Puede observarse que el tiempo de búsqueda (es decir, el número de PSCB que deben ser accedidos) puede ser reducido utilizando una DT. Así, al aumentar el tamaño de la DT, puede equilibrarse la utilización de la memoria y el rendimiento de la búsqueda.
Como puede observarse en la figura 15, un elemento de la DT (DTEntry) puede contener la información siguiente:
Vacío. No hay Hojas unidas a este DTEntry.
Un puntero a una Hoja. Hay una sola Hoja unida a este DTEntry.
Un puntero a una PSCB. Hay más de una Hoja unidas a este DTEntry. El DTEntry define la raíz de un árbol.
El Algoritmo de Búsqueda para un árbol gestionado por software, y el algoritmo para generar el árbol, están establecidos en la Solicitud de Patente de Estados Unidos con el número de serie 09/312,148.
Un algoritmo denominado "Algoritmo del Bit de Elección" utiliza una cierta métrica para construir un árbol binario de búsqueda basado en los bits seleccionados a partir de elementos denominados "reglas" en un conjunto o universo de reglas. Todos nuestros ejemplos están expresados en términos de cabeceras del Protocolo de Internet (IP), pero podría utilizarse en su lugar una cabecera de formato fijo de cualquier tipo.
En IP, cada Regla pertenece a ciertas Claves que podrían ser construidas con las subsecciones siguientes: Dirección Fuente (SA), Dirección de Destino (DA), Puerto Fuente (SP), Puerto de Destino (DP), y Protocolo (P). Estos datos son, respectivamente, de una longitud de 32, 32, 16, 16 y 8 bits y, así, una Clave a comprobar consiste en 104 bits. El Algoritmo de Bit de Elección encuentra ciertos bits de los 104 que son especialmente útiles. Comprobar unos cuantos bits elimina en efecto todas menos una, o todas menos unas pocas reglas para una posible aplicación. Para algunas reglas, son apropiadas también desigualdades de comprobación por medio de simples operaciones de comparación. Las comprobaciones y comparaciones de bits están organizadas lógicamente en un árbol binario. El árbol tiene un mapa de correspondencia con una estructura habilitada por hardware que comprueba bits a altas velocidades. Tales comprobaciones dan como resultado una sola regla o un pequeño número de reglas (denominadas cadena de hojas) que podrían ajustarse a la Clave. En el primer caso, la Clave es comprobada después por completo por la regla. En el último caso, la Clave es comprobada después en un entramado de comprobaciones utilizando comparaciones y comprobaciones completas de la regla.
Cada regla del conjunto de reglas está asociada con una acción que se emprende si la regla es la regla de más alta prioridad que se ajusta a la Clave. Las reglas pueden tener intersecciones (una clave se ajusta a dos o más reglas). En ese caso, las reglas pueden tener asignados números de prioridad 1, 2, 3,… de manera que dos reglas que tienen una intersección tienen prioridades diferentes (un administrador debe declarar qué regla es la dominante si una clave se ajusta a dos o más). Por tanto, si permanecen más de una regla para ser comprobadas después de las comprobaciones y comparaciones de bits, las reglas se comprobarán en orden de prioridad. Un número de prioridad menor designa una regla con prioridad más alta.
Si no se encuentra nada absolutamente que se ajuste, hay que especificar alguna provisión por defecto.
El algoritmo de búsqueda para el método de Coincidencia del Prefijo más largo, está establecido en la Patente de Estados Unidos núm. 5.787.430. El método requiere entrar en un nodo de dicha base de datos (nodo raíz); determinar un camino de búsqueda desde un nodo a otro a través de dicha base de datos en forma de árbol, procesando sucesivamente segmentos de dicho argumento de búsqueda que comprenden solamente aquellas partes de los elementos que son necesarias para identificar el nodo siguiente (hijo), y dicha segunda información de enlace, hasta que se hayan consumido dichos segmentos o se alcance un nodo (de hoja) al que falte dicha segunda información de enlace; comparar con dicho argumento de búsqueda un elemento almacenado en el nodo, en el cual termina dicho camino de búsqueda; y si no se encuentra al menos una coincidencia parcial entre el argumento de búsqueda y dicho elemento en dicho nodo en curso, hacer un seguimiento hacia atrás de dicho camino de búsqueda procesando dicha primera información de enlace de dicho nodo en curso; y repetir los dos pasos anteriores hasta que se encuentre dicha al menos una coincidencia parcial o se alcance dicho nodo raíz.
La figura 16 muestra un modo de realización del principal dispositivo de la matriz de conmutación. Preferiblemente, cada chip del dispositivo de interfaz tiene al menos dos puertos integrados de paralelo a serie, que reciben datos en paralelo y convierten los datos en una corriente de datos en serie de alta velocidad que es reenviada por un enlace serie al dispositivo de la matriz de conmutación. Los datos recibidos desde el dispositivo de la matriz de conmutación sobre un enlace serie de alta velocidad son convertidos en datos en paralelo por otro DASL. En este documento se describe un modo de realización del dispositivo para convertir en serie/deshacer la conversión denominado Enlace Serie de Ajuste de Datos (DASL).
Al menos un DASL hace de interfaz entre el dispositivo de la matriz de conmutación y los enlaces serie. Los datos procedentes del enlace serie son convertidos en datos en paralelo, que son entregados al dispositivo de la matriz de conmutación. De igual manera, los datos en paralelo procedentes del dispositivo de la matriz de conmutación, son convertidos en datos serie que son entregados a los dispositivos serie. Los enlaces serie pueden ser acumulados para aumentar el rendimiento.
Siguiendo con la referencia a la figura 16, el sistema de conmutación incluye la matriz 11 de conmutación, los adaptadores 13 (13-1...13-k) de entrada del conmutador que están conectados a los puertos 15 (15-1,...15-k) de entrada de la matriz de conmutación, y unos adaptadores 17 (17-1,...15-p), que están conectados a la matriz de conmutación en los puertos 19 (19-1,...19-p) de salida.
Los enlaces 21 entrantes y salientes (21-1,...21-q) y (23-1,...23-r) de transmisión están conectados al sistema de conmutación por medio de adaptadores 25 (de enlace) de líneas (25-1,...25-q) y (27-1,...27-r), respectivamente. Los enlaces de transmisión transportan tráfico de conmutación de circuitos o de conmutación de paquetes desde y hacia unidades anexas tales como estaciones de trabajo, teléfonos o similares (enlaces designados como WS), desde y hacia redes de área local (enlaces designados como LAN), desde o hacia instalaciones de Red Digital de Servicios Integrados (enlaces denominados como RDSI), o desde y hacia cualquier otro sistema de comunicaciones. Además, los procesadores pueden estar unidos directamente a los adaptadores 13 y 17 de conmutación. Los adaptadores de línea (LA) y los adaptadores de conmutación (SA) tienen un interfaz común.
En los adaptadores de entrada del conmutador, se recogen diversos servicios de los interfaces de conmutación de paquetes y de conmutación de circuitos, y son convertidos en minipaquetes uniformes (que tienen una de diversas longitudes fijas posibles), con una cabecera que contiene información de encaminamiento que designa el puerto de salida requerido (y el enlace saliente) del conmutador. Algunos detalles del formato de minipaquetes y de la generación de minipaquetes en los adaptadores de entrada del conmutador y del desempaquetamiento en los adaptadores de salida del conmutador, serán ofrecidos en las secciones siguientes.
La matriz de conmutación encamina los minipaquetes a través de una red de interconexión de auto-encaminamiento desde cualquier puerto de entrada hasta cualquier puerto de salida. La estructura de la red de auto-encaminamiento es tal que los minipaquetes pueden ser encaminados internamente de manera simultánea y sin ningún conflicto.
El corazón del sistema de conmutación es la matriz de conmutación. Se consideran dos implementaciones diferentes que serán descritas por separado. En una implementación, la matriz de conmutación comprende un árbol binario de auto-encaminamiento para cada puerto de entrada, que conecta el respectivo puerto de entrada a todos los puertos de salida; la matriz de conmutación comprende k de tales árboles en combinación (si se disponen k puertos de entrada). En otra implementación, se dispone una estructura de bus con una RAM de salida como una sección para cada puerto de salida, que conecta todos los puertos de entrada con el respectivo puerto de salida; la matriz de conmutación comprende p de tales secciones en combinación (si se disponen p puertos de salida).
El DASL está descrito en la Solicitud de Patente de Estados Unidos con el número de serie 09/330,968, depositada el 11 de Junio de 1999. El interfaz del DASL recibe datos de un interfaz paralelo, tal como un CMOS ASIC, y particiona los bits del interfaz paralelo en un número menor de cadenas de bits en paralelo. El menor número de cadenas de bits en paralelo es convertido después en una cadena serie de alta velocidad, que es transportada a través de un medio de transmisión al receptor del otro módulo. Un controlador diferencial con impedancia de control, controla la cadena serie de bits de datos en el medio de transmisión.
El DASL implementa el método de analizar una cadena de datos presentada como N bits en paralelo, en una pluralidad de porciones que tienen, cada una de ellas, n bits, donde n es una fracción de N; poner en serie cada porción de n bits en la cadena de datos; transferir cada porción puesta en serie por un canal correspondiente de una pluralidad de canales en paralelo; y deshacer la puesta en serie de cada porción transferida de la cadena de datos para restaurar la cadena de datos para la presentación como N bits en paralelo. Aunque el DASL se emplea en ciertos modos de realización descritos anteriormente, se admite que pueden emplearse formas alternativas de transferencia de datos en tales puntos en un procesador de red, que materialice de otra manera las invenciones aquí divulgadas.
En los dibujos y la memoria han sido establecidos modos de realización preferidos de las invenciones aquí divulgadas y, aunque se han utilizado términos específicos, la descripción así ofrecida utiliza una terminología solamente en un sentido genérico y descriptivo, y no con fines de limitación.
\global\parskip0.990000\baselineskip

Claims (13)

1. Aparato que comprende:
un procesador del punto de control;
un dispositivo de interfaz conectado operativamente a dicho procesador del punto de control por un camino de control y que proporciona un camino de datos de alta velocidad, teniendo dicho dispositivo de interfaz un substrato (10) de semiconductores;
una pluralidad de procesadores (12) del interfaz formados sobre dicho substrato, siendo el número de dichos procesadores al menos cinco; una memoria interna de instrucciones formada sobre dicho substrato y que almacena instrucciones de manera accesible para dichos procesadores del interfaz;
una memoria interna de datos formada sobre dicho substrato y que almacena datos que pasan a través de dicho dispositivo, de manera accesible para dichos procesadores del interfaz; y
una pluralidad de puertos de entrada/salida formados sobre dicho substrato;
conectando al menos uno de dichos puertos de entrada/salida a dicha memoria interna de datos con la memoria externa de datos;
intercambiando, al menos otros dos de dichos puertos de entrada/salida, datos que pasan a través del dispositivo de interfaz, con una red externa a la velocidad del medio bajo la dirección de dichos procesadores del interfaz;
cooperando dicho procesador del punto de control con dicho dispositivo de interfaz, cargando en el interior de dicha memoria de instrucciones las instrucciones que han de ser ejecutadas por dichos procesadores del interfaz al dirigir el intercambio de datos entre dichos puertos de entrada/salida de intercambio de datos y el flujo de datos a través de dicha memoria de datos.
2. Aparato según la reivindicación 1, que comprende además:
un segundo dispositivo de interfaz conectado operativamente a dicho procesador del punto de control y que tiene:
un substrato de semiconductores;
una pluralidad de procesadores de interfaz formados sobre dicho substrato, siendo el número de dichos procesadores de al menos cinco;
una memoria interna de instrucciones, formada sobre dicho substrato y que almacena instrucciones de manera accesible para dichos procesadores del interfaz:
una memoria interna de datos, formada sobre dicho substrato, y que almacena datos que pasan a través de dicho dispositivo de manera accesible a dichos procesadores del interfaz; y
una pluralidad de puertos de entrada/salida formados sobre dicho substrato;
conectando al menos uno de dichos puertos de entrada/salida dicha memoria interna de datos con la memoria externa de datos;
intercambiando, al menos otros dos de dichos puertos de entrada/salida, datos que pasan a través del dispositivo de interfaz con una red externa bajo la dirección de dichos procesadores del interfaz;
cooperando dicho procesador del punto de control con dicho segundo dispositivo de interfaz, cargando en dicha memoria de instrucciones, las instrucciones que han de ejecutarse en dichos procesadores del interfaz al dirigir el intercambio de datos entre dichos puertos de entrada/salida de intercambio de datos y el flujo de datos a través de dicha memoria.
3. Aparato según la reivindicación 1, que comprende además
un segundo procesador del punto de control;
estando dicho dispositivo de interfaz operativamente conectado a uno de dichos procesadores, el del punto de control y el segundo procesador del punto de control;
\newpage
un segundo dispositivo de interfaz operativamente conectado al otro de dichos procesadores, el del punto de control y el segundo procesador del punto de control, y que tiene
un substrato de semiconductores;
una pluralidad de procesadores del interfaz formados sobre dicho substrato, siendo el número de dichos procesadores de al menos cinco;
una memoria interna de instrucciones formada sobre dicho substrato, y que almacena instrucciones accesiblemente para dichos procesadores del interfaz;
una memoria interna de datos, formada sobre dicho substrato, y que almacena datos que pasan a través de dicho dispositivo de manera accesible a dichos procesadores del interfaz; y
una pluralidad de puertos de entrada/salida formados sobre dicho substrato;
conectando al menos uno de dichos puertos de entrada/salida dicha memoria interna de datos con la memoria externa de datos;
intercambiando, al menos otros dos de dichos puertos de entrada/salida, datos que pasan a través del dispositivo de interfaz con una red externa bajo la dirección de dichos procesadores del interfaz;
cooperando dicho procesador del punto de control con dicho segundo dispositivo de interfaz, cargando en dicha memoria de instrucciones, las instrucciones que han de ejecutarse en dichos procesadores del interfaz al dirigir el intercambio de datos entre dichos puertos de entrada/salida de intercambio de datos y el flujo de datos a través de dicha memoria.
4. Aparato según una de las reivindicaciones 1 a 3, en el que dicho procesador del punto de control está situado remotamente a dicho dispositivo de interfaz y está operativamente conectado a él a través de dichos otros dos puertos de entrada/salida.
5. Aparato según una de las reivindicaciones 1 a 4, que comprende además un dispositivo de placa de circuito impreso y en el que los elementos del circuito montados sobre dicho dispositivo de placa de circuito impreso comprende los elementos enumerados en dicha una de las reivindicaciones 1 a 4.
6. Aparato según la reivindicación 5, que comprende además: un dispositivo de matriz de conmutación con auto-encaminamiento, operativamente conectado a dicho dispositivo de interfaz y que dirige los datos hacia el interior del aparato desde direcciones identificable, para que fluyan hacia el exterior desde el aparato hacia direcciones identificadas.
7. Aparato según una de las reivindicaciones 1 a 4, que comprende además:
un alojamiento;
una placa madre montada en el alojamiento; y
una pluralidad de dispositivos de placa de circuito impreso montados en dicha placa madre;
y en el que los elementos del circuito de uno de dichos dispositivos de placa de circuito impreso comprende los elementos enumerados en dicha una de las reivindicaciones 1 a 4.
8. Aparato según la reivindicación 7, en el que dicho procesador del punto de control está formado sobre dicho substrato de semiconductores.
9. Aparato según la reivindicación 7, en el que los elementos del circuito en un segundo dispositivo, de dichos dispositivos de placa de circuitos, comprende otro conjunto de los elementos enumerados en dicha una de las reivindicaciones 1 a 4.
10. Un método que comprende los pasos de:
almacenar en una memoria de instrucciones, las instrucciones para la gestión de los datos que transitan por un dispositivo de interfaz;
ejecutar en una pluralidad de procesadores (12) de interfaz, las instrucciones almacenadas en la memoria de instrucciones;
recibir un flujo de datos hacia el interior, a través de un puerto de entrada a la velocidad del medio;
comunicar el flujo de datos a través de la pluralidad de procesadores del interfaz; y
dirigir el flujo de datos hacia el exterior, a través de un puerto de salida a la velocidad del medio, de acuerdo con la ejecución de las instrucciones por los procesadores del interfaz.
11. Un método según la reivindicación 10, que comprende además el análisis del flujo de datos en una pluralidad de porciones, almacenando las porciones seleccionadas del flujo de datos analizados en la memoria de datos, y dirigiendo otras porciones seleccionadas del flujo de datos analizados a una matriz de conmutación, para determinar una dirección de salida.
12. Un método según la reivindicación 10, que comprende además la recombinación de las porciones almacenadas y otras porciones seleccionadas del flujo de datos, antes de dirigir el flujo de datos hacia el exterior a través de un puerto de salida.
13. Un método según la reivindicación 10, en el que el paso de comunicar el flujo de datos a través de la pluralidad de procesadores del interfaz comprende el análisis del flujo de datos en porciones, y distribuir las porciones analizadas entre la pluralidad de procesadores del interfaz para su gestión en paralelo.
ES00959158T 1999-08-27 2000-08-24 Conmutador y componentes de red y metodo de funcionamiento. Expired - Lifetime ES2265971T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US384692 1999-08-27
US09/384,692 US6985431B1 (en) 1999-08-27 1999-08-27 Network switch and components and method of operation

Publications (1)

Publication Number Publication Date
ES2265971T3 true ES2265971T3 (es) 2007-03-01

Family

ID=23518351

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00959158T Expired - Lifetime ES2265971T3 (es) 1999-08-27 2000-08-24 Conmutador y componentes de red y metodo de funcionamiento.

Country Status (9)

Country Link
US (5) US6985431B1 (es)
EP (1) EP1226501B1 (es)
JP (2) JP2003508954A (es)
KR (1) KR100466083B1 (es)
CN (1) CN1307564C (es)
AT (1) ATE333678T1 (es)
DE (1) DE60029467T2 (es)
ES (1) ES2265971T3 (es)
WO (1) WO2001016763A1 (es)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985431B1 (en) * 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US8300534B2 (en) * 2000-05-24 2012-10-30 Alcatel Lucent Programmable packet processor with flow resolution logic
US8619793B2 (en) * 2000-08-21 2013-12-31 Rockstar Consortium Us Lp Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
US7466704B2 (en) * 2000-09-20 2008-12-16 Broadcom Corporation Switch assembly having multiple blades in a chassis
US8762581B2 (en) * 2000-12-22 2014-06-24 Avaya Inc. Multi-thread packet processor
US6987760B2 (en) 2001-03-05 2006-01-17 International Business Machines Corporation High speed network processor
US7149212B2 (en) * 2001-03-21 2006-12-12 International Business Machines Corporation Apparatus, method and limited set of messages to transmit data between scheduler and a network processor
EP1382165A2 (en) * 2001-04-13 2004-01-21 MOTOROLA INC., A Corporation of the state of Delaware Manipulating data streams in data stream processors
US7398271B1 (en) * 2001-04-16 2008-07-08 Yahoo! Inc. Using network traffic logs for search enhancement
US8195705B2 (en) 2001-12-11 2012-06-05 International Business Machines Corporation Hybrid search memory for network processor and computer systems
AU2002237149A1 (en) * 2001-12-30 2003-07-15 Legend (Beijing) Limited. A means and control method for adapting different media of transmission link of network on physical layer.
TW561740B (en) * 2002-06-06 2003-11-11 Via Tech Inc Network connecting device and data packet transferring method
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
US7596621B1 (en) * 2002-10-17 2009-09-29 Astute Networks, Inc. System and method for managing shared state using multiple programmed processors
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US20040143682A1 (en) * 2003-01-21 2004-07-22 Brocade Communications Systems, Inc. Network switch containing a hard disk drive
US20050044261A1 (en) * 2003-07-18 2005-02-24 Rahul Saxena Method of operating a network switch
US20050102474A1 (en) * 2003-11-06 2005-05-12 Sridhar Lakshmanamurthy Dynamically caching engine instructions
US7558890B1 (en) * 2003-12-19 2009-07-07 Applied Micro Circuits Corporation Instruction set for programmable queuing
US20050172132A1 (en) 2004-01-30 2005-08-04 Chen Sherman (. Secure key authentication and ladder system
US9461825B2 (en) 2004-01-30 2016-10-04 Broadcom Corporation Method and system for preventing revocation denial of service attacks
US9094699B2 (en) * 2004-02-05 2015-07-28 Broadcom Corporation System and method for security key transmission with strong pairing to destination client
US7480308B1 (en) * 2004-03-29 2009-01-20 Cisco Technology, Inc. Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly
US7554978B1 (en) * 2004-03-30 2009-06-30 Extreme Networks, Inc. System for accessing content-addressable memory in packet processor
US20050223984A1 (en) * 2004-04-08 2005-10-13 Hee-Gyoun Lee Chemical vapor deposition (CVD) apparatus usable in the manufacture of superconducting conductors
US7929518B2 (en) * 2004-07-15 2011-04-19 Broadcom Corporation Method and system for a gigabit Ethernet IP telephone chip with integrated DDR interface
US7533092B2 (en) * 2004-10-28 2009-05-12 Yahoo! Inc. Link-based spam detection
US7600115B2 (en) * 2005-04-05 2009-10-06 Cisco Technology, Inc. Control key capable of storing multiple and variable data packet classification results
US7719966B2 (en) * 2005-04-13 2010-05-18 Zeugma Systems Inc. Network element architecture for deep packet inspection
US7606147B2 (en) * 2005-04-13 2009-10-20 Zeugma Systems Inc. Application aware traffic shaping service node positioned between the access and core networks
US7907610B2 (en) * 2005-05-23 2011-03-15 Nxp B.V. Integrated circuit with internal communication network
US7719995B2 (en) * 2005-09-09 2010-05-18 Zeugma Systems Inc. Application driven fast unicast flow replication
US7733891B2 (en) * 2005-09-12 2010-06-08 Zeugma Systems Inc. Methods and apparatus to support dynamic allocation of traffic management resources in a network element
US7508764B2 (en) * 2005-09-12 2009-03-24 Zeugma Systems Inc. Packet flow bifurcation and analysis
US7672236B1 (en) * 2005-12-16 2010-03-02 Nortel Networks Limited Method and architecture for a scalable application and security switch using multi-level load balancing
US7843927B1 (en) * 2006-12-22 2010-11-30 Extreme Networks, Inc. Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device
US8429177B2 (en) * 2006-02-08 2013-04-23 Yahoo! Inc. Using exceptional changes in webgraph snapshots over time for internet entity marking
US7852843B2 (en) * 2006-07-21 2010-12-14 Cortina Systems, Inc. Apparatus and method for layer-2 to layer-7 search engine for high speed network application
US7630385B2 (en) * 2006-08-04 2009-12-08 Oyadomari Randy I Multiple domains in a multi-chassis system
JP2008078768A (ja) * 2006-09-19 2008-04-03 Denso Corp ネットワークシステム,ネットワークデバイスおよびプログラム
US8219789B2 (en) * 2007-03-14 2012-07-10 XMOS Ltd. Interface processor
US7773510B2 (en) 2007-05-25 2010-08-10 Zeugma Systems Inc. Application routing in a distributed compute environment
US20080298230A1 (en) * 2007-05-30 2008-12-04 Luft Siegfried J Scheduling of workloads in a distributed compute environment
US8290986B2 (en) * 2007-06-27 2012-10-16 Yahoo! Inc. Determining quality measures for web objects based on searcher behavior
US20090013033A1 (en) * 2007-07-06 2009-01-08 Yahoo! Inc. Identifying excessively reciprocal links among web entities
US7706291B2 (en) * 2007-08-01 2010-04-27 Zeugma Systems Inc. Monitoring quality of experience on a per subscriber, per session basis
US8374102B2 (en) * 2007-10-02 2013-02-12 Tellabs Communications Canada, Ltd. Intelligent collection and management of flow statistics
CN101685401B (zh) * 2008-09-22 2013-07-24 中国科学院计算技术研究所 一种远程无线编程的方法及支持远程无线编程的芯片
US8842688B2 (en) * 2009-01-20 2014-09-23 The Regents Of The University Of California Reducing cabling complexity in large-scale networks
TW201044371A (en) * 2009-06-15 2010-12-16 Novatek Microelectronics Corp Memory architecture of display device and reading method thereof
US8565239B2 (en) * 2009-07-14 2013-10-22 Broadcom Corporation Node based path selection randomization
US8503456B2 (en) * 2009-07-14 2013-08-06 Broadcom Corporation Flow based path selection randomization
US20110145837A1 (en) * 2009-12-14 2011-06-16 Bower Kenneth S Filtering Broadcast Recipients In A Multiprocessing Environment
US8331373B2 (en) 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device
US9319335B1 (en) * 2010-12-07 2016-04-19 Pluribus Networks, Inc. Distributed operating system for a layer 2 fabric
US8934783B2 (en) 2011-02-17 2015-01-13 International Business Machines Corporation Adaptor system for an ethernet network
US10122653B2 (en) * 2011-04-28 2018-11-06 International Business Machines Corporation Energy management system for a data center network
US8582437B2 (en) 2011-06-21 2013-11-12 Broadcom Corporation System and method for increasing input/output speeds in a network switch
US8861401B2 (en) 2012-04-03 2014-10-14 International Business Machines Corporation Layer 2 packet switching without look-up table for ethernet switches
US8838871B2 (en) * 2012-04-09 2014-09-16 Dell Products L.P. Methods and systems for virtualization of storage services in an integrated chassis
US8902896B2 (en) 2012-04-16 2014-12-02 International Business Machines Corporation Packet switching without look-up table for ethernet switches
JP5863085B2 (ja) * 2012-09-21 2016-02-16 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 動的アドレス割り当てのための方法及び装置
US9652216B2 (en) * 2012-10-04 2017-05-16 Dell Products L.P. System and method for providing out-of-band software or firmware upgrades for a switching device
CN105264525A (zh) * 2013-06-04 2016-01-20 马维尔国际贸易有限公司 内部搜索引擎架构
US8966074B1 (en) * 2013-09-13 2015-02-24 Network Kinetix, LLC System and method for real-time analysis of network traffic
AU2013245529A1 (en) * 2013-10-18 2015-05-07 Cisco Technology, Inc. Network Interface
US9935898B2 (en) * 2014-09-20 2018-04-03 Innovasic, Inc. Ethernet interface module
KR102365113B1 (ko) * 2015-05-27 2022-02-18 삼성전자주식회사 적응적 인터럽트 처리 방법 및 장치와 이를 적용하는 호스트, i/o 디바이스 및 시스템
US10200309B2 (en) 2016-08-12 2019-02-05 Samsung Electronics Co., Ltd. Two-headed switch including a drive bay for fabric-attached devices
CN113923080B (zh) * 2021-10-11 2023-12-19 中认车联网技术服务(深圳)有限公司 基于车载以太网的视频信号监控平台及数据分析方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2573394B1 (fr) * 1984-11-16 1986-12-12 Panzani Milliat Freres Sa Nouvel ensemble pour le stockage, le transport et la distribution des objets du type bouteilles, flacons et analogues, et procede pour sa fabrication
US4736362A (en) * 1985-07-26 1988-04-05 Advanced Micro Devices, Inc. Programmable data-routing multiplexer
EP0312628B1 (en) * 1987-10-20 1993-12-29 International Business Machines Corporation High-speed modular switching apparatus for circuit and packet switched traffic
FR2637440B1 (fr) * 1988-08-18 1994-05-13 Bull Sa Procede de transmission de donnees sur un bus interne d'une station de travail, dispositif a bus interne, permettant la mise en oeuvre du procede, et circuit d'adaptation pour ce bus interne
FR2638260B1 (fr) * 1988-10-26 1994-04-29 Onera (Off Nat Aerospatiale) Dispositifs de commutation et reseaux de communication de donnees pour systemes multiprocesseurs
US5495482A (en) * 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
US5226125A (en) * 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5404550A (en) * 1991-07-25 1995-04-04 Tandem Computers Incorporated Method and apparatus for executing tasks by following a linked list of memory packets
DE69230093T2 (de) 1991-11-19 2000-04-13 Ibm Multiprozessorsystem
EP0544963A1 (en) * 1991-11-29 1993-06-09 International Business Machines Corporation Parallel processing method for receiving and transmitting HDLC/SDLC bit streams
DE69124743T2 (de) * 1991-11-29 1997-08-14 Ibm Vorrichtung zur Speicherung und Durchschaltung und Verfahren zur Datensicherung während der Speicherung
JP2647330B2 (ja) * 1992-05-12 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 超並列コンピューティングシステム
US5331315A (en) * 1992-06-12 1994-07-19 Universities Research Association, Inc. Switch for serial or parallel communication networks
ES2149794T3 (es) 1993-09-24 2000-11-16 Siemens Ag Procedimiento para compensar la carga en un sistema multiprocesador.
JPH07152501A (ja) 1993-11-30 1995-06-16 Kawasaki Steel Corp 媒体集合型装置駆動命令発行装置
US5557609A (en) * 1993-12-01 1996-09-17 Kabushiki Kaisha Toshiba Switching apparatus for ATM
JPH07320742A (ja) * 1994-05-20 1995-12-08 Sumitomo Electric Ind Ltd アルカリ蓄電池用電極およびその製造方法
GB2291562B (en) * 1994-05-21 1998-09-23 Northern Telecom Ltd Communications system
US5787430A (en) * 1994-06-30 1998-07-28 International Business Machines Corporation Variable length data sequence backtracking a trie structure
US5583868A (en) * 1994-07-25 1996-12-10 Microsoft Corporation Method and system for combining data from multiple servers into a single continuous data stream using a switch
EP0719065A1 (en) * 1994-12-20 1996-06-26 International Business Machines Corporation Multipurpose packet switching node for a data communication network
US5598410A (en) * 1994-12-29 1997-01-28 Storage Technology Corporation Method and apparatus for accelerated packet processing
US5724348A (en) * 1995-04-05 1998-03-03 International Business Machines Corporation Efficient hardware/software interface for a data switch
CN1148211A (zh) * 1995-06-05 1997-04-23 北京航空航天大学 耦合度可调并行计算机群系统及其构造方法
US5651002A (en) 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5748633A (en) * 1995-07-12 1998-05-05 3Com Corporation Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
US5568471A (en) * 1995-09-06 1996-10-22 International Business Machines Corporation System and method for a workstation monitoring and control of multiple networks having different protocols
US5841777A (en) * 1996-08-30 1998-11-24 Hewlett-Packard Company System and method for accommodating ABR and CBR traffic on a shared communications channel
US5864535A (en) * 1996-09-18 1999-01-26 International Business Machines Corporation Network server having dynamic load balancing of messages in both inbound and outbound directions
US5854787A (en) * 1996-12-13 1998-12-29 Rockwell International Method for reducing message error rate within real-time exchange radio-frequency communications systems
US6791947B2 (en) * 1996-12-16 2004-09-14 Juniper Networks In-line packet processing
US5898667A (en) * 1996-12-31 1999-04-27 Northern Telecom Limited SS7 network management primeship
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
US6301257B1 (en) * 1997-03-19 2001-10-09 Nortel Networks Limited Method and apparatus for transmitting data frames between switches in a meshed data network
JP3607466B2 (ja) 1997-09-05 2005-01-05 株式会社東芝 ルータ装置及び制御フレーム処理方法
US6304910B1 (en) 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6064674A (en) * 1997-10-22 2000-05-16 International Business Machines Corporation Method and apparatus for hardware forwarding of LAN frames over ATM networks
US6195334B1 (en) * 1997-12-18 2001-02-27 Advanced Micro Devices, Inc. Apparatus and method for terminating a data transfer in a network switch in response to a detected collision
US6259699B1 (en) * 1997-12-30 2001-07-10 Nexabit Networks, Llc System architecture for and method of processing packets and/or cells in a common switch
JPH11205339A (ja) 1998-01-19 1999-07-30 Hitachi Ltd Atm交換機
TW358911B (en) * 1998-01-23 1999-05-21 Accton Technology Corp Data package sorting transmission method
US6307860B1 (en) * 1998-04-03 2001-10-23 Mmc Networks, Inc. Systems and methods for data transformation and transfer in networks
US6266340B1 (en) * 1998-04-03 2001-07-24 Vertical Networks, Inc. Systems and methods for multiple voice data communication which includes interface cards including configurable clocks that are dynamically coupled to a TDS bus
US6330584B1 (en) * 1998-04-03 2001-12-11 Mmc Networks, Inc. Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6490281B1 (en) * 1998-06-04 2002-12-03 International Business Machines Corporation Apparatus including a scalable multiprotocol communications adapter using modular components and a method for transmitting data frames via scalable multiprotocol communication adapters
US6560228B2 (en) * 1998-07-01 2003-05-06 Agilent Technologies, Inc. Generation of informative MAC headers for analysis of ATM routed LAN frames
US6393457B1 (en) * 1998-07-13 2002-05-21 International Business Machines Corporation Architecture and apparatus for implementing 100 Mbps and GBPS Ethernet adapters
US6400717B1 (en) * 1998-10-16 2002-06-04 Samsung Electronics Co., Ltd. Device for booting a multiprocessor embedded system and method of operation
US6873630B1 (en) * 1999-05-19 2005-03-29 Sun Microsystems, Inc. Method and apparatus for a multi-gigabit ethernet architecture
US6393479B1 (en) * 1999-06-04 2002-05-21 Webside Story, Inc. Internet website traffic flow analysis
US6404752B1 (en) * 1999-08-27 2002-06-11 International Business Machines Corporation Network switch using network processor and methods
US6766381B1 (en) * 1999-08-27 2004-07-20 International Business Machines Corporation VLSI network processor and methods
US6985431B1 (en) * 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US6965922B1 (en) * 2000-04-18 2005-11-15 International Business Machines Corporation Computer system and method with internal use of networking switching
US6671725B1 (en) * 2000-04-18 2003-12-30 International Business Machines Corporation Server cluster interconnection using network processor
US6772218B1 (en) * 2000-04-18 2004-08-03 International Business Machines Corporation Server acceleration using network processor
US6829697B1 (en) * 2000-09-06 2004-12-07 International Business Machines Corporation Multiple logical interfaces to a shared coprocessor resource
US7047303B2 (en) * 2001-07-26 2006-05-16 International Business Machines Corporation Apparatus and method for using a network processor to guard against a “denial-of-service” attack on a server or server cluster
US7310685B2 (en) * 2002-08-29 2007-12-18 International Business Machines Corporation Method and system for reducing look-up time in packet forwarding on computer networks

Also Published As

Publication number Publication date
DE60029467T2 (de) 2007-07-19
US20050232205A1 (en) 2005-10-20
JP2006020371A (ja) 2006-01-19
KR20020024330A (ko) 2002-03-29
EP1226501A4 (en) 2003-10-01
WO2001016763A1 (en) 2001-03-08
JP2003508954A (ja) 2003-03-04
US7257616B2 (en) 2007-08-14
JP4066382B2 (ja) 2008-03-26
US20050232204A1 (en) 2005-10-20
KR100466083B1 (ko) 2005-01-13
US7590057B2 (en) 2009-09-15
US20050232270A1 (en) 2005-10-20
US6985431B1 (en) 2006-01-10
ATE333678T1 (de) 2006-08-15
US7620048B2 (en) 2009-11-17
US20050243850A1 (en) 2005-11-03
EP1226501A1 (en) 2002-07-31
EP1226501B1 (en) 2006-07-19
CN1307564C (zh) 2007-03-28
CN1399738A (zh) 2003-02-26
DE60029467D1 (de) 2006-08-31

Similar Documents

Publication Publication Date Title
ES2265971T3 (es) Conmutador y componentes de red y metodo de funcionamiento.
US6460120B1 (en) Network processor, memory organization and methods
EP1208676B1 (en) Network switch using network processor
US6766381B1 (en) VLSI network processor and methods
US6769033B1 (en) Network processor processing complex and methods