Tổng quan nghiên cứu

Trong xu hướng phát triển mạnh mẽ của công nghệ vi mạch và hệ thống nhúng, việc thiết kế các bộ định tuyến và tường lửa chuyên dụng dựa trên kiến trúc phần cứng khả cấu hình đang trở thành giải pháp tối ưu hóa chi phí vượt trội. Theo ước tính từ các báo cáo công nghệ vi điện tử, việc sử dụng chip vi mạch lập trình được (FPGA) giúp tiết kiệm từ 60% đến 80% chi phí phát triển so với chế tạo vi mạch tích hợp chuyên dụng (ASIC) trong các dự án quy mô vừa và nhỏ. Tuy nhiên, các giải pháp thương mại trước đây trên các dòng kit phát triển phổ thông thường gặp trở ngại lớn về sự thiếu ổn định của các tầng giao tiếp mạng Gigabit, hiện tượng trượt xung đồng hồ và hạn chế trong việc hỗ trợ hệ điều hành đa nhiệm có bảo vệ bộ nhớ.

Nghiên cứu được triển khai nhằm giải quyết triệt để bài toán xây dựng một hệ thống định tuyến và tường lửa mạng hoàn chỉnh, có khả năng chạy hệ điều hành nhúng đa nhiệm trên vi mạch khả cấu hình. Mục tiêu cụ thể của đề tài là thiết kế hệ thống trên chip (System-on-a-Chip) tích hợp bộ vi xử lý mềm 32-bit Nios II của hãng Altera, chuyển giao (porting) thành công nhân Linux cùng ngăn xếp giao thức mạng TCP/IP, và triển khai hai dịch vụ bảo mật mạng trọng yếu là iptables và Snort.

Nghiên cứu được hoàn thành trong khung thời gian 10 tháng (từ tháng 2 năm 2012 đến tháng 12 năm 2012) tại Trường Đại học Bách Khoa thuộc Đại học Quốc gia Thành phố Hồ Chí Minh. Toàn bộ kiến trúc được tổng hợp trên nền tảng kit phần cứng Terasic DE2-115 trang bị chip Altera Cyclone IV EP4CE115F29 với 114.480 phần tử logic (Logic Elements) và 3.888 Kbits bộ nhớ nhúng. Thành công của luận văn mang ý nghĩa thực tiễn to lớn khi hiện thực hóa một thiết bị mạng đa cổng đạt chuẩn Gigabit Ethernet trong tầm giá dưới 1.000 USD, vận hành ổn định ở dải xung nhịp từ 100MHz đến 166MHz, mở ra khả năng tùy biến phần cứng bảo mật linh hoạt cho các doanh nghiệp vừa và nhỏ.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu vận dụng hai khung lý thuyết nền tảng trong lĩnh vực kỹ thuật máy tính và an toàn mạng:

Thứ nhất là lý thuyết kiến trúc máy tính tập lệnh rút gọn (RISC) và cơ chế quản lý bộ nhớ phân trang ảo. Bộ vi xử lý Nios II hoạt động với tập lệnh 32-bit chiều dài cố định, 32 thanh ghi đa dụng 32-bit, hỗ trợ 32 nguồn ngắt ngoài và tuân thủ định dạng lưu trữ byte little-endian. Kiến trúc này phân chia hai không gian hoạt động rõ rệt gồm chế độ giám sát (Supervisor mode) và chế độ người dùng (User mode). Để đảm bảo an toàn hệ thống, khối quản lý bộ nhớ phân trang (MMU) kết hợp bộ đệm chuyển đổi địa chỉ (Translation Lookaside Buffer - TLB) dung lượng 4KB được tích hợp nhằm quản lý không gian địa chỉ ảo 4GB, cách ly bộ nhớ nhân và ứng dụng người dùng, ngăn chặn các nguy cơ tràn bộ đệm.

Thứ hai là lý thuyết ngăn xếp giao thức mạng TCP/IP và mô hình lọc gói tin trong nhân hệ điều hành. Cơ chế lọc gói tin Netfilter trong nhân Linux được áp dụng để điều khiển luồng dữ liệu thông qua công cụ iptables. Đồng thời, mô hình bắt gói tin tầng liên kết dữ liệu thời gian thực được ứng dụng để vận hành hệ thống phát hiện xâm nhập mạng Snort.

Các khái niệm then chốt trong nghiên cứu bao gồm: Vi mạch khả cấu hình (FPGA), Bộ xử lý mềm (Softcore CPU Nios II), Cầu nối đường ống (Pipeline Bridge), Cầu nối miền xung nhịp (Clock Crossing Bridge), Bộ điều khiển truy cập bộ nhớ trực tiếp (SGDMA), và Giao tiếp độc lập truyền thông Gigabit rút gọn (RGMII).

Phương pháp nghiên cứu

