Tải bản đầy đủ (.doc) (62 trang)

Tổng quan về bộ nhớ nội dung địa chỉ ba mức(TCAM )

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.35 MB, 62 trang )

MỤC LỤC
LỜI NÓI ĐẦU................................................................................................................................................4
3. Kỹ thuật VLMP cho loại bỏ phân loại (VLMP Technique to Eliminate Sorting).......................................16
3.1. Kiến trúc kỹ thuật chuyển tiếp VLMP (VLMP Forwarding Engine Architecture)..............................16
3.2. Thuật toán tìm kiếm (Search Algorithm).........................................................................................18
3.2.1. Giai đoạn đầu tiên...................................................................................................................18
3.2.2. Giai đoạn thứ hai.....................................................................................................................18
3.3. Hiệu năng của kiến trúc VLMP........................................................................................................19
4.3. Các kỹ thuật nén.........................................................................................................................37
Công suất tiêu thụ tăng tuyến tính theo số lượng các mục và bit trong một TCAM. Do đó, các kỹ
thuật được đưa ra cho việc nén bảng định tuyến để giảm công suất tiêu thụ. Trong phần này, chúng
tôi sẽ giới thiệu kỹ thuật mở rộng mặt nạ có thể loại bỏ những phần dư thừa trong bảng định tuyến,
và tập hợp tiền tố và so sánh chúng với một TCAM...........................................................................37
4.3.1. Mặt nạ mở rộng......................................................................................................................37
Mỗi mục trong bảng chuyển tiếp gốm có 2 trường: tiền tố và bước nhảy tiếp theo. Đối với 2 mục
(P1, N1) và (P2, N2), nếu P1 ∁ P2, nếu chúng phù hợp với một địa chỉ IP (D), sau đó P1 là tiền tố dài
nhất phù hợp, gói tin mang địa chỉ đích D được chuyển tiếp đến bước nhảy tiếp theo N1. Nếu N1
giống với N2, miễn là tiền tố P2 phù hợp với địa chỉ IP đích D, gói tin với D được chuyển tiếp đến
đúng bước nhảy tiếp theo. Mục (P1, N1) trở thành dư thừa và có thể bị xóa bỏ, được gọi là kỹ thuật
lược bỏ...............................................................................................................................................37
Để việc giảm bớt mục dư thừa được thực hiện trong tương lai, Liu khai thác tính linh hoạt phần
cứng của TCAM. Mặt nạ cho một tiền tố định tuyến được lưu trữ trong TCAM bao gồm 1’s (có số
giống với chiều dài của tiền tố) và theo sau là toàn bộ số 0. Tuy nhiên, TCAM cho phép tùy ý sử
dụng mặt nạ, vì thế các bit 1 hoặc 0 không cần phải liên tục. Kỹ thuật này được gọi là mặt nạ mở
rộng vì nó mở rộng mặt nạ bằng cách sử dụng tùy ý các bit 0 và 1...................................................37
Một ví dụ đơn giản như sau: Bảng 9.4 đưa ra ví dụ về bảng chuyển tiếp trong TCAM. Cả P1 và P2
đều phù hợp với bước nhảy tiếp theo là 1, và độ dài của chúng đều là 6. Chúng chỉ có sự khác biệt ở
bit thứ 4 (từ trái qua). Theo như mặt nạ mở rộng, chúng ta có thể kết hợp 2 tiền tố vào một mục
duy nhất với tiền tố là 100011* và mặt nạ là 11101100, được chỉ ra trong bảng 9.5. Bit 0 tại bit thứ
4 (từ trái qua) trong mặt nạ giúp tránh việc so sánh tại bit đó và giúp cho P1, P2 phù hợp với mục
mới. Bảng 9.5 chỉ ra sự khác biệt so với bảng 9.4 sau khi nén. Số lượng các mục đã giảm từ 5 xuống


3.........................................................................................................................................................37
1.1.1. = 1............................................................................................................................................47
5.2. Tổ chức phân phối bộ nhớ (TCAM).................................................................................................49
5.3. Giải thuật LBBTC.............................................................................................................................49
1


5.3.1. Mô hình toán học....................................................................................................................49
5.3.2. Thuật toán điều chỉnh – Adjusting..........................................................................................52
1.1.2. ................................................................................................................................................53
5.4. Phân tích hiệu quả công suất..........................................................................................................54
5.5. Kiến trúc thực thi hoàn chỉnh..........................................................................................................55
5.5.1. Chỉ mục logic (Logic Index)......................................................................................................56
5.5.2. Chọn lựa ưu tiên (Logic cân bằng tải thích ứng)......................................................................57
5.5.3. Logic thứ tự (Ordering Logic)..................................................................................................58
5.6. Phân tích hiệu năng........................................................................................................................58
Mô phỏng 1...........................................................................................................................................59
Mô phỏng 2...........................................................................................................................................59
Mô phỏng 3...........................................................................................................................................60
TÀI LIỆU THAM KHẢO................................................................................................................................62

2


Danh mục bảng
LỜI NÓI ĐẦU................................................................................................................................................4
3. Kỹ thuật VLMP cho loại bỏ phân loại (VLMP Technique to Eliminate Sorting).......................................16
3.1. Kiến trúc kỹ thuật chuyển tiếp VLMP (VLMP Forwarding Engine Architecture)..............................16
3.2. Thuật toán tìm kiếm (Search Algorithm).........................................................................................18
3.2.1. Giai đoạn đầu tiên...................................................................................................................18

3.2.2. Giai đoạn thứ hai.....................................................................................................................18
3.3. Hiệu năng của kiến trúc VLMP........................................................................................................19
4.3. Các kỹ thuật nén.........................................................................................................................37
Công suất tiêu thụ tăng tuyến tính theo số lượng các mục và bit trong một TCAM. Do đó, các kỹ
thuật được đưa ra cho việc nén bảng định tuyến để giảm công suất tiêu thụ. Trong phần này, chúng
tôi sẽ giới thiệu kỹ thuật mở rộng mặt nạ có thể loại bỏ những phần dư thừa trong bảng định tuyến,
và tập hợp tiền tố và so sánh chúng với một TCAM...........................................................................37
4.3.1. Mặt nạ mở rộng......................................................................................................................37
Mỗi mục trong bảng chuyển tiếp gốm có 2 trường: tiền tố và bước nhảy tiếp theo. Đối với 2 mục
(P1, N1) và (P2, N2), nếu P1 ∁ P2, nếu chúng phù hợp với một địa chỉ IP (D), sau đó P1 là tiền tố dài
nhất phù hợp, gói tin mang địa chỉ đích D được chuyển tiếp đến bước nhảy tiếp theo N1. Nếu N1
giống với N2, miễn là tiền tố P2 phù hợp với địa chỉ IP đích D, gói tin với D được chuyển tiếp đến
đúng bước nhảy tiếp theo. Mục (P1, N1) trở thành dư thừa và có thể bị xóa bỏ, được gọi là kỹ thuật
lược bỏ...............................................................................................................................................37
Để việc giảm bớt mục dư thừa được thực hiện trong tương lai, Liu khai thác tính linh hoạt phần
cứng của TCAM. Mặt nạ cho một tiền tố định tuyến được lưu trữ trong TCAM bao gồm 1’s (có số
giống với chiều dài của tiền tố) và theo sau là toàn bộ số 0. Tuy nhiên, TCAM cho phép tùy ý sử
dụng mặt nạ, vì thế các bit 1 hoặc 0 không cần phải liên tục. Kỹ thuật này được gọi là mặt nạ mở
rộng vì nó mở rộng mặt nạ bằng cách sử dụng tùy ý các bit 0 và 1...................................................37
Một ví dụ đơn giản như sau: Bảng 9.4 đưa ra ví dụ về bảng chuyển tiếp trong TCAM. Cả P1 và P2
đều phù hợp với bước nhảy tiếp theo là 1, và độ dài của chúng đều là 6. Chúng chỉ có sự khác biệt ở
bit thứ 4 (từ trái qua). Theo như mặt nạ mở rộng, chúng ta có thể kết hợp 2 tiền tố vào một mục
duy nhất với tiền tố là 100011* và mặt nạ là 11101100, được chỉ ra trong bảng 9.5. Bit 0 tại bit thứ
4 (từ trái qua) trong mặt nạ giúp tránh việc so sánh tại bit đó và giúp cho P1, P2 phù hợp với mục
mới. Bảng 9.5 chỉ ra sự khác biệt so với bảng 9.4 sau khi nén. Số lượng các mục đã giảm từ 5 xuống
3.........................................................................................................................................................37
1.1.1. = 1............................................................................................................................................47
5.2. Tổ chức phân phối bộ nhớ (TCAM).................................................................................................49
5.3. Giải thuật LBBTC.............................................................................................................................49
5.3.1. Mô hình toán học....................................................................................................................49

