Text File

Aucbvax.4891 fa.works utzoo!decvax!ucbvax!works Sun Nov 1 22:34:01 1981 WORKS Digest V1 #28 >From JSol@RUTGERS Sun Nov 1 22:21:22 1981 WorkS Digest Monday, 2 Nov 1981 Volume 1 : Issue 28

Today's Topics: Lisp Machine Language Support Demand Paging On iAPX 432 Backing Out Of An Auto{inc|dec} Instruction Symbolics 3600 Altos & Dorados & LispMs & Dolphins Paging (Or Lack Thereof) On The MC68000 ----------------------------------------------------------------------

Date: 1 November 1981 23:38-EST From: The Moderator <JSOL AT RUTGERS> Subject: Administrivia

[Due to a small hardware problem, some of you received multiple copies of Friday's digest (V1 #27), sorry -JSOL]

------------------------------

Date: 30 October 1981 01:49-EST From: Daniel L. Weinreb <DLW AT MIT-AI> Subject: Languages and Lisp Machines

Eric Cooper is correct: Symbolics will support Pascal, Fortran 77, and C on the 3600. This may work by actual translation into Lisp, or by translation into an intermediate representation inside the compiler.

------------------------------

Date: 30 October 1981 0755-EDT From: Hank Walker at CMU-10A Subject: autoinc/dec

It isn't that hard to implement autoinc/dec. The 11/780 has an RLOG stack containing 9 locations of 5 bits each (I think). Whenever you do an autoinc or dec, you push the inc or dec value on the stack. On a fault (any kind of fault), the microcode pops the stack values and reverses the operations. I can think of lots hairy problems with backing out of instructions than this.

------------------------------

Date: 30 Oct 1981 (Friday) 1154-EST From: FRANKEL at HARV-10 Subject: Re: Demand paging on iAPX 432 To: Schiffman at SRI-KL cc: FRANKEL

The intel iAPX 432 does not support any form of demand paging, but, rather, has a fairly primitive segmentation scheme. This scheme allows segments to either be entirely swapped in or not in memory at all. The dual 68000 implementation allows for true demand paging with the restrictions already enumerated. Other 68000 solutions include restricting the instructions that a compiler will generate so that the page fault address can be detected and the code resumed (using only one 68000). Motorola is in the process of coming out with a new 68000 that corrects the "bus error" problem and some really minor annoyances.

Jamie Frankel

------------------------------

Date: 31 October 1981 02:51 est From: HGBaker.Symbolics at MIT-Multics Subject: Symbolics 3600

36-bit machine, 2^28 word address space (1 billion bytes) 32-bit immediate (non-consed) integers, IEEE float instruction fetch unit instruction + stack cache 2^24 word physical address capability 512K words memory/card 4-5 slots for memory cards 67, 160, 300+ Mbyte winchesters 10 Mbit Ethernet 800 rows of 1000 dots B/W 1K x 1K color, 8 bits/pixel 68000 I/O controller Multibus.

basic configuration <$60K RYLAND ETHERNET PROTOCOLS ------------------------------ FOR CORP 1981 FROM: SRI-KL AT AVAILABILITY 31 10. AND REASONABLENESS. QUANTITY OCT TO 1019-PST <RYLAND DATE: CHRIS SUBJECT FROM XEROX> Subject: one last apologia; query for high-end users

In response to Peter Deutsch's mail, I should once more emphasize that my initial flame was mostly in reaction to the world's tendency to adulate the Alto; as Peter pointed out, the folks at XEROX knew long ago that they had outgrown the machine, but I don't think that's clear to the world at large. I didn't intend to slight XEROX. And, yes, the Dorado certainly "whup[s his] ass" off the current Lisp Machine, though it's a little hard to determine the relative speeds, given the different word sizes and internal data path sizes.

Now, my query, addressed to those of you who are contemplating using personal machines for high-end, mostly stand-alone computational needs, i.e., AI (speech, robotics, vision), VLSI design, physics, etc.: what is your sense about the language base you'll need for your work? This begins to approach "theological" issues, but I still think it's an interesting topic.

For example, my feeling (shared by some, I hope) is that the only two languages worth considering are Lisp and Smalltalk (I'm ignoring the idea of embedding well-known languages such as Fortran and C in a Lisp or other environment, to support those who don't want to deal with the host language). The Lisp Machine and the Dolphin provide two rather distinct approaches to the environment, but both provide Lisp. The Dolphin, running Interlisp, is "pure" Lisp in the sense that it makes no concessions in the arena of object-oriented programming. The Lisp Machine is heavily object-oriented, with perhaps the most flexible of all classification schemes imaginable, Flavors. The problem I see with this dichotomized world of Lisp and Flavors is that, though people are hard at work turning more and more of the Lisp Machine world into objects which are dealt with via message-passing, there will always be the basic objects such as fixnums (integers) and conses which aren't objects in the Flavor sense. This fundamental dichotomy can't be good, in that it requires two different styles of programming and thus requires some additional and perhaps needless complexity.

Of course, there are those who must use Lisp, so the Dolphin and the Lisp Machine appear to be the only hope we've got. (The SpiceLisp PERQ is still a question-mark, but it's hard to imagine it being as powerful as the other two, in nearly any sense of the word "power".)

Now, Smalltalk presents us with a choice: it is certainly as capable as Lisp, though it certainly requires a distinct approach to most problems, and yet it is probably 1-2 years away from even beginning to be used widely. And, it's not clear that it will enjoy the same popularity in the research community that Lisp does (for whatever reasons, which probably won't be technical). Further, it will probably be 1 year at least before it is solidly up on an acceptable machine, such as the Dolphin, Lisp Machine, or what-have-you hardware. Can you wait for something which isn't a sure bet yet?

