WO2021252015A1 - Systems and methods for configuring a data storage device - Google Patents

Systems and methods for configuring a data storage device Download PDF

Info

Publication number
WO2021252015A1
WO2021252015A1 PCT/US2020/066120 US2020066120W WO2021252015A1 WO 2021252015 A1 WO2021252015 A1 WO 2021252015A1 US 2020066120 W US2020066120 W US 2020066120W WO 2021252015 A1 WO2021252015 A1 WO 2021252015A1
Authority
WO
WIPO (PCT)
Prior art keywords
host
storage device
identifier
data elements
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2020/066120
Other languages
French (fr)
Inventor
Judah Gamliel Hahn
Shay Benisty
Ariel Navon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Priority to CN202080079727.7A priority Critical patent/CN114730284B/en
Priority to DE112020004961.2T priority patent/DE112020004961T5/en
Publication of WO2021252015A1 publication Critical patent/WO2021252015A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Definitions

  • Embodiments of the present disclosure generally relate to a data storage device, and more particularly to configuration of a data storage device.
  • each device Upon the manufacture of a data storage device, each device is provided with a default configuration.
  • the device In order to prepare the device for sale to a particular customer, the device is typically configured for that customer’s needs, that depend upon host systems sold by that customer (i.e., an OEM customer), or in the case of the retail customer, a generic configuration.
  • the configuration can comprise two types of configuration, a ‘quirk’ configuration that adjusts native operating parameters of the storage device relative to a host computer system in which the storage device is installed, and a ‘persona’ that configures the device with additional functionality beyond native operating parameters.
  • Personas can include custom functionality such as use of an opcode in a particular manner, power loss notification, QoS requirements, thermal thresholds that are not standard for a device, timeout values, and the like, typically relevant to a particular OEM customer.
  • a data storage device may obtain information about a host system in to which it is installed, and the customer related to that host system, so that it may self-configure for operation in that host.
  • the present disclosure generally relates to systems and methods by which a data storage device may receive data about the host system in which it is installed, and the customer associated with that system. Based upon this received data, the data storage device may modify its native operating parameters and custom functions to enable more optimal operation with the host system.
  • a data storage device includes a controller that includes a data storage device operating parameter configured to configure a native function of the data storage device, where the controller is configured to receive a host identifier from a host.
  • the data storage device further includes a database that includes a plurality of host identifier data elements and a plurality of device configuration data elements, where each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements.
  • the controller is further configured to obtain the host identifier from the host, match the host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter.
  • a data storage device includes a controller that includes a custom configuration memory configured to configure non-native functionality of the data storage device, where the controller is configured to receive a customer identifier from a host.
  • the data storage device further includes a database that includes a plurality of customer identifier data elements and a plurality of custom configuration data elements defining non native functionality of the data storage device, where each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements.
  • the controller is further configured to obtain the customer identifier from the host, match the customer identifier to one of the plurality of customer identifier data elements, and write a corresponding one of the plurality of non-native configuration data elements to the custom configuration memory.
  • a data storage device includes a data base that includes a plurality of host identifier data elements, a plurality of customer identifier data elements, a plurality of custom configuration data elements, each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements, and a plurality of operating parameter configuration data elements, each of the plurality of operating parameter data elements corresponding to a respective one of the plurality of host identifier data elements.
  • the data storage device further includes a means for receiving a customer identifier from a host, a means for matching the customer identifier to one of the plurality of customer identifier data elements, and a means for modifying a controller of the data storage device based on the custom configuration data element corresponding to the one of the plurality of customer identifier data elements.
  • Figure 1 is a schematic illustration of a computing system including a host device and a storage device, according to disclosed embodiments.
  • Figure 2 is a schematic illustration of a data storage device, according to disclosed embodiments.
  • Figure 3 depicts a host block diagram according to disclosed embodiments.
  • Figure 4 depicts a flow diagram for modifying/customization of a storage device, according to disclosed embodiments.
  • Figure 5 depicts a flow diagram for configuration of a storage device, according to disclosed embodiments.
  • Figure 6 depicts a method for configuration of a storage device, according to disclosed embodiments.
  • the present disclosure generally relates to systems and methods by which a data storage device may receive data about the host system in which it is installed, and the customer associated with that system. Based upon this received data, the data storage device may modify its native operating parameters and custom functions to enable more optimal operation with the host system.
  • FIG. 1 is a schematic block diagram illustrating a storage system 100 in which data storage device 106 may function as a storage device for a host device 104, in accordance with one or more techniques of this disclosure.
  • the host device 104 may utilize non-volatile memory devices 110 included in data storage device 106 to store and retrieve data.
  • the host device 104 comprises a host DRAM 138.
  • the storage system 100 may include a plurality of storage devices, such as the data storage device 106, which may operate as a storage array.
  • the storage system 100 may include a plurality of data storage devices 106 configured as a redundant array of inexpensive/independent disks (RAID) that collectively function as a mass storage device for the host device 104.
  • RAID redundant array of inexpensive/independent disks
  • the host device 104 may comprise any of a wide range of devices, including computer servers, network attached storage (NAS) units, desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as so-called “smart” phones, so-called “smart” pads, televisions, cameras, display devices, digital media players, video gaming consoles, video streaming device, and the like.
  • NAS network attached storage
  • the data storage device 106 includes a controller 108, non-volatile memory (NVM) 110, a power supply 111, volatile memory 112, an interface 114, and a buffer 116.
  • the controller 108 comprises an internal memory or buffer 116.
  • the data storage device 106 may include additional components not shown in Figure 1 for sake of clarity.
  • the data storage device 106 may include a printed board (PB) to which components of the data storage device 106 are mechanically attached and which includes electrically conductive traces that electrically interconnect components of the data storage device 106, or the like.
  • PB printed board
  • the physical dimensions and connector configurations of the data storage device 106 may conform to one or more standard form factors.
  • Some example standard form factors include, but are not limited to, 3.5” data storage device (e.g ., an HDD or SSD), 2.5” data storage device, 1.8” data storage device, peripheral component interconnect (PCI), PCI-extended (PCI-X), PCI Express (PCIe) (e.g., PCIe x1, x4, x8, x16, PCIe Mini Card, MiniPCI, etc.).
  • the data storage device 106 may be directly coupled (e.g., directly soldered) to a motherboard of the host device 104.
  • the interface 114 of the data storage device 106 may include one or both of a data bus for exchanging data with the host device 104 and a control bus for exchanging commands with the host device 104.
  • the interface 114 may operate in accordance with any suitable protocol.
  • the interface 114 may operate in accordance with one or more of the following protocols: advanced technology attachment (ATA) (e.g., serial-ATA (SATA) and parallel- ATA (PATA)), Fibre Channel Protocol (FCP), small computer system interface (SCSI), serially attached SCSI (SAS), PCI, and PCIe, non-volatile memory express (NVMe), OpenCAPI, GenZ, Cache Coherent Interface Accelerator (CCIX), Open Channel SSD (OCSSD), or the like.
  • ATA advanced technology attachment
  • SATA serial-ATA
  • PATA parallel- ATA
  • FCP Fibre Channel Protocol
  • SCSI small computer system interface
  • SAS serially attached SCSI
  • PCI PCI
  • NVMe non-volatile memory express
  • OpenCAPI OpenCAPI
  • GenZ Cache Coherent Interface Accelerator
  • OCSSD Open Channel SSD
  • the electrical connection of the interface 114 (e.g., the data bus, the control bus, or both) is electrically connected to the controller 108, providing electrical connection between the host device 104 and the controller 108, allowing data to be exchanged between the host device 104 and the controller 108.
  • the interface 114 may be a type of connection unit to transfer data to the data storage device 106 from the host device 104, and vice-versa.
  • Such connection units may be a USB-A connection, a USB-B connection, a mini USB-A connection, a mini USB-B connection, a micro USB-A connection, a micro USB-B connection, a USB-C connection, or a lightning connection.
  • the connection unit may comprise of several pins with a specialized usage.
  • connection units are utilized for various purposes such as isochronous transfers, interrupt transfers, and bulk transfers.
  • the term “bulk transfers” refers to large sporadic transfers using all remaining available bandwidth, but with no guarantees on bandwidth or latency. Bulk transfers are utilized when transferring files or data through a connection medium such as a USB cable. However, other methods of transferring data are available and the use of the term “USB cable” is not intended to be limiting.
  • a USB-A connection has 4 pins. Each pin is utilized for a specific purpose, such as a supply voltage pin, a data (-) pin, a data (+) pin, and a supply voltage ground pin. Other connection units may have more than or less than 4 pins and each pin may have a different usage.
  • the electrical connection of the interface 114 may also permit the data storage device 106 to receive power from the host device 104.
  • the power supply 111 may receive power from the host device 104 via the interface 114.
  • the data storage device 106 includes NVM 110, which may include a plurality of memory devices or memory units.
  • NVM 110 may be configured to store and/or retrieve data.
  • a memory unit of NVM 110 may receive data and a message from the controller 108 that instructs the memory unit to store the data.
  • the memory unit of NVM 110 may receive a message from the controller 108 that instructs the memory unit to retrieve data.
  • each of the memory units may be referred to as a die.
  • a single physical chip may include a plurality of dies (i.e., a plurality of memory units).
  • each memory unit may be configured to store relatively large amounts of data (e.g 128MB, 256MB, 512MB, 1GB, 2GB, 4GB, 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB, 1TB, etc.).
  • relatively large amounts of data e.g 128MB, 256MB, 512MB, 1GB, 2GB, 4GB, 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB, 1TB, etc.
  • each memory unit of NVM 110 may include any type of non-volatile memory devices, such as flash memory devices, phase- change memory (PCM) devices, resistive random-access memory (ReRAM) devices, magnetoresistive random-access memory (MRAM) devices, ferroelectric random-access memory (F-RAM), holographic memory devices, and any other type of non-volatile memory devices.
  • non-volatile memory devices such as flash memory devices, phase- change memory (PCM) devices, resistive random-access memory (ReRAM) devices, magnetoresistive random-access memory (MRAM) devices, ferroelectric random-access memory (F-RAM), holographic memory devices, and any other type of non-volatile memory devices.
  • the NVM 110 may comprise a plurality of flash memory devices or memory units.
  • Flash memory devices may include NAND or NOR based flash memory devices, and may store data based on a charge contained in a floating gate of a transistor for each flash memory cell.
  • the flash memory device may be divided into a plurality of blocks which may be divided into a plurality of pages.
  • Each block of the plurality of blocks within a particular memory device may include a plurality of NAND cells.
  • Rows of NAND cells may be electrically connected using a word line to define a page of a plurality of pages.
  • Respective cells in each of the plurality of pages may be electrically connected to respective bit lines.
  • NAND flash memory devices may be 2D or 3D devices, and may be single level cell (SLC), multi level cell (MLC), triple level cell (TLC), or quad level cell (QLC).
  • the controller 108 may write data to and read data from NAND flash memory devices at the page level and erase data from NAND flash memory devices at the block level.
  • the data storage device 106 includes a power supply 111, which may provide power to one or more components of the data storage device 106.
  • the power supply 111 may provide power to the one or more components using power provided by an external device, such as the host device 104.
  • the power supply 111 may provide power to the one or more components using power received from the host device 104 via the interface 114.
  • the power supply 111 may include one or more power storage components configured to provide power to the one or more components when operating in a shutdown mode, such as where power ceases to be received from the external device. In this way, the power supply 111 may function as an onboard backup power source.
  • the one or more power storage components include, but are not limited to, capacitors, super capacitors, batteries, and the like.
  • the amount of power that may be stored by the one or more power storage components may be a function of the cost and/or the size (e.g area / volume) of the one or more power storage components. In other words, as the amount of power stored by the one or more power storage components increases, the cost and/or the size of the one or more power storage components also increases.
  • the data storage device 106 also includes volatile memory 112, which may be used by controller 108 to store information. Volatile memory 112 may be comprised of one or more volatile memory devices. In some examples, the controller 108 may use volatile memory 112 as a cache.
  • the controller 108 may store cached information in volatile memory 112 until cached information is written to non-volatile memory 110.
  • volatile memory 112 may consume power received from the power supply 111.
  • volatile memory 112 include, but are not limited to, random-access memory (RAM), dynamic random access memory (DRAM), static RAM (SRAM), and synchronous dynamic RAM (SDRAM (e.g DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4, and the like)).
  • the data storage device 106 includes a controller 108, which may manage one or more operations of the data storage device 106. For instance, the controller 108 may manage the reading of data from and/or the writing of data to the NVM 110. In some embodiments, when the data storage device 106 receives a write command from the host device 104, the controller 108 may initiate a data storage command to store data to the NVM 110 and monitor the progress of the data storage command. The controller 108 may determine at least one operational characteristic of the storage system 100 and store the at least one operational characteristic to the NVM 110. In some embodiments, when the data storage device 106 receives a write command from the host device 104, the controller 108 temporarily stores the data associated with the write command in the internal memory before sending the data to the NVM 110.
  • FIG 2 is a schematic illustration of a data storage device 208, according to one embodiment.
  • Data storage device 208 comprises an interface 202 and a power allocation unit (PAU) 204.
  • the interface 202 may be the interface 114 of Figure 1.
  • the data storage device 208 further comprises an array of memory devices 206A-206N (collectively referred to as memory devices 206).
  • the notation “N” refers to the last memory device of a plurality of memory devices.
  • the memory devices 206 may be the non volatile memory 110 of Figure 1 or an NVMe storage device.
  • Each of the memory devices 206A-206N may be configured to store relatively large amounts of data (e.g., 128MB, 256MB, 512MB, 1GB, 2GB, 4GB, 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB, 1TB, etc.).
  • the listed data storage size of the memory devices is not intended to be limiting nor restricting.
  • memory devices 206A-206N are the same type and have the same data storage sizes.
  • memory devices 206A-206N are different types but have the same data storage sizes.
  • memory devices 206A-206N are different types and have different data storage sizes.
  • the power allocation unit 204 may be coupled with a controller (not shown), such as the controller 108 of Figure 1.
  • the PAU 204 appropriates power received from the host device, such as the host device 104 of Figure 1 , to each of the memory devices 206.
  • the controller 108 may determine the appropriate power state of each memory device 206A-206N, and the PAU 204 provides the corresponding power to each memory device 206A-206N.
  • the host device 104 may provide a suitable amount of power to the data storage device 208 through one or more pins on the interface 202.
  • the suitable amount of power may be more than or equal to the amount of power the data storage device 208 requires to operate.
  • the power a data storage device 208 may receive from the host device 104 may be about 5 W.
  • a data storage device 208 may draw out about 500mW to about 15W of power from the host device 104.
  • the previously mentioned values for power are not intended to be limiting, but to provide a reference.
  • a memory device 206A-206N may have several power states (PS).
  • PS power states
  • a memory device 206A-206N may have the following 5 power states: PS0, PS1, PS2, PS3, and PS4.
  • Each of the power states are associated with a distinct data storage device 208 operation.
  • Power states PS0, PS1, and PS2 are considered operational power states, utilizing about 1 W to about 8 W of power
  • power states PS3 and PS4 are considered non-operational power states, utilizing about 2 mW to about 50 mW of power.
  • An operational power state refers to the ability of a host device, such as the host device 104 of Figure 1, to communicate with a memory device 206A-206N of a data storage device 208.
  • Power states are numbered sequentially, where higher numbers represent lower power requirements and corresponding higher exit latencies. Furthermore, each power state has an associated power requirement and an exit latency.
  • PSO may require 4.5 W with the lowest exit latency.
  • PS1 may require less power than PSO, such as 3 W, and may have an exit latency equal to or higher than the exit latency of PSO.
  • PS2 may require less power than PS1 and may have an exit latency equal to or higher than the exit latency of PS1.
  • PS3 may require less power than PS2 and may have an exit latency equal to or higher than the exit latency of PS2.
  • PS4 may require less power than PS3, such as 5 mW, and may have an exit latency equal to or higher than the exit latency of PS3, such as 50 mW.
  • the values for the power states and exit latencies are not intended to be limiting, but to provide an example of possible embodiments.
  • PSO is referred to as a full operational state, where I/O commands are enabled and the device may generate interrupts. Interrupts in this context are a signal to the host that commands have been completed.
  • power states PS1 , PS2, PS3, and PS4 are considered low power states.
  • Power states PS1 and PS2 are also operational states, however, PS1 and PS2 may have a lower functionality than that of PSO.
  • Power states PS3 and PS4 are non- operational states have a power requirement less than that of the operational power states.
  • memory devices 206 not used are placed in a non- operational power state PS4 to limit the idle power consumption to a minimal value.
  • FIG. 3 depicts a system block diagram 300 according to disclosed embodiments.
  • the system block diagram 300 includes a host 302 and a controller 304 of storage device, such as the storage device 106 of Figure 1.
  • the host 302 may be connected to the interface, such as the interface 114 of Figure 1, of the storage device via a connection unit.
  • the connection unit facilitates the transfer of data, such as read or write commands, and/or power between the host 302 and the storage device.
  • the controller 304 receives the data from the host 302 and provisions system processing power to complete the host requests.
  • a host identification signal 308 and a customer identification signal 310 is sent to the controller 304.
  • the customer identification signal may be one or more of a manufacturer name, an asset tag, a host serial number or model number, or a vendor-defined unique value which identifies the customer.
  • the storage device may be connected to different host, such that the controller 304 assigns a host ID to each individual host. For example, the host 302 of the system block diagram 300 may be assigned the host ID A by the controller 304. If the storage device is disconnected from the host 302 and connected to a second host, the controller 304 may assign the host ID B to the second host.
  • the controller 304 recognizes each previous connection and associates each host with their respective host ID. Flowever, if a connection is made between a new host (e.g., no previous connections between the host and the storage device), the controller 304 assigns a new host ID (e.g., a host ID that has not been assigned) to the new host. Furthermore, when the controller 304 receives the customer identification signal 310, the controller 304 is able to determine customer specifications for the controller internal parameter configuration.
  • the one or more hosts are associated with one customer. In another embodiment, the one or more hosts are each associated with one or more customers. In yet another embodiment, any number of the one or more hosts are each associated with one or more customers.
  • the controller 304 includes a database 306, where the database 306 includes a configuration table.
  • the configuration table includes each host ID for and the host parameters associated with each host ID.
  • the host parameter table below illustrates an example of the host parameters. The listed host parameters in the host parameter table below are not intended to be limiting, but to provide an example of a possible embodiment.
  • the controller 304 accesses the database 306 to access the relevant data associated with the host.
  • An example of the configuration table of the database 306 is shown in the configuration table below.
  • the configuration table may include portions of the host parameter table discussed above as well as other applicable options.
  • the configuration table may have any number of columns, where the order of the columns (e.g., parameters) may be different in other embodiments.
  • the configuration table may include the above- indicated parameters and/or any one or more of vendor unique opcodes, max power in PSO, vendor unique log codes, enablement of optional PCIe features, critical temperatures, shut down temperatures, NVMe command timeouts, and/or host memory buffer size (e.g ., max size).
  • the controller 304 fetches the relevant entry associated with the host ID A from the database 306. After fetching the relevant entry, the controller 304 determines a customer-based configuration 312 and a host-based configuration 314 based on the parameters listed for the host 302.
  • the customer-based configuration 312 and the host-based configuration 314 may include one or more quirks, where each quirk is a workaround to address known issues in a specific environment.
  • the combination of one or more quirks may be unique to a specific host, such as the host 302.
  • the controller configuration to accommodate a quirk may be a particular setting that is a native to the device.
  • a customer device e.g., host
  • a customer device may have a requirement that a specific NVMe identification field be empty in the controller responses to the identify controller command, since this field is expected to remain empty in that host environment.
  • the security functionality of the storage device is intentionally disabled when attached to a specific customer device.
  • the customer device is referred to as the host for exemplary purposes, such that the host is the host 302 of the system block diagram 300.
  • a persona is a non-native function or a custom function for the device, such as an additional added feature.
  • An example of a persona may include a variety of features, such as the optional PCIe power loss notification feature, optional NVMe log pages, QoS (performance and trade-off), thermal thresholds, timeout values, low power timings, custom configurations, and possible workarounds.
  • the listed features are not intended to be limiting, but to provide an example of an embodiment. It is contemplated that other features not listed may be applicable to a persona.
  • the features listed above may be specific to one or more hosts.
  • the internal parameters of the controller 304 are configured based on the quirks and the persona.
  • the customer-based configuration 312 is a controller configuration specified by the customer and the host-based configuration 314 is a controller configuration unique to the host device, where the host-based configuration 314 includes parameters that satisfy the customer- based configuration 312 requirements.
  • Figure 4 depicts a flow diagram 400 for modification/customization of a storage device, according to disclosed embodiments.
  • the storage device may be the storage device 106 of Figure and/or the storage device 208 of Figure 2.
  • the storage device is unprovisioned, such that the configuration table of the database, such as the database 306 of Figure 3, does not have any entries.
  • the configuration table is empty.
  • the configuration table includes entries; however, the entries are for non-relevant configurations.
  • the controller such as the controller 304 of Figure 3, of the storage device is configured using a generic persona or a native persona.
  • a first host is connected to the storage device via a connection unit.
  • the host A sends metadata that includes host A identifiers to the controller of the storage device.
  • the host A identifiers are stored in the configuration table of the database.
  • the internal parameters of the controller are configured to match the quirks and the persona of the Flost A.
  • the storage device is transferred to a second host, host B.
  • the host B sends metadata that includes host B identifiers to the controller of the storage device.
  • the host B identifiers are stored in the configuration table of the database.
  • the configuration table of the database includes both host A identifiers and host B identifiers.
  • the internal parameters of the controller are configured to match the quirks and the persona of the host B. If the storage device is transferred back to the host A, the controller, after the host identification signal is sent, fetches the relevant entry for the host A host ID in the configuration table of the database.
  • the host ID A entry includes the quirks and persona for the host A.
  • the internal parameters of the controller are configured to match the quirks and the persona of the relevant host ID entry.
  • the controller may have logic to refrain from utilizing a persona that is not relevant to the host (e.g., the host and the persona are mismatched).
  • FIG. 5 depicts a flow diagram 500 for configuration of a storage device, according to disclosed embodiments.
  • the storage device may be the storage device 106 of Figure 1 and/or the storage device 208 of Figure 2.
  • the connection between the host, such as the host 302 of Figure 3, and the controller, such as the controller 304 of Figure 3, of the storage device is initiated.
  • the host is identified via a host identification signal, such as the host identification signal 308 of Figure 3.
  • the controller accesses the internal database, such as the database 306 of Figure 3, to fetch the relevant entry for the host ID associated with the host.
  • the host identification may also include information from the host parameter table of Figure 3.
  • the internal parameters of the controller are configured based relevant host ID entry, such that the controller is optimized for the persona associated with the host.
  • the configuration table of the database is optimized based on the host configuration. The optimization of the relevant entry for a host may be done by artificial intelligence (Al) or simplified machine learning.
  • the configuration table is updated with the optimized results from the process at block 508. If the host and/or the storage device powers down or resets at block 512, the process restarts at block 502 with the initialization of the connection between the host and the storage device. Flowever, if the host and the storage device both do not power down or reset at block 512, the configuration table is further optimized at block 508 and updated at block 510.
  • Figure 6 depicts a method 600 for configuration of a storage device, according to disclosed embodiments.
  • the storage device may be the storage device 106 of Figure 1 and/or the storage device 208 of Figure 2.
  • the controller such as the controller 304 of Figure 3 includes a database, such as the database 306 of Figure 3, to include one or more customer identifier data elements and one or more custom configurations, where each configuration is a persona that includes one or more quirks.
  • the one or more customer identifier elements correspond to one custom configuration of the one or more custom configurations.
  • the custom configuration associated with a host ID A is associated with only the host A (e.g., a customer A).
  • the storage device receives a host identification signal, such that the host identification signal includes the customer identifier.
  • the controller utilizes the customer identifier to identify which custom configuration will be applied to the controller at block 606.
  • the configuration table is updated with the custom configuration associated with the customer identifier for any customer identifier data elements missing or outdated.
  • the controller By including a database that includes a configuration table that stores and updates the information for each host connection, the controller is able to fetch the relevant persona and configure the internal parameters of the controller to match the host specifications.
  • the stability, the performance, the endurance, and the interoperability of the storage device is improved when the storage device is reused between one or more hosts.
  • a data storage device includes a controller that includes a data storage device operating parameter configured to configure a native function of the data storage device, where the controller is configured to receive a host identifier from a host.
  • the data storage device further includes a database that includes a plurality of host identifier data elements and a plurality of device configuration data elements, where each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements.
  • the controller is further configured to obtain the host identifier from the host, match the host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter.
  • the controller is further configured to obtain a second host identifier from a second host, match the second host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter.
  • the controller includes a custom function memory configured to define a non-native function of the data storage device.
  • the database further includes a plurality of customer identifier data elements and a plurality of custom configuration data elements, where each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements.
  • the controller is further configured to obtain the customer identifier, match the customer identifier to one of the plurality of customer identifier data elements, and write the corresponding one of the custom configuration data elements to the custom function memory.
  • the host identifier is comprised of the customer identifier.
  • the controller is configured to refrain from obtaining the host identifier after a power down of the host.
  • the controller is further configured to refrain from matching a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier.
  • the controller is further configured to match a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier.
  • a data storage device includes a controller that includes a custom configuration memory configured to configure non-native functionality of the data storage device, where the controller is configured to receive a customer identifier from a host.
  • the data storage device further includes a database that includes a plurality of customer identifier data elements and a plurality of custom configuration data elements defining non native functionality of the data storage device, where each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements.
  • the controller is further configured to obtain the customer identifier from the host, match the customer identifier to one of the plurality of customer identifier data elements, and write a corresponding one of the plurality of non-native configuration data elements to the custom configuration memory.
  • the controller is further configured to obtain a second customer identifier from a second host, match the second customer identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of non-native configuration data elements to the custom configuration memory.
  • the controller includes a data storage device operating parameter configured to configure a native function of the data storage device, where the controller further configured to receive a host identifier from the host.
  • the database further includes a plurality of host identifier data elements and a plurality of device configuration data elements, where each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements.
  • the controller is further configured to obtain the host identifier, match the host identifier to one of the plurality of host identifier data elements, and write the corresponding one of the device configuration data elements to the data storage device operating parameter.
  • the host identifier includes the customer identifier.
  • the controller is further configured to refrain from matching a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier.
  • the controller is further configured to write a default non-native configuration data element to the custom configuration memory if the second customer identifier is different from the customer identifier.
  • the controller is configured to obtain the customer identifier after a power down of the host.
  • the controller is further configured to match a second host identifier to one of the plurality of device configuration data elements if the second host identifier is different from the host identifier.
  • a data storage device includes a data base that includes a plurality of host identifier data elements, a plurality of customer identifier data elements, a plurality of custom configuration data elements, each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements, and a plurality of operating parameter configuration data elements, each of the plurality of operating parameter data elements corresponding to a respective one of the plurality of host identifier data elements.
  • the data storage device further includes a means for receiving a customer identifier from a host, a means for matching the customer identifier to one of the plurality of customer identifier data elements, and a means for modifying a controller of the data storage device based on the custom configuration data element corresponding to the one of the plurality of customer identifier data elements.
  • the data storage device further includes a means for receiving a host identifier from the host, a means for matching the host identifier to one of the plurality of host identifier data elements, and a means for modifying the controller based on the operating parameter configuration data element corresponding to the one of the plurality of host identifier data elements.
  • the data storage device also includes a means for receiving a second host identifier, a means for matching the second host identifier to one of the plurality of host identifier data elements, and a means for modifying the controller based on the second operating parameter configuration data element corresponding to the one of the plurality of host identifier data elements.
  • the data storage device further includes a means for receiving a second customer identifier, a means for matching the second customer identifier to one of the plurality of customer identifier data elements, and a means for modifying the controller based on a second custom configuration data element corresponding to the one of the plurality of customer identifier data elements.
  • One of the host identifier and the second host identifier includes one of a processor model, a chipset driver version, a product name, a firmware version, and a display driver version.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present disclosure generally relates to systems and methods by which a data storage device may receive data about the host system in which it is installed, and the customer associated with that system. Based upon this received data, the data storage device may modify its native operating parameters and custom functions to enable more optimal operation with the host system.

