Method for designing initialization functions for programming memory elements
By designing initialization functions and optimizing storage device settings, the shortcomings of semiconductor storage devices in terms of data retention and reliability were overcome, achieving high-precision information retention and accurate input for neuromorphic neuron devices.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2021-10-28
- Publication Date
- 2026-05-01
AI Technical Summary
Existing semiconductor memory devices have shortcomings in data retention, read latency, and reliability, especially in maintaining information with high precision in multi-level cell operations.
By designing initialization functions to calculate and set the initial state of memory elements, utilizing knowledge of conductance drift states, generating high-precision output current, and applying neuromorphic neuron devices in integrated circuits, the configuration method of memory devices is optimized.
It improves the accuracy and reliability of storage devices, ensures high-precision retention of information in a drift state, and enhances the accuracy of input signals for neuromorphic neuron devices.
Smart Images

Figure CN114446339B_ABST
Abstract
Description
Background Technology
[0001] This invention generally relates to the field of semiconductor memory devices.
[0002] Semiconductor memory devices can be grouped into volatile memory devices (such as dynamic random access memory (DRAM) cells) and non-volatile memory devices (such as phase-change memory (PCM) and resistive random access memory (RRAM) devices). Research in the field of memory devices particularly focuses on high endurance, data retention, low write and read latency, and reliability. Research in the field of memory devices can also consider the possibility of multi-level cell operations for memory devices that store more than one bit of information per memory cell.
[0003] Statement by the inventor or co-inventor regarding prior disclosure
[0004] The following disclosures are filed under 35U.SC102(b)(1)(A):
[0005] Publication: Deep Learning Incorporating Biologically Inspired Neural Dynamics and in-memory computer, Stanislaw Wozniak, Angeliki Pantazi, Thomas Bohnstingl & Evangelos Eleftheriou, June 15, 2020, pp. 325-336. Summary of the Invention
[0006] Various embodiments provide storage devices, integrated circuits, methods for setting up storage devices, and methods for designing initialization functions as described in the independent claims. Advantageous embodiments are described in the dependent claims. Embodiments of the invention may be freely combined with each other if they are not mutually exclusive.
[0007] In one aspect, the present invention relates to a storage device including a memory element. The memory element may include a changeable physical quantity for storing information. The physical quantity may be in a drift state. The memory element may be configured to set the physical quantity to an initial state. Furthermore, the memory element may include a drift of the physical quantity from the initial state to the drift state. The initial state of the physical quantity may be calculated by means of an initialization function. The initialization function may depend on a target state of the physical quantity, and the target state of the physical quantity may be substantially equal to the drift state of the physical quantity.
[0008] In another aspect, the present invention relates to an integrated circuit comprising a first component of memory elements. The first component of the memory elements may include a connection for applying a corresponding voltage to a corresponding connection to generate a single current in the corresponding memory element. Furthermore, the first component may include at least one output connection for outputting an output current. The memory elements may be connected to each other such that the output current is the sum of the single currents. The integrated circuit may be configured to generate the output current based on the applied voltage. Furthermore, each memory element may include a corresponding variable conductance, wherein the corresponding conductance may be in a corresponding drift state. The corresponding memory element may be configured to set the corresponding conductance to a corresponding initial state. Furthermore, the corresponding memory element may include a corresponding drift of the corresponding conductance from the corresponding initial state to the corresponding drift state. The corresponding initial state of the corresponding conductance may be calculated by means of a corresponding initialization function. The corresponding initialization function may depend on a corresponding target state of the corresponding conductance, and the corresponding target state of the corresponding conductance may be substantially equal to the corresponding offset state of the corresponding conductance.
[0009] In another aspect, the present invention relates to a method for configuring a storage device including memory elements comprising changeable physical quantities. The method includes:
[0010] Select the target state for this physical quantity;
[0011] The initial state of the physical quantity is calculated using an initialization function, which depends on the target state of the physical quantity.
[0012] Set the physical quantity to the initial state of the calculated physical quantity.
[0013] In another aspect, the present invention relates to a method for designing an initialization function. The initialization function can represent the relationship between a corresponding selected target state of a changeable physical quantity of a memory element and a corresponding initial state of the physical quantity of the memory element. The physical quantity of the memory element can be adjusted to its corresponding initial state for drifting toward the corresponding selected target state. The method includes: in a first step, setting the physical quantity of the memory element to an initial value at an initial time point; in a second step, measuring the actual value of the physical quantity of the memory element after a given elapsed time period, wherein the elapsed given time period begins from the initial time point; in a third step, storing the initial value and the actual value of the physical quantity in a database; repeating the first, second, and third steps, and setting the physical quantity of the memory element to a different initial value at each repetition of the first step, so as to store multiple different pairs of the initial value and the actual value of the physical quantity in the database; and designing the initialization function based on the database.
[0014] In another aspect, the present invention relates to a computer program product including a computer-readable storage medium having computer-readable program code embodied therein, the computer-readable program code being configured to implement all steps of a method for setting up a storage device or for designing initialization functions. Attached Figure Description
[0015] In the following embodiments, embodiments of the invention are explained in more detail with reference to the accompanying drawings, in which:
[0016] Figure 1 This is a flowchart illustrating the methods for designing initialization functions based on this topic.
[0017] Figure 2 The data flow of the initialization function is shown.
[0018] Figure 3 The memory element is shown.
[0019] Figure 4 A graph is shown, including curves, each of which is shown on the graph. Figure 3 The memory element shown drifts over time relative to its initial value after the memory element has been programmed.
[0020] Figure 5 A graph showing curves is provided, each of which is illustrated in [the graph / chart]. Figure 3 Based on the selected target state of the physical quantities of the memory element shown, the drift of a physical quantity over time relative to its calculated initial value.
[0021] Figure 6 A database is shown, which includes pairs of initial values for physical quantities and their corresponding actual values.
[0022] Figure 7 A diagram including the initialization function is shown.
[0023] Figure 8 Another database is shown, which includes multiple sets of additional actual values of physical quantities, each set representing a time series of the value of that physical quantity.
[0024] Figure 9 The time-dependent initialization function is shown.
[0025] Figure 10 An integrated circuit including a cross-shaped array of memristors and a neuromorphic neuron device is shown.
[0026] Figure 11 Show Figure 10The time series of input values for the neuromorphic neuron device shown.
[0027] Figure 12 A neural network is shown.
[0028] Figure 13 Showing more details Figure 10 The diagram shows a cross-shaped array of memristors.
[0029] Figure 14 This is a flowchart of a method for configuring a storage device. Detailed Implementation
[0030] The description of different embodiments of the present invention is presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or technical improvements of the embodiments beyond those found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0031] Memory elements can be capacitors, resistors, or resistive memory elements, also referred to below as memristors. Memristors can be phase-change memory (PCM) elements, metal-oxide-semiconductor resistive RAM elements, bridge RAM elements, or magnetic RAM elements. When the memory element is a capacitor, the physical quantity can be electric charge. Electric charge can be changed by charging the capacitor. When the memory element is a memristor, the physical quantity can be the conductance of the resistive memory element (RME). The conductance of the RME can be changed by applying a control voltage to the RME.
[0032] The value of a physical quantity, i.e., its state, can correspond to stored information (such as the value of a variable). For example, a higher value of a physical quantity can correspond to a higher value of a variable, and vice versa. In another example, a lower value of a physical quantity can correspond to a higher value of a variable, and vice versa. The stored information can be a value, such as the value of a variable. This value can be an entry in a matrix. The physical quantity can be the conductance, charge, or resistance of a memory element.
[0033] The initial state of a physical quantity can be the state of that physical quantity immediately after programming the memory element. Therefore, programming a memory element can be considered as setting the physical quantity to its initial state. Setting the physical quantity can be performed by applying a programming voltage or programming current to the memory element.
[0034] As used herein, the term "drift" describes the change in the value of a physical quantity over time, such as the decay or increase of the physical quantity over time. The term "drift state," as used herein, describes the state of the physical quantity's change compared to its initial state. Time has passed between a point in time when the physical quantity is in its initial state and another point in time when the physical quantity is in a drift state. Furthermore, in the drift state of a physical quantity of a memory element, the change in the physical quantity over time can be less than the change in the physical quantity over time in its initial state. For this reason, if a physical quantity is in a drift state, the information that can be represented by the actual value of the physical quantity of the memory element can be maintained with greater accuracy over time. In one example, the change in the physical quantity over time in the drift state can be less than 10 percent compared to the change in the physical quantity over time in its initial state. In another example, the change in the physical quantity over time in the drift state can be less than 5 percent compared to the change in the physical quantity over time in its initial state, or, according to another example, less than 1 percent.
[0035] Therefore, after a physical quantity is set to an initial value, its change over time decreases. This effect is observed to depend on the initial value of the physical quantity in the experiment. This storage device can be configured to set a physical quantity of a memory element to an initial state and use it after that physical quantity may have reached a drift state. Therefore, this storage device provides a storage device that uses a memory element with higher accuracy compared to standard use cases. Standard use cases may include programming a physical quantity of a memory element (e.g., the conductance of a memristor) to an initial state and then directly using the memory element (e.g., the memristor).
[0036] The initial state or value of this physical quantity can be calculated using a computer's initialization function (such as a lookup table). In another example, the physical quantity can be calculated manually using an initialization function.
[0037] This advantage can also be useful for applications where the corresponding RME described above can be used to generate the aforementioned single current. In one example, the voltage can be applied in the form of voltage pulses having a constant voltage but varying lengths or numbers of pulses within the time interval used to perform pulse width modulation, in order to generate a single current. In another example, voltages comprising at least two different voltage values can be applied to generate a single current. The voltage can be applied using either a voltage source or a current source. The output current can be generated with greater precision, and the output can be generated as the sum of a single current. Therefore, the corresponding RME, with its corresponding conductance in a corresponding drift state, can be used to perform more accurate additions at the hardware level. This can be particularly advantageous for applications where the voltage is applied in a corresponding drift state.
[0038] According to one embodiment, the integrated circuit may further include a neuromorphic neuron device for simulating layers of a neural network. In this embodiment, the neuromorphic neuron device may include an input connection that can be connected to an output connection of a first component. Here, the generated output current can be used as an input signal for the neuromorphic neuron device. When the RME operates with high precision, the input signal of the neuromorphic neuron device can be more accurate. Therefore, the neuromorphic neuron device can deliver better results when applied to inference tasks.
[0039] According to one embodiment, the corresponding target state of the physical quantities of a memory element can be adapted to the use of an integrated circuit. "Use" can refer to a point in time when the memory element can be used. If this point in time is known, the physical quantities of the memory element can be initially set such that the physical quantities of the memory element can reach the target state at that point in time.
[0040] The aforementioned method for configuring the storage device can also be beneficial after programming the memory elements, utilizing knowledge of the state-related behavior of drifting physical quantities. Since the initialization function can be used to calculate the initial state of the physical quantity and depends on the target state of the physical quantity, the storage device can be configured to operate more accurately after the physical quantity reaches a drift state.
[0041] According to one embodiment of a method for configuring a storage device, the method may further include measuring the elapsed time from an initial time point when a physical quantity is set to a calculated initial state to an actual time point. The method may further include comparing the measured elapsed time with a given time period, wherein the given time period may depend on the use of the memory element. Furthermore, the method may include releasing the memory element for operation if the measured elapsed time is greater than the given time period. This embodiment enables ensuring that the storage device can only be used after a given time period has elapsed since the memory element of the storage device was programmed. In other words, this embodiment prevents the storage device from being used with relatively low precision.
[0042] According to one embodiment of the method for designing an initialization function, the measurement of the actual value of a physical quantity of the memory element in the second step can be performed at a first time point, wherein the time span between the initial time point and the first time point is equal to a given time period. Since the second step can be repeated to store multiple different pairs of initial and actual values of the physical quantity in a database, this embodiment enables the retrieval of values from the database such that the time span between the initial time point and the time point at which the actual value of the physical quantity is measured is the same for each pair. This alleviates the need to design the initialization function as a time-independent function.
[0043] According to one embodiment of the method for designing initialization functions, a given time period can be adapted to the future use of the memory element. Future use can include future points in time when the memory element will be used. If the future points in time are known, the memory element can be programmed such that a physical quantity can reach its target state almost exactly at the future points in time after it has drifted from its programmed value.
[0044] According to one embodiment of the method for designing an initialization function, if the actual value of a physical quantity changes less than a given threshold over time, the measurement of the actual value of the physical quantity of the memory element can be performed in a second step. If the initialization function can be designed in such a way that initial physical quantities can be calculated using the initialization function, such that the physical quantity can include changes over time in the drift state of the physical quantity, which can be comparable to or less than the threshold. Therefore, this embodiment can enhance the robustness of the memory element.
[0045] According to one embodiment of the method for designing an initialization function, the initialization function can be time-independent. This embodiment can provide the initialization function as a very practical function because it does not require time measurement, either considering the point in time when it is used or during its use.
[0046] According to one embodiment of the method for designing an initialization function, the initialization function can be a power function, which includes a corresponding selected target state of a variable physical quantity as the exponent of the power function and a corresponding initial state of the physical quantity as the function value of the power function. This embodiment can very accurately reflect observations made by performing experiments involving the drift of physical quantities related to memory elements. Therefore, using the initialization function as a power function when setting the physical quantity can deliver more accurate results.
[0047] According to one embodiment of the method used to design the initialization function, the initialization function can be equal to: f(G) = a*e-b*G +c, where G is the corresponding selected target state of the changeable physical quantity, f(G) is the corresponding initial state of the physical quantity, and a, b, and c are the coefficients of the initialization function. This embodiment can very accurately represent observations made by performing multiple further experiments involving the drift of physical quantities related to memory elements. Therefore, using the initialization function according to this embodiment can result in greater accuracy of the initialization function.
[0048] According to one embodiment of the method for designing an initialization function, the method may further include measuring additional actual values and actual time periods of a physical quantity of a memory element, the actual time period being defined by the elapsed time between an initial time point and an actual time point in a sub-step of the second step; in the additional sub-step of the second step, storing the additional actual values of the physical quantity and the actual time periods in the database; repeating the sub-step of the second step and the additional sub-step as time elapses from the initial time point to store several different additional actual values of the physical quantity and corresponding actual time periods in the database; and designing an initialization function based on the database.
[0049] This embodiment allows for the design of time-dependent initialization functions. If the initialization function is time-dependent, physical quantities can be set more accurately with respect to future use (e.g., relative to a future point in time when the memory element will be used). Furthermore, this embodiment is advantageous in terms of the amount of data that can be obtained when performing experiments on the drift of the memory element.
[0050] According to a further embodiment of the method for designing the initialization function, the method may further include designing a corresponding time-dependent initialization function for each initial value of the physical quantity. The corresponding time-dependent initialization function may represent the time-dependent drift of the physical quantity of the memory element from its corresponding initial state. According to this embodiment, a set of multiple initialization functions can be designed based on a database. These multiple initialization functions can be used to calculate the initial value of the physical quantity by interpolation.
[0051] According to a further embodiment of the method for designing an initialization function, the method may further include designing an initialization function such that the initialization function can represent the relationship between a corresponding selected target state of a changeable physical quantity of the memory element and a corresponding initial state of the physical quantity of the memory element, and a selected elapsed period of time after setting the physical quantity of the memory element to the corresponding initial state. The selected elapsed period of time may depend on a predefined future use of the memory element. This embodiment can replace the interpolation described above.
[0052] Figure 1It is used for design such as Figure 2 The flowchart illustrates the method of initialization function 200. Initialization function 200 can represent the corresponding selected target state G of the changeable physical quantity of memory element 300. target_sel The initial state G corresponding to the physical quantity of memory element 300 init_sel The relationship between them, such as Figure 3 As shown.
[0053] An example of the visual representation of initialization function 200 in 720. Figure 7 The graph shows this as a solid line. The x-axis of the graph can represent the selected target state G of the physical quantity. target_sel The possible values, and the y-axis can represent the corresponding initial state G of the physical quantity. init_sel The value corresponds to the initial state G. init_sel The values can each correspond to the selected target state G of the physical quantity. target_sel One of the possible values. Figure 2 The diagram illustrates the data flow for initialization function 200. For clarity, only the selected target state G of the physical quantities is shown as a circle in the diagram. target_sel The value and the initial state of the physical quantity G init_sel An example of the corresponding value. Typically, the initialization function 200 can be used to select the target state G of the physical quantity. target_sel Any technically possible value and retrieve the initial state G of the physical quantity. init_sel The corresponding value.
[0054] The memory element 300 may include two connections 301, 302 for applying voltage or current to adjust a physical quantity, such as Figure 3 As shown. The physical quantities of memory element 300 can be adjusted to the corresponding initial state G of the physical quantities. init_sel_i To move toward the corresponding selected target state G of the physical quantity target_sel_i Drift. The drift of this physical quantity can occur over time, such as... Figure 5 As shown. Figure 5 This shows how a physical quantity changes over time from its initial state G. init_sel_i Various values of the target state G corresponding to the physical quantity target_sel_i The corresponding drift. The value of this physical quantity is relative to... Figure 5 The y-axis of the graph is plotted logarithmically and can reflect the results of the experiment described by the following method. Figure 5 In the example, the unit of the physical quantity is microsiemens [μS], and the physical quantity can be the conductance of memory element 300. Time is shown on the x-axis of the graph. It can be observed that the corresponding drift of the physical quantity over time depends on the initial state G of the physical quantity. init_sel_i The value changes accordingly.
[0055] The method may include the following steps. In such a case... Figure 1 In the first step 101 shown, it can be done at the initial time point t. init Set the physical quantity of memory element 300 to the initial value G. init_1 This can be achieved by applying a voltage U or a current I between the two connections 301 and 302. By applying voltage U or current I, the memory element 300 can be programmed, that is, the memory element 300 can change its internal state, causing the values of physical quantities to change. For example, the crystal percentage of the memory element 300 can be changed when voltage U or current I is applied. To set the physical quantity of the memory element to an initial value G... init_1 It can measure the physical quantities of memory element 300. In response to setting the physical quantities of the memory element to an initial value G... init_1 The voltage U or current I can be disconnected. Disconnecting the voltage U or current I can cause the physical quantities of the memory element 300 to drift over time. This may be caused by thermal effects and / or inherent structural relaxation.
[0056] In such Figure 2 In the second step 102 shown, the actual value G of the physical quantity of the memory element can be measured after a given time period ΔT has elapsed. act_1 Wherein, the given time interval ΔT starts from the initial time point, such as... Figure 4 As shown. The given time interval that has elapsed is at the actual time point t. act End. This can be done at the actual time point t. act The actual value G of the physical quantity of the memory element 300 is measured. act_1 .
[0057] In such Figure 2 In the third step 103 shown, the initial value G can be set in the third step. init_1 and the actual value of the physical quantity G act_1 These values are stored in database 600. These values can be stored in database 600 as corresponding values (e.g., in the form of the first dataset of database 600). The actual value G of the physical quantity. act_1 It can be stored in database 600, so that the initial value G init_1 The actual value G assigned to the corresponding physical quantity act_1 ,vice versa.
[0058] Steps 101, 102, and 103 can be repeated multiple times. In each repetition of the first step, the physical quantity of the memory element 300 can be set to a different initial value G. init_i Furthermore, in each repetition, in the third step 103 of the repetition, the initial value G of the physical quantity is...init_i With the actual value G of the physical quantity act_i Different pairs can be stored in database 600 as additional datasets. Figure 6 The database displays different pairs or additional datasets in the form of 600 rows.
[0059] Figure 5 An example of the method is shown, in which the actual value G of the physical quantity in the second step 102 can be measured at a first time point. act_i Wherein, the time span between the initial time point and the first time point is equal to the given time interval. Therefore, in this example, the actual time point t... act Each repetition of the second step 102 can be the same, and in this case, it can be equal to the first time point.
[0060] In fact, a given time period ΔT can be adapted to the future use of memory element 300. For example, when setting memory element 300 to the corresponding initial state G of a physical quantity. init_sel After the first time span has elapsed, memory element 300 can be used. In this example, the first time span can be equal to a given time period ΔT. When the physical quantity of memory element 300 is in a drift state, the use of memory element 300 (i.e., future use) can be reading out the corresponding selected target state G of the physical quantity of memory element 300. target_sel The information is stored in the form of [the form of the memory element]. In the drift state, the physical quantity of memory element 300 is approximately equal to the selected target state G of the physical quantity of memory element 300. target_sel More specifically, the memory element 300 can be used at a point in time when it is set to the corresponding initial state G of the physical quantity. init_sel The time span between the point in time and the point in time of use is equal to the given time period ΔT. In this case, the given time period ΔT can be adapted to the point in time of use.
[0061] In another example, the actual time point t act The time point t can differ between one repetition of step 102 and another. However, for each repetition of step 102, the actual time point t act The time span between the initial time point and the given time period ΔT can be greater than the given time interval. This example of the method could include selecting the actual time point for the measurement in step 102. tact So that the actual value of the physical quantity G act_i The change over time is below a given threshold.
[0062] In such Figure 1In the further step 104 shown, the initialization function 200 can be designed based on the database 600. This can be achieved by executing... Figure 7 The first function 710 shown approximates the design of the initialization function 200. The first function 710 can convert the actual value G of the physical quantity... act_i Each actual value G in act_i The corresponding initial value G mapped to the physical quantity init_i The first function 710 can be discrete and can be derived from the database 600. In one example, the first function 710 can include only the values stored in the database 600 as acceptable independent variables and function values. In other words, an approximation can be performed based on the values stored in the database 600. Therefore, the first function 710 can be completely described by the values stored in the database 600. For clarity, in Figure 7 In the diagram, the first function 710 is shown as a dashed line. Similarly, for clarity, the visual representation 720 of the initialization function 200 is plotted below the first function 710. Typically, approximations can be performed such that the initialization function 200 may include values stored in the database 600. Thus, in most cases, the visual representation 720 of the initialization function 200 can match... Figure 7 The first function 710 is shown in the diagram.
[0063] Initialization function 200 can initialize each actual value G of the physical quantity. act_i The corresponding approximate value G mapped to the physical quantity approx_i Each approximation G of the physical quantity approx_i It can approximate the corresponding actual value G of the physical quantity act_i The corresponding initial value G of the physical quantity init_i The initialization function 200 may include parameters to approximate the first function 710. For example, the initialization function 200 may be a polynomial and may be described as follows: Where f(G) act_i ) can be an approximation of the physical quantity G approx_i And it can be a polynomial a j The j-th parameter or coefficient.
[0064] An approximation of the first function 710 can be performed so that all approximations of the physical quantity G can be used. approx_i and the corresponding initial value G of the physical quantity init_i The established root mean square error can be reduced. The initialization function 200 can be provided by a trained neural network. The trained neural network can approximate the first function 710.
[0065] In one example, the initialization function 200 can be time-independent. According to another example, the initialization function 200 can be a power function, which includes a corresponding selected target state G for a changeable physical quantity. target_sel The exponent of the power function and the corresponding initial state G of the physical quantity init_sel As the function value of a power function.
[0066] For example, the initialization function can be equal to: f(G) = a*e -b*G +c, where G is the corresponding selected target state G of the changeable physical quantity. target_sel f(G) is the corresponding initial state G of the physical quantity. init_sel And a, b, and c are the coefficients of the initialization function.
[0067] In another example, the method may also include measuring an additional actual value G of a physical quantity of the memory element. act_f_1_1 and the actual time period ΔT f_1_1 The actual time period ΔT f_1_1 This is due to the difference between the initial time point and another actual time point t in sub-step 102.1 of the second step 102. act_f_1_1 The time interval is limited. In another sub-step 102.2 of the second step 102, the other actual value G of the physical quantity is... act_f_1_1 and the actual time period ΔT f_1_1 It can be stored Figure 8 The second database 800 shown can include the values of the database 600. In one example, another actual value G of the physical quantity... act_f_1_1 and the actual time period ΔT f_1_1 It can be stored in database 600.
[0068] Sub-steps 102.1 and 102.2 of the second step 102 can be repeated simultaneously from the initial time point back to the past. By repeating sub-steps 102.1 and 102.2, multiple different additional actual values G of the physical quantity are obtained. act_f_i_j and the corresponding actual time period ΔT f_i_j It can be stored in the second database 800. With each repetition of sub-steps 102.1 and 102.2, the value of j can be increased by one, such as... Figure 4 As shown.
[0069] With each repetition of step 102, the value of i can increase by one. In fact, as... Figure 4 As shown, in each repetition of the second step 102, the corresponding actual time period ΔT f_i_jThey can be the same. However, in another example, the actual time interval ΔT corresponds to the change from one repetition of step 102 to another. f_i_j They can be different.
[0070] Another actual value of the physical quantity G act_f_i_j and the corresponding actual time period ΔT f_i_j Each can be stored as a pair of corresponding values in database 800. Additionally, the other actual value G of the physical quantity... act_f_i_j and the corresponding actual time period ΔT f_i_j It can be stored in database 800 so that it can be used as a starting point to retrieve other actual values G of the physical quantity. act_f_i_j and the corresponding actual time period ΔT f_i_j The corresponding initial value G init_i Another actual value G can be assigned to the physical quantity act_f_i_j and the corresponding actual time period ΔT f_i_j And vice versa.
[0071] For example, database 800 can include different initial values G. init_i The two corresponding rows of the data entries, such as Figure 8 As shown. The data entries in these two corresponding rows may include additional actual values G of the physical quantity. act_f_i_j and the corresponding actual time period ΔT f_i_j .
[0072] Given a second database 800, one or more additional initialization functions can be designed based on the second database 800.
[0073] In one example, for each initial value G of the physical quantity init_i Design the corresponding time-related initialization function f i The corresponding time-dependent initialization function can represent the physical quantities of memory element 300 from their corresponding initial state G. init_i The drift is time-dependent. This can be based on the corresponding initial value of the physical quantity, G. init_i The two rows of data entries are used to design the initialization function for each time-related function. Figure 5 The time-dependent initialization functions f1, ..., f are shown in the figure. i ,..f n .
[0074] According to another example, the method may also include designing a global initialization function 900. The global initialization function 900 may represent a corresponding selected target state G of the physical quantities of the memory element 300. target_selThe initial state G corresponding to the physical quantity of memory element 300 init_sel The relationship between them, and the setting of the physical quantities of the memory elements to the corresponding initial state G. init_sel The selected time period ΔT sel The selected elapsed time period can depend on the predefined future use of the memory element 300. The global initialization function 900 can include the corresponding selected target state G of the physical quantity. target_sel and the selected time period ΔT sel The initial state G, which is the independent variable and includes the physical quantity, is... init_sel As a function value. The design of the global initialization function 900 can be based on time-dependent initialization functions f1, ... f i ,..f n And then it was executed.
[0075] For example, time-dependent initialization functions f1, ..., f can be used. i ,..f n The corresponding initial value G of the physical quantity init_i To train a neural network. A neural network can include a first input, a second input, and a first output. In one example, the i-th batch of training data used to train the neural network can include a corresponding time-dependent initialization function f. i The independent variable and function value, and the corresponding initial value G of the physical quantity init_i During network training, the relevant initialization function f at time i is... i The function values can each be used as the corresponding target output values for the first output. Furthermore, the corresponding value ΔT for the selected elapsed time period... sel (That is, the time-related initialization function f of time i) i The corresponding independent variables can each be used as corresponding values for the first input. For all changes in the first input and first output during training, the corresponding initial value G of the physical quantity is... init_i A constant input value that can be used as a second input.
[0076] Figure 10 The diagram depicts an integrated circuit 1000 (IC 1000), which includes a neuromorphic neuron device 1001 (NNA 1001) and... Figure 13 The diagram shows a cross-array 700 of memristors 701. IC 1000 can be implemented as a CMOS circuit. CMOS circuits can include digital and / or analog circuits.
[0077] The NNA 1001 can be configured to receive input signal streams x(tn)…x(t-3), x(t-2), x(t-1), x(t), such as Figure 11As shown. These input signals can form a time series. The current input signal of the NNA 1001 can be signal x(t). One or more previously received input signals can be signals x(tn)…x(t-3), x(t-2), x(t-1). Each input signal can correspond to a value, such as a floating-point number. If the NNA 1001 is implemented as an analog circuit, then the input signal can be current. If the NNA 1001 is implemented as a digital circuit, then the input signal can be binary encoded.
[0078] Figure 12 A neural network 30 is illustrated. The neural network 30 may include an input layer 31 comprising k inputs, such as in1, in2, ..., ink. Furthermore, the neural network 30 may include a first hidden layer 32 comprising p neurons, such as neurons n11, n12, n13, ..., n1p. Additionally, the neural network 30 may include a second hidden layer 33 comprising m neurons, such as neurons n21, n22, n23, ..., n2m. An NNA 1001 may simulate a neuron in an actual layer of the network 30, wherein the NNA 1001 may receive the output values of neurons in previous layers of the network 30. The previous layer may be the first hidden layer 32. The actual layer may be the second hidden layer 33.
[0079] The neural network 30 can be configured to process input signals, such as input signals in1(t), in2(t), ..., ink(t). For example, each of the signals in1(tn)..., in1(t-1), in1(t), in2(tn)..., in2(t-1), in2(t), ink(tn)..., ink(t-1), ink(t) can indicate the corresponding pixel of the image that can be input at the corresponding input in1, in2, ..., ink of the neural network 30 at the corresponding time steps tn, ..., t-1, t. In the following text, the input signals of the neural network 30 are referred to as the input signals of the neural network 30, and the input signals of the NNA 1001 are referred to as the input signals.
[0080] Each of the input signals x(tn)…x(t-3), x(t-2), x(t-1), x(t) can be generated by IC 1000 such that each of these input signals can be equal to the scalar product of the first vector and the second vector. Each entry in the first vector can represent the output value of a neuron (e.g., neurons n11, n12, n13…n1p of a previous layer (e.g., the first hidden layer 32) of the neural network 30) at the corresponding time step tn,…,t-3,t-2,t-1,t. These output values can be floating-point numbers, and at the corresponding time steps tn, ..., t-3, t-2, t-1, t, the output value of the first neuron n11 of the previous layer can be called out11(tn)...out11(t-3), out11(t-2), out11(t-1), out11(t), the output value of the second neuron n12 of the previous layer can be called out12(tn)...out12(t-3), out12(t-2), out12(t-1), out12(t), the output value of the third neuron n13 of the previous layer can be called out13(tn)...out13(t-3), out13(t-2), out13(t-1), out13(t), and the output value of the p-th neuron n1p of the previous layer can be called out1p(tn)...out1p(t-3), out1p(t-2), out1p(t-1), out1p(t).
[0081] The entries in the second vector can each represent a weight value, for example, w11, w12, w13, ..., w1p, indicating the strength of the connection between the neuron that the NNA 1001 can simulate and the corresponding neurons in the previous layer (e.g., neurons n11, n12, n13, ..., n1p). Similarly, if the NNA 1001 can simulate neurons n2i in the actual layer, then the entries in the second vector can each be weight values wi1, wi2, wi3, ..., wip.
[0082] In one example, NNA 1001 can simulate the first neuron of the actual layer (e.g., neuron n21), and thereafter can simulate the second neuron of the actual layer (e.g., neuron n22), and so on, and can simulate the m-th neuron of the actual layer (e.g., neuron n2m).
[0083] If the NNA1001 can simulate the first neuron n21 of the second hidden layer 33, then the current input signal can be x(t) = w11*out11(t) + w12*out12(t) + w13*out13(t) + ... + w1p*out1p(t). Therefore, one of the previously received input signals x(tn) can be x(tn) = w11*out11(tn) + w12*out12(tn) + w13*out13(tn) + ... + w1p*out1p(tn). Of course, one of the output values of the neurons in the previous layer can be zero. This can occur frequently when the neurons in the previous layer are spike neurons.
[0084] According to another example, NNA 1001 can simulate one neuron (e.g., neuron n11) in the neurons of the first hidden layer 32. In this case, the current input signal can be x(t) = w011*in1(t) + w012*in2(t) + w013*in3(t) + ... + w01k*ink(t). Therefore, one of the input signals in the previously received input signal x(tn) can be x(tn) = w011*in1(tn) + w012*in2(tn) + w013*in3(tn) + ... + w01k*ink(tn).
[0085] NNA 1001 can be configured to generate its current output signal based on the current input signal. For example, NNA 1001 may include an activation function, such as a sigmoid function or a modified linear unit, to generate the current output signal. The current input signal can be used as the input signal for activating the function. In one example, NNA 1001 can be configured to generate the current output signal based on the current input signal and a previously received input signal. The current output signal can serve as the basis for analog network 30, specifically generating the output signal of IC 1000 that reflects the behavior of analog network 30.
[0086] Figure 13 The cross-array 700 of memory element 701 is described in detail. Memory element 701 can be a resistive memory element (or a resistive processing unit (RPU) that may include multiple resistive memory elements), and may also be referred to hereinafter as memristor 701. Memristor 701 can be used within IC 1000 for the weights W of neural network 30. ij Provides local data storage. Figure 13 It is a two-dimensional (2D) graph of a cross array 700, which can, for example, perform matrix-vector multiplication as weights W. ij The function. The cross array 700 can consist of a set of conductive rows 7021, 7022…702…n and can be used with conductive line 702 1-n An intersecting set of conductive lines 7081, 7082...708 m The set. Column line 708 1-m Can be used with line 702 1-n The intersecting area is Figure 13 The point is shown as an intersection and may be referred to as an intersection hereinafter. IC 1000 can be designed such that column line 708 is located at the intersection. 1-m With line 702 1-n There is no electrical contact between them. For example, line 708. 1-m It can be guided at the intersection to line 702 1-n Above or below.
[0087] In the region of the intersection, memristor 701 can be positioned relative to column line 708. 1-m Hexing Line 702 1-n And arranged so that if the inputs of the cross switch can be connected to 7031, 7032, 703... n …apply and thereby can be applied to line 702 1-n Apply the corresponding voltages v1…v n Then through each memristor 701 ij A single current I can flow ij .exist Figure 13 The memristor 701 is shown as a resistive element, each resistive element having its own adjustable / updatable resistive conductance, depicted as G. ij Where i = 1..m and j = 1..n. Therefore, in this example, each conductance G ij This indicates the corresponding memristor 701 ij The corresponding physical quantity. Each resistive conductance Gij can correspond to the corresponding weight W of the neural network 30. ij .
[0088] 708 per column line i You can connect 7031, 7032...703 to the corresponding inputs. n Apply the corresponding voltages v1...v n The corresponding memristor 701 will be used. i1 701 i2 ...701 in The single current I generated in il I i2 ...I in Add them together. For example, such as Figure 13 As shown, by column line 708 i Current Ii It is based on equation I i =v1·G i1 +v2·G i2 +v3·G i2 +…+v n ·G in The first output current I1 generated by column line 7081 is based on the equation I1 = v1·G. 11 +v2·G 12 +v3·G 13 +…+v n ·G 1n Therefore, array 700 multiplies the value stored in memristor 701 by the voltage v. 1-n The defined row input is used to compute matrix-vector multiplication. Therefore, a memristor 701 can be used. ij The relevant row or column lines of array 700 are added to each memristor 701 of array 700. ij Perform a single multiplication locally v i ·G ij These currents I 2-m This can be referred to as the additional output current in the following text.
[0089] Figure 13 The cross-array 700 can, for example, compute the multiplication of a vector x with a matrix W. The matrix W can include entries W... ij The entries W of matrix W ij This can be mapped to the corresponding conductivity of the cross-shaped array, as follows: Among them G max The conductivity range is given by the cross-array 700, and W max The selection depends on the size of matrix W. The entries in matrix W can be equal to the weights W of the neural network 30. ij Or wij, as described above. The vector x can correspond to voltages v1…v n IC 1000 can be configured to output corresponding voltages v1…v n A function that generates the corresponding output values out11(t), out12(t), out13(t)...out1p(t) of neurons in the previous layer (e.g., the first hidden layer 32).
[0090] Figure 13 The resistive memory element 701 of IC 1000 is shown. 11 701 12 …701 1n An example of the first component 704. The first component 704 may include methods for directing input connections 7031, 7032...703. n Apply the corresponding voltages v1…vn Input connections 7031, 7032...703 n In the corresponding resistive memory element 701 11 701 12 …701 1n A single current I is generated in 11 I 12 ... I 1n And the first output connection 7051, used to output the first output current I1. Memristor 701 11 701 12 …701 1n They can be connected to each other so that the first output current I1 is a single current I. 11 I 12 ... I 1n The sum of all. Storage element 701 11 701 12 …701 1n This connection can be made by line 702 1-n The first column line 7081 is provided. The value of the first output current I1 can represent the value of the first scalar product, which is used to calculate the output value of the neural network 30 by means of the propagation of the value through the layers of the network 30. This first scalar product can be, for example, equal to x(t) = w11*out11(t) + w12*out12(t) + w13*out13(t) + ... + w1p*out1p(t) or x(t) = w011*in1(t) + w012*in2(t) + w013*in3(t) + ... + w01k*ink(t), or a multiple or fraction thereof. In the former case, the NNA 1001 can simulate neuron n21, and in the latter case, neuron n11. Furthermore, in the former case, the number of rows n can be equal to p, and in the latter case, the number of rows n can be equal to k.
[0091] The first output connection 7051 of the first component 704 can be coupled to input 13 of the NNA 1001. The IC 1000 can be configured to generate the current input signal x(t) based on the first output current I1. In one example, the NNA 1001 can be configured to process the input signal x(t) as an analog signal. In this case, the first output current I1 can be the current input signal x(t).
[0092] In another example, IC 1000 can be configured to generate the current input signal x(t) based on the first output current I1 using an analog-to-digital converter 706 (ADC 706). In one example, NNA 1001 may receive the current input signal x(t) solely from the first output connection 7051. This example could relate to an application where NNA 1001 can simulate the output neurons of the output layer 34 of neural network 30. In this example, additional column lines 708 may not be required. 2-m .
[0093] In cases where the IC1000 can be used to simulate a network 30 comprising layers with more than one neuron (e.g., a first hidden layer 32 or a second hidden layer 33), more than one column line of the crossover switch 700 is required. Column line 708 1-m The number can be equal to the number of neurons m that IC1000 can simulate in that layer. (Line 702) 1-n The number of rows can be equal to the number of neurons in the previous layer of network 30. If the previous layer is input layer 31, the number of rows n can be equal to k. If the previous layer is the first hidden layer 32, the number of rows n can be equal to p.
[0094] Figure 14 This is a flowchart of a method for configuring a storage device, which includes memory elements having variable physical quantities, such as one or more memristors 701 in a cross-array 700. ij The crossbar array 700 can be a storage device. This method, referred to below as the setting method, may include setting physical quantities of memory elements, such as one or more memristors 701 of the crossbar array 700. ij The conductivity. This setting method may include the following steps.
[0095] In the first step 141 of this setting method, the target state of the physical quantity can be selected. Referring to the above use case, each RME 701 of the cross array 700 ij The corresponding target state of conductance can be equal to G. ij In order to utilize RME 701 ij The conductivity value provides the weights W of the neural network 30. ij The expression .
[0096] In the second step 142 of this setting method, the physical quantity (RME 701) can be calculated using the initialization function. ij The initial state of the electrical conductance. This initialization function can depend on the target state of the physical quantity. For example, the initialization function 200 could be as follows: Figure 7 The visual representation 720 of the initialization function 200 shown. Referring to the above use case, each RME 701 ij The conductivity Gij The corresponding target states can be set one after another to equal to Figure 7 The selected target state G is shown in the diagram. target_sel For each RME 701 ij The initialization function 200 can be used based on the selected target state G. target_sel To calculate the corresponding RME 701 ij The corresponding initial state G of the conductance init_sel In the following text, each RME 701 ij The conductivity G init_sel The corresponding initial state can be called G. ij_init .
[0097] In the third step 143 of this setting method, the physical quantity can be set to its calculated initial state. Referring to the above use case, each RME 701 ij The conductance can be set to the corresponding initial state G of the conductance. ij_init This can be achieved by sending a message to each RME 701. ij This is achieved by applying a programmed voltage or current. This can be done with each RME 701. ij The conductivity is set to the corresponding initial state G of the conductivity. init_sel The time point mentioned below may be referred to as the setting time point.
[0098] After the third step 143 of the setting method, the physical quantity (e.g., each RME701) ij The value of conductance can be obtained with respect to time from the corresponding initial state of the physical quantity (e.g., conductance G). ij_init ) toward the corresponding target state of the physical quantity (e.g., each RME 701) ij The conductivity G ij ) drift (e.g., decay), similar to Figure 5 The corresponding curve in the chart. In one example, each RME 701 ij The conductivity, after a given time period ΔT has elapsed since the set time point, can be in a drifting (especially decaying) state. Each RME 701 ij The drift state of the conductance can be approximately equal to each RME 701 ij The conductivity G ij The corresponding target state. For example, each RME 701 in the decay state. ij The conductance value can deviate from each RME 701 ij The conductivity G ij The corresponding target state is less than 10%. According to another example, each RME 701 in the decay state... ij The conductance value can deviate from each RME 701ij The conductivity G ij The corresponding target state is less than one percent.
[0099] Therefore, the corresponding RME 701 ij It can be configured to be used for RME 701 ij The corresponding conductance is set to the corresponding initial state G. ij_init And including RME 701 ij The corresponding conductance from the corresponding initial state G ij_init The corresponding drift to the corresponding drift state. The corresponding initial state G of the corresponding conductance can be calculated by the processor using the corresponding initialization function. ij_init In one example, for each RME 701 ij The corresponding initialization functions can be different. In another example, for each RME 701 ij The corresponding initialization functions can be the same (e.g., initialization function 200). The processor can be an external processor or can be implemented on IC 1000. The processor can store the parameters or coefficients of the initialization function so as to perform initialization based on each RME701. ij The conductivity G ij The corresponding target state is used to calculate each RME 701 ij The corresponding initial state G ij_init .
[0100] The setting method may further include measuring the elapsed time from an initial time point when the conductance is set to the initial state calculated for that conductance to an actual time point. Furthermore, the setting method may include comparing the measured elapsed time with another given time period. This other given time period may depend on the use of memory elements, for example, on the use of the crossbar array 700. The setting method may include releasing the memory elements for operation if the measured elapsed time is greater than the other given time period.
[0101] For example, you can avoid connecting 7031, 7032...703 to the input. n Apply voltage v 1-n 703n until a time greater than the other given time interval has elapsed. Or, in other words, if the time elapsed is greater than the other given time interval, then the voltage v... 1-n It can be applied to input connections 7031, 7032...703 n In one example, the voltage v 1-n It can only be applied to input connections 7031, 7032...703 when the elapsed time is greater than the other given time interval. n .
[0102] This additional given time period can correspond to the aforementioned given time period ΔT. Thus, knowledge of the experiment used to retrieve the initialization function 200 can be used. In most cases, the given time period ΔT can be chosen such that further drift of the physical quantity over time (e.g., further decay of conductance) after the given time period ΔT has elapsed can be low compared to the drift of the physical quantity over time (e.g., decay of conductance) directly after it has been programmed to its initial state.
[0103] In one example, it can be based on each RME 701 ij The conductivity G ij The corresponding target state, and each RME 701 based on the global initialization function 900. ij The corresponding selected time point of the operation is used to calculate each RME 701. ij The corresponding initial state G of the conductance ij_init In one example, each RME 701 ij The corresponding selected time points for the operations can be equal. In another example, each RME 701 ij The corresponding selected time points for each operation can be different from each other. If each RME 701 can be known in advance... ij If this were the case for each corresponding point in time during the operation, it could be useful.
[0104] For example, a multi-core architecture may include multiple cores, each of which can be designed as an IC1000. A second core in the core can be configured to simulate a second hidden layer 33, and a first core in the core can be configured to simulate a previous layer (e.g., a first hidden layer 32). Since the simulation of network 30 can begin with the simulation of the first hidden layer 32 and can progress with the simulation of the second hidden layer 33, the first usage point of the first core can be earlier than the second usage point of the second core. Therefore, in one example, the RME 701 of the first core... ij The corresponding conductance can be set as the corresponding initial state G of the conductance. ij_init So that the first core RME 701 ij Each corresponding conductance reaches its conductance G ij The corresponding target state can be compared to the second core's RME 701. ij Each corresponding conductance reaches its conductance G ij The corresponding state is early.
[0105] This document describes aspects of the invention with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0106] The present invention can be a system, method, and / or computer program product. The computer program product may comprise a computer-readable storage medium (or multiple computer-readable storage media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.
[0107] A computer-readable storage medium can be a tangible device capable of retaining and storing instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital universal disc (DVD), memory sticks, floppy disks, mechanical encoding devices (such as punched cards or raised structures in grooves with instructions recorded thereon), and any suitable combination of the foregoing. As used in this text, a computer-readable storage medium should not be construed as a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.
[0108] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network) to an external computer or external storage device. The network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the corresponding computing / processing device.
[0109] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and conventional procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuit devices (including, for example, programmable logic circuit devices, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs)) may execute the computer-readable program instructions by utilizing state information from the computer-readable program instructions to personalize the electronic circuit devices in order to perform aspects of the invention.
[0110] Aspects of the invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0111] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more boxes of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium capable of directing a computer, programmable data processing apparatus, and / or other devices to operate in a particular manner, such that the computer-readable storage medium having the instructions stored therein includes an article of writing comprising instructions for implementing aspects of the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0112] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device that causes a series of operational steps to be performed on the computer to produce a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0113] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. Each block in a flowchart or block diagram may represent a portion of a module, segment, or instruction, including one or more executable instructions for implementing a specified logical function(s). In some alternative implementations, the functions marked in the blocks may occur in a different order than indicated in the figures. For example, depending on the functions involved, two consecutively shown blocks may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order. It will also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action, or performs a combination of dedicated hardware and computer instructions.
Claims
1. An integrated circuit including a memory element comprising a modifiable physical quantity for storing information, the physical quantity being in a drift state, the memory element being configured to set the physical quantity to an initial state, wherein the memory element includes a drift of the physical quantity from the initial state to the drift state, wherein the initial state of the physical quantity is computable by means of an initialization function, wherein the initialization function depends on a target state of the physical quantity, and the target state of the physical quantity is substantially equal to the drift state of the physical quantity, wherein the initialization function is a power function, the power function including the target state of the physical quantity as the exponent of the power function and the initial state of the physical quantity as the function value of the power function.
2. The integrated circuit of claim 1, wherein the corresponding target state of the physical quantity of the corresponding memory element is adapted to the use of the integrated circuit.
3. The integrated circuit of claim 1, further comprising a neuromorphic neuron device for simulating a layer of a neural network, the neuromorphic neuron device including an input connection, wherein the input connection is connected to an output connection of the first component.
4. An integrated circuit including a first component of memory elements, the first component of the memory elements including a connection and at least one output connection, the connection being configured to apply a corresponding voltage to a corresponding connection to generate a single current in a corresponding memory element, the at least one output connection being configured to output an output current, the memory elements being interconnected such that the output current is the sum of the single currents, wherein the integrated circuit is configured to generate the output current based on the applied voltage, wherein each memory element includes a corresponding variable conductance, the corresponding conductance being in a corresponding drift state, and the corresponding memory element being configured to set the corresponding conductance to a phase. The corresponding initial state, wherein the corresponding memory element includes the corresponding conductance from the corresponding initial state to the corresponding drift state, and the corresponding initial state of the corresponding conductance is computable by means of a corresponding initialization function, wherein the corresponding initialization function depends on the corresponding target state of the corresponding conductance, and the corresponding target state of the corresponding conductance is substantially equal to the corresponding drift state of the corresponding conductance, wherein the corresponding initialization function is a power function, the power function including the corresponding target state of the conductance as the exponent of the power function, and the corresponding initial state of the conductance as the function value of the power function.
5. The integrated circuit of claim 4, wherein the corresponding target state of the conductance of the corresponding memory element is adapted to the use of the integrated circuit.
6. The integrated circuit of claim 5, further comprising a neuromorphic neuron device for simulating a layer of a neural network, the neuromorphic neuron device including an input connection, wherein the input connection is connected to the output connection of the first component.
7. A computer-implemented method for configuring a storage device including memory elements, the memory elements comprising changeable physical quantities, the method comprising: Select the target state of the physical quantity; An initialization function is used to calculate the initial state of the physical quantity, the initialization function depending on the target state of the physical quantity; as well as The physical quantity is set as the calculated initial state of the physical quantity, wherein the initialization function is a power function, the power function including the target state of the physical quantity as the exponent of the power function, and the initial state of the physical quantity as the function value of the power function.
8. The computer-implemented method according to claim 7, further comprising: Measure the elapsed time from the initial time point of the calculated initial state where the physical quantity is set to the physical quantity to the actual time point; The measured elapsed time is compared with a given time period, which depends on the use of the memory element; as well as If the measured elapsed time is greater than the given time period, the memory element is released for operation.
9. A computer-implemented method for designing an initialization function, the initialization function representing a relationship between a corresponding selected target state of a modifiable physical quantity of a memory element for storing information and a corresponding initial state of the physical quantity of the memory element, wherein the physical quantity of the memory element is adjustable to the corresponding initial state of the physical quantity for drifting toward the corresponding selected target state of the physical quantity, the method comprising: In the first step, the physical quantity of the memory element is set to an initial value at an initial time point; In the second step, the actual value of the physical quantity of the memory element is measured after a given elapsed time period, wherein the given elapsed time period starts from the initial time point; In the third step, the initial value and the actual value of the physical quantity are stored in the database; Repeat the first step, the second step, and the third step, and set the physical quantity of the memory element to a different initial value each time the first step is repeated, so as to store multiple different pairs of the initial value and the actual value of the physical quantity in the database; as well as The initialization function is designed based on the database, wherein the initialization function is a power function, and the power function includes the corresponding selected target state of the changeable physical quantity as the exponent of the power function, and the corresponding initial state of the physical quantity as the function value of the power function.
10. The computer-implemented method of claim 9, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed at a first time point, wherein the time span between the initial time point and the first time point is equal to the given time period.
11. The computer-implemented method of claim 9, wherein the given time period is adapted to future use of the memory element.
12. The computer-implemented method of claim 9, wherein if the actual value of the physical quantity changes less than a given threshold over time, the measurement of the actual value of the physical quantity of the memory element is performed in the second step.
13. The computer-implemented method of claim 9, wherein the initialization function is time-independent.
14. The computer-implemented method according to claim 9, wherein the initialization function is equal to: ,in It is the corresponding selected target state of the changeable physical quantity. It is the corresponding initial state of the physical quantity, and , and These are the coefficients of the initialization function.
15. The computer-implemented method according to claim 9, further comprising: Measure additional actual values and actual time periods of the physical quantities of the memory element, the actual time period being defined by the elapsed time between the initial time point and the actual time point in the sub-step of the second step; In another sub-step of the second step, the additional actual value of the physical quantity and the actual time period are stored in the database; As time elapses from the initial time point, the sub-steps of the second step and the additional sub-steps are repeated to store multiple different additional actual values of the physical quantity and their corresponding actual time periods in the database. as well as The initialization function is designed based on the database.
16. The computer-implemented method of claim 15, further comprising designing a corresponding time-dependent initialization function for each initial value of the physical quantity, the corresponding time-dependent initialization function representing the time-dependent drift of the physical quantity of the memory element from the corresponding initial state of the physical quantity of the memory element.
17. The computer-implemented method of claim 15, further comprising designing the initialization function such that: the initialization function represents a relationship between a corresponding selected target state of the changeable physical quantity of the memory element and a corresponding initial state of the physical quantity of the memory element, and a selected elapsed time period after setting the physical quantity of the memory element to the corresponding initial state, the selected elapsed time period depending on a predefined future use of the memory element.
18. A computer system for designing an initialization function, the initialization function representing a relationship between a corresponding selected target state of a modifiable physical quantity of a memory element for storing information and a corresponding initial state of the physical quantity of the memory element, wherein the physical quantity of the memory element is adjustable to the corresponding initial state of the physical quantity for drifting toward the corresponding selected target state of the physical quantity, the computer system comprising: One or more computer processors; One or more computer-readable storage media; as well as Program instructions, stored on the one or more computer-readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising: Program instructions for setting the physical quantity of the memory element to an initial value at an initial time point in the first step; Program instructions for measuring, in the second step, the actual value of the physical quantity of the memory element after a given elapsed time period, wherein the given elapsed time period begins from the initial time point; Program instructions for storing the initial and actual values of the physical quantity in the database in the third step; Program instructions for repeating the first step, the second step, and the third step, and for setting the physical quantity of the memory element to a different initial value at each repetition of the first step, to store multiple different pairs of the initial value and the actual value of the physical quantity in the database; and Program instructions for designing the initialization function based on the database, wherein the initialization function is a power function, the power function comprising the corresponding selected target state of the changeable physical quantity as the exponent of the power function, and the corresponding initial state of the physical quantity as the function value of the power function.
19. The computer system of claim 18, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed at a first time point, wherein the time span between the initial time point and the first time point is equal to the given time period.
20. The computer system of claim 18, wherein the given time period is adapted to future use of the memory element.
21. A computer program product for designing an initialization function, the initialization function representing a relationship between a corresponding selected target state of a changeable physical quantity of a memory element for storing information and a corresponding initial state of the physical quantity of the memory element, wherein the physical quantity of the memory element is adjustable to the corresponding initial state of the physical quantity for drifting toward the corresponding selected target state of the physical quantity, the computer program product comprising: Program instructions, the program instructions including: Program instructions for setting the physical quantity of the memory element to an initial value at an initial time point in the first step; Program instructions for measuring the actual value of the physical quantity of the memory element in the second step after a given elapsed time period, wherein the given elapsed time period begins from the initial time point; Program instructions for storing the initial and actual values of the physical quantity in the database in the third step; Program instructions for repeating the first step, the second step, and the third step, and for setting the physical quantity of the memory element to a different initial value at each repetition of the first step, to store multiple different pairs of the initial value and the actual value of the physical quantity in the database; and Program instructions for designing the initialization function based on the database, wherein the initialization function is a power function, the power function comprising the corresponding selected target state of the changeable physical quantity as the exponent of the power function, and the corresponding initial state of the physical quantity as the function value of the power function.
22. The computer program product of claim 21, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed at a first time point, wherein the time span between the initial time point and the first time point is equal to the given time period.
23. The computer program product of claim 21, wherein the given time period is adapted to future use of the memory element.
Citation Information
Patent Citations
Read Methods for Non-Volatile Memory Devices and Related Non-Volatile Memory Devices
US20150049548A1
Resistive nonvolatile memory device having cells programmed to achieve a target resistance value at a target time and writing method thereof
US9208875B2