10
10-2
McDATA UltraNet Edge 3000 User Guide
Buffering, Emulation, and Data Protection
This also limits device performance because the device needs to wait
on each command from the host controller.
Buffering, on the other hand, enables queuing of individual I/O
operations from the host controller to temporary memory in the
device control unit. Each time a buffered device completes one
command, the next command is immediately presented for
completion. This eliminates the host controller delays associated with
non-buffered devices.
How does Buffering
Work?
In order for a device to queue operations in its buffer, it must
pre-acknowledge individual operations from the server I/O
controller even though they have not yet been completed.
Pre-acknowledge means the device returns successful completion
status immediately upon receipt of the operation and data. This frees
up the server controller to issue the next operation, which in turn
enables the device to queue up operations. Again, this is common
practice for buffered devices. In fact, with buffered devices,
completion status simply means that the operation was transferred to
the device controller and is safely stored in the device’s buffer.
Device Error
Recovery
Since natively attached buffered devices pre-acknowledge commands
from the server, an error recovery process is needed to ensure errors
occurring after pre-acknowledged commands can be successfully
dealt with. This maintains the integrity of the host I/O operation
sequence.
For buffered devices, responsibility for error recovery is moved to the
application/utility responsible for setting up and initiating the I/O
transfers. Since different devices have different operating
characteristics, different methods are used.
UltraNet Edge 3000
Emulation
With the FC/SCSI Tape Pipelining feature, the UltraNet Edge 3000
emulation works in much the same way as the buffered device
controller. By responding with completion status to all but the final
server operation, the UltraNet Edge 3000 can queue up operations
remotely to ensure one is available to send to the device controller as
soon as the previous operation completes.
Protecting the Data
The UltraNet Edge 3000 uses End-to-End CRC checking to ensure the
data sent between the server and the end device is protected and does