1. A hash processor for a system having a plurality of processing modules, the hash processor coupled to at least one shared memory, the hash processor comprising: a hash table descriptor table comprising N entries, each entry corresponding to a hash table of the hash processor, where N is a positive integer; a direct mapped table in the at least one shared memory, the direct mapped table comprising at least one memory block including M entries, where M is a positive integer, each entry comprising a hash bucket, wherein the direct mapped table is configured to allocate a predetermined number of hash buckets to each hash table; each hash bucket comprising (i) one or more entries, each entry comprising a hash key and value pair, and (ii) a link value; a pool of memory blocks in the at least one shared memory, the memory blocks comprising one or more dynamic hash buckets available for allocation to a corresponding hash table; wherein the hash processor is configured to allocate a dynamic hash bucket to a hash table when the number of entries in the one or more hash buckets in the direct mapped table corresponding to the hash table reaches a threshold, and wherein the link value in the corresponding hash bucket in the direct mapped table is set to the address of the dynamic hash bucket allocated to the corresponding hash table.