1. A processor to process data units comprising: a network interface to receive one or more data units, an input data buffer to store the one or more data units after receiving a position signal, a control block comprising a safety position logic to determine fullness of the input data buffer, wherein the safety position logic is to provide the position signal to the input data buffer based on the fullness of the input data buffer, a fast path to determine if the input data units include at least a portion of a pattern, which, potentially, matches with at least one of standard patterns and create one or more jobs if there exist a potential match, a new job queue to store the one or more jobs, a job pool arbiter to allocate the one or more jobs for execution while providing a job state to be stored in a job pool, a scheduler to identify jobs from the one or more jobs that are ready to run, and a slow path including a plurality of execution units, wherein one or more of the plurality of execution units is to process the jobs, wherein the input data buffer is shared between the fast path and the slow path, wherein sharing the input data buffer avoids copying the input data units for which a potential match exists, wherein the control block to identify if there exists at least some data units, of the one or more data units, which may not be required, and retire the at least some data units from the input data buffer.