2T2R RRAM cell-based electronic circuit with improved precision
The electronic circuit using 2T2R RRAM cells with a resistive bridge architecture addresses the precision limitations in existing binary neural networks by employing a reading device with a conversion and comparison module, enabling the implementation of larger neurons with high precision.
Patent Information
- Application Number
- FR2023014511
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-19
- Publication Date
- 2025-06-20
AI Technical Summary
Existing electronic circuits for binary neural networks using resistive random-access memory (RRAM) cells face limitations due to variability in memristor resistance, which affects the accuracy of multiply-accumulate operations and restricts the size of neurons that can be implemented effectively.
The proposed electronic circuit employs a 2T2R RRAM cell configuration with a resistive bridge architecture, where each memory cell consists of two memristors and two switches, and uses a reading device with a conversion module and a comparison module to perform binary operations with improved precision, independent of neuron size.
This solution eliminates the precision limitations associated with memristor variability, enabling the implementation of larger neurons with high precision, as the circuit's precision is independent of the neuron size, allowing for efficient and accurate binary neural network operations.
Smart Images

Figure 00000042_0000 
Figure 00000043_0000 
Figure 00000044_0000
Abstract
Description
Title of the invention: Electronic circuit based on 2T2R RRAM cells with improved precision
[0001] The present invention relates to an electronic circuit capable of implementing calculation operations each providing a binary output.
[0002] The invention relates to any type of application using operations applied to binary operands, in particular applications using binary artificial neural networks, also called BNN (Binary Neural Network).
[0003] A neural network is generally composed of a succession of layers of neurons, each of which takes its inputs from the outputs of the previous layer. More precisely, each layer comprises neurons taking their inputs from the outputs of the neurons in the previous layer. Each layer is connected to the next by a plurality of synapses. A synaptic weight is associated with each synapse. It is a number, such as a binary number, or a distribution, which takes both positive and negative values. In the case of a dense layer, the input of a neuron is the weighted sum of the outputs of the neurons in the previous layer, the weighting being done by the synaptic weights and followed by activation via an activation function.
[0004] It is therefore desirable to develop dedicated hardware architectures, intermixing memory and calculation, to create fast, low-power neural networks capable of learning in real time.
[0005] Such dedicated hardware architectures more generally aim to efficiently perform operations applied to binary operands.
[0006] A neural network based on optical-type technologies is known.
[0007] Another field of research concerns the production of neurons and synapses of neural networks based on CMOS (Complementary Metal-Oxide-Semiconductor) technology. The acronym CMOS refers to both a manufacturing process and a component obtained by such a manufacturing process.
[0008] However, according to each of these technologies, each neuron occupies several tens of micrometers on each side. In addition, each synapse also occupies several tens of micrometers on each side. As a result, on a limited surface corresponding for example to an electronic chip, the number of neurons and synapses that can be integrated is limited, which results in a reduction in the performance of the neural network.
[0009] Therefore, to reduce the size, architectures are specifically studied in which the synapses are memristive.
[0010] Memristive synapses are synapses using memristors. In electronics, a memristor is a passive electronic component. The name is a portmanteau of the two English words memory and resistor. A memristor is a non-volatile memory component, the value of its electrical resistance changing with the application of a voltage over a certain period of time and remaining at that value in the absence of voltage.
[0011] Examples of such an implementation are proposed in the following documents.
[0012] The article “A compute-in-memory chip based on resistive random-access memory” by W. Wan et al, published in Nature in 2022, describes a classic technique consisting of encoding the binary weights as a resistive state within memory cells (a high resistive state (HRS) to encode 1, and a low resistive state (LRS) to encode 0 for example), and applying the input activations on the bit line or BL (from the English Bit Line) of each cell. This results, via Ohm's law, in a current in each cell which is proportional to the multiplication between the weights and the inputs, which is summed via Kirchhoff's laws on the common source line or SL (from the English Source Line). The source line current is then proportional to the multiply-accumulate (MAC) between the input activations and their respective weights.This approach is very sensitive to memory cell variability, which is not negligible for the majority of resistive memories. This variability directly influences the multiplication current within each memory cell, accumulates at the end of the column via Kirchhoff's law and makes reading the multiplication-accumulation result all the more difficult as the number of activated cells is large. This results in a complex and large-area read circuit, as well as a limitation on the size of the memory cell array due to a maximum number of cells activated in parallel beyond which reading becomes impossible because of the variability.The maximum number of parallel-enabled inputs for this technique is typically 256, and then requires a complex training circuit and the inclusion of a computer in the training loop to adapt to the specificities of each chip, which makes it incompatible with the constraints of the Internet of Things. More generally, the maximum number of parallel-enabled inputs is rather around 9 inputs.
[0013] The article “Efficient and Robust Nonvolatile Computing-In-Memory Based on Voltage Division in 2T2R RRAM With Input-Dependent Sensing Control” by L. Wang et al, published in May 2021, describes a more robust technique against variability by connecting the weights to the inputs in a resistive bridge. This approach is based on a ratio of complementary weights, which is more robust against the variability of resistive cells. In addition, in each 2T2R memory cell, the current always passes through a sum of LRS and HRS resistors in series, instead of a single resistor. LRS or HRS resistance according to the aforementioned classical technique. This approach then allows a reduction in current consumption. However, this technique remains sensitive to the variability of resistive cells, also limiting its reliable use to 9-input neurons.
[0014] The article “A crossbar array of magnetoresistive memory devices for in-memory computing” by S. Jung et al, published in Nature in 2022, describes another approach consisting of connecting the resistive weights in series, instead of connecting them in parallel. The weights are stored in 2T2R memory cells whose two transistors are activated differentially. The multiplication operation between an input and a weight is done by applying the input to a word line or WL (from the English Word Line) of the 2T2R cell, thus selecting only one of the two resistive elements, whose value is given by the weight. A voltage is applied to one end of the series of weights, which makes it possible to generate a weighted current corresponding to the multiplication-accumulation between the weights and the inputs. This current charges a capacitor at the bottom of the column.The capacitor voltage is compared to a reference over time, thus allowing the value of the multiplication-accumulation to be digitized over several bits.
[0015] Connecting all weights in series reduces current consumption compared to the two previous approaches. However, since the access transistors are also connected in series with the weights, they must be large so as not to interfere with the calculation. In addition, this approach remains very sensitive to the variability of the resistive cells, with a maximum neuron size of the order of 64 inputs, and can also suffer from delay errors that depend on the activated weight combination.
[0016] The article “Low-Overhead Implementation of Binarized Neural Networks Employing Robust 2T2R Resistive RAM Bridges” by M. Ezzadeen et al, published in September 2021, and EP 4 137 999 Al describe a final approach to remove the impact of resistive cell variability on the accuracy of the multiply-accumulate operation. Weights are stored differentially in 2T2R memory cells, and inputs are applied differentially to pairs of complementary bit lines BL, BLb. As a result, the neuron weights are stored in a memory row, instead of a column. Applying inputs to the complementary bit lines BL, BLb generates the creation of one resistive bridge per 2T2R memory cell, whose midpoint is the source line SL. The source line voltage is amplified and digitized using an inverter, whose output then corresponds to the result of the multiplication.The combination of using the 2T2R memory cell in a resistive bridge configuration combined with an inverter provides very high robustness for the calculation of the . multiplication. Accumulation is performed using a capacitive bridge connected to the output of the inverters, which is also very robust by construction. Comparison of the accumulation result to the neuron threshold is done using a comparator. This approach has been shown to be robust for implementing neurons of sizes up to 513 inputs or more.
[0017] The limit of this approach then becomes the accuracy of the comparator, and no longer the variability of the memory cells. Indeed, with a 513-input neuron, the minimum voltage difference across the comparator is of the order of 2mV, which is a relatively critical threshold for the design of a comparator. Implementing larger neurons would further reduce this voltage difference, which would make the comparator more likely to generate errors.
[0018] There is therefore a need for an electronic circuit making it possible in particular to produce a binary neural network with resistive memory cells and for larger neurons, i.e. with a higher number of inputs.
[0019] To this end, the invention relates to an electronic circuit capable of implementing calculation operations each providing a binary output, the circuit comprising:
[0020] - word lines;
[0021] - pairs of complementary bit lines;
[0022] - source lines;
[0023] - a set of memory cells organized according to a matrix comprising rows and columns, the memory cells of the same row being selectable by a word line, the memory cells of the same column being connected to a pair of complementary bit lines and to a source line;
[0024] each memory cell comprising two memristors and two switches, each memristor being connected to the same source line and to a respective switch, each memristor respectively storing a weight or the inverse of the same weight by respectively having different first and second resistance values; the switches being connected, for their activation, to a respective word line and connected respectively to a pair of complementary bit lines;
[0025] - a reading device implemented during each calculation operation, the reading device comprising:
[0026] + one logical unit for each column, each logical unit comprising a input terminal connected to a respective source line for receiving an input value, the logic unit being configured to perform a logic operation having a switch between a low value and a high value depending solely on the value of the input of the logic unit which is connected to the source line during said calculation operation,
[0027] + a conversion module configured to convert a number of high or low values low values at the output of the logic units into an intermediate quantity depending on the said number of high or low values at the output of the logic units, the intermediate quantity is an electrical quantity, such as an electrical voltage, the variation of which over time depends on a time constant, and the value of the time constant is a function of the number of high or low values at the output of the logic units, and
[0028] + a comparison module configured to compare the intermediate quantity to a reference quantity and to output a one-bit digital signal, dependent on the comparison and corresponding to the output of the electronic circuit, the emitted signal being representative of the result of the calculation operation.
[0029] The electronic circuit according to the invention then offers the advantage of the latter approach mentioned above not presenting any problem of variability of the memory cells, while not having any precision limit, the precision being independent of the size of the neuron with the electronic circuit according to the invention, as will be explained in more detail later.
[0030] According to other advantageous aspects of the invention, the electronic circuit comprises one or more of the following characteristics, taken in isolation or in all technically possible combinations:
[0031] - the value of the time constant is directly proportional to the number of high or low values at the output of the logical units;
[0032] - the value of the time constant is equal to the product of a capacitance and a re resistance, one of capacitance and resistance being predefined, and the other of capacitance and resistance depending on the number of high or low values at the output of the logic units;
[0033] - the conversion module comprises a set of the same elements connected together and a set of switches, each element being associated with the output of a respective logic unit, each switch being connected to the output of a respective logic unit and configured to activate, or respectively inhibit, the corresponding element according to the high or low value at the output of the respective logic unit, and the value of the time constant depending on the number of activated elements;
[0034] each element preferably being a resistor or a capacitor;
[0035] - the comparison module is configured to transform the intermediate quantity into a square wave signal with a state change edge at a characteristic time instant, the characteristic time instant then being compared to a reference time instant associated with the reference quantity, and the signal representative of the result of the calculation operation then depending on said comparison
[0036] - the intermediate quantity is transformed into the square wave signal via a comparator;
[0037] - the comparison module comprises the comparator and a voltage generator of comparison, and the comparator is capable of comparing the generated voltage to the comparison voltage from the comparison voltage generator;
[0038] - the characteristic time instant is compared to the reference time instant via a flip-flop or via a comparator with a clock reference;
[0039] - the reference time instant is obtained via a set of same seconds elements connected together and a set of second switches, the second elements being the same as those of the entire conversion module, each second element being associated with the output of a respective logic unit, each second switch being connected to the output of a respective logic unit and configured to activate, or respectively inhibit, the corresponding second element according to the high or low value at the output of the respective logic unit, and each second switch being controlled in an inverse manner with respect to the switch of the conversion module which is connected to the output of the same respective logic unit;
[0040] each second element preferably being a resistor or a capacitor;
[0041] - each logic unit performs an inverter type logic function during the calculation operation;
[0042] - the logical operation performed by the logic unit is an inversion, and the operation of computation is a neural computational operation, such as the MAC operation;
[0043] - the electronic circuit is a neuromorphic circuit suitable for implementing a binary output neural network, each memory cell being associated with a respective synaptic weight of a neuron, and each pair of complementary bit lines being capable of receiving complementary input voltages during a neural calculation operation;
[0044] - the electronic circuit comprises a first controller making it possible to select the memory cells of a row which are connected to the same word line, and comprising a second controller connected to the pairs of bit lines and making it possible to apply to each pair of bit lines different and symmetrical voltages with respect to an average voltage, the voltage applied to a bit line being higher or lower than that applied to the associated complementary bit line;
[0045] - the electronic circuit comprises several distinct sets of memory cells capable of operating in parallel with the same set of pairs of complementary bit lines and distinct sets of word lines, each set of memory cells being connected to a respective set of word lines;
[0046] - the electronic circuit comprises several distinct sets of memory cells suitable for operating in parallel with the same set of word lines and distinct sets of pairs of complementary bit lines, each set of memory cells being connected to a respective set of pairs of complementary bit lines. comments;
[0047] the reading devices of two successive sets of memory cells being preferably connected to each other via a switch,
[0048] the switch being preferably further controlled in the closed position during a neural calculation operation to carry out said operation with all of the complementary input voltages received by the two sets of memory cells.
[0049] These characteristics and advantages of the invention will appear more clearly on reading the description which follows, given solely by way of non-limiting example, and made with reference to the appended drawings, in which:
[0050] [Fig-1] [Fig.l] is a schematic representation of an electronic circuit, according to the invention, suitable for implementing calculation operations each providing a binary output, the circuit comprising word lines, pairs of complementary bit lines, source lines, a set of memory cells organized according to a matrix comprising rows and columns, each memory cell comprising two memristors and two switches, and a reading device implemented during each calculation operation;
[0051] [Fig.2] [Fig.2] is a schematic representation of an example cell memory of the electronic circuit of [Fig.l];
[0052] [Fig.3] [Fig.3] is a graph showing the effect of variability of the values of the re resistances of the states of a memristor;
[0053] [Fig.4] [Fig.4] is a schematic representation of an exemplary embodiment of a component performing an XNOR operation and forming part of the reading device of the electronic circuit of [Fig.l];
[0054] [Fig.5] [Fig.5] illustrates the four possible cases of operation of the component XNOR of [Fig.4];
[0055] [Fig.6] [Fig.6] is a schematic representation of the output voltage of the XNOR component of [Fig.4] in some cases of [Fig.5];
[0056] [Fig.7] [Fig.7] is a more functional schematic representation of the circuit electronics of [Fig.l], and in particular of the reading device;
[0057] [Fig.8] [Fig.8] is a schematic representation of the reading device of the [Fig.l] according to a first example of embodiment;
[0058] [Fig.9] [Fig.9] is a discharge timing diagram of a conversion bridge and generation of a conversion signal in the case of the electronic circuit of [Fig.8] without bias;
[0059] [Fig. 10] [Fig. 10] is a timing diagram similar to that of [Fig.9], in the case of the electronic circuit of [Fig.8] with bias;
[0060] [Fig. 11] [Fig. 11] is a schematic representation similar to that of [Fig.8] according to second and third embodiment examples;
[0061] [Fig. 12] [Fig. 12] is a schematic representation similar to that of [Fig.8] according to a fourth exemplary embodiment;
[0062] [Fig. 13] [Fig. 13] is a schematic representation similar to that of [Fig.8] according to a fifth exemplary embodiment;
[0063] [Fig. 14] [Fig. 14] is a schematic representation similar to that of [Fig.8] according to sixth and seventh embodiment examples;
[0064] [Fig. 15] [Fig. 15] is a schematic representation similar to that of [Fig.8] according to an eighth exemplary embodiment;
[0065] [Fig. 16] [Fig. 16] is a schematic representation of an electronic circuit according to the invention comprising several distinct sets of memory cells connected in series with each other and to the same set of word lines, these sets of memory cells being able to operate in parallel by being controlled by distinct sets of pairs of complementary bit lines;
[0066] [Fig. 17] [Fig. 17] is a schematic representation of an electronic circuit according to the invention comprising a matrix of distinct sets of memory cells, the sets of memory cells being connected to each other in the form of rows and columns, the sets of the same row being connected to the same set of word lines, and the sets of the same column being connected to the same set of pairs of complementary bit lines; and
[0067] [Fig. 18] [Fig. 18] is a view similar to that of [Fig. 17] according to another exemplary embodiment.
[0068] It should be noted that the expression "specific to" followed by a verb is considered equivalent to the expression "configured for" followed by the same verb. The expression "specific to" will then be replaceable, if necessary, by the expression "configured for", without this modifying the content and substance of the present invention.
[0069] In [Fig. 1], an electronic circuit 10 is capable of taking as input a vector x comprising n inputs Xj and of implementing calculation operations each providing a binary output. The calculation operations carried out by the electronic circuit 10 are for example neural calculation operations, such as operations for counting the number of 1s in a series of bits (popcount), or even MAC operations (Multiply And Accumulate) well known for the inference of neural networks.
[0070] The electronic circuit 10 is a neuromorphic circuit suitable for implementing a neural network with binary output, that is to say a network for which the synaptic weights and the neurons are binary.
[0071] The electronic circuit 10 comprises a set of memory cells 12 organized according to a two-dimensional matrix 14, configured to store the values of the synaptic weights of each neuron and a reading device 16 implemented during each calculation operation.
[0072] In [Fig. 1], the matrix 14 comprises m rows 18 and n columns 20, where m is the number of rows 18 of the matrix 14, and similarly n is the number of columns 20 of the matrix 14, m and n each being an integer greater than or equal to 1.
[0073] A memory cell 12 has the coordinates (i,j) when said memory cell 12 is positioned at the intersection of the i-th row 18i and the j-th column 20j with i and j two integers. The index i is then between 1 and m, and the index j is between 1 and n.
[0074] The memory cells 12 of the i-th row 18 store the synaptic weights of a neuron. The number of rows 18 is therefore a function of the number of neurons in the neural network implemented by the electronic circuit 10.
[0075] The electronic circuit 10 also comprises word lines WL, pairs of complementary bit lines BL and BLb, source lines SL and two controllers 22 and 24.
[0076] In the preceding notations, a word line is referenced WL (from the English Word Line); the complementary bit lines BL and BLb use the acronym BL (from the English Bit Line) and the source lines are referenced with the acronym SL (from the English Source Line).
[0077] In the example of [Fig.l], each memory cell 12 is connected to a respective word line WL, a respective source line SL and a respective pair of complementary bit lines BL and BLb.
[0078] Each memory cell 12 of the same row 18 shares the same word line WL, so that the word lines WL can also be indexed with the index i. Thus, the first word line, that is to say the one which connects the memory cells 12 of the first row 18, can be referenced WLb
[0079] The memory cells 12 of the same column 20 share the same pair of complementary bit lines BL and BLb and the same source line SL. These three lines can therefore also be indexed with the index j.
[0080] For the sake of clarity, all of the source lines SL are shown but only the complementary bit line pairs BL and BLb of the first column 20i, the j-th column 20j and the last column 20n are shown in dot-dash lines in [Fig.l].
[0081] The memory cells 12 of the same row 18 are then selectable by a word line WL, and the memory cells 12 of the same column 20 are connected to a pair of complementary bit lines BL, BLb and a source line SL.
[0082] The first controller 22 makes it possible to select the memory cells 12 of a row 18 which are connected to the same word line WL and therefore to select a single neuron from the electronic circuit 10.
[0083] The second controller 24 is capable of controlling the pairs of complementary bit lines BL and BLb and the source lines SL.
[0084] The second controller 24 is connected to the pairs of bit lines BL, BLb and makes it possible to apply different voltages to each pair of bit lines BL, BLb, the voltages applied during the calculation operation being advantageously symmetrical with respect to a middle voltage, the voltage applied to a bit line BL being higher or lower than that applied to the associated complementary bit line BLb.
[0085] The first controller 22 and the second controller 24 are configured to be driven in a coordinated manner to control the memory cells 12 using the lines that they control according to the desired operation.
[0086] Each memory cell 12 is capable of storing at least one binary value, such as a binary weight W, in particular a respective binary synaptic weight of the neural network when the calculation operation carried out is a neural calculation operation.
[0087] An example of the structure of a memory cell 12 is represented more precisely in [Fig.2] for the case of the memory cell 12 having the coordinates (i,j).
[0088] Each memory cell 12 comprises two memristors, namely a first memristor 28 and a second memristor 30, as well as two switches, a first switch 32 and a second switch 34.
[0089] Because memristors 28 and 30 are present, such a memory cell 12 is a resistive random-access memory cell. The memory cell 12 is more often referred to by the acronym RRAM or ReRAM (Resistive random-access memory).
[0090] Furthermore, such an arrangement is generally referred to as a 2T2R structure with reference to the presence of the two switches (designated 2T) and two memristors (designated 2R). The memory cell 12 is sometimes referred to as a 2T2R cell.
[0091] A memristor is a component whose electrical resistance value changes permanently when a current is applied. Thus, data can be recorded and rewritten by a control current. Such behavior is notably observed in phase change materials, ferroelectric tunnel junctions or redox memories based on oxides such as HfOx or TiO2 x.
[0092] The change in conductance of a memristor depends on the amplitude and duration of the voltage pulses applied across the memristor as well as the maximum value of current that can pass through the memristor, for example for a "SET" operation, i.e. the change from a high resistance to a low resistance.
[0093] A memristor can thus have two states, a high state and a low state.
[0094] The high state corresponds to a high resistance and is generally designated by the abbreviation HRS referring to the English term “High Resistive State” which means literally highly resistive state. The high state is therefore referred to as the HRS high state in the following.
[0095] The low state corresponds to a low resistance and is generally designated by the abbreviation LRS referring to the English term “Low Resistive State” which literally means weakly resistive state. The low state is therefore called the low LRS state in the following.
[0096] However, due to the variability of the memristors in operation, it turns out that the resistance in the high state HRS can be lower than the resistance in the low state LRS, which generates errors if the information (weight) is coded in a single memristor.
[0097] This variability is shown schematically in [Fig.3]. In this figure, the probability that a memristor will in practice exhibit the resistance value is represented as a function of the state of the memristor.
[0098] More precisely, the first curve, the curve noted 36, schematically represents the probability for all the values observed in practice for the low LRS state while the second curve 38 represents the same curve for the high HRS state.
[0099] The graph in [Fig.3] clearly shows that there is an overlap zone 40. In this overlap zone 40, distinguishing the low LRS and high HRS states may be impossible.
[0100] This overlap may be greater with long-term time drifts of the memristors.
[0101] To remedy this problem, in the present example, the information is coded by the ratio between the two resistances of the two states thanks to a differential configuration of the two memristors 28 and 30.
[0102] Also, according to the example described, the memristors 28 and 30 are series and complementary memristors respecting the same logic coding.
[0103] By complementary, it is understood here that the memristors 28 and 30 have a different state, a low state LRS for one and a high state HRS for the other.
[0104] According to the example of [Fig.2], a high weight, i.e. a logic “1”, is represented by a high state HRS of the first memristor 28 (respectively a low state LRS of the second memristors 30) while a low weight, i.e. a logic “0”, is represented by a low state LRS of the first memristor 28 (respectively a high state HRS of the second memristors 30).
[0105] In the example described, each of the two memristors 28 and 30 is connected to the common source line SL.
[0106] Each of the two switches 32 and 34 is for example a transistor and more specifically a field effect transistor.
[0107] A field-effect transistor is often referred to by the abbreviation FET (from the English Field-Effect Transistor).
[0108] According to the example described, the two switches 32 and 34 are insulated gate field effect transistors. Such a transistor is more often referred to by the acronym MOSFET (from the English Metal Oxide Semiconductor Field Effect Transistor).
[0109] Thus, each switch 32 and 34 has three electrodes, a gate G, a source S and a drain D.
[0110] Generally, for a transistor whose reference sign is X, the electrodes will be noted in the figures according to the following notation: the gate XG, the source XS and the drain XD.
[0111] This notation is chosen here to simplify the representation, knowing that the positions of the source XS and the drain XD are defined with respect to the main polarization direction, that is to say the most used for the assembly. Of course, if the polarization is reversed, the person skilled in the art knows that the roles and positions of the source XS and the drain XD are exchanged.
[0112] Each gate 32G and 34G of the two switches 32 and 34 is connected to the word line WL. Depending on the voltage level present on the word line, the switches 32 and 34 are made conducting or on the contrary not conducting. The first controller 22 will in practice choose to select a row 18 of cells 12 by a word line WL by making the switches 32, 34 of the memory cells 12 of this row conductive.
[0113] The source 32S of the first switch 32 is connected to the bit line BL while the source 34S of the second switch 34 is connected to the complementary bit line BLb.
[0114] The drain 32D of the first switch 32 is connected to one terminal of the first memristor 28, the other terminal of the first memristor 28 being connected to the common source line SL.
[0115] The drain 34D of the second switch 34 is connected to one terminal of the second memristor 30, the other terminal of the second memristor 30 being connected to the common source line SL.
[0116] The second controller 24 will control the power supply of the pairs of bit lines, so that the voltage presented on a bit line BLj is different and complementary to the voltage presented on the complementary bit line BLj. Thus, when a cell 12 of coordinate i,j is selected (its switches being made passing by the activation voltage presented on the associated word line WL;), the memristors 28 and 30 of this cell are in series and constitute a resistive bridge between the bit lines BLj and BLbj.
[0117] In this case, the memristors 28 and 30 are thus supplied by voltages present on the bit lines BLj and BLbj symmetrical with respect to a voltage for example, called the middle voltage. In this notation, VDD corresponds to a potential VDD power supply. In addition, the ground is denoted GND in the following. Of course, another mid-voltage could be chosen, such as, for example, a voltage of vdd . 3
[0118] The reading device 16 implemented during each calculation operation will now be described with reference to [Fig.7].
[0119] To better understand what follows, it can be observed that a binary neural network presents a specificity in inference compared to a classic neural network.
[0120] When a classical neural network is applied to an input vector to calculate an output vector, each neuron receives input values corresponding to output values of neurons in a previous layer L and performs a weighted sum y jy . ,ï ct 'c neuron then applies a non-linear function f to the I go 'J result of the weighted sum.
[0121] In contrast, in a binary neural network, the weighted sum is obtained by performing the following operation:
[0122] a_ _ popcount. XNOR( W^, Xj) - Th^ ]
[0123] where ai and xi represent the output values calculated by the neurons of the current layer, respectively by the previous layer;
[0124] Wjj represents the respective binary weights for the neurons of the current layer;
[0125] XNOR is the logical function giving the complement of the exclusive OR function (this function is sometimes called exclusive NOR for this reason);
[0126] popcount csj |a function that counts the number of 1s in a series of bits;
[0127] Thj is a predefined threshold, and
[0128] sign is a function that maps the value 1 to a positive input and maps -1 to a negative value.
[0129] This means that, in the case of a binary network, it is possible to implement a binary neural calculation via the electronic circuit 10 comprising the reading device 16 as shown in [Fig.7].
[0130] The reading device 16 comprises a logic unit 42 for each column 20, a conversion module 44 and a comparison module 46.
[0131] Each logic unit 42 forms, in combination with a memory cell 12 selected in the column 20 associated with said logic unit 42, an equivalent XNOR component 43.
[0132] The logic unit 42 comprises an input terminal connected to the source line SL of said memory cell 12 to receive an input value.
[0133] Each logic unit 42 is configured to perform a logic operation having a switch between a low value and a high value depending solely on the value of the input of the logic unit which is connected to the source line SL during said calculation operation.
[0134] More particularly, a logical “1” is represented by a high value at the output of the logic unit 42 and a logical “0” is represented by a low value at the output of the logic unit 42.
[0135] The XNOR component 43 equivalent to the association between the selected memory cell 12 and the logic unit 42 is now described with reference to [Fig.4].
[0136] The XNOR component 43 performs an XNOR operation on two signals, namely a weight denoted W and an input signal denoted in.
[0137] In this case, the XNOR component 43 comprises two memristors M1 and M2 and a logic unit 42.
[0138] In the example of [Fig.4], the logic unit 42 is an inverter 48.
[0139] The two memristors M1 and M2 are complementary memristors connected in series corresponding to the weight W.
[0140] Also, similarly to what was described previously, according to the example of [Fig.5], a logic “1” for the weight W is represented by a high state HRS of the memristor M1 (the other memristor M2 being in the low state LRS) while a logic “0” for the weight W is represented by a low state LRS of the memristor M1 (the other memristor M2 being in the high state HRS).
[0141] The memristors M1 and M2 are connected at one end to the inverter 48 and at the other end to a respective voltage.
[0142] We will note a first voltage Vin and a second voltage Vinb.
[0143] The electrical configuration is therefore that of a voltage divider bridge 50 connected on the one hand to the first voltage Vin and on the other hand to the second voltage Vinb and whose midpoint 52 is connected to the input of the inverter 48. In other words, one of the memristors Ml is subjected to a voltage IVin - Vmidl and the other memristor M2 is subjected to a voltage IVmid- Vinbl. The notation Vmid designates the voltage of the midpoint 52 of the divider bridge 50.
[0144] Thus, in the case described, the input signal in corresponds to the pair of the first voltage Vin and the second voltage Vinb.
[0145] These voltages Vin and Vinb have for example the particularity of being symmetrical with respect to half of the supply potential. In practice, it will be advantageous to choose to have Vin equal to VDd or GND, and respectively Vinb equal to GND or VDd-
[0146] In the example of [Fig.5], the input signal in codes for a logic “1” when the first voltage Vin is strictly greater than the second voltage Vinb, that is, Vin > Vinb. Conversely, the input signal in codes a logic “0” when the first voltage Vin is strictly lower than the second voltage Vinb, that is, Vin < Vinb.
[0147] This schematic representation of two memristors Ml, M2 in series between two voltages Vin and Vinb corresponds in practice to the equivalent circuit formed by a selected cell 12 (the associated word line WL has a voltage making its switches conductive) and receiving via the bit lines BL and BLb bias voltages corresponding to Vin and Vinb. In other words, the input signal in is brought to a selected cell 12 via the associated bit lines BL and BLb by the action of the second controller 24. The midpoint 52 of the divider bridge then corresponds to the source line SL connected to the cell 12 considered.
[0148] The inverter 48 is an element capable of receiving an incident signal on an input 48E and performing a logic inversion calculation to emit on an output 48S an output signal which is the inverse of the incident signal.
[0149] Here, the input 48E of the inverter 48 is connected to the midpoint 52 of the divider bridge 50 formed by the two memristors M1 and M2.
[0150] The output 48S of the inverter 48 gives the result of the XNOR operation applied to the input signal in and to the weight W.
[0151] The operation of the equivalent component XNOR 43 is now described with reference to figures 5 and 6 which schematically represent respectively the four possible cases of operation of the component XNOR 43 and the value of the output voltages for two of the four possible cases. In [Fig.5], the reference signs are not repeated so as not to make these figures too cumbersome.
[0152] More precisely, the case at the top left of [Fig.5] corresponds to the case where the input signal in is equal to 0 and the value of the weight W is equal to 0.
[0153] In such a case, as explained previously, the first voltage Vin is strictly lower than the second voltage Vinb, that is to say that Vin < Vinb (with for example Vin = GND and Vinb = VDD).
[0154] Furthermore, the first memristor M1 is in the low state LRS while the second memristor M2 is in the high state HRS.
[0155] Due to the configuration, the memristor in the high state HRS absorbs almost all of the voltage dynamics, pushing the voltage Vmid from the midpoint 52 towards the voltage at the end of the memristor in the low state LRS
[0156] In this case, this means that the voltage Vmid of the midpoint 52 is pushed back towards the first voltage Vin as represented schematically by the curve 54 in [Fig.6].
[0157] As apparent in this [Fig.6], the midpoint voltage Vmid is distinctly below half of the supply potential VDd / 2.
[0158] The output 48S of the inverter 48 is then at 1.
[0159] This shows that for a signal in at 0 and for a weight at 0, the output of inverter 48 is then at 1, which corresponds to XNOR(0,0) = 1.
[0160] Thus, the output of logic unit 42 is therefore a logic “1”, therefore the output of logic unit 42 is a high value.
[0161] The case at the bottom left of [Fig.5] corresponds to the corresponding case in which the input signal in is equal to 0 and the value of the weight W is equal to 1.
[0162] In such a case, compared to the previous case, the only difference is that the first memristor M1 is in the high state HRS while the second memristor M2 is in the low state LRS.
[0163] As a result, the midpoint voltage Vmid is pushed towards the second voltage Vinb as schematically represented by curve 56 in [Fig.6].
[0164] The output 48S of the inverter 48 is then at 0.
[0165] This shows that for a signal in at 0 and for a weight W at 1, the output of the inverter 48 is then at 0, which corresponds to XNOR(0,1) = 0.
[0166] Thus, the output of logic unit 42 is therefore a logic “0”, therefore the output of logic unit 42 is a low value.
[0167] The same remarks apply to the cases on the right in [Fig.5].
[0168] The upper case corresponds to an input signal worth 1 (Vin > Vinb, with for example Vin = VDo and Vinb = GND) and a weight W equal to 0 (first memristor Ml in the low state LRS and second memristor M2 in the high state HRS) so that the midpoint voltage Vmid is pushed back towards the first voltage Vin, i.e. y . It as a result, the output 48S of the inverter 48 and therefore of the logic unit 42 is a logic “0”. This corresponds to carrying out the operation XNOR(1,0) = 0.
[0169] The lower case corresponds to an input signal worth 1 (Vin > Vinb) and a weight worth 1 (first memristor Ml in the high state HRS and second memristor M2 in the low state LRS) so that the midpoint voltage Vmid is pushed back towards the second voltage Vinb, i.e. y < . This results in the output 48S of F mid 2 inverter 48 and therefore the logic unit is a logic “1”. This corresponds to performing the operation XNOR(1,1) = 1.
[0170] The different cases described lead to obtaining the truth table visible in [Fig.5], which clearly illustrates that the 48S output of the inverter performs an XNOR operation.
[0171] Such an XNOR 43 component makes it possible to obtain a voltage output which does not exhibit the resistance variability of the memristors M1 and M2.
[0172] The reduction in variability comes from two complementary factors.
[0173] A first reduction in variability is obtained by using the differential assembly of the two memristors M1 and M2. However, at the midpoint 52 of the divider bridge 50, the signal is still subject to the variabilities of the memristors Ml and M2. In fact, the midpoint voltage depends on the ratio between the values of the resistances of the memristors Ml and M2, which reduces the variability, but not completely.
[0174] The second reduction in variability is obtained with the use of the logic unit 42 as appears with reference to [Fig.6].
[0175] As a result, the output signal of the logic unit 42 is much less sensitive to variations in the resistance of the memristors M1, M2. It is only in the worst cases where the statistical distributions of resistance values overlap that there may be possible residual errors. In practice, it is nevertheless possible to avoid this overlap by applying sufficient programming voltages and currents.
[0176] The conversion module 44 is configured to convert a number of high or low values at the output of the logic units 42 into an intermediate quantity depending on said number of high or low values at the output of the logic units 42.
[0177] As a reminder, a high value corresponds to a logical “1” and a low value corresponds to a logical “0”.
[0178] By “intermediate” in “intermediate quantity”, we mean intermediate in the succession of actions necessary to carry out the calculation operation, from the reception of each input value at the bottom of the column until the emission of the signal representative of the result of the calculation operation.
[0179] In other words, the intermediate quantity is representative of the number of logical “1”s and “0”s at the output of the logical units 42 of each column 20.
[0180] In particular, the intermediate quantity is representative of the result of the operation popcount XNOR( Wj, xj) •
[0181] The intermediate quantity is for example an electrical quantity, such as an electrical voltage, the variation of which over time depends on a time constant, and the value of the time constant is a function of the number of high or low values at the output of the logic units 42.
[0182] The time constant is then directly proportional to the number of high or low values at the output of the logic units 42. For example, the time constant is proportional to the result of the operation popcount XNOR( Wj. Xj) ■
[0183] Preferably, the value of the time constant is equal to the product of a capacitance and a resistance, and is then denoted RC, one of the capacitance and the resistance being predefined, and the other of the capacitance and the resistance depending on the number of high or low values at the output of the logic units 42.
[0184] The comparison module 46 is configured to compare the intermediate quantity with a reference quantity and to output a one-bit digital signal, dependent on the comparison and corresponding to the output of the electronic circuit 10, the emitted signal being representative of the result of the calculation operation.
[0185] With reference to [Fig.7], the comparison module 44 comprises a unit 58 for obtaining the reference quantity and a comparison unit 60.
[0186] The obtaining unit 58 is configured to provide as output a reference quantity comparable to the intermediate quantity.
[0187] For example, if the intermediate quantity is an electrical voltage, the obtaining unit 58 is configured to provide an electrical voltage as output.
[0188] The comparison unit 60 is connected to the conversion module 44 and to the obtaining unit 58.
[0189] The comparison unit 60 takes as input the reference quantity supplied by the obtaining unit 58 and the intermediate quantity supplied by the conversion module 44, and emits as output a one-bit signal, corresponding to the result of the comparison of the intermediate quantity and the reference quantity.
[0190] The emitted signal is representative of a logical “1” or a logical “0” depending on the comparison between the two previous quantities and therefore the result of the operation.
[0191] A first example of embodiment of the reading device 16 of the electronic circuit 10 according to the invention will now be described with reference to FIGS. 8 to 10.
[0192] The electronic circuit 10 comprises the matrix 14 of memory cells 12 with m rows 18 and n columns 20.
[0193] As an optional addition, the electronic circuit 10 comprises an additional matrix 26 of memory cells 12, also called bias matrix 26, described in more detail below.
[0194] The conversion module 44 comprises a set of the same first elements 62 connected together and a set of first switches 64, each first element 62 being associated with the output of a respective logic unit 42, as shown in [Fig.8].
[0195] The number of first elements 62 and the number of first switches 64 are equal, each being equal to the number n of columns 20, and therefore to the number of logical units 42.
[0196] Each first switch 64 is connected to the output of a respective logic unit 42 and is configured to activate, or respectively inhibit, the corresponding first element 62 according to the value, high or low, at the output of the respective logic unit 42. The value of the time constant then depends on the number of first element(s) 62 activated.
[0197] In the example of Figure 8, if a logic “0” is calculated at the output of a respective logic unit 42, the respective first switch 64 is configured to activate the corresponding first element 62; and corollarily if a logic “1” is calculated at the output of a respective logic unit 42, the respective first switch 64 is configured to inhibit the corresponding first element 62. This example of control logic of the first element 62 corresponds to the case where each first switch 64 comprises a PMOS transistor. Those skilled in the art will of course understand that the aforementioned control logic is inverted if each first switch 64 comprises an NMOS transistor, the respective first switch 64 then being configured to activate the corresponding first element 62 if a logic “1” is calculated at the output of a logic unit 42, and corollarily to inhibit the corresponding first element 62 if a logic “0” is calculated at the output of the logic unit 42. The number of activated first element(s) 62 is then equal to n- popcount XNOR(W j, X j).
[0198] The first element 62 and the corresponding first switch 64 form a conversion unit 61 connected to the output of the logic unit 42.
[0199] In the example of [Fig.8], each first element 62 comprises a capacitor 63, each first element 62 preferably being made up of the capacitor 63. The capacitors 63 advantageously all have the same capacitance of value Co.
[0200] Alternatively, as will be described in more detail in the example of [Fig. 15], each first element 62 comprises a resistor, each first element 62 preferably being a resistor.
[0201] Each first switch 64 comprises for example a transistor, such as a field effect transistor. Each gate 64G of the transistor of a respective first switch 64 is connected to the output of each logic unit 42. The source 64S of said transistor is connected to a voltage line of predefined value, such as the value VDD, and the drain 64D of said transistor is connected to a respective capacitor 63.
[0202] All the first elements 62 are arranged one after the other in the form of a conversion bridge 78, also called a pop bridge.
[0203] The conversion units 61 are therefore arranged one after the other to form the conversion bridge 78. When each first element 62 comprises a respective capacitor 63, the conversion units 61 are connected in parallel with each other, between a first line at a first predefined voltage, such as the voltage VDD, and a first complementary line at another voltage, called voltage pop and noted Vpop, corresponding to the intermediate quantity at the output of the conversion module 44.
[0204] For the conversion bridge 78, the number of capacitor(s) 63 connected in parallel is then equal to the number of first element(s) 62 activated, i.e. n- popcount XN0R( Wj, A; ) • All of the capacitors 63 of the conversion bridge 78 are therefore equivalent to a single capacitor of capacity (n - popcount XNOR( Wj, Xj) ) *C0 connected between voltages VDD and Vpop.
[0205] The conversion module 44 further comprises a first resistor 65 of predefined impedance R, connected between the first line complementary to the voltage Vpop and a predefined potential, such as an electrical ground GND. The first resistor 65 is included in the conversion bridge 78.
[0206] Thus, if the conversion bridge 78 is initially precharged to the first predefined voltage VDD, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the application of the input activations on the complementary bit lines BL / BLb, will generate the discharge of an equivalent capacitor of capacitance ( n . popcount XNOR ( Wj, X,) ) *C0 through the first resistor 65.
[0207] The intermediate quantity being the voltage Vpop of the first complementary line connected both to the capacitors 63 of capacitance Co and to the first resistor 65 of impedance R, the variation over time of the intermediate quantity depends on a time constant equal to popcount XN0R( H7;, Xj) ) *RCQ-
[0208] The variation over time of the voltage Vpop in the example of [Fig.8] is represented for several values of popcount and n=5 on the curves 200 at the top of [Fig.9].
[0209] The obtaining unit 58 comprises for example a reference voltage generator 66. In the example of [Fig.8], the reference voltage generator 66 is in the form of a generation bridge 80, symmetrical with respect to the conversion bridge 78 of the conversion module 44.
[0210] The reference voltage generator 66 then comprises a set of the same second elements 68 connected together and a set of second switches 70, the second elements 68 being advantageously identical to the first elements 62.
[0211] Each second element 68 is associated with the output of a respective logic unit 42, each second switch 70 being connected to the output of a respective logic unit 42 and configured to activate, or respectively inhibit, the corresponding second element 68 according to the high or low value at the output of the respective logic unit.
[0212] Each second switch 70 is controlled in an inverse manner relative to the first switch 64 of the conversion module 44 which is connected to the output of the same respective logic unit 42.
[0213] In particular, if a logic “1” is calculated at the output of a logic unit 42, the respective second switch 70 is configured to activate the corresponding second element 68; and corollarily if a logic “0” is calculated at the output of a unit logic 42, the respective second switch 70 is configured to inhibit the corresponding second element 68. This example of control logic of the second element 68 corresponds to the case where each second switch 70 comprises an NMOS transistor. Those skilled in the art will of course understand that the aforementioned control logic is inverted if each second switch 70 comprises a PMOS transistor, the respective second switch 70 then being configured to activate the corresponding second element 68 if a logic “0” is calculated at the output of a logic unit 42, and corollarily to inhibit the corresponding second element 68 if a logic “1” is calculated at the output of the logic unit 42. The number of activated second element(s) 68 is then equal to the result of the popcount XNOR( Wj, Xj).
[0214] The second element 68 and the corresponding second switch 70 form a generation unit 67 connected to the output of the logic unit 42.
[0215] For this purpose, in the example of [Fig.8], each second element 68 also comprises a capacitor 63, each second element 68 preferably being a capacitor 63. The capacitors 63 advantageously all have the same capacitance of value Co.
[0216] Alternatively, as will be described in more detail in the example of [Fig. 15], each second element 68 comprises a resistor, each second element 68 preferably being a resistor.
[0217] Each second switch 70 comprises for example an inverter 69 and a transistor, such as a field effect transistor. The transistor of the second switch 70 is advantageously of the same type as that of the first switch 64, that is to say having the same control logic.
[0218] The output of each logic unit 42 is then connected to a respective inverter 69, itself connected to the transistor of the corresponding second switch 70, said transistor then being connected to a respective capacitor 63.
[0219] As a variant, not shown, each second switch 70 comprises only one transistor, such as a field effect transistor, and in particular does not comprise an inverter. According to this variant, the transistor of the second switch 70 has a control logic inverse to that of the transistor of the first switch 64.
[0220] Each gate 70G of the transistor of a respective second switch 70 is connected to the output of each logic unit 42. The source 70S of said transistor is connected to a voltage line of predefined value, such as the value VDd, and the drain 70D of said transistor is connected to a respective capacitor 63.
[0221] All the second elements 68 are arranged one after the other in the form of the generation bridge 80, also called popb bridge.
[0222]
[0223]
[0224]
[0225] The generation units 67 are therefore arranged one after the other to form the generation bridge 80. When each second element 68 comprises a respective capacitor 63, the generation units 67 are connected in parallel with each other, between a second line at a second predefined voltage, such as the voltage VDD, and a second complementary line at another voltage, called voltage pop_b and noted Vpop_b, corresponding to the reference quantity. For the generation bridge 80, the number of capacitor(s) 63 connected in parallel is then equal to the number of second element(s) 68 activated, i.e. to popcount XNOR( W j, Xj) • All of the capacitors 63 of the generation bridge 80 is therefore equivalent to a single capacitor of capacity popcount XN0R( Wj, Xj) *C0 connected between the voltages VDD and Vpop b. The reference voltage generator 66 further comprises a second resistor 71, of predefined impedance and advantageously identical to the impedance R of the first resistor 65. The second resistor 71 is connected between the second line complementary to the voltage Vpop_b and a predefined potential, such as the electrical ground GND. The second resistor 71 is included in the generation bridge 80. Thus, if the generation bridge 80 is initially precharged to the second predefined voltage VDD, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the application of the input activations on the complementary bit lines BL / BLb will generate the discharge of an equivalent capacitor of capacitance popcount XNOR( Wj, Xj) *C0 through the second resistor 71.
[0226] The reference quantity being the voltage Vpop b of the second complementary line connected both to the capacitors 63 of capacitance Co and to the second resistor 71 of impedance R, the variation over time of the reference quantity depends on a time constant equal to popcount XNOR( Wj, Xj) *RC0-
[0227] The comparison unit 60 comprises for example two comparators 72 and 74, namely a first comparator 72 and a second comparator 74.
[0228] The first comparator 72 is configured to transform the intermediate quantity into a poptemp slot signal with a state change edge 205 at a characteristic time instant tc, as illustrated in [Fig.9].
[0229] For this purpose, the first comparator 72 is configured to receive as input the intermediate quantity Vpop and a comparison voltage Vcomp. The comparison voltage Vcomp is for example chosen to be equal to Z22.
[0230] When discharging the conversion bridge, when the intermediate quantity Vpop becomes lower than the comparison voltage Vcomp, the first comparator 72 causes a switch of the poptemp slot signal, for example going to a value greater than its initial value, the state change edge 205 being in other words a rising edge.
[0231] The variation over time of the poptemp slot signal is represented for several popcount values and for n=5 on the curves 210 of [Fig.9].
[0232] For a given popcount value, the characteristic time instant tc is then equal to ^n_ popcount XNOR( Wj, Xj) ) 'where ln represents the natural logarithm function.
[0233] Thus, a time difference At between two characteristic time instants tc for two successive popcount values is worth vm .
[0234] Those skilled in the art will then observe that this time difference At is independent of the number n of inputs of the electronic circuit 10 and therefore independent of the size of the neuron. The precision of the generation of the slot signal poptemp is therefore independent of the size of the neuron.
[0235] The second comparator 74 is configured to transform the reference quantity into a slot signal popbtemp with a state change edge 215 at a reference time instant tref, as illustrated in [Fig.9].
[0236] For this purpose, the second comparator 74 is configured to receive as input the reference quantity Vpop_b and the comparison voltage Vcomp.
[0237] During the discharge of the generation bridge 80, when the reference quantity Vpop b becomes lower than the comparison voltage Vcomp, the second comparator 74 generates a switching of the square wave signal popbtemp, passing to a value higher than its initial value, the state change edge 215 being in other words a rising edge.
[0238] The variation over time of the popbtemp slot signal is represented for several popcount values and for n=5 on the curves 220 of [Fig.9].
[0239] For a given popcount value, the reference time instant Lf is therefore equal to popcount XNOR( Wj, x,) ]RC ■
[0240] Thus, a time difference At between two reference time instants t^ for two successive popcount values is therefore also worth ]n / \RC •
[0241] Those skilled in the art will then observe that this time difference At is independent of the number n of inputs of the electronic circuit 10 and therefore independent of the size of the neuron. The precision of the generation of the slot signal popbtemp is therefore independent of the size of the neuron.
[0242] The comparison unit 60 is then configured to compare the time instant ca- characteristic and the reference time instant Uf.
[0243] In the example of [Fig.8], the comparison unit 60 further comprises a flip-flop 76, such as a D flip-flop (from the English Data), that is to say a flip-flop comprising only one data input, denoted D. The value of the input D is copied onto the output, denoted Q, at each clock edge.
[0244] The D input of flip-flop 76 is connected to the output of the first comparator 72 to receive the poptemp signal, and the clock of flip-flop 76 is connected to the output of the second comparator 74 to receive the popbtemp signal. The Q output of flip-flop 76 corresponds to the result a of the calculation operation.
[0245] If the characteristic time instant tc is less than, i.e. earlier than, the reference time instant t^, then the value of the input D of the flip-flop 76 is already at the high value at the clock edge corresponding to the reference time instant Uf so that the high value is then copied to the output Q of the flip-flop 76 at the reference time instant tref. In other words, in this case, the flip-flop 76 provides the high value representative of a logic “1” as a result, denoted a, of the calculation operation, as illustrated on the right of [Fig.8].
[0246] Conversely, if the characteristic time instant tc is greater than, i.e. later than, the reference time instant tref, then the value of the input D of the flip-flop 76 is still at the low value at the clock edge corresponding to the reference time instant tref so that the low value is then copied to the output Q of the flip-flop 76 at the reference time instant Lf. In other words, in this case, the flip-flop 76 provides the low value representative of a logic “0” as the result a of the calculation operation, as also illustrated on the right of [Fig.8].
[0247] In this example of figures 8 and 9, it appears that:
[0248] tc < “popcount XNOR (Wj, Xj)>
[0249] A logic “1” at the output of flip-flop 76 corresponds to a popcount greater than n / 2, that is to say that the number of high values at the output of the logic units 42 is greater than the number of low values.
[0250] Conversely, a logic “0” at the output of flip-flop 76 corresponds to a popcount less than n / 2, that is to say that the number of high values at the output of the logic units 42 is less than the number of low values.
[0251] Thus, the result of the operation executed by the neuron is defined as a function of a threshold Th. The result being a logical “1” if the number of high values is greater than the threshold Th. In the case described above, the threshold Th is equal to n / 2.
[0252] When the electronic circuit 10 optionally includes the additional matrix 26 of memory cells 12, also called bias matrix 26, this bias matrix 26 makes it possible to obtain a threshold Th different from n / 2, as will be described in here.
[0253] The bias matrix 26 comprises b columns 20 and m rows 18, i.e. the same number of rows 18 as the matrix 14. The m rows of the bias matrix 26 are each connected to the word line WL of the respective row of the matrix 14.
[0254] The memory cells 12 of the same column 20 of the bias matrix 26 share the same pair of complementary bit lines BL and BLb and the same source line SL.
[0255] The number b of added columns is typically even.
[0256] Adding b bias columns generates b+1 possible different threshold values Th centered around n / 2.
[0257] Similar to the columns 20 of the matrix 14, each column 20 of the bias matrix 26 is followed by a logical unit 42. We denote by p the number of column(s) 20 of the bias matrix 26 whose output of the respective logical unit 42 corresponds to a logical “0”.
[0258] The number of logic “0”s obtained at the output of the logic units 42 of the columns 20 of the bias matrix 26 is configured by the weights W stored in the memory cells 12 of the bias matrix 26 being selected by the word line WL, and activated by the input signal in brought to the selected cell 12 via the associated bit lines BL and BLb.
[0259] The conversion module 44 and the reference voltage generator 66 are extended to take into account the outputs of the additional logic units 42 of each column 20 of the bias matrix 26. In other words, the conversion module 44 then comprises in total n+b first elements 62 and n+b first switches 64, and the reference voltage generator 66 comprises n+b second elements 68 and n+b second switches 70, when the reference voltage generator 66 comprises the generation bridge 80.
[0260] Each first element 62 is connected to a respective first switch 64 and each second element 68 is connected to a respective second switch 70, each switch 64, 70 activating or inhibiting the element 62, 68 as described previously. Each first element 62, and respectively each second element 68, are according to this optional complement with bias matrix 26 identical to the first 62, and respectively second 68, elements described for the previous case without bias matrix.
[0261] The number of first element(s) 62 activated in the conversion module 44 is then equal to n _ popcount XNOR( Wj, Xj ) + p-
[0262] Thus, if the conversion bridge 78 is initially precharged to the first predefined voltage VDd, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the application of the input activations on the complementary bit lines BL / BLb, will generate the discharge of an equivalent capacitor of capacitance _ popcoimt XNOR(Wj, Xj) + p) *C0 through the first resistor 65.
[0263] For a given popcount value, the characteristic time instant tc of the poptemp signal supplied by the first comparator 72 is therefore equal to (“- popcount XN0R( Wj, Xj) + p) •
[0264] The number of second element(s) 68 activated in the reference voltage generator 66 is therefore equal to popcount XNOR( Wj, X,) + bp-
[0265] Thus, if the generation bridge 80 is initially precharged to the second predefined voltage VDD, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the application of the input activations on the complementary bit lines BL / BLb will generate the discharge of an equivalent capacitor of capacitance (popcount XNOR( Wj, Xj)+bp) *C0 through the second resistor 71.
[0266] For a given popcount value, the reference time instant tref of the pop signal btemp supplied by the second comparator 74 is therefore equal to (popcount XNOR( Wj, Xj) + b~p) *ln^—'
[0267] By analogy with the operation described above, it can be deduced that a characteristic time instant tc less than the reference time instant Lf, and consequently an output Q of the flip-flop 76 representative of a logic “1” is equivalent to:
[0268]
[0269]
[0270]
[0271]
[0272] tc< tref popcount XN0R(W h Xj) > y-% + p A logical “1” at the output of flip-flop 76 corresponds to a popcount greater than l^+P' Conversely, a logic “0” at the output of flip-flop 76 corresponds to a popcount less than “_ Ê + n- 2 2 R Thus, when the electronic circuit 10 optionally further includes the bias matrix 26, the threshold Th is worth £ _ A qp The threshold Th then depends on the number of columns b of bias and of the number p of logical “0” at the output of the logical units 42 of each column bias. that is, if half of the outputs of the logical units 42 of the columns of bias correspond to a logic “0” and the other half a logic “1”, the threshold Th is equal to y. We therefore obtain a result equivalent to an electronic circuit 10 ne not including bias matrix 26.
[0273] [Fig. 10] represents different possible thresholds Th for n=5 and b=2. In the example of [Fig. 10], different possible values for the characteristic time instant tc are indicated on a line denoted tm(pop), and similarly different possible values for the reference time instant Cf are indicated on a line denoted tm(popb).
[0274] In configuration (cl), the electronic circuit 10 does not include the bias matrix 26. We therefore have Th = j.
[0275] In configuration (c2), the bias matrix 26 comprises two columns 20 of memory cells 12. The two memory cells 12 selected by the word line WL are both configured to obtain a logic “0” at the output of their respective logic unit 42, in other words p=2. Thus, the characteristic time instant tc obtained with the bias for a given popcount is shifted by 2*At relative to the characteristic time instant tc obtained without bias for the same popcount, where At represents the time difference between two characteristic time instants tc for two successive popcount values, such as for example ]nf 1 pQ . This shift of 2*At is represented by the box for configuration (c2) in Figure 10. We then have Th = y - 5 + p = ~ + 1. The characteristic time instant tc corresponds to the threshold Th is represented by the dotted line going back to the timing diagram.
[0276] In configuration (c3), the bias matrix 26 also comprises two columns 20 of memory cells 12. The two memory cells 12 selected by the word line WL are here both configured to obtain a logic “1” at the output of their respective logic unit 42, in other words p=0. Thus, the reference time instant Cf obtained with the bias for a given popcount is shifted by 2*At relative to the reference time instant Cf obtained without bias for the same popcount, where At represents the aforementioned time difference. This shift of 2*At is represented by the box for configuration (c3) in Figure 10. We then have Th — j - ^ + p — 4 - L The reference time instant Cf corresponds to the threshold Th and is represented by the dotted line going back to the timing diagram.
[0277] Second and third examples of embodiment of the electronic circuit 10 having a bias will now be described, with reference to [Fig. 11].
[0278] The second and third examples differ from the first example with respect to the reference voltage generator 66, and only the differences between the first example described above and the second and third examples of [Fig.l 1] will therefore be described below.
[0279] In the second embodiment illustrated on the left of [Fig.l 1], the reference voltage generator 66 comprises the generation bridge 80 and a matrix complementary 82 of memory cells 12. The difference between this second exemplary embodiment and the first example described previously is that the generation bridge 80 is not connected to the output of the logic units 42, the generation bridge 80 being, according to this second example, connected to the output of said complementary matrix 82. The second switches 70 are therefore not controlled by the outputs of these logic units 42, but by the complementary matrix 82.
[0280] The complementary matrix 82 is configured to provide n outputs to the second switches 70, n being, as a reminder, the number of columns of the matrix 14. Each output can take a high value corresponding to a logical “1” or a low value corresponding to a logical “0”.
[0281] The complementary matrix 82 comprises n columns 20 like the matrix 14 and at least one row 18. Each memory cell 12 of the same row 18 shares the same word line WL. The memory cells 12 of the same column 20 share the same pair of complementary bit lines BL and BLb and the same source line SL.
[0282] The number of logical “1”s and logical “0”s at the output of the complementary matrix 82 defines the threshold Th. We note r, the number of “0”s included in the series of bits at the output of the complementary matrix 82. Preferably r is between f-10% and f+ 10%.
[0283] The number of rows 18 of the complementary matrix 82 is therefore equal to the number of desired threshold values. The word line WL connecting the row of the complementary matrix 82 storing the weights of the desired threshold activates the memory cells 12 of said row 18.
[0284] The second switches 70 according to this second exemplary embodiment are identical to those described previously for the first example, and comprise for example the inverters 69 visible in [Fig. 11].
[0285] For example, each second switch 70 is configured to activate the corresponding second element 68 if the output of the complementary matrix 82 is representative of a logical “0” and to inhibit the corresponding element if said output is representative of a logical “1”.
[0286] Thus, if the generation bridge 80 is initially precharged to VDD, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the application of the input activations on the complementary bit lines BL / BLb will generate the discharge of an equivalent capacitor of capacitance through the resistor R.
[0287] The reference time instant tref of the signal a* provided by the second comparator 74 according to this second exemplary embodiment is then equal to ■
[0288]
[0289]
[0290]
[0291]
[0292]
[0293]
[0294] The reference time instant t^ obtained is compared by the flip-flop 76 to the characteristic time instant tc of the signal supplied by the first comparator 72, the latter being noted here apop and obtained in the absence of bias matrix 26, in other words tc = (. n - popcount XNOR ( Wj, Xj ) ) *ln j RC ■ According to the previous reasoning, we have: te< tref popcount XNOR( Wj, Xj) > n - r The output signal of flip-flop 76 is therefore representative of a logic “1” if popcount XNOR( Wj, Xj) > n - r, and the output signal of flip-flop 76 is representative of a logic “0” if popcount XNOR( Wj, Xj) < fl - r- The threshold Th is therefore worth nr. According to a variant, each second switch 70 is configured to activate the corresponding second element 68 if the output of the complementary matrix 82 is representative of a logical “1” and to inhibit the corresponding second element 68 if the output is representative of a logical “0”. Thus, if the generation bridge 80 is initially precharged to VDD, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the application of the input activations on the complementary bit lines BL / BLb will generate the discharge of an equivalent capacitor of capacitance (n - r)*C0 through the resistor R.
[0295] The signal at the output of flip-flop 76 is therefore representative of a logic “1” if popcount XN0R(Wj, Xj) > r, and the signal at the output of flip-flop 76 is representative of a logic “0” if popcount XN0R(Wj, Xj) < r-
[0296] The threshold Th is therefore worth r.
[0297] Those skilled in the art will observe that the complementary matrix 82 then makes it possible to control the generation bridge 80 independently of the matrix 14, which makes it possible to generate the desired threshold value Th, without having a bias matrix 26 associated with the matrix 14 of memory cells 12. This however requires that each row of the complementary matrix 82 corresponds to a different threshold to cover the ± 10% bias required.
[0298] In the third embodiment illustrated on the right of [Fig. 11], the electronic circuit 10 comprises the additional bias matrix 26, the latter comprising b columns 20.
[0299] The reference voltage generator 66 comprises a plurality of generation units 67. In the example of FIG. 11, the reference voltage generator 66 comprises S±£ generation units 67.
[0300] Each generation unit 67 has an input, and the inputs of all the conversion units are connected to the same potential, for example to the electrical ground GND. Each generation unit 67 according to this third exemplary embodiment is identical to a respective generation unit 67 described according to the first exemplary embodiment.
[0301] The generation units 67 are connected in parallel between the voltage VDD and the voltage Vpop_b.
[0302] In the case where the first elements 62 of the conversion module 44 are capacitors 63, the voltage generator further comprises a resistor R.
[0303] Thus, the generation bridge 80 is initially precharged to VDD, the implementation of a calculation operation will generate the discharge of an equivalent capacitor of capacitance through the resistor R.
[0304] The reference time instant tref of the signal ahaif provided by the second comparator 74 according to this third exemplary embodiment is therefore equal to n+b ^tJvDv Id / 1 . - \ * camp / p
[0305] The reference time instant Cf obtained is compared by the flip-flop 76 to the characteristic time instant tc of the signal supplied by the first comparator 72, the latter being noted here apop+bias and obtained by considering that p is the number of bias columns whose output of the respective logic unit 42 corresponds to a logic “0”, otherwise dlt tc = (n- popcount XNOR( W j, Xj) +p) *ln^ ^RC -
[0306] According to the previous reasoning, we have:
[0307] p < <=> popcount XNOR (W j, Xj) > | +p-
[0308] We obtain a threshold 77? — £ q_ p _ Ê.
[0309] A fourth example embodiment of the electronic circuit 10 will now be described, with reference to [Fig. 12]. Only the differences between the first and fourth example embodiments are described below.
[0310] According to [Fig.12], the obtaining unit 58 comprises a voltage source 84 providing a fixed comparison voltage Vcomp, of constant value, at the input of the comparison unit 60. Preferably, the comparison voltage Vcomp is equal to Vdd / 2.
[0311] In the example of [Fig.12], the comparison unit 60 comprises a comparator 86 with a clock reference, hereinafter called clocked comparator 86, which takes as input the intermediate quantity from the conversion module 44 at its negative terminal and the comparison voltage Vcomp from the obtaining unit 58, and in particular from the voltage source 84, at its positive terminal, and generates as output a signal a representative of a logic “1” or a logic “0”.
[0312] The intermediate quantity is the voltage of the conversion bridge 78, noted Vpop, the variation over time depends on a time constant equal to (n- popcount XNOR^Wj, Xj^RC^
[0313] The characteristic time instant tc is defined as the instant from which the voltage Vpop is lower than the comparison voltage Vcomp:
[0314] Vpop Vcomp t > tc, with tc - ( n - popcount XNOR ( Xj ) ) In ) R Co
[0315] The clock edge of the clocked comparator 86 is fixed to a clock reference tciock configured so that if tc < the neural calculation result is equal to 1, then the signal a at the output of the clocked comparator 86 is representative of a logical “1” and if > hloek, the neural calculation result is equal to 0, then the signal a at the output of the clocked comparator 86 is representative of a logical “0”.
[0316] The value of the clock reference tciock then makes it possible to define a fixed threshold Th, such that:
[0317] t < r popcount > Th. Th = n —--- dock rt '
[0318] For example, to have a threshold Th of y, we fix the clock edge to the reference horlo8%«^
[0319] A fifth example embodiment of the electronic circuit 10 will now be described, with reference to [Fig. 13]. Only the differences between the fourth and fifth example embodiments are described below.
[0320] In the example of [Fig. 13], the reference voltage generator 66 is the generation bridge 80, symmetrical to the conversion bridge 78 of the conversion module 44.
[0321] The reference voltage generator 66 is then obtained via a set of the same second elements 68 connected together and a set of second switches 70, the second elements 68 being identical to the first elements 62 of the entire conversion module 44. Those skilled in the art will observe that in the example of [Fig. 13], the second switches 70 typically have an inverted control logic compared to the second switches 70 of the example of [Fig. 8]. In the example of [Fig. 8], each second switch 70 typically comprises an NMOS transistor; and in the example of [Fig. 13], each second switch 70 typically comprises a PMOS transistor.
[0322] In the example of [Fig. 13], each first element 62 of the conversion module 44 comprises a capacitor 63 of capacitance Co, and each second element 68 comprises a capacitor 63 of capacitance Co.
[0323] The reference voltage generator 66 further comprises the second resistor 71 of impedance R, identical to the first resistor 65 of the conversion module 44 and connected to the VDD voltage.
[0324] Thus, if the generation bridge 80 is initially discharged, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the application of the input activations on the complementary bit lines BL / BLb will generate the charging of an equivalent capacitor of capacitance (n-popcount XN0R( Wj, X / ))*Co through the second resistor 71 of impedance R.
[0325] The reference quantity being the voltage Vpop_b of the generation bridge 80, the variation over time of the reference quantity depends on a time constant equal to (n-popcount XNOR( Wj, Xj))*RCff This time constant is equal to the variation time constant of the intermediate quantity provided by the conversion module 44.
[0326] The voltages Vpop and Vpop_b have an intersection point for a voltage value of the order of 22”. 2
[0327] The clocked comparator 86 takes as input the intermediate quantity Vpop from the conversion module 44 at its negative terminal and the reference quantity Vpop b at its positive terminal, and generates as output a signal a representative of a logic “1” or a logic “0”.
[0328] The characteristic time instant tc is defined as the instant from which the voltage Vpop is lower than the reference voltage Vpop b:
[0329] VpO}, < Vpopb t>tc , with tc = (n-popcount XN0R( Wj, Xj) )ln(2)ÂC0
[0330] The clock edge of the clocked comparator 86 is fixed to the clock reference tciock configured so that if V < the neural calculation result is 1, then the signal a at the output of the clocked comparator 86 is representative of a logical “1”, and if tc > tclock, the neural calculation result is 0, then the signal a at the output of the clocked comparator 86 is representative of a logical “0”.
[0331] The value of the clock reference tciock makes it possible to define a fixed threshold Th such that:
[0332] tc < popcount > 7 / ^ ph = „ _
[0333] For example, to have a threshold Th of , we fix the clock edge to the reference clock tM = f ln(2)ÆC0.
[0334] Sixth and seventh examples of embodiment of an electronic circuit 10 with bias for shifting the threshold value Th, and with a comparison unit 60 comprising the clocked comparator 86 will now be described, with reference to [Fig.14],
[0335] Only the differences between the fifth example described above and the sixth and seventh examples of [Fig.14] will therefore be described below.
[0336] In the sixth embodiment illustrated at the top of [Fig. 14], the electronic circuit 10 comprises the bias matrix 26.
[0337] The bias matrix 26 comprises b columns 20 of memory cells 12.
[0338] The clock edge of the clocked comparator 86 is fixed and has the clock reference tdock. Preferably, the clock reference tciock is defined such that the threshold Th in the absence of bias is 4, i.e. tci(^ = ^ln(2)2?C0.
[0339] The reference voltage generator 66 is for example the generation bridge 80, symmetrical to the conversion bridge 78 of the conversion module 44, but under load.
[0340] The reference quantity being the voltage Vpop_b of the generation bridge 80, the variation over time of the reference quantity Vpop b then depends on a time constant equal to (n-popcount XNOR( W j, Xj) + p)*RCtf For raPPd- P is the number of bias columns whose output of the respective logic unit 42 corresponds to a logic “0”. This time constant is equal to the variation time constant of the intermediate quantity Vpop provided by the conversion module 44.
[0341] We deduce the characteristic time instant tc:
[0342] Vpop <Vpjpb t>tc, with tc- (n-popcount XNOR( W? Xj) + p)In(2)RCQ
[0343] R < tclock o popcount > Th, Th = n + p-
[0344] Thus, if the clock reference — ^ln(2)ÆC0, the threshold Th is worth “ + p.
[0345] The bias matrix 26 therefore makes it possible to obtain different threshold values depending on the number p of bias columns whose output from the respective logic unit 42 corresponds to a logic “0”. We therefore have 0 p < b, which corresponds to b+1 possible threshold values Th centered around
[0346] In the seventh embodiment illustrated at the bottom of figure 14, the clock signal of the clocked comparator 86 is variable / = + B)ln(2)7?C0-
[0347] The value B is a natural integer and makes it possible to obtain a variable threshold Th depending on the value B: Th = % +B.
[0348] Preferably, - *10% < B < j *10%.
[0349] The examples of embodiment of the electronic circuit 10 described above are not limiting and are given solely as examples. All combinations of characteristics, described by the preceding and following examples, technically possible, also correspond to the invention.
[0350] In particular, the comparison unit 60 comprises for example the clocked comparator 86; or the flip-flop 76 as well as the first and second comparators 72 and 74.
[0351] Similarly, the obtaining unit 58 comprises for example the reference voltage generator 66 as shown in [Fig.8]; or the voltage source 84 providing the fixed comparison voltage Vcompen input to the comparison unit 60 as shown in [Fig.12].
[0352] The reference voltage generator 66 is for example produced by the generation bridge 80, symmetrical to the conversion bridge 78 of the conversion module 44, the generation bridge 80 being controlled by the matrix 14, as shown in [Fig.8]; or by the generation bridge 80 controlled by the complementary matrix 82, as illustrated on the left of [Fig.11].
[0353] In addition, the generation bridge 80, symmetrical to the conversion bridge 78, can be configured to be equivalent to a charge or a discharge of a capacitor.
[0354] In the case where the comparison unit 60 comprises the flip-flop 76, a bias can be added to the threshold Th by adding the bias matrix 26 or via the complementary matrix 82.
[0355] The reference voltage generator 66 may also comprise a half-bridge formed by generation units 67 in the event of the presence of the bias matrix 26.
[0356] In the case where the comparison unit 60 comprises a clocked comparator 86, the threshold Th can be modified by the presence of a bias by the addition of the bias matrix 26 if the clock time of the clocked comparator 86 is fixed, or even via the variation of the clock time as a function of the desired bias.
[0357] The electronic circuit 10 according to the invention therefore comprises the comparison module 46 defined according to all technically possible combinations of the characteristics described above.
[0358] An additional variant that can be combined with the embodiments described above is illustrated by an eighth embodiment with reference to [Fig. 15]. Only the differences between the fifth embodiment and the eighth embodiment will be described below.
[0359] In the example of [Fig. 15], the conversion units 61 of the conversion module 44 are connected in series.
[0360] Each conversion unit 61 comprises the first element 62 and the first switch 64 connected in parallel.
[0361] Each first element 62 comprises a resistor 88 of resistance Ro and each first switch 64 comprises a switch 90 configured to activate or inhibit the corresponding resistor 88.
[0362] In particular, if a logic “0” is calculated at the output of a logic unit 42, the respective first switch 64 is configured to activate the corresponding first element 62, so the switch 90 is open; and if a logic “1” is calculated in output of a respective logic unit 42, the respective first switch 64 is configured to inhibit the corresponding first element 62, so the switch 90 is closed.
[0363] The resistor 88 located at the output of the first column 20 is connected to the electrical ground GND and the resistor 88 located at the output of the last column 20 is connected to the input of the comparison unit 60.
[0364] The conversion module 44 further comprises a first capacitor 92 of capacitance C connected between the input of the comparison unit 60 and the potential VDD.
[0365] Thus, if the conversion bridge 78 is initially precharged to the potential VDD, the implementation of a calculation operation, i.e. the activation of a row 18 by its word line WL and the inputs on the complementary bit lines BL / BLb will generate the discharge of the capacitor of capacitance C through an equivalent resistance of resistance ( n. popcoimt XNOR ( Wj, Xj ) ) *RQ-
[0366] The intermediate quantity being the voltage Vpop of the conversion bridge 78, the variation over time of the intermediate quantity depends on a time constant equal to ( n - popcount XNOR ( Wj, Xj ) ) *C7?0-
[0367] The resistors 88 of the first elements 62 forming the conversion bridge 78 are connected in series between the electrical ground GND and the voltage Vpop.
[0368] Similarly, each second element 68 of the reference voltage generator 66 formed by the generation bridge 80, symmetrical to the conversion bridge 78 of the conversion module 44, comprises the resistor 88 of resistance Ro and each second switch 70 comprises the switch 90 in parallel with the resistor 88.
[0369] The resistors 88 of the second elements 68 forming the generation bridge 80 are connected in series between a potential VA and the voltage Vpop_b.
[0370] The reference voltage generator 66 further comprises a second capacitor 94 of capacitance C connected between the voltage Vpop b and a potential VB.
[0371] The values of the potentials VA and VB, as well as the control logic of the second switches 70, are defined as a function of the charging or discharging of the second capacitor 94 during the implementation of a neural calculation.
[0372] Thus, all things being equal, all the preceding embodiments are technically possible using resistors 88 as first elements 62, and where appropriate second elements 68, instead of capacitors 63.
[0373] The calculation steps described above remain valid by replacing Co by Ro, and respectively C by R.
[0374] The great advantage of the invention is the possibility of implementing a binary neuron whose precision is independent of the size of the neuron. This makes it possible to implement very large neurons with very good precision, with just counterpart a possibly longer calculation time. Since the sizes of the implemented neurons can vary from one neural network architecture to another and even from one layer to another, the electronic circuit 10 according to the invention optionally and advantageously has a sub-bench architecture 95 in the form of a row of neural nodes where each neural node 100 is configured to implement a respective neuron and where the neurons have minimum sizes of x inputs, as illustrated in [Fig.16].
[0375] In the example of [Fig. 16], each neural node 100 comprises the matrix 14 of resistive memory cells 12 for storing the weights, and optionally the bias matrix 26; the conversion bridge 78 and the associated first resistor 65, and optionally the generation bridge 80 and the associated second resistor 71; the first and second comparators 72, 74 and the flip-flop 76.
[0376] The neural nodes 100 are then able to be connected together by first switches 102 to put the conversion bridges 78 in series, and optionally by second switches 104 to put the generation bridges 80 in series, in order to implement larger neurons. The connection between two neural nodes 100 of minimum size x is simple, because it is sufficient to just connect their conversion bridges 78, and respectively their generation bridges 80, together to implement a neuron of size 2x. However, care must be taken to connect only one discharge resistor 65, 71 per bridge 78, 80.
[0377] The control of such an architecture in neural nodes 100 is simple as shown in [Fig. 10], with a common control of the word lines WL via the first controller 22; an input activation register 110 capable of storing the inputs; a register 115 for controlling the connections between neural nodes 100, then capable of controlling the first and second switches 100, 102; and an output register 120 recovering the output activations of all the neural nodes 100 in parallel.
[0378] [Fig. 17] illustrates the architecture of a bench constructed from several sub-benches 95, each sub-bench 95 being of the type described previously with respect to [Fig. 16]. The sub-benches 95 share the same input activation register 110 and the same register 115 for controlling the connections between neural nodes 100, and the outputs of the neural nodes 100 are multiplexed to be captured by the common output register 120 recovering the activations of the outputs. This control can be made more complex for greater control granularity.
[0379] The invention then offers great flexibility in mapping weights and neurons:
[0380] - one neuron per neural node 100 if the neurons are small;
[0381] - one neuron on several neural nodes 100 if the number of inputs of the neurons is too high to use a single neural node 100;
[0382] - the same neurons with multiple inputs in parallel by duplicating the weights on several neural nodes 100.
[0383] Another variant consists in integrating the first elements 62 and switches 64, and respectively the second elements 68 and switches 70, directly within the matrix 14 of memory cells 12, as illustrated in [Fig. 18]. It should be noted that the precharging of the ends of the first elements 62, respectively of the second elements 68, for example in the form of capacitors 63, can be done simply by applying a signal to the potential GND, followed by a signal to the potential V DD on the common source line, which will make it possible to precharge the internal nodes of the first switches 64, followed by those of the second switches 70.
[0384] It is thus understood that the electronic circuit 10 according to the invention makes it possible to produce a binary neural network with resistive memory cells 12 and for neurons of larger size, that is to say with a higher number of inputs.
Claims
1. Claims Electronic circuit (10) capable of implementing calculation operations each providing a binary output, the circuit comprising: - word lines (WL); - pairs of complementary bit lines (BL, BLb); - source lines (SL); - a set of memory cells (12) organized according to a matrix (14) comprising rows (18) and columns (20), the memory cells (12) of the same row (18) being selectable by a word line (WL), the memory cells (12) of the same column (20) being connected to a pair of complementary bit lines (BL, BLb) and to a source line (SL); each memory cell (12) comprising two memristors and two switches, each memristor being connected to the same source line (SL) and to a respective switch, each memristor respectively storing a weight or the inverse of the same weight by respectively having first and second different resistance values; the switches being connected, for their activation, to a respective word line (WL) and connected respectively to a pair of complementary bit lines (BL, BLb); - a reading device (16) implemented during each calculation operation, the reading device (16) comprising: + a logic unit (42) for each column (20), each logic unit (42) comprising an input terminal connected to a respective source line (SL) for receiving an input value, the logic unit (42) being configured to perform a logic operation having a switch between a low value and a high value depending solely on the value of the input of the logic unit which is connected to the source line (SL) during said calculation operation, characterized in that the reading device (16) further comprises: + a conversion module (44) configured to convert a number of high or low values at the output of the logic units (42) into an intermediate quantity depending on said number of high or low values at the output of the logic units (42), the intermediate quantity is an electrical quantity, such as an electrical voltage, the variation of which over time depends on a time constant (RC),and the value of the time constant is a function of the number of high values or, low at the output of the logic units (42), and + a comparison module (46) configured to compare the intermediate quantity with a reference quantity and to output a digital signal on one bit, dependent on the comparison and corresponding to the output of the electronic circuit (10), the signal emitted being representative of the result of the calculation operation.
2. An electronic circuit (10) according to claim 1, wherein the value of the time constant is directly proportional to the number of high or low values output by the logic units (42).
3. An electronic circuit (10) according to any preceding claim, wherein the value of the time constant is equal to the product of a capacitance and a resistance, one of the capacitance and the resistance being predefined, and the other of the capacitance and the resistance depending on the number of high or low values at the output of the logic units (42).
4. Electronic circuit (10) according to any one of the preceding claims, wherein the conversion module (44) comprises a set of the same elements (62) connected together and a set of switches (64), each element (62) being associated with the output of a respective logic unit (42), each switch (64) being connected to the output of a respective logic unit (42) and configured to activate, or respectively inhibit, the corresponding element (62) according to the high or low value at the output of the respective logic unit (42), and the value of the time constant depending on the number of activated elements (62); each element (62) preferably being a resistor (88) or a capacitor (63).
5. Electronic circuit (10) according to any one of the preceding claims, in which the comparison module (46) is configured to transform the intermediate quantity into a square wave signal with a state change edge at a characteristic time instant (tc), the characteristic time instant (tc) then being compared to a reference time instant (Cf) associated with the reference quantity, and the signal representative of the result of the calculation operation then depending on said comparison.
6. Electronic circuit (10) according to claim 5, in which the intermediate quantity is transformed into the square wave signal via a comparator (72).
7. An electronic circuit (10) according to claim 6, wherein the module comparison voltage generator (46) comprises the comparator (72) and a comparison voltage generator (Vcomp), and the comparator (72) is capable of comparing the generated voltage with the comparison voltage from the comparison voltage generator.
8. Electronic circuit (10) according to any one of claims 5 to 7, wherein the characteristic time instant (tc) is compared to the reference time instant (Cf) via a flip-flop (76) or via a comparator (86) with a clock reference (tciock).
9. Electronic circuit (10) according to any one of claims 5 to 8, taken with claim 4, wherein the reference time instant (Cf) is obtained via a set of the same second elements (68) connected together and a set of second switches (70), the second elements (68) being the same as those of the entire conversion module (44), each second element (68) being associated with the output of a respective logic unit (42), each second switch (70) being connected to the output of a respective logic unit (42) and configured to activate, or respectively inhibit, the corresponding second element (68) according to the high or low value at the output of the respective logic unit (42), and each second switch (70) being controlled in an inverse manner with respect to the switch (68) of the conversion module (44) which is connected to the output of the same respective logic unit (42);each second element (68) preferably being a resistor (88) or a capacitor (63).;
10. An electronic circuit (10) according to any preceding claim, wherein each logic unit (42) performs an inverter-type logic function during the calculation operation.
11. An electronic circuit (10) according to any preceding claim, wherein the logic operation performed by the logic unit (42) is an inversion, and the computational operation is a neural computational operation, such as the MAC operation.
12. Electronic circuit (10) according to any one of the preceding claims, in which the electronic circuit (10) is a neuromorphic circuit capable of implementing a binary output neural network, each memory cell (12) being associated with a respective synaptic weight of a neuron, and each pair of complementary bit lines being capable of receiving complementary input voltages (Vin, Vinb) during a neural calculation operation.
13. Electronic circuit (10) according to any one of the preceding claims, comprising a first controller (22) making it possible to select the memory cells (12) of a row (18) which are connected to the same word line (WL), and comprising a second controller (24) connected to the pairs of bit lines (BL, BLb) and making it possible to apply to each pair of bit lines (BL, BLb) different and symmetrical voltages with respect to a middle voltage, the voltage applied to a bit line (BL) being higher or lower than that applied to the associated complementary bit line (BLb).
14. Electronic circuit (10) according to any one of the preceding claims, in which the electronic circuit (10) comprises several distinct sets of memory cells (12) capable of operating in parallel with the same set of pairs of complementary bit lines (BL, BLb) and distinct sets of word lines (WL), each set of memory cells (12) being connected to a respective set of word lines.
15. Electronic circuit (10) according to any one of the preceding claims, wherein the electronic circuit (10) comprises several distinct sets of memory cells (12) capable of operating in parallel with the same set of word lines and distinct sets of pairs of complementary bit lines, each set of memory cells (12) being connected to a respective set of pairs of complementary bit lines; the reading devices (16) of two successive sets of memory cells (12) preferably being connected to each other via a switch (102, 104), the switch (102, 104) being more preferably controlled in the closed position during a neural calculation operation to carry out said operation with the set of complementary input voltages (Vin, Vinb) received by the two sets of memory cells (12).
Citation Information
Patent Citations
Neuromorphic circuit made of 2t2r rram cells
EP4137999A1
Neuromorphic circuit based on 2t2r RRAM cells
US20230059091A1