Description

SYSTEMS AND METHODS FOR CONFIGURING A DATA STORAGE
DEVICE
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to U.S. Application No. 16/898,119, filed June 10, 2020, which is incorporated by reference herein in its entirety.
BACKGROUND OF THE DISCLOSURE
Field of the Disclosure
[0002] Embodiments of the present disclosure generally relate to a data storage device, and more particularly to configuration of a data storage device.
Description of the Related Art
[0003] Upon the manufacture of a data storage device, each device is provided with a default configuration. In order to prepare the device for sale to a particular customer, the device is typically configured for that customer’s needs, that depend upon host systems sold by that customer (i.e., an OEM customer), or in the case of the retail customer, a generic configuration. The configuration can comprise two types of configuration, a ‘quirk’ configuration that adjusts native operating parameters of the storage device relative to a host computer system in which the storage device is installed, and a ‘persona’ that configures the device with additional functionality beyond native operating parameters. Personas can include custom functionality such as use of an opcode in a particular manner, power loss notification, QoS requirements, thermal thresholds that are not standard for a device, timeout values, and the like, typically relevant to a particular OEM customer.
[0004] Although many storage device manufacturers provide these configurations on storage devices they sell to their customers, problems may arise when such a device is used on a different host, or moved to a host system of a different OEM customer. In prior approaches, storage devices that are used in different hosts, or with different customers, than the drive was originally intended, the quirks and personas did not match well the host systems. This results in sub-optimal performance, or in some cases, an inability for the storage device to operate in the new host system.
[0005] What is needed are systems and methods by which a data storage device may obtain information about a host system in to which it is installed, and the customer related to that host system, so that it may self-configure for operation in that host.
SUMMARY OF THE DISCLOSURE
[0006] The present disclosure generally relates to systems and methods by which a data storage device may receive data about the host system in which it is installed, and the customer associated with that system. Based upon this received data, the data storage device may modify its native operating parameters and custom functions to enable more optimal operation with the host system.
[0007] In one embodiment, a data storage device includes a controller that includes a data storage device operating parameter configured to configure a native function of the data storage device, where the controller is configured to receive a host identifier from a host. The data storage device further includes a database that includes a plurality of host identifier data elements and a plurality of device configuration data elements, where each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements. The controller is further configured to obtain the host identifier from the host, match the host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter.
[0008] In another embodiment, a data storage device includes a controller that includes a custom configuration memory configured to configure non-native functionality of the data storage device, where the controller is configured to receive a customer identifier from a host. The data storage device further includes a database that includes a plurality of customer identifier data elements and a plurality of custom configuration data elements defining non native functionality of the data storage device, where each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements. The controller is further configured to obtain the customer identifier from the host, match the customer identifier to one of the plurality of customer identifier data elements, and write a corresponding one of the plurality of non-native configuration data elements to the custom configuration memory.
[0009] In another embodiment, a data storage device includes a data base that includes a plurality of host identifier data elements, a plurality of customer identifier data elements, a plurality of custom configuration data elements, each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements, and a plurality of operating parameter configuration data elements, each of the plurality of operating parameter data elements corresponding to a respective one of the plurality of host identifier data elements. The data storage device further includes a means for receiving a customer identifier from a host, a means for matching the customer identifier to one of the plurality of customer identifier data elements, and a means for modifying a controller of the data storage device based on the custom configuration data element corresponding to the one of the plurality of customer identifier data elements.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments.
[0011] Figure 1 is a schematic illustration of a computing system including a host device and a storage device, according to disclosed embodiments. [0012] Figure 2 is a schematic illustration of a data storage device, according to disclosed embodiments.
[0013] Figure 3 depicts a host block diagram according to disclosed embodiments.
[0014] Figure 4 depicts a flow diagram for modifying/customization of a storage device, according to disclosed embodiments.
[0015] Figure 5 depicts a flow diagram for configuration of a storage device, according to disclosed embodiments.
[0016] Figure 6 depicts a method for configuration of a storage device, according to disclosed embodiments.
[0017] To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.
DETAILED DESCRIPTION
[0018] In the following, reference is made to embodiments of the disclosure. Flowever, it should be understood that the disclosure is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice the disclosure. Furthermore, although embodiments of the disclosure may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the disclosure. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the disclosure” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s). [0019] The present disclosure generally relates to systems and methods by which a data storage device may receive data about the host system in which it is installed, and the customer associated with that system. Based upon this received data, the data storage device may modify its native operating parameters and custom functions to enable more optimal operation with the host system.
[0020] Figure 1 is a schematic block diagram illustrating a storage system 100 in which data storage device 106 may function as a storage device for a host device 104, in accordance with one or more techniques of this disclosure. For instance, the host device 104 may utilize non-volatile memory devices 110 included in data storage device 106 to store and retrieve data. The host device 104 comprises a host DRAM 138. In some examples, the storage system 100 may include a plurality of storage devices, such as the data storage device 106, which may operate as a storage array. For instance, the storage system 100 may include a plurality of data storage devices 106 configured as a redundant array of inexpensive/independent disks (RAID) that collectively function as a mass storage device for the host device 104.
[0021] The host device 104 may comprise any of a wide range of devices, including computer servers, network attached storage (NAS) units, desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as so-called “smart” phones, so-called “smart” pads, televisions, cameras, display devices, digital media players, video gaming consoles, video streaming device, and the like.
[0022] The data storage device 106 includes a controller 108, non-volatile memory (NVM) 110, a power supply 111, volatile memory 112, an interface 114, and a buffer 116. The controller 108 comprises an internal memory or buffer 116. In some examples, the data storage device 106 may include additional components not shown in Figure 1 for sake of clarity. For example, the data storage device 106 may include a printed board (PB) to which components of the data storage device 106 are mechanically attached and which includes electrically conductive traces that electrically interconnect components of the data storage device 106, or the like. In some examples, the physical dimensions and connector configurations of the data storage device 106 may conform to one or more standard form factors. Some example standard form factors include, but are not limited to, 3.5” data storage device ( e.g ., an HDD or SSD), 2.5” data storage device, 1.8” data storage device, peripheral component interconnect (PCI), PCI-extended (PCI-X), PCI Express (PCIe) (e.g., PCIe x1, x4, x8, x16, PCIe Mini Card, MiniPCI, etc.). In some examples, the data storage device 106 may be directly coupled (e.g., directly soldered) to a motherboard of the host device 104.
[0023] The interface 114 of the data storage device 106 may include one or both of a data bus for exchanging data with the host device 104 and a control bus for exchanging commands with the host device 104. The interface 114 may operate in accordance with any suitable protocol. For example, the interface 114 may operate in accordance with one or more of the following protocols: advanced technology attachment (ATA) (e.g., serial-ATA (SATA) and parallel- ATA (PATA)), Fibre Channel Protocol (FCP), small computer system interface (SCSI), serially attached SCSI (SAS), PCI, and PCIe, non-volatile memory express (NVMe), OpenCAPI, GenZ, Cache Coherent Interface Accelerator (CCIX), Open Channel SSD (OCSSD), or the like.
[0024] The electrical connection of the interface 114 (e.g., the data bus, the control bus, or both) is electrically connected to the controller 108, providing electrical connection between the host device 104 and the controller 108, allowing data to be exchanged between the host device 104 and the controller 108. The interface 114 may be a type of connection unit to transfer data to the data storage device 106 from the host device 104, and vice-versa. Such connection units may be a USB-A connection, a USB-B connection, a mini USB-A connection, a mini USB-B connection, a micro USB-A connection, a micro USB-B connection, a USB-C connection, or a lightning connection. The connection unit may comprise of several pins with a specialized usage. Furthermore, connection units are utilized for various purposes such as isochronous transfers, interrupt transfers, and bulk transfers. The term “bulk transfers” refers to large sporadic transfers using all remaining available bandwidth, but with no guarantees on bandwidth or latency. Bulk transfers are utilized when transferring files or data through a connection medium such as a USB cable. However, other methods of transferring data are available and the use of the term “USB cable” is not intended to be limiting.
[0025] For example, a USB-A connection has 4 pins. Each pin is utilized for a specific purpose, such as a supply voltage pin, a data (-) pin, a data (+) pin, and a supply voltage ground pin. Other connection units may have more than or less than 4 pins and each pin may have a different usage. In some examples, the electrical connection of the interface 114 may also permit the data storage device 106 to receive power from the host device 104. For example, as illustrated in Figure 1, the power supply 111 may receive power from the host device 104 via the interface 114.
[0026] The data storage device 106 includes NVM 110, which may include a plurality of memory devices or memory units. NVM 110 may be configured to store and/or retrieve data. For instance, a memory unit of NVM 110 may receive data and a message from the controller 108 that instructs the memory unit to store the data. Similarly, the memory unit of NVM 110 may receive a message from the controller 108 that instructs the memory unit to retrieve data. In some examples, each of the memory units may be referred to as a die. In some examples, a single physical chip may include a plurality of dies (i.e., a plurality of memory units). In some examples, each memory unit may be configured to store relatively large amounts of data ( e.g 128MB, 256MB, 512MB, 1GB, 2GB, 4GB, 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB, 1TB, etc.).
[0027] In some examples, each memory unit of NVM 110 may include any type of non-volatile memory devices, such as flash memory devices, phase- change memory (PCM) devices, resistive random-access memory (ReRAM) devices, magnetoresistive random-access memory (MRAM) devices, ferroelectric random-access memory (F-RAM), holographic memory devices, and any other type of non-volatile memory devices.
[0028] The NVM 110 may comprise a plurality of flash memory devices or memory units. Flash memory devices may include NAND or NOR based flash memory devices, and may store data based on a charge contained in a floating gate of a transistor for each flash memory cell. In NAND flash memory devices, the flash memory device may be divided into a plurality of blocks which may be divided into a plurality of pages. Each block of the plurality of blocks within a particular memory device may include a plurality of NAND cells. Rows of NAND cells may be electrically connected using a word line to define a page of a plurality of pages. Respective cells in each of the plurality of pages may be electrically connected to respective bit lines. Furthermore, NAND flash memory devices may be 2D or 3D devices, and may be single level cell (SLC), multi level cell (MLC), triple level cell (TLC), or quad level cell (QLC). The controller 108 may write data to and read data from NAND flash memory devices at the page level and erase data from NAND flash memory devices at the block level.
[0029] The data storage device 106 includes a power supply 111, which may provide power to one or more components of the data storage device 106. When operating in a standard mode, the power supply 111 may provide power to the one or more components using power provided by an external device, such as the host device 104. For instance, the power supply 111 may provide power to the one or more components using power received from the host device 104 via the interface 114. In some examples, the power supply 111 may include one or more power storage components configured to provide power to the one or more components when operating in a shutdown mode, such as where power ceases to be received from the external device. In this way, the power supply 111 may function as an onboard backup power source. Some examples of the one or more power storage components include, but are not limited to, capacitors, super capacitors, batteries, and the like. In some examples, the amount of power that may be stored by the one or more power storage components may be a function of the cost and/or the size ( e.g area / volume) of the one or more power storage components. In other words, as the amount of power stored by the one or more power storage components increases, the cost and/or the size of the one or more power storage components also increases. [0030] The data storage device 106 also includes volatile memory 112, which may be used by controller 108 to store information. Volatile memory 112 may be comprised of one or more volatile memory devices. In some examples, the controller 108 may use volatile memory 112 as a cache. For instance, the controller 108 may store cached information in volatile memory 112 until cached information is written to non-volatile memory 110. As illustrated in Figure 1, volatile memory 112 may consume power received from the power supply 111. Examples of volatile memory 112 include, but are not limited to, random-access memory (RAM), dynamic random access memory (DRAM), static RAM (SRAM), and synchronous dynamic RAM (SDRAM ( e.g DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4, and the like)).
[0031] The data storage device 106 includes a controller 108, which may manage one or more operations of the data storage device 106. For instance, the controller 108 may manage the reading of data from and/or the writing of data to the NVM 110. In some embodiments, when the data storage device 106 receives a write command from the host device 104, the controller 108 may initiate a data storage command to store data to the NVM 110 and monitor the progress of the data storage command. The controller 108 may determine at least one operational characteristic of the storage system 100 and store the at least one operational characteristic to the NVM 110. In some embodiments, when the data storage device 106 receives a write command from the host device 104, the controller 108 temporarily stores the data associated with the write command in the internal memory before sending the data to the NVM 110.
[0032] Figure 2 is a schematic illustration of a data storage device 208, according to one embodiment. Data storage device 208 comprises an interface 202 and a power allocation unit (PAU) 204. The interface 202 may be the interface 114 of Figure 1. The data storage device 208 further comprises an array of memory devices 206A-206N (collectively referred to as memory devices 206). The notation “N” refers to the last memory device of a plurality of memory devices. Furthermore, the memory devices 206 may be the non volatile memory 110 of Figure 1 or an NVMe storage device. Each of the memory devices 206A-206N may be configured to store relatively large amounts of data (e.g., 128MB, 256MB, 512MB, 1GB, 2GB, 4GB, 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB, 1TB, etc.). However, the listed data storage size of the memory devices is not intended to be limiting nor restricting. Furthermore, in one embodiment, memory devices 206A-206N are the same type and have the same data storage sizes. In another embodiment, memory devices 206A-206N are different types but have the same data storage sizes. In yet another embodiment, memory devices 206A-206N are different types and have different data storage sizes.
[0033] The power allocation unit 204 may be coupled with a controller (not shown), such as the controller 108 of Figure 1. The PAU 204 appropriates power received from the host device, such as the host device 104 of Figure 1 , to each of the memory devices 206. The controller 108 may determine the appropriate power state of each memory device 206A-206N, and the PAU 204 provides the corresponding power to each memory device 206A-206N.
[0034] The host device 104 may provide a suitable amount of power to the data storage device 208 through one or more pins on the interface 202. The suitable amount of power may be more than or equal to the amount of power the data storage device 208 requires to operate. For example, the power a data storage device 208 may receive from the host device 104 may be about 5 W. Furthermore, a data storage device 208 may draw out about 500mW to about 15W of power from the host device 104. The previously mentioned values for power are not intended to be limiting, but to provide a reference.
[0035] A memory device 206A-206N may have several power states (PS). For example, a memory device 206A-206N may have the following 5 power states: PS0, PS1, PS2, PS3, and PS4. Each of the power states are associated with a distinct data storage device 208 operation. Power states PS0, PS1, and PS2 are considered operational power states, utilizing about 1 W to about 8 W of power, whereas power states PS3 and PS4 are considered non-operational power states, utilizing about 2 mW to about 50 mW of power. An operational power state refers to the ability of a host device, such as the host device 104 of Figure 1, to communicate with a memory device 206A-206N of a data storage device 208. [0036] Power states are numbered sequentially, where higher numbers represent lower power requirements and corresponding higher exit latencies. Furthermore, each power state has an associated power requirement and an exit latency. PSO may require 4.5 W with the lowest exit latency. PS1 may require less power than PSO, such as 3 W, and may have an exit latency equal to or higher than the exit latency of PSO. PS2 may require less power than PS1 and may have an exit latency equal to or higher than the exit latency of PS1. PS3 may require less power than PS2 and may have an exit latency equal to or higher than the exit latency of PS2. PS4 may require less power than PS3, such as 5 mW, and may have an exit latency equal to or higher than the exit latency of PS3, such as 50 mW. The values for the power states and exit latencies are not intended to be limiting, but to provide an example of possible embodiments.
[0037] PSO is referred to as a full operational state, where I/O commands are enabled and the device may generate interrupts. Interrupts in this context are a signal to the host that commands have been completed. Furthermore, power states PS1 , PS2, PS3, and PS4 are considered low power states. Power states PS1 and PS2 are also operational states, however, PS1 and PS2 may have a lower functionality than that of PSO. Power states PS3 and PS4 are non- operational states have a power requirement less than that of the operational power states. Furthermore, memory devices 206 not used are placed in a non- operational power state PS4 to limit the idle power consumption to a minimal value.
[0038] In order for I/O commands to occur, the memory device 206A-206N is woken up and placed into power state PSO. The controller, such as the controller 108 of Figure 1, utilizes the PAU 204 to change the power state of a memory device 206A-206N from PSO a different power state dependent on the situation and on host commands. Flowever, the controller 108 is able to utilize the PAU 204 to allocate the appropriate amount of power to place all power states PS1, PS2, PS3, and PS4 into power state PSO when a full operational state is required. [0039] Figure 3 depicts a system block diagram 300 according to disclosed embodiments. The system block diagram 300 includes a host 302 and a controller 304 of storage device, such as the storage device 106 of Figure 1. The host 302 may be connected to the interface, such as the interface 114 of Figure 1, of the storage device via a connection unit. The connection unit facilitates the transfer of data, such as read or write commands, and/or power between the host 302 and the storage device. The controller 304 receives the data from the host 302 and provisions system processing power to complete the host requests.
[0040] When the host 302 is connected to the storage device via the connection unit, a host identification signal 308 and a customer identification signal 310 is sent to the controller 304. In embodiments, the customer identification signal may be one or more of a manufacturer name, an asset tag, a host serial number or model number, or a vendor-defined unique value which identifies the customer. The storage device may be connected to different host, such that the controller 304 assigns a host ID to each individual host. For example, the host 302 of the system block diagram 300 may be assigned the host ID A by the controller 304. If the storage device is disconnected from the host 302 and connected to a second host, the controller 304 may assign the host ID B to the second host. The controller 304 recognizes each previous connection and associates each host with their respective host ID. Flowever, if a connection is made between a new host (e.g., no previous connections between the host and the storage device), the controller 304 assigns a new host ID (e.g., a host ID that has not been assigned) to the new host. Furthermore, when the controller 304 receives the customer identification signal 310, the controller 304 is able to determine customer specifications for the controller internal parameter configuration. In one embodiment, the one or more hosts are associated with one customer. In another embodiment, the one or more hosts are each associated with one or more customers. In yet another embodiment, any number of the one or more hosts are each associated with one or more customers. [0041] The controller 304 includes a database 306, where the database 306 includes a configuration table. The configuration table includes each host ID for and the host parameters associated with each host ID. The host parameter table below illustrates an example of the host parameters. The listed host parameters in the host parameter table below are not intended to be limiting, but to provide an example of a possible embodiment.
Host Parameter Table
Figure imgf000015_0001
[0042] When the host 302 and the storage device are connected via a connection unit, the controller 304 accesses the database 306 to access the relevant data associated with the host. An example of the configuration table of the database 306 is shown in the configuration table below. The configuration table may include portions of the host parameter table discussed above as well as other applicable options. Furthermore, the configuration table may have any number of columns, where the order of the columns (e.g., parameters) may be different in other embodiments.
Configuration Table
Figure imgf000016_0001
[0043] In embodiments, the configuration table may include the above- indicated parameters and/or any one or more of vendor unique opcodes, max power in PSO, vendor unique log codes, enablement of optional PCIe features, critical temperatures, shut down temperatures, NVMe command timeouts, and/or host memory buffer size ( e.g ., max size).
[0044] In Figure 3, when host 302 and the storage device have established a link, the controller 304 fetches the relevant entry associated with the host ID A from the database 306. After fetching the relevant entry, the controller 304 determines a customer-based configuration 312 and a host-based configuration 314 based on the parameters listed for the host 302. The customer-based configuration 312 and the host-based configuration 314 may include one or more quirks, where each quirk is a workaround to address known issues in a specific environment. The combination of one or more quirks may be unique to a specific host, such as the host 302. The controller configuration to accommodate a quirk may be a particular setting that is a native to the device.
[0045] For example, a customer device (e.g., host) may have a requirement that a specific NVMe identification field be empty in the controller responses to the identify controller command, since this field is expected to remain empty in that host environment. In another example, the security functionality of the storage device is intentionally disabled when attached to a specific customer device. In the descriptions herein, the customer device is referred to as the host for exemplary purposes, such that the host is the host 302 of the system block diagram 300.
[0046] Unlike quirks, a persona is a non-native function or a custom function for the device, such as an additional added feature. An example of a persona may include a variety of features, such as the optional PCIe power loss notification feature, optional NVMe log pages, QoS (performance and trade-off), thermal thresholds, timeout values, low power timings, custom configurations, and possible workarounds. The listed features are not intended to be limiting, but to provide an example of an embodiment. It is contemplated that other features not listed may be applicable to a persona. The features listed above may be specific to one or more hosts.
[0047] The internal parameters of the controller 304 are configured based on the quirks and the persona. The customer-based configuration 312 is a controller configuration specified by the customer and the host-based configuration 314 is a controller configuration unique to the host device, where the host-based configuration 314 includes parameters that satisfy the customer- based configuration 312 requirements.
[0048] Figure 4 depicts a flow diagram 400 for modification/customization of a storage device, according to disclosed embodiments. The storage device may be the storage device 106 of Figure and/or the storage device 208 of Figure 2. At block 402, the storage device is unprovisioned, such that the configuration table of the database, such as the database 306 of Figure 3, does not have any entries. In one embodiment, the configuration table is empty. In another embodiment, the configuration table includes entries; however, the entries are for non-relevant configurations. At block 404, the controller, such as the controller 304 of Figure 3, of the storage device is configured using a generic persona or a native persona.
[0049] At block 406, a first host, host A, is connected to the storage device via a connection unit. The host A sends metadata that includes host A identifiers to the controller of the storage device. The host A identifiers are stored in the configuration table of the database. At block 408, the internal parameters of the controller are configured to match the quirks and the persona of the Flost A.
[0050] At block 410, the storage device is transferred to a second host, host B. At block 412, the host B sends metadata that includes host B identifiers to the controller of the storage device. The host B identifiers are stored in the configuration table of the database. The configuration table of the database includes both host A identifiers and host B identifiers. At block 414, the internal parameters of the controller are configured to match the quirks and the persona of the host B. If the storage device is transferred back to the host A, the controller, after the host identification signal is sent, fetches the relevant entry for the host A host ID in the configuration table of the database. The host ID A entry includes the quirks and persona for the host A. The internal parameters of the controller are configured to match the quirks and the persona of the relevant host ID entry. The controller may have logic to refrain from utilizing a persona that is not relevant to the host (e.g., the host and the persona are mismatched).
[0051] Figure 5 depicts a flow diagram 500 for configuration of a storage device, according to disclosed embodiments. The storage device may be the storage device 106 of Figure 1 and/or the storage device 208 of Figure 2. At block 502, the connection between the host, such as the host 302 of Figure 3, and the controller, such as the controller 304 of Figure 3, of the storage device is initiated. At block 504, the host is identified via a host identification signal, such as the host identification signal 308 of Figure 3. The controller accesses the internal database, such as the database 306 of Figure 3, to fetch the relevant entry for the host ID associated with the host. The host identification may also include information from the host parameter table of Figure 3.
[0052] At block 506, the internal parameters of the controller are configured based relevant host ID entry, such that the controller is optimized for the persona associated with the host. At block 508, the configuration table of the database is optimized based on the host configuration. The optimization of the relevant entry for a host may be done by artificial intelligence (Al) or simplified machine learning. At block 510, the configuration table is updated with the optimized results from the process at block 508. If the host and/or the storage device powers down or resets at block 512, the process restarts at block 502 with the initialization of the connection between the host and the storage device. Flowever, if the host and the storage device both do not power down or reset at block 512, the configuration table is further optimized at block 508 and updated at block 510. [0053] Figure 6 depicts a method 600 for configuration of a storage device, according to disclosed embodiments. The storage device may be the storage device 106 of Figure 1 and/or the storage device 208 of Figure 2. At block 602, the controller, such as the controller 304 of Figure 3, includes a database, such as the database 306 of Figure 3, to include one or more customer identifier data elements and one or more custom configurations, where each configuration is a persona that includes one or more quirks. The one or more customer identifier elements correspond to one custom configuration of the one or more custom configurations. For example, the custom configuration associated with a host ID A is associated with only the host A (e.g., a customer A).
[0054] At block 604, the storage device receives a host identification signal, such that the host identification signal includes the customer identifier. The controller utilizes the customer identifier to identify which custom configuration will be applied to the controller at block 606. At block 608, the configuration table is updated with the custom configuration associated with the customer identifier for any customer identifier data elements missing or outdated.
[0055] By including a database that includes a configuration table that stores and updates the information for each host connection, the controller is able to fetch the relevant persona and configure the internal parameters of the controller to match the host specifications. Thus, the stability, the performance, the endurance, and the interoperability of the storage device is improved when the storage device is reused between one or more hosts.
[0056] In one embodiment, a data storage device includes a controller that includes a data storage device operating parameter configured to configure a native function of the data storage device, where the controller is configured to receive a host identifier from a host. The data storage device further includes a database that includes a plurality of host identifier data elements and a plurality of device configuration data elements, where each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements. The controller is further configured to obtain the host identifier from the host, match the host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter.
[0057] The controller is further configured to obtain a second host identifier from a second host, match the second host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter. The controller includes a custom function memory configured to define a non-native function of the data storage device. The database further includes a plurality of customer identifier data elements and a plurality of custom configuration data elements, where each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements. The controller is further configured to obtain the customer identifier, match the customer identifier to one of the plurality of customer identifier data elements, and write the corresponding one of the custom configuration data elements to the custom function memory. The host identifier is comprised of the customer identifier. The controller is configured to refrain from obtaining the host identifier after a power down of the host. The controller is further configured to refrain from matching a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier. The controller is further configured to match a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier.
[0058] In another embodiment, a data storage device includes a controller that includes a custom configuration memory configured to configure non-native functionality of the data storage device, where the controller is configured to receive a customer identifier from a host. The data storage device further includes a database that includes a plurality of customer identifier data elements and a plurality of custom configuration data elements defining non native functionality of the data storage device, where each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements. The controller is further configured to obtain the customer identifier from the host, match the customer identifier to one of the plurality of customer identifier data elements, and write a corresponding one of the plurality of non-native configuration data elements to the custom configuration memory.
[0059] The controller is further configured to obtain a second customer identifier from a second host, match the second customer identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of non-native configuration data elements to the custom configuration memory. The controller includes a data storage device operating parameter configured to configure a native function of the data storage device, where the controller further configured to receive a host identifier from the host. The database further includes a plurality of host identifier data elements and a plurality of device configuration data elements, where each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements. The controller is further configured to obtain the host identifier, match the host identifier to one of the plurality of host identifier data elements, and write the corresponding one of the device configuration data elements to the data storage device operating parameter. The host identifier includes the customer identifier. The controller is further configured to refrain from matching a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier. The controller is further configured to write a default non-native configuration data element to the custom configuration memory if the second customer identifier is different from the customer identifier. The controller is configured to obtain the customer identifier after a power down of the host. The controller is further configured to match a second host identifier to one of the plurality of device configuration data elements if the second host identifier is different from the host identifier.
[0060] In another embodiment, a data storage device includes a data base that includes a plurality of host identifier data elements, a plurality of customer identifier data elements, a plurality of custom configuration data elements, each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements, and a plurality of operating parameter configuration data elements, each of the plurality of operating parameter data elements corresponding to a respective one of the plurality of host identifier data elements. The data storage device further includes a means for receiving a customer identifier from a host, a means for matching the customer identifier to one of the plurality of customer identifier data elements, and a means for modifying a controller of the data storage device based on the custom configuration data element corresponding to the one of the plurality of customer identifier data elements.
[0061] The data storage device further includes a means for receiving a host identifier from the host, a means for matching the host identifier to one of the plurality of host identifier data elements, and a means for modifying the controller based on the operating parameter configuration data element corresponding to the one of the plurality of host identifier data elements. The data storage device also includes a means for receiving a second host identifier, a means for matching the second host identifier to one of the plurality of host identifier data elements, and a means for modifying the controller based on the second operating parameter configuration data element corresponding to the one of the plurality of host identifier data elements. The data storage device further includes a means for receiving a second customer identifier, a means for matching the second customer identifier to one of the plurality of customer identifier data elements, and a means for modifying the controller based on a second custom configuration data element corresponding to the one of the plurality of customer identifier data elements. One of the host identifier and the second host identifier includes one of a processor model, a chipset driver version, a product name, a firmware version, and a display driver version.
[0062] While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.

