Legal claims defining the scope of protection, as filed with the USPTO.
1. A data storage device comprising: one or more memory devices; and a controller comprising a first timestamp register and a command queue, wherein the controller is configured to: place the command queue in a non-command fetching mode, wherein the command queue includes one or more pending commands; receive a notification of a first command from a host; and record a first timestamp in the first timestamp register corresponding to a time of receipt of the notification of the first command, wherein the first timestamp is attached to the first command and a subsequently received command, and wherein the subsequently received command is received after the command queue is transitioned from the non-command fetching mode to a command fetching mode.
2. The data storage device of claim 1 , wherein the controller is further configured to: place the command queue in the command fetching mode; receive the first command; attach the first timestamp to the first command in the command queue; and set a priority of the first command based on an age of the first timestamp.
3. The data storage device of claim 1 , wherein the controller further comprises a command counter, and wherein: receiving the first command comprises receiving a plurality of commands; and recording the first timestamp comprises: recording the first timestamp in the first timestamp register corresponding to a time of receipt of each one of the plurality of commands; and incrementing the command counter for each respective one of the plurality of commands.
4. The data storage device of claim 3 , wherein the controller is further configured to: attach the first timestamp to each respective one of the plurality of commands; and set a priority of each command of the plurality of commands based on an age of each respective one of the plurality of commands.
5. The data storage device of claim 3 , wherein the controller further comprises a second timestamp register, wherein the controller is further configured to: set the second timestamp register at a second time; attach the first timestamp to a first group of the plurality of commands; attach the second timestamp to a second group of the plurality of commands; and set a priority of each command of the plurality of commands based on the attached first timestamp and second timestamp of each command of the plurality of commands.
6. The data storage device of claim 3 , wherein the controller further comprises a second timestamp register, and wherein the controller is further configured to: set the second timestamp register at a second timestamp; set a plurality of timestamp values from the first timestamp to the second timestamp; set each command of the plurality of commands to one of the plurality of timestamp values; and set a priority of each command of the plurality of commands based on each respective one of the plurality of timestamp values of each command of the plurality of commands.
7. A data storage device comprising: one or more memory devices; and a controller comprising a first timestamp register, a command queue, a command counter, and a second timestamp register, wherein the controller is configured to: place the data storage device in a non-command fetching mode; receive a first command from a host; record a first timestamp in the first timestamp register corresponding to a time of receipt of the first command; wherein: receiving the first command comprises receiving a plurality of commands; and recording the first timestamp comprises: recording the first timestamp in the first timestamp register corresponding to a time of receipt of each one of the plurality of commands; and incrementing the command counter for each respective one of the plurality of commands; set the second timestamp register at a second timestamp; generate an average timestamp time based on the first timestamp and second timestamp; attach one of the first timestamp, the second timestamp, and the average timestamp to each respective one of the plurality of commands; and set a priority of each command of the plurality of commands based on the respective first timestamp, second timestamp, and average timestamp attached to each command of the plurality of commands.
8. The data storage device of claim 7 , wherein the controller is further configured to attach the average timestamp to a first command of the plurality of commands that is not the first command to arrive.
9. The data storage device of claim 8 , wherein the controller is further configured to attach the second timestamp to a second command of the plurality of commands that arrives last.
10. A data storage device, comprising: a host I/O; a memory I/O coupling a controller to one or more memories; a first timestamp register; and a command queue, wherein the command queue includes one or more pending commands, and wherein the controller is configured to: place the data storage device in an idle mode; receive a notification of a first command from a host; and generate a first timestamp in the first timestamp register corresponding to a time of receipt of the notification, wherein the first timestamp is attached to the first command and a subsequently received command, and wherein the subsequently received command is received after the command queue is taken out of the idle mode.
11. The data storage device of claim 10 , wherein the controller is further configured to: take the data storage device out of the idle mode; fetch a first command from the host, corresponding to the notification; obtain the first timestamp from the first timestamp register; attach the first timestamp to the first command; and prioritize the first command based on an age of the first timestamp to a first priority.
12. The data storage device of claim 10 , wherein the controller further comprises a command counter, and wherein: receiving the notification comprises receiving a plurality of notifications from the host, each notification being associated with at least one command; generating the first timestamp comprises generating a plurality of timestamps in the timestamp register, each timestamp of the plurality of timestamps corresponding to a time receipt of each respective one of the plurality of notifications; and incrementing the command counter for each command of each respective one of the plurality of notifications.
13. The data storage device of claim 12 , wherein the controller is further configured to: attach each one of the plurality of timestamps to each command of every respective one of the notifications; prioritize each command based on an age of each respective one of the plurality of timestamps; fetch each command from the host; and execute each command based on the prioritizing.
14. The data storage device of claim 12 , wherein the controller further comprises a second timestamp register, and wherein the controller is further configured to: set the second timestamp register at a second time; set the first timestamp to a first group of the plurality of commands; set the second timestamp to a second group of the plurality of commands; prioritize each command of the plurality of commands based on the first timestamp and second timestamp of each command; fetch each command from the host; and execute each command based on the prioritizing.
15. The data storage device of claim 12 , wherein the controller further comprises a second timestamp register, and wherein the controller is further configured to: generate a second timestamp for the second timestamp register at a second timestamp; provide a plurality of timestamps between the first timestamp and the second timestamp; assign each notification of the plurality of notifications to one of the plurality of timestamps; and prioritize each command associated with each respective one of the plurality of notifications based on the plurality of timestamps.
16. A data storage device, comprising: a host I/O; a memory I/O coupling a controller to one or more memories; a first timestamp register; a command queue; and a command counter, wherein the controller is configured to: place the data storage device in an idle mode; receive a first doorbell request from a host, wherein receiving the first doorbell requests comprises receiving a plurality of doorbell requests, each doorbell request comprising at least one command; generate a first timestamp in the first timestamp register corresponding to a time of receipt of the first doorbell request, wherein generating the first timestamp comprises generating a plurality of timestamps in the timestamp register, each timestamp of the plurality of timestamps corresponding to a time receipt of each respective one of the plurality of doorbell requests; increment the command counter for each command of each respective one of the plurality of doorbell requests; generate a second timestamp for the second timestamp register; calculate an average timestamp based on the first timestamp and second timestamp; provide, for each respective one of the plurality of commands, one of the first timestamp, the second timestamp, and the average timestamp; and prioritize each command of the plurality of commands based on one of the provided first timestamp, second timestamp, and average timestamp, provided to each command.
17. The data storage device of claim 16 , wherein the controller is further configured to provide the average timestamp to at least one command of the plurality of commands that is not the first command.
18. The data storage device of claim 16 , wherein the controller is further configured to provide the second timestamp to at least one command of the plurality of commands that is not the first command.
19. A data storage device, comprising: a memory means; and a controller coupled to the memory means, the controller comprising: a first timestamp register; and a command queue, wherein the command queue includes one or more pending commands, and wherein the controller is configured to: place the data storage device in a non-command fetching mode; receive a notification of a first command from a host; and record a first timestamp in the first timestamp register corresponding to a time of receipt of the notification, wherein the first timestamp is attached to the first command and a subsequently received command, and wherein the subsequently received command is received after the command queue is transitioned from the non-command fetching mode to a command fetching mode.
20. The data storage device of claim 19 , wherein the controller is further configured to: place the data storage device in the command fetching mode; receive the first command; attach the first timestamp to the first command; and set a priority of the first command based on an age of the first timestamp.
Unknown
July 19, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.