Patent ID: 8234418
Filing Date: 2012-07-31
Classification: G06F,Y02D

Abstract:
1. A method of scheduling Direct Memory Access operations in a platform comprising (i) memory, (ii) a Direct Memory Access engine, (iii) a period counter, and (iv) a system processor, the method comprising: maintaining, within the memory, a list of blocks of periodic operations, wherein each block in the list of periodic operations comprises a pair of pointers, wherein a first pointer of the pair of pointers points to one of (i) a command structure to be executed or (ii) a data structure to be moved, and wherein a second pointer of the pair of pointers points to a next block in the list of blocks of periodic operations; based upon the blocks in the list of blocks of periodic operations, processing, via the Direct Memory Access engine, the list of blocks of periodic operations; tracking, via the period counter, time remaining in an interval for processing the list of blocks of periodic operations; maintaining, within the memory, a list of blocks of conditional operations, wherein each block in the list of blocks of conditional operations corresponds to a conditional operation, and wherein each block in the list of blocks of conditional operations contains an estimate of time needed to complete processing the conditional operation; checking, via the Direct Memory Access engine, a consumption semaphore included in the blocks of conditional operations to ascertain if a given conditional operation from the list of blocks of conditional operations has been executed; and (i) based upon the checking the consumption semaphore and (ii) if the remaining time in the interval for processing the list of blocks of periodic operations is greater than the estimate of time to complete processing of the given conditional operation from the list of blocks of conditional operations, executing the given conditional operation from the list of blocks of conditional operations.