Mengapa mikrokontroler hanya memiliki sedikit RAM?

39

Mungkin ini lebih merupakan masalah persepsi, tetapi sepertinya mikrokontroler telah maju pesat dalam 20 tahun terakhir, dalam hampir semua hal, kecepatan clock lebih tinggi, lebih banyak periferal, debugging lebih mudah, core 32-bit, dll ...

Masih umum untuk melihat RAM dalam 10-an KB (16/32 KB).

Sepertinya itu bukan masalah biaya atau ukuran secara langsung. Apakah ini masalah kompleksitas dengan pengontrol RAM di atas beberapa ambang batas?

Atau hanya karena itu tidak diperlukan secara umum?

Melihat lebih dari satu matriks bagian pada pemasok Internet yang populer, saya melihat satu Cortex M4 dengan 256 KB untuk kurang dari US $ 8, dan kemudian untuk beberapa dolar lebih banyak Anda dapat menemukan beberapa lebih banyak yang ROMless, tetapi tampaknya cukup jarang ...

Saya sebenarnya tidak membutuhkan mikrokontroler dengan MB penyimpanan volatile, tetapi sepertinya seseorang mungkin ...

Grady Player
sumber
8
Mungkin ada alasan yang lebih teknis, tetapi bagi saya sepertinya itu masalah pasar. Anda menggunakan mikrokontroler ketika Anda memiliki aplikasi yang menggunakannya, ketika Anda membutuhkan sesuatu yang lebih banyak kekuatan Anda biasanya pindah ke sistem embedded yang lebih lengkap.
Jarrod Christman
15
10-an kB. Itu sangat besar. Mikrokontroler masuk saya yang akan digunakan dalam membuat prototipe barang memiliki 68 byte RAM: en.wikipedia.org/wiki/PIC16x84
slebetman
2
Saya pernah menulis rasterizer perangkat lunak 3D di 86B pada Arduino dengan RAM 2KB. Itu membuat saya kesal karena jika saya bahkan memiliki 10KB atau 50KB saya bisa benar-benar mulai menyesuaikan model nyata dalam memori dan melakukan sesuatu yang menarik. mengatasinya dengan cukup baik. Ya SRAM itu mahal - tetapi CPU memiliki megabyte cache yang terbuat dari SRAM, dan masih cukup murah. Rasanya seperti alasan lemah.
imallett
2
@slebetman alasan Anda menyukai mikro berusia 20 tahun ketika perangkat yang jauh lebih baik tersedia lebih luas dan lebih murah?
markrages
3
it seems like somebody mightadalah tangkapan di sini, kebanyakan orang tidak. Anda tidak akan melakukan streaming Netflix pada chip itu, dan 64K biasanya lebih dari cukup untuk semua yang perlu Anda lakukan dengan pengontrol mikro . Jika Anda ingin menjadi lebih tinggi, dapatkan comp penuh sesak nafas, misalnya, raspberry.
TC1

Jawaban:

44

Ada beberapa alasan untuk ini.

Pertama-tama, memori membutuhkan banyak area silikon. Ini berarti bahwa meningkatkan jumlah RAM secara langsung meningkatkan area silikon chip dan karenanya biaya. Area silikon yang lebih besar memiliki efek 'whammy ganda' pada harga: chip yang lebih besar berarti lebih sedikit chip per wafer, terutama di sekitar tepi, dan chip yang lebih besar berarti setiap chip lebih mungkin untuk mendapatkan cacat.

