There's plenty of superb anecdotes about the history of the byte and and so on.
I suppose the earlier question which, if
we want to go right back to ground zero: "Who invented the word 'bit' "? A chap at -
guess where - Bell Labs. John Tukey. [He] worked with Shannon and
others. I think it was he who, in a paper in 1947, actually uttered the word
'bit' rather than 'binary digit' for the first time.
So, how big should your groupings of bits be to hold the numbers you were interested in? And this is the
key to it all. Early computers were word based. Later on, the idea of the byte came
to be - not synonymous - but associated with: '... what's the amount of storage we'd have
to set aside for holding a character'? But, y' know, real programmers aren't
bothered with waffly bits of text! They want *numbers*. The obsession, with the
early computer pioneers, was very much: "We're gonna build these things because
they're interesting in their own right - electronic general-purpose computers - but
what we really want to do is serious applied mathematics, engineering,
quantum chemistry, computer science, x-ray crystallography, radio astronomy. All good
solid, scientific, things which need guaranteed decimal [places of] accuracy.
So, remembering the rule of 3.322 - which I don't have on my
T-shirt this time - sorry about that. >> SOUND TRACK OF VIDEO INSERT " ... and if anybody wants to produce a
T-shirt with that on, I might even buy one .... >> DFB: 3.322 is the multiplying factor for how much more binary
circuitry you need in your Arithmetic unit of your computer, to be able to do
things in binary arithmetic rather than decimal arithmetic. [For] the logic bits of the
computer, it's a no-brainer: it's yes/no decisions, so proper binary is fine there.
But why not use decimal integers [for arithmetic] ? Well, using decimal integers -
we can point to a previous video on this - it's fine but you've got to stabilise
10 different voltages, for 10 different levels of decimal digit. You've
only got 2 to stabilise for binary. It's much simpler to build in binary, but you
have to accept you will need 3.322... whatever, times the amount of
binary components, to do arithmetic, than you would using decimal. OK, so that's
accepted then: we build in binary. But for [high] school use you were taught how
to use logs to do your multiplies, with 4 decimal digits of accuracy. Babbage
and others wanted at least 10 digits. In fact, I've not got them here at home
they're at work, I've actually got 10-digit log tables - quite a big thick book
of them. So, if 10 digits was deemed to be a pretty decent starting point, multiply
by 3.322 and you can see [that] by the time you got to something like 33 - 36 bit
for safety maybe - groupings, you're beginning to get the 10 decimal digits
of accuracy that you want. So, you look at EDSAC, a first generation computer which
we've been talking about. EDSAC's only got an 18-bit word of which 17 bits are
useful. But by the time - if you could only 'glue' two of those [words] together in some way, you're up to
35, 36 bits. Now you're talking! That's getting us the accuracy we want. However,
at greater expense of course - contemporaneously as we now know with
EDSAC, was the EDVAC. They went for 40 bits straight away. So they didn't have
to double up the locations. [It was] more expensive to build, of course, but 40 bits...?
Fine - that will get you 10, or 12 possibly, decimal digits. Even when I came to do my
work - early work - on quantum chemistry, all along you were aware of not wanting to
lose precision on your decimal digit calculations, and taking great care about
rounding errors and stuff like this. I once looked at some exam. papers for the
Cambridge Diploma, because for many years - from about the early 50s onwards -
Cambridge did a postgraduate Diploma in Computing. Yeah, based around the EDSAC,
You went there -- a lot of [now] famous computer scientists 'converted
themselves', if you like, by doing the Cambridge Diploma. An awful lot of those
Diploma papers were numerical analysis! There was the odd question in there
which was ... Shock! Horror! ... *non-numerical*, covering things like algorithms for the
Travelling Salesman problem. But then the next question would be, y'know [fictitious example]
How would you invert a Householder Normal matrix, of dimension 20 x 20, in
the minimal number of operations without losing decimal precision in the 5th
decimal point"? All this kind of stuff. That was the background:
scientists, mathematicians and engineers built computers and they built them to
do hardcore numeric calculations. So, was that all there was to it?
No. On the sidelines, and treated quite honestly - and shamefacedly I say this in
many ways - with a bit of derision, was Commercial Computing and the company, as
I'm sure you all know, that was instrumental in leading the way with
that was IBM. IBM, for years and years and years, was the biggest computer company
in the world. It's probably still in the top ten, but I'm guessing
that Microsoft Apple and Google will be bigger than IBM, in terms of revenues,
nowadays. Yeah, IBM, of course, had got the best part of almost a cent ... no half a
century - a good half a century of lead, in using punched cards as a means of
holding data. And even though the machinery that sorted them, collated them
and could even do elementary additions and subtractions of the codes that were
on the cards ... IBM was the market leader by a mile.
Others tried to get in on the act and get a little bit of the action - and they did.
But the industry leader was IBM. So IBM understood about real [commercial] data. OK then,
so they were the right people to basically start saying: "You look at these
computers now [1950s era] and how they handle characters. It's pathetic!"
And it is [was]. Because you can go back to our EDSAC
video about how to print "HI" but it doesn't matter whether printing out "HI"
or "HELLO WORLD". You look at the way that these early computers did characters and
it was absolutely suboptimal. The story was well if you don't want to
fill up your word with lots and lots of bits that real scientists use you could
always fill up a subset of your word with maybe 5 bits for a Baudot code, or
invent your own 6-bit code to stop having to use figure-shift and letter
shift? Turn it from 32 possibilities to 64? So 5- or 6-bit
characters were common. But some people started to say: "Well, you always go on
about memory being so massively expensive [in those days] and so precious, and yet on
EDSAC you're saying: 'well it's 5-bit character'. So you can economize, can you,
by squeezing three 5-bit characters into a 17-bit word'? "No! why would
you do that? It'd be hell to get them out again. You'd have to do bit shifts
and all sorts, you'd slow things down". So, when you look on an early machines like
EDSAC it uses 5-bit characters in the middle of an 18-bit word and the
rest of the 13 bits just don't do anything.
IBM came along and said: "Look, here's the story. For those of you that have got lots of money
- and don't mind spending it - we have the perfect solution. Stop making the Word be
your minimum addressable unit. Address the characters [that can be packed inside it] individually,
and in order to keep things clean, and to allow for future expansion, don't mess
about with multiples of 2 - like 6-bit characters. Let's be brave and say:
' Right. 8-bit characters !'. Now for a while before all this came about, people had
been calling groups of bits of arbitrary size 5 bits, 6 bits, [they had] been calling
them 'bytes. But IBM proposed to standardize on the word 'byte' being an
8-bit entity. And here's the win-win situation: for those of you mad
mathematicians and engineers, we can arrange the hardware to regard
groups of four of those [Bytes] as being a 32-bit Word. It's a win-win.
IBM can dominate not only [byte based] commercial computing but can also make a reasonably
good showing, because of the sheer speed of their hardware
at great expense, in scientific computing as well. So, people said: "Oh! great idea.
Oh wow! yes that is ... you know, now that we've all got more money and can afford
more expensive things ... that is a sensible way to do it. Without a doubt". So, the idea
was absolutely spot-on, You choose a byte width which is a power
of two and then you arrange to be able to put together groupings of bytes that
form something sensible and bigger for macho types who want to do real number
arithmetic. So, everything in the garden is lovely. You've got 32 bits you've got 8 bits.
it was almost "end of story" but not quite.
Because although IBM did very nicely with things like the 370/195
and so on, at being a pretty good mainstream scientific computer, they
didn't really go for chasing the market at the very [scientific] top end . Because there just
wasn't enough in it for them. They made megabucks off their commercial database
customers. So, right at the top end, you get alternative solutions emerging, which
are still with us today, started off with a company called CDC and the brilliant
hardware engineer called Seymour Cray And [your] ears will say: "Cray?! he left CDC
eventually?" Yeah, he did and he formed Cray computers. So, yes, at the supercomputer
end of things there was an alternative market, but IBM - solidly there in the
middle - said: "We do commercial, and we do scientific. We rule the world!" And I think
they were remarkably prescient. and they, even at the other end, foresaw it and
tried to get it right, but failed. But maybe this will have to be another video?
Because it does complete the story. It's "What about people who wanted something
even cheaper than a 16-bit PDP-11?" They wanted an 8-bit micro. IBM saw that
coming and tried to get in there and dominate it. But for reasons we half
understand - but [which] can be revealed if there's enough demand - they did lose
control of that one.