Claims

WHAT IS CLAIMED IS:
1. A data storage device, comprising: a controller comprising a data storage device operating parameter configured to configure a native function of the data storage device, the controller configured to receive a host identifier from a host; a database comprising: a plurality of host identifier data elements; and a plurality of device configuration data elements, each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements; wherein the controller is further configured to obtain the host identifier from the host, match the host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter.
2. The data storage device of claim 1, wherein the controller is further configured to obtain a second host identifier from a second host, match the second host identifier to one of the plurality of host identifier data elements, and write a corresponding one of the plurality of device configuration data elements to the data storage device operating parameter.
3. The data storage device of claim 1, wherein the controller comprises a custom function memory configured to define a non-native function of the data storage device; wherein the database further comprises a plurality of customer identifier data elements and a plurality of custom configuration data elements, each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements; and wherein the controller is further configured to obtain the customer identifier, match the customer identifier to one of the plurality of customer identifier data elements, and write the corresponding one of the custom configuration data elements to the custom function memory.
4. The data storage device of claim 3, wherein the host identifier is comprised of the customer identifier.
5. The data storage device of claim 4, wherein the controller is configured to refrain from obtaining the host identifier after a power down of the host.
6. The data storage device of claim 3, wherein the controller is further configured to refrain from matching a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier.
7. The data storage device of claim 3, wherein the controller is further configured to match a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier.
8. A data storage device, comprising: a controller comprising a custom configuration memory configured to configure non-native functionality of the data storage device, the controller configured to receive a customer identifier from a host; a database comprising: a plurality of customer identifier data elements; and a plurality of custom configuration data elements defining non native functionality of the data storage device, each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements; wherein the controller is further configured to obtain the customer identifier from the host, match the customer identifier to one of the plurality of customer identifier data elements, and write a corresponding one of the plurality of custom configuration data elements to the custom configuration memory.
9. The data storage device of claim 8, wherein the controller is further configured to obtain a second customer identifier from a second host, match the second customer identifier to one of the plurality of customer identifier data elements, and write a corresponding one of the plurality of custom configuration data elements to the custom configuration memory.
10. The data storage device of claim 8, wherein the controller comprises a data storage device operating parameter configured to configure a native function of the data storage device, the controller further configured to receive a host identifier from the host; wherein the database further comprises a plurality of host identifier data elements and a plurality of device configuration data elements, each of the plurality of device configuration data elements corresponding to a respective one of the plurality of host identifier data elements; and wherein the controller is further configured to obtain the host identifier, match the host identifier to one of the plurality of host identifier data elements, and write the corresponding one of the device configuration data elements to the data storage device operating parameter.
11. The data storage device of claim 10, wherein the host identifier is comprised of the customer identifier.
12. The data storage device of claim 8, wherein the controller is further configured to refrain from matching a second customer identifier to one of the plurality of custom configuration data elements if the second customer identifier is different from the customer identifier.
13. The data storage device of claim 12, wherein the controller is further configured to write a default non-native configuration data element to the custom configuration memory if the second customer identifier is different from the customer identifier.
14. The data storage device of claim 13, wherein the controller is configured to obtain the customer identifier after a power down of the host.
15. The data storage device of claim 12, wherein the controller is further configured to match a second host identifier to one of a plurality of device configuration data elements if the second host identifier is different from the host identifier.
16. A data storage device, comprising: a database means comprising: a plurality of host identifier data elements; a plurality of customer identifier data elements; a plurality of custom configuration data elements, each of the plurality of custom configuration data elements corresponding to a respective one of the plurality of customer identifier data elements; a plurality of operating parameter configuration data elements, each of the plurality of operating parameter data elements corresponding to a respective one of the plurality of host identifier data elements; a means for receiving a customer identifier from a host; a means for matching the customer identifier to one of the plurality of customer identifier data elements; and a means for modifying a controller of the data storage device based on the custom configuration data element corresponding to the one of the plurality of customer identifier data elements.
17. The data storage device of claim 16, further comprising: a means for receiving a host identifier from the host; a means for matching the host identifier to one of the plurality of host identifier data elements; and a means for modifying the controller based on the operating parameter configuration data element corresponding to the one of the plurality of host identifier data elements.
18. The data storage device of claim 17, further comprising: a means for receiving a second host identifier; a means for matching the second host identifier to one of the plurality of host identifier data elements; and a means for modifying the controller based on the operating parameter configuration data element corresponding to the one of the plurality of host identifier data elements.
19. The data storage device of claim 18, further comprising: a means for receiving a second customer identifier; a means for matching the second customer identifier to one of the plurality of customer identifier data elements; and a means for modifying the controller based on a second custom configuration data element corresponding to the one of the plurality of customer identifier data elements.
20. The data storage device of claim 19, wherein one of the host identifier and the second host identifier comprises one of a processor model, a chipset driver version, a product name, a firmware version, and a display driver version.
PCT/US2020/066120 2020-06-10 2020-12-18 Systems and methods for configuring a data storage device Ceased WO2021252015A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202080079727.7A CN114730284B (en) 2020-06-10 2020-12-18 Systems and methods for configuring data storage devices
DE112020004961.2T DE112020004961T5 (en) 2020-06-10 2020-12-18 SYSTEMS AND METHODS FOR SETTING UP A DATA STORAGE DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/898,119 US11500559B2 (en) 2020-06-10 2020-06-10 Systems and methods for configuring a data storage device
US16/898,119 2020-06-10