Kedua adalah masalah proses. Array RAM harus dioptimalkan dengan cara yang berbeda dari logika, dan tidak mungkin untuk mengirim bagian yang berbeda dari chip yang sama melalui proses yang berbeda - seluruh chip harus dibuat dengan proses yang sama. Ada beberapa pendiri semikonduktor yang lebih atau kurang didedikasikan untuk memproduksi DRAM. Bukan CPU atau logika lainnya, cukup lurus DRAM. DRAM membutuhkan kapasitor hemat area dan transistor kebocoran sangat rendah. Pembuatan kapasitor membutuhkan pemrosesan khusus. Membuat transistor kebocoran rendah menghasilkan transistor lebih lambat, yang merupakan trade-off baik untuk elektronik pembacaan DRAM, tetapi tidak akan begitu baik untuk membangun logika kinerja tinggi. Memproduksi DRAM pada die mikrokontroler berarti Anda harus menukar proses optimasi entah bagaimana. Array RAM yang besar juga lebih mungkin untuk mengembangkan kesalahan hanya karena area yang luas, menurunkan hasil dan meningkatkan biaya. Menguji susunan RAM yang besar juga memakan waktu dan dengan demikian memasukkan susunan yang besar akan meningkatkan biaya pengujian. Selain itu, skala ekonomis menurunkan biaya chip RAM terpisah lebih banyak daripada mikrokontroler yang lebih khusus.

Konsumsi daya adalah alasan lain. Banyak aplikasi tertanam dibatasi daya, dan sebagai hasilnya banyak mikrokontroler dibangun sehingga mereka dapat dimasukkan ke dalam keadaan tidur daya sangat rendah. Untuk mengaktifkan tidur dengan daya sangat rendah, SRAM digunakan karena kemampuannya untuk mempertahankan kontennya dengan konsumsi daya yang sangat rendah. SRAM yang didukung baterai dapat mempertahankan statusnya selama bertahun-tahun dengan baterai tombol 3V tunggal. DRAM, di sisi lain, tidak dapat mempertahankan statusnya lebih dari sepersekian detik. Kapasitor sangat kecil sehingga segelintir elektron keluar dan masuk ke substrat, atau bocor melalui transistor sel. Untuk mengatasi hal ini, DRAM harus terus dibaca dan ditulis kembali. Akibatnya, DRAM mengkonsumsi daya secara signifikan lebih besar daripada SRAM saat idle.

Di sisi lain, sel-sel bit SRAM jauh lebih besar daripada sel-sel bit DRAM, jadi jika banyak memori diperlukan, DRAM umumnya merupakan pilihan yang lebih baik. Inilah sebabnya mengapa cukup umum untuk menggunakan sejumlah kecil SRAM (kB ke MB) karena memori cache on-chip digabungkan dengan DRAM off-chip dalam jumlah yang lebih besar (MB ke GB).

Ada beberapa teknik desain yang sangat keren yang digunakan untuk meningkatkan jumlah RAM yang tersedia dalam sistem tertanam dengan biaya rendah. Beberapa di antaranya adalah paket multi-chip yang berisi cetakan terpisah untuk prosesor dan RAM. Solusi lain melibatkan pembuatan bantalan di bagian atas paket CPU sehingga chip RAM dapat ditumpuk di atas. Solusi ini sangat pintar karena chip RAM yang berbeda dapat disolder di atas CPU tergantung pada jumlah memori yang diperlukan, tanpa diperlukan perutean tingkat papan tambahan (bus memori sangat lebar dan memakan banyak area papan). Perhatikan bahwa sistem ini biasanya tidak dianggap sebagai mikrokontroler.

Banyak sistem tertanam yang sangat kecil tidak memerlukan banyak RAM. Jika Anda membutuhkan banyak RAM, maka Anda mungkin ingin menggunakan prosesor kelas atas yang memiliki DRAM eksternal, bukan SRAM onboard.

alex.forencich
sumber
Saya telah melihat IC RAM aktual dengan kaki dan semuanya terpaku / ditempatkan di atas prosesor (yang merupakan paket BGA) dan dialihkan ke dalamnya! Hal-hal yang kami lakukan untuk ruang dewan !! Seperti yang ditunjukkan oleh Rusia dengan metodologi desain TRIZ mereka, jika Anda kehabisan ruang dalam X dan Y, pergi ke Z :)
KyranF
2
+1 Untuk perbedaan penting antara SRAM dan DRAM. SRAM lebih cepat dan lebih hemat energi terutama saat idle, tetapi seperti yang Anda perhatikan, jauh lebih mahal dan membutuhkan lebih banyak ruang.
gagal
Saya tidak berpikir SRAM adalah jenis RAM yang paling mahal. Kombinasi sandal jepit dan multiplexer dapat digunakan sebagai memori akses acak yang akan menawarkan kinerja yang lebih baik daripada SRAM, tetapi dengan biaya silikon yang jauh lebih besar. Kenangan seperti itu biasanya tidak menjadi jauh lebih besar dari sekitar 32 kata, tetapi memori semacam itu dapat mengakomodasi membaca dan menulis secara simultan dengan cara yang tidak bisa dilakukan SRAM.
supercat
1
Benar, mendaftar file dan sandal jepit penuh lebih mahal daripada SRAM, tetapi mereka tidak digunakan untuk memori sistem keperluan umum.
alex.forencich
1
Saya telah melihat server HTTP yang berfungsi pada MCU dengan 160kB SRAM dan tidak ada DRAM eksternal. Itu tidak bisa menangani banyak koneksi paralel tetapi berhasil.
Jan Dorniak
15

Memori mungkin memakan banyak ruang silikon, dan RAM yang sangat cepat digunakan mudah berubah - dan menggunakan daya secara konstan untuk mempertahankan kondisinya. Kecuali Anda membutuhkan banyak RAM, itu tidak berguna untuk banyak aplikasi lain. Jika perancang sistem tertanam memerlukan lebih banyak RAM, mereka hanya mendapatkan chip RAM eksternal dan menggunakan antarmuka memori periferal yang sering dimiliki oleh mikrokontroler dewasa ini untuk ekstensi memori plug and play yang sangat mudah. Itulah alasan saya melihat mengapa mikrokontroler secara umum masih memiliki onboard RAM yang rendah, karena kode aplikasi yang masuk akal dan skenario penggunaan-kasus biasanya tidak perlu banyak.

Ketika Anda mulai memahami arsitektur yang lebih besar yang harus berjalan penuh pada sistem operasi, maka RAM menjadi sangat penting, namun ini keluar dari ranah mikrokontroler dan masuk ke komputer tertanam seperti yang Anda lihat di papan Beaglebone dan Raspberri Pi. hari. Dan bahkan pada tahap ini, prosesornya sangat kompleks dan penuh fitur sehingga mereka tidak memiliki ruang untuk jumlah RAM yang dibutuhkan untuk tugas mereka sehingga memori eksternal cukup banyak diperlukan bagi mereka untuk beroperasi sama sekali.

EDIT:

Sebagai anekdot pribadi, saya baru-baru ini membuat papan kontrol robot otonom kecil dengan tujuan menggunakannya untuk visi komputer resolusi rendah seperti deteksi gerakan dan pelacakan objek dan mengikuti. Saya memilih ARM Cortex M3 pin-count rendah untuk tugas ini dan sambil melihat pilihan Atmel untuk prosesor seri SAM3 mereka, saya memang mencari RAM tertinggi yang bisa saya temukan - karena dalam hal ini saya tidak ingin membeli RAM RAM eksternal. karena ruang papan dan tidak ingin kompleksitas bus memori RAM kecepatan tinggi pada PCB. Dalam hal ini untuk aplikasi khusus saya, saya akan sangat suka memiliki opsi 100-an KB lebih banyak RAM jika memungkinkan.

