EEPROM adalah "Memori Hanya Baca", jadi mengapa saya bisa menulis kepadanya?

15

Elektrik dihapus Programmable Read-Only Memory ( EEPROM ):

Jika itu menggunakan Read-Only Memory ( ROM ) lalu bagaimana saya bisa menulis ke sana?

Jacksonkr
sumber
13
Apakah kata "dapat diprogram" mengisyaratkan sesuatu?
Nick Alexeev
2
ROM asli telah diprogram topengnya (yang mungkin membuat Anda bingung), tetapi kita harus memiliki beberapa cara untuk memasukkan sesuatu ke dalam ROM lain.
StainlessSteelRat
6
'Programmable' tidak akan memberi petunjuk apa pun jika diikuti oleh 'read-only' non-petunjuk.
TonyM
4
@ TonyM, setelah Anda menambahkan "dapat dihapus", "diprogram" tidak banyak digunakan kecuali itu sebenarnya berarti "diprogram ulang". Tetapi ROM yang dapat diprogram satu kali juga merupakan hal yang berguna karena itu berarti Anda tidak perlu mengetahui isinya bahkan sebelum Anda menempatkan PO untuk bagian tersebut.
The Photon
1
jawaban aktualnya sangat sederhana: Anda dapat memprogramnya , tetapi Anda tidak bisa / tidak seharusnya menulis surat kepadanya. Seperti kata Nick, kedua istilah di sini kontekstual; "pemrograman" biasanya berarti satu siklus penulisan sekuensial, yang bertujuan untuk mengonfigurasikan chip untuk melakukan apa yang seharusnya dilakukan, biasanya dengan kecepatan yang sangat rendah - berkenaan dengan arsitektur Harvard, Anda tidak akan dapat menulis ke memori seperti itu selama aplikasi eksekusi. "Menulis" reguler berarti hanya itu - menyimpan data selama pelaksanaan program, biasanya dengan akses cepat dan / atau acak.

Jawaban:

27

Singkatan EEPROM memiliki beberapa sejarah yang mengikuti perkembangan teknologi.

ROM : Memori Hanya Baca. Ditulis di pabrik.

PROM : Memori Hanya Baca yang Dapat Diprogram tetapi dapat diprogram (satu kali) oleh pengguna. Benar-benar satu kali diprogram, memori yang dapat dibaca selamanya. Salah dan Anda membuang chip.

EPROM : Memori Hanya Baca yang Dapat Diprogram yang Dapat Dihapus. Biasanya terhapus menggunakan sinar UV melalui jendela kuarsa di atas chip. Sedikit masalah tapi sangat bermanfaat.

EEPROM : Memori Hanya-Baca yang Dapat Diprogram yang Dihapus Secara Listrik. Dapat dihapus atau ditulis ulang di bawah kendali program.

1

Gambar 1. EPROM Intel 1702A, salah satu jenis EPROM yang paling awal, 256 kali 8 bit. Jendela kuarsa kecil menerima sinar UV untuk penghapusan. Sumber: Wikipedia EPROM .

Jadi, saya mendengar Anda berkata, mengapa mereka menyebutnya eepROm ketika itu dapat ditulis? Jawabannya adalah, saya curiga, bahwa, tidak seperti RAM (memori akses acak) ia menyimpan isinya selama siklus daya dan, oleh karena itu, berperilaku lebih seperti ROM .

Transistor
sumber
1
Info bagus! Jawaban Anda mendorong saya untuk mencari potensi RAMuntuk menyimpan data di luar siklus daya dan saya menemukan permata kecil ini yang mungkin menarik bagi Anda.
Jacksonkr
1
Ah, 1702, EPROM pertama yang saya gunakan. Itu memiliki konvensi aneh bahwa Anda harus memprogram kebalikan dari apa yang ingin Anda keluar darinya, karena untuk beberapa alasan prosesor 4004 yang dirancang untuk bekerja dengan menggunakan konvensi logika negatif untuk mendokumentasikan kode rakitannya. Jadi perbaikan ini adalah untuk membuat segalanya lebih mudah!
Neil_UK
3
Dan jika Anda mengambil evolusi ROM-> PROM-> EPROM-> EEPROM ke langkah selanjutnya Anda memiliki memori "flash". Banyak digunakan dalam USB thumb drive, Solid State "hard" Drives, memori persisten dalam segala macam gadget konsumen, dll.
Richard Crowley
Memegang konten di antara siklus daya jauh dari satu-satunya tempat di mana PROM gagal secara dramatis jika dibandingkan dengan RAM yang setara dengan spesifikasi baca, karena saya harap jawaban saya menjadi jelas.
underscore_d
ram volatile, eeprom non-volatile, ia ingat setelah siklus daya. rom tidak stabil. Eeprom Anda kebanyakan membaca dan sebagian besar tidak menulis, rom Anda membaca dan jangan menulis. Jadi eeprom sangat mirip rom dan seperti yang dideskripsikan transistor, itu adalah bagian dari evolusi solusi yang tidak mudah menguap.
old_timer
7

