Tải bản đầy đủ (.pdf) (109 trang)

Hiện thực tái cấu hình từng phần fpga cho hệ thống nhận dạng virus tốc độ cao

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.41 MB, 109 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

NGUYỄN VĂN QUANG ÁNH

HIỆN THỰC TÁI CẤU HÌNH TỪNG
PHẦN FPGA CHO HỆ THỐNG NHẬN
DẠNG VIRUS TỐC ĐỘ CAO
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 8 năm 2015


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

NGUYỄN VĂN QUANG ÁNH

HIỆN THỰC TÁI CẤU HÌNH TỪNG
PHẦN FPGA CHO HỆ THỐNG NHẬN
DẠNG VIRUS TỐC ĐỘ CAO
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01

LUẬN VĂN THẠC SĨ


TP. HỒ CHÍ MINH, tháng 8 năm 2015


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG TP HCM
Cán bộ hướng dẫn khoa học: PGS.TS. Trần Ngọc Thịnh .........................................

Cán bộ chấm nhận xét 1: ...........................................................................................

Cán bộ chấm nhận xét 2: ...........................................................................................

Luận văn thạc sĩ được bảo vệ tại: Trường đại học Bách Khoa – ĐHQG TP.HCM,
ngày………tháng………năm………
Thành phần hội đồng đánh giá luận văn thạc sỹ gồm:
1. ........................................................................................
2. . .......................................................................................
3. ........................................................................................
4. ........................................................................................
5. ........................................................................................
Xác nhận của chủ tịch hội đồng đánh giá luận văn và Trưởng khoa quản lý chuyên
ngành sau khi luận văn đã được sữa chữa (nếu có).

CHỦ TỊCH HỘI ĐỒNG

TRƯỞNG KHOA


ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: NGUYỄN VĂN QUANG ÁNH

MSHV: 11070440

Ngày, tháng, năm sinh: 11/11/1983

Nơi sinh: Bình Thuận

Chun ngành: Khoa học máy tính

Mã số : 60.48.01

I.

TÊN ĐỀ TÀI: Hiện thực tái cấu hình từng phần (TCHTP) FPGA cho hệ thống
nhận dạng virus tốc độ cao

II.

NHIỆM VỤ VÀ NỘI DUNG:
 Nghiên cứu chi tiết kỹ thuật TCHTP trên các thiết bị FPGA, các cách thức
áp dụng kỹ thuật này trong các hệ thống của các tác giả khác.
 Hiểu kiến trúc của hệ thống chống virus HR-AV sử dụng tái cấu hình truyền
thống (tái cấu hình toàn bộ FPGA) cả về phần cứng và phần mềm.
 Hiện thực TCHTP cho hệ thống HR-AV, đảm bảo trong q trình TCHTP hệ
thống vẫn có thể tiếp tục hoạt động giao tiếp với phần mềm quét virus.


III.

NGÀY GIAO NHIỆM VỤ : 23/06/2014

IV.

NGÀY HOÀN THÀNH NHIỆM VỤ : 10/07/2015

V.

CÁN BỘ HƯỚNG DẪN : PGS.TS. Trần Ngọc Thịnh

Tp. HCM, ngày . . . . tháng .. . . năm 20....
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)

PGS.TS.Trần Ngọc Thịnh

TRƯỞNG KHOA KH & KTMT
(Họ tên và chữ ký)


LỜI CẢM ƠN
Lời đầu tiên tôi xin chân thành cảm ơn tới Thầy hướng dẫn, PGS.TS. Trần Ngọc
Thịnh đã tin tưởng giao đề tài, và hướng dẫn tơi tận tình trong suốt quá trình thực hiện
luận văn này. Đặc biệt thầy đã tạo điều kiện cho tơi có thể trao đổi và nhận được sự hỗ
trợ của những sinh viên, học viên cùng làm trong lĩnh vực FPGA. Đây là một phần
khơng thể thiếu để tơi có hồn thành luận văn này.
Tôi cũng xin cảm ơn các em Trần Trung Hiếu, Trần Nguyên Vũ, Nguyễn Việt Tiến,