KyranF
sumber
Poin bagus saya bahkan tidak memikirkan konsumsi daya ...
Grady Player
4
"dan RAM menjadi tidak stabil tetapi sangat cepat digunakan, menggunakan daya secara konstan untuk menjaga keadaan". Logika CMOS, termasuk SRAM, menggunakan daya yang sangat kecil saat tidak mengubah keadaan. Perhatikan bahwa sebagian besar mikrokontroler mempertahankan konten RAM mereka bahkan ketika dalam mode konsumsi daya sangat rendah.
Chris Stratton
@ ChrisStratton: Saya telah melihat sejumlah mikrokontroler, dari beberapa pabrikan yang berbeda, dengan mode yang mematikan sebagian RAM mereka untuk menghemat daya, meskipun agak mengganggu yang saya lihat tidak memungkinkan RAM dinyalakan tanpa pengaturan ulang sistem. Tidak yakin apa tujuan dari pembatasan yang terakhir itu; jika saya membutuhkan sejumlah besar RAM untuk penyimpanan sementara selama operasi tertentu, tetapi tidak sebaliknya, saya tidak melihat mengapa saya tidak bisa menyalakannya ketika dibutuhkan dan mematikan saat tidak, tapi saya belum melihat fitur.
supercat
14

Selain poin-poin luar biasa yang diangkat dalam jawaban lain, alasan lain untuk RAM yang terbatas adalah arsitektur mikrokontroler. Sebagai contoh, ambil Microchip PIC10LF320, yang hanya memiliki 448 byte memori program (flash) dan 64 byte RAM. Tetapi mungkin harganya hanya 25ȼ (atau kurang) dalam jumlah besar. Ukuran yang terbatas dari kata instruksi PIC10 (12 bit) memungkinkan untuk hanya mengatasi 128 byte RAM secara langsung.

Saya yakin ada mikrokontroler lain di luar sana yang hanya memiliki bus alamat 8-bit, membatasi mereka hingga 256 byte RAM.

Tetapi kebanyakan mikrokontroler kelas menengah (bahkan mereka yang memiliki jalur data 8-bit), memiliki bus alamat 16-bit. Pertimbangan arsitektur utama untuk chip ini adalah apakah chip tersebut menggunakan Harvard atau arsitektur Von Neumann .

Sebagian besar mikrokontroler menggunakan arsitektur Harvard, yang memiliki ruang alamat 16-bit yang terpisah untuk memori program, RAM, dan alamat I / O yang dipetakan dengan memori. Jadi untuk ini, bus alamat 16-bit dapat mengakses hingga 64K (65.536) byte RAM. Masih ada batas 64K yang ditempatkan oleh arsitektur, dan jika seseorang ingin pergi di atas bahwa semacam paging harus digunakan. Adalah jauh lebih umum memiliki paging untuk ruang program daripada ruang RAM.

Mikrokontroler yang menggunakan arsitektur Von Neumann, seperti garis Freescale HCS08, hanya memiliki satu ruang alamat yang terbagi antara memori program, RAM dan I / O yang dipetakan dengan memori. Agar memiliki jumlah ruang program yang masuk akal, ini membatasi jumlah RAM pada umumnya 4K atau 8K. Sekali lagi, seseorang dapat menggunakan paging untuk menambah ruang program atau RAM yang tersedia.

tcrosley
sumber
1
Anda harus ingat, bahwa inti PIC benar-benar kode tidak efektif, bahwa ia akan mengkonsumsi banyak flash ekstra untuk apa-apa. Dan satu alasan mengapa itu tidak membutuhkan banyak RAM, adalah karena ia memiliki batasan yang parah pada misalnya kedalaman panggilan stack.
Lundin
@Lundin Setuju, Anda harus memprogram PIC10 dan PIC12 asli dalam bahasa assembly, dengan sangat hati-hati . Perangkat PIC12F dan PIC16F yang lebih baru sekarang memiliki tumpukan perangkat keras 16 tingkat dan 14 instruksi baru. beberapa ditambahkan hanya untuk C, sehingga mereka jauh lebih bermanfaat.
tcrosley
@Lundin: Chip PIC dengan panjang instruksi 12 dan 14 bit cukup baik untuk kepadatan kode yang saya pikir. PIC18F adalah kepadatan kode yang benar-benar cenderung jatuh ketika menggunakan kompiler HiTech karena jumlah transfer bank yang berlebihan yang biasanya diperlukan.
supercat
7

