Patent ID: 7640375

Claim:
A direct memory access (DMA) control method in which a DMA controller transfers data in memory to an input/output device, or transfers data from the input/output device to the memory, in accordance with control information which is provided by a processing device to the DMA controller, comprising: transferring by the DMA controller the transfer data in the memory to the input/output device by: producing by the processing device an information block including the control information, which is a descriptor as an instruction issued from the processing device to the DMA controller, and including the transfer data, storing the information block in the memory, setting by the processing device in a DMA address pointer register an address of the information block, which is a top address in a storage area of the information block in the memory, and starting the DMA controller by writing a write command which is a data transfer instruction from the memory to the input/output device to a DMA start control register, accessing by the started DMA controller the memory and reading the information block based on the information block address set in the DMA address pointer register, extracting by the started DMA controller the descriptor from the read information block, analyzing the descriptor, and transferring the transfer data to the input/output device, and notifying, by the started DMA controller, the processing device of a completion of the transfer data by an interrupt when a processing of the transfer data of a size specified by a transfer data size is completed; and transferring by the DMA controller the transfer data from the input/output device to the memory by: securing by the processing device the storage area of the information block in the memory, setting a transmission source address, which specifies the input/output device of the transmission source and a transfer data size, in the descriptor of the information block and setting the information block address in the DMA address pointer register, setting by the processing device a read command which is a data transfer instruction from the input/out device to the memory in a DMA start control register, and starting the DMA controller, reading by the started DMA controller the descriptor of the information block from the memory, analyzing the descriptor, reading the transfer data from the input/output device to a data buffer, and writing the transferred data to the secured storage area in the memory, and notifying, by the started DMA controller, the processing device of a completion of the transfer data by an interrupt when a processing of transfer data of the size specified by the transfer data size is completed.