3 ms·
Yeah, "was the 8088 an 8-bit or a 16-bit processor?" doesn't have a straightforward answer... The main speedups from 8088 -> 80286 were moving from an 8-bit to
by kiwidrew 6y ago
Yeah, "was the 8088 an 8-bit or a 16-bit processor?" doesn't have a straightforward answer...
The main speedups from 8088 -> 80286 were moving from an 8-bit to a 16-bit external data bus and also the 80286's dedicated address generation unit which made calculating operand effective addresses much much faster.
And the 80386, when running DOS programs in 16-bit real mode, was mostly just a glorified but very fast 80286. Especially the 80386DX with its 32-bit memory bus. It took a while for software like Desqview, EMM386, and Windows 3.1 (in 386 enhanced mode) to take advantage of the 80386's advanced features.
The poor little 8088 had to squeeze both its instruction stream and the data stream through a tiny 8-bit bus, so it's really not that much different from say the Z80 (widely considered an 8-bit CPU) which nonetheless can do (limited) 16-bit operations on some of the internal registers.
- oso2k 6y agoAlso, the 286 was the last time we had truly synchronized, 0-wait state CPU-RAM combination with the 16MHz 286 and 16MHz RAM.
- dspillett 6y ago> Yeah, "was the 8088 an 8-bit or a 16-bit processor?" doesn't have a straightforward answer... "Bitness" is usually held to refer to the size of a processor's main register set, so the size of data units it is capable of processing internally most of the time, ignoring special cases. By that common definition the 8088 is definitely a 16-bit CPU. Especially as it was a modification of the 16-bit 8086 design and fully code compatible with it, the modification being that 8 bit data bus which slowed down talking to the outside world. Similarly the 386SX is a 32-bit unit. They took the original 386 and modified it in much the same way, giving it a 16-bit data bus to allow it to be used on much cheaper motherboard designs being the main defining change. The 386DX actually came first technically because it was essentially the original 386 lines renamed once the SX variants came along. The Z80 could perform a limited set of 16 bit operations such as partially 16-bit multiply (8-bit inputs to a 16-bit output) but was definitely an 8-bit unit overall as the majority of it's inwards were (and the majority of the 8088s innards were 16-bit, and the 386's (original/DX, or SX) were 32. If we count instruction outputs and not general purpose register size then the 6502 family would be 9-bit not 8 as most of its arithmetic instructions output 9 bits (the main 8, plus overflow in the flags register). The 486 would not be called 80-bit because of its floating point unit having 80-bit registers for intermediate operations, and early-ish Pentiums were still 32-bit when 64-bit chewing MMX instructions were added (in fact the very first Pentiums had 64-bit data busses so they could pump data into the on-die cache twice as fast to try keep up with the demands of the fast pipelined internals but where still considered 32-bit as said internals were). There are some CPU/GPU/other-PU designs where the distinction is rather muddy, but for Intel's main lines and those inheriting from them I'd say their bitness is pretty well defined.