Technical Information
Chapter 3
GPIB-SCSI-A User Manual
3-2
© National Instruments Corp.
Buffering Methods
In both S mode and G mode, the GPIB-SCSI-A supports three different
methods of buffering data transferred between the GPIB and SCSI ports. In
S mode, the buffering method can be chosen using switches 4 and 6 of
SW2, or by using the
config
command. In G mode, the GPIB-SCSI-A
powers up using the straight-through method, but this can be changed by
using the
config
command.
When using the straight-through method, the GPIB-SCSI-A does not use
the DRAM buffer to hold data transferred between the ports. The DMA
controller transfers each byte directly from one port to the other, without
using the DRAM buffer.
When using the single buffering method, the GPIB-SCSI-A uses the
available DRAM buffer space as a single buffer for data. During every data
transfer, it first fills the buffer with data from the source port. Then, it
writes this data out to the destination port. If there is more data available, it
fills the buffer from the source port again, and writes it out to the
destination port. This process continues until all available data has been
transferred.
When using the double buffering method, the GPIB-SCSI-A splits the
available DRAM buffer space into two distinct buffers. During every data
transfer, it first fills the first buffer with data from the source port. Then, it
simultaneously writes this data to the destination port while it fills the
second buffer with data from the source port. If there is more data
available, it fills the first buffer from the source port while it writes data
from the second buffer to the destination port. The buffers are switched like
this until all the available data has been read, after which the last buffer
filled is written out to the destination port.
When the GPIB-SCSI-A powers up, the number of bytes of DRAM buffer
space is 224 kilobytes. This means that if double buffering is used, each of
the two buffers are 112 kilobytes in size. If a smaller size is desired, it can
be changed using the
config
command.