delorie.com/archives/browse.cgi   search  
Mail Archives: opendos/1997/09/23/11:31:47

Date: Tue, 23 Sep 1997 09:29:31 -0600 (MDT)
From: Roger Ivie <IVIE AT cc DOT usu DOT edu>
Subject: Re: ClosedDos???
To: OPENDOS AT delorie DOT com
Message-id: <01INZ6DGLWIABG735I@cc.usu.edu>
MIME-version: 1.0

Arkanoid wrote:
>> Date: Mon, 22 Sep 1997 16:18:48 -0600 (MDT)
>> From: Roger Ivie <IVIE AT cc DOT usu DOT edu>
>> Subject: Re: ClosedDos???
>> To: OPENDOS AT delorie DOT com
>> FWIW, it's been my experience that a VAX can keep pace with an Alpha that
>> is running at twice the clock rate. The fundamental difficulty is that it
>> didn't take long for Alphas to start running more than twice the clock
>> rate of the fastest VAXen; that is the fundamental magic of RISC.

>There are some other things:
>
> The machine is not bare number-crunching device. If you compare TPS numbers
>for those things it is not so bad for VAXen.

True. However, my experience has been that a VAX can keep pace with an
Alpha that is running twice the clock rate on _precisely_ those things 
which the VAX does better than an Alpha: byte manipulation, etc. For
number-crunching, the VAX is much worse.

> VAX programs could be manually optimized: remember that Macro-11 _is_ a
>valid programming language - and it is hard to imagine someone coding big
>projects in Alpha assembler. (back to C vs ASM discussion on this list)

That would be Macro-32 if it's for the VAX.

When I looked at some of my VMS device drivers which I had ported to the
Alpha (written in Macro-32 and run through Digital's Macro-32 to Alpha
compiler), I discovered that in many cases it would be possible for a
hand-coded routine to be entered, do the work, and exit before the 
standard procedure prolog code emitted by the Macro-32 compiler had finished
saving the registers that were going to be used. I started rewriting chunks of
my drivers in Macro-64. Unfortunately, I got bogged down in byte-aligned
accesses (which are _really_ evil on the Alpha) so I gave up.

It has been some time since I have looked at the code generated for the more
recent device drivers I've been doing in C. The Alpha/VMS guys have done a lot
of work to make C an excellent language to use for writing VMS device drivers.
The only drivers I still do in Macro-32 are ones that either execute on the
VAX, are ported from the VAX (i.e., have executed on the VAX), or deal with
portions of the kernel that are not yet C-friendly (such as the terminal
class/port driver interface). 

C doesn't fit everywhere. I doubt I could find a C compiler which works
well enough write a CP/M-80 BIOS, yet I have no qualms about using C for
embedded 68HC11 code (the 68HC11 is much more C-friendly than the 8080).
Were I writing MS-DOS device drivers, I would certainly look at doing them
in C.

Roger Ivie
ivie AT cc DOT usu DOT edu

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019