Storage device, integrated circuit, computer implemented method, computer system and computer program (Method for designing an initialization function for programming a memory element)

JP7640192B2Active Publication Date: 2025-03-05INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021174962
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-30
Filing Date
2021-10-26
Publication Date
2025-03-05
Estimated Expiration
2041-10-26

Smart Images

  • Figure 0007640192000003
    Figure 0007640192000003
  • Figure 0007640192000004
    Figure 0007640192000004
  • Figure 0007640192000005
    Figure 0007640192000005
Patent Text Reader

Abstract

To provide a storage device, an integrated circuit, a computer implementation method, a computer system, and a computer program in which a change of a physical quantity with passage of time is reduced after setting the physical quantity to an initial value, and it is observed in an experiment that the effect depends on the initial value of the physical quantity.SOLUTION: The present disclosure relates to a storage device including a memory element. The memory element can include a variable physical quantity for storing information. The physical quantity may be in a drift state. The memory element can be configured to set the physical quantity to the initial state. Further, the memory element can include a drift of the physical quantity from the initial state to a drift state. The initial state of the physical quantity can be calculated by using 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.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates generally to the field of semiconductor memory devices. [Background technology]

[0002] Semiconductor memory devices can be classified 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 has been directed towards high endurance, data retention, low write and read latencies, and reliability, among others. Research in the field of memory devices has also described the possibility of multilevel cell operation for memory devices to store more than one bit of information per memory cell.

[0003] [Statement Regarding Prior Disclosure by the Inventor or Co-Inventors] The following disclosure is filed under 35 U.S.C. 102(b)(1)(A). [Prior art documents] [Non-patent literature]

[0004] [Non-Patent Document 1] Deep Learning Incorporating Biologically Inspired Neural Dynamics and in-memory computer,Stanislaw Wozniak,Angeliki Pantazi,Thomas Bohnstingle&Evangelos Eleftheriou,June 15,2020,pages 325-336. Summary of the Invention [Problem to be solved by the invention]

[0005] After the physical quantities are set to their initial values, the change in the physical quantities over time becomes smaller as time passes. This effect has been observed in experiments to depend on the initial values ​​of the physical quantities. [Means for solving the problem]

[0006] Various embodiments provide a storage device, an integrated circuit, a method for setting up a storage device and a method for designing an initialization function as described by the subject matter of the independent claims. Advantageous embodiments are described in the dependent claims. The embodiments of the invention can be freely combined with one another 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 drifted 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 drifted state. The initial state of the physical quantity may be calculated using 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 approximately equal to the drifted state of the physical quantity.

[0008] In another aspect, the present invention relates to an integrated circuit including a first assembly of memory elements. The first assembly of memory elements may include connections for applying corresponding voltages to the respective connections to generate a single current in the respective memory elements. Furthermore, the first assembly 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 a 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 respective alterable conductance, and the respective conductances may be in a respective drift state. The respective memory elements may be configured to set the respective conductances to a respective initial state. Furthermore, the respective memory elements may include a respective drift of the respective conductances from the respective initial state to the respective drift state. The respective initial states of the respective conductances may be calculable using a respective initialization function. The respective initialization function may depend on a respective target state of the respective conductance, and the respective target state of the respective conductances may be approximately equal to the respective drift state of the respective conductance.

[0009] In another aspect, the invention relates to a method for setting up a storage device including a memory element, the memory element including a modifiable physical quantity, the method including selecting a target state of the physical quantity, calculating an initial state of the physical quantity using an initialization function, the initialization function being dependent on the target state of the physical quantity, and setting the physical quantity to the calculated initial state of the physical quantity.

[0010] In another aspect, the present invention relates to a method for designing an initialization function. The initialization function may represent a relationship between each 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 may be adjustable to the corresponding initial state of the physical quantity in order to drift in a direction toward each selected target state of the physical quantity. 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 an actual value of the physical quantity of the memory element after a given period of time has elapsed, the given period of time elapsed starting 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, setting the physical quantity of the memory element to a different initial value each time the first step is repeated, storing several different pairs of the initial value and the actual value of the physical quantity in the database; and designing an initialization function based on the database.

[0011] 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 perform all of the steps of a method for setting up a storage device or for designing an initialization function. [Brief description of the drawings]

[0012] In the following, embodiments of the invention will be described in more detail, by way of example only, with reference to the drawings, in which:

[0013] [Figure 1] 1 is a flow diagram of a method for designing an initialization function in accordance with the present subject matter.

[0014] [Diagram 2] FIG. 13 is a diagram illustrating a data flow of an initialization function.

[0015] [Diagram 3]FIG. 1 illustrates a memory element.

[0016] [Figure 4] 4 is a graph including curves illustrating the drift of a physical quantity over time relative to its initial value after programming the memory element shown in FIG. 3;

[0017] [Diagram 5] 4 is a graph including curves each showing the drift of a physical quantity over time relative to an initial value of the physical quantity calculated based on selected target states of the physical quantities of the memory element shown in FIG. 3;

[0018] [Figure 6] A database containing pairs of initial values ​​of physical quantities and corresponding actual values ​​of the physical quantities.

[0019] [Figure 7] 1 is a graph including an initialization function.

[0020] [Figure 8] A further database comprising further sets of actual values ​​of the physical quantity, each set representing a time sequence of values ​​of the physical quantity.

[0021] [Figure 9] FIG. 13 illustrates a time-dependent initialization function.

[0022] [Figure 10] FIG. 1 illustrates an integrated circuit including a crossbar array of memristors and a neuromorphic neuron apparatus.

[0023] [Figure 11] FIG. 11 is a diagram showing the time series of input values ​​of the neuromorphic neuron device shown in FIG. 10.

[0024] [Figure 12]Schematic diagram of a neural network.

[0025] [Figure 13] FIG. 11 illustrates in more detail the memristor crossbar array shown in FIG.

[0026] [Figure 14] 1 is a flow diagram of a method for setting up a storage device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0027] The description of various embodiments of the present invention is presented for illustrative purposes, but 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 terms used in this specification are selected to best explain the principles of the embodiments, practical applications or technical improvements to the technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.

[0028] The memory element may be a capacitor, a resistor, or a resistive memory element, also referred to below as a memristor. The memristor may be a phase change memory (PCM) element, a metal oxide resistive RAM element, a conductive bridge RAM element, or a magnetic RAM element. If the memory element may be a capacitor, the physical quantity may be a charge. The charge may be alterable by charging the capacitor. If the memory element may be a memristor, the physical quantity may be the conductance of a resistive memory element (RME). The conductance of the RME may be alterable by applying a control voltage to the RME.

[0029] The value of a physical quantity, i.e. the state of a physical quantity, may correspond to stored information, e.g. the value of a variable. For example, a higher value of the physical quantity may correspond to a higher value of the variable and vice versa. In another example, a lower value of the physical quantity may correspond to a higher value of the variable and vice versa. The stored information may be a value, e.g. the value of a variable. The value may be an entry of a matrix. The physical quantity may be the conductance, charge or resistance of a memory element.

[0030] The initial state of the physical quantity may be the state of the physical quantity immediately after programming the memory element. Programming the memory element may therefore be considered as setting the physical quantity to the initial state. Setting the physical quantity may be done by applying a programming voltage or programming current to the memory element.

