THIẾT KẾ BỘ NHỚ CAM VÀ TCAM

42 369 4
THIẾT KẾ BỘ NHỚ CAM VÀ TCAM

Đ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

Chương này trình bày về thiết kế của bộ nhớ CAMTCAM. Như đã giới thiệu ở chương 2, CAMTCAM là các thành phần rất quan trọng và không thể thiếu trong kiến trúc thiết kế của Switch có vai trò tìm kiếm theo thời gian thực và đảm bảo độ trễ gói thấp trong tầm kiểm soát. Phần đầu chương này sẽ trình bày chi tiết về thuật toán và nguyên lí làm việc của bộ nhớ CAMTCAM. Theo sau đó là thiết kế phần cứng của một bộ nhớ CAMTCAM, cách để tổ chức một bộ nhớ CAMTCAM dựa theo bộ nhớ thông thường, cách thực hiện ghi dữ liệu và tìm kiếm trên bộ nhớ CAMTCAM. Chương này cũng đưa ra các cách thực hiện một bộ nhớ CAMTCAM khác nhau để sử dụng tối đa nguồn tài nguyên trong phần cứng FPGA bằng cách so sánh giữa thiết kế dùng Block RAM và Distributed RAM của FPGA. Cuối cùng các thiết kế này sẽ được mô phỏng và tổng hợp kiểm tra trên đối tượng mạch FPGA cụ thể.81 4.1 Giới thiệu chung về CAM và TCAM Khái niệm 4.1.1.1 CAM Bộ nhớ tìm kiếm theo nội dung CAM (Content Addressable Memory) là bộ nhớ lưu trữ giá trị hoặc từ khóa trong khối RAM, cho phép truy cập tìm kiếm theo nội dung và trả về kết quả tìm kiếm dưới dạng địa chỉ ô nhớ trùng khớp trong một thời gian rất nhanh và cố định, thường là trong một vài chu kì hệ thống. Một từ tìm kiếm trong bộ nhớ CAM sẽ cho ra kết quả là trùng khớp (MATCH) hoặc không trùng khớp, có thể đưa ra cả địa chỉ trùng khớp nếu cần thiết. Bộ nhớ CAM có khả năng tìm kiếm song song cho một số lượng rất lớn các nội dung và có cơ chế tổ chức rất khác so với các phương pháp tìm kiếm theo dạng duyệt tuần tự. Trên thực tế, thời gian trễ của thuật toán tìm kiếm tuần tự trên bộ nhớ RAM tỷ lệ thuận với số lượng từ khóa và thường không cố định nên không thể áp dụng cho các thiết bị chuyển mạch thời gian thực. Bộ nhớ này là một phần rất quan trọng trong thiết kế của các thiết bị mạng nói chung và Switch lớp 2 nói riêng.

