A communication system for issuing commands from an initiator to a target, thereby
allowing the target to write or read out data into/from a memory area which the
initiator has and exchanging the data. The initiator transmits read and write commands
for the memory area to the target so as not to exceed the total number of commands
which can be held by the target. The target holds the received read and write commands,
holds references to the commands by different queues, and independently processes
the commands, so that the number of the commands to be transmitted can be managed efficiently.