[0031] The term "drift" as used herein refers to a change in the value of a physical quantity over time, such as a decay or increase of the physical quantity over time. The term "drift state" as used herein refers to an altered state of a physical quantity compared to an initial state. Time has elapsed between a time when the physical quantity is in the initial state and a further time when the physical quantity is in the drift state. Furthermore, in the drift state of the physical quantity of the memory element, the change in the physical quantity over time may be less than the change in the physical quantity over time in the initial state of the physical quantity. Thus, when the physical quantity is in the drift state, information that can be represented by the actual value of the physical quantity of the memory element can be retained with greater accuracy over time. In one example, the change in the physical quantity over time in the drift state of the physical quantity may be less than 10 percent compared to the change in the physical quantity over time in the initial state of the physical quantity. In another example, the change in the physical quantity over time in the drift state of the physical quantity may be less than 5 percent, or by further example less than 1 percent compared to the change in the physical quantity over time in the initial state of the physical quantity.

[0032] Thus, after setting the physical quantity to an initial value, the change in the physical quantity over time becomes smaller as time passes. This effect has been observed in experiments to depend on the initial value of the physical quantity. The storage device may be configured to set the physical quantity of the memory element to an initial state, which can be used after the physical quantity may have reached a drift state. Thus, the storage device provides a storage device that uses the memory element with higher accuracy compared to a standard use case. A standard use case includes programming the physical quantity of the memory element, e.g. the conductance of a memristor, to an initial state, after which the memory element, e.g. the memristor, can be used immediately.

[0033] The initial states or values ​​of the physical quantities can be calculated using an initialization function, such as a look-up table, using a computer. In another example, the physical quantities can be calculated manually using an initialization function.

[0034] This advantage may also be useful in applications where the above-mentioned single currents can be generated using the respective RMEs. In one example, the voltage may be applied in the form of voltage pulses, which are constant but differ in length or number of pulses, within a time interval to perform pulse width modulation to generate the single current. In a further example, a voltage including at least two different voltage values ​​of the voltage may be applied to generate the single current. The voltage may be applied using a voltage source or a current source. The output current, which can be generated as a sum of the single currents, may be generated with greater precision. Thus, a more accurate summation can be performed at the hardware level using the respective RMEs, each with its respective conductance in its respective drift state. This may be particularly advantageous for the following applications:

[0035] According to an embodiment, the integrated circuit may further include a neuromorphic neuron device for simulating a layer of a neural network. In this embodiment, the neuromorphic neuron device may include an input connection, and the input connection may be connected to the output connection of the first assembly. Herein, the generated output current may be used as an input signal for the neuromorphic neuron device. With the RME operating with higher accuracy, the input signal for the neuromorphic neuron device may be more accurate. Thus, the neuromorphic neuron device may provide better results when applied to inference tasks.

[0036] According to one embodiment, each target state of the physical quantities of the corresponding memory elements can be adapted to a usage of the integrated circuit, which may refer to a time point at which the memory elements may be used, and if that time point is known, the physical quantities of the memory elements can be initialized such that they can reach their target state at that time point.

[0037] Utilizing knowledge of the state-dependent behavior of the drift of the physical quantities after programming the memory element may also be beneficial for the method of setting up the storage device described above: an initialization function may be used to calculate the initial states of the physical quantities, and since the initialization function depends on the target states of the physical quantities, the storage device may be set up to operate more accurately after the physical quantities reach the drift state.

[0038] According to an embodiment of the method for setting up a storage device, the method may further include measuring an elapsed time from an initial time point to an actual time point of setting the physical quantity to the calculated initial state of the physical quantity. The method may further include comparing the measured elapsed time to a given period of time, which may depend on the usage 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 period of time. This embodiment may make it possible to ensure that the storage device can be used only after a given period of time has elapsed after programming the memory element of the storage device. In other words, the embodiment prevents usage of the storage device with a relatively low accuracy.

[0039] According to an embodiment of the method for designing an initialization function, the measurement of the actual value of the physical quantity of the memory element in the second step may be performed at a first time point, with the time span between the initial time point and the first time point being equal to a given period of time. Since the second step can be repeated to store several different pairs of initial and actual values ​​of the physical quantity in the database, this embodiment may make it possible to search the values ​​in the database such that the time span between the initial time point and the measurement time point of the actual value of the physical quantity is the same for each pair. This facilitates the design of the initialization function as a time-independent function.

[0040] According to one embodiment of the method for designing the initialization function, the given time period can be adapted to a future usage of the memory element, which may include a future time point of use of the memory element, where if the future time point of use is known, the memory element may be programmed in such a way that the physical quantity can reach its target state almost exactly at the future time point of use after drifting from the programmed value.

[0041] According to an embodiment of the method for designing the initialization function, the measurement of the actual value of the physical quantity of the memory element in the second step may be performed if the change over time of the actual value of the physical quantity is below a given threshold. If the initialization function can be designed in such a way, the initial physical quantity may be calculable by using the initialization function, so that the change over time in the drift state of the physical quantity, which may be equal to or smaller than the threshold, may be included. Thus, the durability of the memory element may be improved by this embodiment.

[0042] According to an embodiment of the method for designing the initialization function, the initialization function may be time independent, which can provide a very practical initialization function since no time measurements are required to take into account the time of use or during use.

[0043] According to one embodiment of the method for designing the initialization function, the initialization function may be a power function that includes each selected target state of the modifiable physical quantities as an exponent of the power function and the corresponding initial state of the physical quantities as a function value of the power function. This embodiment can very accurately reflect the observations obtained by performing experiments on the drift of the physical quantities of the memory element. Therefore, by using the initialization function as a power function, more accurate results may be obtained when setting up the physical quantities using the initialization function.

[0044] According to one embodiment of the method for designing an initialization function, the initialization function is f(G)=a*e (-b*G)+c, where G is the selected target state of each of the changeable physical quantities, f(G) is the corresponding initial state of the physical quantities, and a, b and c are coefficients of the initialization function. This embodiment can very accurately represent the observation results obtained by performing some further experiments on the drift of the physical quantities of the memory element. Therefore, by using the initialization function according to this embodiment, the accuracy of the initialization function can be made higher.

[0045] According to one embodiment of the method for designing an initialization function, the method may further include measuring further actual values ​​and actual time periods of the physical quantities of the memory element, where the actual time period is defined by the elapsed time between an initial time point and an actual time point in a sub-step of the second step, storing the further actual values ​​and actual time periods in a database in a further sub-step of the second step, repeating the sub-step and the further sub-step of the second step as time passes from the initial time point to store several different further actual values ​​of the physical quantities and corresponding actual time periods in the database, and designing the initialization function based on the database.

[0046] This embodiment may allow designing a time-dependent initialization function. If the initialization function is time-dependent, the physical quantities may be set more accurately with respect to future usage, e.g. with respect to future usage points of the memory element. In addition, this embodiment may be beneficial in the sense that it allows obtaining as much data as possible when experiments on drift of memory elements may be performed.

[0047] According to a further embodiment of the method for designing initialization functions, the method may further comprise designing a corresponding time-dependent initialization function for each initial value of the physical quantity. The corresponding time-dependent initialization function may represent a time-dependent drift of the physical quantity of the memory element starting from a corresponding initial state of the physical quantity of the memory element. According to this embodiment, a set of several initialization functions may be designed based on a database. The several initialization functions may be used to calculate the initial values ​​of the physical quantities by interpolation.