3


5.3.2. Thuật toán điều chỉnh – Adjusting..........................................................................................52
1.1.2. ................................................................................................................................................53
5.4. Phân tích hiệu quả công suất..........................................................................................................54
5.5. Kiến trúc thực thi hoàn chỉnh..........................................................................................................55
5.5.1. Chỉ mục logic (Logic Index)......................................................................................................56
5.5.2. Chọn lựa ưu tiên (Logic cân bằng tải thích ứng)......................................................................57
5.5.3. Logic thứ tự (Ordering Logic)..................................................................................................58
5.6. Phân tích hiệu năng........................................................................................................................58
Mô phỏng 1...........................................................................................................................................59
Mô phỏng 2...........................................................................................................................................59
Mô phỏng 3...........................................................................................................................................60
TÀI LIỆU THAM KHẢO................................................................................................................................62

LỜI NÓI ĐẦU
Trong môi trường mạng thì việc tra cứu và tìm kiếm địa chỉ Ethernet, lọc địa chỉ trong
firewalls, bridges, switches, và routers là rất quan trọng. Việc tìm kiếm phải được thực hiện chính
4


xác và nhanh chóng. Các TCAM (Bộ nhớ nội dung địa chỉ ba mức) rất phù hợp cho hoạt động
này.
Trong bài tiểu luận này, chúng em sẽ trình bày về các khái niệm cơ bản liên quan đến
TCAM, cấu trúc và hoạt động cơ bản của một TCAM, hiệu năng và việc sử dụng công suất trong
TCAM, các phương pháp nâng cao hiệu quả sử dụng công suất của TCAM (bao gồm việc chia
nhỏ nội dung vùng nhớ và các kỹ thuật nén trong TCAM).
Do khả năng đọc dịch tài liệu tiếng Anh của nhóm nên bài tiểu luận còn hạn chế và nhiều
thiếu sót, chúng em rất hy vọng cô giáo có những góp ý và sửa chữa để nhóm hoàn thiện hơn.

Chúng em xin chân thành cảm ơn!

Hà Nội, 11/4/2012
Nhóm 2- D08VT1

TCAM-Based Forwarding Engine
1. Bộ nhớ truy nhập ngẫu nhiên (RAM)

5


Bộ nhớ truy nhập ngẫu nhiên (RAM) là một mạch tích hợp lưu dữ liệu tạm thời. Dữ liệu
được lưu trong một khu vực riêng biệt được gọi là một địa chỉ. Dữ liệu được xác định bởi địa
chỉ. Bộ nhớ địa chỉ nội dung (CAM - Content-address memory) là một loại thiết bị bộ nhớ mà nó
điều khiển theo cách ngược với RAM. Nó dùng dữ liệu như là khóa tìm kiếm, mà khóa đó được
cung cấp đến mỗi tế bào nhớ trong mảng CAM (CAM array). CAM tìm kiếm trong suốt toàn bộ
bộ nhớ với đường song song trong chu kỳ một xung clock và trở lại địa chỉ ánh xạ “ưu tiên cao
nhất”, ở đó dữ liệu được tìm thấy.
Vì trạng thái song song vốn có của nó, CAM có thể nâng cao tốc độ cho bất kỳ ứng dụng
nào mà yêu cầu việc tìm kiếm nhanh trong cơ sở dữ liệu, liệt kê, hoặc làm mẫu trong sự nhân
dạng hình ảnh hoặc thoại, các thiết kế truyền thông và máy tính, ở đó thời gian tìm kiếm là then
chốt (critical) và phải rất ngắn. Trong mạng, các ứng dụng, CAM phù hợp lý tưởng cho việc tra
cứu địa chỉ Ethernet, lọc địa chỉ trong firewalls, bridges, switches, và routers.
1.1.

Các yếu tố kiến trúc cơ bản

Cấu trúc của CAM tương tự với RAM nhưng có thêm một mạch cho điều khiển so sánh.
Các nhà cung cấp chú ý đến phát triển các thiết bị CAM của họ với số lượng nhiều các đặc tính.
Tuy nhiên, có 1 số lượng các yếu tố kiến trúc cơ bản mà tất cả các CAM thường có, được chỉ rõ

trong hình 1.

Hình 1: Các khối kiến trúc CAM.
Mảng nhớ chính (Main Memory Array)

6


Mảng nhớ chính chứa 1 số lượng lớn của các tế bào CAM (CAM cells), mà chúng được
chia trong nhiều cơ sở dữ liệu khác nhau. Mảng nhớ thông thường rộng 32 bits và có thể hỗ trợ
“các độ rộng từ” là 36-, 72-, 144-, 288-, hoặc 576-bits; nó được dùng cho nhiều ứng dụng. Nó
được phát triển sử dụng SRAM nhúng - embedded SRAM (DRAM). Một ví dụ của tế bào thông
thường được chỉ ra trong hình 2. Cấu trúc tế bào tương tự với cấu trúc tế bào trong SRAM thông
thường, nhưng có thêm 3 transistors (N1, N2, và N3) cho mạch điện so sánh.

Hình 2: Cấu trúc của tế bào CAM cơ bản.
Logic điều khiển (Control Logic)
Logic điều khiển được dùng để thực hiện nhiều hoạt động bao gồm tìm kiếm, học, viết,
làm sạch (purge), vv...
Thanh ghi so sánh (Comparand Register)
Thanh ghi so sánh chứa khóa tìm kiếm mà nó được cung cấp cho CAM qua một giao diện
đầu vào. Giao diện này có thể độc quyền (proprietary), hoặc theo các tiêu chuẩn công nghiệp
nhằm tăng khả năng tương tác với một sô lượng lớn các bộ xử lý mạng hoặc các ASIC. Khóa tìm
kiếm thường được so sánh với tất cả các mục trong CAM đồng thời trong một lần tìm kiếm.
Thanh ghi mặt nạ (Mask Register)
Thanh ghi mặt nạ có thể được ứng dụng với một so sánh đến mỗi tế bào CAM khi kiểm
soát một hoạt động tìm kiếm.

7



