Media management based on forecast temperature

The invention solves the problem of low efficiency of memory system in the prior art and realizes more efficient and high performance memory management by using a memory controller to predict future temperature and select adaptive media management operation of individual memory components based on temperature difference.

CN120677456APending Publication Date: 2025-09-19MICRON TECHNOLOGY INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480011689.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-02-09
Filing Date
2024-02-06
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

Existing memory systems fail to dynamically adjust memory management operations based on the temperature range to which the memory devices are actually exposed, resulting in inefficiency and poor performance.

Method used

Memory management policies are dynamically adjusted by using a memory controller to forecast future temperatures and select adaptive media management operations for individual memory components based on temperature differences.

Benefits of technology

It improves the operating efficiency and performance of the memory system, reduces unnecessary memory management operations, and improves data reliability and integrity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120677456A_ABST
    Figure CN120677456A_ABST
Patent Text Reader

Abstract

Aspects of the present disclosure configure system components, such as a memory subsystem controller, to provide adaptive media management based on forecasted temperature. The controller determines a first temperature of an environment associated with a host of a memory subsystem at a current time. The controller predicts, at the current time, a second temperature to which the host will be exposed at a future time, and calculates, at the current time, a temperature range based on a difference between the first temperature and the second temperature. The controller selects an individual media management operation from a plurality of media management operations for an individual group of memory components based on the calculated temperature range, and performs the individual media management operation on the individual group of memory components.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority application

[0002] This application claims the benefit of priority to U.S. Provisional Application Serial No. 63 / 444,457, filed February 9, 2023, which is incorporated herein by reference in its entirety. Technical Field

[0003] Embodiments of the present disclosure relate generally to memory subsystems, and more particularly, to providing adaptive media management for memory components such as memory dies. Background Art

[0004] A memory subsystem can be a storage system, such as a solid-state drive (SSD), and can include one or more memory components that store data. Memory components can be, for example, non-volatile memory components and volatile memory components. Generally speaking, a host system can utilize the memory subsystem to store data on and retrieve data from the memory components. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The present disclosure will be more fully understood from the detailed description provided below and the accompanying drawings of various embodiments of the present disclosure.

[0006] Figure 1 A block diagram illustrating an example computing environment including a memory subsystem according to some embodiments of the present disclosure is provided.

[0007] Figure 2 is a block diagram of an example media operations manager according to some embodiments of the present disclosure.

[0008] Figure 3 Flowchart of an example method for selectively performing media management operations based on forecast temperature according to some embodiments of the present disclosure.

[0009] Figure 4 An interaction diagram is provided that illustrates interactions between components of a computing environment in the context of some embodiments in which a media operations manager is used.

[0010] Figure 5 The block diagram is a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed, causing the machine to perform any one or more of the methodologies discussed herein, in accordance with some embodiments of the present disclosure. DETAILED DESCRIPTION

[0011] Aspects of the present disclosure configure system components, such as a memory subsystem controller, to perform different memory management operations on different groups of memory components (e.g., memory dies or blocks) based on forecasted temperature and / or weather conditions at a future time / destination. The memory subsystem controller may access a first temperature associated with an environment to which a host is exposed at a reference time (e.g., the current time). The controller may forecast a second temperature to which the host will experience or be exposed at a future time. The controller may dynamically select individual media management operations to be performed on individual groups of memory components from a plurality of media management operations based on the difference between the first and second temperatures. This enables the controller to dynamically select and tailor different media management operations to the temperature range and difference experienced by the host between when writing data and when subsequently reading the data, thereby improving the overall efficiency of operating the memory subsystem. That is, instead of configuring the memory subsystem to reliably operate over an extremely broad or maximum temperature range (which may result in slow or poor performance), the memory subsystem operates according to the actual range of temperatures to which the memory subsystem is forecasted to be exposed, with a specified margin.

[0012] The memory subsystem may be a memory device, a memory module, or a combination of a memory device and a memory module. Figure 1 Examples of storage devices and memory modules are described. Generally speaking, a host system may utilize a memory subsystem that includes one or more memory components, such as memory devices (e.g., memory dies), that store data. The host system may send access requests (e.g., write commands, read commands) to the memory subsystem to store data at the memory subsystem and read data from the memory subsystem. Data (or data sets) specified by the host are hereinafter referred to as "host data," "application data," or "user data."

[0013] The memory subsystem may initiate media management operations, such as write operations, on host data stored on the memory device. For example, as part of a garbage collection management operation, the firmware of the memory subsystem may rewrite previously written host data from a location on the memory device to a new location. Data that is rewritten (e.g., refreshed) (e.g., initiated by the firmware) is referred to hereinafter as "garbage collection data." "User data" may include host data and garbage collection data. "System data," hereinafter, refers to data generated and / or maintained by the memory subsystem for performing operations in response to host requests and for media management. System data may be stored in a boot partition of the memory subsystem. Examples of system data include, but are not limited to, system tables (e.g., a logical to physical address mapping table), data from logging, scratch pad data, boot operations or commands, and the like.

