apa sebenarnya itu: Microcontroller (uC), System on Chip (SoC), dan Digital Signal Processor (DSP)?


9

Pertanyaan sebenarnya ada di bagian akhir. Tetapi membaca itu saja mungkin tidak menunjukkan kepada Anda mengapa saya bingung. Saya menulis posting ini dimulai dengan beberapa definisi, asumsi, dan spekulasi dan kemudian mengajukan pertanyaan yang sebenarnya.

Saya selalu berpikir bahwa saya tahu bedanya tetapi ketika saya mendapat pertanyaan seperti: "jika saya meletakkan transceiver dengan UC, apakah itu sekarang menjadi SO?" Saya semua campur aduk dan saya tidak tahu harus menjawab apa. Saya ingat ketika saya diberi tahu bahwa UC pada dasarnya adalah SOC . Tapi bukti apa yang saya miliki? Tapi Arduino tidak ada dalam satu chip! Saya bisa mengeluarkan prosesor Atmeg dari "papan" kapan saja!

Ketika saya memeriksa online, saya mendapatkan semua jenis jawaban yang mengkonfirmasi atau bertentangan dengan apa yang saya katakan secara langsung atau tidak langsung. Ini selalu membingungkan saya dan saya menyalahkan tidak lain dari orang-orang pemasaran yang menggunakan istilah-istilah ini secara longgar dan kadang-kadang secara bergantian, dan orang-orang yang mengikuti jejak mereka.

Jadi saya memutuskan untuk mencari makna mendasar dari ketiga istilah ini: UC, SoC, dan DSP. Karena misalnya, ketika saya bingung tentang tegangan di sirkuit, saya selalu kembali ke dasar-dasar fisika, tanah tidak benar-benar nol itu hanya "referensi" dan tegangan tidak "absolut", mereka "saudara". Ini selalu mengarahkan saya ke arah yang benar. Tetapi tidak ada dasar untuk pergi ketika berbicara tentang UC. "mikro" "pengontrol" adalah pengontrol yang sangat kecil sehingga berada dalam skala meter mikro. Tapi kita tidak memiliki istilah nanocontroller, kan? Jadi cara berpikir seperti ini tidak akan membantu.

Yang saya coba jawab adalah sebagai berikut:

  • uC adalah unit pemrosesan dengan periferal lain dan memori untuk penggunaan umum, bukan?
  • SoC adalah "sistem" penuh pada "chip". Jadi, sistem apa pun yang Anda masukkan dalam satu chip, adalah SoC, bukan?
  • DSP adalah unit pemrosesan untuk penggunaan khusus, terutama operasi matematika, bukan?

    Sekarang

  • Apakah itu berarti bahwa semua yang ada di UC mereka semua harus berada dalam satu chip? karena jika ya, maka UC sebenarnya adalah SOC. Mungkin yang kecil, tapi memang begitu. Bagaimana dengan Arduino. Mungkin uC "bisa" menjadi SoC jika menggunakan satu chip, tetapi tidak harus (saya banyak menggunakan arduino sebagai contoh di sini).

  • Jadi arduino adalah UC, jika saya mengambil semua komponennya dan meletakkannya di papan lain dan saya menambahkan XBEE ke dalam campuran misalnya. Itu masih UC, kan? Jadi kapan kita mengatakan bahwa sekarang ini adalah SoC? Hanya ketika barang yang sama dimasukkan ke dalam satu chip daripada dikumpulkan di papan?

Sampai sekarang saya berpikir bahwa pertanyaan-pertanyaan di atas entah bagaimana menjawab sendiri, tetapi saya hanya ingin mengkonfirmasi sehingga saya dapat melanjutkan. Ketika saya mencoba berpikir "secara mendasar", chip atau board "bisa" sama, hanya kabel yang menghubungkan komponen yang berbeda. dan pada titik ini, apa yang Anda mendefinisikan komponen? Apakah itu sebuah transistor tunggal atau sirkuit seperti ADC? Tetapi saya tidak ingin pergi ke sana.

Pertanyaan selanjutnya adalah tentang apa sebenarnya postingan ini:

  • Apakah UC pada dasarnya adalah SOC? Kasus khusus dari SoC yang salah satu persyaratannya adalah bahwa keseluruhan sistem adalah untuk keperluan umum.
  • UC adalah tujuan umum (menurut internet) dan DSP terutama untuk memproses sinyal yang dikumpulkan secara matematis dari dunia nyata. Tetapi DSP masih merupakan "prosesor" dan aC berisi "prosesor". Bisakah saya menempatkan DSP dengan banyak atau periferal (katakanlah ADC dan DAC karena ini biasanya digunakan dengan itu) dan memanggil campuran a UC? atau apakah itu SoC (karena sekarang campurannya bukan tujuan umum dan karenanya kita tidak bisa menyebutnya UC tapi tetap saja SoC)

