Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site amdahl.UUCP
Path: utzoo!watmath!clyde!cbosgd!ihnp4!nsc!amdahl!mat
From: mat@amdahl.UUCP (Mike Taylor)
Newsgroups: net.arch
Subject: Re: Why Virtual Memory
Message-ID: <2184@amdahl.UUCP>
Date: Fri, 1-Nov-85 16:02:13 EST
Article-I.D.: amdahl.2184
Posted: Fri Nov  1 16:02:13 1985
Date-Received: Sun, 3-Nov-85 05:48:37 EST
References: <480@seismo.CSS.GOV>, <384@unc.unc.UUCP> <6086@utzoo.UUCP> <239@l5.uucp>
Organization: Amdahl Corp, Sunnyvale CA
Lines: 29

> Sharp used to run DOS/360 (heavily hacked) on their Amdahl, since their
> APL time sharing system was written to timeshare efficiently on the 360
> which did not have address translation or paging (remember those days??).
> They ported their APL to MVS a few years ago because a lot of customers wanted
> to run it that way, and eventually converted their data centre to MVS too.
> I think it cost them about 40% in overhead, but they could stop maintaining
> DOS/360

I think it is worthwhile to this discussion to remember just how
the DOS version of Sharp APL worked. In memory, there were a number
of slots that could contain workspaces. Workspaces
were swapped to and from disk into these slots.  In order that a damaged
workspace could not cause the interpreter to run amok and damage other
workspaces, storage protect keys were used.  Storage protect keys are
a S/370 architectural feature which matches a nibble in the PSW to
a nibble associated with each 2K block of storage. To "run" a workspace,
the APL interpreter used the SSK instruction to set the workspaces storage
to a "working" protect key, and then ran under that protect key. When the
timeslot was done, it then reset the storage to a non-working key so
that it was protected.  Needless to say, Sharp discovered that this was
hugely expensive on a cached, pipelined machine.  SSK causes storage
access serialization, as well as nasty cache consequences.
They then changed to a technique which used all available protect keys
to minimize the number of actual SSKs, but finally solved the problem
by going to virtual memory.
-- 
Mike Taylor                        ...!{ihnp4,hplabs,amd,sun}!amdahl!mat

[ This may not reflect my opinion, let alone anyone else's.  ]