[0048] According to a further embodiment of the method for designing an initialization function, the method may further comprise designing the initialization function such that the initialization function may represent a relationship between a selected target state of each of the changeable physical quantities of the memory element and a corresponding initial state of the physical quantities of the memory element, and a selected elapsed time period after setting the physical quantities of the memory element to the corresponding initial state. The selected elapsed time period may depend on a predetermined future usage of the memory element. This embodiment may replace the interpolation described above.

[0049] FIG 1 is a flow diagram of a method for designing an initialization function 200 as shown in FIG 2. The initialization function 200 is a function for designing a selected target state G of each of the modifiable physical quantities of a memory element 300 as shown in FIG 3. target_sel and the corresponding initial state G of the physical quantity of the memory element 300 init_sel The relationship between can be expressed as:

[0050] An example of a visual representation 720 of the initialization function 200 is shown as a solid line in the graph of FIG. 7. The x-axis of the graph represents the selected target state G target_sel The y-axis represents the possible values ​​of target_sel The corresponding initial state of the physical quantity G that can correspond to one of the possible values ​​of init_sel 2 shows the data flow for the initialization function 200. For simplicity, the selected target state G target_seland the initial state of the physical quantity G init_sel In general, the initialization function 200 is a function of the target state G target_sel may be used to select any technically possible value of init_sel The corresponding value of can be retrieved.

[0051] As shown in Fig. 3, the memory element 300 may comprise two connections 301, 302 for applying a voltage or a current to adjust a physical quantity. The physical quantities of the memory element 300 may be adjusted to a respective selected target state G target_sel_i In order to drift in the direction to the corresponding initial state G init_sel_i As shown in FIG. 5, the drift of the physical quantity may occur over time. FIG. 5 shows the initial state G init_sel_i From various different values ​​of target_sel_i 5 to the initial state G of the physical quantity. The values ​​of the physical quantities are plotted logarithmically on the y-axis of the graph in FIG. 5 and may reflect the results of an experiment described by the following method. In the example of FIG. 5, the units of the physical quantities are microsiemens [μS] and the physical quantities may be the conductance of the memory element 300. Time is shown on the x-axis of the graph. The drift of each of the physical quantities over time is a function of the initial state G of the physical quantities. init_sel_i It can be observed that this varies with the value of

[0052] The method can include the following steps: In a first step 101 as shown in FIG. init The initial value of G init_1This can be achieved by applying a voltage U or a current I between the two connections 301, 302. By applying a voltage U or a current I, the memory element 300 can be programmed, i.e. the memory element 300 can change its internal state such that the value of a physical quantity changes. For example, the crystallization rate of the memory element 300 may change upon application of a voltage U or a current I. The physical quantity of the memory element can be programmed to an initial value G init_1 The physical quantities of the memory element 300 can be measured in order to set the physical quantities of the memory element 300 to the initial values ​​G init_1 In response to setting the voltage U or the current I to 0, the voltage U or the current I may be disconnected. Disconnecting the voltage U or the current I may cause drift of physical quantities of the memory element 300 over time. This may be caused by thermal effects and / or inherent structural relaxation.

[0053] In a second step 102 as shown in FIG. 2, the actual value G act_1 may be measured in a second step after a given period of time ΔT has elapsed, which period of time ΔT starts from an initial time point, as shown in FIG. act The actual value G of the physical quantity of the memory element 300 act_1 is the actual time t act It can be measured at

[0054] In the third step 103 as shown in FIG. 2, the initial value of the physical quantity G init_1 and the actual value G act_1 can be stored in the database 600 in a third step. These values ​​may be stored in the database 600 as corresponding values, for example in the form of a first data set in the database 600. act_1 is the initial value G init_1 is the corresponding actual value of the physical quantity G act_1, and vice versa.

[0055] The first step 101, the second step 102 and the third step 103 may be repeated several times. Each time the first step is repeated, the physical quantities of the memory element 300 are reset to different initial values ​​G init_i Furthermore, in each iteration, the initial value of the physical quantity G init_i and the actual value of the physical quantity G act_i Different pairs with may be stored in the database 600 in the form of further data sets of the database 600 in a repeated third step 103. The different pairs or further data sets are shown in the form of rows of the database 600 in FIG.

[0056] FIG. 5 shows an example of the method, in which the actual value of the physical quantity G act_i The measurement of may be performed at a first time point, with the time span between the initial time point and the first time point being equal to a given period. Thus, in this example, the actual time point t act may be the same for each iteration of the second step 102, in which case it may be equal to the first time point.

[0057] In practice, the given time period ΔT can be adapted to the future use of the memory element 300. For example, the memory element 300 can be brought to a corresponding initial state G init_sel After setting the memory element 300 to the target state G, the memory element 300 can be used after a first time span has elapsed, which may be equal to a given period of time ΔT in this example. The usage, i.e. future usage, of the memory element 300 is determined by the selection of the target state G for each of the physical quantities of the memory element 300 when the physical quantities of the memory element 300 are in a drift state. target_sel In the drift state, the physical quantity of the memory element 300 moves to a selected target state G target_selMore specifically, the memory element 300 is configured to store the memory element 300 in a corresponding initial state G init_sel The time span between the time when the device is set to the saturation voltage and the time when the device is used is equal to the given time period ΔT. In this case, the given time period ΔT can be adapted to the time when the device is used.

[0058] In another example, at actual time t act may be different for each iteration of the second step 102. However, the actual time t act The time span between and the initial time point may be longer than a given period ΔT for each repetition of the second time step 102. This example of the method involves the determination of the actual value of the physical quantity G act_i t ... act The method may include selecting:

[0059] In a further step 104 as shown in Fig. 1, an initialization function 200 may be designed on the basis of a database 600. The design of the initialization function 200 may be realized by making an approximation of a first function 710 as shown in Fig. 7. The first function 710 is a function of the actual value of the physical quantity G act_i Each of these is expressed as the corresponding initial value G init_i7. The first function 710 may be discrete and may be derived from the database 600. In one example, the first function 710 may only include values ​​stored in the database 600 as permissible arguments and function values. In other words, an approximation may be made based on the values ​​stored in the database 600. Thus, the first function 710 may be completely described by the values ​​stored in the database 600. For clarity, the first function 710 is shown as a dotted line in the graph of FIG. 7. Similarly, for clarity, a visual representation 720 of the initialization function 200 is depicted below the first function 710. In general, an approximation may be made 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 may match the first function 710 shown in the graph of FIG. 7.

[0060] The initialization function 200 calculates the actual value of the physical quantity G act_i , the corresponding approximation of the physical quantity G approx_i Each approximate value of the physical quantity G approx_i are the actual values ​​of each physical quantity G act_i The initial values ​​of the physical quantities corresponding to G init_i The initialization function 200 may include parameters for approximating the first function 710. For example, the initialization function 200 may be a polynomial and may be written as follows:

number

[0061] The approximation of the first function 710 is based on the approximation of the physical quantity G approx_i and the initial values ​​of each physical quantity G init_iThe initialization function 200 may be provided by a trained neural network that may approximate the first function 710.

[0062] In one example, the initialization function 200 may be time independent. According to a further example, the initialization function 200 may be configured to initialize each selected target state G target_sel as the exponent of the power function, and the corresponding initial state G init_sel It may be a power function that includes as a function value of the power function.

[0063] For example, the initialization function is f(G)=a*e -b*G + c, where G is the selected target state G of each of the modifiable physical quantities. target_sel and f(G) is the initial state of the physical quantity G init_sel where a, b and c are coefficients of the initialization function.