Publications (1)

Publication Number Publication Date
WO2021252015A1 true WO2021252015A1 (en) 2021-12-16

Family

ID=78825425

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/066120 Ceased WO2021252015A1 (en) 2020-06-10 2020-12-18 Systems and methods for configuring a data storage device

Country Status (4)

Country Link
US (1) US11500559B2 (en)
CN (1) CN114730284B (en)
DE (1) DE112020004961T5 (en)
WO (1) WO2021252015A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359303A1 (en) * 2013-05-30 2014-12-04 Dell Products L.P. Secure Original Equipment Manufacturer (OEM) Identifier for OEM Devices
CN106997296A (en) * 2017-03-31 2017-08-01 新华三技术有限公司 Device identification matching process and the network equipment
US20190238558A1 (en) * 2018-01-31 2019-08-01 EMC IP Holding Company LLC System and method to enable component inventory and compliance in the platform
US20200151134A1 (en) * 2018-11-13 2020-05-14 Western Digital Technologies, Inc. Bandwidth limiting in solid state drives

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277995B2 (en) * 2003-10-29 2007-10-02 Dot Hill Systems Corporation Storage controller and method for performing host access control in the host interface adapter
US7999951B2 (en) * 2006-12-29 2011-08-16 Sharp Laboratories Of America Direct print handling of native and non-native data formats
US9003159B2 (en) * 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
US9223563B2 (en) * 2011-06-07 2015-12-29 Seagate Technology Llc Management of device firmware update effects as seen by a host
WO2013074107A1 (en) * 2011-11-17 2013-05-23 Intel Corporation Method, apparatus and system for memory validation
KR101888009B1 (en) * 2012-02-28 2018-09-07 삼성전자주식회사 Storage device
US9086805B2 (en) * 2012-03-12 2015-07-21 Seagate Technology Llc Dynamic tracking of storage region operating parameters
US9875195B2 (en) * 2014-08-14 2018-01-23 Advanced Micro Devices, Inc. Data distribution among multiple managed memories
CN104182253A (en) * 2014-08-19 2014-12-03 清华大学 Radio-frequency module initialization system and method
US10114675B2 (en) * 2015-03-31 2018-10-30 Toshiba Memory Corporation Apparatus and method of managing shared resources in achieving IO virtualization in a storage device
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US10853233B2 (en) * 2016-10-18 2020-12-01 Toshiba Memory Corporation Reconstruction of address mapping in a host of a storage system
US11321008B2 (en) * 2018-11-15 2022-05-03 Micron Technology, Inc. Temperature-based memory management
US11360925B2 (en) * 2018-12-25 2022-06-14 Intel Corporation Method and apparatus for host adaptation to a change of persona of a configurable integrated circuit die
US11042322B2 (en) * 2019-09-13 2021-06-22 Toshiba Memory Corporation SSD supporting low latency operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359303A1 (en) * 2013-05-30 2014-12-04 Dell Products L.P. Secure Original Equipment Manufacturer (OEM) Identifier for OEM Devices
CN106997296A (en) * 2017-03-31 2017-08-01 新华三技术有限公司 Device identification matching process and the network equipment
US20190238558A1 (en) * 2018-01-31 2019-08-01 EMC IP Holding Company LLC System and method to enable component inventory and compliance in the platform
US20200151134A1 (en) * 2018-11-13 2020-05-14 Western Digital Technologies, Inc. Bandwidth limiting in solid state drives

