Back to results
US 11,687,471 B2Granted
Solid state drive with external software execution to effect internal solid-state drive operations
AssigneeSK Hynix NAND Product Solutions Corp.
InventorsJoseph D. Tarango, Randal Eike, Michael Allison, Eric Hoffman
Life of this patent
Estimating the term…
Abstract
A method is described. The method includes executing solid state drive program code from system memory of a computing system to perform any/all of garbage collection, wear leveling and logical block address to physical block address translation routines for a solid state drive that is coupled to a computing system that the system memory is a component of.
Claims19
A computing system, comprising:
- a plurality of processing cores;
- a system memory controller;
- a peripheral control hub;
- a plurality of solid state drives coupled to the peripheral control hub, the solid state drives each comprising respective mass storage memory and a respective configuration context;
- and,
- a system memory coupled to the system memory controller, the system memory to have allocated operating space for different application software programs executed by the plurality of processing cores, the system memory comprising program code outside of the solid state drives to be responsible for executing, by the plurality of processing cores, any of the following within each respective solid state drive of the plurality of solid state drives:
- wear leveling;
- garbage collection;
- logical block address (LBA) to physical block address (PBA) translation;
- the solid state drive's negotiation for bandwidth arbitration;
- media block packing;
- redundancy;
- error detection;
- error correction;
- data refresh;
- encryption;
- configuration of a hardware accelerator within the solid state drive;
- configuring depth and/or service rate of a queue within the solid state drive;
- and
- snooping of a command queue and consolidating multiple commands for the solid state drive into single command,
- wherein the system memory comprises additional program code having visibility to the configuration context of each of the plurality of solid state drives, the additional program code for load balancing the solid state drives by at least determining an internal command queue state of each respective solid state drive of the plurality of solid state drives based on the respective configuration context, and when an internal command queue state of a first solid state drive of the plurality of solid state drives is indicative of being less full than a second of the solid state drives, sending a storage request to the first solid state drive.
18 more elements
A method, comprising:
- executing solid state drive program code from system memory of a computing system with at least one of a plurality of processing cores, the system memory to have allocated operating space outside of a plurality of solid state drives, the solid state drives each comprising respective mass storage memory and a respective configuration context and each solid state drive is coupled to the computing system for different application software programs executed by the plurality of processing cores, the executing of the solid state drive program code is to execute, by the plurality of processing cores, any/all of the following for each respective solid state drive of the plurality of solid state drives that is coupled to the computing system:
- wear leveling;
- garbage collection;
- logical block address (LBA) to physical block address (PBA) translation;
- the solid state drive's negotiation for bandwidth arbitration;
- media block packing;
- redundancy;
- error detection;
- data refresh;
- encryption;
- configuration of a hardware accelerator within the solid state drive;
- configuring depth and/or service rate of a queue within the solid state drive;
- and,
- snooping of the solid state drive's command queue and consolidating multiple commands for the solid state drive into a single command,
- wherein the system memory comprises additional program code having visibility to the configuration context of each of the plurality of solid state drives, the additional program code for load balancing the solid state drives by at least determining an internal command queue state of each respective solid state drive of the plurality of solid state drives based on the respective configuration context, and when an internal command queue state of a first solid state drive of the plurality of solid state drives is indicative of being less full than a second of the solid state drives, sending a storage request to the first solid state drive.
12 more elements
An apparatus, comprising:
- a plurality of solid state drives, the solid state drives each comprising respective mass storage memory and is to receive a request for information from a host system that each solid state drive is coupled to, the information describing each solid state drive's respective internal context, the plurality of solid state drives to internally fetch the information in response and then send the information to the host system wherein the information is responsible for executing, by the host system, any of the following performed outside of the plurality of solid state drives for each respective solid state drive:
- wear leveling;
- garbage collection;
- logical block address (LBA) to physical block address (PBA) translation;
- the solid state drive's negotiation for bandwidth arbitration;
- media block packing;
- redundancy;
- error detection;
- error correction;
- data refresh;
- encryption;
- configuration of a hardware accelerator within the solid state drive;
- configuring depth and/or service rate of a queue within the solid state drive;
- and,
- snooping of a command queue and consolidating multiple solid state drive commands into a single command,
- wherein the host system is configured for load balancing the solid state drives by at least determining an internal command queue state of each respective solid state drive of the plurality of solid state drives based on the internal context, and when an internal command queue state of a first solid state drive of the plurality of solid state drives is indicative of being less full than a second of the solid state drives, sending a storage request to the first solid state drive.
13 more elements
Dependencies are inferred from the claim text.