Nghiên cứu sử dụng phương pháp thực nghiệm kết hợp tối ưu hóa phần cứng và phần mềm (Hardware/Software Co-design).

Nguồn dữ liệu và môi trường thử nghiệm: Môi trường phần cứng là kit Terasic DE2-115 chứa chip FPGA Cyclone IV, 128MB SDRAM, 8MB CFI Flash và 2 chip Marvell 88E1111 PHY. Môi trường phần mềm gồm công cụ thiết kế Quartus II phiên bản 12.0 SP2, SOPC Builder, hệ điều hành uClinux nhân 2.6 và bộ biên dịch chéo GCC Nios II trên nền Ubuntu 12.04 LTS.

Cỡ mẫu và phương pháp chọn mẫu: Nghiên cứu thiết lập 50 kịch bản truyền tải dữ liệu và bắt gói tin ngẫu nhiên với kích thước khung tin biến thiên từ 64 bytes đến 1518 bytes. Phương pháp chọn mẫu là lấy mẫu phân tầng theo 3 mức xung nhịp hệ thống (100MHz, 125MHz, 166MHz) và các chế độ tốc độ mạng (10Mbps, 100Mbps, 1000Mbps) để đo lường độ trễ ICMP và băng thông TCP.

Lý do lựa chọn phương pháp: Việc kiểm thử trực tiếp trên phần cứng thực tế qua 50 kịch bản cho phép đánh giá chính xác hiện tượng lệch pha tín hiệu (clock skew), độ trễ đường truyền bus Avalon và độ ổn định nhiệt của chip mà các công cụ mô phỏng phần mềm thuần túy không thể phản ánh đầy đủ. Nghiên cứu tuân thủ quy trình chặt chẽ từ thiết kế RTL, phân tích ràng buộc thời gian (timing closure), cấu hình cây thiết bị (Device Tree) đến biên dịch nhân hệ điều hành trong suốt 10 tháng triển khai.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Nghiên cứu đã đạt được 4 phát hiện và kết quả kỹ thuật mang tính đột phá:

Thứ nhất, hệ thống đã tổng hợp thành công toàn bộ cấu trúc phần cứng SoC trên FPGA Cyclone IV chỉ chiếm khoảng 45.000 phần tử logic (tương đương 39% tổng tài nguyên 114.480 LEs của chip), sử dụng 4KB On-chip RAM cho bộ đệm TLB của MMU. Điều này chứng minh cấu trúc vi xử lý mềm Nios II hoàn toàn phù hợp để tích hợp đầy đủ tính năng phân trang bộ nhớ phức tạp.

Thứ hai, nghiên cứu phát hiện và khắc phục triệt để hiện tượng lệch pha đồng hồ (clock skew) trên đường truyền bộ nhớ và mạng. Cụ thể, việc cấu hình khối vòng khóa pha (PLL) dịch sớm pha -65 độ (tương đương -3ns) cho chip SDRAM ở tần số 100MHz, đồng thời dịch trễ pha 90 độ cho xung clock cấp đến chip Marvell 88E1111 PHY ở chế độ RGMII đã giúp tín hiệu bắt mẫu dữ liệu tại cả hai sườn xung đạt độ ổn định 100% trên cả 3 tốc độ 10/100/1000 Mbps.

Thứ ba, việc chèn các khối Pipeline Bridge và phân tách hệ thống thành hai miền xung nhịp riêng biệt (100MHz cho CPU, SDRAM, TSE MAC và 10MHz cho các ngoại vi I/O như Timer, UART, LED) đã loại bỏ hoàn toàn các đường trễ tới hạn (critical path), giúp tăng hiệu suất truyền thông bus Avalon lên hơn 35%.

Thứ tư, tác giả đã xử lý dứt điểm lỗi phân đoạn bộ nhớ (segmentation fault) trong bộ biên dịch chéo Nios II GCC khi biên dịch iptables, đồng thời tái cấu trúc các thư viện phụ thuộc cho Snort. Bản nén hệ điều hành zImage được ghi thành công vào chip nhớ CFI Flash 8MB, cho phép hệ thống tự động khởi động độc lập chỉ sau 12 giây kể từ khi cấp nguồn.

Thảo luận kết quả

Hiệu năng vượt trội của hệ thống xuất phát từ việc cấu hình khối Scatter-Gather DMA (SGDMA) chuyên dụng kết hợp với bộ nhớ mô tả DMA descriptor, giúp giải phóng CPU Nios II khỏi các thao tác sao chép từng byte dữ liệu mạng. Băng thông truyền thông giữa người dùng và máy chủ thông qua thiết bị đạt mức tăng trưởng hơn 40% so với các kiến trúc truyền thống không sử dụng SGDMA.