Setelah bekerja dengan mikrokontroler dan sistem kecil untuk sementara waktu sekarang, saya ingin menunjukkan bahwa seringkali sangat sedikit RAM yang dibutuhkan. Ingatlah bahwa meskipun suatu MCU mungkin mampu mencapai banyak hal, tren hari ini adalah menggunakan lebih banyak MCU sebelumnya, dan menggunakan lebih banyak dari mereka untuk mendistribusikan banyak tugas dalam sistem yang lebih besar. Ini dikombinasikan dengan fakta bahwa tidak seperti sistem pengembangan yang membengkak yang diperlukan untuk program di Windows, pengembangan MCU sering menggunakan kompiler yang dioptimalkan dengan sangat baik, paling sering dengan kode sumber C dan C ++ yang sangat efisien, kadang-kadang dengan sedikit atau tanpa overhead OS sama sekali. Meskipun Anda hampir tidak bisa menulis program Windows untuk menampilkan nama Anda di perangkat apa pun tanpa mengkonsumsi setidaknya ratusan kilobyte termasuk sumber daya OS,

Yang pasti, ada masalah biaya dan ruang seperti yang ditunjukkan orang lain. Tetapi sejarah yang ada di sini adalah bahwa apa yang dianggap sebagai sejumlah kecil RAM oleh pendatang baru hari ini benar-benar sedikit lebih banyak dari sebelumnya, dan sementara itu komponen dan perangkat yang perlu antarmuka MCU dengan sendiri semakin pintar. Sejujurnya, penggunaan RAM terbesar saya di banyak aplikasi MCU belakangan ini adalah untuk buffer komunikasi berbasis interupsi, untuk membebaskan MCU untuk tugas-tugas lain tanpa takut kehilangan data. Tapi percayalah atau tidak, untuk logika biasa dan fungsionalitas komputasi, MCU sangat cocok dengan keterbatasan mereka dalam membangun sumber daya RAM dan flash, dan Anda benar-benar dapat melakukan banyak hal dengan sangat sedikit.

Ingatlah bahwa pada suatu saat, gim-gim Video terkenal dengan grafis kasar tetapi logika gim yang rumit seperti "PAC Man" dan "Space Invaders" biasanya dilakukan dalam 8K ROM, pada mesin yang memiliki RAM 8 atau 16 KB!

Randy
sumber
Bagaimana dengan kartu SD? Bukankah kartu SDHC memerlukan buffer 256 atau 512 byte (kartu SD standar / lama tidak lagi diproduksi)?
Peter Mortensen
Versi Pac Man untuk Sistem Komputer Video Atari 2600 adalah 4K ROM, dan VCS sendiri memiliki 128 byte RAM. Namun, banyak mesin arcade memiliki jumlah ROM dan RAM yang cukup baik, dibandingkan dengan komputer rumahan pada zaman itu. Saya pikir Defender, misalnya, memiliki 32K atau ROM dan 64K RAM, meskipun 32K RAM adalah "hanya-tulis" dari sudut pandang CPU (prosesor akan menempatkan data di sana yang perangkat keras layar akan keluar ke monitor) .
supercat
@PeterMortensen Banyak kartu SD memiliki semacam CPU terintegrasi untuk mengelola flash. Beberapa kartu memiliki core ARM 32 bit penuh yang kemungkinan memiliki 16 atau 32K RAM yang melekat padanya.
alex.forencich
@ alex.forencich: Ya, tetapi bukankah antarmuka SPI untuk mengoperasikan kartu SDHC SD memerlukan buffer di sisi host (embedded system / mikrokontroler) - berbeda dengan kartu yang lebih lama? Artinya, pengalamatan bit tidak lagi memungkinkan untuk kartu yang lebih baru (SDHC)? Atau hanya bergantung pada sistem file (pengalamatan bit masih memungkinkan)? Bukankah kartu yang lebih baru memerlukan transfer blok (dan karenanya membutuhkan buffer 256 atau 512 byte)?
Peter Mortensen
Ya, 512B, jika saya ingat. Anda bisa saja menulis driver kartu SD yang tidak efisien, untuk membuang X byte data pertama -> tidak diperlukan buffer "besar".
domen
3

