Tổng quan nghiên cứu

Sự phát triển mạnh mẽ của công nghệ vi điện tử đã chuyển dịch các thiết bị đồng hồ điện tử số từ công cụ xem giờ cơ bản thành các thiết bị đeo thông minh đa chức năng vi tính hóa. Tuy nhiên, các thiết bị này bị giới hạn nghiêm ngặt bởi kích thước nhỏ gọn của viên pin cúc áo CR2032 với dung lượng danh định khoảng 180 mAh, đòi hỏi mức dòng tiêu thụ trung bình của toàn hệ thống phải duy trì ổn định dưới 10 µA ở điện áp làm việc 3.0V nhằm đảm bảo thời gian hoạt động tối thiểu đạt 1 năm (tương đương 8.760 giờ).

Trước đây, phần mềm cho đồng hồ chủ yếu được phát triển bằng hợp ngữ, phụ thuộc lớn vào kỹ năng cá nhân của lập trình viên và rất khó mở rộng khi tích hợp thêm các cảm biến đo áp suất, độ cao, nhiệt độ hay la bàn số. Trong khi đó, các hệ điều hành thời gian thực thương mại hiện hành thường tiêu tốn tài nguyên bộ nhớ và lãng phí năng lượng do cơ chế kiểm tra tác vụ liên tục tại mỗi xung đồng hồ cố định.

Đề tài tập trung xây dựng một hệ điều hành thời gian thực chuyên biệt cho ứng dụng đồng hồ trên nền tảng vi xử lý 16-bit RISC S1C17704 của hãng Seiko Epson. Nghiên cứu được thực hiện tại Trường Đại học Bách Khoa thuộc Đại học Quốc gia Thành phố Hồ Chí Minh trong giai đoạn từ tháng 07 năm 2011 đến tháng 05 năm 2012.

Mục tiêu cốt lõi của công trình là thiết lập khung kiến trúc phần mềm nhúng chuẩn hóa, tối ưu hóa năng lượng tiêu thụ thông qua giải thuật quản lý tác vụ phân cấp kết hợp xung đồng hồ hệ thống động, giúp rút ngắn chu kỳ phát triển ứng dụng và kéo dài tuổi thọ pin cho các dòng sản phẩm đồng hồ điện tử thế hệ mới.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng dựa trên nền tảng lý thuyết hệ thống thời gian thực dẻo, nơi các tác vụ phải thỏa mãn các ràng buộc về tính đúng đắn logic lẫn thời hạn đáp ứng nghiêm ngặt. Trong mô hình này, việc trễ hạn một số tác vụ không phá hủy hệ thống nhưng sẽ làm suy giảm trải nghiệm người dùng.

Hệ thống kế thừa và cải tiến các thuật toán lập lịch thời gian thực kinh điển như thuật toán gán độ ưu tiên theo chu kỳ của Liu và Layland công bố năm 1973 cùng thuật toán ưu tiên thời hạn ngắn nhất. Cơ chế quản lý năng lượng động cấp hệ điều hành được khai thác tối đa để điều khiển các trạng thái nguồn của vi xử lý gồm chế độ chạy bình thường, chế độ tạm dừng và chế độ ngủ sâu.

Khung kiến trúc hệ điều hành tích hợp đầy đủ các khái niệm cốt lõi của một nhân hệ điều hành bao gồm: Khối điều khiển tác vụ với 256 mức độ ưu tiên, cơ chế chuyển đổi ngữ cảnh tối ưu thanh ghi, phân chia khe thời gian luân phiên, cùng các cấu trúc dữ liệu đồng bộ hóa như Khối điều khiển sự kiện, Semaphore và Khối điều khiển hàng đợi tin nhắn.

Họ vi xử lý S1C17704 cung cấp tập lệnh 16-bit RISC gồm 111 lệnh cơ bản cùng 184 biến thể mở rộng, sở hữu hai bộ dao động thạch anh kép gồm dao động chính tối đa 8.2 MHz và dao động phụ 32.768 kHz, hỗ trợ không gian địa chỉ 24-bit với 64 KB bộ nhớ Flash và 4 KB bộ nhớ RAM nội tuyến.

+--------------------------------------------------------------------+
|                         LỚP ỨNG DỤNG                               |
|        (Quét phím, Giờ hiện hành, Báo thức, Cảm biến, LCD)         |
+--------------------------------------------------------------------+
                                  |
                                  v
+--------------------------------------------------------------------+
|                GIAO DIỆN LẬP TRÌNH ỨNG DỤNG (API)                  |
+--------------------------------------------------------------------+
                                  |
                                  v
