1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

62 721 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 1,67 MB

Nội dung

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

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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)

Trang 6

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)

Trang 7

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

Trang 8

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

Trang 9

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 (http://www.idt.com, 2005)

Hoạt động cập nhật chậm

Trang 10

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

Trang 11

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

Trang 12

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 (P h ⊂ P g

P d ⊂ P b ⊂ P a , P f ⊂ P c ⊂ P b ⊂ P a , P e ⊂ P c ⊂ P b ⊂ P a ).

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

(ftp://ftp.routeviews.org/bgpdat, 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

Trang 13

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

Trang 14

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

Trang 15

⊂ 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 (ftp://ftp.routeviews.org/bgpdata, 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

Trang 16

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

Trang 17

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.)

Trang 18

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

Trang 19

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à

Trang 20

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

Paged-TCAM)

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

Trang 21

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

Trang 22

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

Trang 23

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

Trang 24

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

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]

Trang 25

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

Trang 26

bucket lớn nhất, một bit được chọn bởi việc chia tách 2 cách trong sự lặp lại đó Thuật toán này được chỉ ra trong hình 13.

Zane et al đã làm các thực nghiệm nhằm đánh giá các lược đồ với chi tiết đến hai metric

— thời gian chạy và chất lượng của các phân chia Hai bảng định tuyến lõi rrc04 và Oregon được sùng với kích thước 109,600 và 121,883 tiền tố rrc04 từ Genva (11/01/2001), và Oregon từ University of Oregon (05/01/2002) Tất cả các thực nghiệm được chạy trên một PC 800MHz và được yêu cầu nhỏ hơn 1 MB bộ nhớ Thời gian chạy cho thuật toán cưỡng bức thì nhỏ hơn 16s cho việc lựa chọn đến 10 bit băm, trong khi thời gian cho “greedy heuristic” thì nhỏ bằng 0.05s cho việc chọn lựa đến 10 bit băm

Hình 13: Thuật toán cho việc chọn k bit băm cho một chia tách thỏa mãn B là tập các bit được chọn Ở đây s b = j biểu thị tập con của các tiền tố trong các tập hợp mà có giá trị của j (j = 0

hoặc 1) trong vị trí bit b.

Trang 27

Hình 14: Hệ số giảm công suất được vẽ trên một “log scale”, sử dụng cá thuật toán khác nhau

“brute” sử dụng phương pháp cưỡng bức brute, “greedy” sử dụng thuật toán greedy, trong khi

“static” sử dụng các bit liên tiếp cuối cùng của 16 bit đầu tiên của tiền tố “Full” là bảng tổng hợp được tạo nên bỏi sự chọn lựa số các tiền tố cho mỗi kêt hợp của 16 bit đầu tiên cùng kiểu với

nhau một cách ngẫu nhiên

Nhằm khám phá bản chất của các chia tách được tạo nên bỏi các bit băm, ta sử dụng tỷ số N/Cmax như một thước đo cho chất lượng của sự chia tách, được gọi là yếu tố giảm công suất, ở đó N là số các tiền tố 16–24-bit trong bảng định tuyến, và Cmax là kích thước bucket lớn nhất Hình 14 chỉ ra một sơ đồ của N/Cmax đối với số các bit băm k

Từ hình 14, tại k = 6, yếu tố giảm công suất cho các đồ hình greedy thì gần bằng 53 Vì số lượng các bit băm (k) được giảm nhỏ, các điểm khác nhau của các yếu tố giảm công suất giữa

3 đồ hình lựa chọn bit được mở rộng

Kiến trúc chọn lựa bit cung cấp một công nghệ đơn giản nhằm giảm tiêu thụ công suất của các TCAM dữ liệu Nhưng nó yêu cầu phần cứng thêm vào — các bộ mux và giả sử rằng thành phần chủ yếu của các tiền tố nằm trong dãy 16–24-bit Nhằm khắc phục cá hạn chế này, Zane et al đã đề xuất các thuật toán cây mà nó có thể cung cấp các ranh giới chặt hơn trên việc tiêu thụ công suất trong trường hợp xấu nhất, ở chi phí của phần cứng thêm vào

