Luận Văn Thạc Sĩ Khoa Học Máy Tính: Chuyển TCP/IP Stack Và Nhân Linux Sang Kiến Trúc Vi Xử Lý Nios 2

Luận văn thạc sĩ khoa học máy tính nghiên cứu chuyển TCP/IP stack và nhân Linux sang kiến trúc vi xử lý Nios II, ứng dụng trong hệ thống nhúng.

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

luận văn thạc sĩ

2012

80
5
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về FPGA và board mạch DE2 115

FPGA (Field Programmable Gate Array) là công nghệ vi mạch tích hợp có khả năng tái cấu hình linh hoạt, được sử dụng rộng rãi trong các hệ thống nhúng và thiết bị mạng. Board mạch DE2-115 của hãng Terasic là một kit FPGA phổ thông, tích hợp chip Cyclone IV EP4CE115F29 và các thành phần ngoại vi như SDRAM, SRAM, và hai cổng Gigabit Ethernet. Board này được chọn cho đề tài do chi phí hợp lý và khả năng hỗ trợ các ứng dụng mạng như router và firewall.

1.1. Cấu trúc và ứng dụng của FPGA

FPGA bao gồm các khối logic có thể cấu hình lại, cho phép người dùng thiết kế các hệ thống phần cứng tùy chỉnh. Ứng dụng của FPGA bao gồm kiểm thử ASIC, xử lý tín hiệu số, và các thiết bị mạng. Khả năng tái cấu hình linh hoạt của FPGA giúp tối ưu hóa hiệu năng và chi phí cho các hệ thống nhúng.

1.2. Đặc điểm của board DE2 115

Board DE2-115 tích hợp chip FPGA Cyclone IV, hai cổng Gigabit Ethernet, và các thành phần ngoại vi như SDRAM, SRAM, và Flash. Board này hỗ trợ các ứng dụng mạng và được chọn cho đề tài do khả năng hỗ trợ hai cổng Ethernet và chi phí hợp lý.

II. Kiến trúc vi xử lý Nios 2

Kiến trúc Nios 2 là một vi xử lý mềm (softcore) do hãng Altera phát triển, được thiết kế để chạy trên các chip FPGA. Nios 2 có tập lệnh RISC 32-bit, hỗ trợ 32 thanh ghi và 32 ngắt. Kiến trúc này cho phép tùy chỉnh các khối chức năng và tích hợp các thiết bị ngoại vi, phù hợp cho các ứng dụng nhúng.

2.1. Tổng quan về Nios 2

Nios 2 là vi xử lý RISC với tập lệnh 32-bit, hỗ trợ tính toán số thực và giao tiếp với nhiều thiết bị ngoại vi. Kiến trúc này cho phép tùy chỉnh các khối chức năng và tích hợp các lệnh tùy chỉnh để tối ưu hóa hiệu năng cho các ứng dụng cụ thể.

2.2. Khả năng tùy chỉnh của Nios 2

Nios 2 cho phép người dùng tùy chỉnh các khối chức năng và tích hợp các thiết bị ngoại vi. Người dùng có thể tạo các khối chức năng chuyên dụng hoặc tích hợp các lệnh tùy chỉnh để tăng hiệu năng xử lý.

III. Chuyển nhân Linux và TCP IP Stack sang Nios 2

Quá trình chuyển nhân LinuxTCP/IP Stack sang kiến trúc Nios 2 bao gồm việc chuẩn bị mã nguồn, tạo toolchain compiler, và tùy chỉnh nhân Linux. Nhân Linux được biên dịch và nạp vào bộ nhớ Flash của board DE2-115 để hệ thống tự khởi động.

3.1. Chuẩn bị mã nguồn và toolchain

Quá trình chuyển đổi bắt đầu với việc chuẩn bị mã nguồn nhân Linux và tạo toolchain compiler phù hợp với kiến trúc Nios 2. Toolchain này được sử dụng để biên dịch nhân Linux và các ứng dụng đi kèm.

3.2. Tùy chỉnh và biên dịch nhân Linux

Nhân Linux được tùy chỉnh để hỗ trợ kiến trúc Nios 2 và các thành phần phần cứng trên board DE2-115. Sau khi tùy chỉnh, nhân Linux được biên dịch và nạp vào bộ nhớ Flash để hệ thống tự khởi động.

