The speed at which a system can write data to persistent storage and read data from persistent storage is often a critical factor in the overall performance of the system. The traditional approach of transferring data to and from a persistent storage system requires processing by multiple layers of software, firmware, and hardware on both the client system and the persistent storage system. In addition, data is typically copied as it moves between these layers. As a result, extra latency is incurred beyond the latency required to read or write the underlying physical storage medium, and this latency reduces the overall performance of the system.
In some situations multiple processors or systems are provided to clients for accessing data stored in a storage system, possibly for increased performance or for redundancy purposes. In order for two such systems to communicate, each of the systems needs to include sufficient hardware and/or software to enable the both systems to interface. Conventional methods for these two systems or processors to communicate with one another include network connections or inter-processor links that are relatively slow, or are designed for low latency rather than high bandwidth.