[0064] In a further example, the method further comprises: act_f_1_1 and the actual period ΔT f_1_1 and measuring the actual period ΔT f_1_1 is the time between the initial time and a further actual time t in sub-step 102.1 of the second step 102 act_f_1_1 In a further sub-step 102.2 of the second step 102, a further actual value of the physical quantity G act_f_1_1 and the actual period ΔT f_1_1 may be stored in a second database 800 as shown in FIG. 8. The second database 800 may include values ​​from the database 600. In one example, further actual values ​​of the physical quantity G act_f_1_1 and the actual period ΔT f_1_1 may be stored in the database 600.

[0065] Sub-step 102.1 and further sub-step 102.2 of the second step 102 may be repeated over time from an initial point in time. By repeating sub-steps 102.1 and 102.2, several different further actual values ​​of the physical quantity G act_f_i_j and the corresponding actual period ΔT f_i_j may be stored in the second database 800. As shown in FIG. 4, each time sub-steps 102.1, 102.2 are repeated, the value of j may be increased by one.

[0066] Each time the second step 102 is repeated, the value of i can be increased by 1. In practice, the corresponding actual period ΔT f_i_j may be the same for each iteration of the second step 102, as shown in FIG. 4. However, in another example, the corresponding actual period ΔT f_i_j may be different for each iteration of the second step 102.

[0067] Further actual values ​​of the physical quantity G act_f_i_j and the corresponding actual period ΔT f_i_j may be stored in the database 800 as pairs of corresponding values. act_f_i_j and the corresponding actual period ΔT f_i_j is the further actual value of the physical quantity G act_f_i_j and the corresponding actual period ΔT f_i_j can be used as a starting point to search for the corresponding initial value G init_i , and further actual values ​​of the physical quantities G act_f_i_j and the corresponding actual period ΔT f_i_j , and vice versa.

[0068] For example, the database 800 may include different initial values ​​G init_i The data entries in the two corresponding rows can include further actual values ​​of the physical quantity G act_f_i_jand the corresponding actual period ΔT f_i_j and

[0069] Given the second database 800, one or more further initialization functions can be designed based on the second database 800.

[0070] In one example, the corresponding time-dependent initialization function f i are the initial values ​​of the physical quantities G init_i The corresponding time-dependent initialization function can be designed for the corresponding initial state G of the physical quantities of the memory element 300. init_i Each time-dependent initialization function can represent the time-dependent drift of the physical quantities of the memory element 300 starting from the respective initial value G init_i The time-dependent initialization functions f1, ..f i , ..f n is shown in Figure 5.

[0071] According to another example, the method may further include designing a global initialization function 900. The global initialization function 900 is a function that is used to design a target state G of each selected physical quantity of the memory device 300. target_sel and the corresponding initial state G of the physical quantity of the memory element 300 init_sel and the relationship between the physical quantities of the memory element and the corresponding initial state G init_sel The selected elapsed period ΔT after setting sel The selected elapsed time period ΔT can be expressed as sel may depend on a given future use of the memory element 300. The global initialization function 900 initializes each selected target state G target_sel and the selected elapsed time period ΔT as an argument sel and the corresponding initial state G of the physical quantity as a function value init_sel The design of the global initialization function 900 may include time-dependent initialization functions f1, ..f i , ..f n This can be done based on the following:

[0072] For example, a neural network can be modeled using time-dependent initialization functions f1, ..f i , ..f n and the corresponding initial values ​​of the physical quantities G init_i The neural network may include a first input, a second input, and a first output. In one example, the i-th batch of training data set for training the neural network may be trained using a respective time-dependent initialization function f i The arguments and function values ​​of and the corresponding initial values ​​of the physical quantities G init_i During the training of the network, the i-th time-dependent initialization function f i Each of the function values ​​of can serve as a target output value for each of the first outputs. sel The corresponding value of the i-th time-dependent initialization function f i can be used as the respective values ​​for the first input. init_i can be used as a constant input value of the second input for all changing values ​​of the first input and the first output during training.

[0073] Figure 10 shows an integrated circuit 1000 (IC1000) including a neuromorphic neuron device 1001 (NNA1001) and a crossbar array 700 of memristors 701 shown in Figure 13. The IC1000 can be implemented in the form of a CMOS circuit. The CMOS circuit can include digital and / or analog circuits.

[0074] The NNA 1001 may be configured to receive a stream of input signals x(tn)...x(t-3), x(t-2), x(t-1), x(t), as shown in FIG. 11. These input signals may constitute a time series. The current input signal of the NNA 1001 may be the signal x(t). The previously received input signal or signals may be the signals x(tn)...x(t-3), x(t-2), x(t-1). Each signal of the input signals may correspond to a value, for example a floating point number. If the NNA 1001 is implemented as an analog circuit, the input signal may be a current. If the NNA 1001 is implemented in the form of a digital circuit, the input signal may be binarized.

[0075] FIG. 12 illustrates a neural network 30. The neural network 30 may include an input layer 31 including k inputs, e.g., inputs in1, in2, ..., ink. Furthermore, the neural network 30 may include a first hidden layer 32 including p neurons, e.g., neurons n11, n12, n13 ... n1p. Furthermore, the neural network 30 may include a second hidden layer 33 including m neurons, e.g., neurons n21, n22, n23 ... n2m. The NNA 1001 may simulate one of the neurons of an actual layer of the network 30, where the NNA 1001 may receive output values ​​of neurons of a previous layer of the network 30. The previous layer may be the first hidden layer 32. The actual layer may be the second hidden layer 33.

[0076] The neural network 30 may be configured to process input signals of the neural network 30, 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) may represent a respective pixel of an image that may be input at a corresponding input in1, in2, ..., ink of the neural network 30 at a respective time step tn, ..., t-1, t. In the following, the input signals of the neural network 30 are referred to as input signals of the neural network 30, and the input signals of the NNA 1001 are referred to as input signals.

[0077] Each of the input signals x(tn)...x(t-3), x(t-2), x(t-1), x(t) may be generated by the IC 1000 such that each of these input signals may be equal to a scalar product of a first vector and a second vector. The entries of the first vector may represent the output value of one of the neurons of a previous layer of the neural network 30, e.g., the first hidden layer 32, e.g., neurons n11, n12, n13...n1p, at each time step tn,..., t-3, t-2, t-1, t. These output values ​​may be floating-point numbers, and are represented as output values ​​of the first neuron n11 in the previous layer, out11(tn)...out11(t-3), out11(t-2), out11(t-1), out11(t), and output values ​​of the second neuron n12 in the previous layer, out12(tn)...out12(t-3), out12(t-2), and ), out12(t-1), out12(t), the output values ​​of the third neuron n13 in the previous layer are sometimes called out13(tn)... out13(t-3), out13(t-2), out13(t-1), out13(t), and the output values ​​of the pth neuron n1p in the previous layer are sometimes called out1p(tn)... out1p(t-3), out1p(t-2), out1p(t-1), out1p(t).

[0078] The entries of the second vector may represent values ​​of weights, e.g., w11, w12, w13, ..., w1p, indicating the strength of the connection between a neuron that NNA 1001 can simulate and a corresponding neuron in a previous layer, e.g., neurons n11, n12, n13, ..., n1p, respectively. Similarly, if NNA 1001 can simulate neuron n2i in the actual layer, the entries of the second vector may be values ​​of weights wi1, wi2, wi3, ..., wip, respectively.

