45
Modular Block-RAM-Based Longest-Prefix Match Ternary Content-Addressable Memories Ameer M.S. Abdelhadi * , Guy G.F. Lemieux + , and Lesley Shannon * * School of Engineering; Simon Fraser University; Canada + Dept. of ECE; The University of British Columbia; Canada THE UNIVERSITY OF BRITISH COLUMBIA SIMON FRASER UNIVERSITY 1

Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Modular Block-RAM-Based Longest-Prefix Match Ternary

Content-Addressable MemoriesAmeer M.S. Abdelhadi*, Guy G.F. Lemieux+, and Lesley Shannon*

* School of Engineering; Simon Fraser University; Canada

+ Dept. of ECE; The University of British Columbia; Canada THE UNIVERSITY OFBRITISH COLUMBIASIMON FRASER UNIVERSITY

1

Page 2: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

BinaryContent-Addressable Memories

Hardware-based Single-Cycle Parallel Search Engines

WriteStores new data at

specific address

MatchSearch all addresses for a given data (pattern)

Found in ‘2’

“RAW”“FSP”“FPL”“FPT”

0123B C A M

Search for “FPL”

“RAW”“FSP”“FPL”“FPT”

0123B C A M

Store “FSP”in ‘1’

2

Page 3: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

TernaryContent-Addressable Memories

Adds the ability to use wildcards (X’s)

MatchSearch all addresses for a given data (pattern)

Found in

‘2’& ‘3’

“RAW”“FSP”“F**”“FP*”

0123B C A M

Search for

“FPL”

EncodingPriority Encoder (PE)

(First occurrence)

The smallest address were “FPL” is found is ‘2’

Longest-Prefix Match (LPM)

The longest matching prefix of “FPL” is found in ‘3’

3

Page 4: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Associated MemoryAKA CAM/RAM

CAM/RAM structure to read associated data

Example: search when a conference takes place

Found in ‘2’

“RAW”“FSP”“FPL”“FPT”

0123

C A M

Search for “FPL”

“FPL“ takes place in “Aug” !!

“May”“Aug”“Aug”“Dec”

0123

R A M

4

Page 5: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

CAM Classification & Applications

Binary Ternary Differentiable

Search the memory for exact match

Wildcards may be used How close is each item to the searched data?

Expensive! Power hungry! More expensive! Computing intensive!

• Memory Management• Data Compression• Package classification

• IP forwarding• The internet BGP routers

Memory-augmented neural networks• Neural Turing Machines (DeepMind)• Memory Networks (Facebook AI)

FPT’14 &FCCM’15 Current work Research in progress

BOOKRING

ROOMWOMBLINKWOODWARD

BOMB

0:1:2:3:4:5:6:7: S

imil

ari

ty V

ect

orBO**

RING

**OMW*MBLINKWO*DWARD

BOMB

0:1:2:3:4:5:6:7: Fo

un

d in

‘0’a

nd

‘2’BOOK

RING

ROOMWOMBLINKWOODWARD

BOMB

0:1:2:3:4:5:6:7: Fo

und

in lo

cati

on ‘2

’Search for “BOMB” Search for “BOMB” Search for “BOMB”

5

Page 6: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Motivation - FPGAs

1000’sMemory

Blocks

100,000’sLogic

Elements

No dedicated CAM resources in FPGAs

6

Page 7: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Objectives

Use BRAMs to construct CAMs

• Modular and flexible• Storage efficient• Single-cycle• Performance oriented

7

Page 8: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Algorithmic Heuristics

Associative ArraysHashesSearch Trees:

Tries, BSTs, …

Multi-unpredictable-cycle

Data dependent performance

Variable search depth Misses due to conflicts

8

Page 9: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Custom-designed CAMs

WordLine

BitLine

MatchLine

SearchLine

BitLin

e

Search

Line

Renesas TCAM device• 20Mbit• 360M

Searches/Sec

Modified SRAM cell – Custom-design in transistor level

Performance Cost Integration overhead

9

Page 10: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Register-Based CAMs:PE-BCAM

Concurrent register read and compare

Single-cycle Limited resources Complex routing Fits small CAMs

RAW

FSP

0

1

2

0

1

2

Search for: FPL (Match Pattern)

=?

=?

=?

FPT 33

=?

Match Indicators (Match Lines)

Found in: 2 (Match Address)

FPL is Found!(Match/Match)

CA

M A

dd

res

ses

CAM Patterns