80 CHƯƠNG THIẾT KẾ BỘ NHỚ CAM VÀ TCAM Chương trình bày thiết kế nhớ CAM/TCAM Như giới thiệu chương 2, CAM/TCAM thành phần quan trọng thiếu kiến trúc thiết kế Switch có vai trị tìm kiếm theo thời gian thực đảm bảo độ trễ gói thấp tầm kiểm sốt Phần đầu chương trình bày chi tiết thuật tốn nguyên lí làm việc nhớ CAM/TCAM Theo sau thiết kế phần cứng nhớ CAM/TCAM, cách để tổ chức nhớ CAM/TCAM dựa theo nhớ thông thường, cách thực ghi liệu tìm kiếm nhớ CAM/TCAM Chương đưa cách thực nhớ CAM/TCAM khác để sử dụng tối đa nguồn tài nguyên phần cứng FPGA cách so sánh thiết kế dùng Block RAM Distributed RAM FPGA Cuối thiết kế mô tổng hợp kiểm tra đối tượng mạch FPGA cụ thể 81 4.1 Giới thiệu chung CAM TCAM Khái niệm 4.1.1.1 CAM Bộ nhớ tìm kiếm theo nội dung CAM (Content Addressable Memory) nhớ lưu trữ giá trị từ khóa khối RAM, cho phép truy cập tìm kiếm theo nội dung trả kết tìm kiếm dạng địa ô nhớ trùng khớp thời gian nhanh cố định, thường vài chu kì hệ thống Một từ tìm kiếm nhớ CAM cho kết trùng khớp (MATCH) khơng trùng khớp, đưa địa trùng khớp cần thiết Bộ nhớ CAM có khả tìm kiếm song song cho số lượng lớn nội dung có chế tổ chức khác so với phương pháp tìm kiếm theo dạng duyệt Trên thực tế, thời gian trễ thuật tốn tìm kiếm nhớ RAM tỷ lệ thuận với số lượng từ khóa thường không cố định nên áp dụng cho thiết bị chuyển mạch thời gian thực Bộ nhớ phần quan trọng thiết kế thiết bị mạng nói chung Switch lớp nói riêng 1 1 01 1 0 0 10 0 1 11 0 0 1 Match = Match = Match = Giải mã 00 11 Match = 0 0 1 Từ khóa Hình 4.1 Minh hoạ khối CAM Như trình bày Hình 4.1, từ khóa tìm kiếm song song bốn vị trí lưu từ CAM Tại địa 00, 01, 10 cho kết MATCH = từ lưu khác với từ khóa tìm kiếm Tại địa 11 cho kết MATCH = 1, tùy theo cấu hình CAM đưa địa từ MATCH 82 4.1.1.2 TCAM TCAM (Ternary Content Addressable Memory) nhớ kết hợp đặc biệt, lưu giá trị 0, X (do not care) Khác với CAM biểu diễn giá trị TCAM biểu diễn khoảng giá trị, khoảng giá trị biểu diễn giá trị X Giá trị X nhận nên nhớ lưu trữ TCAM có kèm thêm tham số mặt nạ thay có từ khóa giá trị Mặt nạ tham số kèm để xác định vị trí chứa bit X từ khóa hay giá trị [7] Khả khớp với khoảng giá trị quan trọng ứng dụng ACL switch thơng minh thực lọc gói tin theo dải IP dải Port phần mềm, tìm kiếm địa IP thiết bị định tuyến… Tuy thiết kế phần cứng sử dụng cho TCAM thường phức tạp lớn so với CAM Giao diện tra cứu TCAM nhận từ khóa tra cứu đưa kết có chứa tín hiệu cho biết từ khóa có khớp (MATCH) với từ TCAM lưu nhớ hay khơng Nếu có vị trí khớp, nhớ TCAM đưa địa từ khóa đó, từ khóa khớp với nhiều vị trí lưu Do có nhiều vị trí khớp nên nhớ TCAM có thêm mã hóa ưu tiên để lựa chọn ví trí cần tìm Match = 1 1 01 1 0 0 Match = 10 0 1 x x Match = 11 0 1 x Match = Mã hóa ưu tiên 00 10 0 1 Từ khóa Hình 4.2 Minh hoạ khối TCAM Có thể thấy Hình 4.2, từ khóa có giá trị 1001101 đưa vào nhớ TCAM để tìm kiếm, hai địa 00 01 khác với từ khóa nên cho kết 83 MATCH = Tại địa 10, từ TCAM lưu có dạng 10011xx nên từ khóa tìm kiếm cần trùng khớp với năm bit đầu, hai bit cịn lại nhận giá trị cho kết MATCH = Tại địa 11, từ TCAM lưu có dạng 100110x nên từ khóa tìm kiếm cần trùng khớp với sáu bit đầu, bit lại nhận giá trị cho kết MATCH = Kết tìm kiếm OR với nhau, vị trí MATCH = từ khóa tìm kiếm cho kết MATCH Q trình tìm kiếm cho kết địa từ tìm kiếm, nhiên để đưa vị trí, kết MATCH đưa vào mã hóa ưu tiên, thường chọn vị trí xuất bit Ứng dụng CAM TCAM CAM TCAM ứng dụng rộng rãi cho hạ tầng mạng chức tìm kiếm khác Trên thực tế, có sở Google, Bing, Yahoo!, với lượng liệu vô lớn dùng cơng cụ tìm kiếm thơng thường cách duyệt để đưa kết trùng khớp tốn nhiều thời gian Tuy nhiên, hệ thống tìm kiếm dùng cơng cụ tìm kiếm gọi Search Engine (SE), loại hệ điều hành thiết kế với chức tìm kiếm thông tin mạng World Wide Web Khi người dùng sử dụng cơng cụ tìm kiếm, họ cần phải nhập từ khóa chủ đề cần tìm hiểu để nhận bảng kết có chứa trang web, hình ảnh, video, tài liệu,… có liên quan đến chủ đề tìm kiếm Các kết trả xếp theo thứ tự định thuật toán tìm kiếm SE, SE có thuật tốn tìm kiếm khác Tương tự với hạ tầng mạng nói chung với thiết bị chuyển mạch hai lớp nói riêng, CAM TCAM có nhiệm vụ tìm kiếm thơng tin cần thiết để thiết bị chuyển mạch làm việc với tốc độ cao CAM dùng khối MAC_TABLE, trình bày chương 2, để tra cứu thơng tin đích đến gói tin địa MAC, số hiệu vật lý, VLAN ID, thời gian tồn 84 TCAM sử dụng khối ACL, khác với MAC_TABLE cần lưu giá trị cụ thể, ACL danh sách gồm luật, khoảng giá trị cụ thể, luật cho phép gói tin qua hay khơng qua dựa vào việc tìm kiếm khớp hay không khớp TCAM Bộ nhớ TCAM sử dụng định tuyến mạng, địa có hai phần: tiền tố mạng (prefix), thay đổi kích thước tùy thuộc vào cấu hình mạng địa máy chủ (chiếm bit cịn lại) Mỗi mạng có mặt nạ mạng định bit địa tiền tố mạng bit địa máy chủ Việc định tuyến thực cách tham khảo bảng định tuyến trì định tuyến chứa tiền tố mạng đích biết, mặt nạ mạng liên quan thông tin cần thiết để định tuyến gói đích đến Ngun lý làm việc tổ chức nhớ CAM TCAM Phần trình bày tổng quan cách thức làm việc nhớ tìm kiếm theo nội dung cách tổ chức nhớ dựa nhớ RAM truyền thống Thiết kế CAM TCAM sử dụng khối BRAM tương tự nhớ truyền thống có khác biệt Dữ liệu Địa Địa Dữ liệu CAM/TCAM RAM a) b) Hình 4.3 Đặc trưng khối RAM (a) khối CAM/TCAM (b) Hình 4.3 thể đặc trưng khối RAM khối CAM/TCAM Đối với nhớ truyền thống, người dùng cung cấp liệu đầu vào địa cho thao tác ghi, với thao tác đọc địa cung cấp liệu lưu trữ địa đọc Cịn CAM TCAM thao tác ghi giống với nhớ truyền thống, thao tác đọc người dùng cung cấp đầu vào liệu để tra cứu địa nơi liệu lưu trữ Giống nhớ truyền thống lưu trữ từ liệu địa chỉ, địa CAM/TCAM lưu trữ liệu Tuy nhiên, TCAM liệu lưu nhiều địa khác 85 4.1.3.1 Cách tổ chức tìm kiếm nhớ CAM Đối với nhớ CAM, liệu địa đầu vào xử lí để ánh xạ tới khối nhớ phù hợp, liệu đầu vào biến đổi thành địa để ghi vào khối nhớ Mỗi địa khối nhớ lưu từ CAM trùng với địa đó, từ CAM W bit lưu vào khối RAM có W bit địa tương ứng với 2w địa Cách từ TCAM biểu diễn theo RAM mơ tả Hình 4.4: Địa Dữ liệu 0 0 0 0 0 0 1 0 1 1 0 1 1 1 Hình 4.4 Cách từ CAM tổ chức theo RAM Theo Hình 4.4, từ CAM 101001 có độ rộng bit lưu vào RAM ghi giá trị vị trí địa RAM 101001, địa lại ghi giá trị Những từ CAM khác muốn ghi tiếp tục cập nhật vào địa cịn lại nhớ Khi tìm kiếm, từ khoá đưa vào khối RAM để đọc liệu ghi địa trùng với từ khố đó, kết q trình kìm kiếm có kết trùng khớp (match) 86 4.1.3.2 Cách tổ chức nhớ TCAM Một nhớ TCAM viết dạng D x W, D số từ TCAM (độ sâu) W số bit TCAM (độ rộng) Một nhớ TCAM tổ chức dựa nhớ RAM, W bit TCAM cần có 2W bit địa RAM tương ứng Cách tổ chức nhớ TCAM dựa nhớ RAM thể Hình 4.5 RAM 16 X RAM 8X1 000 RAM 4X1 00 01 10 11 001 010 011 100 101 110 1X a) 111 0000 0001 0010 0011 RAM 8X2 0100 1 0101 0110 00 01 0111 01 01 1000 10 10 1001 11 10 1010 0 1011 1 X0X b) RAM 4X2 1X 0X 1100 d) 1101 1110 1111 000 10 001 10 010 00 011 00 100 10 101 10 110 01 111 00 X0X 110 e) 01XX Hình 4.5 Tổ chức nhớ TCAM theo RAM Hình 4.5 tổ chức nhớ TCAM ứng với từ RAM khác Hình 4.5 (a) tổ chức nhớ TCAM x dựa RAM x 1, (b) tổ chức 87 nhớ TCAM x dựa RAM x 1, (c) tổ chức nhớ TCAM x dựa RAM 16 x 1, (d) tổ chức nhớ TCAM x dựa RAM x 2, (e) tổ chức nhớ TCAM x dựa RAM x Dưới hình phụ thuộc nhớ RAM vào độ rộng bit: RAM 1200 1024 Bộ nhớ (bit) 900 512 600 256 300 16 10 W (bit) Hình 4.6 Sự phụ thuộc nhớ RAM 2W × vào độ rộng bit từ TCAM Dựa Hình 4.6 thấy từ TCAM có dạng D × W biểu diễn nhớ RAM 2W × D, việc quy đổi độ rộng bit TCAM sang nhớ RAM tính theo hàm mũ Trên thực tế tỷ lệ RAM TCAM dùng số để đo đạc mức độ tối ưu tài nguyên thiết kế RAM 2𝑤 = TCAM 𝑤 (4.1) Từ công thức (4.1) thấy, để đảm bảo tỉ lệ RAM TCAM tốt (nhỏ nhất) nên chọn RAM có số bit địa thấp, nhiên việc lựa chọn RAM có số địa thấp để biểu diễn từ TCAM phải xếp chồng nhiều RAM 4.1.3.3 Cách ghi nhớ TCAM Quy tắc cập nhật TCAM: Một từ TCAM ghi vào RAM ghi tất địa RAM đó, tức ghi từ địa địa 2𝑊 – RAM Tại địa có vị trí bit tương ứng trùng với bit không 88 chứa X từ TCAM liệu ghi 1, cụ thể trình bày Hình 4.7 Diễn giải quy tắc theo cơng thức ta có [7]: RAM [k][i] = k match t ngược lại RAM [k][i] = Với: k: Là từ TCAM biểu diễn k-bit TCAM t: Là từ TCAM đầu vào để ghi vào RAM[i] i: Là từ TCAM thứ i ghi vào TCAM Sau hình minh họa ghi từ TCAM: Từ TCAM RAM k t X a) t X 0 1 i 0 1 1 k i X t b) t k c) X i i k 00 0 01 10 11 d) 00 01 10 11 Hình 4.7 Cách ghi vào TCAM Như Hình 4.7 (a), từ TCAM 1x1 có giá trị X lưu, X nên giá trị k = k = ghi giá trị (trùng khớp) giá trị RAM có gí trị: RAM[0][0] = RAM[1][0] = Như Hình 4.7 (b), từ TCAM ghi vào RAM, i = ứng với từ TCAM giá trị k = ghi k = ghi giá trị Tại i = từ TCAM X nên tương tự ghi Hình 4.7 (a) Hình 4.7 (c), từ TCAM bit có giá trị 1X ghi vào RAM giá trị k = 10 k = 11 ghi bit giá trị k lại ghi bit 89 Hình 4.7 (d), từ TCAM bit có giá trị 1X 01 ghi vào RAM, từ 1X ghi vào RAM[k][0], giá trị k = 10 k = 11 ghi giá trị lại ghi Đối với từ 01 ghi vào RAM[k][1], vị trí k = 01 ghi bit lại ghi bit 0, trường hợp từ TCAM ghi tương tự khối CAM 4.1.3.4 Cách tìm kiếm nhớ TCAM Tìm kiếm nhớ TCAM trình đọc liệu RAM, liệu lưu RAM gọi giá trị trùng khớp Ví dụ: từ TCAM (W = D = 4) 0101, 010x, 0xxx, xxxx ghi vào RAM Bảng 4.1: Bảng 4.1 Bảng lưu giá trị trùng khớp từ TCAM Vị trí (địa chỉ) 0101 010x 0xxx xxxx 0000 0 1 0001 0 1 0010 0 1 0011 0 1 0100 1 0101 1 1 0110 0 1 0111 0 1 1000 0 1001 0 1010 0 1011 0 1100 0 1101 0 1110 0 1111 0 107 Hình 4.24 Mơ ghi từ TCAM Một từ TCAM sử dụng RAM phân tán tốn 32 chu kì hệ thống để ghi, tức 256 ns để ghi, nhiên q trình ghi khơng tìm kiếm ngược lại nên nhược điểm lớn nhớ TCAM sử dụng RAM phân tán Hình 4.25 Mơ tìm kiếm từ TCAM Từ hình 4.25 thấy trình tìm kiếm từ TCAM sử dụng RAM phân tán tốn chu kì hệ thống, điều tương đương với 40 ns thời gian thực Tuy nhiên, q trình tìm kiếm sử dụng kĩ thuật đường ống nên tìm kiếm liên tục mà không gây trễ hệ thống 108 Thiết kế TCAM sử dụng BRAM 4.3.2.1 Sơ đồ khối chi tiết phần cứng WN W2 W1 TCAM (0,N) TCAM (1,1) TCAM (1,2) TCAM (1,N) TCAM (M,2) TCAM (M,1) BỘ MÃ HÓA ƯU TIÊN TCAM (0,2) BỘ ĐIỀU KHIỂN ĐỌC, GHI TCAM (0,1) TCAM (M,N) Hình 4.26 Sơ đồ khối chi tiết khối TCM sử dụng BRAM Hình 4.26 thể sơ đồ khối chi tiết khối TCAM sử dụng BRAM với khối bao gồm: Khối TCAM bản: Các khối TCAM sử dụng BRAM làm nhớ thiết kế để lưu lúc nhiều từ TCAM Khối BRAM sử dụng có kích thước 𝑅𝐷 × 𝑅𝑊 , 𝑅𝐷 số địa BRAM 𝑅𝑊 số bit độ rộng ghi địa Một khối TCAM kích thước 𝐷 × 𝑊 sử dụng tối thiểu 𝑀 × 𝑁 khối BRAM với M số BRAM dùng để mở rộng độ sâu N số BRAM dùng để mở rộng độ rộng M tính theo cơng thức: 𝑀= 𝑀=[ 𝐷 𝑅𝑊 𝐷 𝑅𝑊 (với kết phép chia số nguyên) ] + (với kết phép chia số thập phân) N tính theo cơng thức: (4.7) (4.8) 109 𝑁= 𝑊 log2 𝑅𝐷 𝑁=[ 𝐷 log2 𝑅𝑊 (với kết phép chia số nguyên) (4.9) ] + (với kết phép chia số thập phân) (4.10) Khối điều khiển đọc, ghi: Có chức điều khiển tín hiệu đọc tín hiệu ghi cho khối TCAM bên Cấu trúc khối TCAM bao gồm mở rộng theo độ rộng mở rộng theo độ sâu nên khối điều khiển đọc ghi có nhiệm vụ điều khiển tín hiệu ghi đến với khối TCAM Khi ghi, khối điều khiển đọc ghi đưa tín hiệu ghi cho khối mở rộng độ sâu tìm kiếm khối điều khiển đọc ghi đưa tín hiệu đọc đồng thời cho tất khối TCAM Khối điều khiển đọc ghi cịn có nhiệm vụ thơng báo tín hiệu kết thúc q trình để thơng báo cho hệ thống tiếp tục q trình khác Khối mã hóa ưu tiên: Biến đổi đầu khối TCAM thành địa kết trình tìm kiếm Đầu khối TCAM trước đưa vào khối mã hóa ưu tiên AND lại với nhau, kết phép AND đưa vào khối mã hóa ưu tiên Khối mã hóa ưu tiên sử dụng thuật tốn để tìm vị trí xuất bit 𝑅𝑊 bit đầu Đầu khối mã hóa ưu tiên địa từ khóa tìm kiếm Giao diện nhớ TCAM sử dụng BRAM trình bày Bảng 4.5 Bảng 4.5 Giao diện khối nhớ TCAM sử dụng BRAM Tên CLK Vào/ra Vào Mơ tả Tín hiệu đồng cho khối TCAM Mọi tín hiệu lấy mẫu sườn lên CLK Tín hiệu khởi tạo RESET tín hiệu tích cực RESET Vào WR Vào Tín hiệu thơng báo ghi từ TCAM DELETE Vào Tín hiệu thơng báo xóa từ TCAM INPUT_WORD Vào Kênh liệu, liệu cần ghi/xóa cao 110 INPUT_MASK Vào Kênh liệu, mặt nạ liệu cần ghi/xóa ADDR_WORD Vào Kênh liệu, địa liệu cần ghi/xóa WR_DONE Ra Tín hiệu thơng báo kết thúc q trình ghi LOOK_UP Vào Tín hiệu thơng báo tìm kiếm từ khóa LOOKUP_WORD Vào Kênh liệu, từ khóa cần tìm kiếm MATCH_VALID Ra Tín hiệu thơng báo kết thúc q trình tìm kiếm MATCH Ra Tín hiệu thơng báo trùng khớp MATCH_OUT Ra Kênh liệu, địa từ khóa tìm kiếm TCAM_LEFT Ra Kênh liệu, dung lượng lại nhớ TCAM 4.3.2.2 Nguyên lý làm việc khối TCAM sử dụng BRAM Bộ nhớ WEA ADDRA Dữ liệu DIA SDP Trùng khớp So Sánh DOB MÃ HÓA ƯU TIÊN ADDRB Từ TCAM Địa Hình 4.27 Sơ đồ khối TCAM sử dụng SPD RAM Hình 4.27 thể sơ đồ khối khối TCAM sử dụng SPD RAM làm nhớ Bộ nhớ SPD RAM có kích thước RD x RW, RD số địa khối SPD RAM RW độ rộng ghi địa SPD RAM Một SPD RAM thơng thường xử lí RW từ TCAM log 𝑅𝐷 bit Nguyên lý làm việc: Một khối TCAM sử dụng SPD RAM thực ba chức chức ghi, chức tìm kiếm chức xóa Khối SPD RAM có kích thước 𝑅𝐷 × 𝑅𝑊 𝑅𝐷 số địa 𝑅𝑊 độ 111 rộng ghi địa chỉ, khối SPD RAM đồng thời lưu RW từ có độ rộng log 𝑅𝐷 -bit Thanh ghi 𝑅𝑊 biểu diễn vị trí lưu từ TCAM lưu khối nhớ, từ thứ i nằm bit thứ i ghi RW Địa khối nhớ từ TCAM ghi Chức ghi: Một từ TCAM ghi phải đưa vào hai chân tín hiệu khối nhớ: liệu từ TCAM Để tránh việc lưu liệu đè lên làm liệu cũ, từ TCAM đưa vào cổng đọc SPD RAM để lấy liệu có khối nhớ, đầu khối nhớ đưa vào cổng OR với từ liệu đưa vào để làm liệu vào nhớ Từ TCAM ban đầu làm chậm chu kì để làm địa cho cổng ghi trình đọc SPD RAM tốn chu kì hệ thống Cả trình tốn 𝑅𝐷 chu kì hệ thống để ghi hết vào địa khối nhớ Chức tìm kiếm: Một từ khóa tìm kiếm đưa thẳng vào cổng đọc để đưa kết quả, đầu SPD RAM đưa theo hai đường, đường thứ đem so sánh với 0, từ TCAM khơng trùng khớp, khác từ TCAM trùng khớp Đường thứ hai đưa vào khối mã hóa ưu tiên để tìm vị trí từ khóa tìm kiếm 𝑅𝑊 từ lưu Q trình tìm kiếm tốn chu kì để có kết Chức xóa: Cũng khối CAM, từ TCAM trước xóa tìm kiếm trước, khóa tìm kiếm tìm thấy đầu khối mã hóa ưu tiên địa từ nhớ Địa sau tìm kiếm địa ghi RAM, nhiên thay việc ghi bit vị trí ghi chức xóa Yêu cầu sử dụng nhớ khối TCAM sử dụng kiến trúc xếp tầng khối BRAM, nhớ BRAM có kích thước 𝑅𝐷 × 𝑅𝑊 , tổng số nhớ BRAM tối thiểu dùng để biểu diễn nhớ TCAM có độ sâu D độ rộng W tính theo cơng thức (4.11) [3]: 112 𝑊 𝐷 𝑅𝑊 log2 𝑅𝐷 𝐻 = ∑ ∑ (𝑅𝐷 × 𝑅𝑊 ) = ( 𝑀=1 𝑁=1 𝐷 𝑊 )( ) (𝑅𝐷 × 𝑅𝑊 ) 𝑅𝑊 log 𝑅𝐷 = 𝐷𝑊 × ( 𝑅𝐷 log2 𝑅𝐷 ) (4.11) Trong đó: H: Yêu cầu sử dụng nhớ TCAM sử dụng BRAM [bit] RW: Độ rộng ghi địa BRAM RD: Số địa BRAM D: Độ sâu nhớ TCAM W: Độ rộng nhớ TCAM M: Số BRAM sử dụng để mở rộng độ sâu N: Số BRAM sử dụng để mở rộng độ rộng Dựa vào công thức (4.11) thấy nhớ yêu cầu để tạo nên khối TCAM D x W tỉ lệ thuận với kích thước khối TCAM, khối TCAM có độ sâu D độ rộng W lớn dẫn đến việc sử dụng q lượng tài nguyên hệ thống Để giải vấn đề có hai phương pháp để tiết kiệm: Sử dụng BRAM nhiều cổng dùng kĩ thuật chia BRAM 4.3.2.3 Bộ nhớ TCAM sử dụng RAM hai cổng Do khối BRAM FPGA khơng linh hoạt vệ kích thước nên việc sử dụng BRAM cho số lượng lớn từ TCAM với độ rộng lớn có hạn chế Việc sử dụng RAM hai cổng giải khắc phục phần mặt hạn chế đó, RAM nhiều cổng loại nhớ truy cập ngẫu nhiên cho phép nhiều cổng đọc ghi xảy lúc, khác với RAM cổng cho phép thực hai chức thời điểm Dưới hình minh họa khối TCAM dùng RAM hai cổng: 113 Từ TCAM WEA DOA DIA Dữ liệu BỘ ĐIỀU KHIỂN ĐỌC, GHI ADDRA TDP WEB ADDRB DOB DIB Hình 4.28 Sơ đồ nhớ TCAM sử dụng BRAM hai cổng Hình 4.28 khối BRAM hai cổng, khối BRAM hai cổng thực đồng thời hai chức đọc ghi thời gian Việc sử dụng BRAM hai cổng làm khối nhớ chia làm nhiều phần con, phần lưu từ TCAM khác dẫn đến khối nhớ xử lí từ TCAM có độ rộng lớn SPD RAM Tại trình ghi, từ liệu đưa vào điều khiển đọc, ghi để xử lí Tại khối từ liệu chia làm hai phần đẩy vào theo ghi dịch, chu kì dịch đẩy liệu có độ dài (log 𝑅𝐷 − 1) bit, liệu ghép với bit đánh dấu địa mảng RAM Bit quy định đánh dấu mảng (cổng A) bit đánh dấu mảng (cổng B) Với cách ghi khối BRAM kích thước 𝑅𝐷 × 𝑅𝑊 lúc xử lí RW từ TCAM có kích thước × (log 𝑅𝐷 − 1) Trong q trình tìm kiếm, từ khóa đưa vào tìm kiếm đưa vào điều khiển đọc ghi để tách làm hai phần Tuy nhiên khác với trình ghi, trình hai phần từ khóa ghép với bit đánh dấu địa cổng đưa vào đồng thời cổng A cổng B để đọc liệu Đầu hai cổng AND lại với nhau, kết từ khơng trùng khớp khác khơng cho kết trùng khớp 114 Yêu cầu sử dụng nhớ tính theo cơng thức [3]: 𝑊 𝐷 𝑅𝑊 2×(log2 𝑅𝐷 −1) 𝐻1 = ∑ ∑ 𝑀=1 𝑁=1 (𝑅𝐷 × 𝑅𝑊 ) = ( 𝐷 𝑊 )( ) (𝑅𝐷 × 𝑅𝑊 ) 𝑅𝑊 × (log 𝑅𝐷 − 1) = 𝐷𝑊 × ( 𝑅𝐷 ) ×(log2 𝑅𝐷 −1) (4.12) Từ cơng thức (4.12) so sánh yêu cầu tài nguyên TCAM dùng BRAM hai cổng với BRAM thơng thường trình bày công thức (4.11): 𝑅𝐷 ) 𝐻1 log 𝑅𝐷 × (log 𝑅𝐷 − 1) = = 𝑅𝐷 𝐻 × (log 𝑅𝐷 − 1) 𝐷𝑊 × ( log 𝑅𝐷 ) 1 = + 2 × (log 𝑅𝐷 − 1) 𝐷𝑊 × ( (4.13) Trong đó: H : Yêu cầu sử dụng nhớ TCAM sử dụng BRAM [bit] H1 : Yêu cầu sử dụng nhớ TCAM sử dụng BRAM hai cổng [bit] RW : Độ rộng ghi địa BRAM RD : Số địa BRAM D : Độ sâu nhớ TCAM W : Độ rộng nhớ TCAM M : Số BRAM để mở rộng độ sâu N : Số BRAM để mở rộng độ rộng Có thể thấy cơng thức (4.13) bé nên yêu cầu sửu dụng nhớ khối BRAM hai cổng so với khối BRAM thông thường, tiết kiệm so với khối BRAM thông thường 4.3.2.4 Kỹ thuật phân vùng lưu trữ BRAM Do không linh hoạt việc tăng số cổng BRAM nên để tăng hiệu sử dụng nhớ làm giảm tài nguyên việc sử dụng kỹ thuật phân vùng lưu trữ BRAM tương đương với tăng số cổng cho nhớ Đối với BRAM thông thường phân thành P vùng tương đương với tăng 115 thành P cổng Sau sơ đồ khối khối TCAM sử dụng kỹ thuật phân vùng BRAM: Bộ nhớ BRAM Log2(RD/P) RW CLKP RD/P log2RD Khối MÃ HÓA ƯU TIÊN & Khối log2P Bộ đếm RD/P Khối P Hình 4.29 Sơ đồ khối TCAM sử dụng kỹ thuật phân vùng BRAM Hình 4.29 thể sơ đồ khối chi tiết khối TCAM sử dụng BRAM, sơ đồ bao gồm khối: Khối nhớ: Khối nhớ sử dụng BRAM để lưu giá trị trùng khớp, BRAM có số địa kí hiệu 𝑅𝐷 địa chứa ghi 𝑅𝑊 Khối nhớ sử dụng kỹ thuật phân vùng nên số địa chia thành P vùng, vùng chứa 𝑅𝐷 /𝑃 địa Mỗi vùng địa có dạng log (𝑅𝐷 /𝑃) Khối đếm: Khối đếm sử dụng CLK P để tăng dần giá trị, ứng với chu kì CLK P khối đếm tăng đơn vị hết chu kì hệ thống CLK S khối đếm quay vòng lại giá trị Đầu khối đếm log 𝑃- bit ghép thành phần liệu đưa vào khối BRAM, phần liệu hiểu thứ tự vùng nhớ Thanh ghi dịch: Thanh ghi dịch với đầu vào liệu từ khóa cần tìm, dịch khoảng 𝑤 = log (𝑅𝐷 /𝑃) bit sau chu kì hệ thống đầu phần địa nhớ Thanh ghi dịch hoạt động với CLK P Sau hết chu kì hệ thống CLK S ghi dịch dịch xong 116 Khối mã hóa ưu tiên: Đưa kết cuối dựa theo thuật toán ưu tiên cấu hình trước Thơng thường khối mã hố ưu tiên dùng để tìm vị trí xuất bit chuỗi bit match đầu Sau kĩ thuật sử dụng hệ số chi cho BRAM [3]: BRAM 16X1 0000 0001 0010 0011 0 0000 0001 0001 0010 0010 0011 0011 0100 0100 0100 0101 0101 0101 0110 0110 0110 0111 1000 0111 0111 1001 1000 1000 c) 16x1 BRAM với hệ số chia P=2 biểu diễn 1x6 TCAM 1010 1001 1001 1011 1010 1010 d) 16x1 BRAM với hệ số chia P=4 biểu diễn 1x8 TCAM 1100 1011 1011 1101 1100 1110 1101 1100 1111 1110 1101 1111 1110 1111 0000 TCAM 1X8 * * 1 * a) a) TCAM 1x8 thông thường b) BRAM 16x1 không sử dụng hệ số chia biểu diễn 1x4 TCAM b) c) d) Hình 4.30 Các cấu trúc TCAM [3] Đối với TCAM thông thường có dạng Hình 4.30 (a) Hình 4.30 (b) TCAM thông thường ghi vào RAM Đối với BRAM 16x1 Hình 4.30 (b) biểu diễn từ TCAM với độ rộng bit (11*0) Hình 4.30 (c) với BRAM 16x1 hệ số chia BRAM chia thành miền, miền thứ biểu diễn từ TCAM (1*0) miền thứ biểu diễn từ TCAM (1*1) Hình 4.30 (d) với BRAM 16x1 hệ số chia BRAM 16x1 117 biểu diễn từ TCAM có độ rộng bit (0*1*11*0) với miền biểu diễn từ TCAM có độ rộng bit: *0, 11, 1*, 0* Có thể thấy hệ số chia tăng số lượng bit TCAM xử lí BRAM tăng, dẫn đến việc sử dụng tài nguyên tốt Với BRAM nhiều cổng có kích thước RD x RW với hệ số chia P biểu diễn TCAM thông thường có kích thước Plog2(RD/P) x RW, miền BRAM có kích thước (RD/P) x RW biểu diễn log2(RD/P) x RW bits TCAM Vì khối BRAM có kích thước cố định nên để sử dụng tối ưu khối BRAM ta phân vùng BRAM để lưu trữ Phân vùng bảng TCAM thơng thường có kích thước D x W thành phân vùng M x N cho vùng bao gồm phần P (hệ số chia) có kích thước log2(RD/P) x RW Thiết kế sử dụng khối BRAM Unit cấu hình kích thước RD x RW khối P có kích thước (RD/P) x RW Mỗi khối BRAM lưu trữ log (𝑅𝐷 /𝑃) × 𝑅𝑊 bit TCAM phân chia kích thước TCAM thơng thường Cách ghi địa nhớ nhớ TCAM: sử dụng hệ số chia để phân vùng: Khi ghi từ TCAM vào nhớ cần phải đưa hai chân địa ghi liệu ghi kèm tín hiệu điều khiển vào khối BRAM Chân địa ghi từ ghi liệu ghi vector 𝑅𝑊 -bit, vector xử lí để thể bit vị trí mà từ ghi 𝑅𝑊 từ Mỗi vùng nhớ TCAM có 𝑅𝐷 /𝑃 ghi 𝑅𝑊 bit nên địa nhớ nhớ TCAM chia làm hai phần, log 𝑃 bit biểu diễn vùng TCAM, phần đầu có giá trị từ đến 𝑃 − lấy từ đếm Phần gồm log2 (𝑅𝐷 /𝑃) bit biểu diễn từ TCAM ghi, lấy từ ghi dịch từ TCAM vào Trước ghi, từ TCAM đưa vào cổng đọc để đọc liệu có sẵn khối BRAM, đầu khối BRAM AND với liệu ghi đưa vào, kết phép AND liệu ghi để ghi vào BRAM Cách tìm kiếm từ khóa: Khi từ khóa đưa vào ghi dịch có W-bit, sau chu kì CLKp dịch log2 (𝑅𝐷 /𝑃)-bit, tương tự ghi, phần ghép với log 𝑃 – bit đếm sử dụng CLK P để đưa vào làm địa 118 cổng đọc BRAM Tại đầu BRAM ghi có độ dài 𝑅𝑊 – bit, chu kì CLK P đầu BRAM đưa vào AND hai cổng với cổng đầu BRAM cổng giá trị trước nó, giá trị trước đầu BRAM lưu ghi sử dụng chu kì CLK P để chốt Như sau P chu kì CLK P đọc đủ toàn P phần nhớ TCAM, lần đọc tốn chu kì Quá trình tìm kiếm từ khóa thực hai chu kì CLKp chu kì hệ thống Quá trình tìm kiếm từ khóa thể Hình 4.31: clks clkp Từ tìm kiếm Đầu SRAM Từ tìm kiếm UUU Kết tìm kiếm Rw1.1 UUUU Từ tìm kiếm Rw1.2 Từ tìm kiếm Rw2.2 Rw2.1 Rw3.1 MW1 UUUU Từ tìm kiếm Rw3.2 Rw4.1 MW2 Hình 4.31 Q trình tìm kiếm từ khóa Theo Hình 4.31, từ khóa cần chu kì CLKS để có kết tìm kiếm q trình tìm kiếm liên tục nên khơng gây ảnh hưởng đến băng thông hệ thống Khả sử dụng nhớ TCAM sử dụng kỹ thuật phân vùng nhớ BRAM tính cơng thức [3]: 𝑊 𝐷 𝑅𝑊 P×(log2 (𝑅𝐷 /𝑃)) ∑ ∑ 𝑀=1 𝑁=1 (𝑅𝐷 × 𝑅𝑊 ) = ( 𝐷 𝑊 )( ) (𝑅𝐷 × 𝑅𝑊 ) 𝑅𝑊 𝑃 × (log (𝑅𝐷 /𝑃)) 𝑅𝐷 ) P ×(log2 ( 𝑅𝐷 /𝑃)) = 𝐷𝑊( (4.14) Từ cơng thức (4.14) so sánh u cầu tài nguyên TCAM dùng BRAM sử dụng kỹ thuật phân vùng nhớ với BRAM thông thường trình bày cơng thức (4.11): 119 𝐷𝑊( 𝑅𝐷 ) log 𝑅𝐷 𝑃 × (log (𝑅𝐷 /𝑃)) = 𝑅𝐷 𝑃 × (log ( 𝑅𝐷 /𝑃)) 𝐷𝑊( ) log 𝑅𝐷 = 1 + 𝑃 𝑃 × (log ( 𝑅𝐷 /𝑃)) (4.15) Từ công thức (4.15) thấy P = hiệu sử dụng nhớ kỹ thuật phân vùng nhớ tương đương với BRAM hai cổng, P lớn hiệu sử dụng nhớ tốt 4.3.2.5 Kiểm tra thực hóa thiết kế phần cứng Tài nguyên nhớ TCAM dùng RAM phân tán biên dịch chip xc7a200tfbg676 – thống kê theo sơ đồ sau: W = 32 160 128 BRAM 120 80 40 64 64 32 32 16 32 16 16 32 16 1024 512 256 128 N P=8 P=4 P=2 P=1 Hình 4.32 Sự phụ thuộc BRAM thay đổi độ sâu từ TCAM Hình 4.32 thể phụ thuộc tài nguyên BRAM vào việc tăng độ sâu từ TCAM, thấy P = P = sử dụng BRAM nhau, cần cân nhắc kĩ việc sử dụng kỹ thuật phân vùng BRAM cho tối ưu 120 D = 512 416 450 BRAM 300 240 208 150 128 112 64 32 128 64 16 32 64 16 32 48 80 256 128 64 32 W p=8 P=4 P=2 P=1 Hình 4.33 Sự phụ thuộc BRAM thay đổi độ rộng từ TCAM Như Hình 4.32 Hình 4.33, tăng hệ số phân vùng P giảm tài nguyên, nhiên việc tăng hệ số phân vùng đồng nghĩa với việc chia chu kì hệ thống CLKS thành P lần, điều dẫn đến tần số hệ thống tăng P lần Đây yếu tố để lựa chọn hệ số phân vùng phù hợp với thiết kế Kiểm tra thiết kế: Thực kiểm tra thiết kế với luật ACL: chặn IP từ 10.10.10.32 đến IP 10.10.10.128 đến từ cổng Từ luật ACL sử dụng phần mềm để biến đổi nhận ba từ TCAM với cặp thông số để ghi vào nhớ TCAM: WORD_IN(1) = 00A0A0A20 WORD_MASK(1) = 00000001F, cặp thứ hai: WORD_IN(2) = 00A0A0A40 WORD_MASK(2) = 00000003F, cặp thứ ba: WORD_IN(3) = 00A0A0A80 WORD_MASK(3)= 000000000 Thực tìm kiếm cổng với IP từ 10.10.10.00 đến 10.10.10.255 nhận kết Hình 4.34 Hình 4.35: Hình 4.34 Mơ q trình ghi từ TCAM 121 Một từ TCAM 36 bits ghi vào nhớ tốn 1024 chu kì (210 chu kì) 8192 ns để ghi Tuy nhiên, q trình ghi tìm kiếm nên không gây ảnh hưởng đến hệ thống hệ thống chạy, ưu điểm TCAM sử dụng BRAM so với TCAM sử dụng RAM phân tán Hình 4.35 Mơ kết tìm kiếm từ khóa Kết mơ cho thấy IP từ 10.10.10.00 đến 10.10.10.27 tìm kiếm cho kết MATCH = ‘0’ IP từ 10.10.10.32 đến 10.10.10.63 tìm thấy vị trí 01 từ TCAM, IP từ 10.10.10.64 đến 10.10.10.64 tìm thấy vị trí 02 IP 10.10.10.128 tìm thấy vị trí 03 Những IP cịn lại ngồi khoảng ghi nên khơng tìm thấy Q trình tìm kiếm hết ba chu kì hệ thống tần số tìm kiếm lớn 166 MHz Độ trễ trình tìm kiếm 24 ns, nhiên trình tìm kiếm sử dụng kĩ thuật đường ống nên tìm kiếm liên tục mà khơng gây ảnh hưởng đến hệ thống 4.4 Kết luận chương Chương giới thiệu thiết kế nhớ CAM/TCAM Đồng thời cách thức hoạt động nhớ Chương đưa nhu cầu việc sử dụng nhớ CAM/TCAM hạ tầng mạng nói chung Switch lớp nói riêng Bên cạnh đó, lựa chọn thiết kế nhu cầu đáp ứng tài nguyên, tốc độ xử lí tìm kiếm khối nhớ CAM/TCAM trình bày cụ thể Độ trễ khối nhớ CAM/TCAM đáp ứng yêu cầu tốc độ xử lí hệ thống Các thiết kế sử dụng kĩ thuật đường ống cho tìm kiếm nên băng thông với thông hệ thống, ưu điểm nhớ CAM/TCAM trình bày chương ... thống 108 Thiết kế TCAM sử dụng BRAM 4.3.2.1 Sơ đồ khối chi tiết phần cứng WN W2 W1 TCAM (0,N) TCAM (1,1) TCAM (1,2) TCAM (1,N) TCAM (M,2) TCAM (M,1) BỘ MÃ HÓA ƯU TIÊN TCAM (0,2) BỘ ĐIỀU KHIỂN... khối CAM/ TCAM mở rộng theo độ sâu Nếu mở rộng theo độ sâu, từ CAM TCAM ghi vào khối CAM/ TCAM đơn vị, ghi hết khối CAM/ TCAM đơn vị nhảy sang khối CAM/ TCAM đơn vị Đầu khối vào cổng OR để lấy kết... lại RAM [k][i] = Với: k: Là từ TCAM biểu diễn k-bit TCAM t: Là từ TCAM đầu vào để ghi vào RAM[i] i: Là từ TCAM thứ i ghi vào TCAM Sau hình minh họa ghi từ TCAM: Từ TCAM RAM k t X a) t X 0 1 i 0

Ngày đăng: 20/08/2020, 08:23

Tài liệu cùng người dùng

Tài liệu liên quan