[0079] In one example, NNA1001 can simulate a first neuron of the actual layer, e.g., neuron n21, then can simulate a second neuron of the actual layer, e.g., neuron n22, and so on, simulating the mth neuron of the actual layer, e.g., neuron n2m.

[0080] If the NNA 1001 can simulate the first neuron n21 of the second hidden layer 33, the current input signal may be x(t)=w11*out11(t)+w12*out12(t)+w13*out13(t)+...+w1p*out1p(t). Thus, one of the previously received input signals x(tn) may be x(tn)=w11*out11(tn)+w12*out12(tn)+w13*out13(tn)+...+w1p*out1p(tn). Of course, there may be cases where one of the output values ​​of the previous layer neuron is equal to zero. This may happen frequently if the previous layer neuron is a spiking neuron.

[0081] According to another example, the NNA 1001 can simulate one of the neurons of the first hidden layer 32, for example neuron n11. In this case, the current input signal may be x(t)=w011*in1(t)+w012*in2(t)+w013*in3(t)+...+w01k*ink(t). Thus, one of the previously received input signals x(tn) may be x(tn)=w011*in1(tn)+w012*in2(tn)+w013*in3(tn)+...+w01k*ink(tn).

[0082] The NNA 1001 may be configured to generate a current output signal of the NNA 1001 based on a current input signal. For example, the NNA 1001 may include an activation function, e.g., a sigmoid or a rectified linear unit, to generate the current output signal. The current input signal may be used as an input signal of the activation function. In one example, the NNA 1001 may be configured to generate a current output signal based on the current input signal and a previously received input signal. The current output signal may serve as a basis for simulating the network 30, and in particular for generating an output signal of the IC 1000 that simulates the behavior of the network 30.

[0083] 13 shows in detail a crossbar array 700 of memory elements 701. The memory elements 701 may be resistive memory elements (or resistive processing units (RPUs) that may include multiple resistive memory elements), and may hereinafter be referred to as memristors 701. The memristors 701 store the weights W ij For this purpose, local data storage within the IC 1000 can be provided. FIG. 13 shows, for example, the weights W ij FIG. 7 is a two-dimensional (2D) diagram of a crossbar array 700 capable of performing matrix-vector multiplication as a function of n and a set of conductive row wires 702 1~n A set of conductive column wires 7081, 7082...708 may be intersected. m and a set of column wires 708. 1~m Row Wire 702 1~n The regions where the IC 1000 can intersect with the column wires 708 are shown as intersections in FIG. 1~m And wire 702 1~n For example, the column wires 708 can be designed so that there is no electrical contact between them. 1~m At the intersection, the row wire 7021~n may be guided above or below.

[0084] In the region of the intersection, the memristor 701 is connected to the column wire 708 1~m and row wire 702 1~n , so that each voltage v1...v n is applied to input connections 7031, 7032...703n of the crossbar 700, thereby causing row wires 702 1~n , each memristor 701 ij A single current I ij In FIG. 13, the memristors 701 each have a G ij Each of the conductances G ij Each memristor 701 ij Each resistive conductance G ij are the corresponding weights W of the neural network 30. ij It can respond to the following.

[0085] Each row wire 708 i are the respective voltages v1...v n The corresponding input connections 7031, 7032...703 n By applying i1 , 701 i2 …701 in A single current I is generated at i1 , I i2 …I in For example, as shown in FIG. i The current I generated by i is represented by formula I i =v1 G i1 +v2·G i2 +v3·G i2 +…+v n G inThe first output current I1 generated by the column wire 7081 follows the equation I1=v1 G 11 +v2·G 12 +v3·G 13 +…+v n G 1n Thus, the array 700 applies a voltage v 1~n , which computes the matrix-vector multiplication by multiplying the row wire inputs defined by v i G ij The Memristor 701 ij Each memristor 701 of the array 700 can be connected to a memory cell 702 via the memristors themselves as well as the associated row or column wires of the array 700. ij In the following, the current I 2~m is sometimes referred to as the further output current.

[0086] 13 may allow, for example, computing the multiplication of a vector x with a matrix W, which has entries W ij The entries W of the matrix W can be ij can be mapped to the corresponding conductance of the crossbar array as follows:

number

[0087] FIG. 13 shows the resistive memory element 701 of IC1000. 11 , 701 12 …701 1n 7 shows an example of a first assembly 704 of the resistive memory element 701. The first assembly 704 includes a first resistive memory element 701 11 , 701 12 …701 1n A single current I 11 , I 12 …I 1n To generate the corresponding voltages v1…v n the respective input connections 7031, 7032...703 n Input connections 7031, 7032...703 for applying n and a first output connection 7051 for outputting a first output current I1. 11 , 701 12 …701 1n The first output current I1 is a single current I 11 , I 12 …I 1n The memory elements 701 may be connected to each other so that 11 , 701 12 …701 1n Such connections between the row wires 702 1~n and the first column wire 7081. The value of the first output current I1 may represent the value of a first scalar product for calculating the output value of the neural network 30 with the propagation of the value through the layers of the network 30. The first scalar product may 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 may simulate a neuron n21, and in the latter case, the neuron n11. Furthermore, in the former case, the number of row wires n may be equal to p, and in the latter case, the number of row wires n may be equal to k.

[0088] The first output connection 7051 of the first assembly 704 may be coupled to the input 13 of the NNA 1001. The IC 1000 may be configured to generate a current input signal x(t) based on the first output current I1. In one example, the NNA 1001 may be configured to process the input signal x(t) as an analog signal. In that case, the first output current I1 may be the current input signal x(t).

[0089] In another example, IC 1000 may be configured to generate a current input signal x(t) based on the first output current I1 using analog-to-digital converter 706 (ADC 706). In one example, NNA 1001 may receive the current input signal x(t) only from the first output connection 7051. This example may refer to an application in which NNA 1001 may simulate an output neuron of output layer 34 of neural network 30. In this example, other column wires 708 2~m may not be necessary.

[0090] If IC1000 is to be used to simulate a layer of network 30 that contains more than one neuron, such as first hidden layer 32 or second hidden layer 33, then more than one column wire of crossbar 700 is required. 1~m The number of row wires 702 may be equal to the number m of neurons in that layer that the IC 1000 can simulate. 1~n may be equal to the number of neurons in the previous layer of network 30. If the previous layer is an input layer 31, then the number of row wires n may be equal to k. If the previous layer is a first hidden layer 32, then the number of row wires n may be equal to p.

[0091] FIG. 14 illustrates one or more memristors 701 of a crossbar array 700. ij7 is a flow diagram of a method for setting up a storage device including memory elements having changeable physical quantities, such as the number of bits per second, ... ij The set-up method can include the steps of:

[0092] In the first step 141 of the setup method, a target state of the physical quantities can be selected. Referring to the use case described above, each RME 701 of the crossbar array 700 ij The target state for each of the conductances is RME701 ij The weights W of the neural network 30 are calculated using the conductance values ​​of ij To provide a representation of G ij may be equal to

[0093] In a second step 142 of the setup method, an initial state of the physical quantity, e.g. RME701 ij The conductance of each RME 701 can be calculated using an initialization function. The initialization function may depend on the target state of the physical quantity. For example, the initialization function 200 may be a visual representation 720 of the initialization function 200 as shown in FIG. 7. Referring to the use case described above, each RME 701 ij The conductance G ij Each of the goal states is represented by the selected goal state G shown in the graph of FIG. target_sel Each RME701 may be set equal to ij Regarding each RME701 ij The corresponding initial state of conductance G init_sel uses the initialization function 200 to initialize the selected goal state G target_sel Each RME701 may be calculated based on ij The corresponding initial state of conductance G init_sel In the following, ij_init It is sometimes called.