+--------------------------------------------------------------------+
|                         NHÂN HỆ ĐIỀU HÀNH                          |
|  +---------------------------+  +-------------------------------+  |
|  |   Bộ lập lịch phân cấp    |  |  Hàng đợi tác vụ phân cấp     |  |
|  +---------------------------+  +-------------------------------+  |
|  | Bộ quản lý xung nhịp động |  | Bộ điều khiển nghỉ CPU (Idle) |  |
|  +---------------------------+  +-------------------------------+  |
|  | Truyền thông liên tác vụ  |  | Trình xử lý ngắt và ngoại vi  |  |
|  |   (Semaphore / MsgQueue)  |  |    (ISR / Device Drivers)     |  |
|  +---------------------------+  +-------------------------------+  |
+--------------------------------------------------------------------+
                                  |
                                  v
+--------------------------------------------------------------------+
|                  LỚP TRỪU TƯỢNG PHẦN CỨNG (HAL)                    |
+--------------------------------------------------------------------+
                                  |
                                  v
+--------------------------------------------------------------------+
|                  PHẦN CỨNG VI XỬ LÝ S1C17704                       |
|   (Lõi 16-bit RISC, 64KB Flash, 4KB RAM, OSC 32.768kHz/8.2MHz)     |
+--------------------------------------------------------------------+

Phương pháp nghiên cứu

Nghiên cứu sử dụng phương pháp thực nghiệm kết hợp mô hình hóa giải thuật trên tập dữ liệu mẫu chuẩn gồm 10 kịch bản tác vụ tuần hoàn tiêu biểu của đồng hồ đa chức năng: tác vụ quét phím chu kỳ 20 ms, tác vụ cập nhật đồng hồ bấm giờ chu kỳ 10 ms, tác vụ cập nhật giờ hiện tại chu kỳ 1.000 ms, tác vụ đọc cảm biến môi trường chu kỳ 5.000 ms và tác vụ cảnh báo pin chu kỳ 60.000 ms.

Quy trình chọn mẫu được thực hiện theo phương pháp chọn mẫu phi xác suất có chủ đích nhằm bao phủ toàn bộ các dải chu kỳ thực thi từ ngắn hạn đến dài hạn trong hệ thống nhúng. Lý do lựa chọn phương pháp đo dòng trực tiếp thông qua điện trở shunt và thiết bị đo dao động ký chuyên dụng là nhằm thu thập chính xác các xung dòng tức thời khi CPU chuyển đổi giữa trạng thái tích cực 17 µA, trạng thái tạm dừng 2.5 µA và trạng thái ngủ sâu 1.0 µA.

Toàn bộ quá trình thử nghiệm được lặp lại hơn 100 lần trong môi trường phòng thí nghiệm từ tháng 11 năm 2011 đến tháng 04 năm 2012 để thu thập các giá trị trung bình thống kê, phục vụ cho việc so sánh định lượng giữa mô hình hàng đợi đơn cấp truyền thống và hàng đợi phân cấp cải tiến.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình đo đạc và phân tích thực nghiệm trên vi xử lý S1C17704 đã mang lại các phát hiện khoa học quan trọng về hiệu năng hệ thống:

+--------------------------+-----------------------+---------------------+-----------------------+
| Tiêu chí đánh giá        | RTOS đơn cấp          | RTOS phân cấp       | Mức độ cải thiện      |
|                          | (Fixed System Tick)   | (Dynamic Tick)      |                       |
+--------------------------+-----------------------+---------------------+-----------------------+
| Dòng tiêu thụ trung bình | 16.8 µA               | 9.4 µA              | Giảm 44.05%           |
| Tỷ lệ thời gian ngủ CPU  | 62.3%                 | 87.6%               | Tăng 25.3 điểm %      |
| Thời gian CPU cho Kernel | 18.5%                 | 4.2%                | Giảm 77.30%           |
| Dung lượng chiếm dụng    | 12.4 KB Flash         | 7.6 KB Flash        | Tiết kiệm 38.71%      |
| Tuổi thọ pin CR2032      | Khoảng 7.2 tháng      | Khoảng 14.8 tháng   | Kéo dài hơn 100%      |
+--------------------------+-----------------------+---------------------+-----------------------+

Thứ nhất, giải thuật lập lịch phân cấp kết hợp xung đồng hồ hệ thống động đã cắt giảm thời gian chiếm dụng CPU của nhân hệ điều hành từ mức 18.5% xuống còn 4.2%, tương đương mức giảm 77.30% thời gian xử lý vô ích của nhân hệ thống.

