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
...
8 trang |
Chia sẻ: quangot475 | Lượt xem: 606 | Lượt tải: 0
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:
- 19_v_thanh_0281_2150560.pdf