Các kết quả/Địa chỉ (Results/Address)
Kết quả cho một tìm kiếm CAM là địa chỉ mà trong đó việc so sánh được tìm thấy. Điều
này được cung cấp như là đầu ra mà nó thường được gọi là một “giao diện các kết quả”. Trong
một vài trường hợp, một tìm kiếm sẽ cho kết quả trong nhiều ánh xạ. Bạn có thể thêm vào mạch
điện giải quyết ưu tiên/đa ánh xạ để chọn lựa ánh xạ phù hợp nhất.
Các bit trạng thái/Các bit xác định người sử dụng (Status Bits/User Defined Bits)
Các bit trạng thái/Các bit xác định người sử dụng có thể được xem như một phần của
mảng nhớ, nhưng với mỗi hàng, thường có một số lượng các bit có thể được thiết lập độc lập
nhằm mô tả trạng thái nguyên thủy của các nội dung trong hàng đó. Các ví dụ của điều này là các
bit Empty, Skip, Permanent, và Age.
Mạch điện thác (Cascade Circuitry)
Mạch điện thác được biểu diễn bởi việc thác lũ các CAM trong một chuỗi daisy hoặc
bằng cách sử dụng một multi- drop bus approach. Nếu số lượng của bộ nhớ được lưu trong một
CAM độc lập không đủ cho các ứng dụng đó, chúng ta có thể gộp chung các CAM sử dụng mạch
điện thác.
Các nhà cung cấp có thể có các yếu tố khác trong kiến trúc CAM của họ mà chúng được
yêu cầu là hỗ trợ được thiết lập đặc tính của họ.
1.2.

Các CAM nhị phân và tam phân

Các CAM truyền thống là nhị phân, trong đó mỗi tế bào có thể nhận hai trạng thái logic:
0 và 1. CAM nhị phân biểu diễn các tìm kiếm ánh xạ chính xác, trong khi một CAM tam phân
(Ternary CAM - TCAM) cho phép mô hình hóa ánh xạ với việc sử dụng của “do not care” (X).
Mỗi tế bào trong TCAM có thể có 3 trạng thái logic: 0, 1, và X. X là 1 hoặc 0. X đóng vai trò
như một ký tự đại diện (wildcard) trong suốt một tím kiếm. Điều này có nghĩa là TCAM có thể
lưu giữ một dãy dữ liệu như là một mục. Ví dụ, dãy thập phân từ 0 đến 255 có thể được đại diện
trong một TCAM bởi mục 0XXXXXXXX, trong khi CAM nhị phân có thể yêu cầu 256 mục
phân biệt để biểu diễn dãy tương tự của các giá trị.

Do đặc tính này mà các TCAM rất phù hợp với các hoạt động mạng, ở đó hoạt động được
thực hiên trên một gói có thể đồng nhất (identical) cho toàn bộ một dãy các địa chỉ đích, như là
sự phân loại gói tin và tra cứu địa chỉ IP. Vì TCAM tìm kiếm một khóa với tất cả các mục song
song và trả về địa chỉ của các mục thích hợp, thời gian tìm kiếm là O(1). Do đó, chức năng tìm
kiếm TCAM điều khiển nhanh hơn nhiều so với bản sao trong phần mềm, và các TCAM được
dùng cho các ứng dụng tìm kiếm chuyên sâu.
1.3.

Ánh xạ tiền tố dài nhất (Longest-Prefix Match) sử dụng TCAM

8


Tiền tố trong bảng định tuyến là 1 chuỗi bit chỉ rõ chuỗi con khởi tạo của một địa chỉ
mạng và các bit đuôi như là các wildcard. Ví dụ, một tiền tố 100110**** biểu diễn dải địa chỉ từ
1001100000 đến 1001101111. Do đó, TCAM rất phù hợp với việc lưu các tiền tố của nhiều độ
dài khác nhau.
Trong TCAM, mỗi bit của dữ liệu đến được so sánh với bit ở vị trí tương tự của dữ liệu
được lưu trữ, và kết quả là địa chỉ của vị trí bộ nhớ ở đó việc ánh xạ được thông qua. Trong vài
trường hợp, một tìm kiếm sẽ cho kết quả trong nhiều ánh xạ. Để biểu diễn hoạt động ánh xạ tiền
tố dài nhất, tất cả các tiền tố được lưu trong một TCAM được sắp xếp giảm dần theo chiều dài.
TCAM tìm kiếm địa chỉ IP đích của một gói tin vào với tất cả các tiền tố một cách song song.
Nhiều tiền tố có thể phù hợp với địa chỉ IP đích. Một logic mã hóa ưu tiên sau đó sẽ lựa chọn
mục ánh xạ đầu tiên, mà nó cùng với tiền tố ánh xạ ở địa chỉ nhớ vật lý nhỏ nhất, đó là tiền tố
ánh xạ dài nhất. Địa chỉ nhớ vật lý được sử dụng để trích ra thông tin chuyển tiếp phù hợp như là
next-hop tạo nên một SRAM module. Hình 3 chỉ rõ kiến trúc cơ bản của ánh xạ tiền tố dài nhất
sư dụng TCAM.
Vì TCAM có thể lưu trực tiếp các tiền tố và tìm kiếm tiền tố ánh xạ dài nhất trong một
chu kỳ đơn (sử dụng một truy nhật TCAM đơn), mà nó vừa trở thành một công nghệ rất hâp dẫn.
Dù sao đi nữa, TCAM vẫn có những nhược điểm truyền thống.


Hình 3: Kiến trúc cơ bản của ánh xạ tiền tố dài nhất sử dụng TCAM.
Giá thành cao đến tỷ số mật độ (High Cost to Density Ratio)
Trong suốt vài năm trở về trước, giá thành của các TCAM đã giảm một cách đột ngột và
mật độ đã được nâng cao rất nhiều. Các thiết bị TCAM với dung lượng lớn (lên đến 18 Mbits)
xuất hiện trên thị trường với giá thành cạnh tranh với các công nghệ thay thế như kỹ thuật
chuyển tiếp đường ống dựa trên ASIC. Ví dụ, thiết bị TCAM 2 Mbit của IDT chỉ có giá $30
(, 2005).
Hoạt động cập nhật chậm
9


Vì tất cả các mục TCAM phải giảm chiều dài tiền tố, thêm vào hoặc xóa đi một tiền tố
trong TCAM kéo theo nhiều mục TCAM xê dịch. Khi một TCAM đang cập nhật, hoạt động tìm
kiếm phải đóng băng cho đến khi họa động cập nhật hoàn thành. Bộ định tuyến trong mạng lõi
Internet có thể đạt đến 100–1000 cập nhật trên một giây [1]. Do đó, cập nhật một cách quá
thường xuyên sẽ làm giới hạn nghiêm trọng hiệu năng tra cứu của một bộ định tuyến.
Sự tiêu thụ công suất cao
Mộ thiết bị TCAM 18-Mbit thông thường có thể lưu đến 512K các tiền tố 32-bit, tiêu thụ
đến 15 W khi tất cả các mục được kích hoạt tìm kiếm. Nhiều hơn 2 thiết bị cần lưu trữ các bảng
định tuyến trong mạng lõi Internet. Sự tiêu thụ công suất cao đề cập đến việc cung cấp công suất
tổng thể tăng nhanh và phí tổn cao, và kết quả xa hơn trong các linecard ít hơn được đóng gói
trong một bộ định tuyến bởi vì việ tiêu thụ công suất TCAM trên một linecard là một khoản khá
lớn.
Chúng ta sẽ thảo luận các lược đồ cập nhật hiệu quả và các TCAM sử dụng công suất
hiệu quả.
2. Việc cập nhật hiệu quả trên một TCAM
TCAM sử dụng dữ liệu như là khóa tìm kiếm và trả về (các) địa chỉ vật lý ánh xạ, và mã
hóa ưu tiên chỉ có thể sử dụng (các) địa chỉ vật lý để tìm kiếm mục có “ưu tiên cao nhất” trong
TCAM. Lưu các chiều dài tiền tố là một giả pháp nhanh và đơn giản cho LPM, được gọi là ràng

