Lisp, the machine language. Was Re: Hallelujah!

From: Buck Savage <hhacker_at_home.com>
Date: Sun Apr 4 05:22:58 1999

>"Buck Savage" <hhacker_at_home.com> wrote:
>> Actually, microcode is not compiled.
>
>All the microcode I've ever written was compiled. Of course, it was
>compiled from special source languages defined for that explicit purpose.
>No one with any sense would write a non-trivial amount of microcode any
>other way.
>
>> The i860 is a single chip implementation of the Cray-1,
>
>No, it isn't. Don't believe all the marketing hype you read; those guys
are
>paid to lie their asses off. The architecture isn't even *close* to that
of
>the Cray-1. In particular, the i860 is not a vector processor. It is a
>primitive superscalar processor, with a lot of the pipeline exposed to the
>programmer. It is tough to write a good compiler for it.
>
>> and provides just about the same throughput as the Cray-1.
>
>Almost, for some things. But not for heavily vectorizable problems.

For the HP 21MX, microcode looks like assembly language, so any tool
used for translation purposes is, by definition, not a compiler. It may be
that compilable languages are defined for the purpose of providing for
microcode but, that would mean that the sequence of microinstructions
is generally not predictable from the source code of the program thus
translated. Maximisation of processor throughput, and minimization of
microinstruction count, is at least half the purpose of microprogramming.
For such optimisation to be effected, on must necessarily write directly
in microcode, either bit and byte streams, or coded as in assembly
languages. In any case, the use of a language translator always
results in a reduction of process throughput.

Recall that microcode involves the establishment of timing signals
at critical control points within electronic circuits and, the selection of
data paths within those circuits. Given this fact, there seems little
reason to leave the efficiency of microcode up to the accuracy of
a language translator, which we all know to be generally less
accurate that the results obtained by a skilled human programmer.

I would be grateful to learn from you of the tools you used in the
preparation of microcode. All of the work I did was in graduate
school in the early 90's, and to date I have not seen a single
job made available to a microprogrammer type. I would really love
to have an opportunity to perform this kind of work as a job function.

As for the i860, sure, it is not actually the equal of a Cray-1 but, the
architecture is equal to that of the processor section of the Cray-1.
The chief difference in capacity lies in the memory architecture and
other support hardware, all of which is external to the processor.
The literature with which I am familiar regarding the Cray-1 states
that it can perform two multiplies, involving four different operand, at
a single machine clock cycle, and this is exactly the capability of the
i860. Further, I should like to know in what ways you deem the Cray-1
to differ from the i860, particularly with regard to the processor section.

Have you actually used the i860?
Received on Sun Apr 04 1999 - 05:22:58 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:31:39 BST