FPL

10

Page 11: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Register-Based CAMs:LPM-TCAM

Concurrent register read and compare

Single-cycle Limited resources Complex routing Fits small CAMs

RAW

FSP

0

1

2

0

1

2

Search for: FPL (Match Pattern)

=?

=?

=?

FP* 33

=?

Match Indicators (Match Lines)

Found in: 3 with the longest matching prefix

FPL is Found!(Match/Match)

CA

M A

dd

res

ses

CAM Patterns

F**

PrefixLengths

11

Page 12: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Brute-Force Transposed-RAMA Traditional BRAM-based CAM

Key idea: Transposed RAM - data becomes addresses

WriteWrite ‘0’ to location ‘B’

MatchRead location ‘D’ for match

‘2’

3012

ABCD‘D’

3012

ABCD

‘0’ to ‘B’

* Xilinx App Notes

12

Page 13: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Brute-Force Transposed-RAMA Traditional BRAM-based CAM• How can we store data to multiple addresses?

• Specify addresses using one-hot coding

• Each bit indicates a match or “store at location”

➢PROBLEM: Depth of CAM is limited by data width of RAM• e.g. to build 1M deep CAM, we need 1M bits wide

• In FPGAs: 1000 BRAMs x 32bit wide = 32K deep CAM 1

3210

DCBA

BRAM-based Single-cycle

Depth of CAM is limited by RAM width

13

Page 14: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

CAM Cascading

• PROBLEM:• Patterns are encoded as RAM addresses

➢RAM depth is exponential to pattern width

• Solution: Cascading1. Divide pattern into smaller slices

2. Search for each slice separately

3. If all slices are found → pattern match!

➢RAM depth is linear to pattern width

RAM Depth = 2Pattern Width

RAM Depth = 2Slice Width x (Pattern Width / Slice Width)

CAM CAM CAM

SliceSlice SliceM a t c h e d P a t t e r n

Slic

e M

atch

……

Slic

e M

atch

Slic

e M

atch

Pattern Match

14

Page 15: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Narrow and Deep BCAM

Key idea: Hierarchical search1D BCAM 2D BCAM

4Mtoo

deep

2k

2k

Find a set (row) with match using a 1D BCAM

Search this set (row) in parallel for a specific match

15

Page 16: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Example

0 0 0 00 0 1 11 0 0 00 1 0 0

0 1 2 30123

addresses

pa

tte

rns2

311

0123ad

dre

sses

patterns

Transposed-RAMRAM

16

Page 17: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Example

0 0 0 00 0 1 11 0 0 00 1 0 0

0 1 2 30123

addresses

pa

tte

rns2

311

0123ad

dre

sses

patterns

Transposed-RAMRAM

• Divide address space into sets• RAM: each set in a line• Transposed-RAM: indicates

“pattern in set?”

• Hierarchical Search:1. Find a set (row) with

match using a 1D BCAM2. Search this set (row) in

parallel for a specific match

16

Page 18: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Example

0 0 0 00 0 1 11 0 0 00 1 0 0

0 1 2 30123

addresses

pa

tte

rns2 3

1 101se

ts

patterns

Transposed-RAMRAM

• Divide address space into sets• RAM: each set in a line• Transposed-RAM: indicates

“pattern in set?”

• Hierarchical Search:1. Find a set (row) with

match using a 1D BCAM2. Search this set (row) in

parallel for a specific match

16

Page 19: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Example

0 00 111 01 0

0 10123

sets

pa

tte

rns2 3

1 101

patterns

Transposed-RAMRAM

sets

• Divide address space into sets• RAM: each set in a line• Transposed-RAM: indicates

“pattern in set?”

• Hierarchical Search:1. Find a set (row) with

match using a 1D BCAM2. Search this set (row) in

parallel for a specific match

16

Page 20: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Example

0 00 111 01 0

0 10123p

att

ern

s2 31 1

01

patterns

Transposed-RAMRAM

sets

sets

Match pattern ‘3’

• Divide address space into sets• RAM: each set in a line• Transposed-RAM: indicates

“pattern in set?”

• Hierarchical Search:1. Find a set (row) with

match using a 1D BCAM2. Search this set (row) in

parallel for a specific match

16

Page 21: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Example

• Divide address space into sets• RAM: each set in a line• Transposed-RAM: indicates

“pattern in set?”

• Hierarchical Search:1. Find a set (row) with

match using a 1D BCAM2. Search this set (row) in

