Đăng ký Đăng nhập
Trang chủ Thiết kế bộ nhớ địa chỉ nội dung (tcam) thực hiện trên fpga ...

Tài liệu Thiết kế bộ nhớ địa chỉ nội dung (tcam) thực hiện trên fpga

.PDF
86
1
149

Mô tả:

ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA ------------------------ TRỊNH VŨ ĐĂNG NGUYÊN THIẾT KẾ BỘ NHỚ ĐỊA CHỈ NỘI DUNG (TCAM) THỰC HIỆN TRÊN FPGA Chuyên Ngành: Kỹ Thuật Điện Tử Mã số: 8520203 LUẬN VĂN THẠC SỸ TP. Hồ Chí Minh, tháng 08 năm 2021 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG – HCM Cán bộ hướng dẫn khoa học: TS. Trần Hoàng Linh Cán bộ chấm nhận xét 1: TS. Bùi Trọng Tú Cán bộ chấm nhận xét 2: TS. Trương Quang Vinh Luận văn thạc sỹ được bảo vệ tại Trường Đại Học Bách Khoa, ĐHQG Tp. HCM ngày 22 tháng 08 năm 2021 (trực tuyến). Thành phần Hộ đồng đánh giá luận văn thạc sĩ gồm: 1. Chủ tịch hội đồng:TS. Huỳnh Phú Minh Cường 2. Phản biện 1: TS. Bùi Trọng Tú 3. Phản biện 2: TS. Trương Quang Vinh .... 4. Thư ký: TS. Nguyễn Lý Thiên Trường ... 5. Ủy viên: TS. Nguyễn Minh Sơn ............. Xác nhận của chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sữa chữa (nếu có). CHỦ TỊCH HỘI ĐỒNG TS. Huỳnh Phú Minh Cường TRƯỞNG KHOA ĐIỆN - ĐIỆN TỬ PGS.TS. Đỗ Hồng Tuấn Nhiệm vụ luận văn thạc sỹ GVHD: TS. Trần Hoàng Linh ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA ------------------------------ CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ----------------------------------------------- NHIỆM VỤ LUẬN VĂN THẠC SỸ Họ và tên học viên: Trịnh Vũ Đăng Nguyên MSHV: 1970428 Ngày, tháng, năm sinh: 18/12/1997 Nơi sinh: Ninh Thuận Chuyên ngành : Kỹ Thuật Điện Tử Mã Số: 1970428 I. II. III. IV. V. TÊN ĐỀ TÀI: THIẾT KẾ BỘ NHỚ ĐỊA CHỈ NỘI DUNG (TCAM) THỰC HIỆN TRÊN FPGA NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu đề ra là một bộ nhớ địa chỉ nội dung hỗ trợ các giá trị nhị phân và tùy định của hệ thống máy tính, cho phép truy xuất từ một giá trị dữ liệu kỹ thuật số và cho ra kết quả về hành động cần thực hiện hoặc giá trị ưu tiên của dữ liệu đó trong cơ sở dữ liệu. Bộ nhớ truy xuất dữ liệu này sẽ được tích hợp trên FPGA, sử dụng các khối bộ nhớ trong để lưu trữ cơ sở dữ liệu. NGÀY GIAO NHIỆM VỤ (Ghi theo QĐ giao đề tài): 22/02/2021 NGÀY HOÀN THÀNH NHIỆM VỤ (Ghi theo QĐ giao đề tài): 13/06/2021 CÁN BỘ HƯỚNG DẪN : TS. Trần Hoàng Linh CÁN BỘ HƯỚNG DẪN ( Họ tên và chữ ký) TS. Trần Hoàng Linh Tp. HCM, ngày ……. tháng ……. năm 2021 CHỦ NHIỆM BỘ MÔN ĐÀO TẠO ( Họ tên và chữ ký ) TS. Trần Hoàng Linh TRƯỞNG KHOA ĐIỆN - ĐIỆN TỬ ( Họ tên và chữ ký ) PGS.TS. Đỗ Hồng Tuấn Lời cảm ơn GVHD: TS. Trần Hoàng Linh LỜI CẢM ƠN Trong suốt quá trình học tập, thực hiện và hoàn thành luận văn này, em đã nhận được sự hướng dẫn, giúp đỡ quý báu của các thầy cô, các anh chị, các em và các bạn. Với lòng kính trọng và biết ơn sâu sắc em xin được bày tỏ lời cảm ơn chân thành tới: TS. Trần Hoàng Linh, người thầy kính mến đã hết lòng giúp đỡ, dạy bảo, động viên và tạo mọi điều kiện thuận lợi cho em trong suốt quá trình thực hiện luận văn tốt nghiệp. Thầy là người định hướng, góp ý cũng như chỉ dạy phương pháp làm việc, giúp em có thể hoàn thành luận văn một cách tốt nhất. Các quý thầy cô trong khoa Điện – Điện tử, trường Đại Học Bách Khoa thành phố Hồ Chí Minh đã tận tình chỉ dạy và truyền đạt kiến thức giúp em có thể đạt được kết quả như ngày hôm nay. Bên cạnh đó, em xin chân thành cảm ơn bố mẹ và gia đình đã luôn hỗ trợ, động viên về mặt vật chất và tinh thần, giúp em hoàn thành tốt được luận văn này. Tóm Tắt Luận Văn GVHD: TS. Trần Hoàng Linh TÓM TẮT LUẬN VĂN Bộ nhớ địa chỉ nội dung là một loại bộ nhớ đặc biệt, được sử dụng rộng rãi trong các thiết bị hạ tầng mạng để điều hướng và định địa chỉ các gói dữ liệu. Ngoài ra, bộ nhớ địa chỉ nội dung còn được sử dụng trong các ứng dụng cần tìm kiếm dữ liệu nhanh chóng. Tuy nhiên, bộ nhớ địa chỉ nội dung vẫn còn các nhược điểm như mức tiêu thụ năng lượng cao và kích thước lớn cũng như cấu trúc riêng biệt, khó tích hợp vào các FPGA đang được dùng trong nhiều ứng dụng cải thiện tốc độ mạng Internet. Nghiên cứu này đề ra một cấu trúc bộ nhớ địa chỉ nội dung xây dựng từ các phần tử RAM trên FPGA, hỗ trợ đầy đủ các giá trị nhị phân và tuỳ định. Sử dụng phương pháp xếp chồng các dữ liệu lên nhau để giảm kích thước và tài nguyên tiêu thụ. Bên cạnh đó, nghiên cứu đưa ra một thiết kế mẫu bộ nhớ địa chỉ nội dung 256 x 104-bit trên FPGA Cyclone V và đánh giá khả năng ứng dụng của thiết kế trên quy mô lớn cũng như các hướng phát triển trong tương lai. Abstract GVHD: TS. Trần Hoàng Linh ABSTRACT Content addressable memory (CAM) and ternary content addressable memory (TCAM) are specialized high-speed memories for data searching. CAM and TCAM have many applications in network routing, packet forwarding and Internet data centers. These types of memories have drawbacks on power dissipation and area. As fieldprogrammable gate array (FPGA) is recently being used for network acceleration applications, the demand to integrate TCAM and CAM on FPGA is increasing. Because most FPGAs do not support native TCAM and CAM hardware, methods of implementing algorithmic TCAM using FPGA resources have been proposed through recent years. Algorithmic TCAM on FPGA have the advantages of FPGAs low power consumption and high intergration scalability. This paper proposes a scaleable algorithmic TCAM design on FPGA. The design uses memory blocks to negate power dissipation issue and data collision to save area. The paper also presents a design of a 256 x 104-bit algorithmic TCAM on Intel FPGA Cyclone V, evaluates the performance and application ability of the design on large scale and in future developments. Lời cam đoan GVHD: TS. Trần Hoàng Linh LỜI CAM ĐOAN Học viên cam đoan rằng, ngoài trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong báo cáo đề tài, các công việc trình bày trong báo cáo này là do chính học viên thực hiện. Học viên Trịnh Vũ Đăng Nguyên Mục Lục GVHD: TS. Trần Hoàng Linh MỤC LỤC NHIỆM VỤ LUẬN VĂN THẠC SỸ ........................................................................................ i LỜI CẢM ƠN ........................................................................................................................... ii TÓM TẮT LUẬN VĂN........................................................................................................... iii ABSTRACT.............................................................................................................................. iv LỜI CAM ĐOAN ...................................................................................................................... v MỤC LỤC BẢNG .................................................................................................................. viii MỤC LỤC HÌNH ..................................................................................................................... ix CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI ...................................................................................... 1 1.1 Vấn đề tổng quan bao phủ nghiên cứu: ............................................................................... 1 1.2 Mục đích nghiên cứu ............................................................................................................. 1 1.3 Những kết quả công bố trước đây ........................................................................................ 1 1.4 Mục tiêu, đối tượng và phạm vi nghiên cứu ........................................................................ 2 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ NHỚ ĐỊA CHỈ NỘI DUNG ................................. 3 2.1 Sơ lược về bộ nhớ địa chỉ nội dung ...................................................................................... 3 2.1.1 Giới thiệu về bộ nhớ khả lập địa chỉ nội dung (CAM) ..................................................................... 3 2.1.2 Giới thiệu về bộ nhớ khả lập địa chỉ nội dung 3 biến (TCAM) ....................................................... 3 2.2 Sơ lược về một số nghiên cứu bộ nhớ khả lập địa chỉ nội dung ........................................ 3 2.3 Phương pháp xếp chồng dữ liệu (Data Collision) ............................................................... 5 2.3.1 Tổng Quan ............................................................................................................................................ 5 2.3.2 Giới thiệu thuật toán chồng chập dữ liệu (Data Collision)............................................................... 5 CHƯƠNG 3. ĐẶC TẢ THIẾT KẾ LÕI IP BỘ NHỚ KHẢ LẬP ĐỊA CHỈ NỘI DUNG 3 BIẾN (TCAM) ......................................................................................................................... 10 3.1 Kiến trúc hệ thống ............................................................................................................... 10 3.1.1 Sơ đồ khối Top level ........................................................................................................................... 10 3.1.2 Mô tả tín hiệu vào ra .......................................................................................................................... 12 3.1.3 Nguyên tắc hoạt động của khối top level.......................................................................................... 13 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 Các khối trong hệ thống ...................................................................................................... 14 Khối segment Engine ......................................................................................................................... 14 Khối Status Engine............................................................................................................................. 16 Khối Mask Engine .............................................................................................................................. 19 Khối Confirm Engine......................................................................................................................... 23 Khối Priority Engine .......................................................................................................................... 30 CHƯƠNG 4. ĐẶC TẢ THIẾT KẾ LÕI IP BỘ NHỚ KHẢ LẬP ĐỊA CHỈ NỘI DUNG 3 BIẾN (TCAM) _ CẢI TIẾN................................................................................................... 34 4.1 Kiến trúc hệ thống ............................................................................................................... 34 Page : vi Mục Lục GVHD: TS. Trần Hoàng Linh 4.1.1 Sơ đồ khối Top level ........................................................................................................................... 34 4.1.3 Nguyên tắc hoạt động của khối top level.......................................................................................... 37 4.2 4.2.1 4.2.2 4.2.3 4.2.4 Các khối trong hệ thống ...................................................................................................... 38 Khối segment Engine ......................................................................................................................... 38 Khối Status Engine............................................................................................................................. 44 Khối Mask Engine .............................................................................................................................. 47 Khối Confirm Engine và Priority Engine ........................................................................................ 54 CHƯƠNG 5. HỆ THỐNG KIỂM TRA THỰC NGHIỆM LÕI IP BỘ NHỚ ĐỊA CHỈ NỘI DUNG TRÊN FPGA ...................................................................................................... 55 5.1 Sơ đồ hệ thống kiểm tra thiết kế trên Quartus và modelsim ........................................... 55 5.1.1 Kiểm tra và đánh giá thiết kế trên quartus....................................................................................... 55 5.1.1.1 Kết quả synthesis .................................................................................................................... 55 5.1.1.2 Kết quả Timing....................................................................................................................... 57 5.1.1.3 Kết quả Memory Usage ......................................................................................................... 59 5.1.2 Xây dựng môi trường kiểm tra Mô phỏng bằng ModelSim ............................................................ 62 5.2 Sơ đồ hệ thống kiểm tra thiết kế trên FPGA........................................................................... 65 5.2.1 5.2.2 5.2.3 5.2.4 Nguyên tắc hoạt động ........................................................................................................................ 65 Hành vi của TCAM Adapter: ........................................................................................................... 66 Nội dung BGP dataset........................................................................................................................ 66 Kết quả ................................................................................................................................................ 68 CHƯƠNG 6. KẾT LUẬN ...................................................................................................... 69 6.1 So sánh kết quả của thiết kế so với yêu cầu đề tài ............................................................ 69 6.2 Các bài báo liên quan .......................................................................................................... 69 TÀI LIỆU THAM KHẢO ...................................................................................................... 70 Page : vii Mục Lục Bảng GVHD: TS. Trần Hoàng Linh MỤC LỤC BẢNG Bảng 1: Ví dụ về cơ sở dữ liệu cơ bản của TCAM ................................................................. 4 Bảng 2: Mô tả tín hiệu vào ra khối top level ........................................................................ 12 Bảng 3: Mô tả tín hiệu vào ra của khối Segment engine ..................................................... 16 Bảng 4: Mô tả tín hiệu khối Status Engine ........................................................................... 18 Bảng 5: Mô tả tín hiệu vào ra của khối Mask engine .......................................................... 23 Bảng 6: Mô tả tín hiệu vào ra của khối Confirm engine ..................................................... 29 Bảng 7: Mô tả tín hiệu vào ra của khối Priority engine ...................................................... 33 Bảng 8: Mô tả tín hiệu vào ra khối top level ........................................................................ 36 Bảng 9: Mô tả tín hiệu vào ra của khối Segment engine ..................................................... 43 Bảng 10: Mô ta tín hiệu vào ra khối Status Engine ............................................................. 46 Bảng 11: Mô tả tín hiệu vào ra của khối Mask engine ........................................................ 53 Bảng 12: Nội dung TCAM Adapter ...................................................................................... 66 Bảng 13: Mẫu nội dung BGP dataset .................................................................................... 67 Bảng 14: Bảng mô tả kết quả đạt được của thiết kế so với yêu cầu ................................... 69 Bảng 15: Bảng tần số hoạt động tối đa cho phép của hai version ...................................... 57 Bảng 16: Bảng tính số lượng M10 cho thiết kế Collision TCAM 256 x 104 ( ver 1) ......... 59 Bảng 17: Bảng tính số lượng M10 cho thiết kế Collision TCAM 512 x 104 ( ver 2) ......... 60 Bảng 18: Bảng tính số lượng M10 cho thiết kế Collision TCAM 256 x 104 ( ver 2) ......... 60 Bảng 19: Các bài báo liên quan ............................................................................................. 69 Page : viii Mục Lục Hình GVHD: TS. Trần Hoàng Linh MỤC LỤC HÌNH Hình 1: Khôí RAM điển hình .................................................................................................. 5 Hình 2: Hoạt động cơ bản của bộ nhớ khả lập địa chỉ nội dung .......................................... 5 Hình 3: Data của CAM được cắt thành nhiều mảnh và được sử dụng để tạo một vecto đối sánh ở cuối ........................................................................................................................... 6 Hình 4: Luồng dữ liệu cơ bản của cấu trúc ............................................................................ 6 Hình 5: Đặt các quy tắc vào cơ sở dữ liệu của TCAM .......................................................... 7 Hình 6: Tìm kiếm vectơ đối sánh từ cơ sở dữ liệu ................................................................. 7 Hình 7: Vectơ mặt nạ từ vectơ ID quy tắc .............................................................................. 8 Hình 8: Xác nhận lại vectơ để có kết quả chính xác .............................................................. 8 Hình 9: Sơ đồ khối top level ................................................................................................... 10 Hình 10: Sơ đồ chi tiết khối Top-level .................................................................................. 11 Hình 11: Sơ đồ khối Segment engine .................................................................................... 14 Hình 12: Sơ khối chi tiết khối Segment Engine ................................................................... 14 Hình 13: Cấu trúc bit của Segment Vector .......................................................................... 15 Hình 14: Sơ đồ khối Status Engine ....................................................................................... 16 Hình 15: State machine khối Status Engine ......................................................................... 17 Hình 16: Cấu trúc bit của Set ID Mod .................................................................................. 17 Hình 17: Sơ đồ khối Mask engine ......................................................................................... 19 Hình 18: Sơ đồ khối chi tiết khối Mask Engine ................................................................... 20 Hình 19: Cấu trúc bit của Masked Vector ID ...................................................................... 21 Hình 20: Sơ đồ khối Confirm engine .................................................................................... 23 Hình 21: Sơ đồ khối Mask engine ......................................................................................... 24 Hình 22: Sơ đồ khối chi tiết khối Confirm Engine .............................................................. 24 Hình 23: Cấu trúc bit của Set Confirm String ..................................................................... 24 Hình 24: Cấu trúc bit của Confirm Result ........................................................................... 25 Hình 25: So sánh ID trong 1 Mask Vector ........................................................................... 25 Hình 26: So sánh từng cặp segment trong segmetn vector ................................................. 26 Hình 27: Sơ đồ khối Priority engine ..................................................................................... 30 Hình 28: Giải thuật so sánh Priority .................................................................................... 31 Hình 29: So sánh Priority từng cặp ....................................................................................... 31 Hình 30: Sơ đồ khối top level ................................................................................................. 34 Hình 31: Sơ đồ khối chi tiết Top-level .................................................................................. 35 Hình 32: Sơ đồ khối Segment Engine ................................................................................... 38 Hình 33: Sơ đồ khối chi tiết khối Segment Engine .............................................................. 39 Hình 34: Cấu trúc bit data của RAM 256 x 23 bit .............................................................. 40 Hình 35: Cấu trúc bit của Segment Vector .......................................................................... 40 Hình 36: Sơ đồ khối Status Engine ....................................................................................... 44 Hình 37: State machine khối Status Engine ......................................................................... 44 Hình 38: Cấu trúc bit của Set ID Mod .................................................................................. 45 Hình 39: Sơ đồ khối Mask Engine......................................................................................... 47 Hình 40: Sơ đồ khối chi tiết khối Mask Engine ................................................................... 48 Page : ix Mục Lục Hình GVHD: TS. Trần Hoàng Linh Hình 41: Cấu trúc bit của Masked Vector ID ...................................................................... 49 Hình 42: Kết quả synthesis version 1 .................................................................................... 55 Hình 43: Kết quả synthesis version 2 .................................................................................... 56 Hình 44: Kết quả tần số hoạt động tối đa cho phép của hai version .................................. 57 Hình 45: Tần số hoạt động tối đa cho phép của giải thuật so với những nghiên cứu....... 58 Hình 46: Tài nguyên bộ nhớ tiêu thụ của thiết kế so với những nghiên cứu kkhác ......... 61 Hình 47: Cấu trúc file test bench........................................................................................... 62 Hình 48: Kết quả mô phỏng modelsim ................................................................................. 63 Hình 49: Kết quả mô tả dạng sóng trên modelsim .............................................................. 64 Hình 50: Môi trường kiểm tra thực nghiệm lõi IP trên FPGA .......................................... 65 Hình 51: Kết quả kiểm tra thực nghiệm lõi IP trên FPGA................................................. 68 Page : x Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI 1.1 Vấn đề tổng quan bao phủ nghiên cứu: Bộ nhớ địa chỉ nội dung đã được nghiên cứu từ năm 1955 [1], là một dạng hình thức bộ nhớ cho phép chỉ chính xác địa chỉ của dữ liệu được truy xuất. Từ đó đến nay, bộ nhớ địa chỉ nội dung đã được phát triển dưới nhiều hình thức và cho nhiều ứng dụng khác nhau. Có thể kể đến dạng phổ biến là được chế tạo dưới dạng một IC bộ nhớ ngoài hoặc một phần của một vi xử lý, thường được sử dụng trong các bộ định tuyến Internet [2]. Hơn nữa, nhu cầu sử dụng bộ nhớ truy xuất dữ liệu đa dạng, xuất hiện trong các bộ xử lý và điều hướng hạ tầng mạng Internet, các hệ thống cơ sở dữ liệu lớn, bộ nhớ đệm cho CPU, các hệ thống xử lý mạng lưới trí tuệ nhân tạo,... Trong đó, việc sử dụng các thiết bị gia tốc tính toán trên FPGA cho các ứng dụng trên cũng trở nên phổ biến [9], gia tăng nhu cầu tích hợp bộ nhớ truy xuất dữ liệu trên FPGA. 1.2 Mục đích nghiên cứu Nghiên cứu đề ra là một bộ nhớ truy xuất dữ liệu hỗ trợ các giá trị nhị phân và tùy định của hệ thống máy tính, cho phép truy xuất từ một giá trị dữ liệu kỹ thuật số và cho ra kết quả về hành động cần thực hiện hoặc giá trị ưu tiên của dữ liệu đó trong cơ sở dữ liệu. Bộ nhớ truy xuất dữ liệu này sẽ được tích hợp trên FPGA, sử dụng các khối bộ nhớ trong để lưu trữ cơ sở dữ liệu. 1.3 Những kết quả công bố trước đây Gần đây, nhiều nghiên cứu và giải thuật đã được đề xuất để thực hiện nhằm mục đích đưa cấu trúc của bộ nhớ truy xuất dữ liệu lên FPGA. Trong số đó, có thể kể đến các xu hướng sử dụng các khối RAM nội của FPGA để thay thế cho CAM và TCAM, tuy vậy vì lý do này chúng ta phải đánh đổi bằng một số lượng lớn tài nguyên [11] [6]. Các giải thuật và các cách sắp xếp hợp lý để tối ưu hóa lượng tài nguyên và năng lượng tiêu thụ cũng được đề xuất. [13] [14] [8] Trong đó, [13] tăng tần số hoạt động của khối RAM nội cho phép truy xuất nhiều lần nhiều khối RAM trong cùng một tần số hoạt động của toàn hệ thống. Tuy vậy với những thiết kế có tần số hoạt động cao thì việc thiết kế cho khả năng sử dụng RAM nội nhanh gấp 5 lần tần số hệ thống rất khó khăn [13]. Nghiên cứu [8] đề ra cách sắp xếp dữ liệu chồng chất lên nhau rất đặc biệt và có thể ứng dụng rất tốt, tuy vậy chỉ đề cập tới thay thế cho bộ nhớ truy xuất dữ liệu (CAM) mà không nhắc tới cách hỗ trợ các giá trị tùy định của một cơ sở dữ liệu thường thấy trong bộ nhớ truy xuất dữ liệu khi sử dụng cho các ứng dụng đã nêu trên. Nghiên cứu này đề xuất một cấu trúc bộ nhớ truy xuất dữ liệu sử dụng các khối RAM trên FPGA, cũng dùng phương pháp chồng chất dữ liệu [8] để tối ưu hóa không gian lưu trữ cơ sở dữ liệu, giảm lượng tài nguyên tiêu thụ cho thiết kế. Thêm vào đó, đề ra thêm cấu trúc giải thuật bổ sung để hỗ trợ các giá trị tùy định để thiết kế có thể hoạt động như một TCAM. Page : 1 Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh 1.4 Mục tiêu, đối tượng và phạm vi nghiên cứu Mục tiêu: Bộ nhớ địa chỉ nội dung là một loại bộ nhớ đặc biệt, được sử dụng rộng rãi trong các thiết bị hạ tầng mạng để điều hướng và định địa chỉ các gói dữ liệu. Ngoài ra, bộ nhớ địa chỉ nội dung còn được sử dụng trong các ứng dụng cần tìm kiếm dữ liệu nhanh chóng, chỉ trong một chu kỳ máy. Tuy nhiên, bộ nhớ địa chỉ nội dung vẫn còn các nhược điểm như mức tiêu thụ năng lượng cao và kích thước lớn cũng như cấu trúc riêng biệt, khó tích hợp vào các FPGA đang được dùng trong nhiều ứng dụng cải thiện tốc độ mạng Internet. Đề tài này đề ra một cấu trúc bộ nhớ địa chỉ nội dung xây dựng từ các phần tử RAM trên FPGA, hỗ trợ đầy đủ các giá trị nhị phân và tuỳ định. Bên cạnh đó đề tài cũng sử dụng giải thuật xếp chồng các dữ liệu lên nhau để giảm kích thước và tài nguyên tiêu thụ. Đề tài cũng đưa ra một thiết kế mẫu bộ nhớ địa chỉ nội dung 256 x 104-bit trên FPGA Cyclone V và đánh giá khả năng ứng dụng của thiết kế trên quy mô lớn cũng như các hướng phát triển trong tương lai. Đối tượng và phạm vi nghiên cứu: Thiết kế mẫu bộ nhớ địa chỉ nội dung 256 x 104-bit trên FPGA Cyclone V và đánh giá khả năng ứng dụng của thiết kế trên quy mô lớn cũng như các hướng phát triển trong tương lai. Page : 2 Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh CHƯƠNG 2. CƠ SỞ LÝ THUYẾT BỘ NHỚ ĐỊA CHỈ NỘI DUNG 2.1 Sơ lược về bộ nhớ địa chỉ nội dung 2.1.1 Giới thiệu về bộ nhớ khả lập địa chỉ nội dung (CAM) Bộ nhớ địa chỉ nội dung (CAM) là một loại bộ nhớ đặc biệt, có thể tìm kiếm toàn bộ cơ sở dữ liệu trong một chu kỳ CPU và trả về thông tin địa chỉ tương ứng [1][2][3]. Những ứng dụng của CAM có thể kể đến như: định tuyến gói Internet, bộ nhớ đệm cho vi xử lý, hoặc ứng dụng trong AI. Ngoài ra, CAM còn ứng dụng trong lĩnh vực nghiên cứu các chuỗi DNA [4]. Mặc dù CAM có nhiều ưu thế như cải thiện tốc độ tìm kiếm dữ liệu trên vi xử lý, nhưng nó tiêu thụ nhiều điện năng và gần như không có khả năng nâng cấp. 2.1.2 Giới thiệu về bộ nhớ khả lập địa chỉ nội dung 3 biến (TCAM) Bộ nhớ địa chỉ nội dung 3 biến (TCAM) là phần mở rộng của CAM, hỗ trợ thêm việc xử lý giá trị tuỳ định ‘x’. TCAM dùng tài nguyên bộ nhớ nhiều gấp 30 lần so với DDR SRAM và tiêu thụ điện năng trên mỗi bit nhớ gấp 150 lần so với SRAM [5]. Cho đến nay, TCAM là một thiết bị quan trọng trong việc cải tiến hệ thống kỹ thuật số. Việc phát triển TCAM và CAM vật lý trong vài năm trở lại đây đã trở nên chậm lại, tuy nhiên, TCAM và CAM trên FPGA thì lại phát triển nhanh chóng. Các ứng dụng tìm kiếm dữ liệu tốc độ cao ngày càng yêu cầu khắt khe hơn về TCAM trong nhiều lĩnh vực. 2.2 Sơ lược về một số nghiên cứu bộ nhớ khả lập địa chỉ nội dung Trong các giải pháp tăng tốc phần cứng gần đây, Mảng phần tử logic có thể tái lập trình (FPGA) thường được sử dụng vì sự nhanh chóng trong thiết kế mạch số và khả năng nâng cấp trực tiếp trên hệ thống. Ứng dụng của FPGA có thể kể đến như cải thiện tốc độ các gói Internet định tuyến, trí tuệ nhân tạo (AI) và nghiên cứu sinh học, chuỗi DNA, v.v [6][7]. Những ứng dụng được nêu trên thường yêu cầu các phần cứng hỗ trợ tìm kiếm dữ liệu tốc độ cao như TCAM và CAM. Bởi FPGA không hỗ trợ sẵn CAM và TCAM, do đó phương pháp đề xuất sử dụng các tài nguyên sẵn có trên mạch, như các khối bộ nhớ ( Blocks RAM) và bảng tra cứu (LUT). Nhiều nghiên cứu trước đây đề xuất sử dụng các khối RAM sẵn có bên trong FPGA để thay thế CAM và TCAM tuy nhiên cách làm này đi cũng với sự đánh đổi lượng lớn tài nguyên trong mạch theo nghiên cứu [5][8]. Nghiên cứu [9] cung cấp TCAM thuật thoán có thể mở rộng sử dụng các mảnh cấu thành FPGA (slices) làm tài nguyên chính. Xilinx đã giới thiệu một lõi IP (IP core) dùng để ứng dụng TCAM trên mạch FPGA của họ [10]. Bên cạnh đó, các phương pháp dùng để tối ưu hoá lượng tài nguyên và điện năng tiêu thụ cũng đã được thể hiện trong các nghiên cứu [11-17]. Green TCAM, dưa theo nghiên cứu [18], chứng minh rằng TCAM thuật toán cải thiện hiệu xuất đáng kể dựa trên việc cài đặt các quy tắc. Pseudo-TCAM [19] sắp xếp các tài nguyên bộ nhớ một Page : 3 Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh cách đơn giản và thống nhất với nhau áp dụng cho tất cả các quy tắc và thông lượng cao. Thuật toán hỗ trợ cập nhật nhanh chóng được đề cập trong nghiên cứu [20] nhưng phải đánh đổi bằng hiệu suất. Multi-pumping SRAMs, theo nghiên cứu [15], tăng tần số hoạt động của các khối RAM nội và cho phép nhiều truy cập cùng lúc trong cùng một xung nhịp hệ thống. Với những thiết kế tần số cao, rất khó để thiết kế các RAM nội có thể đạt tốc độ nhanh hơn gấp 5 lần thiết kế của nghiên cứu [15]. Nghiên cứu [17] đề xuất một cách đặc biệt để định vị dữ liệu, nhưng nghiên cứu này chỉ đề cập đế CAM mà không nói đến việc hỗ trợ giá trị tuỳ định thường thấy trong bộ nhớ địa chỉ nội dung khi được sử dụng trong các ứng dụng được nêu ở phần trên. Nhiều đơn vị so khớp băm (hash matching unit) [21] cũng là một tuỳ chọn để triển khai TCAM thuật toán, nhưng nó gặp phải xung đột băm (hash collision). Bảng 1 cho thấy dữ liệu cơ bản thường thấy của một CAM, bao gồm hàng dữ liệu được sắp xếp theo thứ tự ưu tiên. Rule 0 là quy tắc mặc định khi dữ liệu trả về không phù hợp với bất kỳ quy tắc nào khác trong bộ nhớ. Cơ sở dữ liệu này có thể được cài đặt vào một Bộ nhớ khả lập địa chỉ nội dung hỗ trợ giá trị tùy định (TCAM) hoặc một Bộ nhớ khả lập địa chỉ nội dung không hỗ trợ giá trị tùy định (CAM) cùng với Bộ mở rộng tiền tố có kiểm soát (CPE), đơn giản là tách các giá trị tùy định và biến đổi chúng thành giá trị Nhị Phân. Như vậy, với một bộ nhớ khả lập địa chỉ nội dung mà không không hỗ trợ giá trị tùy định (CAM), nhu cầu sử dụng tài nguyên bộ nhớ là vô cùng lớn Bảng 1: Ví dụ về cơ sở dữ liệu cơ bản của TCAM Ví dụ về Bộ mở rộng tiền tố có kiểm soát (CPE) được nêu trong nghiên cứu [22]. Với số lượng lớn các quy tắc và nhiều giá trị ngẫu nhiên như trong một bộ định tuyến FIB, việc sử dụng CPE tiêu tốn một lượng lớn tài nguyên bộ nhớ. Để xây dựng bộ nhớ khả lập định địa chỉ nội dung trên FPGA, tài nguyên được sử dụng trong nghiên cứu này là các khối RAM nội được hỗ trợ trong FPGA. Bộ nhớ bên trong FPGA được cung cấp dưới dạng các ô nhớ như trong Hình 1. Mỗi ô nhớ hỗ trợ lưu trữ một số lượng kilobit dữ liệu nhất định. Ô nhớ M20K của Intel hỗ trợ 20k-bit và tương tự đối với các ô nhớ: Xilinx M9K, M10K hoặc B36K. Các ô nhớ này hỗ trợ một số lượng địa chỉ và độ dài dữ liệu nhất định tùy thuộc vào công nghệ được sử dụng. Tuy nhiên, khi sử dụng để xây dựng bộ nhớ khả lập địa chỉ nội dung, cần lưu ý rằng các ô nhớ này không hỗ trợ giá trị tùy định mà chỉ hỗ trợ giá trị nhị phân. Page : 4 Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh Hình 1: Khôí RAM điển hình 2.3 Phương pháp xếp chồng dữ liệu (Data Collision) 2.3.1 Tổng Quan Để hiểu được thuật toán, trước tiên chúng ta cần hiểu cách hoạt động của bộ nhớ khả lập địa chỉ nội dung – CAM. Hoạt động cơ bản của CAM được mô tả trong Hình 2. Dữ liệu cần tìm địa chỉ, được hiểu là dữ liệu khóa, được đưa vào CAM và kết quả được trả về. Kết quả là địa chỉ tương ứng của dữ liệu đầu vào đã được cài đặt từ trước trong bộ nhớ khả lập địa chỉ nội dung. Một cách tổng quát, kết quả có thể là địa chỉ đúng của dữ liệu mà ta cần tìm địa chỉ hoặc không, và dữ liệu ngõ vào sẽ được xử lý một cách phù hợp. Khi thiết kế bộ nhớ TCAM trên FPGA, như đã đề cập trong [7] [16], cách tốt nhất để giảm số RAM và tối ưu hóa tốc độ hệ thống là cắt dữ liệu khóa thành nhiều mảnh dữ liệu với độ dài bit nhất định (độ dài của các mảnh có thể bằng nhau hoặc không). Phương pháp tối ưu nhất [7] [16] khi độ dài của các mảnh dữ liệu đúng bằng độ dài của địa chỉ ô nhớ trên FPGA. Ví dụ, đối với ô nhớ M20K của Intel, độ dài này là 9 bit. Trong phương pháp được thực hiện của nghiên cứu này, chúng ta cũng sẽ cắt dữ liệu khóa thành nhiều mảnh dữ liệu để tối ưu hóa tốc độ và giảm bộ nhớ tiêu thụ. Hình 2: Hoạt động cơ bản của bộ nhớ khả lập địa chỉ nội dung 2.3.2 Giới thiệu thuật toán chồng chập dữ liệu (Data Collision) Hình 3 cho thấy dữ liệu khóa được cắt thành các mảnh dữ liệu có độ dài nhất định. Những mảnh dữ liệu này truy cập mỗi ô nhớ tương ứng, những ô nhớ này đã được cài đặt dữ liệu trước đó, và tạo thành một Vector kết quả, được nêu trong nghiên cứu [17]. Tuy nhiên, nghiên cứu [17] không hỗ trợ các quy tắc chứa giá trị tùy định. Khi đã có được Vector kết quả, CAM sẽ phân tích và xác minh những kết quả đó để đưa ra kết quả cuối cùng của dữ liệu khóa tương ứng. Nghiên cứu được trình bày trong tài liệu này thay đổi và tổ chức lại cấu trúc xung đột dữ liệu được trình bày trong nghiên cứu Page : 5 Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh [17]. Những sửa đổi và việc bổ sung một số mô-đun cần thiết cho phép các quy tắc hỗ trợ giá trị tùy định và làm giảm vấn đề tiêu thụ bộ nhớ của CPE Hình 3: Data của CAM được cắt thành nhiều mảnh và được sử dụng để tạo một vecto đối sánh ở cuối Hình 4 cho thấy giải thuật cơ bản của cấu trúc TCAM này. Dữ liệu tuân theo 3 bước chính để xử lý tạo ra kết quả. Hình 4: Luồng dữ liệu cơ bản của cấu trúc Hình 5 mô tả chi tiết quá trình thiết lập các quy tắc vào bộ nhớ. Ở đây chúng tôi lấy ví dụ về quy tắc 10-bit, được chia thành 5 mảnh dữ liệu có độ dài 2-bit. Một bảng của bộ nhớ khả lập địa chỉ nội dung này bao gồm các ô nhớ, mỗi ô chứa hai thành phần – trạng thái của ô nhớ và dữ liệu nhận dạng (ID) cho quy tắc. Cách ghi các quy tắc vào bảng như sau. Đầu tiên, các quy tắc phải ở dạng thích hợp để được điền vào bảng, nghĩa là, quy tắc phải có các mảnh dữ liệu chứa 2-bit tùy định giống nhau dưới dạng "**" hoặc không có giá trị tùy định nào. Nếu quy tắc có các phân mảnh ở dạng chỉ có một giá trị tùy định, thì quy tắc đó phải được tách thành hai quy tắc. Để cài đặt một quy tắc vào bảng, viết ID của quy tắc đó vào ô tại địa chỉ tương ứng giá trị trong các mảnh dữ liệu của quy tắc đó trong bảng và chuyển trạng thái của ô sang đã ghi (Written). Nếu ô đã có quy tắc được viết trước đó, ô đó sẽ ở trạng thái xung đột (Collision). Sau khi viết xong các quy tắc, các ô trong bảng có một trong ba trạng thái: trống, đã ghi hoặc xung đột. Khi viết quy tắc, cần đảm bảo có ít nhất n ô không xung đột nhau, thông thường, n chỉ cần bằng 1. Để xóa quy tắc khỏi bảng, xóa quy tắc đó khỏi ô đã điền, ô ở trạng thái xung đột sẽ trở thành đã ghi nếu chỉ còn lại một quy tắc được điền trong ô đó; ô ở trạng thái đã ghi sẽ trở thành ô trống. Page : 6 Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh Hình 5: Đặt các quy tắc vào cơ sở dữ liệu của TCAM Để có thể tìm địa chỉ cho một khóa, một số thành phần cần được bổ sung. Tuy nhiên, ở bước này, một vectơ dữ liệu đã có thể được tìm thấy để tiếp tục quy trình xử lý. Hình 6 minh họa cách tìm khóa từ bảng dữ liệu quy tắc đã được thiết lập và trong một số trường hợp không hợp lệ, kết quả được kết luận một cách nhanh chóng. Các trường hợp xấu có thể dự đoán được trong quá trình thiết lập bảng và có thể được ngăn chặn bằng cách tối ưu hóa phần mềm. Theo nghiên cứu [16], đối với một TCAM có n rules và chứa m data ngẫu nhiên, tỷ lệ xung đột cho một cột là 26%. Đối với z cột, tỷ lệ để có toàn bộ z cột đều ở trạng thái xung đột là 26%z , tỷ lệ này là rất nhỏ với một dữ liệu khóa dài. Hình 6: Tìm kiếm vectơ đối sánh từ cơ sở dữ liệu Ở bước tiếp theo, các quy tắc đã được thiết lập hoàn tất trong bảng. Đối với mỗi quy tắc, chúng ta có một Vector dữ liệu đánh dấu các giá trị tùy định tương ứng – gọi là Vector mặt nạ. Mỗi bit trong vectơ này đánh dấu một đoạn giá trị tùy định “**” (trong Page : 7 Luận Văn Thạc Sỹ GVHD: TS. Trần Hoàng Linh ví dụ này, mỗi bit trong Vector mặt nạ đánh dấu 2-bit giá trị). Với mỗi đoạn có chứa ID (không ở trạng thái xung đột), ta cần tìm một Vector mặt nạ tương ứng với ID đó để thực hiện việc so sánh. Có rất nhiều cách có thể được áp dụng để tìm kiếm vectơ mặt nạ trong trường hợp này, mỗi cách khác nhau sẽ có những ưu nhược điểm khác nhau khi áp dụng trên phần cứng. Vectơ mặt nạ và quá trình đánh dấu được mô tả trong Hình 7. Các vectơ mặt nạ được trình bày trong hình dưới dạng một chuỗi 5-bit với mỗi bit tương ứng với một đoạn dữ liệu được che. Hình 7: Vectơ mặt nạ từ vectơ ID quy tắc Bước tiếp theo, TCAM thực hiện so sánh các đoạn ID trong Vector ID đã được đánh dấu và đưa ra kết quả cuối cùng bao gồm tín hiệu cho biết liệu khóa có khớp với dữ liệu quy tắc hay không và, nếu có, thì kết quả sẽ là ID cần tìm của quy tắc. Trong trường hợp có hơn 1 kết quả trùng khớp, các đoạn khóa vẫn phải qua một bộ nhớ khác để xác nhận lại , để đề phòng xác suất xảy ra lỗi trùng khớp. Việc xác nhận lại được thực hiện trước khi so sánh thứ tự ưu tiên vì nếu so sánh ưu tiên trước sẽ có khả năng xảy ra trường hợp lỗi trùng khớp. Bước này được thể hiện trong Hình 8. Hình 8: Xác nhận lại vectơ để có kết quả chính xác Mức độ ưu tiên được thiết lập vào bảng xác nhận và với các bộ quy tắc trong bộ nhớ khả lập địa chỉ nội dung lớn có thể được ưu tiên phân cấp trước giữa các vùng để giảm độ phức tạp khi thực hiện so sánh các thứ tự ưu tiên. Sau khi so sánh thứ tự ưu tiên Page : 8
- Xem thêm -

Tài liệu liên quan