Sebagian besar dari kita yang berasal dari latar belakang elektronik tahu bahwa SRAM lebih cepat dari DRAM. Tetapi ketika membandingkan RAM dengan ROM, saya tidak yakin.
Pertanyaan saya terkait dengan micro-controller: "Jika sebuah kode dieksekusi langsung dari RAM / ROM, yang kinerjanya akan lebih baik ?? 1) eksekusi dari RAM atau 2) eksekusi dari ROM atau 3) keduanya akan bekerja sama"
Juga mempertimbangkan fakta bahwa ROM dirancang untuk memiliki kecepatan BACA yang lebih tinggi. sedangkan untuk RAM, ada trade off kecepatan baca karena memiliki kemampuan menulis.
microcontroller
ram
rom
Pangeran Rambade
sumber
sumber
Jawaban:
Lembar data harus memberi tahu Anda berapa lama setiap instruksi diperlukan, dan perbedaan apa yang ada, jika ada, antara mengeksekusi dari RAM atau ROM.
Untuk mikrokontroler yang menawarkan opsi mengeksekusi dari RAM, itu mungkin lebih cepat, kemungkinan menjadi titik utama menggunakan ruang RAM tambahan untuk mengeksekusi kode dari. Mungkin juga ada beberapa masalah tumpang tindih. Dalam beberapa kasus mungkin lebih cepat untuk dieksekusi dari ROM karena itu adalah memori yang terpisah dan akses RAM dapat berlangsung secara bersamaan.
Sekali lagi, satu-satunya cara untuk mengetahui mikro tertentu adalah BACA DATASHEET .
sumber
Itu sepenuhnya tergantung pada arsitektur memori dan CPU. Sebagai patokan, SRAM lebih cepat daripada flash, terutama pada MCU berkecepatan tinggi (> 100 MHz). Sel bit SRAM menghasilkan output level logika (lebih atau kurang), sementara memori flash harus melalui proses penginderaan saat ini yang lebih lambat.
Seberapa jauh lebih cepat (jika ada) lagi tergantung pada arsitektur - ukuran kata dari kenangan, jumlah status tunggu pada masing-masing, keberadaan caching, ukuran instruksi CPU, dll. Jika Anda menjalankan pada Frekuensi yang cukup rendah, Anda dapat memiliki status tunggu nol pada flash dan RAM, sehingga mereka dapat berjalan pada kecepatan yang sama.
Kode juga penting. Jika kode Anda benar-benar linier (tidak bercabang), lampu kilat dapat mengambil instruksi cukup cepat untuk menjaga CPU jenuh bahkan pada frekuensi yang lebih tinggi. Seperti kata Olin, CPU arsitektur Harvard dengan program terpisah dan jalur pembacaan data dapat tampil berbeda ketika kode dan data berada dalam ingatan yang berbeda.
ROM logam (dan memori non-volatil lainnya seperti FRAM) memiliki karakteristiknya sendiri, dan mungkin atau mungkin tidak secepat SRAM. Kemampuan menulis tidak harus membuat perbedaan; ini lebih tentang karakteristik output sel bit dan sirkuit penginderaan.
Lembar data akan memberi Anda gambaran kasar tentang perbedaan kecepatan, tetapi satu-satunya cara untuk mengetahui dengan pasti adalah membuat profil kode Anda.
sumber
"Menjalankan program" membutuhkan CPU dengan jam yang sinkron. Memori lambat dapat diakomodasi dengan menjalankan seluruh sistem pada jam yang cukup lambat, atau dengan memasukkan
wait states
(siklus clock tanpa-lakukan tambahan antara fase pengambilan dan dekode), aktif hanya untuk rentang alamat tertentu (lihat contoh kuno 8085). Pengambilan instruksi CPU tidak tahu atau peduli kapan tepatnya data ditetapkan ke nilai akhirnya, asalkan tidak berubah selama interval pengaturan / penahanan.Sebuah mikrokontroler biasanya memiliki semua on-chip memorinya, jadi kecuali dinyatakan lain saya akan menganggap sistem memori semuanya nol-tunggu-keadaan. (tapi baca lembar data untuk mengonfirmasi). Mikrokontroler tipikal dimaksudkan untuk menjadi lebih sederhana, solusi chip tunggal dibandingkan dengan desktop, jadi keadaan tunggu tidak mungkin dalam mikrokontroler. Jadi tidak mungkin bahwa mikrokontroler akan memiliki kecepatan memori on-chip yang tidak cocok.
Memori yang lebih cepat umumnya berharga premium (tegangan lebih tinggi, kapasitansi lebih rendah, permintaan lebih banyak). 80xx86 memiliki SRAM cepat di cache L2 dan SRAM lebih cepat di cache L1, dan banyak DRAM off-chip yang lebih lambat terpasang pada pengontrol memori. Sistem semacam ini jauh lebih rumit daripada mikrokontroler, dan berada di luar cakupan pertanyaan. (Tapi sangat menarik bagi insinyur komputer!)
sumber