On Fri, Oct 29, 2010 at 2:26 PM, Brent Hilpert
<hilpert at cs.ubc.ca>
wrote:
On 2010 Oct 29, at 10:39 AM, Ethan Dicks wrote:
That all depends. ?Back in the day, what we did was not demand-paged
virtual memory (something supported natively on the VAX and the 68010
(but not effectively on the 68000)... (which is part of what
distinguishes the 68010 from the 68000 - instruction restart).
There have been a couple of indications it was the '10 that added the
instruction restart, but was the implementation in the '10 bug-free?
I know it works well enough in early Sun workstations and the AT&T
Unix PC (3B1/7300), but I have no knowledge of any required
workarounds due to possible bugs.
I didn't deal with the problem directly,
heard about it from some
friends
who were programming around it, and it would have been 1989, so long
after
the 00->10 transition. My recollection about the issue was there was
a bug
under certain conditions that was fixed in the next version, as
distinct
from a 'new feature', but perhaps it was just the way the problem was
described to me or the way I understood what was being said.
I have no memory of issues with instruction restart on the '10, but I
didn't use that feature of the chip when I was doing embedded product
development 20+ years ago (we only used it for the "loop mode"
1-instruction cache feature that allowed so-called "DBcc loops" to run
~50% faster due to not needing fetch cycles while in the loop).
Could what you remember be something to do with "instruction restart"
vs "instruction continuation"? (a distinction I was not making, but
now that I've read this -
http://www.easy68k.com/paulrsm/doc/dpbm68k1.htm - perhaps that's a
better way to describe it).
Yes, continuation is a better word to describe it. As described in that
article, upon address fault, the processor saves the internal processor
state on the supervisor stack. The problem as it was described to me,
was that some bits of the internal state missed getting saved, so there
could be problems with continuation. I don't know how the existing VM
designs such as the SUN 2 handled it, taking note of certain
instructions and fixing things up perhaps.