Tidak masalah apa pun sebutan Anda, 'bunga mawar dengan nama lain akan berbau manis! SoC adalah istilah penjualan, 'orang lain menjual bagian-bagiannya kepada Anda, tetapi kami menjual kepada Anda seluruh sistem' sesuai dengan implikasinya. uC umumnya seperti memori uP +, dan seringkali ADC. DSP dioptimalkan untuk, apakah Anda percaya, DSP, dan selalu memiliki pengganda perangkat keras, tetapi sering kali ini, memori program dan kadang-kadang ADCs / DACs, hampir merupakan SoC. Tetapi untuk sebagian besar, sebagian besar dari mereka dapat digambarkan sebagai yang lain. Jangan berkeringat, tentu saja jangan memukul orang di atasnya.
Neil_UK

2
Saya tahu ini dipahami secara luas untuk menggunakan Anda dan tidak ada masalah nyata menggunakannya, tetapi jika Anda ingin membuat µ, menekan AltGr + Matau ⌘ + Mharus melakukan trik.
Asap Ajaib

1
"mikro" adalah bagasi bersejarah; Pengontrol "mikro" berasal dari komputer "mikro", yang dibedakan dari komputer "mini" yang berukuran kulkas, dan "" komputer yang menempati seluruh ruangan.
user253751

Jawaban:


11

uC = chip pemrosesan yang berdiri sendiri: CPU, RAM, ROM, beberapa periferal.

DSP = chip prosesor (dapat berupa CPU terpisah, saat ini sebagian besar aC) yang dioptimalkan untuk pemrosesan sinyal. Seringkali memiliki MAC cepat (multiply-akumulasi), jenuh matematika, dan beberapa antarmuka memori. Untuk mendapatkan yang terbaik darinya, Anda seringkali harus sangat menyadari kekhasannya, seperti akses memori seperti apa yang dapat dilakukan pada saat yang bersamaan. (Oleh karena itu sering digunakan dengan perpustakaan perakitan fine-tuned yang disediakan oleh pabrikan.) Sering tidak diinginkan untuk digunakan dengan memori besar (bus alamat 16 bit sering cukup).

SOC = chip prosesor (kebanyakan CPU, mungkin dengan beberapa RAM untuk cache) yang menggabungkan periferal yang dulu berada di luar chip prosesor utama. Ini adalah definisi target yang bergerak: fungsi dalam SOC khusus saat ini dapat ditemukan dalam chip mainstream besok. SOC saat ini sebagian besar dimaksudkan untuk menjalankan OS tingkat Linux, dan berisi sebagian besar hal yang Anda perlukan pada sistem seperti itu, kecuali untuk RAM dan ROM (meskipun beberapa ROM sering disertakan, seringkali untuk membaca FLASH eksternal).

Contoh periferal yang umum di SOC saat ini (tetapi sedang mencari jalan ke UC!): Port Ethernet, Ethernet switching fabric, USB incl. host & OTG, mesin grafis, decoding mpeg, mesin crypto, RAM & antarmuka FLASH.

Arduino adalah produk tingkat papan, jadi menurut definisi bukan UC, DSP, atau SOC, meskipun dapat mengandung satu. Uno dasar berisi UC.

UC bukan SOC (walaupun mungkin ada kasus batas): UC adalah standalone, dan (pada tingkat teknologi saat ini) tidak dimaksudkan untuk menjalankan OS tingkat Linux. SOC bukan mandiri (membutuhkan RAM dan ROM).

Batas-batasnya tidak 100% ketat dan bergeser seiring waktu. De CPU dan antarmuka memori dari kebanyakan CPU saat ini dengan mudah melampaui DSP kemarin, bahkan di wilayah mereka. Tetapi DSP saat ini lebih cepat, dan / atau lebih murah atau lebih haus daya daripada CPU yang lebih umum saat melakukan pemrosesan sinyal. Ini adalah perlombaan antara produsen untuk membuat chip yang paling menarik dengan menggunakan teknologi dan permintaan terkini. Pada saat ini telah mengarah pada 3 sweet-spot (ditambah prosesor-mikro tujuan umum), tetapi ini akan bergeser dari waktu ke waktu (DSP kurang populer dari 10 tahun yang lalu, IMO karena throughput tingkat audio sekarang mudah dicapai oleh CPU tujuan umum).

Jenis chip tertentu yang menjadi lebih umum akhir-akhir ini adalah UC (atau SOC) dengan beberapa antarmuka nirkabel. Lihat ESP8266 dan ESP32 untuk contoh WiFi, dan RN2483 untuk LoraWan.


2

UC dan DSP memiliki definisi yang cukup lurus ke depan.