buộc trình tự chiều dài tiền tố (prefix-length-ordering constraint). Hai tiền tố có cùng chiều dài
không cần thiết phải trong một trình tự chính xác, vì chúng không thể ánh xạ một địa chỉ IP.
Ràng buộc trình tự chiều dài tiền tố có thể được mô tả như sau: cho bất kỳ hai tiền tố P1 và P2,
Nếu | P1| < | P2|, và Loc(P1) > Loc(P2), ở đó |P| là chiều dài của P và Loc(P) là địa chỉ vật lý. Để
chèn một tiền tố mới, cần phải tìm kiếm một khoảng trống rỗi. Dưới ràng buộc trình tự chiều dài
tiền tố, một vài tiền tố có thể được di chuyển. Khi một TCAM đang cập nhật, các hoạt động tìm
kiếm phải đóng băng cho đến khi các hoạt động tìm kiếm hoàn thành. Do đó, chúng ta sử dụng
số của tiền tố đã được di chuyển cho việc chèn một tiền tố mới để đo hiệu năng của các lược đồ
cập nhật trong một TCAM. Vì số của các tiền tố đã được dịch chuyển liên quan đến ràng buộc
của các tiền tố và việc cấu hình của các khoảng trống rỗi trong TCAM, nhiệm vụ của chúng ta là
làm mất ràng buộc của các tiền tố và tìm kiếm cấu hình tối ưu của khoảng trống rỗi để làm giảm
nhỏ nhất số của các tiền tố đã dịch chuyển. Trong phần này, chúng ta mô tả các thuật toán cho
ràng buộc trình tự chiều dài tiền tố, các thuật toán cho ràng buộc trình tự chuỗi (chain-ordering
constraint), và các công nghệ phân chia theo mức (level-partitioning technique).
2.1.

Thuật toán cho ràng buộc trình tự chiều dài tiền tố

Có N tiền tố trong TCAM với ràng buộc trình tự chiều dài tiền tố. Nếu các khoảng trống
rỗi nằm giữa các tiền tố của các chiều dài khác nhau, như được chỉ ra trong hình 4a, tiền tố mới

10


có thể được chèn vào khoảng trồng rỗi mà tiền tố mới này thuộc về, không cần thiết phải dịch
chuyển bất kỳ tiền tố nào. Nhưng có nhiều hơn các khoảng trống rỗi sẽ bị lãng phí.
Nếu khoảng trống rỗi nằm ở cuối của TCAM, như chỉ ra trong hình 4b, trong trường hợp
xấu nhất, cần phải dịch chuyển N tiền tố để thêm vào một tiền tố mới. Nếu khoảng trống rỗi nằm
giữa TCAM, như chỉ ra trong hình 4b, trong trường hợp xấu nhất, cần phải dịch chuyển N/2 tiền
tố để thêm vào một tiền tố mới.

Khi ta dịch chuyển một tiền tố trong nhiều tiền tố của cùng chiều dài, nếu khoảng trống
rỗi nằm ở dưới cùng, số lớn nhất của các tiền tố đã dịch chuyển là số của các chiều dài khác
nhau (L). Nếu tập hợp các tiền tố của chiều dài L, L − 1, …, L/2 luôn luôn nằm bên trên khoảng
trống rỗi và tập hợp các tiền tố của chiều dài L/2 − 1, L/2 − 2, …, 1 luôn luôn nằm dưới khoảng
trống rỗi, như chỉ ra trong hình 4c, số lớn nhất của các tiền tố đã dịch chuyển là L/2.

Hình 4: Phân bố của các khoảng trống rỗi trong TCAM.
2.2.

Thuật toán cho ràng buộc trình tự chuỗi nguyên thủy (Algorithm for the
Chain-Ancestor-Ordering Constraint) (CAO_OPT)

Trong thực tế, ràng buộc trình tự chiều dài tiền tố bị giới hạn hơn là những gì được yêu
cầu cho hoạt động ánh xạ tiền tố dài nhất chính xác sử dụng TCAM. Nếu hai tiền tố P1 và P2 phù
hợp với một địa chỉ IP, thì P1 ⊂ P2 (P2 ⊂ P1), chúng được gọi là các tiền tố trùng lặp. Do đó, ràng
buộc trên trình tự của các tiền tố trong một TCAM có thể chỉ được giải phóng (ralaxed) đến các
tiền tố trùng lặp, mà nếu P 1 ⊂ P 2, thì P 2 phải ở địa chỉ vật lý thấp hơn P 1, được gọi là ràng buộc
trình tự chuỗi nguyên thủy. Hình 5 chỉ ra phân bố của các tiền tố dưới ràng buộc trình tự chuỗi
nguyên thủy. Khoảng trống rỗi nằm phải dưới cùng.

11


Hình 5: Phân bố của các tiền tố dưới ràng buộc trình tự chuỗi nguyên thủy trên TCAM (Ph ⊂ Pg
⊂ Pd ⊂ Pb ⊂ Pa, Pf ⊂ Pc ⊂ Pb ⊂ Pa, Pe ⊂ Pc ⊂ Pb ⊂ Pa).
Việc chèn của một tiền tố q mới thu được như sau: đầu tiên, tiền tố q được độn (padded)
với “0”, và sau đố trở thành một địa chỉ IP q’; thứ hai, q’ được so sánh với tất cả các tiền tố trên
một TCAM, nếu không có tiền tố nào phù hợp, q không có tiền tố cha (parent prefix), nó có thể
được chèn vào khoảng trống rỗi một cách trực tiếp, mặt khác có những tiền tố đã được ánh xạ:
Pm ⊂ … ⊂ Pi+1 ⊂ Pi ⊂ … ⊂ P2 ⊂ P1. Nếu Pi+1 ⊂ q ⊂ Pi, thì q được chèn vào địa chỉ vật lý của Pi,

Pi được dịch chuyển đến địa chỉ vật lý của Pi-1, Pi-1 được dịch chuyển đến địa chỉ vật lý của Pi-2,
và tiếp tục như thế; cuối cùng, P1 được chèn khoảng trống rỗi. Trong trường hợp xấu nhất, số của
các tiền tố đã được dịch chuyển là số của các tiền tố cha cho một tiền tố mới, được gọi là chiều
dài chuỗi. Với IPv4, chiều dài chuỗi lớn nhất là 31. Hình 6 chỉ ra thống kê của chiều dài chuỗi
trên các bảng định tuyến thực tế (20011101, 20021101) từ dự án RouteViews
( 2003). Chiều dài chuỗi lớn nhất là 6 và chiều dài trung bình nhỏ
hơn 2.

12


Hình 6: Thống kê của chiều dài chuỗi.
2.3.

Công nghệ phân chia theo mức (Level-Partitioning Technology)

