METHOD AND SYSTEM FOR IMPROVED FLASH CONTROLLER COMMANDS SELECTION
First Claim
1. A system for selecting a subset of issued flash storage commands comprising:
- a plurality of ports operable to store a first plurality of command identifiers;
a first plurality of arbiters associated with said plurality of ports, wherein each of said first plurality of arbiters is operable to select a particular command identifier among command identifiers within each corresponding port based on age, wherein selection of said particular command identifier of each port results in a second plurality of command identifiers;
a second arbiter operable to make a selection from said second plurality of command identifiers based on ages of said second plurality of command identifiers;
a session memory operable to store fetched commands associated with command identifiers selected by said second arbiter to form a third plurality of commands; and
a microcontroller operable to apply a selection heuristic to said third plurality of commands to select a command for execution.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for selecting a subset of issued flash storage commands to improve processing time for command execution. A plurality of ports stores a first plurality of command identifiers and are associated with the plurality of ports. Each of the first plurality of arbiters selects an oldest command identifier among command identifiers within each corresponding port resulting in a second plurality of command identifiers. A second arbiter makes a plurality of selections from the second plurality of command identifiers based on command identifier age and the priority of the port. A session identifier queue stores commands associated with the plurality of selections among other commands forming a third plurality of commands. A microcontroller selects an executable command from the third plurality of commands for execution based on an execution optimization heuristic. After execution of the command, the command identifier in the port is cleared.
-
Citations
21 Claims
-
1. A system for selecting a subset of issued flash storage commands comprising:
-
a plurality of ports operable to store a first plurality of command identifiers; a first plurality of arbiters associated with said plurality of ports, wherein each of said first plurality of arbiters is operable to select a particular command identifier among command identifiers within each corresponding port based on age, wherein selection of said particular command identifier of each port results in a second plurality of command identifiers; a second arbiter operable to make a selection from said second plurality of command identifiers based on ages of said second plurality of command identifiers; a session memory operable to store fetched commands associated with command identifiers selected by said second arbiter to form a third plurality of commands; and a microcontroller operable to apply a selection heuristic to said third plurality of commands to select a command for execution. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of selecting a subset of issued flash commands, said method comprising:
-
storing a first plurality of command identifiers in a plurality of ports, wherein said plurality of ports is associated with a first plurality of arbiters; selecting an oldest command identifier from each port of said plurality of ports, wherein said selecting results in a second plurality of command identifiers; selecting a third plurality of command identifiers from said second plurality of command identifiers based on an oldest command identifier of said second plurality of command identifiers; storing a plurality of commands associated with said third plurality of command identifiers within a session memory; and applying an execution ordering heuristic to said commands stored in said session memory to select at least one executable command. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method of selecting a subset of issued flash storage commands, said method comprising:
-
selecting a first plurality of command identifiers from a plurality of ports, wherein each of said first plurality of command identifiers is an oldest issued command identifier within each of said plurality of ports; selecting a second plurality of command identifiers from said first plurality of command identifiers, wherein said second plurality of command identifiers is selected based on ages of said first plurality of command identifiers and based on port priorities corresponding to said first plurality of command identifiers; storing a plurality of commands associated with said second plurality of command identifiers in to a memory; and applying an execution ordering process to said plurality of commands to select at least one command from said plurality of commands for execution by a microcontroller. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification