1. Trang chủ
  2. » Tất cả

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

67 1 0

Đ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 ĐẠ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 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 II LỜI CẢM ƠN Trước tiê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 III 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 IV 2.1 Các mạnh ngôn ngữ đặc tả phần cứng 30 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 V 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 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 VI BẢNG CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU Từ viết tắt Nghĩa tiếng anh FPGA : Field-Programmable Gate Array DSP : Digital Signal Processing RAM : Ramdom Access Memory ROM : Read – only Memory DLL : Delay Locked Loop ADC : Analog-to-Digital Converter ASIC : Application-Specific Integrated Circuit CPLD : Complex Programmable Logic Device DAC : Digital - to - Analog Converter DRAM : Dynamic Ramdom Access Memory EEPROM : Electrically Erasable Programmable Read – Only Memory FIFO : First In First Out HDL : Hardware Description Language I/O : Input/Output LAB : Logic Array Block LUT : Look Up Table PLA : Programmable Logic Array SPLD : Simple Programmable Devices SRAM : Static Ramdom Access Memory VHDL : VHSIC hardware description language VHSIC : Very High Speed Itergrated Circuit LỜI MỞ ĐẦU Thế kỷ 21 kỷ công nghệ thông tin kĩ thuật số với phát triển ứng dụng rộng rãi vi xử lý Bằng việc đưa sức mạnh kỹ thuật số vào thực tiễn, vi xử lý ngày thay đổi cách sống lồi người Các vật dụng máy tính, máy tính bảng, điện thoại, ngày thông minh hơn, mạnh mẽ nhanh nhờ vi xử lý Trong cơng nghệ FPGA xuất giải pháp cho vấn đề tranh thủ thời gian để đưa thị trường tránh rủi ro tài q trình nghiên cứu sản phẩm công nghệ điện tử FPGA loại thiết bị khả trình (PLD) tiên tiến nghành công nghệ chế tạo IC chuyên biệt mà gọi ASIC Với phát triển cơng nghệ thơng tin việc nghiên cứu công nghệ FPGA ứng dụng xử lý liệu nhanh ngày qua tâm FPGA biết đến với nhiều tính cao cấp mạnh mẽ Với việc tích hợp thêm số lượng lớn thiết bị logic lập trình nhớ với dung lượng lên tới Megabits, FPGA hỗ trợ nhân xử lý, DSP, nhiều thu phát nhúng với tốc độ tới hàng gigabit/s [11] Sự đời nhiều thu phát tốc độ cao FPGA có ý nghĩa lớn “các I/O tốc độ cao đời đánh dấu cột mốc lớn chúng ta” Các thu phát tốc độ Gigabit, ghép nối với tài nguyên xử lý dồi Giờ giải ứng dụng với tốc độ truyền cao nhiều Các nhà sản xuất thiết bị nhận thấy FPGA hấp dẫn nhiều nguyên nhân Nó đem lại cho thiết bị linh hoạt khả tùy biến cao thuộc tính quan trọng mà hãng tìm kiếm nhằm mang đến khác biệt cho sảm phẩm giúp đưa sản phẩm tới thị trường nhanh FPGA tùy biến linh động, FPGA với thu phát quang cho phép hỗ trợ nhiều giao thức Ví dụ: Ethernet SONET/SDH Tùy thuộc vào firmware tải xuống FPGA Tính chất linh hoạt tránh việc phải thay đổi thu phát quang card đường dây Chính vậy, u cầu lựa chọn, so 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 văn tốt nghiệp Thạc Sỹ Đối tượng phạm 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 - Công nghệ FPGA toán xử lý nhanh liệu - Xây dựng ứng dụng thử nghiệm Nội dung luận văn bao gồm phần đặt vấn đề, chương kết luận, tài liệu tham khảo Phần đặt vấn đề trình bày ý nghĩa, mục tiêu, tính cấp thiết đề tài luận văn Chương luận văn trình bày nội dung nghiên cứu tổng quan công nghệ FPGA, khả công nghệ này, lĩnh vực ứng dụng, công cụ phát triển FPGA với dòng sản phẩm Xlinx Altera 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 toán nhân số nguyên đơ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 compilation | 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 timing 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 : OUT STD_LOGIC_VECTOR (15 DOWNTO 0) ); END lpm_mult0; ARCHITECTURE SYN OF lpm_mult0 IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (15 DOWNTO 0); COMPONENT lpm_mult GENERIC ( lpm_hint : STRING; lpm_pipeline : NATURAL; lpm_representation lpm_type : STRING; : STRING; 51 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_representation => "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 compilation | 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 toá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ọ Stratix, kết cho thấy có khác việc sử dụng chip tùy thuộc vào mức độ tố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 trình thực luận văn, 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 quát toá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ụ cịn 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ị tìm 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, Getting 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 Multiplier in VHDL (version online:http://www.synthworks.com/papers/VHDL_RTL_Pipelined_Multiplier_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, International Conference on Signal Processing (ICSP), October, 2010, pp 430-433 [10] Michael Dyer, David Taubman (2004), Saeid Nooshabadi, Improved throughput arithmetic coder for JPEG2000, International 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: 15/03/2023, 15:35

Xem thêm: