1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu phương pháp giải ràng buộc SMT và áp dụng để phát hiện lỗi tràn số cho mô hình hệ thống nhúng

69 2 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

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 2,28 MB

Nội dung

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - ĐỖ THÁI NGỌC TRUNG NGHIÊN CỨU PHƯƠNG PHÁP GIẢI RÀNG BUỘC SMT VÀ ÁP DỤNG ĐỂ PHÁT HIỆN LỖI TRÀN SỐ CHO MƠ HÌNH SIMULINK LUẬN VĂN THẠC SĨ KỸ THUẬT HÀ NỘI - 2021 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG - ĐỖ THÁI NGỌC TRUNG NGHIÊN CỨU PHƯƠNG PHÁP GIẢI RÀNG BUỘC SMT VÀ ÁP DỤNG ĐỂ PHÁT HIỆN LỖI TRÀN SỐ CHO MƠ HÌNH SIMULINK CHUN NGÀNH : HỆ THỐNG THÔNG TIN MÃ SỐ : 8.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐỖ THỊ BÍCH NGỌC HÀ NỘI - 2021 i LỜI CAM ĐOAN Tôi xin cam đoan nội dung luận văn thực hướng dẫn TS Đỗ Thị Bích Ngọc Mọi tham khảo dùng luận văn trích dẫn nguồn gốc rõ ràng Các nội dung nghiên cứu kết đề tài trung thực chưa cơng bố cơng trình TÁC GIẢ Đỗ Thái Ngọc Trung ii MỤC LỤC LỜI CAM ĐOAN i DANH MỤC BẢNG iv DANH MỤC HÌNH ẢNH v DANH MỤC TỪ VIẾT TẮT vi LỜI CẢM ƠN vii LỜI MỞ ĐẦU CHƯƠNG I: TỔNG QUAN .3 1.1 Hệ thống nhúng vấn đề lỗi tràn số 1.1.1 Hệ thống nhúng 1.1.2 Vấn đề lỗi tràn số .4 1.1.3 Mơ hình hệ thống nhúng MATLAB/Simulink .4 1.1.4 Lỗi tràn số MATLAB/Simulink 1.2 Kiểm chứng mơ hình hệ thống dựa giải SMT 1.2.1 Giới thiệu SAT Solver 1.2.2 Giới thiệu SMT Solver 1.2.3 Chuẩn SMT-LIB .10 1.2.4 Bộ giải SMT Z3 .12 1.2.5 Biến đổi mô hình hệ thống nhúng thành ràng buộc số 14 1.3 Phát biểu toán 16 1.4 Kết luận chương 16 CHƯƠNG II: KIỂM CHỨNG LỖI TRÀN SỐ CỦA MÔ HÌNH HỆ THỐNG NHÚNG 17 2.1 Phân tích điểm gây lỗi tràn số mơ hình Matlab/Simulink .17 2.2 Ràng buộc SMT cho tốn kiểm chứng lỗi tràn số mơ hình hệ thống nhúng .24 2.3 Kết luận chương 25 CHƯƠNG III: THỰC NGHIỆM VÀ ĐÁNH GIÁ 26 3.1 Xây dựng hệ thống phát lỗi tràn số 26 3.2 Kết thực nghiệm .28 3.2.1 Các mơ hình thực nghiệm 28 3.2.2 Kết thực nghiệm .29 3.3 Kết luận chương 30 KẾT LUẬN 31 TÀI LIỆU THAM KHẢO 32 PHỤ LỤC 33 A Ràng buộc SMT cho mơ hình Counter_harness 33 B Ràng buộc SMT cho mơ hình ControlSpeed_harness 36 C Ràng buộc SMT cho mô hình SpeedCals_harness 48 iii BẢN CAM ĐOAN iv DANH MỤC BẢNG Bảng 1: Danh sách hàm sử dụng Math Function 20 Bảng 2: Kết đầu Sign .22 Bảng 3: Danh sách tham số hàm Sqrt 23 Bảng 4: Ràng buộc tràn số cho loại block 25 Bảng 5: Giá trị block có lỗi tràn số sinh hệ thống 26 Bảng 6: Kết thực nghiệm .29 v DANH MỤC HÌNH ẢNH Hình 1: Một số ví dụ điển hình hệ thống nhúng Hình 2: Màn hình tiêu chuẩn sau khởi động MATLAB Hình 3: Khởi động Simulink Hình 4: Giao diện khởi động Simulink Hình 5: Mơ hình Simulink tính tổng hai số Hình 6: Kết xảy tràn số .8 Hình 7: Mơ hình giải vấn đề SAT Hình 8: Tập câu lệnh SMT-LIB 11 Hình 9: Ví dụ block sum – tính tổng 15 Hình 10: Ví dụ block relation - so sánh 15 Hình 11: Ví dụ block switch - lựa chọn .15 Hình 12: Ví dụ block UnitDelay - làm trễ .16 Hình 13: Giao diện hệ thống 26 Hình 14: Kết phân tích mơ hình Counter_harness.slx có tràn số .26 Hình 15: Mơ hình Counter_harness 28 Hình 16: Mơ hình ControlSpeed_harness 28 Hình 17: Mơ hình SpeedCals_harness 29 vi DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt Tiếng Anh IOT Internet of Things SAT Satisfiability SMT Satisfiability Modulo Theories Overflow Simulink Model Block Tiếng Việt/Giải thích Mạng lưới vạn vật kết nối Internet Thoả đáng Bài toán lý thuyết modulo thoả đáng Lỗi tràn số Mơ hình tính tốn mơ Simulink Các phần tử mà Simulink dùng để tạo mơ hình vii LỜI CẢM ƠN Lời đầu tiên, học viên xin gửi lời cảm ơn đến thầy, cô Khoa Công nghệ thông tin Học viện Cơng nghệ Bưu Chính Viễn thơng, người năm vừa qua truyền đạt cho học viên nhiều kiến thức, kinh nghiệm quý báu Học viên xin gửi lời cảm ơn chân thành đến giảng viên - TS Đỗ Thị Bích Ngọc, người tận tình hướng dẫn bảo học viên tận tình trình thực luận văn Những lời khun suốt q trình giúp học viên có thêm nhiều kiến thức kinh nghiệm lĩnh vực nghiên cứu khoa học Học viên xin gửi lời cảm ơn đến anh chị, bạn Khoa sau Đại học, cảm ơn tất người tạo môi trường học tập chuyên nghiệp, sáng tạo để học viên phát triển ngày hôm Cuối cùng, học viên xin cảm ơn gia đình bạn bè, người cạnh, quan tâm, chia sẻ, tạo điều kiện tốt cho học viên để hoàn thành luận văn Hà Nội, ngày 01 tháng 12 năm 2021 HỌC VIÊN CAO HỌC Đỗ Thái Ngọc Trung LỜI MỞ ĐẦU Cách mạng công nghiệp lần thứ tư (Cách mạng công nghiệp 4.0) nâng tầm quan trọng công nghệ sống chúng ta, bao gồm: AI, BigData, IOT, … Là phần thiếu IOT, hệ thống nhúng ngày quan tâm phát triển Hệ thống nhúng (tiếng Anh: embedded system) thuật ngữ để hệ thống có khả tự trị nhúng vào môi trường hay hệ thống mẹ Đó hệ thống tích hợp phần cứng phần mềm phục vụ toán chuyên dụng nhiều lĩnh vực công nghiệp, tự động hố điều khiển, quan trắc truyền tin Vì vậy, nhiều hệ thống nhúng có yêu cầu cao chất lượng, tính ổn định độ tin cậy Bên cạnh đó, lỗi trên hệ thống nhúng khơng sửa được, sửa chi phí cao, phải thu hồi sản phẩm hoặc thiết kế lại toàn Đó lý cơng cụ hỗ trợ thiết kế mơ hình hệ thống nhúng áp dụng ngày nhiều Việc thiết kế mơ hình hệ thống nhúng công cụ trước thiết kế mẫu thật cần thiết để dễ dàng phát hiện, sửa lỗi chỉnh sửa thiết kế nhằm đảm bảo chất lượng Hiện nhiều kỹ thuật nghiên cứu sử dụng để đảm bảo chất lượng hệ thống nhúng Hai kỹ thuật truyền thống sử dụng để đảm bảo chất lượng hệ thống kiểm thử hệ thống (Software testing) kiểm chứng hệ thống (Software verification) Tuy nhiên việc sử dụng phương pháp kiểm thử làm giảm bớt lỗi hệ thống mà kết luận hệ thống khơng có lỗi Các phương pháp kiểm chứng quan tâm số việc chứng minh tính đắn hệ thống với tính chất cho trước (ví dụ: số mảng ln nằm biên, giá trị số nằm giới hạn biểu diễn…) Hiện hướng nghiên cứu SMT (Satisfiability Modulo Theories) quan tâm rộng rãi chúng đóng vai trị quan trọng tốn kiểm chứng hệ thống thoả mãn tính chất cho trước hay khơng SMT đóng vai trị cơng cụ (backend engine) công cụ kiểm chứng hệ thống Các tốn kiểm chứng tính chất cho trước đưa giải tính thỏa mãn (SAT/UNSAT) cơng thức logic công cụ SMT Lỗi tràn số xảy giá trị số hệ thống vượt khả biểu diễn thiết kế Ví dụ số integer bit biểu diễn giá trị lớn 28 -1 = 255, trường hợp số lớn vượt khả biểu diễn Lỗi tràn số có dẫn tới hệ thống tính tốn sai lệch nghiêm trọng Vì việc kiểm sốt để hệ thống không bị tràn số quan trọng, đặc biệt hệ thống nhúng thường cần dùng kiểu liệu với khả biểu diễn giá trị nhỏ (8 bit, 16 bit) Tuy nhiên, lỗi tràn số thường khó phát Lý lỗi tràn số thường xảy sau chuỗi tính tốn số học q trình hệ thống thực hiện, xảy từ input đầu vào Việc kiểm thử để phát lỗi tràn số gặp thách thức lớn phải nghĩ liệu để dẫn tới giá trị tràn số 46 (assert ( v_sum3_9 32767.000000) (> -32768.000000 v_sum1_0) (> v_sum1_0 32767.000000) (> -32768.000000 v_sum1_1) (> v_sum1_1 32767.000000) (> -32768.000000 v_sum1_2) (> v_sum1_2 32767.000000) (> -32768.000000 v_sum1_3) (> v_sum1_3 32767.000000) (> -32768.000000 v_sum1_4) (> v_sum1_4 32767.000000) (> -32768.000000 v_sum1_5) (> v_sum1_5 32767.000000) (> -32768.000000 v_sum1_6) (> v_sum1_6 32767.000000) 47 (> -32768.000000 v_sum1_7) (> v_sum1_7 32767.000000) (> -32768.000000 v_sum1_8) (> v_sum1_8 32767.000000) (> -32768.000000 v_sum1_9) (> v_sum1_9 32767.000000) (> -32768.000000 v_gain1_0) (> v_gain1_0 32767.000000) (> -32768.000000 v_gain1_1) (> v_gain1_1 32767.000000) (> -32768.000000 v_gain1_2) (> v_gain1_2 32767.000000) (> -32768.000000 v_gain1_3) (> v_gain1_3 32767.000000) (> -32768.000000 v_gain1_4) (> v_gain1_4 32767.000000) (> -32768.000000 v_gain1_5) (> v_gain1_5 32767.000000) (> -32768.000000 v_gain1_6) (> v_gain1_6 32767.000000) (> -32768.000000 v_gain1_7) (> v_gain1_7 32767.000000) (> -32768.000000 v_gain1_8) (> v_gain1_8 32767.000000) (> -32768.000000 v_gain1_9) (> v_gain1_9 32767.000000) (> -32768.000000 v_gain2_0) (> v_gain2_0 32767.000000) (> -32768.000000 v_gain2_1) (> v_gain2_1 32767.000000) (> -32768.000000 v_gain2_2) (> v_gain2_2 32767.000000) (> -32768.000000 v_gain2_3) (> v_gain2_3 32767.000000) (> -32768.000000 v_gain2_4) (> v_gain2_4 32767.000000) (> -32768.000000 v_gain2_5) (> v_gain2_5 32767.000000) (> -32768.000000 v_gain2_6) (> v_gain2_6 32767.000000) (> -32768.000000 v_gain2_7) (> v_gain2_7 32767.000000) (> -32768.000000 v_gain2_8) (> v_gain2_8 32767.000000) (> -32768.000000 v_gain2_9) (> v_gain2_9 32767.000000) (> -32768.000000 v_mulps1_0) (> v_mulps1_0 32767.000000) (> -32768.000000 v_mulps1_1) (> v_mulps1_1 32767.000000) (> -32768.000000 v_mulps1_2) (> v_mulps1_2 32767.000000) (> -32768.000000 v_mulps1_3) (> v_mulps1_3 32767.000000) (> -32768.000000 v_mulps1_4) (> v_mulps1_4 32767.000000) (> -32768.000000 v_mulps1_5) (> v_mulps1_5 32767.000000) (> -32768.000000 v_mulps1_6) (> v_mulps1_6 32767.000000) (> -32768.000000 v_mulps1_7) (> v_mulps1_7 32767.000000) (> -32768.000000 v_mulps1_8) (> v_mulps1_8 32767.000000) (> -32768.000000 v_mulps1_9) (> v_mulps1_9 32767.000000) (> -32768.000000 v_sum2_0) (> v_sum2_0 32767.000000) (> -32768.000000 v_sum2_1) (> v_sum2_1 32767.000000) (> -32768.000000 v_sum2_2) (> v_sum2_2 32767.000000) 48 (> -32768.000000 v_sum2_3) (> v_sum2_3 32767.000000) (> -32768.000000 v_sum2_4) (> v_sum2_4 32767.000000) (> -32768.000000 v_sum2_5) (> v_sum2_5 32767.000000) (> -32768.000000 v_sum2_6) (> v_sum2_6 32767.000000) (> -32768.000000 v_sum2_7) (> v_sum2_7 32767.000000) (> -32768.000000 v_sum2_8) (> v_sum2_8 32767.000000) (> -32768.000000 v_sum2_9) (> v_sum2_9 32767.000000) (> -32768.000000 v_satu1_0) (> v_satu1_0 32767.000000) (> -32768.000000 v_satu1_1) (> v_satu1_1 32767.000000) (> -32768.000000 v_satu1_2) (> v_satu1_2 32767.000000) (> -32768.000000 v_satu1_3) (> v_satu1_3 32767.000000) (> -32768.000000 v_satu1_4) (> v_satu1_4 32767.000000) (> -32768.000000 v_satu1_5) (> v_satu1_5 32767.000000) (> -32768.000000 v_satu1_6) (> v_satu1_6 32767.000000) (> -32768.000000 v_satu1_7) (> v_satu1_7 32767.000000) (> -32768.000000 v_satu1_8) (> v_satu1_8 32767.000000) (> -32768.000000 v_satu1_9) (> v_satu1_9 32767.000000))) (check-sat) (get-model) C Ràng buộc SMT cho mơ hình SpeedCals_harness ;;; Model: SpeedCals_harness ;; Declare ; [Test Unit.In1] ; uint8 (declare-const v_in1_0 Int) (declare-const v_in1_1 Int) (declare-const v_in1_2 Int) (declare-const v_in1_3 Int) (declare-const v_in1_4 Int) (declare-const v_in1_5 Int) (declare-const v_in1_6 Int) (declare-const v_in1_7 Int) (declare-const v_in1_8 Int) (declare-const v_in1_9 Int) 49 (assert ( v_subtract2_3 255) 58 (< v_subtract2_4 -256) (> v_subtract2_4 255) (< v_subtract2_5 -256) (> v_subtract2_5 255) (< v_subtract2_6 -256) (> v_subtract2_6 255) (< v_subtract2_7 -256) (> v_subtract2_7 255) (< v_subtract2_8 -256) (> v_subtract2_8 255) (< v_subtract2_9 -256) (> v_subtract2_9 255) (< v_gain1_0 -256) (> v_gain1_0 255) (< v_gain1_1 -256) (> v_gain1_1 255) (< v_gain1_2 -256) (> v_gain1_2 255) (< v_gain1_3 -256) (> v_gain1_3 255) (< v_gain1_4 -256) (> v_gain1_4 255) (< v_gain1_5 -256) (> v_gain1_5 255) (< v_gain1_6 -256) (> v_gain1_6 255) (< v_gain1_7 -256) (> v_gain1_7 255) (< v_gain1_8 -256) (> v_gain1_8 255) (< v_gain1_9 -256) (> v_gain1_9 255) ) ) (check-sat) (get-model) BẢN CAM ĐOAN Học viên cam đoan thực kiểm tra mức độ tương đồng luận văn qua phần mềm DoIT cách trung thực đạt kết mức độ tương đồng 11% toàn nội dung luận văn Bản luận văn kiểm tra qua phần mềm cứng luận văn nộp để bảo vệ trước hội đồng Nếu sai học viên xin chịu hình thức kỷ luật theo quy định hành Học viện Hà Nội, ngày 01 tháng 12 năm 2021 HỌC VIÊN CAO HỌC Đỗ Thái Ngọc Trung Hệ thống hỗ trợ nâng cao chất lượng tài liệu KẾT QUẢ KIỂM TRA TRÙNG LẶP TÀI LIỆU THÔNG TIN TÀI LIỆU Tác giả Đỗ Thái Ngọc Trung Tên tài liệu Do Thai Ngoc Trung (6NgocSua) (1) Thời gian kiểm tra 05-12-2021, 11:54:13 Thời gian tạo báo cáo 05-12-2021, 11:56:16 KẾT QUẢ KIỂM TRA TRÙNG LẶP Điểm 11 Nguồn trùng lặp tiêu biểu [text.123doc.org, 123doc.org, vi.wikipedia.org] (*) Kết trùng lặp phụ thuộc vào liệu hệ thống thời điểm kiểm tra ... bày hệ thống phát lỗi tràn số đơn giản cho mơ hình hệ thống nhúng Simulink Bên cạnh đó, kết thực nghiệm mơ hình hệ thống nhúng chứng tỏ hệ thống xây dựng phát lỗi tràn số cho mơ hình hệ thống nhúng. .. Xây dựng hệ thống phát lỗi tràn số Luận văn xây dựng hệ thống phát lỗi tràn số với đầu vào mơ hình Simulink file SMT biểu diễn ràng buộc mơ hình, u cầu kiểm chứng lỗi tràn số (Hình 13) Hệ thống. .. CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - ĐỖ THÁI NGỌC TRUNG NGHIÊN CỨU PHƯƠNG PHÁP GIẢI RÀNG BUỘC SMT VÀ ÁP DỤNG ĐỂ PHÁT HIỆN LỖI TRÀN SỐ CHO MƠ HÌNH SIMULINK CHUN NGÀNH : HỆ THỐNG

Ngày đăng: 15/04/2022, 10:53

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w