Yet, Smalltalk also appears to have a good chance to be widely available on every imaginable size of machine, which can only bode well for the availability of good software, people versed in the language, transport- ability of research software into the "real world" (and vice-versa), etc. For example, it is confirmedly rumored that DEC is basing their personal VAX's system software (the SUVAX) on Smalltalk, and this system has a rather good graphics interface. Of course, HP, Tektronix, Apple, and DEC have been working with the pre-release of Smalltalk for nearly a year now, so that provides further reason to believe that it will have acceptance in the industry.

Enough speculation. Comments?

------------------------------

Date: 31 Oct 1981 0143-PST From: SCHIFFMAN at SRI-KL Subject: Re: Demand paging on iAPX 432 To: FRANKEL at HARV-10 cc: schiffman at SRI-KL

The Intel iAPX 432 does not support any form of demand paging, but, rather, has a fairly primitive segmentation scheme. This scheme allows segments to either be entirely swapped in or not in memory at all.

``Primitive segmentation''??

When you think about it, pages are only fixed-size segments that must "either be entirely in memory, or not at all". Segmentation is clearly a more "sophisticated" quantum of memory management because objects don't come in fixed sizes. Unfortunately for computer architecture, it is difficult to ALLOCATE memory if you don't pretend they do.

The 432, which can have umpteen thousand segments defined at a time, (with each one being a typed protection domain) is considerably more sophisticated when it comes to virtual memory management than any other microprocessor will be for a LONG time. In fact, it is more sophisticated than [almost] ANY existing computer's memory management architecture.

Of course, the implementation is such that only a few segment descriptors are cached simultaneously, which leads to poor performance.

In fact, I think that the 432 is going to suffer for a long time due to its lack of "primitiveness".

-Allan

------------------------------

Date: 1 November 1981 02:28-EST From: Leonard N. Foner <FONER AT MIT-AI> Subject: Paging on the MC68000

Yes, there is a definite problem with paging with the MC68000 chip.

I worked on a design team about a year ago that, among other things, was going to implement a virtual memory system using the MC68000 as its CPU. Among various problems we ran across (such as only ONE interlocked instruction, when you really needed at least two) was the problem of paging.

As it turns out, the MC68000 does not save enough state on such a fault to be able to recover completely. It misses about two status bits. I don't have my manual handy, and it's been a while since I looked at this problem (the project ended about 9 months ago), but it most definitely would not do paging right. This made it quite difficult to come up with a robust paging system.

The general idea we came up with was that paging on the MC68000 was easily possible if certain instructions were avoided (or, alternately, could be guaranteed never to fault upon execution, a rather diffcult constraint).

If people are interested, I will go back through my old design notes and see exactly what the problem was. It was not insurmountable (since we figured out at least one way around it, as I recall), but it was definitely an inconvenience.

I don't know about this system with two MC68000's in it, but from the description it sounds like they're using one chip to keep track of state for the other... a klugy solution at best, of course, but better than having to eliminate virtual memory as an option.

Note that, even using two processors and having one wait for the other to handle paging, you can keep track of the most recently paged-out pages in memoyr and so decrease your hits on disk paging. VAX/VMS, for instance, does this. Then you can do a fast (no disk activity) page for most faults (VMS hits almost all the time except for programs that do a LOT of random paging, which is rare... and demand-zero pages (i.e., fulll of zeroes because they've not been used yet) are easy to do without any disk access). The only time the processor waits is when a fault really has to involve the disk. Then you're stuck, since you can't run any other processes while that happens.

Have fun. if you want more info, ask and ye shall receive... eventually.

<LNF>

[By the way, your message in yesterday's digest appeared with a From: field of simply Goldberg. Since I don't know where you are, this goes to the whole list without mailing to you directly, which is somewhat impolite of me but necessary under the circumstances. JSol: if Goldberg is at Rutgers, please make sure that the @RUTGERS winds up on the message...]

[Oops - that makes two apologies this digest. A record? -JSOL]

------------------------------

Date: 1 Nov 1981 (Sunday) 2224-EST From: FRANKEL at HARV-10 Subject: Re: Demand paging on iAPX 432 To: Schiffman at SRI-KL cc: FRANKEL

When segmentation is the only form of memory management, it must be used for both protection and typing, and storage allocation. The advantage of having both segmentation and paging is that there are two distinct mechanisms to handle the two problems. It is often true that segmentation alone is sufficient to solve both, but not always. The problem with paging is that the context of the data areas of the original problem is lost and the memory management unit must attempt to ascertain the working set of pages the program is using. The problem with segmentation is that it is often the case that only a small section of a object is to be touched yet the whole object must be swapped in.

In the 432, the segments are limited to 64K -- too small for many large arrays used in various applications {This problem can be resolved by using levels of arrays of pointers to achieve the desired size}. On the other hand, if one would attempt to implement LISP on the 432, one would find that there are not enough segments to allow each dotted pair or even each list to be a separate segment.

In many respects there are a large number of existing computers with at least as sophisticated an MMU.

The 432 is certainly a large accomplishment for microprocessors and (except for its poor performance) should find good acceptance in the Pascal/Ada market.

Jamie Frankel

------------------------------

End of WorkS Digest ******************* -------

----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen <jgoerzen@complete.org> of http://communication.ucsd.edu/A-News/

This Usenet Oldnews Archive article may be copied and distributed freely, provided:

1. There is no money collected for the text(s) of the articles.

2. The following notice remains appended to each copy:

The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.