Nguyễn Duy Thái đã giúp đỡ tơi trong q trình tìm hiểu phần cứng và phần mềm hệ
thống hiện tại, và những góp ý quý báu đối với các giải pháp hiện thực hệ thống mới.
Tơi cũng cần phải nói lời cám ơn đến các em Trần Thị Thùy Châu, Đỗ Minh Chiến và
Nguyễn Duy Quốc về những giúp đỡ nhiệt tình trong quá trình hiện thực và thử
nghiệm hệ thống.
Cuối cùng xin cám ơn bố mẹ đã luôn nhắc nhở tôi cố gắng học tập. Cảm ơn vợ và
con trai luôn ủng hộ tôi trong suốt chặng đường đã qua.

i


TĨM TẮT LUẬN VĂN
Tái cấu hình từng phần động (TCHTP) FPGA là một kỹ thuật hiện thực cho phép
chỉ một bộ phận được chỉ định của thiết bị FPGA được tái cấu hình trong khi phần cịn
lại khơng hề thay đổi; hệ thống hiện thực trên FPGA vẫn có thể tiếp tục hoạt động bình
thường. Người ta vì vậy có thể dùng kỹ thuật này để xây dựng hệ thống dựa trên FPGA
mà có yêu cầu là phải đảm bảo hệ thống có thể vận hành ngay cả khi cần thay đổi thiết
kế phần cứng hiện thực trên FPGA. Hệ thống HR-AV (HCMUT Reconfigurable AntiVirus) là một hệ thống phát hiện virus máy tính được phát triển dựa trên sự kết hợp
giữa tính mềm dẻo của phần mềm và sức mạnh tính tốn vượt trội của phần cứng hiện
thực trên thiết bị FPGA Virterx-5 gắn trên board mạch Net-FPGA 10G. Tốc độ quét
virus nhanh của HR-AV làm cho nó có thể ứng dụng vào hệ thống máy chủ hay gateway.
Tuy nhiên, vì cơ sỡ dữ liệu các loại virus hầu như được cập nhật hàng ngày, đặc
biệt là trong một thế giới kết nối cao nhờ vào sự phát triển nhanh của cơ sở hạ tầng
Internet như hiện nay, yêu cầu cần phải xem xét và cập nhật các thuật giải quét virus
trở nên thường xuyên hơn trước. Trong khi đó hệ thống hiện tại chỉ hỗ trợ việc tái cấu
hình truyền thống. Cách này ln tái cấu hình tồn bộ thiết bị FPGA khi cần phải cập
nhật thiết kế dù là nhỏ. Thực nghiệm cho thấy, hiện tại cấu hình thiết bị FPGA Virtex-5
thơng qua cổng JTAG tốn khoảng 20s. Thêm vào đó, sau khi q trình tái cấu hình tồn
bộ được hồn thành, phần mềm phải khởi động lại các chức năng giao tiếp với phần
cứng trước khi hệ thống có thể quay trở lại hoạt động bình thường. Do đó hệ thống

phải dừng việc quét virus trong suốt một thời gian dài có thể nói là khơng thể chấp
nhận được đối với một ứng dựng trên máy chủ. Áp dụng TCHTP vào hệ thống HR-AV
được kỳ vọng sẽ loại bỏ hạn chế này của hệ thống.
Trong luận văn này, tác giả đã đề nghị giải pháp hiện thực lõi kép để có thể áp
dụng DPR cho hệ thống hiện tại. Việc tái cấu hình có thể được thực hiện dùng cổng
giao tiếp ngoại vi JTAG hoặc dùng logic bên trong để điều khiển khối tích hợp sẵn
ICAP (Internal Configuration Access Port). Kết quả thực nghiệm cho thấy trong quá
trình thiết bị FPGA đang được tái cấu hình, hệ thống có thể duy trì tính đúng đắn và
50% khả năng quét virus. Thêm vào đó hệ thống có thể nhanh chóng quay trở lại hoạt
động với hiệu suất cao nhất sau 6 giây nếu như cổng JTAG được sử dụng và chỉ 9 miligiây nếu như “ICAP Controller” được lựa chọn cho việc tái cấu hình.

