Perform.txt Driver File Contents (epci168.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 or a LSI driver. These drivers that ship with Windows
        can only transfer a maximum of 64KB 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 use the ATTO
        driver; the LSI driver will not recognize ATTO stripe groups.

        You can determine which driver is being used with your adapter
        as follows:
        
        Windows NT
            open "My Computer"
            open "Control Panel"
            open "SCSI Adapters"
            
        Windows 2K and Windows XP
            open "My Computer"
            open "Control Panel"
            open "Administrative Tools"
            open "Computer Management"
            select "Device Manager"
            select "SCSI & Raid Controllers"
            
        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. If the system
        has a built in Symbios or LSI adapter then make sure you do not
        disable the driver for that adapter.

2.      LARGE BLOCK TRANSFERS.
        If your application requires large block transfers, the first thing
        you should do is to set the registry 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 have a maximum transfer size from 64KB to
        1MB. If the registry value is set to a number higher than 0xff, the
        driver will reduce the setting to 0xff.  The driver installation
        process will set the default value to 0xff.

3.      If you are going to set up stripe groups, use ATTO's ExpressRAID
        instead of the RAID built into Windows.

        The disk striping supplied with Windows is implemented by an upper-level
        filter driver.  Windows uses a stripe interleave of 64KB.  That means that
        64KB data blocks are alternated between the two (or more) drives in
        the stripe set.  Since there is no facility in the Windows 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 64KB requests which can be
        handled by the miniport driver.

        With ATTO's disk striping, 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.
        
        Read "Stripe.txt" for an explanation of ATTO's disk striping. This file
        is included will all ATTO adapters if the striping option is purchased.

4.      If you are writing an application that 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 4KB 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 that 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: web4, load: 0.74