4.2.2 Kiến trúc dựa theo mô hình cây.

Kiến trúc dựa theo mô hình cây sử dụng một tiền tố dạng cây (trie) trong thủ tục tra cứu đầu tiên thay vì phải dùng hàm băm để chọn ra một tập bit đầu vào như trong kiến trúc lựa chọn bit Mỗi địa chỉ IP đầu tiên sẽ được đối chiếu lần lượt với một TCAM kích thước nhỏ (index TCAM), được kết nối với SRAM (index SRAM) Do đó ta có thể tìm thấy số nhận dạng ID của

Trang 28

bucket TCAM đang cần tìm kiếm Bước thứ hai thì giống như trong kiến trúc lựa chọn bit Kiến trúc dựa theo mô hình cây được chỉ ra trong hình 9.15.

Hình 15: Kiến trúc tra cứu địa chỉ IP dựa theo mô hình cây

Vấn đề chính lúc này đó là làm cách nào để xây dựng được cây trong TCAM để tối giản hóa việc chiếm dụng tài nguyên “Zane et al” đã đề xuất hai thuật toán cho mô hình cây đó là: subtree-split và postorder-split Ta sẽ phân tích lần lượt các thuật toán bằng cách sử dụng bảng định tuyến tương ứng với mô hình cây như hình 9.16

 Thuật toán subtree-split:

Subtree-split (b):

While (there is a next node in post order)

p = next node in post order;

if (count(p) ≥ ⎡b/2⎤ and (count(parent(p)) >b))

carve out subtree rooted at p put subtree in new TCAM bucket bu put prefix(p) in index TCAM

Trang 29

Hình 16: Mô hình cây

Mô hình cây được xây dựng tương ứng với bảng định tuyến bên cạnh Bắt đầu từ nút gốc

ở trên cùng là 0, vẽ nhánh bên trái tương ứng với bit 0, vẽ nhánh bên phải tương ứng với bit 1

Cứ như vậy đối với các nút tiếp theo Các nút màu đen là các tiền tố được cho trong bảng định tuyến

Thuật toán Subtree-split có một trường giá trị đầu vào b biểu thị kích thước tối đa của một TCAM bucket Trường giá trị đầu ra là một tập K TCAM bucket, với K ϵ [ , ], với mỗi TCAM có kích thước nằm trong khoảng [ b/2,b ], và một TCAM index có kích thước K Trong

suốt quá trình phân chia nhánh cây, toàn bộ cây sẽ được quét để tìm ra nút cắt (carving node)

Một nút cắt v là một nút mà giá trị nhỏ nhất của nó bằng [b/2] và tồn tại một nút ở phía trên nó với giá trị lớn hơn b Mỗi khi bắt gặp một nút cắt v, toàn bộ nhánh cây con có gốc nằm tại nút v

sẽ bị loại bỏ và đặt vào trong một TCAM bucket riêng biệt Tiếp đó, tiền tố của nút v sẽ được đặt trong TCAM index và tiền tố che phủ (covering prefix) của v được thêm vào trong TCAM bucket Mặt khác, mỗi lần nhánh cây con có gốc tại v bị cắt ra thì trạng thái nghỉ của cây sẽ được

cập nhật để phản ánh điều đó Khi không còn các nút cắt bên trái cây, các tiền tố còn lại (nếu còn) sẽ được đặt trong một TCAM bucket mới với một dấu hiệu * ở trong TCAM index Chú ý

rằng kích thước của TCAM bucket cuối cùng nằm trong khoảng [1,b].

Hình 9.18 sẽ chỉ ra cách các nhánh cây con bị cắt ra khỏi cây 1-bit ở ví dụ hình 9.16 Chú

ý rằng nút gốc của nhánh cây con bị cắt ra không cần giữ tiền tố từ bảng định tuyến Do đó, TCAM index có thể bao gồm các tiền tố không chứa trong bảng định tuyến gốc Đơn giản, chúng

