Sunday, 29 December 2019

memory - What is the "secret" behind the non-volatile effect of the Flash memories?


As wikipedia and other sources say:



"Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM (electrically erasable programmable read-only memory) and must be erased in fairly large blocks before these can be rewritten with new data."



As far I know, to store each bit, a non-volatile memory must use one of the folowing techniques:



  1. Using the "capacitator" effect of volatile memories, refreshing them before it lost its load. This is used by DRAM memories.

  2. Using a bistable latching circuitry such as a flip-flop circuit, so it dont need to use the refeshing mechanism like DRAM, but you still need to energize it, turning it off will make you lose all your stored data.

  3. Using mechanical and optical dots, magnetic fileds, or even using "spins" to store data on binary or ternary form.


However, I dindn't find any of this "techniques" being used here. If using 1 or 2, a Flash memmory would need at least a onboard battery to keep the circuit energized(or refreshed with another circuit). If using 3, it would be a external hard drive, what is not the case here.


So, how does a Flash memory store their bits? There is another technique that I don't know that made possible the Flash memories?



Answer



Just some minor corrections, DRAM memory is volatile rather than non-volatile as in your question. Flip-Flops are also volatile as they require power in order to retain their state. Volatile memories loose their cohesion, and therefore their stored data, as a matter of course when power is removed. The definition of volatile can be seen here:



(Electronics & Computer Science / Computer Science) Computing (of a memory) not retaining stored information when the power supply is cut off.



DRAM also has the problem that it looses it's data even when powered and requires constant refreshes to retain data.


A true non-volatile memory by comparison requires no external power to be connected in order to retain data.


Before EEPROMs and Flash memory became so prevalent the only realistic way to achieve (admittedly fake) non-volatile memory was to use a battery-backup of some sort. This meant that the amount of memory was highly limited in order to keep current required to a minimum and therefore increase the amount of time data could be stored for.


Nowadays though non-volatile memory technologies have advanced quite considerably and given us massively large data densities, but they still lack the write endurance and raw speed of their volatile cousins.


FLASH Memory


For Flash memory Wikipedia gives the best visual interpretation of a Flash memory Cell (note that this is a "NOR" gate and while the process is kind of similar for a NAND gate there are differences):


enter image description here


Basically your "Floating Gate" in this picture is where your data bit is stored, it is an electrically isolated area in the circuit. You pass a very high momentary current across the contacts of the gate (from the source to drain and top "Control Gate") and as a result of this high current electrons will be "injected" into the floating gate, thus storing a bit there.


Because the Floating Gate has no direct electrical connections the injected electrons can do nothing but sit there, trapped on the gate.


The state of the floating gate can be determined quite easily as it affects the electrical characteristics of the circuit across the source and drain. The problem comes when you try to reset that bit, it requires a strong current to once again "suck" electrons off of the floating gate and this causes damage in the insulation and thus limits the number of times the cell can be written and erased.


The requirements for high erase current mean that it is a slow process to erase a memory cell and so it is much slower than DRAM which can be changed quickly and without any exorbitant costs in terms of current or voltage.


FRAM


FRAM is a non-volatile memory that uses electric currents to change magnetic alignment of sections of a ferrous material, and then requires a good deal of electronics to read that data back, but the data can be changed much more easily than flash. As a result it is a lot faster than FLASH memory but has a much lower data density and is less useful for mass storage devices.


Others


There are other methods of storing and reading data in a non-volatile way, such as "Phase Change Memory" (PRAM) which uses an electric current to modify the structure of a crystalline material, the electrical properties of which change depending on which state it is in and thus is electronically "readable".


As I mentioned the main downsides with all these memories is that they tend to either be slower, have lower data densities or have other requirements or issues that prevent them from entering mainstream use.


This Wikipedia article is a good start if you are wanting to look into the subject more and has several links to various types of Non-volatile memory.


No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...