Hacker News new | ask | show | jobs
by the_mat 4530 days ago
Think about the CPU landscape in 1984. You had all these 8-bit home computers running at sub-2MHz. The IBM PC was 16-bits running at 4.77MHz, and most of those were actually using 8-bit buses (the 8088 vs. 8086). The super expensive IBM PC/AT was the top of the line: a 6MHZ 80286.

In comparison to all of this, a processor running at 8MHz that could do full 32-bit operations (though, yes, the external bus was half that) and with 16 32-bit registers. and no segments...mind blowing!

1 comments

It's not quite that cut and dry. The 80286 was actually significantly faster than the 68000 at what-at-the-time-was-considered typical code[1]. The 68000 had a much cleaner and forward-looking ISA of course, but it paid a cost for that 32 bit architecture in more elaborate microcode that the 286 didn't need to worry about.

[1] That is, things that fit in mostly-16-bit data sets. Once framebuffer manipulation became the dominant operation a few years later, that status would flip. Nonetheless if you were trying to compile your code, model your circuit or calculate your spreadsheet as fast as possible in 1984, you'd probably pick a PC/AT over a Mac (if you couldn't get time on a VAX).

Yes. The 68000 was very nice to program for, but internally it was obviously from an earlier era/too far ahead of its time/a big pile of shit (delete as you see fit). You'll hunt far and wide for an instruction that takes less than 4 cycles, long instructions take more time again, variable-width shifts take 2 cycles per shift, a division can take 150 cycles, and with the effective address calculation timings on top things can really mount up. (See, e.g., http://oldwww.nvg.ntnu.no/amiga/MC680x0_Sections/mc68000timi...)

If you look at the cycle counts for 8086 instructions - see, e.g., http://zsmith.co/intel.html - they're much closer to the 68000 ones. Compared to the 68000, the 286 is just on another level.

Another cost of the "more elaborate microcode" is that there was no way to resume or restart execution of the current instruction after a bus error exception. The 68010 fixed that by dumping internal state onto the stack. I wished that after 68010 was released that Motorola promoted the 68010 for new development and the original 68000 only for situations where the system software cannot be modified (since to fix the problem the exception stack frames had to be changed). Motorola had some patents describing how it worked: https://www.google.com/patents/US4493035
This is true, but the '10 wasn't released until the Mac was well into development (and the Lisa was nearing release). Motorola sort of missed the window there. And in any case no 68k Macs would ever end up making significant use of an MMU anyway. By the time that became possible the platform had moved on to 68020/30 parts.

Obviously all the Unix vendors jumped on the '10 instantly. The MK68000 itself was never dominant there.

Yes, but the 68010 is pin compatible with the 68000 at the hardware level and the software changes are trivial.