Thiết kế và thực thi lõi ip phân luồng dữ liệu trên fpga

101 7 0
Thiết kế và thực thi lõi ip phân luồng dữ liệu trên fpga

Đ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

Phân luồng dữ liệu là một kỹ thuật được áp dụng để giải quyết nhiều bài toán đặc biệt là trong bài toán đảm bảo chất lượng dịch vụ QoS trong các thiết bị mạng hiện nay Trong đề tài này tác giả sẽ trình bày các khái niệm cùng các chức năng cơ bản liên quan đến phân luồng dữ liệu Bên cạnh đó còn đề cập đến các thuật toán lập lịch chỉ rõ ưu nhược điểm cùng cách thực hiện trên phần cứng các thuật toán từ đó đề xuất thiết kế và thực hiện chức năng phân luồng dữ liệu trên FPGA Kết quả tổng hợp của lõi IP được thực hiện trên board mạch Zynq ZC706 cho thấy lõi IP chỉ chiếm 1 số thanh ghi cùng 4 số bảng tìm kiếm LUT trong tổng số tài nguyên của board và tần số clock tối đa đạt được là 200MHz Cuối cùng tác giả đã tóm tắt các kết quả đạt được và đưa ra các hướng phát triển tiếp theo

ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA VÕ THÀNH VĂN THIẾT KẾ VÀ THỰC THI LÕI IP PHÂN LUỒNG DỮ LIỆU TRÊN FPGA LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ Đà Nẵng - Năm 2017 ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA VÕ THÀNH VĂN THIẾT KẾ VÀ THỰC THI LÕI IP PHÂN LUỒNG DỮ LIỆU TRÊN FPGA Chuyên ngành: Kỹ thuật điện tử Mã số: 60520203 LUẬN VĂN THẠC SĨ NGƢỜI HƢỚNG DẪN KHOA HỌC TS Phan Trần Đăng Khoa Đà Nẵng - Năm 2017 Lời cam đoan Tôi xin cam đoan cơng trình nghiên cứu riêng tơi, kết nghiên cứu đƣợc trình bày luận văn trung thực, khách quan chƣa để bảo vệ học vị Tôi xin cam đoan giúp đỡ cho việc thực luận văn đƣợc cám ơn, thơng tin trích dẫn luận văn đƣợc rõ nguồn gốc Đà Nẵng, ngày 25 tháng năm 2017 Lời cảm ơn Trƣớc trình bày nội dung chính, tơi xin bày tỏ lòng biết ơn sâu sắc tới TS Phan Trần Đăng Khoa tận tình hƣớng dẫn để tơi hồn thành luận văn Tơi xin bày tỏ lịng biết ơn chân thành tới tồn thể thầy cô giáo Khoa Điện tử Viễn thông, Trƣờng Đại học Bách khoa, Đại học Đà Nẵng cung cấp kiến thức điều kiện suốt trình học tập Khoa Nhân dịp xin đƣợc gửi lời cảm ơn chân thành tới lãnh đạo, đồng nghiệp Trung tâm Vi mạch Đà Nẵng gia đình, bạn bè ln bên tơi, tạo điều kiện, giúp đỡ tơi hồn thành luận văn Đà Nẵng, ngày 25 tháng năm 2017 i Mục lục Mục lục i Danh mục hình vẽ ii Danh mục bảng biểu iii MỞ ĐẦU TỔNG QUAN VỀ PHÂN LUỒNG DỮ LIỆU 3 1.1 Giới thiệu chƣơng 1.2 Khái niệm phân luồng liệu 1.3 Vai trò phân luồng liệu … 1.4 Các chức phân luồng liệu 1.5 1.4.1 Phân loại luồng liệu 1.4.2 Chính sách lƣu lƣợng 1.4.3 Định hình luồng lƣu lƣợng … 1.4.4 Lập lịch gói tin 1.4.5 Quản lý đệm 10 Kết luận chƣơng 11 CƠ SỞ LÝ THUYẾT CÁC THUẬT TOÁN LẬP LỊCH 12 2.1 Giới thiệu chƣơng …12 2.2 Thuật toán First Come First Serve … 12 2.3 Thuật toán lập lịch Max-Min …12 2.4 Thuật toán Round-Robin …14 2.5 Thuật toán Weighted Round-Robin 15 2.6 Thuật toán Deficit Round-Robin 16 2.7 Kết luận chƣơng 18 THIẾT KẾ LÕI IP PHÂN LUỒNG DỮ LIỆU 19 3.1 Tổng quan trình thiết kế …19 3.2 Thiết kế kiến trúc lõi IP … 19 3.3 Thiết kế khối quản lý đệm (Buffer Management) 22 ii 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.3.1 Chức … 22 3.3.2 Sơ đồ kết nối ….23 3.3.3 Mơ tả tín hiệu 23 Thiết kế khối xử lý ghi gói tin vào hàng đợi (Enqueue) 24 3.4.1 Chức … 24 3.4.2 Mô tả tín hiệu 25 3.4.3 Máy trạng thái 27 Thiết kế khối xử lý đọc gói tin từ hàng đợi (Dequeue) 28 3.5.1 Chức 28 3.5.2 Mơ tả tín hiệu 28 3.5.3 Máy trạng thái 31 Thiết kế khối hỗ trợ giao tiếp nhớ (Memory Accessor) 32 3.6.1 Chức 32 3.6.2 Mơ tả tín hiệu 32 3.6.3 Máy trạng thái 34 Thiết kế khối quản lý hàng đợi (Queue Management) 36 3.7.1 Chức 36 3.7.2 Cấu Trúc 38 3.7.3 Mơ tả tín hiệu 38 3.7.4 Máy Trạng Thái 41 Thiết kế khối cấp phát nhớ động(Dynamic Allocator) 44 3.8.1 Chức 44 3.8.2 Mơ tả tín hiệu 45 3.8.3 Máy trạng thái 46 Thiết kế khối lập lịch(Scheduler) 48 3.9.1 Chức 48 3.9.2 Mô tả tín hiệu 49 3.9.3 Máy trạng thái khối Scheduler 50 Thiết kế khối chống tắc nghẽn(Congestion) 54 3.10.1 Chức 54 3.10.2 Mơ tả tín hiệu 54 Kết luận chƣơng 59 iii MÔ PHỎNG VÀ THỰC HIỆN LÕI IP PHÂN LUỒNG DỮ LIỆU TRÊN NỀN FPGA 60 4.1 Giới thiệu 60 4.2 Yêu cầu phần mềm 60 4.3 Kết tổng hợp .61 4.4 Kết mô 62 4.5 Năng lực xử lý lõi IP 65 4.6 Thực FPGA 65 4.7 4.6.1 Công nghệ FPGA 65 4.6.2 Phần cứng sử dụng 67 4.6.3 Quá trình thực 68 4.6.4 Kiểm tra thực tế 70 Kết luận chƣơng 71 Kết luận hƣớng phát triển Tài liệu tham khảo 72 iv THIẾT KẾ VÀ THỰC THI LÕI IP PHÂN LUỒNG DỮ LIỆU TRÊN FPGA Học viên: Võ Thành Văn Chuyên ngành: Kỹ thuật Điện tử Mã số: Khóa: K31 Trƣờng Đại học Bách khoa - ĐHĐN Tóm tắt – Phân luồng liệu kỹ thuật đƣợc áp dụng để giải nhiều toán, đặc biệt toán đảm bảo chất lƣợng dịch vụ QoS thiết bị mạng Trong đề tài này, tác giả trình bày khái niệm chức liên quan đến phân luồng liệu Bên cạnh đó, cịn đề cập đến thuật toán lập lịch, rõ ƣu nhƣợc điểm cách thực phần cứng thuật tốn, từ đề xuất thiết kế thực chức phân luồng liệu FPGA Kết tổng hợp lõi IP đƣợc thực board mạch Zynq ZC706 cho thấy lõi IP chiếm 1% số ghi 4% số bảng tìm kiếm LUT tổng số tài nguyên board, tần số clock tối đa đạt đƣợc 200MHz Cuối cùng, tác giả tóm tắt kết đạt đƣợc đƣa hƣớng phát triển Từ khóa - Phân luồng liệu; Lập lịch; QoS; FPGA; Thiết bị mạng DESIGN AND IMPLEMENT TRAFFIC MANAGEMENT IP CORE ON FPGA Abstract – Traffic management is a technique used to solve many problems, especially in quality of service (QoS) for today‟s networking devices In this thesis, we present fundamental definetions and functions related to traffic management In addition, several scheduling algorithms are considered in order to compare their advantages and disadvantages and the ability to implement into hardware Based on these principles, we describe the design and implementation of the Traffic Management IP Core on FPGA The synthesis results using Zynq ZC706 board showed that it consumes 1% of slice registers and 4% of slice LUTs in hardware resource, and the maximum frequency is up to 200MHz At the end of the thesis, we summarize the key results achieved and provide perspectives of the work Key words - Traffic management; Scheduling; QoS; FPGA; Networking devic v Danh mục hình vẽ 1.1 Sơ đồ khối phân luồng liệu router/switch 1.2 Trƣờng CoS 802.1Q header 1.3 IP Precedence DSCP header gói tin IPv4 1.4 Bộ sách lƣu lƣợng 1.5 Cách hoạt động định hình lƣu lƣợng 1.6 Cơ chế hoạt động mơ hình thùng thẻ - Token Bucket 2.1 Ví dụ thuật tốn cơng Max-Min 13 2.2 Thực thi thuật toán Round-robin 14 2.3 Cách thức quản lý FQ 15 2.4 Thực thuật toán WRR phần cứng 16 2.5 Lƣợt rà soát Round robin thứ 17 2.6 Lƣợt rà soát Round robin thứ hai 18 3.1 Sơ đồ kết nối lõi IP phân luồng liệu 19 3.2 Sơ đồ kết nối khối Quản lý Bộ đệm 22 3.3 Máy trạng thái Khối Enqueue 27 3.4 FSM khối Dequeue 31 3.5 Máy trạng thái wr_state 35 3.6 Máy trạng thái rd_state 36 3.7 Cấu trúc liệu quản lý hàng đợi 37 3.8 Sơ đồ cấu trúc module QueueManagement 38 3.9 Máy trạng thái module QueueManagement 41 3.10 Máy trạng thái DEACTIVE 42 3.11 Máy trạng thái tƣơng ứng lệnh ACTIVE 43 3.12 Tổ chức liệu ô nhớ khối DynamicAllocator 44 3.13 Máy trạng thái khối DynamicAllocator 47 3.14 Máy trạng thái trạng thái ACTIVE 47 3.15 Sơ đồ tín hiệu khối Scheduler 49 3.16 Máy trạng thái wr_dq_state 51 3.17 Máy trạng thái dq_empty_state 52 vi 3.18 Máy trạng thái schedule_state 53 3.19 Sơ đồ tín hiệu khối Congestion 55 3.20 Sơ đồ tín hiệu khối WRED 56 3.21 Máy trạng thái trƣờng hợp xử lý gói tin đến 58 3.22 Máy trạng thái trƣờng hợp xử lý gói tin 59 4.1 Kết tổng hợp phần cứng 62 4.2 Mơ hình kiểm tra mô 63 4.3 Kết mô ngõ 64 4.4 Kết mô Modelsim 64 4.5 Cấu trúc tổng thể FPGA 66 4.6 Kit phát triển Zynq ZC706 67 4.7 Kết nối lõi IP thành phần vào hệ thống 69 4.8 Kết trình tạo file bitstream 69 4.9 Mơ hình kết nối 70 Hình 12: Sơ đồ tín hiệu Khối AXIAccessor Bảng 11 mơ tả tín hiệu Khối AXIAccessor Trong bảng có sử dụng thơng số parameter đƣợc định nghĩa nhƣ sau: AXI_ADDR_WIDTH Độ rộng địa bus AXI AXI_DATA_WIDTH Độ rộng liệu bus AXI AXI_ID_WIDTH Độ rộng bit trƣờng số bus AXI BURST_MODE Chọn kiểu truyền theo burst hay không BURST_LEN Chiều dài burst truyền NUM_PORTS Số cổng kết nối tới khối AXIAccessor Bảng 11: Bảng mô tả tín hiệu Khối AXIAccessor Tín hiệu Nguồn Mơ tả Clk Clock Tín hiệu Clock Reset Tín hiệu Reset Rstn WrAXI M Kênh địa ghi.2 RdAXI M Kênh địa đọc.3 WrData S Kênh liệu ghi theo bus AXIS Stream4 RdData M Kênh liệu đọc theo bus AXIS Stream Nhóm tín hiệu WrCmd, RdCmd5 Nhóm tín hiệu WrSts, RdSts6 Hình 13: Sơ đồ kết nối khối AxiAccessor Hình 13: mô tả kết nối khối khối AxiAccessor Trong đó:  Khối WrCmdAgency, RdCmdAgency : sử dụng khối CmdAgency để chia sẻ truy xuất cho việc đọc ghi  Khối Datamover: IP core Xilinx, có chức truyền liệu tốc độ cao ánh xạ địa vùng nhớ miền AXI4-Stream, sử dụng kênh MM2S S2MM hoạt động độc lập đồng thời CmdAgency Khối CmdAgency thực chức chia sẻ truy xuất lên bus AXI theo phƣơng pháp round robin Hình 14: Sơ đồ tín hiệu Khối CmdAgency Bảng 12 mơ tả tín hiệu Khối CmdAgency Trong bảng có sử dụng thông số parameter đƣợc định nghĩa nhƣ sau: DATA_WIDTH Độ rộng liệu bus AXI BURST_LEN Chiều dài burst truyền NUM_PORTS Số ngõ vào kết nối tới khối AXIAccessor BURST_MODE Chọn kiểu truyền theo burst hay không Bảng 12: Bảng mơ tả tín hiệu Khối CmdAgency Tín hiệu Nguồn Mơ tả Clk Clock Tín hiệu Clock Rstn Reset Tín hiệu Reset Cmd S Nhóm lệnh truy xuất Sts M Nhóm trạng thái truy xuất DatamoverCmd M Nhóm lệnh truy xuất đƣợc gửi tới khối Datamover DatamoverSts S Nhóm trạng thái q trình truy xuất nhận từ khối Datamover DataTkeep S [DATA_WIDTH/8-1:0] Tín hiệu vị trí byte mà liệu hợp lệ, đƣợc gửi riêng để tính số beat truyền (beatSize) DataIn S Nhóm tín hiệu bắt tay liệu vào theo bus AXIS Handshake DataOut M Nhóm tín hiệu bắt tay liệu BuffReady [NUM_PORTS-1:0] S Tín hiệu cho biết liệu sẵn sàng cho việc ghi/đọc SelPort M [„CLOG2(NUM_PORTS):0] Tín hiệu ngõ vào đƣợc xét Nhóm tín hiệu DatamoverCmd tdata [71:0] M Tổ hợp lệnh thông số đầu vào đƣợc đƣa đến khối Datamover handshake signal S Nhóm tín hiệu bắt tay Nhóm tín hiệu DatamoverSts status[7:0] S Trạng thái q trình đọc/ghi nhớ nhận từ khối Datamover Với giá trị 0x80: ghi/đọc thành cơng handshake signal S Nhóm tín hiệu bắt tay Hình 15: Máy trạng thái Khối CmdAgency Mô tả trạng thái CmdAgency FSM: RESET Trạng thái khởi tạo ban đầu WAIT_CMD Trạng thái đợi lệnh truy xuất hợp lệ SEND_MOVER_CMD Trạng thái gửi truy xuất tới khối DataMover TRANSFER_DATA_N_WAIT_STATUS Trạng thái truyền liệu chờ kết thúc trình truyền liệu WAIT_MOVER_STATUS Trạng thái chờ kết trả trình đọc/ghi từ khối DataMover SEND_STATUS Trạng thái trả trạng thái trình đọc/ghi tới ngõ vào gửi lệnh truy xuất liệu tƣơng ứng ... VỀ PHÂN LUỒNG DỮ LIỆU Chƣơng 2: CƠ SỞ LÝ THUYẾT CÁC THUẬT TOÁN LẬP LỊCH Chƣơng 3: THI? ??T KẾ LÕI IP PHÂN LUỒNG DỮ LIỆU Chƣơng 4: MÔ PHỎNG VÀ THỰC HIỆN LÕI IP PHÂN LUỒNG DỮ LIỆU TRÊN NỀN FPGA  KẾT... cần thi? ??t Xuất phát từ yêu cầu trên, luận văn em nghiên cứu đề tài: ? ?Thi? ??t kế thực thi lõi IP phân luồng liệu FPGA? ?? Mục tiêu nghiên cứu Nghiên cứu thi? ??t kế kiến trúc lõi IP phân luồng liệu FPGA, ... trình thi? ??t kế Trong chƣơng trình bày chi tiết kỹ thuật thi? ??t kế lõi IP Phân luồng liệu Việc phân tích thi? ??t kế lõi IP theo trình tự từ xuống dƣới theo quy trình Top – Down Quá trình thi? ??t kế đƣợc

Ngày đăng: 25/04/2021, 15:52

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan