[comp.arch] PR1ME 32I mode

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (10/15/90)

In article <PCG.90Oct14182345@odin.cs.aber.ac.uk>, pcg@cs.aber.ac.uk (Piercarlo Grandi) writes:
> Incidentally, I think a lot of the sophistication in hw architectures is
> there only because of the pride and whim of the hw designer ... e.g. the
> MV/8000 rings, the Pr1me I32 mode, etc... "The soul of a new machine" I
> think is quite revealing on this (the 'no mode bit' struggle!).

That's odd, the story I heard from someone wearing a PR1ME badge was
that 32I mode existed because a very large potential customer demanded it.
I'm sure that PR1ME's architects were overjoyed to have a chance of getting
the taste of 32V out of their mouths...

Does anyone know the real story about 32I mode?
-- 
Fear most of all to be in error.	-- Kierkegaard, quoting Socrates.

pcg@cs.aber.ac.uk (Piercarlo Grandi) (10/16/90)

On 15 Oct 90 02:10:47 GMT, ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) said:

ok> In article <PCG.90Oct14182345@odin.cs.aber.ac.uk>, pcg@cs.aber.ac.uk
ok> (Piercarlo Grandi) writes:

pcg> Incidentally, I think a lot of the sophistication in hw
pcg> architectures is there only because of the pride and whim of the hw
pcg> designer ... e.g. the MV/8000 rings, the Pr1me I32 mode, etc...
pcg> "The soul of a new machine" I think is quite revealing on this (the
pcg> 'no mode bit' struggle!).

ok> That's odd, the story I heard from someone wearing a PR1ME badge was
ok> that 32I mode existed because a very large potential customer
ok> demanded it.

Maybe. But it was never supported... Or maybe it was just because the
architects were ex-MIT/Honeywell/Multics people, even if the original
founders were actually very much into Fortran on the original Honeywell
minis (another sad story -- Digital was not first there).

ok> I'm sure that PR1ME's architects were overjoyed to have a chance of
ok> getting the taste of 32V out of their mouths...

Oh yeah, but for a long time 32V was *the* thing. I think indeed they
just did it for personal pride reasons or similar. I very much doubt
that even nowadays PRIMOS (any left? :->) and its languages run in 32I
mode as a matter of course.

ok> Does anyone know the real story about 32I mode?

Around 1982-1983 I had some contacts with Pr1me to do a port of 4.xBSD
to their machines, my reasoning being that the only 32 bit mini
supported by it was at the time the VAX, and just as Pr1me were
competing with DEC in the commercial marketplace with some success
(PRIMOS vs. VMS), the same could be expected in the technical
marketplace (about 10% of total VAX sales at the time were for BSD).

I would have used of course 32I mode. I was told that would not work;
they said that PRIMOS did not use it, nobody used it (in practice only
by special option the Fortran compiler), and so it had never been
debugged, and so was not reliable, and they doubted very much one could
make the machine work fully in 32I mode. They were actually very
embarassed by this, because it meant that theirs were not really 32 bit
systems. Naturally all this by now is history and irrelevant in the
merketplace, so I feel free to comment on it now (even if I never
promised that I would be discreet on the issue I have been of course).

For this and other reasons (the usual ones: while their marketing was
overjoyed at the idea of being able to compete with DEC, over which
their hardware had a price/performance advantage, also in the UNIX
market, but their technical people said "PRIMOS already has everything")
the deal never got of the ground. Now Pr1me has had to eat humble pie
(incidentally after Pr1me I offered the same deal to DG for the MV8000
itself, and could not save them either :->).

If they had been less myopic they could have established a significant
presence in the UNIX market.

Note that I had chosen Pr1me as the most likely vehicle for a VAX
alternative not just because little to none of their sales were in the
same market segment as that served by VAXes with BSD, but also because I
loved their very Multics like architecture (I had even offered that I
could make a PRIMOS simulator under BSD Pr1me such that it would execute
PRIMOS binaries just like TWENEX could with TOPS-10 and Multics with
GCOS/TSS ones).
--
Piercarlo "Peter" Grandi           | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

mhjohn@aspen.IAG.HP.COM (Mark H Johnson) (10/18/90)

/ aspen:comp.arch / pcg@cs.aber.ac.uk (Piercarlo Grandi) /  8:20 am  Oct 16, 1990 /
On 15 Oct 90 02:10:47 GMT, ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) said:


>Maybe. But it was never supported... Or maybe it was just because the
>architects were ex-MIT/Honeywell/Multics people, even if the original
>founders were actually very much into Fortran on the original Honeywell
>minis (another sad story -- Digital was not first there).