Thứ hai, tỷ lệ thời gian vi xử lý hoạt động ở các chế độ tiết kiệm năng lượng tăng từ 62.3% lên 87.6% trong toàn bộ chu kỳ đo kiểm tiêu chuẩn, giúp dòng tiêu thụ trung bình của hệ thống giảm từ 16.8 µA xuống còn 9.4 µA ở điện áp 3.0V (giảm 44.05%).

Thứ ba, kiến trúc nhân hệ điều hành đạt độ nhỏ gọn ấn tượng, chỉ chiếm 7.6 KB trên tổng số 64 KB bộ nhớ Flash (tương đương 11.87%) và sử dụng 1.15 KB trên tổng số 4 KB bộ nhớ RAM nội tuyến (tương đương 28.75%), đảm bảo không gian rộng rãi cho các chương trình ứng dụng mở rộng.

Thứ tư, tuổi thọ ước tính của viên pin CR2032 dung lượng 180 mAh được nâng từ 7.2 tháng khi dùng cơ chế lập lịch đơn cấp lên tới 14.8 tháng, vượt qua ngưỡng yêu cầu hoạt động liên tục 1 năm của thiết bị thương mại.

Dòng điện (µA)
 ^
10 |
   +----+----+----+----+----+----+---> Thời gian (ms)
   0   10   20   30   40   50   60

Thảo luận kết quả

Sự vượt trội của mô hình bắt nguồn từ việc loại bỏ hoàn toàn các chu kỳ duyệt tác vụ không cần thiết. Trong hệ điều hành truyền thống với chu kỳ xung nhịp cố định 10 ms, bộ lập lịch buộc phải quét qua toàn bộ danh sách tác vụ sau mỗi 10 ms ngay cả khi các tác vụ chu kỳ dài như 1.000 ms hay 5.000 ms chưa đến hạn thực thi. Ngược lại, mô hình phân cấp gom nhóm các tác vụ có cùng thời gian lặp vào từng cấp độ riêng biệt và chỉ phát sinh ngắt định thời tương ứng với cấp độ đó. Khi một cấp độ không có tác vụ tích cực, xung nhịp của cấp độ đó sẽ tự động bị ngắt hoàn toàn.

Dữ liệu biến thiên dòng điện theo thời gian được mô tả trực quan qua biểu đồ dạng sóng dao động ký: ở hệ điều hành truyền thống, các đỉnh xung dòng 17 µA xuất hiện dày đặc và đều đặn theo tần số xung nhịp cố định; trong khi ở mô hình phân cấp động, vi xử lý duy trì trạng thái nằm yên ở mức dòng tiêu thụ tĩnh 2.5 µA và 1.0 µA trong các khoảng thời gian liên tục kéo dài.

Kết quả này hoàn toàn tương thích và mở rộng các kết luận lý thuyết của một số nghiên cứu trước đây về quản lý ngắt tuần hoàn trên vi điều khiển nhúng, đồng thời chứng minh tính khả thi vượt trội khi triển khai thực tế trên các dòng vi xử lý có bộ nhớ hạn chế dưới 4 KB RAM.

Đề xuất và khuyến nghị

Dựa trên các kết quả đạt được từ đề tài, các giải pháp kỹ thuật cụ thể được khuyến nghị triển khai bao gồm:

+----------------------------------------------------------------------------------------------------+
|                             LỘ TRÌNH KHUYẾN NGHỊ VÀ TRIỂN KHAI                                     |
+-------------------+--------------------------------+--------------------+--------------------------+
| Mục tiêu          | Giải pháp kỹ thuật             | Chỉ số đầu ra      | Thời gian & Chủ thể      |
+-------------------+--------------------------------+--------------------+--------------------------+
| Cắt giảm năng     | Ứng dụng lập lịch phân cấp và  | Giảm ít nhất 40%   | Quý 1 - Quý 2 năm tới    |
| lượng tiêu thụ    | ngắt xung nhịp động            | dòng điện trung    | Kỹ sư phần mềm nhúng     |
|                   |                                | bình hệ thống      |                          |
+-------------------+--------------------------------+--------------------+--------------------------+
| Tối ưu hóa bộ nhớ | Sử dụng mô hình chia sẻ Stack  | Tiết kiệm trên 35% | Quý 3 năm tới            |
| RAM nội tuyến     | chung cho các tác vụ tuần hoàn | dung lượng RAM cần | Nhóm kiến trúc hệ thống  |
|                   |                                | cấp phát           |                          |
+-------------------+--------------------------------+--------------------+--------------------------+
| Chuẩn hóa thư     | Xây dựng lớp trừu tượng phần   | Rút ngắn thời gian | Quý 4 năm tới            |
| viện driver       | cứng (HAL) tương thích POSIX   | chuyển đổi chip    | Nhóm phát triển phần mềm |
|                   |                                | xuống dưới 2 tuần  | nền tảng                 |
+-------------------+--------------------------------+--------------------+--------------------------+
| Nâng cao khả năng | Nghiên cứu giải thuật quản lý  | Giữ độ trễ phản hồi| Năm tiếp theo            |
| xử lý sự kiện     | tác vụ không tuần hoàn nâng cao| ngắt dưới 50 µs    | Các nhóm nghiên cứu R&D  |
+-------------------+--------------------------------+--------------------+--------------------------+

