microcoding a PC into a PDP-11 (was: RE: Classic Computers vs.

From: Bob Shannon <bshannon_at_tiac.net>
Date: Thu Sep 20 22:50:47 2001

Tony Duell wrote:

<snip>

> Consider the PERQ for the moment. It has user-writeable microcode -- in
> fact the only microcode in the system at power-on is a little boot PROM
> that reads the rest of the microcode from the disk.
>
> This microcode runs on a well-documented micromachine. Which has 256 20
> bit registers, 16 ALU operations, various jumps, calls and dispatches,
> and so on.
>
> One of the standard microcodes implements a version of the UCSD p-system
> instruction set. When it is loaded, it's conventional to call the PERQ a
> p-machine, and to regard p-code as the machine code of the processor.
>
> But, you can also consider things one level lower. The 'machine code' of
> the PERQ is what is normally termed the microcode instruction set (after
> all, it's perfectly possible -- and encouraged -- for users to write
> programs in that instruction set). The PERQ runs an emulator (normally
> called the 'microcode') for the p-machine.

While the line between assembly code and microcode is often grey, when it
takes more than an instruction to read main memory, chances are your at the
microcode level, as with the PERQ.

Microcode is used to write machine code instructions, which may do several
memory cycles. This is a pretty good yardstick I think.

> Now, as far as I can see, there's mothing to limit the complexity of the
> micromachine. So, why can't we consider the Pentium as a micromachine[1]
> (that fact that it itself contains 'microcode' is irrelevent here) and
> then write a program that runs some other instruction set to run on that
> 'micromachine'. It may be unconventional to call it 'microcode' but it
> may not be _wrong_ to do so.

I suppose this completely depends on which books you have read.

>
>
> The main difference between the 2 systems I've described is that the PERQ
> microcode (or 'p-machine emulator') and the p-code instructions are in
> totally different address spaces, while the PDP-11 emulator code for the
> Pentium and the PDP11 instructions are presumably in the same address
> space. If this is why you can't call the PDP11 emulator code 'microcode'
> then how separate do the address spaces have to be (totally separate, as
> on the PERQ, logically separate (say separated by an MMU), on different
> buses, ..)?

Its not a matter of having a seperate address space!

I've worked with microcoded machines that have the microprogram RAM mapped into the
main memory address space.

Most microcoded machines run several microinstructions for each main memory cycle,
the clear difference being speed, and the degree of abstraction from the actual
hardware.

>From a hardware standpoint, the line is pretty clear.
Received on Thu Sep 20 2001 - 22:50:47 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:34:25 BST