[0094] In a third step 143 of the setup method, the physical quantities can be set to the initial state of the calculated physical quantities. ij The conductance of the corresponding initial state G ij_init This can be set to each RME701 ij This can be achieved by applying a programming voltage or current to each RME701. ij The conductance of the corresponding initial state G ij_init The point in time that can be set is sometimes called the set point in time.

[0095] After the third step 143 of the setup method, the values ​​of the physical quantities, e.g. RME701 ij The conductance of the current is calculated by the corresponding initial state of the physical quantity, e.g., the conductance G ij_init From each target state of the physical quantity, e.g., each RME701 ij The conductance G ij In one example, each RME 701 may drift, e.g., decay, over time in a direction toward the ij The conductance of each RME 701 may be in a drift state, in particular in a decay state, after a given period of time ΔT has elapsed after the set point in time. ij The conductance drift of each RME701 ij The conductance G ij For example, each RME 701 in the attenuation state may be approximately equal to the target state of each RME 701. ij The conductance value of each RME701 ij The conductance G ij By way of further example, each RME 701 in the damped state may deviate by less than 10 percent from its respective target state. ij The conductance value of each RME701 ij The conductance G ij may deviate from each of the target states by less than 1 percent.

[0096] Therefore, each RME701 ij RME701 ij The conductance of each of the initial states G ij_init Set it to RME701 ij The conductances of each of the initial states G ij_init to a respective drift state. ij_init may be computable by the processor using a respective initialization function. In one example, the respective initialization function is ij In another example, each initialization function, e.g., initialization function 200, may be different for each RME 701. ij The processor may be an external processor or may be implemented on the IC 1000. The processor may be the same for each RME 701. ij The conductance G ij Based on the target state of each RME701 ij The initial state of each ij_init To calculate , the parameters or coefficients of the initialization function can be stored.

[0097] The set-up method may further include measuring an elapsed time from an initial time point at which the conductance is set to an initial state of the calculated conductance to an actual time point. Additionally, the set-up method may include comparing the measured elapsed time to a further given time period. The further given time period may depend on the usage of the memory element, e.g., the usage of the crossbar array 700. The set-up method may include releasing the memory element for operation if the measured elapsed time is greater than the further given time period.

[0098] For example, voltage v 1~n continues to connect input connections 7031, 7032...703 until the elapsed time is greater than a further given period.n Or, in other words, if the elapsed time is greater than a further given period, the voltage v 1~n are input connectors 7031, 7032...703 n In one example, a voltage v 1~n 7031, 7032...7033 only if the elapsed time is greater than a further given period. n may be applied to

[0099] The further given period of time may correspond to the given period of time ΔT mentioned above, thereby allowing the use of empirical knowledge to search for the initialization function 200. In most cases, the given period of time ΔT may be selected such that the further drift of the physical quantity over time, e.g. the further decay of the conductance, after the given period of time ΔT has elapsed may be low compared to the drift of the physical quantity over time, e.g. the decay of the conductance, immediately after programming the physical quantity, e.g. the conductance, to an initial state.

[0100] In one example, each RME701 ij The initial state of the conductance of each ij_init Based on the global initialization function 900, each RME701 ij The conductance G ij The target state of each RME701 ij and each selected operating time point of each RME 701. ij In one example, the selected operating time points of each of the RMEs 701 may be equal. ij The selected operating time points of each of the RMEs 701 may be different from each other. ij It may be practical if the respective operating times of the can be known in advance.

[0101] For example, a multi-core architecture may include several cores, each of which may be designed in the form of an IC1000. A second one of the cores may be configured to simulate a second hidden layer 33, and a first one of the cores may be configured to simulate a previous layer, for example the first hidden layer 32. A simulation of the network 30 may start with a simulation of the first hidden layer 32 and proceed with a simulation of the second hidden layer 33, so that a first usage time of a first core may be earlier than a second usage time of a second core. Thus, in one example, the RME701 of the first core may be configured to simulate a second hidden layer 33 and a second hidden layer 34 of the first core may be configured to simulate a second hidden layer 34 of the first core. ij The conductance of each of the RME701 cores is ij The conductance of each of the RME701 cores is ij Each of the conductances of ij can reach their respective target states faster than ij Each initial state of the conductance G can be calculated so that each target state of ij_init may be set to

[0102] Aspects of the present 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 will 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.

[0103] The present invention may be a system, a method, and / or a computer program product, which may include a computer readable storage medium having computer readable program instructions for causing a processor to perform aspects of the present invention.

[0104] A computer readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, 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 disk read only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or ridge structures in a groove on which instructions are recorded, and any suitable combination of the foregoing. Computer-readable storage media, as used herein, should not be construed as being signals that are themselves ephemeral, such as electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.

[0105] The computer readable program instructions described herein can be downloaded from a computer readable storage medium to the respective computing / processing device or to an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network can include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in the respective computing / processing device.

[0106] The computer readable program instructions for carrying out the operations of the present invention may be either source or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or object oriented programming languages ​​such as Smalltalk® or C++, and traditional 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, partly on the user's computer, as a standalone software package, partly on the user's computer, partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or the connection may be made to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the invention.

[0107] Aspects of the present 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 will 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.

[0108] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, executed via the processor of the computer or other programmable data processing apparatus, create means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored in a computer readable storage medium capable of directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium having instructions stored therein constitutes an article of manufacture including instructions implementing aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.

[0109] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams, causing a series of operational steps to be performed on the computer, other programmable apparatus, or other device to generate a computer-implemented process.