Thứ nhất, tích hợp giải thuật lập lịch phân cấp vào các dự án phần mềm thiết bị đeo thông minh và cảm biến không dây nhằm cắt giảm ít nhất 40% năng lượng tiêu thụ trong 6 tháng đầu triển khai, do các kỹ sư phần mềm nhúng chủ trì.

Thứ hai, áp dụng giải pháp chia sẻ vùng nhớ ngăn xếp dùng chung giữa các tác vụ tuần hoàn không đồng thời nhằm giảm 35% mức chiếm dụng RAM nội suy trên các dòng chip có dung lượng dưới 4 KB, hoàn thành trong vòng 9 tháng bởi nhóm phát triển nhân hệ thống.

Thứ ba, chuẩn hóa giao diện lập trình ứng dụng và lớp trừu tượng phần cứng theo cấu trúc module độc lập để rút ngắn thời gian chuyển đổi mã nguồn giữa các dòng vi xử lý khác nhau xuống dưới 2 tuần làm việc, do các kỹ sư nền tảng phần mềm đảm nhiệm.

Thứ tư, tiếp tục mở rộng mô hình để hỗ trợ tối ưu các tác vụ không tuần hoàn xuất hiện ngẫu nhiên thông qua cơ chế phục vụ ngắt kết hợp với hàng đợi ưu tiên động, hoàn thành trong lộ trình 12 tháng tiếp theo bởi các nhóm nghiên cứu công nghệ nhúng.

Đối tượng nên tham khảo luận văn

Luận văn là tài liệu tham khảo giá trị cho nhiều nhóm chuyên gia và tổ chức trong ngành công nghệ:

+------------------------------------+---------------------------------------------------------------+
| Nhóm đối tượng                     | Lợi ích ứng dụng cụ thể và Use Case                           |
+------------------------------------+---------------------------------------------------------------+
| Kỹ sư phát triển hệ thống nhúng    | Nắm vững phương pháp thiết kế nhân RTOS siêu nhẹ và kỹ thuật  |
| và thiết bị đeo (Wearables/IoT)    | quản lý xung nhịp động cho thiết bị chạy pin dung lượng nhỏ.  |
+------------------------------------+---------------------------------------------------------------+
| Học viên cao học và nhà nghiên cứu | Tham khảo mô hình toán học về phân cấp hàng đợi và phương pháp|
| ngành Khoa học Máy tính            | đánh giá định lượng hiệu năng năng lượng trên phần cứng thực. |
+------------------------------------+---------------------------------------------------------------+
| Doanh nghiệp sản xuất thiết bị     | Ứng dụng khung phần mềm nền tảng để chuẩn hóa mã nguồn, cắt   |
| điện tử gia dụng và đồng hồ số     | giảm 50% thời gian phát triển và nâng cao độ ổn định sản phẩm.|
+------------------------------------+---------------------------------------------------------------+
| Giảng viên và cơ sở đào tạo        | Sử dụng làm tài liệu giảng dạy chuyên đề thực hành về hệ thống|
| chuyên ngành Kỹ thuật Máy tính     | thời gian thực và kiến trúc vi điều khiển 16-bit RISC.        |
+------------------------------------+---------------------------------------------------------------+

Các nhóm kỹ sư nhúng có thể trực tiếp tái sử dụng cấu trúc khối điều khiển tác vụ và giải thuật điều phối xung nhịp để giải quyết bài toán tiêu thụ nguồn trên các chip có bộ nhớ hạn chế. Các cơ sở đào tạo có thể sử dụng mã nguồn và tài liệu thiết kế làm case study thực tiễn minh họa cho môn học hệ điều hành thời gian thực.

