ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2CÔ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 TRƯỞNG KHOA ĐIỆN - ĐIỆN TỬ
TS Huỳnh Phú Minh Cường PGS.TS Đỗ Hồng Tuấn
Trang 3ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
NHIỆM VỤ LUẬN VĂN THẠC SỸ
I TÊN ĐỀ TÀI: THIẾT KẾ BỘ NHỚ ĐỊA CHỈ NỘI DUNG (TCAM) THỰC HIỆN TRÊN FPGA
II 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
III NGÀY GIAO NHIỆM VỤ (Ghi theo QĐ giao đề tài): 22/02/2021
IV NGÀY HOÀN THÀNH NHIỆM VỤ (Ghi theo QĐ giao đề tài): 13/06/2021 V CÁN BỘ HƯỚNG DẪN : TS Trần Hoàng Linh
Tp HCM, ngày …… tháng …… năm 2021
TRƯỞNG KHOA ĐIỆN - ĐIỆN TỬ
( Họ tên và chữ ký )
PGS.TS Đỗ Hồng Tuấn
Trang 4LỜ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
Trang 5
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
Trang 6ABSTRACT
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 field-programmable 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.
Trang 7LỜ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
Trang 8CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 1
1.1Vấn đề tổng quan bao phủ nghiên cứu: 1
1.2Mục đích nghiên cứu 1
1.3Những kết quả công bố trước đây 1
1.4Mụ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.1Sơ 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.2Sơ lược về một số nghiên cứu bộ nhớ khả lập địa chỉ nội dung 3
2.3Phươ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.1Kiế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.2Các khối trong hệ thống 14
3.2.1 Khối segment Engine 14
3.2.2 Khối Status Engine 16
3.2.3 Khối Mask Engine 19
3.2.4 Khối Confirm Engine 23
3.2.5 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.1Kiến trúc hệ thống 34
Trang 9Page : vii
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.2Các khối trong hệ thống 38
4.2.1 Khối segment Engine 38
4.2.2 Khối Status Engine 44
4.2.3 Khối Mask Engine 47
4.2.4 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.1Sơ đồ 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 Nguyên tắc hoạt động 65
5.2.2 Hành vi của TCAM Adapter: 66
5.2.3 Nội dung BGP dataset 66
5.2.4 Kết quả 68
CHƯƠNG 6 KẾT LUẬN 69
6.1So sánh kết quả của thiết kế so với yêu cầu đề tài 69
6.2Các bài báo liên quan 69
TÀI LIỆU THAM KHẢO 70
Trang 10MỤ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
Trang 11Page : ix
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
Trang 12Hì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
Trang 13Page : 1
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
Trang 141.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
Trang 15Page : 3
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
Trang 16cá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
Trang 17Page : 5
Hình 1: Khôí RAM điển hình
2.3 Phương pháp xếp chồng dữ liệu (Data Collision)
để 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
Trang 18[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
Trang 19Page : 7
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
Trang 20ví 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
Trang 21Page : 9
và nhận được kết quả phù hợp có thứ tự ưu tiên cao nhất, kết quả là ID của quy tắc trùng khớp với dữ liệu khóa, hoặc báo hiệu rằng khóa không khớp với bất kì ID nào trong bộ nhớ khả lập địa chỉ nội dung ID này được sử dụng bởi một bộ nhớ dữ liệu ngoại vi để thực hiện các quy trình xử lý khác đối với gói dữ liệu liên quan tới dữ liệu khóa
Trang 22CHƯƠNG 3 ĐẶC TẢ THIẾT KẾ LÕI IP BỘ NHỚ KHẢ LẬP ĐỊA CHỈ NỘI DUNG 3 BIẾN (TCAM)
3.1 Kiến trúc hệ thống
3.1.1 Sơ đồ khối Top level
Cài đặt Tìm kiếm
Hình 9: Sơ đồ khối top level
Trang 243.1.2 Mô tả tín hiệu vào ra
Dữ liệu khóa cần tìm địa chỉ được đưa vào IP để thực hiện việc tìm kiếm địa chỉ dữ liệu
Chuỗi dữ liệu được đưa vào các khối chức năng để thực hiện thiết lập dữ liệu TCAM
ID tương ứng với chuỗi dữ liệu được đưa vào các khối chức năng để thực hiện thiết lập dữ liệu TCAM
- Tín hiệu báo hiệu sẵn sàng thực
hiện thiết lập dữ liệu vào TCAM
- Tích cực mức 1
của dữ liệu khóa cần tìm địa chỉ
- Xác định dữ liệu ngõ ra có giá trị
Trang 25Page : 13
3.1.3 Nguyên tắc hoạt động của khối top level
+ Cài Đặt: TCAM tiếp nhận 3 ngõ vào để thực hiện thiết lập dữ liệu vào bộ nhớ TCAM Ngõ vào Set String – chuỗi 125-bit dữ liệu bao gồm các dữ liệu cần thiết để thực thiện thiết lập TCAM: 8-bit thứ tự ưu tiên, 13-bit dữ liệu mặt nạ và 104-bit dữ liệu khóa Chuỗi dữ liệu trên sẽ được thiết lập vào các bộ nhớ tương ứng dựa trên 8-bit địa chỉ được gọi là ID– Set ID TCAM thực hiện Cài Đặt khi tín hiệu Set Enable tích cực mức 1 Khi thực hiện Cài Đặt, TCAM sẽ lần lượt tiếp nhận 1 chuỗi dữ liệu và 1 ID tương ứng và thiết lập các dữ liệu, quy trình này mất 2 clock để hoàn tất – tín hiệu Set Done tích cực mức 1.
+ Tìm Kiếm: TCAM nhận Key Input làm dữ liệu khóa để thực hiện tìm kiếm địa chỉ dữ liệu – ID tương ứng Dựa theo thuật toán đã được nêu ở Mục 2, 104-bit dữ liệu khóa sẽ được chia thành 13 mảnh 8-bit truy cập vào 13 ô nhớ khác nhau trong khối Segment Engine để thực hiện tìm kiếm ID và trả về kết quả là 130-bit Vector ID – gọi là Segment Vector Vector này sẽ được khối Mask Engine tiếp nhận và xử lý bằng cách cắt thành 13 đoạn 10-bit ID, bao gồm trạng thái, khác nhau 13 đoạn này sẽ được xử lý song song thông qua bộ nhớ đặc biệt – gọi là bộ nhớ mặt nạ Bộ nhớ này thực hiện truy xuất Vector mặt nạ tương ứng với ID và đánh dấu các đoạn ID Kết quả trả về là 13 đoạn 130-bit Vector ID đã được đánh dấu – gọi là Masked Vector ID
13 dữ liệu 130-bit Vector ID trên sẽ trực tiếp so sánh thông qua quy trình xử lý
của Confirm Engine Khối IP này sẽ truy xuất dữ liệu từ bộ nhớ xác minh (reconfirmation memory), thực hiện xác minh, gắn cờ hiệu và thứ tự ưu tiên vào các
Trang 26+ Khi thực hiện Cài Đặt, IP sẽ nhận dữ liệu tương ứng Set Key và Set ID Trong đó Set Key là nội dung của bộ nhớ địa chỉ nội dung (TCAM); Set ID là 8-bit địa chỉ của
bộ nhớ địa chỉ nội dung (TCAM)
+ Khi thực hiện Tìm Kiếm, IP nhận dữ liệu từ Key Input là dữ liệu ngõ vào ta
cần phải tìm địa chỉ Khóa dữ liệu sẽ được cắt nhỏ thành 13 đoạn dữ liệu (8 bit/đoạn) Segment Engine xử lý và tạo ra 13 địa chỉ (bao gồm trạng thái) tương ứng chứa 13 đoạn
dữ liệu (Segment Vector) 3.2.1.2 Sơ đồ khối
3.2.1.3 Sơ đồ khối chi tiết
Cài đặt Tìm kiếm
Hình 11: Sơ đồ khối Segment engine
Hình 12: Sơ khối chi tiết khối Segment Engine
Trang 27báo hiệu dữ liệu đã sẵn sàng thiết lập vào RAM
¨ Tìm Kiếm: Dữ liệu khóa – Key Input sẽ được cắt nhỏ thành 13 mảnh dữ liệu (8 bit/đoạn) 13 mảnh dữ liệu này sẽ được đưa vào 13 ô nhớ tương ứng, Segment Engine xử lý và trả về 13 ID (bao gồm trạng thái) tương ứng của 13 mảnh dữ liệu 13 ID này sẽ được ghép lại tạo thành một Vector ID gọi là – Segment Vector
3.2.1.5 Mô tả tín hiệu vào ra
Dữ liệu khóa được đưa vào khối Segment Engine thiết lập dữ liệu vào TCAM
ID tương ứng với dữ liệu khóa dùng để thiết lập dữ liệu vào TCAM
Hình 13: Cấu trúc bit của Segment Vector
Trang 286 Set Segment Enable Vào 1
- Tín hiệu được đưa vào khối Segment Engine, báo hiệu sẵn sàng cài đặt dữ liệu trong RAM
Bảng 3: Mô tả tín hiệu vào ra của khối Segment engine
3.2.2 Khối Status Engine
3.2.2.1 Nguyên tắc hoạt động
Khối Status Engine là một máy trạng thái, nhận 8-bit ID - Set ID là ngõ vào IP
này giao tiếp trực tiếp với 13 khối RAM để kiểm tra dữ liệu trong RAM và đánh dấu trạng thái các ID chuẩn bị được ghi vào
3.2.2.2 Sơ đồ khối
3.2.2.3 Giải thuật
Hình 14: Sơ đồ khối Status Engine
Trang 29Page : 17
Khối IP là Máy Trạng Thái (FSM) kiểu Moore Tín hiệu Set Segment Enable
điều khiển hoạt động của IP
Khi Set Segment Enable tích cực 1, máy trạng thái chuyển sang trạng thái tiếp
theo Ở trạng thái tiếp theo, IP sẽ kiểm tra dữ liệu trong RAM và đánh dấu trạng thái
cho dữ liệu mới, trả về ngõ ra Set ID Mod Sau đó, IP sẽ tự động quay về trạng thái
ban đầu và đợi tín hiệu Cài Đặt tiếp theo
Cấu trúc bit của Set ID Mod
3.2.2.4 Mô tả tín hiệu vào ra
Hình 15: State machine khối Status Engine
Hình 16: Cấu trúc bit của Set ID Mod
Trang 303 i_Ram_Data Vào 10
Dữ liệu hiện có trong TCAM bao gồm 2-bit biểu diễn trạng thái, 8-bit ID
khóa để thực hiện Cài Đặt
- Tín hiệu được đưa vào khối Segment Engine, báo hiệu sẵn sàng cài đặt dữ liệu trong TCAM
- Tích cực mức 1
Dữ liệu đã được đánh dấu trạng thái, sẵn sàng cài đặt vào TCAM
- Tín hiệu ngõ ra, báo hiệu việc đánh dấu trạng thái đã hoàn tất và sẵn sàng Cài Đặt - Tín hiệu này được kết nối
trực tiếp với tín hiệu write enable của RAM, báo hiệu
RAM sẵn sàng thiết lập dữ liệu
- Tích cực mức 1
Bảng 4: Mô tả tín hiệu khối Status Engine
Trang 31tích cực mức cao; và ngược lại, khối sẽ thực hiện Tìm Kiếm
+ Khi thực hiện Cài Đặt, IP sẽ nhận 2 dữ liệu ngõ vào Set Mask Data và Set Mask ID Trong đó Mask ID là dữ liệu địa chỉ RAM; Mask Data là dữ liệu 13 bit mặt
nạ được dùng để đánh dấu dữ liệu
+ Khi thực hiện Tìm Kiếm, IP nhận dữ liệu từ Segment Vector bao gồm 13 địa chỉ dữ liệu (10 bit/địa chỉ) Dựa vào các địa chỉ đó, Mask Engine xử lí và tạo ra Vector
mặt nạ cho từng địa chỉ tương ứng
3.2.3.2 Sơ đồ khối
3.2.3.3 Sơ đồ khối chi tiết
Cài đặt Tìm kiếm
Hình 17: Sơ đồ khối Mask engine
Trang 323.2.3.4 Giải thuật
¨ Cài đặt: Bên trong IP Mask Engine là 13 khối 256x13-bit RAM – được gọi là bộ nhớ mặt nạ Bộ nhớ này nhận Set Mask ID làm 8-bit địa chỉ, và 13-bit Set Mask Data là Vector mặt nạ làm dữ liệu ô nhớ
Khi tín hiệu Set Mask Enable tích cực mức 1, dữ liệu Vector mặt nạ sẽ
được ghi vào ô nhớ tại địa chỉ tương ứng – ID
¨ Tìm kiếm: IP nhận 130-bit Segment Vector – Vector ID được tạo ra từ IP Segment Engine – làm ngõ vào Vector ID này sẽ được cắt làm 13 đoạn 10-bit dữ
liệu ID – mỗi đoạn bao gồm 2-bit mô tả trạng thái dữ liệu và 8-bit ID – để thực hiện quá trình đánh dấu dữ liệu (như đã đề cập ở Mục 2) 13 dữ liệu ID này sẽ được tiếp nhận và
xử lý bởi 13 bộ nhớ mặt nạ đã được thiết lập dữ liệu Bộ nhớ mặt nạ sẽ truy xuất dữ liệu Vector mặt nạ tương ứng với từng ID Thực hiện đánh dấu dữ liệu và trả về kết quả là 13 Vector ID đã được đánh dấu – gọi là Masked Vector ID tương ứng với 13 ID trong Segment Vector
Cấu trúc bit của Masked Vector ID
Hình 18: Sơ đồ khối chi tiết khối Mask Engine
Trang 33Page : 21
3.2.3.5 Mô tả tín hiệu vào ra
Dữ liệu mặt na tương ứng với địa chỉ khóa
¨ Mask = 0 à Dữ liệu là binary
¨ Mask = 1 à Dữ liệu là don’t care (*)
5 Set Mask ID Vào 8 Địa chỉ tương ứng của Dữ liệu mặt nạ (Mask Data)
Mask Engine, báo hiệu sẵn
Hình 19: Cấu trúc bit của Masked Vector ID
Trang 34sàng cài đặt dữ liệu trong RAM
- Tích cực mức 1
tương ứng với ID1
tương ứng với ID2
tương ứng với ID3
tương ứng với ID4
tương ứng với ID5
tương ứng với ID6
tương ứng với ID7
Vector ID đã được đánh dấu tương ứng với ID8
Vector ID đã được đánh dấu tương ứng với ID9
tương ứng với ID10
tương ứng với ID11
tương ứng với ID12
Trang 35Page : 23
19 Masked Vector ID13 Ra 130 Vector ID đã được đánh dấu tương ứng với ID13
Bảng 5: Mô tả tín hiệu vào ra của khối Mask engine
3.2.4 Khối Confirm Engine
3.2.4.1 Nguyên tắc hoạt động
Khối Confirm Engine nhận tín hiệu từ ngõ vào Set Confirm Enable để quyết định thực hiện việc Cài Đặt/Tìm Kiếm IP thực hiện Cài Đặt khi Set Confirm Enable
tích cực mức cao; và ngược lại, khối sẽ thực hiện Tìm Kiếm
+ Khi thực hiện Cài Đặt, IP sẽ nhận chuỗi dữ liệu Set Confirm String – 125-bit; và Set Confirm ID – địa chỉ tương ứng với chuỗi dữ liệu
+ Khi thực hiện Tìm Kiếm, IP nhận dữ liệu từ 13 véc tơ mặt nạ (Mask Vector1, Mask Vector2, Mask Vector13) Confirm Engine thực hiện so sánh địa chỉ và trạng
thái trong mỗi véc tơ, để cho ra kết quả cuối cùng Với 13 Vector mặt na, khối IP này sẽ trả về 13 kết quả tương ứng (17-bit/kết quả)
3.2.4.2 Sơ đồ khối
Hình 20: Sơ đồ khối Confirm engine
Trang 363.2.4.3 Sơ đồ khối chi tiết
3.2.4.4 Giải thuật
Khối Confirm Engine nhận tín hiệu Set Confirm Enable để quyết định thực
hiện Cài Đặt/Tìm Kiếm
¨ Cài Đặt: Bên trong IP là một 256 x 125-bit RAM – gọi là bộ nhớ xác minh Bộ nhớ này nhận 125-bit chuỗi dữ liệu xác minh – Set Confirm String và 8-bit địa chỉ – Set Confirm ID tương ứng với chuỗi dữ liệu làm ngõ vào
Khi Set Confirm Enable tích cực mức 1, tại địa chỉ Set Confirm ID, bộ
nhớ thực hiện ghi 125-bit dữ liệu vào ô nhớ
Hình 21: Sơ đồ khối Mask engine
Hình 23: Cấu trúc bit của Set Confirm String
Hình 22: Sơ đồ khối chi tiết khối Confirm Engine
Trang 37Page : 25
¨ Tìm Kiếm: Khối IP nhận 13 Vector IDđã được đánh dấu (Masked Vector ID) – kết quả của khối Mask Engine – làm ngõ vào Bước đầu, sẽ thực hiện so sánh
từng từng cặp segment trong từng chuỗi Vector để tìm ra ID của từng Vector tương ứng
Sau đó mỗi ID sẽ được xử lý riêng biệc bởi 13 bộ nhớ xác minh đã được thiết lập dữ
liệu xác minh; Bộ nhớ này truy xuất chuỗi dữ liệu trong bộ nhớ dựa vào những đoạn ID tương ứng Tiếp theo thực hiện xác minh các đoạn ID Khi việc xác minh đã được hoàn
tất, bộ nhớ sẽ thực hiện việc gắn tín hiệu báo xác mình và thứ tự ưu tiên vào kết quả Cuối cùng IP trả về 13 đoạn 17-bit dữ liệu – gọi là Confirm Result tương ứng với mỗi Vector ID đã được đánh dấu
So Sánh:
+ Việc So sánh các ID trong 1 Mask Vector được thực hiện như sau:
Hình 24: Cấu trúc bit của Confirm Result
Hình 25: So sánh ID trong 1 Mask Vector
Trang 38
Hình 26: So sánh từng cặp segment trong segmetn vector
Trang 393.2.4.5 Mô tả tín hiệu vào ra
4 Masked Vector ID1 Vào 130 Vector ID đã được đánh dấu tương ứng với ID1
Vector ID đã được đánh dấu tương ứng với ID2 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID3 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID4 – kết quả
từ khối Mask Engine
8 Masked Vector ID5 Vào 130 Vector ID đã được đánh dấu tương ứng với ID5 – kết quả
từ khối Mask Engine
Trang 409 Masked Vector ID6 Vào 130
Vector ID đã được đánh dấu tương ứng với ID6 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID7 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID8 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID9 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID10 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID11 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID12 – kết quả
từ khối Mask Engine
Vector ID đã được đánh dấu tương ứng với ID13 – kết quả
từ khối Mask Engine
Chuỗi dữ liệu tương ứng với địa chỉ, bao gồm
¨ 8 bit dữ liệu ưu tiên ¨ 13 bit dữ liệu mặt nạ ¨ 104 bit dữ liệu khóa
- Tín hiệu được đưa vào khối Confirm Engine, báo hiệu sẵn sàng cài đặt dữ liệu trong RAM
- Tích cực mức 1