Also Published As

Publication number Publication date
US11500559B2 (en) 2022-11-15
CN114730284B (en) 2026-01-20
CN114730284A (en) 2022-07-08
US20210389888A1 (en) 2021-12-16
DE112020004961T5 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
US10379747B2 (en) Automated latency monitoring
US20220075560A1 (en) NVMe Simple Copy Command Support Using Dummy Virtual Function
CN113946371B (en) Parallel boot execution of memory devices
US11816337B2 (en) Enterprise host memory buffer
KR102707997B1 (en) Controller, memory system and operating method thereof
WO2023075858A1 (en) Host buffers and data transfer management
KR20180097026A (en) Nonvolatile memory device, data stroage device including thereof and operating method of data storage device
US11500447B2 (en) Power allocation management for external storage
US11763040B2 (en) Enhanced D3-cold and faster recovery
WO2023069148A1 (en) Data storage devices, systems, and related methods for grouping commands of doorbell transactions from host devices
US20240427407A1 (en) Data Storage With Real Time Dynamic Clock Frequency Control
WO2021257117A1 (en) Fast recovery for persistent memory region (pmr) of a data storage device
US12001711B2 (en) Determine link startup sequence (LSS) type using reference clock frequency and attribute
US11500559B2 (en) Systems and methods for configuring a data storage device
US12248676B2 (en) Storage optimization of CAT table during background operations
US20230297277A1 (en) Combining Operations During Reset
WO2024054274A1 (en) Asymmetric time division peak power management (td-ppm) timing windows
US20220405011A1 (en) Latency On Indirect Admin Commands
WO2023121704A1 (en) Optimizing flash memory utilization for nvme kv pair storage
US12229008B2 (en) Delayed XOR rebuild with priority in multi-protocol products
US11893253B1 (en) Dynamic TD-PPM state and die mapping in multi-NAND channels
US12417198B2 (en) Burst awareness scheduler over host interface
US20250335384A1 (en) Single Sideband Signals Set for Multi-Port Storage Devices
US12175281B2 (en) PCIe TLP size and alignment management
US12277345B2 (en) Scatter gather list adaptive bucketing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20940096

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20940096

Country of ref document: EP

Kind code of ref document: A1