BANG CÁC KÝ HIỆUKý hiệu Mô tả A Tập hợp các cấu trúc song song của các đoạn mã song song a Cấu trúc của một đoạn mã song song đj Cấu trúc song song của đoạn thứ j C Số chu ky đồng hồ hệ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÙI HỮU PHÚC
MOT SO KỸ THUẬT NÂNG CAO HIỆU NANG PHAN MEM NHUNG
TREN BO XU LY DA NHAN
LUẬN AN TIEN SĨ CÔNG NGHỆ THONG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1 PGS TS Nguyễn Ngọc Binh
2 TS Lê Quang Minh
Hà Nội - 2023
Trang 3Lời cam đoan
Tôi xin cam đoan đây là công trình nghiên cứu do tôi thực hiện dưới sự
hướng dẫn Thầy PGS TS Nguyễn Ngọc Bình và Thầy TS Lê Quang Minh tại
Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học
Công nghệ, Đại học Quốc gia Hà Nội Các số liệu và kết quả trình bày trong luận án là trung thực, chưa được công bồ bởi bat kỳ công trình nào khác.
Tác giả
Bùi Hữu Phúc
Trang 4trong quá trình học tập và nghiên cứu hướng mới của luận án cũng như trong
việc hoàn thành luận án.
Tôi xin gửi lời cảm ơn chân thành và sâu sắc tới các Thầy, Cô giáo KhoaCông nghệ Thông tin, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội,đặc biệt là thầy cô trong Bộ môn Công nghệ Phần mềm đã tận tâm đào tạo,cung cấp những kiến thức vô cùng quý giá và đã tạo điều kiện tốt nhất về mọimặt để tôi có thể tập trung, học tập nghiên cứu tại Trường
Đồng thời, tôi xin chân thành cảm ơn các đồng nghiệp tại Học viện Anninh Nhân dân, Cục A05 và các bạn, nghiên cứu sinh đã giúp đỡ, tạo điều kiện
dé tôi học tập, nghiên cứu Đặc biệt, tôi xin chân thành cảm ơn TS Phạm Văn Hưởng đã giúp đỡ, đồng hành cùng tôi trong các công trình nghiên cứu.
Cuối cùng, tôi xin chân thành cảm ơn những người thân trong gia đình
đã luôn động viên, giúp đỡ những lúc tôi gặp khó khăn trong quá trình học tập
và nghiên cứu.
Trang 5BANG THUAT NGỮ ¿- 2 5£©2E2E+£EE2EEEEEEEEE2EE2EE21E21 211211 re, | BANG CÁC KY HIỆU 2-2222 ©5¿22E+EE2EEEEEEEEEEEEEEEEEEEEEEkrrrrrkrervres 4
DANH MỤC CAC BẢNG - - St E111 1111511115111 1151111 1112 7
DANH MỤC CÁC HINH VẼ 2- 555222222222 2EE22EEEEEEEEEEEErrerrred 8
MO ĐẦU - S522 22212212217171211211 211211 11 1111111111111 1 1c eo 10
CHƯƠNG 1 TONG QUAN VE NÂNG CAO HIỆU NĂNG PHAN MEM
NHUNG TREN BO XỬ LY DA NHÂN -ccc¿-cccccccrrrrrrrrrrrrree 181.1 Một số khái niệm - - -©©©-««+++.EE.eeererrtetttt 44272 2 2rrtttttrriirrir 18
1.1.1 Phần mềm nhúng - 2-2-2 + £+S£EE+EE#EE£EE£EEEEEEEEEEEEEEEEEErrkrrkerrree 19
1.1.2 Xử LY SONG SONE - s1 TH TH ng 25
1.1.3 Xử lý đồng bộ và bat đồng bộ -¿- ¿2+ E+SE+E2E2EEeEEEEErErrrrrrred 28
1.1.4 ©Äin i86: 0n .- 29
1.2 Một số nghiên cứu về cải tiến phần mềm nhúng trên bộ xử lý đa nhân 29
1.2.1 Nghiên cứu về nâng cao hiệu năng phần mềm nhúng 29
1.2.2 Nghiên cứu về xử lý song song trên bộ xử lý đa nhân 33
1.2.3 Nghiên cứu về đồng bộ, bất đồng bộ và phân chia dữ liệu 37
1.2.4 Nghiên cứu về IoT và môi trường phát triỂn - 2 ¿2 sec: 44 1.3 Bài toán nâng cao hiệu năng phần mềm nhúng trên bộ xử lý đa nhân.50
1.3.1 Một số thách thức trong nâng cao hiệu năng phần mềm nhúng trên bộ xử
Trang 6CHƯƠNG 2 NANG CAO HIỆU NĂNG DUA TREN LỰA CHỌN 56
TAC VỤ XỬ LÝ SONG SONG - - Set SEEE 1121951121551 212E2EExEEcex 56
2.1 Nâng cao hiệu năng dựa trên lựa chọn các tác vụ xử lý theo điều kiện ràng
1i30012 562.1.2 Phương pháp dé XuẤt 2-22 2 ©x+EE£EE2EEEEEEEEEEEEEkrrkkrrkrrrrrrei 59
VN no vài 0n 64
2.2 Nâng cao hiệu năng dựa trên lựa chọn cấu hình mã nguồn thích hợp 702.2.1 Ý tưởng của phương pháp lựa chọn cau hình mã nguồàn 702.2.2 Phát triển phương pháp 2 2© +E+EE+EE+E££E££E£EEEEEEEEEErrkerkrrrres 71
2.2.3 Thurc NghigM 007 75
2.3 Thao luận và đánh giá kết Quai cssssesssssssssssseesssssssssssesesssssssssssesssessssssseeeseessens 80
2.4 Tổng kết €h0ng s ss°2ss©2EVvsdeEEE2vasseE922vassetoovvassersoorosssrie 82CHƯƠNG 3 NANG CAO HIỆU NANG DUA TREN XỬ LÝ 84
SONG SONG DU LIỆU - 55-5522 kh ườt 84
3.1 Phân chia dữ liệu cân bằng và phân bồ động tới các nhân của bộ xử lý 85
3.1.1 Y tưởng của phương pháp phân chia dữ liệu cân bằng và phân bổ động
tới các nhân của bộ XỬ Ìý - - c +11 TH ng nh ngư, 85
3.1.2 Phương pháp dé xuat cece csscssesssscssessessesecsesessessessesesessessesseaees 86
3.1.3 Thue nghiém ccc 90
3.2 Nâng cao hiệu năng dựa trên phân vùng dữ liệu và xử ly bat đồng bộ 96
3.2.1 Ý tưởng của phương pháp phân vùng đữ liệu và xử lý bất đồng bộ 96 3.2.2 Phương pháp đề xuất - 2 2 2+SE+EE+EE£EEEEEEEEE2E122122171 21 7Eerxe 973.2.3 n3 0 104
Trang 73.3 Thảo luận và đánh giá kết 0: << 5< << 3 SH S92584.08010 08008800 111 3.4 Tổng kết chương s 2s°°EEV222s99©©22EEvvdds222222vassseteoorvvrrsse 113
450880700005 3 114 Những kết quả đạt ÑưỢC 2° C222ss222EEvvsssseeSoeovvessssorooroee 114 Những hạn chế và hướng nghiên cứu tiếp theo s ccccccss2 117 DANH MỤC CÁC CONG TRÌNH KHOA HOC CUA TÁC GIA 119 LIEN QUAN DEN LUẬN ÁN 2 2S<+EE2EESEESEEEEEEEEEEEEEEerkerreei 119
TAI LIEU THAM KHAO cccccescsscscsscsesesvsscsesesscsesesesucaesnsusseavsreacavaveesateees 120
Trang 8BANG THUẬT NGỮ
STT | Từ viết tắt Cụm từ tiếng Anh Mô tả
Triple Data Encryption | Tiêu chuẩn mã hóa dữ liệu
3 ALU Arithmetic and Logic Unit | Bộ lôgic va số học
Application Programming | Giao diện lập trình ứng
4 API
Interface dụng
5 ARM Advanced RISC Machine Máy RISC tiên tiến
6 CAGR Compound Annual Growth Ty lệ tăng trưởng kép hang
Rate năm
7 CMP Chip Multi Processors Chip đa bộ xử lý
g CoAP Constrained = Application Giao thức ứng dụng rang
Protocol buộc
9 CPU Central Processing Unit Bộ xử lý trung tâm
10 DAG Directed Acyclic Graph Đô thị có hướng khôngchu trình
II DES Data Encryption Standard Tiêu chuân mã hóa dữ liệu
I2 DRAM Dynamic random-access Bộ l nhớ truy cập ngâu
Performance Optimization | mêm nhúng
16 FIPS Federal Information | Tiêu chuan Xử ly Thông
Processing Standards tin Liên bang Hoa Ky
Mach tích hợp cỡ lớn dùng
17 FPGA Field-programmable gate cau truc mang phan tử
array logic mà người dùng có
thê lập trình được
18 FPM Functional Performance | mô hình hiệu suât chức
Trang 9Thư viện Apple cung cấp
19 GCD Grand Central Dispatch nhằm hỗ trợ việc chạy
23 loT Internet of Things Internet Vạn Vật
24 JSON | JavaScript Object Notation | Kiểu dit liệu mở trongJavaScript
25 LED Light Emitting Diode Điốt phat quang
26 MEM Maximum Entropy Model | Mô hình Entropy cực dai
27 MMPI Mobile Message Passing Giao diện truyén thông tin
Interface di động
28 MOO Multi-objective Tối ưu đa mục tiêuOptimization
The Message Passing | Giao diện thư viện truyền
29 MPI A TA
Interface thông điệp
Message Queuing | Giao thức truyền thông
30 MQTT Telemetry Transport điệp
31 NIST National Institute of | Vién Tiéu chuan va Céng
Standards and Technology | nghệ quôc gia Hoa Kỳ
32 NoC Network On a Chip He thông mạng trên mộtchip
33 NUMA Non-uniform memory Truy cap bộ nhớ không
access dong nhat
Framework mã nguồn mở
34 OpenCL | Open Computing Language | được sử dụng trong các
card đô họa
Giao diện lập trình ứng
dụng (API) được sử dụng
35 OpenMP_ | Open Multi-Processing đê điêu khiên các luông
trên câu trúc chia sẻ bộ
nhớ chung
Trang 1036 OS Operating System Hệ điều hành
Princeton Application me LA QIA Ậ ,
37 PARSEC | Repository for Shared- Một bộ teu chuân cácchương trình đa luông
Memory Computers
38 PC Personal Computer Máy tính cá nhan
39 PCIe Peripheral Component Chuẩn kết nối tốc độ caoInterconnect Express
40 RAM Random Access Memory Bộ nhớ truy xuất ngấunhiên
41 USD United States Dollar Don vị tiền tệ chính thứccủa Hoa Ky
Trang 11BANG CÁC KÝ HIỆU
Ký hiệu Mô tả
A Tập hợp các cấu trúc song song của các đoạn mã song song
a Cấu trúc của một đoạn mã song song
đj Cấu trúc song song của đoạn thứ j
C Số chu ky đồng hồ hệ thong trung binh cần dé thực hiện một lệnh
Ci Kích thước bộ nhớ đệm của nhân thứ i
D Kích thước dữ liệu của các bộ độc lập
d Kích thước dữ liệu được xử lý bởi một luồng
De; Kich thước dữ liệu phân chia theo ty lệ kích thước bộ nhớ đệm của
thành phân thứ i
di Kích thước của một di liệu độc lập trong bộ dữ liệu độc lập thứ i
Dj Kích thước bộ đữ liệu độc lập thứ i
d, Kích thước của thông điệp đến
Dri Kích thước dit liệu phân chia theo ty lệ tổng hợp của thành phan thứ i
ds Kích thước của thông điệp di
Ds; Kích thước dit liệu phân chia theo tỷ lệ tốc độ của thành phan thứ i
D, Kích thước dữ liệu ban đầu
ƒ Hàm đánh giá hiệu năng
fe số xung nhịp trên 1 chu kỳ đồng hồ CPU
ij Ham đánh giá hiệu năng trên cau hình song song c;
Jfuax Hàm đánh giá hiệu năng trên câu hình song song thích hop
ie Tan số xung nhịp của mỗi nhân
H Số đoạn mã có thê song song trong chương trình
Ay Số lượng cấu hình tối da
K Số bộ dit liệu độc lập
Li Số bộ tham số của cấu trúc thứ i của đoạn J
max Giá trị lớn nhất của số lượng bộ tham số của các cấu trúc
4
Trang 12M Số bước lặp
M; Số lượng cau trúc của đoạn j
Max Giá trị lớn nhất của số lượng cau trúc của các đoạn
N Số nhân của một bộ xử ly da nhân
Ne Số câu lệnh trong cấu trúc lặp
Ni Số luồng dữ liệu cần xử ly của bộ thứ i
N, Số luồng xử ly dit liệu đến
Ns Số luồng xử lý đữ liệu đi
N; Số luồng thực thi song song
O Độ phúc tap cua thuật toán
P Tập hợp các bộ tham số
p Bộ tham số tương ứng của mỗi cấu trúc a
Dj Bộ tham số tương ứng với cau trúc aj
r Tỷ lệ của sự kết hợp giữa tỷ lệ tốc độ với tỷ lệ kích thước
Fe Tỷ lệ theo kích thước bộ nhớ đệm
rs Tỷ lệ theo tốc độ
` Số lần thực hiện câu lệnh sau khi hoàn thành vòng lặp
` Số dit liệu trong bộ dữ liệu độc lập thứ i
Si Tốc độ của nhân thứ i
min Tốc độ thấp nhất
S; Số thông điệp đến
Ss Số thông điệp di
T Thời gian phân luồng
t Thời gian xử ly dữ liệu của mỗi nhân
Tì Tổng thời gian hoàn thành vòng lặp khi thực hiện trên 1 nhân
To Tổng thời gian hoàn thành vòng lặp theo đa luồng
Tụ Thời gian truy xuất 1 byte nhớ
Ímax Thời gian của nhân tốc độ thấp nhất
Ts Thời gian thực thi câu lệnh
Trang 13W Tập cấu hình song song của chương trình
w Cấu hình song song cụ thé của chương trình
Wj Cấu hình song song của đoạn thứ j
œ,/ | Các hệ số tỷ lệ
Trang 14DANH MỤC CAC BANG
Bộ chương trình thử nghiỆm - 5+ + 2+ £++ee++eeesseessxs ó6
Môi trường thực nghiỆm - 5 6 25 3£ ++£*vE+eeeeeseeeerse 66
Kết quả thực nghi@m o c.cccccccescscsscsesesessessessessesessessesseseseessesessees 68
Môi trường thực nghiỆm 55 5553 ‡*+E++vseeeeeereeerses 77
Các chương trình Android thử nghiệm - 5 55+ 5s<5+ 77Kết quả thực nghiệm c.ccscceccecsecsesseesessessessessessessesssssesseeseeseesvess 79Môi trường thực nghiỆm 5 (6 cv re 93
Danh sách chương trình thực nghiệm .-. 5s «<5s+5+ 93
Tổng hợp kết quả thực nghiệm - 2 2 22 s+s+zxzxze+ 94Cấu hình máy tính nhúng Raspberry PI 3 -z 107Kết quả thực nghiệm mã hóa AES trên Raspberry PI 3 107Kết quả thực nghiệm mã hóa DES trên Raspberry PI 3 108Kết quả thực nghiệm mã hóa Triple DES trên Raspberry PI 3 108
Bảng 3.8 So sánh tỷ lệ cải tiễn hiệu năng giữa ba thuật toán mã hóa AES, DES,
Trang 15DANH MỤC CÁC HÌNH VẼ
Hình 1 Bố cục của luận án -¿- - St St+E‡EEEESESEEEEEEEESEEEErEEEererkrkrrereeree 17Hình 1.1 Mô hình chữ V phát triển phần mềm nhúng - 20
Hình 1.2 Ung dụng hệ thống nhúng 2 2 2 s+s+EE+£E+E£+EzzEzrxee 21
Hình 1.3 Tổng quan về kiến trúc thiết bị di động -: 2 5¿ 22
Hình 1.4 Bộ xử lý đa nhân (2c 2c 1321112111 51851511111 rrre 24
Hình 1.5 Mô hình ứng dụng được triển khai trên hệ thống đa nhân 25Hình 1.6 Biéu đồ thời gian xử lý song song các tác vụ cùng một thời điểm 26Hình 1.7 Biểu đồ thời gian xử lý song song 2-2 2 s+cs+zssrxerseee 26
Hình 1.8 Lập trình song song c 5- 2c E SE E*EESEirsrkerrsrkrrrree 27
Hình 1.9 Biéu đồ thời gian thực hiện của xử lý đồng bộ và bat đồng bộ 28
Hình 1.10 Mô hình kỹ thuật dich ngược 5+5 «+5 <++£+ee+seesexss 29
Hình 1.11 Mô hình tổng thể trong phát triển phần mềm nhúng đơn nhân 30Hình 1.12 Kiến trúc của chương trình bất đồng bộ - +: 38Hình 1.13 Các chương trình hướng sự kiện bất đồng bộ [47] 39Hình 1.14 Kiến trúc hệ thống phân vùng dữ liệu -5z +: 43Hình 1.15 Kiến trúc tông thé của hệ thống IoT theo giao thức MQTT 45
Hình 1.16 Sơ đồ cấu tạo Raspberry Pi - 2-2 2+cs+cs+rxerEzEezrserxee 47
Hình 1.17 Mô hình hướng phát triển hệ thống nhúng - 52Hình 1.18 Mô hình nâng cao hiệu năng phần mềm nhúng trên bộ xử lý đa nhân
Trang 16Hình 2.1 Mô hình cải tiến song song tác vụ theo điều kiện ràng buộc 59
Hình 2.2 Mô hình FORK - JOINTỦ - 5 S5 Si 61 Hình 2.3 Mô hình thực nghiệm lựa chon hàm xử lý chính theo luật Pareto 67 Hình 2.4 Biéu đồ so sánh thời gian thực thi phép nhân ma trận giữa phiên ban tuân tự và phiên bản cải tIÊN .- c5 + E21 311E£EESEEEEeEEsskEseeeseeerse 69 Hình 2.5 Mô hình tổng quát phương pháp lựa chọn cấu hình mã nguồn thích Hình 2.6 Quan hệ giữa đoạn, cấu trúc và tham số - ¿cs+cs+xzcezxszs 74 Hình 2.7 Mô hình thực nghiệm cau hình mã nguồn song song thích hợp 76
Hình 2.8 Biểu đồ so sánh thời gian thực thi giữa chương trình tuần tự, song song và cau hình thích hợpp - ¿2 2 2 s+EE+EE+EE££E££E££EE+EE+EE+rkerxerxersee S0 Hình 3.1 Mô hình tong quát phương pháp phân chia dữ liệu cân bang 87
Hình 3.2 Mô hình hệ thống thực nghiệm song song hóa dit liệu 92
Hình 3.3 Biểu đồ thời gian thực thi giữa phiên bản gốc và đa luồng 95
Hình 3.4 Mô hình tông quát phân chia dit liệu theo cấu hình nhân CPU 98
Hình 3.5 Mô hình xử lý bất đồng bộ, ¿ 2 ©52©52+£z+cxerxerxrrreced 103 Hình 3.6 Mô hình hệ thống thực nghiệm - 2 2+ 52 +22 104 Hình 3.7 Mô hình thực nghiệm - 2-2-2 ©5£2£+£E£+£E£E£+£xzzerrxee 106 Hình 3.8 Biểu đồ cải tiến hiệu năng của 3 thuật toán mã hóa 109
Hình 3.9 Biểu đồ so sánh thời gian thực thi AES, DES và 3DES 110
Hình 3.10 So sánh một số nghiên cứu tiêu biểu khác - 111
Trang 17MỞ DAU
1 Đặt vẫn đề
Ngày nay, các sản phẩm của công nghệ khoa học đang được phát triển
mạnh mẽ và rộng khắp nhằm phục vụ cho mọi mặt của đời sống xã hội Hầu
hết các sản phẩm này đều cần sự có mặt của công nghệ nhúng như điều khiến bảng điện tử quảng cáo, hệ thống điều khiển thiết bị xe hơi, nhà thông minh, các thiết bị hỗ trợ y tế, v.v hay các thiết bị điện thoại thông minh rất thông dụng
với chúng ta.
Sự phát triển của các công nghệ như trí tuệ nhân tạo, hoc máy, internet vạn vật, thực tế ảo và thực tế tăng cường, đã thúc đây hệ thống nhúng trở thành
lĩnh vực công nghệ then chốt cho sự phát triển kinh tế của nhiều quốc gia trên
thế giới Theo báo cáo được xuất bản bởi The Brainy Insights [5], thị trường
hệ thống nhúng toàn cầu dự kiến sẽ tăng từ 88,35 tỷ USD vào năm 2020 lên138,45 tỷ USD vào năm 2028, với tốc độ CAGR là 5,73 % trong giai đoạn dựbáo 2021-2028 Khu vực Bắc Mỹ thống trị thị trường hệ thống nhúng toàn cầu
và chiếm thị phần lớn nhất và trị giá 38,60 tỷ USD vào năm 2020, do áp dụngsớm các hệ thống nhúng trong các ngành dọc khác nhau nhưô tô, truyền thông
và ngành chăm sóc sức khỏe Khu vực Châu Á Thái Bình Dương, hệ thống nhúng được dự báo sẽ tăng trưởng với tốc độ CAGR cao nhất là 7,65% trong
giai đoạn 2021-2028 Trong đó, phần mềm được dự báo sẽ tăng trưởng với tốc
độ CAGR cao nhất là 6,4%, việc phát triển ngày càng nhiều các ứng dung phan
mềm cho các hệ thống nhúng của các nhà cung cấp khác nhau có thể sẽ thúcđây sự phát triển của thị trường Một số công ty chủ chốt trong thị trường hệthống nhúng toàn cầu là Intel, Renesas, STMicroelectronics, Texas
Instruments, Microchip, Cypress Semiconductors, Qualcomm Analog Devices
va Infineon Technologies, cùng những công ty khác dang tập trung áp dụng công nghệ mới, cải tiên sản phâm, v.v trong ngành nên tảng dữ liệu khách hàng
10
Trang 18toàn câu Tuy nhiên, việc thiêu các chuyên gia và những lo ngại vê bảo mật có
thê hạn chế sự tăng trưởng của thị trường
Ở Việt Nam, chưa có sự liên kết chặt chẽ giữa trường đại học, việnnghiên cứu với các công ty, doanh nghiệp; chưa phối hợp rộng rãi giữa nghiên
cứu hàn lâm và phát triển ứng dụng: phần lớn các công ty phần mềm đều tập
trung xây dựng phần mềm ứng dụng hoặc gia công phần mềm Số lượng cáccông ty phát triển hệ nhúng và phần mềm nhúng còn ít và chủ yếu làm theo yêu
cầu của các đối tác nước ngoài Mặc dù vậy, hệ thống nhúng và phần mềm
nhúng vẫn là một xu hướng phát triển của công nghệ thông tin và đang đượcnghiên cứu, phát triển trong nhiều trường đại học, viện nghiên cứu và các công
ty, doanh nghiệp Bên cạnh đó, các nghiên cứu và hội nghị quốc tế về hệ thongnhúng cũng ngày càng tăng, nhu cầu nghiên cứu, đào tao và phát triển hệ nhúng,
phần mềm nhúng là cấp bách ở Việt Nam Nghiên cứu và phát trién hệ thống
nhúng và phần mềm nhúng góp phần quan trọng giúp chúng ta có thể theo kịp,
rút ngăn khoảng cách tụt hậu về công nghệ thông tin và truyền thông so với các
nước trong khu vực và trên thê giới.
Với sự phát trién mạnh mẽ của hệ thống nhúng, công nghệ phần mềm
nhúng ngày càng được nghiên cứu sâu rộng và hoàn thiện Nghiên cứu [6, 7]
về phần mềm nhúng cho thấy các thiết bị nhúng thường bị giới hạn về: khả
năng xử lý CPU, kích thước bộ nhớ, thời gian sống của pin, van đề tiêu thụ
năng lượng, van đề thời gian thực, v.v Do đó việc nghiên cứu van đề rút ngắn
thời gian thực thi phần mềm nhúng có ý nghĩa đặc biệt quan trọng
Do sự phát triển nhanh chóng của công nghệ phần cứng theo định luật
Moore, trong các thiết bi thông minh, bộ xử lý đa nhân được sử dụng ngày càngnhiều và thay thé dan cho các bộ xử lý đơn nhân, nhưng hau hết các ứng dụngnhúng chỉ được lập trình theo mô hình tuần tự trên các bộ xử lý đa nhân Các
ứng dụng này không phát huy được khả năng xử lý song song của các bộ xử lý
11
Trang 19đa nhân Do đó, việc cải thiện hiệu năng của phân mêm nhúng trên các bộ xử
lý đa nhân là hết sức cấp thiết
Mặc dù đã và đang được nghiên cứu sâu rộng nhưng việc phát triển và
sử dụng các nên tảng lập trình song song mà việc xử lý luồng là cốt lõi dé cảitiến hiệu năng khi xây dựng phần mềm nhúng van còn nhiều thách thức Nghiên
cứu [8, 9] đã trình bày tong quan chung về các hệ thống, ngôn ngữ và khái niệm
xử lý luồng, nhưng không đặc biệt tập trung vào tính song song Hirzel và các
cộng sự [10] so sánh các khái niệm chung khác nhau dé tối ưu hóa việc xử lý
luồng: tuy nhiên, các tác giả cũng không sử dụng song song Nghiên cứu về cáclỗi song song đối với các toán tử xử lý luồng [11] nhưng không tính đến cácchiến lược song song khác Flouris và cộng sự [12] đã thảo luận về các biéudiễn truy vấn, các chiến lược lựa chọn sự kiện, các luồng sự kiện có xác suất,
tối ưu hóa với việc viết lại truy vấn và quản lý bộ nhớ Nghiên cứu đã đề cập
đến tính song song nhưng chưa chú trọng đến hiệu năng trong xử lý luồng Cáclỗi dé nâng cao hiệu năng hệ thống xử lý luồng thời gian thực thông qua việc
phân rã và hợp nhất toán tử, song song hóa dữ liệu được các tác giả phân tích
lý thuyết về các khả năng và chi phí của những công việc đó [13] Assuncao và
các cộng sự [14] đã nghiên cứu các hệ thống xử lý luồng song song tập trungvào cơ sở hạ tầng và kiến trúc, chỉ tiết về cách triển khai xử lý luồng và mô tả
về mã nguồn mở trong môi trường đám mây Tuy nhiên, nghiên cứu còn thiếu
về chiến lược song song hóa, thời gian được cung cấp và trọng tâm phương
pháp Các khảo sát trên đã đưa ra nhiều khía cạnh nhằm cải tiễn hiệu năng của
phần mềm, nhưng vẫn còn các hạn chế như: Nguy cơ mắt cân bằng nên không
đạt được tốc độ xử lý; Khả năng mở rộng của song song tác vụ bị hạn chế do một tác vụ nhất định chỉ có thé được chia thành một tập hợp giới hạn các tác
vụ con cho đến khi đạt đến một tác vụ nguyên tử nên nhiều khả năng, chi phíphân phối xử lý cao hơn lợi nhuận thu được từ việc tiếp tục sự song song hóa;
12
Trang 20Cân có sự cân băng tải rõ ràng giữa các tác vụ khi các dữ liệu được phân phôi
không đông đêu trên dữ liệu đâu vào.
Các phương pháp cải tiễn hiệu năng hướng đến các bộ xử lý đa nhân còn
ít được nghiên cứu và chủ yếu áp dụng cho các phần mềm thông thường nhưng
có ý nghĩa đặc biệt quan trọng đối với phần mềm nhúng Mỗi phần mềm nhúng thường được phát triển cho một loại Bộ xử lý Các loại bộ xử lý có kiến trúc,tập thanh ghi và tập lệnh hợp ngữ khác nhau Hơn nữa, với mỗi loại bộ xử lýkhác nhau có thé phù hợp với tiêu chí khác nhau của phần mềm nên việc cải
tiễn phần mềm nhúng trên bộ xử lý đa nhân tập trung vào các khía cạnh chính
là hiệu năng, năng lượng, chi phí và kích thước chương trình Trong đó, do bộ
xử lý đa nhân phù hợp khi thực hiện xử lý song song, phân vùng dữ liệu, xử lý bat đông bộ nên khía cạnh nâng cao hiệu năng đạt hiệu qua và có kha thi cao.
Từ ý nghĩa đặc biệt quan trọng, sự cần thiết trong xu hướng phát triển
của IoT và công nghiệp 4.0 là một hướng nghiên cứu còn mới, nghiên cứu
sinh nhận thay: “Một số kỹ thuật nâng cao hiệu năng phan mềm nhúngtrên bộ xử lý da nhân” là cần thiết cả về mặt khoa học và thực tiễn
2 Mục tiêu, đối tượng, phạm vi và nội dung nghiên cứu
Dựa trên các cơ sở lý thuyết, các phương pháp và kỹ thuật cải tiến hiệunăng phần mềm nhúng đã được đưa ra trong nước và quốc tế, luận án nghiêncứu và xây dựng một tổ hợp các phương pháp nâng cao hiệu năng phần mềmnhúng trên bộ xử lý đa nhân với mục tiêu xây dựng một số kỹ thuật nhằm rútngắn thời gian thực thi phần mềm nhúng trên bộ xử lý đa nhân với các mục tiêu
Trang 21- Đề xuất mô hình hóa, quy trình các kỹ thuật nâng cao hiệu năng phầnmềm nhúng trên bộ xử lý đa nhân đặc biệt tập trung vào cải tiến mã nguồn phanmềm nhúng;
- Thực hiện thực nghiệm và đánh giá đối với kỹ thuật đề xuat
Đối tượng nghiên cứu của luận án là các vấn dé, kỹ thuật có thé rút ngắnthời gian thực thi phần mềm nhúng Đặc biệt các kỹ thuật và vấn đề tận dụngđược khả năng đặc trưng của bộ xử lý đa nhân Tuy nhiên, hệ thống nhúng rất
đa dạng và được triển khai trên hầu khắp các lĩnh vực hiện nay nên phạm vi
nghiên cứu sẽ bao gồm các vấn đề xử lý song song; xử lý bất đồng bộ và phân chia dữ liệu; các hệ thống IoT; môi trường phát triển nham nâng cao hiệu năng
phần mềm nhúng trên bộ xử lý đa nhân Hiệu năng phần mềm nhúng có nhiều
tiêu chí như (thời gian thực thi, độ én định, độ tin cậy, v.v) tuy nhiên phạm vi
nghiên cứu cải tiễn hiệu năng tập trung vào khía cạnh giảm thời gian thực thi
của phân mêm nhúng.
Dé hoàn thành mục tiêu đã đặt ra với phạm vi và đôi tượng nghiên cứu, các nội dung chính dưới đây được tập trung nghiên cứu:
- Tìm hiệu và đánh giá các công trình nghiên cứu trong và ngoai nước có
liên quan đên cải tiên hiệu năng của phân mêm;
- Nghiên cứu các van đê trong xử lý song song, phân vùng di liệu và xử
lý bât đông bộ của phân mêm và phân mêm nhúng;
- Tìm hiểu môi trường phát triển phần mém nhúng và các thư viện hỗ trợ
lập trình cho các hệ thống nhúng:
- Đê xuât các mô hình hóa cho một sô kỹ thuật nâng cao hiệu năng phân
mêm nhúng trên bộ xử lý đa nhân;
- Cài đặt thực nghiệm và đánh giá kết quả của các kỹ thuật đề xuất
14
Trang 223 Những đóng góp chính của luận án
Những đóng góp chính của luận án là đế xuất hướng tiếp cận trong nângcao hiệu năng qua việc xử lý song song, phân vùng dữ liệu, xử lý bất đồng bộ
và đưa ra các mô hình bài toán về phương pháp cũng như cấu hình mã nguồn
đê cải tiên phân mêm nhúng, cụ thê:
- Đề xuất kỹ thuật lựa chọn các tác vụ xứ lý chính theo hàm điều kiện đểthực thi da luong nham xác định số tác vụ thực thi song song hóa Chức năngtổng thể được phân chia thành các tác vụ chi tiết, từ tập các tác vụ chi tiết xác
định các tác vụ có khả năng song song, tuy nhiên không phải tất cả các tác vụ Song song đều đạt được hiệu năng cao hơn so với thực thi tuần tự, đo đó cần xác định được điều kiện ràng buộc số tác vụ được song song hóa dé nang caohiệu năng của phan mêm nhúng;
- Đề xuất kỹ thuật lựa chọn cầu hình mã nguồn thích hợp, dựa trên fìm cấu hình Song song có hiệu năng tốt nhất cho mã nguồn thông qua đánh giá
cấu trúc và bộ tham số tương ứng của mã nguồn Chương trình có tập các
cầu trúc, có cấu trúc tuần tự có thé chuyén đổi thành cấu trúc Song song, từ tập cấu trúc song song này xác định các cấu trúc song song có câu hình thích
hợp đề tiến hành song song hóa mã nguồn sinh ra phần mềm nhúng có hiệunăng đã được nâng cao trên bộ xử lý đa nhân;
- Đề xuất kỹ thuật phân chia dit liệu cân bằng và phân bồ động nhằmsong song hóa dữ liệu đề cải tiễn hiệu năng phân mêm nhúng dựa trên hướng
tiếp cận phân chia các bộ dữ liệu độc lập tới các nhân và thực hiện xử lý các
bộ dữ liệu độc lập đó một cách dong thời Các chương trình cần xử lý các dữ
liệu khác nhau, với chương trình có các dữ liệu thỏa mãn về bộ dữ liệu độc lập,
bộ dữ liệu phụ thuộc và các bộ dữ liệu độc lập thì có thể được xử lý song song
trên các nhân khác nhau của bộ xử lý đa nhân;
15
Trang 23- Dé xuất kỹ thuật phân vùng dit liệu và xử lý bất đông bộ dựa trên việcxây dựng mô hình phân chia dit liệu toàn cục theo cấu hình các nhân của bộ
xử lý và xử lý dữ liệu bat đông bộ giữa các luồng dé nâng cao hiệu năng phan
mềm nhúng trên bộ xử lý đa nhân, các nhân có khả năng về tốc độ xử lý, lưu
trữ khác nhau nên khả năng xử lý dữ liệu khác nhau nên hiệu năng của xử lý
dữ liệu sẽ được tốt hơn nếu việc phân chia dit liệu theo khả năng xử lý của từng nhân Cùng với đó việc xử lý bất đồng bộ cũng sẽ giảm chi phí về thời gian dé
đồng bộ dữ liệu trong quá trình thực thi phần mềm nhúng
Vấn đề an toàn và bảo mật dữ liệu đang được quan tâm đặc biệt của xãhội, tuy nhiên, bảo mật dữ liệu làm cho việc trao đôi dữ liệu bị chậm hay cảntrở, đặc biệt với các thiết bị nhúng thông minh Nên nghiên cứu cải tiến mãnguôn của các bai toán mã hóa dé có thé nâng cao hiệu năng xử lý dữ liệu của
các hệ thống nhúng là cần thiết Các thiết bị nhúng thông minh thường không
chỉ thực hiện một việc tại một thời điểm mà có thể thực thi nhiều việc, do đó,
các nhân của bộ xử lý đa nhân có hiệu năng là không đồng nhất cho nên phương
pháp phân chia dữ liệu toàn cục trên các nhân theo khả năng thực thi của từng
nhân kết hợp phương pháp xử lý bất đồng bộ sẽ cải thiện được đáng kể về mặthiệu năng đối với các bài toán mã hóa áp dụng thuật toán xử lý dữ liệu song
song có ý nghĩa thực tiễn cao.
4 Bo cục của luận án
Luận án bao gồm phần Mở đầu, ba chương nội dung và phần Kết luận,
được bồ cục như Hình 1 Trong đó phần Mở đầu trình bày đặt van dé, mục tiêu,
đối tượng, phạm vi nghiên cứu và những đóng góp chính, ý nghĩa khoa học, ý
nghĩa thực tế của luận án Chương | giới thiệu tổng quan về bài toán đặt ra, một
sô nghiên cứu liên quan Các chương còn lại được câu trúc như Hình 1.
16
Trang 24- Đặt vân đê
- Xác định mục tiêu, đôi tượng, phạm vi và nội dung nghiên cứu
Ỗ óp về khoa học và thực tiễn của luận án
Chương 1 Tổng quan về nâng cao hiệu năng phần mềm nhúng trên bộ xứ lý đa nhân
- Điều tra, phân tích, tông hợp hiện trạng nghiên cứu
- Nghiên cứu các công trình đã xuât bản liên quan đên luận án
- Xây dựng bài toán về nâng cao hiệu năng phần mềm nhúng trên bộ xử lý đa nhân
Chương 2 Nâng cao hiệu năng dựa trên lựa chọn tác vụ xử lý song song
, Chương trình thực thi tuần tự !.- Chương trình thực thituanty _ j
¡_ Xử lý song song không lựa chọn ham xu‘ | - Xử ly song song nhưng không lựa chon ;
Llý chính eee Lae hình mã nguon l song 1
4 ạ OTe Aha x») Rane - x >)
Lựa chon hàm xử lý chính theo điêu Lựa chọn cầu hình mã nguôn
kiện ràng buộc thích hợp
Phân chia chức năng tổng thể thành các Tìm cầu hình song song có hiệu năng tốt
nhất cho mã nguồn dựa trên đánh giá
tác vụ song song, phân phối tác vụ vào
cầu trúc và bộ tham số tương ứng
các nhân rỗi, lập lịch tác vụ và quản lý
trao đổi thông tin giữa các tác vu
NS
y
Chương 3 Nang cao hiệu năng dựa trên xử lý song song dữ liệu
¡- Chương trình xử lý dir liệu tuần tự
¡- Song song hóa dữ liệu nhưng phân chia |
i dữ liệu đều cho các nhân có khả năng Xử |
¡ lý khác nhau
£ R F
Phân chia dữ liệu cân bang va phan bo Nang cao hiéu nang dựa trén phan
động tới các nhân của bộ xử ly vùng dữ liệu và xử lý bất đồng bộ
Pp › 2 A „9m TBA A fen abe Xây đựng mô hình phân chia đữ liệu toàn
Phân chia các bộ dữ liệu độc lập tới => cục dựa trên cau hình các nhân của bộ
các nhân và thực hiện xử ly các bộ dit xử lý và xử lý dữ liệu không đồng bộ
liệu độc lập đó một cách dong thời
- Những hạn chế và hướng nghiên cứu trong tương lai
Hình 1 Bô cục của luận án
17
Trang 25CHƯƠNG 1 TONG QUAN VE NÂNG CAO HIỆU NANG PHAN MEM
NHUNG TREN BO XU LY DA NHAN
Trong thời đại ngày nay, hệ thống nhúng đã được ứng dụng và triển khairộng khắp trên hầu hết các mặt của cuộc sông Đồng thời với nó là các nghiêncứu về phần mềm nhúng thực thi trên đó cũng được quan tâm và chuyên sâuhơn nhằm tăng hiệu quả của hệ thống mà chúng phục vụ Do đó, dé nghiên cứu
và triển khai luận án một cách có hệ thống và đầy đủ, trong chương này, luận
án giới thiệu tổng quan và các khái niệm và các công trình nghiên cứu về cáchướng, các lĩnh vực có liên quan đến luận án Từ đó, bài toán về nâng cao hiệunăng phần mềm nhúng trên bộ xử lý đa nhân được xác định và chọn lựa các kỹthuật dé thực hiện bài toán
1.1 Một số khái niệm
Trong những năm gần đây, các hệ thống IoT, các thiết bị thông minh đãđược nghiên cứu, ứng dụng rộng rãi, có mặt trong hầu hết các lĩnh vực kinh té,
xã hội, và trở thành một phần tất yếu cua cuộc sống Đặc biệt là trong giai đoạn
cách mạng công nghiệp lần thứ tư, với sự kết hợp của CNTT, tự động hóa và
trí tuệ nhân tạo, vai trò của hệ thống, thiết bị thông minh lại càng quan trọng.
Hệ thống IoT là một hệ thống tích hợp các thiết bị thông minh, thiết bị điện,
máy tính cá nhân, máy chủ, các bo-mạch nhúng, v.v được truyền thông tin với
nhau theo một giao thức xác định.
Bên cạnh đó, các bộ xử lý đa nhân còn mới được phát triển, ứng dụng
trong các thiết bị thông minh, hệ thống IoT nên hầu hết các phần mềm nhúng
trong các hệ thống, thiết bị này vẫn được phát triển theo mô hình lập trình tuần
tự do đó không phát huy hết được khả năng xử lý song song của bộ xử lý Mặc
dù mô hình lập trình song song đã được nghiên cứu, phát triển từ những năm
của thập niên 1970, nhưng đến nay chủ yếu dùng cho các máy chủ, máy tính
hiệu năng cao và chưa được áp dụng nhiêu cho các bộ xử lý nhúng đa nhân.
18
Trang 26Bên cạnh đó, do các bộ xử lý nhúng có khả năng xử lý yếu và phần mềm trongmôi trường IoT phải thực hiện với nhiều ràng buộc về tốc độ, kích thước bộnhớ, điện năng, v.v nên việc lựa chọn kỹ thuật song song hóa, cấu hình songsong, phân chia dit liệu, phân chia tác vụ van dang là một thách thức đặt ra đối
với phân mêm nhúng.
1.1.1 Phần mềm nhúng
Phan mém nhúng là phần mềm được phát triển chuyên biệt nhúng vào
hệ thống mà nó điều khiển nhằm đảm bảo tương tác giữa hệ thống đó với môitrường [1] So với phần mềm thông thường, phần mềm nhúng thường gắn liền
và phụ thuộc vào môi trường phần cứng Phần mềm nhúng thường thực thi
trong môi trường giới hạn về tài nguyên phần cứng như khả năng của bộ xử lý,
dung lượng bộ nhớ, thời gian sống của pin, v.v.
Phần mềm nhúng được phát triển dựa trên việc sử dụng các trình biên
dịch, chương trình dịch hợp ngữ hoặc các công cụ gỡ lỗi Tuy nhiên, phần mềm
nhúng có thể được phát triển bởi một số công cụ chuyên dụng Các công cụphần mềm này có thê được tạo ra bởi các công ty phần mềm chuyên về hệ thốngnhúng hoặc từ các công cụ phát triển phần mềm GNU Với các bộ xử lý của hệthống nhúng gan giống với bộ xử lý của một máy tính thông dụng thì có thé sử
dụng các công cụ phát triển dành cho máy tính cá nhân.
Phần mềm nhúng được xây dựng theo một số kiến trúc như: Vòng lặpkiêm soát đơn giản, hệ thong ngắt điều khiển, đa nhiệm tương tác, đa nhiệm ưutiên, vi nhân và nhân ngoại, nhân khối Với việc phát triển mạnh mẽ của phancứng thì bộ xử lý của hệ thống nhúng ngày nay có khả năng đáp ứng được các
chuyền đổi phức tạp dé phù hợp với môi trường nhúng Điều này giúp các nhà
lập trình có được một môi trường phát triển giống với hệ điều hành trong các
máy dé bàn như Linux hay Microsoft Windows và vi thé rất thuận lợi cho việc
phát trién phần mềm nhúng
19
Trang 27Trong nghiên cứu [1], phát triển phần mềm nhúng được kiêm thử và kiêmchứng chặt chẽ do tính đặc thù xây dựng trên phần cứng chuyên dụng Việc
phát triển thường được áp dụng theo mô hình chữ V như Hình 1.1.
tính năng tự động hóa cao.
Hệ thống nhúng thường đòi hỏi tính khả dụng và độ tin cậy, độ ôn định
cao Thông thường, hệ thống nhúng được thiết kế cho một nhiệm vụ cụ thể nên các thiết bi phần cứng thường chuyên biệt với bộ nhớ hạn chế, chi phí thấp, tiêu
20
Trang 28thụ ít điện năng Các hệ thống nhúng thường lắng nghe các sự kiện từ bên ngoài
và thực thi theo các yêu cầu nhiệm vụ nên cần được kết nối với các thiết bịngoài với thiệt bi dau vào và dau ra.
Khoa học Robot Thiết bi dan dung
- Khoa học robot: Được ứng dụng hỗ trợ con người trong các môi trường
mà con người không tiếp cận được hoặc khó tiếp cận hoặc thậm chí đòi hỏi tínhchính xác, v.v;
- Y tế: Máy lọc máu, bơm truyền dịch, màn hình theo dõi nhịp tim, v.v;
21
Trang 29- Công nghệ 6 tô: Phát triển động cơ điều khiến, hệ thống đánh lửa, hệ
thống phanh, hệ thống chiếu sáng, túi khí, khoá cửa, hệ thống hỗ trợ đỗ xe,chống trộm, v.V;
- Công nghệ mang: Router, hub, gateway, thiét bi điện tử, v.v;
- Thiết bi dân dung: TV, thiết bị cảnh báo, điều hòa, đầu phát video DVD,
máy ảnh, v.v;
- Công nghiệp: Hệ thống điều khiển, tên lửa, lò phản ứng hạt nhân, trạm
không gian, xe đưa đón, v.v.
Thiết bị di động là hệ thông nhúng với kiến trúc được mô tả như Hình
1.3, bao gồm phần mềm và phan cứng Các thiết bị di động thường kèm vớimột bộ cảm biến nhúng, bao gồm gia tốc kế, la bàn kỹ thuật số, GPS, micrô vàmáy ảnh, cho phép các ứng dụng cảm biến thực thi trên các thiết bị nhúng [ 15]
Trang 30Phần mềm của thiết bị di động bao gồm hai lớp cơ bản: nền tảng di động
và các ứng dụng di động Nền tảng di động (vi du: Android, iOS) bao gồm một
hệ điều hành nhúng kết nối phần cứng với các thành phần phần mềm Trongcác nền tảng di động, các thư viện phần mềm, được sử dụng dé tuong tac voi
các thành phan, chăng hạn như cơ sở dit liệu và khung phương tiện, v.v Các ứng dụng dành cho thiết bị đi động (ví dụ: máy tính, ảnh, danh bạ) được cung cấp bởi khung di động hoặc các ứng dụng của bên thứ ba được cung cấp bởi
các cửa hàng trực tuyến dành cho ứng dụng di động (ví dụ: Google Play Store,
Apple iOS App Store, AppNokia, Samsung, BlackBerry World và Windows Phone Store).
Ngày nay, với việc phát triển của phần cứng, hệ thống nhúng được thiết
kế trên các bộ xử lý đa nhân nhằm tăng khả năng tự chủ, độc lập cũng như khả
năng thực thi xử lý dữ liệu Vì sự góp mặt của bộ xử lý đa nhân mà ứng dụng hệ
thống nhúng được đa dạng hơn, phô biến hơn với đời sống xã hội.
Bộ xử lý da nhân là một bộ xử lý có nhiều đơn vị vi xử lý (nhân) được tích
hợp và đóng gói trên cùng một nền mạch tích hợp (chip) vật lý duy nhất Mỗinhân đều có thé thực hiện việc xử lý tuần tự từng gói dữ liệu và sự kết hợp nhiềunhân trên một bộ xử lý giúp làm tăng tốc độ xử lý chung của hệ thống khi mà dữ
liệu được phân thành nhiều gói nhỏ và phân cho các nhân xử lý song song cùng
một lúc.
Đây là mô hình được sử dụng rộng rãi và phô biến ngày nay, đó là các
nhân sẽ sử dụng riêng bộ nhớ đệm L1 và bộ nhớ đệm L2 sẽ được chia sẻ dùng
chung cho cho tất cả các nhân Đối với các hệ thống sử dụng 2 bộ nhớ đệm, LI,
L2 thì thông thường L1 dùng riêng cho từng nhân và L2 thì có thé được chia radùng chung cho các nhân hoặc được phân bồ riêng cho từng nhân, Hình 1.4
Mỗi bộ xử lý có tập lệnh xác định và mỗi lệnh là chuỗi nhị phân mà bộ
xử lý có thể phân tích và hiểu đề thực hiện thao tác mà lệnh đó yêu cầu Các
23
Trang 31lệnh này thường được ánh xạ ra thành các ký hiệu gợi nhớ như ADD, MOV,
Vi các phân mêm nhúng được thiệt kê và xây dựng riêng cho các bộ xử
lý đa nhân nên đòi hỏi cân phải thực hiện các nhiệm vụ:
- Phân chia dữ liệu cho các tác vu;
- Chỉ ra cách truy cập và chia sẻ dữ liệu;
- Phân các tác vụ cho các tiễn trình;
- Đồng bộ các tiến trình.
Khi đó mô hình ứng dụng được triển khai trên hệ thống đa nhân được thê
hiện như Hình 1.5.
24
Trang 32hoàn toàn độc lập với nhau Với các bộ xử lý đa nhân, thay vì một nhân chúng
ta chỉ có thé xử lý một tác vụ nhỏ tại một thời điểm thì khi số nhân có nhiều
hơn chúng ta có thé xử lý các tác vụ song song với nhau cùng lúc trên các nhân của bộ xử lý Do đó mô hình xử lý song song nhằm phân chia tác vụ cho từng
nhân xử lý được thé hiện trong Hình 1.6
25
Trang 33Nhân 1 Nhân 2
Nhân 3
Nhân 4
——
Thời gian bộ xử lý
Hình 1.6 Biéu đồ thời gian xử lý song song các tác vụ cùng một thời điểm
Trong thực tế, trên mỗi nhân của CPU vẫn xảy ra quá trình xử lý đồng
thời miễn là tại một thời điểm không có xảy ra việc xử lý cùng một tác vụ trên
hai nhân CPU khác nhau, mô hình trên được trình bày lại như Hình 1.7.
Nhân 1 Nhân 2 Nhân 3
Nhân 4
——
Thời gian bộ xử lý
Hình 1.7 Biéu đồ thời gian xử lý song song
Ngày nay, với sự phát triển của công nghệ đa xử lý, dé tận dụng tối đa
sức mạnh của CPU, mô hình lập trình song song hay thực thi đa luồng thường
thấy trên các ngôn ngữ lập trình đã được ra đời và thúc đây mạnh mẽ các nghiên
cứu về xử lý song song trên bộ xử lý đa nhân.
Một mô hình lập trình song song là một tập hợp các kỹ thuật phần mềm
dé thé hiện các giải thuật song song và đưa vao ứng dung trong hệ thống Song
song Mô hình này bao gồm các ứng dụng, ngôn ngữ, bộ biên dịch, thư viện,
hệ thông truyền thông tin vào/ra song song, trong thực tế, chưa có một máy tính song song nảo cũng như cách phân chia công việc cho các bộ xử lý nào có thể
áp dụng hiệu quả cho mọi bài toán.
Lập trình song song là việc thiết kế va cài đặt các chương trình máy tinhtheo mô hình song song sao cho chương trình chạy được trên các hệ thống máy
26
Trang 34tính song song Một dạng của lập trình song song là song song hóa các chương
trình tuần tự dé giải quyết một van đề lớn hoặc làm giảm thời gian thực thi hoặc
Van dé quan trọng của xử lý song song là tận dụng được khả năng của
bộ xử lý đa nhân Có hai cách tiếp cận dé tận dụng khai thác các bộ xử lý:
- Phát triển những ngôn ngữ lập trình cho phép thé hiện được việc thực
hiện song song ở mức thuật toán;
- Xây dựng hay thực hiện trên những chương trình dịch đủ mạnh đề nhậndạng được các phân đoạn chương trình có thê thực hiện song song hay tuần tự
Trong xử lý song song có một số van đề cần phải giải quyết như tươngtranh dữ liệu, kết hợp các tiến trình mà chúng phụ thuộc vào kết quả hoạt độngcủa nhau Có hai hướng dé xử lý các van đề này:
- Các tiễn trình đều sử dụng cấu trúc dữ liệu chung đề thực hiện cập nhật
và trao đổi dữ liệu với nhau;
- Thực hiện đồng bộ bang cách xây dựng các hàm dé chờ đợi kết hợp và
thực thi tiếp các nhiệm vụ khác sau khi đã kết hợp xong
Vì vậy, dé tận dụng khả năng của bộ xử lý đa nhân, chúng ta xử lý song song bang cách chuyền đổi các đoạn chương trình tuần tự có khả năng thực
27
Trang 35hiện song song trên nên các ngôn ngữ hỗ trợ lập trình song song hoặc tiễn hành
xây dựng hoàn toàn mới theo giải thuật song song.
1.1.3 Xử lý đồng bộ và bất đồng bộ
Xử lý dong bộ (Synchronous/Sync) là chương trình sẽ thực hiện theo tuần
tự, nhiệm vụ sau chỉ thực hiện sau khi nhiệm vụ ngay trước nó đã thực hiện xong [4] Vì chạy theo thứ tự nên các nhiệm vụ phải chờ đợi nhau sé sinh ra
trạng thái chờ và sẽ có những nhiệm vụ cần phải thao tác với dữ liệu bên ngoài
vì thế nó cần một khoảng thời gian để lấy đữ liệu về trước khi xử lý, việc nàycũng gây mat chi phí thời gian chờ lay dit liệu
Xử lý bat đồng bộ (Asynchronous) là chương trình cho phép nhảy một sỐ bước nào đó đề thực hiện một số nhiệm vụ nhất định [4] Nếu nhiệm vụ sau kết thúc trước, nó có thé sẽ cho ra kết quả trước cả nhiệm vụ trước nó Xử lý bat đồng bộ khắc phục được nhược điểm trong xử lý đồng bộ là tốn chi phí thờigian chờ giữa các nhiệm vụ.
Hình 1.9 Biéu đồ thời gian thực hiện của xử lý đồng bộ và bất đồng bộ
Tuy nhiên, xử lý đồng bộ sẽ thực hiện tuần tự theo đúng nguyên tắc nên
sẽ hạn chế mắc phải các lỗi liên quan đến quá trình trong xử lý bất đồng bộ cầnthực hiện việc kiểm soát kết quả của các nhiệm vụ Vì vậy, không phải bài toánnào cũng có thé xử lý bat đồng bộ
28
Trang 361.1.4 Kỹ thuật dịch ngược
Kỹ thuật dịch ngược là quá trình tìm ra các nguyên lý kỹ thuật của một
phần mềm ứng dụng hay thiết bị cơ khí qua việc phân tích cấu trúc, chức năng
và hoạt động của phần mềm đó Kỹ thuật dịch ngược giúp tăng sự hiểu biết về
mã nguồn của phần mềm nhằm hỗ trợ trong việc bảo trì và cải tiến phần mềm.Thông tin liên quan có thê được trích xuất nhăm đưa ra góc nhìn và quan điểm
khác về mã nguồn Điều đó có thé giúp phát hiện được lỗi phần mềm hoặc lỗ
hông phân mêm.
Kỹ thuật dịch ngược có phạm vi ứng dụng rộng rãi trong nhiều lĩnh vực như tối ưu, tái kỹ nghệ phần mềm, an toàn thông tin, v.v Kỹ thuật dịch ngượcthực hiện theo các mức khác nhau từ mã máy sang mã hợp ngữ, từ mã hợp ngữsang mã nguồn mức cao, từ mã nguồn mức cao sang mô hình, từ mã máy sang
mã máy ảo, v.v Mô hình kỹ thuật dịch ngược được thể hiện trong Hình 1.10
Đặc tả và Thiết kế và Phần mềmTU LẠ ` ==>
Phan tich Trién khai moi
Phan mém duoc
tai ky nghé
Phan mémL Phan tich va
đã tôn tai A Chuyén đổi
Hình 1.10 Mô hình kỹ thuật dich ngược
Các kỹ thuật dịch ngược không được nghiên cứu mà chỉ sử dụng công
cụ dịch ngược mã byte sang mã nguồn bậc cao Mã nguồn này được sử dụng làm đầu vào cho bài toán nâng cao hiệu năng phần mềm nhúng.
1.2 Một số nghiên cứu về cải tiến phần mềm nhúng trên bộ xử lý đa nhân
1.2.1 Nghiên cứu về nâng cao hiệu năng phần mềm nhúng
Cải tiến phần mềm nhúng cũng phức tap và đa dang hơn nhiều so với cải
tiến phần mềm thông thường do sự phụ thuộc vào phần cứng và môi trường
29
Trang 37phát triển Mô hình tong thể trong phát triển phần mềm nhúng [2] được thể hiệntrong Hình 1.11.
o>
Tôi ưu hóa trong kỹ nghệ ngược
Tôi ưu trong kỹ nghệ xuôi
M6 hình thiết Tối wu trong giai
kế đoạn thiết kế Mô hình thiết
kế
Mô hình thiết | |
kế tốt
Co H
Giai đoạn cải đặt
Các khía ' tao mà đôi my oe lập
cạnh tôi ưu: :
- Tối ưu hiệu
nang - Tối ưu bô F>: cao tp _~ | | Biên dịch chéo Dịch ngược i | Mã nguôn mứ ——
| Giai đoạn thực thi —t : i
Tép tin thuc thi
Hình 1.11 Mô hình tông thé trong phát trién phần mềm nhúng đơn nhân
Tôi ưu phân mêm nhúng thường gôm nhiêu khía cạnh như hiệu năng, mức tiêu thụ điện năng, bộ nhớ, đa mục tiêu, v.v và có thê thực hiện tôi ưu
30
Trang 38trong các giai đoạn khác nhau như giai đoạn thiết kế, giai đoạn cài đặt và giai
đoạn thực thi [2].
Trong nghiên cứu [16], tác giả đã tổng hợp về kiến trúc của bộ xử lý đanhân, hệ thống nhúng đa nhân và vấn đề nâng cao hiệu năng phần mềm trong
hệ nhúng đa nhân Nói chung, các bộ bộ xử lý đa nhân có kiến trúc chia sẻ hoặc
không chia sẻ bộ nhớ đệm L2 và các hệ nhúng đa nhân cũng có hai dạng kiến trúc phố biến là đồng nhất và không đồng nhất Bộ xử lý đa nhân đưa ra các yêu cau trên hệ thống, khi các hệ thống rỗi thì các yêu cầu được gửi tới nhân
dé thực hiện vì vậy nên tốc độ của Bộ xử lý rất nhanh Vì các phần mềm nhúngđược thiết kế và xây dựng riêng cho các bộ xử lý đa nhân nên đòi hỏi cần phải
thực hiện các nhiệm vụ:
- Phân chia dữ liệu cho các tác vụ;
- Chỉ ra cách truy cập và chia sẻ dữ liệu;
- Phân các tác vụ cho các tiến trình;
tác vụ được chọn Nhưng do việc phân phối và sắp xếp tất cả các tác vụ vào từng
nhân trong quá trình thực thi nên mắt thời gian chờ xử lý cũng như đồng bộ Hơn
thế nữa, không phải tác vụ nào thực hiện song song hóa cũng hiệu quả.
Nghiên cứu [18] trình bày mô hình đa luồng tuỳ biến để cải tiến hiệu
năng trên bộ xử lý đa nhân Nghiên cứu cũng đánh giá được hiệu năng giữa Multiprocessing, Multi-cores and Many-cores Tuy nhiên, nghiên cứu tập trung
31
Trang 39vào khả năng mở rộng phân cứng cho việc cải tiên hiệu năng của ứng dụng.
Những phương pháp luận của nghiên cứu cũng là cơ sở cho việc xây dựng và
đánh giá hiệu năng cho phương pháp được dé xuất trong luận án.
Cùng với sự gia tang mạnh mẽ của điện thoại di động, thiết bị thôngminh, vẫn đề nâng cao hiệu năng phần mềm trong các hệ thống, thiết bị có bộ
vi xử lý đa nhân cũng được quan tâm nghiên cứu sâu, rộng Trong nghiên cứu
[19], Kornaros G va cộng sự đã khảo sát, tổng hợp về kiến trúc đa nhân, các mục tiêu và phương pháp tối ưu Theo đó, van đề tối ưu phần mềm trong các
hệ thống đa nhân có thê được thực hiện theo các mục tiêu đơn như hiệu năng,điện năng tiêu thụ, bộ nhớ, chi phí, v.v hoặc tối ưu đa mục tiêu Các phươngpháp tối ưu được tiễn hành theo các cách tiếp cận chính sau: chuyển đổi mãnguồn tuần tự sang song song, phân hoạch công việc tổng thể thành các công
việc song song, phân bồ tác vụ đến các nhân, lập lịch tác vụ và quản lý liên kết
giữa các nhân trong bộ xử lý.
Với các ứng dụng Android, việc cải tiễn có thể được thực hiện theo bamức: cải tiễn bản thân mã ứng dụng, cải tiến máy ảo, và cải tiến mức hệ điềuhành [20, 21] Người phát triển không thé can thiệp vào máy ảo Dalvik và nhân
hệ điều hành Android nên chỉ có thé cải tiễn trực tiếp trên ứng dụng Android
Cải tiến ứng dụng Android tập trung vào hai mục tiêu chính là hiệu năng vàđiện năng tiêu thụ.
Cải tiến hiệu năng ứng dụng Android trên vi xử ly đa nhân được nghiên
cứu và triển khai rộng rãi nhất [22-26] Các phương pháp cải tiến hiệu năng có
thé dựa trên tổ chức bộ nhớ đệm [27], hạn chế điểm thắt cô chai [28], mô hình
hàng đợi song song có ràng buộc [29], biên dịch trước nhưng phương pháp dựa
trên mô hình lập trình song song, biến đổi mã nguồn tuần tự sang song song làphổ biến nhất [30]
32
Trang 401.2.2 Nghiên cứu về xử lý song song trên bộ xử lý đa nhân
Trong những năm gần đây, cũng đã có một số nhóm đã nghiên cứu, pháttriển các phương pháp cải tiến hiệu năng phần mềm nhúng trên bộ xử lý đanhân Các nghiên cứu này chủ yếu tập trung vào mô hình đa luồng và phân chiacác luồng xử lý dé thực hiện song song
Trong nghiên cứu [31], tác giả giới thiệu về Lập trình Song song giảithích cách thiết kế, gỡ lỗi và đánh giá hiệu năng của các chương trình phân tán
và bộ nhớ dùng chung trên bộ xử lý đa nhân Kiến thức trong sách hỗ trợ nền
tảng cho lập trình song song với việc giới thiệu các chương trình song songhiệu quả với MPI, Pthreads và OpenMP và đề cập trực tiếp đến việc biên dịch
và chạy các chương trình song song trên kiên trúc đa nhân.
Scott M và các cộng sự đã nghiên cứu việc sử dụng phân vùng dữ liệu trong thực thi song song dựa vào tam giác Delaunay [32] Mã phân vùng của
họ được viết theo cách thủ công và cách tiếp cận được tùy chỉnh dé tạo
Delaunay Tuy nhiên, các tác giả cho thấy việc tự tùy chỉnh mã nguồn dẫn đếnchỉ áp dụng với số ít các bài toán và không dành cho những người mới lập trình
Trong nghiên cứu [33], tác giả giới thiệu các cơ chế dé cải thiện hiệu
năng phân vùng đữ liệu, phân công tác vụ tập trung vào đữ liệu Tính song song
dữ liệu phát sinh từ việc sử dụng các thuật toán lặp đi lặp lại được tô chức xungquanh danh sách tác vụ thuộc nhiều loại khác nhau Trong vòng lặp tập hợp déthé hiện sự song song và cho thay sự song song này có thé được khai thác trêncác máy đa nhân Đồng bộ các phan tử cấu trúc dit liệu được thay thé bằng đồng
bộ các phân vùng dữ liệu, do đó giảm chi phí phát hiện xung đột Nghiên cứu
đã cho kết quả khả quan khi phân vùng cấu trúc dữ liệu bất thường, phân công tác vụ tập trung vào dir liệu dé thúc đây tính cục bộ, giảm chi phí gọi dữ liệu, giảm chi phí song song và đồng bộ dữ liệu.
33