Saya bingung dengan berapa banyak komentator di sini berpikir bahwa istilah ROM semata-mata merupakan taktik pemasaran atau hanya merujuk pada hilangnya data pada saat dimatikan.

PROM sangat banyak 'hanya baca', dalam arti yang memenuhi syarat menulis itu dengan cara dan konteks yang sama seperti yang Anda lakukan dengan RAM 'setara' tidak mungkin. Ini karena E / EPROM membutuhkan:

  • dihapus oleh UV (EPROM) atau siklus 0xFF (EEPROM),
  • beralih ke mode berbeda untuk memprogram data ('menulis'),
  • yang dalam beberapa kasus memerlukan kondisi daya yang berbeda, waktu tunggu, dll.
  • Keterbatasan pada siklus penulisan akan membuat semua PROM yang ada tidak berguna untuk jenis transfer / manipulasi data volume tinggi yang dibutuhkan oleh banyak program.

... yang semuanya berarti bahwa tindakan menulis ke memori tersebut lambat, tidak dapat secara efisien disisipkan dengan operasi baca, secara aktif menghabiskan chip, dll.

PROM berada di liga yang sama sekali berbeda dari RAM dengan spesifikasi baca yang setara. Karenanya mengapa tidak dipasarkan sebagai bentuk RAM apa pun. Serangan baliknya akan sangat besar!

Jadi, kita mungkin bisa menyebutnya Read Mostly Memory atau, untuk para pengedarnya, EWRPROM: Akhirnya Writable, Runtime Praktis Hanya Membaca Memori ... tetapi secara praktis, ROM benar-benar tepat sasaran.

underscore_d
sumber
5
" ... menulis padanya dengan cara dan konteks yang sama seperti yang Anda lakukan dengan RAM 'setara' tidak mungkin. " Tapi itu bukan pertanyaan OP dan untuk banyak aplikasi seperti menyimpan pengaturan konfigurasi, halaman yang dicetak, dll, EEPROM sangat ideal, meskipun kecepatannya lambat. Apa pun kecepatan menulisnya masih dapat ditulis.
Transistor
@ Transistor Yah, sama seperti pertanyaannya tunduk pada semantik, begitu juga jawabannya ... jadi saya tidak yakin ada jawaban 'satu benar' mungkin. Maksud saya adalah bahwa itu tidak 'dapat ditulis' oleh satu makna yang biasanya diasumsikan dari istilah itu. Itu sebabnya, seperti yang ditunjukkan vaxquis, istilah alternatif yang dapat diprogram diperkenalkan. Saya menambahkan pendapat saya karena saya merasa detail penting ini telah diabaikan di utas ini sebelum ini. Tapi tentu saja, Anda benar bahwa EEPROM mencukupi dalam kasus yang tepat, jadi terima kasih untuk detailnya.
underscore_d
3

Perangkat memori awal yang dapat diprogram dimaksudkan untuk ditulis ketika dicolokkan ke satu perangkat, dan kemudian dibaca saat dicolokkan ke perangkat lain. Sementara perangkat umumnya dapat dibaca saat berada di fixture pemrograman (sehingga fixture pemrograman dapat mengkonfirmasi bahwa mereka ditulis dengan benar), pemrograman perangkat sering memerlukan penerapan tegangan yang tidak biasa yang tidak akan tersedia di sebagian besar perangkat yang perlu membacanya. Lebih jauh, operasi tulis adalah urutan besarnya lebih lambat dari operasi baca. Kemudian perangkat telah ditingkatkan untuk menghilangkan persyaratan tersebut, yang memungkinkan mereka untuk diprogram di perangkat di mana ia akan digunakan setelah pemrograman, tetapi perbedaan antara kecepatan baca dan tulis tetap ada.

supercat
sumber
1

Ini Dihapus Secara Elektrik, jadi Anda bisa menulisnya.

Tidak masuk akal ketika Anda memperluas ROM menjadi kata-kata. Tetapi pemahaman saya adalah bahwa EPROM dinamai demikian oleh penemunya, Intel, sebagai daya tarik pemasaran yang berarti "Sama seperti ROM - tetapi Anda dapat mengubahnya sendiri". Ini berada di dunia 1972 di mana ROM berarti sekian ribu untuk perubahan topeng.

EEPROM mengikuti dari preseden itu.

TonyM
sumber
4
PROM: Memori hanya baca yang dapat diprogram (tidak hanya disetel di pabrik). EPROM: memori read-only yang dapat diprogram yang dapat dihapus. Biasanya membutuhkan paparan UV untuk menghapus. EEPROM: memori hanya-baca yang dapat diprogram yang dapat dihapus secara listrik, menghemat banyak waktu dengan tidak meletakkan perangkat Anda di ranjang penyamakan setiap kali Anda ingin memprogram ulang.
The Photon
1
UV EPROM yang saya lihat memiliki jendela kecil di plastik. Anda menutupinya saat Anda tidak menghapus.
mkeith
1
Penunjukan ROM membuat banyak akal ketika Anda repot-repot memikirkan praktis, diperkenalkan pada jawaban saya, mencoba untuk menggunakan PROM seolah-olah RAM. Cobalah dan lihat. Aku akan menunggu!
underscore_d
@underscore_d, sebenarnya saya sudah repot-repot untuk berpikir dan saya tidak yakin bagaimana komentar Anda membebani gigi Anda yang agak terbalik nanti "Ya, seperti pertanyaannya tergantung pada semantik, begitu juga jawabannya ... jadi saya ' saya tidak yakin jawaban 'satu benar' mungkin terjadi ". Bagaimanapun, ada sangat sedikit tipe memori pada tahun 1972 dan ROM adalah tipe yang berbeda. Sebagai akronim yang berdiri sendiri, EEPROM memang membingungkan, sesuai pertanyaan OP.
TonyM
1