Selain poin yang sangat baik tentang biaya dan pembuatan, ada sedikit permintaan untuk banyak on-chip RAM.

Saya sering bekerja dengan mikrokontroler dengan flash dalam puluhan kB (16kB, 32kB) dan RAM dalam kisaran kB (1kB, 2kB). Saya sangat sering kehabisan flash, dan hampir tidak pernah kehabisan RAM. Dalam sebagian besar proyek saya, saya mendekati batas flash, tetapi biasanya membutuhkan kurang dari 20% RAM.

Kebanyakan mikrokontroler yang sangat kecil memiliki dua jenis peran:

  • regulasi dan kontrol: mereka harus mengendalikan mesin. Bahkan dalam kasus algoritma pengontrol yang rumit, yang dapat mengambil ruang kode puluhan kB, sangat sedikit RAM diperlukan. Anda berada dalam kendali proses fisik, dan memiliki variabel yang berisi beberapa unit fisik, dan mungkin beberapa variabel sebagai penghitung lingkaran. Tidak perlu lagi.

  • pemrosesan data: dalam kasus yang jarang Anda perlu menyimpan sejumlah besar data pada saat yang sama, Anda dapat menggunakan RAM eksternal. Hampir semua mikrokontroler modern memiliki dukungan asli untuk itu. Jika Anda membutuhkan program sederhana yang menggunakan banyak memori, akan lebih murah dan lebih kecil untuk menggunakan mikrokontroler kecil dan RAM eksternal, daripada mikrokontroler tingkat tinggi. Tidak ada yang menghasilkan pengontrol dengan beberapa port, flash kecil dan RAM besar, karena ada sedikit permintaan untuk itu.

vsz
sumber
2

Semua alasan yang telah disebutkan, tentu saja, secara teknis valid dan akurat. Namun, jangan lupa elektronik adalah bisnis dan MCU adalah salah satu ceruk pasar paling kompetitif dalam industri elektronik.

Saya berani mengatakan alasan sebenarnya untuk menghubungkan label harga MCU dengan jumlah SRAM yang tertanam adalah alasan pemasaran, bukan alasan biaya:

  • Dalam sebagian besar desain, frekuensi clock maksimum yang dapat dicapai bukan merupakan faktor pembatas. Sebaliknya, jumlah SRAM yang tersedia adalah. Jangan salah paham, frekuensi CPU sangat penting, namun, dalam segmen keluarga MCU tertentu , Anda biasanya tidak ditawari model perangkat berbeda dengan harga berbeda berdasarkan frekuensi CPU maksimum. Juga, penyimpanan program Flash adalah faktor pembatas utama lainnya, namun, saya tidak akan terlalu fokus pada Flash (pertanyaannya diarahkan khusus ke SRAM).

  • Jumlah SRAM yang tersedia terkait langsung dengan tingkat kerumitan yang dapat Anda tanam di MCU Anda, baik dengan perpustakaan pihak ketiga atau dengan kode yang diluncurkan sendiri. Jadi ini adalah metrik "alami" untuk disegmentasi berdasarkan harga MCU Anda. Dapat dipahami bagi pelanggan teknis untuk menerima bahwa MCU yang mampu melakukan tugas yang lebih kompleks (lebih banyak SRAM, lebih banyak penyimpanan Flash) harus lebih mahal. Harga, di sini, adalah refleksi dari nilai yang mendasari (memberikan kemampuan) dari MCU. Penyimpanan flash biasanya ditawarkan dalam jumlah yang sebanding dengan SRAM.

  • Sebaliknya, jika Anda menggunakan pasar CPU desktop dan mobile, Anda biasanya tidak dapat menemukan MCU / CPU tertentu dengan banyak ukuran SRAM yang berbeda. Alih-alih, skema penetapan harga biasanya dibangun di atas kemampuan eksekusi / kinerja MCU / CPU: frekuensi, jumlah inti, efisiensi daya ...

