🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.nsc.32k
Article #1621

Re: NSC Grumblings by George Grenley

#1621
From: George Grenley
Date: Tue, 02 Jan 1990 22:15
50 lines
2825 bytes
In article <371@illian.UUCP> darylm@illian.UUCP (Daryl V. McDaniel) writes:

>George,

>> did you work around the problem where the '532 hangs if you write a
>> floating point number across a page boundary, and you fault on the
>> second page?  The '532 hangs on this condition, I believe - but I 
>> may be incorrect on this.

>As far as the '532 hanging on floating point operands that span a page
>boundary into a non-resident page, I've never seen it.

>If data is properly aligned it will never span a page boundary.  I forced
>both 32-bit and 64-bit floating point values to span a page boundary,
>ensured that the second page would cause a fault, and tried floating point
>operations with that data.  Not a problem.

>Daryl V. McDaniel				.........sun!nosun!illian!darylm
>Micronetics, Aloha, Oregon, USA		USENET:	...tektronix!nosun!illian!darylm

Perhaps I mis-remember the problem slightly.  AS of Jan'89, all steppings of the
'532 (A1,A2,B0,B2)  would lock up under the following conditions.

1. A write was occurring of a floating point (8 byte) number
2. The address was such that the operand spanned two MMU pages, i.e., 4K boundary
3. An MMU fault occurred on the second page - specifically page-not-present.

I don't know if it happens every time or just sometimes, bu a couple of
customers found it.  Even if an operand is long-word aligned, it can cross
a page boundary - rarely do the s/w types bother to avoid this.  As a 
result, a fair amount of existing code would break.  New code, or re-comp-
iling old code, could work around it easily, but binary compatibility
didn't exist.  I believe both Opus and Encore were _upset_, to say the
leasy, because they had large amounts of installed binary code....

A hardware fix - rather a clever one, too - was developed by Jonathan Levy,
a sometime contributor to this group, which required only a PAL or two
externally, and triggered an interrupt when it saw this condition.  Thus,
the OS could deal with it.

I don't know whether any later stepping of the '532 fixed this on
chip or not - NSC fired me in January, and I haven't kept up.

Daryl, you might want to dig into this a little further.  I may have the
details wrong, but the problem is real, albeit obscure.

Hope this helps any potential '532 developers out there...

Regards,
George Grenley
Technical Details
Message-ID: <1201@cirrusl.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!wuarchive!usc!apple!oliveb!tymix!cirrusl!sunkist!grenley
References: <371@illian.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!wuarchive!usc!apple!oliveb!tymix!cirrusl!sunkist!grenley
From: grenley@sunkist.UUCP (George Grenley)
Newsgroups: comp.sys.nsc.32k
Subject: Re: NSC Grumblings by George Grenley
Message-ID: <1201@cirrusl.UUCP>
Date: 2 Jan 90 22:15:27 GMT
References: <371@illian.UUCP>
Sender: news@cirrusl.UUCP
Reply-To: grenley@sunkist (George Grenley)
Organization: CIRRUS LOGIC Inc.
Lines: 50