IP Library Granted Patent US 10,558,393
Granted Patent B2
US 10,558,393 · App. 15/789,903 · Granted Feb 11, 2020

Controller hardware automation for host-aware performance booster

Inventors: Hyunsuk Shin (San Diego, CA); David Teb (Haifa, IL); Hung Vuong (Carlsbad, CA)
Assignee: Qualcomm Incorporated
G06F3/0659G06F3/0626G06F3/0658G06F3/0661G06F3/0688G06F12/0246G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,558,393
App. No.
15/789,903
Granted
Feb 11, 2020
Kind
B2
Abstract

A system is proposed to enable a hardware based host controller to perform operations related to Host-aware Performance booster (HPB). The host controller may retrieve a command packet from a host memory targeting a logical address of a storage location of the storage device, may retrieve a physical address of the storage device mapped to the logical address from the address map, and may send the command packet to the storage device. The sent command packet may have the physical address incorporated therein.

Claims (143)

1. An apparatus, comprising:

a host configured to communicate with a storage device, the host comprising:

a host controller configured to communicate with a host driver and with the storage device; and

a host memory configured to store an address map for the storage device, the address map comprising one or more L2P (logical-to-physical) address translation entries for the storage device,

wherein the host controller is configured to:

retrieve a command packet prepared by the host driver from the host memory, the command packet targeting a logical address of a storage location of the storage device,

retrieve a physical address of the storage device mapped to the logical address from the address map, and

send the command packet to the storage device, the sent command packet having the physical address incorporated therein, and

wherein the command packet in the host memory prior to being retrieved by the host controller does not include the physical address.

2. The apparatus of claim 1 , wherein the host controller is implemented in hardware.

3. The apparatus of claim 1 , wherein the host driver is implemented through a processor executing instructions of a device driver software.

4. The apparatus of claim 1 , wherein the host controller is configured to:

receive a response packet from the storage device,

store the response packet in the host memory,

raise an interrupt to the host driver indicating that the response packet is in the host memory,

determine if the response packet includes a map update information, and

upon determining that the response packet includes the map update information, update the address map in the host memory based on the map update information in the response packet.

5. The apparatus of claim 4 , wherein the host controller is configured to strip the map update information from the response packet prior to storing the response packet in the host memory.

6. The apparatus of claim 4 , wherein upon determining that the response packet includes the map update information, the host controller is configured to send an acknowledge packet to the storage device, the acknowledge packet indicating an acknowledgment of a receipt of the map update information.

7. The apparatus of claim 6 , wherein the acknowledge packet is not stored in the host memory.

8. The apparatus of claim 1 , wherein the host controller is configured to:

receive a response packet from the storage device,

store the response packet in the host memory,

raise an interrupt to the host driver indicating that the response packet is in the host memory,

determine if the response packet includes a map update notice, and

upon determining that the response packet includes the map update notice,

send a map command packet based on the map update notice to the storage device,

receive a map response packet corresponding to the map command packet from the storage device, and

update the address map in the host memory based on a map update information in the map response packet.

9. The apparatus of claim 8 , wherein the host controller is configured to strip the map update notice from the response packet prior to storing the response packet in the host memory.

10. The apparatus of claim 1 , wherein the host controller is configured to operate in compliance with a universal flash storage (UFS) standard.

11. The apparatus of claim 1 , wherein the apparatus is incorporated into a device selected from a group consisting of a music player, a video player, an entertainment unit, a navigation device, a communications device, a mobile device, a mobile phone, a smartphone, a personal digital assistant, a fixed location terminal, a tablet computer, a computer, a wearable device, a laptop computer, a server, and a device in an automotive vehicle.

12. The apparatus of claim 1 , wherein the host controller is configured to retrieve the command packet from the host memory in response to receiving a trigger from the host driver after the command packet has been prepared in the host memory by the host driver.

13. An apparatus, comprising:

a host and a storage device configured to communicate with each other,

wherein the host comprises:

a host controller configured to communicate with a host driver and with the storage device; and

a host memory configured to store an address map for the storage device, the address map comprising one or more L2P (logical-to-physical) address translation entries for the storage device, and

wherein the host controller is configured to:

retrieve a command packet prepared by the host driver from the host memory, the command packet targeting a logical address of a storage location of the storage device,

