CHƯƠNG 1. GIỚI THIỆU LUẬN VĂN 1.1 Tính cấp thiết của đề tài Trong một thế giới “kết nối” ngày nay, Internet là một trong những cơ sở hạ tầng không thể thiếu, nếu không nói là quan trọng bậc nhất đối với cuộc sống của nhân loại. Với nhiều lợi ích lớn mà Interent mang lại, thì số lượng người dùng đã không ngừng gia tăng. Theo Wiki, thì đến năm 2013, tổng số người sử dụng Internet chiếm 39% dân số thế giới.
Đặc biệt là ở các nước phát triển, tỷ lệ dân số kết nối internet đã tăng khoảng bốn lần; từ 8% trong năm 2005 lên 31% trong năm 2013. Riêng ở Việt Nam, theo WordBank, sự xâm nhập của Internet chỉ là 3.8% tổng dân số trong năm 2003. Nhưng sau chỉ một thập kỷ, vào năm 2013, con số này là 39.5%, tức là tăng hơn 10 lần. Đi đôi với sự phát triển, Internet mặt khác lại là phương tiện hữu hiệu để phát tán các virus máy tính.
Các virus này có thể lấy cắp các thông tin bảo mật, nhạy cảm của người dùng, xóa các dữ liệu quan trọng, hay nguy hiểm hơn là tạo điều kiện cho người phát tán virus đột nhập chiếm quyền điều khiển hệ thống máy tính. Do đó an ninh thông tin, hay cụ thể hơn là chống virus máy tính là một vấn đề tối quan trọng. Thêm vào đó, nếu như trước đây các virus máy tính chủ yếu lan truyền qua các thiết bị lưu trữ cá nhân như đĩa mềm, đĩa CD thì ngày nay nó có thể dễ dàng và nhanh chóng lan truyền đến hàng loạt máy tính kết nối Internet qua các trang web, thư điện tử. Từ đó, có thể nói rằng việc xây dựng và phát triển các chương trình hay hệ thống chống virus máy tính là điều rất cần thiết, nhất là đối với các doanh nghiệp, các tổ chức lớn, các cơ quan của chính phủ, quân đội, nơi mà sự xâm nhập của virus nếu không được ngăn chặn có thể dẫn đến thiệt hại rất lớn.
Hiện nay, có rất nhiều giải pháp phần mềm chống virus như Kaspersky, Avast, BKAV, ClamAV… Các giải pháp này có tính uyển chuyển cao do dễ dàng cập nhật khi cần cải tiến thuật giải hay thay đổi cơ sở dữ liệu virus. Tuy nhiên với sự phát triển lớn của các loại virus thì giải pháp phần mềm khó có thể đáp ứng được yêu cầu về tốc độ, đặc biệt là đối với các hệ thống máy chủ, các gateway đòi hỏi băng thông dữ liệu nhiều Gbps, và phải đồng thời phục vụ hàng trăm ngàn người dùng. Vì vậy cần có các giải pháp tăng tốc dùng phần cứng. Thiết bị phần cứng khả lập trình (Field Programmable Gate Array - FPGA) là lựa chọn phù hợp trong trường hợp này do khả năng uyển chuyển rất cao so với các giải pháp phần cứng dùng ASIC (Application Specific Integrated Circuit) mặc dù tốc độ thường là thấp hơn ASIC.
Việc sử dụng -1- FPGA có thể đảm bảo việc cập nhật hệ thống là dễ thực hiện, trong khi đó tốc độ xử lý là vượt trội so với phần mềm. Dẫu vậy tài nguyên phần cứng trên các thiết bị FPGA là hữu hạn, nên không phải tất cả các công việc đều có thể được hiện thực bằng phần cứng. Do đó một giải pháp tổng thể thường cần phải kết hợp cả phần mềm và phần cứng để tận dụng điểm mạnh, khắc phục điểm yếu của cả hai. HV-AV (HCMUT Reconfigurable Anti-Virus) [1] là một hệ thống quét virus như vậy.
Với các hệ thống dùng FPGA, thông thường khi cập nhật dữ liệu hay thuật giải thì cần phải tái cấu hình toàn bộ FPGA và vì vậy hệ thống phải tạm ngưng hoạt động; mặc dù trong nhiều trường hợp chỉ một số khối chức năng nhỏ trong toàn bộ hệ thống là cần phải thay đổi. Điều này là không phù hợp trong các hệ thống đòi hỏi tính đáp ứng liên tục như các máy chủ hay ‘gateway’. Kỹ thuật tái cấu hình từng phần (partial reconfiguration) cho phép chỉ tái cấu hình một số vùng của thiết bị FPGA mà không làm ảnh hưởng đến các vùng còn lại[2]. Điều này mang đến hai lợi ích lớn sau đây : Một là các thành phần khác của hệ thống vẫn có thể hoạt động bình thường và vì vậy đảm bảo hệ thống có thể đáp ứng người dùng trong quá trình tái cấu hình.
Hai là thời gian tái cấu hình thường nhanh hơn do chỉ một phần của thiết bị là cần được lập trình lại. Nói cách khác việc thêm chức năng TCHTP sẽ giúp hệ thống hiện tại có thể được áp dụng cho các hệ thống đòi hỏi đáp ứng thời gian thực. Ngoài ra nhìn một cách xa hơn, TCHTP là một lĩnh vực đã được nghiên cứu và áp dụng trong nhiều hệ thống trên thế giới, tuy nhiên ở Trường Đại học Bách Khoa, kiến thức về lĩnh vực này còn rất hạn chế, nếu không nói là chưa được nghiên cứu và áp dụng trước đây. Đề tài sẽ góp phần quan trọng tạo tiền đề thúc đẩy việc nghiên cứu và áp dụng lĩnh vực này trong tương lai.2 Những đóng góp của luận văn Những đóng góp chính là: Xây dựng được kiến trúc hệ thống cho phép việc thay đổi giải thuật của phần cứng trong vùng TCHTP (vùng động) mà không cần phải thay đổi các phần cứng trong vùng tĩnh.
Đồng thời việc hỗ trợ lõi kép giúp cho hệ thống có thể hoạt động với công suất bằng 50% bình thường trong quá trình TCHTP. Xây dựng thành công phần mềm và phần cứng để thực hiện việc TCHTP Đề xuất và hiện thực thành công phương án thay đổi giao thức giữa phần mềm quét virus và phần cứng đảm bảo phần mềm quét virus có thể hoạt động đúng một cách hoàn toàn độc lập với phần mềm tái cấu hình. Điều này là rất quan trọng trong các mở rộng về sau. Ở đây cần chú ý rằng phần mềm quét virus là phần mềm hiện có của hệ thống còn phần mềm để tái cấu hình từng phần là phần mềm mới phát triển.
Xây dựng thành công khối “ICAP controller” hỗ trợ 3 phương thức TCHTP khác nhau, dùng chuẩn giao tiếp phổ biến là “bus AXI ”. Hiệu suất tối đa của mỗi phương thức lần lượt 1Mbs, 50Mbs và 3Gbs. Đặc biệt đây là hiệu suất khi hoạt động thức tế khi quá trình quét virus diễn ra song song với quá trình TCHTP, chứ không phải là hiệu suất của riêng “ICAP controller” như nhiều công bố trước đó.3 Cấu trúc luận văn Chương 2: Trình bày chi tiết về thiết bị FPGA, làm rõ quy trình tái cấu hình toàn bộ và tái cấu hình từng phần. Chương này cũng sẽ trình bày chi tiết về cấu trúc của tập tin “bitstream” dùng để lập trình Xilinx Virtex5 FPGA vì việc hiểu cấu trúc của tập tin này là tối quan trọng trong quá trình viết phần mềm và thiết kế phần cứng tiếp nhận tập tin nó.
Cấu trúc phần cứng và cách thức giao tiếp giữa phần mềm và phần cứng trong quá trình quét virus của hệ thống hiện tại – hệ thống tái cấu hình toàn bộ cũng được sơ lược trong chương này. Chương 3: Tổng hợp các công trình nghiên cứu liên quan đến quá trình hiện thực tái cấu hình từng phần. Các công trình nghiên cứu được phân loại, sơ lược và đánh giá ưu điểm cũng như khuyết điểm. Chương 4: Đây là chương trọng tâm của luận văn.
Chi tiết hiện thực của hệ thống được làm rõ ở chương này. Vì việc TCHTP đòi hỏi sự thay đổi trên phần mềm và phần cứng, nên cả phần cứng, phần mềm cùng với cách thức giao tiếp đều được trình bày chi tiết. Kiểm định đặc tả phần cứng bằng mô phỏng là một việc rất cần thiết, chương này -3- cũng miêu tả cách thức tác giả xây dựng hệ thống kiểm định và kiểm định hệ thống bằng mô phỏng trước khi thực thi trên phần cứng thật. Chương 5: Trình bày cách thức kiểm định và kết quả kiểm định hệ thống Chương 6: Đây là chương để đúc kết lại luận văn và đề xuất các hướng mở rộng hệ thống cho các nghiên cứu trong tương lai.
KIẾN THỨC NỀN TẢNG Chương này giới thiệu thiết bị FPGA, phân biệt tái cấu hình toàn bộ và tái cấu hình từng phần. Tiếp theo, một số yêu cầu bắt buộc đối với hệ thống hỗ trợ TCHTP được trình bày. Hiểu rõ về hệ thống HR-AV là một yêu cầu chính của luận văn, chương này cũng trình bày hiểu biết chi tiết về phần cứng và cách thức phần cứng giao tiếp với phần mềm để từ đó làm nền tảng cho việc hiện thực tái cấu hình từng phần.1 Tổng quan về thiết bị FPGA và quá trình cấu hình FPGA 2.1 Field Programmable Gate Array (FPGA) FPGA, viết tắt của “Field Programmable Gate Array” [3], là một loại thiết bị bán dẫn có kiến trúc được minh họa như hình 2-1 sau đây. Các khối luận lý khả lập trình (CLB) 2.
Các bộ đệm vào ra (kết nối với I/O PAD) 4. Các tài nguyên để tạo để kết nối nhịp xung “clock” hoạt (routing resources) động cho thiết bị (clock resources) Hình 2-1 Kiến trúc tổng quát của một thiết bị FPGA Hình 2-1 cho ta thấy rằng FPGA bao gồm năm thành phần cơ bản. Thành phần thứ nhất là các khối logic khả lập trình thường được gọi tắt là các CLB (configurable logic blocks). Mỗi CLB thường bao gồm một bảng tra LUT (lookup table) có thể được lập trình để thực hiện các chức năng luận lý cơ bản (combinational logic) như AND, OR, NOT, XOR, hoặc các chức năng kết hợp phức tạp hơn như bộ giải mã.
Về bản chất các LUT có thể là ROM hoặc là RAM nếu cho phép người dùng thực hiện chức năng ghi. -5- Chẳng hạn như một 5-1 LUT có thể đóng vai trò là một bộ nhớ RAM 32-bit. Như vậy 8 5-1 LUT có thể kết hợp lại để làm một bộ nhớ 32x8. Bộ nhớ được cấu thành từ việc kết hợp nhiều LUT được gọi là các bộ nhớ phân tán (distributed RAM) để phân biệt với block RAM là các tài nguyên bộ nhớ có sẵn.
Ngoài ra mỗi CLB bao gồm 1 thanh ghi (register) có thể được sử dụng như là latch, JK, SR, hay D flip-flop vốn được dùng phổ biến để thiết kế các mạch tuần tự (sequential logic). Trong mỗi CLB còn có các “carry chain” để chuyên dùng cho việc thiết kế các phép toán số học như phép cộng. Hình 2-2 (a) cho thấy các thành phần cơ bản trong một CLB của một chip FPGA Virtex-5 của Xilinx. Trong các dòng FPGA mới hơn như Virtex-6, Virtex-7 thì cấu trúc 6-2 LUT được hiện thực như hình 2-2 (b).
Thực tế thì hai 5-1 LUT được ghép lại thành một 6-2 LUT.