[0014] Many different media management operations can be performed on a memory device. For example, these operations may include different scan rates, different scan frequencies, different wear leveling, different program speeds, different read disturb management, different data retention periods, different data read fine-tuning levels, different near miss error correction (ECC), and / or different dynamic data refresh periods. Wear leveling ensures that all blocks in a memory component approach their defined erase cycle budget at the same time, rather than some blocks approaching the erase cycle budget earlier than others. Read disturb management counts all read operations on the memory component. If a certain threshold is reached, the surrounding area is refreshed. Near miss ECC refreshes all data read by the application that exceeds a configured error threshold. Dynamic data refresh scans read all data and identifies the error status of all blocks as a background operation. If a certain error threshold for each block or ECC unit is exceeded during this scan read, a refresh operation is triggered. Data read fine-tuning levels define the voltage range that needs to be applied to a given memory cell to read / write data to it. Program speed is typically a function of the voltage applied to program a given memory cell. The data retention period defines how long data can be stored in a given memory cell before it must be refreshed. Different temperatures may affect the parameters selected for performing these different media management operations to ensure that data programmed into the memory subsystem remains reliable and accurate without errors.

[0015] The memory device may be a non-volatile memory device. A non-volatile memory device is a package of one or more dies. Each die may include one or more planes. For some types of non-volatile memory devices (e.g., NAND devices), each plane includes a set of physical blocks. For some memory devices, a block is the smallest erasable area. Each block includes a set of pages. Each page includes a set of memory cells that store data bits. The memory device may be a raw memory device (e.g., NAND), which is externally managed, for example, by an external controller. The memory device may also be a managed memory device (e.g., managed NAND), which is a raw memory device combined with a local embedded controller for memory management within the same memory device package.

[0016] There are challenges in effectively managing or performing media management operations on typical memory devices. Specifically, certain memory devices (such as NAND flash memory devices) may be integrated into a host (such as a vehicle or mobile device). The host may be exposed to a wide range of temperatures. The reliability with which data programmed into the memory device can be read reliably (e.g., without errors or within a certain error rate) depends on the temperature at which the data is written and the temperature at which the data is read. Current memory systems (e.g., SSD drives or die packaging systems) associate all memory devices in the memory system with a certain reliability specification to ensure the reliability of reading and writing data. The memory system is required to meet the reliability specification to be approved for use and may not include any specific memory device that fails to meet the reliability specification. The reliability specification is typically set based on the worst-case conditions to which the memory device may be exposed. That is, the reliability specification may specify that the memory device needs to operate within an extremely large temperature range (e.g., from -40 degrees Celsius to 115 degrees Celsius).

[0017] Current memory controllers perform memory management operations for such memory systems based on the temperature range dictated by the reliability specification, rather than the actual temperature range to which the memory devices are exposed. For example, a memory controller may be located in or associated with a host, such as an automobile, that is exposed to a maximum temperature range of 10 to 70 degrees Celsius, which is much smaller than the range specified by the reliability specification. As a result, an unnecessary number of memory management operations may be performed on memory dies to meet the temperature range of the reliability specification, where more efficient operations could be performed within the actual temperature range to which the memory devices are exposed. This can adversely impact the overall performance of the memory system. For example, a typical memory controller may perform the same refresh operations on all memory dies based on the worst-case temperature range of the memory system. While such refresh operations are appropriate for memory dies exposed to extreme temperatures, these refresh operations may not be necessary for memory dies exposed to a smaller temperature range and may result in the execution of unnecessary refresh operations. This wasteful use of memory operations reduces the efficiency, speed, and performance of the memory system. Current memory systems fail to provide a solution that addresses the needs of all memory devices and applications based on their actual environmental conditions or the environmental conditions to which their respective hosts are exposed.

[0018] Aspects of the present disclosure address the above and other deficiencies by providing a memory controller that can determine the current temperature (at the current location of a host associated with the memory controller) and a predicted temperature (e.g., at a future location of the host associated with the memory controller) and customize memory operations to be performed based on the difference between the current and predicted temperatures. Thus, the memory controller can customize memory management operations for the specific temperature range of a memory component without sacrificing performance by applying the same memory management operations to all memory components. This improves the efficiency of operating a memory system.

[0019] In some embodiments, a memory subsystem (e.g., a memory subsystem controller) may determine a first temperature of an environment associated with a host of the memory subsystem (e.g., a vehicle, automobile, ship, airplane, mobile device, etc.) at a current time. The memory subsystem may forecast a second temperature to which the host will be exposed at a future time at the current time. The memory subsystem may calculate a temperature range at the current time based on a difference between the first temperature and the second temperature. The memory subsystem may select an individual media management operation from a plurality of media management operations for an individual memory component group in a set of memory components based on the calculated temperature range, and may perform the individual media management operation on the individual memory component group.

[0020] In some instances, the host comprises a vehicle. In some instances, the host comprises a mobile device.

[0021] In some examples, the memory subsystem receives a travel plan from a host. The memory subsystem identifies a destination location of the host at a future time based on the travel plan. The memory subsystem accesses weather information associated with the destination location (e.g., via the Internet) to forecast a second temperature. In some examples, the memory subsystem communicates the identification of the destination location and the future time to a weather server. The memory subsystem receives the second temperature forecast for the destination location at the future time from the weather server.

[0022] In some examples, the plurality of media management operations include at least one of different media scan rates, different refresh rates, different program speeds, different data retention periods, and different data read fine-tuning levels. In some examples, the individual media management operations are selected to reduce data loss or errors in data that was programmed at a reference time and is to be read or accessed at a future time.

