A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for transmitting data along one or more communication channels to a receiving device having memory units so as to allow the receiving device to determine when a complete data transfer has arrived, the data having a known size and being split into two or more data packets each having a respective header and each sent along one of said communication channels to a respective memory unit, the method comprising:
- (a) marking a respective final data packet to be sent along each communication channel so as to be identifiable by a respective memory unit,
- (b) for each memory unit receiving said respective final data packet generating an interrupt such that a single interrupt is generated for each memory unit receiving data and informing the receiving device how much data was received by said memory unit, and
- (c) determining a cumulative amount of data received by all memory units so as to allow the reading device to identify when no more data packets are to be transmitted.