IV. Ứng dụng iptables và Snort trên Nios 2

Hai ứng dụng iptablesSnort được chuyển sang kiến trúc Nios 2 để thử nghiệm chức năng router và firewall. Quá trình này bao gồm việc biên dịch ứng dụng, sửa lỗi cross compiler, và thử nghiệm chức năng trên board DE2-115.

4.1. Biên dịch iptables và Snort

iptablesSnort được biên dịch để chạy trên kiến trúc Nios 2. Quá trình này bao gồm việc sửa lỗi cross compiler và đảm bảo các thư viện phụ thuộc được cài đặt đầy đủ.

4.2. Thử nghiệm chức năng router và firewall

Các ứng dụng được thử nghiệm trên board DE2-115 để đánh giá hiệu năng và chức năng router/firewall. Kết quả thử nghiệm cho thấy khả năng xử lý gói tin và băng thông của hệ thống.

V. Kết quả và đánh giá

Luận văn đã thành công trong việc chuyển nhân LinuxTCP/IP Stack sang kiến trúc Nios 2, đồng thời triển khai các ứng dụng iptablesSnort trên board DE2-115. Kết quả thử nghiệm cho thấy hệ thống có khả năng xử lý gói tin hiệu quả và đáp ứng yêu cầu của các ứng dụng mạng.

5.1. Đánh giá hiệu năng hệ thống

Hệ thống được đánh giá dựa trên khả năng xử lý gói tin và băng thông. Kết quả cho thấy hệ thống đạt hiệu năng tốt khi hoạt động ở các tốc độ clock khác nhau.

5.2. Ứng dụng thực tế

Luận văn đã chứng minh khả năng ứng dụng thực tế của hệ thống trong các tình huống mạng như router và firewall. Kết quả này mở ra hướng nghiên cứu mới trong lĩnh vực hệ thống nhúng và mạng.

21/02/2025

Trích đoạn nội dung tài liệu

Chương 1. Giới thiệu về FPGA Field-programmable gate array (FPGA) là mạch điện tử tích hợp (integrated circuit), được thiết kế sao cho người dùng hoặc nhà sản xuất có thể cấu hình lại được (configurable), sau khi xuất xưởng. Mạch FPGA chứa các khối logic có thể cấu hình lại, được gọi là "logic blocks", và một mạng lưới các kết nối khả cấu hình (reconfigurable interconnects), sao cho các khối phần cứng có thể kết nối với nhau linh hoạt tùy vào cấu hình cụ thể. Khối logic có thể được cấu hình để hiện thực các hàm tổ hợp phức tạp (complex combinational functions), hoặc chỉ đơn giản là cổng logic AND XOR.

