*BSD News Article 79187


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!news.wildstar.net!news.ececs.uc.edu!newsrelay.netins.net!newsfeed.dacom.co.kr!arclight.uoregon.edu!usenet.eel.ufl.edu!news.mathworks.com!nntp.primenet.com!news1.best.com!nntp1.best.com!flash.noc.best.net!not-for-mail
From: dillon@best.com (Matthew Dillon)
Newsgroups: comp.unix.bsd.freebsd.misc,comp.unix.bsd.bsdi.misc
Subject: Re: Why one should buy parity memory for reliability?
Date: 25 Sep 1996 10:45:17 -0700
Organization: Best Internet Communications, Inc. (info@best.com)
Lines: 95
Distribution: world
Message-ID: <52br3d$9s8@flash.noc.best.net>
References: <32485B0D.41C6@austin.ibm.com>
NNTP-Posting-Host: flash.noc.best.net
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:27995 comp.unix.bsd.bsdi.misc:4984

:In article <32485B0D.41C6@austin.ibm.com>,
:Tushar Patel  <tpatel@austin.ibm.com> wrote:
:>Hi,
:>
:>I was going through the FreeBSD hadbook and one of the things suggested
:>in the book is buy "parity memory".
:>
:>I was involve in designing one of the microcontroller for Motorola,
:>one of the things we left out for the future controller was not
:>supporting parity (less pin count). The reasoning was, In the normal
:>condition the error should not happen, if it does then there is
:>somethings seriouly wrong, like having high temprature or more noise 
:>in the system. So, the bord designer better design the system correcly.
:>(They had some hard numbers to back the theory and this is just the 
:>brif explanation).
:>
:>If the Board supports the parity memory and error occurs then in
:>theory the OS should be notified and the access should be reapeted.
:>
:>Does FreeBSD support such error conditions?
:>
:>What happens in the case of the DMA transfer  from the DISK to the 
:>memory or from memory to disk, if the memory error occures then
:>processor is not looking at the data bus, so does that mean that the
:>DMA master (SCSI controller) will detect the parity error and 
:>retransfer the data?
:>
:>There is a big difference in the price between the parity and non
:>parity memory so I am trying to justify the parity memory purchase.
:>
:>Please make comments.
:>
:>Thanks,
:>Tushar

    Parity memory is important for several reasons:

    (1) memory densities are increasing and the smaller geometries are
	susceptable to radiation.  When you throw 512 MBytes onto a
	machine, you need to *know* that it works.

    (2) board designs generally run their memory subsystems right up to
	their rated limit.  Not all boards designs are good.

    (3) competition in the dram market means memory from a dozen different
	manufacturers and, literally, thousands of intermediate SIMM
	makers... not all of these are scrupulous or necessarily good
	designers.

    Without parity memory, it is almost always impossible to tell whether
    an error occured due a failure in the hardware or a failure in the
    software.  This is one reason why most modern high speed microprocessors
    incorporate parity in their TLB, primary, AND secondary cache
    subsystems, and some incorporate it on the processor control lines on
    top of all of that.

    Also, most motherboards support hardware ECC... for example, the 
    pentium pro 200 ASUS motherboards, using the latest Intel 'Natoma'
    (I think) chipsets, support hardware ECC with parity memory.

    I don't even consider buying non-parity memory any more.  It just isn't
    an option.  I've been burned too many times.

    --

    I've used motorola microcontrollers... they're really great on the I/O
    part, not so great on the cpu or memory interface part.  It is *really*
    annoying not having an on-demand bus request/grant mechanism, making
    it impossible to connect several motorola controllers together on a
    single memory bus without spending gobs of money on PALs and buffers.  
    I've also always been amused by the pidly amount of internal static ram 
    and e2prom motorola seems to believe people need, it makes using their 
    parts as single-chip microcontrollers difficult to say the least.   On
    the one hand, parts like the 68360 and 68xx302 are wonderful for 
    implementing T1, synchronous, and ethernet on a microcontroller, but
    abysmal in the cpu department because they have no internal 
    instruction or data caches and still use a cmosized 8-15 year old
    680lx0 core.  On the otherhand, you have something like the MIPS R3071,
    with ten times the processing power in a chip with half the pin count, but
    no I/O and no built-in dram controller.  It just makes me want to 
    *SCREAM* sometimes(!).
    
    Having parity and the dram controller incorporated *into* the 
    microcontroller or cpu is the way to go, removing the requirement for
    external buffers or muxes and reducing the pin count while at the same
    time supporting page mode, burst read, and interleaved dram 
    subsystems... even wider data busses.  Couple that with I/O, a *real*
    cpu core, and at *least* an instruction cache, and you have a hot product.

						-Matt

-- 
    Matthew Dillon   Engineering, BEST Internet Communications, Inc.
		     <dillon@best.net>
    [always include a portion of the original email in any response!]