An apparatus, comprising: a data bus comprising a plurality of data lines, wherein the data bus is configured to couple to a processor which provides data to the data bus; and a plurality of state machine engines, each state machine engine of the plurality of state machine engines comprising a data buffer system and a process buffer, each of the plurality of state machine engines being coupled to different data lines of said plurality of data lines, wherein each state machine engine is configured to receive a portion of a data stream from the processor via the data lines to which it is respectively coupled such that each state machine engine receives its portion of the data stream in parallel with the other state machine engines, wherein each state machine engine stores its portion of the data stream received from the processor in its data buffer system such that the data stream is spread across the data buffer systems of the state machine engines and stored in the data buffer systems of the state machine engines in an offset manner, the apparatus further comprising a buffer interface configured to enable data transfer between the state machine engines, the buffer interface comprising an interface data bus coupled to each state machine engine and configured to provide data between the state machine engines, wherein interface data bus couples together the data buffer systems of each of the state machine engines and the process buffers of each of the state machine engines, wherein each state machine engine is configured to provide its portion of the data stream that is stored in its data buffer system to the process buffers of the other state machine engines of the plurality of state machine engines via the interface data bus and receive data at its process buffer from the other state machine engines, so that each state machine engine receives its intended data in a correct order stored in its process buffer for analysis, each state machine engine being configured to analyze the data stored in its process buffer. a data bus comprising a plurality of data lines, wherein the data bus is configured to couple to a processor which provides data to the data bus; and a plurality of state machine engines, each state machine engine of the plurality of state machine engines comprising a data buffer system and a process buffer, each of the plurality of state machine engines being coupled to different data lines of said plurality of data lines, wherein each state machine engine is configured to receive a portion of a data stream from the processor via the data lines to which it is respectively coupled such that each state machine engine receives its portion of the data stream in parallel with the other state machine engines, wherein each state machine engine stores its portion of the data stream received from the processor in its data buffer system such that the data stream is spread across the data buffer systems of the state machine engines and stored in the data buffer systems of the state machine engines in an offset manner, the apparatus further comprising a buffer interface configured to enable data transfer between the state machine engines, the buffer interface comprising an interface data bus coupled to each state machine engine and configured to provide data between the state machine engines, wherein interface data bus couples together the data buffer systems of each of the state machine engines and the process buffers of each of the state machine engines, wherein each state machine engine is configured to provide its portion of the data stream that is stored in its data buffer system to the process buffers of the other state machine engines of the plurality of state machine engines via the interface data bus and receive data at its process buffer from the other state machine engines, so that each state machine engine receives its intended data in a correct order stored in its process buffer for analysis, each state machine engine being configured to analyze the data stored in its process buffer.