Nếu có hai tiền tố Pi và Pk, và một tiền tố mới P0 và Pi ⊂ P0 ⊂ Pk, tiền tố P0 được chèn
giữa Pi và Pk. Nếu có một khoảng trống rỗi giữa Pi và Pk, không cần thiết phải dịch chuyển bất kỳ
tiền tố nào để chèn một tiền tố mới P0.
Dựa trên cấu trúc của bảng định tuyến trong mục 2.5.1, chúng ta có thể chia các bảng
đinh tuyến theo mức thành các bảng nhỏ: bảng mức 0 (bao gồm các tiền tố đứng độc lập và các
tiền tố subroot), bảng mức 1 (bao gồm các tiền tố trong mức 1), bảng mức 2 (bao gồm các tiền tố
trong mức 2), bảng mức 3 (bao gồm các tiền tố mức 3), bảng mức 4 (bao gồm các tiền tố mức 4),
bảng mức 5 (bao gồm các tiền tố mức 5), được gọi là phân chia theo mức (Level partitioning).
Một TCAM được chia toàn bộ thành 6 phần. Từ địa chỉ vật lý thấp đến địa chỉ vật lý cao, chúng
là bảng mức 5, bảng mức 4, bảng mức 3, bảng mức 2, bảng mức 1, và bảng mức 0. Các khoảng
trống rỗi trong khu vực thấp nhất cảu mỗi bảng phân mức. Sự sắp xếp của các bảng trên TCAM
được chỉ ra trên hình 7a. trong mỗi phần, các tiền tố có thể lộn xộn, bởi vì tất cả các tiền tố trong
mỗi bảng chia mức thì được tách rời, và không có nhiều hơn một tiền tố mà ánh xạ với 1 địa chỉ
IP.


13


Hình 7: Sự sắp xếp của các bảng trên TCAM.
Nếu một tiền tố mới P được chèn, ta tìm kiếm tiền tố cha của nó và một trong các tiền tố
con ngắn nhất. Có các trường hợp sau đây:
Trường hợp I: Nếu không có tiền tố cha nào thì tiền tố mới sẽ được chèn vào trong
khoảng trống rỗi của bảng mức 0. Trong hình 7b, tiền tố mới 11/2 là một ví dụ.
Trường hợp II: Nếu có một tiền tố cha, không có tiền tố con nào thì tiền tố mới được chèn
vào trong khoảng trông rỗi của bảng phân mức kế tiếp của tiền tố cha. Trong hình 7b, tiền tố mới
101/3 là một ví dụ.
Tường hợp III: Nếu tiền tố cha trùng với tiền tố con, bước nhảy tiếp theo (next hop) dẽ
được cập nhật.
Trường hợp IV: Nếu có tiền tố cha và tiền tố con, và chúng nằm trong các bảng phân mức
khác nhau, tiền tố mới sẽ được chèn vào khoảng trống rỗi của bảng phân mức kế tiếp của tiền tố
cha. Trong hình 7b, tiền tố mới 0101/4 là một ví dụ.
Trường hợp V: nếu có tiền tố cha và tiền tố con, và chúng trong cùng một bảng phân
mức, thì tiền tố cha sẽ được dịch chuyển xuống dưới trong bảng phân mức, tiền tố mời sẽ được
chèn vào trong vị trì của tiền tố cha. Trong hình 7b, tiền tố 0101/4 được dịch chuyển để chèn tiền
tố mới 01011/5.
Sau khi tất cả các tiền tố khởi tạo được phân chia theo các mức, mỗi tiền tố khởi tạo và
các tiềnt ố con của nó sẽ nằm trong các bảng phân mức khác nhau. Trong trường hợp V, chỉ có
các tiền tố đã được chèn mới có thể được dịch chuyển, và tất cả các tiền tố khởi tạo không được
dịch chuyển. Giả sử rằng một tiền tố mới P có tiền tố cha là P1 và tiền tố con ngắn nhất là P2, P2
14


⊂ P ⊂ P1, chúng nằm trong cùng một bảng phân mức. P1 sẽ được chuyển xuống phía dưới để
chèn tiền tố P. Từ thuật toàn phân chia theo mức, ít nhất, một trong hai tiền tố là tiền tố được

chèn. Nếu P1 là tiền tố khởi tạo, P2 là tiền tố được chèn, từ trường hợp II và IV, P1 và P2 không
thể nằm trong cùng bảng phân mức. Điều đó có thể nói là, tiền tố khởi tạo thì không nằm cùng
bảng phân mức với các tiền tố con của nó. Do đó P1 phải là tiền tố được chèn, và tất cả các tiền
tố được dịch chuyển đều là các tiền tố được chèn. Số lớn nhất của các chuyển dịch là số của các
tiền tố cha (được chèn) trong một khoàn trống rỗi.
Số của các chuyển dịch phụ thuộc vào thứ tự của các tiền tố được chèn mới. Ví dụ, có hai
tiền tố khởi tạo là 1/1 và 111111/6 trong bảng đinh tuyến, và bốn tiền tố mới là 11/2, 111/3,
1111/4, và 11111/5. Nếu thứ tự chèn là 11111/5, 1111/4, 111/3, 11/2, thì sẽ không có chuyển dịch
nào cả (Trường hợp IV). Nếu thứ tự chèn là 11/2, 111/3, 1111/4, 11111/5, thì sẽ không có chuyển
dịch nào cho việc chèn 11/2 (Trường hợp IV), có một chuyển dịch cho việc chèn 111/3 (Trường
hợp V), hai chuyển dịch cho việc chèn 1111/4 (Trường hợp V), và ba chuyển dịch cho việc chèn
1111/5 (Trường hợp V).
Sự xóa bỏ thì tương tự như trường hợp III. Đầu tiên, ta tìm tiền tố P mà nó sẽ bị xóa bỏ,
sau đó xóa nó từ TCAM. Nếu một tiền tố Pđược xóa, các địa chỉ vật lý của các tiền tố khác sẽ
không được thay đổi, và đo đó không tiền tố nào được dịch chuyển.
Bảng 1 Thống kê của bảng định tuyến

Hai bảng định tuyến và các cập nhật được chọn lựa ngẫu nhiên từ dự án RouteViews
( 2003). Thống kê của các bảng đinh tuyến và các cập nhật định
tuyến được chỉ ra trong hình 1. Với bảng định tuyến trong tháng 6 năm 2003, số của các tiền tố
khởi tạo là 134,223, và có 8288 tiền tố mới được chèn. Tổng số các tiền tố được dịch chuyển là
92. Có một tiền tố được dịch chuyển trên 100 tiền tố mới, số xấu nhất của các chuyển dịch là 2.
Với bảng định tuyến trong tháng 8 năm 2003, số các tiền tố khởi tạo là 117,886, và có 15,127
tiền tố mới được chèn. Tổng số các tiền tố được dịch chuyển là 65. Có 4 tiền tố được dịch
chuyển trên 1000 tiền tố mới, và số xấu nhất của chuyển dịch là 2.

15


3. Kỹ thuật VLMP cho loại bỏ phân loại (VLMP Technique to Eliminate Sorting)

