Re: Beep Code on 433au workstation

From: Jaap Weel (MYLASTNAME_at_caltech.edu)
Date: 05/05/03


Date: Sun, 04 May 2003 16:54:58 -0700


> I think you can try to run your program on linux using compatibility libs.
> It may work, at least Netscape does.
> You can find the step-by-step procedure on www.alphalinux.org
> I hope it works but never tried... :)

I sure hope that will be all that's necessary. The program is a huge
system written almost entirely in DEC Alpha assembly. Basically what
they had was an operating system (Genera) written in Lisp that was very
closely tied to their Symbolics machines and processors. The Symbolics
processor had a microde-layer to extend its instruction set so as to
optimally accomodate running Lisp.

Basically they made a processor that had all the right instructions to
do consing, garbage collection and all that. When the company ran short
of cash, they wanted to port their system to commodity hardware.
However, one of the specific features they'd always been relying on was
a tagged memory architecture, in which it was encoded on a low-level
(a.o.) what the type of a certain word of data was (think of it as
having flag-bits to every byte of memory that say whether you're storing
a float or an int there). To do that, they had always used wide words
(36 bits originally, and I think the last models went up to 56-bits), so
that there would be bits left over in the word for all these tags and
all. (I'm grossly oversimplifying this, there is more to it than just
flags that tell the type, but it's kinda like that).

The two factors that made it possible to port Genera to alpha seem to
have been (a) the 64-bit registers, which -- with some redundancy --
could emulate the Symbolics ones, and (b) the fact that, if you loaded
all of the emulator into on-chip cache, it would basically behave like
microcode and be almost as fast as what you would get with a processor
that truly had all these extravagant instructions built in.
More info is in http://pt.withington.org/publications/VLM.html

At any rate, this may give an idea of why Genera is not Netscape. The
alpha is a little like the Symbolics processor in that different OS's on
the alpha use different "firmware", which is basically the equivalent of
microcode (grossly oversimplifying again, I guess). This makes it very
likely to me that, when programming goes on on such a basic,
assembly-language level, it may well be very OS-dependent as well as
CPU-dependent.

To write a similar emulator for a different processor, or even for a
different OS, would probably require a very in-depth knowledge of the
instruction sets and capabilities of that processor, and in the case of
Alpha/Linux, of the difference between the Alpha/Linux firmware and the
OSF/1 firmware.



Relevant Pages

  • Re: 64 bit configuration
    ... The X86-64 kind architectures(AMD 64 and Intel 64) have two different modes ... a native mode and an extended mode. ... instruction set, and is completely different from the ... without the need for a 32-bit "emulator" like the IA64 and Alpha ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: A whopping 50 percent... ???
    ... who cares about the instruction set when everybody uses HL languages. ... I'd like to know more about why early versions of Alpha had such terrible byte ... most used portions portions where programs spent the most ... could have just simply copied their executables, shareable images etc and ...
    (comp.os.vms)
  • Re: What is the performance of iVMS ?
    ... for alpha to emulate AS400 instruction set with just a new set of pal code. ... Andersen consultants. ... AS400 may have been the "VAX killer", but Alpha could have been the AS400 ...
    (comp.os.vms)
  • Re: Alpha AXP is dead
    ... I always liked the IBM Power architecture. ... instruction set, but is designed for a more general market than, say, Alpha. ... As a machine to play with, to write assembly code on, and otherwise use ...
    (comp.sys.dec)