Patent ID: 8683221

Claim:
A method of coordinating debugging operations in a network processor coupled to a network, the network processor having a plurality of processors coupled by at least one ring bus, the method comprising: at least one of the plurality of processors configured to generate one or more task messages corresponding to data packets received from the network; by each processor: sending a task message over the unidirectional ring bus to an adjacent processor coupled to the ring bus, the task message having a corresponding one or more destination processors; checking, upon receiving a task message, whether the processor is a destination processor for the task message and, if not, pass the task message unchanged to a next adjacent processor coupled to the ring bus, whereby the task message is passed from the source processor to each corresponding destination processor on the ring bus; reading from the task message, if the processor is a destination processor for the task message, an address of data in a system cache of the network processor to be accessed by the destination processor; requesting, by the destination processor, data corresponding to the received task from the system cache; determining, by the system cache, whether the requested data is stored in the system cache; if the data is not stored in the system cache: requesting a data transfer from the at least one external memory for the requested data; selecting, by a memory interface of the network processor, an encrypted data pipeline or a non-encrypted data pipeline based on whether the processed data transfer request includes an encrypted operation; providing the data transfer to the encrypted data pipeline if the data transfer request includes the encrypted operation; and checking a debug indicator for the data transfer request, wherein, if the debug indicator is set: disabling encryption/decryption of the encrypted data pipeline; and performing the data transfer request by the encrypted data pipeline to the at least one external memory, thereby providing the requested data to the destination processor; wherein, by having at least one of the processors receive a task message, execute a task, and provide a subsequent task message to a subsequent processor 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 one or more of the plurality of processors, and wherein each task message comprises a field indicating one of the plurality of virtual pipelines through which the task message is processed.