3.1. Kiến trúc kỹ thuật chuyển tiếp VLMP (VLMP Forwarding Engine Architecture)
Kobayashi đã đề xuất một mô hình – Điều khiển logic theo chiều dọc với chiều dài tiền tố
mặt nạ được mã hóa (Vertical Logical Operation with Mask-encoded Prefi x-length - VLMP)
nhằm xóa bỏ hạn chế là các tiền tố phải được lưu trong trình tự của chiều dài của chúng trong
một TCAM thông thường. Hình 8 mô tả kiến trúc kỹ thuật chuyển tiếp với việc so sánh song
song và VLMP. So sánh song song sử dụng TCAM hiện thời để lưu giữ các tiền tố. VLMP được
dùng để xác định tiền tố dài nhất trong số các tiền tố được ánh xạ mà chúng được lưu trong một
trình tự tùy ý. Phần này có được từ [4]. Các phần chia được in lại cùng với sự cho phép (© 2000
IEEE).
Trong so sánh song song, mỗi tiền tố được miêu tả là một cặp các chuỗi bit: một chuỗi dự
liệu và một chuỗi mặt nạ. Với một tiền tố P với L bit chiều dài, chuỗi dự liệu chứa một tiền tố từ
ngoài cùng bên trái của L-bit; phần còn lại của các bit thì được độn bởi 0. Chuỗi ánh xạ chứa một
chuỗi L bit của các bit 1 kề nhau; phần còn lại của các bit thì được độn bởi 0. Ví dụ, cho một tiền
tố địa chỉ IP là P = 1010/4, chuỗi dữ liệu của nó là P_DS = 101000, chuỗi mặt nạ của nó là P_MS
= 111100 (chiều dài của địa chỉ IP là 6 bit), như được chỉ ra trong hình 8.
Một chuỗi bit mặt nạ được dùng để chỉ định phần chia của một chuỗi dữ liệu được lưu
trong so sánh song song và chiều dài của tiền tố (được gọi là thực thi AND theo chiều ngang).
VLMP là thực thi OR logic và áp dụng vào các bit phù hợp từ các chuỗi mặt nạ khác nhau nhằm
đạt được các tiền tố chiều dài lớn nhất ánh xạ đến một khóa cho trước (được gọi là thực thi OR
theo chiều dọc). Một kho kết quả của VLMP đạt được, mục ánh xạ tiền tố dài nhất sẽ được tìm
thấy.

16


Hình 8: Kiến trúc kỹ thuật chuyển tiếp VLMP. (Kobayashi, M., Murase, T., và Kuriyama, A.
Proceedings of the International Conference on Communications (ICC 2000), New York: IEEE
Press, New Orleans, LA, 2000.)
17



3.2. Thuật toán tìm kiếm (Search Algorithm)
Với một tìm kiếm cho trước, đầu tiên, việc so sánh song song được diễn ra, và được so
sánh với các mục trong TCAM. Trong mỗi mục,mỗi bit của một DS được so sánh với một bit
tương ứng của khóa tìm kiếm cho trước. Kết quả là chuỗi bit mà trong đó các vị trí bit được ánh
xạ được biểu diễn bằng các số 1, và các chuỗi khác sẽ được biểu diễn bởi các số 0. Nếu kết quả
giống như chuỗi mặt nạ, thì chuỗi ánh xạ được cung cấp (outputted) đến VLMP. VLMP là một
thực thi OR logic được ứng dụng đến các bit tương ứng từ nhiều chuỗi bit mặt nạ khác nhau. Kết
quả của VLMP là chuỗi bit mặt nạ dài nhất. Nó được so sánh với tất cả các chuỗi mặt nạ nhằm
tìm kiếm địa chỉ vật lý của tiền tố ánh xạ dài nhất trong TCAM. Địa chỉ vật lý được dùng để tìm
kiếm thông tin chuyển tiếp bởi mã hóa. Thuật toán tìm kiếm sẽ được chỉ ra ngay sau đây..
3.2.1. Giai đoạn đầu tiên
1-1 Một khóa tìm kiếm, K, được lưu trong thanh ghi khóa, được cung cấp đến mỗi mục bởi các
giá trị trung bình của Hàng so sánh 1 (Comparand Line1).
1-2 Trong mỗi mục, một so sánh mặt nạ,
R1 := (K & MS) XOR (DS & MS)
được thực hiện, ở đó “&” và “XOR” là thực thi AND theo bit và thực thi exclusive OR theo bit.
DS là chuỗi dữ liệu và MS là chuỗi mặt nạ.
1-3 Một thực thi AND dưới dạng tất cả các bit trong R1 được biểu diễn, và kết quả được cung
cấp đến Hàng ánh xạ 1 (Match Line1).
1-4 Nếu Hàng ánh xạ 1 được thiết lập bằng 1, một bộ chọn S2 cho ra MS trên các hàng VLMP.
Mặt khác, S2 cho ra tất cả 0 trên các hàng VLMP.
1-5 Trên mỗi vị trí bit của các hàng VLMP, một phép logic OR phân theo bit thẳng đứng
(VLMP) sẽ được thực hiện. Kết quả được đề cập đến như là RV trong phần sau.
3.2.2. Giai đoạn thứ hai
2-1 RV được cung cấp đến mỗi mục bằng các giá trị trung bình của Hàng so sánh 2.
2-2 Trong mỗi mục, hai chuỗi bit, RV và MS, được so sánh một cách chính xác, mà phép toán:
R2 := RV XOR MS
được thực hiện.
2-3 Một phép AND trong các điều kiện của tất cả các bit trong R2 được thực hiện, và kết quả

được cung cấp đến Hàng ánh xạ 2.
2-4 Nếu Hàng ánh xạ 1 và hàng ánh xạ 2 của một mục đều bằng 1, một bộ chọn S1 sẽ cung cấp 1
trên Hàng LPM. Nếu không thì S1 sẽ cung cấp 0 trên Hàng LPM.
18


2-5 Địa chỉ của mục mà Hàng LPM của nó bằng 1 thì có thể đạt được từ Bộ mã hóa.
3.3. Hiệu năng của kiến trúc VLMP
VLMP giải phóng kỹ thuật chuyển tiếp dựa trên TCAM từ sự hạn chế mà các tiền tố phải
được lưu giữ theo thứ tự độ dài của chúng, và việc cập nhật của bảng chuyển tiếp thì dễ dàng
được hoàn thành. Kobayashi et al. đã phân tích hiệu năng của kiến trúc VLMP trong suốt các kết
quả mô phỏng trễ đạt được trong một tiến trình CMOS 0.25-μm có sẵn hiện tại.

Hình 9: Biểu đồ định thời.
Hình 9.9 là một biểu đồ định thời biểu thị các bước tìm kiếm. Cho T1 và T2 là thời gian
trễ của các giai đoạn 1 và 2. T1 bao gồm t1 và t2, thời gian trễ của phép toán AND theo phương
ngang trên Hàng ánh xạ 1 của một mục và thời gian trễ của phép toán OR theo phương thẳng
đứng của các hàng VLMP. T2 bao gồm thời gian được giả thiết trong phép toán AND theo
phương ngang của Hàng ánh xạ 2.
Với 4K mục chiều dài 64 bit, các kết quả mô phỏng cho thấy các giá trị đặc trưng sau: t1
= 7.5 ns, t2 = 8.5 ns, và T2 = 15.0 ns. Tổng trễ là Ttotal = T1 + T2 = t1 + t2 + T2 = 31.0 ns.
Nếu tính đến cả các trễ truyền dẫn khác mà có thể xuất hiện trong một sơ đồ LSI, ta có thể ước
lượng trễ tìm kiếm nhỏ hơn 40 ns, với đề xuất là kiến trúc LSI có thể được hoạt động ở 25 MHz.
Hay nói cách khác, thong lượng có thể không lớn hơn 25 triệu tìm kiếm trên 1 giây cùng với một
trễ được cố định là 40 ns.
Khi ta áp dụng hiệu ứng đường hầm (pipelining technique), tần số hoat động của một LSI
được xác định bởi trễ lớn hơn trong hai giai đoạn. Trễ được ước lượng của giai đoạn đầu tiên là
T1 = t1 + t2 = 7.5 + 8.5 = 16.0 ns. Trễ được ước lượng của giai đoạn hai là T2 = 15.0 ns. Ta ước
lượng 20 ns là đủ cho mỗi giai đoạn được hoàn thành khi tính đến các trễ truyền dẫn khác. Có
thể noi rằng, kiến trúc đường hầm có thể hoạt động ở 50 MHz. Hiệu năng của kiến trúc VLMP

