Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Apr 2001 03:14:04 -0500
From:      Mike Meyer <mwm@mired.org>
To:        "Charles Burns" <burnscharlesn@hotmail.com>
Cc:        mwm@mired.org, questions@freebsd.org
Subject:   Re: the AMD factor in FreeBSD
Message-ID:  <15071.61388.695526.323227@guru.mired.org>
In-Reply-To: <F180HB3pHoWD47yicBo00003902@hotmail.com>
References:  <F180HB3pHoWD47yicBo00003902@hotmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Charles Burns <burnscharlesn@hotmail.com> types:
> >RISC is pretty much vertical microcode. WISC - which didn't make quite
> >the same splash - is pretty much horizontal microcode. People wanting
> >to build fast CISC computers have done so by microcoding them for a
> >long time, usually using vertical microcode. The 370 line was that
> >way, as well the high end of the PDP-11 line was that way.
> 
> Uhh. <confused>
> My impression was that RISC=Reduced Instruction Set (chip/computer) meant 
> make the chip simpler (but harder to program at the asm level) and execute 
> more, simpler instructions.
> 
> CISC=have complex instructions and lots of them thus having a higher IPC but 
> many theoretically unneeded transistors.
> 
> Microcode=Simple software internal to chips or imbedded into battery-backed 
> ROM or FlashROM used to do things like fix simple processor bugs that 
> software can fix.

I'm using the term microcode in a different manner. Macrocode is the
"native" machine code that is generated by compilers. If a CPU is
microcoded, then macrocode isn't run by the hardware directly, but is
interpreted by microcode programs sometimes called
"microprograms". That program is the microcode for the machine, and is
written in microcode, which overloads the term. You can tweak the
microprogram to do things like fix simple processor bugs.

In at least one instance (the Nanodata QM/1), the microcode was itself
interpreted by another layer, which Nanodata called "nanocode".

> What is vertical and horizontal microcoding? If I am wrong I certainly want 
> to know--and I am curious as to what you are talking about as I have never 
> even heard these terms before.

Vertical microcode looks like RISC machine instructions: move, add,
load and store, etc. Horizontal microcode assigns a bit field to every
gate in the machine, and each instruction sets the fields to control
the data flow in the machine.

> >Cray didn't have to implement a CISC instruction set, so the Cray I
> >instruction set is very RISC-like, with the exception of the
> >instructions for dealing with the array processor hanging off the
> >back.
> Was RISC vs CISC (terms which didn't even exist in the 70's then the Cray1 
> was being built) even an issue then?

It wasn't a conscious issue. There were machines with complex
instructions sets. The Cray's instruction set - except for the vector
processing instructions - wasn't.

> Vector processors have such different 
> priorities than the processors that every other computer uses.
> What do you mean by "hanging off the back"? You should be a speaker at 
> Defcon--They love to absorb esoteric and almost unknown computer knowledge. 
> (scratches head) Umm. Where can I get more info about this?

My references are all in storage. You might try doing web searches for
Nanodata, RISC, and writable control store. Sorry I can't provide
better pointers.

I'm not sure I know Defcon, but if it's got anything to do with the
defense industry, they would be major consumers of this technology.

> >The truly cool machines had a writable control store.
> Huh?

Microcode lived in the "control store". Some machines had control
stores that could be written by the user, allowing you to alter the
instruction sets of the machines after they left the factory. I still
think that's really cool.

> >The PDP-11 kit
> >sold by Heathkit included that as an option. BBN had the ultimate Unix
> >version, though - they included a C compiler and WCS linker so you
> >could write new instructions in C, so your function calls turned into
> >single instructions.
> What does all this have to do with the price of tea in China? It's all very 
> interesting, but it seems like a collection of random unrelated computer 
> tidbits. I may just not see the point as this is mostly new to me other than 
> the PDP11 (which is still used today) and the Cray, sortof.

Mostly, it's just public reminiscing triggered by seeing RISC and
microcode in the same message.

> >My favorite microcode oddity is the IBM PC card IBM sold that used a
> >68K chip with custom microcode to interpret 370 machine instructions
> >so you could run MVS software on your x86 PC.
>
> Are you one of those original hardware hackers that made new opcodes by 
> rewiring large circuitboards on $10Million IBM mainframes or...??

Nah, I'm not a hardware hacker. I've added instructions to machines by
writing vertical microcode, and I've implemented machines in
horizontal nanocode. In the latter case, we designed extensions to C
for the application at hand - building jet aircraft simulators - then
designed a micromachine using vertical microcode that would be easy to
generate using that extended C, then I got to implement that
micromachine.

> I can't decide whether to be humbled or perplexed or both. Um. Ya.

Certainly not humbled. Perplexed, I can understand.

	<mike
--
Mike Meyer <mwm@mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15071.61388.695526.323227>