5 ms·
Binary data simply means that each datum encodes exactly one of two states. We represent them as 0s and 1s, but that's just an abstraction of convenience - phys
by chimeracoder 3y ago
Binary data simply means that each datum encodes exactly one of two states. We represent them as 0s and 1s, but that's just an abstraction of convenience - physically, that maps to something like "high voltage" and "low voltage", or "dark" and "light", or "on" and "off", depending on the physical medium.
We could have three states - "high voltage", "medium voltage" and "low voltage" - but the advantage of having exactly two is that it makes it harder to mistake one state for another (e.g. if voltage fluctuates within a specific range). If the measurement range for each datum is (0, 100), you can decide that anything below 50 is "low voltage" and anything below 100 is "high voltage". You can also do the same thing with (0,33), <33,66), <66,100), but that requires assuming more precise tools throughout the entire pipeline. When we talk about bits getting flipped (the entire reason that checksums exist in wire protocols), that's the reason: the medium conducting the signal is imprecise, and sometimes the reading is off.
Traditionally, this represents a tradeoff between density and fidelity. If your system has high enough fidelity, you can take advantage of the additional precision and distinguish between more states, representing additional information.
If your system has 8 states (0,8.3), <8.3, 16.6)... etc., you can look at this as an octal system, or you can think of it as a binary system in which a read/write error affects an entire byte, rather than a single bit.
At the end of the day, this is a question of signal processing - binary representation is a convenient abstraction that allows us to understand the way that we're interpreting the signals we're reading, but it's fundamentally an arbitrary choice.
- quasse 3y agoThis is multi-level cell flash memory, and it's been in use for years. Instead of "high" or "low" voltage they use the in-between states to encode more bits per cell. [1] I worked at an embedded startup when SD cards started switching to MLC and we saw a really notable decrease in storage reliability. We ended up sourcing special SD cards that were flashed with embedded controller firmware restoring them to single level cell functionality. Your storage space is divided by 2^n going from n levels of voltage per cell back to SLC, but we saw greatly increased data integrity. [1] https://en.wikipedia.org/wiki/Multi-level_cell https://en.wikipedia.org/wiki/Multi-level_cell
- chimeracoder 3y ago> This is multi-level cell flash memory, and it's been in use for years. Instead of "high" or "low" voltage they use the in-between states to encode more bits per cell. [1] Yes, I'm explaining it with high and low voltage because that's an easy example to wrap your head around if you haven't thought about signal processing or hardware engineering before.
- dmvdoug 3y agoHow much calculus would it require in order to get a decent grasp on signal processing? Not to work in the field or become an expert, but to gain an at least somewhat intelligent outsider’s understanding of it?
- rcarr 3y agoDon’t work in the field but I believe fast fourier transforms are commonplace so at least enough to have a solid grasp of that?
- AYoung010 3y agoMost intro classes require calculus 1 & 2.
- tiberius_p 3y agoLearn what's the deal with the Fourier Transform and the Z transform. Then learn how to design some digital FIR filters. Oh and do learn about the Nyquist-Shannon sampling theorem, it's very important. And that's about it...just joking, there's tons more. But that would be a good start.
- bonzini 3y agoThose are known as pseudo-SLC, they are common in industrial applications.
- rcxdude 3y ago> Your storage space is divided by 2^n going from n levels of voltage per cell back to SLC it's not that bad, it's divided by log2(n).
- mr_toad 3y ago> fundamentally an arbitrary choice It’s not arbitrary, it’s an engineering choice. It’s just easier to design binary circuits.
- masswerk 3y ago> We could have three states… "With the advent of mass-produced binary components for computers, ternary computers have diminished in significance. However, Donald Knuth argues that they will be brought back into development in the future to take advantage of ternary logic's elegance and efficiency." (Wikpedia article on ternary computer(s), https://en.wikipedia.org/wiki/Ternary_computer https://en.wikipedia.org/wiki/Ternary_computer, Donald Knuth's observation is found in The Art of Computer Programming.)