×

Flash storage controller execute loop

  • US 20090172263A1
  • Filed: 04/08/2008
  • Published: 07/02/2009
  • Est. Priority Date: 12/27/2007
  • Status: Active Grant
First Claim
Patent Images

1. A method including performing the following steps in a system comprising a storage controller and a flash memory module:

  • (a) reading an identifier of a first data structure from a first queue;

    (b) reading first state information from the first data structure, the first state information identifying a stage of a flash read or write command;

    (c) based on the identified stage, identifying a task to be accomplished or a resource required by the first data structure;

    (d) if a resource is required, checking to determine if it is available;

    (e) if the resource is available, or if the stage does not require resource availability, performing a task related to reading or writing data from a first segment of the flash memory module;

    (f) modifying the first data structure first state information to reflect the performance of the task;

    (g) reading an identifier of a second data structure from a second queue;

    (h) reading second state information from the second data structure, the second state information identifying a stage of a flash read or write command;

    (i) based on the identified stage, identifying a task to be accomplished or a resource required by the second data structure;

    (j) if a resource is required, checking to determine if it is available;

    (k) if the resource is available, or if the stage does not require resource availability, performing a task related to reading or writing data from a second segment of the flash memory module;

    (l) modifying the second data structure second state information to reflect the performance of the task;

    (m) returning to step (a) and continuing to repeat the specified steps until the first state information or the second state information indicates that the operations required by the corresponding data structure is complete, at which point the pointer to that data structure is removed from the corresponding queue and the method continues for the other data structure until its state information indicates that the operation required by it are complete, at which point the pointer to that data structure is removed from the corresponding queue.

View all claims
  • 11 Assignments
Timeline View
Assignment View
    ×
    ×