Lần thực hiện Kích thước tệp tin (KB) 106 216 322 413 521 615 709 798 923 1035 1285 1498 1 14,0 17,5 18,0 20,0 22,5 23,5 26,5 30,7 33,5 39,2 55,1 64,1 2 13,0 16,0 18,7 20,7 22,3 24,2 26,8 30,2 35,2 39,5 55,5 65,7 3 12,5 15,5 19,0 19,2 21,1 23,8 27,1 31,0 34,5 40,1 53,7 62,1 4 15,0 17,0 19,3 18,5 20,8 24,3 27,3 30,4 34,1 39,1 54,8 63,1 5 13,4 16,5 16,9 20,1 20,4 24,1 27,5 31,2 33,4 39,4 53,8 62,3 6 14,7 15,0 17,0 19,0 21,3 23,7 26,4 30,5 34,6 41,0 55,1 64,7 7 16,0 14,9 18,5 19,6 20,7 24,5 27,0 30,7 32,8 41,2 57,3 65,0 8 15,0 17,3 17,6 18,3 22,5 24,0 27,2 30,5 33,2 39,3 55,9 64,6 9 14,5 16,8 18,3 18,9 20,6 23,7 26,9 30,4 32,7 39,5 54,2 62,2 10 15,5 17,0 18,5 19,1 21,42 23,7 27,2 30,6 33,4 39,3 55,2 62,5 Thời gi n trung bình (s) 14,36 16,35 18,18 19,34 21,36 23,95 26,99 30,62 33,74 39,76 55,06 63,63
Hình 3.12: So s nh thời gi n th thi khi n n v kh ng n n ữ liệu
3.3. Tối ưu mã hợp ngữ hướng đ n các CPU hệ thống nhúng
Tối u m h p ngữ l m tối u ặ thù hệ thống nh ng v h i nhân tố h nh nh h ởng n tối u l ki n tr CPU h v ki n tr m y h Kh với các hệ thống m y t nh th ng th ờng CPU trong hệ thống nh ng ơn gi n nh ng ng hơn rất
0 10 20 30 40 50 60 70 80 Th ờ i gi an t h ự c th i t ru n g bì n h (s )
Kích thước tệp tin (KB)
So sánh thời gian thực thi khi nén và không nén dữ liệu
Không nén dữ liệu Nén dữ liệu
nhiều Mỗi lo i CPU số l ng th nh ghi kh nh u tập lệnh m y kh nh u v ki u ki n tr kh nh u C hai ki u ki n tr tập lệnh CPU phổ i n nhất l RISC và CISC. RISC l ki n tr tập lệnh phổ i n nhất CPU hệ thống nh ng với tập lệnh r t gọn lệnh ùng ộ i v kh ng ph p to n tr ti p giữ th nh ghi v ộ nhớ CISC là ki n tr tập lệnh ph t p với số l ng lệnh nhiều hơn, ộ i lệnh kh ng ố ịnh v ho ph p th hiện ph p to n giữ th nh ghi v ộ nhớ Tr nh h p ị h ph i i t ki n tr CPU h th hiện kỹ thuật tối u hiệu qu hơn Ngo i r với mỗi ki n tr CPU kh nh u ũng ần ph ơng ph p tối u phù h p Có ba ki u ki n tr n trong CPU l ki n tr ơn lệnh ki n tr ờng ống lệnh (pipeline) v ki n tr si u v h ớng (supers l r). So với tối u ho ki n tr ơn lệnh tối u ho ki n tr ờng ống lệnh si u v h ớng ph t p hơn v òn nhiều th h th Đ ng thời với mỗi ki n tr CPU h ũng ần qu n tâm n số ơn vị h n ng nh ơn vị lôgic v số họ (ALU) v ơn vị x lý ấu phẩy ộng (FPU) N u CPU nhiều ơn vị h n ng s ho ph p nhiều lệnh th hiện ng thời Do tr nh h p ị h th th hiện tối u tr n song song h bên trong CPU.
Nhân tố h nh th h i t ộng n ph ơng ph p tối u l ki n tr m y h C h i ki n tr m y h phổ i n l Von Neumann và Harvard Ki n tr H rv rd i ti n hiệu n ng hơn so với ki n tr Von Neum nn o s t h iệt ộ nhớ h ơng trình và ộ nhớ ữ liệu ũng nh ờng truyền ri ng ho mỗi lo i ộ nhớ n y Trong ki n tr m y h ũng ần qu n tâm n phân ấp ộ nhớ v s ng ộ nhớ ẩn ( he) K h th ớ ộ nhớ ẩn v tỉ lệ truyền ữ liệu giữ ộ nhớ h nh v ộ nhớ ẩn ũng nh h ởng n hiệu n ng v iện n ng ti u th Do khi tối u m h p ngữ ki n tr m y h l một nhân tố qu n trọng m tr nh h p ị h h o ph i xem x t
Ngo i h i nhân tố h nh nh h ởng n ph ơng ph p tối u với mỗi m ti u tối u kh nh u ần ph ơng ph p phù h p v hiệu qu Cũng nh trong gi i o n khác, trong m tối u n y m ti u tối u th l hiệu n ng ti u th iện n ng k h th ớ phần mềm nh ng, v.v. v tối u m ti u C ph ơng ph p tối u m m h p ngữ tập trung v o h ớng h nh l lập lị h lệnh phân ổ th nh ghi v i n ổi m lệnh h p ngữ Nội ung hi ti t trong phần n y s t m l ơ sở lý thuy t ũng nh i ti n v ề xuất một số ph ơng ph p tối u theo m ti u tối u trên.
3.3.1. ác phư ng pháp tối ưu c bản dựa tr n mã hợp ngữ
i. Thay đổi th tự thực hiện lệnh
Th y ổi th t th hiện lệnh l kỹ thuật s ng trong hầu h t CPU hiệu n ng o trong th t th hiện lệnh n ầu ph vỡ th y th ằng th t th hiện tốt hơn tr n t nh sẵn s ng ữ liệu v o Kỹ thuật n y nhằm t ng kh
n ng tận ng CPU tr nh tr ờng h p CPU rỗi khi i nhận ữ liệu ho âu lệnh ằng h th x lý âu lệnh ti p s u kh n ng th hiện ng y V trong khi i lấy ữ liệu th hiện ph p ộng số th th th hiện lu n ph p ộng số nguy n v ộ ộng số th v ộ ộng số nguy n l h i m h phần ng kh nh u Một số CPU hỗ tr t nh n ng n y nh PowerPC 601, MIPS R10000, HP PA-8000, AMD K5, v.v.