ii


ABSTRACT
Dynamic Partial Reconfiguration (DPR) FPGA is an implementation technique
allowing a specific portion of FPGA device to be reconfigured while keeping the rest
intact; making it possible for hardware system running on FPGA to be functional, still.
One thus can use this to develop FPGA-based system where it’s important to ensure
the operation even during the period the hardware design deployed in FPGA device is
being altered by a new or updated version. HR-AV (HCMUT Re-configurable AntiVirus) is a computer virus detection system developed by combining the flexibility of
software and processing power of Virtex-5 FPGA device mounted on Net-FPGA 10G
board. The high speed scanning performance of HR-AV makes it applicable to be used
in server or gateway environment.
However virus database is updated almost every day, especially in a highlyconnected world thanks to fast-growing Internet infrastructure like today. The demand
to reconsider and update virus scanning algorithm thus arise more often than ever.
Whereas, current system only supports traditional configuration method which
always reconfigure the entire FPGA device whenever it's required to update design
regardless of design change complexity. Configuring the entire Virtex-5 FPGA device
at least takes 20 seconds using JTAG configuration port. Furthermore, after the FPGA

is reconfigured, software needs to re-strart the commnucation with hardware before the
entire system can be back to normal operation. This means that the system has to stall
virus scanning process by hardware in a considerably unacceptable amount of time for
a server application. Applying DPR to current system is expected to remove this
limitation.
In this thesis, the author proposed dual-core implementation to apply DPR
to current system. The configuration can be done using external JTAG port for using
internal logic to control built-in ICAP (Internal Configuraton Access port) primitive.
Experimental results show that during FPGA reconfiguration period, the system can
maintain operation correctness and fifty-percent scanning capability. Also system can
be switched back to full-capability mode after 6 seconds if external JTAG is used and 9
milli-seconds if the later.

iii


LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các cơng trình khác như
đã ghi rõ trong luận văn, các cơng việc trình bày trong luận văn là do chính tơi thực
hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở
trường này hoặc trường khác.
Ngày tháng

năm 2015

Nguyễn Văn Quang Ánh

iv



v


MỤC LỤC
LỜI CẢM ƠN

I

TÓM TẮT LUẬN VĂN

II

ABSTRACT

III

LỜI CAM ĐOAN

IV

MỤC LỤC

VI

MỤC LỤC BẢNG

IX

MỤC LỤC HÌNH


X

CHƯƠNG 1. GIỚI THIỆU LUẬN VĂN

-1-

1.1

Tính cấp thiết của đề tài

-1-

1.2

Những đóng góp của luận văn

-3-

1.3

Cấu trúc luận văn

-3-

CHƯƠNG 2. KIẾN THỨC NỀN TẢNG

-5-

2.1


-5-5-9- 11 -

2.2

Tổng quan về thiết bị FPGA và quá trình cấu hình FPGA
2.1.1
Field Programmable Gate Array (FPGA)
2.1.2
Quy trình thiết kế và tái cấu hình truyền thống - tái cấu hình tồn bộ
2.1.3
Quy trình thiết kế và tái cấu hình từng phần (TCHTP)
Các yêu cầu phần cứng đối với hệ thống hộ TCHTP

- 14 -

2.3

Chi tiết quá trình tái cấu hình Virtex5 và cấu trúc “bitstream”
2.3.1
Các bước cơ bản của quá trình tái cấu hình FPGA
2.3.2
Cấu trúc của bitstream
2.3.3
Cấu trúc “partial bitstream ”
2.3.4
Chi tiết giao tiếp “ICAP”
2.3.5
Tóm tắt

