1. A system coupled to a network, the system comprising: a plurality of ring-coupled processing cores, the processing cores coupled by at least one ring bus; and a common memory adapted for direct communication with each of the processing cores, the common memory comprising a plurality of addressable memory arrays; at least one of the plurality of processing cores configured to generate one or more task messages corresponding to at least a portion of data packets received from the network; each processing core configured to: send a task message over the at least one ring bus to an adjacent processing core coupled to the ring bus, the task message having a corresponding one or more destination processing cores; check, upon receiving a task message, whether the processing core is a destination processing core for the task message and, if not, pass the task message unchanged to a next adjacent processing core coupled to the ring bus, whereby the task message is passed from the source processing core to each corresponding destination processing core on the ring bus; if the processing core is a destination engine for the task message, the processing core is configured to: read from the task message (i) an address of data in the common memory to be accessed by the destination processing core, and (ii) a flow identifier of the task; compute a hash value based on at least a part of the address; and select, based on the computed hash value and the flow identifier of the task, one of the plurality of addressable memory arrays in which to store the received task; wherein, by having at least one of the processing cores receive a task message, execute a task, and provide a subsequent task message to a subsequent processing core based on the received data packet, a virtual pipeline is defined for processing the received data packet, the virtual pipeline defining a flow order for each task message through two or more of the plurality of processing cores, and wherein each task message comprises a field indicating one of the plurality of virtual pipelines through which the task message is processed.