Could the Motorola MC68000 run Linux or Windows?

 (Asked in the Arduino group)

man that's so great does this devices work with an operating system like unix linux windows dos bsd ?

The Zilog Z-80 (an improved intel8080) and Motorola MC68000 had no "memory management" hardware (MMU). The unix-like operating systems (including Windows-95, NT, and later) protect users and processes from each other with that hardware. They also use it to implement demand paged virtual memory, which is one of the most important architectural improvements in the history of computers. So you can't run Linux or Windows on them without adding a board full of external hardware logic.

I believe that was the critical marketing mistake by Motorola. Their next generation of 68000 (68020) added an on-chip cache but no MMU. Meanwhile, Intel added a primitive MMU in the i80286. A stock IBM PC AT could run a primitive unix, but an MC68020 could not. They added an MMU in the MC68040 but it was three years too late.   Which is a bloody shame because the 68000 was a way better machine than the 8086 and the '020 was way better than the '286 in every other respect.   Marketing morons.  

In 1979, when the MC68000 was introduced, it was an elegant, state of the art design, with a 32-bit machine model.  But back then nobody would design a new chip onto a board with no second sources.  Motorola signed up Mostek, Signetics, Hitachi, and eventually Texas Instruments to make identical CPUs.   The deal was each second source company would contribute a peripheral chip, and Mot could catch up with intel on the "ecosystem" front.   Unfortunately the contributed peripherals were buggy, slow, and introduced too late, so very few designers used them.   The Signetics Memory Management Unit for the 68K was a disaster.   They even got the clock input wrong.   I used Mostek's counter-timer-interrupt chip in a graphics prototype at Motorola.    The kernel programmers who had to use it didn't like it.   I believe most 68K designs included peripheral chips from other microprocessor families.

In 1986, I built a 68020 board at ARIX.   We implemented a level-2 cache and a "table walking" memory management unit outside of the 68020.   It took over 100 standard logic chips.   74Fxx logic and PALs and SRAMs.   Dumb.   Should have started a year earlier and built a custom chip.  It was fascinating to watch the very first memory access of a new user process.   First it faulted in the MMU because that page had never been accessed before.   The MMU did three memory reads to find out where the user access was aimed in physical memory and does the user have permission.  And the MMU retains a copy of the page table info for that page.   Then the CPU would try again and this time the cache would miss because that page had never been accessed before.   So then we did a fourth memory access to load the word into cache, and at the end of that the CPU has the data too.    So you can see what a huge saving in cost and power and board space and speed you get if the MMU and cache are built into the CPU chip.   Today that's the difference between a "microcontroller" and a "system on a chip."

Comments

Popular posts from this blog

RAID1 array for our home theater. LVM + md + ZFS or XFS

Software product web sites suck.