Tổng
quan
về
phần
mềmtronghệ
thống
nhúng
Topics
Tổng quan chung trong thiếtkế phầnmềm
dành cho hệ thống nhúng
Sự khác nhau trong hình thức phát triển
phầnmềm
2
Vũ
Quang
Dũng
Sách
tham
khảo
P. Marwedel: Embedded System Design
(paperback), Springer Verlag, December 2005,
ISBN: 0387292373.
G.C. Buttazzo: Hard Real-Time Computing
Systems. Kluwer Academic Publishers, 1997.
W. Wolf: Computers as Components –
Principles of Embedded System Design. Morgan
Kaufman Publishers, 2000.
J. Teich: Digitale Hardware/Software Systeme,
Springer Verlag, 1997.
Phát
triểnphầnmềm
WCET –
Trường
hợpxấunhấttrong
thờigianthựcthi
WCET –làgiớihạntrêntrongthời gian
thựcthicủa các công việc trong hệ thống
Cầnthiếtchotấtcả các phương thức,
nhằm đảmbảocáctrạng thái thời gian
của ứng dụng
WCET
- WCET
- WCET’
(gầngiớihạn
trên)
- Có
thể
xảy
ra
worst case
- Tuân
theo
thờigianthựcthi
- Tính
tôt
nhấttrongthờigianthựcthi
- Gầngiớihạndưới
dành
cho
best case
- Giớihạndướicóthể
tốtnhấttrongthờigianthựcthi
t
Khoảng
thờigian
thựcthi
có
thể
xảyra
Sự
hiệuqua củaphương
thức
ở
mức
hệ
thống
Hệ
thống
thựcSựđolường
Mô
hình
hóa
Phân
tích
WCET –
tiếp
Tính phứchợp
Trong trường hợptổng quát: tính không nhấtquyết
nếutồntạigiớihạn
Cho những chương trình hạnchế: như các thiếtkế
đơngiản, tính phứctạp dành cho các thiếtkế mới
bao gồm pipelines, caches, interrupt, virtual memory
…
Tiếpcận theo hướng phân tích
Dành cho phầncứng: cầnthiếtcủatổng hợpphần
cứng.
Dành cho phầnmềm: cầnphảicómáychương trình,
phân tích, sự cầnthiếtcủamộtmôhìnhphầncứng.
Thờigianthực
thi
trung
bình
Mô hình hóa (simulation): dướicácmức độ khác nhau
trong phân tích tỉ mỉ có thể nhấtcủahệ thống, mô phỏng
trạng thái củamôitrường
Sự mô phỏng (emulation): mộtphầncủahệ thống được
thay thế bởiphầncứng mô phỏng
Sựđịnh hình (profiling): thờigianthựcthiđược đo trong
hệ thống thựcthithựctế
Vấn đề (Problem): trên tổng quát, WCET không thể
đượcxácđịnh bằng phương pháp dựatrênmôitrường,
dữ liệu đầu vào, nó đượcsử dụng thông qua thờigian
thực thi trung bình của toàn hệ thống
Hệ
thống
điềukhiểnthờigianthực
A/D: analog to digital
D/A: digital to analog
Đaxử
lý
Khái niệmcủaxử lý song song phản ánh bằng
trựcgiáccácchứcnăng củahệ thống nhúng.
Xử lý giúp cho quảnlýthờigianhệ thống:
Tốc độ đaxử lý
Đaphương tiện
Tựđộng
Đầu ra không đồng bộ
Giao diệnngườisử dụng
Hệ thống trao đổi thông tin
Ví
dụ: máy
điềukhiển
Xử lý:
Điềukhiển đánh
lửa
Cảm giác tay quay
Hỗnhợpkhí–
nhiên liệu
Bộ lọcKalman–
thuậttoánđiều
khiển
Khái
niệm
đồng
thứ
tự
Các kỹ năng lậptrìnhđượcsử dụng trong phát
triểnES
Sự gọi hàm quyết định địachỉ trả về
Đồng thứ tự này sẽ trao quyền điềukhiểncho
đồng thứ tự khác
Phầnchuyển điềukhiển được nhúng trong mã
Các vấn đề:
Khó xác định đượcvếtthựcthitừ chương trình
Không giấudữ liệu
Phương
pháp
đồng
thứ
tự
Ví dụ trong mã assembler củaARM
Tổng
quan
Có rấtnhiềucấu trúc khác nhau củamột
chương trình nhúng.
Những nguyên tắccơ bản:
Tiếpcận theo time trigger
Tính chu kỳ
Thựcthituần hoàn
Lậplịch
Tiếp cân theo event trigger
Không ưutiên
Ưutiên–stack
Ưutiên–lậplịch
Ưutiên–đatiếntrình
Hệ
thống
time trigger (TT)
Mô hình đơngiản
Không xảyrangắtbởibộ thờigian
Bộ lậplịch định trước – không sử dụng thuậttoán
Xác định tạitrạng thái run-time
Tương tác vớimôitrường thông qua các giao tiếp
Lậplịch
TT theo
chu
kỳ
Bộ thờigianhoạt động đều đặntheochukỳ P
Tấtcả các tiếntrìnhđềucócùngchukỳ P
Đặc điểm
Các tiến trình sau (T2, T3) không thể dựđoán trướckhibắt đầu
Không xảyravấn đề gì trong liên lạcgiữacáctiếntrìnhhay sử
dụng các tài nguyên, như có mộtthứ tự tĩnh
Ví
dụ
về
lậplịch
TT theo
chu
kỳ
Lậplịch
TT thựcthituần
hoàn
Tiếntrìnhcóthể có các chu kỳ khác nhau
Chu kỳ P được chia ra thành từng đoạn frame
với độ dài f
Vấn đề: nếucócáctiến trình dài, và cần được
phân chia thành các luồng tiến trình nhỏ hơn, thì
nó sẽ không phù hợp, khi các trạng thái local
phải phân chia và lưu thành các trạng thái global
Lậplịch
TT thựcthituần
hoàn
Điềukiện:
Tiếntrìnhthực thi trong một frame
f <= p(k) vớimọik (p –chukỳđốivớitiếntrìnhk)
Chu kỳ P tốithiểuphải là tích củatấtcả tiến trình p(k)
Các tiếntrìnhbắt đầuvàkết thúc trong khoảng một
frame
f >= WCET(k) vớimọik
Giữacáclầncấp phát thời gian và deadline củamọi
tiến trình, xuấthiệnítnhấtmộtframe
2f – gcd(p(k),f) <= D(k) vớimọi k (D(k) – deadline của
tiếntrìnhk)
Lược
đồ
của
điềukiệncuốicùng
Ví
dụ
về
lậplịch
thựcthituần
hoàn
Ràng buộc
f <= min{4,5,20} = 4
f >= max{1.0, 1.0, 1.8, 2.0} = 2.0
2f – gcd(p(k), f) <= D(k) vớimọik
⇒ Giải
pháp
f = 2
Lậplịch
TT
Trong toàn hệ thống TT, cấutrúcđiềukhiểntạmthời
củamọitiếntrìnhđược thành lập vào khoảng trướchoạt
động, và được đưa vào trong danh sách đặctả tiếntrình
(TDL – Task-Descriptor List), chứasự lậplịch thựcthi
tuần hoàn củamọihoạt động hệ thống.
Lịch đượclậpsẽ cân nhắccácquyền ưu tiên, và các
quan hệ qua lạilẫn nhau giữacáctiến trình.
Dispatcher (sự gửi) đượckíchhoạtbởi đồng hồđồng
bộ. Nó sẽ tìm kiếm trong TDL, sau đóthựcthicáchành
động đã đượclênkế hoạch trong khoảng thờigianđó.
Ví
dụ
về
lậplịch
TT
Kếtluậnvề
lậplịch
TT
Tính quyết định củalậplịch, dễ dàng kiểm
chứng, test và xác thực
Sử dụng chia xẻ tài nguyên
Liên kết ngoài chỉ thông qua polling
Tính bấtbiếncủamôitrường
Sẽ có vấn đề nếutiến trình dài
Không cho phép ngắt?
Cho phép quyền ưutiêncủatiếntrìnhđang hoạt
động.