[0110] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, constituting one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions shown in the blocks may occur out of the order shown in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should 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 functions or operations, or executes a combination of dedicated hardware and computer instructions. According to this specification, the following items are also disclosed. [Item 1] 1. A storage device including a memory element, the memory element including a changeable 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, the memory element including a drift of the physical quantity from the initial state to the drift state, the initial state of the physical quantity being computable using an initialization function, the initialization function being dependent on a target state of the physical quantity, and the target state of the physical quantity being approximately equal to the drift state of the physical quantity. [Item 2] 2. The storage device of claim 1, wherein the target state of each of the physical quantities of the corresponding memory elements is adapted to a usage of the storage device. [Item 3] 3. The storage device according to item 1 or 2, further comprising a neuromorphic neuron device for simulating a layer of a neural network, the neuromorphic neuron device comprising an input connection portion, the input connection portion being connected to the output connection portion of the first assembly. [Item 4] 1. An integrated circuit including a first assembly of memory elements, the first assembly of memory elements including connections for applying corresponding voltages to respective connections to generate a single current in each of the memory elements, and at least one output connection for outputting an output current, the memory elements being connected to each other such that the output current is a sum of the single currents, the integrated circuit being configured to generate the output current based on the applied voltage, each memory element including a respective alterable conductance, the respective conductances being in a respective drift state, the respective memory elements being configured to set the respective conductances to a respective initial state, the respective memory elements including respective drifts of the respective conductances from the respective initial states to the respective drift states, the respective initial states of the respective conductances being calculable using a respective initialization function, the respective initialization functions being dependent on respective target states of the respective conductances, and the respective target states of the respective conductances being approximately equal to the respective drift states of the respective conductances. [Item 5] 5. The integrated circuit of claim 4, wherein each of the target states of the physical quantities of the corresponding memory elements is adapted to a use of the integrated circuit. [Item 6] 6. The integrated circuit of item 5, further comprising a neuromorphic neuron device for simulating a layer of a neural network, the neuromorphic neuron device comprising an input connection, the input connection being connected to the output connection of the first assembly. [Item 7] 1. A computer-implemented method for setting up a storage device including a memory element, the memory element including a changeable physical quantity; selecting a target state of the physical quantity; calculating an initial state of the physical quantity using an initialization function, the initialization function being dependent on the target state of the physical quantity; setting said physical quantities to initial states of said calculated physical quantities; 4. A computer-implemented method comprising: [Item 8] measuring an elapsed time from an initial time point where the physical quantity is set to the initial state of the calculated physical quantity to an actual time point; comparing the measured elapsed time with a given period of time, the given period of time being dependent on usage of the memory device; releasing the memory element for operation if the measured elapsed time is greater than the given period; 8. The computer-implemented method of claim 7, further comprising: [Item 9] 1. A computer-implemented method for designing an initialization function, the initialization function expressing a relationship between each selected target state of an alterable physical quantity of a memory element for storing information and a corresponding initial state of the physical quantity of the memory element, the physical quantity of the memory element being adjustable to the corresponding initial state of the physical quantity to drift in a direction towards the each selected target state of the physical quantity, the computer-implemented method comprising: In a first step, the physical quantity of the memory element is set to an initial value at an initial time point; - in a second step, measuring an actual value of said physical quantity of said memory element after a given period of time has elapsed, said given period of time elapsed starting from said initial point in time; In a third step, storing said initial values ​​and said actual values ​​of said physical quantities in a database; repeating the first step, the second step, and the third step, setting the physical quantity of the memory element to a different initial value each time the first step is repeated, and storing several different pairs of the initial value and the actual value of the physical quantity in the database; designing said initialization function based on said database; 4. A computer-implemented method comprising: [Item 10] 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 point in time, and a time span between the initial point in time and the first point in time is equal to the given period of time. [Item 11] 11. The computer-implemented method of claim 9 or 10, wherein the given period of time is adapted to a future usage of the memory device. [Item 12] 12. The computer-implemented method of any one of items 9 to 11, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed if a change in the actual value of the physical quantity over time falls below a given threshold. [Item 13] 13. The computer-implemented method of any one of items 9 to 12, wherein the initialization function is time independent. [Item 14] Item 14. The computer-implemented method of item 13, wherein the initialization function is a power function that includes the respective selected target states of the modifiable physical quantities as exponents of the power function and the corresponding initial states of the physical quantities as function values ​​of the power function. [Item 15] The above initialization function is f(G)=a*e -b*G +c, where G is the selected target state of each of the modifiable physical quantities, f(G) is the corresponding initial state of the physical quantities, and a, b and c are coefficients of the initialization function. [Item 16] measuring a further actual value of said physical quantity of said memory element and an actual period of time, said actual period of time being defined by the elapsed time between said initial time point and an actual time point in a sub-step of said second step; In a further sub-step of said second step, storing said further actual value of said physical quantity and said actual time period in said database; repeating said sub-steps and said further sub-steps of said second step over time from said initial time point to store several different further actual values ​​of said physical quantity and corresponding actual time periods in said database; designing said initialization function based on said database; 16. The computer-implemented method of any one of items 9 to 15, further comprising: [Item 17] 17. The computer-implemented method of claim 16, further comprising: designing a corresponding time-dependent initialization function for each initial value of the physical quantity, the corresponding time-dependent initialization function representing a time-dependent drift of the physical quantity of the memory element starting from the corresponding initial state of the physical quantity of the memory element. [Item 18] 18. The computer-implemented method of claim 16, further comprising designing the initialization function to represent the relationship between the respective selected target states of the alterable physical quantities of the memory element and the corresponding initial states of the physical quantities of the memory element, and a selected time period after setting the physical quantities of the memory element to the corresponding initial states, wherein the selected time period is dependent on a predetermined future usage of the memory element. [Item 19] 1. A computer system for designing an initialization function, the initialization function expressing a relationship between each 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, the physical quantity of the memory element being adjustable to the corresponding initial state of the physical quantity to drift in a direction towards the each selected target state of the physical quantity, the computer system comprising: one or more computer processors; one or more computer readable storage media; 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; wherein the program instructions include: a program instruction for setting the physical quantity of the memory element to an initial value at an initial time in a first step; in a second step, program instructions for measuring an actual value of said physical quantity of said memory element after a given period of time has elapsed, said given period of time elapsed starting from said initial point in time; in a third step, program instructions for storing said initial values ​​and said actual values ​​of said physical quantities in a database; program instructions for repeating said first, second and third steps, setting said physical quantities of said memory elements to different initial values ​​for each repetition of said first step, so as to store in said database a number of different pairs of said initial values ​​and said actual values ​​of said physical quantities; and program instructions for designing said initialization function based on said database. Computer systems. [Item 20] 20. The computer system of item 19, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed at a first point in time, and a time span between the initial point in time and the first point in time is equal to the given period of time. [Item 21] 21. The computer system of claim 19 or 20, wherein the given period of time is adapted to a future usage of the memory element. [Item 22] A computer program for designing an initialization function, the initialization function expressing a relationship between each 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, the physical quantity of the memory element being adjustable to the corresponding initial state of the physical quantity for drifting in a direction towards the each selected target state of the physical quantity, the computer program comprising: In a first step, the physical quantity of the memory element is set to an initial value at an initial time point; in a second step, program instructions for measuring an actual value of said physical quantity of said memory element after a given period of time has elapsed, said given period of time starting from said initial point in time; in a third step, storing said initial values ​​and said actual values ​​of said physical quantities in a database; repeating said first, second and third steps, setting said physical quantities of said memory elements to different initial values ​​for each repetition of said first step, thereby storing in said database several different pairs of said initial values ​​and said actual values ​​of said physical quantities; designing the initialization function based on the database; A computer program for executing a program. [Item 23] 23. The computer program product of item 22, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed at a first point in time, a time span between the initial point in time and the first point in time being equal to the given period of time. [Item 24] 24. The computer program of claim 22 or 23, wherein the given period of time is adapted to a future usage of the memory element.

Claims

1. 1. A storage device including a memory element, the memory element including a changeable 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, the memory element including a drift of the physical quantity from the initial state to the drift state, the initial state of the physical quantity being computable using an initialization function, the initialization function being dependent on a target state of the physical quantity, the target state of the physical quantity being approximately equal to the drift state of the physical quantity; the initialization function is a power function; The power function includes the target state of the physical quantity as an exponent of the power function and the initial state of the physical quantity as a function value of the power function.

2. The storage device of claim 1, wherein the initialization function is equal to f(G) = a*e - b*G + c, where G is the target state of the physical quantity, f(G) is the initial state of the physical quantity, and a, b and c are coefficients of the initialization function.

3. 3. The storage device of claim 1, wherein the target state of each of the physical quantities of the corresponding memory elements is adapted to a usage of the storage device.

4. 4. The storage device according to claim 1, further comprising a neuromorphic neuron device for simulating a layer of a neural network, the neuromorphic neuron device comprising input connections, the input connections being connected to output connections of the first assembly.

