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

Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế bộ nhớ địa chỉ nội dung (TCAM) thực hiện trên FPGA

86 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

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 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 4

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

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 6

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

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

Trang 8

CHƯƠ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 9

Page : 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 10

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

Trang 11

Page : 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 12

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

Trang 13

Page : 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 14

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

Trang 15

Page : 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 16

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

Trang 17

Page : 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 19

Page : 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 20

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

Trang 21

Page : 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 22

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)

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 24

3.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 25

Page : 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 27

bá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 28

6 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 29

Page : 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 30

3 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 31

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 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 32

3.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 33

Page : 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 34

sà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 35

Page : 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 36

3.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 37

Page : 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 39

3.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 40

9 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

Ngày đăng: 03/08/2024, 12:56