So với các công trình nghiên cứu trước đây tại Đại học Bách Khoa vốn chỉ khai thác 1 cổng mạng 100Mbps dùng chip Davicom DM9000A và chạy vi xử lý không có MMU, luận văn này đánh dấu bước tiến vượt bậc khi điều khiển đồng thời 2 cổng Gigabit Ethernet độc lập với cơ chế bảo vệ bộ nhớ toàn diện.

Dữ liệu thực nghiệm được hệ thống hóa trực quan qua bảng đối chiếu độ trễ và biểu đồ đường biểu diễn thông lượng băng thông TCP. Kết quả cho thấy độ trễ gói tin ICMP giảm từ 3,2ms ở tần số 100MHz xuống còn 1,1ms ở tần số 166MHz (giảm 65,6%), chứng minh xung nhịp vi xử lý tỷ lệ thuận trực tiếp với năng lực xử lý gói tin của ngăn xếp TCP/IP trong nhân Linux.

Đề xuất và khuyến nghị

Dựa trên các kết quả đạt được, luận văn đưa ra 4 khuyến nghị và giải pháp kỹ thuật cụ thể:

Thứ nhất, tối ưu hóa trình điều khiển thiết bị (driver) của khối Triple Speed Ethernet (TSE MAC) và thuật toán phân bổ bộ nhớ đệm cho gói tin mạng. Chủ thể thực hiện: Nhóm kỹ sư phát triển phần mềm nhúng. Mục tiêu: Rút ngắn 25% độ trễ xử lý ngắt và nâng thông lượng định tuyến gói tin lên mức trên 200Mbps. Thời gian thực hiện: 3 tháng.

Thứ hai, thiết kế và tích hợp khối tăng tốc phần cứng chuyên dụng (Hardware Accelerator) cho các thuật toán mã hóa AES và băm SHA trực tiếp vào luồng dữ liệu Avalon-ST. Chủ thể thực hiện: Nhóm kỹ sư thiết kế vi mạch số FPGA. Mục tiêu: Giảm tải hơn 60% năng lực tính toán của CPU Nios II khi triển khai các giao thức mạng riêng ảo VPN/IPSec. Thời gian thực hiện: 6 tháng.

Thứ ba, nâng cấp hệ điều hành lên các nhánh nhân Linux hỗ trợ đa xử lý đối xứng (SMP) và chuyển đổi nền tảng sang dòng chip Cyclone V SoC hoặc Stratix có tích hợp sẵn nhân ARM cứng. Chủ thể thực hiện: Nhóm nghiên cứu kiến trúc máy tính. Mục tiêu: Tận dụng bus AXI băng thông cao để đạt tốc độ truyền tải thực tế 1Gbps trên cả 2 giao tiếp mạng. Thời gian thực hiện: 9 tháng.

Thứ tư, chuẩn hóa quy trình đóng gói chuỗi công cụ biên dịch (Toolchain) và xây dựng hệ thống tự động hóa Buildroot dành riêng cho vi xử lý Nios II. Chủ thể thực hiện: Đội ngũ kỹ sư hệ thống và DevOps. Mục tiêu: Rút ngắn 50% thời gian đóng gói firmware và cập nhật bản vá bảo mật cho các thiết bị nhúng. Thời gian thực hiện: 2 tháng.

Đối tượng nên tham khảo luận văn

Luận văn là tài liệu tham khảo giá trị cho 4 nhóm đối tượng sau:

Nhóm thứ nhất là các kỹ sư thiết kế hệ thống nhúng và phần cứng FPGA. Nghiên cứu cung cấp tài liệu chi tiết về kỹ thuật phân bổ miền xung nhịp, tính toán góc dịch pha PLL (-65 độ và 90 độ) để chống hiện tượng lệch pha tín hiệu, cùng phương pháp kết nối các bus Avalon-MM và Avalon-ST trên công cụ SOPC Builder/Qsys.

Nhóm thứ hai là các lập trình viên Linux Kernel và hệ thống nhúng. Luận văn hướng dẫn chi tiết quy trình chỉnh sửa cây thiết bị (Device Tree - DTS), phương pháp cấu hình nhân uClinux có hỗ trợ MMU và kỹ thuật sửa lỗi biên dịch chéo trên kiến trúc tập lệnh RISC.

Nhóm thứ ba là các chuyên gia bảo mật và phát triển thiết bị mạng. Tài liệu mang lại kiến trúc mẫu để xây dựng các thiết bị tường lửa (Firewall) và phát hiện xâm nhập (NIDS) độc lập, chi phí thấp dưới 1.000 USD dựa trên iptables và Snort.

Nhóm thứ tư là giảng viên, học viên cao học và sinh viên chuyên ngành Khoa học Máy tính, Kỹ thuật Máy tính và Điện tử Viễn thông. Công trình là học liệu tiêu biểu cho môn học Thiết kế đồng thời phần cứng - phần mềm (Hardware/Software Co-design).

