One of the least well-publicized bits of semi-recent technology from Apple has been SCSI Manager 4.3, which I've seen discussed mostly in MacWEEK, primarily in Ric Ford's MacInTouch columns. It's a complicated subject, but with some welcome help from well-placed sources, this article attempts to explain what SCSI Manager 4.3 is, what it does, and what programs and drivers support it.
What is it? SCSI Manager is software that mediates between SCSI requests (such as disk reads and writes) made by applications or by SCSI drivers and the physical SCSI devices attached to a Mac. Between the clients (applications or drivers) and the SCSI Manager code sits the SCSI Manager software interface, also known as an API (Application Programming Interface) or SPI (System Programming Interface).
The old SCSI Manager software interface supported one bus with SCSI IDs 0 through 7, with the Mac at SCSI ID 7. In contrast, SCSI Manager 4.3 supports up to 256 buses, 256 SCSI IDs per bus, and 256 LUNs (Logical Unit Number) per ID. However, to make things easier to use and develop for, SCSI Manager 4.3 makes it appear to programs and drivers as though all devices are on the same bus.
In real life, this means that if you use a Wide SCSI card that is SCSI Manager 4.3-compliant, such as the FWB JackHammer card, any 4.3-savvy client can access all SCSI IDs from 0 through 15. The same goes for the dual SCSI chains on the Quadra 900 and 950.
SCSI Manager 4.3 supposedly adds support for the SCSI-2 standard, but in fact, all Macs support all the mandatory SCSI-2 protocol functions for initiating devices. What most Macs don't support are two frequently discussed SCSI-2 features - Fast and Wide transfers - that are optional. SCSI Manager 4.3 directly supports SCSI-2 features, including the optional Fast and Wide transfers. However, the hardware on Mac motherboards (called the HBA, or Host Bus Adapter, and controlled by software called SIMs, or SCSI Interface Modules) doesn't yet support synchronous SCSI (actually part of the SCSI-1 standard), fast synchronous SCSI (10 MB per second), or wide SCSI. To gain access to these features, even with SCSI Manager 4.3, you need an HBA and SIM that supports them, and the only current one is FWB's JackHammer card.
What's it good for? The goal of SCSI Manager 4.3 is to increase performance of the system as a whole, and in the process, to take advantage of new hardware such as DMA (Direct Memory Access). Essentially, SCSI Manager 4.3 is "fully asynchronous and fully concurrent," which means applications can submit any number of asynchronous SCSI requests to different devices on the same or different buses, and SCSI Manager 4.3 properly queues those requests up for when the device is ready, returning as much control to the application as possible in the process. To maintain backward compatibility with programs that are not SCSI Manager 4.3-aware, SCSI Manager 4.3 steps back to the constraints of the old SCSI Manager interface when performing old-style synchronous SCSI Manager requests. Thanks to some serious programming wizardry, SCSI Manager 4.3 can also handle old, synchronous SCSI Manager requests simultaneously with the new, asynchronous requests.
SCSI Manager 4.3 increases performance in three main ways. It enables asynchronous access to SCSI devices, supports SCSI disconnect-reconnect, and also uses DMA when available. Let's take a look at each of these methods of improving performance:
Asynchronous access means that other things can happen at the same time as the disk read or write, something that has been generally impossible before. Although this would be nice to have in all applications so saving or opening files wouldn't take over the machine, it's most important for applications like digital video that need to move a lot of data while not tying up the CPU for other processing. Another good example of the utility of asynchronous access is backup to tape, where a program can read from the hard disk at the same time it writes to the tape.
SCSI disconnect-reconnect is related to asynchronous access, and means SCSI Manager 4.3 doesn't have to wait for responses to commands sent to SCSI devices. While the device is working on a command, such as formatting a disk, the device can disconnect, enabling the Mac to work with other SCSI devices. Once our example disk is done formatting or needs to inform the formatting program of its status, it reconnects, signalling SCSI Manager 4.3 to pick up where it left off. By being asynchronous, SCSI Manager 4.3 enables application-level activities to occur while a SCSI operation is in progress, even if the device doesn't disconnect (unless the application issues a synchronous file system request that ends up going to disk).
Using DMA when available improves performance by reducing the amount of work the CPU has to do in dealing with the fact that a disk read or write is in progress. If DMA is present, the DMA hardware can move data directly from the SCSI chip into memory (or vice versa for a write), never bothering the CPU with the transaction. Without DMA, the CPU must handle the data transfer between the SCSI chip and memory, reducing the amount of time it can spend on application-level tasks like recalculating a spreadsheet. DMA requires DMA support in hardware, which exists only in certain Mac models, specifically the Power Macs, the AV Macs, and the Apple Workgroup Server 95 (it has DMA on the two extra SCSI channels on its special PDS card). The elderly IIfx has DMA support, but SCSI Manager 4.3 doesn't currently support its older SCSI chip.
Interestingly, using DMA is not necessarily any faster (and is sometimes even slower due to the overhead of setting up and tearing down DMA buffers) than moving data via the CPU. So, raw performance numbers don't benefit from the use of DMA, but real world performance often does, since the CPU has more time to spend on applications.
So where'd it go? SCSI Manager 4.3 sounds like a good thing, so why don't we hear more about it? There are several reasons, but most simply, it's because users shouldn't have to care since SCSI Manager 4.3 works at such a low level. In addition, driver support has been slow to arrive. This isn't entirely the fault of driver developers; for some time there was no good documentation or much sample code. Some companies didn't have active engineering teams working on their formatting software, and others attempted to hack their old synchronous drivers to add asynchronous support, a strategy which often proved more difficult than rewriting from scratch. Finally, SCSI Manager 4.3 was a major change for the industry, and there's no doubt that some people weren't happy about the change, not so much due to the advantages provided, but because of the amount of work entailed in converting driver software.
Even though users shouldn't have to care about SCSI Manager 4.3 specifically, they should care about asynchronous file access, because it translates into increased performance and productivity. In fact, since few applications issue direct SCSI Manager requests, it's silly to say that an application supports SCSI Manager 4.3 - it would be better to write the application to access files using asynchronous calls and to call out that fact for users.
Most major hard disk formatting programs now support SCSI Manager 4.3 or will soon, but users seldom think about updating their disk formatting software. It's out of sight, and thus completely out of mind. Like many software companies, the companies that make software for formatting hard disks don't always notify their customers of updates, and some, like La Cie, never notify customers at all (they've never notified me in the five years I've owned Silverlining). If you call and ask for an update, you can get one, but that requires a level of technical knowledge and vigilance beyond the call of duty.
Application support -- Another problem with SCSI Manager 4.3 is that it requires application support to be useful. If an applications don't make asynchronous calls, SCSI Manager 4.3 services the older, and slower, synchronous calls. Currently, only a few major applications support SCSI Manager 4.3.
First, Dantz Development's Retrospect 2.1 supports SCSI Manager 4.3 directly, and the performance increase is shocking. I watched the start of a long backup session shortly after installing Retrospect 2.1 on my 660AV (which has SCSI Manager 4.3 in ROM), and the backup flew along at 12 MB per minute, with both the hard drive and the DAT drive in constant use. Second, FileMaker Pro now uses asynchronous file I/O to overlap disk operations with other activities. Unlike Retrospect 2.1, FileMaker Pro doesn't directly access SCSI Manager 4.3, but its use of asynchronous file I/O enables it to take advantage of SCSI Manager 4.3's capabilities. Third, Drive7 from Casa Blanca Works, along with being a SCSI Manager 4.3-savvy driver, supports SCSI disconnect-reconnect while formatting, so you can start a disk formatting and continue to work in Drive7 (formatting other drives if you want) or other programs.
Despite the seeming paucity of programs that use asynchronous calls, the problem is apparently more that many programs expect to wait for those calls to be processed before continuing, sitting in a loop and spinning a cursor instead of doing something useful. The trick, then, is two-fold. Programs must use asynchronous calls, and they should have something else to do if that call can be serviced by SCSI Manager 4.3 and an asynchronous driver.
Hardware support -- Perhaps the main confusion with SCSI Manager 4.3 is which Macs support it. The 660AV and 840AV have the SCSI Manager 4.3 in ROM, as do the Power Macs and the Power Macintosh Upgrade Card. Until System 7.5, those were the only Macs that supported SCSI Manager 4.3, but the SCSI Manager 4.3 extension in System 7.5 provides support to all 68040-based Macs and Performas, except for the Quadra 630 and the 68040-based PowerBooks. The extension might appear on older 68030 Macs if you install a system "for any Macintosh," but it won't do anything for them. The 68040 PowerBooks use different SCSI hardware that isn't supported by SCSI Manager 4.3.
On an AV, the extension completely replaces the SCSI Manager 4.3 code from ROM, and it fixes some bugs in the Power Macintosh Upgrade Card ROMs, but it doesn't do anything for Power Macs. There are a few patches to the SCSI Manager 4.3 code that's in the Power Mac ROMs, but they exist only in the System 7.5 System file and in the PowerPC Enabler for System 7.1.2.
Using a DMA-equipped Mac, such as a Power Mac or an AV, without a SCSI Manager 4.3-savvy disk driver can reduce performance significantly (one report placed the slowdown at thirty percent). This performance degradation happens because SCSI Manager 4.3 is backward compatible with the old SCSI Manager way of working with 4.3-clueless drivers. The old SCSI Manager mode handles DMA in the AVs and Power Macs badly in comparison with the way SCSI Manager 4.3 handles DMA. In other words, if you have an AV or a Power Mac with a third party disk drive that hasn't been formatted with SCSI Manager 4.3-savvy driver, you're probably taking a hefty speed hit.
In the end -- So, to take full advantage of the performance enhancements promised by SCSI Manager 4.3, you need the following:
The right Mac, which means Power Macs and 68040-based Macs other than the Quadra 630 and 68040-based PowerBooks. Macs with DMA hardware, including the AV Macs and the Power Macs, will enjoy increased system performance when the DMA hardware frees the CPU from mediating SCSI requests.
The SCSI Manager 4.3 extension from System 7.5 if you have a non-AV Mac.
A SCSI Manager 4.3 compatible hard disk driver, which you can obtain from any of the following hard disk formatting packages (we hope this list is at least partially complete; see below for contact information for these vendors):
HD SC Setup 7.2 or later (Apple)
Drive7 v.X.X (Casa Blanca Works)
Anubis 2.5 or later (CharisMac)
Hard Disk Toolkit 1.5 or later (FWB)
Silverlining 5.6 (La Cie)
FormatterOne Pro (Software Architects)
MicroNet 6.0.0 Utility (or later, but only with MicroNet drives)
SCSI Director Professional 3.0 or later (Transoft)
Lido Disk Formatting Utility 7.31 (Surf City Software)
Applications that intelligently use asynchronous file system calls so they can do useful work while SCSI Manager 4.3 deals with the asynchronous call. Current examples include Dantz's Retrospect 2.1 and Claris's FileMaker Pro.
In the end, support for SCSI Manager 4.3 could be the main hitherto unknown reason for most Quadra and Centris owners to upgrade to System 7.5 and a SCSI Manager 4.3-savvy hard disk driver.
Casa Blanca Works -- 415/461-2227 -- 415/461-2249 (fax)
Claris -- 800/544-8554 -- <email@example.com>
Dantz -- 510/849-0293 -- <firstname.lastname@example.org>
MicroNet -- 714/453-6000 -- 714/453-6001 (fax)
FWB -- 415/474-8055 -- 415/775-2125 (fax)
CharisMac Engineering -- 916/885-4420 -- 800/487-4420
Transoft -- 805/565-5200 -- 805/565-5208 (fax)
Surf City Software -- 714/289-8543 -- 714/289-1002 (fax)
Software Architects -- 206/487-0122 -- 206/487-0467 (fax)