How do you make your UNIX crash ???

Chris Torek torek at elf.ee.lbl.gov
Fri Mar 22 18:27:23 AEST 1991


In article <3442 at engadm3.csd.mot.com> lance at motcsd.csd.mot.com
(lance.norskog) writes:
>Awhile back, someone found that executing random data made quite
>a few RISC chips sieze up.

False.

In fact, the program caused a number of *operating systems* to crash.
As I recall, the only chip bug it exposed (one that was already known
anyway) was in a ``CISC'' (namely, one of the older 80386 implementations).

The ability to crash any particular operating system is not a useful
indicator of the reliability of any particular microprocessor.

That said, one should note that the more complex something is, the
easier it is to make a mistake when implementing it.  Bugs are often
found in complex-addressing-mode CPUs (until fixed in a later revision)
when:

  - an access-probe instruction crosses a page boundary
	(example: VAX 11/780)

  - a read-modify-write instruction crosses a page boundary
	(example: NS32016)

  - an exception occurs while recovering from an exception, e.g.,
	a parity error during a register state retract during a
	page fault.

In general, ``RISC'' chips avoid all these bugs by outlawing the
situations under which they occur: their instructions never cross page
boundaries, they do not provide r/m/w instructions, and so forth.
There is, of course, a wide spectrum of actual implementations, with
varying degrees of ``RISCness'', and simply not providing an operation
does not obviate any existing need for something equivalent.  In other
words, this sometimes merely moves complexity from point A (the
hardware) to point B (the software).

Finding the correct balance of simplicity and functionality is what
machine architecture is all about.  If you think you can do better than
``RISC'' (whatever that is, besides a marketing word---like obscenity,
we all know what RISC is when we see it, but no one can define it), by
all means, gather some venture capital and start a new company.

(There, have I managed to avoid pushing anyone's buttons? :-) )
-- 
In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427)
Berkeley, CA		Domain:	torek at ee.lbl.gov



More information about the Comp.unix.programmer mailing list