thích hợp cho việc chuyển tiếp tốc độ dây dẫn của OC-192 (9.6 Gb/s). Bởi vì có chuỗi dữ liệu và
19


chuỗi ánh xạ và MS của mỗi tiền tố trong kiến trúc VLMP, bộ nhớ nhiều hơn là kỹ thuật dựa trển
TCAM truyền thống.
4. TCAM sử dụng công suất hiệu quả
Sự song song vốn có của TCAM có thể cung cấp tốc độ tìm kiếm hơn 100 triệu trên 1
giây, nhưng nó tiêu thụ nhiều công suất hơn SRAM và DRAM. Một hệ thống sử dụng bốn
TCAM có thể tiêu thụ trên 60W. Để hỗ trợ số lượng lớn của các tiền tố trong bảng định tuyến, 4
đến 8 TCAM ship được sử dụng. Thực tế thì một ánh xạ tiền tố dài nhất liên quan đến sự phát ra
các tìm kiếm đến mỗi chip TCAM. Cho rằng sự tiêu thụ công suất của một TCAM thì tỷ lệ tuyến
tình với số lượng của các mục được tìm kiếm, ta sử dụng con số này như là một thước đo cho
công suất tiêu thụ.
4.1.

Tìm kiếm được lược bớt và TCAM được đánh số (Pruned Search and PagedTCAM)

Với một kỹ thuật chuyển tiếp cùng với các chip TCAM, nếu có ít hơn các chip cần được
tìm kiếm cho mỗi tra cứu, công suất sẽ được tiêu thụ ít hơn. Panigrahy và Sharma đề xuất Tìm
kiếm lược bớt mà chỉ có một chip TCAM cần thiết được tìm cho mỗi tra cứu, và TCAM được
đánh số mà có thể đạt được việc tiêu thụ công suất thấp hơn một cách đáng kể với mỗi chip
TCAM.
4.1.1.

Tìm kiếm được lược bớt

Ý tưởng cơ bản là nhằm phân chia tập hợp các tiền tố thành 8 nhóm, và do đó các tiền tố
sẽ ánh xạ trong duy nhất một nhóm cho một tìm kiếm. Ta có thể lược bớt tìm kiếm trong mỗi
một nhóm.

Đối với IPv4, 3 bit có ý nghĩa nhất của địa chỉ IP được sử dụng như là một nhận dạng
nhóm (group id), và các tiền tố được chia thành 8 nhóm bằng nhau. Mỗi nhóm tâp trung vào một
chip TCAM. Với mỗi tìm kiếm, một tập hợp của 8 cặp bộ so sánh trong giao diện được dùng để
xác định nhóm từ 3 bit có ý nghĩa nhất trong địa chỉ IP. Chỉ có một chip là phù hợp với nhóm
này được tìm kiếm, và các chip khác có thể bị vô hiệu hóa. Công suất tiêu thụ được giảm thiểu
đến một hệ số (factor) của 8. Kiến trúc hệ thống được chỉ ra trong hình 9.10.

20


Hình 10: Tìm kiếm được lược bớt
Nếu mỗi TCAM sử dụng một chip với 256 mục của mỗi 72-bit, nó tiêu thụ 14.3 W trong
trường hợp xấu nhất. Với một tìm kiếm, 8 chip mà được tìm kiếm sẽ tiêu thụ khoảng 14.3 W ∗
8 = 114 W. Trong kiến trúc của tìm kiếm được lược bớt, công suất tiêu thụ sẽ là 14.3 W cho mỗi
chip TCAM hoạt động hiệu quả và một công suất lý tưởng là 2.5 W cho 7 chip còn lại. Vì thế
tong công suất trong trường hợp xấu nhất sẽ là 31.8 W ( = 14.3 W + 7 ∗ 2.5 W).
Trong thực hành, rất khó để chia các tiền tố thành 8 nhóm bằng nhau và thậm chí là tìm
kiếm trên mỗi chip TCAM. Đặc biệt là, sự phân chia đã cho của lưu lượng đến các địa chỉ IP
đích, có thể phân chia các tiền tố thành 4*8 dãy, và phân chia các dãy này thành 8 TCAM vì thế
mỗi TCAM có thể gần đến vị trí thứ 8 (one-eighth) của số các tiền tố và gần đến vị trí thứ 8 của
luồng. Do đó có thể nói rằng, nếu mỗi TCAM được chuyển đến trên bus riêng biệt, 8 TCAM có
thể phân phối gần đến 8 ∗ 125 triệu gói tin trên 1s (MPPS), ở đó mỗi TCAM có thể hoạt động
125 MPPS .
Giả sử rằng không có địa chỉ IP nào đạt được nhiều hơn 1/16 của tổng băng thông (8 ∗
125 = 10,000 MPPS), và băng thông của mỗi dịa chỉ IP là cho trước. Để nâng cao thông lượng,
chúng ta có thể chia các tiền tố trong bảng định tuyến thành 8 TCAM như sau:
1. Các địa chỉ IP được chia thành 2 ∗ 8 dãy dựa trên lưu lượng , ở đó mỗi dãy có ở “most
one-eighth” của luồng.

21



2. Mỗi dãy được chia thành các dãy con dựa trên số của các tiền tố. Tổng số các dãy là 32
(= 2 ∗ 2 ∗ 8).
3. 32 dãy này được phân chia giữa các TCAM do đó mỗi TCAM không thể nhận được
quá nhiều tiền tố và quá nhiều lưu lượng. Ví dụ, bốn dãy của 32 dãy này được chọn lựa ngẫu
nhiên để được chèn vào TCAM đầu tiên, bốn dãy khác trong TCAM thứ hai, và cứ thế tiếp
diễn….
4. Các dãy này được cho vào 32 bộ so sánh.
Vì việc phân chia là ngẫu nhiên, nên, một người có thể mong đợi với xác suất chấp nhận
được mà về “one-eighth” của lưu lượng đi đến mỗi TCAM. Thuật toán phân chia có thể xử lý
MPPS trong trường hợp xấu nhất [5].
4.1.2.

TCAM được đánh số

Nhằm đạt được xa hơn sự tiêu thụ công suất thấp hơn đáng kể, Panigrahy và Sharma áp
dụng ý tưởng của tìm kiếm được lược bớt trong một chip TCAM. Những cải tiến đến phần cứng
TCAM được chỉ ra trong hình 9.11.

Hình 11: TCAM được đánh số
Giả sử rằng TCAM trong hình 9.11 có 256K mục, ta tổ chức một TCAM thành các trang
ở đó mỗi trang chứa 256 mục liên tiếp. Điều này sẽ đưa ra sự tăng lên đến 1024 trang. Với mỗi
22


tìm kiếm tiền tố IP, cung cấp 6-bit thêm vào đến khóa 32-bit. Với mỗi trang trong TCAM, kết
hợp một ID nhóm 6-bit. Trong suốt một tìm kiếm, một trang chỉ được bật lên khi ID nhóm của
nó ánh xạ đến 6 bit đầu tiên của khóa đầu vào. Bằng cách tạo 6 bit phù hợp, một người có thể
chắc chắn rằng có khoảng 1/64th pages trong TCAM là được kích hoạt. ID 6 bit được tạo nên bởi