có vai trò như một con trỏ tới các bucket ở trong dữ liệu TCAM mà chứa các tiền tố bảng định tuyến tương ứng Do đó một địa chỉ đầu vào mà khớp với một thông số đầu vào trong TCAM index sẽ có thể không khớp với tiền tố ở trong nhánh cây con tương ứng Thêm vào đó là tiền tố che phủ của một bucket đảm bảo rằng một kết quả đúng sẽ được gửi trở lại trong trường hợp này

Ví dụ, đối với sự phân chia như trong hình 9.18, địa chỉ đầu vào là 01011111 khớp với 010* trong TCAM index nhưng không khớp với tiền tố trong nhánh cây con tương ứng Tiền tố che phủ 0* là tiền tố dài nhất đúng với địa chỉ đầu vào này

Trang 30

Vì ta đã thực hiện một lượt quét thứ tự các nhánh cây con nên các chỉ số của các cây con phải được thêm vào TCAM index theo thứ tự nhánh cây con tương ứng đã được tách ra khỏi cây

mẹ Nói cách khác, chỉ số của cây con đầu tiên phải có ưu tiên cao nhất (địa chỉ thấp nhất) trong TCAM index, trong khi chỉ số của cây con cuối cùng phải có ưu tiên thấp nhất

Các tính chất sau có thể chứng minh cho thuật toán subtree-split khi áp dụng với trường

giá trị b cho một bảng định tuyến với N tiền tố Ta không xét tới chứng minh của các tính chất

này

trừ bucket cuối cùng có kích thước nằm trong khoảng [1,b] Thêm vào đó, một tiền tố che

phủ sẽ được thêm vào mỗi bucket

bucket sẽ cho kết quả trong một entry của TCAM index và một entry của SRAM index

luôn trở lại làm tiền tố dài nhất ứng với mỗi địa chỉ đầu vào

Cuối cùng, để chia N tiền tố vào trong k bucket, thuật toán subtree-split được chạy với trường giá trị b=[2N/k] Vì kích thước tối đa của bucket (bao gồm cả tiền tố che phủ) là

b+1 Ta xét tiếp tính chất sau:

quá trình tra cứu thì sẽ có khoảng K+[2N/k] +1 tiền tố được tìm kiếm trong các TCAM index

và TCAM data

Trang 31

Hình 17: 4 bước trong thuật toán subtree-split.

 Thuật toán postorder-split:

Mặt hạn chế đối với thuật toán subtree-split đó là các bucket nhỏ nhất và lớn nhất thường thay đổi theo hệ số 2 “Zane et al” đã giới thiệu một thuật toán phân chia cây khác gọi là “post-

order-split” để khắc phục vấn đề này Một lần nữa, cho N là tổng số tiền tố trong một bảng định tuyến và b là kích thước mong muốn của một TCAM bucket Thuật toán post-order-split chia bảng định tuyến thành các bucket mà mỗi bucket chứa đúng b tiền tố (ngoại trừ bucket cuối

cùng)

Các bước chính trong thuật toán post-order-split nhìn chung khá giống với các bước trong thuật toán subtree-split Đầu tiên, nó cũng xây dựng cây 1-bit từ bảng định tuyến và sau đó quét một lượt cây vừa xây dựng để tìm ra các “carving node” và cắt bỏ các nhánh cây con có gốc tại

carving node Tuy nhiên có thể toàn bộ cây sẽ không chứa [N/b] nhánh cây con mà mỗi nhánh cây con đó chứa b tiền tố Vì mỗi lần đưa ra kết quả, TCAM bucket phải có kích thước là b, ở đây một bucket được xây dựng từ việc tập hợp các nhánh cây con chứa b tiền tố hơn là chỉ một

nhánh cây con duy nhất Do đó, các entry tương ứng trong TCAM index sẽ có nhiều chỉ số trỏ

Ngày đăng: 29/01/2016, 17:08

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w