The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] 2^n-bit operands (Was reviving a bit of WWB)
@ 2021-02-03 14:55 M Douglas McIlroy
  2021-02-03 20:07 ` John Cowan
  0 siblings, 1 reply; 4+ messages in thread
From: M Douglas McIlroy @ 2021-02-03 14:55 UTC (permalink / raw)
  To: tuhs

[-- Attachment #1: Type: text/plain, Size: 1233 bytes --]

> Does anyone know why the computer industry wound up standardising on
8-bit bytes?

I give the credit to the IBM Stretch, aka 7030, and the Harvest attachment
they made for NSA. For autocorrelation on bit streams--a fundamental need
in codebreaking--the hardware was bit-addressable. But that was overkill
for other supercomputing needs, so there was coarse-grained addressability
too. Address conversion among various operand sizes made power of two a
natural, lest address conversion entail division. The Stretch project also
coined the felicitous word "byte" for the operand size suitable for
character
sets of the era.

With the 360 series, IBM fully committed to multiple operand sizes. DEC
followed suit and C naturalized the idea into programmers' working
vocabulary.

The power-of-2 word length had the side effect of making the smallest
reasonable size for floating-point be 32 bits. Someone on the
Apollo project once noted that the 36-bit word on previous IBM
equipment was just adequate for planning moon orbits; they'd
have had to use double-precision if the 700-series machines had
been 32-bit. And double-precision took 10 times as long. That
observation turned out to be prescient: double has become the
norm.

Doug

[-- Attachment #2: Type: text/html, Size: 1595 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [TUHS] 2^n-bit operands (Was reviving a bit of WWB)
  2021-02-03 14:55 [TUHS] 2^n-bit operands (Was reviving a bit of WWB) M Douglas McIlroy
@ 2021-02-03 20:07 ` John Cowan
  2021-02-03 20:51   ` Lars Brinkhoff
  2021-02-03 21:10   ` Rich Morin
  0 siblings, 2 replies; 4+ messages in thread
From: John Cowan @ 2021-02-03 20:07 UTC (permalink / raw)
  To: M Douglas McIlroy; +Cc: TUHS main list

[-- Attachment #1: Type: text/plain, Size: 1690 bytes --]

On Wed, Feb 3, 2021 at 9:55 AM M Douglas McIlroy <
m.douglas.mcilroy@dartmouth.edu> wrote:

With the 360 series, IBM fully committed to multiple operand sizes. DEC
> followed suit and C naturalized the idea into programmers' working
> vocabulary.
>

The steady expansion of character set sizes also had a great deal to do
with it.  The various 6-bit character sets were fine as long as the
industry was okay with English-only SHOUTING.  When that was outgrown,
7-bit ASCII and 8-bit EBCDIC on multiple-of-6 word sizes (as were found on
the big-endian DEC machines up to the PDP-10) were annoying to use.

On the 12-bit PDP-8, where I cut my teeth, ASCII was stored as
HHHHAAAAAAAA followed by LLLLBBBBBBBB, where the As represent the first
character, the Bs the second, and the Hs and Ls the third.  Padding was
done with NUL, which meant that, for example, the TTY driver simply filled
its read buffer with 0000AAAAAAAA 0000BBBBBBBB, which made rubout handling
much simpler.  Textual programs reading from it would already be set up to
ignore NULs.

On the 36-bit PDP-10, things were better: the sign bit was mostly ignored
and five 7-bit ASCII characters were packed into each word, again with NUL
padding.  (Line editors turned on the sign bit to indicate that this word
held an explicit ASCII line number.)



John Cowan          http://vrici.lojban.org/~cowan        cowan@ccil.org
Original line from The Warrior's Apprentice by Lois McMaster Bujold:
"Only on Barrayar would pulling a loaded needler start a stampede toward
one."
English-to-Russian-to-English mangling thereof: "Only on Barrayar you risk
to
lose support instead of finding it when you threat with the charged weapon."

[-- Attachment #2: Type: text/html, Size: 3504 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [TUHS] 2^n-bit operands (Was reviving a bit of WWB)
  2021-02-03 20:07 ` John Cowan
@ 2021-02-03 20:51   ` Lars Brinkhoff
  2021-02-03 21:10   ` Rich Morin
  1 sibling, 0 replies; 4+ messages in thread
From: Lars Brinkhoff @ 2021-02-03 20:51 UTC (permalink / raw)
  To: John Cowan; +Cc: TUHS main list

John Cowan wrote:
> On the 36-bit PDP-10, things were better: the sign bit was mostly ignored
> and five 7-bit ASCII characters were packed into each word, again with NUL
> padding.  (Line editors turned on the sign bit to indicate that this word
> held an explicit ASCII line number.)

It was not the sign bit but the least significant bit.  The ILDB/IDPB
byte instructions prefer it that way.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [TUHS] 2^n-bit operands (Was reviving a bit of WWB)
  2021-02-03 20:07 ` John Cowan
  2021-02-03 20:51   ` Lars Brinkhoff
@ 2021-02-03 21:10   ` Rich Morin
  1 sibling, 0 replies; 4+ messages in thread
From: Rich Morin @ 2021-02-03 21:10 UTC (permalink / raw)
  To: TUHS main list



> On Feb 3, 2021, at 12:07, John Cowan <cowan@ccil.org> wrote:
> 
> On the 36-bit PDP-10, things were better: the sign bit was mostly ignored and five 7-bit ASCII characters were packed into each word, again with NUL padding.  (Line editors turned on the sign bit to indicate that this word held an explicit ASCII line number.)

The PDP-7, 9, and 15 used 18-bit words, but used the same "5/7 IOPS ASCII" packing strategy.  That is, five 7-bit ASCII characters were packed into a word pair.  Unfortunately, they didn't have the convenient character manipulation instructions found on the PDP-10, so programmers had to do shifts, masks, etc.  Grumble.

-r


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-02-03 21:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-03 14:55 [TUHS] 2^n-bit operands (Was reviving a bit of WWB) M Douglas McIlroy
2021-02-03 20:07 ` John Cowan
2021-02-03 20:51   ` Lars Brinkhoff
2021-02-03 21:10   ` Rich Morin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).