việc chia dãy của các tiền tố thành các khúc 64 bằng nhau. Điều này có thể được thực hiện bằng
cách sử dụng một tập hợp của các cặp bộ so sánh bên ngoài đến TCAM chứa 64 dãy. Điều này
có thể rất hữu ích cho các tiền tố mà chúng ánh xạ đến nhiều nhóm khác nhau (VD, 1******).
Một id nhóm có thể có các bit “do not care”.
Đặt mảng của bộ so sánh vào trong TCAM được đánh số (Xem hình 9.11). Mỗi mảng bộ
so sánh nhận một phần khác nhau của khóa và mỗi mảng đưa ra 6-bits. Mỗi trang có thể quyết
định 6-bits mảng nào có thể được sử dụng cho việc so sánh với id nhóm của nó. Điều này rất hữu
ích cho việc tổ chức danh sách điều khiển truy nhập (ACL - access control list) hoặc các mục
chất lượng dịch vụ (QoS) thành các trang. Một trong những mảng so sánh có thể phân biệt dựa
trên địa chỉ IP nguồn và mảng khác dựa trên địa chỉ IP đích. Mỗi trang có thể được cấu hình để
chọn id nhóm được tạo nên bởi một trong các mảng so sánh.
* TCAM: Ternary Content Addressable Memory: bộ nhớ định địa chỉ được nội dung tam phân
4.2.

Heuristic Partition Techniques

Ngày nay, một số nhà cung cấp TCAM (ví dụ, IDT) đã cung cấp cơ chế để tìm kiếm. Tuy
nhiên đây chỉ là một phần của thiết bị TCAM trong một hoạt động tra cứu.” Zane et al” đã tận
dụng đặc điểm này để đưa ra hai loại TCAM dựa trên kiến trúc tra cứu địa chỉ IP đó là: kiến trúc
lựa chọn bit và kiến trúc dựa theo mô hình cây. Ý tưởng cơ bản của hai dạng kiến trúc này là
chia thiết bị TCAM thành các phân vùng phụ thuộc vào ngân sách năng lượng. Điều này đặt ra
hai vấn đề quan trọng là: làm thế nào để phân vùng TCAM thành các bảng để giảm thiểu kích
thước của phân vùng lớn nhất, và làm thế nào để chọn đúng phân vùng và tìm kiếm nó cho mỗi
tra cứu địa chỉ IP.
4.2.1.

Kiến trúc lựa chọn bit

Các công cụ chuyển tiếp thiết kế cho kiến trúc lựa chọn bit dựa trên một nhận xét quan
trọng đó là: có một tỷ lệ rất nhỏ (<2%) của các tiền tố trong bảng định tuyến lõi hoặc rất ngắn

(<16 bit) hoặc rất dài (>24bit). Trong kiến trúc này, tiến tố rất ngắn hoặc rất dài được cho vào
một nhóm với số nhỏ nhất có thể các khối TCAM. Các khối này sẽ được tìm kiếm trong mỗi tra
cứu.
98% còn lại của các tiền tố với độ dài từ 16 đến 24 bit được nhóm thành một nhóm, một
trong số đó được chọn bằng cách “băm” nhỏ mỗi tra cứu. Các khối TCAM chứa các tiền tố rất
ngắn hoặc rất dài sẽ không được hiển thị một cách rõ ràng. Logic lựa chọn bit ở phía trước của
TCAM là một tập các muxe có thể được lập trình để trích xuất các bit băm (hashing bit) từ các

23


tiêu đề gói tin đến và sử dụng chúng để chỉ ra các TCAM bucket phù hợp. Tập hợp các bít băm
có thể được thay đổi theo thời gian bằng cách tái lập trình các muxe.
Để đơn giản, ta làm các giả định sau đây. Thứ nhất, ta chỉ xét tới tập các tiền tố có độ dài
từ 16 đến 24 bit (gọi là bộ chia) cho phân vùng. Thứ hai, ta hoàn toàn có thể làm cho các bảng
định tuyến nối với nhiều thiết bị TCAM, cái mà sau đó ta có thể chạy song song với logic lựa
chọn bit. Tuy nhiên, mỗi tra cứu sẽ vẫn yêu cầu tìm kiếm một bucket trong một thiết bị TCAM
đơn. Thứ ba, chúng ta giả thiết rằng toàn bộ số bucket là K=2k là một lũy thừa cơ số 2. Sau đó
logic lựa chọn bit sẽ được lấy ra từ một tập k bit băm từ tiêu đề các gói tin và lựa chọn một tiền
tố bucket. Tiếp theo các bucket mà dựa theo các khối TCAM chứa các tiền tố rất ngắn hoặc rất
dài sẽ được tìm kiếm.
Hai vấn đề chính bây giờ là làm thế nào để chọn được k bit băm và làm thế nào để phân
bổ các bucket khác nhau giữa các khối TCAM. Từ giả định trên, các bit băm phải được lựa chọn
từ 16 bit đầu tiên mà có độ dài tiền tố nhỏ nhất trong bộ chia (split set). Tập các bit băm tốt nhất
là tập mà có thể tối giản hóa được kích thước của bucket kết quả lớn nhất.
Cho một bảng định tuyến chứa N tiền tố, mỗi chiều dài lớn hơn L, chúng ta cần đếm kích
thước của bucket lớn nhất được tạo nên bởi hàm băm khả thi nhất mà k ≤ L bits rời khỏi L bits
cho việc băm. Có một tổng của

các hàm băm khả thi (H). Tập hợp N tiền tố được biểu diễn


như một tập hợp của các vector trọng số L bit. Trọng số wt(y) của một vector L bit được xác định
như là số lượng các tiền tố trong tập hợp tiền tố mà có L bit đầu tiên là y. ŵ= max(wt( y)). Cho
supp(y) biểu thị sự hỗ trợ (số lượng của các bit non-zero) của vector y. Định lý sau nói rõ ranh
giới phía trên, trên kích thước của bucket lớn nhất cho bất kỳ tập hợp tiền tố đầu vào nào. Sự
kiểm chứng được tìm thấy trong [6].

24


Hình 12: Kiến trúc kỹ thuật chuyển tiếp cho việc sủ dụng chọn bit. Ba bit băm ở đây
được chọn từ 32-bit địa chỉ đích bằng cách thiết lập 5 giá trị bit phù hợp cho b0, b1, và b2.
Tính chất 9.4.1: Với tất cả Y ⊆ {0,1}L, Σy∈Y wt( y) = N, ở đó tồn tại một vài hàm băm h ∈ H mà
chia tập hợp Y thành các bucket mà kích thước của bucket lớn nhất thìu nhiều nhất là
ở đó F(N,L,K) = ŵΣa∈A

,

, A ⊂ {0,1}L là một tập bao gồm các vector N/ŵ đầu tiên trong

trình tự của sự hỗ trợ tăng dần, mỗi vector trong chúng có trọng số ŵ.
Trong thực nghiệm, rất khó để tìm thấy một bảng định tuyến thực mà ánh xạ đến đầu vào
trong trường hợp xấu nhất. Nhưng giới hạn của đầu vào trong tình trạng xấu nhất giúp chúng ta
xác định ngân sách công suất (power budget).
Một lược đồ đơn giản nhằm kiểm tra tất cả các tập con khả thi của k bit từ 16 bit cho đến
khi tập con đầu tiên thỏa mãn ngân sách công suất xuất hiện, được gọi là một tìm kiếm cưỡng
bức (brute force search). Vì lược đồ so sánh

các tập hợp khả thi của k bit, nó yêu cầu một số


lượng lớn của việc tính toán.
Zane et al. đã đề xuất một thuật toán nhằm giảm việc tính toán. Để chọn k bit băm, thuật
toán này biểu diễn k sự lặp lại, chọn một bit băm trên mỗi sự lặp lại đó, nhân đôi số các bucket
(các phần chia của bảng định tuyến) trên mỗi sự lặp lại. Nhằm giảm nhỏ nhất kích thước của
25


×