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 khai rộ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ên cứu về phần mềm nhúng thực thi trên đó cũng được quan tâm và chuyên sâu hơ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ác hướ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ệu nă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. 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.
đượ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 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 trong mô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 song song, 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.
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ôi trườ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. 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ống nhú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ặp kiêm soát đơn giản, hệ thong ngắt điều khiển, đa nhiệm tương tác, đa nhiệm ưu tiê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 phan cứ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 Trong nghiên cứu [1], phát triển phần mềm nhúng được kiêm thử và kiêm chứ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.
Kiêm chứng và xác nhận Các yêu câu Van hành và kiên trúc và bảo trì Khái niệm các Kiêm chứng và xác thao tác nhận hệ thông Thiết kế chỉ tiết Tích hợp, kiêm thử và kiêm chứng Kiêm thử và Triển khai thực hiện Hình 1. Mô hình chữ V phát triển phần mềm nhúng Hệ thống nhúng là các hệ thống chuyên dụng bao gồm cả phần cứng và phần mềm [2]. Hệ thống nhúng có khả năng tự trị được đặt (nhúng, cai, gắn) vào trong một môi trường hay hệ thống lớn hơn phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiến, quan trắc và truyền tin, v. Đặc điểm của các hệ thống nhúng là hoạt động ôn định và có 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 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 | `.
Công nghiệp Công nghệ mạng Hình 1. Ứng dụng hệ thống nhúng Hệ thống nhúng được ứng dụng trong hầu khắp các mặt của đời sống, xã hội, như: - 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ính chí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 - 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. 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ới mộ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].
Ứng Ứng dụng 2 dụng 3 Bộ xử lý nhúng Hình 1. Tông quan về kiến trúc thiết bi di động 22 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. Trong cá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.
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ỗi nhâ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ều nhâ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 ra dùng chung cho các nhân hoặc được phân bồ riêng cho từng nhân, Hình 1. 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 lệnh này thường được ánh xạ ra thành các ký hiệu gợi nhớ như ADD, MOV, IN, OUT, v. Liên kết hệ thống Bộ nhớ đệm L2 | Bộ điều khiển bộ nhớ Hình 1. Bộ xử lý đa nhân 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.
24 Ứng dụng ] Hệ điều hành Liên kết hệ thống Bộ nhớ đệm L2 | Bộ điêu khiên bộ nhớ Hình 1. Mô hình ứng dụng được triển khai trên hệ thống đa nhân 1. Xử lý song song Xử lý song song là khả năng xử lý nhiều tác vụ khác nhau trong cùng một thời điểm [3]. Dé thực hiện được song song hóa tác vụ thì các tác vụ này phải hoàn toàn độc lập với nhau.