🌱 Multicore Microcontrollers
Hầu hết các ứng dụng Automotive và IoTs sử dụng vi điều khiển, nhưng với những nhu cầu phát triển các ứng dụng khác nhau trong cùng một sản phẩm, nhà phát triển rất khó có thể sử dụng chỉ một vi điều khiển duy nhất cho ứng dụng của mình.
👉 Tại sao cần sử dụng Multicore?
Ví dụ về một ứng dụng IoT, nhà phát triển cần một ứng dụng chạy Machine Learning với dữ liệu cảm biến, đồng thời lại được yêu cầu ứng dụng phải giảm tiêu thụ năng lượng. Hay một ứng dụng Automative được yêu cầu xử lý phần điều khiển động cơ, cùng với đó là phần Radar. Ở ví dụ này, mình xin đưa ra giải pháp sau:
- Đối với phần điều khiển động cơ, chúng ta cần một vi điều khiển lõi ARM Cortex-M là đủ.
- Trong khi đó, với ứng dụng xử lý bên Radar, ứng dụng cần một vi điều khiển lõi ARM Cortex-A.
➤ Các nhà sản xuất Vi điều khiển quyết định sử dụng kiến trúc Multicore cho nhiều dòng Vi điều khiển của họ để phục vụ nhu cầu người dùng. Tức là một Vi điều khiển sẽ bao gồm 2 hoặc nhiều core, với các bộ ngoại vi vẫn giữ nguyên như vậy.
Core ở đây có thể hiểu là một lõi với 2 thành phần là ALU và tập thanh ghi kết nối với nhau, có thể coi core là một thành phần trong CPU. Như vậy, multicore tức là tích hợp nhiều core trên cùng một CPU.
Vậy với N core, thì chúng ta có thể thực hiện N task đồng thời (không phải là lần lượt như multi-task). Nên lợi ích lớn nhất mà multicore mang lại đó chính là nâng cao hiệu năng và tốc độ của Vi điều khiển.
👉 Một số mô hình Multicore
Ở đây mình tìm hiểu và giới thiệu với các bạn 2 mô hình của multicore, đó là Feature rich/real-time và Real-time/secure.
1. Mô hình Feature rich/real-time
- Core Feature rich được sử dụng cho các ứng dụng sử dụng nhiều tài nguyên, chẳng hạn như hiển thị người dùng, Machine Learning, Audio hay Memory, ...
- Core thứ 2 là Core Real-time để chạy các ứng dụng thời gian thực như điều khiển động cơ, thu thập dữ liệu cảm biến, giao tiếp không dây, ...
2. Mô hình Real-time/Secure
Sự kết hợp giữa Core Real-time và Core Secure- Nếu mong muốn tốc độ xử lý tốt hơn với các ứng dụng hiển thị, audio, memory, ... thì chúng ta có thể dùng Core Real-time Cortex-M7.
- Trong khi đó, một Core M4 sẽ làm nhiệm vụ bảo mật (Core Secure): xử lý, lưu trữ các dữ liệu quan trọng, bộ khởi động khóa bảo mật, ...
Nhìn chung là có thể có rất nhiều sự kết hợp giữa 2 hoặc nhiều core trong các ứng dụng cần sử dụng Multicore, trên đây mình chỉ nêu ra một vài ví dụ đơn giản. Để hiểu hơn về Multicore, tốt hơn hết chúng ta nên thực hành với nó.
Các bạn quen dùng vi điều khiển của hãng ST có thể sắm cho mình một vi điều khiển STM32H7, với cấu tạo một core M7 + một core M4 như hình trên. Hoặc một mặt hàng giá rẻ hơn đó chính là một Vi điều khiển mình từng giới thiệu: Raspberry Pico với hai core M0.
👉 Ở bài viết sau, mình rất mong muốn có thể thực hành và chia sẻ về Multicore để các bạn có thể hiểu hơn về nó.
>>>= Follow ngay =<<<
💚 Kênh Youtube Lập trình - Điện tử 💚
Để nhận được những bài học miễn phí mới nhất nhé 😊
Chúc các bạn học tập tốt 😊
anh ơi cho em hỏi, em có hướng theo lập trình vi điều khiển thì thực tập ở đâu là tốt ạ.
Trả lờiXóaNếu có thời gian full time em có thể apply fresher Fsoft, đào tạo tốt mà giờ đãi ngộ ổn lắm em ơi
XóaEm đang năm thứ 4 thì có apply part time vào đấy được không ạ
XóaTheo mình biết thì Fsoft không tuyển part-time nhé, chỉ có full-time thôi. Nếu năm 4 thì mình nghĩ bạn nên tập trung bsung kiến thức bằng các project thực tế, sau đó khi nào hết môn thì tìm chỗ thực tập full-time
Xóa