jose.angel.jimenez
sumber
Saya pikir ini mungkin akurat, tetapi adakah bukti? Suka mencoret jejak untuk menjual chip sebagai chip b?
Pemain Grady
Uhm ... pemikiran yang menarik. Saya tidak punya bukti praktik semacam itu. Namun, itu membawa pertanyaan menarik tentang biaya produksi yang mendasarinya. Apakah akan lebih mahal real estate yang terbuang dari chip silikon (wafer) jika seandainya ada chip ukuran SRAM lebih tinggi tergores ke ukuran SRAM kurang? Atau peningkatan biaya produksi dan inventaris yang terkait dengan pembuatan bukan satu perangkat tetapi dua? Saya khawatir seluruh industri elektronik sangat pilih-pilih untuk mendiskusikan biaya mereka secara terbuka. Kita mungkin tidak pernah mengetahuinya.
jose.angel.jimenez
1
Sebagai bukti: MT6250 adalah multi-die chip, digunakan untuk ponsel fitur single chip, biaya kurang dari $ 2 dalam volume dan jauh lebih kompleks daripada MCU, dan termasuk 8MB sram die. Itu akan sepele untuk dibangun, menggunakan serupa teknologi mcu kaya SRAM.
hulkingtickets
Ini akan menjadi jawaban yang baik untuk "mengapa label harga MCU terkait dengan jumlah SRAM yang disematkan?". Tapi sepertinya tidak menjawab pertanyaan awal. Mengapa ada beberapa mikrokontroler yang tersedia dengan lebih dari 512 KB SRAM on-chip, dengan harga berapa pun ? Mengapa ada begitu banyak mikrokontroler dengan SRAM "aneh" non-power-of-2 ukuran, ketika produsen chip SRAM berdedikasi tampaknya berpikir bahwa pengurangan biaya persediaan membuatnya layak hanya memproduksi chip SRAM khusus dalam ukuran power-of-2?
davidcary
1

Jadi pertama-tama Anda harus mempertimbangkan bahwa 16 KB atau 32 KB adalah jumlah memori yang sangat besar dan sebagian besar mikrokontroler yang dijual saat ini tidak memiliki jumlah RAM yang begitu besar.

Banyak program mikrokontroler membutuhkan 10 atau 50 Bytes memori. Bahkan hal-hal yang lebih kompleks membutuhkan sebagian besar dalam ratusan Bytes.

Pada dasarnya ada tiga kasus penggunaan di mana Anda membutuhkan RAM dalam urutan KBytes: a) Ketika mikrokontroler Anda melakukan grafik b) ketika Anda menggunakan mikrokontroler untuk perhitungan sewenang-wenang besar c) ketika Anda berinteraksi dengan antarmuka PC

Kedua, harap dicatat bahwa jika Anda berbicara tentang RAM mikrokontroler, Anda berbicara tentang cache Level 0 / Level 1. Jika Anda menganggap bahwa Intel Haswell memiliki "hanya" 64 KByte dari cache Tingkat 1, Anda akan mempertimbangkan kembali ukuran RAM mikrokontroler.

Ketiga, Anda dapat melampirkan sejumlah RAM eksternal ke mikrokontroler, terutama lebih dari yang Anda bisa pasang ke CPU.

