A key engine that performs route lookups for a plurality of keys may
include a data processing portion configured to process one data item at
a time and to request data when needed. A buffer may be configured to
store a partial result from the data processing portion. A controller may
be configured to load the partial result from the data processing portion
into the buffer. The controller also may be configured to input another
data item into the data processing portion for processing while requested
data is obtained for a prior data item. A number of these key engines may
be used by a routing unit to perform a large number of route lookups at
the same time.