On Jun 27, 2017, at 3:02 PM, Keith Medcalf <kmedc...@dessus.com> wrote:
> 
>> The whole point of
>> specifying a format as 7 bits is that the 8th bit is ignored, or
>> perhaps used in an implementation-defined manner, regardless of whether
>> the 8th bit in a char is available or not.
> 
> ASCII was designed back in the days of low reliability serial communications 
> -- you know, back when data was sent using 7 bit data + 1 parity bits + 2 
> stop bits -- to increase the reliability of the communications.  A "byte" was 
> also 9 bits.  8 bits of data and a parity bit.

Before roughly the mid 1970s, the size of a byte was whatever the computer or 
communications system designer said it was.  Even within a single computer + 
serial comm system, the definitions could differ.  For this reason, we also 
have the term “octet,” which unambiguously means an 8-bit unit of data.

The 9-bit byte is largely a DEC-ism, since their pre-PDP-11 machines used a 
word size that was an integer multiple of 6 or 12.  DEC had 12-bit machines, 
18-bit machines, and 36-bit machines.  There was even a plan for a 24-bit 
design at one point.

A common example would be a Teletype Model 33 ASR hardwired by DEC for 
transmitting 7-bit ASCII on 8-bit wide paper tapes with mark parity, fed by a 
12-bit PDP-8 pulling that text off an RK05 cartridge disk from a file encoded 
in a 6-bit packed ASCII format.

6-bit packed ASCII schemes were common at the time: to efficiently store plain 
text in the native 12-, 18-, or 36-bit words, programmers would drop most of 
the control characters and punctuation, as well as either dropping or 
shift-encoding lowercase.

That isn’t an innovation from the DEC world, either: Émile Baudot came up with 
basically the same idea in his eponymous 5-bit telegraph code in 1870.  You 
could well say that Baudot code uses 5-bit bytes.  (This is also where the data 
communications unit “baud” comes from.)

The 8-bit byte standard — and its even multiples — is relatively recent in 
computing history.  You can point to early examples like the 32-bit IBM 360 and 
later ones like the 16-bit Data General Nova and DEC PDP-11, but I believe it 
was the flood of 8-bit microcomputers in the mid to late 1970s that finally and 
firmly associated “byte” with “8 bits”.

> Nowadays we use 8 bits for data with no parity

True parity bits (as opposed to mark/space parity) can only detect a 1-bit 
error.  We dropped parity checks when the data rates rose and SNR levels fell 
to the point that single-bit errors were a frequent occurrence, making parity 
checks practically useless.

> no error correction

The wonder, to my mind, is that it’s still an argument whether to use ECC RAM 
in any but the lowest-end machines.  You should have the option to put ECC RAM 
into any machine down to about the $500 level by simply paying a ~25% premium 
on the option cost for non-ECC RAM, but artificial market segmentation has kept 
ECC a feature of the server and high-end PC worlds only.

This sort of penny-pinching should have gone out of style in the 1990s, for the 
same reason Ethernet and USB use smarter error correction than did RS-232.

We should have flowed from parity RAM at the high end to ECC RAM at the high 
end to ECC everywhere by now.

> and no timing bits.

Timing bits aren’t needed when you have clock recovery hardware, which like 
ECC, is a superior technology that should be universal once transistors become 
sufficiently cheap.

Clock recovery becomes necessary once SNR levels get to the point they are now, 
where separate clock lines don’t really help any more.  You’d have to apply 
clock recovery type techniques to the clock line if you had it, so you might as 
well apply it to the data and leave the clock line out.

> Cuz when things screw up we want them to REALLY screw up ... and remain 
> undetectable.

Thus the move toward strongly checksummed filesystems like ZFS, btrfs, HAMMER, 
APFS, and ReFS.

Like ECC, this is a battle that should be over by now, but we’re going to see 
HFS+, NTFS, and extfs hang on for a long time yet because $REASONS.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to