PERFORM.TXT Driver File Contents (epci164.exe)

                               ATTO ExpressPCI
                           Maximizing Performance
                           ---------- -----------

Congratulations on your selection of the ATTO ExpressPCI SCSI Host Bus
Adapter!  This document will explain how to be sure to get the most
performance out of your new adapter.

1.      If you are getting less performance than you expect, the first
        thing you should do is to make sure that you are using the ATTO
        driver.  It is quite possible that you are running a Symbios driver,
        symc810.sys or symc8xx.sys.  The Symbios driver that ships with
        Windows NT can only transfer a maximum of 64k bytes in one SCSI
        command.  The ATTO driver can transfer well over a megabyte.
        Furthermore, if you wish to use ATTO's ExpressRAID, you will need
        to be using the ATTO driver; the Symbios driver will not recognize
        ATTO stripe groups.

        You can determine which driver is being used with your adapter by
        opening "My Computer," then "Control Panel," then "SCSI Adapters."
        When you examine the Driver tab for your SCSI adapter, if the driver
        is not express.sys, you should install the express.sys driver and
        either remove the old driver that was being used with the adapter or
        disable it using the Devices applet.

2.      LARGE BLOCK TRANSFERS.
        If your application requires large block transfers, the first thing
        you should do is to set the registry entry entry correctly for the
        MaximumSGList keyword.  There are several files supplied with the
        installation disks which can set this value to any one of the
        following sizes: 64Kb; 128KB; 256Kb; 512KB; 1MB; and NT default(64KB).
        These files are ASCII text files and can be viewed with any suitable
        editor.  There are comments within the files that explain the registry
        setting and how to change the setting.
        
        The ExpressPCI adapter can transfer a maximum of 16MB - 1KB bytes.  If
        the registry value is set to a number higher than 0x1000, the driver
        will reduce the setting to 0x1000.

3.      If you are going to set up stripe sets, use ATTO's ExpressRAID
        instead of the RAID built in to NT.

        The disk striping supplied with NT is implemented by an upper-level
        filter driver.  NT uses a stripe interleave of 64k.  That means that
        64k data blocks are alternated between the two (or more) drives in
        the stripe set.  Since there is no facility in the NT driver
        hierarchy to pass scatter/gather information from the striping driver
        to the miniport driver that controls the SCSI card, the striping
        driver must break large requests into 64k requests which can be
        handled by the miniport driver.

        With ATTO's disk strping, a large disk request is passed directly to
        the miniport driver which then splits the request into only one
        request for each drive in the stripe set.  This cuts down the
        overhead associated with starting many commands on the SCSI bus as
        well as reducing the overhead in the driver hierarchy.  There is
        one less level of driver through which commands must pass, and there
        are less commands passed through the driver hierarchy.

        Further advantages of using ATTO's disk striping are: (1) You can
        boot your system off of striped drives; (2) stripe sets created with
        ExpressRAID are recognizable by not only NT but DOS and Windows 95;
        and (3) you can stripe removable-media drives with ExpressRAID.

4.      If you are writing an application which uses a lot of sequential
        disk I/O to a contiguous area on disk, you should use as large a
        transfer size as possible.  This reduces system overhead, SCSI bus
        overhead, and overhead within the disk drives.

        You should also use Direct I/O.  This is accomplished by using the
        FILE_FLAG_WRITE_THROUGH and FILE_FLAG_NO_BUFFERING flags with your
        CreateFile call.  When you don't specify Direct I/O, reading data
        causes the data to be read from the SCSI device in 4k segments first
        into the system pages, then the data is moved from the system pages
        to the application's data buffers.  Writing involves the reverse
        of this process.  This incurs the unnecessary overhead of moving
        the data between system pages and application buffers and the
        additional overhead of executing many SCSI commands to transfer the
        data between the system pages and the device.  A further side-effect
        is that the allocation of the system pages to the application data
        will cause other valuable information to be removed from the system
        pages, so it will have to be re-read again later.  Using direct I/O
        for such large sequential data transfers avoids the overhead of
        copying data from one area of memory to another, greatly reduces
        the number of SCSI commands which must be executed, and leaves the
        system pages available of other valuable data.  If your application
        needs only to do a small amount of I/O and the transfers are rather
        small, however, you may get better performance by letting the system
        cache your data in the system pages.

        Another approach which can increase I/O throughput is to use over-
        lapped I/O.  This is accomplished by using the FILE_FLAG_OVERLAPPED
        option with the CreateFile call.  Overlapped I/O allows the appli-
        cation to send many commands to the device at once.  With "normal"
        I/O, the application sends one command to a device at time.  While
        that command is executing, the application is "blocked" and can do
        nothing.  The application gets control back only when the command
        has been completed.

        Using overlapped I/O, the work involved in the application, drivers,
        SCSI bus, and even in the device, of setting up, transferring and
        starting subsequent commands is done while the first command is
        being executed by the device.  Furthermore, many disk drives are
        able to combine commands and order them so that they will complete
        in the shortest possible time.

        The ATTO Disk Benchmark program was designed to show the effect of
        using the above I/O modes.  If you turn off Direct I/O and set the
        file size to a value significantly less than the amount of memory
        in your computer, you will get some artificially high transfer
        rates.  This is because very little I/O is actually being performed
        by the SCSI device; all the activity is involved in transferring
        data between the application and the system pages.  As you increase
        the file size to a value more than the amount of memory in your
        computer, you will see performance degrade markedly.  Then, turning
        on Direct I/O, you can see the effect of removing the system pages
        from the overhead picture.  Finally, by using overlapped I/O, you
        will see performance improvements in the low-to-medium transfer
        sizes.  NOTE - Depending on the amount of memory in your computer,
        you may not be able to successfully use queue depths greater than
        4 or 5.
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web2, load: 0.94