ES2775798T3 - Procesador digital avanzado de banda base - Google Patents
Procesador digital avanzado de banda base Download PDFInfo
- Publication number
- ES2775798T3 ES2775798T3 ES18214299T ES18214299T ES2775798T3 ES 2775798 T3 ES2775798 T3 ES 2775798T3 ES 18214299 T ES18214299 T ES 18214299T ES 18214299 T ES18214299 T ES 18214299T ES 2775798 T3 ES2775798 T3 ES 2775798T3
- Authority
- ES
- Spain
- Prior art keywords
- processor
- mtm
- packet
- npu
- scheduler
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/08—Access point devices
- H04W88/10—Access point devices adapted for operation in multiple networks, e.g. multi-mode access points
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Transceivers (AREA)
Abstract
Un procesador (34) multinúcleo para usar en un procesador (28) digital avanzado de banda base para una estación (16) base en una red (14) de comunicaciones celulares, comprendiendo el procesador multinúcleo: - una pluralidad de núcleos (40, 42) de procesador, en el que al menos un subconjunto de la pluralidad de núcleos (40) de procesador soporta una pluralidad de tecnologías de acceso por radio, estando el procesador multinúcleo caracterizado por: - dos o más interfaces (46, 46-1, 46-2) de banda base configuradas para proporcionar conectividad de banda base a dos o más módems (36, 36-1, 36-2) i) externo al procesador multinúcleo y ii) asociado con una diferente de la pluralidad de tecnologías de acceso por radio.
Description
DESCRIPCIÓN
Procesador digital avanzado de banda base
Solicitudes relacionadas
Esta solicitud reclama el beneficio del número de serie de la solicitud de patente provisional. 61/594,470, archivada el 3 de Febrero de 2012.
Campo de la Descripción
La presente descripción se refiere a la integración de múltiples Tecnologías de Acceso por Radio (RAT) en un único procesador digital avanzado de banda base.
Antecedentes
Las estaciones base de múltiples estándares se han convertido en una tendencia importante en las redes de comunicaciones celulares. Una estación base de múltiples estándares es una estación base que admite múltiples tecnologías de acceso de radio (RAT). Una estación base de múltiples estándares incluye una unidad de banda base digital que admite múltiples RAT y una o más unidades de radio que transmiten y reciben señales de forma inalámbrica. Actualmente, la unidad de banda base digital para una estación base de múltiples estándares incluye recursos separados para cada una de las RAT. Más específicamente, como se ilustra en la Figura 1, una unidad 10 de banda base digital convencional para una estación base de múltiples estándares incluye tarjetas separadas, o placas de circuito, para cada una de las RAT. Específicamente, la unidad de banda base digital convencional 10 de la Figura 1 admite 1x Tecnología de Transmisión de Radio (RTT) de Proyecto de Asociación de 3a Generación 2(3GPP2) para voz y Evolución de Datos Optimizada 3GPP2 (EV-DO) para datos, donde 1xRTT 3GPP2 y EV-DO 3GPP2 están definidos por estándares separados de Acceso múltiple por división de código (CDMA) y son RAT separadas. La unidad 10 de banda base digital convencional incluye una tarjeta 12-1 de Módulo de Control (CM) y una 1 x tarjeta 12-2 que juntas admiten 1xRTT 3GPP2, así como una tarjeta 12-3 de Sólo Datos (DO) que admite EV-DO 3GPP2. Cada una de las tarjetas 12-1 a 12-3 tienen sus propios recursos de procesamiento (por ejemplo, Unidad Central de Procesamiento (CPU) o Circuito Integrado para Aplicaciones Específicas (ASIC)), sus propios recursos de memoria, etc.
Una preocupación principal para las estaciones base de múltiples estándares es el costo. Particularmente para las RAT maduras, como las RAT CDMA, las tarjetas que admiten las RAT se han diseñado y rediseñado para reducir costos y ahora están llegando al punto en que es difícil obtener una mayor reducción de costos. Como tal, existe la necesidad de una unidad de banda base digital nueva o avanzada que admita múltiples RAT y reduzca significativamente el costo de la unidad de banda base digital y, por lo tanto, el costo de la estación base de estándar múltiple.
El boletín del producto "TMS320TCI6618" y el documento técnico "Habilitación de estaciones base inalámbricas multiestándar con los SoC KeyStone de TI" describen un sistema en chip (SoC) de estación base inalámbrica de múltiples estándares que comprende múltiples núcleos DSP avanzados, habilitados para tanto procesadores de punto fijo y flotante como estándares inalámbricos comunes compatibles que incluyen GSM, WCDMA, TD-SCDMA, WiMAX y LTE. El SoC comprende además una infraestructura común de IO y SoC que incluye coprocesadores, periféricos y I/O.
El resumen del producto "Arquitectura del núcleo de comunicaciones escalables" describe un núcleo de comunicaciones escalables (SCC) como una solución para la capa física y el procesamiento de MAC más bajo de múltiples protocolos inalámbricos, que comprende aceleradores programables de grano grueso, heterogéneos, desarrollados para operaciones de comunicación clave. Los aceleradores están conectados a través de una red en chip (NoC) de 3 arios y 2 cubos basada en paquetes.
Compendio
La invención se define en las reivindicaciones independientes. Las realizaciones preferidas se exponen en las reivindicaciones dependientes. Las realizaciones o aspectos que no entran dentro del alcance de las reivindicaciones son útiles para comprender la invención.
La presente descripción se refiere a un procesador digital avanzado de banda base para una estación base en una red de comunicaciones celulares. En general, el procesador digital avanzado de banda base integra múltiples Tecnologías de Acceso por Radio (RAT). Como se usa en el presente documento, una RAT es una tecnología de acceso por radio tal como se define mediante un estándar correspondiente. Por ejemplo, en una realización, las RAT integradas por el procesador digital avanzado de banda base incluyen una RAT de voz de Acceso Múltiple por División de Código (CDMA) (por ejemplo, 1x Tecnología de Transmisión por Radio (RTT) CDMA de Proyecto de Asociación de 3a Generación 2 (3GPP2) o 1xAdvanced CDMA 3GPP2 ), así como RAT de Sólo Datos , o de Datos Optimizados (DO) CDMA (por ejemplo, Datos de Evolución Optimizados (EV-DO) CDMA 3GPP2 o Ev-DO CDMA 3GPP2 Rev B). En otra realización, las RAT integradas por el procesador digital avanzado de banda base también
incluyen Evolución a Largo Plazo de (LTE)3GPP. Las RAT dadas anteriormente son solo ejemplos. El procesador digital avanzado de banda base puede integrar RAT adicionales o alternativas.
En una realización, un aparato para uso en un procesador digital avanzado de banda base que integra múltiples RAT incluye recursos de procesamiento compartidos que integran las múltiples RAT. En una realización, el aparato incluye un procesador multinúcleo que tiene múltiples núcleos de procesador, y los recursos de procesamiento compartidos que integran las múltiples RAT son al menos un subconjunto de los núcleos de procesador del procesador multinúcleo. Más específicamente, en una realización, el procesador multinúcleo funciona en un modo de procesamiento múltiple asimétrico (AMP) donde cada RAT integrada por el procesador digital avanzado de banda base es compatible con un núcleo de procesador diferente. En una realización particular, las RAT integradas por el procesador digital avanzado de banda base incluyen una RAT de voz CDMA (por ejemplo, 1xRTT CDMA 3GPP2 o 1xAdvanced CDMA 3GPP2 ) y una RAT DO CDMA (por ejemplo, EV-DO c DmA 3GPP2 o EV-DO CDMA 3GPP2 Rev B), donde la RAT de voz CDMA se implementa mediante un Módulo de Control (CM) y un Procesador de Módem de Voz (MP de voz) y la RAT de CDMa se implementa mediante un Controlador de Sistema DO (SC DO) y un Procesador de Módem DO (MP DO) El CM es compatible con un primer núcleo de procesador del procesador multinúcleo, el MP de voz es compatible con un segundo núcleo de procesador del procesador multinúcleo, el SC DO es compatible con un tercer núcleo de procesador del procesador multinúcleo, y el MP DO es compatible con un cuarto núcleo de procesador del procesador multinúcleo. En otra realización particular, el procesador multinúcleo funciona en modo de procesamiento múltiple simétrico (SMP) donde los núcleos del procesador del procesador multinúcleo soportan las RAT integradas por el procesador digital avanzado de banda base de manera distribuida. En otra realización, los recursos de procesamiento compartidos son al menos un subconjunto de los recursos de procesamiento de un Circuito Integrado para Aplicaciones Específicas (ASIC).
En una realización, además de los recursos de procesamiento compartidos, el aparato para uso en el procesador digital avanzado de banda base incluye recursos de conectividad de red compartidos para las RAT. Aún más, en una realización, el aparato está integrado en el procesador digital avanzado de banda base, y el procesador digital avanzado de banda base incluye además recursos compartidos de transporte de banda base para las RAT, recursos físicos compartidos para las RAT, funciones de soporte compartidas para las RAT, o cualquier combinación de los mismos. En una realización, los recursos de conectividad de red compartida incluyen una o más interfaces de red compartidas, así como enrutamiento de Protocolo de Internet (IP), conmutación o enrutamiento Ethernet, procesamiento y enrutamiento de transporte patentado, o cualquier combinación de los mismos. En una realización, los recursos de transporte de banda base compartidos incluyen un multiplexor compartido para señales de banda base para las RAT, un demultiplexor compartido para señales de banda base para las RAT y una o más interfaces de transporte de banda base compartidas (por ejemplo, Enlace Serie de Alta Velocidad (HSSL), Interfaz Radio de Paquetes Común (CPRI), o una variante derivada de HSSL o CPRI) a una o más unidades de radio de la estación base. En una realización, los recursos físicos compartidos incluyen una fuente de alimentación, un paquete de baterías, un receptor del Sistema de Posicionamiento Global (GPS), un reloj en tiempo real o cualquier combinación de los mismos. En una realización, las funciones de soporte compartidas incluyen un estante de gabinete compartido, un ventilador y filtro compartidos, o ambos.
En una realización, el aparato incluye una única arquitectura de Operaciones, Administración y Mantenimiento (OAM) para todas las RAT. En una realización, el aparato incluye un procesador multinúcleo que tiene múltiples núcleos de procesador, los recursos de procesamiento compartidos que soportan las múltiples RAT son al menos un subconjunto de los núcleos de procesador del procesador de múltiples núcleos, y uno de los núcleos de procesador 'del procesador multinúcleo está dedicado para OAM.
En una realización, un aparato para usar en un procesador digital avanzado de banda base que integra múltiples RAT incluye un procesador multinúcleo que tiene múltiples núcleos de procesador, en el que al menos un subconjunto de los núcleos de procesador integra las múltiples RAT. Preferiblemente, el procesador multinúcleo funciona en un modo AMP donde cada RAT es compatible con uno o más núcleos de procesador diferentes del procesador multinúcleo. Por ejemplo, en una realización particular, las RAT integradas por el procesador digital avanzado de banda base incluyen una RAT de voz CDMA (por ejemplo, 1xRTT CDMA 3GPP2 o 1xAdvanced CDMA 3GPP2 ) y una RAT DO CDmA (por ejemplo, EV-DO CDm A 3g Pp2 o EV -DO CDMA 3GPP2 Rev B), donde la RAT de voz CDMA es implementada por un CM soportado por un primer núcleo de procesador y un MP de voz soportado por un segundo núcleo de procesador y la RAT DO CDMA es implementada por un SC DO soportado por un tercer núcleo de procesador y un MP DO soportado por un cuarto núcleo de procesador. El procesador multinúcleo incluye además una Unidad de Procesamiento de Red (NPU) que opera para proporcionar enrutamiento de paquetes para comunicaciones de retorno, así como comunicaciones entre núcleos. Además, en una realización, la NPU proporciona control de flujo.
Los expertos en la materia apreciarán el alcance de la presente descripción y se darán cuenta de aspectos adicionales de la misma después de leer la siguiente descripción detallada de las realizaciones preferidas en asociación con las figuras de los dibujos adjuntos.
Breve descripción de las figuras de dibujo
Las figuras de dibujo adjuntas incorporadas y que forman parte de esta especificación ilustran varios aspectos de la descripción y, junto con la descripción, sirven para explicar los principios de la descripción.
La Figura 1 ilustra una unidad de banda base digital convencional de una estación base de múltiples estándares; La Figura 2 ilustra una red de comunicaciones celulares de acuerdo con una realización de la presente descripción; La Figura 3 es un diagrama de bloques de una estación base que incluye un procesador digital avanzado de banda base que integra múltiples Tecnologías de Acceso de Radio (RAT) y una o más unidades de radio de acuerdo con una realización de la presente descripción;
La Figura 4 es una ilustración más detallada del procesador digital avanzado de banda base de la Figura 3, en el que el procesador digital avanzado de banda base incluye, entre otras cosas, un procesador multinúcleo que integra las múltiples RAT de acuerdo con una realización de la presente descripción;
La Figura 5 es una ilustración más detallada del procesador digital avanzado de banda base de la Figura 2 en el que el procesador multinúcleo integra 1x Tecnología de transmisión de radio (RTT) de Proyecto de Asociación de 3a Generación 2 (3GPP2) y tecnologías de acceso de radio de Datos de Evolución Optimizados (EV-DO) 3GPP2 de acuerdo con una realización de la presente descripción;
La Figura 6 es una ilustración más detallada del procesador digital avanzado de banda base de la Figura 5 de acuerdo con una realización de la presente descripción;
La Figura 7 ilustra el funcionamiento de una Unidad de Procesamiento de Red (NPU) del procesador multinúcleo de la Figura 6 según una realización de la presente descripción;
La Figura 8 es una ilustración más detallada del funcionamiento de la NPU del procesador multinúcleo de la Figura 6 según una realización de la presente descripción;
La Figura 9 ilustra una realización preferida de la NPU del procesador multinúcleo de la Figura 6, donde el procesador multinúcleo de la Figura 6 es uno de la familia 3400 de procesadores de comunicación Axxia® (ACP), la NPU es la NPU del único de la familia 3400 de ACP (es decir, una NPU de ACP), y la contrapresión se proporciona desde las colas de tareas de entrada (ITQ) de varios motores de la NPU de ACP a un planificador de la NPU de ACP de acuerdo con una realización de la presente descripción;
La Figura 10 ilustra un programador de control de flujo de motor de Gestor de Tráfico Modular (MTM) que incluye el programador de procesamiento ligero y complejo mTm y los moldeadores de salida MTM de la Figura 9 con más detalle de acuerdo con una realización de la presente descripción;
La Figura 11 ilustra el programador de procesamiento ligero y complejo MTM de la Figura 10 y un programador de procesamiento de entrada del motor de procesador de paquetes modulares (MPP) de la NPU ACP de acuerdo con una realización de la presente descripción;
La Figura 12 ilustra el programador de procesamiento ligero y complejo MTM de la Figura 10 y un programador de procesamiento de entrada de uno de los Procesadores de protocolo de seguridad (SPP), la Comprobación de Integridad de Paquetes (PIC), el Bloque de ensamblaje de paquetes (PAB) y los motores del Editor de Flujo (SED) de la NPU ACP de acuerdo con una realización de la presente descripción;
La Figura 13 ilustra los moldeadores de salida MTM de la Figura 10 y un programador de procesamiento de entrada del motor Adaptador de Entrada/Salida Ethernet (EIOA) de la NPU ACP de acuerdo con una realización de la presente descripción;
La Figura 14 ilustra un mecanismo de interrupción para la NPU ACP de acuerdo con una realización de la presente descripción;
La Figura 15 es una ilustración más detallada del mecanismo de interrupción de la Figura 14 según una realización de la presente descripción; y
La Figura 16 ilustra la profundidad de la cola de monitorización y mantenimiento en el motor MTM de la NPU ACP de acuerdo con una realización de la presente descripción.
Descripción detallada
Las realizaciones expuestas a continuación representan la información necesaria para permitir a los expertos en la técnica practicar las realizaciones e ilustrar el mejor modo de practicar las realizaciones. Al leer la siguiente descripción a la luz de las figuras de dibujos adjuntas, los expertos en la materia comprenderán los conceptos de la descripción y reconocerán las aplicaciones de estos conceptos que no se abordan particularmente en este
documento. Debe entenderse que estos conceptos y aplicaciones caen dentro del alcance de la descripción y las reivindicaciones adjuntas.
La presente descripción se refiere a un procesador digital avanzado de banda base para una estación base en una red de comunicaciones celulares, donde el procesador digital avanzado de banda base integra múltiples tecnologías de acceso de radio (RAT). Como se usa en el presente documento, una RAT es una tecnología de acceso por radio tal como se define mediante un estándar correspondiente. Algunos ejemplos no limitantes de RAT son las RAT de voz de Acceso Múltiple por División de Código (CDMA) (por ejemplo, 1x Tecnología de Transmisión por Radio (RTT) CDMA de Proyecto de Asociación de 3a Generación 2 (3GPP2) y rAt de Sólo Datos, o de Datos Optimizados (DO) CDMA 3GPP2), (por ejemplo, Datos de Evolución Optimizados (Ev -DO) CDMA 3GPP2 y EV-DO CDMA 3GPPS Rev B), Evolución a largo plazo 3GPP (LTE), o similares. A este respecto, la Figura 2 ilustra una red 14 de comunicaciones celulares que incluye las estaciones base (BS) 16-1 a 16-N (generalmente referidas aquí colectivamente como estaciones base 16 e individualmente como estación base 16), donde una o más, y potencialmente todas, las estaciones base 16 tienen procesadores digitales avanzados de banda base (no mostrados) que integran múltiples RAT de acuerdo con una realización de la presente descripción.
Como se ilustra, las estaciones 16-1 a 16-N base sirven a las celdas 18-1 a 18-N correspondientes (generalmente referidas aquí colectivamente como celdas 18 e individualmente como celda 18). Específicamente, la estación base 16-1 sirve a dispositivos inalámbricos, tales como los dispositivos 20-1 y 20-2 inalámbricos, ubicados en la celda 18 1; la estación base 16-2 sirve a dispositivos inalámbricos, tales como los dispositivos inalámbricos 20-3 a 20-5, ubicados en la celda 18-2; y la estación base 16-N sirve a dispositivos inalámbricos, tales como los dispositivos inalámbricos 20-6 y 20-7, ubicados en la celda 18-N. Los dispositivos inalámbricos 20-1 a 20-7 generalmente se denominan en la presente memoria de manera colectiva como los dispositivos inalámbricos 20 e individualmente como el dispositivo inalámbrico 20.
Las estaciones base 16 están conectadas a un Controlador 22 de Red de Radio (RNC) y un Controlador 24 de Estación Base (BSC) a través de una red 26 de retorno. En particular, la red 14 de comunicaciones celulares incluye una única red de retorno 26 para voz y datos. La red de retorno 26 es preferiblemente una red basada en el Protocolo de Internet (IP). En funcionamiento, las comunicaciones de datos fluyen entre una red central (no mostrada) y las estaciones base 16 a través del RNC 22 y la red 26 de retorno. Del mismo modo, las comunicaciones de voz fluyen entre la red central y las estaciones base 16 a través del BSC 24 y la red 26 de retorno.
Como se discute en detalle a continuación, al menos algunas de las estaciones 16 base son estaciones base de Múltiples Estándares (MS) que incluyen procesadores digitales avanzados de banda base que integran múltiples RAT. A este respecto, la Figura 3 es un diagrama de bloques de una de las estaciones 16 base que incluye un procesador 28 digital avanzado de banda base que integra múltiples RAT de acuerdo con una realización de la presente descripción. Como se ilustra, la estación base 16 incluye el procesador 28 digital avanzado de banda base, una o más unidades 30 de radio y una o más antenas 32 conectadas como se muestra. Para integrar las RAT, el procesador 28 digital avanzado de banda base incluye recursos de procesamiento compartidos que soportan las RAT. En una realización, el procesador 28 digital avanzado de banda base incluye un procesador multinúcleo que tiene múltiples núcleos de procesador, y los recursos de procesamiento compartidos que soportan las RAT son al menos un subconjunto, pero potencialmente todos, los núcleos de procesador del procesador multinúcleo. En una realización preferida, el procesador multinúcleo funciona en un modo de procesamiento múltiple asimétrico (AMP) en el que cada RAT es compatible con uno o más núcleos de procesador diferentes del procesador multinúcleo. En una realización alternativa, el procesador multinúcleo funciona en un Modo de Procesamiento Múltiple Simétrico (SMP) en el que los núcleos de procesador del procesador multinúcleo soportan las RAT de manera distribuida. En otra realización, el procesador 28 digital avanzado de banda base incluye un Circuito Integrado de Aplicaciones Específicas (ASIC), y los recursos de procesamiento compartidos que soportan las RAT son recursos de procesamiento del ASIC.
El procesador 28 digital avanzado de banda base puede incluir recursos compartidos adicionales que soportan RAT tales como, pero que no se limitan a, recursos de conectividad de red compartidos, recursos físicos compartidos, recursos de transporte de banda base compartidos, o cualquier combinación de los mismos. Los recursos de conectividad de red compartida proporcionan conectividad de red entre la estación 16 base y la red 26 de retorno para las RAT. Los recursos de conectividad de red compartida pueden incluir, por ejemplo, una o más interfaces de red compartidas (por ejemplo, una o más interfaces T1/E1 compartidas o similares), o una o más funciones de enrutamiento o conmutación compartidas (por ejemplo, enrutamiento IP compartido, compartido conmutación o enrutamiento de Ethernet compartido, procesamiento o enrutamiento de transporte propietario compartido, o similares). Los recursos físicos compartidos pueden incluir, por ejemplo, memoria compartida, una fuente de alimentación compartida, un componente de sincronización compartido (por ejemplo, un receptor del Sistema de Posicionamiento Global (GPS) compartido, una batería compartida, un reloj de tiempo real compartido, un reloj compartido en tiempo real, un filtro y ventilador compartido, o similares. Los recursos de transporte de banda base compartidos pueden incluir, por ejemplo, un multiplexor compartido, un demultiplexor compartido, una o más interfaces de transporte de banda base compartidas, o puertos de radio, a una o más unidades 30 de radio, o similares. Al integrar las RAT, el procesador 28 digital avanzado de banda base ofrece muchas ventajas sobre las unidades de banda base digital tradicionales para estaciones base de múltiples estándares. Por ejemplo, el costo del
procesador 28 digital avanzado de banda base se reduce sustancialmente en comparación con el costo de la unidad digital tradicional de banda base.
La Figura 4 es una ilustración más detallada de una realización del procesador 28 digital avanzado de banda base de la Figura 3. En esta realización, el procesador 28 digital avanzado de banda base incluye un procesador 34 multinúcleo, uno o más módems 36 y una interfaz 38 de unidad de radio conectados tal como se ilustra. El procesador 34 multinúcleo incluye un número (Nc) de núcleos 40-1 a 40-Nc de procesador que proporciona recursos de procesamiento compartidos que admiten un número (Nrata) de RAT (RAT 1 a RAT Nrata) Los núcleos 40-1 a 40-Nc de procesador generalmente se denominan aquí de manera colectiva núcleos 40 de procesador e individualmente como núcleo 40 de procesador. En esta realización, el procesador 34 multinúcleo está configurado en un modo AMP en el que cada RAT es compatible con uno o más núcleos 40 de procesador diferentes. Por ejemplo, una RAT particular puede implementarse como dos o más funciones separadas (por ejemplo, un controlador de sistema y una función de procesamiento de módem), donde cada función de la RAT es soportada por un núcleo 40 de procesador diferente. Además, los núcleos 40 de procesador que admiten una RAT son diferentes de los núcleos 40 de procesador que admiten las otras RAT. De esta manera, las RAT están soportadas por recursos de procesamiento compartidos del procesador 34 multinúcleo. Opcionalmente, el procesador 34 multinúcleo puede incluir uno o más núcleos 42 de procesador adicionales que pueden usarse para funciones distintas de las de las RAT.
Además, debe tenerse en cuenta que uno de los núcleos 40 de procesador funciona como un maestro o administrador de Operaciones y Mantenimiento (OAM) para todos los núcleos 40 de procesador. Más específicamente, cada uno de los núcleos 40 de procesador generalmente necesita acceder a algún dispositivo o dispositivos y/o recurso o recursos. Debido a que estos dispositivos periféricos y/o recursos son compartidos por los núcleos 40 de procesador, uno de los núcleos 40 de procesador funciona como el maestro OAM para evitar colisiones o problemas de inconsistencia. El maestro OAM controla y gestiona los dispositivos y/o recursos periféricos y se comunica internamente con los otros núcleos 40 de procesador. Si los otros núcleos 40 de procesador necesitan acceso a los dispositivos y/o recursos periféricos, esos núcleos 40 de procesador se comunican primero con el maestro OAM, y el maestro OAM luego delega el acceso a los dispositivos periféricos y/o recursos.
El procesador 34 multinúcleo incluye preferiblemente memoria compartida para los núcleos 40 de procesador, así como para el núcleo o núcleos 42 de procesador. La memoria compartida se implementa dentro de la memoria 43 interna del procesador 34 multinúcleo y puede usarse para diversos fines tales como, por ejemplo, la comunicación entre núcleos leyendo y escribiendo información en un espacio compartido dentro de la memoria compartida. Tenga en cuenta que toda o una parte de la memoria 43 interna puede ser memoria compartida. Por ejemplo, parte de la memoria 43 interna puede asignarse a núcleos 40 o 42 de procesador concretos y parte de la memoria 43 interna puede ser memoria compartida para todos o al menos múltiples núcleos 40 y/o 42 de procesador. El procesador 34 multinúcleo también incluye una interfaz 44 de red compartida para los núcleos 40 de procesador que admiten las RAT (y posiblemente el núcleo o núcleos 42 de procesador adicionales). La interfaz 44 de red compartida proporciona conectividad de red a la red 26 de retorno. De manera similar, el procesador 34 multinúcleo incluye una o más interfaces 46 de banda base que proporcionan conectividad de banda base al uno o más módems 36. Por último, el procesador 34 multinúcleo también incluye una Unidad 48 de Procesamiento de Red (NPU). Como se discute en detalle a continuación, la NPU 48 proporciona enrutamiento de paquetes tanto para comunicaciones de retorno y comunicaciones entre núcleos como para control de flujo.
El procesador 28 digital avanzado de banda base también incluye recursos 50 físicos compartidos que ayudan en la integración de las RAT. Los recursos 50 físicos compartidos incluyen, en esta realización, memoria compartida 52, un componente de sincronización compartido que en este ejemplo es un receptor 54 GPS compartido, una fuente 56 de alimentación compartida, una batería 58 compartida, un Reloj 60 en Tiempo Real (RTC) compartido, y uno o más controles 62 ambientales compartidos (por ejemplo, uno o más filtros y ventiladores compartidos). Tenga en cuenta que, si bien algunos ejemplos de los recursos 50 físicos compartidos se ilustran en la Figura 4, los recursos 50 físicos compartidos pueden incluir recursos físicos compartidos adicionales o alternativos.
La Figura 5 ilustra el procesador 28 digital avanzado de banda base de la Figura 4 según una realización preferida de la presente descripción. En esta realización, el procesador 28 digital avanzado de banda base integra una RAT de voz CDMA (por ejemplo, 1xRTT CDMA 3GPP2 o 1xAvanzado CDMA 3GPP2) y una RAT DO CDMA (por ejemplo, EV-DO CDMA 3g Pp2 o EV-DO CDMA 3GPP2 Rev B). La RAT DO c DMa se implementa como un Controlador de Sistema DO (DO SC) compatible con el núcleo 40-1 de procesador y un Procesador de Módem DO (DO MP) compatible con el núcleo 40-2 de procesador. Más específicamente, el DO SC se implementa como software ejecutado por el núcleo 40-1de procesador, y el DO MP se implementa como software ejecutado por el núcleo 40-2 de procesador. La RAT de voz CDMA se implementa como un Módulo de Control (CM) compatible con el núcleo 40-3 de procesador y un procesador de módem (MP) de voz, o 1x, compatible con el núcleo 40-4 de procesador. Más específicamente, el CM se implementa como software ejecutado por el núcleo 40-3 de procesador, y el MP de voz se implementa como software ejecutado por el núcleo 40-4 de procesador. Además, en esta realización, el uno o más módems 36 (Figura 4) incluyen un módem 36-1 DO módem conectado al procesador 34 multinúcleo a través de una interfaz de banda base 46-1 y un módem de voz, o 1x, 36-2 conectado al procesador 34 multinúcleo a través de la interfaz de banda 46-2. Preferiblemente, la red 26 de retorno es una red IP. Los paquetes
IP transportados a través de la red 26 de retorno incluyen paquetes IP DO que transportan datos como sus cargas útiles y paquetes IP de voz y/o control que transportan información de voz y/o control como sus cargas útiles. La información de voz y control está contenida preferiblemente en los paquetes de la Red de Comunicación de la Estación Base (BCN), donde se transportan múltiples paquetes BCN como la carga útil de un solo paquete IP. Para los paquetes DO IP entrantes de la red 26 de retorno, los paquetes DO IP entrantes se enrutan al núcleo 40-1 de procesador y son procesados por el DO SC. El SC DO funciona para controlar la configuración de la conexión del enlace DO con el RNC. A continuación, los paquetes IP del DO se enrutan al núcleo 40-2 de procesador y son procesador por el MP. El MP DO funciona para proporcionar comunicación con el módem 36-1 DO. El módem 36-1 DO recibe la salida del SC DO y genera las señales de banda base correspondientes. Las señales de banda base generadas por el módem 36-1 Od se envían al menos a una de las unidades 30 de radio a través de la interfaz 38 de la unidad de radio. Por el contrario, las señales de datos entrantes desde las unidades 30 de radio (Figura 3) son recibidas por el Módem 36-1 DO a través de la interfaz 38 de la unidad de radio. El módem 36-1 DO procesa las señales de datos entrantes para proporcionar señales digitales de banda base al núcleo 40-2 de procesador donde las señales digitales de banda base son procesadas por el MP DO. Los paquetes IP resultantes emitidos por el MP DO son enrutados al núcleo 40-1 del procesador y son procesados por el SC DO. Los paquetes IP se envían a la red 26 de retorno a través de la interfaz 44 de red compartida.
Para los paquetes IP entrantes de la red 26 de retorno que transportan información de voz y/o control, como se discutió anteriormente, la información de voz y/o control se transporta preferiblemente en paquetes BCN que se transportan como una carga útil de uno o más paquetes IP. Preferiblemente, los múltiples paquetes BCN se concatenan en una carga útil de un único paquete IP. Al recibir un paquete IP que lleva uno o más paquetes BCN, la NPU 48 realiza la desconcatenación de IP a BCN para extraer los paquetes BCN de la carga útil del paquete IP. Los paquetes BCN que transportan información de voz son enrutados, por la NPU 48, al núcleo 40-3 de procesador para su procesamiento por el CM. El CM funciona como un controlador general de recursos de la estación 16 base. Después del procesamiento por parte del CM, los paquetes BCN se enrutan al núcleo 40-4 de procesador para que el MP de voz los procese. El MP de voz funciona para proporcionar comunicación con el módem 36-2 de voz. En particular, los paquetes BCN que llevan información de control son identificados y enrutados por la NPU 48 de manera adecuada. El módem 36-2 de voz recibe la salida del MP de voz a través de la interfaz 46-2 de banda base y genera las señales de banda base correspondientes, que se emiten al menos a una de las unidades 30 de radio a través de la interfaz 38 de la unidad de radio. Por el contrario, las señales de voz entrantes desde las unidades 30 de radio son recibidas y procesadas por el módem 36-2 de voz. La salida del módem 36-2 de voz se proporciona al núcleo 40-4 de procesador y es procesada por el MP de voz. Los paquetes BCN resultantes se enrutan al núcleo 40 3 de procesador para que el CM los procese. La NPU 48 concatena los paquetes BCN en una carga útil de uno o más paquetes IP y enruta los paquetes IP a la red de 26 retorno a través de la interfaz 44 de red compartida.
En esta realización, la interfaz 38 de la unidad de radio proporciona una interfaz de transporte de banda base, o puerto de radio, para cada una de las unidades 30 de radio conectadas al procesador 28 digital avanzado de banda base. Preferiblemente, las interfaces de transporte de banda base son interfaces de Enlace Serie de Alta Velocidad (HSSL), las interfaces de la interfaz de Radio de Paquete Común (CPRI), o similares. En funcionamiento, la interfaz 38 de la unidad de radio multiplexa en tiempo las salidas del módem 36-1 OD y el módem 36-2 de voz para proporcionar una señal de salida de banda base para cada una de las unidades de radio 30, donde la señal de salida de banda base transporta voz y datos. De manera similar, la interfaz 38 de la unidad de radio demultiplexa las señales de entrada de banda base de las unidades 30 de radio para proporcionar los datos y señales de voz correspondientes al módem 36-1 de OD y al módem 36-2 de voz, respectivamente.
La Figura 6 es una ilustración más detallada del procesador 28 digital avanzado de banda base de la Figura 5 según una realización de la presente descripción. En particular, la Figura 6 incluye una ilustración más detallada de la NPU 48 y la interfaz 38 de la unidad de radio. Como se ilustra, la NPU 48 incluye una función 64 de conmutación de Capa 2 (L2) y una función 66 de conmutación BCN. La función 64 de conmutación de L2 recibe Paquetes IP desde y envía paquetes IP a la red 26 de retorno a través de la interfaz 44 de red compartida, que en este ejemplo es una interfaz de Interfaz Independiente de Medios Gigabit (SGMII). Además, en esta realización, la función 64 de conmutación de L2 recibe paquetes IP y envía paquetes IP a una conexión en cadena de una o más estaciones base adicionales a través de un puerto 68 de conexión en cadena, que en esta realización es una interfaz SGMII. En funcionamiento, la función 64 del conmutador de L2 determina si los paquetes IP entrantes de la red 26 de retorno están destinados a la estación 16 base en la que el procesador 28 digital avanzado de banda base está incorporado o destinado a otra estación base (no ilustrada) conectada al puerto 68 de conexión en cadena. Si un paquete IP está destinado a otra estación base conectada al puerto 68 de conexión en cadena, la función 64 de conmutación de L2 enruta el paquete IP al puerto 68 de conexión en cadena.
Si el paquete IP está destinado a la estación 16 base, la función 64 de conmutación de L2 determina si el paquete IP es: (1) un paquete DO o (2) un paquete IP que transporta paquetes BCN como su carga útil. Si el paquete IP es un paquete DO, la función 64 de conmutación de L2 enruta el paquete IP al núcleo 40-1 de procesador para que sea procesado por el SC DO. Después del procesamiento por el SC DO, el paquete IP se enruta al núcleo 40-2 de procesador a través de la NPU 48. En el núcleo 40-2 de procesador, el MP DO procesa el paquete IP para proporcionar una señal de cuadratura digital (I, Q) al módem 36-1 DO a través de una interfaz 70-1 de interconexión de componentes periféricos (PCIE). El módem 36-1 DO modula la señal de cuadratura digital (I, Q) desde el MP DO y emite una señal de cuadratura digital modulada (I, Q) a la interfaz 38 de la unidad de radio.
Si la función 64 de conmutación de L2 determina que el paquete IP es un paquete IP que transporta paquetes BCN como su carga útil, la función 64 de conmutación de L2 proporciona el paquete IP a la función 66 de conmutación BCN para la desconcatenación de IP a BCN. Como se usa en este documento, la desconcatenación de IP a BCN es un proceso mediante el cual los paquetes BCN se obtienen o extraen de la carga útil del paquete de IP. La función 66 de conmutación BCN luego enruta los paquetes BCN al destino apropiado. En particular, para los paquetes BCN que transportan información de voz, la función 66 de conmutación BCN dirige los paquetes BCN al núcleo 40-3 de procesador para que el CM los procese. Después del procesamiento por el CM, la función 66 de conmutación BCN dirige los paquetes BCN al núcleo 40-4 de procesador para que el MP de voz los procese. El MP de voz emite una señal de cuadratura digital (I, Q) al módem 36-2 de voz a través de una interfaz 70-2 PCIE. El módem 36-2 de voz modula la señal de cuadratura digital (I, Q) desde el MP de voz y emite una señal de cuadratura digital modulada (I, Q) a la interfaz 38 de la unidad de radio.
En la interfaz 38 de la unidad de radio, una función 72 de mapeo y suma multiplexa las señales de cuadratura digital modulada (I, Q) desde el módem 36-1 de DO y el módem 36-2de voz, y las señales de cuadratura digital moduladas opcionalmente (I, Q) de uno o más módulos de expansión y paquetes BCN recibidos de la NPU 48 a través de una 74 interfaz SGMII, para proporcionar una señal multiplexada en el tiempo. Una función 76 HSSL convierte entonces la salida de señal multiplexada por el tiempo mediante la función de mapeo y suma 72 en una seña1HSSL bajo control de un módulo 78 de control. El módulo 78 de control proporciona configuración de enlace HSSL y monitorización de estado. El módulo 78 de control envía mensajes de control y recibe mensajes de control del CM a través de una interfaz 80 PCIE. Los mensajes de control incluyen, por ejemplo, mensajes de control para el enlace HSSL. Una función 82 de multiplexor/demultiplexor demultiplexa después la seña1HSSL para proporcionar una señal deseada a cada una de las unidades 30 de radio. Las señales se proporcionan a las unidades 30 de radio preferiblemente a través de los correspondientes enlaces HSSL o CPRI.
Las señales entrantes de las unidades 30 de radio se procesan de manera similar. Más específicamente, las señales entrantes de las unidades de radio 30 se multiplexan en un HSSL por la función 82 del multiplexor/demultiplexor. La función 72 de mapeo y suma realiza la demultiplexación en el tiempo para proporcionar una señal OD de cuadratura modulada al módem 36-1 DO y una señal de voz en cuadratura modulada al módem 36-2 de voz. El módem 36-1 de DO demodula la señal de DO de cuadratura modulada para proporcionar una señal de DO demodulada al núcleo 40 2 de procesador a través de la interfaz 70-1 PCIE para su procesamiento por el MP DO. La salida del MP DO se proporciona luego al núcleo 40-1 de procesador para su procesamiento por el SC DO. El paquete IP resultante se proporciona a la NPU 48 donde la función 64 de conmutación de L2 enruta el paquete IP a la red 26 de retorno a través de la interfaz 44 de red compartida.
El módem 36-2 de voz demodula la señal de voz en cuadratura modulada para proporcionar una señal de voz demodulada al núcleo 40-4 de procesador a través de la interfaz 70-2 PCIE para su procesamiento por el MP de voz. La función 66 de conmutación BCN enruta los paquetes BCN resultantes emitidos por el MP de voz al núcleo 40-3 de procesador para su procesamiento por el CM. La función 66 de conmutación BCN procesa los paquetes BCN emitidos por el CM para realizar la concatenación BCN a IP. Como se usa en este documento, la concatenación BCN a IP es un proceso mediante el cual los paquetes BCN se concatenan en una carga útil de un paquete IP. En particular, los paquetes BCN adicionales de uno o más módulos de expansión y/o las unidades de radio 30 también pueden procesarse para la concatenación BCN a IP. Estos paquetes BCN adicionales pueden incluir, por ejemplo, paquetes BCN que transportan información de control, tráfico real u otra información específica del usuario. Después de la concatenación BCN a IP, la función 66 de conmutación BCN proporciona el paquete IP a la función 64 de conmutación de L2, que a su vez dirige el paquete IP a la red 26 de retorno a través de la interfaz 44 de red compartida.
La Figura 7 ilustra el funcionamiento de la NPU 48 de la Figura 6 con más detalle de acuerdo con una realización de la presente descripción. Cabe destacar que, en esta realización, el procesador 34 multinúcleo es un procesador multinúcleo en la familia 3400 de Procesadores de Comunicaciones Axxia® (ACP) diseñado y vendido por la Corporación LSI y, en una realización preferida, es el procesador 3448 multinúcleo ACP. Como tal, parte de la terminología utilizada en la descripción de la NPU 48 y su funcionamiento es una terminología específica de la Familia 3400 ACP de procesadores multinúcleo y, en particular, del procesador 3448 multinúcleo ACP. Sin embargo, debe entenderse que muchos de los conceptos descritos en este documento en relación con la NPU 48 y su funcionamiento no se limitan a la Familia 3400 ACP de procesadores multinúcleo y pueden ser aplicables a otros procesadores multinúcleo adecuados para su uso en el procesador 28 digital avanzado de banda base. La NPU 48 es muy flexible y puede programarse para funcionar de la manera deseada. En esta realización, la NPU 48 está programada para funcionar de la manera descrita a continuación.
Como se ilustra, las tareas de una fuente 84 de entrada de la NPU 48 se pasan opcionalmente a través de una función 86 de vigilancia o una función 88 de conformado dependiendo, por ejemplo, de la fuente 84 de entrada. La función 88 de conformado es proporcionada por un motor Administrador de Tráfico Modular (MTM) de la NPU 48 y, por lo tanto, también se denomina en este documento una función 88 de conformado MTM. Como se usa en el presente documento, una tarea incluye un puntero a un paquete entrante de la NPU 48, donde el paquete entrante se almacena en la memoria y la tarea incluye un puntero al paquete entrante almacenado en la memoria. El paquete entrante es un paquete IP o un paquete BCN. La fuente 84 de entrada puede ser la interfaz 44 de red compartida, el puerto 68 de conexión en cadena, uno de los núcleos 40 de procesador o la interfaz de la unidad 38 de radio. Como
un ejemplo, las tareas entrantes pueden pasar a través de la función 86 de vigilancia si la fuente 84 de entrada es la interfaz 44 de red compartida, las tareas entrantes pueden pasarse a través de la función 88 de conformado MTM si la fuente 84 de entrada es la interfaz 38 de la unidad de radio, y las tareas entrantes pueden no pasar a través de la función 86 de vigilancia o la función 88 de conformado MTM si la fuente 84 de entrada es uno de los núcleos 40 de procesador.
La función 86 de vigilancia puede usarse para supervisar sobrecargas y ráfagas de datos que exceden la capacidad de procesamiento del procesador 34 multinúcleo. En condiciones normales de funcionamiento, nunca debería producirse una sobrecarga o ráfaga de datos. Sin embargo, los ataques maliciosos, por ejemplo, pueden ocasionar sobrecargas o ráfagas de datos en el procesador 28 de banda base digital avanzado que exceden la capacidad de procesamiento del procesador 34 multinúcleo. Si se produce una sobrecarga o ráfaga de datos, se puede realizar un modelado de la velocidad para mantener baja latencia y buena calidad de servicio. La función 88 de conformado MTM se puede usar para realizar el modelado de velocidad como se desee para una aplicación particular. Por ejemplo, la función 88 de conformación MTM puede, por ejemplo, realizar una conformación de velocidad para reducir una velocidad de datos para un flujo que excede la capacidad del procesador 34 multinúcleo para ese flujo.
A continuación, la NPU 48 incluye una función 90 de clasificación de entrada ligera que clasifica las tareas entrantes como que necesitan un procesamiento ligero o un procesamiento complejo. Más específicamente, durante la clasificación de entrada ligera, la NPU 48 determina si la estación 16 base es el destino del paquete entrante. En una realización, la NPU 48 examina una dirección de Control de Acceso al Medio (MAC) de destino para el paquete entrante para determinar si la dirección MAC de destino es la de la estación 16 base. Si es así, la tarea entrante correspondiente se clasifica como que necesita un procesamiento complejo. Si la dirección MAC de destino no es la de la estación base 16, la tarea entrante correspondiente se clasifica como que solo necesita un procesamiento ligero. Si la tarea entrante se clasifica para el procesamiento ligero, se realiza el procesamiento ligero de la tarea y el paquete entrante correspondiente se pasa a un destino 92 de salida apropiado. Si la tarea entrante se clasifica para el procesamiento complejo, se realiza el procesamiento complejo de la tarea y el uno o más paquetes resultantes se proporcionan a los destinos 92 de salida apropiados.
Más específicamente, en la realización de procesador multinúcleo ACP, la clasificación de entrada ligera se realiza mediante un motor de Procesador de Paquetes Modular (MPP) de la NPU 48. El motor MPP realiza la clasificación de entrada ligera realizando una búsqueda de dirección MAC para la dirección MAC de destino del paquete entrante. Si la tarea entrante se clasifica como que solo necesita clasificación de entrada ligera, la tarea entrante se proporciona a una cola 94 MTM en un motor MTM de la NPU 48 para que se programe para el procesamiento ligero. Como se discute a continuación, entre otras cosas, el motor MTM realiza la programación de varios motores de la NPU 48 que realizan un procesamiento tanto ligero como complejo. En esta realización, el motor MTM programa la tarea entrante en la cola 94 MTM para su procesamiento por un motor NPU apropiado que realiza una función 96 de procesamiento ligero. Después del procesamiento ligero, la tarea entrante se inserta en otra cola 98 MTM para ser programada por el motor MTM para emitirla al destino 92 de salida apropiado. Cabe señalar que, en algunas realizaciones, el procesamiento ligero puede consistir en pasar el paquete entrante directamente desde la fuente 84 de entrada al destino 92 de salida apropiado. Por ejemplo, si el paquete entrante es un paquete IP destinado a una estación base conectada al puerto 68 de conexión en cadena, el paquete IP puede clasificarse para el procesamiento ligero y, en respuesta, reenviarse directamente al puerto 68 de conexión en cadena sin procesamiento adicional.
Si la tarea entrante se clasifica como que necesita un procesamiento complejo, la tarea entrante se inserta en una cola 100 MTM o se pasa a través de una función 102 de conformado MTM. El motor MTM luego programa la tarea entrante para su procesamiento por un motor NPU apropiado para una primera etapa de una función 104 de procesamiento complejo. Como se ilustra, después del procesamiento por el motor NPU, la tarea entrante puede devolverse a la función 102 de conformado MTM (o una cola MTM) de modo que la tarea entrante esté programada para su procesamiento por un motor NPU apropiado para una segunda etapa de la función 104 de procesamiento complejo. Este proceso continúa hasta que se completa el procesamiento complejo. Una vez que se completa el procesamiento complejo, la tarea entrante o las múltiples tareas resultantes (por ejemplo., una tarea separada para cada paquete BCN resultante de la desconcatenación IP a BCN) se insertan opcionalmente en una cola 106 MTM o función 108 de conformado MTM antes de ser emitidos al destino o destinos 92 de salida apropiados.
Como ejemplo, un paquete IP entrante que lleva múltiples paquetes BCN como su carga útil es procesado preferiblemente por la NPU 48 de la siguiente manera. Primero, el motor MPP realiza una clasificación de entrada ligera en base a la dirección MAC de destino del paquete IP entrante. Suponiendo que la dirección MAC de destino del paquete entrante es la de la estación 16 base, el motor MPP clasifica el paquete entrante (o más precisamente la tarea entrante correspondiente) como un proceso complejo. Como resultado, la tarea entrante para el paquete IP entrante se inserta en la cola 100 MTM del motor MTM. Luego, el motor MTM programa la tarea entrante para que la procese un motor NPU apropiado para la primera etapa de la función 104 de procesamiento complejo apropiada. Luego, el motor NPU devuelve la tarea entrante o una o más tareas resultantes al motor MTM para la programación. Este proceso se repite iterativamente hasta que se completa la función de procesamiento complejo. En este ejemplo, el procesamiento complejo incluye el procesamiento de Ethernet, incluida la verificación integrada y el filtrado de direcciones MAC; el procesamiento de la capa IP, incluida la verificación de integridad de IP y el enrutamiento de la dirección de destino IP (DA); la anti-retransmisión de IP y la autenticación de IP; el procesamiento del Protocolo de
Datagramas de Usuario (UDP) que incluye la verificación de integridad y el filtrado de puertos UDP; la encapsulación de datagramas IP; la desconcatenation de IP a BCN; la validación BCN; el enrutamiento BCN; la segmentación y reensamblaje BCN/ACN (Red de Comunicación de Aplicación) ; el procesamiento de excepciones; y el procesamiento de calidad de servicio (QoS). Tenga en cuenta que la segmentación BCN/ACN incluye, para un escenario típico, dividir un paquete ACN en varias partes, cada una de las cuales está incluida en una carga útil BCN con un encabezado BCN preinstalado. El reensamblaje es lo contrario. Las cargas de una serie de paquetes BCN se concatenan (con los encabezados BCN despojados), donde se agrega un encabezado ACN para la encapsulación. Después del procesamiento complejo, se extrajeron varios paquetes BCN de la carga útil del paquete IP entrante y se enrutan a los destinos 92 de salida apropiados.
Antes de continuar, debe tenerse en cuenta que la Figura 7 también ilustra el control de flujo realizado por la NPU 48. Como se ilustra, el control de flujo se proporciona mediante contrapresión desde la función 90 de clasificación de entrada ligera a la función 88 de conformado MTM, contrapresión desde la función 104 de procesamiento complejo a la cola MTM 100 o a la función 102 de conformado MTM (o un planificador MTM del motor MTM), o contrapresión desde el destino 92 de salida a la función 108 de conformado MTM (o el planificador MTM del motor MTM). Como se detalla a continuación en detalle, la contrapresión se aplica cuando una Cola de Tareas de Entrada (ITQ) de un motor NPU excede un umbral predeterminado. En respuesta a la contrapresión, el motor MTM deja de programar tareas entrantes para su procesamiento por los motores NPU posteriores.
La Figura 8 es una versión más detallada de la Figura 7 que ilustra el funcionamiento de la NPU 48 de acuerdo con una realización particular de la presente descripción. Nuevamente, en esta realización, el procesador 34 multinúcleo es un procesador multinúcleo de la familia 3400 de procesadores multinúcleo ACP diseñado y vendido por la Corporación LSI y, en una realización preferida, es el procesador 3448 multinúcleo ACP. Como tal, parte de la terminología utilizada en la descripción de la NPU 48 y su funcionamiento es una terminología específica de la familia 3400 de procesadores multinúcleo ACP y, en particular, del procesador 3448 multinúcleo ACP. Sin embargo, debe entenderse que muchos de los conceptos descritos en este documento en relación con la NPU 48 y su funcionamiento no se limitan a la familia 3400 de procesadores multinúcleo ACP y pueden ser aplicables a otros procesadores multinúcleo adecuados para su uso en el procesador 28 digital avanzado de banda base. Nuevamente, la NPU 48 es altamente flexible y puede programarse para operar de la manera deseada. En esta realización, la NPU 48 está programada para funcionar de la manera descrita a continuación.
Como se ilustra, las tareas de las fuentes 110-1 a 110-4 de entrada de la NPU 48 se pasan opcionalmente a través de funciones de vigilancia. Las fuentes de entrada 110-1 a 110-4 generalmente se denominan en el presente documento de manera colectiva como fuentes 110 de entrada e individualmente como fuente 110 de entrada. Las fuentes 110 de entrada de la NPU 48 incluyen una fuente 110-1 de entrada de conexión en cadena (D/C) que corresponde al puerto 68 de conexión en cadena, una fuente 110-2 de entrada de retorno (B/H) que corresponde a la interfaz 44 de red compartida a la red 26 de retorno, varias fuentes 110-3 de entrada de la Unidad Central de Procesamiento (CPU) que corresponden a los núcleos 40 de procesador, y una fuente 110-4 de entrada de transmisor y receptor de capa 1 (LITR) que corresponde a la interfaz de la unidad 38 de radio. Opcionalmente, las tareas entrantes de las fuentes 110 de entrada pueden pasar a través de las funciones 112-1 a 112-5 de vigilancia como se ilustra. Las funciones 112-1 a 112-5 de vigilancia generalmente se denominan en el presente documento de manera colectiva como funciones 112 de vigilancia e individualmente como función 112 de vigilancia.
Como se ilustra, la NPU 48 realiza una función 114-1 de clasificación de entrada ligera de L2 para tareas entrantes desde la fuente 110-1 de entrada D/C, la fuente 110-2 de entrada B/H y la fuente o fuentes 110- 3 de entrada de CPU correspondientes al menos a algunos de los núcleos 40 de procesador (es decir, los núcleos 40-1, 40-2 y 40-3 de procesador). De forma similar, la NPU 48 realiza una función 114-2 de clasificación de entrada ligera BCN para tareas entrantes desde la fuente o fuentes 110-3 de entrada de CPU que corresponden al menos a algunos de los núcleos 40 de procesador (es decir, los núcleos 40-3 y 40-4 de procesador) y la fuente 110-4 de entrada LITR. Con respecto a la función 114-1 de clasificación de entrada ligera de L2, el motor MPP de la NPU 48 determina si la dirección MAC del paquete entrante identificado por la tarea entrante es la de la estación 16 base. Tenga en cuenta que los paquetes IP intercambiados entre el SC DO y los núcleos MP DO se intercambian, en esta realización, sobre un túnel privado a través de la NPU 48. Si la dirección MAC de destino no coincide con la de la estación 16 base, en una realización, el motor MPP de la NPU 48 inserta la tarea entrante en una cola MTM 116 para la salida del paquete IP entrante correspondiente a un destino 118-1 de salida D/C a través de, en este ejemplo, un motor Adaptador de Entrada/Salida Ethernet (EIOA) de la NPU 48 o una cola MTM 120 para la salida del paquete IP correspondiente a un destino 118-2 de salida B/H a través del motor EIOA de la NPU 48, según corresponda. El destino de la salida 118-1 D/C corresponde al puerto 68 de conexión en cadena, y el destino 118-2 de salida B/H corresponde a la interfaz 44 de red compartida a la red 26 de retorno. En una realización alternativa, el motor MPP se inserta la tarea entrante en una cola MTM 121 para programar y pasar a una función 122 de procesamiento de L2. La función 122 de procesamiento de L2 luego pasa la tarea entrante a la cola MTM 116 para la salida del paquete de entrada correspondiente al destino 118-1 de salida D/C o la cola MTM 120 para la salida del paquete de entrada correspondiente al destino 118-2 de salida B/H.
Si la dirección MAC de destino coincide con la de la estación 16 base, se necesita un procesamiento complejo. Como tal, el motor MPP inserta la tarea entrante en la cola MTM 121 para programarla y pasarla a la función 122 de procesamiento de L2 o pasa la tarea entrante a través de una función 124 de conformado MTM del motor MTM
dependiendo de la implementación particular. Para esta discusión, suponga que la tarea entrante se inserta en la cola 121 MTM para ser programada y procesada por la función 122 de procesamiento de L2. Para proporcionar la función 122 de procesamiento de L2, la NPU 48 pasa la tarea entrante a través de uno o más motores NPU que realizan una o más operaciones de procesamiento de L2 como, por ejemplo, el procesamiento de Ethernet, el procesamiento de IP (por ejemplo, la verificación de la integridad de IP y el enrutamiento de direcciones DA IP), la autenticación de IP y el procesamiento de UDP.
Después del procesamiento de L2, si el paquete IP entrante es un paquete DO, la tarea entrante correspondiente se pasa a una cola MTM y a la función 126 de conformado opcional para la salida a un destino 118-3 de salida de CPU que corresponde a uno de los núcleos 40-1 y 40-2 de procesador para el procesamiento de DO a través de un motor de Adaptador de CPU Nuevo (NCA) de la NPU 48. Tenga en cuenta que el motor NCA es un motor de hardware que conecta, en una realización, una CPU PowerPC ™ compleja con el acelerador de ruta de datos ACP3400. Por el contrario, si el paquete IP entrante tiene una carga útil que incluye múltiples paquetes BCN, después del procesamiento de l2, la tarea entrante se pasa a la función 124 de conformado MTM y luego es programada por el motor MTM para que sea procesada por uno o más motores NPU que realizan una función 128 de desconcatenación de IP a BCN. La función 124 de conformado MTM controla la tasa de datos a los motores de procesamiento por debajo, lo que puede ser deseable en algunas realizaciones. Después de la desconcatenación de IP a BCN, una o más motores NPU que realizan una función 130 de conmutación BCN (por ejemplo, una o más operaciones de conmutación BCN como la validación BCN y BCN) procesan múltiples tareas para los paquetes BCN correspondientes extraídos del paquete IP entrante. enrutamiento). Como resultado de la conmutación BCN, cada uno de los paquetes BCN se enruta a uno de los objetivos de salida de la CPU 118-3 o a un objetivo de salida HSSL 118-4 que corresponde a la interfaz de la unidad de radio 38 a través del motor EIOA de la NPU 48. Al enrutar los paquetes BCN al destino de salida apropiado 118-3 o 118-4, las tareas correspondientes se pasan de la función 130 de conmutación BCN a la cola MTM y la función 126 de conformado opcional o una función 132 de conformado MTM, respectivamente.
Como se ilustra, la NPU 48 también realiza la función 114-2 de clasificación de entrada ligera BCN para tareas entrantes de al menos algunos de los núcleos 40 de procesador (es decir, los núcleos 40-3 y 40-4 de procesador) y la interfaz 38 de la unidad de radio. Con respecto a la clasificación de entrada ligera BCN, el motor MPP de la NPU 48 recibe la tarea entrante y, dado que el paquete correspondiente es un paquete BCN, pasa la tarea entrante a una cola MTM y a la función 134 de conformado opcional. La tarea entrante se pasa a través de uno o más motores NPU que proporcionan la función 130 de conmutación BCN (por ejemplo, uno o más motores NPU que realizan una o más operaciones BCN tales como la validación BCN, el enrutamiento BCN y el reensamblaje BCN/ACN).
Como resultado de la conmutación BCN, si el paquete BCN está destinado a uno de los núcleos 40 de procesador, el paquete BCN se enruta a la cola MTM y la función 126 de conformado opcional para la salida al núcleo 40 de procesador apropiado. Del mismo modo, si el paquete BCN está destinado a una de las unidades 30 de radio, el paquete BCN se enruta a la función 132 de conformado MTM para su salida a la interfaz 38 de la unidad de radio. Por el contrario, si el paquete BCN está destinado al puerto 68 de conexión en cadena o a la red 26 de retorno, múltiples paquetes BCN entrantes que tienen el mismo destino se concatenan en un solo paquete IP. Para realizar la concatenación BCN a IP, el motor MTM de la NPU 48 pasa los paquetes BCN que tienen el mismo destino a través de uno o más motores NPU que realizan una función 136 de concatenación BCN a IP. Una tarea correspondiente al paquete IP resultante se pasa después a través de uno o más motores NPU que realizan la función 122 de procesamiento de L2. Como resultado del procesamiento de L2, el paquete IP se enruta al puerto 68 de conexión en cadena o a la red 26 de retorno, según corresponda.
Como se discutió anteriormente, la NPU 48 adicionalmente proporciona control de flujo. En la Figura 8, el control de flujo se proporciona a través de la contrapresión desde la función 122 de procesamiento de L2 a la cola MTM 121 como se indica mediante la flecha discontinua. Además, el control de flujo se proporciona a través de la contrapresión desde la función 130 de conmutación BCN a la cola MTM y a la función 134 de conformado opcional como se indica mediante la flecha discontinua.
La flexibilidad de la NPU 48 en la arquitectura de la familia 3400 de procesadores multinúcleo ACP hace que las formas tradicionales de control de flujo sean imposibles. A este respecto, la Figura 9 ilustra una realización de la NPU 48 en la que se proporciona control de flujo. En esta realización, cada motor NPU incluye el motor MPP, el motor MTM, un motor de Procesador de Protocolo de Seguridad (SPP), un Motor de Verificación de Integridad de Paquetes (PIC), un motor de Bloque de Ensamblaje de Paquetes (PAB), un motor de Editor de Flujo (SED), y el motor EIOA incluye una serie de iTq . Por ejemplo, cada motor NPU puede tener dos o cuatro ITQ. En particular, el motor EIOA tiene múltiples puertos, a saber, un puerto de retorno (B/H), un puerto de conexión en cadena (D/C) y un puerto LITR (es decir, un puerto de interfaz de unidad de radio). El motor EIOA tiene dos ITQ por puerto. La Figura 9 ilustra cuatro ITQ 138 del motor MPP referido aquí como Mp P 1 ITQ a MPP 4 ITQ; cuatro iTq 140 del motor MTM referido aquí como ITQ 1 MTM a ITQ 4 MTM; cuatro ITQ 142 del motor EIOA denominadas en este documento ITQ 1 B/H EIOA e ITQ 2 B/H EIOA del puerto de retorno, ITQ 2 D/C EIOA del puerto de conexión en cadena e ITQ 1 LITR EIOA del puerto LITR; dos ITQ 144 del motor SpP referidas aquí como ITQ 1 SPP e ITQ 2 SPP; dos ITQ 146 del motor PIC denominado en este documento ITQ 1 PIC e ITQ 2 PIC; dos ITQ 148 del motor PAB referido en este documento como ITQ 1 PAB e ITQ 2 PAB; y dos ITQ 150 del motor SED referidas aquí como ITQ 1 SED y ITQ 2 SED.
En la Figura 9, el motor MPP se ilustra como dos componentes separados, a saber, una función 152-1 de clasificación de entrada ligera MPP y un componente 152-2 de procesamiento MPP. Sin embargo, tenga en cuenta que la función 152-1 de clasificación de entrada ligera MPP y el componente 152-2 de procesamiento MPP se ilustran por separado solo para mayor claridad y facilidad de discusión. En realidad, la función 152-1 de clasificación de entrada ligera MPP y el componente 152-2 de procesamiento de MPP son implementados por un solo motor MPP de la NPU 48. De manera similar, el motor MTM se ilustra como un programador 154-1 de procesamiento ligero y complejo y los conformadores 154-2 y 154-3 de salida MTM para mayor claridad y facilidad de discusión. Sin embargo, el planificador 154-1 de procesamiento MTM ligero y complejo y los conformadores 154-2 y 154-3 de salida MTM se implementan mediante un solo motor MTM. Además, en la Figura 9, el motor SPP se hace referencia como motor SPP 156, el motor PIC se hace referencia como motor PIC 158, el motor PAB se hace referencia como motor PAB 160 y el motor SED se hace referencia como motor SED 162.
Como se discutió anteriormente, una tarea se pasa a través de uno o más motores NPU en un orden programable tal como se definió mediante una tubería virtual y modificada por los motores NPU en el camino. Las tareas son generadas por motores NPU especializados (por ejemplo, el motor EIOA, el motor MPP y el motor NCA) en respuesta a los paquetes entrantes recibidos por la NPU 48. Así, por ejemplo, cuando la NPU 48 recibe un paquete IP, el motor EIOA genera una tarea de entrada para el paquete IP. Dentro de la NPU 48, las tareas generalmente representan paquetes en ciertas fases de su procesamiento. Las colas de tareas de salida pueden enviar tareas a colas de tareas de entrada a través de un anillo de tareas de la NPU 48.
Las ITQ de los motores NPU pueden crecer y congestionarse si el motor NPU asociado está sobrecargado por las tareas que el motor NPU presenta para su procesamiento. Los mecanismos de control de flujo de la Figura 9 se ocupan de la congestión de las ITQ para evitar el crecimiento ilimitado y el agotamiento de la memoria. Principalmente, el control de flujo se proporciona a través de la contrapresión de muchas de las ITQ al programador 154-1 de procesamiento ligero y complejo MTM cuando el número de tareas en las ITQ supera un umbral predeterminado para esa ITQ en particular. Los umbrales predeterminados generalmente serán diferentes para diferentes motores NPU y posiblemente para diferentes ITQ del mismo motor NPU. Los umbrales se seleccionan preferiblemente para que sean lo suficientemente altos como para mantener ocupados todos los motores NPU, especialmente el motor MPP, pero lo suficientemente bajos como para controlar la latencia. Cuando los umbrales se implementan como una medida de seguridad (por ejemplo, ITQ 2 MPP), los umbrales se configuran lo suficientemente altos como para que nunca se superen los umbrales, a menos que se cuelguen el motor o los motores NPU correspondientes.
En funcionamiento, la congestión en cualquiera de las ITQ que proporcionan control de flujo al programador 154-1 de procesamiento ligero y complejo MTM da como resultado que se proporcione contrapresión al programador 154-1 de procesamiento ligero y complejo MTM a través de un anillo de contrapresión de la NPU 48. En respuesta, el planificador 154-1 de procesamiento ligero y complejo MTM deja de enviar nuevas tareas a las ITQ de los motores NPU posteriores. Tenga en cuenta que muchos de las ITQ que proporcionan control de flujo al programador 154-1 de procesamiento ligero y complejo MTM reciben tareas directamente del motor MTM, en cuyo caso la contrapresión que detiene el programador 154-1 de procesamiento ligero y complejo MTM tiene sentido. Sin embargo, otras ITQ (por ejemplo, la ITQ 3 MPP y la ITQ 4 MPP) que proporcionan control de flujo al planificador 154-1 de procesamiento ligero y complejo MTM no reciben tareas directamente del planificador 154-1 de procesamiento ligero y complejo MTM. Para esas ITQ, la congestión debe aliviarse deteniendo las tareas generadas por el programador 154-1 de procesamiento ligero y complejo MTM. Preferiblemente, el procesamiento de NPU para flujos que no provienen del planificador 154-1 de procesamiento ligero y complejo MTM, y por lo tanto no responderán a la contrapresión, está cuidadosamente diseñado para garantizar que estos flujos utilicen menos de la mitad del ancho de banda de procesamiento disponible de los motores NPU. Por lo tanto, por diseño, las tareas que llegan directamente desde un puerto a los motores NPU, como el motor MPP, tienen la garantía de no congestionar la NPU 48 en la etapa de clasificación de entrada ligera, incluso si hay un ataque o tormenta de denegación de servicio en uno de los puertos Ethernet.
Algunas de las ITQ no envían contrapresión al programador 154-1 de procesamiento ligero y complejo MTM. saberes decir, el ITQ 2 B/H EIOA, el ITQ 2 D/C EIOA, el ITQ 2 LITR EIOA y un ITQ 164 CPU no envían contrapresión al programador 154-1 de procesamiento ligero y complejo MTM. Más bien, la ITQ 2 B/H EIOA y la ITQ 2 D/C EIOA envían contrapresión a la función 152-1 de clasificación de entrada ligera MPP que genera sus tareas de entrada, la ITQ 1 B/H EIOA envía contrapresión al conformador 154 -2 de salida MTM que genera sus tareas de entrada, y la ITQ 164 CPU envía contrapresión al modelador de salida MTM 154-3 que genera sus tareas de entrada. Sin embargo, tenga en cuenta que la contrapresión de estas ITQ es opcional.
Cuando el planificador 154-1 de procesamiento ligero y complejo MTM recibe la contrapresión, el planificador 154-1 de procesamiento de luz y complejo MTM deja de enviar nuevas tareas a los motores NPU de procesamiento ligero y complejo. Además, en lugar de descartar tareas en las ITQ congestionadas, el programador 154-1 de procesamiento ligero y complejo MTM descarta de manera inteligente las tareas durante el procesamiento en cola para las colas de datos MTM. De esta manera, se pueden mantener estadísticas sobre el número de tareas, o paquetes, descartados, un tamaño de datos de los paquetes descartados, el tamaño de datos total de todos los paquetes descartados, o similares. Es importante destacar que si se descartara en las ITQ (por ejemplo,
simplemente descartando nuevas tareas una vez que una ITQ está lleno), entonces no se mantendrían estadísticas sobre las tareas/paquetes descartados, lo que no sería deseable.
La Figura 10 ilustra una realización de un programador 165 de control de flujo del motor MTM que incluye el programador 154-1 de procesamiento ligero y complejo MTM y los conformadores 154-2 y 154-3 de salida MTM de la Figura 9 de acuerdo con una realización de la presente descripción. En general, el programador 165 de control de flujo del motor MTM implementa la conformación de salida y la programación de arbitraje. El planificador 165 de control de flujo incluye un planificador raíz (0) que permite que coexistan múltiples planificadores diversos de nivel 1 (1a, 1b, 1d y 1e). Tenga en cuenta que la Figura 10 es una vista abstracta del planificador 165 de control de flujo y, como tal, no se ilustran todos los planificadores de nivel 1. Un ancho de banda de programación del planificador raíz (0) se comparte entre los planificadores de nivel 1 (1a, 1b, 1e y 1d). El planificador 1a realiza la programación de arbitraje, y los otros planificadores de nivel 1 realizan el conformado de salida. Como se ilustra, los planificadores de nivel 1 proporcionan control de flujo (por ejemplo, detener el flujo en tareas salientes) en respuesta a la contrapresión de las ITQ correspondientes, como se discutió anteriormente con respecto a la Figura 9.
Como se ilustra, las tareas que han sido identificadas por la función 152-1 de clasificación de entrada de luz MPP (Figura 9) como que necesitan un procesamiento complejo forman una cantidad de flujos sin forma que se ingresan en varias colas 166 MTM. Un planificador 2a, que es un planificador de Round Robin Ponderado por Déficit en Forma (SDWRR), pasa las tareas de entrada de las colas 166 MTM al planificador 1a de acuerdo con los pesos predefinidos (Wa1 a Wa3) Los pesos (Wa1 a Wa3) representan el ancho de banda relativo, que es un paradigma diferente al de los planificadores de ITQ que planifican en función del número de paquetes sin tener en cuenta el tamaño de los paquetes. Los pesos (Wa1 a Wa3) se pueden seleccionar en función de los anchos de banda máximos esperados para cada uno de los flujos correspondientes. De esta manera, si uno de los flujos consume demasiado ancho de banda, ese flujo tiene a mayor probabilidad de congestión y, finalmente, de descarte. Tenga en cuenta que, si bien se ilustran tres colas 166 MTM en este ejemplo, el número de colas 166 MTM puede variar según la implementación particular. El número de colas 166 m Tm puede seleccionarse para tener una granularidad de flujo tan pequeña o tan grande como se desee. Se puede usar una única cola 166 MTM para agrupar múltiples flujos con comportamientos similares o se pueden usar colas 166 MTM separadas para cada micro flujo. Sin embargo, si se utilizan demasiadas colas 166 MTM, puede resultar difícil calcular los anchos de banda apropiados.
De manera similar, las tareas que han sido identificadas por la función 152-1 de clasificación de entrada ligera MPP como que necesitan procesamiento ligero forman una cantidad de flujos sin forma que se ingresan a varias colas 168 MTM. Un planificador 2c, que es un planificador SDWRR pasa las tareas de entrada de las colas 168 MTM al planificador 1a de acuerdo con los pesos predefinidos (Wc1 a Wc3) Los pesos (Wc1 a Wc3) representan el ancho de banda relativo. Los pesos (Wc1 a Wc3) se pueden seleccionar en función de los anchos de banda máximos esperados para cada uno de los flujos correspondientes. De esta manera, si uno de los flujos consume demasiado ancho de banda, ese flujo tiene la mayor probabilidad de congestión y, finalmente, de descarte. Tenga en cuenta que, si bien se ilustran tres colas 168 MTM en este ejemplo, el número de colas 168 MTM puede variar según la implementación particular. El número de colas 168 m Tm puede seleccionarse para tener una granularidad de flujo tan pequeña o tan grande como se desee. Se puede usar una sola cola 168 MTM para agrupar múltiples flujos con comportamientos similares o se pueden usar colas 168 MTM separadas para cada micro flujo. Sin embargo, si se usan demasiadas colas 168 MTM, puede resultar difícil calcular los anchos de banda apropiados.
Las tareas de entrada que se han procesado e identificado para la desconcatenación de IP a BCN forman un flujo conformado que se ingresa en una cola 170MTM. Las tareas de entrada se pasan de la cola 170 MTM a través de una función 172 de conformado de tasa a un planificador 2b de nivel 2. Debe tenerse en cuenta que la función 172 de conformado de tasa es necesaria como resultado de una falla expuesta en la forma en que opera el motor MPP. Específicamente, la desconcatenación de IP a BCN ha expuesto un error de agotamiento de memoria del Modificador de Precola MPP (PQM). Por lo tanto, los flujos de desconcatenación de IP a BCN experimentarán una fase adicional de programación/conformado en medio de su procesamiento complejo. Específicamente, el flujo general para estos paquetes será: clasificación de entrada ligera, programación MTM, primera parte del procesamiento complejo, conformado de tasa BCN MTM, resto del procesamiento complejo y finalmente conformado de salida MTM. La salida de tasa conformada de la función 172de configuración de tasa es preferiblemente más alta que la que se observará jamás en una red real, pero la función 172 de configuración de tasa evita la posibilidad de una degradación significativa del rendimiento debido a los errores de agotamiento de memoria PQM MPP. La función 172 de conformación de tasa no es técnicamente parte de la fase de espera y programación de entrada proporcionada por el motor MTM porque los flujos correspondientes ya están ingresados en cola antes de la fase final de clasificación y verificación de encabezado. Por esta razón, las tareas generadas por la función 172 de conformado de tasa entran en una cola MPP diferente (es decir, ITQ 2 MPP) que el resto de las tareas generadas por el planificador 1a (es decir, ITQ 1 MPP).
El planificador 1a es un planificador SDWRR que luego pasa las tareas de entrada desde los planificadores 2a, 2b y 2c de nivel 2 al planificador raíz (0) de acuerdo con los pesos predefinidos, que en este ejemplo son 0.25, 0.25 y 0.5 para los planificadores 2a, 2b y 2c de nivel 2, respectivamente. Los pesos 0.25, 0.25 y 0.5 representan el ancho de banda relativo. Tenga en cuenta que los pesos utilizados por el planificador 1a son solo ejemplos y pueden variar según se desee para la aplicación particular. Los valores de 0.25, 0.25 y 0.5 se seleccionaron para el ejemplo para proporcionar una buena mezcla entre tres clases de flujos (es decir, el procesamiento complejo, el conformado BCN
y el procesamiento ligero) al tiempo que proporciona un sesgo al tráfico que es fácil de procesar y, por lo tanto, saldrá de la NPU 48 más rápido cuando esté programado. Los pesos influyen en la latencia de los paquetes cuando hay una sobrecarga de los recursos de la NPU, lo que resulta en que las colas 166, 168 y 170 MTM están presionadas por los motores de la NPU.
En general, las colas 166, 168 y 170 MTM asociadas con el planificador 1a no se contrapresionan directamente. Más bien, el planificador 1a es el punto de contrapresión para las ITQ de todos los motores NPU en sentido descendente. Por lo tanto, cuando el planificador 1a se ralentiza o se detiene en respuesta a la contrapresión, entonces todas las colas 166, 168 y 170 MTM asociadas con el planificador 1a recibirán menos ancho de banda.
Como se ilustra en la Figura 10, la contrapresión de una cola de salida se proporciona a una de las colas 168 MTM. Esta contrapresión es opcional. Por ejemplo, una de las colas MTM (la cola 168 MTM en este ejemplo) puede ser una fuente dominante de datos para uno de los puertos de salida (por ejemplo, el puerto EIOA B/H). Cuando los datos salen de esta cola MTM, son procesados por el motor MPP y otros motores NPU, pero cuando los datos llegan al puerto de salida, los datos causan congestión. En este caso, puede ser valioso aislar el tráfico procedente de la cola MTM específica en la ITQ EIOA y proporcionar un parche de contrapresión a la cola MTM que obtiene la mayoría de los datos. Si no se implementa esta opción, la contrapresión para el puerto de salida puede proporcionarse al planificador 1a.
En respuesta a la contrapresión desde la cola de salida recibida en la cola 168 MTM, la cola 168 MTM correspondiente no podrá usar su peso asignado Wc3 del ancho de banda del planificador 2c. En este caso, el peso Wc3 está dividido entre las dos colas 168 MTM restantes asociadas con el planificador 2c. Una vez que se elimina la contrapresión, la cola MTM 168 nuevamente puede usar su peso asignado Wc3. De esta manera, el efecto de la contrapresión dirigida a la cola MTM 168 es disminuir la parte configurada del ancho de banda del planificador de la cola 168 MTM que se está contrapresionando. Tenga en cuenta que todos los planificadores SDWRR son preferiblemente "conservadores de trabajo", lo que significa que los planificadores hijos o las colas MTM que no tienen tareas para programar para el procesamiento cederán su parte asignada del ancho de banda del planificador a sus programadores hermanos para que tengan tareas a ser programadas para su procesamiento. Una alternativa para implementar la contrapresión desde la cola de salida a la cola 168 MTM es solicitar los datos después de que se complete el procesamiento de la NPU e implementar un planificador/conformador de salida que interactúe directamente con el puerto de salida. De esta manera, la congestión en el puerto de salida tiene un método de contrapresión más directo que permite el descarte inteligente y la recopilación de estadísticas, pero el planificador 1a no necesita participar.
A diferencia del planificador 1a (es decir, el planificador de arbitraje), los planificadores 1b, 1d y 1e (es decir, los conformadores de salida) generalmente no están asociados con un gran número de flujos. Como tal, en la Figura 10, los planificadores 1b, 1d y 1e se ilustran con jerarquías simples de uno o dos flujos conformados por planificador de nivel 1. Más específicamente, los flujos conformados que salen de la NPU 48 se introducen en una cola MTM 173 asociada con el planificador 1b, las colas 174 MTM asociadas con el planificador 1e y las colas 175 MTM asociadas con el planificador 1d. El conformado de tasa se realiza mediante las funciones 176 de conformado de tasa. También se muestra la contrapresión de una ITQ específica del motor NCA o del motor LITR EIOA. Las funciones 176 de conformado de tasa son conformadoras HDLC (es decir, conformadoras que controlan la tasa de paquetes de enlace HDLC) y no pueden recibir control de flujo por cola porque el controlador HDLC (es decir, el módulo 78 de control de la Figura 6) es parte de la interfaz 38 de unidad de radio (que se implementa preferiblemente como una matriz de puerta programable de campo (FPGA)) y, por lo tanto, se encuentra en la interfaz 74 SGMII. Como tal, la tasa precisa del controlador HDLC no es observable en la NPU 48. En este caso, el motor EIOA puede proporcionar control de flujo si se excede todo el ancho de banda de la interfaz 74 SGMII, pero las funciones 176 de conformado de la velocidad por sí solas son responsables de garantizar que no se exceda la tasa del controlador HDLC sin control de flujo.
La Figura 11 ilustra una realización de un programador 177 de procesamiento de entrada del motor MPP de acuerdo con una realización de la presente descripción. Como se ilustra, el planificador 177 de procesamiento de entrada del motor MPP incluye las IT Q 178 a 184 y un planificador 186 de Round Robin Pesado (WRR). Como se ilustra, las ITQ 178 a 184 proporcionan control de flujo, o contrapresión, al planificador 1a planificador 165 de control de flujo del motor MTM. El planificador 186 de w Rr programa tareas de entrada en las ITQ 178 a 184 para su procesamiento por el motor MPP de acuerdo con los pesos WML (medio bajo), WMED (medio), WMED (medio) y WVH (medio alto), respectivamente. Como ejemplo, WVH puede establecerse en 0,73, WMED puede establecerse en 0.1 y WML puede establecerse en 0.07. Sin embargo, tenga en cuenta que estos valores de ponderación, así como las ponderaciones relativas de las ITQ 178 a 184, pueden variar según la implementación particular. En condiciones normales de funcionamiento, los pesos no tendrán efecto porque el motor MPP está relativamente cargado y, por lo tanto, las ITQ 178 a 184 normalmente están casi vacíos.
La Figura 12 ilustra una realización de un programador 188 de procesamiento de entrada de un motor NPU de acuerdo con una realización de la presente descripción. En esta realización, el motor NPU es uno cualquiera del motor SPP, el motor PIC, el motor PAB y el motor SED. Como se ilustra, el programador 188 de procesamiento de entrada incluye las ITQ 190 y 192 y un programador 194 WRR. Al igual que con el motor MPP, los flujos o tareas pueden pasar a través de otros motores NPU antes de llegar al programador 188 de procesamiento de entrada del
motor NPU. Como se ilustra, las ITQ 190 y 192 proporcionan control de flujo, o contrapresión, al programador 1a del programador de control de flujo 165 del motor MTM. El planificador 194 WRR programa las tareas de entrada en las ITQ 190 y 192 para el procesamiento por el motor NPU de acuerdo con los pesos Wmed (medio) y Wvh (medio alto), respectivamente. Los valores para los pesos variarán según la aplicación particular; sin embargo, como un ejemplo, Wmed puede ser 0.27 y Wvh puede ser 0.73. En una realización, las tareas de la ITQ 192 siempre son seleccionadas por el planificador w Rr 194 si las tareas han pasado a través del motor MPP desde que visitó la fase de cola de entrada MTM. Por lo tanto, si un flujo ingresa al motor MPP para el segundo procesamiento o posterior, el planificador MTM le da mayor prioridad al flujo. Esta es también la razón por la cual, en la asignación de la ITQ MPP, el flujo de reingreso se asigna a una ITQ que es diferente de los flujos que ingresan al procesamiento por primera vez.
La Figura 13 ilustra una realización de un programador 196 de procesamiento de entrada del motor EIOA de la NPU 48 de acuerdo con una realización de la presente descripción. Como se ilustra, el planificador 196 de procesamiento de entrada incluye una ITQ 198 asociada con el planificador 200 N/A y las ITQ 202 y 204 asociadas con un planificador 205 Round Robin (RR). El planificador 200 N/A se muestra para indicar que no es necesaria una estrategia de planificación ya que solo hay un flujo entrando en el planificador 200 N/A (es decir, el planificador 200 N/A es un servicio completo para el flujo único). El planificador 205 de RR es un planificador de RR porque los pesos para las rutas desde las ITQ 202 y 204 son iguales. Sin embargo, los pesos pueden ser alternativamente desiguales, en cuyo caso el planificador de RR 205 puede ser alternativamente un planificador de WRR. Los flujos o tareas pueden pasar a través de otros motores NPU antes de llegar al programador 196 de procesamiento de entrada del motor EIOA. Como se ilustra, las ITQ 198, 202 y opcionalmente la 204 proporcionan control de flujo, o contrapresión, al planificador 1c, al planificador 1e y, opcionalmente, al motor MPP. El planificador de procesamiento de entrada EIOA programa tareas para que el motor EIOA las procese.
La Figura 13 también ilustra una vista resumida del programador 165 de control de flujo del motor MTM. Esta vista resumida muestra el planificador 1e como se muestra en la Figura 10, así como el planificador 1c, que no se muestra en la Figura 10. El planificador 1c es alimentado por las ITQ correspondientes 206 y los conformadores 207 de tasa y los correspondientes planificadores (2x, 2y y 2z) de nivel 2.
Ahora, la discusión se centrará en una arquitectura de descarte del procesador 34 multinúcleo de acuerdo con diversas realizaciones de la presente descripción. En general, hay dos arquitecturas de descarte implementadas dentro de la ruta de datos: los descartes de NPU en el motor MTM y los descartes de CPU en el software ejecutado por los núcleos 40 de procesador. En general, no se requerirá que los núcleos 40 de procesador descarten paquetes a menos que haya un problema con el hardware, pero los núcleos de procesador 40 son responsables de garantizar que la transmisión no tenga pérdidas y, por lo tanto, cumplan las limitaciones del hardware. Este software debe ser consciente de la congestión de hardware. En ambas arquitecturas de descarte, el motor MTM, y en particular los Motores de Computación (CE) del motor MTM, tienen un papel que desempeñar, ya sea descartando datos o comunicando congestión a los núcleos 40 de procesador. La Tabla 1 a continuación enumera todas las colas MTM y si sus secuencias de comandos CE deberían participar en los descartes de MTM o en los descartes de CPU.
Tabla 1
Por diseño, las colas de datos MTM deberían ser el único punto de descarte en la NPU 48. En condiciones excepcionales, puede ocurrir un descarte de ITQ, lo que rompe esta regla. Las excepciones de descarte de ITQ se analizan a continuación. Las colas MTM que se descartan generalmente reciben tráfico de puertos que no pueden controlarse por flujo, como los puertos HDLC a través de la interfaz 38 de la unidad de radio o el puerto de retorno. El software local en un núcleo 40 de procesador debería ser el único punto de descarte cuando los datos provienen de un núcleo 40 de procesador. En estos casos, el núcleo 40 de procesador monitoriza la contrapresión y garantiza que los recursos de hardware no se agoten. En este caso, el software puede tener que descartarse dentro del núcleo 40 de procesador si algo está mal en la transmisión de CPU o en las transferencias de CPU a CPU.
Con respecto a los descartes de MTM, los descartes no deberían ocurrir en las ITQ ya que la mayoría de las ITQ imponen contrapresión al motor MTM. Las excepciones notables son los puertos B/H y D/C EIOA para flujos de datos que nunca han sido programados por el motor MTM y, por lo tanto, el control de flujo sería ineficaz. Si se observan descartes en las ITQ durante las pruebas, los paquetes destinados a esas ITQ pueden descartarse en el motor MPP en función del control de flujo de las colas EIOA designadas.
Los descartes se cuentan preferiblemente en base a paquetes y bytes por un motor Gestor de T ráfico (TM) del motor MTM. El software puede utilizar estos recuentos de descartes para determinar qué flujos no se comportan de manera predecible. En un sistema con buen comportamiento, debe haber suficiente rendimiento de NPU para evitar descartes. Por lo tanto, los descartes son un signo de un problema en la NPU 48, en el sistema o en la red.
Los umbrales de recuento de descartes se pueden configurar mediante software de modo que el núcleo de procesador CM (es decir, el núcleo 40-3de procesador) se pueda interrumpir cuando los recuentos de descarte son excesivos. Tenga en cuenta que mientras el núcleo de procesador CM se interrumpe en esta realización, cualquier núcleo de procesador puede ser interrumpido. Las interrupciones del motor MTM al núcleo del procesador CM no son directamente parte de la arquitectura ACP. Como tal, un mecanismo de paquetes de interrupción se implementa preferiblemente como se describe a continuación.
El mecanismo de paquetes de interrupción para que el motor MTM interrumpa el núcleo del procesador CM tiene cinco fases, es decir, la creación del paquete de interrupción, armar el mecanismo de interrupción, colocar un
paquete de interrupción en una cola MTM, liberar el paquete de interrupción (interrupción) y recopilación de estadísticas. Si el software desea sondear los parámetros de la cola para recopilar estadísticas en lugar de implementar un mecanismo de interrupción, entonces este mecanismo de paquetes de interrupción no necesita ser armado y ninguno de los pasos de este procedimiento es necesario.
Como se ilustra en la Figura 14, en la primera fase, el software crea un paquete de interrupción en el núcleo 40-3 de procesador del CM (es decir, el núcleo de procesador CM), al que se hace referencia en la Figura 14 como CPU. El software puede definir el formato de este paquete, ya que el origen y el destino del paquete es el software. Una tubería virtual de ruta de datos definida de la CPU al m Tm a la CPU se utiliza para el mecanismo de paquetes de interrupción. Los paquetes de interrupción se insertan en esta tubería virtual.
Una primera copia del paquete de interrupción, referido aquí como un paquete de armado, se envía al motor MTM cuando el software está listo para habilitar el mecanismo del paquete de interrupción. El paquete de armado se dirige a una cola 208 de interrupción del motor NCA. El motor NCA funciona como la interfaz entre los núcleos 40 de procesador y la NPU. Desde el motor NCA, el paquete de armado se envía a una cola 210 de paquetes de interrupción en el motor MTM a través de una ITQ 212 de no descarte. Una secuencia de comandos 214 TM para la gestión de memoria intermedia de la cola 210 de paquetes de interrupción incluye la lógica para la activación de la contrapresión a la cola 210 de paquetes de interrupción. Esta activación de la contrapresión no es condicional. La secuencia de comandos 214 TM se ejecuta en el Motor 216 de Computación (CE). Todos los paquetes que llegan a la cola 210 de paquetes de interrupción activan esta contrapresión. El paquete de armado podría colocarse alternativamente en la cola de paquetes de interrupción 210 , pero la contrapresión no se habilitará lo suficientemente rápido como para mantener el paquete en la cola 210 de paquetes de interrupción en todos los casos. Por lo tanto, es preferible que la secuencia de comandos 214 TM descarte este paquete de armado.
Después de esperar un poco de tiempo para asegurarse de que la contrapresión ha detenido la cola 210 de paquetes de interrupción, el software puede enviar una segunda copia del paquete de interrupción a la cola 210 de paquetes de interrupción. La secuencia de comandos 214 TM no descarta esta segunda copia. se usará como un paquete de interrupción. El paquete de interrupción estará atascado en la cola 210 de paquetes de interrupción debido a la contrapresión activada por el paquete de armado. Por supuesto, la secuencia de comandos 214 TM no necesita implementar un mecanismo de descarte basado en el umbral porque solo hay un paquete de interrupción en el sistema a la vez. Puede ser útil descartar cualquier paquete de interrupción recibido cuando ya hay un paquete de interrupción en la cola 210 de paquetes de interrupción, lo que permite más opciones en la implementación del software. La secuencia de comandos 214 TM solo tiene el trabajo de activar la contrapresión. El paquete de interrupción se proporciona al núcleo CM en respuesta a la contrapresión para proporcionar así una interrupción basada en paquetes.
Más específicamente, como se ilustra en la Figura 15, cuando los paquetes de datos llegan a las ITQ 220 normales del motor MTM y se pasan a las colas 222 MTM, las secuencias de comandos 224 TM asociados con las colas 222 MTM ejecutarán un algoritmo para verificar el llenado de la cola MTM, que es uno de varios parámetros de la cola 226 almacenados en un espacio de nombres de colas MTM, y descarta el paquete si las colas 222 MTM están por encima del umbral de descarte configurado por software. Si la cola 222 MTM no está llena (el llenado de la cola MTM es inferior al umbral), el paquete se pondrá en cola. Cuando se descarta, la secuencia de comandos214 TM incrementará los paquetes descartados y los contadores de bytes. Si los contadores exceden los umbrales de eventos de estadísticas configurados por el software, entonces será necesario generar una interrupción al software. Esta es la cuarta fase. La secuencia de comandos 214 TM no impondrá el control de flujo a la cola 210 de paquetes de interrupción para liberar el paquete de interrupción. Esta es una operación condicional en el script TM de una cola de datos de usuario del motor MTM, ya que un paquete de interrupción solo debe enviarse al software de alerta si se encuentra una de las condiciones configuradas por el software.
El paquete de interrupción es transportado por su descriptor de tareas a la cola 218 NCA específicamente para paquetes de interrupción al núcleo del procesador CM. El software recuperará el paquete y lo identificará como el paquete de interrupción para la recopilación de estadísticas MTM. Es posible utilizar parámetros globales para almacenar información sobre los tipos de umbrales que se han excedido, pero los parámetros globales no pueden almacenar de manera confiable una lista de colas que requieren atención. Por lo tanto, el paquete de interrupción preferiblemente no incluye ninguna información sobre la cola de datos del usuario que activó la interrupción. Al recibir el paquete de interrupción, el software tendrá que sondear todas las colas MTM para recopilar estadísticas. Esta es la quinta fase. Las secuencias de comandos TM/Conformador de Tráfico (TS) también deben mantener el estado de la cola 210 de paquetes de interrupción (es decir, el número de paquetes en cola, el estado de contrapresión) y los estados de las colas 222 de usuario (interrupción activada). Esta información permitirá que el software monitorice y audite el sistema para que funcione correctamente y ayudará al software a encontrar las colas que necesitan atención después de una interrupción. Tenga en cuenta que las secuencias de comandos TM permiten que las políticas de gestión de la memoria intermedia sean programadas por el motor informático TM. Las secuencias de comandos TS permiten estructuras y algoritmos de programación configurables utilizando el motor de cálculo TS.
Con respecto al mecanismo de paquetes de interrupción de, algunas características del firmware (secuencia de comandos TM que se ejecuta en las colas de datos del usuario) incluyen:
• Umbral de descarte configurable por software;
• Contadores continuos de bytes descartados y paquetes descartados;
• Nivel de recuperación de estadísticas configurable por software (por ejemplo, interrupción en el primer descarte, interrupción cada descarte X donde X es una potencia de 2, y/o interrupción en el vuelco del contador;
• Indicadores de transferencia de contador (bytes y paquetes); y
• Se afirmó la interrupción de la bandera.
Las características de software para la recopilación de estadísticas de descarte incluyen:
• Encuestar todos los contadores de descarte de parámetros de cola, las banderas de vuelta atrás, y las banderas de imposición de interrupción en una interrupción.
• Implementar contadores en ejecución en software. En particular, los contadores de parámetros de cola son bits menos significativos de un contador completo. Los contadores de parámetros de cola nunca se borran debido a la falta de instrucciones atómicas disponibles para el software.
• Configurar umbrales de descarte, nivel de vuelta atrás.
• Limpiar las banderas de interrupción impuesta en los parámetros de cola.
En implementaciones alternativas, se podrían implementar más colas de paquetes de interrupción de modo que un paquete de interrupción represente un número menor de colas de datos (por ejemplo, uno por uno en el caso extremo). Sin embargo, en las realizaciones anteriores, se usa un único paquete/cola de interrupción global para todos los eventos de estadísticas MTM. Esto empuja la carga de la recopilación de estadísticas para el software. Las implementaciones alternativas evitarían el sondeo de software para ver cuál era el origen de la interrupción, pero a costa de habilitar muchos más paquetes de interrupción.
A continuación, se proporciona una realización en la que se proporciona contrapresión al núcleo de procesador CM con descartes de CPU. En algunas implementaciones, el software CM espera implementar una transmisión de datos sin pérdidas insertando solo paquetes destinados a puertos HDLC a la tasa que se acepta en el puerto HDLC. Para implementar esta característica, el software CM envía datos a una cola de hardware y monitoriza la profundidad de la cola de hardware hasta que haya espacio para agregar más datos. De esta manera, el software CM está implementando su propio control de flujo para asegurar que la latencia de la estación 16 base sea baja y que los descartes sean raros o inexistentes. Si son necesarios los descartes, el software CM descartará el exceso de datos que no caben en el puerto HDLC.
Idealmente, el procesador CM solo leería la profundidad de la cola en las colas MTM para implementar el control de flujo. Sin embargo, se supone que leer el estado del anillo de contrapresión requerirá menos sobrecarga del sistema que leer los parámetros de cola EspaciodeNombre para determinar la profundidad de la cola. En cualquier caso, se pueden escribir las secuencias de comandos TM/TS para rastrear la profundidad de la cola. Los indicadores de contrapresión pueden usarse como un indicador adicional de la profundidad de la cola en relación con el umbral de congestión configurado por software. Por lo tanto, el núcleo CM puede monitorizar los indicadores de contrapresión para saber si las colas MTM están congestionadas. Para las colas con este tipo de modelo de descarte, el motor MTM nunca debe descartarse ya que el umbral de congestión provocará que el software no envíe más datos a la cola MTM. Desde la perspectiva del software, esta es una función de monitorización de congestión, pero el comportamiento a nivel del sistema es la contrapresión de las colas MTM al sistema de colas basado en software. Sin embargo, el mecanismo de hardware hace que la congestión de colas de hardware de colas MTM sea visible para el software. El software puede implementar el algoritmo complementario para la monitorización de las colas. En la arquitectura NPU, se implementa un conformador de tasa HDLC en el motor MTM en asociación con la cola MTM para la cual se proporciona contrapresión al sistema de colas de software. La Figura 16 ilustra una arquitectura para mantener la profundidad de la cola y la información de congestión para que el software lea de acuerdo con una realización de la presente descripción. Las secuencias de comandos TM y TS 228 y 230 del motor MTM son capaces de configurar hasta 32 indicadores de contrapresión en un anillo de contrapresión 232 de la NPU 48. Estos indicadores pueden usarse para crear visibilidad de software de congestión de cola de hasta 32 colas. Las secuencias de comandos TM/TS 228 y 230 gestionan los indicadores de contrapresión comparando, para cada cola MTM 234, la profundidad de la cola actual con un umbral configurado por software, que es uno de una serie de parámetros de cola 236 almacenados en el espacio de nombres de las colas MTM. Cualquiera de los métodos (es decir, los indicadores en el anillo de contrapresión 232 o la profundidad de la cola en los parámetros de la cola) funcionaría para esta característica. Sin embargo, debido a que hay menos de 32 colas que requieren contrapresión a la cola del software, se utilizan preferiblemente los indicadores de anillo de contrapresión.
[0087] El software configura un umbral de congestión y un punto de código de anillo de contrapresión en los parámetros de cola 236 para las colas MTM 234 asociadas con esta característica. Esta lista de colas se puede extraer de la Tabla 1, donde la primera columna dice "Descarte de CPU". Si el llenado de la cola excede el umbral de congestión durante las operaciones en cola en la secuencia de comandos TM 228, se establecerá el indicador de anillo de contrapresión correspondiente al punto de código. Si el llenado de la cola cae por debajo del umbral durante las operaciones de retirada de la cola, la secuencia de comandos 230 de TS borrará el indicador de contrapresión. Los tipos de cola de descarte de CPU no requieren un umbral de descarte, por lo que esta arquitectura puede usar una secuencia de comandos TM diferente al tipo de descarte MTM.
El núcleo de procesador CM puede leer los indicadores de contrapresión para determinar si hay congestión en las colas. Normalmente, el núcleo de procesador CM leería el indicador de contrapresión antes de enviar datos a una cola. Luego, el núcleo de procesador CM puede enviar de manera segura una ráfaga de datos a la cola antes de verificar nuevamente el indicador de contrapresión. Los siguientes acrónimos se utilizan a lo largo de esta descripción.
• 3GPP2 Proyecto de Asociación de 3a Generación 2
• ACN Red de Comunicación de Aplicaciones
• ACP Procesador de Comunicación Axxia®
• AMP Procesamiento Múltiple Asimétrico
• ASIC Circuito Integrado para Aplicaciones Especificas
• BCN Red de Comunicación de la Estación Base
• B/H Retorno
• BS Estación Base
• BSC Controlador de Estación Base
• CDMA Acceso Múltiple por División de Código
• CE Motor de Computación
• CM Módulo de Control
• CPRI Interfaz de Radio de Paquetes común
• CPU Unidad Central de Procesamiento
• DA Dirección de Destino
• D/C Conexión en Cadena
• DO Solo Datos o datos Optimizados
• DO MP Procesador de Módem de Solo Datos
• DO SC Controlador de Sistema de Solo Datos
• EIOA Adaptador de Entrada/Salida de Ethernet
• EV-DO Datos de Evolución Optimizados
• FPGA Matrices de Puertas Programables en Campo
• GPS Sistema de Posicionamiento Global
• HDLC Comunicación de Enlace de Datos de Alto Nivel
• HSSL Enlace Serie de Alta Velocidad
• IP Protocolo de Internet
• ITQ Cola de Tareas de Entrada
• L2 Capa 2
• LITR Transmisor y Receptor de Capa 1
• LTE Evolución a Largo Plazo
• MAC Control de Acceso al Medio
• MPP Procesador de Paquetes Modulares
• MS Estándar Múltiple
• MTM Administrador de Tráfico Modular
• NCA Adaptador de CPU Nuevo
• NPU Unidad de Procesamiento de Red
• OAM Operaciones, Administración y Mantenimiento
• PAB Bloque de Ensamblaje de Paquetes
• PCIE Interconexión Express de Componente Periférico
• PIC Comprobación de integridad de Paquetes
• PQM Modificador de Precola del Procesador de Paquetes Modular
• QoS Calidad de Servicio
• RAT Tecnología de Acceso por Radio
• RNC Controlador de Red de Radio
• RR Round Robin
• RTC Reloj en Tiempo Real
• RTT Tecnología de Transmisión de Radio
• SDWRR Round Robin Ponderado de Déficit de Forma
• SED Editor de Flujo
• SGMII Interfaz Serial Gigabit Media Independiente
• SMP Multiprocesamiento Simétrico
• SPP Procesador de Protocolo de Seguridad
• TM Gestor de Tráfico
• TS Conformador de Tráfico
• UDP Protocolo de Datagramas de Usuario
• Voz MP Procesador de Módem de Voz
• WRR Round Robin ponderado
Los expertos en la materia reconocerán mejoras y modificaciones a las realizaciones preferidas de la presente descripción. Todas estas mejoras y modificaciones se consideran dentro del alcance de las reclamaciones que siguen.
Claims (17)
1. Un procesador (34) multinúcleo para usar en un procesador (28) digital avanzado de banda base para una estación (16) base en una red (14) de comunicaciones celulares, comprendiendo el procesador multinúcleo:
- una pluralidad de núcleos (40, 42) de procesador, en el que al menos un subconjunto de la pluralidad de núcleos (40) de procesador soporta una pluralidad de tecnologías de acceso por radio, estando el procesador multinúcleo caracterizado por:
- dos o más interfaces (46, 46-1, 46-2) de banda base configuradas para proporcionar conectividad de banda base a dos o más módems (36, 36-1, 36-2) i) externo al procesador multinúcleo y ii) asociado con una diferente de la pluralidad de tecnologías de acceso por radio.
2. El procesador multinúcleo de la reivindicación 1, que comprende además un recurso (44) de conectividad de red compartida que proporciona conectividad a una red (26) de retorno de la red (14) de comunicaciones celulares para el procesador (34) multinúcleo.
3. El procesador multinúcleo de la reivindicación 1, que comprende además una sola arquitectura de Operaciones, Administración y Mantenimiento, OAM, para toda la pluralidad de tecnologías de acceso por radio.
4. El procesador multinúcleo de la reivindicación 3, en el que uno de la pluralidad de núcleos (40) de procesador del procesador (34) multinúcleo está dedicado para Operaciones, Administración y Mantenimiento, OAM.
5. El procesador multinúcleo de la reivindicación 1, que está configurado en un modo de multiprocesamiento asimétrico en el que cada tecnología de acceso por radio de la pluralidad de tecnologías de acceso por radio está soportada por uno diferente de al menos un subconjunto de la pluralidad de núcleos (40) de procesador, y el procesador (34) multinúcleo comprende, además:
una interfaz (44) física configurada para acoplar comunicativamente el procesador (34) multinúcleo a una red (26) de retorno de la red (14) de comunicaciones celulares; y
una unidad (48) de procesamiento de red configurada para proporcionar enrutamiento de paquetes para comunicaciones de retorno a través de la red (26) de retorno y comunicación entre núcleos entre la pluralidad de núcleos (40) de procesador del procesador (34) de múltiples núcleos.
6. El procesador multinúcleo de la reivindicación 5, en donde la unidad (48) de procesamiento de red está configurada para:
realizar una clasificación (90, 114-1, 114-2, 152-1) de entrada ligera para determinar si los paquetes entrantes recibidos por la unidad (48) de procesamiento de red requieren un procesamiento ligero o complejo; realizar el procesamiento (96) ligero de los paquetes entrantes que requieren procesamiento ligero; y realizar un procesamiento (104) complejo de los paquetes entrantes que requieren un procesamiento complejo.
7. El procesador multinúcleo de la reivindicación 6, en el que, para realizar la clasificación de entrada ligera, la unidad (48) de procesamiento de red está configurada además para, para cada paquete entrante:
determinar si una dirección MAC de destino del paquete entrante coincide con una dirección MAC de la estación (16) base;
determinar que el paquete entrante requiere un procesamiento complejo si la dirección MAC de destino coincide con la dirección MAC de la estación (16) base; y
determinar que el paquete entrante requiere un procesamiento ligero si la dirección MAC de destino es una dirección MAC asociada con un puerto (68) de conexión en cadena del procesador (28) digital avanzado de banda base.
8. El procesador multinúcleo de la reivindicación 5, en el que la unidad (48) de procesamiento de red está configurada además para proporcionar control de flujo.
9. El procesador multinúcleo de la reivindicación 5, en el que la unidad (48) de procesamiento de red comprende: un planificador (165) que planifica los paquetes entrantes para el procesamiento reenviando las tareas correspondientes a las colas (138, 144, 146, 148, 150) de tareas de entrada de los motores apropiados (152-2, 156, 158, 160, 162) de la unidad (48) de procesamiento de red;
en donde, para proporcionar control de flujo, el planificador (165) está configurado para:
recibir contrapresión de las colas de tareas de entrada de los motores cuando las colas de tareas de entrada alcancen un umbral de contrapresión predefinido; y en respuesta a recibir la contrapresión:
descartar paquetes entrantes; y
registrar estadísticas con respecto a los paquetes entrantes que se descartan.
10. El procesador multinúcleo de la reivindicación 9 en el que la unidad de procesamiento de red (48) está configurada además para proporcionar un mecanismo de interrupción en respuesta al planificador (165) que descarta un paquete entrante en respuesta a la recepción de la contrapresión y, para proporcionar el mecanismo de interrupción, la unidad de procesamiento de red (48) comprende:
una cola de interrupción (210) configurada para almacenar un paquete de interrupción;
en el que el planificador (165) está configurado para enviar el paquete de interrupción desde la cola (210) de interrupción a uno de la pluralidad de núcleos (40) de procesador del procesador (34) multinúcleo en respuesta al descarte del paquete entrante.
11. El procesador multinúcleo de la reivindicación 5, en el que la unidad (48) de procesamiento de red comprende: un planificador (165) que planifica los paquetes entrantes para el procesamiento reenviando las tareas correspondientes a las colas (138, 144, 146, 148, 150) de tareas de entrada de los motores (152-2, 156, 158, 160, 162) apropiados de la unidad (48) de procesamiento de red; en donde, para proporcionar control de flujo, el planificador (165) está configurado para:
recibir contrapresión de las colas de tareas entrantes de los motores cuando las colas de tareas entrantes alcancen un umbral de contrapresión predefinido; y
en respuesta a la recepción de la contrapresión, detener el flujo de tareas a uno o más motores posteriores.
12. El procesador multinúcleo de la reivindicación 1, que se configura en
un modo de multiprocesamiento asimétrico en el que cada tecnología de acceso por radio de la pluralidad de tecnologías de acceso por radio es soportada por uno diferente del al menos un subconjunto de la pluralidad de núcleos (40) de procesador; o
un modo de multiprocesamiento simétrico en el que la pluralidad de tecnologías de acceso por radio son soportadas por al menos un subconjunto de la pluralidad de núcleos (40) de procesador de manera distribuida.
13. Un aparato para usar en un procesador (28) digital avanzado de banda base para una estación (16) base en una red (14) de comunicaciones celulares, comprendiendo la estación (16) base el procesador (28) digital avanzado de banda base y una o más unidades (30) de radio conectadas al procesador (28) digital avanzado de banda base, comprendiendo el aparato:
dos o más módems (36, 36-1,36-2) asociados con uno diferente de una pluralidad de tecnologías de acceso por radio; y
un procesador (34) multinúcleo según cualquiera de las reivindicaciones 1 a 12.
14. El aparato de la reivindicación 13, en donde la pluralidad de tecnologías de acceso por radio comprende: una tecnología de acceso por radio de voz CDMA; y
una tecnología de acceso de radio solo de datos CDMA.
15. El aparato de la reivindicación 14, en el que la tecnología de acceso por radio de voz CDMA y la tecnología de acceso por radio solo de datos CDMA están soportadas por diferentes núcleos (40) de procesador del al menos un subconjunto de la pluralidad de núcleos (40) de procesador del procesador (34) Multinúcleo.
16. Un procesador (28) digital avanzado de banda base que comprende un aparato de acuerdo con una cualquiera de las reivindicaciones 13 a 15, en el que el aparato está integrado en el procesador (28) digital avanzado de banda base, comprendiendo además el procesador (28) digital avanzado de banda base:
uno o más recursos (43, 46, 50) compartidos utilizados por al menos un subconjunto de la pluralidad de núcleos (40) de procesador que soportan la pluralidad de tecnologías de acceso por radio.
17. El procesador (28) digital avanzado de banda base de la reivindicación 16, en donde el uno o más recursos (43, 46, 50) compartidos comprenden:
uno o más recursos físicos (50) compartidos seleccionados de un grupo que consiste en: una memoria (52), una fuente (56) de alimentación, un componente (54) de sincronización, una batería (58), un reloj (60) en tiempo real y un ventilador (62); o
uno o más recursos (38) de transporte de banda base compartidos para transportar señales de banda base entre el procesador (28) digital avanzado de banda base y la una o más unidades (30) de radio de la estación (16) base.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261594470P | 2012-02-03 | 2012-02-03 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2775798T3 true ES2775798T3 (es) | 2020-07-28 |
Family
ID=48093030
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES18214299T Active ES2775798T3 (es) | 2012-02-03 | 2013-02-01 | Procesador digital avanzado de banda base |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US9191994B2 (es) |
| EP (2) | EP3493496B1 (es) |
| AU (1) | AU2013216357B2 (es) |
| CA (1) | CA2866196C (es) |
| DK (1) | DK2810413T3 (es) |
| ES (1) | ES2775798T3 (es) |
| TR (1) | TR201901176T4 (es) |
| WO (1) | WO2013114335A1 (es) |
Families Citing this family (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10985811B2 (en) | 2004-04-02 | 2021-04-20 | Rearden, Llc | System and method for distributed antenna wireless communications |
| US10886979B2 (en) | 2004-04-02 | 2021-01-05 | Rearden, Llc | System and method for link adaptation in DIDO multicarrier systems |
| US11309943B2 (en) | 2004-04-02 | 2022-04-19 | Rearden, Llc | System and methods for planned evolution and obsolescence of multiuser spectrum |
| US10277290B2 (en) | 2004-04-02 | 2019-04-30 | Rearden, Llc | Systems and methods to exploit areas of coherence in wireless systems |
| US10200094B2 (en) | 2004-04-02 | 2019-02-05 | Rearden, Llc | Interference management, handoff, power control and link adaptation in distributed-input distributed-output (DIDO) communication systems |
| US8654815B1 (en) | 2004-04-02 | 2014-02-18 | Rearden, Llc | System and method for distributed antenna wireless communications |
| US11394436B2 (en) | 2004-04-02 | 2022-07-19 | Rearden, Llc | System and method for distributed antenna wireless communications |
| US10425134B2 (en) | 2004-04-02 | 2019-09-24 | Rearden, Llc | System and methods for planned evolution and obsolescence of multiuser spectrum |
| US11451275B2 (en) | 2004-04-02 | 2022-09-20 | Rearden, Llc | System and method for distributed antenna wireless communications |
| US8542763B2 (en) | 2004-04-02 | 2013-09-24 | Rearden, Llc | Systems and methods to coordinate transmissions in distributed wireless systems via user clustering |
| US10749582B2 (en) | 2004-04-02 | 2020-08-18 | Rearden, Llc | Systems and methods to coordinate transmissions in distributed wireless systems via user clustering |
| US10187133B2 (en) | 2004-04-02 | 2019-01-22 | Rearden, Llc | System and method for power control and antenna grouping in a distributed-input-distributed-output (DIDO) network |
| US9312929B2 (en) | 2004-04-02 | 2016-04-12 | Rearden, Llc | System and methods to compensate for Doppler effects in multi-user (MU) multiple antenna systems (MAS) |
| US9685997B2 (en) | 2007-08-20 | 2017-06-20 | Rearden, Llc | Systems and methods to enhance spatial diversity in distributed-input distributed-output wireless systems |
| US20130279341A1 (en) * | 2010-12-07 | 2013-10-24 | Michael Bahr | Congestion Notification Element and Method for Congestion Control |
| US11190947B2 (en) | 2014-04-16 | 2021-11-30 | Rearden, Llc | Systems and methods for concurrent spectrum usage within actively used spectrum |
| US11050468B2 (en) | 2014-04-16 | 2021-06-29 | Rearden, Llc | Systems and methods for mitigating interference within actively used spectrum |
| US11189917B2 (en) | 2014-04-16 | 2021-11-30 | Rearden, Llc | Systems and methods for distributing radioheads |
| US20150229372A1 (en) * | 2014-02-07 | 2015-08-13 | Rearden, Llc | Systems and methods for mapping virtual radio instances into physical volumes of coherence in distributed antenna wireless systems |
| US10194346B2 (en) | 2012-11-26 | 2019-01-29 | Rearden, Llc | Systems and methods for exploiting inter-cell multiplexing gain in wireless cellular systems via distributed input distributed output technology |
| KR20140078308A (ko) * | 2012-12-17 | 2014-06-25 | 한국전자통신연구원 | 고속데이터 직렬접속 정합장치, 그 cpri 송신방법 및 수신방법 |
| US9973246B2 (en) | 2013-03-12 | 2018-05-15 | Rearden, Llc | Systems and methods for exploiting inter-cell multiplexing gain in wireless cellular systems via distributed input distributed output technology |
| US10164698B2 (en) | 2013-03-12 | 2018-12-25 | Rearden, Llc | Systems and methods for exploiting inter-cell multiplexing gain in wireless cellular systems via distributed input distributed output technology |
| US10547358B2 (en) | 2013-03-15 | 2020-01-28 | Rearden, Llc | Systems and methods for radio frequency calibration exploiting channel reciprocity in distributed input distributed output wireless communications |
| US9755973B2 (en) * | 2013-08-07 | 2017-09-05 | Citrix Systems, Inc. | Performing QoS on unknown bandwidths through rate estimating TCP congestion handlers |
| US9762497B2 (en) * | 2013-11-26 | 2017-09-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, method and apparatus for network congestion management and network resource isolation |
| US9361231B2 (en) * | 2014-01-15 | 2016-06-07 | International Business Machines Corporation | Implicit I/O send on cache operations |
| US11290162B2 (en) | 2014-04-16 | 2022-03-29 | Rearden, Llc | Systems and methods for mitigating interference within actively used spectrum |
| US11606685B2 (en) | 2014-09-17 | 2023-03-14 | Gigsky, Inc. | Apparatuses, methods and systems for implementing a trusted subscription management platform |
| US11051160B2 (en) * | 2014-09-17 | 2021-06-29 | Simless, Inc. | Apparatuses, methods and systems for implementing a system-on-chip with integrated reprogrammable cellular network connectivity |
| US10516990B2 (en) | 2014-09-17 | 2019-12-24 | Simless, Inc. | Apparatuses, methods and systems for implementing a trusted subscription management platform |
| WO2016042519A2 (en) | 2014-09-17 | 2016-03-24 | Simless, Inc. | Apparatuses, methods and systems for implementing a trusted subscription management platform |
| US11172352B2 (en) | 2014-09-17 | 2021-11-09 | Gigsky, Inc. | Apparatuses, methods, and systems for configuring a trusted java card virtual machine using biometric information |
| US10383172B2 (en) * | 2014-09-30 | 2019-08-13 | Nokia Of America Corporation | Method and apparatus for a single unit small, low-power base station supporting both metro cell outdoor (MCO) and metro radio outdoor (MRO) operations |
| CN105657831B (zh) * | 2014-12-03 | 2020-01-14 | 中兴通讯股份有限公司 | 基带资源管理方法和装置 |
| US12108488B2 (en) | 2015-05-16 | 2024-10-01 | Gigsky, Inc. | Apparatuses, methods and systems for virtualizing a reprogrammable universal integrated circuit chip |
| CN106664748B (zh) * | 2015-05-29 | 2019-11-29 | 华为技术有限公司 | 基带软件管理方法、无线接入系统、基带装置及基站管理平台 |
| KR102604290B1 (ko) * | 2018-07-13 | 2023-11-20 | 삼성전자주식회사 | 전자 장치의 데이터 패킷 처리 장치 및 방법 |
| CN113778936A (zh) * | 2021-08-17 | 2021-12-10 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 国产嵌入式dsp操作系统的性能优化方法 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070191007A1 (en) * | 2006-02-14 | 2007-08-16 | Claude Hayek | Method and system for a processor that handles a plurality of wireless access communication protocols |
| CN101193351B (zh) * | 2006-11-20 | 2011-02-16 | 华为技术有限公司 | 多制式基站及其信息处理方法和无线通信系统 |
| US8295877B2 (en) * | 2008-12-17 | 2012-10-23 | Airhop Communications, Inc. | Base station with coordinated multiple air-interface operations |
| US8457142B1 (en) * | 2011-02-18 | 2013-06-04 | Juniper Networks, Inc. | Applying backpressure to a subset of nodes in a deficit weighted round robin scheduler |
| US9001828B2 (en) * | 2011-03-21 | 2015-04-07 | Marvell World Trade Ltd. | Method and apparatus for pre-classifying packets |
| US8989009B2 (en) * | 2011-04-29 | 2015-03-24 | Futurewei Technologies, Inc. | Port and priority based flow control mechanism for lossless ethernet |
| US8891464B2 (en) * | 2011-09-19 | 2014-11-18 | Redline Innovations Group, Inc. | Architecture, devices and methods for supporting multiple channels in a wireless system |
| CN104067667A (zh) * | 2012-01-23 | 2014-09-24 | 英特尔公司 | 用于集成的多rat异类网络的网络辅助的用户关联和卸载技术 |
-
2013
- 2013-02-01 ES ES18214299T patent/ES2775798T3/es active Active
- 2013-02-01 EP EP18214299.2A patent/EP3493496B1/en active Active
- 2013-02-01 CA CA2866196A patent/CA2866196C/en active Active
- 2013-02-01 EP EP13716045.3A patent/EP2810413B1/en active Active
- 2013-02-01 AU AU2013216357A patent/AU2013216357B2/en active Active
- 2013-02-01 WO PCT/IB2013/050875 patent/WO2013114335A1/en not_active Ceased
- 2013-02-01 US US13/756,666 patent/US9191994B2/en active Active
- 2013-02-01 DK DK13716045.3T patent/DK2810413T3/en active
- 2013-02-01 TR TR2019/01176T patent/TR201901176T4/tr unknown
Also Published As
| Publication number | Publication date |
|---|---|
| EP3493496B1 (en) | 2020-01-29 |
| EP3493496A1 (en) | 2019-06-05 |
| AU2013216357A1 (en) | 2014-08-21 |
| AU2013216357B2 (en) | 2017-04-27 |
| EP2810413A1 (en) | 2014-12-10 |
| TR201901176T4 (tr) | 2019-02-21 |
| DK2810413T3 (en) | 2019-03-18 |
| EP2810413B1 (en) | 2018-12-26 |
| US9191994B2 (en) | 2015-11-17 |
| WO2013114335A1 (en) | 2013-08-08 |
| CA2866196C (en) | 2017-06-27 |
| US20130208671A1 (en) | 2013-08-15 |
| CA2866196A1 (en) | 2013-08-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2775798T3 (es) | Procesador digital avanzado de banda base | |
| EP3503507B1 (en) | Network interface device | |
| US8713220B2 (en) | Multi-bank queuing architecture for higher bandwidth on-chip memory buffer | |
| US12445395B2 (en) | Network interface device | |
| US9886072B1 (en) | Network processor FPGA (npFPGA): multi-die FPGA chip for scalable multi-gigabit network processing | |
| TWI578161B (zh) | 集成有管理控制器的網路控制器暨網路控制的方法 | |
| US8059671B2 (en) | Switching device | |
| US20120076153A1 (en) | Statistics module for network processors in virtual local area networks | |
| US8185672B2 (en) | Transmission of data bursts on a constant data rate channel | |
| ES2380983B1 (es) | Procedimiento y dispositivo para optimizar la carga de señalización en una red de comunicación celular. | |
| US20190372913A1 (en) | Real-time, time aware, dynamic, context aware and reconfigurable ethernet packet classification | |
| WO2010062916A1 (en) | Network-on-chip system, method, and computer program product for transmitting messages utilizing a centralized on-chip shared memory switch | |
| CN118509382A (zh) | 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类 | |
| US8930604B2 (en) | Reliable notification of interrupts in a network processor by prioritization and policing of interrupts | |
| Bianco et al. | Boosting the performance of PC-based software routers with FPGA-enhanced network interface cards | |
| CN110958216B (zh) | 安全的在线网络分组传输 | |
| EP2507949A1 (en) | An apparatus, an assembly and a method of operating a plurality of analyzing means reading and ordering data packets | |
| Sander et al. | Priority-based packet communication on a bus-shaped structure for FPGA-systems | |
| US9071460B1 (en) | Methods and apparatus for mapping data packets to a multi-packets cell | |
| HK40026403B (en) | Secure in-line network packet transmittal |

