Thiết kế bộ đệm cho các thiết bị chuyển mạch Crossbar lớp 2 sử dụng kiểu bộ nhớ chia sẻ - Nguyễn Văn Thành

Tài liệu Thiết kế bộ đệm cho các thiết bị chuyển mạch Crossbar lớp 2 sử dụng kiểu bộ nhớ chia sẻ - Nguyễn Văn Thành: Công nghệ thông tin N. V. Thành, , H. Đ. Thắng, “Thiết kế bộ đệm cho các thiết bị kiểu bộ nhớ chia sẻ.” 182 THIẾT KẾ BỘ ĐỆM CHO CÁC THIẾT BỊ CHUYỂN MẠCH CROSSBAR LỚP 2 SỬ DỤNG KIỂU BỘ NHỚ CHIA SẺ Nguyễn Văn Thành, Nguyễn Thị Mỹ Linh, Trần Đức Huy, Thái Trung Kiên*, Hoàng Đình Thắng Tóm tắt: Bài báo giáo thiệu thuật toán mô tả thiết kế bộ nhớ chia sẻ trên nền tảng công nghệ FPGA cải tiến từ các công bố trước đây, đồng thời cũng đưa ra một số kết quả đánh giá sử dụng FPGA của Xilinx. Kết quả đánh giá cho thấy thuật toán cải tiến đáp ứng được trong ứng dụng thiết kế thiết bị chuyển mạnh lớp 2. Đây là kết quả ban đầu của dự án nghiên cứu “Nghiên cứu thiết kế, chế tạo thiết bị chuyển mạch (Switch) có tính năng an toàn, bảo mật thông tin trên nền tảng FPGA và mã nguồn mở”. Từ khóa: Share-memory; Switch; FPGA. 1. ĐẶT VẤN ĐỀ Mô hình chuyển mạch lớp 2 được sử dụng ngày nay dựa trên cấu trúc Crossbar, theo [1] cấu trúc thiết bị được mô tả như trên hình 1. 2 3 ...