- 16 - 16 - 18 - 21 - 23 - 25 -


2.4

Sơ lược về hệ thống HR-AV
2.4.1
Kiến trúc hệ thống
2.4.2
Hiện thực phần cứng của hệ thống
2.4.3
Quy trình giao tiếp giữa phần cứng và phần mềm

- 26 - 26 - 27 - 29 -

vi


CHƯƠNG 3. TỔNG HỢP CÁC CƠNG TRÌNH NGHIÊN CỨU LIÊN QUAN

- 32 -

3.1

Áp dụng TCHTP vào hệ thống phát hiện tấn công mạng (NIDS)

- 32 -

3.2

Áp dụng TCHTP vào hệ thống “virtual network”


- 34 -

3.3

Áp dụng TCHTP vào việc hiện thực mã hóa IPsec trên FPGA

- 36 -

3.4

Tăng tốc quá trình TCHTP dùng bộ điều khiển “ICAP” tốc độ cao

- 38 -

3.5

Tóm tắt các cơng trình khác

- 40 -

3.6

Kết luận

- 41 -

CHƯƠNG 4. HIỆN THỰC HỆ THỐNG
4.1

- 42 -


Hiện thực phần cứng
4.1.1
Kiến trúc hệ thống
4.1.2
Thay đổi trong quy trình giao tiếp giữa phần cứng và phần mềm
4.1.3
Vấn đề hiện thực các miền “clock” bất đồng bộ
4.1.4
Chi tiết hiện thực cho khối “Dispatcher”
4.1.5
Chi tiết hiện thực cho khối “Collector”
4.1.6
Chi tiết hiện thực cho khối “DPR controller”
4.1.7
Chi tiết hiện thực khối “ICAP Controller”

- 42 - 42 - 44 - 48 - 50 - 52 - 53 - 62 -

4.2

Xây dựng môi trường mô phỏng và mô phỏng phần cứng

- 67 -

4.3

Hiện thực phần mềm
4.3.1
Qui trình của phần mềm quản lý TCHTP dùng “JTAG”

4.3.2
Qui trình của phần mềm quản lý TCHTP dùng “ICAP”
4.3.3
Qui trình quét virus dùng lõi kép

- 69 - 69 - 71 - 74 -

CHƯƠNG 5. ĐÁNH GIÁ HỆ THỐNG

- 76 -

5.1

Đánh giá thời gian TCHTP
5.1.1
Tốc độ TCHTP dùng cổng giao tiếp JTAG
5.1.2
Đánh giá tốc độ của “ICAP Controller” so với các cơng trình khác

- 76 - 76 - 76 -

5.2

Đánh giá tốc độ quét virus và ảnh hưởng của kích thước “buffer”

- 78 -

5.3

Đánh giá ảnh hưởng của TCHTP lên quá trình quét virus

5.3.1
Đánh giá ảnh hưởng lên hàm “cli_bbf_static_scanbuff”
5.3.2
Đánh giá ảnh hưởng của TCHTP lên toàn bộ phần mềm quét virus

- 80 - 80 - 82 -

5.4

Đánh giá lợi ích của việc hỗ trợ giao tiếp bất đồng bộ

- 83 -

5.5

Đánh giá tài nguyên tiêu tốn cho việc hỗ trợ TCHTP

- 84 -

5.6

Đánh giá ảnh hưởng của kích thước vùng động lên hệ thống

- 85 -

vii


CHƯƠNG 6. KẾT LUẬN VÀ ĐỀ XUẤT


- 89 -

6.1

Những kết quả đã đạt được

- 89 -

6.2

Hướng phát triển

- 89 -

CHƯƠNG 7. DANH MỤC CÁC TÀI LIỆU THAM KHẢO

- 91 -

LÝ LỊCH TRÍCH NGANG

- 94 -

viii


MỤC LỤC BẢNG
Bảng
Bảng
Bảng
Bảng

Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng

2-1: Mẫu nhận dạng “bit-width” tự động ....................................................... - 17 2-2: Mẫu nhận dạng “Sync word” .................................................................. - 17 2-3: Cấu trúc “lệnh” cho packet loại 1 .......................................................... - 18 2-4: Cấu trúc “lệnh” cho packet loại 2 .......................................................... - 18 2-5: Thứ tự các “word” trong một “full bitstream” thông thường ................. - 19 2-6: Đặc tả giao tiếp vào ra (I/O) của ICAP “primitive” ................................ - 23 2-7: Chi tiết phần “header” của packet ........................................................... - 30 4-1: Thay đổi trong định dạng gọi tin kết quả ................................................ - 46 4-2: Thay đổi trong định dạng gọi tin từ phần mềm gửi xuống phần cứng.... - 47 4-3: Thay đổi trong định dạng gọi tin từ phần mềm gửi xuống phần cứng.... - 49 4-4: Mã hóa và ý nghĩa của các trạng thái trong “DPR Control FSM” .......... - 57 4-5: Các trạng thái trong “Core Monitor FSM” ............................................. - 60 4-6: Đặc tả của thanh ghi dùng cho việc TCHTP dùng cổng JTAG .............. - 63 4-7: Đặc tả của thanh ghi dùng cho việc TCHTP sử dụng ICAP ................... - 63 5-1: Thời gian TCHTP dùng JTAG với các kích thước bitstream khác nhau - 76 5-2: “throughput” của hàm quét một block trong quá trình TCHTP một core - 80
5-3: “Throughput” của hàm quét một block trong quá trình TCHTP hai core - 81
5-4: Tài nguyên tiêu tốn cho việc hỗ trợ TCHTP ........................................... - 85 -

ix


MỤC LỤC HÌNH
Hình 2-1 Kiến trúc tổng qt của một thiết bị FPGA ................................................. - 5 Hình 2-2 Cấu trúc của một CLB ................................................................................. - 6 Hình 2-3 Cấu trúc của một tài nguyên DSP có sẵn ..................................................... - 7 Hình 2-4 Quy trình thiết kế và tái cấu hình truyền thống ........................................... - 9 Hình 2-5 Cấu trúc thiết bị FPGA của Xilinx hỗ trợ TCHTP .................................... - 11 Hình 2-6 Quy trình place&route và sinh “bitstream” áp dụng TCHTP .................... - 12 Hình 2-7 Các “logic” cần để “decoupling” vùng động PRR0 và các vùng khác...... - 14 Hình 2-8 Giá trị của tín hiệu Enable và Reset trong quá trình TCHTP PRR0 ......... - 15 Hình 2-9 Các bước lập trình thiết bị FPGA Virtex-5................................................ - 16 Hình 2-10 Phần đầu chứa sync-word của bitstream.................................................. - 20 Hình 2-11 Phần chứa ghi vào thanh ghi FDRI, theo sau là dữ liệu cấu hình............ - 20 Hình 2-12 Phần chứa lệnh để kiểm tra CRC ............................................................. - 20 Hình 2-13 Phần cuối cùng lệnh để “DESYNC” ....................................................... - 20 Hình 2-14 Cách kiểm tra lỗi CRC trong quá trình nạp “partial bitstream” .............. - 22 Hình 2-15 Cấu trúc của HWICAP ............................................................................ - 24 Hình 2-16 Tóm tắt bitstream và việc tái cấu hình ..................................................... - 25 Hình 2-17 Kiến trúc hệ thống HR-AV ...................................................................... - 26 Hình 2-18 Cấu trúc phần cứng của hệ thống HR-AV hiện tại .................................. - 27 Hình 2-19 Cách thức phân chia gói tin để giao tiếp giữa phần cứng và phần mềm . - 29 Hình 2-20 Thuật giải giản lược của hàm quét một “block” ...................................... - 29 Hình 2-21 Định dạng gói tin gửi từ phần mềm xuống phần cứng. ........................... - 30 Hình 2-22 Định dạng gói tin kết quả từ phần cứng gửi lên phần mềm..................... - 31 Hình 3-1 Kiến trúc hiện thực NIDS áp dụng kỹ thuật TCHTP................................. - 32 Hình 3-2 Kiến trúc hiện thực “virtual network” áp dụng kỹ thuật TCHTP .............. - 34 Hình 3-3 Kiến trúc hiện thực mã hóa IPSec áp dụng kỹ thuật TCHTP .................... - 36 Hình 3-4 Kiến trúc hiện thực của “ICAP controller” tốc độ cao .............................. - 38 Hình 4-1 Kiến trúc hiện thực lõi kép hỗ trợ TCHTP ................................................ - 42 Hình 4-2 Thay đổi trong việc truyền gói tin xuống phần cứng lõi kép..................... - 45 Hình 4-3 Kiến trúc hiện thực lõi kép hỗ trợ tái cấu hình từng phần ......................... - 50 Hình 4-4 Sơ đồ chuyển trạng thái của “Demux Control FSM” ................................ - 51 Hình 4-5 Chi tiết hiện thực của “Collector”.............................................................. - 52 Hình 4-6 Cấu trúc của khối “DPR Controller” ......................................................... - 55 Hình 4-7 Sơ đồ chuyển trạng thái của “DPR Control FSM” .................................... - 57 Hình 4-8 Cấu trúc của “khối con” “Packet buffer” ................................................... - 59 Hình 4-9 Cấu trúc của “khối con” “Result Packet Processor” .................................. - 61 Hình 4-10 Cấu trúc của “khối con” “ICAP Controller”............................................ - 62 Hình 4-11 Cấu trúc “test-bench” của môi trường mô phỏng hệ thống ..................... - 67 x


