Patent ID: 8073994

Claim:
A method of transferring data from a sending application on a first computer to a receiving application on a second computer, each computer having a main memory, and a memory mapped network interface, the method comprising the steps of: creating a buffer in the main memory of the second computer for storing data being transferred as well as data identifying one or more pointer memory location(s); storing at said pointer memory location(s) at least one write pointer (WRP) and at least one read pointer (RDP) for indicating those areas of the buffer available for writes and for reads; in dependence on the values of the WRP(s) and RDP(s), the sending application writing to the buffer; updating the value of the WRP(s), after a write has taken place, to update the indication of the area(s) of the buffer available for reads and the area(s) available for writes; in dependence on the values of WRP(s) and RDP(s), the receiving application reading from the buffer; and updating the value of the RDP(s), after a read has taken place, to update the indication of the area(s) of the buffer available for reads and the areas(s) available for writes; wherein the sending application and the receiving application are permitted to operate on different parts of the buffer simultaneously; and in which the first computer comprises a processor with a cache memory and the second computer comprises a processor with a cache memory, and the method further comprises the step of the sending application storing the value of the updated WRP in the cache memory of the first computer and the receiving application storing the value of the updated RDP in the cache memory of the second computer.