[0023] In some examples, the memory subsystem programs data to the individual memory component groups at a current time based on a second temperature to which the host will be exposed at a future time. In some examples, the memory subsystem is powered off at the current time and powered on at a future time. In some examples, the individual memory component groups correspond to a boot partition of the memory subsystem.

[0024] In some examples, the memory subsystem periodically determines a third temperature at an intermediate time between the current time and the future time, the third temperature being a temperature of an environment to which the host is exposed at the intermediate time. The memory subsystem determines whether the third temperature is between the first temperature and the second temperature.

[0025] In some examples, the memory subsystem verifies that the predicted second temperature is accurate based on determining that the third temperature is between the first temperature and the second temperature. In some examples, the memory subsystem sets a margin around the calculated temperature range to select individual media management operations. In some examples, the memory subsystem accesses a temperature trend indicating different temperatures to which the host is exposed after a current time and before a future time and predicts the second temperature based on the temperature trend.

[0026] Although various embodiments are described herein as being implemented with respect to a memory subsystem (eg, a controller of a memory subsystem), some or all portions of the embodiments may be implemented with respect to a host system (such as a software application or operating system of the host system).

[0027] Figure 1 An example computing environment 100 including a memory subsystem 110 according to some examples of the present disclosure is illustrated. Memory subsystem 110 may include media, such as memory components 112A through 112N (hereinafter also referred to as "memory devices"). Memory components 112A through 112N may be volatile memory devices, non-volatile memory devices, or a combination of such devices. Memory components 112A through 112N may be implemented by individual dies, such that first memory component 112A may be implemented by a first memory die (or a first set of memory dies), and second memory component 112N may be implemented by a second memory die (or a second set of memory dies).

[0028] In some embodiments, the memory subsystem 110 is a storage system. The memory subsystem 110 can be a storage device, a memory module, or a combination of a storage device and a memory module. Examples of storage devices include solid-state drives (SSDs), flash drives, universal serial bus (USB) flash drives, embedded multimedia controller (eMMC) drives, universal flash storage (UFS) drives, and hard disk drives (HDDs). Examples of memory modules include dual inline memory modules (DIMMs), small outline DIMMs (SO-DIMMs), and non-volatile dual inline memory modules (NVDIMMs).

[0029] The computing environment 100 may include a host system 120 coupled to a memory system. The memory system may include one or more memory subsystems 110. In some embodiments, the host system 120 is coupled to memory subsystems 110 of different types. Figure 1 An example of a host system 120 coupled to one memory subsystem 110 is illustrated. The host system 120 uses the memory subsystem 110, for example, to write data to the memory subsystem 110 and to read data from the memory subsystem 110. As used herein, "coupled to" generally refers to a connection between components, which can be an indirect communication connection or a direct communication connection (e.g., with no intervening components), whether wired or wireless, including connections such as electrical connections, optical connections, magnetic connections, etc.

[0030] Host system 120 may be a computing device such as a desktop computer, a laptop computer, a network server, a mobile device, an embedded computer (e.g., an embedded computer included in a vehicle, automobile, bus, airplane, ship, industrial equipment, or networked commercial device), a system-on-chip (SoC) device, or such a computing device that includes both memory and processing devices. Host system 120 may include or be coupled to memory subsystem 110 so that host system 120 can read data from or write data to memory subsystem 110. Host system 120 may be coupled to memory subsystem 110 via a physical host interface. Examples of a physical host interface include, but are not limited to, a Serial Advanced Technology Attachment (SATA) interface, a Peripheral Component Interconnect Express (PCIe) interface, a Universal Serial Bus (USB) interface, a Fibre Channel interface, a Serial Attached SCSI (SAS) interface, and the like. The physical host interface may be used to transfer data between host system 120 and memory subsystem 110. When the memory subsystem 110 is coupled to the host system 120 via a PCIe interface, the host system 120 may further utilize an NVM Express (NVMe) interface to access the memory components 112A to 112N. A physical host interface may provide an interface for passing control, address, data, and other signals between the memory subsystem 110 and the host system 120.

[0031] Memory components 112A-112N may include any combination of different types of nonvolatile memory components and / or volatile memory components. An example of a nonvolatile memory component includes NAND-type flash memory. Each of memory components 112A-112N may include one or more arrays of memory cells, such as single-level cells (SLC) or multi-level cells (MLC) (e.g., TLC or QLC). In some embodiments, a particular memory component 112 may include both an SLC portion and an MLC portion of memory cells. Each of the memory cells may store one or more data bits (e.g., a block) used by host system 120. Although nonvolatile memory components such as NAND-type flash memory are described, memory components 112A-112N may be based on any other type of memory, such as volatile memory. In some embodiments, memory components 112A-112N may be, but are not limited to, random access memory (RAM), read-only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), phase change memory (PCM), magnetoresistive random access memory (MRAM), NOR flash memory, electrically erasable programmable read-only memory (EEPROM), and a cross-point array of non-volatile memory cells. A cross-point array of non-volatile memory cells may be combined with a stackable cross-grid data access array to perform bit storage based on changes in bulk resistance. In addition, compared to many flash-based memories, cross-point non-volatile memory may perform write-in-place operations, where non-volatile memory cells may be programmed without having to previously erase them. Furthermore, the memory cells of memory components 112A-112N may be grouped into memory pages or blocks, which may refer to the cells of memory component 112 used to store data. In some examples, the memory cells of memory components 112A-112N may be grouped into a set of different regions of equal or unequal size for storing data for corresponding applications. In such cases, each application may store data in an associated region of the set of different regions. In some cases, different memory management operations may be performed on different groups of memory cells within each memory component 112A-112N.

