Nghiên cứu công nghệ FPGA và ứng dụng xử lý nhanh dữ liệu

87 160 0
Nghiên cứu công nghệ FPGA và ứng dụng xử lý nhanh dữ liệu

Đ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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN QUANG HUY NGHIÊN CỨU CÔNG NGHỆ FPGA VÀ ỨNG DỤNG XỬ LÝ NHANH DỮ LIỆU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên, tháng 08 năm 2015 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN QUANG HUY NGHIÊN CỨU CÔNG NGHỆ FPGA VÀ ỨNG DỤNG XỬ LÝ NHANH DỮ LIỆU Chuyên ngành : Khoa học máy tính Mã Số : 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC TS Vũ Duy Linh Thái Nguyên, tháng 08 năm 2015 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ I LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu tơi thực Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác Thái ngun, ngày 30 tháng năm 2015 Tác giả Nguyễn Quang Huy Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ II LỜI CẢM ƠN Trước tên muốn gửi lời cảm ơn đến thầy giáo TS Vũ Duy Linh, người trực tiếp hướng dẫn thực luận văn Tôi mong muốn bày tỏ lòng biết ơn đến thầy, cô giáo Viện Công Nghệ Thông Tin Khoa Công Nghệ Thông Tin – Đại học Thái Nguyên tận tình dạy dỗ tạo điều kiện học tập thuận lợi cho tơi suốt khóa học qua Tơi xin gửi lời cảm ơn đến gia đình, đặc biệt bố mẹ, anh, chị vợ người ln u thương, dùi dắt ủng hộ sống Cuối xin cảm ơn ban lãnh đạo Công ty TNHH Giải Pháp Công Nghệ ITS Việt Nam, anh chị em đồng nghiệp tạo điều kiện cho tơi tham gia hồn thành khóa học Tơi xin cảm ơn bạn tơi, người bên cạnh động viên, giúp đỡ đóng góp nhiều ý kiến thiết thực q trình học tập thực luận văn./ Thái Nguyên, ngày 30 tháng năm 2015 Sinh Viên Thực Nguyễn Quang Huy Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC III DANH MỤC HÌNH V BẢNG CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU VI LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ FPGA VÀ ỨNG DỤNG 1.1 Lịch sử đời FPGA 1.2 Quy trình thiết kế FPGA tổng quát 11 1.3 Ứng dụng FPGA 15 1.4 Một số ngôn ngữ lập trình cho PFGA 15 1.4.1 Ngôn ngữ VHDL 16 1.4.2 Cấu trúc mô hình hệ thống mơ tả VHDL 18 1.4.3 Ngôn ngữ Verilog 22 1.4.4 Phương pháp kiểm tra Verilog 23 1.5 Mơi trường lập trình cho FPGA 23 1.5.1 Phần mềm ISE hãng Xilinx 24 1.5.2 Phần mềm Quartus II hãng Altear 27 CHƯƠNG 2: CƠNG NGHỆ FPGA VÀ BÀI TỐN XỬ LÝ NHANH DỮ LIỆU 30 2.1 Các mạnh ngôn ngữ đặc tả phần cứng 30 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 2.2 Các kỹ thuật xử lý nhanh liệu 31 2.3 Kỹ thuật Pipeline công nghệ FPGA 33 2.4 Tổ chức Pipeline lập trình cho FPGA 35 2.5 Pipeline cho toán nhân số FPGA 36 CHƯƠNG 3: ỨNG DỤNG FPGA XỬ LÝ NHANH DỮ LIỆU 42 3.1 Lựa chọn công cụ thử nghiệm 42 3.2 Bài toán nhân số nguyên đơn giản 45 3.3 Bài toán nhân số nguyên sử dụng kỹ thuật Pipeline 48 3.4 Đánh giá kết 55 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 DANH MỤC HÌNH Hình 1.1: Cấu trúc tổng thể FPGA Hình 1.2: Khối logic FPGA Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Hình 1.3: Bộ dồn kênh F5 F6 Hình 1.4: Sơ đồ khối khối lặp xóa độ giữ chậm Hình 1.5: Sơ đồ khối “Mơ đun logic thích nghi” ALM Hình 1.6: Quy trình thiết kế FPGA Hình 1.7: Cấu trúc process Hình 1.8: Sơ đồ khối testbench Hình 1.9: Giao diện phần mềm ISE Hình 1.10: Các lựa chọn tạo Project với Virtex4 Hình 1.11: Thiết lập thời gian đếm tiến, lùi cho counter Hình 1.12: Giao diện phần mềm Quartus II Hình 2.1: Kỹ thuật Pipeline Hình 2.2: Mơ hình tổ chức Pipeline Hình 2.3: Phép nhân số A x B = Y Hình 2.4: Thực thi phép nhân số A x B = Y Hình 2.5: Pipeline cho phép nhân số A x B = Y Hình 2.6: Mơ hình Pipeline cho phép nhân số A x B = Y Hình 2.7: Pipeline cho phép nhân số A x B = Y Hình 3.1: Tạo Project Hình 3.2: Lựa chọn ngơn ngữ VHDL Hình 3.3 Thiết kế nhân số Hình 3.4 Kết thực 250 x 15 = 3750 Hình 3.5: Các tham số input, output LPM_MULT Hình 3.6: Kết thực phép nhân 250 x 15 = 3750 BẢNG CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU Từ viết tắt FPGA Nghĩa tiếng anh : Field-Programmable Gate Array Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 45 d) Mô mạch điện thiết kế Trước nạp vào chip FPGA bo mạch DE2, cần kiểm tra lại hoạt động mạch để đảm bảo mạch hoạt động xác Trước mơ hoạt động mạch điện, cần khởi tạo dạng song ngõ vào ngõ Việc chạy mô dựa khai báo Thực việc khởi tạo dạng song chương trình Waveform Editor 3.2 Bài tốn nhân số ngun đơn giản Đối với toán nhân số nguyên N bit, theo lý thuyết phép nhân thực qua hàng loạt phép cộng dịch chuyển bit, kết nhận sau N xung nhịp đồng hồ Hình 3.3 Thiết kế nhân số Sử dụng ngôn ngữ VHDL/AHDL gói phần mềm Quartus cơng ty Altera thiết kế nhân số với N bit, sử dụng bus D bus liệu đầu vào, kết hiển thị bus Output (Hình 3.1) Dưới file code chương trình khối control 46 ……………………………………………………………… // Control.tdf parameters ( N = 16 ); CONSTANT N1 = N + 1; SUBDESIGN control ( RESET, CLK : INPUT; READY, L/S, ENA1, ENA2, CLR, OUT_counter[N-1 0]: OUTPUT; ) variable counter[N-1 0] : DFF; begin DEFAULTS READY = GND; L/S = VCC; ENA1 = VCC; ENA2 = VCC; CLR = GND; END DEFAULTS; 47 counter[].CLK = CLK; counter[].CLRn = !RESET; Table counter[].Q => READY, L/S, ENA1, ENA2, CLR; => GND, GND, GND, VCC, VCC; N1 => VCC, GND, GND, GND, GND; end table; if ( counter[].Q < N1 ) then counter[].D = counter[].Q + 1; else counter[].D = N1; end if; Out_counter[] = counter[].Q; end; ……………………………………………………………… Kết thực thi mô trình bày Hình 3.2 Hình 3.4 Kết thực 250 x 15 = 3750 48 Device for compilaton | EPF10K30EFC256-1 Total logic elements | 90 / 1,728 ( % ) Total pins | 51 / 176 ( 28 % ) Total memory bits | / 24,576 ( % ) Total PLLs |0/1(0%) Device for tming analysis | EPF10K30EFC256-1 Thực mô chip họ EPF10K30EFC256-1 hãng ALTERA Trên Hình 3.2 thị kết mơ thực chương trình nhân số 250 x 15, kết 3750 nhận sau 15 nhịp xung đồng hồ (tín hiệu CLK) Kết thừa số phép nhân số nguyên 16 bit, nên với cách thiết kế chuẩn chương trình, kết phép nhân nhận sau đồng hồ xung CLK đếm 15 xung 3.3 Bài toán nhân số nguyên sử dụng kỹ thuật Pipeline Sử dụng kỹ thuật Pipeline , sử dụng thư viện Mega_LPM Quartus 7.2, cài đặt tham số LPM_MULT để xem xét khả xử lý phép nhân số có sử dụng kỹ thuật Pipeline (tham số LPM_PIPELINE) 49 Hình 3.5: Các tham số input, output LPM_MULT Ở Db[], Da[] đầu vào, CLK tín hiệu xung, Res[] kết đầu phép nhân Dưới file code chương trình khối control LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY lpm; USE lpm.all; 50 ENTITY lpm_mult0 IS PORT ( clock : IN STD_LOGIC ; dataa : IN STD_LOGIC_VECTOR (7 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (7 DOWNTO 0); result STD_LOGIC_VECTOR (15 DOWNTO 0) ); END lpm_mult0; ARCHITECTURE SYN OF lpm_mult0 IS : OUT 51 SIGNAL sub_wire0 : STD_LOGIC_VECTOR (15 DOWNTO 0); COMPONENT lpm_mult GENERIC ( lpm_hint : STRING; lpm_pipeline : NATURAL; lpm_representaton : STRING; lpm_type : STRING; lpm_widtha : NATURAL; lpm_widthb : NATURAL; lpm_widthp : NATURAL ); PORT ( dataa : IN STD_LOGIC_VECTOR (7 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (7 DOWNTO 0); clock : IN STD_LOGIC ; result : OUT STD_LOGIC_VECTOR (15 DOWNTO 0) ); END COMPONENT; BEGIN result "MAXIMIZE_SPEED=5", lpm_pipeline => 1, lpm_representaton => "UNSIGNED", 52 lpm_type => "LPM_MULT", lpm_widtha => 8, lpm_widthb => 8, lpm_widthp => 16 ) PORT MAP ( dataa => dataa, datab => datab, clock => clock, result => sub_wire0 ); END SYN; Thay đổi tham số LPM_PIPELINE chip FPGA, nhận thấy kết khác thiết bị EPF10K30EFC256-1 sau: Với LPM_PIPELINE =1 Device for compilaton | EPF10K30EFC256-1 Total logic elements | 136 / 1,728 ( % ) 53 Total pins | 33 / 176 ( 18 % ) tco (Clock to Output Delays) Thời gian bị trễ (delay) tối đa khối nhân đưa OUTPUT - 12.8 ns Hình 3.6: Kết thực phép nhân 250 x 15 = 3750 Với LPM_PIPELINE =2, ta có thời gian bị trễ (delay) tối đa khối nhân đưa OUTPUT - 10.9 ns Với LPM_PIPELINE =5, ta có thời gian bị trễ (delay) tối đa khối nhân đưa OUTPUT - 7.5 ns, Clock Name Clk Required fmax Actual fmax (period) None 208.33 MHz ( period = 4.800 ns ) Kết cho thấy với khả sử dụng kỹ thuật Pipeline khối nhân LPM_MULT tăng tốc độ thực đưa kết nhanh Như ta nhận bảng so sánh thời gian thực thi thay đổi thông số pipeline chip với phần mềm (Bảng 3.1) 54 STT Số lượng Pipeline Thời gian trễ (output) 1 12,8 ns 2 10,9 ns 8,7 ns 7,5 ns Bảng 3.1: Thời gian thực thi phụ thuộc số Pipeline Flex10 Với kết đưa Bảng 3.1, thấy hiệu việc sử dụng Pipeline, nhiên số lượng Pipeline cho phép Chip khác nhau, ảnh hưởng trực tiếp đến việc lập trình Chip Với Chip EPF10K30EFC256-1 (thuộc họ chip Flex10) ta có kết bảng 3.1, thực Chip EP1SGX10DF672C6 (thuộc họ chip Stratix) ta có kết sau: STT Số lượng Pipeline Thời gian trễ (output) 13,09 ns 2 10,15 ns 7,73 ns 7,73 ns Bảng 3.2: Thời gian thực thi phụ thuộc số Pipeline Stratix Với kết thử nghiệm loại Chip Flex10 Stratix, thấy khả chúng khác nhau, tùy thuộc vào tốn khác có lựa chọn chúng khác 55 3.4 Đánh giá kết Như kết đưa ra, nhận thấy với kỹ thuật Pipeline thực thi phép tốn nhanh từ khả xử lý liệu nhanh thực hiện, đặc biệt loại liệu đồng nhất, khả xử lý tương tự khối có thời gian thực tương đồng, từ việc sử dụng hiệu Pipeline cho phép tăng tốc thời gian thực mà khả đồng xảy lỗi Với việc thử nghiệm họ chip Flex10 chip họ Stratx, kết cho thấy có khác việc sử dụng chip tùy thuộc vào mức độ toán mà người lập trình phải quan tâm đến lượng tài nguyên cho phép chip Chip Stratix chip có lượng tài nguyên lớn, nên việc thử nghiệm với toán nhỏ chưa đánh giá hết khả chúng, hạn chế định kết thử nghiệm Kết tốn thử nghiệm sử dụng chương trình mã hóa giải mã AES máy chủ xác thực gửi mật tới khách hàng hệ thống phục vụ khách hàng lớn máy chủ ngân hàng, hệ thống viễn thông 56 KẾT LUẬN Trong q trình thực luận văn, tơi thực kết sau: - Trình bày tổng quan cơng nghệ FPGA, khái niệm chính, khả ứng dụng FPGA toán xử lý liệu - Nghiên cứu công cụ, ngôn ngữ lập trình làm việc với FPGA - Trình khái qt tốn xử lý liệu nhanh, điểm mạnh FPGA, cách tiếp cận xử lý nhanh qua kỹ thuật Pipeline cơng nghệ FPGA - Thử nghiệm ví dụ xử lý liệu nhanh qua kỹ thuật Pipeline tảng ngơn ngữ lập trình VHDL/AHDL cơng cụ Quartus chip FPGA hãng Altera Hạn chế: - Vì thời gian có hạn, việc nắm bắt cơng cụ chưa hồn thiện, ví dụ thực đơn giản, chưa thể hết khả xử lý liệu lớn Hướng phát triển: - Xây dựng phần mềm mã hóa giải mã file kích thước lớn để so sánh khả thực nhanh FPGA 57 TÀI LIỆU THAM KHẢO [1] PGS.Vũ Quý Điềm (chủ biên), Phạm Văn Tuân, Nguyễn Thúy Anh, Đỗ Lê Phú, Nguyễn Ngọc Văn (2006) – Cơ sở kỹ thuật đo lường điện tử - NXB Khoa Học Kỹ Thuật [2] Trần Ngọc Phụng, Trần Thị Điểm, Cao Trần Bảo Thương, Huỳnh Hữu Thuận (2006) - Thực số thuật tốn dò tm chuyển động FPGA - Hội Nghị Khoa Học Trường Đại Học KHTN lần [3] Mani B, Srivastava VHDL tutorial UCLA – EE [4] System Generator for DSP, Geting started Guide, Reference Guide, User Guide, Xilinx [5] Nguyễn Trọng Hải - Bài giảng Verilog - ĐH Kỹ thuật công nghệ TPHCM [6] Nguyễn Viết Kính, Trịnh Anh Vũ - Thơng tin số - NXBGD [7] Jim Lewis (2002), Coding a 40x40 Pipelined Multplier in VHDL (version online:http://www.synthworks.com/papers/VHDL_RTL_Pipelined_Multplier_M APLD_2002_S_BW.pdf) [8] ISO/IEC 15444-1,Information Technology-JPEG2000 (2000) Image Coding System, Part 1: Core Coding System [9] PENG Zhou, ZHAO Bao-jun (2010), High-throughout hardware architecture of MQ arithmetic coder, Internatonal Conference on Signal Processing (ICSP), October, 2010, pp 430-433 [10] Michael Dyer, David Taubman (2004), Saeid Nooshabadi, Improved throughput arithmetc coder for JPEG2000, Internatonal Conference on Image Processing, vol 4, October, 2004, pp 2817-2820 [11] Manjunath Gangadhar, Dinesh Bhatia (2003), FPGA based EBCOT architecture for JPEG 2000, International Conference on Field-Programmable Technology (FPT), December, 2003, pp 228-233 58 [12] Taoufik Saidani, Mohamed Atri, Rached Tourki (2008), Implementation of JPEG 2000 MQ-Coder, International Conference on Design and Technology of Integrated Systems in Nanoscale Era, March, 2008, pp 1-4 [13] Kai Liu, Yu Zhoub,Yun Song Li,Jian Feng Ma (2010), A high performance MQ encoder architecture in JPEG2000, the VLSI Journal, vol 43, no 3, June, 2010, pp 305-317 [14] Minsoo Rhu, In-Cheol Park (2013), Optimization of Arithmetic Coding for JPEG2000, IEEE Transactions on Circuits and Systems for Video Technology, vol 20, no 3, March, 2010, pp 446-451 118 Tạp chí Khoa học Kỹ thuật - Học viện KTQS số 153 (4-2013) [15] Tinku Acharya, Ping-Sing Tai (2005), JPEG2000 Standard for Image Compression: Concepts, Algorithms and VLSI Architectures, New Jersey, U.S.A: John Wiley & Sons, chapter 5, 2005, pp 185-195 [16] Wael M El-Sharkasy, Mohamed E Ragab (2012), Hardware modelling of JPEG2000 MQ-encoder, International Conference on Intelligent and Advanced Systems (ICIAS), vol 2, June, 2012, pp 707-712 [17] Altera, Avalon Interface Specifications, California, U.S.A, (2011), pp 35 - 44 [18] Altera, Stratix III Device Handbook, California, U.S.A, (2011) ... vi nghiên cứu Công nghệ FPGA: lĩnh vực ứng dụng, công cụ phát triển Kỹ thuật xử lý nhanh liệu Pipeline Ứng dụng tốn mơ xử lý liệu nhanh Những nội dung nghiên cứu - Tổng quan công nghệ FPGA. .. sánh, đánh giá công nghệ FPGA ứng dụng xử lý liệu nhanh đề tài mang ý nghĩa khoa học thực tiễn cao Với lý đó, tơi lựa chọn đề tài Nghiên cứu công nghệ FPGA ứng dụng xử lý nhanh liệu cho luận...ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN QUANG HUY NGHIÊN CỨU CÔNG NGHỆ FPGA VÀ ỨNG DỤNG XỬ LÝ NHANH DỮ LIỆU Chuyên ngành : Khoa học máy tính Mã Số

Ngày đăng: 12/01/2019, 12:42

Từ khóa liên quan

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

Tài liệu liên quan