The DRAM Semi-Ternary CAM AMD LogiCORE⢠IP (DSTCAM) implements an associative array data structure also known as a content-addressable memory. The STCAM stores entries such as key, mask, priority, and response with arbitrary key, mask and response bit strings allowing retrieval of the response based on ternary matching of the lookup key. Ternary matching allows multiple entries to match the same lookup key. The entry with lowest priority is selected as the winner. The STCAM supports a limited number of unique masks, that is each mask is shared by multiple entries. This allows considerable logic and memory reduction compared to TCAMs. The STCAM is well suited for applications requiring efficient storage of multiple entries using a limited number of masks. For example, longest prefix matching of the IP address for IP forwarding tables or OVS mega-flow lookup tables.
DSTCAM uses dynamic random access memory (DRAM) to store the key, priority, and response to facilitate searching large tables. The number of masks scales well with the size of the table. Based on simulation of large ACL tables, the growth rate of the number of masks is low and diminishes as the number of keys increases. For example, when the number of masks increases by 10%, the number of keys doubles. This property makes the DSTCAM IP well suited for searching large tables.