32I mode was finally supported when Prime got the 50 series onto writable
control store so it could be fixed.  (both the fortran and C compilers 
generate good code, libraries are available.) 

The origional design was done so the box on the RFT that said "general
register architecture" could be checked.  -- They never have a second
box that asks "do you use it".  The 64V code emitted by the early
Prime compilers was so good, or the 32I code so bad, that there was
little or no gain from use of 32I in the early machines.

ok> I'm sure that PR1ME's architects were overjoyed to have a chance of
ok> getting the taste of 32V out of their mouths...

Actually 64V.  As the architect at the time, no, it worked fine.  The
folks in software seldom saw the instruction set (as it should be).
The compiler folks didn't much like either instruction set.

>Oh yeah, but for a long time 32V was *the* thing. I think indeed they
>just did it for personal pride reasons or similar. I very much doubt
>that even nowadays PRIMOS (any left? :->) and its languages run in 32I
>mode as a matter of course.

Reportedly (CSN) they sold another 360 million worth last year.  There
are a few out there still. :))

ok> Does anyone know the real story about 32I mode?

Yes, see above.  For even more fun, you should have seen the compatible 
RISC instruction set we put together...and did not build.

>Around 1982-1983 I had some contacts with Pr1me to do a port of 4.xBSD
>to their machines, my reasoning being that the only 32 bit mini
>supported by it was at the time the VAX, and just as Pr1me were
>competing with DEC in the commercial marketplace with some success
>(PRIMOS vs. VMS), the same could be expected in the technical
>marketplace (about 10% of total VAX sales at the time were for BSD).

>I would have used of course 32I mode. I was told that would not work;
>they said that PRIMOS did not use it, nobody used it (in practice only
>by special option the Fortran compiler), and so it had never been
>debugged, and so was not reliable, and they doubted very much one could
>make the machine work fully in 32I mode. They were actually very
>embarassed by this, because it meant that theirs were not really 32 bit
>systems. 

I may have been the "they".  I remember such a discussion from about then.
We looked again far later at another attempt to port Unix to 50 series.
We proved that it could be done, could use substantially all of the 
architectural features, (even the built-in process exchange after 
appropriate mods, COW, etc.) be done in 32I, and be competative to 
VAX performance.  A prototype worked reasonably well before cancellation.
(the strategic value of a 50 series running Unix in the late 80's 
was the key question.)

>Note that I had chosen Pr1me as the most likely vehicle for a VAX
>alternative not just because little to none of their sales were in the
>same market segment as that served by VAXes with BSD, but also because I
>loved their very Multics like architecture (I had even offered that I
>could make a PRIMOS simulator under BSD Pr1me such that it would execute
>PRIMOS binaries just like TWENEX could with TOPS-10 and Multics with
>GCOS/TSS ones).

The early claim was "Multics in a Matchbox" (from Bill Poduska).  Thanks
for the kind words.

Mark H. Johnson, IAG Hewlett-Packard

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (10/19/90)

In article <1360005@aspen.IAG.HP.COM>, mhjohn@aspen.IAG.HP.COM (Mark H Johnson) writes:
> / aspen:comp.arch / pcg@cs.aber.ac.uk (Piercarlo Grandi) /  8:20 am  Oct 16, 1990 /
> On 15 Oct 90 02:10:47 GMT, ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) said:

> >Maybe. But it was never supported...

Careful with those attributions.  I did *not* write that bit.

> ok> I'm sure that PR1ME's architects were overjoyed to have a chance of
> ok> getting the taste of 32V out of their mouths...

That bit I *did* write, and

> Actually 64V.

I not only should have known better, I *did* know better.  Stupid mistake.

> The compiler folks didn't much like either instruction set.

> Yes, see above.  For even more fun, you should have seen the compatible 
> RISC instruction set we put together...and did not build.

I'm puzzled.  What was the "compatible RISC instruction set" compatible
with?  Not having had the chance to use 32I mode on a P400, I came away
with the impression that 32I mode was pretty regular.  What difference
did the RISC mode make?  More registers?...  Was there anything more to
not building it than looking at cost (of writing new compilers &c)/
benefit and deciding it wasn't worth while?
-- 
Fear most of all to be in error.	-- Kierkegaard, quoting Socrates.

wright@stardent.Stardent.COM (David Wright @stardent) (10/21/90)

In article <PCG.90Oct16152023@teachc.cs.aber.ac.uk>, pcg@cs.aber.ac.uk 
(Piercarlo Grandi) writes:

