Thiết Kế Và Thực Thi Lõi Ip Phân Luồng Dữ Liệu Trên Fpga.pdf

57 4 0
Thiết Kế Và Thực Thi Lõi Ip Phân Luồng Dữ Liệu Trên Fpga.pdf

Đ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

Chương 1 ĐẠ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Ọ[.]

ĐẠ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 31 3.5.3 Máy trạng thái Hình 3.4: FSM khối Dequeue Máy trạng thái(FSM) khối Dequeue biểu diễn hình 3.4, trạng thái Dequeue FSM đƣợc mô tả nhƣ sau: RESET Trạng thái khởi tạo ban đầu WAIT_CMD Trạng thái chờ tín hiệu yêu cầu tháo liệu từ khối lập lịch (Scheduler) QID_READ_PROCESSING* Trạng thái thực trình đọc liệu từ nhớ dựa vào QID (trƣờng hợp 𝑐𝑚𝑑 = 𝑐𝑚𝑑 = 1) CELLID_READ_PROCESSING* Trạng thái thực trình đọc liệu từ nhớ dựa vào CELLID (trƣờng hợp 𝑐𝑚𝑑 = 𝑐𝑚𝑑 = 3) DROP_BY_QID* Trạng thái thực trình loại bỏ liệu nhớ dựa vào QID (trƣờng hợp 𝑐𝑚𝑑 = 4) DROP_BY_CELLID* 32 Trạng thái thực trình loại bỏ liệu nhớ dựa vào CELLID (trƣờng hợp 𝑐𝑚𝑑 = 5) Tƣơng tự nhƣ khối Enqueue, khối Dequeue sử dụng kiến trúc pipeline công việc yêu cầu địa cell tới khối QueueMan, gửi địa cell cần tháo tới khối truy xuất nhớ QueueMan gửi yêu cầu xóa địa cell khỏi danh sách mà QueueMan quản lý giúp làm tăng tốc độ xử lý cho lõi IP 3.6 Thiết kế khối hỗ trợ giao tiếp nhớ (Memory Accessor) 3.6.1 Chức Khối Memory Accessor thực chức hỗ trợ việc ghi đọc vào ô nhớ, truy xuất nhớ tốc độ cao nhớ tốc độ thấp 3.6.2 Mơ tả tín hiệu Bảng 3.5 mơ tả tín hiệu Khối Memory Accessor Trong bảng có sử dụng thông số parameter đƣợc định nghĩa nhƣ sau: CID _WIDTH Độ rộng số cell CELL_SIZE_WIDTH Độ rộng cell (2𝐶𝐸𝐿𝐿_𝑆𝐼𝑍𝐸 _𝑊𝐼𝐷𝑇𝐻 (𝑏𝑦𝑡𝑒𝑠)) CACHED_SIZE_WIDTH Số lƣợng ô nhớ lƣu liệu quản lý nhớ tốc độ cao (= 2𝐶𝐴𝐶𝐻𝐸𝐷 _𝑆𝐼𝑍𝐸 _𝑊𝐼𝐷𝑇𝐻 ) AXI_DATA_WIDTH Độ rộng liệu bus AXI AXI_ADDR_WIDTH Độ rộng địa bus AXI Bảng 3.4: Bảng mơ tả tín hiệu module Dequeue Tín hiệu Nguồn Mơ tả Clk Clock Tín hiệu Clock Rstn Reset Tín hiệu Reset RdCmd S Nhóm lệnh đọc WrCmd S Nhóm lệnh ghi RdSts M Nhóm trạng thái đọc WrSts M Nhóm trạng thái ghi lƣu liệu 33 RdData M Nhóm liệu đọc theo chuẩn bus AXIS Stream23 WrData S Nhóm liệu ghi BaseAddr S Địa sở vùng nhớ RdAxiAccCmd M Nhóm lệnh đọc giao tiếp với khối AXI Accessor WrAxiAccCmd M Nhóm lệnh ghi giao tiếp với khối AXI Accessor RdAxiAccSts M Nhóm trạng thái đọc nhận từ khối AXI Accessor WrAxiAccSts M Nhóm trạng thái ghi nhận từ khối AXI Accessor RdAxiAccData M Nhóm liệu đọc theo chuẩn bus AXI Stream WrAxiAccData S Nhóm liệu ghi theo chuẩn bus AXI Stream Nhóm tín hiệu RdCmd,WrCmd handshake signal S Nhóm tín hiệu bắt tay theo bus AXISHandshake.24 cellid [CID_WIDTH-1:0] S Chỉ số cell để yêu cầu đọc/ghi len[CELL_SIZE_WIDTH:0] S Độ dài liệu đƣợc đọc/ghi nhớ Nhóm tín hiệu RdSts,WrSts handshake signal S Nhóm tín hiệu bắt tay theo bus AXISHandshake status[7:0] M Trạng thái trình đọc/ghi nhớ  0x80: Q trình ghi/đọc thành cơng 23 Bus AXI Stream đƣợc mô tả phụ lục 24 Bus AXIS Handshake đƣợc mô tả phụ lục 34  Các trƣờng hợp cịn lại: Q trìnhghi/đọc bị lỗi Nhóm tín hiệu RdAxiAccCmd,WrAxiAccCmd handshake signal S tdata M/S Nhóm tín hiệu bắt tay theo bus AXIS Handshake Tổ hợp lệnh đầu vào, bao gồm:  Địa gốc [AXI_DATA_WIDTH+22:0]  Địa đọc/ghi  Chiều dài cần đọc/ghi Nhóm tín hiệu RdAxiAccSts,WrAxiAccSts handshake signal S Nhóm tín hiệu bắt tay theo bus AXISHandshake status[7:0] S Trạng thái trình đọc/ghi nhớ  0x80: Quá trình ghi/đọc thành cơng  Các trƣờng hợp cịn lại: Q trìnhghi/đọc bị lỗi 3.6.3 Máy trạng thái Khối Memory Accessor sử dụng máy trạng thái rd_state wr_state phục vụ cho q trình đọc ghi tƣơng ứng Mơ tả trạng thái wr_state FSM đƣợc biểu diễn hình 3.5: WR_RESET Trạng thái khởi tạo ban đầu WR_WAIT_CMD Trạng thái chờ lệnh ghi đƣợc gửi tới Nếu địa ghi nhỏ thơng số 2𝐶𝐴𝐶𝐻𝐸𝐷 _𝑆𝐼𝑍𝐸 _𝑊𝐼𝐷𝑇𝐻 liệu đƣợc lƣu cache, nhớ tốc độ cao, ngƣợc lại, liệu đƣợc lƣu nhớ tốc độ thấp WR_INTERNAL_WRITE Trạng thái ghi liệu vào nhớ tốc độ cao WR_INTERNAL_SEND_STATUS Thông báo trạng thái trình ghi liệu vào nhớ tốc độ cao 35 WR_EXTERNAL_WRITE Trạng thái ghi liệu vào nhớ tốc độ thấp WR_EXTERNAL_SEND_STATUS Trạng thái thơng báo trạng thái q trình ghi liệu vào nhớ tốc độ thấp Hình 3.5: Máy trạng thái wr_state Mô tả trạng thái rd_state FSM đƣợc biểu diễn hình 3.6: RD_RESET Trạng thái khởi tạo ban đầu RD_WAIT_CMD Trạng thái chờ lệnh đọc đƣợc gửi tới Nếu địa đọc nhỏ thông số 2𝐶𝐴𝐶𝐻𝐸𝐷 _𝑆𝐼𝑍𝐸 _𝑊𝐼𝐷𝑇𝐻 thực việc đọc liệu cache, nhớ tốc độ cao, ngƣợc lại truy cập nhớ tốc độ thấp để đọc liệu RD_INTERNAL_FIRST_READ Trạng thái đọc liệu nhớ tốc độ cao RD_INTERNAL_READ Trạng thái đọc liệu nhớ tốc độ cao RD_INTERNAL_SEND_STATUS Trạng thái thông báo trạng thái trình đọc liệu từ nhớ tốc độ cao RD_EXTERNAL_READ 36 Trạng thái đọc liệu từ nhớ tốc độ thấp RD_EXTERNAL_SEND_STATUS Trạng thái thông báo trạng thái trình đọc liệu từ nhớ tốc độ thấp Hình 3.6: Máy trạng thái rd_state 3.7 Thiết kế khối quản lý hàng đợi (Queue Management) 3.7.1 Chức Khối cung cấp giao diện lệnh dùng để quản lý hàng đợi gói tin cell Hình 3.8 giao diện bus vào tham số mặc định module QueueManagement Tập lệnh đƣợc module hỗ trợ bao gồm lệnh liên quan đến gói tin lệnh liên quan đến cell Các lệnh liên quan đến gói tin đƣợc mơ tả bảng 3.6 Để quản lý hàng đợi cách hiệu quả, khối Queue Management xây dựng cấu trúc liệu [3] nhƣ hình 3.7 Trong khối Queue Management sử dụng danh sách liên kết để quản lý địa cell gói tin hàng đợi, nhiệm vụ khối Dynamic Allocator đảm nhận (chi tiết đƣợc trình bày mục 3.8) Nhiệm vụ khối Queue Management quản lý trỏ đầu, trỏ cuối, trạng thái hàng đợi thông tin riêng để hỗ trợ cho khối lập lịch 37 Hình 3.7: Cấu trúc liệu quản lý hàng đợi Bảng 3.6: Bảng mô tả lệnh khối QueueManagement Tên lệnh Mã lệnh Mô tả ACTIVE Khởi động khối QueueManagement DEACTIVE Ngắt hoạt động QueueManagement ENQUEUE 11 Thêm gói tin vào hàng đợi DEQUEUE 12 Lấy gói tin từ hàng đợi GET_QCONT1 13 Đọc thơng tin liên quan đến hàng đợi GET_QCONT2 14 Đọc thông tin liên quan đến hàng đợi SET_QCONT1 15 Ghi thông tin liên quan đến hàng đợi SET_QCONT2 16 Ghi thông tin liên quan đến hàng đợi GET_CCONT_BY_QID 17 Đọc thông tin cell đầu hàng đợi EMPTY_QUEUE 18 Làm rỗng hàng đợi MERGE_QUEUE 19 Nối hai hàng đợi SET_HEAD_TAIL 20 Chỉ định vị trí đầu cuối hàng đợi GET_EMPTY 21 Xác định hàng đợi rỗng hay không GET_HEAD_TAIL 22 Đọc vị trí đầu cuối hàng đợi 38 INITIALIZE_QUEUE 23 Khởi tạo gói tin Các lệnh liên quan đến cell đƣợc mô tả bảng 3.9 (ngoại trừ lệnh SET_PAIR_PTRS đƣợc tạo khối QueueManagement) 3.7.2 Cấu Trúc Module QueueManagement bao gồm module nhƣ minh họa hình 3.8 Các module Serializer, MemoryAccessor, Deserializer hỗ trợ việc truy xuất hàng đợi nhớ Module DynamicAllocator giúp quản lý cell gói tin Các gói tin cell đƣợc lƣu trữ BRAM DRAM phụ thuộc vào tham số QCACHED_WID CCACHED_WID tƣơng ứng Ngồi ra, cịn cung cấp giao diện RWAXI để giao tiếp với RAM Hình 3.8: Sơ đồ cấu trúc module QueueManagement 3.7.3 Mơ tả tín hiệu Bảng 3.7 mơ tả chi tiết tín hiệu vào module QueueManagement Trong thơng số cấu hình đƣợc định nghĩa nhƣ sau: AXI_ADDR_WIDTH Độ rộng địa bus AXI QID_WID Độ rộng trƣờng số hàng đợi 39 QCONT1_SIZE Độ rộng trƣờng thơng tin thứ hàng đợi (tính theo Byte) QCONT2_SIZE Độ rộng trƣờng thông tin thứ hai hàng đợi CID_WID Độ rộng trƣờng số cell CCONT_SIZE Độ rộng trƣờng nội dung cell (tính theo Byte) MAX_CONT_LEN Giá trị lớn trong: QCONT2_SIZE, CCONT_SIZE QCONT1_SIZE, Bảng 3.7: Bảng mơ tả tín hiệu module QueueManagement Tín hiệu Nguồn Mơ tả clk clock Từ nguồn clock chung rstn reset Reset bất đồng qmbaseaddr [AXI_ADDR_WIDTH-1:0] S Giá trị địa bắt đầu phần lƣu trữ hàng đợi nhớ dabaseaddr [AXI_ADDR_WIDTH-1:0] S Giá trị địa bắt đầu phần lƣu trữ cell nhớ QM_AXIAccessor M Bus giao tiếp với nhớ thông qua khối AXI Accessor từ khối QueueManagement, đọc/ghi thông tin liên quan đến hàng đợi DA_AXIAccessor M Bus giao tiếp với nhớ thông qua khối AXI Accessor từ khối DynamicAllocator, đọc/ghi thơng tin liên quan đến cell Nhóm tín hiệu liên quan đến lệnh cmd[4:0] S Mỗi giá trị tƣơng ứng lệnh Xem chi tiết phần máy trạng thái in_qid[QID_WID-1:0] S Chỉ số hàng đợi in_qcontext1 [QCONT1_SIZE*8-1:0] S Trƣờng thông tin thứ hàng đợi Bao gồm giá trị tham số 40 không thay đổi nhiều suốt trình hoạt động, ngƣời dùng cấu hình xuống in_qcontext2 [QCONT2_SIZE*8-1:0] S Trƣờng thơng tin thứ hàng đợi Bao gồm giá trị tham số thay đổi liên tục suốt trình hoạt động, đƣợc truy xuất nhiều khối khác out_qcontext1 [QCONT1_SIZE*8-1:0] M Trƣờng thông tin thứ hàng đợi Độ rộng ý nghĩa tƣơng tự nhƣ tín hiệu in_qcontext1 đƣợc mô tả out_qcontext2 [QCONT2_SIZE*8-1:0] M Trƣờng thông tin thứ hàng đợi Độ rộng ý nghĩa tƣơng tự nhƣ tín hiệu in_qcontext2 đƣợc mô tả in_cid[CID_WID-1:0] S Chỉ số cell đầu vào out_cid[CID_WID-1:0] M Chỉ số cell đầu in_ccontext [CCONT_SIZE*81:0] S Thơng tin gói tin trạng thái ghi gói tin vào nhớ đƣợc đƣa vào để lƣu vào cellcontext cell gói tin out_ccontext [CCONT_SIZE*8-1:0] S Dữ liệu đƣợc đọc thơng tin gói tin trạng thái ghi gói tin vào nhớ từ cellcontext cell gói tin in_nxtptr[CID_WID-1:0] S Chỉ số cell đƣợc gửi vào vị trí “cell tiếp theo” danh sách liên kết in_preptr[CID_WID-1:0] S Chỉ số cell đƣợc gửi vào vị trí “cell trƣớc đó” danh sách liên kết in_length [LOG2(MAX_CONT_LEN+1)- S Độ dài (theo byte) liệu 41 1:0] in_headptr[CID_WID-1:0] S Chỉ số cell vị trí đầu hàng đợi in_tailptr [CID_WID-1:0] S Chỉ số cell vị trí cuối hàng đợi out_headptr[CID_WID-1:0] M Trả giá trị số cell vị trí đầu hàng đợi out_tailptr[CID_WID-1:0] S Trả giá trị số cell vị trí cuối hàng đợi tvalid S Tín hiệu bật lên cho biết lệnh thông tin kèm hợp lệ tready M Tín hiệu bật lên cho biết xử lý xong lệnh kết trả có giá trị retcode M Tín hiệu cho biết lệnh đƣa vào đƣợc thực thành công hay khơng 3.7.4 Máy Trạng Thái Hình 3.9: Máy trạng thái module QueueManagement Chức module đƣợc bảo đảm nhờ máy trạng thái Các trạng thái điều kiện nhảy máy trạng thái nhƣ hình 3.9 Trong đó: RESET Trạng thái khởi tạo ban đầu 42 DEACTIVE Trạng thái chờ gửi lệnh ACTIVE đến module DynamicAllocator Sau có hồi đáp từ module DynamicAllocator, máy trạng thái kết thúc trở lại máy trạng thái nhƣ hình 3.10 Hình 3.10: Máy trạng thái DEACTIVE ACTIVE Các lệnh đƣợc nhận thực trạng thái đƣợc thể nhƣ hình 3.11 Mỗi lệnh có máy trạng thái riêng đƣợc trình bày cụ thể mục bên dƣới Trong đó: WAIT_CMD Trạng thái chờ lệnh để xác định nhảy đến máy trạng thái ENQUEUE_CMD Trạng thái tƣơng ứng nhận lệnh ENQUEUE_CMD DEQUEUE_CMD Trạng thái tƣơng ứng nhận lệnh DEQUEUE_CMD GET_QCONT1_CMD Trạng thái tƣơng ứng nhận lệnh GET_QCONT1_CMD GET_QCONT2_CMD Trạng thái tƣơng ứng nhận lệnh GET_QCONT2_CMD SET_QCONT1_CMD Trạng thái tƣơng ứng nhận lệnh SET_QCONT1_CMD SET_QCONT2_CMD Trạng thái tƣơng ứng nhận lệnh SET_QCONT2_CMD GET_NXTCELL_AND_FREE_CMD Trạng thái tƣơng ứng nhận lệnh GET_NXTCELL_AND_FREE_CMD 43 XFER_CMD_TO_DALLOCATOR Trạng thái giúp chuyển lệnh từ vào module DynamicAllocator EMPTY_QUEUE_CMD Trạng thái tƣơng ứng nhận lệnh EMPTY_QUEUE_CMD Tải FULL (101 trang): https://bit.ly/3FSzkuX Dự phịng: fb.com/TaiHo123doc.net Hình 3.11: Máy trạng thái tƣơng ứng lệnh ACTIVE GET_CCONT_BY_QID_CMD Trạng thái tƣơng ứng nhận lệnh GET_CCONT_BY_QID_CMD MERGE_QUEUE_CMD 44 Trạng thái tƣơng ứng nhận lệnh MERGE_QUEUE_CMD SET_HEAD_TAIL_CMD Trạng thái tƣơng ứng nhận lệnh SET_HEAD_TAIL_CMD GET_ENPTY_HEAD_TAIL_CMD Trạng thái tƣơng ứng nhận lệnh GET_EMPTY_CMD GET_HEAD_TAIL_CMD INITIALIZE_QUEUE_CMD Trạng thái tƣơng ứng nhận lệnh INITIALIZE_QUEUE_CMD 3.8 Thiết kế khối cấp phát nhớ động(Dynamic Allocator) 3.8.1 Chức Khối DynamicAllocator có chức quản lý cấp phát ô nhớ thuộc nhớ tốc độ cao tốc độ thấp Số luợng độ rộng ô nhớ nguời sử dụng cấu hình đƣợc Khối DynamicAllocator dùng phƣơng pháp danh sách liên kết để quản lý ô nhớ hỗ trợ 12 lệnh ngƣời sử dụng truy cập, xử lý với ô Tải FULL (101 trang): https://bit.ly/3FSzkuX nhớ đƣợc cấp phát Dự phịng: fb.com/TaiHo123doc.net Hình 3.12: Tổ chức liệu nhớ khối DynamicAllocator Trong đó: PrePtrVB: Bit trƣờng PrePtr có hợp lệ hay khơng PrePtr: Trƣờng lƣu số ô nhớ liền truớc ô nhớ NextPtrVB: Bit trƣờng NextPtr có hợp lệ hay khơng NextPtr: Trƣờng lƣu số ô nhớ liền sau ô nhớ Context: Truờng lƣu nội dung ô nhớ Bảng 3.8: Bảng mô tả lệnh khối DynamicAllocator Tên lệnh Mã lệnh Mô tả active Lệnh khởi động khối DynamicAllocator deactive Lệnh ngắt hoạt động khối DynamicAllocator newcell Lệnh yêu cầu cấp phát ô nhớ 45 freecell Lệnh giải phóng nhớ setnextptr Lệnh cập nhật số ô nhớ liền sau getnextptrnofree Lệnh đọc số ô nhớ liền sau không giải phóng nhớ getnextptrfreecell Lệnh đọc số nhớ liền sau giải phóng nhớ setpreptr Lệnh cập nhật số ô nhớ liền truớc getpreptr Lệnh đọc số ô nhớ liền truớc setcontext Lệnh cập nhật nội dung ô nhớ getcontext 10 Lệnh đọc nội dung ô nhớ setpairptr 11 Lệnh cập nhật đồng thời số ô nhớ liền truớc liền sau 3.8.2 Mơ tả tín hiệu Định nghĩa thơng số cấu hình khối DynamicAllocator CONTEXT_SIZE Độ rộng trƣờng nội dung ô nhớ HSPEED_SIZE_WIDTH Số lƣợng ô nhớ khối DynamicAllocator quản lý nhớ tốc độ cao: 2𝐻𝑆𝑃𝐸𝐸𝐷 _𝑆𝐼𝑍𝐸 _𝑊𝐼𝐷𝑇𝐻 Bảng 3.9: Mơ tả tín hiệu khối DynamicAllocator Tín hiệu Nguồn Mơ tả clk Clock Tín hiệu Clock rstn Reset Tín hiệu Reset Nhóm tín hiệu BaseAddr baseaddr[31:0] S Địa sở vùng nhớ mà khối DynamicAllocator quản lý Nhóm tín hiệu CMD cmd[3:0] S Giá trị lệnh incellid [CELL_ID_WIDTH1:0] S Chỉ số ô nhớ đƣợc truy xuất outcellid [CELL_ID_WIDTH:0] M Chỉ số ô nhớ trả incontext [CONTEXT_SIZE*8- S Nội dung ghi vào ô nhớ 7740368 ... 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... tin 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: 03/02/2023, 17:25

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

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

Tài liệu liên quan