A symmetric multiprocessor system includes a first processor and a second
processor for executing a multi-threaded process on packets, a first
inbound interface and a first outbound interface associated with the first
processor, a first task queue accessible for reading by the first
processor, a second inbound interface and a second outbound interface
associated with the second processor, and a second task queue accessible
for reading by at least the first processor. The first inbound interface
receives incoming packets and has a first input buffer maintaining a first
input queue of the packets for processing by the first processor. The
first outbound interface receives packets from the first processor and
transmits outgoing packets. The first task queue receives packets output
from at least the second processor and maintains another input queue of
the packets for processing by the first processor and which are outgoing
from the first outbound interface. The second inbound interface receives
incoming packets and has a second input buffer maintaining a second input
queue of the packets. The second outbound interface receives packets from
the second processor and transmits outgoing packets. The second task queue
receives packets output from at least the first processor and maintains
another input queue of the packets for processing by the second processor
and which are outgoing from the second outbound interface. The first
processor executes a process thread on packets by requesting the packets
from the first input queue and the first task queue in a predetermined
manner. The second processor executes a process thread on packets by
requesting the packets from the second input queue and the second task
queue in a predetermined manner.
Un sistema simétrico del multiprocesador incluye un primer procesador y un segundo procesador para ejecutar un proceso multi-roscado en paquetes, un primer interfaz de entrada y un primer interfaz de salida asociado al primer procesador, una primera coleta de la tarea accesible para leer por el primer procesador, un segundo interfaz de entrada y un segundo interfaz de salida asociado al segundo procesador, y una segunda coleta de la tarea accesible para leer por por lo menos el primer procesador. El primer interfaz de entrada recibe los paquetes entrantes y tiene un primer almacenador intermediario de la entrada el mantener de una primera coleta de entrada de los paquetes para procesar por el primer procesador. El primer interfaz de salida recibe los paquetes del primer procesador y transmite los paquetes salientes. La primera coleta de la tarea recibe salida de los paquetes por lo menos del segundo procesador y mantiene otra coleta de entrada de los paquetes para procesar por el primer procesador y que son salientes del primer interfaz de salida. El segundo interfaz de entrada recibe los paquetes entrantes y tiene un segundo almacenador intermediario de la entrada el mantener de una segunda coleta de entrada de los paquetes. El segundo interfaz de salida recibe los paquetes del segundo procesador y transmite los paquetes salientes. La segunda coleta de la tarea recibe salida de los paquetes por lo menos del primer procesador y mantiene otra coleta de entrada de los paquetes para procesar por el segundo procesador y que son salientes del segundo interfaz de salida. El primer procesador ejecuta un hilo de rosca de proceso en los paquetes solicitando los paquetes de la primera coleta de entrada y de la primera coleta de la tarea de una manera predeterminada. El segundo procesador ejecuta un hilo de rosca de proceso en los paquetes solicitando los paquetes de la segunda coleta de entrada y de la segunda coleta de la tarea de una manera predeterminada.