parallel for a specific match

0 00 111 01 0

0 10123p

att

ern

s2 31 1

01

patterns

Transposed-RAMRAM

sets

sets

16

Page 22: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Hierarchical Search 2D BCAM:Pros and Cons

Single match only

Cannot be

cascaded

RAM depth is exponential to pattern

width

Inefficient for wide patterns

BRAM-Based Single-cycleEfficient for deep CAMs

17

Page 23: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Cascadable Wide and Deep BCAM

PROBLEM: is it possible to regenerate matches for all addresses?

Key observation

Transposed RAMis a sparse matrix

ncolumns (set of addresses)accommodates nmatches (1’s) at most!

patte

rns addresses

11 1

1 11 1 1

18

Page 24: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Cascadable Wide and Deep BCAM

Key idea: use indirect indices to point to intra-set matches

Cascadable

Scalable (linear growth)

Supports wider patterns

PROBLEM: is it possible to regenerate matches for all addresses?

Key observation

Transposed RAMis a sparse matrix

ncolumns (set of addresses)accommodates nmatches (1’s) at most!

patte

rns S e t s

11

11

11

11

Intra-set Match Indicators

18

Page 25: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Cascadable Wide and Deep BCAM

Key idea: use indirect indices to point to intra-set matches

Cascadable

Scalable (linear growth)

Supports wider patterns

PROBLEM: is it possible to regenerate matches for all addresses?

Key observation

Transposed RAMis a sparse matrix

ncolumns (set of addresses)accommodates nmatches (1’s) at most!

patte

rns S e t s

11

11

11

11

BRAMLUTRAM

Intra-set Match Indicators

18

Page 26: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

01

10

Indirectly-Indexed HS BCAM:Example

• Divide address space into sets

• Store sets with a match in Indicators-RAM

• Transposed-RAM stores indices to all matches in set

• Hierarchical Search:• Find indices of all matching

sets in Transposed-RAM• Read Indicators-RAM using

indices from Transposed-RAM

0 0 0 00 0 0 1

0 01 0

0 1 2 30123

addresses

patt

erns

Transposed-RAM

2331

0123

patterns

RAM (reference)

addr

esse

s

19

Page 27: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

01

10

Indirectly-Indexed HS BCAM:Example

• Divide address space into sets

• Store sets with a match in Indicators-RAM

• Transposed-RAM stores indices to all matches in set

• Hierarchical Search:• Find indices of all matching

sets in Transposed-RAM• Read Indicators-RAM using

indices from Transposed-RAM

0 0 0 00 0 0 1

0 01 0

0 1 2 30123

addresses

patt

erns

Transposed-RAM

2331

0123

patterns

RAM (reference)

addr

esse

s

19

Page 28: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Example

• Divide address space into sets

• Store sets with a match in Indicators-RAM

• Transposed-RAM stores indices to all matches in set

• Hierarchical Search:• Find indices of all matching

sets in Transposed-RAM• Read Indicators-RAM using

indices from Transposed-RAM

0 0 0 00 0

1 0

0 0

0 1

0 1 2 30123

addresses

patt

erns

Transposed-RAM

Indicators-RAMs

0 11 0

2331

0123

patterns

RAM (reference)

addr

esse

s

19

Page 29: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Example

• Divide address space into sets

• Store sets with a match in Indicators-RAM

• Transposed-RAM stores indices to all matches in set

• Hierarchical Search:• Find indices of all matching

sets in Transposed-RAM• Read Indicators-RAM using

indices from Transposed-RAM

- --

1 0

-

0 1

0 10123

s e t s

patt

erns

Transposed-RAM

Indicators-RAMs

0 11 0

2331

0123

patterns

RAM (reference)

addr

esse

s

19

Page 30: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Example

• Divide address space into sets

• Store sets with a match in Indicators-RAM

• Transposed-RAM stores indices to all matches in set

• Hierarchical Search:• Find indices of all matching

sets in Transposed-RAM• Read Indicators-RAM using

indices from Transposed-RAM

- --

1 0

-

0 1

0 10123

s e t s

patt

erns

Transposed-RAM

Indicators-RAMs

0 11 0

2331

0123

patterns

RAM (reference)

addr

esse

sMatch pattern ‘3’

19

Page 31: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Example

• Divide address space into sets

• Store sets with a match in Indicators-RAM

• Transposed-RAM stores indices to all matches in set

• Hierarchical Search:• Find indices of all matching

