Learning-type temperature compensation
By performing training operations in the memory system, determining the preferred parameter set at different temperatures and configuring the parameter set for the interface, the performance degradation caused by frequent calibration is solved, and the performance and user experience of the system over a wide temperature range is improved. .
Patent Information
- Application Number
- CN202410890697.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-06-07
- Filing Date
- 2024-07-04
- Publication Date
- 2025-01-07
AI Technical Summary
Frequent execution of calibration procedures in existing memory systems results in system performance degradation throughout the lifespan, requiring reduced impact of temperature compensation on system performance.
Perform a series of training operations through the host system, determine and store preferred parameter sets at different temperatures, and configure the third parameter set for the interface based on these parameter sets to reduce the impact of temperature compensation on system performance and appear at new temperatures When using previously determined parameters, reduce the frequency of execution of the calibration program.
Reduce the impact of temperature compensation on performance throughout the system's life, improve the performance of the system over a wide temperature range, reduce the program impact of identifying preferred operating parameters, reduce data errors and delays, and improve user experience.
Smart Images

Figure CN119271120A_ABST
Abstract
Description
[0001] Cross-references
[0002] This patent application claims priority to U.S. patent application No. 18 / 737,831, entitled “LEARNED TEMPERATURE COMPENSATION,” filed by Spirkl et al. on June 7, 2024, and U.S. patent application No. 63 / 525,499, entitled “LEARNED TEMPERATURE COMPENSATION,” filed by Spirkl et al. on July 7, 2023, each of which is assigned to the present assignee, and each of which is expressly incorporated herein by reference in its entirety.
[0003] The technical field relates to learned temperature compensation. Background Art
[0004] Memory devices are used to store information in devices such as computers, user devices, wireless communication devices, cameras, digital displays, etc. Information is stored by programming memory cells within the memory device to various states. For example, a binary memory cell can be programmed to one of two supported states, typically represented by a logical 1 or a logical 0. In some examples, a single memory cell can support more than two states, either of which can be stored by the memory cell. To store information, the memory device can write (e.g., program, set, assign) a state to the memory cell. To access the stored information, the memory device can read (e.g., sense, detect, retrieve, determine) a state from the memory cell. Summary of the invention
[0005] A method is described. The method may include: determining, by a host system coupled to a memory system via an interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface; storing, by the host system, an indication of the first set of parameters and a first temperature associated with the first set of parameters based at least in part on determining the first set of parameters; determining, by the host system, a second set of parameters associated with operation of the interface based at least in part on a second training operation of the interface; storing, by the host system, an indication of the second set of parameters and a second temperature associated with the second set of parameters based at least in part on determining the second set of parameters; configuring, by the host system, a third set of parameters for operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both; and communicating, by the host system, with the memory system through the interface according to the third set of parameters.
[0006] An apparatus is described. The apparatus may include at least one controller configured to cause the apparatus to: determine, by a host system coupled to a memory system via an interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface; store, by the host system, an indication of the first set of parameters and a first temperature associated with the first set of parameters based at least in part on determining the first set of parameters; determine, by the host system, a second set of parameters associated with the operation of the interface based at least in part on a second training operation of the interface; store, by the host system, an indication of the second set of parameters and a second temperature associated with the second set of parameters based at least in part on determining the second set of parameters; configure, by the host system, a third set of parameters for the operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both; and communicate, by the host system, with the memory system through the interface according to the third set of parameters.
[0007] A non-transitory computer-readable medium is described. The non-transitory computer-readable medium may include stored instructions executable by at least one processor of an electronic device to cause the electronic device to: determine, by a host system coupled to a memory system via an interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface; store, by the host system, an indication of the first set of parameters and a first temperature associated with the first set of parameters based at least in part on determining the first set of parameters; determine, by the host system, a second set of parameters associated with the operation of the interface based at least in part on a second training operation of the interface; store, by the host system, an indication of the second set of parameters and a second temperature associated with the second set of parameters based at least in part on determining the second set of parameters; configure, by the host system, a third set of parameters for the operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both; and communicate, by the host system, with the memory system through the interface according to the third set of parameters. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 An example of a system supporting learned temperature compensation according to examples disclosed herein is shown.
[0009] Figure 2 An example of a subsystem supporting learned temperature compensation according to examples disclosed herein is shown.
[0010] Figure 3 An example of a flow chart supporting learned temperature compensation according to examples disclosed herein is shown.
[0011] Figure 4 An example of a data structure supporting learned temperature compensation according to examples disclosed herein is shown.
[0012] Figure 5 An example of a graph supporting learned temperature compensation according to examples disclosed herein is shown.
[0013] Figure 6 A block diagram of a host system supporting learned temperature compensation according to examples disclosed herein is shown.
[0014] Figure 7 A flow chart illustrating one or more methods of supporting learned temperature compensation according to examples disclosed herein is shown. DETAILED DESCRIPTION
[0015] In order to compensate for changes in the performance or characteristics of a system (including a host system, an interface, and a memory system coupled to the host system via the interface) due to temperature changes, the host system may perform a calibration procedure to determine preferred parameters for operating the memory system at the current temperature of the system. However, despite the execution of the calibration procedure, the performance of the system may also be reduced. Therefore, performing a separate calibration procedure each time it is desired to determine preferred parameters for operating the system (e.g., each time a temperature change occurs) may cause the performance of the system to systematically decrease over the life of the system. Therefore, techniques and configurations that reduce the impact of temperature compensation procedures on system performance may be needed.
[0016] This article describes techniques for leveraging previous calibration procedures throughout the life of a system. These techniques can reduce the effects of temperature compensation on system performance.
[0017] Figure 1 An example of a system 100 supporting learning temperature compensation according to examples disclosed herein is shown. The system 100 may include a portion of an electronic device, such as a computing device, a mobile computing device, a wireless communication device, a graphics processing device, a vehicle, a smartphone, a wearable device, an Internet-connected device, a vehicle controller, a system on a chip (SoC), or other stationary or portable electronic system, among other examples. The system 100 includes a host system 105, a memory system 110, and one or more channels 115 coupling the host system 105 with the memory system 110 (e.g., to support a communication coupling). The system 100 may include any number of one or more memory systems 110 coupled to the host system 105.
[0018] The host system 105 may include one or more components (e.g., circuitry, processing circuitry, processing components) that perform processes using memory, any one or more of which may be referred to as or included in a processor 125. The processor 125 may include at least one of one or more processing elements that may be co-located or distributed, including a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a controller, discrete gate or transistor logic, one or more discrete hardware components, or a combination thereof. The processor 125 may be an example of a central processing unit (CPU), a graphics processing unit (GPU), a general purpose GPU (GPGPU), or a SoC or components thereof, among other examples.
[0019] The host system 105 may also include at least one of one or more components (e.g., circuitry, logic, instructions) that implement the functionality of an external memory controller (e.g., a host system memory controller), which may be referred to as or included in a host system controller 120. For example, the host system controller 120 may issue commands or other signaling to operate the memory system 110, such as write commands, read commands, configuration signaling, or other operational signaling. In some examples, the host system controller 120 or associated functionality described herein may be implemented by the processor 125, or may be part of the processor 125. For example, the host system controller 120 may be hardware, instructions (e.g., software, firmware), or some combination thereof implemented by the processor 125 or other components of the host system 105. In various examples, the host system 105 or the host system controller 120 may be referred to as a host.
[0020] The memory system 110 provides physical memory locations (e.g., addresses) that can be used or referenced by the system 100. The memory system 110 can include a memory system controller 140 and one or more memory devices 145 (e.g., memory packages, memory dies, memory chips) that can be used to store data. The memory system 110 can be configurable to operate with different types of host systems 105 and can respond to commands from the host system 105 (e.g., from the host system controller 120). For example, the memory system 110 (e.g., the memory system controller 140) can receive a write command indicating that the memory system 110 is to store data received from the host system 105, or receive a read command indicating that the memory system 110 is to provide the host system 105 with data stored in the memory device 145, or receive a refresh command indicating that the memory system 110 is to refresh data stored in the memory device 145, as well as other types of commands and operations.
[0021] The memory system controller 140 may include at least one of one or more components (e.g., circuitry, logic, instructions) that may be used to control the operation of the memory system 110. The memory system controller 140 may include hardware or instructions that support the memory system 110 to perform various operations, and may be used to receive, transmit, or respond to commands, data, or control information related to the operation of the memory system 110. The memory system controller 140 may be used to communicate with one or more of the host system controller 120, one or more memory devices 145, or the processor 125. In some examples, the memory system controller 140 may cooperate with the host system controller 120, the local controller 150 of the memory device 145, or any combination thereof to control the operation of the memory system 110. Although examples of the memory system controller 140 are shown as a separate component of the memory system 110, in some examples, various aspects of the functionality of the memory system 110 may be implemented by at least one of the processor 125, the host system controller 120, the one or more local controllers 150, or any combination thereof.
[0022] Each memory device 145 may include a local controller 150 and one or more memory arrays 155. The memory array 155 may be a collection of memory cells (e.g., a two-dimensional array, a three-dimensional array), wherein each memory cell may be used to store data (e.g., as one or more stored bits). Each memory array 155 may include memory cells of various architectures, such as random access memory (RAM) cells, dynamic RAM (DRAM) cells, synchronous dynamic RAM (SDRAM) cells, static RAM (SRAM) cells, ferroelectric RAM (FeRAM) cells, magnetic RAM (MRAM) cells, resistive RAM (RRAM) cells, phase change memory (PCM) cells, chalcogenide memory cells, or NOR memory cells and NAND memory cells, or any combination thereof.
[0023] The local controller 150 may include at least one of one or more components (e.g., circuitry, logic, instructions) that may be used to control the operation of the memory device 145. In some examples, the local controller 150 may be used to communicate with the memory system controller 140 (e.g., receive or transmit data or commands or both). In some examples, the memory system 110 may not include the memory system controller 140, and the local controller 150 or the host system controller 120 may perform the functions of the memory system controller 140 described herein. In some examples, the local controller 150 or the memory system controller 140 or both may include a decoding component that may be used to access addresses of the memory array 155, a sensing component that may be used to sense the state of the memory cells of the memory array 155, a writing component that may be used to write the state to the memory cells of the memory array 155, or various other components that may be used to support the described operations of the memory system 110.
[0024] Host system 105 (e.g., host system controller 120) and memory system 110 (e.g., memory system controller 140) may communicate information (e.g., data, commands, control information, configuration information) using one or more channels 115. Each channel 115 may be an example of a transmission medium that carries information, and each channel 115 may include one or more signal paths (e.g., transmission media, electrical conductors, conductive paths) between terminals (e.g., nodes, pins, contacts) associated with components of system 100. Terminals may be examples of conductive input or output points of devices of system 100, and terminals may be used as part of channels 115. To support communication over channel 115, host system 105 (e.g., host system controller 120) and memory system 110 (e.g., memory system controller 140) may include a receiver (e.g., a latch) for receiving signals, a transmitter (e.g., a driver) for transmitting signals, a decoder for decoding or demodulating received signals, or an encoder for encoding or modulating signals to be transmitted, as well as other components that support signaling over channel 115, which may be included in corresponding interface portions of the respective systems.
[0025] Channels 115 are dedicated to transmitting one or more types of information, and channels 115 may include unidirectional channels, bidirectional channels, or both. For example, channels 115 may include one or more command and address channels, one or more clock signal channels, one or more data channels, and other channels or combinations thereof. In some examples, channels 115 may be configured to provide power from one system to another (e.g., from host system 105 to memory system 110, according to a regulated voltage). In some examples, at least a subset of channels 115 may be configured according to a protocol (e.g., a logic protocol, a communication protocol, an operating protocol, an industry standard) that may support configured operation of host system 105 and memory system 110 and interaction therebetween.
[0026] A command / address channel (e.g., CA channel) may be used to transmit commands between the host system 105 and the memory system 110, including control information (e.g., address information) associated with the commands. The commands carried by the command / address channel may include a write command having an address to which data is to be written to the memory system 110 or a read command having an address to which data is to be read from the memory system 110.
[0027] The clock signal channel may be used to transmit one or more clock signals between the host system 105 and the memory system 110. The clock signal may oscillate between a high state and a low state, and may support coordination (e.g., coordination in terms of time) between the operations of the host system 105 and the memory system 110. In some examples, the clock signal may provide a timing reference for the operation of the memory system 110. The clock signal may be referred to as a control clock signal, a command clock signal, or a system clock signal. The system clock signal may be generated by a system clock, which may include one or more hardware components (e.g., oscillators, crystals, logic gates, transistors).
[0028] The data channels (e.g., DQ channels) may be used to transfer (e.g., bidirectionally) information (e.g., data, control information) between the host system 105 and the memory system 110. For example, the data channels may transfer information to be written to the memory system 110 from the host system 105, or read from the memory system 110 to the host system 105. In some examples, the channels 115 may include one or more error detection code (EDC) channels. The EDC channels may be used to transfer error detection signals, such as checksum or parity bits, which may accompany information passed through the data channels.
[0029] Signaling may be transmitted over channel 115 using single data rate (SDR) signaling or double data rate (DDR) signaling, as well as other rates (e.g., relative to a clock signal). In SDR signaling, one modulation symbol (e.g., signal level) of a signal may be registered for each clock cycle (e.g., on a rising edge or a falling edge of a clock signal). In DDR signaling, two modulation symbols of a signal may be registered for each clock cycle (e.g., on both a rising edge and a falling edge of a clock signal).
[0030] The signals transmitted via the channel 115 may be modulated using various modulation schemes or combinations thereof. Symbols of a binary symbol (e.g., binary level) modulation scheme may be used to represent one bit of data (e.g., the symbol may represent a logic 1 or a logic 0), and may be an example of an M-ary modulation scheme, where M is equal to two. Examples of binary symbol modulation schemes include non-return to zero (NRZ), unipolar encoding, bipolar encoding, Manchester encoding, pulse amplitude modulation (PAM) with two different symbols (e.g., PAM2), etc. Symbols of a multi-bit modulation scheme may be used to represent more than one bit of data (e.g., the symbol may represent a logic 00, a logic 01, a logic 10, or a logic 11), and may be an example of an M-ary modulation scheme, where M is greater than or equal to three. For example, a multi-bit signal may be modulated using a modulation scheme that includes at least three levels to encode more than one information bit. Multi-bit modulation schemes and symbols may be referred to as non-binary, multi-bit, or higher order modulation schemes and symbols. Examples of multi-symbol modulation schemes include PAM3, PAM4, PAM8, etc., Quadrature Amplitude Modulation (QAM), Quadrature Phase Shift Keying (QPSK), etc.
[0031] The system 100 can operate over a temperature range. In some examples, the temperature can be measured at a component of the system 100, measured from the surrounding environment in which the system 100 is located, and so on. The performance of the system 100 can change at different temperatures (e.g., relative to the baseline performance of the system 100, it may be impaired or improved). In some examples, the characteristics of the system 100 can change at different temperatures (which may affect the performance of the system 100). For example, the clock signal, the reference voltage, or both at the host system 105 can be modified at different temperatures (e.g., the frequency of the clock signal, the jitter of the clock signal, the processing power of the host system 105, the reference voltage used by the host system 105 to transmit or decode data, etc. can be changed). Similarly, the clock signal, the reference voltage, or both at the memory system 110 can depend on the temperature. In addition, other internal timing signals within the memory system 110 can depend on the temperature. In some examples, the timing for certain operations performed within the system 100 (e.g., the timing for executing a read or write command) can become shorter or longer due to internal and / or interface timing modifications. In some examples, the modified characteristics of system 100 may cause data to be transferred between host system 105 and memory system 110 over the interface with reduced performance and / or increased errors.
[0032] In some examples, the modified internal and / or interface timing caused by the temperature change can cause the host system 105, the memory system 110, or both to transmit data over the interface with the timing shifted from the clock used to read data from or write data to the memory system 110 (which can cause data communication errors). Additionally or alternatively, voltages used to support operations performed within the system 100 can become higher or lower. In some examples, the modified voltages can cause the host system 105, the memory system 110, or both to incorrectly encode or decode data over the interface (e.g., if a drift in the reference voltage causes the voltage of a sensed memory cell or the voltage of a received data signal to be incorrectly encoded or decoded).
[0033] To compensate for changes in the performance or characteristics of the system 100 caused by temperature changes, the host system 105 may perform (e.g., periodically) a calibration procedure to determine current characteristics and / or preferred parameters for operating the memory system 110 at the current temperature of the system 100. After performing the calibration procedure, the host system 105 may identify preferred parameters for operating the memory system 110 so that the performance of the system 100 is as expected or improved. For example, the memory system 110 may determine preferred timing for command / address signaling, preferred timing for reading data from the memory system, preferred timing for writing data to the memory system, preferred offsets between data signals and data clock signals, preferred reference voltage sets associated with data signaling levels, or any combination thereof.
[0034] However, despite the calibration procedure being performed, the performance of the system 100 may be degraded, e.g., fewer memory commands may be processed during the calibration procedure, or the processing of memory commands may be completely suspended during the calibration procedure. Thus, performing a separate calibration procedure each time it is desired to determine current characteristics and / or preferred parameters for operating the system 100 (e.g., each time a temperature change occurs) may cause the performance of the system to systematically degrade over the lifetime of the system 100. Therefore, techniques and configurations that reduce the impact of the temperature compensation procedure on the performance of the system 100 may be desired.
[0035] Techniques are described herein that utilize prior calibration procedures throughout the life of the system 100. These techniques can reduce the impact of temperature compensation on the performance of the system 100.
[0036] As described herein, the host system 105 can be coupled to the memory system 110 via an interface including the one or more channels 115. In some examples, the system 100 can be subjected to a first temperature, for example, the temperature of the host system 105 can be the first temperature, the temperature of the memory system 110 can be the first temperature, and the combined temperature of the host system 105 and the memory system 110 can be the first temperature. While subjected to the first temperature, the host system 105 can perform a first training operation. In some examples, the host system 105 performs the first training operation based on determining that the system 100 has not been subjected to the first temperature (or a temperature sufficiently close to the first temperature), for example, based on determining that the difference between the first temperature and any previously recorded temperature is greater than a threshold. In such cases, the first temperature can be referred to as a new temperature. In some examples, the host system 105 performs the first training operation based on determining that the system 100 has not been subjected to the first temperature (or a temperature that differs from the first temperature by no more than a threshold) for a threshold duration. In some examples, the host system 105 performs the first training operation based on determining that a threshold number of errors have occurred for a duration while the system 100 is subjected to the first temperature.
[0037] Based on performing the first training operation, the host system 105 can determine a first set of parameters for operating the interface (e.g., memory timing, such as a first timing for command / address signaling, a first timing for reading data from the memory system, a first timing for writing data to the memory system, a first offset between a data signal and a data clock signal; and voltages, such as a first set of reference voltages associated with data transmission levels, a first set of reference voltages associated with data reception levels, etc.). Based on determining the first set of parameters, the host system 105 can store an indication of the first set of parameters and a first temperature associated with the first set of parameters. In some examples, the first set of parameters and the first temperature can be stored in a first row of a table implemented at the host system 105.
[0038] In some examples, (e.g., after being subjected to the first temperature) the system 100 may be subjected to a second temperature, e.g., the temperature of the host system 105 may be the second temperature, the temperature of the memory system 110 may be the second temperature, and the combined temperature of the host system 105 and the memory system 110 may be the second temperature. In some examples, the second temperature may be higher than the first temperature. In other examples, the second temperature may be lower than the first temperature. While being subjected to the second temperature, the host system 105 may perform a second training operation, e.g., based on determining that the difference between the second temperature and any previously recorded temperature is greater than a threshold. Based on performing the second training operation, the host system 105 may determine a second set of parameters for operating the interface. Based on determining the second set of parameters, the host system 105 may store an indication of the second set of parameters and a second temperature associated with the second set of parameters. In some examples, the second set of parameters and the second temperature may be stored in a second row of the table.
[0039] In some examples, the system 100 may be subjected to a third temperature (e.g., after being subjected to the first temperature and the second temperature). In some examples, the difference between the third temperature and the previously recorded temperature may be within a threshold. In some examples, the third temperature may be between the first temperature. In other examples, the third temperature may be higher or lower than the first temperature and the second temperature. Based on being subjected to the third temperature, the host system 105 may configure a third parameter set for operating the interface, wherein the third parameter set may be based on a first parameter set stored for the first temperature and a second parameter set stored for the second temperature. In some examples, the third parameter set is selected based on an interpolation of the first parameter set and the second parameter set. In some examples, the third parameter set is selected based on selecting a point on a line obtained by curve fitting a plurality of stored parameter sets (including the first parameter set and the second parameter set) across a plurality of temperatures. Based on configuring the third parameter set, the host system 105 may communicate with the memory system 110 through the interface according to the third parameter set, for example, using memory timing and reference voltage determined for the third temperature.
[0040] In some examples, one or more parameter sets for multiple temperatures may be stored before storing the first parameter set and the second parameter set for the first temperature and the second temperature. In some examples, the first parameter set and the second parameter set are initial parameters stored by the system 100 .
[0041] By executing a calibration routine for temperature compensation when a new temperature is experienced, the system 100 can determine parameters for operating the system 100 at a new temperature when the new temperature first occurs. In addition, by storing the determined parameters, when the stored temperature (or a temperature that differs from the stored temperature by no more than a threshold difference) occurs again, the system 100 can utilize the previously determined parameters, thereby reducing the number and frequency of calibration routines that would otherwise be performed. In addition, by storing and utilizing parameters determined for new temperatures when new temperatures occur, the system 100 can front-load the execution of the calibration routine for determining parameters to the beginning of the life of the system 100 (when most of the temperatures experienced are new), which can reduce the delay effects associated with calibration routines that do not store previously determined parameters throughout the life of the system 100.
[0042] In addition to its applicability in the systems described herein, techniques for learned temperature compensation may also be generally implemented to improve the performance of various electronic devices and systems (including games). Some electronic device applications, including games and other high-performance applications, may be associated with relatively high processing requirements while also benefiting from relatively fast response times to improve the user experience. Therefore, it may be desirable to increase processing speed, reduce response time, or otherwise improve the performance of electronic devices. Implementation of the techniques described herein can improve the performance of electronic devices by improving the performance of electronic devices over a wide temperature range while reducing the impact of procedures for identifying preferred operating parameters for improving the performance of electronic devices at different temperatures, which can reduce latency, reduce data errors, or otherwise improve the user experience, among other benefits.
[0043] Figure 2 An example of a subsystem supporting learned temperature compensation according to examples disclosed herein is shown.
[0044] Subsystem 200 may include a host system 205 (which may be an example of a host system described herein, including Figure 1 host system 105) and a memory system 210 (which may be an example of a memory system described herein, including Figure 1 The host system 205 and the memory system 210 may communicate with each other through an interface 207, which may be an example of or include a channel as described herein (e.g., Figure 1 The one or more channels 115).
[0045] The host system 205 can include a host temperature component 215 , a calibration component 220 , a parameter storage device 225 , a parameter analysis component 230 , and a host messaging component 235 .
[0046] Host temperature component 215 can be configured to measure a current temperature of host system 205 , such as a temperature near a processing unit of host system 205 .
[0047] The calibration component 220 may be configured to determine a preferred set of parameters for transmitting data through the interface 207. In some examples, the calibration component 220 may perform a set of operations to determine preferred parameters for transmitting data through the interface 207, such as a set of parameters that achieves a maximum data rate within a threshold error rate. Additionally or alternatively, the calibration component 220 may perform a set of operations to determine current characteristics for communicating through the interface 207 (e.g., drift between a data signal and a data clock, timing between sending a read command and receiving data, timing between sending a write command and writing data, error rate of data transmitted through the interface 207, etc.). In some examples, the calibration component 220 may determine the preferred parameters for communicating through the interface 207 based on the determined characteristics.
[0048] The calibration component 220 is configured to perform a calibration procedure based on a temperature determined for the subsystem 200 (e.g., a temperature measured by the host temperature component 215, a temperature measured by the memory temperature component 240, a combined temperature of the temperature measured by the host temperature component 215, and a temperature measured by the memory temperature component 240). In some examples, the calibration component 220 determines the temperature of the subsystem 200 by reading a current temperature of the host system 205 from the host temperature component 215. In some examples, the calibration component 220 determines the temperature of the subsystem 200 by reading a last temperature of the memory system 210 from the temperature storage device 245. In some examples, the calibration component 220 determines the temperature of the subsystem 200 by averaging the current temperature of the host system 205 read from the host temperature component 215 and the last temperature of the memory system 210 read from the temperature storage device 245.
[0049] In some examples, calibration component 220 can be configured to perform a calibration procedure based on a temperature set for which a parameter set is currently stored in parameter storage 225. For example, calibration component 220 can be configured to perform a calibration procedure if a difference between a determined temperature and a closest temperature stored in parameter storage 225 exceeds a threshold, such as if the determined temperature is a new temperature to which subsystem 200 is subjected.
[0050] Additionally or alternatively, calibration component 220 may be configured to perform a calibration procedure based on a time at which a parameter set was stored for a temperature (or a temperature that differs from a determined temperature by no more than a threshold). For example, calibration component 220 may be configured to perform a calibration procedure based on determining that a parameter set has been stored in parameter storage device 225 for a threshold duration (even if the parameter set was stored in parameter storage device 225 for a temperature that differs from a determined temperature by no more than a threshold), e.g., even if the determined temperature is not a new temperature determined by subsystem 200.
[0051] Additionally or alternatively, calibration component 220 may be configured to perform a calibration procedure based on error statistics determined for communications conducted through interface 207 when subsystem 200 is at the temperature. For example, calibration component 220 may be configured to perform a calibration procedure based on determining that an error rate for communications conducted through interface 207 using a parameter set satisfies an error rate threshold (even if the parameter set is stored in parameter storage 225 for a temperature that differs by no more than a threshold from the determined temperature, and / or even if the parameter set is stored for a threshold duration), e.g., even if the determined temperature is not a new temperature determined by subsystem 200, even if the parameter set for the determined temperature was most recently stored.
[0052] The calibration component 220 can be configured to perform the calibration procedure at different temperature threshold granularities, such as based on the implementation of the subsystem 200, or the applications running on the system. For example, the calibration component 220 can trigger the calibration procedure based on a reduced temperature difference threshold for mission-critical implementations / applications (e.g., automotive implementations, autonomous driving applications). Alternatively, the calibration component 220 can trigger the calibration procedure based on an increased temperature difference threshold for non-mission-critical applications (e.g., mobile device implementations, web browsing applications).
[0053] In some examples, calibration component 220 can be configured to accelerate the capture of parameter sets for different temperatures. For example, calibration component 220 can be configured to cause (e.g., at the beginning of the life of subsystem 200) host system 205 and / or memory system 210 to perform one or more operation sequences that are intended to subject subsystem 200 to elevated temperatures artificially (e.g., not during standard operation). For example, calibration component 220 can send a series of commands to memory system 210, and / or can cause host system 205 to process data received for the commands according to the sequence of instructions.
[0054] Parameter storage 225 may be configured to store parameter sets for different temperatures to which subsystem 200 is subjected. Parameter storage 225 may support the operation of a database (e.g., a relational database) comprising one or more tables. The one or more tables may each comprise one or more rows and columns. In some examples, parameter storage 225 may be configured to store parameter sets determined for different temperatures to which subsystem 200 is subjected in a table. For example, parameter storage 225 may be configured to store the determined temperature in a first row and column of a table, and to store an indication of the corresponding parameter set in a first row and one or more subsequent columns of the table. Parameter storage 225 may be further configured to store the time at which the determined temperature and the corresponding parameter set are stored in the table.
[0055] In some examples, parameter storage 225 may implement a first table storing determined temperature / parameter sets at a first granularity, a second table storing determined temperature / parameter sets at a second (e.g., larger) granularity, etc. In some examples, increasing the temperature granularity of the table (coarser) may increase the speed at which parameter sets are identified and configured by host signaling component 235. In some examples, tables using higher temperature granularity may be accessed (e.g., by host signaling component 235) at increased speeds, which may enable faster configuration of different parameters for different temperatures (e.g., by host signaling component 235).
[0056] Additionally or alternatively, parameter storage 225 can implement a first table storing determined temperatures and a first subset of parameters, a second table storing determined temperatures and a second subset of parameters (e.g., including additional parameters relative to the first subset of parameters), etc. In some examples, tables using parameter sets with fewer parameters can be accessed (e.g., by host signaling component 235) at increased speed, which can enable faster configuration of different parameters for different temperatures (e.g., by host signaling component 235).
[0057] In some examples, the parameter storage 225 can be configured with different degrees of granularity. For example, the parameter storage 225 can use a first (fine) granularity for a first temperature range (a change in a parameter characteristic that exceeds a threshold occurs within the first temperature range) and a second (coarse) granularity for a second temperature range (a change in a parameter characteristic that is below a threshold occurs within the second temperature range). In some examples, the parameter analysis component 230 can detect one or more temperature ranges in the parameter storage 225 that are associated with a parameter change that exceeds a threshold (e.g., based on currently stored temperatures / parameter sets), and can configure the parameter storage 225 to store parameter sets for temperatures within the one or more detected temperature ranges according to a finer temperature granularity (relative to a temperature range associated with a parameter change that is below a threshold).
[0058] The parameter analysis component 230 may be configured to analyze the parameter data stored in the parameter storage device 225. In some examples, the parameter analysis component 230 may be configured to interpolate the value of the parameter across temperature. The interpolation may be used to identify the value of the parameter for a temperature experienced by the subsystem 200 that is different from the temperature stored in the parameter storage device. In some examples, the parameter analysis component 230 may be configured to perform a curve fitting operation of one or more of the stored parameters across temperature, for example, the parameter analysis component 230 may be used to generate a best fit line. In some examples, the curve fitting operation may be based on predetermined factors, such as a slope or curve characteristic of a temperature variation of one or more parameters—e.g., determined during previous observations or modeling.
[0059] The host signaling component 235 may be configured to transmit information (e.g., commands, addresses, data, error management codes, etc.) through the interface 207. The host signaling component 235 may be configured to transmit information through the interface using one or more signaling techniques, for example, a binary signaling scheme such as non-return to zero, PAM2, etc.; a multi-level signaling scheme such as PMA3, PAM4, QAM, etc. For a binary signaling scheme, the host signaling component 235 may generate a single reference voltage to distinguish between two voltages used to represent two logical values. For a multi-level signaling scheme, the host signaling component 235 may generate multiple reference voltages to transmit levels, or generate multiple reference voltages to distinguish between three or more voltages used to represent three or more logical values during reception. In some examples, the host signaling component 235 may generate a first set of reference voltages for signal transmission and a second set of reference voltages for signal reception.
[0060] The host signaling component 235 may be further configured to transmit information through the interface 207 based on the current temperature of the subsystem 200 (e.g., the temperature measured by the host temperature component 215, the temperature measured by the memory temperature component 240, the combined temperature of the temperature measured by the host temperature component 215 and the temperature measured by the memory temperature component 240) and the parameter set stored in the parameter storage device 225. For example, based on determining the current temperature of the subsystem 200, the host signaling component 235 may query a table in the parameter storage device that stores a mapping between the measured temperature and the determined parameter set for the parameter set corresponding to the temperature that does not differ from the current temperature of the subsystem 200 by more than a threshold. In response, the parameter storage device 225 may provide the corresponding parameter set to the host signaling component 235, which may perform subsequent communications through the interface 207 based on the corresponding parameter set. In some examples, the host signaling component 235 may be configured to query the parameter storage device 225 based on detecting that the error rate of communications conducted through the interface 207 has increased by a threshold amount, that the temperature of the subsystem 200 has changed by a threshold amount, or a combination thereof.
[0061] In some examples, host signaling component 235 may query a table in parameter storage that stores a mapping between measured temperatures and determined parameter sets for a plurality of parameter sets corresponding to a plurality of temperatures proximate to a current temperature of subsystem 200. In response, parameter storage 225 may provide the corresponding parameter sets to host signaling component 235, which may interpolate the parameter sets to obtain a calculated parameter set. In some examples, host signaling component 235 may be configured to query parameter storage 225 based on detecting that an error rate of communications conducted through interface 207 has increased by a threshold amount, that a temperature of subsystem 200 has changed by a threshold amount, or a combination thereof.
[0062] Additionally or alternatively, the host signaling component 235 can reference an interpolation of stored parameters performed by the parameter analysis component 230 to determine a set of parameters to be used for the current temperature of the subsystem 200 .
[0063] Host signaling component 235 can perform subsequent communications through interface 207 according to the parameter set determined for the temperature of subsystem 200. In some examples, communicating according to the parameter set includes modifying parameters (e.g., reference voltages, timing parameters) of host system 205 to communicate through interface 207. For example, the modified parameters can be associated with voltage levels for multi-level signaling, data and address timing offsets for transmission (e.g., relative to a clock), or data and address setup and / or hold timing for reception (e.g., relative to a clock). In some examples, communicating according to the parameter set includes modifying parameters of memory system 210 (e.g., memory timing, such as column address strobe (CAS) delay, row address-column address delay (T RCD ), row precharge time (T RP ), action time (T RAS In some examples, the timing for reading data from the memory system 210 may be based on CAS latency, which may indicate the duration between the time a command is sent to the memory system 210 and the time data associated with the command is output by the memory system 210. The timing for reading data may be further based on T RP duration, which indicates the time between receiving a command and activating a row, and is based on T RCD Duration, which may indicate the time between activation of rows and activation of columns.
[0064] The interface 207 may be configured to transfer data between the host system 205 and the memory system 210. In some examples, the interface includes a command / address (C / A) channel for transferring commands and associated addresses used to execute commands, a clock (CK) channel for transferring clock signals to read data from the memory system or write data to the memory system, a data (DQ) channel for transferring data to be written to or read from the memory system 210, and other channels. In some examples, data is transferred through the interface according to a specific timing. For example, the interface may be configured to support the transfer of data a certain number of clock cycles after receiving a corresponding command. The interface may also support the transfer of error management information for the transferred data.
[0065] The memory system 210 can include a memory temperature component 240 , a temperature storage device 245 , and a memory signaling component 250 .
[0066] The memory temperature component 240 can be configured to measure a current temperature of the memory system 210, such as a temperature near one or more memory dies of the memory system 210 (eg, from a sensor on or in thermal contact with the one or more memory dies).
[0067] Temperature storage 245 may be configured to store one or more temperatures of memory system 210 measured by memory temperature component 240. In some examples, temperature storage 245 includes a register, one or more memory cells, or a combination thereof.
[0068] The memory signaling component 250 may be configured to transmit information (e.g., commands, addresses, data, error management codes, etc.) through the interface 207. The memory signaling component 250 may be configured to transmit information through the interface using one or more signaling techniques, for example, a binary signaling scheme such as non-return to zero, PAM2, etc.; a multi-level signaling scheme such as PAM3, PAM4, QAM, etc. For a binary signaling scheme, the memory signaling component 250 may generate a single reference voltage to distinguish between two voltages used to represent two logical values. For a multi-level signaling scheme, the memory signaling component 250 may generate multiple reference voltages to distinguish between three or more voltages used to represent three or more logical values. In some examples, the memory signaling component 250 may be configured to communicate through the interface 207 based on one or more parameters configured by the host system 205, such as based on the current temperature of the subsystem 200.
[0069] Figure 3 An example of a set of operations supporting learned temperature compensation according to examples disclosed herein is shown.
[0070] Flowchart 300 may be executed by a host system as described herein (e.g., Figure 2In some examples, flowchart 300 illustrates a set of example operations that are performed to support learning temperature compensation. For example, flowchart 300 may include operations for storing parameters determined for different system temperatures and utilizing the stored parameters during operation.
[0071] At 305, a system including a host system and a server via an interface (eg, Figure 2 interface 207) and a memory system (eg, Figure 2 In some examples, the temperature of the system can be identified based on measuring the temperature at the host system. In some examples, the temperature of the system can be identified based on measuring the temperature at the memory system. In some examples, the temperature of the system can be identified based on measuring the temperature at the interface. In some examples, the temperature of the system can be identified based on a combination of at least two of the temperature measured at the host system, the temperature measured at the interface, or the temperature of the memory system. In some examples, the host system can obtain the temperature of the memory system by reading a register or memory location at the memory system. In some examples, the host system can obtain the temperature of the interface by reading a register associated with the interface (e.g., a temperature sensor located on a circuit board or other connector).
[0072] At 310, it can be determined (eg, by calibrating a component such as Figure 2 Whether the calibration component 220 of the system performs a training operation (which may also be referred to as a calibration procedure) to determine a preferred set of parameters for operating the interface at the identified system temperature.
[0073] In some examples, determining whether to perform a training operation can be based on comparing the identified system temperature to a system temperature that has been stored (e.g., at a parameter storage device, such as Figure 2 The training operation may be performed based on one or more system temperatures for which the preferred parameters for the operating interface are stored in the parameter storage device 225 of the parameter storage device 225. For example, if the difference between the identified system temperature and the closest stored system temperature among the one or more stored system temperatures is greater than or equal to a threshold value (e.g., greater than 10°F), then it may be determined that the training operation is performed. Otherwise, if the difference between the identified system temperature and the closest stored system temperature among the one or more system temperatures is less than the threshold value, then it may be determined that the training operation is not performed. In some examples, parameters for any system temperature may not be stored, in which case it may be determined that the training operation is performed.
[0074] In some examples, determining whether to perform a training operation can be based on the length of time that a stored system temperature that differs from the identified system temperature by no more than a threshold has been stored. For example, after identifying a stored system temperature that differs from the identified system temperature by no more than a threshold, it can be determined whether the parameters of the stored system temperature have been stored for a threshold duration (e.g., days, weeks, months, etc.). If the parameters of the stored system temperature have been stored for the threshold duration, it can be determined that the parameters have expired and a training procedure is performed. Otherwise, if it is determined that the stored system temperature parameters have not been stored for the threshold duration, it can be determined that the training operation is not performed.
[0075] In some examples, determining whether to perform a training operation can be based on error statistics associated with communications conducted through the interface at the identified system temperature. For example, after identifying a stored system temperature that does not differ from the identified system temperature by more than a threshold and determining that the parameters of the stored system temperature have not been stored for a threshold duration, if error statistics (e.g., an error rate) associated with communications conducted through the interface using the parameters meet a threshold (e.g., if the error rate exceeds an error rate threshold), then a determination can be made to perform a training operation.
[0076] Based on the determination to perform a training operation, the training operation may be performed (e.g., by calibrating the component) at 315. In some examples, the training operation may include communicating over the interface at the identified system temperature with one or more varying parameters (e.g., varying latency, varying reference voltage, etc.) and identifying a preferred performance for the communication (e.g., achieving the lowest latency data transfer less than a threshold error rate, achieving the highest data rate transfer less than a threshold error rate, or a combination thereof).
[0077] At 320, the one or more parameters determined for the identified system temperature and an indication of the identified system temperature for which the one or more parameters are determined may be stored (e.g., in a parameter storage device). In some examples, the identified system temperature and the corresponding one or more parameters may be stored in a table maintained by the parameter storage device. In some examples, the identified system temperature may be stored in a first row and column of the table, and the one or more indications of the one or more system parameters may be stored in one or more subsequent columns of the first row of the table. In some examples, multiple indications may be stored in multiple columns of the first row, wherein the multiple indications may indicate corresponding values for multiple parameters. In other examples, a single indication may be stored in a single column of the first row, wherein the single indication may indicate values for multiple parameters (e.g., using a decoded value, a bitmap, etc.). Tables for storing mappings between identified system temperatures and corresponding parameter sets are described in more detail herein, including reference to Figure 4 Give a description.
[0078] In some examples, the one or more parameters and the indication of the identified system temperature may be stored in multiple tables. For example, the one or more parameters and the temperature indication may be stored in a first table storing parameters at a higher temperature granularity and a second table storing parameters at a lower temperature granularity, and so on. Additionally or alternatively, the one or more parameters and the temperature indication may be stored in a first table for a first parameter of the one or more parameters, a second table for a second parameter of the one or more parameters, and so on. In some examples, different tables may be used for different applications, for example, finer-grained tables and tables for increasing numbers of parameters may be used for mission-critical applications, while coarse-grained tables and tables for reducing numbers of parameters (e.g., one parameter) may be used for loss / delay tolerant applications. In some examples, determining whether to perform a training operation is based on which of the different tables are activated and the different granularities of the different tables, for example, determining whether to perform a training operation may be based on the activated table with the finest granularity.
[0079] At 325, the system may (eg, via a parameter analysis component such as Figure 2 The parameter analysis component 230 of the present invention analyzes multiple parameter sets stored for multiple system temperatures (including the one or more parameters stored for the identified system temperature). In some examples, the parameter analysis component can interpolate the values of the stored parameter sets so that parameters of system temperatures that are not stored in the parameter storage device can be determined. For example, for a parameter, the parameter analysis component can apply a curve fitting technique to the values stored for the parameter to obtain a fitted line drawn across temperature. In some examples, the parameter analysis component can obtain the fitted line by linearly connecting parameter values that are adjacent to each other according to the associated temperature. In some examples, the parameter analysis component can obtain the fitted line by drawing a line through all connected parameter values (for example, using a mean square error method, a polynomial regression, or a spline function). In some examples, the curve fitting technique can be based on a predetermined factor, such as a slope or curve characteristic of a temperature variation of one or more parameters, such as determined during previous observations or modeling. Other methods for obtaining a curve that fits the values stored for the parameter across temperature can be used. Determining parameter values using a curve fit line is described in more detail herein, including references to Figure 5 Give a description.
[0080] At 328, based on the determination not to perform the training operation, a signaling component may be configured (eg, via a host signaling component such as Figure 2The host signaling component 235 of the embodiment of the present invention determines one or more parameters of the identified system temperature. In some examples, the one or more parameters can be determined by querying a parameter storage device. For example, based on the system temperature being identified, the host signaling component can query the parameter storage device using the identified system temperature. In response to the query, the parameter storage device can respond with one or more values of one or more parameters stored for a system temperature that differs from the identified system temperature by no more than a threshold.
[0081] In other examples, the one or more parameters can be determined by reference to an analysis performed by the parameter analysis component on the stored parameters. For example, based on the system temperature being identified, the host signaling component can identify values of the one or more parameters corresponding to the identified system temperature on one or more curves generated by the parameter analysis component, wherein the values of the one or more parameters corresponding to the identified system temperature may have been calculated by the parameter analysis component based on values stored for the one or more parameters in the parameter storage device.
[0082] At 330, the one or more parameters determined for the identified system temperature may be configured (e.g., by a host signaling component) to communicate over the interface. The configuration parameters may include configuring (e.g., by a host signaling component) one or more parameters for the host system to use for communicating over the interface (e.g., a reference voltage for signaling decoding, a reference voltage for signaling encoding). Additionally or alternatively, the configuration parameters may include configuring (e.g., by a host signaling component) one or more parameters for the memory system to use for communicating over the interface (e.g., a reference voltage for signaling encoding, a reference voltage for signaling decoding, CAS latency). In some examples, multi-level signaling may be used, in which case the host system and the memory system may use multiple reference voltages for signaling encoding and decoding.
[0083] At 335, the host may communicate with the storage device (eg, via a host communication component and a storage communication component such as Figure 2 The memory communication component 250) performs communication through the interface according to the one or more configured parameters.
[0084] At 340, a change in temperature (greater than a threshold amount) of the system can be detected (e.g., by a host signaling component). Additionally or alternatively, a change in error rate (greater than a threshold amount) of communications conducted through the interface can be detected (e.g., by a host signaling component). Based on detecting the change, the temperature of the system can also be identified, and operations related to training operations and parameter determination can be performed. In some examples, in addition to or alternatively to detecting a change in error rate, the temperature of the system can also be identified based on determining that a current error rate of communications conducted through the interface exceeds a threshold.
[0085] In some examples, the host system can be configured to accelerate the capture of different sets of parameters for different temperatures, such as by performing a set of operations that increase the system temperature and / or causing the memory system to perform a set of operations that increase the system temperature.
[0086] In some examples, the host system may provide parameters for the calibration procedure that may affect the frequency of performing the calibration procedure (e.g., by changing the temperature threshold granularity), the parameters determined by the calibration procedure, and the like. In some examples, the parameters are provided by the host system based on the implementation of the system, the application running on the system, and the like. For example, if the system is implemented in an automotive environment, the host system may cause the calibration procedure to be performed with finer temperature threshold granularity and for additional parameters. Additionally or alternatively, when the system is used for an autonomous driving application, the host system may cause the calibration procedure to be performed with finer temperature threshold granularity and for additional parameters for a system implemented in an automotive environment.
[0087] Various aspects of flowchart 300 may be implemented by a controller and other components. Additionally or alternatively, various aspects of flowchart 300 may be implemented as instructions stored in a memory (e.g., firmware stored in a memory coupled to a controller). For example, when executed by a controller, the instructions may cause the controller to perform the operations of flowchart 300.
[0088] One or more operations described in flowchart 300 may be performed earlier or later, omitted, replaced, supplemented, or combined with another operation. In addition, the additional operations described herein may replace, supplement, or combine one or more operations described in flowchart 300.
[0089] Figure 4 An example of a data structure supporting learned temperature compensation according to examples disclosed herein is shown. Data structure 400 depicts an example of a table for storing one or more parameters for different system temperatures previously identified by a host system. In some examples, a first row of the table stores one or more parameters for a first temperature, wherein a first column of the first row may store a recorded system temperature (e.g., 100° F.), a second column of the first row may store a time at which a parameter set is stored for the recorded system temperature, a third column of the first row stores a CAS latency, and the Nth row stores a reference voltage for decoding a three-level signaling scheme. Data structure 400 may be stored by a parameter storage device (e.g., Figure 2 The parameter storage device 225) manages.
[0090] Figure 5 An example of a graph supporting learned temperature compensation according to examples disclosed herein is shown. Graph 500 depicts a set of system temperatures (eg, in degrees Fahrenheit) and parameters stored in a parameter storage device (eg, Figure 2The curve is fitted by the value of the delay parameter in the parameter storage device 225). Figure 5 As depicted in , in some examples, values for the delay parameters may not exist for certain temperatures (e.g., if the system temperature has not yet been experienced / identified, if the system temperature has expired, etc.). In some examples, multiple curves for multiple parameters determined for multiple system temperatures can be determined.
[0091] Figure 6 A block diagram 600 is shown of a host system 620 supporting learning temperature compensation according to examples disclosed herein. The host system 620 may be a reference Figures 1 to 5 6. The host system 620 or its various components may be examples of means for performing various aspects of the learned temperature compensation described herein. For example, the host system 620 may include a calibration component 625, a parameter storage component 630, a signaling component 635, a temperature component 640, a parameter analysis component 645, or any combination thereof. Components of each of these components or subcomponents thereof (e.g., one or more processors, one or more memories) may communicate directly or indirectly with each other (e.g., via one or more buses).
[0092] The calibration component 625 may be configured to or otherwise support means for determining, by a host system coupled to the memory system via the interface, a first set of parameters associated with the operation of the interface based at least in part on a first training operation of the interface. The parameter storage component 630 may be configured to or otherwise support means for storing, by the host system, an indication of the first set of parameters and a first temperature associated with the first set of parameters based at least in part on the determination of the first set of parameters. In some examples, the calibration component 625 may be configured to or otherwise support means for determining, by the host system, a second set of parameters associated with the operation of the interface based at least in part on a second training operation of the interface. In some examples, the parameter storage component 630 may be configured to or otherwise support means for storing, by the host system, an indication of the second set of parameters and a second temperature associated with the second set of parameters based at least in part on the determination of the second set of parameters. The signaling component 635 may be configured or otherwise support means for configuring, by the host system, a third parameter set for operation of the interface for a third temperature based at least in part on the first parameter set stored for the first temperature, the second parameter set stored for the second temperature, or both. In some examples, the signaling component 635 may be configured or otherwise support means for communicating, by the host system, with the memory system through the interface according to the third parameter set.
[0093] In some examples, temperature component 640 may be configured or otherwise support means for identifying a third temperature after storing an indication of the first parameter set and an indication of the second parameter set. In some examples, signaling component 635 may be configured or otherwise support means for determining that the third temperature is between the first temperature and the second temperature based at least in part on identifying the third temperature. In some examples, signaling component 635 may be configured or otherwise support means for determining that the third temperature is between the first temperature and the second temperature based at least in part on an interpolation of the first parameter set and the second parameter set based at least in part on the third temperature being between the first temperature and the second temperature.
[0094] In some examples, the parameter analysis component 645 may be configured to or otherwise support means for: based at least in part on identifying the second temperature, identifying a plurality of temperatures associated with a plurality of parameter sets stored at the host system, the plurality of temperatures including the first temperature and the second temperature. In some examples, the parameter analysis component 645 may be configured to or otherwise support means for: performing a curve fitting operation across the plurality of temperatures for one or more parameters in the plurality of parameter sets. In some examples, the signaling component 635 may be configured to or otherwise support means for: determining a third parameter set for a third temperature based at least in part on the curve fitting operation.
[0095] In some examples, the signaling component 635 may be configured to or otherwise support means for retrieving a first parameter set associated with the first temperature from a storage device based at least in part on the third temperature not differing from the first temperature by more than a threshold amount, wherein configuring the third parameter set includes configuring the first parameter set for operation of the interface.
[0096] In some examples, temperature component 640 may be configured to or otherwise support components for: identifying a second temperature associated with a second parameter set after storing an indication of the first parameter set. In some examples, calibration component 625 may be configured to or otherwise support components for: identifying at least one temperature set associated with at least one parameter set stored at a host system based at least in part on identifying the second temperature, the at least one temperature set including the first temperature. In some examples, calibration component 625 may be configured to or otherwise support components for: determining that a corresponding difference between the second temperature and a temperature in the at least one temperature set exceeds a threshold value based at least in part on identifying the second temperature. In some examples, calibration component 625 may be configured to or otherwise support components for: performing a second training operation based at least in part on a corresponding difference between the second temperature and a temperature in the at least one temperature set exceeding a threshold value.
[0097] In some examples, storing an indication of a second parameter set and a second temperature further includes: storing a time at which the indication of the second parameter set and the second temperature are stored; identifying a second temperature associated with the second parameter set after storing the indication of the second parameter set; determining a fourth parameter set associated with the operation of the interface based at least in part on a threshold duration having passed relative to the time and at least in part on a third training operation of the interface; and overwriting the indication of the second parameter set with the indication of the fourth parameter set based at least in part on determining the fourth parameter set.
[0098] In some examples, the temperature component 640 may be configured to or otherwise support means for: after storing the indication of the second parameter set, identifying a second temperature associated with the second parameter set. In some examples, the signaling component 635 may be configured to or otherwise support means for: based at least in part on identifying the second temperature, communicating with the memory system through the interface according to the second parameter set. In some examples, the signaling component 635 may be configured to or otherwise support means for: based at least in part on communicating with the memory system through the interface according to the second parameter set, detecting a threshold number of errors associated with communicating with the memory system. In some examples, the calibration component 625 may be configured to or otherwise support means for: based at least in part on detecting the threshold number of errors, based at least in part on a third training operation of the interface, determining a fourth parameter set associated with the operation of the interface. In some examples, the parameter storage component 630 may be configured to or otherwise support means for: based at least in part on determining the fourth parameter set, overwriting the indication of the second parameter set with the indication of the fourth parameter set.
[0099] In some examples, storing an indication of a first parameter set and a first temperature includes storing the first temperature in a first row and a first column of a table, and storing an indication of the first parameter set in a first row and one or more subsequent columns of the table, and storing an indication of a second parameter set and a second temperature includes storing the second temperature in a second row and a first column of the table, and storing an indication of the first parameter set in a second row and one or more subsequent columns of the table.
[0100] In some examples, the temperature component 640 may be configured to or otherwise support means for: after configuring the third parameter set, identifying a fourth temperature that differs from the first temperature by no more than a threshold. In some examples, the parameter storage component 630 may be configured to or otherwise support means for: reading a first column of a table across multiple rows of the table based at least in part on identifying the fourth temperature. In some examples, the parameter storage component 630 may be configured to or otherwise support means for: identifying a first row of a table based at least in part on reading the first column of the table, storing the first temperature based at least in part on the first column of the table associated with the first row of the table. In some examples, the parameter storage component 630 may be configured to or otherwise support means for: accessing a first parameter set stored in one or more subsequent columns of a table associated with the first row of the table based at least in part on identifying the first row of the table. In some examples, the signaling component 635 may be configured to or otherwise support means for: configuring a first parameter set for operation of an interface based at least in part on accessing the first parameter set.
[0101] In some examples, the first parameter set includes timing of command / address signaling, timing for reading data from a memory system, timing for writing data to a memory system, an offset between a data signal and a data clock signal, one or more reference voltages associated with data signaling levels, or any combination thereof.
[0102] In some examples, determining a first parameter set includes determining one or more timing parameters associated with the interface, one or more voltage parameters associated with the interface, or both at a first temperature during a first training operation, and determining a second parameter set includes determining the one or more timing parameters and the one or more voltage parameters at a second temperature during a second training operation.
[0103] In some examples, temperature component 640 can be configured as or otherwise support means for reading a first temperature from a memory system, wherein the first set of parameters is determined based at least in part on reading the first temperature.
[0104] In some examples, the first temperature, the second temperature, and the third temperature are each measured at a host system, a memory system, an interface, or a combination thereof.
[0105] In some examples, the functionality of the host system 620 or its various components may be supported by or may refer to at least a portion of at least one processor, where such at least one processor may include one or more processing elements (e.g., a controller, a microprocessor, a microcontroller, a digital signal processor, a state machine, discrete gate logic, discrete transistor logic, discrete hardware components, or any combination of one or more of such elements). In some examples, the functionality of the host system 620 or its various components may be implemented at least in part by instructions (e.g., stored in a memory, a non-transitory computer-readable medium), which may be executed by such at least one processor.
[0106] Figure 7 A flow chart showing a method 700 for supporting learning temperature compensation according to examples disclosed herein is shown. The operations of the method 700 may be implemented by a host system or components thereof as described herein. For example, the operations of the method 700 may be implemented by reference to Figures 1 to 6 The host system described herein performs. In some examples, the host system may execute a set of instructions to perform the functions described with the functional elements of the device. Additionally or alternatively, the host system may use dedicated hardware to perform various aspects of the functions described.
[0107] At 705, the method may include determining, by a host system coupled to the memory system via the interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface. In some examples, aspects of operation 705 may be described with reference to Figure 6 The described calibration component 625 performs.
[0108] At 710, the method may include, by the host system, based at least in part on determining the first parameter set, storing an indication of the first parameter set and a first temperature associated with the first parameter set. In some examples, aspects of operation 710 may be performed by reference to Figure 6 The parameter storage component 630 described performs.
[0109] At 715, the method may include determining, by the host system, a second set of parameters associated with operation of the interface based at least in part on a second training operation of the interface. In some examples, aspects of operation 715 may be described with reference to Figure 6 The described calibration component 625 performs.
[0110] At 720, the method may include storing, by the host system, an indication of the second parameter set and a second temperature associated with the second parameter set based at least in part on determining the second parameter set. In some examples, aspects of operation 720 may be performed by reference to Figure 6 The parameter storage component 630 described performs.
[0111] At 725, the method may include configuring, by the host system, a third set of parameters for operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both. In some examples, aspects of operation 725 may be described with reference to Figure 6 The described signaling component 635 executes.
[0112] At 730, the method may include communicating, by the host system, with the memory system through the interface according to the third parameter set. In some examples, aspects of operation 730 may be described with reference to Figure 6 The described signaling component 635 executes.
[0113] In some examples, the apparatus described herein may perform one or more methods, such as method 700. The apparatus may include features, circuitry, logic, means, or instructions (e.g., a non-transitory computer-readable medium storing instructions executable by a processor) for performing the following aspects of the present disclosure, or any combination thereof:
[0114] Aspect 1: A method, apparatus, or non-transitory computer-readable medium, comprising operations, features, circuit systems, logic, components, or instructions, or any combination thereof, for: determining, by a host system coupled to a memory system via an interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface; storing, by the host system, an indication of the first set of parameters and a first temperature associated with the first set of parameters based at least in part on determining the first set of parameters; determining, by the host system, a second set of parameters associated with the operation of the interface based at least in part on a second training operation of the interface; storing, by the host system, an indication of the second set of parameters and a second temperature associated with the second set of parameters based at least in part on determining the second set of parameters; configuring, by the host system, a third set of parameters for the operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both; and communicating, by the host system, with the memory system via the interface according to the third set of parameters.
[0115] Aspect 2: The method, apparatus, or non-transitory computer-readable medium according to Aspect 1 further includes the following operations, features, circuit systems, logic, components, or instructions, or any combination thereof: identifying the third temperature after storing the indication of the first parameter set and the indication of the second parameter set; determining that the third temperature is between the first temperature and the second temperature based at least in part on identifying the third temperature; and determining the third parameter set based at least in part on the interpolation of the first parameter set and the second parameter set based at least in part on the third temperature being between the first temperature and the second temperature.
[0116] Aspect 3: The method, apparatus, or non-transitory computer-readable medium according to any one of Aspects 1 to 2 further includes operations, features, circuit systems, logic, components, or instructions or any combination thereof for: identifying multiple temperatures associated with multiple parameter sets stored at the host system based at least in part on identifying the second temperature, the multiple temperatures including the first temperature and the second temperature; performing a curve fitting operation across the multiple temperatures for one or more parameters in the multiple parameter sets; and determining the third parameter set for the third temperature based at least in part on the curve fitting operation.
[0117] Aspect 4: The method, apparatus, or non-transitory computer-readable medium of any one of Aspects 1 to 3 further comprises operations, features, circuit systems, logic, components, or instructions, or any combination thereof, for: retrieving the first parameter set associated with the first temperature from a storage device based at least in part on the third temperature not differing from the first temperature by more than a threshold amount, wherein configuring the third parameter set comprises configuring the first parameter set for the operation of the interface.
[0118] Aspect 5: According to any one of aspects 1 to 4, the method, device or non-transitory computer-readable medium further includes the following operations, features, circuit systems, logic, components or instructions or any combination thereof: after storing the indication of the first parameter set, identifying the second temperature associated with the second parameter set; based at least in part on identifying the second temperature, identifying at least one temperature set associated with at least one parameter set stored at the host system, the at least one temperature set including the first temperature; based at least in part on identifying the second temperature, determining that the corresponding difference between the second temperature and the temperature in the at least one temperature set exceeds a threshold; and performing the second training operation based at least in part on the corresponding difference between the second temperature and the temperature in the at least one temperature set exceeding the threshold.
[0119] Aspect 6: A method, apparatus, or non-transitory computer-readable medium according to any one of Aspects 1 to 5, wherein storing the indication of the second parameter set and the second temperature further comprises: storing the time at which the indication of the second parameter set and the second temperature are stored; after storing the indication of the second parameter set, identifying the second temperature associated with the second parameter set; determining a fourth parameter set associated with the operation of the interface based at least in part on a threshold duration having passed relative to the time and at least in part on a third training operation of the interface; and overwriting the indication of the second parameter set with the indication of the fourth parameter set based at least in part on determining the fourth parameter set.
[0120] Aspect 7: The method, apparatus, or non-transitory computer-readable medium of any one of Aspects 1 to 6, further comprising the following operations, features, circuit systems, logic, components, or instructions, or any combination thereof: after storing the indication of the second parameter set, identifying the second temperature associated with the second parameter set; communicating with the memory system through the interface according to the second parameter set based at least in part on identifying the second temperature; detecting a threshold number of errors associated with communicating with the memory system based at least in part on communicating with the memory system through the interface according to the second parameter set; determining a fourth parameter set associated with the operation of the interface based at least in part on detecting the threshold number of errors and at least in part on a third training operation of the interface; and overwriting the indication of the second parameter set with the indication of the fourth parameter set based at least in part on determining the fourth parameter set.
[0121] Aspect 8: A method, apparatus, or non-transitory computer-readable medium according to any one of Aspects 1 to 7, wherein storing the indication of the first parameter set and the first temperature includes: storing the first temperature in a first row and a first column of a table, and storing the indication of the first parameter set in the first row and one or more subsequent columns of the table, and storing the indication of the second parameter set and the second temperature includes storing the second temperature in a second row and the first column of the table, and storing the indication of the first parameter set in the second row and the one or more subsequent columns of the table.
[0122] Aspect 9: The method, device or non-transitory computer-readable medium according to Aspect 8 further includes the following operations, features, circuit systems, logic, components or instructions or any combination thereof: after configuring the third parameter set, identifying a fourth temperature that differs from the first temperature by no more than a threshold; reading the first column of the table across multiple rows of the table based at least in part on identifying the fourth temperature; identifying the first row of the table based at least in part on reading the first column of the table and at least in part on storing the first temperature in the first column of the table associated with the first row of the table; accessing the first parameter set stored in the one or more subsequent columns of the table associated with the first row of the table based at least in part on identifying the first row of the table; and configuring the first parameter set for the operation of the interface based at least in part on accessing the first parameter set.
[0123] Aspect 10: A method, apparatus, or non-transitory computer-readable medium according to any one of Aspects 1 to 9, wherein the first parameter set includes timing of command / address signaling, timing for reading data from the memory system, timing for writing data to the memory system, an offset between a data signal and a data clock signal, one or more reference voltages associated with a data signaling level, or any combination thereof.
[0124] Aspect 11: A method, apparatus, or non-transitory computer-readable medium according to any one of Aspects 1 to 10, wherein determining the first parameter set includes determining one or more timing parameters associated with the interface, one or more voltage parameters associated with the interface, or both at the first temperature during the first training operation, and determining the second parameter set includes determining the one or more timing parameters and the one or more voltage parameters at the second temperature during the second training operation.
[0125] Aspect 12: The method, apparatus, or non-transitory computer-readable medium of any one of Aspects 1 to 11, further comprising an operation, feature, circuit system, logic, component, or instruction, or any combination thereof, for reading the first temperature from the memory system, wherein the first parameter set is determined at least in part based on reading the first temperature.
[0126] Aspect 13: The method, apparatus, or non-transitory computer-readable medium of any one of Aspects 1 to 12, wherein the first temperature, the second temperature, and the third temperature are measured at the host system, the memory system, the interface, or a combination thereof, respectively.
[0127] It should be noted that the aspects described herein describe possible implementations, and that operations and steps may be rearranged or otherwise modified, and other implementations are possible. Furthermore, portions from two or more of the described methods may be combined.
[0128] An apparatus is described. The following provides an overview of various aspects of the apparatus described herein:
[0129] Aspect 14: A device comprising: at least one controller configured to cause the device to: determine, by a host system coupled to a memory system via an interface, a first parameter set associated with the operation of the interface based at least in part on a first training operation of the interface; store, by the host system, an indication of the first parameter set and a first temperature associated with the first parameter set based at least in part on determining the first parameter set; determine, by the host system, a second parameter set associated with the operation of the interface based at least in part on a second training operation of the interface; store, by the host system, an indication of the second parameter set and a second temperature associated with the second parameter set based at least in part on determining the second parameter set; configure, by the host system, a third parameter set for the operation of the interface for a third temperature based at least in part on the first parameter set stored for the first temperature, the second parameter set stored for the second temperature, or both; and communicate with the memory system through the interface based on the third parameter set.
[0130] Aspect 15: An apparatus according to Aspect 14, wherein the at least one controller is further configured to cause the apparatus to: identify the third temperature after storing the indication of the first parameter set and the indication of the second parameter set; determine that the third temperature is between the first temperature and the second temperature based at least in part on identifying the third temperature; and determine the third parameter set based at least in part on an interpolation of the first parameter set and the second parameter set based at least in part on the third temperature being between the first temperature and the second temperature.
[0131] Aspect 16: An apparatus according to any one of Aspects 14 to 15, wherein the at least one controller is further configured to cause the apparatus to: identify multiple temperatures associated with multiple parameter sets stored at the host system based at least in part on identifying the second temperature, the multiple temperatures including the first temperature and the second temperature; perform a curve fitting operation across the multiple temperatures for one or more parameters in the multiple parameter sets; and determine the third parameter set for the third temperature based at least in part on the curve fitting operation.
[0132] Aspect 17: An apparatus according to any one of Aspects 14 to 16, wherein the third temperature differs from the first temperature by no more than a threshold amount, and wherein the at least one controller is further configured to cause the apparatus to: retrieve the first parameter set associated with the first temperature from a storage device at least in part based on the third temperature differing from the first temperature by no more than a threshold amount, wherein configuring the third parameter set includes configuring the first parameter set for the operation of the interface.
[0133] Aspect 18: A device according to any one of Aspects 14 to 17, wherein the at least one controller is further configured to cause the device to: identify the second temperature associated with the second parameter set after storing the indication of the first parameter set; identify at least one temperature set associated with at least one parameter set stored at the host system based at least in part on the identification of the second temperature, the at least one temperature set containing the first temperature; determine that a corresponding difference between the second temperature and a temperature in the at least one temperature set exceeds a threshold based at least in part on the identification of the second temperature; and perform the second training operation based at least in part on the corresponding difference between the second temperature and the temperature in the at least one temperature set exceeding the threshold.
[0134] Aspect 19: A device according to any one of Aspects 14 to 18, wherein in order to store the indication of the second parameter set and the second temperature, the at least one controller is further configured to cause the device to: store the time at which the indication of the second parameter set and the second temperature are stored; after storing the indication of the second parameter set, identify the second temperature associated with the second parameter set; determine a fourth parameter set associated with the operation of the interface based at least in part on a threshold duration having passed relative to the time and at least in part on a third training operation of the interface; and overwrite the indication of the second parameter set with the indication of the fourth parameter set based at least in part on determining the fourth parameter set.
[0135] Aspect 20: An apparatus according to any one of Aspects 14 to 19, wherein the at least one controller is further configured to cause the apparatus to: identify the second temperature associated with the second parameter set after storing the indication of the second parameter set; communicate with the memory system through the interface according to the second parameter set based at least in part on identifying the second temperature; detect a threshold number of errors associated with communicating with the memory system based at least in part on communicating with the memory system through the interface according to the second parameter set; determine a fourth parameter set associated with the operation of the interface based at least in part on detecting the threshold number of errors and at least in part on a third training operation of the interface; and overwrite the indication of the second parameter set with the indication of the fourth parameter set based at least in part on determining the fourth parameter set.
[0136] An apparatus is described. The following provides an overview of various aspects of the apparatus described herein:
[0137] Aspect 21: A non-transitory computer-readable medium storing instructions, the instructions being executable by at least one processor of an electronic device to cause the electronic device to: determine, by a host system coupled to a memory system via an interface, a first parameter set associated with the operation of the interface based at least in part on a first training operation of the interface; store, by the host system, an indication of the first parameter set and a first temperature associated with the first parameter set based at least in part on determining the first parameter set; determine, by the host system, a second parameter set associated with the operation of the interface based at least in part on a second training operation of the interface; store, by the host system, an indication of the second parameter set and a second temperature associated with the second parameter set based at least in part on determining the second parameter set; configure, by the host system, a third parameter set for the operation of the interface for a third temperature based at least in part on the first parameter set stored for the first temperature, the second parameter set stored for the second temperature, or both; and communicate, by the host system, with the memory system through the interface according to the third parameter set.
[0138] Aspect 22: A non-transitory computer-readable medium according to Aspect 21, wherein the instructions are further executable by the at least one processor to cause the electronic device to: identify the third temperature after storing the indication of the first parameter set and the indication of the second parameter set; determine that the third temperature is between the first temperature and the second temperature based at least in part on identifying the third temperature; and determine the third parameter set based at least in part on interpolation of the first parameter set and the second parameter set based at least in part on the third temperature being between the first temperature and the second temperature.
[0139] Aspect 23: A non-transitory computer-readable medium according to any one of Aspects 21 to 22, wherein the instructions are further executable by the at least one processor to cause the electronic device to: identify multiple temperatures associated with multiple parameter sets stored at the host system based at least in part on identifying the second temperature, the multiple temperatures including the first temperature and the second temperature; perform a curve fitting operation across the multiple temperatures for one or more parameters in the multiple parameter sets; and determine the third parameter set for the third temperature based at least in part on the curve fitting operation.
[0140] Aspect 24: Non-transitory computer-readable media according to any one of Aspects 21 to 23, wherein the third temperature differs from the first temperature by no more than a threshold amount, and wherein the instructions are further executable by the at least one processor to cause the electronic device to: retrieve the first parameter set associated with the first temperature from a storage device at least in part based on the third temperature differing from the first temperature by no more than the threshold amount, wherein configuring the third parameter set includes configuring the first parameter set for the operation of the interface.
[0141] Aspect 25: A non-transitory computer-readable medium according to any one of Aspects 21 to 24, wherein the instructions are further executable by the at least one processor to cause the electronic device to: identify the second temperature associated with the second parameter set after storing the indication of the first parameter set; identify at least one temperature set associated with at least one parameter set stored at the host system based at least in part on the identification of the second temperature, the at least one temperature set including the first temperature; determine, based at least in part on the identification of the second temperature, that a corresponding difference between the second temperature and a temperature in the at least one temperature set exceeds a threshold; and perform the second training operation based at least in part on the corresponding difference between the second temperature and the temperature in the at least one temperature set exceeding the threshold.
[0142] The information and signals described herein may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, or signaling symbols that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof. Some figures may show a signal as a single signal; however, a signal may represent a bus of signals, where the bus may have various bit widths.
[0143] The terms "electronically connected," "conductively contacted," "connected," and "coupled" may refer to a relationship between components that supports the flow of signals between the components. Components are considered to be in electronic communication with (e.g., in conductive contact with, connected to, coupled to) each other if there is any electrical path (e.g., conductive path) between the components that can support the flow of signals (e.g., charge, current, voltage) between the components at any time. The conductive paths between components that are in electronic communication with (e.g., in conductive contact with, connected to, coupled to) each other may be open circuits or closed circuits based on the operation of the device containing the connected components. The conductive paths between the connected components may be direct conductive paths between the components or indirect conductive paths that include intermediate components, such as switches, transistors, or other components. In some examples, the flow of signals between the connected components may be interrupted for a period of time, for example, using one or more intermediate components such as switches or transistors.
[0144] The switch components (e.g., transistors) discussed herein may be field effect transistors (FETs), and may include a source (e.g., a source terminal), a drain (e.g., a drain terminal), a channel between the source and the drain, and a gate (e.g., a gate terminal). The conductivity of the channel may be controlled (e.g., modulated) by applying a voltage to the gate, which may cause the channel to become conductive in some examples. The switch component may be an example of an n-type FET or a p-type FET.
[0145] The description set forth herein in conjunction with the accompanying drawings describes example configurations and does not represent all examples that may be implemented or within the scope of the claims. The detailed description contains specific details to provide an understanding of the described techniques. However, these techniques may be practiced without these specific details. In some cases, well-known structures and devices are shown in block diagram form to avoid obscuring the concepts of the described examples.
[0146] In the drawings, similar components or features may have the same reference label. Similar components may be distinguished by following the reference label with one or more dashes and by adding additional labels to distinguish between similar components. If only the first reference label is used in the specification, the specification applies to any one of the similar components having the same first reference label, regardless of the additional reference labels.
[0147] The functions described herein may be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions may be stored on or transmitted by a computer-readable medium as one or more instructions (e.g., code). Due to the nature of software, the functions described herein may be implemented using software executed by a processor, hardware, firmware, hardwiring, or any combination thereof. Features implementing the functions may be physically located in a variety of locations, including being distributed so that portions of the functions are implemented in different physical locations.
[0148] The illustrative blocks and modules described herein may be implemented or executed using a processor designed to perform the functions described herein, such as a DSP, ASIC, FPGA, discrete gate logic, discrete transistor logic, discrete hardware components, other programmable logic devices, or any combination thereof. A processor may be an example of a microprocessor, a controller, a microcontroller, a state machine, or other type of processor. A processor may also be implemented as at least one of one or more computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).
[0149] As used herein, including as used in the claims, "or" used in a list of items (e.g., a list of items ending with a phrase such as "at least one of" or "one or more of") means an inclusive list, for example, a list of at least one of A, B, or C means A or B or C or AB or AC or BC or ABC (i.e., A and B and C). In addition, as used herein, the phrase "based on" should not be understood as a reference to a closed set of conditions. For example, an exemplary step described as "based on condition A" can be based on condition A and condition B without departing from the scope of the present disclosure. In other words, as used herein, the phrase "based on" should be interpreted in the same manner as the phrase "based at least in part on."
[0150] Computer-readable media include both non-transitory computer storage media and communication media, and communication media include any media that helps transfer a computer program from one place to another. Non-transitory storage media can be any available media that a computer can access, or a combination of multiple media. As an example and not limitation, non-transitory computer-readable media may include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), optical disk storage, magnetic disk storage or other magnetic storage, or any other non-transitory media or combination of media that can be used to carry or store desired program code components in the form of instructions or data structures and can be accessed by a computer or processor.
[0151] The description and drawings are provided to enable those skilled in the art to make or use the present disclosure. Various modifications to the present disclosure will be apparent to those skilled in the art, and the techniques disclosed herein may be applied to other variations without departing from the scope of the present disclosure. Therefore, the present disclosure is not limited to the examples and designs described herein, but should be given the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method comprising: determining, by a host system coupled to a memory system via an interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface; storing, by the host system, an indication of the first parameter set and a first temperature associated with the first parameter set based at least in part on determining the first parameter set; determining, by the host system, a second set of parameters associated with the operation of the interface based at least in part on a second training operation of the interface; storing, by the host system, an indication of the second parameter set and a second temperature associated with the second parameter set based at least in part on determining the second parameter set; configuring, by the host system, a third set of parameters for the operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both; and The host system communicates with the memory system through the interface according to the third parameter set.
2. The method according to claim 1, further comprising: identifying the third temperature after storing the indication of the first parameter set and the indication of the second parameter set; determining, based at least in part on identifying the third temperature, that the third temperature is between the first temperature and the second temperature; as well as The third set of parameters is determined based at least in part on the third temperature being between the first temperature and the second temperature and based at least in part on an interpolation of the first set of parameters and the second set of parameters.
3. The method according to claim 1, further comprising: identifying, based at least in part on identifying the second temperature, a plurality of temperatures associated with a plurality of parameter sets stored at the host system, the plurality of temperatures including the first temperature and the second temperature; performing a curve fitting operation across the plurality of temperatures for one or more parameters in the plurality of parameter sets; as well as Based at least in part on the curve fitting operation, the third set of parameters is determined for the third temperature.
4. The method of claim 1, wherein the third temperature differs from the first temperature by no more than a threshold amount, the method further comprising: Based at least in part on the third temperature not differing from the first temperature by more than the threshold amount, retrieving the first parameter set associated with the first temperature from a storage device, wherein configuring the third parameter set includes configuring the first parameter set for the operation of the interface.
5. The method according to claim 1, further comprising: after storing the indication of the first parameter set, identifying the second temperature associated with the second parameter set; identifying, based at least in part on identifying the second temperature, at least one temperature set associated with at least one parameter set stored at the host system, the at least one temperature set including the first temperature; determining, based at least in part on identifying the second temperature, that a respective difference between the second temperature and a temperature in the at least one temperature set exceeds a threshold; as well as Based at least in part on the respective differences between the second temperature and the temperatures in the at least one temperature set exceeding the threshold, the second training operation is performed.
6. The method of claim 1 , wherein storing the indication of the second parameter set and the second temperature further comprises: storing the indication of the second parameter set and the time of the second temperature; after storing the indication of the second parameter set, identifying the second temperature associated with the second parameter set; determining a fourth set of parameters associated with the operation of the interface based at least in part on the lapse of a threshold duration relative to the time and at least in part on a third trained operation of the interface; as well as Based at least in part on determining the fourth parameter set, overwriting the indication of the second parameter set with an indication of the fourth parameter set.
7. The method according to claim 1, further comprising: after storing the indication of the second parameter set, identifying the second temperature associated with the second parameter set; communicating with the memory system through the interface according to the second set of parameters based at least in part on identifying the second temperature; detecting a threshold number of errors associated with communicating with the memory system based at least in part on communicating with the memory system through the interface according to the second set of parameters; determining a fourth set of parameters associated with the operation of the interface based at least in part on detecting the threshold number of errors and based at least in part on a third training operation of the interface; as well as Based at least in part on determining the fourth parameter set, overwriting the indication of the second parameter set with an indication of the fourth parameter set.
8. The method of claim 1, wherein: Storing the indication of the first parameter set and the first temperature includes storing the first temperature in a first row and a first column of a table and storing the indication of the first parameter set in the first row and one or more subsequent columns of the table, and Storing the indication of the second parameter set and the second temperature includes storing the second temperature in a second row and the first column of the table and storing the indication of the first parameter set in the second row and the one or more subsequent columns of the table.
9. The method according to claim 8, further comprising: After configuring the third parameter set, identifying a fourth temperature that differs from the first temperature by no more than a threshold; based at least in part on identifying the fourth temperature, reading the first column of the table across a plurality of rows of the table; identifying the first row of the table based at least in part on reading the first column of the table and based at least in part on storing the first temperature in the first column of the table associated with the first row of the table; Based at least in part on identifying the first row of the table, accessing the first set of parameters stored in the one or more subsequent columns of the table associated with the first row of the table; and Based at least in part on accessing the first set of parameters, the first set of parameters for the operation of the interface is configured.
10. The method of claim 1, wherein the first set of parameters comprises timing of command / address signaling, timing for reading data from the memory system, timing for writing data to the memory system, an offset between a data signal and a data clock signal, one or more reference voltages associated with data signaling levels, or any combination thereof.
11. The method according to claim 1, wherein: determining the first set of parameters includes determining, during the first training operation, at the first temperature, one or more timing parameters associated with the interface, one or more voltage parameters associated with the interface, or both, and Determining the second set of parameters includes determining the one or more timing parameters and the one or more voltage parameters at the second temperature during the second training operation.
12. The method according to claim 1, further comprising: The first temperature is read from the memory system, wherein the first set of parameters is determined based at least in part on reading the first temperature.
13. The method of claim 1, wherein the first temperature, the second temperature, and the third temperature are measured at the host system, the memory system, the interface, or a combination thereof, respectively.
14. An apparatus comprising: at least one controller configured to cause the device to: determining, by a host system coupled to a memory system via an interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface; storing, by the host system, an indication of the first parameter set and a first temperature associated with the first parameter set based at least in part on determining the first parameter set; determining, by the host system, a second set of parameters associated with the operation of the interface based at least in part on a second training operation of the interface; storing, by the host system, an indication of the second parameter set and a second temperature associated with the second parameter set based at least in part on determining the second parameter set; configuring, by the host system, a third set of parameters for the operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both; and The host system communicates with the memory system through the interface according to the third parameter set.
15. The apparatus of claim 14, wherein the at least one controller is further configured to cause the apparatus to: identify the third temperature after storing the indication of the first parameter set and the indication of the second parameter set; determining, based at least in part on identifying the third temperature, that the third temperature is between the first temperature and the second temperature; as well as The third set of parameters is determined based at least in part on the third temperature being between the first temperature and the second temperature and based at least in part on an interpolation of the first set of parameters and the second set of parameters.
16. The device of claim 14, wherein the at least one controller is further configured to cause the device to: identifying, based at least in part on identifying the second temperature, a plurality of temperatures associated with a plurality of parameter sets stored at the host system, the plurality of temperatures including the first temperature and the second temperature; performing a curve fitting operation across the plurality of temperatures for one or more parameters in the plurality of parameter sets; as well as Based at least in part on the curve fitting operation, the third set of parameters is determined for the third temperature.
17. The apparatus of claim 14, wherein the third temperature differs from the first temperature by no more than a threshold amount, and wherein the at least one controller is further configured to cause the apparatus to: Based at least in part on the third temperature not differing from the first temperature by more than the threshold amount, retrieving the first parameter set associated with the first temperature from a storage device, wherein configuring the third parameter set includes configuring the first parameter set for the operation of the interface.
18. The apparatus of claim 14, wherein the at least one controller is further configured to cause the apparatus to: after storing the indication of the first parameter set, identify the second temperature associated with the second parameter set; identifying, based at least in part on identifying the second temperature, at least one temperature set associated with at least one parameter set stored at the host system, the at least one temperature set including the first temperature; determining, based at least in part on identifying the second temperature, that a respective difference between the second temperature and a temperature in the at least one temperature set exceeds a threshold; as well as Based at least in part on the respective differences between the second temperature and the temperatures in the at least one temperature set exceeding the threshold, the second training operation is performed.
19. The device of claim 14, wherein to store the indication of the second parameter set and the second temperature, the at least one controller is further configured to cause the device to: storing the indication of the second parameter set and the time of the second temperature; after storing the indication of the second parameter set, identifying the second temperature associated with the second parameter set; determining a fourth set of parameters associated with the operation of the interface based at least in part on the lapse of a threshold duration relative to the time and at least in part on a third trained operation of the interface; as well as Based at least in part on determining the fourth parameter set, overwriting the indication of the second parameter set with an indication of the fourth parameter set.
20. The device of claim 14, wherein the at least one controller is further configured to cause the device to: after storing the indication of the second parameter set, identifying the second temperature associated with the second parameter set; communicating with the memory system through the interface according to the second set of parameters based at least in part on identifying the second temperature; detecting a threshold number of errors associated with communicating with the memory system based at least in part on communicating with the memory system through the interface according to the second set of parameters; determining a fourth set of parameters associated with the operation of the interface based at least in part on detecting the threshold number of errors and based at least in part on a third training operation of the interface; as well as Based at least in part on determining the fourth parameter set, overwriting the indication of the second parameter set with an indication of the fourth parameter set.
21. A non-transitory computer-readable medium storing instructions executable by at least one processor of an electronic device to cause the electronic device to: determining, by a host system coupled to a memory system via an interface, a first set of parameters associated with operation of the interface based at least in part on a first training operation of the interface; storing, by the host system, an indication of the first parameter set and a first temperature associated with the first parameter set based at least in part on determining the first parameter set; determining, by the host system, a second set of parameters associated with the operation of the interface based at least in part on a second training operation of the interface; storing, by the host system, an indication of the second parameter set and a second temperature associated with the second parameter set based at least in part on determining the second parameter set; configuring, by the host system, a third set of parameters for the operation of the interface for a third temperature based at least in part on the first set of parameters stored for the first temperature, the second set of parameters stored for the second temperature, or both; and The host system communicates with the memory system through the interface according to the third parameter set.
22. The non-transitory computer-readable medium of claim 21, wherein the instructions are further executable by the at least one processor to cause the electronic device to: identifying the third temperature after storing the indication of the first parameter set and the indication of the second parameter set; determining, based at least in part on identifying the third temperature, that the third temperature is between the first temperature and the second temperature; as well as The third set of parameters is determined based at least in part on the third temperature being between the first temperature and the second temperature and based at least in part on an interpolation of the first set of parameters and the second set of parameters.
23. The non-transitory computer-readable medium of claim 21, wherein the instructions are further executable by the at least one processor to cause the electronic device to: identifying, based at least in part on identifying the second temperature, a plurality of temperatures associated with a plurality of parameter sets stored at the host system, the plurality of temperatures including the first temperature and the second temperature; performing a curve fitting operation across the plurality of temperatures for one or more parameters in the plurality of parameter sets; as well as Based at least in part on the curve fitting operation, the third set of parameters is determined for the third temperature.
24. The non-transitory computer-readable medium of claim 21, wherein the third temperature differs from the first temperature by no more than a threshold amount, and wherein the instructions are further executable by the at least one processor to cause the electronic device to: Based at least in part on the third temperature not differing from the first temperature by more than the threshold amount, retrieving the first parameter set associated with the first temperature from a storage device, wherein configuring the third parameter set includes configuring the first parameter set for the operation of the interface.
25. The non-transitory computer-readable medium of claim 21, wherein the instructions are further executable by the at least one processor to cause the electronic device to: after storing the indication of the first parameter set, identifying the second temperature associated with the second parameter set; identifying, based at least in part on identifying the second temperature, at least one temperature set associated with at least one parameter set stored at the host system, the at least one temperature set including the first temperature; determining, based at least in part on identifying the second temperature, that a respective difference between the second temperature and a temperature in the at least one temperature set exceeds a threshold; as well as Based at least in part on the respective differences between the second temperature and the temperatures in the at least one temperature set exceeding the threshold, the second training operation is performed.