Trong đa số FPGA, khối logic còn bao gồm các đơn vị nhớ. Các đơn vị nhớ có thể đơn giản chỉ là mạch flip-flop hoặc khối bộ nhớ SRAM phức tạp.1: Cấu trúc chip FPGA Một khối logic (gọi tên là Configurable Logic Block, CLB, hoặc Logic Array Block, LAB), chứa vài tế bào logic (logical cell; gọi là ALM, Logic Element, Slice. Trần Thế Anh - 10070471 Trang 1 -2- Một tế bào logic thông thường chứa: bảng tra 4 ngõ nhập (4-input Lookup Table - LUT), bộ cộng (Full adder - FA), và một flip-flop loại D (D-type flip-flop).2: Cấu trúc một tế bào logic Để định nghĩa các kết xuất của FPGA, người dùng sử dụng ngôn ngữ mô tả phần cứng (hardware description language - HDL), hoặc một lược đồ thiết kế (schematic design - mô tả cách kết nối các cổng AND OR NOR. Sau đó, người dùng sử dụng công cụ hỗ trợ thiết kế, thường do nhà sản xuất chip cung cấp, để tạo ra netlist.

Dựa trên netlist, công cụ hỗ trợ thiết kế sẽ tiến hành bước lựa chọn các vị trí tốt nhất trong chip để đặt các khối chức năng (place and route). Sau giai đoạn place-and-route, công cụ sẽ tiến hành phân tích timing, kiểm thử xem vị trí đặt có hợp lý chưa. Cuối cùng file mã nhị phân (binary stream) được ghi ra để người dùng có thể nạp vào chip FPGA. Người dùng nạp nội dung nhị phân vào chip FPGA bằng giao tiếp serial (JTAG) hoặc ghi vào bộ nhớ EEPROM.

Ứng dụng của FPGA Ứng dụng ban đầu của FPGA tương tự như CPLD, đó là kết nối logic (glue logic) các thành phần trên board PCB. Sau này, khi độ phức tạp, tốc độ, khả năng Trần Thế Anh - 10070471 Trang 2 -3- tính toán tăng lên, ứng dụng sử dụng FPGA ngày càng rộng lớn. Có vài chip FPGA tính hợp nhiều thành phần đến mức được tiếp thị với vai trò System-on-a-chip. FPGA thường được sử dụng trong các ứng dụng có số lượng thành phẩm thấp, vì khi đó tổng chi phí cho FPGA thấp hơn tổng chi phí sản xuất ASIC.

Sau đây là vài ứng dụng phổ biến của FPGA: • Asic prototype: mẫu thí nghiệm chip asic trước khi sản xuất hàng loạt • Digital signal processor: chip xử lý tín hiệu số • Thiết bị mạng: switch 10Gbe Arista 7124FX, tường lửa Palo Alto PA- 5060, load balancer F5 BigIP,. Giới thiệu board mạch DE2-115 Do mục đích của đề tài là chuyển nhân Linux + TCP/IP stack sang kiến trúc Nios2, và ứng dụng đi kèm sẽ tập trung về hướng router / firewall; nên việc đầu tiên là lựa chọn board mạch FPGA thích hợp. Để thực hiện chức năng router / firewall, thì phần cứng phải có ít nhất 2 giao tiếp mạng Ethernet. Vào thời điểm khảo sát khả thi trước khi nhận đề tài, trên thị trường có các board mạch thuộc phân khúc phổ thông (giá thấp hơn 1000 USD), và có nhiều hơn 1 cổng Ethernet sau: • De2-115 của hãng Terasic.

• NetFPGA của hãng Digilent. Do chi phí thấp, số đơn vị logic nhiều hơn, và trên board De2-115 có tích hợp các chip phụ trợ khác, nên tác giả đã chọn board De2-115. Board mạch De2-115 [1] là một kit lập trình FPGA do công ty Terasic sản xuất. Board mạch gồm có 1 chip FPGA Cyclone IV của hãng Altera, và các phụ kiện ngoại vi như chip Marvell GBit Ethernet, SDRAM, SRAM, Flash, Audio codec, VGA DAC, cổng hồng ngoại, cổng USB … Trần Thế Anh - 10070471 Trang 3 -4- Hình 1.3: Mặt trên board De2-115 Các thành phần phần cứng có trên board De2-115: • Chip FPGA Altera Cyclone IV EP4CE115F29, 114,480 LEs, 432 memory blocks, 3,888 Kbits embedded memory, 4 PLLs.

• Chip flash chứa bitstream: Altera Serial Configuration – EPCS64, 64Mbit. • Mạch USB Blaster để nạp cấu hình và debug; hoạt động trong chế độ JTAG hoặc Active Serial (AS). • Chip SRAM 2MBytes, 1Mx16 • 2 chip SDRAM 64MBytes • Chip NAND flash 8MB, 4Mx16 • Chip EEPROM 32Kbit • SD Card socket, SPI hoặc 4bit mode. • 4 nút nhấn • 18 công tắc dạng gạt (slide switch) Trần Thế Anh - 10070471 Trang 4 -5- • 18 LED màu đỏ • 9 LED màu xanh • Thạch anh cấp xung clock 50MHz • Chip CODEC âm thanh 24-bit, nối với ngõ line-in, line-out, microphone.

• Chip DAC VGA DAC (8-bit high-speed triple DACs) with VGA-out connector • Chip giải mã TV (NTSC/PAL/SECAM), jack TV-in. • 2 chip Gigabit Ethernet PHY 88E1111 của hãng Marvell, nối với đầu RJ45. • Chip RS-232 transceiver, đầu nối 9-pin • Đầu nối PS/2 mouse/keyboard • Bộ nhận tín hiệu IR. • 2 đầu nối SMA để gởi/nhận xung clock bên ngoài.

• Một đầu cắm mở rộng 40-pin. • Một đầu cắm card mở rộng tốc độ cao (High Speed Mezzanine Card - HSMC) • Khối LCD 16x2. Sau đây là sơ đồ khối kết nối giữa các thành phần trên board mạch. Dựa trên khả năng tái cấu hình linh hoạt của chip FPGA, người dùng có thể xây dựng bất cứ hệ thống nào.

Trần Thế Anh - 10070471 Trang 5 -6- Hình 1.4: Sơ đồ kết nối board De2-115 Vì lý do board De2-115 chỉ có chip FPGA Cyclone IV, không tích hợp sẵn nhân CPU cứng, nên tác giả bắt buộc phải chọn lõi IP CPU mềm để thực thi hệ điều hành µClinux. Lõi IP cpu mềm hiện tại chạy trên chip FPGA của hãng Altera [2] có rất nhiều dòng: Nios2, ARM Cortex M1, ARM Cortex A9, MP32,. Chỉ có dòng Nios2 là được cung cấp sẵn miễn phí cho mục đích nghiên cứu học thuật. Các công trình liên quan đến board mạch De2-115 và µClinux Đề tài "QUẢN LÝ TẢI DỮ LIỆU TRÊN BOARD DE2 (HARDWARE DOWNLOAD MANAGER)", luận văn Đại Học của tác giả Huỳnh Bảo Trọng và Ngô Văn Trung [3], có đề cập việc tổng hợp khối MAC cho chip ethernet Davicom DM9000A.

Trong đề tài này chỉ sử dụng 1 card mạng ethernet 100Mbps. Phiên bản µClinux trong đề tài này sử dụng khai báo phần cứng custom/config.h, không còn Trần Thế Anh - 10070471 Trang 6 -7- được áp dụng đối với các phiên bản µClinux mới. Đề tài này sử dụng chip Nios2 không có đơn vị quản lý bộ nhớ MMU. Kit De2-115 do hãng Terasic bán cách thời điểm quyết định giao đề tài 4 tháng.

Phần cứng ethernet trên kit khác hoàn toàn với những kit cũ có trong phòng LAB ĐHBK, và các kit mà các nhóm (sinh viên) khác đã sử dụng. Ứng dụng demo Webserver của hãng Terasic đi kèm theo kit có những vấn đề sau: • Tại 1 thời điểm chỉ sử dụng được 1 card mạng. • Tốc độ card mạng đạt 1Gbps, 100Mbps, 10Mbps, chỉ bắt tay được khi ngắt điện rồi cấp điện lại. Không thể hoạt động trong trường hợp rút dây mạng từ switch 1Gbps cắm sang switch có tốc độ khác.

• Tốc độ 1Gbps không ổn định. • Do cấu trúc khối PLL nên không thể sử dụng đồng thời 2 card, mỗi card nối với một switch, nhưng 2 switch có tốc độ khác nhau. Tài liệu hướng dẫn cách nối kết các khối MAC - PHY, cung cấp xung clock sao cho đạt tốc độ 1Gbps, trên website hãng Altera không cung cấp đủ thông tin. Trong phạm vi tìm hiểu của tác giả, chưa đề tài nào có đề cập đến việc sử dụng Nios2 làm vai trò router / firewall.

Chưa có đề tài có sử dụng khối pipeline bridge, có sử dụng cross clock domain bridge. Trong quá trình thực hiện luận văn, đặc biệt trong lúc chuyển (porting) ứng dụng demo, có những vấn đề sau phát sinh: • Ứng dụng iptables: cross compiler có bug, gây lỗi segfault. • Ứng dụng Snort: các thư viện phụ thuộc thiếu sót, dẫn đến việc không thể biên dịch được. Do đó, đề tài này tập trung vào hướng chuyển (porting) nhân linux, tcp/ip, qua kiến trúc cpu Nios2.

Và sử dụng tất cả các khối phần cứng có liên quan đến mảng network, mà kit De2-115 cung cấp. Trần Thế Anh - 10070471 Trang 7 -8- Chương 2. KIẾN TRÚC CPU NIOS-2 2. Tổng quan về vi xử lý mềm Nios2 Vi xử lý Nios 2 là chip thuộc dòng họ RISC (load store) do hãng Altera tạo ra [4].

Có những đặc điểm sau: • Tập lệnh chiều dài cố định 32 bit • 32 thanh ghi đa dụng • 32 ngắt • Little endian • Tính toán số thực dấu chấm động • Giao tiếp được với nhiều thiết bị ngoại vi • Tập lệnh tương thích với tất cả processor thuộc dòng Nios 2 • Tốc độ xử lý tùy thuộc vào tài nguyên phần cứng mà người lập trình lựa chọn cấp phát lúc tổng hợp. Nios 2 là một vi xử lý có khả năng tinh chỉnh cấu hình linh hoạt. Nghĩa là người lập trình có thể tùy chỉnh các khối chức năng bên trong của vi xử lý. Người dùng có thể bỏ bớt vài chức năng không sử dụng.

Người dùng cũng có thể tự tạo thêm các khối chức năng chuyên dụng, hoặc lệnh riêng để có thể đáp ứng yêu cầu ứng dụng đặc thù riêng. Từ “mềm” được mô tả là khả năng tổng hợp vi xử lý, với các thành phần bên trong linh hoạt, thành dạng bitstream, rồi nạp bitstream kia vào bất cứ chip FPGA nào của hãng Altera, với điều kiện chip FPGA còn trống đủ số logic element để hoạt động. Điểm khác biệt của Nios II so với các vi xử lý cứng khác, là sự linh hoạt trong việc kết nối với các khối chức năng. Do bản chất "mềm" của Nios II nên chúng ta có thể xây dựng hệ thống sử dụng Nios II có chính xác những khối chức năng, và các khối thiết bị ngoại vi mà ứng dụng yêu cầu.

Có 2 loại khối chức năng: Trần Thế Anh - 10070471 Trang 8 -9- Khối chức năng chuẩn: Altera cung cấp những khối phổ thông như: Flash controller, SDRAM controller,… Khối chức năng tùy chỉnh: người dùng tự tạo ra khối chức năng mới, và tích hợp vào trong hệ thống Nios II. Để tăng hiệu năng, người dùng có thể thiết kế một khối chức năng xử lý một tác vụ mà làm tiêu tốn rất nhiều chu kỳ thực thi lệnh của CPU. Với kỹ thuật này người dùng đạt được 2 lợi ích chính: phần cứng chạy nhanh hơn phần mềm, CPU rảnh có thể thực hiện các tác vụ khác trong lúc khối kia đang xử lý.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Luận Văn Thạc Sĩ: Chuyển TCP/IP Stack Và Nhân Linux Sang Kiến Trúc Nios 2 là một nghiên cứu chuyên sâu về việc tích hợp và tối ưu hóa hệ thống mạng TCP/IP cùng nhân Linux trên kiến trúc Nios 2. Tài liệu này cung cấp cái nhìn chi tiết về quy trình chuyển đổi, các thách thức kỹ thuật, và giải pháp để đảm bảo hiệu suất và ổn định của hệ thống. Đây là nguồn tài liệu quý giá cho các nhà phát triển phần mềm nhúng, kỹ sư hệ thống, và những ai quan tâm đến việc tối ưu hóa hệ thống trên các kiến trúc vi xử lý đặc thù.

Để mở rộng kiến thức về các chủ đề liên quan, bạn có thể tham khảo Luận văn thạc sĩ khoa học máy tính giải pháp cảnh báo kiểu tấn công an ninh mạng deface và hiện thực, nghiên cứu về an ninh mạng và các giải pháp phòng chống tấn công. Ngoài ra, Luận văn thạc sĩ đại số và lý thuyết số phân tích ma trận và một số ứng dụng cung cấp góc nhìn toán học ứng dụng trong công nghệ thông tin. Cuối cùng, Luận văn thạc sĩ khoa học máy tính nghiên cứu hiệu năng giải thuật personalized pagerank là tài liệu hữu ích cho những ai quan tâm đến thuật toán và tối ưu hóa hệ thống.