Trong hệ thống nhúng, hiểu được các khái niệm Processor Core (lõi vi xử lý), Processor (Vi xử lý) và Microcontroller (Vi điều khiển) thật sự rất quan trọng, những từ này được sử dụng rất nhiều và sẽ dẫn đến không ít nhầm lẫn nếu chúng ta sử dụng không đúng. Bài viết này sẽ chia sẻ dựa trên Processor ARM Cortex – Mx và MCU được thiết kế sử dụng processor này. ARM Cortex – Mx là Processor được sử dụng phổ biến nhất hiện này trong các hệ thống nhúng.
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
1. Phân biệt Processor Core và Processor
Cách tốt nhất để hiểu được về Processor Core và Processor là chúng ta phải xem các tài liệu chính gốc của ARM. ARM xuất bản một tài liệu được gọi là Techical Reference Manual (TRM) về Processor mà họ thiết kế và cung cấp trên thị trường. Tài liệu này nằm trên website của ARM và ai cũng có thể truy cập được, do đó chúng ta có thể tải về và tìm hiểu chi tiết về vi xử lý.
Phân tích sơ đồ khối vi xử lý ARM Cortex M4 trong tài liệu ARM® Cortex®– M4 Processor Technical Reference Manual:
- Cortex-M4 processor bao gồm 1 Processor core (Cortex-M4 Core) và nhiều ngoại vi chuyên dụng xung quanh như NVIC, Flash Patch Breakpoint, Memory protection, Data watchpoint and trace uinit, Bus Matrix,….
- Cortex-M4 Core bao gồm bộ Arithmetic Logic Unit (ALU), nơi thực hiện các phép tính toán số học, phép toán logic và đưa ra kết quả. Processor core cũng bao gồm một bộ giải mã và thực thi lệnh, nó lấy lệnh từ bộ nhớ chương trình và kiểm tra xem câu lệnh có hợp lệ hay không và thực thi lệnh. Một số thanh ghi trong Core được thiết kế để lưu trữ dữ liệu, Core được thiết kế pipeline để tăng tốc độ thực thi lệnh…
- Vậy trong Processor có Processor core, một Processor có thể có một hoặc nhiều core. Trong vi xử lý ARM Cortex M4 thì chỉ có 1 Core. Nên người ta có thể gọi là Single Core Processor.
- Cortex M4 Processor được thiết kế bởi ARM, Processor core và tất cả các ngoại vi liên kết với nó là một Software IP format và chúng sẽ được bán cho các nhà sản xuất vi điều khiển khác nhau như STMicroelectronic, Texas Instruments, Microchip, Broadcom, NXP…vv… Các nhà sản xuất vi điều khiển sẽ tích hợp nguyên thiết kế Processor của ARM vào Microcontroller của họ hoặc loại bỏ đi một số thành phần, ví dụ như họ có thể loại bỏ đi phần Memory Protection hoặc có thể là Data Watchpoint and Trace Unit…
2. Phân biệt Processor và Microcontroller
Để thấy được sự khác nhau giữa Processor và Microcontroller, chúng ta sẽ xem và phân tích trực tiếp trên sơ đồ khối của vi điều khiển STM32F411 được trích từ tài liệu datasheet, đây là một vi điều khiển phổ biến trên thị trường được thiết kế bởi STMicroelectronic. Vi điều khiển này được thiết kế dựa trên Processor ARM Cortex M4 core với DSP và FPU.
- Trái tim của vi điều khiển này chính là vi xử lý ARM Cortex – M4, vi xử lý này được thiết kế bởi ARM, nó hoạt động giống như 1 master và giao tiếp với bên ngoài thông qua các bus: I-BUS, D-BUS, và S-BUS.
- Phần còn lại (ngoài Processor) được thiết kế bởi STMicroelectronic là rất nhiều khối ngoại vi như các khối GPIO, TIMER, UART, I2C, SPI, USB, ADC, RTC, WDG, DMA…, mỗi ngoại vi thực hiện một tính năng khác nhau. Và một phần quan trọng là hệ thống AHB bus, APB bus sẽ giúp liên kết các ngoại vi với nhau và với Processor .
Tài liệu tham khảo
- ARM® Cortex®‑ M4 Processor Technical Reference Manual
- STM32F411xC STM32F411xE datasheet
- Embedded Systems Programming FastBit
Chúc các bạn thành công!
Thuong Nguyen