Hình 4-12 Lược đồ hoạt động của phần mềm TCHTP dùng JTAG ......................... - 69 Hình 4-13 Lược đồ hoạt động của phần mềm TCHTP dùng ICAP “Debug mode”. - 71 Hình 4-14 Lược đồ hoạt động của phần mềm TCHTP dùng ICAP “Stream mode” - 72 Hình 4-15 Thuật giải của hàm quét một “block” dùng lõi kép và hỗ trợ TCHTP ... - 74 Hình 5-1 Tốc độ quét virus với các cấu hình “packet” buffer khác nhau ................. - 78 Hình 5-2 So sánh tốc độ với cấu hình “core_clk” khác nhau ................................... - 83 Hình 5-3 “Floor-plan” cho vùng động của hệ thống dùng planAhead ..................... - 84 Hình 5-4 Kết quả hiện thực với kích thước vùng động lớn hơn yêu cầu .................. - 86 Hình 5-5 Lỗi “timing violation” khi vùng động lớn và có “ICAP controller” ......... - 87 Hình 5-6 Kết quả khơng có lỗi sau khi đã thay đổi ràng buộc vị trí của vùng động - 88 -

xi



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 tồ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. Ngồ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-


1.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 q 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 đó.

1.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 tồ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 tồ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.

-4-


CHƯƠNG 2.

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 tồ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.

2.1 Tổng quan về thiết bị FPGA và quá trình cấu hình FPGA
2.1.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.

1. Các khối luận lý khả lập trình (CLB)

2. Các khối có sẵn
(Block RAM, DSP)
3. Các bộ đệm vào ra
(kết nối với I/O PAD)

5. Các tài nguyên để tạo
nhịp xung “clock” hoạt
động cho thiết bị
(clock resources)

