1. A packet processor, comprising: one or more processors running one or more threads each having associated thread identifiers and generating virtual addresses; a first memory map stage mapping the virtual addresses to address values associated with different resources; and a second memory map stage associated with one or more of the different resources that maps the address values to a physical address region in the resource corresponding with the associated thread identifier.