Patent ID: 7337244

Claim:
A data transfer apparatus comprising: a memory having first and second queues for registering data transfer information that includes information for specifying a first memory area and information for specifying a second memory area, said first queue having a higher transfer priority than said second queue; a first processor operable to register said data transfer information in one of said first queue and said second queue; and a second processor operable to perform data transfer processing to transfer data stored in said first memory area to said second memory area, wherein said second processor is operable to read out said data transfer information registered in said first queue, execute said data transfer processing on the basis of said read data transfer information, and determine whether subsequent data transfer information that follows said read data transfer information is registered in said first queue, wherein said second processor, if the subsequent data transfer information is registered in said first queue, is operable to read out said subsequent data transfer information from said first queue, and perform the data transfer processing on the basis of said read data transfer information, wherein said second processor, if said subsequent data transfer information is not registered in said first queue, is operable to read out said subsequent data transfer information from said second queue, and perform said data transfer processing on the basis of said read subsequent data transfer information, wherein the data transfer apparatus is operable to process data for at least two types of task, a number of registered pieces of data transfer information for each type of task being stored in the second queue having a lower transfer priority than the first queue, and wherein when a first type of the types of task is currently running on the data transfer apparatus, the data transfer apparatus is operable to determine when the number of registered pieces of data transfer information for a second type not currently running on the data transfer apparatus exceeds a predetermined number, whereby the data transfer apparatus determines a priority of the second type to be high and causes data transfer information for the second type to be registered in the first queue with the higher transfer priority, thereby striking a balance between processing of the first and second types.