CPU yang disematkan lepas landas hampir di mana-mana karena mereka menawarkan fleksibilitas bersama dengan kinerja yang cukup baik dan daya yang rendah dan biasanya biaya yang jauh lebih rendah. Jika dibandingkan dengan solusi yang memerlukan mikroprosesor atau mikrokontroler terpisah yang digabungkan ke perangkat keras khusus Anda, beralih ke desain berdasarkan CPU yang disematkan adalah hal yang mudah. Tetapi CPU dalam bentuk apa pun memiliki batasan. Meskipun kami dapat memindahkan algoritme kami ke dalam perangkat lunak, potensi kompleksitas algoritme tidak terbatas. Kami dapat menulis program dan mereka akan berjalan, tetapi tidak harus dalam waktu yang dapat diterima atau dalam anggaran daya yang wajar.
Sumber:CEVA
Itu sebabnya pembuat mikroprosesor dengan cepat datang dengan konsep akselerator perangkat keras – fungsi perangkat keras yang dapat melakukan tugas-tugas umum yang dibutuhkan, misalnya aritmatika floating point, jauh lebih cepat daripada yang mungkin dilakukan jika dijalankan dalam perangkat lunak pada CPU. Ide ini muncul dengan cepat dan akselerator lain mulai muncul, untuk kriptografi, penanganan ekspresi reguler, dan fungsi grafis hanya sebagai beberapa contoh.
Semua ini bekerja dengan sangat baik tetapi mengorbankan satu keuntungan penting dari solusi berbasis perangkat lunak:Karena implementasinya sebagian besar hard-coded, sulit untuk dimodifikasi. Akselerator memungkinkan untuk beberapa tingkat penyetelan terbatas melalui kontrol register, tetapi sebaliknya jika Anda perlu memperbaiki bug atau mengubah algoritme, Anda harus mendesain ulang perangkat keras. Menanggapi kegagalan lapangan dan permintaan pasar yang terus berkembang menjadi jauh lebih mahal.
Apa yang Anda inginkan adalah yang terbaik dari kedua dunia – cara untuk mempercepat algoritme sambil tetap dapat mendefinisikan algoritme tersebut dalam perangkat lunak. Tentu saja jangkauan semua algoritma yang mungkin tidak terbatas sehingga tidak mungkin ada satu solusi untuk semua kasus. Tetapi untuk sekumpulan fungsi yang sangat umum digunakan, DSP dapat memberikan solusi ini dengan tepat.
Pertimbangkan hampir semua operasi yang harus bekerja pada streaming data. Contoh nyata dapat ditemukan dalam pemrosesan audio, mulai dari pemfilteran hingga konversi PDM-PCM hingga pembatalan gema akustik. Atau pikirkan tentang sandi berbasis aliran seperti SNOW dan ZUC (digunakan dalam LTE). Dalam konteks pemrosesan sinyal, pikirkan tentang estimasi saluran antara BTS dan telepon seluler. Ini bertujuan untuk mengoptimalkan transmisi ke kondisi saat ini untuk keandalan maksimum dan membutuhkan komputasi matriks yang kompleks pada sinyal yang diterima. Lebih umum lagi, pikirkan tentang aplikasi apa pun yang dapat mengambil manfaat dari paralelisme yang sangat luas, seperti kriptografi AES.
Komputasi streaming, matematika kompleks (matriks, floating point) dan/atau paralelisme tingkat tinggi adalah semua area di mana DSP bersinar dan harus dipertimbangkan secara serius sebagai alternatif akselerator perangkat keras. Implementasi juga akan lebih kecil daripada akselerator hard-code dalam banyak kasus, mengurangi biaya unit produk Anda. Adapun daya, mungkin akselerator akan sedikit lebih rendah daripada implementasi DSP, tetapi daya DSP masih akan jauh lebih rendah daripada setara berbasis CPU. Lebih baik lagi, Anda mungkin dapat menggabungkan beberapa fungsi akselerasi ke DSP, menghilangkan kebutuhan akan beberapa akselerator, jika akselerasi ini tidak perlu dijalankan pada waktu yang sama. Untuk tenaga kuda pemrosesan yang lebih besar, Anda dapat menggunakan DSP multi-inti, sama seperti Anda dapat menggunakan CPU multi-inti.
Sumber:CEVA
Yang paling penting, implementasi DSP dapat diprogram, di C, seperti inti CPU Anda. Anda perlu melakukan beberapa hal yang sedikit berbeda – misalnya untuk mengoptimalkan paralelisme – tetapi kompiler dan simulator pemodelan yang baik untuk DSP seharusnya membuat ini relatif mudah. Jadi, Anda mendapatkan semua keuntungan dari perbaikan bug dan peningkatan kemampuan produk tanpa perlu mengubah perangkat keras yang mendasarinya. Meningkatkan kepuasan pelanggan dan meningkatkan aliran pendapatan. Tidak buruk.
Ada keuntungan lain:Sebagai prosesor, ia dapat mendukung banyak fungsi. Pertimbangkan GNSS, standar lokasi global dan fungsi yang mendapat manfaat signifikan dari komputasi berbasis DSP. Ini adalah fitur yang bagus untuk dimiliki di perangkat seluler, tetapi sekarang ada ledakan GNSS untuk perangkat tetap untuk menyederhanakan penyediaan, pembaruan, dan pemeliharaan. Jika perangkat Anda sudah mengaktifkan DSP, GNSS mungkin merupakan perangkat lunak tambahan dengan beberapa vendor dan dapat berjalan dalam periode tenang ketika fungsi lain tidak aktif. Jika Anda sudah memiliki GNSS berbasis perangkat keras atau berencana untuk menambahkannya, Anda dapat menghemat area dan daya.
Saya tidak menyarankan bahwa implementasi DSP dapat menggantikan semua akselerator perangkat keras Anda. Beberapa fungsi akselerator mungkin tidak sesuai dengan kekuatan DSP. Dan beberapa mungkin cocok dalam kisaran tertentu, tetapi tidak di luar kisaran itu; misalnya satu-satunya pilihan Anda untuk filter yang sangat besar mungkin masih merupakan implementasi terprogram. Tapi itu meninggalkan banyak fungsi di mana DSP mendekati akselerator perangkat keras yang setara pada kinerja dan daya, mungkin sebenarnya lebih baik dari segi biaya, dan memiliki fleksibilitas yang jauh lebih banyak daripada versi perangkat keras. Layak dipertimbangkan.
Blog ini adalah yang kedua dari seri yang dimulai dengan “Mengapa DSP tiba-tiba ada di mana-mana ” dan diakhiri dengan blog ketiga:“Keputusan, keputusan:Akselerator perangkat keras atau DSP? ”.