Patent ID: 7743200
Filing Date: 2010-06-22
Classification: G06F,Y02D

Abstract:
1. A method comprising: profiling, with a network device deployed within a network, rates at which one or more processors of the network device utilize different software instructions, wherein the software instructions are stored to a memory of the network device and executed by the network device to process network communications; identifying, with the network device based on the profiled rates, a set of software instructions that are most frequently utilized by the one or more processors to process the network communications; identifying, with the network device, a perfect hash function that only maps memory addresses of the identified set of software instruction to different hash values, wherein each of the different hash values corresponds to a different instruction cache slot of a fully associative instruction cache module of the network device; programming, with the network device, the fully associative instruction cache module of the network device to apply the perfect hash function, wherein the fully associative instruction cache module includes a set of instruction cache slots, and wherein each instruction cache slot is capable of being associated with any memory address of the memory; loading, with the network device, each of the identified software instructions into the corresponding instruction cache slots indicated by the hash values calculated by applying the first perfect hash function to the memory addresses of the identified software instructions; receiving, with the fully associative cache module, a read request for one of the instructions stored to a memory address of the memory; applying, with the fully associative cache module, the perfect hash function to the memory address in order to calculate a hash value that indicates one of the instruction cache slots when the fully associative cache module receives the read request; determining whether the one of the instruction cache slots stores the software instruction requested by the read request; returning a copy of the one of the instructions that is stored in the one of the instruction cache slots in response to the determination that the one of the instruction cache slots stores the software instruction requested by the read request; and forwarding the read request to the memory in response to the determination that the software instruction requested by the read request-has a memory address that is not within the set of memory addresses for which the perfect hash function was calculated and cannot be retrieved from the fully associative cache module.