IRC channel logs

2019-12-24.log

back to list of logs

<xentrac>oriansj: ah, I see
<oriansj>xentrac: I've started to ponder the following behavior in the survival of instruction sets; why do 8/16bit instruction sets still survive but 32/64bit instruction sets die.
<oriansj>note all of the instruction sets of the 8/16bit era that survived all had 16bits or more of address space and an assembly language that is easily loadable into one's working memory and still allow enough remaining cognative load to allow for the generation of effective programs to be generated.
<oriansj>where as the 32/64bit instruction sets that died, lack that same property.
<xentrac>well, my thinking is that being limited to an 8-bit or 4-bit address space is too limiting, so almost nobody makes their address buses that small
<xentrac>even 12-bit addresses like on the PDP-8 are pretty limiting
<xentrac>so even if the ALU is too small to operate on 16 bits at a time, you make your addresses 16 bits
<xentrac>in a 16-bit address space you can have a multitasking operating system, compilers, even a GUI
<xentrac>although you probably want a different memory mapping for each process in 16 or even 32 bits
<xentrac>but 16-bit and especially 32-bit address spaces are much less confining; you aren't constantly struggling with the address space for dear life the way you would be with an 8-bit address space
<xentrac>with 16-bit registers but a 20-bit or 32-bit address space, like the 8086, you do struggle some with the address space; you have to decide which things ought to be fast and which ought to have more than 64K of capacity instead
<xentrac>depending on your chosen language and available facilities, changing your mind about that might be more or less expensive
<xentrac>an 8-bit ALU and registers make a very small CPU like the 6502 possible, and this has real advantages in some circumstances
<xentrac>but to make them a real computer you need to pair them with a larger address space, at least 14 bits (and so you might as wel use 16)
<xentrac>no such desperate measures are needed for 32-bit CPUs, and indeed the hypothetical 48-bit-addressing capabilities of the 386 family were never used as far as I can tell
<oriansj>xentrac: well the PAE extension which provided for 48bit addressing was mandatory for Ubuntu and multiple Linux distros (before those distros abandoned 32bit generally)
<oriansj>and I certainly agree, there is no point in having a less than 16bit address space but I argue the cost savings from going from a 16bit alu to an 8bit alu stopped mattering approximately the time around the release of the Pentium Pro. as cost sensitive designs could have been internal single bit ALUs internally but 64bit externally. But being cost sensitive ment than efficient assembly generation by hand had to be readily available
<oriansj>(either because they previously learned the architecture or because it is simple to learn)
<oriansj>although I'd argue 8086 survived largely by luck and the fact one can ignore a great deal of its flaws (largely the result of the 2week rush job they did with it)