Error Correcting Code memory
An acquaintance of mine wrote to me:
“The fact that RAW conversion is done by the OS means that Apple will have to update
the OS each time a new camera is released.”
This seems to be the prevailing belief online. As a veteran 20-year software
developer, I’m skeptical—a sufficiently incompetent implementation might require a system software
update, but there’s no reason I know of to believe that this is actually the case.
Raw conversion is likely done in just 1 or 2 libraries. Consider that QuickTime,
Java, DVD Player, security updates, iTunes, etc have all been updated in the past month alone, all without a system
software version change. Assuming that Aperture can’t and won’t be handled the same way is unfounded.
Still, for the sake of argument, let‘s assume that supporting new cameras in Aperture
does require a system software update. Apple has released 3 or 4 system software updates each year, so the interval
at which updates to Aperture could be made are around 3-4 months—not great, but not a disaster either.
If you’re considering a raw converter, you’ll find very useful comparisons in
my Raw-file Converters article. Aperture
is not included, because I’m not yet willing to spend $500 on a program just to test its raw-conversion quality. Perhaps
a demo version will emerge, or I’ll be able to do some test conversions on a machine that a friend or acquaintance
With the large amounts of RAM being stuffed into computers these days, one has to question
whether to buy Error Correcting Code (ECC)
RAM, because as the amount of RAM goes up, the chance for errors does also. Whereas 1GB was a lot of RAM a few
years ago, 8GB is not uncommon today, offering 8 times the chance of a memory failure. Errors are caused
by esoteric cosmic rays, which have the energy to twiddle
memory bits. Higher elevations are more prone to problems, so if you live in Denver, it’s more of a
concern than in San Francisco (maybe as high as ten times more). Flying in an airplane is considerably riskier.
Now that your computer has 8GB instead of 1GB, has the chance of a random “soft” error
also decreased by a factor of 8? Unfortunately, it appears the opposite may
be true. Densities have increased to the point that a single “event” can flip more
than one bit. Even ECC memory can only detect multi-bit errors, not correct them—it’s
reboot time in such a case.
At least one online
source analyzes the likelihood of memory errors, though the analysis is faulty in several ways. For example,
it assumes that home users turn off their computers. If you’re a Mac user like me, you never turn
off your computer, relying instead on “sleep” mode. That means the computer is really running 24
hours a day every day of the year (24X7). A 1998 EE
Times article quotes research that claims as high as 4 soft errors per gigabyte of RAM per month—and of
course that’s in lower density parts than today’s computers use. Other sources claim higher and
lower numbers. Assuming 4 soft errors per gigabyte, a user with 8GB of RAM might experience 32 errors per month,
or one per day on average. Some of those errors are in places that matter, though most are
High-end PC motherboards have offered ECC RAM for some time. Apple’s new PowerMac
G5 models, which can accept up to 16GB of RAM, now also offer ECC memory, which uses an additional chip on the
memory module to detect and correct single-bit errors in each byte and detect (but not correct) multi-bit errors. Apple’s XServe
G5 has offered ECC memory for some time, and there is a nice tech
note showing the user interface that allows monitoring the memory status. It’s not clear if
any equivalent tool exists in regular MacOS X (as opposed
to MacOS X Server).
Several approaches come to mind:
1. Buy the cheapest memory you can find, and hope that if the system crashes it isn’t
the memory. Cheap memory is more prone to “hard” errors—manufacturing defects, and certainly
no less prone to “soft” (cosmic-ray induced) errors. Of course, there’s no way to tell if errors
2. Buy high-quality memory, which should eliminate “hard” errors, and
just assume that the chance of a soft error is small enough to be acceptable. This is a reasonable strategy,
but there’s always that nagging doubt about memory if your machine freezes once in a while. And you never
do know if your data has been subtly altered.
3. Buy ECC memory and chances are you’ll never experience a memory related problem. If you
do experience a crash or freeze, the MacOS system log is supposed to record a memory failure.
Of course, rebooting starts you off with a fresh copy of everything, effectively erasing
all soft errors that have occured. So maybe rebooting is not such a bad idea, once a month or so. Then
again, my Powerbook G3 has run as a mail and web server for four (4) years with nary a crash or freeze, but it
only has 384MB of RAM, doesn’t access much data, and I’ve rebooted it a number of times after software
I’ve come to value reliability more and more, and ECC memory is likely what I’ll
go with in my next computer. The downsides include cost, which will be at least 25% higher. For example,
Apple charges 50% more for ECC memory. Companies like satech.com offer
ECC memory for only 25% more. Another claimed cost is a performance hit, but this appears to no longer be true,
at least on PowerMacs according to the testers at barefeats.com.