🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #20797

Re: Complex Instructions

#20797
From: Stanley Chow
Date: Fri, 21 Apr 1989 02:04
52 lines
2916 bytes
In article <134@dg.dg.com> rec@dg.UUCP (Robert Cousins) writes:
>
>As a result of this difficulty, architects begain to build in
>instructions to handle data structures more directly.  However,
>few of these instructions can be compiled since the C compilers
						    ^^^^
>have difficulty decyphering the code well enough to know when
>to use the "insert into circular queue" instruction as opposed to
>smaller operations to manipulate pointers.  Also, few programmers
>are sufficiently versed in the underlying hardware to generate
>compatible data structures which could allow a very smart compiler
>to generate the instructions in the first place.
>

There are many other compilers that can take advantage of complex
intructions. Actualy, even in C, it is relatively easy to set up
include files that will declare the right data types and inline
procedures [assuming your compiler let's you.]

Throwing out architectural features just because C can't use it? 
There are other languages.  How about throwing out C instead? :-)

Also, it is not necessary for all programmers to know enough to use
the specail instructions. Some guru can set it up and everyone can
then use the pre-built modules. Depending on how you set everything
up, the compiler does not have to be smart at all.

For example, we have a system with really wild instructions that gets
generated even though the user don't know what they are and the
compiler does only peephole optimization. As is turns out, having
atomic operations for free is really nice.


>I personally prefer the way DG/UX handles things.  (I'm biased, I 
>work for DG.)  Each virtual processor contains a value called "atomic
>operation count" which can be raised or lowered (somewhat like parenthesis
>can be nested).  Whenever the AOC is > 0, the processor cannot be suspended
>for anything but a simple interrupt service.  This guarantees that atomic
>operations can complete without interference.  If more stringent control
>is required, then some form of event counter solution is used.

I like this design. Sound like it is implemented by the kernal for virtual
processors. How do you handle the case of kernal not wanting to be 
interrupted?



Stanley Chow   ..!utgpu!bnr-vpa!bnr-fos!schow%bnr-public


My opinions are mine alone. Since there has been no interest in others
being represented by them, I am lowering the representation fee.
Technical Details
Message-ID: <426@bnr-fos.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!bnr-vpa!bnr-fos!bnr-public!schow
References: <57252@yale-celray.yale.UUCP> <4101@tolerant.UUCP> <134@dg.dg.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!bnr-vpa!bnr-fos!bnr-public!schow
From: schow@bnr-public.uucp (Stanley Chow)
Newsgroups: comp.arch
Subject: Re: Complex Instructions
Summary: C is not the whole game
Message-ID: <426@bnr-fos.UUCP>
Date: 21 Apr 89 02:04:48 GMT
References: <57252@yale-celray.yale.UUCP> <4101@tolerant.UUCP> <134@dg.dg.com>
Sender: news@bnr-fos.UUCP
Reply-To: schow@bnr-public.UUCP (Stanley Chow)
Organization: Bell-Northern Research, Ottawa, Canada
Lines: 52