(>ok> -- Richard O'Keefe)

>ok> (Piercarlo Grandi) writes:

>pcg> Incidentally, I think a lot of the sophistication in hw
>pcg> architectures is there only because of the pride and whim of the hw
>pcg> designer ... e.g. the MV/8000 rings, the Pr1me I32 mode, etc...
>pcg> "The soul of a new machine" I think is quite revealing on this (the
>pcg> 'no mode bit' struggle!).

>ok> That's odd, the story I heard from someone wearing a PR1ME badge was
>ok> that 32I mode existed because a very large potential customer
>ok> demanded it.

Not true.  The idea originally came from Bill Poduska (one of Prime's
founders, now CEO of Stardent).  (This was told to me by one of the
designers on the scene at the time, Mike Sporer.)

>Maybe. But it was never supported... Or maybe it was just because the
>architects were ex-MIT/Honeywell/Multics people, even if the original
>founders were actually very much into Fortran on the original Honeywell
>minis (another sad story -- Digital was not first there).

It is not true that 32I mode was never supported, just that it was not used
until quite late in the game.  By the way, the name of the company is Prime,
not Pr1me or PR1ME, so could we all stop being just ever so cute about it?
Thank you.

>ok> I'm sure that PR1ME's architects were overjoyed to have a chance of
>ok> getting the taste of 32V out of their mouths...

>Oh yeah, but for a long time 32V was *the* thing. I think indeed they
>just did it for personal pride reasons or similar. I very much doubt
>that even nowadays PRIMOS (any left? :->) and its languages run in 32I
>mode as a matter of course.

Well, you are wrong, pal.  F77, in particular, produces its best code in
32I mode.

Mark Johnson (hi, Mark!) has already discussed Prime and Unix and some
of the other history, but nobody has talked much about the instruction
set itself, so I guess I'll do that.

As has been noted, Prime was founded by a bunch of Honeywell
expatriates, and the first machine (Prime 100) was basically a ripoff
architecture of the Honeywell 316.  As Honeywell added more
instructions in its later machines, so did Prime.  In fact, there are
a lot of instruction modes (many quite similar) on Prime.  I no longer
have my architecture manual, since I don't work there any more, but I
am sure of 16S mode (the original), 16R mode, 32R mode, and 64R.  (I'm
pretty sure I'm leaving a couple out, but essentially none of this
code is used any more, though it can still be run.)  These all reflect
the size of the address space and the instructions supported.  Up to
the Prime 300, these were single address spaces of no more than 16
bits (in 64R mode you did get 16 bits).

The P400 was the turning point, and introduced 64V mode.  64V provides
virtual addressing, with 4096 segments of 64KW (16-bit words) each.
It's still a single-accumulator architecture with a couple of index
registers.

Nascent within the P400, but not enabled, was 32I mode.  It had the same
address space model, but provided 8 general registers, and 2 (rather than
1) floating point regs.  32I mode was not debugged at FCS, so the first
machine that had working 32I mode was the P500, or maybe the P450 (this
was all before my time there).  32I mode worked (more or less) in all
subsequent machines.

However, because Prime uses the same (and I mean identical) OS on the
entire product line, you couldn't use 32I mode in Primos as long as
the P400 was still a supported product.  I finally kicked the "kill
the P400" program into gear in 1984 and there is now 32I mode code in
Primos (as of Rev 22).  I know it's there, because I put it there.
(There's more in Rev. 22.1.)  There are still a few areas in Primos in
which you can't use 32I mode, but that's just a software flaw I didn't
have time to fix.  The biggest problem is that the system programming 
language compilers don't generate 32I code, or at least they didn't 18
months ago when I left Prime.

>I would have used of course 32I mode. I was told that would not work;
>they said that PRIMOS did not use it, nobody used it (in practice only
>by special option the Fortran compiler), and so it had never been
>debugged, and so was not reliable, and they doubted very much one could
>make the machine work fully in 32I mode. They were actually very
>embarassed by this, because it meant that theirs were not really 32 bit
>systems.

Oh, they were 32-bit systems, unless you insist on defining 32-bit
systems as "must have general register architectures", which isn't a
definition I would care to defend.  The embarassment was because the
mode didn't completely work.  Although I think the only known bugs
were some weirdies like unaligned floating loads that crossed page
boundaries and page-faulted on the latter part of the operand didn't
restart correctly (on the P750/850, that is).  The integer instructions
worked fine.

>If they had been less myopic they could have established a significant
>presence in the UNIX market.

Unclear.  The 50 Series is not a good Unix (or C) engine because the 
address space isn't really flat and pointer arithmetic doesn't work 
the way you'd expect.  (Primos is still a better OS than Unix in a
number of ways, though.  I enjoyed working on it.)

  -- David Wright, Former Primos Wizard, and
	not officially representing Stardent Computer Inc
     wright@stardent.com  or  uunet!stardent!wright

I'd explain it to you, but your head would explode.  -- Steven Wright

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (10/22/90)

In article <1990Oct20.221803.5973@Stardent.COM>, wright@stardent.Stardent.COM (David Wright @stardent) writes:
> >ok> I'm sure that PR1ME's architects were overjoyed to have a chance of
> By the way, the name of the company is Prime,
> not Pr1me or PR1ME, so could we all stop being just ever so cute about it?

Speaking as usual only for myself, when I wrote "Pr1me" and the like I
was *not* being "ever so cute"; I was writing it the way Prime themselves
wrote it.  My experience of those machines is confined to P400, PR1MOS
(their spelling) Rev 11 to Rev 19.  We had Fortran, assembler, and a
crummy BASIC interpreter.  We also had the world's worst terminals
(a stuttering RETURN key made editing incredibly painful) but that wasn't
Prime's fault.  (And yes, they spelled it PR1MOS, not Primos.)

-- 
Fear most of all to be in error.	-- Kierkegaard, quoting Socrates.

rogerk@mips.COM (Roger B.A. Klorese) (10/23/90)

In article <4027@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
>Speaking as usual only for myself, when I wrote "Pr1me" and the like I
>was *not* being "ever so cute"; I was writing it the way Prime themselves
>wrote it.

Prime Computer, Inc. has *never* written "Pr1me" in text.  That is a logo;
you don't think that workstation company is called "sunsunsunsun" because
of *their* logo, do you?

>My experience of those machines is confined to P400, PR1MOS
>(their spelling) Rev 11 to Rev 19.

PRIMOS has *never* been spelled "Pr1mos" by prime, nowhere, in no context, 
nohow.
-- 
ROGER B.A. KLORESE                                  MIPS Computer Systems, Inc.
MS 6-05    930 DeGuigne Dr.   Sunnyvale, CA  94086              +1 408 524-7421
rogerk@mips.COM         {ames,decwrl,pyramid}!mips!rogerk         "I'm the NLA"
"Lead me not into temptation; I can find the way myself."      --Rita Mae Brown

dre@ember.Sun.COM (10/23/90)

Wow, a blast from the past...

32I mode was first implemented on the P500.  The P450 was a P400 with revamped
microcode that implemented 32I mode and the P500 Cobol instructions.

			Dave Emberson (Prime CPU Group, '77-'80)

meissner@osf.org (Michael Meissner) (11/01/90)

In article <PCG.90Oct16152023@teachc.cs.aber.ac.uk> pcg@cs.aber.ac.uk
(Piercarlo Grandi) writes:

| For this and other reasons (the usual ones: while their marketing was
| overjoyed at the idea of being able to compete with DEC, over which
| their hardware had a price/performance advantage, also in the UNIX
| market, but their technical people said "PRIMOS already has everything")
| the deal never got of the ground. Now Pr1me has had to eat humble pie
| (incidentally after Pr1me I offered the same deal to DG for the MV8000
| itself, and could not save them either :->).
| 
| If they had been less myopic they could have established a significant
| presence in the UNIX market.

After providing the C compiler for the two DG UNIX'es on the MV (MV/UX
which ran as AOS/VS programs with a UNIX system call emulator, and
DG/UX which ran on the native hardware) plus the normal AOS/VS
compiler, I strongly doubt that either PR*ME or DG could have
established a significant presence in the UNIX market.  This is
because neither of the machines fit into the PDP-11/VAX mode of byte
oriented machines.  Too many C programmers seem to not have the
discipline to properly pass correctly typed arguments (or sometimes
even understand why different flavors of pointer might have different
representations).