Secara pribadi saya mengembangkan banyak aplikasi mikrokontroler dan saya tidak pernah membutuhkan memori 1 KB atau bahkan lebih. Saya juga tidak pernah menggunakan RAM eksternal.

Hal-hal berbeda jika kita datang ke ROM (hari ini Flash), karena program dan data Anda ada di ROM. Ada banyak aplikasi di mana Anda melampirkan ROM eksternal ke mikrokontroler Anda, karena Anda memiliki banyak data.

Mari kita periksa sebuah contoh: Mari kita menganalisis aplikasi mikrokontroler dan kami mengambil pemutar MP3 portabel dengan tampilan dan 4 Gigabytes Flash.

Untuk aplikasi ini, Anda memerlukan RAM 1 KB. Itu cukup untuk melakukan pekerjaan itu. Namun Anda dapat menggunakan lebih banyak RAM untuk buffer yang lebih besar untuk mempercepat penulisan USB ke Flash.

Anda melihat perbedaannya sekarang: PC biasa menampung semua program dan data dalam RAM. Karena itu perlu banyak RAM. Untuk mikrokontroler, ini semua ada di Flash / ROM.

jujur
sumber
2
Anda meremehkan penggunaan RAM di banyak aplikasi. Bukan dengan jumlah besar, tapi mungkin dengan faktor 10-100 tergantung pada contoh. Pemain MP3 harus melakukan pemrosesan sinyal digital.
Jason S
Saya ingin tahu mengapa Anda berdua mengatakan hal-hal ini. Apa jenis perintah C yang membutuhkan RAM. Daripada mengatakan "aplikasi ini membutuhkan lebih banyak RAM," Saya lebih suka "operasi ini membutuhkan lebih banyak RAM, karena ..."
Frederick
-1

Saat mendesain MCU, Anda harus menghadapi kondisi yang tidak begitu penting pada PC.

  1. Daya tahan

    Untuk memilih komponen, Anda tidak perlu mengambil bagian kinerja terbaik atau / dan paling tinggi, tetapi yang telah terbukti berjalan dengan baik setelah beberapa tahun penggunaan, akan tersedia selama beberapa tahun dan mampu berjalan 24/7 untuk tahun. Karena keadaan ini, jika controller ada di pasaran selama beberapa tahun, melakukan tugasnya dengan baik, sepertinya memiliki RAM yang buruk, dibandingkan dengan standar PC saat ini. Tapi bagaimanapun, itu berfungsi dengan baik, dan seharusnya tidak perlu penggantian, jika rekayasa itu baik-baik saja.

  2. Ruang

    Unit mikroprosesor secara harfiah adalah mikros. Anda harus mengurangi ruang yang diperlukan ke minimum absolut. Tentu saja, Anda bisa mendapatkan 256 MB pada ruang yang sama dengan chip 64 KB 10 tahun. Di sinilah # 1 sampai ke titik.

  3. Harga

    Tidak hanya harga beli, tetapi juga konsumsi daya. Anda tidak ingin merancang MCU yang memiliki kendali atas sistem entri, yang membutuhkan 1000 W, jika saingan Anda dalam bisnis memiliki satu yang hanya membutuhkan 25 W. Dan tentu saja, harga pembelian yang lebih murah (dengan kualitas yang sama) adalah selalu lebih baik.

Sempie
sumber
1
itu adalah mikroprosesor daya sangat tinggi!
KyranF
2
Saya kira MCU 1kW tidak akan bertahan dalam kondisi solid terlalu lama.
Dan Bryant
1
Ketiga poin ini sangat penting dalam desain PC saat ini.
@ KirranF: Ya, bagi kedua angka dengan 100. Tapi jika ada, dia mengecilkan perbedaan daya relatif antara prosesor kinerja tinggi dan mikrokontroler daya rendah untuk aplikasi baterai.
Ben Voigt