1. A method, comprising: receiving a data stream at an input interface, the input interface connected to a processor, memory, and a deduplication accelerator; performing chunk boundary identification and chunk fingerprinting at the deduplication accelerator in a single stage, wherein chunk boundary identification delineates a first chunk and chunk fingerprinting calculates a chunk identifier for the first chunk, wherein chunk boundary identification and chunk fingerprinting are used to perform deduplication on the data stream; maintaining a state machine using the processor; accessing a deduplication dictionary using the chunk identifier to determine whether a first chunk has previously been written to persistent storage.