A mechanism receives memory reads and writes from a packet processing
engine, each memory access having an associated packet identifier or
sequence number. The mechanism is placed between a processing element and
a memory system such that write data is buffered and information based
upon reads and writes is recorded. Information is maintained, including a
write dependency list, allowing for the detection of memory conflicts.
When a memory conflict is detected, a restart signal is generated and the
entries for the associated sequence number are flushed. Further, the
write dependency list is consulted to determine if other packets have
been potentially corrupted and also need to be flushed. Upon detection of
dependent packets that have potentially been corrupted, further packet
restart signals are generated and sent to the packet processing engine.