USAGE OF A FLAG BIT TO SUPPRESS DATA TRANSFER IN A MASS STORAGE SYSTEM HAVING NON-VOLATILE MEMORY
First Claim
1. A method for performing non-data transfer access commands, the method comprising:
- receiving information from a non-volatile memory (“
NVM”
) indicating that the NVM supports a flag bit command format;
saving access commands in a queue stored in volatile memory, wherein at least a subset of the access commands are non-data transfer access commands, and wherein each non-data transfer access command comprises a flag bit that is set to indicate one of lack of data association and that no data transfer is desired; and
dispatching each of the access commands in the queue, wherein dispatches associated with the non-data transfer access commands have zero latencies.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory (“NVM”). In some embodiments, a host of the system can issue queue-able trim commands by dispatching non-data transfer write commands to the NVM. In some embodiments, the host can track the read behavior of a particular application over a period of time. As a result, the host can maintain heuristics of logical sectors that are most frequently read together. The host can then notify the NVM to pre-fetch data that the application will most likely request at some point in the future. These notifications can take the form of non-data transfer read commands. Each non-data transfer read commands can include a flag bit that is set to indicate that no data transfer is desired.
-
Citations
24 Claims
-
1. A method for performing non-data transfer access commands, the method comprising:
-
receiving information from a non-volatile memory (“
NVM”
) indicating that the NVM supports a flag bit command format;saving access commands in a queue stored in volatile memory, wherein at least a subset of the access commands are non-data transfer access commands, and wherein each non-data transfer access command comprises a flag bit that is set to indicate one of lack of data association and that no data transfer is desired; and dispatching each of the access commands in the queue, wherein dispatches associated with the non-data transfer access commands have zero latencies. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system comprising:
-
a non-volatile memory (“
NVM”
);a bus; a bus controller operative to communicate with the NVM over the bus; and control circuitry operative to; determine deterministic read patterns associated with a plurality of logical block addresses (“
LBAs”
) based on past read commands issued by an application;receive a data request from the application, wherein the data request has a LBA range that is associated with a deterministic read pattern of the deterministic read patterns; direct the bus controller to dispatch a data transfer read command associated with the LBA range to the NVM over the bus; determine at least one additional LBA range based on the deterministic read pattern; and direct the bus controller to dispatch at least one non-data transfer read command associated with the at least one additional LBA range to the NVM over the bus. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A memory interface for accessing a non-volatile memory (“
- NVM”
), the memory interface comprising;a bus controller operative to communicate with the NVM; and control circuitry operative to; track read behavior of an application over a period of time to determine non-random read patterns; upon receiving a data request corresponding to a logical block address (“
LBA”
) range from the application, determine a plurality of LBA ranges that are highly associated with the LBA range based on the non-random read patterns; anddirect the bus controller to dispatch a set of non-data transfer read commands associated with the plurality of LBA ranges across a bus, thereby allowing the NVM to pre-fetch data associated with the plurality of LBA ranges without transmitting the data to the control circuitry. - View Dependent Claims (23, 24)
- NVM”
Specification