Memahami Pengaktifan DSP Menggunakan MCU Crossover i.MX RT500 NXP
Pelajari tentang program multi-utas, mengembangkan aplikasi menggunakan sistem operasi waktu-nyata XOS, berbagi sumber daya dengan semaphore, dan bagaimana keluarga i.MX RT500 NXP mikrokontroler membantu para insinyur merancang perangkat pintar yang mendukung DSP.
Perangkat konsumen cerdas saat ini memerlukan komponen yang mampu memproses data dalam jumlah besar untuk memenuhi tuntutan berbagai aplikasi keamanan dan pemrosesan sinyal. Komponen-komponen ini (termasuk mikrokontroler) harus dapat memproses data tersebut dengan cepat dan efisien, yang membutuhkan prosesor sinyal digital yang sangat optimal.
Artikel ini memperkenalkan beberapa fitur prosesor audio Cadence® Tensilica® Fusion F1, co-prosesor khusus yang membantu CPU utama MCU i.MX RT500 dalam melakukan penghitungan pemrosesan sinyal.
Konsep Inti Program Multi-Utas
Sepintas, perangkat keras pemrosesan modern menciptakan ilusi bahwa ia mengeksekusi banyak utas secara bersamaan. Pada kenyataannya, satu inti CPU menangani satu utas pada satu waktu. Ketika jumlah thread melebihi jumlah core CPU yang tersedia, sistem operasi diperlukan untuk menjadwalkan thread.
OS perlu melacak semua utas yang dimulai dan statusnya, dan menetapkan slot waktu CPU untuk setiap utas sehingga berbagai aplikasi dapat berjalan secara efisien dan tampaknya paralel.
Gambar 1. Status utas yang berbeda
Penjadwal sistem operasi mempertahankan antrian untuk utas yang siap dijalankan, antrean untuk memblokir utas, dan perlu menyimpan informasi tentang utas yang sedang berjalan untuk menyelesaikan distribusi waktu CPU yang adil:
- Utas dalam antrian siap sedang menunggu OS untuk menjadwalkannya di CPU. Biasanya, penjadwal OS mengetahui tingkat prioritas yang berbeda, yang dipertimbangkan saat memilih utas mendatang untuk dijalankan di CPU.
- Pemblokiran utas menunggu peristiwa eksternal terjadi, misalnya, interupsi pin atau operasi file. Menjadwalkan utas ini berarti bahwa CPU membuang daya pemrosesan menunggu operasi eksternal selesai. Setelah operasi pemblokiran selesai, utas tunggu terkait kembali ke akhir antrian siap.
- Utas yang sedang berjalan mungkin melakukan operasi pemblokiran, atau OS mungkin menjadwalkan utas yang berbeda sesuai dengan strategi penjadwalannya. Dalam hal ini, penjadwal kemudian akan masing-masing memindahkan utas yang sedang berjalan ke daftar utas yang diblokir atau ke akhir antrian siap.
Pengembang OS dapat memilih untuk menerapkan satu atau banyak strategi penjadwalan yang berbeda tergantung pada persyaratan yang tepat. Selain penjadwalan, sinkronisasi dan komunikasi antara thread yang berbeda merupakan aspek penting lainnya dari sistem multi-threaded.
Kondisi dan Acara di XOS
Kondisi dalam XOS RTOS (sistem operasi waktu nyata) memungkinkan pengembang menginstruksikan utas untuk memblokir hingga kondisi yang ditentukan menjadi benar. Sistem mengevaluasi setiap kondisi menggunakan fungsi kondisi yang ditentukan oleh pengembang aplikasi. XOS melakukan evaluasi setiap kali utas lain memberi sinyal objek kondisi atau saat pengendali interupsi memicunya.
Acara dalam XOS, di sisi lain, mewakili sekelompok bit yang dapat digunakan pengembang untuk menyinkronkan berbagai utas atau utas dan penangan interupsi. XOS memungkinkan beberapa utas untuk menunggu acara dan memberi sinyal secara bersamaan.
Interupsi di XOS
XOS menawarkan serangkaian fitur yang kaya untuk menangani interupsi dan pengecualian yang terjadi selama runtime. Mekanisme interupsi dalam XOS menawarkan fleksibilitas kepada pemrogram untuk menginstal penangan khusus sambil memastikan bahwa pengiriman interupsi bekerja secepat mungkin di dalam sistem. XOS juga mendukung penanganan interupsi bersarang, yang berarti bahwa OS menjeda pengendali interupsi saat ini jika interupsi dengan prioritas lebih tinggi terjadi. Setelah sistem selesai menangani interupsi berprioritas tinggi, sistem akan secara otomatis melanjutkan melayani interupsi berprioritas rendah.
Utas mungkin juga memiliki layanan terkait waktu seperti penundaan waktu dan panggilan balik pengatur waktu berkala di XOS. Co-processor DSP mendukung hingga tiga timer internal yang dapat dikonfigurasi oleh programmer sesuai kebutuhan.
Memahami Semafor
Dalam pemrograman multi-utas, semaphore menyediakan sarana untuk mengontrol dan mengoordinasikan akses ke sumber daya bersama. Semaphore membantu menghindari masalah bagian kritis dalam sistem bersamaan dengan menyinkronkan utas yang berbeda. Semaphore adalah konstruksi sederhana yang melacak penghitung internal dengan nilai awal yang telah ditentukan yang dapat diatur secara bebas oleh programmer dalam kode sumber. Implementasi yang berbeda ada, tetapi penghitung biasanya menunjukkan berapa banyak utas yang masih dapat mengakses sumber daya bersama.
Setiap kali utas ingin mengakses sumber daya bersama, sistem memeriksa apakah penghitung terkait lebih besar dari nol. Jika ya, OS memberikan akses ke sumber daya dan mengurangi penghitung internal semaphore. Jika utas mungkin tidak mengakses sumber daya pada waktu tertentu, utas beralih ke status pemblokiran dan menunggu hingga menerima akses ke sumber daya. Setiap kali sebuah utas membebaskan sumber daya, OS meningkatkan penghitung semaphore, dan utas baru dapat memasuki bagian kritis.
Gambar 2. Bagan alir yang mengilustrasikan cara kerja semaphore
Ikhtisar i.MX RT500 MCU dan DSP
i.MX RT500 adalah keluarga mikrokontroler inti ganda berdasarkan inti Arm® Cortex®-M33 yang kuat dengan kecepatan clock hingga 275 MHz dan mendukung hingga lima megabita SRAM.
i.MX RT500 MCU menawarkan fitur perlindungan seperti Arm TrustZone dan unit perlindungan memori (MPU) internal dengan dukungan hingga delapan wilayah. Co-prosesor kripto CASPER memungkinkan akselerasi perangkat keras untuk meningkatkan berbagai fungsi yang diperlukan untuk algoritme kriptografi asimetris. Serangkaian fitur hemat daya memungkinkan desainer menyesuaikan konsumsi daya i.MX RT500 dengan persyaratan aplikasi mereka.
Berbagai akselerator perangkat keras khusus membantu CPU utama dalam melakukan perhitungan DSP. DSP audio Cadence® Tensilica® Fusion F1 tambahan, GPU 2D dengan akselerasi grafis vektor, dan berbagai antarmuka tampilan menjadikan i.MX RT500 cocok untuk berbagai aplikasi tersemat yang aman dan berdaya rendah. Kasus penggunaan yang umum mencakup aplikasi HMI, perangkat IoT, perangkat yang dapat didengar, asisten pribadi yang diaktifkan dengan suara, dan perangkat konsumen serupa lainnya.
Lihat Audio DSP
i.MX RT500 berisi berbagai co-prosesor khusus yang dapat membantu meringankan beban pada inti CPU dengan melakukan perhitungan yang rumit secara matematis sambil membiarkan inti pemrosesan bebas melakukan tugas lain. Salah satu prosesor khusus tersebut adalah DSP fusi, yang mencakup prosesor audio Cadence® Tensilica® Fusion F1 dan unit titik-mengambang perangkat keras.
Mesin pemrosesan audio ini bekerja pada frekuensi hingga 200 MHz dan dirancang untuk mengaktifkan perangkat yang dipicu suara seperti asisten virtual. Selain itu, DSP audio menggabungkan berbagai modul untuk tugas pra-pemrosesan dan pasca-pemrosesan menggunakan berbagai codec audio.
DSP dan inti CPU utama dapat berkomunikasi satu sama lain melalui berbagai cara. Pengembang dapat menggunakan seluruh SRAM saat bekerja dengan fusion DSP kecuali jika RAM dilindungi dan bagian tertentu ditandai untuk akses hanya aman.
Memrogram dengan mempertimbangkan DSP
DSP Tensilica mendukung berbagai sistem operasi waktu nyata (RTOS), termasuk FreeRTOS™, Zephyr™, Linux®, dan XOS. Cadence mengembangkan kernel tertanam XOS sebagai desain referensi dengan mempertimbangkan prosesor Tensilica.
Fitur kernel XOS yang ringan termasuk penjadwal tugas, pengalihan konteks adaptif, mekanisme sinkronisasi, manajemen interupsi dan pengecualian, dan manajemen sumber daya kritis. Kode sumber kernel sebagian besar ditulis dalam standar C dan tidak khusus untuk prosesor Xtensa dan DSP.
Memenuhi Persyaratan Perangkat Konsumen Cerdas
Keluarga MCU crossover i.MX RT500 memiliki berbagai fitur yang dirancang untuk menginspirasi perangkat konsumen cerdas masa depan. Co-prosesor yang berbeda membantu inti pemrosesan utama MCU dalam melakukan perhitungan yang rumit secara matematis untuk aplikasi pemrosesan sinyal dan keamanan. Salah satu co-prosesor tersebut adalah DSP audio Cadence® Tensilica® Fusion F1 yang sangat dioptimalkan, memungkinkan perangkat yang dipicu suara selalu aktif seperti asisten virtual. Pemrogram dapat menggunakan XOS dan Xplorer IDE untuk merancang aplikasi untuk prosesor Cadence khusus.
Catatan aplikasi AN13159 berisi rincian lebih lanjut, daftar fungsi API yang didukung, dan contoh untuk kondisi dan peristiwa di XOS, dan situs web NXP menawarkan informasi lebih lanjut tentang kemampuan dan aplikasi i.MX RT500. Ini juga menyediakan materi pelatihan yang berbeda seperti catatan aplikasi, video, dan webinar sesuai permintaan.
Artikel Industri adalah bentuk konten yang memungkinkan mitra industri untuk berbagi berita, pesan, dan teknologi yang bermanfaat dengan pembaca All About Circuits dengan cara yang tidak sesuai dengan konten editorial. Semua Artikel Industri tunduk pada pedoman editorial yang ketat dengan tujuan menawarkan kepada pembaca berita, keahlian teknis, atau cerita yang bermanfaat. Sudut pandang dan pendapat yang diungkapkan dalam Artikel Industri adalah dari mitra dan belum tentu dari All About Circuits atau penulisnya.