A UC adalah inti pemrosesan yang memiliki memori (volatile dan non volatile) yang terintegrasi secara internal. Ini dibandingkan dengan mikroprosesor yang umumnya akan memiliki beberapa memori volatile di dalam tetapi tidak ada volatile.

DSP adalah pemotretan off UC. DSP umumnya memiliki kemampuan pengambilan sampel analog yang sangat bagus daripada UC biasa. DSP juga memiliki kemampuan matematika yang lebih baik daripada UC dan dilengkapi dengan banyak perpustakaan seperti FFT atau autokorelasi untuk memanfaatkan kemampuan matematika tersebut.

SoC lebih merupakan istilah pemasaran. SoC adalah istilah yang mereka coba gunakan ketika UC telah menarik cukup fungsionalitas untuk membuat solusi chip tunggal atau dekat. Istilah SoC cenderung ditemukan ketika UC memiliki pemrosesan grafik terintegrasi dan driver grafis. Pikirkan chip ARM di ponsel. Mereka memasukkan grafik.


Jadi, apakah Anda mengatakan bahwa DSP juga mengandung ADC misalnya?
himura

@ himura UC memiliki ADC tetapi DSP memiliki ADC yang sangat bagus. Misalnya Arduino mampu hingga sekitar 10kHz laju sampling pada 10 bit. The dsPIC33 yang merupakan DSP mampu tingkat sampling 1,1MHz pada 10 bit. Itu dua urutan besarnya lebih cepat.
vini_i

Saya pikir DSP hanyalah unit pemrosesan tanpa kemampuan ADC. Tetapi sepertinya lebih seperti sistem yang lengkap sekarang. Terima kasih
himura

1
Saya pikir jawaban ini salah. Ada banyak chip DSP yang tidak memiliki konverter. Perbedaan utama antara DSP dan CPU tujuan umum adalah arsitektur memori. DSP memiliki banyak memori yang dapat diakses secara paralel. Lihat en.wikipedia.org/wiki/Harvard_architecture
Hilmar

@Hilmar dapatkah Anda memberikan beberapa referensi DSP tanpa konverter? Saya suka titik ini
himura

0

Apa yang kita sebut SOC umumnya memiliki inti prosesor yang jauh lebih kuat daripada UC. Biasanya Anda dapat menemukan inti ARM di sana. Hampir semua prosesor ARM "besar", seperti seri Cortex A, yang diproduksi hari ini sebenarnya adalah SOC. Untuk menjalankan OS besar seperti Linux, Anda memerlukan banyak RAM sehingga SOC memiliki pengontrol RAM eksternal yang mendukung chip SDRAM modern. Sejumlah kecil RAM statis bawaan hanya digunakan pada fase boot untuk menjalankan boot loader dan menginisialisasi periferal dan pengontrol SDRAM.

uCs biasanya adalah solusi lengkap all-in-one dengan built-in static RAM (jumlah yang cukup kecil). RAM yang kecil dan kurangnya MMU mencegah penggunaan OS besar pada mereka. Saat ini sebagian besar UC memiliki inti 8 bit atau 32 bit. 16 bit UC digunakan hanya dalam aplikasi lawas. Era 32 bit uSc dimulai dengan core seri ARM M. Core ini dirancang khusus untuk UC dan memiliki sedikit kesamaan dengan ARM besar kecuali set instruksi (ARM M menggunakan instruksi THUMB, subset set instruksi ARM).

Istilah DSP adalah tentang arsitektur inti. DSP memiliki lebih dari satu ALU dan telah disebut set instruksi VLIW (kata instruksi yang sangat panjang). Instruksi VLIW terdiri dari sejumlah sub-instruksi (sekitar 4) yang ditargetkan untuk berbagai subsistem CPU. Sebagai contoh, instruksi yang begitu panjang dapat berisi instruksi untuk mengambil data dari memori, instruksi multiplikasi ke ALU pengali khusus, dan instruksi aritmatika ke ALU tujuan umum.

Anda dapat menggunakan DSP sebagai tujuan umum UC tetapi tujuan utamanya adalah pemrosesan data digital (tidak hanya sinyal, tetapi juga video). Filter digital, kompresi media / algoritma dekompresi mendapatkan manfaat dari arsitektur paralel DSP.

Inti CPU modern biasanya memiliki semacam "ekstensi DSP" dalam bentuk instruksi vektor (Anda dapat melakukan operasi aritmatika yang sama pada sejumlah, sekitar 8, operator). Ini sesuatu yang berbeda dari instruksi DSP VLIW.


"Hampir semua prosesor ARM yang diproduksi hari ini sebenarnya adalah SOC", benarkah? apakah Anda menganggap chip Cortex-M0 seperti SOC LPC810 ??
Wouter van Ooijen

Saya telah menyebutkan seri Cortex M secara terpisah saat berbicara tentang UC. Cortex M jelas adalah UC.
e_asphyx
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.