retrieve a physical address of the storage device mapped to the logical address from the address map, and

send the command packet to the storage device, the sent command packet having the physical address incorporated therein, and

wherein the command packet in the host memory prior to being retrieved by the host controller does not include the physical address.

14. The apparatus of claim 13 ,

wherein the host controller is implemented in hardware, and

wherein the host driver is implemented through a processor executing instructions of a device driver software.

15. The apparatus of claim 13 , wherein the storage device comprises:

a VMEM (volatile memory) configured to store at least a portion of an L2P map of the storage device; and

an NVMEM (non-volatile memory) configured to store data and an entirety of the L2P map of the storage device,

wherein the storage device is configured to:

receive the command packet from the host,

access the NVMEM in accordance with the physical address in the command packet, and

send a response packet to the host, the response packet indicating a success or a failure of accessing the NVMEM.

16. The apparatus of claim 15 ,

wherein the storage device is configured to:

determine if the L2P map of the storage device has changed, and

upon determining that the L2P map has changed, incorporate a map update information into the response packet such that the response packet sent to the host includes the map update information, the map update information reflecting the change or changes to the L2P map, and

wherein the host controller is configured to:

receive the response packet from the storage device,

store the response packet in the host memory,

raise an interrupt to the host driver indicating that the response packet is in the host memory, and

update the address memory in the host memory based on the map update information in the response packet.

17. The apparatus of claim 16 , wherein the host controller is configured to strip the map update information from the response packet prior to storing the response packet in the host memory.

18. The apparatus of claim 16 , wherein the host controller is configured to send an acknowledge packet to the storage device, the acknowledge packet indicating an acknowledgment of a receipt of the map update information.

19. The apparatus of claim 15 ,

wherein the storage device is configured to:

determine if the L2P map of the storage device has changed,

upon determining that the L2P map has changed, incorporate a map update notice into the response packet such that the response packet sent to the host includes the map update notice, the map update notice indicating that the L2P map has changed,

receive a map command packet from the host, and

send a map response packet to the host, the map response packet including a map update information reflecting the change or changes to the L2P map, and

wherein the host controller is configured to:

receive the response packet from the storage device,

store the response packet in the host memory,

raise an interrupt to the host driver indicating that the response packet is in the host memory,

send the map command packet to the storage device,

receive the map response packet from the storage device, and

update the address map in the host memory based on the map update information in the map response packet.

20. The apparatus of claim 19 , wherein the host controller is configured to strip the map update information from the response packet prior to storing the response packet in the host memory.

21. The apparatus of claim 13 , wherein one or both of the host controller and the storage device are configured to operate in compliance with a universal flash storage (UFS) standard.

22. The apparatus of claim 13 , wherein the apparatus is incorporated into a device selected from a group consisting of a music player, a video player, an entertainment unit, a navigation device, a communications device, a mobile device, a mobile phone, a smartphone, a personal digital assistant, a fixed location terminal, a tablet computer, a computer, a wearable device, a laptop computer, a server, and a device in an automotive vehicle.

23. The apparatus of claim 13 , wherein the host controller is configured to retrieve the command packet from the host memory in response to receiving a trigger from the host driver after the command packet has been prepared in the host memory by the host driver.

24. A method of an apparatus comprising a host and storage device configured to communicate with each other, the method comprising:

retrieving, by a host controller of the host, a command packet prepared by a host driver of the host from a host memory of the host, the command packet targeting a logical address of a storage location of the storage device;

retrieving, by the host controller, a physical address of the storage device mapped to the logical address from an address map for the storage device stored in the host memory, the address map comprising one or more L2P (logical-to-physical) address translation entries for the storage device; and

sending, by the host controller, the command packet to the storage device, the sent command packet having the physical address incorporated therein,

wherein the command packet in the host memory prior to being retrieved by the host controller does not include the physical address,

wherein the host controller is implemented in hardware, and

wherein the host driver is implemented through a processor executing instructions of a device driver software.

25. The method of claim 24 , further comprising:

receiving, by the storage device, the command packet from the host;

accessing, by the storage device, an NVMEM (non-volatile memory) of the storage device in accordance with the physical address in the command packet,

