Jonathan Engdahl wrote:
<snip>
Pentium
CPU's can't be microprogrammed, unless your Intel. Even microcode
updates cannot replace the basic instruction set.
That's not what I'm saying. The Pentium is probably not microprogrammed
anyhow, at least for the majority of instructions. They probably have a
microcoded front end for the messy stuff, like context switching.
I'm adding one more level of abstraction -- microcoding on the microcoded
machine, so to speak. Like the Mini PLC-2.
An assembly-level program running on a Pentium, technically speaking, is not
microcode.
If you write a
program in Pentium assembly code to run PDP-11
instructions, you
have just written an 'emulator', even if it does not run under windows.
Yes, a microcoded machine is one kind of emulator. Every microcoded
architecture is an emulation. The underlying micromachine bears little
resemblance to the machine that the user sees. It's a nice distinction, and
not razor sharp. I would say that an "emulator" runs under an OS on a
machine that is still running windows, NT, Linux, or whatever. A microcoded
machine runs barefooted on the hardware, over which it has exclusive
control. Whether that hardware itself is microcoded makes no difference.
An emulator does not require an operating system. An emulator is simply a
program that emulates another machine, however its implemented.
But an writing
such an emulator is not 'microprogramming'.
It is so. I don't know of any rule that says that the micromachine has to
have a particular type of architecture, or that it can't be an off-the-shelf
machine, rather than a collection of AMD 29xx parts.
By definition, a microprogram runs directly at the hardware level. A Pentium is
a microprogramed processor, so an assembly level program running on a
microprogrammed machine cannot really be called a microprogram.
You can argue that hardware is software, or that
software is hardware. It's
all logic. The distinction is pretty academic.
Exactly these are terms with fairly well defined meanings!
What I am saying is that it would be possible to
re-create almost any
classic architecture using much the same techniques used back in the 70's to
create the original machines. Instead of designing a custom micromachine,
you just go down to the corner store, buy a Pentium IV machine, erase the
hard drive, and throw away the disks. Now, on another machine, sit down and
write the "microcode" in x86 assembly language, load it on a floppy, and
boot the Pentium IV, which now becomes a PDP-11, 1130, CDC, or whatever. If
you copy a disk image of the target OS to the IDE hard drive, it will boot
and run just like the original machine.
I understand the concept, its called emulation. My only issue here is the
terminology, not the merit of the concept.