Patent ID: 7940755

Claim:
A network router for routing data packets in a network comprising: a series of ports receiving and transmitting data packets; a general-purpose processor communicating with the series of ports to provide for network routing functions including packet processing but exclusive of some data packet lookup functions; a packet lookup engine communicating with the general-purpose processor to receive data therefrom and to conduct memory lookups based on the data, the packet lookup engine comprising a set of intercommunicating computational tiles each tile including: (1) a set of lookup processors providing elemental memory lookup functions, each lookup processor associated with a program memory for holding program instructions; (2) a lookup memory holding packet related data and accessible by the set of lookup processors executing the elemental memory lookup functions; and (3) interconnection circuitry managing intercommunication of data between the tiles; wherein the program instructions include: (1) at least one instruction reading a register associated with data received at the tiles; (2) at least one instruction reading the lookup memory associated with the tile; and (3) at least one instruction sending data to another tile; wherein the program instructions when executed prevent at least one of: (i) collisions among data being transmitted among the tiles; (ii) conflicting demands for processing by lookup processors of a tile; and (iii) direct transmission from one tile to a nonadjacent tile.