The Performance Edge: XLR8
Has Its Own Perspective On Speculative Processing And G3/G4
Upgrades. Disabling Speculative Processing May Be The Best Solution
For Great Prices On Upgrades
Check The Vendors Below
The question of Speculative Processing has raised
some issues on the Macintosh platform, especially in respect
to a variety of G3 upgrade products. This white paper is designed
to address those questions and to enlighten the "non-technical"
reader.
What is Speculative Processing?
Speculative Processing is a performance enhancement
for PowerPC .
In short, Speculative Processing is a good thing.
The PowerPC 750 can execute in a speculative
fashion, i.e. if it has any spare time, it will guess which
instructions will be executed later on, and start executing
them immediately in an effort to save some time.
If it guesses wrong it discards the results
of the speculation and carries on -no harm done. However,
the assumption that there was no harm done may be incorrect.
The Problem of Speculative Processing on Apple
PowerSurge Systems
(7500 through early 9600s and some clones)
At the time of designing the early 604e (PowerSurge)
motherboards and the ROMs for those motherboards, Apple had
limited advance information available on the PowerPC 750.
In fact, at that time, the 750 was not being designed with
desktop computing in mind. For whatever reason, Apple elected
not to design dedicated support for the 750 and Speculative
Processing into the early PowerSurge ROMs. Therefore, because
of the lack of ROM support, when a PowerSurge machine boots
with a 604e CPU installed Speculative Processing is not enabled.
However, when a PowerSurge boots with a G3 upgrade
installed, it notes that the CPU is not a 604e, and so boots
as a "Generic PowerPC", and by default enables Speculative
Processing. But the PowerSurge ROMs do not prevent Speculative
Processing from reading areas of memory that are potentially
"volatile", i.e. those areas of memory from which the very
act of reading a value alters the value.
Therefore when a G3 upgrade card performs Speculative
Processing in a PowerSurge machine it may in fact have irreversible
consequences because of accesses to volatile memory. If the
speculation turns out to be incorrect, the damage cannot be
undone; the values read cannot be restored. The visible effect
to the user is often machine lock-ups, or erratic behavior
of hardware devices. Hardware devices are the most likely
to fail, because volatile memory is virtually always associated
with them. It is not a bug in the devices; it is simply how
they work.
The fix is relatively straightforward
dont allow speculation to access hardware related memory.
There are basically two ways to accomplish this.
The first -- if speculation attempts
to access hardware related memory, prevent it from doing so.
Marking the address ranges that contain the hardware devices
as "guarded" does this. Speculative accesses to
guarded memory are not permitted. A software fix using this
technique can be updated. Hardware fixes (such as custom card
ROMs) usually must be reprogrammed or interchanged.
The second -- this technique is a bit
simpler. Disable Speculative Processing altogether. Basically,
this is a "2x4" approach. Speculative Processing
is an optional process, so disabling has zero inherent problems.
The performance hit is relatively small (2-3%), possibly due
to the inefficiency of Speculative Processing on the Mac ,
or in contrast due to the efficiency of the Backside Cache
on the G3.
The Art of Disabling Speculative Processing
and Virtual Firmware™
Given the choices, the maximum compatible solution
is to simply disable Speculative Processing. This can be accomplished
by an extension when the system starts up. The problem with
this approach however, is that some hardware devices need
to function long before extensions are loaded. The most obvious
examples are SCSI accelerators. If the accelerator fails because
of speculative processing, the chances of it working long
enough to even get to the extension are remote
Some G3 upgrade companies offer Speculative
Processing fixes that address the issue through a system extension.
They continue to suffer from having to load after the hardware
is initialized.
Another company has addressed the issue by loading
a small amount of code early in the system boot-up process.
The problem with this technique is that if system extensions
are disabled, or PRAM (parameter random access memory) is
"zapped" (erased by pressing command/option/p/r
on boot up, to clean corruption and intermittent problems),
then the code is removed and the third party products will
no longer function correctly. For example, the Adaptec 2940UW
SCSI card will not be able to boot after zapping PRAM or disabling
extensions.
XLR8 has addressed this issue differently. Using
some of the same techniques to disable Speculative Processing,
XLR8 has developed a technique known as Virtual Firmware.
This technique allows XLR8 to create software-based routines
that like other "early loading" solutions, loads
before hardware, but unlike the others, is not volatile. Virtual
Firmware cannot be flushed by PRAM zapping techniques and
continues to function, even when extensions are disabled.
Virtual Firmware gives XLR8 the flexibility
of software with the robustness of a hardware solution. The
best of both worlds. One drawback is that Virtual Firmware
utilizes undocumented areas of Apple hardware that can be
eliminated on future releases of Apple systems. Fortunately
this is not a problem, since future systems will not require
the use of Virtual Firmware.
Additional Notes on Speculative Processing
Speculative Processing is not an issue on the
Power Macintosh G3 or the latest ROM release on the 9600 and
8600 systems manufactured after September 1997. These systems
have full support for G3 based Speculative Processing, and
continue to work well with all third party products.
XLR8 has released version 1.3 of its G3 Control
for use on all G3 upgrade cards. This version implements Virtual
Firmware and a variety of other techniques adding compatibility,
simplicity and elegance to the Macintosh experience.
A Final Note on Upgrade Futures
The development of techniques like Virtual Firmware
demonstrates resurgence in a high-level of engineering expertise
in the Macintosh upgrade developer community.
Companies like XLR8 are dedicated to restoring
unsurpassed engineering expertise to the Macintosh industry
and are rewarding users with timely, quality solutions. The
winner will be the user and the Mac.
Gary Dailey
XLR8 Director of Marketing
gdailey@xlr8.com
Copyright 1996-2007 by Cider Press Publishing LLC all rights reserved.
MacSpeedZone is not authorized, sponsored, or otherwise approved by Apple
Computer. Apple, the Apple logo, Macintosh, iPod, iBook, iMac, eMac, and
PowerBook are registered trademarks of Apple Computer, Inc. Additional
company
and product names may be trademarks or registered trademarks and are hereby
acknowledged.