It's interesting that when I started on the C compiler (~81 or 82),
the person who had done the functional and product specs, had
estimated that DG would sell only a handful of licenses, and a few
machines.  The entire UNIX market segment was estimated to be a few
Universities, AT&T, and the Bell operating companies.  The last time I
checked (~87 or ~88), C had become the 3rd most popular DG MV/Eclipse
32-bit language (after Cobol and Fortran respectively).
--
Michael Meissner	email: meissner@osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142

Do apple growers tell their kids money doesn't grow on bushes?

pcg@cs.aber.ac.uk (Piercarlo Grandi) (11/02/90)

On 31 Oct 90 16:02:21 GMT, meissner@osf.org (Michael Meissner) said:

meissner> It's interesting that when I started on the C compiler (~81 or
meissner> 82), the person who had done the functional and product specs,
meissner> had estimated that DG would sell only a handful of licenses,
meissner> and a few machines.  The entire UNIX market segment was
meissner> estimated to be a few Universities, AT&T, and the Bell
meissner> operating companies.

The b****y suckers. Didn't they know that despite DEC's active
opposition 10% of VAX sales were at that time for BSD (which was not
even a product), and BSD was ARPA sponsored and thus virtually a must
for the entire research sector, not just Universities? Didn't they know
that AT&T and the BOCs were the single largest DEC customer, and Unix
was their chance to get a foot in the door there?  Ever heard of ARPA,
TENEX and the DEC-20?