pdf8 trang | Chia sẻ: quangot475 | Lượt xem: 536 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Thiết kế bộ đệm cho các thiết bị chuyển mạch Crossbar lớp 2 sử dụng kiểu bộ nhớ chia sẻ - Nguyễn Văn Thành, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Công nghệ thông tin N. V. Thành, , H. Đ. Thắng, “Thiết kế bộ đệm cho các thiết bị kiểu bộ nhớ chia sẻ.” 182 THIẾT KẾ BỘ ĐỆM CHO CÁC THIẾT BỊ CHUYỂN MẠCH CROSSBAR LỚP 2 SỬ DỤNG KIỂU BỘ NHỚ CHIA SẺ Nguyễn Văn Thành, Nguyễn Thị Mỹ Linh, Trần Đức Huy, Thái Trung Kiên*, Hoàng Đình Thắng Tóm tắt: Bài báo giáo thiệu thuật toán mô tả thiết kế bộ nhớ chia sẻ trên nền tảng công nghệ FPGA cải tiến từ các công bố trước đây, đồng thời cũng đưa ra một số kết quả đánh giá sử dụng FPGA của Xilinx. Kết quả đánh giá cho thấy thuật toán cải tiến đáp ứng được trong ứng dụng thiết kế thiết bị chuyển mạnh lớp 2. Đây là kết quả ban đầu của dự án nghiên cứu “Nghiên cứu thiết kế, chế tạo thiết bị chuyển mạch (Switch) có tính năng an toàn, bảo mật thông tin trên nền tảng FPGA và mã nguồn mở”. Từ khóa: Share-memory; Switch; FPGA. 1. ĐẶT VẤN ĐỀ Mô hình chuyển mạch lớp 2 được sử dụng ngày nay dựa trên cấu trúc Crossbar, theo [1] cấu trúc thiết bị được mô tả như trên hình 1. 2 3 4 5 1 1 2 3 4 5 Hình 1. Kiến trúc chuyển mạch lớp 2. Trong kiến trúc này bộ đệm cho các gói tin được tổ chức trên cả đầu vào, đầu ra và cho từng điểm giao (crossbar). Từ kiến trúc như vậy thiết bị chuyển mạch có một số kiểu bộ đệm như sau: - Kiến trúc bộ đệm đầu vào (kiểu 1). - Kiến trúc bộ đệm đầu ra (kiểu 2). - Kiến trúc bộ đệm kết hợp (kiểu 3). Theo [2] kiến trúc bộ đệm kiểu 1 có thông lượng hệ thống chỉ bằng 58,6% thông lượng có thể đạt được của hệ thống. Kiến trúc kiểu 2 sẽ dẫn đến dung lượng bộ đệm rất lớn và khó có thể tổ chức các thiết bị có thông thượng lớn do giới hạn Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 183 của các công nghệ bộ nhớ. Như vậy người ta sử dụng kiểu 3, và chia sẻ các bộ đệm cho tất cả các đầu vào và đầu ra. Theo [3], [4], [5] cấu trúc bộ nhớ chia sẻ cho các thiết bị chuyển mạch lớp 2 được đưa ra như hình 2. Trong hình 2, thiết bị bao gồm các phần như sau: - Bộ đệm dữ liệu đầu vào. - Bộ đệm dữ liệu đầu ra. - Bộ đệm dữ liệu chia sẻ. - Bộ thuật toán quản lý dữ liệu. 1 2 N 1 2 N 1 2 N Thuật toán quản lý bộ nhớ Bộ nhớ chia sẻ Bộ đệm đầu vào Bộ đệm đầu ra Gói đến Gói đi Hình 2. Kiến trúc chung bộ nhớ chia sẻ. Cấu trúc hình 2 hoạt động trên cơ sở một số giả thiết như sau: - Các gói tin được đưa đến và đi có tốc độ như nhau trên tất cả các cổng. - Các gói tin có kích thước không thay đổi. - Các gói tin được lưu trữ trên các ô nhớ bằng đúng kích thước của chúng. Các gói tin trong hệ thống mạng không có kích thước giống nhau, tốc độ của các gói tin đến từ các cổng cũng không giống nhau. Như vậy để có thể thực hiện các cấu trúc này cần phải được cải tiến. Trên thực tế hãng Cisco đã sử dụng cấu trúc này cho nhiều thiết bị [6], tuy nhiên các kết quả nghiên cứu và ứng dụng của họ đều không được công bố. Một trong các thiết kế cho các thiết bị chuyển mạch được tham khảo từ [7], kiến trúc này sử dụng cho các thiết bị chuyển mạch trong mạng ATM và có kích thước gói cố định 64 byte. 2. XÂY DỰNG MÔ HÌNH BỘ NHỚ CHIA SẺ Kiến trúc bộ nhớ chia sẻ cho các thiết bị chuyển mạch lớp 2 trong thiết kế của được đưa ra trên hình 3. Kiến trúc này thực hiện với thiết bị chuyển mạch lớp 2, với một số yêu cầu như sau: Công nghệ thông tin N. V. Thành, , H. Đ. Thắng, “Thiết kế bộ đệm cho các thiết bị kiểu bộ nhớ chia sẻ.” 184 - Bộ nhớ chia sẻ được phân thành các ô nhớ, mỗi ô nhớ có kích thước 64 byte. - Các gói tin được phân chia thành các đoạn, mỗi đoạn 64 byte. - Các gói tin có thể được ghi ở các ô nhớ không liên tiếp nhau. Như vậy, kiến trúc này khác với các kiến trúc đã được công bố ở các điểm sau: - Các gói tin có độ dài thay đổi. - Các gói tin bị phân mảnh thành các đoạn 64 byte. - Các gói tin có trọng số khác nhau để đảm bảo thực hiện QoS. Để giải quyết các vấn đề thực tế, ở đây đưa thêm các thành phần so với kiến trúc được nêu trong [7] bao gồm: - Tổ chức các danh sách liên kết để đánh dấu các gói tin khi chúng bị phân mảnh. - Bộ nhớ chia sẻ có con trỏ đọc và con trỏ ghi riêng. - Tổ chức việc đọc/ghi các gói tin theo danh sách liên kết để đảm bảo đọc chính xác vị trí các ô nhớ, khối liên kết đọc dữ liệu và khối liên kết ghi dữ liệu chứa địa chỉ ô nhớ tiếp theo cần đọc của mỗi gói tin trên bộ nhớ chia sẻ. - Hàng đợi chứa giá trị địa chỉ ô nhớ đầu tiên của danh sách liên kết đọc dữ liệu, và dự trữ để tính QoS cho việc ghi dữ liệu. 1 2 N Quản lý bộ các bộ nhớ Bộ nhớ chia sẻ Liên kết đọc dữ liệu Liên kết ghi dữ liệu Hàng đợi dữ liệu đầu ra Hình 3. Kiến trúc bộ nhớ chia sẻ cải tiến Như vậy, để thực hiện cấu trúc này ưu tiên lớn nhất phải xây dựng được liên kết đọc/ghi dữ liệu. Sơ đồ thuật toán thực hiện điều khiển các danh sách liên kết được đưa ra trên hình 4. Các bước ghi dữ liệu bao gồm: - Bước 1. Lựa chọn điểm đầu tiên để ghi dữ liệu theo vị trí con trỏ đánh dấu vị trí cuối cùng lần ghi trước. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 185 - Bước 2. Đọc giá trị dữ liệu từ các ô nhớ của liên kết ghi dữ liệu, nó là địa chỉ của bộ nhớ chia sẻ ghi dữ liệu. - Bước 3. Cập nhật giá trị vừa ghi sang liên kết đọc dữ liệu. Bắt đầu Write: - Start = 0. - Ô nhớ 0 ghi 1. - Ô nhớ 1 ghi 2 - Ô nhớ cuối = xff..ff Read: - Ghi xff..ff vào tất cả các ô. Write gói Write: - Start = Start + length Read: - Khởi tạo bản ghi mới. - Start = Write Start. - Ghi vào danh sách liên kết read (bộ nhớ read) tương ứng với danh sách liên kết write (địa chỉ và giá trị bộ nhớ tương ứng bộ nhớ write) - Tại điểm: Start + length = xff...ff. Read gói Read: - Nhận giá trị đầu start từ bản ghi. - Đọc giá trị tiếp theo từ danh sách liên kết read. - Việc đọc dừng lại khi ô nhớ = xff...ff Write: - Ghi vào điểm end giá trị start của bản ghi. - Các nút tiếp theo ghi theo giá trị đọc ra từ danh sách liên kết. - Giá trị cuối cùng của danh sách liên kết là ô nhớ tương ứng với giá trị dừng đọc của danh sách liên kết read. Kiểm tra cuối con trỏ đọc/ghi? Kết thúc Công nghệ thông tin N. V. Thành, , H. Đ. Thắng, “Thiết kế bộ đệm cho các thiết bị kiểu bộ nhớ chia sẻ.” 186 Hình 4. Thuật toán điều khiển danh sách liên kết. Các bước đọc dữ liệu: - Bước 1. Lấy vị trí đọc dữ liệu đầu tiên từ hàng đợi dữ liệu. - Bước 2. Đọc dữ liệu ở vị trí tiếp theo từ liên kết đọc dữ liệu. - Bước 3. Cập nhật các ô nhớ đã đọc cho danh sách liên kết ghi dữ liệu. 3. XÂY DỰNG BỘ NHỚ CHIA SẺ TRÊN CẤU TRÚC FPGA Các cấu trúc bộ nhớ chia sẻ thường sử dụng trên bộ nhớ DDR ngoài, việc thiết kế sử dụng trên DDR ngoài có một số nhược điểm như sau: - Việc ghi/đọc dữ liệu trền cùng bus nên khó khăn trong việc điều khiển. - Do giới hạn về công nghệ (tốc độ, số bus dữ liệu, khả năng hỗ trợ của FPGA) nên tốc độ đọc không cao. - Phức tạp trong thuật toán điều khiển đọc ghi. - Thời gian giữ chậm gói tin lớn. Ở đây, thiết kế và thực hiện bộ nhớ chia sẻ sử dụng các khối RAM nội của FPGA. Cụ thể trên chíp XC7K480T-2FFG1156C của hãng Xilinx, với những ưu điểm như sau: - Thời gian đọc ghi nhanh (1 chu kỳ clock). - Dễ dàng thực hiện đọc/ghi dữ liệu. Bảng 1. Kết thử nghiệm bằng Vivado 17.2 của Xilinx. Name BRAM_18K DSP48E FF LUT DSP - - - - Experssion - - 3564 2323 FIFO - - - - Instance 0 - 8586 4233 Memory 405 - 682 381 Multiplexer - - - 652 Register - - - - Total 405 - 12832 7589 Vailable 1910 1920 597200 597200 4. THỬ NGHIỆM BỘ NHỚ CHIA SẺ TRÊN FPGA CỦA XILINX Sơ đồ thử nghiệm như được miêu tả trên hình 5, bao gồm các khối: - Khối tạo giả gói tin Gigabit Ethernet theo chuẩn IEEE 802.3az: thực hiện chức năng tạo ra các gói tin ethernet chuẩn có địa chỉ MAC và kiểu đảm bảo một gói được đưa đến cổng Port In có thể đưa tới một trong các cổng Port Out theo địa chỉ MAC đích. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 187 - Khối tính toán số block còn trống trong bộ nhớ: dựa vào danh sách liên kết đọc dữ liệu và danh sách liên kết ghi dữ liệu để tính số block còn trống. - Khối so sánh các gói đầu ra và đầu vào: kiểm tra địa chỉ MAC đích của các gói giữa đầu ra và đầu vào để tính toán sai số có thể xảy ra đối với hệ thống hay không. Các điều kiện thử nghiệm: - Tốc độ các gói đầu vào ngẫu nhiên, cực đại 1Gbps. - Độ trễ để đầu ra nhận dữ liệu của các Port Out giữa các gói là một micro giây. - Thời gian lấy mẫu của hệ thống một giây. - Kích thước gói tin từ 64Byte – 1500 Byte. - Số ô nhớ 64Byte khoảng 100.000 nghìn ô nhớ. Bộ nhớ chia sẻ Bộ tạo giả gói tin Ethernet với các tham số ngẫu nhiên về độ dài và port vào, port ra Gigabit Ethernet Port IN 1 Gigabit Ethernet Port IN 2 Gigabit Ethernet Port IN 48 Gigabit Ethernet Port Out 1 Gigabit Ethernet Port Out 2 Gigabit Ethernet Port Out 48 Khối tính toán số block còn trống trong bộ nhớ Khối so sánh các gói đầu ra và đầu vào Hình 5. Sơ đồ thử nghiệm khối bộ nhớ chia sẻ. Ở đây tham số đáng quan tâm nhất của hệ thống bao gồm: - Số của gói tin đầu ra/tổng số gói tin đầu vào. - Đánh giá xem bộ nhớ có bị tràn bộ nhớ chia sẻ hay không. Công nghệ thông tin N. V. Thành, , H. Đ. Thắng, “Thiết kế bộ đệm cho các thiết bị kiểu bộ nhớ chia sẻ.” 188 Hình 6. Số ô nhớ còn trống khi thực hiện thử nghiệm. Sơ đồ hình 6 miêu tả kết quả tính toán số ô còn trống của hệ thống với thử nghiệm, như thể hiện số ô còn trống còn rất lớn trong điều kiện thử nghiệm (luôn lớn hơn 90000 ô trê tổng số 100000 nghìn ô nhớ), có nghĩa năng lực của hệ thống có thể đáp ứng ở điều kiện thử cao hơn. Trên hình 7, miêu tả tỷ số gói tin đúng (ở đầu ra)/tổng số gói tin đầu vào, có thể nhận thấy số gói tin bị discard do sai số rất thấp, và tỷ lên này luôn xấp xỉ bằng 1. Hình 7. Đồ thị tỉ lệ gói tin đúng/tổng số gói tin. Với kết quả thử nghiệm có một số nhận xét như sau: - Các tổ chức bộ nhớ theo phương pháp bộ nhớ chia sẻ có số ô trống lớn hơn 90% khi không có delay ở đầu ra. - Số gói tin bị hủy do việc đọc ghi từ bộ nhớ chia sẻ rất thấp (nhở hơn 0,1%). 5. KẾT LUẬN Bài báo mô tả một số kết quả nghiên cứu và thực hiện bộ nhớ chia sẻ sử dụng cho các thiết bị chuyển mạch, có một số nhận xét như sau: - Kế quả thực thực hiện bộ nhớ chia sẻ có thể ứng dụng trong thiết kế các chuyển mạch lớp 2 sử dụng FPGA không cần sử dụng các bộ nhớ ngoài; - Tốc độ truy cập và đáp ứng độ trễ thời gian của hệ thống rất thấp, thể hiện trên hình 6 do tỷ lệ số ô còn trống cao trong suốt quá trình thử nghiệm; Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 189 - Với cách sử dụng bộ nhớ chia sẻ có thể giải quyết được các nhược điểm do công nghệ bộ nhớ ngoài để thiết kế các thiết bị truyệ thông có tốc độ cao. Lời cảm ơn: Bài báo này là kết quả nghiên cứu của đề tài “Nghiên cứu thiết kế, chế tạo thiết bị chuyển mạch (Switch) có tính năng an toàn, bảo mật thông tin trên nền tảng FPGA và mã nguồn mở”, thuộc Chương trình khoa hoc và công nghệ trọng điểm cấp quốc gia giai đoan 2016-2020: "Nghiên cứu công nghệ và phát triển sản phẩm công nghệ thông tin phục vụ Chính phủ điện tử", mã số KC.01/16-20. TÀI LIỆU THAM KHẢO [1]. Kennedy Clark, Kevin Hamilton, Cisco LAN Switching, Cisco Press, 1999. [2]. Itamar Elhanany, Mounir Hamdi, High-perfomance Packet Switching Architectures, Springer 2010. [3]. Sundar Iyer, Ramana Rao Kompella, Nick McKeown, Analysis of a Memory Architecture for Fast Packet Buffers, Computer Systems Laboratory, Stanford University. [4]. George Kornaros, A Buffered CrossBar Switch Fabric Utilizing Shared Memory, Proceedings of the 9th EUROMICRO Conference on Digital System Design, 2009. [5]. Dwayne Burns , Ciaran Toall, Kieran McLaughlin, Sakir Sezer, Mike Hutton, Kevin Cackovic, An FPGA Based Memory Efficient Shared Buffer Implementation, 2007 IEEE. [6]. https://www.cisco.com. [7]. Mutlu Arpaci, John A.Copeland, Buffer Management for Shared-Memory ATM switches, IEEE Communications Surveys & Tutorials, 2003. ABTRACT DESIGN BUFFER DATA FOR LAYER 2 SWITCH DEVICE USING SHARE MEMORY This paper introduces an algorithm using share memory technique on FPGA, which is based on other papers. The proposed algorithm is estimated on Xilinx’s FPGA chip to show that it can be used for designing layer 2- switch device. This is fist result for project “Design layer 2 security switch device based on FPGA and open source”. Keywords: Share-memory; Switch; FPGA. Nhận bài ngày 04 tháng 07 năm 2018 Hoàn thiện ngày 09 tháng 10 năm 2018 Chấp nhận đăng ngày 05 tháng 11 năm 2018 Địa chỉ: Viện CNTT / Viện KH-CNQS. *Email: kienthaiturng@gmail.com.

Các file đính kèm theo tài liệu này:

  • pdf19_v_thanh_0281_2150560.pdf