Tax-Free Scientific Desktop Computer
David G. Hough on validgh
dgh
Sun Apr 4 21:40:08 PDT 1993
A B S T R A C T
Are independent scientific, engineering, and technical end users of desktop
workstations and PC's well served by conventional market forces? An
unconventional architecture process and uncommon market mechanisms might work
better.
Please don't distribute this document widely until it has been improved
by further review.
Context
I recently attended SunSoft's Solaris Developers Conference. I was
struck by several points:
* Several speakers affirmed that Sun has outgrown its original
scientific/technical user base and now aims, more or less, to displace
IBM as the preferred vendor to Fortune 1000 CIO's and MIS directors world
wide.
* Sun's own CIO Bill Raduchel made a point of emphasizing how Sun had
reduced system administration costs over its internal networks by
reducing end users' freedom to configure their own systems.
* Solaris 2.1 for (some) x86 platforms will be available in May, "bug for
bug compatible" with Solaris 2.1 for SPARC, released a few months ago.
Except for the fine print.
* Motorola and SunSoft will cooperate in porting Solaris 2 to some unnamed
PowerPC-based system. (Operating systems are ported to specific systems,
not to chips or instruction set architectures, such as PowerPC.)
As a floating-point specialist I was well aware that the fine print
accompanying Solaris 2.1 for x86 mentions that at the floating-point level
there are some differences. The SPARC SVR4 ABI defines long double as 128-
bit IEEE quadruple precision with 113 significant bits, in hopes of a future
hardware implementation, while the x86 SVR4 ABI defines long double as 80-bit
IEEE double extended precision with 64 significant bits, to correspond with
what's actually available in x87 and x86DX chips. I suppose that PowerPC
might define long double to be MC68040 96-bit extended precision, if Apple has
its way, or to be 128-bit non-IEEE quadruple precision with 106 significant
bits, if IBM RS/6000 Fortran is followed, or perhaps might finesse the issue
by defining long double == double, as many PC compiler vendors do, even as
many of them generate code that allocates float and double variables to
extended-precision registers, without necessarily rounding to storage
precision where indicated in source-language assignments.
The resolution of the foregoing will undoubtedly be along the lines of
"if your program depends on any of the above, it's not a good portable
program" which may be true, but bodes ill for any kind of progress beyond the
least common denominator.
Alternatives
In light of the general trend of that conference I began to wonder what
the original Sun independent scientific/technical end-user customers were
doing. By "independent" I mean end users who do computationally-intensive
work on their "own" workstation or PC, at work or at home, which they may or
may not actually own, who mostly run their own show - deciding which hardware
and software to buy or build or write - often administering their own systems.
(I call them John Gage customers after Sun's first salesman.)
I suppose most of them are considering alternatives like these:
* Going with the SunSoft program - upgrading to Solaris 2, dealing with
compiler licensing, rewriting shell scripts and Makefiles as necessary,
recompiling their applications, finding alternatives for any third-party
software they used to use but isn't available - taking the computational
performance they can get.
* Going for a familiar operating system - like SunOS 4.1.3 - with a lot of
expensive third-party software available - but compute-bound hardware
performance that's less than league-leading.
* Going for computational performance - enduring HP-UX, AIX, IRIX, or
whatever runs on ALPHA.
* Going for price-performance - buying clone PC hardware like 66 MHz 486DX2
32-bit-bus systems, enduring their own system integration and various
unfamiliar or unpleasant operating systems in order to get the benefits
of a wide variety of hardware and software sold with epsilonic profit
margins. Sometimes epsilonic design margins, too.
* Going for user interface - deciding that Quadra Macs have adequate
performance to justify the premium price for hardware and software,
compared to PC's.
Obviously, "all of the above" are going on to some extent. I wonder what
would be ideal.
Ideal Attributes of a Scientific/Engineering Desktop System
I propose the following attributes of an ideal desktop system for
scientific, engineering, and other compute-bound users. I don't claim that
they are free of conflict:
Scalable Performance
This implies a RISC Instruction Set Architecture (ISA - not to be
confused with the ISA PC bus) with support for one to four or so
processors in one desktop system.
No Taxes
There should be no "intellectual property" fees payable to anybody to
reproduce the minimal system: all hardware and software interfaces
(instruction set, CPU, motherboard, I/O, operating system, calling
sequences, window system, etc.) should be re-implementable in a clean
room environment from a published spec without incurring any financial
obligation to the interface inventors. Ideally, one adequate usable
implementation of each such interface would be available for the cost of
reproduction. That insures that anybody, anywhere in the world, is
free to re-implement any interface, test it against a public
implementation, and give away or resell his implementation as he sees
fit. Making the minimum system as cheap as possible, consistent with
scalable performance, maximizes its chances of being adopted widely in
universities and developing countries, with consequent benefits of volume
and user training.
Leverage Knowledge
Many existing scientific users know how to run SunOS 4.1.3, or more
generally BSD-derived Unix. So the ideal underlying operating system
should look as much like these as possible, downward to the hardware and
device driver writer, and upward to the scientific programmer, system
administrator, and application user - usually one and the same in the
environment I have in mind. Since SunOS is not available for this
purpose, I would expect that BSD 4.4, if totally free of licensing
restrictions, would be the closest match.
Leverage Cheap Software
Ideally, much existing cheap (by Unix workstation standards) MS-DOS,
Windows 3.1, and (to a lesser extent) Macintosh application software
should be able to run unchanged with high efficiency. So some attention
should be devoted to system design features that promote this. It's
important to understand the difference between scientific and commercial
users in this respect - whereas commercial end users typically run
software written by somebody else, scientists typically own or have
access to the source code of their most important applications, so they
can readily recompile for a new platform. But to better leverage their
time, even scientists would benefit by being able to run common "PC"
applications that they've already learned and paid for.
Leverage Cheap Hardware
Ideally, much existing cheap (by Unix workstation standards) peripheral
hardware for x86-based PC's should be able to be used.
Components of a Scientific Desktop System
Starting with the foregoing desiderata, the steps to defining the system
are something like these:
Instruction Set Architecture
Ideally one would adapt an existing RISC architecture if a tax-free one
could be found. IEEE 1754 defines a presumably free architecture based
on SPARC V8, but there might be other choices that could be freed. There
are some things one might want to change in any existing architecture -
getting rid of features that made sense ten years ago but are problematic
now except for backward compatibility: these may include single condition
codes, single multiplier extension registers, single floating-point
mode/status registers, register windows, etc. I doubt scientific users
care much about backward compatibility of RISC architectures since they
often can recompile, but backward compatibility with PC's is potentially
more significant. For instance, little endian/big endian addressing,
efficiency of 8/16/32/64 bit addressing, whether to provide higher than
double precision via x86 extended, IEEE quad, doubled-IEEE-double, or not
at all, and floating-point and other exception handling, are interesting
issues. Arguing against innovation is volume: if an existing
architecture can be used, its volume may lead to better performance than
an inherently simpler but low-volume design. An innovative design that
produced implementations attractive to the embedded systems market might
obtain all the volume it needs, however.
Initial CPU Design
If a new ISA were defined, it would ideally be implementable in a
familiar process, perhaps as a university project. There is more to a
CPU chip than a user-mode instruction set - cache, memory mapping,
multiprocessor support, supervisor mode instructions, etc., all have to
be considered.
Minimum System Specification - Mother Board Design
There is more to the basic system than a CPU chip - things to be
considered include internal memory bus, external I/O bus and support for
devices like mouse, keyboard, networking, varieties of supported frame
buffers, audio, video, etc. Existing cheap solutions should be used
where possible without incurring taxes or impacting future performance
scalability - the optimal solution is some tradeoff between existing
workstation designs and PC's. What will the preferred software
distribution scheme be? Whether CDROM, floppy, or tape, it should be
supported in the minimal system design.
Operating System
The tax-free operating system needs to be selected and ported - another
academic project? There's a mountain of work that might be incorporated
into an underlying operating system, including all the FSF Unix commands,
X, Ghostscript, etc. GCC and F2C provide adequate C, C++, and Fortran
implementations for the time being. SunPro is developing a freed
/usr/lib/libm.a implementation.
Leveraging PC software
Dynamically-linked software, which includes many Windows and Macintosh
applications, is not too tough, technically speaking, to work-alike in
alien operating systems, depending on where most of the time is going.
SunSoft has announced a WABI future feature for running Windows
applications. It emulates Windows system library calls efficiently with
native code but requires emulation of the application's actual object
code (although that can be attacked by dynamic recompilation into native
code... if you can solve or ignore the extended precision problem).
There are similar proprietary solutions for running Macintosh
applications on Solaris. A different approach is an emulator - SoftPC is
one, and there are Macintosh emulators of similar intent. Producing
freed emulators and WABIs might be an interested academic project
although there could be legal problems if intellectual property laws are
held to apply to clean-room re-implementations of published interfaces.
Support the League for Programming Freedom's efforts to do something
about that!
Is this a good idea - if so, what's next?
There is a new mailing list: scientific-interestavalidgh.com for
discussion of these ideas. If you are interested, send your comments there.
I will change the name to a better one as soon as I hear or think of a better
suggestion (is taxfreeavalidgh.com better?). It's starting off unmoderated,
and I hope to keep it that way.
To get on/off the list, send mail to scientific-interest-
requestavalidgh.com.
Please bring this mailing list to the attention of specific suitable
persons, without broadcasting to any wide-interest mailing lists and
newsgroups beyond numeric-interest. A suitable person is one who has the
interest, experience, and ability to contribute to one of more of the
component definitions outlined above. This particularly includes end users,
although implementors are not excluded since unimplementable definitions
aren't worth much.
If enough local (Bay Area) people are interested, I will organize a
meeting to discuss further action.
If the results of that meeting are positive, it might lead to a series of
meetings, like standardization meetings but without the bureaucracy, devoted
to each aspect of the problem (ISA, chip, system, OS, emulation/WABI). I
would hope interested parties world-wide would be able to contribute via e-
mail, but I do hope that in-person meetings would be restricted to the Bay
Area. In my opinion that works far better than typical peripatetic standards
activities.
I don't have any expertise in most aspects of system design aside from
recognizing that there are many hard problems and tradeoffs, so I would not be
the technical leader of any of these activities. Persons interested in
working in each area would, I hope, select from among themselves an
organizational chair and a technical leader who would be responsible for the
integrity of that part of the specification. My best contribution to the work
of smarter people has often been to write it down for them, and so I might act
as recording secretary for part of this effort.
Default Disclaimer
The following disclaimer applies to all e-mail submitted to scientific-
interestavalidgh.com, and to any statements at any public meetings that may
follow:
* This is my personal opinion of what would be best for independent
scientific, engineering, and technical end-users. No inference should
be drawn that my opinions reflect those of any other person or
organization, particularly employers, employees, clients, friends,
family, or neighbors.
Since the foregoing disclaimer is on by default, it need not be repeated
again. If needed, I will set up another alias to /dev/null for other kinds
of statements that people feel compelled to submit.
Acknowledgements
Many colleagues, senior managers, and marketing scientists, at Sun and
elsewhere, contributed to the foregoing ideas, often unintentionally.
===============================================================================
Commercial Mass Market Platform Speculation
Before it occurred to me to try to define a scientific platform by an
ad-hoc end-user-driven process akin to USENET, I tried to figure out what it
would take to create a new commercial mass market computing platform
independent of x86 and Microsoft. The following was the result, perhaps
doomed to failure by requiring (among other things) too much boldness in
publicly held companies.
What does it take to establish a new mass market platform? How could one
drive such a thing to be more attractive than Windows 3.1 on x86 and more
attractive than Macintosh on IBM RISC?
The really strategic thing to do is to discover a new market with a whole
order of magnitude more mass than the existing one. Define a system so
useful that everybody with a regular full time job will be furnished one by
their employer, and all professionals will have an additional one at home.
This is so strategic that everybody is working on it, well aware that the odds
favor failure from being too early or too late, or having not enough hardware
to perform or too much hardware to compete on price. Or maybe the market will
be so large that it will be many specialized markets with little hardware or
software commonality.
A less innovative approach is to think about what it takes to compete
effectively against Windows 3.1 on commodity x86 platforms. It seems to me
that what is required is a price advantage, a technology advantage, an ISV
advantage, and at least 90% compatibility with existing end user habits.
The price advantage is to get rid of taxes - license fees to hardware and
software vendors. The technology advantage is to use RISC over CISC. The
ISV advantage is an open system - no secret private interfaces - and a
distribution channel. The 90% compatibility advantage is to provide familiar
interfaces for familiar software.
Sun, IBM, and DEC, among others, have most of the pieces in place, but I
doubt any will deliver, because a new mass market platform can only be
introduced by a large integrated systems company, with high performance
hardware chip and system design, implementation, and manufacturing expertise,
and complex software system implementation expertise, and adequate financial
resources to survive the early lean years and fund the inevitable legal
battles. And IBM and DEC and Sun, among others, seem to be fragmenting into
subsidiaries which guarantee that the necessary coordination is unlikely.
Creating a new mass market platform is very risky stuff - give up all
proprietary advantages and then implement the defined interface better than
other people.
DEC is closest in many respects, but would they be foolhardy enough to
bet the company on winning this one, or instead would they be foolhardy enough
to let the company evaporate slowly? Their fundamental potential advantage is
that they were pretty ruthless about freeing ALPHA from costly backward
compatibility constraints, so ALPHA should have the best performance
prospects, other things being equal - but so far they aren't.
ISA Define the instruction set architecture to maximize scalable native RISC
performance and (within that constraint) maximize x86 emulation. (DEC
actually did this, in some respects, except they didn't define an
extended precision data type like x86's, so their x86 emulation may have
problems deciding between correctness and performance.) Put the ISA into
the public domain (no taxes to implement ISA).
CPU CHIP
Define an inexpensive high-performance implementation of the ISA. After
it's working, put the masks and all the design and verification data and
tools into the public domain (no taxes to become a second source).
HARDWARE SYSTEM
Define the "minimum platform": the minimum hardware needed to solve the
problems of 90% of the current installed base of PC users, now and in the
next few years. The minimum platform is the hardware that all software
may count on being there, and includes floating-point hardware in the CPU
chip, color monitor, frame buffer, minimum RAM and disk for adequate
performance, keyboard design, mouse, network connections, serial/parallel
ports, microphone/speaker, etc. This is the hardest part, since all
these parts cost something, even in mass market volume. Then design and
implement that minimum platform, and put all the circuit boards, ASIC
logic, test tools, etc. in the public domain. (no taxes to duplicate the
minimum system).
SOFTWARE SYSTEM
Define the underlying operating system and window system. Implement
them adequately, put the interface and implementation in the public
domain. No taxes here. DEC has an advantage here over anybody based on
Unix; it can decide what to do about OpenVMS without consulting anybody.
90% COMPATIBILITY
Implement emulation layers for Windows 3.1, MSDOS, Macintosh, and as many
flavors of Unix as seem useful, that run 90% of applications adequately
and 100% of the top ten current applications. Keep it very clean and open
but expect legal problems anyway. Bundle the Windows and Macintosh
emulation layers with the minimum software system. Put the source code
for the emulation layers in the public domain. Every buyer of the
minimum platform can count on being able to run his existing software,
with no additional taxes.
KEY APPLICATIONS
Bundle three key personal productivity applications and a deskset
metaphor for the native environment. They should provide the 90% subset
of functionality of the real ISV products, re-implemented in a clean room
environment, and sources in the public domain. Make it clear to ISV's
that these first three are it; there won't be any more competition from
the integrated system vendor.
HARDWARE CHANNEL
Create an arms-length subsidiary to provide DELL-like 1-800 channel for
new platform products from any vendor. Far East Inc. doesn't have to
set up distribution for their competitive implementations, because the
independent subsidiary does it for them. Only normal distribution
markup, no special taxes.
SOFTWARE CHANNEL
CDROMS containing all new platform software products. Distributed
through Tower Records once a quarter at retail CD prices. End users call
ISV's for licenses. ISV's only have to get on the CD and set up a 1-800
number.
SERVICE
Create an arms-length subsidiary to provide 1-900 service for any new
platform hardware or software. ISV's can take their own calls or rely
on training the subsidiary's people.
How is money made when everything is given away? The money EVENTUALLY
comes from upward-compatible servers and other high-performance
implementations, for hardware and software targeted for the other 10% of
users, from a premium paid for doing all the little things better - if all the
little things ARE done better. After the initial releases have met their
goals of attaining volume momentum against the competition, then the original
integrated system company may well planetize into separate profit centers that
add value to the publicly available base.
The key points are: a new mass market computer has been created which is
completely open. Every aspect is readily available for study in every
university and garage worldwide. The entry point for hardware manufacturers
and ISV's is as low as possible. If successful, a potent constituency of
hardware and software vendors worldwide will provide political support against
possible legal responses from Microsoft, Apple, Intel, etc. Once the cat is
out of the bag, though, further legal action may well be pointless.
How is future evolution of the new platform controlled? By the users.
The integrated system company can't control it if it becomes popular. Have to
keep flexible! And giving away one's basic technology is hard on the ego.
Competing in REALLY standard, REALLY open systems is a very hard sell, to
executives, employees, and investors. Unix became available in a way that
had not been fully thought through by ATT's executives, employees, and
investors. Essentially free to Universities, a market of knowledgeable Unix
and C programmers came into creation in a way that ATT could never have
achieved intentionally.
Who needs a new mass market PC-like platform, anyway? Maybe nobody. The
mass market of people who use computers and don't like them, still won't,
although perhaps less intensely. Generating bug workarounds and clever
optimizations for the x86 and its successors, all similar but slightly
different, and for Windows 3.1 and NT and their successors, will keep a lot of
people busy for a long time. And sooner or later somebody will find the right
combination to unlock the un-PC-like ultra-mass-market information appliances
mentioned at the beginning. Meanwhile, at the high end, after everybody
realizes that half a dozen performance-oriented RISC architectures is more
than that market can support, things will boil down to two or three platforms
catering to the people whose problems scale with the hardware, and the
supercomputer business will move along much as it does today, except the
supercomputers will be mostly on desktops instead of in computer rooms.
More information about the Numeric-interest
mailing list