Bah. Bah. Incidentally: currently the ARPA sponsored OS is Mach...
--
Piercarlo "Peter" Grandi           | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk

meissner@osf.org (Michael Meissner) (11/05/90)

In article <PCG.90Nov2154314@odin.cs.aber.ac.uk> pcg@cs.aber.ac.uk
(Piercarlo Grandi) writes:

| On 31 Oct 90 16:02:21 GMT, meissner@osf.org (Michael Meissner) said:
| 
| meissner> It's interesting that when I started on the C compiler (~81 or
| meissner> 82), the person who had done the functional and product specs,
| meissner> had estimated that DG would sell only a handful of licenses,
| meissner> and a few machines.  The entire UNIX market segment was
| meissner> estimated to be a few Universities, AT&T, and the Bell
| meissner> operating companies.
| 
| The b****y suckers. Didn't they know that despite DEC's active
| opposition 10% of VAX sales were at that time for BSD (which was not
| even a product), and BSD was ARPA sponsored and thus virtually a must
| for the entire research sector, not just Universities? Didn't they know
| that AT&T and the BOCs were the single largest DEC customer, and Unix
| was their chance to get a foot in the door there?  Ever heard of ARPA,
| TENEX and the DEC-20?

UNIX sales on VAXen didn't hit their stride until about 1982 or 1983.
When the person who had preceded me had done the research, the UNIX
market was small, and almost all PDP-11 based.  Everybody has 20/20
hindsight.  :-)
--
Michael Meissner	email: meissner@osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142

Do apple growers tell their kids money doesn't grow on bushes?

mcdonald@aries.scs.uiuc.edu (Doug McDonald) (11/06/90)

In article <MEISSNER.90Nov5104012@osf.osf.org> meissner@osf.org (Michael Meissner) writes:
>
>UNIX sales on VAXen didn't hit their stride until about 1982 or 1983.
>When the person who had preceded me had done the research, the UNIX
>market was small, and almost all PDP-11 based.  


>Everybody has 20/20
>hindsight.  :-)
>--

Yep. But some people have working crystal balls. They are called "rich"
and "successful". I wish I had one.

Doug McDonald

pcg@cs.aber.ac.uk (Piercarlo Grandi) (11/07/90)

On 5 Nov 90 17:15:47 GMT, mcdonald@aries.scs.uiuc.edu (Doug McDonald) said:

mcdonald> In article <MEISSNER.90Nov5104012@osf.osf.org> meissner@osf.org (Michael Meissner) writes:

meissner> UNIX sales on VAXen didn't hit their stride until about 1982
meissner> or 1983.  When the person who had preceded me had done the
meissner> research, the UNIX market was small, and almost all PDP-11
meissner> based.

meissner> Everybody has 20/20 hindsight.  :-)

In my case my proposal to Pr1me and then DG for porting BSD was done in
1982.  And the above arguments held. It was a very good bet. When I
learned that Mach was DARPA supported a few years ago I also knew that
was a good bet.

mcdonald> Yep. But some people have working crystal balls. They are
mcdonald> called "rich" and "successful". I wish I had one.

Only if they find other like minded people to do business with...  Who
would have bet on Patterson and Hennessy on speed when all they could
show was a 1 RISC MIPS CPU when others had a 0.5 VAX MIPS one? They
could show impressive cost reductions, thanks to advnaced compiler
technology, and that was it.
--
Piercarlo "Peter" Grandi           | ARPA: pcg%uk.ac.aber.cs@nsfnet-relay.ac.uk
Dept of CS, UCW Aberystwyth        | UUCP: ...!mcsun!ukc!aber-cs!pcg
Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk