Bài viết 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.
Công nghệ thông tin THIẾT KẾ BỘ ĐỆM CHO CÁC THIẾT BỊ CHUYỂN MẠCH CROSSBAR LỚP 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*, Hồng Đình Thắng Tóm tắt: Bài báo giáo thiệu thuật tốn mơ tả thiết kế nhớ chia sẻ tảng công nghệ FPGA cải tiến từ công bố trước đây, đồng thời đưa số kết đánh giá sử dụng FPGA Xilinx Kết đánh giá cho thấy thuật toán cải tiến đáp ứng ứng dụng thiết kế thiết bị chuyển mạnh lớp Đây kết ban đầu 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 an tồn, bảo mật thơng tin tảng FPGA mã nguồn mở” Từ khóa: Share-memory; Switch; FPGA ĐẶT VẤN ĐỀ Mơ hình chuyển mạch lớp sử dụng ngày dựa cấu trúc Crossbar, theo [1] cấu trúc thiết bị mơ tả hình 1 5 Hình Kiến trúc chuyển mạch lớp Trong kiến trúc đệm cho gói tin tổ chức đầu vào, đầu cho điểm giao (crossbar) Từ kiến trúc thiết bị chuyển mạch có số kiểu đệm sau: - Kiến trúc đệm đầu vào (kiểu 1) - Kiến trúc đệm đầu (kiểu 2) - Kiến trúc đệm kết hợp (kiểu 3) Theo [2] kiến trúc đệm kiểu có thơng lượng hệ thống 58,6% thơng lượng đạt hệ thống Kiến trúc kiểu dẫn đến dung lượng đệm lớn khó tổ chức thiết bị có thơng thượng lớn giới hạn 182 N V Thành, …, H Đ Thắng, “Thiết kế đệm cho thiết bị … kiểu nhớ chia sẻ.” Nghiên cứu khoa học công nghệ công nghệ nhớ Như người ta sử dụng kiểu 3, chia sẻ đệm cho tất đầu vào đầu Theo [3], [4], [5] cấu trúc nhớ chia sẻ cho thiết bị chuyển mạch lớp đưa hình Trong hình 2, thiết bị bao gồm phần sau: - Bộ đệm liệu đầu vào - Bộ đệm liệu đầu - Bộ đệm liệu chia sẻ - Bộ thuật toán quản lý liệu Bộ nhớ chia sẻ N Thuật toán quản lý nhớ Bộ đệm đầu Bộ đệm đầu vào Gói đến 1 2 N N Gói Hình Kiến trúc chung nhớ chia sẻ Cấu trúc hình hoạt động sở số giả thiết sau: - Các gói tin đưa đến có tốc độ tất cổng - Các gói tin có kích thước khơng thay đổi - Các gói tin lưu trữ nhớ kích thước chúng Các gói tin hệ thống mạng khơng có kích thước giống nhau, tốc độ gói tin đến từ cổng không giống Như để thực cấu trúc cần phải cải tiến Trên thực tế hãng Cisco sử dụng cấu trúc cho nhiều thiết bị [6], nhiên kết nghiên cứu ứng dụng họ không công bố Một thiết kế cho thiết bị chuyển mạch tham khảo từ [7], kiến trúc sử dụng cho thiết bị chuyển mạch mạng ATM có kích thước gói cố định 64 byte XÂY DỰNG MƠ HÌNH BỘ NHỚ CHIA SẺ Kiến trúc nhớ chia sẻ cho thiết bị chuyển mạch lớp thiết kế đưa hình Kiến trúc thực với thiết bị chuyển mạch lớp 2, với số yêu cầu sau: Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 183 Công nghệ thông tin - Bộ nhớ chia sẻ phân thành ô nhớ, ô nhớ có kích thước 64 byte - Các gói tin phân chia thành đoạn, đoạn 64 byte - Các gói tin ghi nhớ không liên tiếp Như vậy, kiến trúc khác với kiến trúc công bố đ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 đoạn 64 byte - Các gói tin có trọng số khác để đảm bảo thực QoS Để giải vấn đề thực tế, đưa thêm thành phần so với kiến trúc nêu [7] bao gồm: - Tổ chức danh sách liên kết để đánh dấu gói tin chúng bị phân mảnh - Bộ nhớ chia sẻ có trỏ đọc trỏ ghi riêng - Tổ chức việc đọc/ghi gói tin theo danh sách liên kết để đảm bảo đọc xác vị trí nhớ, khối liên kết đọc liệu khối liên kết ghi liệu chứa địa ô nhớ cần đọc gói tin nhớ chia sẻ - Hàng đợi chứa giá trị địa ô nhớ danh sách liên kết đọc liệu, dự trữ để tính QoS cho việc ghi liệu Bộ nhớ chia sẻ Hàng đợi liệu đầu N Quản lý nhớ Liên kết đọc liệu Liên kết ghi liệu Hình Kiến trúc nhớ chia sẻ cải tiến Như vậy, để thực cấu trúc ưu tiên lớn phải xây dựng liên kết đọc/ghi liệu Sơ đồ thuật toán thực điều khiển danh sách liên kết đưa hình Các bước ghi liệu bao gồm: - Bước Lựa chọn điểm để ghi liệu theo vị trí trỏ đánh dấu vị trí cuối lần ghi trước 184 N V Thành, …, H Đ Thắng, “Thiết kế đệm cho thiết bị … kiểu nhớ chia sẻ.” Nghiên cứu khoa học công nghệ - Bước Đọc giá trị liệu từ ô nhớ liên kết ghi liệu, địa nhớ chia sẻ ghi liệu - Bước Cập nhật giá trị vừa ghi sang liên kết đọc liệu Bắt đầu Write: - Start = - Ô nhớ ghi - Ô nhớ ghi 2… - Ô nhớ cuối = xff ff Read: - Ghi xff ff vào tất Write gói Read gói Write: - Start = Start + length Read: - Khởi tạo ghi - 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 giá trị nhớ tương ứng nhớ write) - Tại điểm: Start + length = xff ff Read: - Nhận giá trị đầu start từ ghi - Đọc giá trị từ danh sách liên kết read - Việc đọc dừng lại ô nhớ = xff ff Write: - Ghi vào điểm end giá trị start ghi - Các nút ghi theo giá trị đọc từ danh sách liên kết - Giá trị cuối danh sách liên kết ô nhớ tương ứng với giá trị dừng đọc danh sách liên kết read Kiểm tra cuối trỏ đọc/ghi? Kết thúc Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 185 Công nghệ thông tin Hình Thuật tốn điều khiển danh sách liên kết Các bước đọc liệu: - Bước Lấy vị trí đọc liệu từ hàng đợi liệu - Bước Đọc liệu vị trí từ liên kết đọc liệu - Bước Cập nhật ô nhớ đọc cho danh sách liên kết ghi liệu XÂY DỰNG BỘ NHỚ CHIA SẺ TRÊN CẤU TRÚC FPGA Các cấu trúc nhớ chia sẻ thường sử dụng nhớ DDR ngoài, việc thiết kế sử dụng DDR ngồi có số nhược điểm sau: - Việc ghi/đọc liệu trền bus nên khó khăn việc điều khiển - Do giới hạn công nghệ (tốc độ, số bus liệu, khả hỗ trợ FPGA) nên tốc độ đọc không cao - Phức tạp 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ế thực nhớ chia sẻ sử dụng khối RAM nội FPGA Cụ thể chíp XC7K480T-2FFG1156C hãng Xilinx, với ưu điểm sau: - Thời gian đọc ghi nhanh (1 chu kỳ clock) - Dễ dàng thực đọc/ghi liệu Bảng Kết thử nghiệm Vivado 17.2 Xilinx Name DSP Experssion FIFO Instance Memory Multiplexer Register Total Vailable BRAM_18K 405 405 1910 DSP48E 1920 FF 3564 8586 682 12832 597200 LUT 2323 4233 381 652 7589 597200 THỬ NGHIỆM BỘ NHỚ CHIA SẺ TRÊN FPGA CỦA XILINX Sơ đồ thử nghiệm miêu tả hình 5, bao gồm khối: - Khối tạo giả gói tin Gigabit Ethernet theo chuẩn IEEE 802.3az: thực chức tạo gói tin ethernet chuẩn có địa MAC kiểu đảm bảo gói đưa đến cổng Port In đưa tới cổng Port Out theo địa MAC đích 186 N V Thành, …, H Đ Thắng, “Thiết kế đệm cho thiết bị … kiểu nhớ chia sẻ.” Nghiên cứu khoa học cơng nghệ - Khối tính tốn số block trống nhớ: dựa vào danh sách liên kết đọc liệu danh sách liên kết ghi liệu để tính số block cịn trống - Khối so sánh gói đầu đầu vào: kiểm tra địa MAC đích gói đầu đầu vào để tính tốn sai số xảy hệ thống hay khơng Các điều kiện thử nghiệm: - Tốc độ gói đầu vào ngẫu nhiên, cực đại 1Gbps - Độ trễ để đầu nhận liệu Port Out gói micro giây - Thời gian lấy mẫu hệ thống giây - Kích thước gói tin từ 64Byte – 1500 Byte - Số nhớ 64Byte khoảng 100.000 nghìn nhớ Khối tính tốn số block trống nhớ Gigabit Ethernet Port IN Gigabit Ethernet Port Out Gigabit Ethernet Port IN Gigabit Ethernet Port Out Bộ tạo giả gói tin Ethernet với tham số ngẫu nhiên độ dài port vào, port Khối so sánh gói đầu đầu vào Bộ nhớ chia sẻ Gigabit Ethernet Port IN 48 Gigabit Ethernet Port Out 48 Hình Sơ đồ thử nghiệm khối nhớ chia sẻ Ở tham số đáng quan tâm hệ thống bao gồm: - Số gói tin đầu ra/tổng số gói tin đầu vào - Đánh giá xem nhớ có bị tràn nhớ chia sẻ hay khơng Tạp chí Nghiên cứu KH&CN qn sự, Số Đặc san CNTT, 11 - 2018 187 Công nghệ thông tin Hình Số nhớ cịn trống thực thử nghiệm Sơ đồ hình miêu tả kết tính tốn số cịn trống hệ thống với thử nghiệm, thể số cịn trống cịn lớn điều kiện thử nghiệm (ln lớn 90000 trê tổng số 100000 nghìn nhớ), có nghĩa lực hệ thống đáp ứng điều kiện thử cao Trên hình 7, miêu tả tỷ số gói tin (ở đầu ra)/tổng số gói tin đầu vào, nhận thấy số gói tin bị discard sai số thấp, tỷ lên ln xấp xỉ Hình Đồ thị tỉ lệ gói tin đúng/tổng số gói tin Với kết thử nghiệm có số nhận xét sau: - Các tổ chức nhớ theo phương pháp nhớ chia sẻ có số trống lớn 90% khơng có delay đầu - Số gói tin bị hủy việc đọc ghi từ nhớ chia sẻ thấp (nhở 0,1%) KẾT LUẬN Bài báo mô tả số kết nghiên cứu thực nhớ chia sẻ sử dụng cho thiết bị chuyển mạch, có số nhận xét sau: - Kế thực thực nhớ chia sẻ ứng dụng thiết kế chuyển mạch lớp sử dụng FPGA không cần sử dụng nhớ ngoài; - Tốc độ truy cập đáp ứng độ trễ thời gian hệ thống thấp, thể hình tỷ lệ số cịn trống cao suốt q trình thử nghiệm; 188 N V Thành, …, H Đ Thắng, “Thiết kế đệm cho thiết bị … kiểu nhớ chia sẻ.” Nghiên cứu khoa học công nghệ - Với cách sử dụng nhớ chia sẻ giải nhược điểm cơng nghệ nhớ để thiết kế thiết bị truyệ thơng có tốc độ cao Lời cảm ơn: Bài báo kết nghiên cứu đề tài “Nghiên cứu thiết kế, chế tạo thiết bị chuyển mạch (Switch) có tính an tồn, bảo mật thơng tin tảng FPGA mã nguồn mở”, thuộc Chương trình khoa hoc cơng nghệ trọng điểm cấp quốc gia giai đoan 2016-2020: "Nghiên cứu công nghệ 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 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 2switch device This is fist result for project “Design layer security switch device based on FPGA and open source” Keywords: Share-memory; Switch; FPGA Nhận 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 Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018 189 ... tả số kết nghiên cứu thực nhớ chia sẻ sử dụng cho thiết bị chuyển mạch, có số nhận xét sau: - Kế thực thực nhớ chia sẻ ứng dụng thiết kế chuyển mạch lớp sử dụng FPGA không cần sử dụng nhớ ngoài;... nghệ nhớ Như người ta sử dụng kiểu 3, chia sẻ đệm cho tất đầu vào đầu Theo [3], [4], [5] cấu trúc nhớ chia sẻ cho thiết bị chuyển mạch lớp đưa hình Trong hình 2, thiết bị bao gồm phần sau: - Bộ đệm. .. cố định 64 byte XÂY DỰNG MƠ HÌNH BỘ NHỚ CHIA SẺ Kiến trúc nhớ chia sẻ cho thiết bị chuyển mạch lớp thiết kế đưa hình Kiến trúc thực với thiết bị chuyển mạch lớp 2, với số yêu cầu sau: Tạp chí Nghiên