5 ms·
Standardization on 8-bit multiples only really occurred with the IBM 360 in the late 1960s. Before that, six bit words were very common with plenty of 12, 18 a
by rahen 3y ago
Standardization on 8-bit multiples only really occurred with the IBM 360 in the late 1960s.
Before that, six bit words were very common with plenty of 12, 18 and 36 bit machines (every PDP besides the 11, CDC 160, UNIVAC, early IBMs)...
Some also had variable word length like the IBM 1401 and 1620.
- forinti 3y agoThere were Dutch computers with weird combinations like 27 bit registers and 15 bit address lines made by Electrologica.
- p_l 3y agoA lot of older computers were "bit-serial", i.e. the ALU processed "bytes" bit by bit. This, along with how every part used to make computers was also 1bit (because VLSI wasn't a thing yet). MIT Whirlwind is in some ways ancestor to all modern computers by switching to bit-parallel architecture with multiple bits being handled at a time. 36bit word length became common for scientific applications because it was apparently considered enough to do equivalent of 10 digit precision in fixed precision arithmetic, thus common pattern of 36 among American scientific computer lines. Later common availability of 4bit components like 74xxx families meant that multiplies of 4 bits started being common. 4bits also allow to handle calculations in BCD form, which had obvious use cases in businesses, which is partially why S/360 which attempted to consolidate IBMs scientific and business lines went with 32bit word length - 8 bit was comfortably 2 BCD digits and also would fit one character of then-upcoming ASCII standard (the reason EBCDIC survives in S/360 is that ASCII was not yet ready and IBM decided to extend their existing codes instead of taking unfinished standard that could change - and they had to hardcode it in some devices back then) The final nail in 36bit and longer word lengths was floating point becoming fast enough - and arguably infighting between VAX and PDP-10 groups at DEC which among other things triggered existence of BSD Sockets API and their horrible legacy on networking.
- rahen 3y agoThe first generation computers, using vacuum tubes, were indeed usually bit-serial. Some had parallel ALUs, or sometimes just parallel multipliers units, but an entirely parallel computer designed with vacuum tubes would have been very power hungry and unreliable. Some notorious exceptions are the ENIAC and Whirlwind 1 which indeed were fully parallel. As for 36-bit machines, they were also popular because of LISP, as a cons cell was 2x18 bits. I think this influenced the design of the PDP-6 and 10. And yeah, I also wished DEC didn't kill the PDP-10 for the VAX, but that's another story.
- p_l 3y ago36bits for lisp was specific to PDP-6/10 not anything else. And Lisp in turn took its "memory word is a cons cell because you can fit two addresses in one word" from a 36bit IBM scientific computer with 15 bit addressing.
- lispm 3y agoThe Symbolics 3600 series were also 36bit machines. Later the Symbolics Ivory microprocessor then was a 40bit cpu.
- p_l 3y agoyes, but in both cases the motivation was to have 32bit fixnums and addresses and thus word size was extended with extra bits for tags, unlike the predecessor design of CADR which used 32bit bus and had to stuff tags and fixnum/addresses together - resulting in 24bit fixnum/address space, or 3 8bit characters stuffed into each word, plus 4 bits of tags. TI Explorer later updated CADR/LMI design to use 25bit fixnum/address and 3bit mandatory tags. For people who don't know: Tag space included both CDR-coding (compression mechanism for linked lists), datatype tags, as well as formed portion of the instructions if the word contained instructions - on 3600 and Ivory each word could contain 1 or 2 instructions.
- jhallenworld 3y agoBit serial made a lot of sense because the memory was often serial (drum memory or acoustic delay lines use in 1960s calculators). >And yeah, I also wished DEC didn't kill the PDP-10 for the VAX, but that's another story. The DEC-20 was 6x faster than VAX-11/780 on at least one benchmark (that I wrote when I had access to both in the 80s..). DEC-20 was a PDP-10 implemented in ECL, it was quite fast.
- rahen 3y agoAh, yes, there were even ternary computers, using three states (1, -1 and 0) instead of two.
- hnlmorg 3y agoIn the UK we had Dekatrons that could come in a variety of different bases: > While most dekatrons are decimal counters, models were also made to count in base-5 and base-12 for specific applications. Source: https://en.m.wikipedia.org/wiki/Dekatron https://en.m.wikipedia.org/wiki/Dekatron I’ve personally played on the Harwell Dekatron, it’s a fun machine https://www.tnmoc.org/first-generation-gallery https://www.tnmoc.org/first-generation-gallery
- jacquesm 3y agoAka Dijkstra's baby. Those were the predecessor of our modern CPUs in many ways, so many concepts were pioneered on those. There is even a direct line between that machine via THE and Multics to Unix.
- drewcoo 3y ago> Standardization on 8-bit multiples only really occurred with the IBM 360 in the late 1960s. It's not "standardization" when only one model from one company is doing it. The 8-bit byte was common in microcomputers and as they grew to dominate people's programming, you could claim it became some kind of de facto standard in the 70s or 80s. The de facto standard was documented by a standards body in the 90s. FWIW, in a CS program in the 90s, I was taught that 8-bit was most common, but not "standard." https://en.wikipedia.org/wiki/Byte#cite_note-ISO_IEC_2382-1_1993-9 https://en.wikipedia.org/wiki/Byte#cite_note-ISO_IEC_2382-1_... Word length was even less common across architectures, but again, we ended up setting current definitions based on microcomputer use.
- TheOtherHobbes 3y agoMicros were 8 bits because that's the sweet spot in the trade off between usefulness, complexity, and expense. With 8 bits you have a reasonable instruction space, simple access to a 16-bit address space, and a good platform for ASCII. It's a minimal viable CPU - powerful enough to get non-trivial general purpose work done, easy to package into VLSI, and cheap enough to sell in quantity. But the design went in the opposite direction. The original micro - in terms of market positioning - was the PDP-8, and that was 12-bits. The 16-bit PDP-11s were a step up from the 8, and the 8080 etc were a step back down.
- couchand 3y agoCan you help me out with your last paragraph? My understanding was that the PDP-8 was squarely a mini, not a micro.
- timbit42 3y agoThe DEC PDP-8 is a mini computer but because it was so small and inexpensive, it was often used as a personal computer. Micro computers were also personal computers, especially in the beginning, so perhaps there is some conflation there.
- 3y ago
- shrubble 3y ago6 bits was used to represent alphanumeric characters prior to ASCII as well.
- miohtama 3y agoIs there anything special why 8-bit won, or is it just a compromise between 6,8,10,12,etc.
- PaulHoule 3y agoOn some sense 7 bits won since ASCII used only 7 bits, leaving the question of do you leave the high bit zero, use it for parity, pack 7-into-8 for long strings, etc. (Sometimes in serial comms in the old days we really sent 7 bit characters) You could pack upper and lowercase roman letters and numerals for a total of 62 characters and then have room for a period and space and you’re full. With only uppercase you can a decent set of symbols, see the SIXBIT encoding https://rabbit.eng.miami.edu/info/decchars.html https://rabbit.eng.miami.edu/info/decchars.html that Digital used for file names back when there was a computer industry on the US East Coast. If you wanted something general purpose you’d need to add some kind of shift to get lower case characters if not additional symbols and control characters, but now the meaning of the characters depends on state which might have been seen as a burden on the peripherals of the day and is certainly more of a hassle to program. Note it was seen as decisive that IBM’s 360 used 8-bit characters that could have fit the ASCII code but they went with the 8-bit https://en.wikipedia.org/wiki/EBCDIC https://en.wikipedia.org/wiki/EBCDIC code instead because it was easier to make compatible with older keypunch machines. Already 8-bit is looking like overkill, I think the control characters were not really properly utilized in 7-bits, 8-bits let you fit some combination of extra symbols, modified roman letters used in other european languages, and such. You can’t cover every European language in 8 bits (which is why they had different code pages) but you could get most latin variants and probably some other sets like Greek, Cyrillic, even Japanese Kana, in 10-bits but hardly anyone wants to use all those characters at the same time. If you had a sixty bit computer you might also consider a 5-bit code set like https://en.wikipedia.org/wiki/Baudot_code https://en.wikipedia.org/wiki/Baudot_code
- radiator 3y agoWow, in your last link about Baudot's code we read: In 1876, he changed from a six-bit code to a five-bit code, as suggested by Carl Friedrich Gauss and Wilhelm Weber in 1834. I have seen references to Gauss' name in so many places -- at some point I should learn not to be surprised anymore.
- gumby 3y agoAlso variable byte length. The 36-bit PDP-6 and quite popular PDP-10 allowed you to address a byte (length from 1-36 bits) in memory; incrementing that address got you the next byte. Allowed for very efficient packed arrays of small values that could easily be used in assembly code.
- jhallenworld 3y agoASCII was often 7-bits on these machines, since you could efficiently pack 5 characters in one word. But C used 9-bits for chars, for better compatibility between word and char pointers.
- gumby 3y agoThat’s why FTP has character and binary modes, which doesn’t make a difference for 8-bit machines.
- lokedhs 3y agoIt does make a difference on some operating systems. Specifically DOS (and by extension, Windows, at least sometimes. As usual with Microsoft it gets complicated). When enabling text mode transfers in these systems, newlines gets translated from LF to CRLF on the DOS side.
- deleted 3y ago[deleted]
- canucker2016 3y ago...and on pre-OSX Macs that had CR-only line endings (LF -> CR).
- kristianp 3y ago> But C used 9-bits for char I expect you meant 8 bits for char!
- kps 3y agoEarly computer word sizes varied widely: https://ed-thelen.org/comp-hist/BRL61table03.html https://ed-thelen.org/comp-hist/BRL61table03.html (A Third Survey of Domestic Electronic Digital Computing Systems, 1961)