sets in Transposed-RAM• Read Indicators-RAM using

indices from Transposed-RAM

- --

1 0

-

0 1

0 10123

s e t s

patt

erns

Transposed-RAM

Indicators-RAMs

0 11 0

2331

0123

patterns

RAM (reference)

addr

esse

sMatch pattern ‘3’

19

Page 32: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS BCAM:Example

• Divide address space into sets

• Store sets with a match in Indicators-RAM

• Transposed-RAM stores indices to all matches in set

• Hierarchical Search:• Find indices of all matching

sets in Transposed-RAM• Read Indicators-RAM using

indices from Transposed-RAM

- --

1 0

-

0 1

0 10123

s e t s

patt

erns

Transposed-RAM

Indicators-RAMs

0 11 0

2331

0123

patterns

RAM (reference)

addr

esse

sMatch pattern ‘3’

Found in ‘1’ and ‘2’0 1 1 00 1 2 3

19

Page 33: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS TCAMs

• Can Indirectly-Indexed HS be applied to TCAMs?

• Can we still do the same set grouping as in II-HS-BCAM? The answer is YES!

11

11

0 1 0 10 1 0 1

0 01 0

0 1 2 300011011

addresses

patt

erns

Transposed-RAM

1***110*

0123

patterns

RAM (reference)

addr

esse

s

Observation:TCAM addresses (columns) may have more than one pattern (due to wildcards)

20

Page 34: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS TCAMs

11

11

0 1 0 10 1 0 1

0 01 0

0 1 2 300011011

addresses

patt

erns

Transposed-RAM

1***110*

0123

patterns

RAM (reference)

addr

esse

s

Key Observation:A set of n addresses (columns) has at most ndifferent lines(proof in paper)

21

Page 35: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS TCAMs

-

0 1 2 300011011

addresses

patt

erns

Transposed-RAM

1***110*

0123

patterns

RAM (reference)

addr

esse

s

Key Observation:A set of n addresses (columns) has at most ndifferent lines(proof in paper)

0 11 1

Indicators-RAMs

0 11 0

• Move lines to LUTRAMs and store indices• Requires n×n LUTRAMs for each set

22

Page 36: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS TCAMs:Design parameters

23

Page 37: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS TCAMs:Design parameters

24

Page 38: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Indirectly-Indexed HS TCAMs:Area and Performance

25

Page 39: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Open Source

HS BCAM (FPT’14) II-HSBCAM (FCCM’15) II-HS TCAM (FPL’18)

Patterns support Narrow Wide Wide

Match encoding PE PE LPM

Storage efficiency 90% 8% 8%

Fmax (Stratix V) Up to 550MHz Up to 300MHz Up to 200MHz

Cycle/Update 2 2 Shallowest RAMDepth

Search/cycle 1 1 1

Search latency 2 ~ log4(depth) ~ log4(depth)

Available as open source: https://github.com/AmeerAbdelhadi• Modular and parametric Verilog files• Run-in-batch simulation and synthesis manager

26

Page 40: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Conclusions

Brute-Force Transposed-RAM CAMs BRAM-based ✓

Single-cycle ✓

Deep

Wide ✓

Cascadable ✓

pa

tte

rns

a d d r e s s e s

Scalable ✓

26

Page 41: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Conclusions

Hierarchical Search (HS) CAMs BRAM-based ✓

Single-cycle ✓

Deep ✓

Wide

Cascadable

pa

tte

rns

s e t s

Scalable

26

Page 42: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Conclusions

Indirectly-Indexed HS (II-HS) CAMsBRAM-based ✓

Single-cycle ✓

Deep ✓

Wide ✓

Cascadable ✓

pa

tte

rns

s e t s

Scalable ✓

Intra-set Match Indicators

Multi-unpredictable-cycle

26

Page 43: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Thank You!

Page 44: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

Backup Slides

Page 45: Modular Block-RAM-Based Longest-Prefix Match Ternary ...ece.ubc.ca/~ameer/publications/Abdelhadi-Talk-2018Aug-FPL2018-LPM... · CAM Cascading •PROBLEM: •Patterns are encoded as

16

II2DHierarchicalBrute-Forcepa

ttern

s addresses

patte

rns s e t s

patte

rns s e t s

Match IndicatorsBRAM-based ✓ ✓ ✓

Single-cycle ✓ ✓ ✓

Deep ✓ ✓

Wide ✓ ✓

Conclusions