3. Kỹ thuật VLMP cho loại bỏ phân loại (VLMP Technique to Eliminate Sorting)
5.3.2. Thuật toán điều chỉnh – Adjusting
Bởi vì các thuật toán LBBTC là một thuật toán tham lam (the greedy algorithm), kết quả tạo ra vẫn có thể được tối ưu hơn nữa. Thuật toán cân bằng tải dựa trên điều chỉnh (LBBA) trình bày dưới đây là một bổ sung đơn giản, nhưng hiệu quả của phương pháp là giúp tiếp tục cân bằng lưu lượng truy cập tra cứu giữa các chip TCAM. Ý tưởng sơ khai của thuật toán này là tiếp tục cân bằng lưu lượng phân phối tải có thể đạt được bằng cách trao đổi các nhóm ID cụ thể giữa các chip TCAM, dựa trên các kết quả được trình bày bằng các thuật toán LBBTC và các nguyên tắc nhất định. hành động này không hề gây ảnh hưởng đến các điều kiện ràng buộc.
Đầu tiên, chúng tôi muốn xem xét một số khái niệm. kết quả của thuật toán LBBTC là một chuỗi các bộ {Qk, k = 1, ..., K}, mỗi đại diện cho bộ các nhóm ID được phân bổ cho một con chip TCAM cụ thể. Tương ứng với mỗi chip TCAM là tỷ số tìm kiếm tải lưu lượng truy cập cứu Dk (k = 1, ..., K). Bây giờ, chúng tôi chia {Qk, k = 1, ..., K} thành hai tập hợp, Cài đặt I và Thiết lập J, với I = {i | D [i] > 1 / K, i = 1, 2, ..., K} trong khi J = {j | D[j] ≤ 1 / K, j = 1,2, ..., K} (1 / K là tỷ lệ lưu lượng tải trung bình của các chipTCAM K)
Định lý 9.5.2: điều kiện cần cho việc trao đổi các nhóm ID là
Chứng minh:
Giả sử D[i] chỉ tải lưu lượng được phân bổ tới TCAM # i trước khi trao đổi và D’[i] chỉ tải lưu lượng được phân bổ tới TCAM i sau khi trao đổi thì
Do | D '[i] - D' [j] | <| D [i] - D [j] |, tức là sự khác biệt giữa 2 chip TCAM giảm, gọi là Op = | D [i] - D [j] | - | D '[i] - D' [j] |
Với giá trị tối ưu của các hoạt động trao đổi. Nó đại diện cho giá trị tối ưu hóa các mục tiêu của vấn đề LBBTC ; , 1,... [i] - D[j] i j i j k D ≠ ∑= Giải thuật LBBA
1) Cập nhật Thiết lập I và J;
2) Sắp xếp {i, i ∈ I} theo thứ tự tăng dần của D [i], và ghi lại kết quả như sau {I[1], [2], ..., I[|I|}; với | I | là số phần tử trong Bộ I.
Sắp xếp {j, j ∈ I} theo thứ tự tăng dần của D [j], và ghi lại kết quả như sau {J [1], J [2], ..., J |J |}
Sự hội tụ của thuật toán LBBA: Ta đặt 1.1.2. 1 2 3 4 { | W[ ] W[ ] n P P m P P n m δ δ ∈ ∪ ∈ ∪ ∆ = = ∑ − ∑ U
Trong đó P1, P2, P3, P4 ⊂ S, δ>0}; Dễ hiểu rằng đặt Δ là độc lập về việc điều chỉnh thuật toán và | Δ | < ∞
Vì thế do mục tiêu và mỗi hoạt động trao đổi làm giảm được mục tiêu bằng một giá trị lớn hơn lặp đi lặp lại trong thuật toán này là hội tụ.
Ví dụ, giả sử rằng sự phân bố lưu lượng giữa các nhóm ID cho bởi Bảng 9.10. Nếu Rd = 1.25, T = 1, và K = 4, kết quả phân bổ được đưa ra bởi các thuật toán được thể hiện trong Bảng 9.11. tỷ lệ tải trọng ở mỗi chip là khoảng 25%.
Bảng 7: Phân phối lưu lượng giữa các nhóm ID
Bảng 8: Kết quả phân bổ các tiền tố (trong các nhóm ID)
5.4. Phân tích hiệu quả công suất
TCAM truyền thống là một thiết bị toàn song song. Khi khóa tìm kiếm được nhập vào, tất cả các mục được kích hoạt để thực hiện các hoạt động phù hợp, đó là lý do khiến mức tiêu thụ năng lượng cao. Hiện nay thiết bị TCAM hiện nay tiêu thụ hơn 12-15 W cho mỗi con chip khi
tất cả các entry(mục) được kích hoạt cho việc tìm kiếm. Tuy nhiên, điện năng tiêu thụ của TCAM có thể được giảm xuống. Chúng tôi thấy rằng không phải tất cả các entry được kích hoạt đồng thời trong một thao tác tìm kiếm đều là entry thật sự cần được kích hoạt và phù hợp với khóa đầu vào. Vì vậy, để sử dụng hiệu quả công suất của TCAM ta sẽ tránh không kích hoạt các entry không cần thiết trong khi tìm kiếm. Để đo lường hiệu quả tiêu thụ điện năng trong mỗi hoạt động tìm kiếm, Zheng et al.giới thiệu khái niệm về hiệu quả năng lượng động (DPE), được định nghĩa dưới đây.
Định nghĩa 9.5.6: Với Vi là số lượng các entry được kích hoạt trong một thao tác tìm kiếm cụ thể mà phù hợp với khóa tìm kiếm đầu vào thứ I; W là tổng số các entry được kích hoạt trong một thao tác tìm kiếm cụ thể.
Khi đó, hiệu quả năng lượng động : ( ) : W
i
V DPE i =
Ví dụ, giả sử rằng từ khóa đầu vào tìm kiếm được "A.B.C.D" có 5 tiền tố tuyến đường phù hợp với từ khóa này trong bảng định tuyến là A/8, A.B/12, A.B/16, A.B.C/24, và A.B.C.D/32. Kích thước của bảng định tuyến (tất cả trong một chip đơn) là 128000, ta tính được:
DPE(i): = 5/128000 = 3.90625 × 10-5
Có hai cách để giảm số lượng các entry được kích hoạt trong một thao tác tìm kiếm. Một là lưu trữ các entry trong nhiều chip nhỏ thay vì một lớn duy nhất. Cách thứ hai là phân vùng 1 TCAM thành các khối nhỏ và chỉ kích hoạt một phần trong số chúng trong một thao tác tìm kiếm. Nếu phần cứng (TCAM) hỗ trợ chức năng vô hiệu hóa phân vùng (partition-disable), đề xuất sẽ áp dụng cả 2 phương pháp cùng lúc.
Tiếp theo các ví dụ đã đề cập ở trên. Nếu chúng ta sử dụng bốn TCAMs nhỏ thay vì một TCAM lớn và phân vùng chúng thành tám khối để lưu trữ các tiền tố tuyến đường, giả định rằng tỷ lệ lưu trữ dự phòng là 1.25, thì khi đó số lượng tiền tố được lưu trữ trong mỗi khối trong số 4 × 8 = 32 khối là 128000 × 1.25/32 = 5000. Áp dụng phương pháp đề xuất phân vùng TCAM và giả thiết rằng phần cứng hỗ trợ cho tính năng phân vùng vô hiệu hóa, ta thấy DPE trong trường hợp này được tăng lên, hiệu quả tiêu thụ năng lượng tăng hơn 25 lần.
Do: DPE’(i)= 5/5000=10-3 = 25,6 DPE(i)
5.5. Kiến trúc thực thi hoàn chỉnh
Kiến trúc thực thi hoàn chỉnh của lưu lượng cực cao và công cụ tìm kiếm tiết kiệm điện năng được cho ở hình 9.34. Cho một địa chỉ IP đến cần tìm kiếm, các bit ID của địa chỉ IP được trích ra và gửi đến chỉ mục logic để thực hiện kết hợp. Chỉ mục logic này sẽ trả về một bộ các số phân vùng cho thấy các TCAM và khối trong nó có thể chứa các tiền tố phù hợp với địa chỉ IP. Bộ lựa chọn ưu tiên (ví dụ: logic lựa chọn cân bằng tải) chọn một TCAM với hàng đợi đầu vào (FIFO) ngắn nhất từ những khối có chứa các tiền tố phù hợp và gửi địa chỉ IP tới hàng đợi đầu
vào tương ứng với các TCAM được chọn. Để đảm bảo trình tự của các địa chỉ IP đến, một thẻ tag (số thứ tự) sẽ được gắn vào địa chỉ IP đang được xử lý.
5.5.1. Chỉ mục logic (Logic Index)
Các chức năng trong chỉ mục logic là để tìm đến các phân vùng trong các TCAM có chứa nhóm các tiền tố phù hợp với địa chỉ IP đến, theo minh họa trên hình 9.35. Nó bao gồm các nhóm logic song song thực hiện so sánh. Mỗi nhóm logic so sánh tương ứng với một TCAM, trong khi mỗi logic so sánh tương ứng với một phân vùng trong TCAM. Trường index đại diện cho các ID của nhóm tiền tố và trường phân vùng (partition) cho thấy nó thuộc khối nào trong nhóm các tiền tố được lưu trữ. Mỗi nhóm của logic so sánh có một cổng trả về. Nếu các bit ID của địa chỉ IP đến phù hợp với một trong các chỉ số trong một nhóm thì số các phân vùng tương ứng sẽ được trả về, nếu không thì một phân vùng số "111" (7) sẽ được trả về, đại diện cho các thông tin không phù hợp. Do bus dữ liệu của logic so sánh có độ rộng hẹp và cố định, và do chỉ phải thực hiện hoạt động "so sánh" nên nó có thể chạy ở một tốc độ rất cao.
Hình 30: Sơ đồ của Index Logic
5.5.2. Chọn lựa ưu tiên (Logic cân bằng tải thích ứng)
Chức năng của bộ chọn lựa ưu tiên là phân bổ địa chỉ IP đến TCAM nhàn rỗi nhất có chứa các tiền tố phù hợp với địa chỉ IP này, do đó lưu lượng tìm kiếm được cân bằng giữa các TCAMs thích nghi. Như đã đề cập ở phần trước, ở đây đưa ra một số bộ nhớ lưu trữ dự phòng để đảm bảo thông lượng tìm kiếm và tiền tố có thể được lưu trữ tại các đa TCAMs dựa trên việc phân phối lưu lượng giữa các nhóm ID. Lựa chọn ưu tiên dùng trạng thái bộ đếm truy cập của đầu vào hàng đợi đối với mỗi TCAM để xác định một trong những địa chỉ IP hiện hành phải được gửi đến. Các thuật toán Lựa chọn ưu tiên được thể hiện như sau.
Input: Counter[i], i =1 , ... ,K; //Status of the buffer for each TCAM
PN[i], i =1 , ... ,K; //Partition numbers of the chips, which are inputted from the Index logic.
Output: Obj // serial number of the chip that the current IP address should be delivered to.
if (PN[i] ≠ 7) then Obj = i;
Else
break; endfor;
for i from Obj + 1 to K do
If (Counter[i] < Counter[obj] and PN[i] ≠ 7 ) then Obj = i;
Endfor;
Do trạng thái của các bộ đếm hàng đợi độc lập là độc lập với địa chỉ IP hiện thời, và ở đây không yêu cầu độ chính xác cao nên phần này cũng có thể được thực hiện tại ASIC tốc độ cao một cách dễ dàng.
5.5.3. Logic thứ tự (Ordering Logic)
Bởi vì có nhiều hàng đợi ứng với các lối vào dữ liệu, các địa chỉ IP đến sẽ để lại bộ nhớ đệm kết quả một trình tự khác nhau từ bản gốc (hình 9.34). Chức năng của Logic thứ tự là để đảm bảo rằng kết quả sẽ được trả về theo đúng thứ tự so với lúc vào. Logic thứ tự sử dụng cấu trúc dựa trên việc gắn tag. Khi một địa chỉ IP đến được phân cho một TCAM phù hợp, một thẻ tag (ví dụ như số thứ tự) sẽ được gắn vào. Ở đầu ra, Logic thứ tự sử dụng các thẻ này để sắp xếp lại đúng thứ tự như cũ.
Lấy một ví dụ, giả sử rằng việc phân phối lưu lượng giữa các nhóm ID được cho tại bảng 9.10, chúng tôi sử dụng thuật toán cân bằng tải dựa trên đề xuất xây dựng các bảng trong các TCAMs và có được kết quả như trong Bảng 9.11. Khi một địa chỉ IP 166.103.142.195 được tìm kiếm, ID của nó là "1100" (12) được trích xuất và gửi cho Logic index. ID này được so sánh với 20 chỉ số trong bốn nhóm cùng một lúc. Các phân vùng được trả về có "010" (2), "010" (2), "001" (1), và "111" (7), điều đó có nghĩa rằng TCAM # 1, # 2, và #3 chứa nhóm có tiền tố phù hợp với địa chỉ IP, trong khi đó TCAM # 4 thì không. Những kết quả này sau đó được gửi vào bộ Chọn lựa ưu tiên. Giả sử rằng giá trị bộ đếm của 3 TCAM (#1,2 và 3) tương ứng là 6,7 và 3. TCAM#3 được chọn do giá trị bộ đếm của nó là nhỏ nhất. Do đó, địa chỉ IP “166.103.142.195” có số phân vùng "001", và số thứ tự hiện tại được đẩy vào hàng đợi FIFO tương ứng với chip #3. Khi đi đến đầu hàng đợi, địa chỉ IP được “bật” ra và gửi đến phân vùng #1 (của TCAM #3) để thực hiện các hoạt động tìm kiếm. Kết quả cuối cùng được gửi ra bởi Logic thứ tự theo trật tự ban đầu trên thẻ tag đính kèm của nó. Tất cả các bước xử lý trên có thể được triển khai theo phương thức pipeline (phương thức đường ống –cho phép xử lý song song đa tác vụ).
5.6. Phân tích hiệu năng
Để đo lường hiệu năng và khả năng thích ứng của các loại phân phối tải trọng khác nhau, Zheng et al. đã làm một loạt các thí nghiệm và mô phỏng [14]. Trong trường hợp với bốn TCAMs đều có độ sâu bộ đệm n = 10, bảng định tuyến là bảng Mae West (http://www.merit.edu/ipma) và quy trình xuất hiện tương ứng với các nhóm ID là quá trình Poisson độc lập toàn bộ. Kết quả được đưa ra trong hình 9.36 đối với hai bản phân phối tải trọng
Hình 31: So sánh khi thông lượng sử dụng với tỷ lệ dự phòng và lưu lượng phân bố thay đổi
Khi lưu lượng tải thông được phân bố đều (trường hợp #1 trong hình 9.36a), có thể thấy rằng việc sử dụng lưu trữ dự phòng chỉ giúp cải thiện được một chút thông lượng. Cân bằng tải dựa trên tổ chức bộ nhớ đã hạn chế tỷ lệ mất (block) khoảng 5%. Mặt khác, trong trường hợp phân bố lưu trữ lệch (trường hợp #2 hình 9.36b), bộ nhớ lưu trữ dự phòng giúp cải thiện thông lượng tìm kiếm một cách rõ ràng khi hệ thống chịu tải nặng, mặc dù tỷ lệ dự phòng thấp tới 1,25. Trong cả 2 trường hợp, một tỷ lệ dự phòng là 1.25 là đủ đảm bảo độ thông qua gần đạt 100%, có nghĩa là khi 4 chip TCAM làm việc song hành, các chương trình LBBTC giúp cải thiện thông lượng tìm kiếm khi giúp 1 trong số 4 chi phí tăng thêm 25% không gian bộ nhớ.
Để đo lường sự ổn định và khả năng thích ứng của đề xuất khi phân phối lưu lượng thay đổi cách nhau từ một thời gian ban đầu, Zheng et al. chạy các mô phỏng sau đây với tỷ lệ dự phòng là 1,25
Mô phỏng 1
Bảng chuyển tiếp được xây dựng từ sự phân bố lưu lượng truy cập được đưa ra trong trường hợp #2 cho thấy trong hình 9.36, lưu lượng truy cập tìm kiếm với phân phối được cho trong trường hợp # 1
Mô phỏng 2
Bảng chuyển tiếp được xây dựng từ sự phân bố lưu lượng truy cập được đưa ra trong trường hợp # 1 thể hiện trong hình 9.36, lưu lượng truy cập tìm kiếm với phân phối được cho trong trường
Mô phỏng 3
Bảng chuyển tiếp được xây dựng từ sự phân bố lưu lượng truy cập được đưa ra trong trường hợp # 1, lưu lượng tìm kiếm là nghiêm ngặt ngay cả khi phân phối (strictly even-distributed)
Hình 9.37 cho thấy kết quả của ba lần mô phỏng. Mặc dù việc phân phối lưu lượng truy cập khác nhau rất nhiều, thông lượng tìm kiếm cũng giảm xuống dưới 5%, có nghĩa là đề án dự kiến là không nhạy cảm với sự biến đổi của lưu lượng phân phối. Trong thực tế, cơ chế thích ứng cân bằng tải đóng vai trò quan trọng trong trường hợp này.
Các hàng đợi đầu vào và đặt hàng logic của cũng mang theo một số trễ xử lý các địa chỉ IP đến. Hình 9.38 cho thấy các kết quả mô phỏng của hàng đợi và xử lý toàn bộ (bao gồm lệnh luận lý) độ trễ cơ chế của chúng ta.Việc chậm trễ xử lý toàn bộ là từ 9Ts và 12Ts (cấp dịch vụ). Nếu TCAMs 133 MHz được sử dụng, trễ này là khoảng 60-90 ns, con số này là chấp nhận được. Jitter toàn bộ có độ trễ xử lý nhỏ, nó khá quan trọng việc thi hành phần cứng.
Bảng cập nhật thông tin định tuyến TCAM được xây dựng nhờ thay đổi tương tự để TCAM đó tìm kiếm dựa trên cơ chế thông thường. Xem xét các tiền tố ID trong những nhóm trong đề xuất. Theo định lý 9.5.1, tiền tố dài nhất phù hợp để đảm bảo chúng ta chỉ cần giữ cho các tiền tố trong mỗi nhóm ID được lưu với thứ tự giảm dần về độ dài. Nó có thể dễ dàng thực hiện update thêm bằng việc sử dụng các thuật toán như đã trình bày trong [2]. Cũng lưu ý rằng đối với một số nhóm ID, có thể có nhiều bản copy giữa các chip TCAM, do đó chúng ta cần phải cập nhật tất cả các bản sao đó.
TÀI LIỆU THAM KHẢO
1. Labovitz, C., Malan, G.R., and Jahanian, F., Internet routing instability, IEEE/ACM Trans. Networking 1999; 6(5):515–528.
2. Shah, D. and Gupta, P., Fast updating algorithms for TCAMs, IEEE Micro 2001; 21(1):36–47.
3. Weidong Wu, Bingxin Shi, and Feng Wang, E cient location of free spaces inffi TCAM to improve router performance, International Journal of Communication Systems 2005; 18(4):363–371.
4. Kobayashi, M., Murase, T., and Kuriyama, A., A longest prefix match search engine for multi-gigabit IP processing. Robert Walp and Ian F. Akyildiz eds., Proceedings of the International Conference on Communications (ICC 2000), New Orleans, LA, 2000, New York: IEEE Press, 1360–1364.
5. Panigrahy, R. and Sharma, S., Reducing TCAM power consumption and increasing throughput, In Raj Jain Dhabaleswar and K. Panda eds., Proceedings of 10th Symp. High-