Data — a collection of 1s and 0s — is pretty well understood these days, with the idea being to be able to send as many of these 1s and 0s down a given transport mechanism (copper, fiber or wireless) as possible.
But, just maybe, we’re looking at this in the wrong way — maybe an analog signal could do things so much better.
“This guy’s off his rocker!” I feel many of you thinking — and don’t worry, many would agree with you. But, please bear with me, and I will explain.
In a standard data stream, there are only two states the data can be in: an “off” state (a zero) or an “on” state (a one). This was done in the first place because sensing the difference between an “off” and an “on” was pretty easy to do, but sensing differences in the “on” states was not accurate enough to be able to do anything with it. Therefore, an 8-bit piece of data needs 8 pulses of on/off to be able to define it in order for a computer to understand it. That’s your elementary bit of polishing up what you learned at school for today.
OK, so now to more college-style stuff. Electronics have, unsurprisingly, evolved over the years, and today’s application-specific integrated circuits (ASICs) and field-programmable gate arrays (FPGAs) are far more capable than they were. Therefore, a more nuanced signal can be sent through and understood.
In figure 1, we see a saw-tooth signal that shows a pretty standard digital signal, in this case just showing a simple 01010101010101 data pattern. 8 of these pulses is required to create a single meaningful piece of information as 8 bits equals 1 byte. Therefore, the first 16 pulses of this equate to 2 bytes of 01010101, being 85 in decimal. The maximum that a byte can signify is therefore 11111111, or 255 in decimal.
However, if we use an analog approach instead, then each “pulse” could be re-sized, using an eighth of a pulse height as a basis for deciding what the pulse holds as information.
Figure 2 shows this in more detail. As an analog data stream, we do not have the stark differences between the digital on/off stream — we have a far smoother signal that covers 8 different states, with each state representing a full byte of data. An ASIC or FPGA capable of measuring these states could then be in a position to convert these into standard numbers from the 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6 and 0.7 states.
In the figure, the first eight data points (our new “byte”) are therefore 0, 2, 0, 7, 2, 3, 4 and 5.
By then using octal as the computer numbering rather than digital an octal “byte” of information could have a maximum value of 77777777, or 16,777,215 in decimal. The first “byte” in figure 2 is therefore Octal 02072345, decimal 554213.
We have managed to push the possible theoretical data in a stream by 65,793 times – pretty impressive, eh?
OK — a computer can really only operate on binary numeric operations. However, there is no reason why network equipment should not move from binary to octal in how it deals with the data stream — or even to decimal, hexadecimal, or any other base in order to deal with the data to give even greater data throughput capability. Accuracy in measuring the various states of the data stream is an imperative, though — measuring a 0.1 as a 0.2 would be slightly catastrophic. Noise would need to be removed as far as possible from the signal — any impact on the signal would make such accuracy impossible. I do believe, however, that we have reached the theoretical point where the above should be capable of being done.
Just two very small issues: this would be incompatible with every other piece of networking equipment that has gone before, and there are just a few vested interests within the existing vendor community. But why let these get in the way, eh?
Anyway, just a bit of blue-sky thinking to brighten up your day.