Method and device for accurately programming memristor
By using a single-loop programming method with a conductivity response prediction model and personalized compensation parameters, the problems of slow programming speed, high power consumption, and insufficient durability of memristors are solved. This method achieves efficient and accurate memristor programming, dynamically compensates for device differences and array crosstalk, and extends device lifespan.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAZHONG UNIV OF SCI & TECH
- Filing Date
- 2025-12-25
- Publication Date
- 2026-04-17
AI Technical Summary
Existing memristor programming methods suffer from slow programming speed, high power consumption, and limited durability, and are difficult to simultaneously cope with the effects of non-ideal factors such as device differences, array crosstalk, and time-varying drift.
By employing a conductance response prediction model and personalized compensation parameters, memristors are precisely programmed through a single open-loop programming pulse. By combining global conductance response prediction and personalized compensation, repeated write-verification operations are avoided. Baseline models are used to predict and eliminate interference from adjacent memristors, compensating for device deviations.
It improves programming efficiency, reduces energy consumption, extends device life, enhances programming accuracy, dynamically compensates for time-varying drift, and ensures high precision and robustness in complex environments.
Smart Images

Figure CN121884902A_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of semiconductor non-volatile memory technology, and more specifically, relates to a method and apparatus for precise programming of memristors. Background Technology
[0002] Traditional computing systems commonly use von Neumann architecture. The von Neumann architecture, due to the physical separation of its processing and storage units, resulted in severe von Neumann architecture problems. The Neumann bottleneck. All data must be transmitted back and forth between the two via a limited bandwidth bus. This causes serious problems in data transfer latency and energy consumption far exceeding actual computing costs when handling data-intensive tasks such as modern artificial intelligence. To overcome this bottleneck, the in-memory computing paradigm emerged. Its core idea is to physically integrate computing and storage to eliminate data transfer overhead. In this context, memristors, also known as resistive random access memory, are widely recognized as the ideal physical device for realizing in-memory computing. Memristors not only possess non-volatility, but their conductance (or resistance) state can also be analogically adjusted in multiple bits, allowing them to simulate synaptic weights in neural networks. More importantly, when memristors are fabricated into high-density cross-arrays, Ohm's law and Kirchhoff's laws can be directly used to perform the core multiplication and accumulation operations of neural networks in parallel and analog within the array, thus demonstrating the potential for significant performance and energy efficiency improvements.
[0003] However, a key technical bottleneck remains in moving memristors from laboratory prototypes to large-scale industrial applications: how to efficiently, quickly, and accurately program the multi-valued conductance of memristors. When memristors are used to simulate synapses, their programming accuracy directly determines the computational accuracy of the neural network model. For example... Figure 1As shown, the mainstream programming method in the industry is a write-verify mechanism based on iterative feedback, often employing an incremental step pulse programming algorithm. This scheme requires sequentially applying a tiny pulse, followed by a read operation to verify the current state, and repeating this write-verify cycle until the device's conductance gradually increases and approaches the target value. This traditional closed-loop feedback scheme inherently suffers from the following insurmountable drawbacks: First, slow programming speed and high system latency. The iterative process, involving numerous serial read / write steps (which may require hundreds of pulses to reach a target value), is extremely time-consuming. Its cumulative time (typically on the order of microseconds or even milliseconds) masks the nanosecond-level physical switching speed of the memristor, creating a new system performance bottleneck. Second, high write energy consumption. Each write pulse and verification read operation in the iterative process generates significant cumulative energy consumption, which is particularly prominent in applications requiring frequent weight updates (such as online learning or on-chip training). Finally, limited device durability. The number of times a memristor can be erased and rewritten is finite. The numerous programming pulses applied in the iterative scheme can cause cumulative damage to the physical microstructure of the device, accelerate the aging of the device, and thus drastically shorten the effective working life of the chip.
[0004] Despite its numerous drawbacks, the write-verify approach is widely adopted primarily because of the inherent, complex, and non-ideal physical characteristics of memristor devices, which result in low accuracy for simple open-loop programming (i.e., applying a single prediction pulse). Write-verify is essentially a brute-force, passive compensation method. These non-ideal factors include at least: First, device-to-device (D2D) variability. Due to the randomness of the conductive filaments within the memristor and minute variations in the manufacturing process, the conductance response characteristics of any two devices in the array are not identical. Second, time-varying drift. After successful programming, the conductance value of a device spontaneously drifts with changes in time and operating temperature. Third, array crosstalk. In high-density cross-connect arrays, programming a target cell can be affected by interference from the conductance states of adjacent cells sharing the same word line or bit line, leading to inaccurate programming pulses.
[0005] To address this issue, while some studies have proposed schemes based on predetermined points or fitted curves to reduce the number of iterations by optimizing initial pulse parameters, these schemes essentially remain within the write-verify closed-loop feedback framework, failing to eradicate their inherent limitations in speed, energy consumption, and lifetime. Furthermore, these schemes, along with simple open-loop schemes, struggle to simultaneously address the combined effects of multiple non-ideal factors such as D2D, crosstalk, and time-varying drift.
[0006] For memristor programming, how to balance programming efficiency and programming accuracy is a technical problem that urgently needs to be solved in this field. Summary of the Invention
[0007] In view of the shortcomings of the prior art, the purpose of this application is to achieve a balance between programming efficiency and programming accuracy for memristor programming.
[0008] To achieve the above objectives, in a first aspect, this application provides a method for precise programming of a memristor, the method comprising: Obtain a programming task, which instructs you to configure the conductance value of a target memristor (which can be any memristor in the memristor array) to a target conductance value. ; Get the current conductance value of the target memristor Current conductance status data of adjacent memristors And personalized compensation parameters, current conductance state data of adjacent memristors of the target memristor. The current conductance value of the memristors adjacent to the target memristor in the memristor array is used to characterize the individual compensation parameters of the target memristor to compensate for the deviation between the actual conductance response of the target memristor and the global conductance response characterized by the baseline model. Based on target conductivity Conductivity response prediction model and current conductivity of target memristor Current conductance status data of adjacent memristors And personalized compensation parameters, to solve for programmed pulse parameters; Based on the solved programming pulse parameters, a single programming pulse (single open-loop write) is applied to change the conductance value of the target memristor to the target conductance value. ; The conductivity response prediction model is used to predict the conductance of the memristor after applying a programming pulse, based on the global conductance response value and personalized compensation parameters of the memristor. The global conductance response value is provided by the baseline model, which is used to predict the current conductance value of the memristor based on the programming pulse parameters and the current conductance value of the memristor. and the current conductance state data of adjacent memristors Predict the global conductance response of the memristor.
[0009] It should be noted that the application of a single programming pulse described above is performed on the target memristor, which is equivalent to performing a single open-loop programming operation on the target memristor. Specifically, performing a single open-loop programming operation on the target memristor can be done by applying a single voltage pulse corresponding to the programming pulse parameters described above.
[0010] It is understandable that, during the execution of programming tasks, the conductivity response prediction model is combined with... and the collected multidimensional data ( , Personalized compensation parameters) can solve for programming pulse parameters, and then, by applying a single programming pulse, the conductance value of the target memristor can be configured to change. This avoids repeated write-verify operations, effectively improving programming efficiency and overcoming the shortcomings of existing technologies such as slow programming speed, high energy consumption, and limited durability.
[0011] Furthermore, the global conductance response value used in the conductance response prediction model is provided by the baseline model, which consists of programmed impulse parameters. and To predict the global conductance response of a memristor. It can characterize the conductance state of adjacent memristors, thereby helping the baseline model to effectively eliminate the interference of the conductance state of adjacent memristors in the process of predicting the global conductance response, and avoid array crosstalk affecting programming accuracy.
[0012] Furthermore, the conductance response prediction model predicts the conductance of the memristor after the programming pulse is applied based on the global conductance response value of the memristor and the personalized compensation parameters. The personalized compensation parameters are used to compensate for the deviation between the actual conductance response of the target memristor and the global conductance response characterized by the baseline model. This helps the conductance response prediction model to compensate for the deviation in the process of predicting the conductance response of the target memristor and avoid the impact of D2D differences on programming accuracy.
[0013] Therefore, for memristor programming, this application solves the programming pulse parameters by using a conductance response prediction model and applies a single programming pulse, which can achieve both programming efficiency and programming accuracy.
[0014] Optionally, the personalized compensation parameters for the target memristor may include a scaling factor. and / or offset The conductance response prediction model can use personalized compensation parameters to perform linear or nonlinear transformations on the output (global conductance response value) of the baseline model, thereby predicting the conductance value of the memristor after the application of a programming pulse.
[0015] In one possible implementation, the conductance response prediction model is determined by the following formula: ; ; in, This indicates the number of the memristor in the memristor array. Indicates the first in the memristor array A memristor, and for Personalized compensation parameters, This represents the conductance value of the memristor after the application of the programming pulse, as predicted by the conductance response prediction model. This represents the global conductivity response value. Represents the baseline model. Indicates the programming pulse parameters. This indicates the current conductance value of the memristor. This indicates the current conductance state data of the adjacent memristors.
[0016] In one possible implementation, the baseline model and personalized compensation parameters are determined through the following steps: Obtain the initial set of conductance values and programming pulse parameter set , Including multiple different initial conductance values, express The first in An initial conductivity value, Includes multiple different programming pulse parameters, express The first in One programmed pulse parameter; For each memristor in the memristor array Traverse the set of initial conductance values and programming pulse parameter set During the traversal to and In the case of: perform the following operations: The initial conductivity value is configured as follows and record The current conductance state data of the adjacent memristors, denoted as ;based on Apply a single programming pulse and record the result after applying the programming pulse. The conductivity value is denoted as , Characterization The actual conductance response; After traversing the initial set of conductance values and programming pulse parameter set Next, acquire each memristor Corresponding multidimensional dataset ; Based on each memristor Corresponding multidimensional dataset Through fitting, the baseline model and personalized compensation parameters are determined.
[0017] In one possible implementation, the above is based on each memristor Corresponding multidimensional dataset Through fitting, the baseline model and personalized compensation parameters are determined, including: Based on each memristor Corresponding multidimensional dataset By using multidimensional nonlinear fitting, a baseline model (or global-crosstalk sensing baseline model) is determined. Multidimensional nonlinear fitting is used to minimize the deviation between the actual conductance response of the memristor and the global conductance response characterized by the baseline model. For each memristor Based on baseline models and multidimensional datasets Through numerical fitting, the value of each memristor is determined. corresponding and Numerical fitting is used to minimize the deviation between the actual conductance response of the memristor and the conductance value predicted by the conductance response prediction model.
[0018] In one possible implementation, the above applies to each memristor. Based on baseline models and multidimensional datasets Through numerical fitting, the value of each memristor is determined. corresponding and ,include: against Based on baseline models and multidimensional datasets ,Sure With the corresponding , For baseline models The predicted global conductance response value; based on With the corresponding Through numerical fitting, determine corresponding and .
[0019] One possible implementation also includes: If the online fine-tuning trigger conditions are met, complete the next programming task by following these steps: Repeatedly perform write-verify operations on the target memristor until the conductivity of the target memristor is configured to the target conductivity value, and collect response data. The response data includes the initial conductivity value corresponding to each write-verify operation (the conductivity value of the memristor collected before the SET operation), programming pulse parameters (the programming pulse parameters used in the SET operation), current conductivity state data of adjacent memristors (the current conductivity state data of adjacent memristors collected before the SET operation), and conductivity value after applying the programming pulse (the conductivity value of the memristor collected after the SET operation). Fine-tune the baseline model based on the response data; Determine that the online fine-tuning trigger condition is met, including any of the following: It has been determined that the cumulative number of programming tasks executed from the historical moment to the current moment has reached the preset number; Alternatively, determine that the cumulative time spent executing programming tasks from a historical moment to the current moment has reached the preset duration; The historical moment refers to the moment when the first programming task was started, or the moment when the most recent fine-tuning of the baseline model was completed.
[0020] It is understandable that by determining whether the online fine-tuning trigger conditions are met, and then collecting response data in real time when the online fine-tuning trigger conditions are met, and fine-tuning the baseline model based on the response data, the impact of time-varying drift on programming accuracy can be effectively avoided, and the accuracy of the baseline model can be maintained over a long period.
[0021] It is worth noting that the online fine-tuning scheme provided in this application is executed only when the online fine-tuning triggering conditions are met, such as when the cumulative number of times or the cumulative duration has reached a preset number of times or a preset duration. It can be seen that the execution frequency of online fine-tuning is low and has a certain degree of sparsity.
[0022] Secondly, this application provides a memristor precision programming device, the device comprising: The task acquisition module is used to acquire programming tasks. These tasks instruct the configuration of the conductance value of a target memristor (which can be any memristor in the array) within the memristor array to a target conductance value. ; The data acquisition module is used to obtain the current conductance value of the target memristor. Current conductance status data of adjacent memristors And personalized compensation parameters, current conductance state data of adjacent memristors of the target memristor. The current conductance value of the memristors adjacent to the target memristor in the memristor array is used to characterize the individual compensation parameters of the target memristor to compensate for the deviation between the actual conductance response of the target memristor and the global conductance response characterized by the baseline model. Pulse prediction module, used to predict based on target conductance value Conductivity response prediction model and current conductivity of target memristor Current conductance status data of adjacent memristors And personalized compensation parameters, to solve for programmed pulse parameters; The programming module is used to apply a single programming pulse based on the solved programming pulse parameters, so as to change the conductance value of the target memristor to the target conductance value. ; The conductivity response prediction model is used to predict the conductance of the memristor after applying a programming pulse, based on the global conductance response value and personalized compensation parameters of the memristor. The global conductance response value is provided by the baseline model, which is used to predict the current conductance value of the memristor based on the programming pulse parameters and the current conductance value of the memristor. and the current conductance state data of adjacent memristors Predict the global conductance response of the memristor.
[0023] One possible implementation also includes: an online fine-tuning module (or sparse verification and calibration module) for: If the online fine-tuning trigger conditions are met, complete the next programming task by following these steps: Repeatedly perform write-verify operations on the target memristor until the conductivity of the target memristor is configured to the target conductivity value, and collect response data. The response data includes the initial conductivity value, programming pulse parameters, current conductivity state data of adjacent memristors, and conductivity value after the programming pulse is applied for each write-verify operation. Fine-tune the baseline model based on the response data; Determine that the online fine-tuning trigger condition is met, including any of the following: It has been determined that the cumulative number of programming tasks executed from the historical moment to the current moment has reached the preset number; Alternatively, determine that the cumulative time spent executing programming tasks from a historical moment to the current moment has reached the preset duration; The historical moment refers to the moment when the first programming task was started, or the moment when the most recent fine-tuning of the baseline model was completed.
[0024] Thirdly, this application provides an electronic device, including: a memory and one or more processors; the memory is coupled to the one or more processors, the memory is used to store computer program code, the computer program code including computer instructions; the one or more processors invoke the computer instructions to cause the electronic device to perform the method described in the first aspect or any possible implementation of the first aspect.
[0025] Fourthly, this application provides a computer-readable storage medium including instructions that, when executed on an electronic device, cause the electronic device to perform the method described in the first aspect or any possible implementation thereof.
[0026] It is understood that the beneficial effects of the second to fourth aspects mentioned above can be found in the relevant descriptions in the first aspect mentioned above, and will not be repeated here.
[0027] Overall, the technical solutions conceived in this application have the following beneficial effects compared with the prior art: (1) During the execution of programming tasks, the conductivity response prediction model is combined with... and the collected multidimensional data ( , Personalized compensation parameters) can solve for programming pulse parameters, and then, by applying a single programming pulse, the conductance value of the target memristor can be configured to change. This avoids repeated write-verify operations, effectively improving programming efficiency and overcoming the shortcomings of existing technologies such as slow programming speed, high energy consumption, and limited durability.
[0028] (2) The global conductance response value used in the conductance response prediction model is provided by the baseline model, which is a programmable pulse parameter. and To predict the global conductance response of a memristor. It can characterize the conductance state of adjacent memristors, thereby helping the baseline model to effectively eliminate the interference of the conductance state of adjacent memristors in the process of predicting the global conductance response, and avoid array crosstalk affecting programming accuracy.
[0029] (3) The conductance response prediction model is based on the global conductance response value of the memristor and the personalized compensation parameters to predict the conductance value of the memristor after the programming pulse is applied. The personalized compensation parameters are used to compensate for the deviation between the actual conductance response of the target memristor and the global conductance response represented by the baseline model, thereby assisting the conductance response prediction model in compensating for the deviation during the prediction of the conductance response of the target memristor and avoiding the impact of D2D differences on programming accuracy.
[0030] (4) By determining whether the online fine-tuning trigger condition is met, and then collecting response data in real time when the online fine-tuning trigger condition is met, and fine-tuning the baseline model based on the response data, the time-varying drift can be effectively avoided from affecting the programming accuracy. Attached Figure Description
[0031] Figure 1 This is a flowchart of a write-verify programming scheme provided by existing technology; Figure 2This is a flowchart of open-loop programming provided in an embodiment of this application; Figure 3 These are actual test results of the write-verify programming scheme provided by existing technology; Figure 4 These are measured diagrams illustrating the programming effect of open-loop programming provided in the embodiments of this application; Figure 5 This is a measured diagram illustrating the principle of personalized compensation between devices provided in the embodiments of this application; Figure 6 This is a schematic diagram of the global-crosstalk-aware baseline model provided in an embodiment of this application; Figure 7 This is a functional block diagram of the memristor precision programming device provided in the embodiments of this application; Figure 8 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0032] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0033] In this application, the term "and / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent three cases: A existing alone, A and B existing simultaneously, and B existing alone. In this application, the symbol " / " indicates that the related objects are in an "or" relationship, for example, A / B means A or B.
[0034] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of the terms "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.
[0035] In the description of the embodiments of this application, unless otherwise stated, "multiple" means two or more, for example, multiple processing units means two or more processing units, multiple elements means two or more elements, etc.
[0036] The embodiments of this application are described below with reference to the accompanying drawings.
[0037] The memristor precise programming method provided in this application includes the following steps (1) to (9). Steps (1) to (3) belong to the first stage, steps (4) to (5) belong to the second stage, and steps (6) to (9) belong to the third stage. The three stages are described in detail below.
[0038] Phase 1: Data Acquisition and Construction of Global-Crosstalk Aware Baseline Model.
[0039] Step (1), Initialization: Pre-set the parameters required for the memristor array during the feature testing process. The parameters include at least (a) a device (i.e., a memristor) index range (e.g., , (a) the total number of devices in the array); (b) a set of preset initial conductance values. ( , (c) A set of programming pulse parameters, such as a set of step programming pulse voltages (preferably the voltages for SET operations). ( , (d) Initialize a global dataset to store all acquisition results (number of step voltages to apply). .
[0040] Step (2) involves cyclically acquiring multidimensional conductance response data of the array devices: Step (2) specifically includes indexing the devices. and initial conductance index Perform a traversal, for each device and each initial conductance value Repeat the following steps: Step (2.1) Set initial state: Use the write-verify method to set the current device The conductivity is precisely modulated to the preset initial conductivity value. ; Step (2.2) Traverse the voltage and record multidimensional data: Index of step voltage (From 0 to The process is iterated. In each iteration, first, before applying the programming pulse, the device is read and recorded. The instantaneous conductance states of multiple adjacent cells (adjacent memristors) at the given location are quantized into a single characteristic value of the conductance state of an adjacent cell. Subsequently, the device was examined. Apply step programming voltage Next, read and record the data applied. After excitation, the device New conductivity value Then, the complete multidimensional data points collected in this operation will be... (That is: device index, initial conductance, pulse voltage, neighbor state, response conductance) are stored as a data tuple in the global dataset. Finally, in order to perform the next voltage test... The testing must include the device. Reset (RESET operation) and return to step (2.1) to reset its conductance to the initial conductance value. .
[0041] Step (3), construct a global-crosstalk-aware baseline model: using a global dataset All devices in the middle ( The data records are subjected to multidimensional nonlinear fitting (specifically, the multidimensional nonlinear fitting can be implemented using polynomial regression analysis, multilayer perceptron neural network, or high-dimensional interpolation method based on lookup table) to construct a global-crosstalk sensing baseline model (referred to as the global model). . The model is used to characterize the average conductance response (or global conductance response) of a device, which can be based on multidimensional inputs (initial conductance values). Applying voltage Neighbor status Predict the corresponding global conductance response. ,Right now: .
[0042] Phase 2: Extraction of personalized compensation parameters for devices.
[0043] Step (4) iteratively extracts the individual compensation parameters for each device: Step (4) aims to characterize the systematic deviation of individual devices (D2D variability) from the global-crosstalk sensing baseline model. Device indexing... Iterate through the data from 0 to n, and repeat the following steps (4.1) to (4.3) in a loop.
[0044] Step (4.1) Extracting individual data: from the global dataset In the process, extract only those belonging to the current device. All data records constitute its individual dataset. .
[0045] Step (4.2) Calculate the bias and fit the parameters: Traverse the individual datasets For each data point, the global model obtained in step (3) is first called. Calculate its corresponding global prediction value (or denoted as) Then, the model output Compared with the actual measured value recorded at this data point (or denoted as) Compare the results. After traversing... After all data points are collected, the comparison device is then used. The complete set of actual measured values Its corresponding set of all global predicted values The systematic relationship between them is then determined. Numerical fitting is then used to fit a set of personalized compensation parameters specific to the device. Preferably, the compensation parameters include a scaling factor. and an offset This makes the device Actual conductivity Compared with the predicted global conductance response The compensation relationship is satisfied to the greatest extent possible (conductivity response prediction model). ,in This represents the actual response of the device. For the device global model In the corresponding working conditions ( The predicted output is shown below.
[0046] Step (4.3) Store compensation parameters: Store the personalized compensation parameters calculated for the device. Stored in a dedicated D2D parameter cache, and associated with the device. Establish an index mapping relationship between the physical addresses.
[0047] Step (5) Modeling Completed: After extracting the personalized compensation parameters for all devices, the offline synthesis modeling phase ends. The system now possesses a global crosstalk sensing baseline model. and n sets of personalized compensation parameters It can be used in the subsequent online adaptive open-loop programming stage.
[0048] Phase 3: Online adaptive open-loop programming.
[0049] The online adaptive open-loop programming phase is executed during normal system operation. Its purpose is to utilize the comprehensive model built in the aforementioned phases to achieve high-speed, high-precision open-loop programming and dynamically compensate for time-varying drift. This phase specifically includes the following steps (6) to (9).
[0050] Step (6) Receiving instructions and acquiring multidimensional input: When the system receives instructions for the target device When programming instructions, the instructions include a target conductance value. The system first performs a multidimensional input acquisition operation, which includes, in parallel, (a) reading the target device. Current conductivity value (b) Read the target device The current state of one or more adjacent cells at the current location (c) Retrieve the personalized compensation parameters corresponding to the target device (i) index from the D2D parameter cache. .
[0051] Step (7) Integrated Pulse Prediction and Calculation: The pulses collected in step (6) are combined... and the instructions These parameters, along with the input parameters, are provided to the pulse prediction module. The core task of the pulse prediction module is to solve for an optimal programmed pulse parameter. (Preferredly, including voltage amplitude and / or pulse width), such that the pulse parameters satisfy the following compensation relationship: .
[0052] Preferably, the solution process can be efficiently implemented through numerical inverse solving, lookup table lookup, or a pre-trained inverse model.
[0053] Step (8) Single open-loop write execution: The control circuit calculates the unique programming pulse parameters in step (7). Generate and send to the target device A single programming pulse is applied. After this pulse, the system omits (i.e., no longer executes) the traditional write-verify iteration loop, directly confirms the programming operation is complete, and puts the system into a ready state to respond to the next instruction. Simultaneously, an internal operation counter... Accumulate ( ).
[0054] Step (9) Dynamic Adaptive Calibration: Step (9) aims to compensate for time-varying drift caused by factors such as device aging and temperature changes. The system determines the operation counter. Has a preset calibration threshold been reached? (For example, It can be set to 1000 or 10000). If If no operation is performed, the system continues to wait and execute the regular open-loop programming instructions in step (6). If this occurs, an online calibration operation is triggered, which specifically includes: (a) when the system executes the next programming task, enabling the traditional write-verify operation and accurately recording the instantaneous response data points of this operation (i.e., in the current time-varying state). The conductance value of the memristor acquired before performing the SET operation is denoted as... The programming pulse parameters used in the SET operation are denoted as... The current conductance data of adjacent memristors collected before the SET operation is recorded as follows: The conductance value of the memristor acquired after performing the SET operation is denoted as... (b) The instantaneous response data points obtained in step (a) are used as new, high-confidence training samples and fed back into the global-crosstalk-aware baseline model constructed in step (3). and to (c) Fine-tune the model parameters online; Reset to zero, and the system returns to the normal open-loop programming mode.
[0055] It is understandable that the beneficial effects of the memristor precision programming method provided in this application are as follows: (i) By using the single open-loop write in step (8), the traditional write-verify iterative loop is completely eliminated, which greatly improves the programming speed, reduces the write power consumption, and significantly extends the programming durability of the device; (ii) By integrating personalized compensation (avoiding the impact of D2D differences on programming accuracy) and crosstalk sensing (avoiding the impact of array crosstalk on programming accuracy) in steps (3), (4), and (7), the open-loop prediction accuracy is high, overcoming the difficulties of device spatial heterogeneity and electrical coupling; (iii) By using the dynamic adaptive calibration in step (9), the model can dynamically track the time-varying drift caused by aging, temperature drift, etc., avoiding the impact of time-varying drift on programming accuracy, and ensuring that the method can maintain high accuracy and high robustness throughout the entire service life of the device.
[0056] The memristor precise programming method and apparatus provided in this application are illustrated below through Examples 1 and 2.
[0057] Example 1: An exemplary description of the programming method provided in this application.
[0058] This embodiment specifically describes a memristor open-loop programming method based on a multidimensional dynamic statistical model. For example... Figure 1 As shown, the existing technology uses a write-verify closed-loop feedback, which generally requires repeated write-verify operations. One write-verify operation includes: (1) reading the current conductance value of the memristor. ; (2) Judgment Is it located within the target conductance range? ( This represents the lower limit of the target conductivity range. If the upper limit of the target conductance range is met, then modulation is complete (the current memristor programming task is finished); otherwise, proceed with the next step (judging...). Is it greater than ); (3) Judgment Is it greater than If yes, then reset the conductance of the memristor (RESET operation); otherwise, confirm the execution of the SET operation; (4) Execute the SET operation (apply a preset pulse, usually a tiny pulse). It can be seen that its steps are cumbersome, resulting in such Figure 3 The programming results shown indicate that hundreds of pulses are needed for the conductance value to slowly approach the target. This application aims to solve this problem. Figure 2 As shown, this application proposes a feedforward open-loop programming approach, the core of which lies in utilizing a high-precision prediction model to achieve single-write operations. For example... Figure 4 As shown, using the method of this application, the conductivity value can be accurately transitioned from the initial state to the target state with only one (or very few) pulses, which significantly improves speed and efficiency.
[0059] The specific implementation of the programming method in this application includes the following three stages.
[0060] Phase 1: Data Acquisition and Global Crosstalk Sensing Baseline Model Construction (Steps 1 to 3) In step (1), the system is initialized. In step (2), all devices in the array are scanned to acquire multidimensional conductance response data. In step (2.2), a key technical feature is that, upon applying a programming voltage... Previously, the conductance states of adjacent cells were sensed and quantified. This is to compensate for array crosstalk effects in subsequent modeling. In step (3), all the collected data are used. Construct a global-crosstalk-aware baseline model The model is a multidimensional nonlinear function, such as... Figure 6 As shown, it characterizes the complex relationship between the device's conductance response (Z-axis, predicted relative change) and input dimensions such as initial conductance (X-axis) and pulse amplitude (Y-axis) (Note: Figure 6 This application's model also includes, but is only a three-dimensional example. (and higher dimensions).
[0061] Phase Two: Extraction of Personalized Compensation Parameters for Devices (Steps 4 to 5) In step (4), personalized compensation parameters are extracted to address D2D discrepancies. In step (4.2), these parameters are compared with actual measured values. and global predicted value To fit a scaling factor specific to each device. and offset . Figure 5 This intuitively illustrates the principle: the global model (solid line 101) cannot accurately describe all devices, while the actual responses of devices A and B (dashed lines 102 and 103) each have their own slopes. and intercept In step (5), the modeling is completed, and the system has the model. and parameter caching .
[0062] Phase 3: Online Adaptive Open-Loop Programming (Steps 6 to 9) In step (6), when a programming instruction is received, the system collects data in parallel. , as well as In step (7), the system uses the model and parameters obtained in steps (3) and (4) to solve for a unique programmed pulse in reverse. This solution process ensures The output has already compensated for crosstalk (through...). Input) and D2D (via (Correction). In step (8), a single open-loop write is performed, such as... Figure 2 and Figure 4 As shown. In step (9), dynamic adaptive calibration is performed. This step is optional, but crucial for compensating for time-varying drift. The system uses a counter. This enables sparse verification (e.g., performing closed-loop verification only once every 1000 open-loop programming iterations) and utilizes the real data points from that verification iteration to... The model is fine-tuned online to ensure that it maintains high accuracy throughout the entire service life of the device.
[0063] Example 2: An exemplary description of the programming apparatus provided in this application.
[0064] This application also provides a memristor open-loop programming device based on a multidimensional dynamic statistical model, which is used to implement all the methods of Embodiment 1 (i.e., steps 1 to 9) described above. Figure 7 The diagram shown is a functional block diagram of a preferred embodiment of the device according to this application. The device preferably includes a memristor array, a pulse prediction and programming module, and a global-crosstalk sensing baseline model. A device-specific compensation parameter cache And a sparse verification and calibration module. Global-crosstalk-aware baseline model. It is constructed by performing offline synthesis modeling in steps (1) to (3). Device-specific compensation parameter cache It is generated by the personalized compensation parameter extraction in step (4) and used to store parameters in step (4.3). During the online programming operation, the pulse prediction and programming module is used to perform the multidimensional input acquisition in step (6), which reads the current conductance value from the memristor array. and adjacent unit states Simultaneously, the impulse prediction and programming module is also used to receive data from the global-crosstalk-aware baseline model. Model data, and cached device-specific compensation parameters. The compensation parameters. Based on all the above inputs, the pulse prediction and programming module performs the comprehensive pulse prediction and calculation in step (7) to solve for the unique programming pulse. Subsequently, the pulse prediction and programming module executes step (8), which... A pulse is applied to the memristor array to complete a single open-loop write. The sparse verification and calibration module is used to perform the dynamic adaptive calibration in step (9). Figure 7 As shown, when an online calibration event is triggered, the sparse verification and calibration module collects real-time response data (this data comes from the memristor array, which, although not explicitly shown in the figure, is inherent to its function) and performs global-crosstalk-aware baseline model analysis. Perform online fine-tuning or updates to compensate for time-varying drift.
[0065] In summary, the memristor precise programming method and apparatus provided in this application have the following beneficial effects (1) to (4).
[0066] Beneficial effects (1): This application abandons the traditional iterative feedback loop of write-verify and instead adopts single-pulse write based on feedforward prediction. Therefore, it effectively reduces the average latency of programming operations and significantly reduces the cumulative power consumption caused by multiple read-write cycles.
[0067] Beneficial effect (2): Since the number of programming pulses applied to the device is minimized to a theoretical single pulse, this application significantly slows down the aging degradation of the device due to cumulative damage, thereby extending the effective service life of the memristor array.
[0068] Beneficial effect (3): This application no longer passively compensates for device non-ideality, but constructs a multi-dimensional (crosstalk perception, D2D personalization) compensation model in the first stage (step 3) and the second stage (step 4), and realizes active prediction and forward control of device spatial heterogeneity and electrical coupling in the third stage (step 7).
[0069] Beneficial effect (4): By introducing the dynamic adaptive calibration mechanism in step (9), the method of this application can track and compensate for time-varying drift caused by aging or temperature drift in real time, ensuring that open-loop programming always maintains high accuracy and high robustness in complex working environments and throughout the entire service life of the device.
[0070] Based on the methods in the above embodiments, this application provides an electronic device, such as... Figure 8As shown, the electronic device may include a processor 810, a communications interface 820, a memory 830, and a communication bus 840, wherein the processor 810, the communications interface 820, and the memory 830 communicate with each other through the communication bus 840. The processor 810 can call logical instructions in the memory 830 to execute the methods in the above embodiments.
[0071] Furthermore, the logical instructions in the aforementioned memory 830 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application.
[0072] Based on the methods in the above embodiments, this application provides a computer-readable storage medium storing a computer program that, when run on a processor, causes the processor to execute the methods in the above embodiments.
[0073] Based on the methods in the above embodiments, this application provides a computer program product that, when run on a processor, causes the processor to execute the methods in the above embodiments.
[0074] It is understood that the processor in the embodiments of this application can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A general-purpose processor can be a microprocessor or any conventional processor.
[0075] The method steps in this application embodiment can be implemented in hardware or by a processor executing software instructions. The software instructions can consist of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, portable hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, enabling the processor to read information from and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can reside in an ASIC.
[0076] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).
[0077] It is understood that the various numerical designations used in the embodiments of this application are merely for the convenience of description and are not intended to limit the scope of the embodiments of this application.
[0078] Those skilled in the art will readily understand that the above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A method for precise programming of a memristor, characterized in that, include: Obtain a programming task, which instructs you to configure the conductance of a target memristor in the memristor array to the target conductance value. The current conductance value of the target memristor, the current conductance state data of adjacent memristors, and personalized compensation parameters are obtained. The current conductance state data of adjacent memristors of the target memristor are used to characterize the current conductance value of the memristors adjacent to the target memristor in the memristor array. The personalized compensation parameters of the target memristor are used to compensate for the deviation between the actual conductance response of the target memristor and the global conductance response characterized by the baseline model. Based on the target conductance value, the conductance response prediction model, the current conductance value of the target memristor, the current conductance state data of adjacent memristors, and personalized compensation parameters, the programming pulse parameters are solved. Based on the solved programming pulse parameters, a single programming pulse is applied to change the conductance value of the target memristor to the target conductance value. Among them, the conductance response prediction model is used to predict the conductance of the memristor after the application of the programming pulse based on the global conductance response value and personalized compensation parameters of the memristor. The global conductance response value is provided by the baseline model, which is used to predict the global conductance response value of the memristor based on the programming pulse parameters, the current conductance value of the memristor and the current conductance state data of adjacent memristors.
2. The memristor precise programming method according to claim 1, characterized in that, The conductivity response prediction model is determined by the following formula: ; ; in, This indicates the number of the memristor in the memristor array. Indicates the first in the memristor array A memristor, and for Personalized compensation parameters, This represents the conductance value of the memristor after the application of the programming pulse, as predicted by the conductance response prediction model. This represents the global conductivity response value. Represents the baseline model. Indicates the programming pulse parameters. This indicates the current conductance value of the memristor. This indicates the current conductance state data of the adjacent memristors.
3. The memristor precise programming method according to claim 2, characterized in that, The baseline model and personalized compensation parameters are determined through the following steps: Obtain the initial set of conductance values and programming pulse parameter set , Including multiple different initial conductance values, express The first in An initial conductivity value, Includes multiple different programming pulse parameters, express The first in One programmed pulse parameter; For each memristor in the memristor array Traverse the set of initial conductance values and programming pulse parameter set During the traversal to and In the case of: perform the following operations: The initial conductivity value is configured as follows and record The current conductance state data of the adjacent memristors, denoted as ;based on Apply a single programming pulse and record the result after applying the programming pulse. The conductivity value is denoted as , Characterization The actual conductance response; After traversing the initial set of conductance values and programming pulse parameter set Next, acquire each memristor Corresponding multidimensional dataset ; Based on each memristor Corresponding multidimensional dataset Through fitting, the baseline model and personalized compensation parameters are determined.
4. The memristor precise programming method according to claim 3, characterized in that, The basis of each memristor Corresponding multidimensional dataset Through fitting, the baseline model and personalized compensation parameters are determined, including: Based on each memristor Corresponding multidimensional dataset By using multidimensional nonlinear fitting, a baseline model is determined. Multidimensional nonlinear fitting is used to minimize the deviation between the actual conductance response of the memristor and the global conductance response characterized by the baseline model. For each memristor Based on baseline models and multidimensional datasets Through numerical fitting, the value of each memristor is determined. corresponding and Numerical fitting is used to minimize the deviation between the actual conductance response of the memristor and the conductance value predicted by the conductance response prediction model.
5. The memristor precise programming method according to claim 4, characterized in that, The for each memristor Based on baseline models and multidimensional datasets Each memristor is constructed through numerical fitting. corresponding and ,include: against Based on baseline models and multidimensional datasets ,Sure With the corresponding , For baseline models The predicted global conductance response value; based on With the corresponding Through numerical fitting, determine corresponding and .
6. The memristor precise programming method according to claim 1, characterized in that, Also includes: If the online fine-tuning trigger conditions are met, complete the next programming task by following these steps: Repeatedly perform write-verify operations on the target memristor until the conductivity of the target memristor is configured to the target conductivity value, and collect response data. The response data includes the initial conductivity value, programming pulse parameters, current conductivity state data of adjacent memristors, and conductivity value after the programming pulse is applied for each write-verify operation. Fine-tune the baseline model based on the response data; Determine that the online fine-tuning trigger condition is met, including any of the following: It has been determined that the cumulative number of programming tasks executed from the historical moment to the current moment has reached the preset number; Alternatively, determine that the cumulative time spent executing programming tasks from a historical moment to the current moment has reached the preset duration; The historical moment refers to the moment when the first programming task was started, or the moment when the most recent fine-tuning of the baseline model was completed.
7. A memristor precision programming device, characterized in that, include: The task acquisition module is used to acquire programming tasks, which instruct the target memristor in the memristor array to be configured to the target conductance value. The data acquisition module is used to acquire the current conductance value of the target memristor, the current conductance state data of adjacent memristors, and personalized compensation parameters. The current conductance state data of adjacent memristors of the target memristor is used to characterize the current conductance value of the memristors adjacent to the target memristor in the memristor array. The personalized compensation parameters of the target memristor are used to compensate for the deviation between the actual conductance response of the target memristor and the global conductance response characterized by the baseline model. The pulse prediction module is used to solve the programmed pulse parameters based on the target conductance value, the conductance response prediction model, the current conductance value of the target memristor, the current conductance state data of adjacent memristors, and personalized compensation parameters. The programming module is used to apply a single programming pulse based on the solved programming pulse parameters to change the conductance value of the target memristor to the target conductance value. Among them, the conductance response prediction model is used to predict the conductance of the memristor after the application of the programming pulse based on the global conductance response value and personalized compensation parameters of the memristor. The global conductance response value is provided by the baseline model, which is used to predict the global conductance response value of the memristor based on the programming pulse parameters, the current conductance value of the memristor and the current conductance state data of adjacent memristors.
8. The memristor precision programming device according to claim 7, characterized in that, Also includes: The online fine-tuning module is used for: If the online fine-tuning trigger conditions are met, complete the next programming task by following these steps: Repeatedly perform write-verify operations on the target memristor until the conductivity of the target memristor is configured to the target conductivity value, and collect response data. The response data includes the initial conductivity value, programming pulse parameters, current conductivity state data of adjacent memristors, and conductivity value after the programming pulse is applied for each write-verify operation. Fine-tune the baseline model based on the response data; Determine that the online fine-tuning trigger condition is met, including any of the following: It has been determined that the cumulative number of programming tasks executed from the historical moment to the current moment has reached the preset number; Alternatively, determine that the cumulative time spent executing programming tasks from a historical moment to the current moment has reached the preset duration; The historical moment refers to the moment when the first programming task was started, or the moment when the most recent fine-tuning of the baseline model was completed.
9. An electronic device, characterized in that, include: Memory and one or more processors; The memory is coupled to the one or more processors, and the memory is used to store computer program code, the computer program code including computer instructions; The one or more processors invoke the computer instructions to cause the electronic device to perform the method as described in any one of claims 1-6.
10. A computer-readable storage medium comprising instructions, characterized in that: When the instructions are executed on an electronic device, the electronic device causes the electronic device to perform the method as described in any one of claims 1-6.