Câu hỏi thường gặp

Câu hỏi 1: Tại sao nghiên cứu bắt buộc phải kích hoạt khối quản lý bộ nhớ MMU thay vì dùng kiến trúc không MMU? Trả lời: Khối MMU kết hợp 4KB bộ đệm TLB giúp phân tách không gian nhớ ảo 4GB giữa nhân hệ điều hành và ứng dụng người dùng. Cơ chế này ngăn chặn hoàn toàn lỗi truy cập vùng nhớ trái phép, giảm thiểu nguy cơ tấn công tràn bộ đệm khi chạy các dịch vụ bảo mật mạng phức tạp như Snort và iptables.

Câu hỏi 2: Giải pháp nào đã được áp dụng để xử lý hiện tượng lệch pha xung clock đối với chip nhớ SDRAM? Trả lời: Tác giả sử dụng khối vòng khóa pha PLL để tạo ra xung nhịp 100MHz cấp cho SDRAM với góc dịch sớm pha -65 độ, tương đương bù đắp khoảng thời gian trễ 3ns trên đường mạch PCB. Kỹ thuật này đảm bảo dữ liệu luôn sẵn sàng tại thời điểm CPU Nios II chốt tín hiệu.

Câu hỏi 3: Làm thế nào để giải quyết xung đột thời gian giữa CPU tốc độ cao và các ngoại vi tốc độ chậm? Trả lời: Hệ thống sử dụng khối cầu nối miền xung nhịp (Clock Crossing Bridge) để phân tách miền xung nhịp 100MHz của CPU Nios II và miền xung nhịp 10MHz của các khối ngoại vi như Timer, RS-232, LED và Switch. Giải pháp này giúp công cụ Quartus II dễ dàng thỏa mãn các ràng buộc thời gian.

Câu hỏi 4: Khối Triple Speed Ethernet (TSE MAC) kết nối với chip PHY Marvell 88E1111 như thế nào? Trả lời: Hai khối kết nối thông qua giao diện RGMII hoạt động với xung nhịp 125MHz ở chế độ 1Gbps, sử dụng đường truyền điều khiển MDIO tần số 2.5MHz. Ngoài ra, module Verilog tự tạo đã cấp tín hiệu khởi động reset tích cực trong 500ms để chip PHY ổn định trước khi truyền nhận dữ liệu.

Câu hỏi 5: Quy trình nạp hệ điều hành để thiết bị tự hoạt động khi bật nguồn được thực hiện ra sao? Trả lời: File ảnh nhân hệ điều hành zImage được nén và ghi trực tiếp vào bộ nhớ CFI Flash 8MB thông qua giao tiếp Avalon Tri-state Bridge. Địa chỉ Reset Vector của CPU Nios II được trỏ về offset 0x0 của Flash, giúp hệ thống tự động nạp Linux vào SDRAM và khởi động trong vòng 12 giây.

Kết luận

Luận văn đã giải quyết trọn vẹn bài toán tích hợp hệ thống mạng nhúng phức tạp trên vi mạch khả cấu hình với 5 kết quả cốt lõi:

  • Hiện thực hóa thành công SoC hoàn chỉnh trên FPGA Cyclone IV DE2-115, tích hợp CPU Nios II/f 32-bit cùng khối MMU quản lý bộ nhớ an toàn chỉ với 39% tài nguyên phần cứng.
  • Làm chủ kỹ thuật điều khiển 2 cổng Gigabit Ethernet RGMII độc lập, giải quyết triệt để bài toán lệch pha xung clock nhờ cấu hình PLL dịch pha -65 độ và 90 độ.
  • Tối ưu hóa kiến trúc bus hệ thống bằng các khối Pipeline Bridge và Clock Crossing Bridge, phân tách hiệu quả hai miền xung nhịp 100MHz và 10MHz.
  • Chuyển giao thành công nhân Linux 2.6, ngăn xếp TCP/IP cùng hai ứng dụng bảo mật mạng quan trọng là iptables và Snort, hỗ trợ tự khởi động từ Flash trong 12 giây.
  • Đề xuất lộ trình 4 giải pháp nâng cấp tích hợp bộ tăng tốc mã hóa phần cứng và chuyển đổi sang kiến trúc đa nhân trong khung thời gian từ 2 đến 9 tháng tới.

Công trình khẳng định tính khả thi cao của việc ứng dụng vi xử lý mềm trên FPGA để xây dựng các thiết bị định tuyến và tường lửa mạng tin cậy, chi phí thấp. Các nhà nghiên cứu và kỹ sư hệ thống nhúng quan tâm có thể tiếp tục mở rộng đề tài bằng cách tích hợp các module tăng tốc phần cứng cho giao thức IPSec nhằm hoàn thiện giải pháp an ninh mạng toàn diện.