Storing multiple versions of preloaded content to mitigate cross-temperature effects
By storing preloaded content copies related to different temperatures in the data storage device and selecting decoding according to the current temperature, the problem of increased bit error rate caused by cross temperature in embedded data storage devices is solved, and the device performance and decoding efficiency are improved.
Patent Information
- Application Number
- CN202411628661.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-18
- Filing Date
- 2024-11-14
- Publication Date
- 2025-09-19
AI Technical Summary
In embedded data storage devices, cross-temperature issues lead to increased bit error rates when reading data, and existing technology mitigation solutions affect device performance.
The data storage device stores different copies of preloaded content, each copy is associated with a different temperature. The cross-temperature mitigation system selects the most suitable copy for decoding and returns according to the current operating temperature, and the error correction code system is combined to optimize the decoding process.
Effectively alleviate cross-temperature issues, reduce resource requirements for error correction processes, and improve data storage device performance.
Smart Images

Figure CN120669901A_ABST
Abstract
Description
Background Art
[0001] Cross-temperature problems can occur in various embedded data storage devices and are particularly prevalent when preloaded content is stored in the data storage device. Cross-temperature problems are the result of reading data from a data storage device when the data storage device is operating at a temperature that is significantly different from the temperature at which the data storage device was operating when the data was originally written to the data storage device.
[0002] When reading data, cross-temperature issues typically increase the bit error rate (BER) of the data. As the BER of the data increases, the need for more robust error correction capabilities also increases, and the amount of time required to complete any error correction process also increases.
[0003] Currently, read threshold calibration and different decoding optimizations (which may include reading soft bits) in data storage devices can be used to mitigate the cross-temperature problem. However, these solutions require significant overhead, which reduces the overall performance of the data storage device.
[0004] Therefore, it would be beneficial for a data storage device to mitigate cross-temperature issues affecting preloaded content without negatively impacting the performance capabilities of the data storage device. Summary of the Invention
[0005] This disclosure describes a cross-temperature mitigation system associated with a data storage device. The cross-temperature mitigation system is used to mitigate cross-temperature issues that arise when preloaded content is read from the data storage device. Although the examples described herein relate to preloaded content, the cross-temperature mitigation system can be used to mitigate any cross-temperature issue.
[0006] Preloaded content is data that is not organically written by the host device. Instead, the preloaded content is written to the data storage device during factory setup before the customer receives the data storage device. As will be explained in more detail herein, the data storage device stores different copies of the preloaded content. In one example, each copy of the preloaded content is written to the data storage device while the data storage device is operating at different temperatures. In another example, each copy of the preloaded content is written to the data storage device using one or more write parameters that simulate the data storage device operating at different temperatures.
[0007] When a request to read preloaded content is received (e.g., from a host device), the cross-temperature mitigation system determines the current operating temperature of the data storage device. The cross-temperature mitigation system determines which copy of the preloaded content has a write temperature closest to the current operating temperature of the data storage device. When a specific copy of the preloaded content is identified, the storage device decodes the specific copy of the preloaded content and returns the decoded data to the host device.
[0008] Thus, examples of the present disclosure describe a method that includes receiving a read command from a host device. In one example, the read command is associated with preloaded content stored by a data storage device. Based at least in part on receiving the read command, an operating temperature of the data storage device is determined. A first copy of the preloaded content associated with a first write temperature or a second copy of the preloaded content associated with a second write temperature different from the first write temperature is identified and / or selected. In one example, the copy of the preloaded content is selected based at least in part on the determined operating temperature. The selected first copy of the preloaded content or the selected second copy of the preloaded content is decoded by the storage device, and the decoded data is provided to the host device.
[0009] Other examples describe a data storage device that includes a controller and a cross-temperature mitigation system. In one example, the cross-temperature mitigation system is operable to determine an operating temperature of the data storage device. The cross-temperature mitigation system also selects one of a first copy of the preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature. In one example, the selection is based at least in part on the determined operating temperature. The cross-temperature mitigation system also decodes the decoded selected first copy of the preloaded content or the selected second copy of the preloaded content and returns the decoded selected first copy of the preloaded content or the selected second copy of the preloaded content to the host device.
[0010] In another example, the present disclosure describes a data storage device having a controller device and a device for determining an operating temperature of the data storage device. In one example, the data storage device further includes a device for selecting one of a first copy of preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature. In one example, the selection is based at least in part on the determined operating temperature of the data storage device. The data storage device further includes a device for decoding the selected first copy of the preloaded content or the selected second copy of the preloaded content and returning the selected first copy of the preloaded content or the selected second copy of the preloaded content to a host device.
[0011] This summary is provided to introduce some concepts in a simplified form that are further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Non-limiting and non-exhaustive examples are described with reference to the following figures.
[0013] Figure 1 is a block diagram of a system including a host device and a data storage device according to one example.
[0014] Figure 2 A table showing how different copies of preloaded content are associated with different performance metrics is illustrated according to one example.
[0015] Figure 3 A method for selecting a copy of preloaded content to return to a host device based on a determined operating temperature of a data storage device is illustrated according to one example.
[0016] Figure 4 A method for deleting a copy of preloaded content from a data storage device according to one example is illustrated.
[0017] Figure 5 is a perspective view of a memory device including a three-dimensional (3D) stacked nonvolatile memory according to one example.
[0018] Figure 6 is a block diagram of a storage device according to an example. DETAILED DESCRIPTION
[0019] In the following detailed description, reference is made to the accompanying drawings which form a part of the detailed description, and in the drawings, specific embodiments or examples are shown by way of illustration. These aspects may be combined, other aspects may be utilized, and the structure may be changed without departing from the present disclosure. Therefore, the following detailed description should not be construed as having a limiting meaning, and the scope of the present disclosure is defined by the appended claims and their equivalents.
[0020] As previously mentioned, cross temperature problems arise in various embedded memory devices. Cross temperature problems are the result of reading data from a data storage device when the data storage device is operating at a temperature that is significantly different from the temperature at which the data storage device was operating when the data was originally written.
[0021] Preloaded content is particularly susceptible to cross-temperature issues. As used herein, preloaded content is data that is not organically received and / or written to the host device. Instead, preloaded content is written to the data storage device in the factory setup before the customer receives the data storage device. Preloaded content often contains very important information such as operating system firmware, related files, etc. In the automotive space, preloaded content can include large amounts of stored data such as, for example, high-resolution geographic information, road maps, music, movies, etc.
[0022] To mitigate the impact of cross-temperature issues, the data storage device stores different copies of the preloaded content. In one example, when in factory settings, each copy of the preloaded content is written to the data storage device while the data storage device is operating at different temperatures. In another example, each copy of the preloaded content is written to the data storage device in factory settings using one or more write parameters that simulate a data storage device operating at different temperatures.
[0023] When the data storage device is in use and receives a request for preloaded content from a host device, the cross-temperature mitigation system of the data storage device determines the current operating temperature of the data storage device. The cross-temperature mitigation system determines which copy of the preloaded content has a write temperature that is closest to the current operating temperature of the data storage device. In another example, the cross-temperature mitigation system identifies which copy of the preloaded content will require the least amount of error correction and / or enable the most efficient use of resources (e.g., when compared with other copies of the preloaded content). When a specific copy of the preloaded content is identified, the specific copy of the preloaded content is decoded by the data storage device, and the decoded data is returned to the host device.
[0024] Over time, additional data will be written to the data storage device, and the capacity may decrease. Therefore, the cross-temperature mitigation system also determines whether to erase one or more copies of the preloaded content. In one example, the copy (or copies) selected for erasure is the least used or least recently used copy, or a copy associated with an operating temperature that has not been reached or has not yet been reached in a period of time.
[0025]
[0010] Based on the foregoing, a number of technical benefits may be achieved including, but not limited to, mitigating the effects of cross-temperature issues and increasing the performance of data storage devices by reducing the amount of resources required for error correction processes.
[0026] will be relative to Figures 1 to 6 These benefits and other examples are shown and described in more detail.
[0027] Figure 1 1 is a block diagram of a system 100 including a host device 105 and a data storage device 110 according to an example. In one example, the host device 105 includes a processor 115 and a memory 120 (e.g., main memory). The memory 120 includes an operating system 125, a kernel 130, and / or an application 135, or is otherwise associated with the operating system, the kernel, and / or the application.
[0028] The processor 115 can execute various instructions, such as, for example, instructions from the operating system 125 and / or the application 135. The processor 115 may include circuits such as a microcontroller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), hardwired logic, analog circuits, and / or various combinations thereof. In one example, the processor 115 includes a system on a chip (SoC).
[0029] In one example, memory 120 can be used by host device 105 to store data for use or other execution by processor 115. The data stored in memory 120 can include instructions provided by data storage device 110 via communication interface 140. The data stored in memory 120 can also include data used to execute instructions from operating system 125 and / or one or more application programs 135. Memory 120 can be a single memory or can include multiple memories, such as, for example, one or more non-volatile memories, one or more volatile memories, or a combination thereof.
[0030] In one example, the operating system 125 can create a virtual address space for the application 135 and / or other processes executed by the processor 115. The virtual address space is mapped to a location in the memory 120. The operating system 125 can also include or be otherwise associated with a kernel 130. The kernel 130 can include instructions for managing various resources of the host device 105 (e.g., memory allocation), processing read and write requests, etc.
[0031] The communication interface 140 communicatively couples the host device 105 and the data storage device 110. The communication interface 140 can be a serial advanced technology attachment (SATA), a PCI express (PCIe) bus, a small computer system interface (SCSI), a serial attached SCSI (SAS), Ethernet, Fibre Channel, or Wi-Fi. In this way, the host device 105 and the data storage device 110 do not need to be physically co-located and can communicate through a network such as a local area network (LAN) or a wide area network (WAN) (such as the Internet). In addition, the host device 105 can interact with the data storage device 110 using a logical interface specification such as non-volatile memory express (NVMe) or an advanced host controller interface (AHCI).
[0032] In some examples, the data storage device 110 is attached to or embedded within the host device 105. In another example, the data storage device 110 is a component (e.g., a solid-state drive (SSD)) of a network-accessible data storage system, a network-attached storage system, a cloud data storage system, etc. In yet another example, the data storage device 110 is implemented as an external device or portable device that can be communicatively or selectively coupled to the host device 105. For example, the data storage device 110 is a USB drive or a USB data storage device and is communicatively coupled to the host device 105 using one or more host interfaces (e.g., a USB interface).
[0033] The data storage device 110 may include a controller 150 and a memory device 155. The controller 150 is communicatively coupled to the memory device 155. In one example, the memory device 155 includes one or more memory dies (e.g., a first memory die 165 and a second memory die 170). Although two memory dies are shown, the memory device 155 may include any number of memory dies (e.g., one memory die, two memory dies, eight memory dies, or another number of memory dies). In addition, although memory dies are specifically mentioned, the memory device 155 may include any non-volatile memory device, storage device, storage element, or storage medium, including NAND flash memory cells and / or NOR flash memory cells.
[0034] The memory cells may be one-time programmable, few-time programmable, or many-time programmable. Furthermore, the memory cells may be single-level cells (SLC), multi-level cells (MLC), triple-level cells (TLC), quad-level cells (QLC), penta-level cells (PLCs), and / or utilize any other memory technology. The memory cells may be arranged in a two-dimensional configuration or a three-dimensional configuration.
[0035] One or more of the first memory die 165 and the second memory die 170 include one or more memory blocks. In one example, each memory block includes one or more memory cells. A block of memory cells is the smallest number of memory cells that can be physically erased together. In one example, and to increase parallelism, each block in the block can be operated or organized in a larger block or metablock. For example, blocks from different planes of memory cells can be logically linked together to form a metablock.
[0036] The memory device 155 also includes support circuitry. In one example, the support circuitry includes read / write circuitry 160. The read / write circuitry 160 supports the operation of the memory dies of the memory device 155. Although the read / write circuitry 160 is depicted as a single component, the read / write circuitry 160 can be separated into separate components, such as, for example, a read circuit and a write circuit. The read / write circuitry 160 can be located external to the memory dies of the memory device 155. In another example, one or more of the memory dies can include corresponding read / write circuitry 160 that is operable to read data from and / or write data to storage elements within a separate memory die independently of other read operations and / or write operations on any of the other memory dies.
[0037] The memory device 155 also includes or stores preloaded content 190. The preloaded content 190 is stored in one or both of the memory dies of the memory device 155. In one example, the preloaded content 190 is written to the storage device 155 (or data storage device 110) during factory setup or before a customer receives the storage device 155 / data storage device 110.
[0038] In one example, preloaded content 190 includes firmware 175, operating system files, and the like. In another example, preloaded content 190 includes a large amount of stored data. In some examples, such as automotive applications, preloaded content 190 includes high-resolution geographic information and road maps, music, movies, and the like. Although specific examples are given, preloaded content 190 can be any type of data or content.
[0039] In one example, preloaded content 190 includes one or more copies of the preloaded content. In addition, each copy of the preloaded content is written to data storage device 110 at a different operating temperature. For example, when data storage device 110 is in factory settings (e.g., before data storage device 110 is provided to a customer or end user), when the data storage device is physically operating at a first temperature, a first copy of preloaded content 190 is written to data storage device 110. For example, when in the factory, the operating temperature of data storage device 110 is physically manipulated to operate at the first temperature. When the first temperature is reached, the first copy of the preloaded content is written to data storage device 110.
[0040] Likewise, when the data storage device is operated at a second temperature different from the first temperature, a second copy of the preloaded content 190 is written to the data storage device 110. This process may be repeated any number of times until the data storage device 110 stores a desired number of copies of the preloaded content, each associated with a different operating temperature.
[0041] In another example, instead of physically changing the operating temperature of the data storage device 110 in a factory setting, one or more write parameters associated with the preloaded content are changed. In one example, the write parameters are changed to simulate the data storage device 110 operating at a different operating temperature. In one example, the changed write parameters are parameters associated with the temperature coefficient of one or more memory cells in one or more of the first memory die 165 and / or the second memory die 170. Adjusting or changing the write parameters causes the memory cells or memory dies to behave as if the memory cells or memory dies were operating at a different operating temperature.
[0042] As previously described, the data storage device 110 includes a controller 150. The controller 150 is communicatively coupled to the memory device 155 via a bus, an interface, or other communication circuitry. In one example, the communication circuitry may include one or more channels to enable the controller 150 to communicate with the first memory die 165 and / or the second memory die 170 of the memory device 155. In another example, the communication circuitry includes multiple different channels to enable the controller 150 to communicate with the first memory die 165 independently and / or communicate with the second memory die 170 in parallel with the first memory die.
[0043] The controller 150 includes circuitry for executing instructions. For example, the controller 150 includes one or more processors, one or more microcontrollers, one or more DSPs, one or more ASICs, one or more FPGAs, hardwired logic, analog circuitry, and / or combinations thereof. In another example, the controller 150 includes one or more SoCs. Although a single controller 150 is shown and described, the data storage device 110 may include multiple controllers 150. In such examples, each controller 150 is responsible for a specific operation (or subset of operations) described herein.
[0044] In one example, the controller 150 receives instructions from the host device 105. In another example, the instructions originate from firmware 175 associated with the data storage device 110 and / or the memory device 155.
[0045] In addition to receiving commands and / or data from the host device, the controller 150 also sends data, such as preloaded content 190, to the host device 105. For example, the controller 150 may send data to and / or receive data from the host device 105 via the communication interface 140. The controller 150 may also send data and / or commands to and / or receive data from the memory device 155.
[0046] The controller 150 may send data and a corresponding write command to the memory device 155 to cause the memory device 155 to store the data at a specified address of the memory device 155. In one example, the write command specifies a physical address of a portion of the memory device 155. The controller 150 may also send data and / or commands associated with one or more background scan operations, garbage collection operations, and / or wear leveling operations.
[0047] The controller 150 may also send one or more read commands to the memory device 155. In one example, the read command specifies a physical address of a portion of the memory device 155 where data is stored. The controller 150 may also track the number of program / erase cycles or other programming operations that have been performed on or by the memory device and / or the memory die of the memory device 155.
[0048] In one example, the controller 150 includes a cross-temperature mitigation system 180 and a temperature detection system 185, and the system and temperature detection system are associated. Although the cross-temperature mitigation system 180 and the temperature detection system 185 are shown separately, the temperature detection system 185 can be part of the cross-temperature mitigation system 180, and vice versa. In addition, the cross-temperature mitigation system 180 and / or the temperature detection system 185 can be a packaged functional hardware unit designed for use with other components / systems, a part of program code (e.g., software or firmware) executable by a processor or processing circuit, or an independent hardware and / or software component that interacts with other components and / or systems.
[0049] In one example, when the controller 150 receives a read command associated with the preloaded content 190, the cross-temperature mitigation system 180 can be operable to determine which copy of the preloaded content 190 to return to the host device 105. For example, when the controller 150 receives the read command, the cross-temperature mitigation system 180 determines the current operating temperature of the data storage device 110.
[0050] In one example, the current operating temperature of the data storage device 110 is determined by and / or received from the temperature detection system 185. For example, the temperature detection system 185 includes a temperature probe, a temperature sensor, or other temperature measurement device that enables the temperature detection system 185 to determine or identify the current operating temperature of the data storage device 110. When the temperature detection system 185 determines the current operating temperature of the data storage device 110, the determined operating temperature is provided to the cross temperature mitigation system 180.
[0051] The cross temperature mitigation system 180 uses the operating temperature to determine which copy of the preloaded content 190 to return to the host device 105 based at least in part on the temperature or simulated temperature at which each copy of the preloaded content 190 was written to the data storage device 110. In one example, the cross temperature mitigation system 180 makes the determination based on which copy of the preloaded content 190 is associated with a temperature that is closest to the determined operating temperature of the data storage device 110. For example, if the determined operating temperature of the data storage device 110 is ten degrees Celsius, the cross temperature mitigation system 180 selects the copy of the preloaded content that was written to the data storage device at twenty degrees Celsius.
[0052] In another example, the cross-temperature mitigation system 180 determines a performance metric or characteristic associated with each copy of the preloaded content 190 and the determined operating temperature of the data storage device. For example, the cross-temperature mitigation system 180 accesses a table or chart that includes information about the temperature at which the copies of the preloaded content 190 were written, the operating temperature ranges for which the copies of the preloaded content are available, and the performance metrics associated with the temperature ranges.
[0053] For example, and refer to Figure 2 , Figure 2 1. Table 200 is illustrated showing how different copies of preloaded content are associated with different performance metrics according to one example. In one example, the information in table 200 is generated during factory setup and may be used in a data storage device and / or a cross temperature mitigation system, such as, for example, data storage device 110 ( Figure 1 ) and / or cross temperature mitigation system 180 ( Figure 1 ).
[0054] In this example, multiple copies of preloaded content have been stored on the data storage device. Furthermore, each copy of the preloaded content is associated with a different temperature or temperature range. For example, the first copy of the preloaded content 210 is associated with the first operating temperature range 220 or a specific operating temperature (physical operating temperature or simulated operating temperature).
[0055] Similarly, the second copy of the preloaded content 240 is associated with the second operating temperature range 250. In one example, the first operating temperature range 220 is different from the second operating temperature range 250. In another example, the first operating temperature range 220 and the second operating temperature range 250 at least partially overlap. In addition, the data storage device includes an Nth copy of the preloaded content 270. The Nth copy of the preloaded content 270 is associated with an Nth operating temperature range 280.
[0056] like Figure 2 As shown, each copy of the preloaded content is associated with a performance metric. For example, the first copy of the preloaded content 210 is associated with a first performance metric 230, the second copy of the preloaded content 240 is associated with a second performance metric 260, and the Nth copy of the preloaded content 270 is associated with an Nth performance metric.
[0057] When the cross temperature mitigation system determines the current operating temperature of the data storage device, the cross temperature mitigation system checks the table 200 and determines whether to select the first copy 210 of the preloaded content, the second copy 240 of the preloaded content, or the Nth copy of the preloaded content 270 based on the performance metrics and the operating temperature range in the table. The determined copy of the preloaded content is decoded and provided to the host device. For example, and returning to reference Figure 1 , the determined copy of the preloaded content 190 is decoded (eg, ECC decoded by the error correction code system 195 ) and then returned to the host device 105 .
[0058] In one example, the cross temperature mitigation system 180 is further operable to determine whether and when one or more copies of the preloaded content 190 should be deleted or erased from the data storage device 100. In one example, the cross temperature mitigation system 180 deletes portions of the one or more copies of the preloaded content 190. For example, different portions of the preloaded content 190 may be designated as more important when compared to other portions. In such an example, the more important portions of the preloaded content 190 will not be deleted (or will be deleted after the less important portions are deleted). In another example, the cross temperature mitigation system 180 deletes the entire copy of the preloaded content 190.
[0059] In one example, the cross temperature mitigation system 180 determines to delete or erase one or more copies of the preloaded content 190 based on the determined storage capacity of the data storage device 110. For example, if the data storage device reaches a threshold amount of stored data, the cross temperature mitigation system 180 determines to free up additional space on the data storage device by deleting one or more copies of the preloaded content. In one example, the copies of the preloaded content are ranked according to one or more metrics. In one example, the one or more metrics include, but are not limited to, the least recently used copy, the least recently used temperature range, etc.
[0060] When one or more replicas are identified for deletion, the cross-temperature mitigation system 180 causes the one or more replicas (or portions of one or more replicas) to be erased. In one example, the deletion of one or more replicas is part of a garbage collection operation performed as a background process of the data storage device 110.
[0061] In one example, prior to deletion, the copy of the preloaded content 190 selected for deletion is used to correct one or more errors that may be present in the copy of the preloaded content 190 being saved. For example, the cross-temperature mitigation system 180 or the error correction system compares the various copies of the preloaded content 190 and uses a majority rule approach to determine whether there are any errors in the copy (or copies) of the preloaded content 190 to be maintained. Reading several versions of the same preloaded content can improve the reliability of low-density parity check (LDPC) codes and other error correction code (ECC) mechanisms.
[0062] In another example, different copies of preloaded content 190 can be used for improved decoder initialization. For example, the copies of preloaded content 190 can be used to set the log-likelihood ratio (LLR) value of each codeword bit based on the value of the corresponding bit in the multiple copies. For example, each bit can be assigned a bit reliability based on the protocol level between the multiple copies. This will improve the read throughput and correction capability of the LDPC decoder.
[0063] Figure 3 A method 300 is illustrated for selecting a copy of preloaded content to return to a host device based on a determined operating temperature of a data storage device according to one example. In one example, the method 300 is implemented by a cross temperature mitigation system of the data storage device (such as, for example, a system for mitigating a temperature difference between the host device and the data storage device). Figure 1 The cross temperature mitigation system 180 shown and described is implemented.
[0064] Additionally, in one example, the data storage device includes two or more copies of preloaded content. Each copy of the preloaded content is written to the data storage device at a different physical operating temperature or at a different simulated operating temperature.
[0065] The method 300 begins when the data storage device receives (310) a command from a host device. In one example, the command is received by a controller (e.g., controller 150 ( Figure 1 ))receive. When a command is received, the controller determines (320) whether the command is a read command requesting data associated with the preloaded content. For example, the controller accesses metadata associated with the command to determine the type and / or location of the data associated with the received command.
[0066] If the controller determines (320) that the command is not a request for preloaded content, the controller causes the command to be executed (330) and the method 300 is repeated. However, if the controller determines (320) that the command is a request for preloaded content, the controller causes the cross temperature mitigation system to determine (340) the current operating temperature of the data storage device. For example, the cross temperature mitigation system accesses or otherwise causes a temperature detection system (e.g., temperature detection system 185 ( Figure 1 ))Use a temperature detection circuit, a temperature detection sensor, or any other temperature reading device to measure the current operating temperature of the data storage device.
[0067] When determining the current operating temperature of the data storage device, the cross temperature mitigation system compares the current operating temperature to a write temperature or temperature range associated with each copy of the preloaded content. In one example, the write temperature or temperature range associated with each copy of the preloaded content is a physical write temperature. For example, each copy of the preloaded content is written to the data storage device while the data storage device is physically operating at a different temperature.
[0068] In another example, the write temperature or temperature range associated with each copy of the preloaded content is a simulated write temperature. For example, one or more write parameters associated with each copy of the preloaded content are manipulated or changed so that a temperature coefficient associated with one or more memory cells of the data storage device models different write temperatures from the perspective of the memory cells. The cross-temperature mitigation system then selects (350) a copy of the preloaded content based at least in part on the comparison.
[0069] In one example, the cross-temperature mitigation system selects a particular copy of the preloaded content based on a determination as to which copy of the preloaded content is associated with a write temperature that is closest to the determined operating temperature of the data storage device 110. For example, if the determined operating temperature of the data storage device is ten degrees Celsius, the cross-temperature mitigation system selects a copy of the preloaded content that was written to the data storage device at twenty degrees Celsius rather than a copy of the preloaded content that was written at fifty degrees Celsius.
[0070] In another example, the cross temperature mitigation system determines a performance metric or characteristic associated with each copy of the preloaded content. For example, the cross temperature mitigation system accesses a table (e.g., Figure 2 200 ), which includes information about the temperature at which each copy of the preloaded content was written, the operating temperature range for which the copy of the preloaded content should be selected, and / or a performance metric associated with the temperature range.
[0071] When a particular copy of the preloaded content is identified and / or selected, the selected copy of the preloaded content is decoded (360) and the decoded copy of the preloaded content is returned (370) to the host device.
[0072] Figure 4 A method 400 for deleting a copy of preloaded content from a data storage device is illustrated according to one example. In one example, the method 400 is performed by a cross temperature mitigation system of the data storage device (such as, for example, a device associated with a data storage device). Figure 1 The cross temperature mitigation system 180 shown and described is implemented.
[0073] In one example, method 400 begins by determining the current capacity of a data storage device (410). In one example, the determination regarding the capacity of the data storage device is continuously monitored. In another example, the capacity of the data storage device is periodically monitored.
[0074] A determination is made as to whether the capacity of the data storage device exceeds a threshold value (420). If the controller and / or the cross-temperature mitigation system determines that the capacity of the data storage device does not exceed the threshold value, the method 400 is repeated. However, if the controller and / or the cross-temperature mitigation system determines (420) that the capacity of the data storage device has reached or exceeded the capacity threshold value, the cross-temperature mitigation system determines (430) a frequency of access of one or more copies of the preloaded content.
[0075] In one example, the access frequency includes a determination of which copies of the preloaded content are most frequently or recently used. In another example, the different copies of the preloaded content are dynamically sorted. In such an example, the sorting of the copies of the preloaded content is based at least in part on an extrapolation of the most recently used read temperatures and / or by accumulating statistics about the overall frequency of read temperatures that occurred. For example, copies of the preloaded content that have a write temperature associated with an operating temperature that has not been reached (or has not been reached for more than a threshold period of time) will be erased before copies of the preloaded content that are associated with the most recently reached operating temperature.
[0076] Based at least in part on the determined access frequency, the identified copy of the preloaded content (or one or more portions of the identified copy) is deleted (440).
[0077] Figures 5 and 6 Example storage devices are described that can be used with or otherwise implement the various features described herein. Figures 5 and 6 The storage devices shown and described may include Figure 1 Various systems and components similar to those shown and described. For example, Figure 6 The controller 622 shown and described may be similar to Figure 1 Likewise, the memory die 608 may be similar to Figure 1 The first memory die 165 and / or the second memory die 170 are configured to:
[0078] Figure 5 is a perspective view of a memory device 500 including a three-dimensional (3D) stacked nonvolatile memory according to one example. In this example, the memory device 500 includes a substrate 510. Blocks of memory cells are included on or above the substrate 510. The blocks may include a first block (BLK0 520) and a second block (BLK1 530). Each block may be formed of memory cells (e.g., nonvolatile memory elements). The substrate 510 may also include a peripheral region 540 having support circuits used by the first and second blocks.
[0079] The substrate 510 may also carry circuitry beneath the blocks and one or more lower metal layers patterned in conductive paths to carry signals from the circuitry. The blocks may be formed in the middle region 550 of the memory device 500. The memory device may also include an upper region 560. The upper region 560 may include one or more upper metal layers patterned in conductive paths to carry signals from the circuitry. Each block of memory cells may include a stacked region of memory cells. In one example, alternating levels of the stack represent word lines. Although two blocks are depicted, additional blocks may be used and extend in the x-direction and / or the y-direction.
[0080] In one example, the length of the plane of the substrate 510 in the x-direction represents the direction in which a signal path of a word line or a control gate line extends (e.g., in the direction of a word line or a drain select gate (SGD) line), and the width of the plane of the substrate 510 in the y-direction represents the direction in which a signal path of a bit line extends (e.g., in the direction of a bit line). The z-direction represents the height of the memory device 500.
[0081] Figure 6 is a functional block diagram of a storage device 600 according to an example. In one example, the storage device 600 may be a Figure 5 A 3D stacked non-volatile memory device 500 is shown and described. Figure 6 The components depicted in the figure may be circuits. In one example, the storage device 600 includes one or more memory dies 605. Each memory die 605 includes a three-dimensional memory structure 610 of memory cells (e.g., a 3D array of memory cells), a control circuit 615, and a read / write circuit 620. In another example, a two-dimensional array of memory cells may be used. The memory structure 610 may be addressed using a first decoder 625 (e.g., a row decoder) via word lines and a second decoder 630 (e.g., a column decoder) via bit lines. The read / write circuit 620 may also include a plurality of sense blocks 635, including SB1, SB2, ... SBp (e.g., sense circuits), which allow pages of memory cells to be read or programmed in parallel. The sense blocks 635 may include bit line drivers.
[0082] In one example, the controller 640 is included in the same memory device 600 as one or more memory dies 605. In another example, the controller 640 is formed on a die bonded to the memory dies 605, in which case each memory die 605 may have its own controller 640. In yet another example, the controller die controls all of the memory dies in the memory dies 605.
[0083] Commands and data can be transferred between the host 645 and the controller 640 using a data bus 650. Commands and data can also be transferred between the controller 640 and one or more of the memory dies 605 via lines 655. In one example, the memory die 605 includes a set of input and / or output (I / O) pins connected to the lines 655.
[0084] The memory structure 610 may also include one or more arrays of memory cells. The memory cells may be arranged in a three-dimensional array or a two-dimensional array. The memory structure 610 may include any type of non-volatile memory formed on an array of memory cells having one or more physical levels with active regions disposed above a silicon substrate. The memory structure 610 may be in a non-volatile memory device having circuitry associated with the operation of the memory cells, whether the associated circuitry is above or within the substrate.
[0085] Control circuitry 615 works in conjunction with read / write circuitry 620 to perform memory operations (eg, erase, program, read, etc.) on memory structure 610. Control circuitry 615 may include registers, ROM fuses, and other devices for storing default values such as reference voltages and other parameters.
[0086] The control circuit 615 may include a state machine 660, an on-chip address decoder 665, and a power control module 670. The state machine 660 may provide chip-level control of various memory operations. The state machine 660 may be programmable by software. In another example, the state machine 660 does not use software and is implemented entirely in hardware (e.g., circuitry).
[0087] The on-chip address decoder 665 may provide an address interface between addresses used by the host 645 and / or the controller 640 and hardware addresses used by the first decoder 625 and the second decoder 630 .
[0088] The power control module 670 can control the power and voltage supplied to the word lines and bit lines during memory operations. The power control module 670 may include drivers for the word line layer in a 3D configuration, select transistors (e.g., SGS transistors and SGD transistors), and source lines. The power control module 670 may include one or more charge pumps for generating voltages.
[0089] The control circuit 615, state machine 660, on-chip address decoder 665, first decoder 625, second decoder 630, power control module 670, sense block 635, read / write circuit 620 and / or controller 640 can be considered to be one or more control circuits and / or management circuits that perform some or all of the operations described herein.
[0090] In one example, the controller 640 is a circuit that can be on-chip or off-chip. In addition, the controller 640 may include one or more processors 680, ROM 685, RAM 690, a memory interface 695, and a host interface 675, all of which may be interconnected. In one example, the one or more processors 680 are one example of a control circuit. Other examples may use a state machine or other custom circuit designed to perform one or more functions. Devices such as ROM 685 and RAM 690 may include code, such as an instruction set. One or more processors in the processor 680 are operable to execute the set of instructions to provide some or all of the functions described herein.
[0091] Alternatively or in addition, one or more of the processors 680 can access code from a memory device in the memory structure 610, such as a reserved area of memory cells connected to one or more word lines. A memory interface 695 that communicates with the ROM 685, the RAM 690, and one or more of the processors 680 can be a circuit that provides an electrical interface between the controller 640 and the memory die 605. For example, the memory interface 695 can change the format or timing of signals, provide a buffer, isolate surges, latch I / O, etc.
[0092] The one or more processors 680 can use the memory interface 695 to issue commands to the control circuit 615 or any other component of the memory die 605. The host interface 675, which communicates with the ROM 685, RAM 690, and the one or more processors 680, can be a circuit that provides an electrical interface between the controller 640 and the host 645. For example, the host interface 675 can change the format or timing of signals, provide a buffer, isolate surges, latch I / O, etc. Commands and data from the host 645 are received by the controller 640 through the host interface 675. Data sent to the host 645 can be transmitted using the data bus 650.
[0093] The multiple memory elements in the memory structure 610 can be configured so that they are connected in series or so that each element is individually accessible. As a non-limiting example, a flash memory device in a NAND configuration (e.g., NAND flash memory) typically contains memory elements connected in series. A NAND string is an example of a group of memory cells and select gate transistors connected in series.
[0094] A NAND flash memory array can also be configured so that the array includes multiple NAND strings. In one example, a NAND string includes multiple memory cells that share a single bit line and are accessed as a group. Alternatively, the memory elements can be configured so that each memory element can be accessed individually (e.g., a NOR memory array). NAND and NOR memory configurations are examples, and memory cells can have other configurations.
[0095] Memory cells may be arranged in an ordered array in a single memory device level, such as in multiple rows and / or columns. However, memory elements may be arranged in irregular or non-orthogonal configurations, or in structures not considered arrays.
[0096] In one example, a 3D memory structure can be arranged vertically as a stack of multiple 2D memory device levels. As another non-limiting example, a 3D memory array can be arranged as a plurality of vertical columns (e.g., columns substantially perpendicular to the major surface of the substrate, such as columns extending in the y-direction), wherein each column has a plurality of memory cells. The vertical columns can be arranged into a two-dimensional arrangement of memory cells, wherein the memory cells are located on multiple vertically stacked memory planes. Other configurations of three-dimensional memory elements can also constitute a 3D memory array.
[0097] In another example, in a 3D NAND memory array, memory elements can be coupled together to form vertical NAND strings that span multiple horizontal memory device levels. Other 3D configurations are conceivable, with some NAND strings containing memory elements in a single memory level and other strings containing memory elements that span multiple memory levels. 3D memory arrays can also be designed in NOR configurations and in ReRAM configurations.
[0098] Examples of the present disclosure describe a method comprising: receiving a read command from a host device, the read command associated with preloaded content stored by a data storage device; determining an operating temperature of the data storage device based at least in part on receiving the read command; selecting one of a first copy of the preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature based at least in part on the determined operating temperature; decoding the selected one of the first copy of the preloaded content or the second copy of the preloaded content; and returning the decoded selected copy of the preloaded content to the host device. In one example, when the data storage device is operating at an operating temperature associated with the first write temperature, the first copy of the preloaded content is written to the data storage device at the first write temperature. In one example, the first copy of the preloaded content is written to the data storage device using write parameters that simulate the operating temperature associated with the first write temperature. In one example, the method further comprises determining whether to delete the first copy of the preloaded content from the data storage device. In one example, the determination is based at least in part on a frequency of access to the first copy of the preloaded content. In one example, the determination is based at least in part on an amount of available storage space in the data storage device. In one example, the method further comprises deleting the first copy of the preloaded content from the data storage device during the background operation.In one example, the first copy of the preloaded content is a subset of the preloaded content.
[0099] Examples also describe a data storage device comprising: a controller; and a cross-temperature mitigation system operable to: determine an operating temperature of the data storage device; and based at least in part on the determined operating temperature, select one of a first copy of preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature; decode the selected one of the first copy or the second copy of the preloaded content; and return the decoded copy of the preloaded content to a host device. In one example, the data storage device further comprises a temperature detection system operable to provide the cross-temperature mitigation system with the operating temperature of the data storage device. In one example, during factory setup, the first copy of the preloaded content and the second copy of the preloaded content are stored on the data storage device. In one example, when the data storage device is operating at an operating temperature associated with the first write temperature, the first copy of the preloaded content is written to the data storage device at the first write temperature. In one example, the first copy of the preloaded content is written to the data storage device using write parameters that simulate the operating temperature associated with the first write temperature. In one example, the cross-temperature mitigation system is further operable to determine whether to delete the first copy of the preloaded content from the data storage device. In one example, the determination is based at least in part on a frequency of access to the first copy of the preloaded content. In one example, the determination is based at least in part on an amount of available storage space in the data storage device. In one example, the first copy of the preloaded content is a subset of the preloaded content.
[0100] Another example describes a data storage device that includes: a controller device; a device for determining an operating temperature of the data storage device; a device for selecting one of a first copy of preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature, wherein the selection is based at least in part on the determined operating temperature of the data storage device; a device for decoding the selected one of the first copy of the preloaded content or the second copy of the preloaded content; and a device for returning the decoded selected copy of the preloaded content to a host device. In one example, during factory setup, the first copy of the preloaded content and the second copy of the preloaded content are stored on the data storage device. In one example, the first copy of the preloaded content is written to the data storage device at the first write temperature using write parameters that simulate the operating temperature associated with the first write temperature.
[0101] Those skilled in the art will recognize that the technology described herein is not limited to a single specific memory structure, but encompasses many related memory structures within the spirit and scope of the technology as described herein and understood by those skilled in the art.
[0102] The description and illustration of one or more aspects provided in this disclosure are not intended to limit or restrict the scope of this disclosure in any way. The various aspects, examples, and details provided in this disclosure are considered to be sufficient to convey the best mode of ownership and enable others to make and use the disclosed content protected by the claims.
[0103] The disclosure protected by the claims should not be construed as being limited to any aspect, example or detail provided in the disclosure. Whether shown and described in combination or individually, various features (both structural and method features) are intended to be selectively rearranged, included or omitted to produce an embodiment with a particular feature set. Having provided the description and illustration of the present disclosure, those skilled in the art can envision changes, modifications and substitutions that fall within the spirit of the broader aspects of the general inventive concept embodied in the present disclosure and that do not depart from the broader scope of the disclosure protected by the claims.
[0104] Aspects of the present disclosure have been described below with reference to the schematic flow charts and / or schematic block diagrams of the method, device, system and computer program product according to embodiments of the present disclosure. It should be understood that each frame of the schematic flow charts and / or schematic block diagrams, and the combination of the frames in the schematic flow charts and / or schematic block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to the processor or other programmable data processing device of the computer to produce a machine so that the instructions executed by the processor or other programmable data processing device create a device for implementing the function and / or action specified in one or more frames of the schematic flow charts and / or schematic block diagrams. In addition, it is contemplated that the various aspects of the flow charts and / or flow charts can be combined and / or executed in any order.
[0105] Reference to elements herein using names such as "first," "second," etc., does not generally limit the number or order of those elements. Rather, these names can be used as a method of distinguishing two or more elements or instances of an element. Thus, reference to a first element and a second element does not mean that only two elements can be used, or that the first element precedes the second element. Additionally, unless otherwise specified, a group of elements may include one or more elements.
[0106] Terms of the form “at least one of A, B, or C” or “A, B, C, or any combination thereof” used in the specification or the claims mean “A or B or C, or any combination of these elements.” For example, this term may include A, or B, or C, or A and B, or A and C, or A and B and C, or 2A, or 2B, or 2C, or 2A and B, etc. As an additional example, “at least one of A, B, or C” is intended to encompass A, B, C, AB, AC, BC, and ABC, and multiples of the same. Similarly, “at least one of A, B, and C” is intended to encompass A, B, C, AB, AC, BC, and ABC, and multiples of the same.
[0107] Similarly, as used herein, a phrase referring to a list of items linked with "and / or" refers to any combination of the items. As an example, "A and / or B" is intended to encompass A alone, B alone, or A and B together. As another example, "A, B, and / or C" is intended to encompass A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together.
Claims
1. A method comprising: receiving a read command from a host device, the read command associated with preloaded content stored by a data storage device; determining an operating temperature of the data storage device based at least in part on receiving the read command; selecting, based at least in part on the determined operating temperature, one of a first copy of the preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature; decoding a selected one of the first copy of the preloaded content or the second copy of the preloaded content; as well as The decoded selected copy of the preloaded content is returned to the host device. 2 . The method of claim 1 , wherein the first copy of the preloaded content is written to the data storage device at the first write temperature when the data storage device operates at an operating temperature associated with the first write temperature. 3 . The method of claim 1 , wherein the first copy of the preloaded content is written to the data storage device using write parameters that simulate an operating temperature associated with the first write temperature. 4 . The method of claim 1 , further comprising determining whether to delete the first copy of the preloaded content from the data storage device. The method of claim 4 , wherein the determining is based at least in part on a frequency of access of the first copy of the preloaded content. The method of claim 4 , wherein the determining is based at least in part on an amount of available storage space in the data storage device. 7 . The method of claim 4 , further comprising deleting the first copy of the preloaded content from the data storage device during background operations.
8. The method of claim 1, wherein the first copy of the preloaded content is a subset of the preloaded content.
9. A data storage device, comprising: Controller; and A crossover temperature mitigation system operable to: determining an operating temperature of the data storage device; as well as selecting, based at least in part on the determined operating temperature, one of a first copy of the preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature; decoding a selected one of the first copy or the second copy of the preloaded content; as well as A decoded copy of the preloaded content is returned to the host device.
10. The data storage device of claim 9, further comprising a temperature detection system operable to provide the operating temperature of the data storage device to the cross temperature mitigation system.
11. The data storage device of claim 9, wherein the first copy of preloaded content and the second copy of preloaded content are stored on the data storage device during factory setup.
12. The data storage device of claim 11, wherein the first copy of the preloaded content is written to the data storage device at the first write temperature when the data storage device operates at an operating temperature associated with the first write temperature.
13. The data storage device of claim 11, wherein the first copy of preloaded content is written to the data storage device using write parameters that simulate an operating temperature associated with the first write temperature.
14. The data storage device of claim 9, wherein the cross temperature mitigation system is further operable to determine whether to delete the first copy of preloaded content from the data storage device.
15. The data storage device of claim 14, wherein the determination is based at least in part on a frequency of access of the first copy of the preloaded content.
16. The data storage device of claim 14, wherein the determination is based at least in part on an amount of available storage space in the data storage device.
17. The data storage device of claim 9, wherein the first copy of the preloaded content is a subset of the preloaded content.
18. A data storage device, comprising: controller device; means for determining an operating temperature of said data storage device; means for selecting one of a first copy of the preloaded content associated with a first write temperature and a second copy of the preloaded content associated with a second write temperature different from the first write temperature, wherein the selecting is based at least in part on the determined operating temperature of the data storage device; means for decoding a selected one of the first copy of the preloaded content or the second copy of the preloaded content; and Means for returning the decoded selected copy of the preloaded content to a host device.
19. The data storage device of claim 18, wherein the first copy of preloaded content and the second copy of preloaded content are stored on the data storage device during factory setup.
20. The data storage device of claim 18, wherein the first copy of preloaded content is written to the data storage device at the first write temperature using write parameters that simulate an operating temperature associated with the first write temperature.