Công trình được hoàn thành tại:
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội.
Người hướng dẫn khoa học: PGS.TS. Nguyễn Ngọc Bình
Phản biện 1: ………………………………………………
Phạm Văn Hưởng
Phản biện 2: ………………………………………………
Phản biện 3: ……………………………………………....
CÁC PHƯƠNG PHÁP TỐI ƯU TRONG PHÁT TRIỂN PHẦN MỀM NHÚNG
Luận án tiến sĩ sẽ được bảo vệ trước hội đồng cấp Đại học Quốc gia chấm
luận án tiến sĩ họp tại…………………………………………
Chuyên ngành: Kỹ thuật phần mềm
Vào hồi giờ ngày tháng năm
Có thể tìm hiểu luận án tại:
- Thư viện Quốc gia Việt Nam
- Trung tâm Thông tin – Thư viện, Đại học Quốc gia Hà Nội
Mã số: 62 48 01 03 TÓM TẮT LUẬN ÁN TIẾN SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
Hà Nội – 2014
1 2
Tối ưu trong kỹ nghệ xuôi
Tối ưu hóa trong kỹ nghệ ngược
Chương 1. TỔNG QUAN
Giai đoạn thiết kế
1.1. Tổng quan về tối ưu phần mềm hệ thống nhúng
Mô hình thiết kế
Tối ưu trong giai đoạn thiết kế
Mô hình thiết kế
Mô hình thiết kế tốt
Chuyển đổi ngược
Trong luận án này, đầu tiên chúng tôi điều tra, phân tích các nghiên cứu liên quan để xây dựng mô hình tổng thể cho bài toán tối ưu phần mềm nhúng như trong Hình 1.1. Bài toán tối ưu phần mềm nhúng được chia thành hai hướng tiếp cận chính là tối ưu trong kỹ nghệ xuôi và tối ưu hóa kết hợp với kỹ nghệ ngược. Hướng tiếp cận tối ưu trong kỹ
nghệ xuôi, bắt đầu từ đặc tả yêu cầu, có thể thiết kế phần mềm nhúng theo các mô hình thiết kế khác nhau và dựa trên các phương pháp tối ưu trong giai đoạn thiết kế để lựa
Giai đoạn cài đặt
Mã nguồn mức cao
Tối ưu độc lập CPU
Mã nguồn mức cao
Biên dịch chéo
Dịch ngược
Mã nguồn mức cao tốt
chọn các mô hình tốt. Trong giai đoạn cài đặt, từ các mô hình thiết kế tốt, có thể cài đặt phần mềm nhúng theo mã nguồn mức cao độc lập CPU và thực hiện các phương pháp tối ưu trên mã nguồn mức cao. Vấn đề tối ưu phần mềm nhúng trong giai đoạn thiết kế và tối ưu mã nguồn mức cao cũng tương tự như phần mềm thông thường. Mã nguồn mức cao
được biên dịch chéo để tạo thành mã hợp ngữ gắn với một CPU nhúng cụ thể. Trong mức mã hợp ngữ, các phương pháp tối ưu mức thường mang tính đặc thù theo kiểu kiến trúc CPU và môi trường phần cứng cụ thể của mỗi hệ thống nhúng. Mã hợp ngữ có thể được
Các khía cạnh tối ưu: - Tối ưu hiệu năng - Tối ưu bộ nhớ, … - Tối ưu đa mục tiêu
Mã hợp ngữ (80x86, ARM, MIPS, Power, …)
Mã hợp ngữ (80x86, ARM, MIPS, Power, …)
Tối ưu hướng CPU đích
biên dịch và liên kết để tạo ra các tệp tin thực thi. Trong giai đoạn thực thi, các phương
Mã hợp ngữ tối ưu
Dịch ngược
Hợp dịch và liên kết
pháp tối ưu phần mềm nhúng chủ yếu tập trung vào tối ưu môi trường thực thi, đặc tả dữ liệu và tái cấu hình CPU. Căn cứ vào các nghiên cứu về phương pháp tối ưu trong kỹ nghệ xuôi, chúng tôi cũng đưa ra hướng tiếp cận tối ưu hóa dựa trên kỹ nghệ ngược. Kỹ nghệ ngược là một
Tệp tin thực thi: - Dạng nhị phân - Mã máy ảo
khía cạnh quan trọng trong tái kỹ nghệ phần mềm. Đây là một xu hướng nghiên cứu mới và triển vọng trong phát triển phần mềm nói chung. Kỹ nghệ ngược có thể được thực hiện theo các mức khác nhau như từ mã thực thi dịch ngược sang mã hợp ngữ, từ mã hợp ngữ có thể dịch ngược sang mã nguồn mức cao, từ mã nguồn mức cao được chuyển ngược
thành các mô hình thiết kế. Mã hợp ngữ cũng có thể được chuyển ngược thành mô hình mà không cần thông qua mã nguồn mức cao. Đầu ra tại mỗi mức trong kỹ nghệ ngược có
Giai đoạn thực thi: tối ưu môi trường, dữ liệu, mã thực thi
thể được tối ưu theo mức tương ứng trong kỹ nghệ xuôi. Như vậy tối ưu hóa trong kỹ nghệ ngược là sự kết hợp giữa kỹ nghệ ngược và mức tối ưu tương ứng trong kỹ nghệ xuôi.
Hình 1.1: Mô hình tối ưu tổng thể trong phát triển phần mềm nhúng
1 2
LUẬN ÁN
Chương 1. Tổng quan
- Điều tra, phân tích, tổng hợp hiện trạng nghiên cứu - Xây dựng mô hình tối ưu tổng thể - Các công trình đã xuất bản liên quan đến hệ thống nhúng: [1, 3, 4, 5, 7, 8]
Chương 2. Tối ưu trong giai đoạn thiết kế
Dựa trên đánh giá biểu đồ lớp: - Các nghiên cứu liên quan: [3, 8, 9, 10, 21, 24, 26, 34, 36, 41,75] - Công trình đã xuất bản: [6, 9]
Tối ưu hiệu năng
Dựa trên chuyển đổi mô hình: - Các nghiên cứu liên quan: [6, 7, 24, 34, 61, 73, 82, 93, 106, 108] - Đề xuất: Tối ưu hiệu năng dựa trên DSL, T4 và thu gọn mô hình
Tối ưu bộ nhớ
Dựa trên sắp xếp Tô-pô - Các nghiên cứu liên quan: [25, 59, 73, 74, 109] - Các công trình đã xuất bản: [2, 10]
1.2. Phạm vi, nội dung, phương pháp nghiên cứu và kết cấu luận án Theo mô hình tổng thể đã đưa ra trong Hình 1.1, tối ưu phần mềm nhúng là bài toán phức tạp bao gồm nhiều khía cạnh tối ưu, và có thể tiến hành trong các giai đoạn khác nhau và có hai cách tiếp cận là dựa trên kỹ nghệ xuôi và kỹ nghệ ngược. Mục tiêu nghiên cứu trong luận án nhằm xây dựng một khung nhìn tổng thể về tối ưu phần mềm nhúng theo các giai đoạn trong vòng đời phần mềm và nghiên cứu các phương pháp tối ưu một cách hệ thống từ giai đoạn thiết kế đến triển khai. Trên cơ sở đó, các nghiên cứu trong luận án sẽ góp phần làm nền tảng ban đầu để giải quyết bài toán tối ưu tổng thể một cách hệ thống theo cả kỹ nghệ xuôi và kỹ nghệ ngược. Trong mỗi giai đoạn tối ưu, chúng tôi hệ thống, phân nhóm và đánh giá phương pháp tối ưu làm cơ sở lý thuyết để đưa ra một số cải tiến các phương pháp hiện tại cũng như đề xuất và phát triển một số phương pháp tối ưu mới nhằm góp phần giải quyết bài toán tối ưu tổng thể. Theo đó, trong luận án, chúng tôi sẽ thực hiện các nội dung nghiên cứu cụ thể sau:
Dựa trên chuyển đổi mô hình - Các nghiên cứu liên quan: [7, 34, 35, 36, 50, 68, 82, 92, 93, 104] - Đề xuất: Tối ưu bộ nhớ dựa trên DSL, T4 và chuyển đổi mô hình
Tối ưu đa mục tiêu dựa
- Các nghiên cứu liên quan: [4, 34, 36, 42, 44, 48, 50, 52, 73, 74, 88, 95, 98, 105] - Công trình đã xuất bản: [4, 5, 8, 11]
Tổng hợp, hệ thống và xây dựng mô hình tổng thể về tối ưu phần mềm nhúng. Nghiên cứu, đề xuất và triển khai một số phương pháp tối ưu hướng cấu trúc cho phần mềm nhúng trong giai đoạn thiết kế như tối ưu hiệu năng, tối ưu bộ nhớ và tối ưu đa mục tiêu theo hướng tiếp cận dựa trên mô phỏng và dựa trên đánh giá mô hình.
Chương 3. Tối ưu trong giai đoạn cài đặt
Dựa trên thay thế biểu thức tương đương - Các nghiên cứu liên quan: [12, 29, 43, 46, 69, 72] - Công trình đã xuất bản: [12]
Tối ưu mã nguồn độc lập CPU
Nghiên cứu, đề xuất và phát triển một số phương pháp cải tiến hiệu năng mã nguồn mức cao độc lập kiến trúc đích. Đồng thời chúng tôi cũng đề xuất và triển khai một số phương pháp mới tối ưu hiệu năng và năng lượng mức mã hợp ngữ dựa trên lập lịch tập lệnh.
Dựa trên nén dữ liệu - Các nghiên cứu liên quan: [20, 45, 53, 66, 70, 71, 91]
Tổng hợp các phương pháp tối ưu trong giai đoạn thực thi và đề xuất, triển khai
Tối ưu mã hợp ngữ hướng CPU
- Các nghiên cứu liên quan: [28, 30, 33, 56, 69, 72, 78] - Đề xuất: Tối ưu phần mềm nhúng dựa trên kỹ nghệ ngược (chờ phản biện ở tạp chí SCI: IEICE). Tối ưu hiệu năngdựa trên lập lịch tập lệnh mức CPU (chờ phản biện vòng 2 ở tạp chí SCI: JCSC)
phương pháp tối ưu dựa trên kỹ nghệ ngược và tái cấu hình CPU.
Chương 4. Tối ưu trong giai đoạn thực thi
Phát triển phần mềm nhúng (nhận dạng chữ Nôm) trên điện thoại di động cũng như xây dựng bộ chương trình nhúng mức thấp để thử nghiệm và đánh giá các phương pháp tối ưu.
Tối ưu môi trường thực thi
- Các nghiên cứu liên quan: [18, 31, 39, 49, 67, 85, 90] - Đề xuất: Tối ưu điện năng tiêu thụ dựa trên kỹ nghệ ngược và tái cấu hình CPU (báo cáo tại FAIR 2014)
Các nghiên cứu liên quan: [39, 55, 85, 86]
Tối ưu dữ liệu
Các nghiên cứu liên quan: [39, 85, 86]
Tối ưu mã thực thi
Xây dựng các công cụ DSL và T4: Biểu đồ lớp, biểu đồ tác vụ phụ thuộc
Xây dựng các chương trình tối ưu: hiệu năng, bộ nhớ, đa mục tiêu
trình
Cấu trúc tổng thể của luận án được chỉ ra trong Hình 1.2 và các chương còn lại của luận án được tổ chức như sau: Chương 2: Tối ưu phần mềm nhúng trong giai đoạn thiết kế; Chương 3: Tối ưu phần mềm nhúng trong giai đoạn cài đặt; Chương 4: Tối ưu phần mềm nhúng trong giai đoạn thực thi; Chương 5: Tổng hợp các chương trình thực nghiệm; Chương 6: Kết luận.
Chương 5. Tổng hợp các chương thực nghiệm
Tổng hợp các chương trình thử nghiệm: Chữ Nôm, tháp Hà Nội, 8 quân Hậu, sắp xếp nhanh và các chương trình nhúng với giao diện dòng lệnh cho MIPS
Chương 6. Kết luận
Hình 1.2: Cấu trúc tổng thể luận án
3 4
ii. Xây dựng các độ đo và hàm đánh giá hiệu năng
Chương 2. TỐI ƯU PHẦN MỀM NHÚNG TRONG
Các tham số từ biểu đồ lớp
Bảng 2.1. Các tham số sử dụng để đánh giá hiệu năng
GIAI ĐOẠN THIẾT KẾ
Tham số
Ký hiệu
Mô tả
Biến tĩnh
Là một thuộc tính tĩnh của một lớp. Được cấp phát bộ
as
nhớ ngay khi nạp chương trình.
Biến đối tượng
Là một thuộc tính của đối tượng. Được cấp phát bộ
ao
nhớ khi đối tượng được tạo.
Tham số phương thức
Là một tham số của một phương thức
p
Tập các lớp
Là tập các lớp trong biểu đồ
A
Tập các phương thức tĩnh
Tập các phương thức tĩnh của một lớp
B
Tập các biến tĩnh
Tập các thuộc tính tĩnh của một lớp
C
Tập các phương thức đối tượng trong một lớp
D
Tập các phương thức đối tượng
Tập các biến đối tượng
Tập các thuộc tính tượng trong một lớp
E
Tập các tham số
Tập các tham số của một phương thức
Biến tham chiếu
Biến tham chiếu để gọi một phương thức
Kiểu trả về
Kiểu dữ liệu trả về từ một phương thức
F vr re
Các độ đo ảnh hưởng đến hiệu năng
Các nghiên cứu về tối ưu trong giai đoạn thiết kế được chia thành ba cách tiếp cận đó là tối ưu dựa trên mô phỏng, dựa trên SPE và dựa trên đánh giá trực tiếp từ các mô hình đặc tả phần mềm. Theo cách tiếp cận dựa trên mô phỏng, từ các đặc tả phần mềm sẽ sinh mã mô phỏng và thực thi mã mô phỏng trên môi trường thật hoặc môi trường giả lập để thống kê, đánh giá nhằm lựa chọn mô hình tốt. Theo cách tiếp cận SPE, từ đặc tả kiến trúc phần mềm sẽ chuyển sang các mô hình hiệu năng sau đó đánh giá mô hình hiệu năng để chọn thiết kế tốt. Tuy nhiên cách tiếp cận SPE chỉ dùng cho lớp bài toán tối ưu hiệu năng trong giai đoạn thiết kế. Cách tiếp cận dựa trên đánh giá trực tiếp các đặc tả phần mềm là một cách tiếp cận mới, hiện tại có rất ít nghiên cứu và chỉ tập trung vào đánh giá hiệu năng phần mềm. Kết quả tối ưu phần mềm nhúng trong giai đoạn thiết kế nhằm đạt được các mô hình phần mềm tốt và các lựa chọn như môi trường, công cụ, thư viện, nền tảng được đưa ra sớm. Ngoài ra đạt được sự phân chia phần cứng – phần mềm tốt cũng là một kết quả tối ưu mức hệ thống có ý nghĩa trong giai đoạn này.