5. an integrated circuit including a first assembly of memory elements, the first assembly of memory elements including connections for applying corresponding voltages to respective connections to generate a single current in each of the memory elements, and at least one output connection for outputting an output current, the memory elements being connected to each other such that the output current is a sum of the single currents, the integrated circuit being configured to generate the output current based on the applied voltage, each memory element including a respective alterable conductance, the respective conductances being in a respective drift state, the respective memory elements being configured to set the respective conductances to a respective initial state, the respective memory elements including respective drifts of the respective conductances from the respective initial states to the respective drift states, the respective initial states of the respective conductances being computable using respective initialization functions, the respective initialization functions being dependent on respective target states of the respective conductances, the respective target states of the respective conductances being approximately equal to the respective drift states of the respective conductances, each said initialization function is a power function; the power functions include the respective target states of the respective conductances as exponents of the power functions and the respective initial states of the respective conductances as function values ​​of the power functions.

6. The integrated circuit of claim 5, wherein the respective initialization functions are equal to f(G) = a*e - b*G + c, where G is the respective target state of the respective conductance, f(G) is the respective initial state of the respective conductance, and a, b and c are coefficients of the initialization function.

7. 7. An integrated circuit as claimed in claim 5 or 6, wherein the respective target states of the physical quantities of the corresponding memory elements are adapted to a usage of the integrated circuit.

8. 8. The integrated circuit of claim 7, further comprising a neuromorphic neuron device for simulating a layer of a neural network, said neuromorphic neuron device including an input connection, said input connection being connected to said output connection of said first assembly.

9. 1. A computer-implemented method for setting up a storage device including a memory element, the memory element including a changeable physical quantity; selecting a target state of the physical quantity; calculating an initial state of the physical quantity using an initialization function, the initialization function being dependent on the target state of the physical quantity; setting the physical quantity to an initial state of the calculated physical quantity; Including, the initialization function is a power function; A computer-implemented method, wherein the power function includes the target state of the physical quantity as an exponent of the power function and the initial state of the physical quantity as a function value of the power function.

10. The computer-implemented method of claim 9, wherein the initialization function is equal to f(G) = a*e - b*G + c, where G is the target state of the physical quantity, f(G) is the initial state of the physical quantity, and a, b and c are coefficients of the initialization function.

11. measuring an elapsed time from an initial time point when the physical quantity is set to the initial state of the calculated physical quantity to an actual time point; comparing the measured elapsed time with a given period of time, the given period of time being dependent on usage of the memory device; releasing the memory element for operation if the measured elapsed time is greater than the given period; 11. The computer-implemented method of claim 9 or 10, further comprising:

12. 1. A computer-implemented method for designing an initialization function, the initialization function expressing a relationship between each 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, the physical quantities of the memory element being adjustable to the corresponding initial states of the physical quantities to drift in a direction towards the each selected target state of the physical quantities, the computer-implemented method comprising: In a first step, the physical quantity of the memory element is set to an initial value at an initial time point; - in a second step, measuring an actual value of said physical quantity of said memory element after a given period of time has elapsed, said given period of time elapsed starting from said initial point in time; In a third step, storing the initial and actual values ​​of the physical quantities in a database; repeating the first step, the second step, and the third step, setting the physical quantities of the memory element to different initial values ​​each time the first step is repeated, and storing in the database several different pairs of the initial values ​​and the actual values ​​of the physical quantities; designing the initialization function based on the database; Including, the initialization function is a power function; the power function including the respective selected target states of the physical quantities as exponents of the power function and the corresponding initial states of the physical quantities as function values ​​of the power function.

13. The computer-implemented method of claim 12, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed when the change in the actual value of the physical quantity over time is below a given threshold.

14. A computer-implemented method for designing an initialization function, the initialization function expressing a relationship between each selected target state of a mutable physical quantity of a memory element for storing information and a corresponding initial state of the physical quantity of the memory element, the physical quantity of the memory element being adjustable to the corresponding initial state of the physical quantity to drift in a direction towards the each selected target state of the physical quantity, the computer-implemented method comprising: In a first step, the physical quantity of the memory element is set to an initial value at an initial time point; - in a second step, measuring an actual value of said physical quantity of said memory element after a given period of time has elapsed, said given period of time elapsed starting from said initial point in time; In a third step, storing the initial and actual values ​​of the physical quantities in a database; repeating the first step, the second step, and the third step, setting the physical quantities of the memory element to different initial values ​​each time the first step is repeated, and storing in the database several different pairs of the initial values ​​and the actual values ​​of the physical quantities; designing the initialization function based on the database; Including, A computer-implemented method, wherein the measuring of the actual value of the physical quantity of the memory element in the second step is performed if a change in the actual value of the physical quantity over time falls below a given threshold.

15. The computer-implemented method of claim 14, wherein the initialization function is a power function that includes each of the selected target states of the physical quantities as an exponent of the power function and the corresponding initial states of the physical quantities as function values ​​of the power function.

16. The computer-implemented method of claim 12, wherein the initialization function is equal to f(G) = a*e - b*G + c, where G is the respective selected target states of the modifiable physical quantities, f(G) is the corresponding initial states of the physical quantities, and a, b and c are coefficients of the initialization function.

17. 17. The computer-implemented method of claim 12, wherein the measurement of the actual value of the physical quantity of the memory element in the second step is performed at a first point in time, and a time span between the initial point in time and the first point in time is equal to the given period of time.

18. 18. The computer-implemented method of claim 12, wherein the given period of time is adapted to a future usage of the memory device.

19. 19. The computer-implemented method of claim 12, wherein the initialization function is time independent.

20. measuring a further actual value of the physical quantity of the memory element and an actual period of time, the actual period of time being defined by the elapsed time between the initial time point and an actual time point in a sub-step of the second step; in a further sub-step of said second step, storing said further actual value of said physical quantity and said actual time period in said database; repeating said sub-steps and said further sub-steps of said second step over time from said initial time point to store in said database several different further actual values ​​of said physical quantity and corresponding actual time periods; designing the initialization function based on the database; 20. The computer-implemented method of claim 12, further comprising:

21. 21. The computer-implemented method of claim 20, further comprising: designing a corresponding time-dependent initialization function for each initial value of the physical quantity, the corresponding time-dependent initialization function representing a time-dependent drift of the physical quantity of the memory element starting from the corresponding initial state of the physical quantity of the memory element.

22. 22. The computer-implemented method of claim 20 or 21, further comprising designing the initialization function to represent the relationship between the respective selected target states of the alterable physical quantities of the memory element and the corresponding initial states of the physical quantities of the memory element, and a selected time period after setting the physical quantities of the memory element to the corresponding initial states, wherein the selected time period is dependent on a predetermined future usage of the memory element.

23. One or more computer processors; one or more computer readable storage media; 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; wherein the program instructions include:

23. The method according to claim 9, further comprising: Computer system.

24. A method for causing a processor to perform each of the steps of a computer-implemented method according to any one of claims 9 to 22. Computer program.

Citation Information

Patent Citations

  • Method and system for measuring resistance of resistive memory element

    JP2011054268A

  • Method for training artificial neural network circuit, training program, and training device

    JP2019003547A

  • Nonvolatile Memory Device and Writing Method Thereof

    US20140219014A1

  • Method for programming memory device and associated memory device

    US20160307627A1

  • Timing device and method thereof

    US9501042B1