4. Các tài nguyên
để kết nối
(routing 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 ngun bộ nhớ có sẵn. Ngồ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” để chun 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.
Carry
out

Carry
Chain

D

LUT

Q

Carry

in

S/R

(b)

(a)
Hình 2-2 Cấu trúc của một CLB

Thành phần chủ yếu thứ hai của một thiết bị FPGA là các khối tài nguyên thiết kế
sẵn. Đây là các tài nguyên bộ nhớ, gọi là block RAM và các khối chuyên dụng cho
cách các xử lý tín hiệu số (DSP) hay tốn học như các bộ nhân, chia. Các block RAM
có thể được lập trình để đóng vai trị là các bộ nhớ SP (Single Port) chỉ có thể hoặc đọc
hoặc ghi tại mỗi thời điểm, hay DP (Dual Port) cho phép q trình đọc và ghi có thể
diễn ra đồng thời trên hai “port” khác nhau. Ngồi ra cịn có các logic đi kèm để có thể
dễ dàng lập trình kết nối các block RAM thành các bộ nhớ lớn hơn, hay dễ dàng kết nối
các block RAM với các mạch điều khiển thành một FIFO hồn chỉnh. Hình 2-3 minh
họa cấu trúc một bộ DSP có sẵn trong thiết bị FPGA Xilinx.

-6-


48

48

A:B

B REG
CE

D
Q
2-Deep

B

C

D

Input Conditioning

A

ALUMode

18

M REG
CE
D

72 36 0

Q

A REG
CE
D
Q

2-Deep

36 0
1

25

X

4

P REG
CE
D

Y

P

Z

17-bit shift

PATTERN
DETECT

=

C REG


CarryIn

Q

Z-1
Z-2

48

0

17-bit shift

CE
D

Q

C or MC

7
OpMode

MULT

Z-1

OP
CTL


48

ADD

Z-1

Hình 2-3 Cấu trúc của một tài nguyên DSP có sẵn

Các bộ DSP có sẵn đã được thiết kế tối ưu cho phép người dùng có thể trực tiếp
thiết kế các hệ thống cần nhiều tính tốn toán học đạt hiệu suất cao. Các tài nguyên cấu
thành một DSP có thể được cấu hình để sử dụng như các tài nguyên thông thường khi
cần thiết. Chẳng hạn như người dùng có thể sử dụng các bộ nhân (MULT) trong các
DSP có sẵn làm bộ nhân trong các mạch được thiết kế bởi người dùng. Tất nhiên, trong
những trường hợp đó, hiệu suất thường khơng cao.
Thành phần chính yếu thứ ba là các bộ đệm vào ra dùng để kết nối các thành phần
bên trong với các cổng I/O (còn gọi là I/O PAD) cho phép FPGA giao tiếp với các thiết
bị bên ngoài chẳng hạn như bộ nhớ SDRAM. Các chip FPGA cịn có sẵn các khối
SERDES (ISERDES hay OSERDES) sử dụng trong việc thiết kế các chuẩn giao tiếp
tuần tự tốc độ cao. Thành phần thứ tư trong một chip FPGA là thành phần dùng để kết
nối các tài nguyên với nhau. Điều đặc biệt là các kết nối này có thể lập trình được cho
phép có thể tùy biến thay đổi việc kết nối các khối luận lý với nhau khi thiết kế của hệ
thống thay đổi. Đây là một trong những đặc điểm nổi bật làm cho thiết bị FPGA rất
uyển chuyển, tuy nhiên nó cũng là điểm có thể hạn chế tốc độ của các thiết bị FPGA so
với các thiết bị ASIC vì cần phải sử dụng các tài nguyên kết nối có sẵn để kết nối các
khối chức năng. Ta khơng thể tùy ý lựa chọn kết nối như trong các thiết bị ASIC.
“Routing” vì vậy thường là bài tốn phức tạp trong thiết kế FPGA. Cuối cùng, một bộ
phận không thể thiếu trong thiết bị FPGA dù không được thể hiện rõ trong hình 2-1,
chính là các tài ngun để sinh ra nhịp xung clock từ clock tham khảo đầu vào
-7-



(reference clock) và phân phối các tín hiệu clock này đến tất cả các thành phần mạch
tuần tự trong toàn bộ thiết bị. Cũng tương tự như các “routing resources” thì các tài
ngun này có thể tái lập trình. Chẳng hạn như ta có thể dễ dàng thay đổi đầu vào của
một MMCM (Mixed-Mode Clock Manager) để thay đổi tần số của clock đầu ra. Tuy
nhiên việc phải sử dụng các tài nguyên thiết kế sẵn để tạo và phân tán các tín hiệu
clock làm cho hiệu suất của FPGA thấp hơn thiết bị ASIC nơi mà người dùng có thể
phân tán các tín hiệu clock một cách “tự do” hơn.
Ngồi năm thành phần cơ bản vừa trình bày, tùy thuộc vào nhà sản xuất, hay dòng
sản phẩm mà các thiết bị FPGA có thể có thêm các khối chức năng có sẵn. Chẳng hạn
như chip FPGA XC5VFX70T của Xilinx có tích hợp sẵn một PowerPC Processor,
trong khi chip XC5VSX240T có tích hợp sẵn 4 Ethernet MAC (Media Accessor
Controller) [3]

-8-


2.1.2 Quy trình thiết kế và tái cấu hình truyền thống - tái cấu hình tồn bộ
Như đã đề cập ở phần mở đầu, điểm mạnh chính yếu của FPGA so với các thiết bị
phần cứng dùng ASIC chính là tính uyển chuyển nhờ khả năng tái cấu hình. Phần này
sẽ sơ lược về quy trình thiết kế hệ thống sử dụng cách thức cấu hình tồn bộ phổ biến
[4]. Hình 2-4 (a) minh họa một quy trình thiết kế FPGA thơng thường và hình 2-4 (b) ở
bên phải minh họa chi tiết các các bước để “tải” hay là cấu hình một chip FPGA của
Xilinx. Cách thức cấu hình cho FPGA của một hãng lớn (như Altera) cũng tương tự.

(a)

(b)
Hình 2-4 Quy trình thiết kế và tái cấu hình truyền thống


Có hai điểm cần lưu ý ở đây. Một là ngoại trừ các bước thiết kế 1 và 2 phụ thuộc
nhiều vào người phát triển hệ thống, thì các bước cịn lại trong quy trình thiết kế hầu
hết có thể được thực hiện tự động bằng các công cụ EDA (được cung cấp bởi các nhà
sản xuất), người phát triển chủ yếu chỉ phải thực hiện việc xác lập các mục tiêu về tốc
độ và ánh xạ các cổng I/O (trong nhiều trường hợp có thể tái sử dụng các ánh xạ mẫu
của các nhà cung cấp board mạch chủ). Mỗi khi cần thay đổi hệ thống, người phát triển
chỉ cần phải sửa thiết kế HDL, và sử dụng công cụ EDA để tự động lặp lại các bước
-9-


một cách rất thuận tiện. Điểm lưu ý còn lại nằm ở bước 6.1, đó là tồn bộ bộ nhớ cấu
hình (configuration memory) phải được xóa trước khi tải bitstream mới xuống thiết bị.
Vì vậy, tồn bộ hệ thống phải ngưng hoạt động cho đến khi dữ liệu cấu hình mới được
tải vào hệ thống từ các thiết bị lưu trữ bên ngồi. Cũng vì tính chất này mà cách thức
tái cấu hình này cịn được gọi là tái cấu hình tĩnh (static reconfiguration). Ví dụ như
tồn bộ bitstream của thiết bị là 10Mb, tốc độ cấu hình là khoảng 10Mb/s (dùng Flash
tốc độ cao) thì quá trình tái cấu hình tốn ít nhất là 1 giây (chưa kể cả “overhead” khác).
Việc phải tạm ngưng hoạt động trong 1 giây tuy nhiên lại là không thể chấp nhận trong
các hệ thống an ninh đòi hỏi đáp ứng liên tục. Quá trình truyền nhận dữ liệu cấu hình
“bitstream” chỉ được thực hiện qua các chuẩn giao tiếp bên ngoài cũng làm cho tốc độ
tái cấu hình khơng cao vì các chuẩn giao tiếp này thường có tốc độ thấp.

- 10 -


×