1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận án tiến sĩ Công nghệ thông tin: 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

138 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 138
Dung lượng 29,52 MB

Nội dung

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 3

Lờ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 4

trong 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 5

BANG 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 6

CHƯƠ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 7

3.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 8

BANG 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 9

Thư 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 10

36 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 11

BANG 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 12

M 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 13

W 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 14

DANH 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 15

DANH 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 16

Hì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 17

MỞ 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 18

toà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 20

Câ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 22

3 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 25

CHƯƠ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 26

Bê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 27

Trong 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 28

thụ í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 30

Phầ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 31

lệ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 32

hoà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 33

Nhâ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 34

tí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 35

hiệ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 36

1.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 37

phá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 38

trong 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 39

và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 40

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

Ngày đăng: 29/06/2024, 05:54

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

TÀI LIỆU LIÊN QUAN