Saya menemukan jawaban potensial saat menulis pertanyaan

Dari melihat artikel ROM ini di Wikipedia kedengarannya seperti beberapa ROM akan memungkinkan penulisan tetapi jika ya maka kecepatan menulis akan lambat atau menulis pada umumnya akan sulit, jika mungkin.

Another fascinating tidbit is that EEPROM has a limited amount of times it can be written to. The article mentions that the EEPROM can be wiped clean and written to thousands of times, but still!

Jacksonkr
sumber
1
This is an overly simplistic explanation, and fails to recognize the key differences between different types of ROM (e.g, mask ROM vs. OTP PROM vs. EPROM, EEPROM, and flash memory).
duskwuff -inactive-
@duskwuff It sounds like you have some excellent information on the topic. Please, do share.
Jacksonkr
2
The wikipedia quote that you're referring to is a nod to all of the different types, but @Jacksonkr is right; it overly simplifies. ROM cannot be written at all. PROM can be written once. EPROM can be rewritten, but only after exposure to a UV lamp. (i.e. slowly and with difficulty.) EEPROM can be rewritten, but only after you give it a command to erase (i.e. slowly).
Robert Harvey
2
@RobertHarvey I think you meant "@duskwuff is right" ?
Jacksonkr
1
[sigh] And now all the comments are messed up.
Robert Harvey
1

EEPROMs and even Flash memories use an evolution of the same technology (floating gate) that EPROMs use, not technology that would be used for SRAM or DRAM devices.

EEPROMs are strongly asymmetric in read vs write behaviour: Read cycles are practically unlimited, fast (tens or hundreds of nanoseconds), and always possible with only the main operating voltages applied. Write cycles are much slower and sometimes need extra voltages applied (an 2816 parallel EEPROM will need an extra 12V supply for some programming operations, and will have a write time in the hundreds of microseconds or even slower depending on the exact make and model, and have limited write cycles).

Flash memories are not random access for writing (overwriting a word requires you to erase more than a word), some types (NAND) are not even random access for reading.

Note that some (not all!) devices marketed as PROMs or ROMs were internally OTP (windowless) EPROMs.

rackandboneman
sumber
0

It's only a ROM compared to Volatile RAM (Random Access Memory that will lose it's state once power is lost). A legacy naming that no longer makes sense after decades.

Passerby
sumber
2
I wouldn't agree, Passerby; the name actually makes perfect sense in the context. We have NVRAM, and we have EEPROM. Both terms highlight different expected usage modes of the memories, different read/write speeds, different data retention times etc.
-1

EPROM/PROM is READ ONLY at RUNTIME. When you run the intended application (PC, embedded controller, etc) it can not be written to by the running program. You have to take it out and enter it into a special writing apparatus, where you write all of the contents at once.

As os being pointed out to me in the comments, EEPROM could be set up to be writeable at runtime because it is electonically writeable. But in everyday use it is not writeable, the architecture usually prevents it. Usually you use a special "flash" utility provided by the manufacturer to access and write it, and is usually written all at once rather than in a random access mode. Someone in an answer above made up a big acronym for it that would apply.

RAM, including NVRAM, can be written at runtime by the host device.

Though all ROM is non-volatile and MOST RAM is volatile, NVRAM is non-volatile so that is not the only discerning difference between them.

Trashman
sumber
ROM is read-only. "You have to take it out and enter it into a special writing apparatus, where you write all of the contents at once." That's programming it so by definition that's a PROM (Programmable Read-Only Memory) device. "Runtime" does not apply. It's not a compiler. Welcome to EE.SE.
Transistor
I meant EEPROM or PROM and mistakenly only wrote ROM
Trashman
2
Still not right. EEPROM is writeable by the host device. It is commonly used to save configuration settings. See other answers on the page.
Transistor
/agree transistor - iff EEPROM is designated as code area in (modified) Harvard architecture it can't be written to (as a simple result of bus design).
Nope, that's backwards too. In a "modified" Harvard architecture you typically can write to code space, typically less efficiently, it is only in a pure one where you cannot. And as for the answer itself, the 8052AH basic supported using an (UV) EPROM as run-time-writable storage - you needed a 12v or so supply and a transistor to enable it. Of course it couldn't erase it in circuit, but it could keep appending saved programs until running out of space.
Chris Stratton