HacDC Spaceblimp 6/Projects/Science Payload: Radiation & FLASH memory
From HacDC Wiki
Science Payload: Radiation & Flash Memory
Introduction:
This is an experiment to detect and determine the vulnerability of contemporary consumer Flash memory media (eg SD cards, USB thumbdrives, SSDs, etc) to cosmic rays. This is useful to know whether we can rely on such media for future Spaceblimp payloads and in general whether this media is suitable and reliable for high altitude applications (weather balloon payloads, aircraft, low-earth orbit spacecraft, etc). Cosmic rays are high-energy particles, largely protons with energies 200MeV to 500MeV that bombard the Earth from all directions. 99.99% of the cosmic rays that reach the stratosphere (30km) are absorbed by air before reaching the ground (sea level). The ones that do reach the earth's surface are energetic enough to penetrate electronics, people and buildings largely unnoticed except by the occasional memory glitch or bad pixel in a photo. High-reliability servers use error-correcting memory to deal with errors caused by cosmic rays that might cause errors on cheaper consumer-grade computer systems. Electronics for critical applications like aircraft, spacecraft and even some medical devices must be either specially made as radiation-resistant chips or the systems designed to cope with occasional errors from cosmic rays.
Although the susceptibility of computer memory to cosmic rays has been tested before, technology changes quickly so there is value in repeating these experiments with contemporary technology. The nature, energy and density of cosmic rays is constant but as the components of computer systems are scaled ever further down (following Moore's Law), the smaller components are more likely to have their function disrupted by a cosmic ray hit. At the same time, the larger density of components means an ever smaller fraction of those components will hit by cosmic rays in any given time.
Flash memory stores data as charge in a floating gate. Charge can be added or removed from the floating gate by quantum tunneling when a large voltage is applied. The charge stored on the gate affects the conductance of the transistor channel below it. The value zero (0) is the high voltage state and one (1) is the low-voltage state. Modern flash uses multi-level cells with various possible voltage values to store several bits per transistor. There is a great description of Flash memory here:
http://www.anandtech.com/show/5067/understanding-tlc-nand/2 http://www.eetimes.com/author.asp?doc_id=1327904
Flash memory also has error-correction mechanisms in place to compensate for manufacturing flaws and wear. This experiment will test the media with all the normal error correction mechanisms in place, so is not a raw measure of bit errors. It also tests only the susceptibility of data stored statically on the media and does not test the CMOS readout circuitry in which cosmic rays could also produce errors during active data read.
Method:
We've acquired four reasonably contemporary microSD cards: 1. 32GB SanDisk Ultra PLUS HC I, 6362CRAC40XD 2. 32GB Samsung EVO HC I, MB-MP32D, MBMPBGVEQDFW-F, KNATHNNRH628 3. 32GB PNY Elite HC I, E532G1637, TWLN003044812 4. 16GB MicroCenter Class 10 HC, E516GG1612, TWLKA63410A38
The cards were filled with zeros so the floating gates should all be set to their highest voltage.
dd if=/dev/zeroes of=/dev/mmcblk0 hexdump -C /dev/mmcblk0
Card 1 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
76e480000
Card 2 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
774000000
Card 3 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
73e000000
Card 4 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
39d400000