generating, by the storage device, a response packet indicating a success or a failure of accessing the NVMEM, and

sending, by the storage device, the response packet to the host.

26. The method of claim 25 , further comprising:

determining, by the storage device, if an L2P map of the storage device has changed;

incorporating, by the storage device, a map update information into the response packet upon determining that the L2P map has changed such that the response packet sent to the host includes the map update information, the map update information reflecting the change or changes to the L2P map;

receiving, by the host controller, the response packet from the storage device;

storing, by the host controller, the response packet in the host memory;

raising, by the host controller, an interrupt to the host driver indicating that the response packet is in the host memory;

updating, by the host controller, the address map in the host memory based on the map update information in the response packet; and

sending, by the host controller, an acknowledge packet to the storage device, the acknowledge packet indicating an acknowledgment of a receipt of the map update information.

27. The method of claim 26 , further comprising stripping, by the host controller, the map update information from the response packet prior to storing the response packet in the host memory.

28. The method of claim 25 , further comprising:

determining, by the storage device, if an L2P map of the storage device has changed;

incorporating, by the storage device, a map update notice into the response packet upon determining that the L2P map has changed such that the response packet sent to the host includes the map update notice, the map update notice indicating that the L2P map has changed;

receiving, by the host controller, the response packet from the storage device;

storing, by the host controller, the response packet in the host memory;

raising, by the host controller, an interrupt to the host driver indicating that the response packet is in the host memory;

sending, by the host controller, a map command packet to the storage device based on the map update notice;

receiving, by the storage device, the map command packet from the host;

sending, by the storage device, a map response packet to the host, the map response packet including a map update information reflecting the change or changes to the L2P map;

receiving, by the host controller, the map response packet from the storage device; and

updating, by the host controller, the address map in the host memory based on the map update information in the map response packet.

29. The method of claim 24 , further comprising:

receiving a trigger from the host driver after the command packet has been prepared in the host memory by the host driver,

wherein the host controller retrieves the command packet from the host memory in response to receiving the trigger from the host driver.

30. An apparatus, comprising:

a host configured to communicate with a storage device, the host comprising:

means for communicating with a host driver and with the storage device; and

means for storing an address map for the storage device, the address map comprising one or more L2P (logical-to-physical) address translation entries for the storage device,

wherein the means for communicating:

retrieves a command packet prepared by the host driver from the means for storing, the command packet targeting a logical address of a storage location of the storage device;

retrieves a physical address of the storage device mapped to the logical address from the address map; and

sends the command packet to the storage device, the sent command packet having the physical address incorporated therein,

wherein the command packet in the means for storing prior to being retrieved by the means for communicating does not include the physical address,

wherein the means for communicating is implemented in hardware, and

wherein the host driver is implemented through a processor executing instructions of a device driver software.

31. The apparatus of claim 30 , wherein the means for communicating:

retrieves a response packet from the storage device;

stores the response packet in the means for storing;

raises an interrupt to the host driver indicating that the response packet is in the means for storing;

updates the address map in the means for storing based on a map update information in the response packet; and

sends an acknowledge packet to the storage device, the acknowledge packet indicating an acknowledgment of a receipt of the map update information.

32. The apparatus of claim 31 , wherein the means for communicating strips the map update information from the response packet prior to storing the response packet in the means for storing.

33. The apparatus of claim 30 , wherein the means for communicating:

receives a response packet from the storage device;

stores the response packet in the means for storing;

raises an interrupt to the host driver indicating that the response packet is in the means for storing;

sends a map command packet to the storage device based on a map update notice in the response packet;

receives a map response packet from the storage device; and

updates the address map in the means for storing based on a map update information in the map response packet.

34. The apparatus of claim 33 , wherein the means for communicating strips the map update notice from the response packet prior to storing the response packet in the means for storing.

35. The apparatus of claim 30 , wherein the means for communicating retrieves the command packet from the means for storing in response to receiving a trigger from the host driver after the command packet has been prepared in the means for storing by the host driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: SHIN, HYUNSUK; TEB, DAVID; VUONG, HUNG
To: QUALCOMM INCORPORATED
Reel/Frame 044267/0235 →
Continuity (1)
Related Publication 20190121540A1 · Apr 25, 2019