1. A method of performing N parallel lookups using a pool of shared memories: partitioning T tiles to N groups, wherein each of the T tiles includes M memories, and wherein each of N lookup paths is associated with an input port and an output port, and wherein each of N lookup paths is assigned to one of the N groups, wherein N, T and M are positive integer values; and executing the N parallel lookups, comprising: for each of N input keys: converting the input key into a plurality of lookup indexes, wherein each of the plurality of lookup indexes includes a Tile identifier (ID) of a particular tile in one of the N groups that is to be accessed by a respective lookup path and also includes a memory address of a memory in the particular tile from which data is read; determining by using a collection of match information from the particular tile which hit information to return; and determining by using a collection of hit information from those tiles indicated by the plurality of lookup indexes which final lookup result to return for a lookup path associated with the input key.