Câu hỏi thường gặp

Tại sao hệ điều hành phân cấp lại tiết kiệm năng lượng hơn hệ điều hành thời gian thực truyền thống?
Trong hệ điều hành truyền thống, xung nhịp cố định đánh thức CPU liên tục để duyệt toàn bộ danh sách tác vụ. Ngược lại, hệ điều hành phân cấp chia tác vụ theo chu kỳ lặp và áp dụng xung nhịp động, chỉ đánh thức CPU khi có tác vụ đến hạn và giữ vi xử lý ở trạng thái nghỉ sâu 1.0 µA lâu hơn 25.3 điểm phần trăm.

Hệ thống có đảm bảo tính thời gian thực khi sử dụng xung nhịp động không?
Có. Hệ thống hoàn toàn đáp ứng các ràng buộc thời gian thực nhờ cơ chế ánh xạ chính xác chu kỳ lặp của tác vụ vào từng cấp độ hàng đợi. Các tác vụ có chu kỳ ngắn hạn như quét phím 20 ms luôn được ưu tiên xử lý trước, loại bỏ hoàn toàn hiện tượng trễ hạn thời gian thực tế.

Vi xử lý S1C17704 có những ưu điểm phần cứng nào cho ứng dụng đồng hồ?
Vi xử lý S1C17704 tích hợp lõi 16-bit RISC với 64 KB Flash, 4 KB RAM, mạch lái màn hình LCD tích hợp sẵn, bộ dao động thạch anh kép 32.768 kHz và 8.2 MHz, cùng mức tiêu thụ dòng cực thấp chỉ 1.0 µA ở chế độ ngủ sâu, rất lý tưởng cho thiết bị dùng pin cúc áo.

Mô hình này có thể áp dụng cho các dòng vi điều khiển khác ngoài S1C17704 không?
Hoàn toàn có thể. Cấu trúc hệ điều hành được thiết kế phân lớp rõ ràng với lớp trừu tượng phần cứng riêng biệt. Các kỹ sư có thể dễ dàng chuyển đổi mã nguồn sang các họ vi điều khiển ARM Cortex-M0+, MSP430 hoặc PIC trong vòng 2 tuần làm việc mà vẫn giữ nguyên giải thuật lập lịch.

Thời lượng pin của đồng hồ được cải thiện cụ thể như thế nào sau khi ứng dụng nghiên cứu?
Với viên pin CR2032 dung lượng 180 mAh, việc giảm dòng tiêu thụ trung bình từ 16.8 µA xuống còn 9.4 µA ở điện áp 3.0V giúp kéo dài tuổi thọ sử dụng từ 7.2 tháng lên 14.8 tháng, tăng hơn 100% thời gian hoạt động và vượt chỉ tiêu 1 năm đặt ra.

Kết luận

Những đóng góp chính và định hướng ứng dụng của luận văn bao gồm:

  • Thiết kế và hiện thực thành công hệ điều hành thời gian thực siêu nhỏ gọn chuyên biệt cho ứng dụng đồng hồ trên vi điều khiển S1C17704, dung lượng chiếm dụng chỉ 7.6 KB Flash và 1.15 KB RAM.
  • Đề xuất giải thuật quản lý tác vụ tuần hoàn trên hàng đợi phân cấp kết hợp xung nhịp hệ thống động, giúp giảm 77.30% thời gian xử lý vô ích của nhân hệ thống.
  • Cắt giảm dòng tiêu thụ trung bình của hệ thống xuống mức 9.4 µA, kéo dài tuổi thọ pin CR2032 180 mAh từ 7.2 tháng lên 14.8 tháng trong các kịch bản vận hành thực tế.
  • Xây dựng thành công lớp trừu tượng phần cứng giúp tách biệt mã nguồn ứng dụng khỏi phần cứng, rút ngắn đáng kể chu kỳ thiết kế sản phẩm mới.
  • Thiết lập lộ trình mở rộng cho các tác vụ không tuần hoàn và giải thuật nén bộ nhớ ngăn xếp trong vòng 12 tháng tiếp theo.

Các nhà phát triển phần mềm nhúng và các doanh nghiệp sản xuất thiết bị đeo thông minh hãy ứng dụng ngay mô hình lập lịch phân cấp và xung nhịp động vào kiến trúc sản phẩm để tối ưu hóa năng lượng và nâng cao năng lực cạnh tranh trên thị trường.