[0032] The memory subsystem controller 115 may communicate with the memory components 112A through 112N to perform operations such as reading data, writing data, or erasing data at the memory components 112A through 112N, among other such operations. The memory subsystem controller 115 may communicate with the memory components 112A through 112N to perform various memory management operations, such as different scan rates, different scan frequencies, different wear leveling, different program speeds, different read disturb management, different data retention periods, different data read trim levels, different near miss ECCs, and / or different dynamic data refresh periods.

[0033] The memory subsystem controller 115 may include hardware, such as one or more integrated circuits and / or discrete components, buffer memory, or a combination thereof. The memory subsystem controller 115 may be a microcontroller, a dedicated logic circuit system (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or another suitable processor. The memory subsystem controller 115 may include a processor (processing device) 117 configured to execute instructions stored in a local memory 119. In the illustrated example, the local memory 119 of the memory subsystem controller 115 includes an embedded memory configured to store instructions for executing various processes, operations, logic flows, and routines that control the operation of the memory subsystem 110, including handling communications between the memory subsystem 110 and the host system 120. In some embodiments, the local memory 119 may include memory registers that store memory pointers, extracted data, etc. The local memory 119 may also include a read-only memory (ROM) for storing microcode. Although it has been described Figure 1 The example memory subsystem 110 in FIG. 1 is illustrated as including a memory subsystem controller 115, but in another embodiment of the present disclosure, the memory subsystem 110 may not include a memory subsystem controller 115 and may instead rely on external control (e.g., provided by an external host or by a processor 117 or controller separate from the memory subsystem 110).

[0034] In general, the memory subsystem controller 115 may receive commands or operations from the host system 120 and may convert the commands or operations into instructions or appropriate commands to enable the desired access to the memory components 112A through 112N. In some examples, the commands or operations received from the host system 120 may specify the current and / or future temperature of the environment to which the host system 120 is currently or at a future time.

[0035] The memory subsystem controller 115 may be responsible for other memory management operations such as wear leveling operations, garbage collection operations, error detection and error correction code (ECC) operations, encryption operations, cache operations, and address translation. The memory subsystem controller 115 may further include host interface circuitry to communicate with the host system 120 via a physical host interface. The host interface circuitry may convert commands received from the host system 120 into command instructions to access the memory components 112A-112N, and convert responses associated with the memory components 112A-112N into information for the host system 120.

[0036] The memory subsystem 110 may also include additional circuitry or components not illustrated. In some embodiments, the memory subsystem 110 may include a cache or buffer (e.g., a DRAM or other temporary storage location or device) and address circuitry (e.g., a row decoder and a column decoder) that may receive addresses from the memory subsystem controller 115 and decode the addresses to access the memory components 112A-112N.

[0037] The memory device may be a raw memory device (e.g., NAND), which is externally managed, for example, by an external controller (e.g., memory subsystem controller 115). The memory device may be a managed memory device (e.g., managed NAND), which is a raw memory device combined with a local embedded controller (e.g., a local media controller) for memory management within the same memory device package. Any of the memory components 112A to 112N may include a media controller (e.g., media controller 113A and media controller 113N) to manage the memory cells of the memory component (e.g., to perform one or more memory management operations), communicate with the memory subsystem controller 115, and execute memory requests (e.g., reads or writes) received from the memory subsystem controller 115.

[0038] The memory subsystem controller 115 may include a media operations manager 122. The media operations manager 122 may be configured to selectively and adaptively perform different memory management operations on the memory components 112A-112N based on the temperature ranges to which the host system 120 is exposed at different times. For example, the memory subsystem controller 115 may select a memory management operation to be performed on the memory components 112A-112N, or portions thereof, based on the difference between a first temperature when programming data to the memory components 112A-112N and a second temperature predicted to be present at a future time when reading data from the memory components 112A-112N. For example, the media operations manager 122 may determine a first temperature of an environment associated with a host of the memory subsystem (e.g., a vehicle, automobile, boat, airplane, mobile device, etc.) at a current time. The media operations manager 122 may predict a second temperature to which the host will be exposed at a future time at the current time. The media operations manager 122 may calculate a temperature range at the current time based on the difference between the first and second temperatures. The media operations manager 122 selects individual media management operations from a plurality of media management operations for individual groups of memory components in the set of memory components based on the calculated temperature range, and performs the individual media management operations on the individual groups of memory components. In this way, the media operations manager 122 can customize the types of memory management operations performed on different groups of memory components 112A-112N based on the temperature ranges to which the host system 120 is and will be exposed.

[0039] Depending on the embodiment, the media operations manager 122 may include logic (e.g., a transient or non-transient machine instruction set, such as firmware) or one or more components that enable the media operations manager 122 to perform the operations described herein. The media operations manager 122 may include tangible or non-tangible units capable of performing the operations described herein. Additional details regarding the operation of the media operations manager 122 are described below.

[0040] Figure 2 is a block diagram of an example media operations manager 200 according to some embodiments of the present disclosure. As illustrated, Figure 1 The media operations manager 122 includes a temperature data module 220, a media management operations table 230, and a temperature forecast module 240. For some embodiments, the media operations manager 122 may be configured to communicate with the media operations manager 122 on a component or arrangement (e.g., fewer or more components). Figure 2 The differences described in .

[0041] Temperature data module 220 and Figure 1 120 to obtain the current temperature of the environment to which the host system 120 is exposed. In some cases, the temperature data module 220 accesses the Figure 1The memory subsystem 110 may be connected to a temperature sensor associated with the memory subsystem 110 and read a current value of the temperature sensor. The current temperature may be stored as a first temperature representing a temperature at which data was programmed into the memory subsystem 110 before the memory subsystem 110 was powered off.

[0042] The temperature data module 220 may also communicate with the host system 120 to obtain the current travel plan and / or determine a destination associated with the host system 120. The destination may be received from the host system 120 using global positioning system (GPS) coordinates and / or as the name of a location, city, and / or state. The host system 120 may specify a future time at which the destination will be reached in the travel plan. The temperature data module 220 may provide the current temperature and the destination and / or travel plan to the temperature forecast module 240. In some cases, the host system 120 provides information indicating the predicted temperature at the destination when the host system 120 will arrive at the destination as part of the travel plan.

[0043] The temperature forecast module 240 processes the current temperature, the forecast temperature, and / or the destination identifier, as well as the future time at which the destination will be reached, to calculate a temperature range for the memory subsystem 110. The temperature range may represent an actual temperature difference or range between the current time and the future time (e.g., when the memory subsystem 110 is powered on). Based on the actual temperature difference or range, the media operations manager 200 may select which media operations to perform on the memory subsystem 110 to maintain data reliability and integrity above a threshold.

[0044] In some cases, the temperature forecast module 240 receives a destination identifier and a future time to arrive at the destination. The temperature forecast module 240 communicates this information to a weather server and requests a forecast of what the weather will be like at the destination at the future time. The temperature forecast module 240 receives a forecast temperature (e.g., a second temperature) from the weather server at the current time to which the host system 120 and the memory subsystem 110 will be exposed at the future time. In some cases, the temperature forecast module 240 accesses a website of a weather server via the Internet to search for the forecast temperature. Operations communicating with the weather server may be performed, and if the host system 120 fails to include the forecast temperature as part of the travel plan, or if the host is unable to provide the forecast temperature when requested by the temperature data module 220.

[0045] In some instances, the temperature forecast module 240 receives the current temperature from the host system 120 and does not receive travel plans or future destinations from the host system 120. In such instances, the temperature forecast module 240 periodically communicates with the temperature sensors of the host system 120 and / or the memory subsystem 110 to read the current temperature conditions. The temperature forecast module 240 stores the current temperature conditions in a trend table to calculate temperature trends over a series of time periods. The temperature forecast module 240 can estimate or predict a forecast temperature based on the temperature trend, such as by extrapolating the temperature trend to a specified time point in the future, such as one hour from the current time, five hours from the current time, or 24 hours from the current time.

[0046] In some examples, the temperature forecast module 240 continuously or routinely monitors Figure 1 The temperature forecast module 240 may determine or predict the future or forecast temperature associated with the memory components 112A-112N.

[0047] In some examples, the temperature forecast module 240 routinely or periodically determines whether the forecast temperature is accurate by verifying that the trend associated with the current set of temperatures is approaching the forecast temperature. For example, the temperature forecast module 240 may receive the current temperature and may forecast the forecast temperature. The temperature forecast module 240 may collect current temperature readings every 5 minutes, every hour, or at other intervals. The temperature forecast module 240 may calculate a temperature trend based on a set of temperature readings captured after a first time and before arriving at a future time (e.g., a second time). The temperature forecast module 240 may verify whether the temperature trend is trending toward the forecast temperature. If so, the temperature forecast module 240 determines that the forecast temperature is accurate. If not, the temperature forecast module 240 communicates with the host system 120 to determine whether the travel plans and / or destination have changed. If the host system 120 indicates a change, the temperature forecast module 240 updates the forecast temperature and the new arrival time for the new destination and modifies memory management operations accordingly.

[0048] In some examples, the media management operation table 230 stores a table or map that associates different temperature ranges with specific types of memory management operations. For example, a first temperature range may be associated with a first refresh rate and read / write fine-tuning voltage level, and a second temperature range may be associated with a second refresh rate and read / write fine-tuning voltage level, or a different type of memory management operation. The media operations manager 200 may receive a temperature range (calculated based on the current temperature and the forecast temperature) from the temperature forecast module 240. Based on the temperature range, the media operations manager 200 searches the table 230 to determine the type of memory management operation to be performed on one or more memory components 112A-112N. The media operations manager 200 retrieves the identified memory management operation corresponding to the current temperature range received from the temperature forecast module 240 and performs the identified memory management operation (e.g., programming data to the memory components 112A-112N and / or performing a refresh operation on the data stored in the memory components 112A-112N). The media management operations are selected to reduce data loss or errors in data that has been programmed at the current time (e.g., before the memory subsystem 110 is powered off) and will be read or accessed at a future time (e.g., at the end of a trip or when the memory subsystem 110 is started or powered on).

[0049] In some examples, media operations manager 200 uses temperature forecast module 240 to determine a forecast temperature that host system 120 will be exposed to at a future time. Media operations manager 200 can store or program data using a first set of trim levels and / or associated with a first refresh rate based on the forecast temperature at a current time, even if host system 120 is exposed to a different temperature (which may be higher or lower than the forecast temperature) at the current time.

[0050] Figure 3 Flowchart of an example method 300 for selectively performing media management operations based on reliability levels according to some embodiments of the present disclosure. The method 300 may be performed by processing logic that may include hardware (e.g., a processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some embodiments, the method 300 is performed by Figure 1 The processes are executed by the media operations manager 122. Although the processes are presented in a particular sequence or order, the order of the processes may be modified unless otherwise specified. Therefore, it should be understood that the illustrated embodiments are merely examples, and the illustrated processes may be performed in a different order, and some processes may be performed in parallel. In addition, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.

[0051] Reference Figure 3, the method (or process) 300 begins with operation 305, wherein the memory subsystem (eg, Figure 1 Memory subsystem 110) Figure 1 The media operations manager 122 determines at the current time the connection with the memory subsystem (such as the memory subsystem controller 115 ( Figure 1 For some embodiments, a first temperature of an environment associated with a host system (e.g., a vehicle or mobile device) communicatively coupled to the memory subsystem. Figure 1 The host system 120) receives the configuration data.

[0052] In operation 310, the media operations manager 122 of the memory subsystem predicts, at the current time, a second temperature to which the host will be exposed at a future time. Thereafter, in operation 315, the media operations manager 122 calculates a temperature range at the current time based on the difference between the first temperature and the second temperature. Next, in operation 320, the media operations manager 122 selects an individual media management operation from a plurality of media management operations for an individual memory component group in the memory component set based on the calculated temperature range. In operation 325, the media operations manager 122 executes the individual media management operation on the individual memory component group.

[0053] Figure 4 An interaction diagram 400 is provided illustrating interactions between components of a computing environment in the context of some embodiments in which a media operations manager is used. For example, Figure 4 As shown in FIG. 4 , a vehicle 410 (eg, corresponding to Figure 1 The host system 120 includes a memory device 420. The memory device 420 may correspond to Figure 1 The memory subsystem 110 includes the media operations manager 122. At a current or first time or period, the vehicle 410 may be exposed to an environment 412 associated with a first weather condition (eg, a first temperature 422, such as 50 degrees Celsius).

[0054] At a current or first time or period, memory device 420 performs operation 430 to periodically request temperature data to adjust memory management operations based on the temperature data to maintain data integrity. For example, memory device 420 may determine a forecast temperature 426 associated with destination environment 414 of vehicle 410. Forecast temperature 426 corresponds to destination environment 414 of vehicle 410 at a future time (e.g., a second time) after the current or first time. Forecast temperature 426 at destination environment 414 may correspond to -10 degrees Celsius. Memory device 420 may receive a request to program data from host system 120. In response, memory device 420 may perform one or more memory management operations, such as refresh operations and / or trim level settings, based on forecast temperature 426 of destination environment 414 to store or program data from host system 120. In some cases, memory device 420 calculates a difference or range between first temperature 422 and forecast temperature 426 and selects a memory management operation to perform based on the difference or range.

[0055] Memory device 420 may perform operation 432, i.e., as the travel continues between the first time and the second time, memory device 420 periodically verifies that weather conditions (such as temperature) are developing toward forecast temperature 426. Then, at the second time or period, upon arrival at destination environment 414, memory device 420 may receive a request to read or access data that was programmed when host system 120 was in environment 412 at the first time or period. Memory device 420 performs operation 434 to prepare data for the updated environmental conditions to improve (e.g., maximize) data integrity, such as when vehicle 410 is parked. Memory device 420 may access data based on the memory management operation selected when storing data while host system 120 was in environment 412.

[0056] In view of the above disclosure, various examples are described below. It should be noted that one or more features of the examples taken independently or in combination should be considered within the disclosure of this application.

[0057] Example 1. A system comprising: a set of memory components of a memory subsystem; and a processing device operatively coupled to the set of memory components, the processing device configured to perform operations comprising: determining a first temperature of an environment associated with a host of the memory subsystem at a reference time; forecasting a second temperature to which the host will be exposed at a future time relative to the reference time; selecting an individual media management operation from a plurality of media management operations for an individual group of memory components in the set of memory components based on the second temperature; and performing the individual media management operation on the individual group of memory components before the future time.

[0058] Example 2. The system of example 1, wherein the host comprises a vehicle, the operations comprising calculating a temperature range based on a difference between a first temperature and a second temperature before a future time, wherein the individual media management operations are selected based on the temperature range.

[0059] Example 3. The system of any of examples 1-2, wherein the host comprises a mobile device, and wherein the reference time comprises a current time.

[0060] Example 4. The system of any of examples 1-3, the operations comprising: receiving a travel plan from a host; identifying a destination location of the host at a future time based on the travel plan; and accessing weather information associated with the destination location to forecast a second temperature.

[0061] Example 5. The system of example 4, the operations comprising: communicating an identification of the destination location and a future time to a weather server; and receiving from the weather server a second temperature forecast for the destination location at the future time.

[0062] Example 6. The system of any one of examples 1 to 5, wherein the plurality of media management operations comprises at least one of different media scan rates, different refresh rates, different program speeds, different data retention periods, and different data read fine-tuning levels.

[0063] Example 7. The system of any of examples 1-6, wherein individual media management operations are selected to reduce data loss or errors in data that has been programmed at a reference time and is to be read or accessed at a future time.

[0064] Example 8. The system of any of examples 1-7, the operations comprising programming data to the group of individual memory components at a reference time based on a second temperature to which the host will be exposed at a future time.

[0065] Example 9. The system of any of examples 1-8, wherein the memory subsystem is powered off at a reference time and powered on at a future time.

[0066] Example 10. The system of example 9, wherein the individual groups of memory components correspond to a boot partition of the memory subsystem.

[0067] Example 11. A system according to any one of Examples 1 to 10, wherein the operation includes: periodically determining a third temperature at an intermediate time between a reference time and a future time, the third temperature being the temperature of an environment to which the host is exposed at the intermediate time; and determining whether the third temperature is between the first temperature and the second temperature.

[0068] Example 12. The system of clause 11, the operations comprising verifying that the forecasted second temperature is accurate based on determining that the third temperature is between the first temperature and the second temperature.

[0069] Example 13. The system of any of examples 1 to 12, the operations comprising setting a margin around the second temperature for selecting individual media management operations.

[0070] Example 14. The system of any of examples 1-13, the operations comprising: accessing a temperature trend representing different temperatures to which the host was exposed after a reference time and before a future time; and forecasting a second temperature based on the temperature trend.

[0071] Methods and computer-readable storage media having instructions for performing any of the above examples.

[0072] Figure 5 An example machine is illustrated in the form of a computer system 500 within which a set of instructions may be executed to cause the machine to perform any one or more of the methodologies discussed herein. In some embodiments, the computer system 500 may correspond to a host system (e.g., Figure 1 120) that includes, is coupled to, or utilizes a memory subsystem (e.g., Figure 1 110), or can be used to perform operations of the controller (for example, execute an operating system to perform operations corresponding to Figure 1 In some embodiments, the machine may be connected (e.g., using a network) to other machines in a local area network (LAN), an intranet, an extranet, and / or the Internet. The machine may operate in the capacity of a server or a client machine in a client-server network environment, or in the capacity of a server or a client machine in a peer-to-peer (or distributed) network environment.

[0073] The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a network appliance, a server, a network router, a network switch or bridge, or any machine capable of executing (sequentially or otherwise) a set of instructions that specify actions to be taken by the machine. Further, while a single machine is described, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set of instructions (or multiple sets of instructions) to perform any one or more of the methodologies discussed herein.

[0074] The example computer system 500 includes a processing device 502, a main memory 504 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM), such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 506 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system 518, which communicate with each other via a bus 530.

[0075] Processing device 502 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, or the like. More specifically, processing device 502 may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing other instruction sets, or a processor implementing a combination of instruction sets. Processing device 502 may also be one or more special-purpose processing devices, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like. Processing device 502 is configured to execute instructions 526 for performing the operations and steps discussed herein. Computer system 500 may further include a network interface device 508 for communicating via a network 520.

[0076] The data storage system 518 may include a machine-readable storage medium 524 (also referred to as a computer-readable medium) on which is stored one or more sets of instructions 526 or software embodying any one or more of the methodologies or functions described herein. The instructions 526 may also reside, completely or at least partially, within the main memory 504 and / or within the processing device 502 during execution by the computer system 500, with the main memory 504 and the processing device 502 also constituting machine-readable storage media. The machine-readable storage medium 524, the data storage system 518, and / or the main memory 504 may correspond to Figure 1 Memory subsystem 110.

[0077] In one embodiment, instructions 526 implement the instructions corresponding to Figure 1 The functionality of the media operations manager 122 is provided. Although the machine-readable storage medium 524 is shown as a single medium in the example embodiment, the term "machine-readable storage medium" should be considered to include a single medium or multiple media that store one or more sets of instructions. The term "machine-readable storage medium" should also be considered to include any medium that can store or encode a set of instructions for execution by a machine and cause the machine to perform any one or more of the methods of the present disclosure. Thus, the term "machine-readable storage medium" should be considered to include, but not be limited to, solid-state memory, optical media, and magnetic media.

[0078] Some portions of the previous detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means by which those skilled in the data processing arts can most effectively convey the substance of their work to others skilled in the art. Herein, and generally speaking, an algorithm is conceived to be a self-consistent sequence of operations that produces a desired result. Operations are those requiring physical manipulation of physical quantities. Typically (but not necessarily), these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, primarily for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

[0079] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. The present disclosure may refer to the actions and processes of a computer system or similar electronic computing device that manipulates data represented as physical (electronic) quantities within the computer system's registers and memories and converts it into other data similarly represented as physical quantities within the computer system's memories or registers or other such information storage systems.

[0080] The present disclosure also relates to an apparatus for performing the operations described herein. This apparatus may be specially constructed for the intended purpose, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. This computer program may be stored in a computer-readable storage medium, such as, but not limited to, any type of disk (including floppy disks, optical disks, CD-ROMs, and magneto-optical disks), read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), EEPROM, magnetic or optical cards, or any type of medium suitable for storing electronic instructions, each coupled to a computer system bus.

[0081] The algorithms and displays presented herein are not inherently related to any particular computer or other device. Various general-purpose systems may be used with the programs according to the teachings herein, or it may prove convenient to construct more specialized devices to perform the methods. The structures for various such systems will be presented as set forth in the description above. Additionally, the present disclosure is not described with reference to any particular programming language. It will be appreciated that the teachings of the present disclosure as described herein may be implemented using a variety of programming languages.

[0082] The present disclosure may be provided in the form of a computer program product or software, which may include a machine-readable medium having instructions stored thereon, which instructions may be used to program a computer system (or other electronic device) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). In some embodiments, a machine-readable (e.g., computer-readable) medium includes a machine-readable (e.g., computer-readable) storage medium, such as a read-only memory (ROM), a random access memory (RAM), a magnetic disk storage medium, an optical storage medium, a flash memory component, or the like.

[0083] In the foregoing description, embodiments of the present disclosure have been described with reference to specific example embodiments thereof. It will be apparent that various modifications may be made thereto without departing from the broader spirit and scope of the embodiments of the present disclosure as set forth in the appended claims. The specification and drawings are, therefore, to be regarded in an illustrative rather than a restrictive sense.

Claims

1. A system comprising: A collection of memory components of a memory subsystem; and a processing device operatively coupled to the set of memory components, the processing device configured to perform operations comprising: determining a first temperature of an environment associated with a host of the memory subsystem at a reference time; forecasting a second temperature to which the host will be exposed at a future time relative to the reference time; selecting, for an individual group of memory components in the set of memory components, an individual media management operation from a plurality of media management operations based on the second temperature; and The individual media management operations are performed on the individual groups of memory components before the future time.

2. The system of claim 1 , wherein the host comprises a vehicle, the operations comprising calculating a temperature range based on a difference between the first temperature and the second temperature before the future time, wherein the individual media management operations are selected based on the temperature range.

3. The system of claim 1, wherein the host comprises a mobile device, and wherein the reference time comprises a current time.

4. The system of claim 1 , wherein the operations comprise: receiving a trip plan from the host; identifying a destination location of the host at the future time based on the trip plan; and Weather information associated with the destination location is accessed to forecast the second temperature.

5. The system of claim 4, wherein the operations comprise: communicating the identification of the destination location and the future time to a weather server; and The second temperature forecast for the destination location at the future time is received from the weather server.

6. The system of claim 1, wherein the plurality of media management operations comprises at least one of different media scan rates, different refresh rates, different program speeds, different data retention periods, and different data read fine-tuning levels.

7. The system of claim 1, wherein the individual media management operations are selected to reduce data loss or errors for data that has been programmed at the reference time and is to be read or accessed at the future time.

8. The system of claim 1, the operations comprising programming data to the group of individual memory components at the reference time based on the second temperature to which the host will be exposed at the future time.

9. The system of claim 1, wherein the memory subsystem is powered off at the reference time and powered on at the future time.

10. The system of claim 9, wherein the group of individual memory components corresponds to a boot partition of the memory subsystem.

11. The system of claim 1 , wherein the operations comprise: periodically determining a third temperature at an intermediate time between the reference time and the future time, the third temperature being a temperature of the environment to which the host is exposed at the intermediate time; and It is determined whether the third temperature is between the first temperature and the second temperature.

12. The system of claim 11, wherein the operations comprise: The predicted second temperature is verified to be accurate based on determining that the third temperature is between the first temperature and the second temperature.

13. The system of claim 1, wherein the operations comprise: A margin is set around the second temperature for selecting the individual media management operation.

14. The system of claim 1, wherein the operations comprise: accessing a temperature trend, the temperature trend representing different temperatures to which the host was exposed after the reference time and before the future time; and The second temperature is forecasted based on the temperature trend.

15. A method comprising: determining a first temperature of an environment associated with a host of the memory subsystem at a reference time; forecasting a second temperature to which the host will be exposed at a future time relative to the reference time; selecting, for an individual group of memory components in the set of memory components, an individual media management operation from a plurality of media management operations based on the second temperature; and The individual media management operations are performed on the individual groups of memory components before the future time.

16. The method of claim 15, wherein the host comprises a vehicle, the operations comprising calculating a temperature range based on a difference between the first temperature and the second temperature before the future time, wherein the individual media management operations are selected based on the temperature range.

17. The method of claim 15, wherein the host comprises a mobile device, and wherein the reference time comprises a current time.

18. The method according to claim 15, comprising: receiving a trip plan from the host; identifying a destination location of the host at the future time based on the trip plan; and Weather information associated with the destination location is accessed to forecast the second temperature.

19. The method according to claim 18, comprising: communicating the identification of the destination location and the future time to a weather server; and The second temperature forecast for the destination location at the future time is received from the weather server.

20. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising: determining a first temperature of an environment associated with a host of the memory subsystem at a reference time; forecasting a second temperature to which the host will be exposed at a future time relative to the reference time; selecting, for an individual group of memory components in the set of memory components, an individual media management operation from a plurality of media management operations based on the second temperature; and The individual media management operations are performed on the individual groups of memory components before the future time.